From unknown Sun Jun 22 11:48:39 2025 X-Loop: help-debbugs@gnu.org Subject: bug#78612: imenu list generation failing on some items of similar quality Resent-From: mdnorton Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Wed, 28 May 2025 01:46:03 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: report 78612 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: 78612@debbugs.gnu.org X-Debbugs-Original-To: "bug-gnu-emacs@gnu.org" Received: via spool by submit@debbugs.gnu.org id=B.174839672329733 (code B ref -1); Wed, 28 May 2025 01:46:03 +0000 Received: (at submit) by debbugs.gnu.org; 28 May 2025 01:45:23 +0000 Received: from localhost ([127.0.0.1]:47066 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1uK5r7-0007j2-Ix for submit@debbugs.gnu.org; Tue, 27 May 2025 21:45:23 -0400 Received: from lists.gnu.org ([2001:470:142::17]:47606) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from ) id 1uJyVO-0005xu-3Q for submit@debbugs.gnu.org; Tue, 27 May 2025 13:54:28 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1uJyVH-0000fl-RZ for bug-gnu-emacs@gnu.org; Tue, 27 May 2025 13:54:19 -0400 Received: from mail-4322.protonmail.ch ([185.70.43.22]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1uJyVD-0004RT-Mq for bug-gnu-emacs@gnu.org; Tue, 27 May 2025 13:54:19 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=proton.me; s=protonmail; t=1748368451; x=1748627651; bh=0lOlcpvzHfZdcNT90U39hhnkFzcEDFrXJfa+ch3sE6g=; h=Date:To:From:Subject:Message-ID:Feedback-ID:From:To:Cc:Date: Subject:Reply-To:Feedback-ID:Message-ID:BIMI-Selector: List-Unsubscribe:List-Unsubscribe-Post; b=lqkYF5D7MNzgb4Fc+L5rdPsSJpLgIZ5wx2UNg+qnvQdJeNDYLV1yQzZq99/O5VYZP /tKDMGQWs3hqTjtplK6hLCsxg5ykQgsXoB1OxoA94vsE3Lvt5xQqQyQEteRaasyrLJ S/dg56wTHnTBI1lJLJx+LQvpf/muFzJqrAfSmaBHeNU6QKKYGuK4z1nRflnEVzrZzV S4Yd1s3o+IVWuCFzVLH7kWrHBfMam0z1YPfnK+MlaIvMo4anVYJXY3TWLr0lJYNhGp 1rH/NJi3zbDtJOfr0/eVOyuCXq7R1oNR0qDzDEn9EPYNNL5iSHWOkbnwxwghIu78UP QVUYWNMbek30g== Date: Tue, 27 May 2025 17:54:05 +0000 From: mdnorton Message-ID: Feedback-ID: 113491323:user:proton X-Pm-Message-ID: 02d92b86c98cdaaa9d1c4beaa56a7ea9a47d5b24 MIME-Version: 1.0 Content-Type: multipart/alternative; boundary="b1=_k7G90lb06e4EkXUzCRQ5U61vqmOHFlH9zi8sL5YZw" Received-SPF: pass client-ip=185.70.43.22; envelope-from=mdnorton@proton.me; helo=mail-4322.protonmail.ch X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H4=0.001, RCVD_IN_MSPIKE_WL=0.001, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-Spam-Score: 1.0 (+) X-Mailman-Approved-At: Tue, 27 May 2025 21:45:20 -0400 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -0.0 (/) --b1=_k7G90lb06e4EkXUzCRQ5U61vqmOHFlH9zi8sL5YZw Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: base64 R29vZCBtb3JuaW5nLiBJJ3ZlIGNoZWNrZWQgdGhlIGJ1ZyBhcmNoaXZlIGZvciBpbWVudeKAiyBh bmQgZGlkIG5vdCBmaW5kIGFueXRoaW5nIHRoYXQgc2VlbWVkIHJlbGF0ZWQgdG8gd2hhdCBJJ20g c2VlaW5nLCBzbyBnb2luZyB0byB0cnkgdG8gcmVwb3J0IHRoaXMgdmlhIHRoZSBlbWFpbCBpbiAz NC4zLiBIb3BlZnVsbHkgSSBjb3ZlciBldmVyeXRoaW5nIG5lY2Vzc2FyeSBpbiAzNC4zLiBJIGNh bm5vdCB1c2UgdGhlIHJlcG9ydCBmdW5jdGlvbiBhcyBJIGRvbid0IGhhdmUgRW1hY3Mgc2V0IHVw IHdpdGggYSBtYWlsIHNlcnZpY2UuCgotIEVtYWNzIHZlcnNpb246IDMwLjEKLSBHTlUgRW1hY3Mg MzAuMSAoYnVpbGQgMiwgeDg2XzY0LXc2NC1taW5ndzMyKSBvZiAyMDI1LTAyLTIzCgotIFdpbmRv d3MgT1MKCldoYXQgSSdtIHNlZWluZyBpcyBhIGZhaWx1cmUgaW4gaW1lbnXigIsgdG8gY3JlYXRl IGEgY29ycmVjdCBsaXN0IGZvciBmdW5jdGlvbiBuYW1lcyB1c2luZyB0aGUgTUFUTEFCIHBhY2th Z2UgKFtodHRwczovL2dpdGh1Yi5jb20vbWF0aHdvcmtzL0VtYWNzLU1BVExBQi1Nb2RlL10oaHR0 cHM6Ly9naXRodWIuY29tL21hdGh3b3Jrcy9FbWFjcy1NQVRMQUItTW9kZS9pc3N1ZXMvNDIpKS4g SSd2ZSBiZWVuIHdvcmtpbmcgd2l0aCB0aGUgY3VycmVudCBtYWludGFpbmVyIGFuZCBJIGFtIHBy ZXR0eSBjZXJ0YWluIHRoYXQgdGhpcyBpcyBub3QgZGlyZWN0bHkgYSBNQVRMQUIgcGFja2FnZSBp c3N1ZSwgdGhvdWdoIEkgY2Fubm90IHRlbGwgaWYgaXQgaXMgYW4gaW50ZXJhY3Rpb24uIFRoZSBy ZWd1bGFyIGV4cHJlc3Npb24gdG8gaWRlbnRpZnkgdGhlIGZ1bmN0aW9uIG5hbWUgdGhhdCBpcyB0 aGUgcG9pbnQgb2YgdGhlIGltZW514oCLIGxpc3QgaXMgcHJldHR5IGduYXJseSBidXQgc2VlbXMg dG8gd29yayB3aXRoIHRoZSBjb3JuZXIgY2FzZXMgcmVxdWlyZWQgZm9yIHRoZSBzeW50YXguCgpJ biBhbnkgZXZlbnQsIHRoaXMgaXMgdGhlIGJlaGF2aW9yIEkgc2VlIHRoYXQgZG9lc24ndCBtYWtl IGEgbG90IG9mIHNlbnNlIHRvIG1lLiBHaXZlbiBhIE1BVExBQiBmaWxlIHdpdGggdGhlIGZvbGxv d2luZyBjb250ZW50czoKCiUgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KZnVuY3Rpb24gZm9vYmFyMShhLCBiLCBjKQplbmQKCmZ1bmN0aW9uIGZvb2JhcjIo YSwgYiwgYykKZW5kCgpmdW5jdGlvbiBnZW5fcHVsc2VfYXZnX2xpbl9kYXRhKGEsIGIsIGMpCmVu ZAoKZnVuY3Rpb24gZ2VuX3B1bHNlX2F2Z19sb2dfZGF0YShhLCBiLCBjKQplbmQKCmZ1bmN0aW9u IGdlbl9iZWFtc2hhcnBlbmVkX2RhdGEoYSwgYiwgYykKZW5kCgpmdW5jdGlvbiBmb29iYXIzKGEs IGIsIGMpZW5kCgolIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCgpBcyBwcmVzZW50ZWQsIGltZW514oCLIHdpbGwgZmFpbCBhbmQgb25seSBs aXN0IHRoZSBsYXN0IDMgZnVuY3Rpb25zLiBJbiB0aGUgZm9sbG93aW5nIG5vdGVzLCB0aGUgInJl YWwiIGZ1bmN0aW9ucyBhcmUgZGVmaW5lZCBieSB0aG9zZSB0aGF0IGFyZSBub3QgImZvb2JhciIu IEkgbmVlZGVkIHRvIGNyZWF0ZSBzb21lIGV4cGVyaW1lbnRhbCBwYWRkaW5nLiBTbzoKCi0gSWYg YW55IHNpbmdsZSBjaGFyYWN0ZXIgaW4gZWl0aGVyIG9mIHRoZSB0aHJlZSAicmVhbCIgZnVuY3Rp b24gbmFtZXMgaXMgZGVsZXRlZCwgaW1lbnXigIsgd2lsbCB3b3JrIGFuZCBsaXN0IGFsbCBmdW5j dGlvbnMKLSBJZiBhbnkgYW55IHNpbmdsZSBjaGFyYWN0ZXIgaW4gZWl0aGVyIG9mIHRoZSB0aHJl ZSAicmVhbCIgZnVuY3Rpb24gbmFtZXMgaXMgYWx0ZXJlZCB0byBhbm90aGVyIGNoYXJhY3Rlciwg aW1lbnXigIsgd2lsbCBmYWlsIGFuZCBsaXN0IG9ubHkgdGhlIGxhc3QgMyBmdW5jdGlvbnMuCi0g SWYgYSBjaGFyYWN0ZXIgaXMgYWRkZWQgdG8gdGhlIGZpcnN0IG9mIHRoZSB0aHJlZSByZWFsIGZ1 bmN0aW9uIG5hbWVzLCBpbWVudeKAiyB3aWxsIGZhaWwgYW5kIG9ubHkgbGlzdCB0aGUgbGFzdCAz IGZ1bmN0aW9ucy4KLSBJZiBhIGNoYXJhY3RlciBpcyBhZGRlZCB0byBlaXRoZXIgb2YgdGhlIDJu ZCBvciAzcmQgcmVhbCBmdW5jdGlvbiBuYW1lcywgaW1lbnXigIsgd2lsbCBmYWlsIGFuZCBvbmx5 IGxpc3QgdGhlIGxhc3QgMiBmdW5jdGlvbnMuCgpJdCBqdXN0IHNvIGhhcHBlbnMgdGhhdCB0aGUg dGhyZWUgZ2Vu4oCLIGZ1bmN0aW9ucyBoYXZlIHRoZSBzYW1lIG51bWJlciBvZiBjaGFyYWN0ZXJz LCBhbmQgc28gSSB0aG91Z2h0IGl0IG1pZ2h0IGJlIHJlbGF0ZWQgdG8gaW1lbnUtbWF4LWl0ZW0t bGVuZ3Ro4oCLIGhvd2V2ZXIgdGhhdCB2YWx1ZSBpcyBzZXQgdG8gNjAgY2hhcmFjdGVycyBhbmQg c28gSSBkb24ndCB0aGluayBpdCdzIHJlbGV2YW50LiBJIGNhbid0IHRoaW5rIG9mIGFueSByZWFz b24gd2h5IHRoZSBsaXN0IGNyZWF0aW9uIGlzIHNvIHNlbnNpdGl2ZSB0byB0aGUgdG9rZW4gbGVu Z3RoIGhlcmUuIFBsYXlpbmcgYXJvdW5kIHdpdGggdGhlIHRva2VuIGxlbmd0aCBwcm9kdWNlZCBy ZXN1bHRzIHNvIHN0cmFuZ2UgdGhhdCBJIGNhbm5vdCBldmVuIHNwZWN1bGF0ZSBvbiBhIGJ1ZyB2 ZWN0b3IuCgpJbiBhbnkgZXZlbnQsIGhvcGUgdGhpcyBoZWxwcy4gSXQncyBhIHdlaXJkIG9uZSB0 byBtZS4KCkJlc3QgcmVnYXJkcywKTWFyayBOb3J0b24KClNlbnQgd2l0aCBbUHJvdG9uIE1haWxd KGh0dHBzOi8vcHJvdG9uLm1lL21haWwvaG9tZSkgc2VjdXJlIGVtYWlsLg== --b1=_k7G90lb06e4EkXUzCRQ5U61vqmOHFlH9zi8sL5YZw Content-Type: text/html; charset=utf-8 Content-Transfer-Encoding: base64 PGRpdiBzdHlsZT0iZm9udC1mYW1pbHk6IEFyaWFsLCBzYW5zLXNlcmlmOyBmb250LXNpemU6IDE0 cHg7Ij5Hb29kIG1vcm5pbmcuJm5ic3A7IEkndmUgY2hlY2tlZCB0aGUgYnVnIGFyY2hpdmUgZm9y IDxjb2RlPmltZW51PC9jb2RlPuKAiyZuYnNwO2FuZCBkaWQgbm90IGZpbmQgYW55dGhpbmcgdGhh dCBzZWVtZWQgcmVsYXRlZCB0byB3aGF0IEknbSBzZWVpbmcsIHNvIGdvaW5nIHRvIHRyeSB0byBy ZXBvcnQgdGhpcyB2aWEgdGhlIGVtYWlsIGluIDM0LjMuJm5ic3A7IEhvcGVmdWxseSBJIGNvdmVy IGV2ZXJ5dGhpbmcgbmVjZXNzYXJ5IGluIDM0LjMuJm5ic3A7IEkgY2Fubm90IHVzZSB0aGUgcmVw b3J0IGZ1bmN0aW9uIGFzIEkgZG9uJ3QgaGF2ZSBFbWFjcyBzZXQgdXAgd2l0aCBhIG1haWwgc2Vy dmljZS48L2Rpdj48ZGl2IHN0eWxlPSJmb250LWZhbWlseTogQXJpYWwsIHNhbnMtc2VyaWY7IGZv bnQtc2l6ZTogMTRweDsiPjxicj48L2Rpdj48ZGl2IHN0eWxlPSJmb250LWZhbWlseTogQXJpYWws IHNhbnMtc2VyaWY7IGZvbnQtc2l6ZTogMTRweDsiPjx1bCBkYXRhLWVkaXRpbmctaW5mbz0ieyZx dW90O29yZGVyZWRTdHlsZVR5cGUmcXVvdDs6MSwmcXVvdDt1bm9yZGVyZWRTdHlsZVR5cGUmcXVv dDs6MX0iIHN0eWxlPSJtYXJnaW4tdG9wOiAwcHg7IG1hcmdpbi1ib3R0b206IDBweDsiPjxsaSBz dHlsZT0ibGlzdC1zdHlsZS10eXBlOiBkaXNjOyI+PHNwYW4+RW1hY3MgdmVyc2lvbjogMzAuMTwv c3Bhbj48L2xpPjxsaSBzdHlsZT0ibGlzdC1zdHlsZS10eXBlOiBkaXNjOyI+PHNwYW4+R05VIEVt YWNzIDMwLjEgKGJ1aWxkIDIsIHg4Nl82NC13NjQtbWluZ3czMikgb2YgMjAyNS0wMi0yMzwvc3Bh bj48YnI+PC9saT48bGkgc3R5bGU9Imxpc3Qtc3R5bGUtdHlwZTogZGlzYzsiPjxzcGFuPldpbmRv d3MgT1M8L3NwYW4+PC9saT48L3VsPjxkaXY+PHNwYW4+PGJyPjwvc3Bhbj48L2Rpdj48ZGl2Pjxz cGFuPldoYXQgSSdtIHNlZWluZyBpcyBhIGZhaWx1cmUgaW4gPGNvZGU+aW1lbnU8L2NvZGU+4oCL IHRvIGNyZWF0ZSBhIGNvcnJlY3QgbGlzdCBmb3IgZnVuY3Rpb24gbmFtZXMgdXNpbmcgdGhlIE1B VExBQiBwYWNrYWdlICg8c3Bhbj48YSB0YXJnZXQ9Il9ibGFuayIgcmVsPSJub3JlZmVycmVyIG5v Zm9sbG93IG5vb3BlbmVyIiBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vbWF0aHdvcmtzL0VtYWNz LU1BVExBQi1Nb2RlL2lzc3Vlcy80MiI+aHR0cHM6Ly9naXRodWIuY29tL21hdGh3b3Jrcy9FbWFj cy1NQVRMQUItTW9kZS88L2E+KS4mbmJzcDsgSSd2ZSBiZWVuIHdvcmtpbmcgd2l0aCB0aGUgY3Vy cmVudCBtYWludGFpbmVyIGFuZCBJIGFtIHByZXR0eSBjZXJ0YWluIHRoYXQgdGhpcyBpcyBub3Qg ZGlyZWN0bHkgYSBNQVRMQUIgcGFja2FnZSBpc3N1ZSwgdGhvdWdoIEkgY2Fubm90IHRlbGwgaWYg aXQgaXMgYW4gaW50ZXJhY3Rpb24uJm5ic3A7IFRoZSByZWd1bGFyIGV4cHJlc3Npb24gdG8gaWRl bnRpZnkgdGhlIGZ1bmN0aW9uIG5hbWUgdGhhdCBpcyB0aGUgcG9pbnQgb2YgdGhlIDxjb2RlPmlt ZW51PC9jb2RlPuKAiyBsaXN0IGlzIHByZXR0eSBnbmFybHkgYnV0IHNlZW1zIHRvIHdvcmsgd2l0 aCB0aGUgY29ybmVyIGNhc2VzIHJlcXVpcmVkIGZvciB0aGUgc3ludGF4LiZuYnNwOyZuYnNwOzwv c3Bhbj48L3NwYW4+PC9kaXY+PGRpdj48c3Bhbj48c3Bhbj48YnI+PC9zcGFuPjwvc3Bhbj48L2Rp dj48ZGl2PjxzcGFuPjxzcGFuPkluIGFueSBldmVudCwgdGhpcyBpcyB0aGUgYmVoYXZpb3IgSSBz ZWUgdGhhdCBkb2Vzbid0IG1ha2UgYSBsb3Qgb2Ygc2Vuc2UgdG8gbWUuJm5ic3A7IEdpdmVuIGEg TUFUTEFCIGZpbGUgd2l0aCB0aGUgZm9sbG93aW5nIGNvbnRlbnRzOjwvc3Bhbj48L3NwYW4+PC9k aXY+PGRpdj48c3Bhbj48c3Bhbj48YnI+PC9zcGFuPjwvc3Bhbj48L2Rpdj48ZGl2PjxzcGFuPjxz cGFuPiUgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS08L3Nw YW4+PC9zcGFuPjwvZGl2PjxkaXY+PHNwYW4+PHNwYW4+PHNwYW4+ZnVuY3Rpb24gZm9vYmFyMShh LCBiLCBjKTwvc3Bhbj48ZGl2PjxzcGFuPmVuZDwvc3Bhbj48L2Rpdj48ZGl2Pjxicj48L2Rpdj48 ZGl2PjxzcGFuPmZ1bmN0aW9uIGZvb2JhcjIoYSwgYiwgYyk8L3NwYW4+PC9kaXY+PGRpdj48c3Bh bj5lbmQ8L3NwYW4+PC9kaXY+PGRpdj48YnI+PC9kaXY+PGRpdj48c3Bhbj5mdW5jdGlvbiBnZW5f cHVsc2VfYXZnX2xpbl9kYXRhKGEsIGIsIGMpPC9zcGFuPjwvZGl2PjxkaXY+PHNwYW4+ZW5kPC9z cGFuPjwvZGl2PjxkaXY+PGJyPjwvZGl2PjxkaXY+PHNwYW4+ZnVuY3Rpb24gZ2VuX3B1bHNlX2F2 Z19sb2dfZGF0YShhLCBiLCBjKTwvc3Bhbj48L2Rpdj48ZGl2PjxzcGFuPmVuZDwvc3Bhbj48L2Rp dj48ZGl2Pjxicj48L2Rpdj48ZGl2PjxzcGFuPmZ1bmN0aW9uIGdlbl9iZWFtc2hhcnBlbmVkX2Rh dGEoYSwgYiwgYyk8L3NwYW4+PC9kaXY+PGRpdj48c3Bhbj5lbmQ8L3NwYW4+PC9kaXY+PGRpdj48 YnI+PC9kaXY+PGRpdj48c3Bhbj5mdW5jdGlvbiBmb29iYXIzKGEsIGIsIGMpPC9zcGFuPjwvZGl2 PjxzcGFuPmVuZDwvc3Bhbj48YnI+PC9zcGFuPjwvc3Bhbj48L2Rpdj48ZGl2PjxzcGFuPjxzcGFu PjxzcGFuPiUgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS08L3NwYW4+PC9zcGFuPjwvc3Bhbj48L2Rpdj48L2Rpdj48ZGl2IHN0eWxlPSJmb250 LWZhbWlseTogQXJpYWwsIHNhbnMtc2VyaWY7IGZvbnQtc2l6ZTogMTRweDsiPjxicj48L2Rpdj48 ZGl2IHN0eWxlPSJmb250LWZhbWlseTogQXJpYWwsIHNhbnMtc2VyaWY7IGZvbnQtc2l6ZTogMTRw eDsiPkFzIHByZXNlbnRlZCwgPGNvZGU+aW1lbnU8L2NvZGU+4oCLIHdpbGwgZmFpbCBhbmQgb25s eSBsaXN0IHRoZSBsYXN0IDMgZnVuY3Rpb25zLiZuYnNwOyBJbiB0aGUgZm9sbG93aW5nIG5vdGVz LCB0aGUgInJlYWwiIGZ1bmN0aW9ucyBhcmUgZGVmaW5lZCBieSB0aG9zZSB0aGF0IGFyZSBub3Qg ImZvb2JhciIuJm5ic3A7IEkgbmVlZGVkIHRvIGNyZWF0ZSBzb21lIGV4cGVyaW1lbnRhbCBwYWRk aW5nLiZuYnNwOyBTbzo8L2Rpdj48ZGl2IHN0eWxlPSJmb250LWZhbWlseTogQXJpYWwsIHNhbnMt c2VyaWY7IGZvbnQtc2l6ZTogMTRweDsiPjx1bCBkYXRhLWVkaXRpbmctaW5mbz0ieyZxdW90O29y ZGVyZWRTdHlsZVR5cGUmcXVvdDs6MSwmcXVvdDt1bm9yZGVyZWRTdHlsZVR5cGUmcXVvdDs6MX0i IHN0eWxlPSJtYXJnaW4tdG9wOiAwcHg7IG1hcmdpbi1ib3R0b206IDBweDsiPjxsaSBzdHlsZT0i bGlzdC1zdHlsZS10eXBlOiBkaXNjOyI+PHNwYW4+SWYgYW55IHNpbmdsZSBjaGFyYWN0ZXIgaW4g ZWl0aGVyIG9mIHRoZSB0aHJlZSAicmVhbCIgZnVuY3Rpb24gbmFtZXMgaXMgZGVsZXRlZCwgPGNv ZGU+aW1lbnU8L2NvZGU+4oCLIHdpbGwgd29yayBhbmQgbGlzdCBhbGwgZnVuY3Rpb25zPC9zcGFu PjwvbGk+PGxpIHN0eWxlPSJsaXN0LXN0eWxlLXR5cGU6IGRpc2M7Ij48c3Bhbj5JZiBhbnkgYW55 IHNpbmdsZSBjaGFyYWN0ZXIgaW4gZWl0aGVyIG9mIHRoZSB0aHJlZSAicmVhbCIgZnVuY3Rpb24g bmFtZXMgaXMgYWx0ZXJlZCB0byBhbm90aGVyIGNoYXJhY3RlciwgPGNvZGU+aW1lbnU8L2NvZGU+ 4oCLIHdpbGwgZmFpbCBhbmQgbGlzdCBvbmx5IHRoZSBsYXN0IDMgZnVuY3Rpb25zLjwvc3Bhbj48 L2xpPjxsaSBzdHlsZT0ibGlzdC1zdHlsZS10eXBlOiBkaXNjOyI+PHNwYW4+SWYgYSBjaGFyYWN0 ZXIgaXMgYWRkZWQgdG8gdGhlIGZpcnN0IG9mIHRoZSB0aHJlZSByZWFsIGZ1bmN0aW9uIG5hbWVz LCA8Y29kZT5pbWVudTwvY29kZT7igIsgd2lsbCBmYWlsIGFuZCBvbmx5IGxpc3QgdGhlIGxhc3Qg MyBmdW5jdGlvbnMuPC9zcGFuPjwvbGk+PGxpIHN0eWxlPSJsaXN0LXN0eWxlLXR5cGU6IGRpc2M7 Ij48c3Bhbj5JZiBhIGNoYXJhY3RlciBpcyBhZGRlZCB0byBlaXRoZXIgb2YgdGhlIDJuZCBvciAz cmQgcmVhbCBmdW5jdGlvbiBuYW1lcywgPGNvZGU+aW1lbnU8L2NvZGU+4oCLIHdpbGwgZmFpbCBh bmQgb25seSBsaXN0IHRoZSBsYXN0IDIgZnVuY3Rpb25zLjwvc3Bhbj48L2xpPjwvdWw+PGRpdj48 YnI+PC9kaXY+PGRpdj5JdCBqdXN0IHNvIGhhcHBlbnMgdGhhdCB0aGUgdGhyZWUgPGNvZGU+Z2Vu PC9jb2RlPuKAiyBmdW5jdGlvbnMgaGF2ZSB0aGUgc2FtZSBudW1iZXIgb2YgY2hhcmFjdGVycywg YW5kIHNvIEkgdGhvdWdodCBpdCBtaWdodCBiZSByZWxhdGVkIHRvIDxjb2RlPmltZW51LW1heC1p dGVtLWxlbmd0aDwvY29kZT7igIsgaG93ZXZlciB0aGF0IHZhbHVlIGlzIHNldCB0byA2MCBjaGFy YWN0ZXJzIGFuZCBzbyBJIGRvbid0IHRoaW5rIGl0J3MgcmVsZXZhbnQuJm5ic3A7IEkgY2FuJ3Qg dGhpbmsgb2YgYW55IHJlYXNvbiB3aHkgdGhlIGxpc3QgY3JlYXRpb24gaXMgc28gc2Vuc2l0aXZl IHRvIHRoZSB0b2tlbiBsZW5ndGggaGVyZS4mbmJzcDsgUGxheWluZyBhcm91bmQgd2l0aCB0aGUg dG9rZW4gbGVuZ3RoIHByb2R1Y2VkIHJlc3VsdHMgc28gc3RyYW5nZSB0aGF0IEkgY2Fubm90IGV2 ZW4gc3BlY3VsYXRlIG9uIGEgYnVnIHZlY3Rvci48L2Rpdj48ZGl2Pjxicj48L2Rpdj48ZGl2Pklu IGFueSBldmVudCwgaG9wZSB0aGlzIGhlbHBzLiZuYnNwOyBJdCdzIGEgd2VpcmQgb25lIHRvIG1l LjwvZGl2PjxkaXY+PGJyPjwvZGl2PjxkaXY+QmVzdCByZWdhcmRzLDwvZGl2PjxkaXY+TWFyayBO b3J0b248L2Rpdj48L2Rpdj48ZGl2IHN0eWxlPSJmb250LWZhbWlseTogQXJpYWwsIHNhbnMtc2Vy aWY7IGZvbnQtc2l6ZTogMTRweDsiPjxicj48L2Rpdj48ZGl2IHN0eWxlPSJmb250LWZhbWlseTog QXJpYWwsIHNhbnMtc2VyaWY7IGZvbnQtc2l6ZTogMTRweDsiPjxicj48L2Rpdj48ZGl2IHN0eWxl PSJmb250LWZhbWlseTogQXJpYWwsIHNhbnMtc2VyaWY7IGZvbnQtc2l6ZTogMTRweDsiPjxicj48 L2Rpdj4NCjxkaXYgY2xhc3M9InByb3Rvbm1haWxfc2lnbmF0dXJlX2Jsb2NrIiBzdHlsZT0iZm9u dC1mYW1pbHk6IEFyaWFsLCBzYW5zLXNlcmlmOyBmb250LXNpemU6IDE0cHg7Ij4NCiAgICA8ZGl2 IGNsYXNzPSJwcm90b25tYWlsX3NpZ25hdHVyZV9ibG9jay11c2VyIHByb3Rvbm1haWxfc2lnbmF0 dXJlX2Jsb2NrLWVtcHR5Ij4NCiAgICAgICAgDQogICAgICAgICAgICA8L2Rpdj4NCiAgICANCiAg ICAgICAgICAgIDxkaXYgY2xhc3M9InByb3Rvbm1haWxfc2lnbmF0dXJlX2Jsb2NrLXByb3RvbiI+ DQogICAgICAgIFNlbnQgd2l0aCA8YSB0YXJnZXQ9Il9ibGFuayIgaHJlZj0iaHR0cHM6Ly9wcm90 b24ubWUvbWFpbC9ob21lIj5Qcm90b24gTWFpbDwvYT4gc2VjdXJlIGVtYWlsLg0KICAgIDwvZGl2 Pg0KPC9kaXY+DQo= --b1=_k7G90lb06e4EkXUzCRQ5U61vqmOHFlH9zi8sL5YZw-- From unknown Sun Jun 22 11:48:39 2025 X-Loop: help-debbugs@gnu.org Subject: bug#78612: imenu list generation failing on some items of similar quality Resent-From: Eli Zaretskii Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Wed, 28 May 2025 12:10:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 78612 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: mdnorton Cc: 78612@debbugs.gnu.org Received: via spool by 78612-submit@debbugs.gnu.org id=B78612.1748434143772 (code B ref 78612); Wed, 28 May 2025 12:10:02 +0000 Received: (at 78612) by debbugs.gnu.org; 28 May 2025 12:09:03 +0000 Received: from localhost ([127.0.0.1]:51647 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1uKFag-0000C8-1I for submit@debbugs.gnu.org; Wed, 28 May 2025 08:09:03 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:54564) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from ) id 1uKFaa-0000AT-Sj for 78612@debbugs.gnu.org; Wed, 28 May 2025 08:08:58 -0400 Received: from fencepost.gnu.org ([2001:470:142:3::e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1uKFaT-0002tK-N4; Wed, 28 May 2025 08:08:49 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=MIME-version:References:Subject:In-Reply-To:To:From: Date; bh=FSpsIiyTjb+joRfxFyEpHEbcY3otKkIAcDJdCrcNyjQ=; b=If6WXRDl6Z66YDOCC3Ox +s76zYQNFADS+vBs01uZ4FpJdU2h0ofoG6tPyVn5YBvJ4jiEhLfO8kSnwIK77BKzHp8BFO8z3vuVG vvXnpOUOCICz2l8L7gJCNuyZBex2YnhMYGlCMpl/kuY3/m8FSOSO1i/BkyUjfndln8hewQFZs8TEJ 366XhmCa+RFW/odqchXnu4U+Q+yYdNBXmeBi9f435giDUnuAyJsNEucqj/LSboFDKqPw4sS7IUoeY L1NHhhilEVzzt9q21ZWKqiW0urzl7jO+ShVYYFR3TZRirlW6/eJlJs8XpSPnT63TXODCrCFKgqAnU vRVbC3Ns5Jahyg==; Date: Wed, 28 May 2025 15:08:42 +0300 Message-Id: <86ldqhvsxh.fsf@gnu.org> From: Eli Zaretskii In-Reply-To: (bug-gnu-emacs@gnu.org) References: MIME-version: 1.0 Content-type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Spam-Score: -2.3 (--) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) > Date: Tue, 27 May 2025 17:54:05 +0000 > From: mdnorton via "Bug reports for GNU Emacs, > the Swiss army knife of text editors" > > * Emacs version: 30.1 > * GNU Emacs 30.1 (build 2, x86_64-w64-mingw32) of 2025-02-23 > * Windows OS > > What I'm seeing is a failure in imenu​ to create a correct list for function names using the MATLAB package > (https://github.com/mathworks/Emacs-MATLAB-Mode/). I've been working with the current maintainer and I > am pretty certain that this is not directly a MATLAB package issue, though I cannot tell if it is an interaction. > The regular expression to identify the function name that is the point of the imenu​ list is pretty gnarly but > seems to work with the corner cases required for the syntax. > > In any event, this is the behavior I see that doesn't make a lot of sense to me. Given a MATLAB file with the > following contents: > > % ----------------------------------------------- > function foobar1(a, b, c) > end > > function foobar2(a, b, c) > end > > function gen_pulse_avg_lin_data(a, b, c) > end > > function gen_pulse_avg_log_data(a, b, c) > end > > function gen_beamsharpened_data(a, b, c) > end > > function foobar3(a, b, c) > end > % -------------------------------------------------------- > > As presented, imenu​ will fail and only list the last 3 functions. I cannot reproduce this: in my testing imenu finds all of the functions in this file. But since you haven't presented a complete recipe for reproducing the problem, I cannot be sure I did the same as you do. Here's what I did: emacs -Q M-: (add-to-list 'load-path "/path/to/Emacs-MATLAB-Mode/") RET M-x load-file RET /path/to/Emacs-MATLAB-Mode/matlab-autoload.el RET C-x C-f testimenu.m RET M-x imenu RET foobar3 RET M-x imenu-add-menubar-index RET Click mouse on the menubar's Imenu item (where testimenu.m is the file with the contents you posted above). At this point I see all the functions in the file in the menu that Emacs drops down. If you run the same recipe as I did, do you still see the problem? From unknown Sun Jun 22 11:48:39 2025 X-Loop: help-debbugs@gnu.org Subject: bug#78612: imenu list generation failing on some items of similar quality Resent-From: Eli Zaretskii Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Thu, 29 May 2025 13:18:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 78612 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: mdnorton Cc: 78612@debbugs.gnu.org Received: via spool by 78612-submit@debbugs.gnu.org id=B78612.174852462628667 (code B ref 78612); Thu, 29 May 2025 13:18:01 +0000 Received: (at 78612) by debbugs.gnu.org; 29 May 2025 13:17:06 +0000 Received: from localhost ([127.0.0.1]:35351 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1uKd85-0007SH-4v for submit@debbugs.gnu.org; Thu, 29 May 2025 09:17:05 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:50112) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from ) id 1uKd81-0007R0-Bi for 78612@debbugs.gnu.org; Thu, 29 May 2025 09:17:02 -0400 Received: from fencepost.gnu.org ([2001:470:142:3::e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1uKd7u-0003Yj-MS; Thu, 29 May 2025 09:16:54 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=MIME-Version:References:Subject:In-Reply-To:To:From: Date; bh=vjwJAO3s9O4LK2HcY1rx3BTpj/+JA7BKyWI/G+lslys=; b=VhXyJb8jkUWLVQcaQ5Av xZVIICNvw+6B41OKlcPkfOyiShy001eRrTOiM7A9mz2ieO4cZUF3rCCGzUJfhIoKpXG0HvTTVBOfQ YutZH0WVj7cQtsBq/F6x5hgewnZAnT+AzeBNQ1ojUrRjSARG4sKyXGohK8PO/+eNuzBr8VRAzdBOh S0OL/SHl0DJ4nGwW+p9C9T4o8TWdPIgAYJIsMXXtmTeubphfFF2Gfy2gOFLailgJcRLo5lonsy4eK SjzSDoVQdpfdKWiE9LVkxGYloczmf1z6cqkl6MLiHk+ZUTq+Qjr24tNKgmxRp1dG5GS1sDi9es0LE 5vwJbnV2VjGn5Q==; Date: Thu, 29 May 2025 16:16:52 +0300 Message-Id: <86ikljv9ob.fsf@gnu.org> From: Eli Zaretskii In-Reply-To: <-KBcJGlsQJaA4hR5G6zqz1hVpIqIgMEuSEeh0hqV3Y8WmZdUBxetCfjwInhzXnouYQjJO6LzbPK18xsZi2B2MQPGjyqxvaXs5N2onenbsX8=@proton.me> (message from mdnorton on Thu, 29 May 2025 12:42:07 +0000) References: <86ldqhvsxh.fsf@gnu.org> <-KBcJGlsQJaA4hR5G6zqz1hVpIqIgMEuSEeh0hqV3Y8WmZdUBxetCfjwInhzXnouYQjJO6LzbPK18xsZi2B2MQPGjyqxvaXs5N2onenbsX8=@proton.me> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="=-=-=" X-Spam-Score: -2.3 (--) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) --=-=-= Content-Type: text/plain [Please use Reply All to replay, to keep the bug tracker CC'ed.] > Date: Thu, 29 May 2025 12:42:07 +0000 > From: mdnorton > > Thank you for looking into this. I performed the steps as indicated (with my own variation -- I called the file foo2.m for example). I do NOT get your results. > > Attached a snapshot of the imenu entry that shows the results, and you can see only the 3 last entries. > > At this point, I do think this is probably an interaction, though I don't know exactly how much to partition to imenu and matlab-mode. While John Ciolfi and I were swapping debug details on this issue in the Emacs-MATLAB-Mode Github repo (https://github.com/mathworks/Emacs-MATLAB-Mode/issues/42) he did note that the particularly gnarly regex had a trackback due to the way MATLAB handles line extensions (a three character sequence of periods "...") and he'd gone with a somewhat simpler one that doesn't handle ever case. I'm still at the commit I'm using currently as I've not had a chance to repull the repository and experiment. > > Look-backs in a regex state machine are kind of notorious for having the potential for going off the rails. However, should a malfunctioning regex be able to eliminate entries in imenu? I suppose that's the bug that I believe might be in imenu. Perhaps imenu is entirely at the mercy of the imenu-generic-expression regex, and if that regex has problems, then imenu's behavior is undefined. If that's the case, then that's the way it's been written and it's upon the package developer to create a better working regex. However my speculation (because I am not great at Elisp and have not dug into the code here for imenu) is that imenu operates serially through the buffer characters applying the regex, and then adding list items as it finds them. So, should a malfunctioning regex be capable of removing PRIOR list items imenu has discovered (assuming my speculation on how it works is correct)? How should imenu behave when the regex has issues? > > In any event, I will update my clone of the Emacs-MATLAB-Mode repository and then I'll have John's newest simpler regex which will work for my purposes (I don't use the crazy cases of line continuation he was trying to cover.) So maybe this is just a case where imenu is as the mercy of a regex and gracefully recovering from that is difficult to impossible to do. Just figured I'd report and alert in case there was a fundamental behavior issue, and if it's a case that code cannot anticipate and recover from and that's accepted, then that's alright. I know it's impossible to foolproof everything! > > Details about this particular regex at this SHA below: > > The SHA that I'm at is eea387. Just for reference, this is the contents of imenu-generic-expression for this commit. Note, there are literal ^M characters in there, so those have been transcribed to string "^M" which isn't really the same thing, but required for the email environment. > > Value in # > ((nil > "^[[:blank:]]*function\\>\\(?:\\(?:[]\\[a-zA-Z0-9_,[:blank:]]*\\(?:\\.\\.\\.[[:blank:]]*\\(?:%[^^M\n]*\\)?^M?\n\\)?\\)+[[:blank:]]*=\\)?\\(?:[[:blank:]]*\\(?:\\.\\.\\.[[:blank:]]*\\(?:%[^^M\n]*\\)?^M?\n\\)?\\)*[\\.[:space:]\n^M]*\\([a-zA-Z][a-zA-Z0-9_]+\\)" > 1)) > > And, the bit of matlab.el at this commit that creates this (because it's a bit easier to read than the non-evaluated string regex (even the evaluated string regex is pretty rough). There are literal ^M's here too however they just show up as whitespace in the Elisp. > > ;; ----------------- > ;; | Imenu support | > ;; ----------------- > ;; Example functions we match, f0, f1, f2, f3, f4, f5, F6, g4 > ;; function f0 > ;; function... > ;; a = f1 > ;; function f2 > ;; function x = ... > ;; f3 > ;; function [a, ... > ;; b ] ... > ;; = ... > ;; f4(c) > ;; function a = F6 > ;; function [ ... > ;; a, ... % comment for a > ;; b ... % comment for b > ;; ] ... > ;; = ... > ;; g4(c) > ;; > (defvar matlab-imenu-generic-expression > ;; Using concat to increase indentation and improve readability > `(,(list nil (concat > "^[[:blank:]]*" > "function\\>" > > ;; Optional return args, function ARGS = NAME. Capture the 'ARGS =' > (concat "\\(?:" > > ;; ARGS can span multiple lines > (concat "\\(?:" > ;; valid ARGS chars: "[" "]" variables "," space, tab > "[]\\[a-zA-Z0-9_,[:blank:]]*" > ;; Optional continue to next line "..." or "... % comment" > "\\(?:" matlab--ellipsis-to-eol-re "\\)?" > "\\)+") > > ;; ARGS must be preceeded by the assignment operator, "=" > "[[:blank:]]*=" > > "\\)?") > > ;; Optional space/tabs or '...' continuation > (concat "\\(?:" > "[[:blank:]]*" > "\\(?:" matlab--ellipsis-to-eol-re "\\)?" > "\\)*") > > "[\\.[:space:]\n\r]*" > "\\([a-zA-Z][a-zA-Z0-9_]+\\)" ;; function NAME > ) > 1)) > "Regexp to find function names in *.m files for `imenu'.") I used the latest commit from the 'default' branch of the repository, which is one commit ahead of yours. So maybe the recent changes to the package solved this problem. Please try the latest Git. --=-=-= Content-Type: image/png Content-Disposition: attachment; filename=image.png Content-Transfer-Encoding: base64 iVBORw0KGgoAAAANSUhEUgAAASoAAACjCAYAAAA98lOLAAAAAXNSR0IArs4c6QAAAARnQU1BAACx jwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAABenSURBVHhe7Z1tcFVFmsefXMAI6iiiH3BqV5wk DmQSp9TSSnAwRZUfAkWMazHulx11MIYpWRiICVXsLOu4rJUqyAImy+wYI6vUflllLWLYJLXlbia4 AourliYGNMmIu4NWWSK+UCOQkLv99O2+t++555z7kvvS997/r6pzuvv0OafPyen/fZ7OTT8ly5cv D5INlJRQ4IaF9L0Fc1RFNNN/PEfnv5gmmmVvr7zySpqamlKlbHAtXS67g9bedh0tWLBA1dnP5OQk VVZWqhKwhRIxTooNvueSJUuW2CFUAADgQUBtAQDAWiBUAADrgVABAKwHQgUAsB4IFQDAeiBUAADr gVABAKwHQgUAsB4IFQDAeqRQvfrqqzQ0NCQrNFzmeoa3H3/8sUy63V133SXLjz76qCwznOc63vf0 00+H8050O94+//zz4etouOyse+edd2R7faxObucHABQWUqgefPBBuvbaa6UIMLzlMtczZ8+epVtu uUUmhkXorbfeogMHDtAjjzwi6xjOcx3v02zbtk3lItx///0qR9Td3U1LlixRpRBcNuu0GL344oty q/vy+uuv086dO2UdAKBwCbBFw3R2dtKmTZtknrdc1jz++OMqRzQxMUE33XSTzD/11FNyy8LFidF1 zLvvvku33367KkVgETp9+rTMa1HTYsTbr7/+Opxn1qxZE26vxYp58803VQ4AUMgEFi1aJDMsACwQ 7NqxKJiCYMLtP/30U1Uieumll6ihoUGmrVu3qtoILFZaxBgWxrfffluVQvD1WIyY5uZmKYZmXXV1 NY2MjMi8CVtm3BYAUNgEFi5cqLIkhYatnfb2dlUTDQsOtzetJhY0FhVOpsunee211+jee+9VJaI7 77wzykJjWIRYjJjy8nJpKZl13KfDhw/LPMPzVTw/xW2c5wIAFB6Bc+fOqSzJ+R62gNzmfXhym4Vj 5cqVqiYEz2exeLGY6DkuE22Z8T4WOhY0JyxCek6Kt3yMrtPunymCd9xxh5yj4v6waAEACpuAdqm0 e+acWGfYHeR2enLdhOez2P3r6+uLmlg3OXLkiHTT2LJiC8sJixC7newWslDqOoZdQTdxY3R/tJgB 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 TkSuQmCC --=-=-=-- From unknown Sun Jun 22 11:48:39 2025 X-Loop: help-debbugs@gnu.org Subject: bug#78612: imenu list generation failing on some items of similar quality Resent-From: mdnorton Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Thu, 29 May 2025 17:58:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 78612 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: Eli Zaretskii Cc: 78612@debbugs.gnu.org Received: via spool by 78612-submit@debbugs.gnu.org id=B78612.17485414533628 (code B ref 78612); Thu, 29 May 2025 17:58:02 +0000 Received: (at 78612) by debbugs.gnu.org; 29 May 2025 17:57:33 +0000 Received: from localhost ([127.0.0.1]:38630 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1uKhVU-0000wS-CU for submit@debbugs.gnu.org; Thu, 29 May 2025 13:57:32 -0400 Received: from mail-24418.protonmail.ch ([109.224.244.18]:11117) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from ) id 1uKhVR-0000ve-Ez for 78612@debbugs.gnu.org; Thu, 29 May 2025 13:57:31 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=proton.me; s=protonmail; t=1748541442; x=1748800642; bh=eXlSr3zeafs838XlWudBJ/j+xWDD/GzF7c1USNdUDbc=; h=Date:To:From:Cc:Subject:Message-ID:In-Reply-To:References: Feedback-ID:From:To:Cc:Date:Subject:Reply-To:Feedback-ID: Message-ID:BIMI-Selector:List-Unsubscribe:List-Unsubscribe-Post; b=h2iiMjuAxIGrMULprAIGFyofi3+lFAh/vijrt4INR9ybHBI7ajZl1d5xHOagKzuf+ uwSzrHOF6VTiG0BkJyYEuQ8D0GmrUV0IcKmAPYxo33DM08ll0VU6bQtPphsq8zwOvy c0MpNuNswWpbngMmnK6FocUc9o9Fp+OcG0BSSzvAf/cLGxhum/msv9iY8qZF2i0ndq tluA4f1ag/l3GYnNgLiBx0CdO2WW+LBxLXfNE/llFNlyWkGDBmqv5RUqtAB1qrX0qZ M2+601Xr6NgmJWka6u0HMUORV5YWAnQZIjm2ODqlYCPMa33UN4FKa2Qj+QAl/JgbSM FUhQMDEJ6malQ== Date: Thu, 29 May 2025 17:57:17 +0000 From: mdnorton Message-ID: In-Reply-To: <86ikljv9ob.fsf@gnu.org> References: <86ldqhvsxh.fsf@gnu.org> <-KBcJGlsQJaA4hR5G6zqz1hVpIqIgMEuSEeh0hqV3Y8WmZdUBxetCfjwInhzXnouYQjJO6LzbPK18xsZi2B2MQPGjyqxvaXs5N2onenbsX8=@proton.me> <86ikljv9ob.fsf@gnu.org> Feedback-ID: 113491323:user:proton X-Pm-Message-ID: 2a8c94b4023856fb06a7365ac80dc6a8c7b17311 MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Spam-Score: 0.0 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) Yes, the latest version seems to do what is necessary. That solves the ini= tial issue, and I suppose imenu is just deeply reliant on a good regex for = predictable behavior. Thanks for considering this problem. Sent with Proton Mail secure email. On Thursday, May 29th, 2025 at 8:16 AM, Eli Zaretskii wrote: > [Please use Reply All to replay, to keep the bug tracker CC'ed.] >=20 > > Date: Thu, 29 May 2025 12:42:07 +0000 > > From: mdnorton mdnorton@proton.me > >=20 > > Thank you for looking into this. I performed the steps as indicated (wi= th my own variation -- I called the file foo2.m for example). I do NOT get = your results. > >=20 > > Attached a snapshot of the imenu entry that shows the results, and you = can see only the 3 last entries. > >=20 > > At this point, I do think this is probably an interaction, though I don= 't know exactly how much to partition to imenu and matlab-mode. While John = Ciolfi and I were swapping debug details on this issue in the Emacs-MATLAB-= Mode Github repo (https://github.com/mathworks/Emacs-MATLAB-Mode/issues/42)= he did note that the particularly gnarly regex had a trackback due to the = way MATLAB handles line extensions (a three character sequence of periods "= ...") and he'd gone with a somewhat simpler one that doesn't handle ever ca= se. I'm still at the commit I'm using currently as I've not had a chance to= repull the repository and experiment. > >=20 > > Look-backs in a regex state machine are kind of notorious for having th= e potential for going off the rails. However, should a malfunctioning regex= be able to eliminate entries in imenu? I suppose that's the bug that I bel= ieve might be in imenu. Perhaps imenu is entirely at the mercy of the imenu= -generic-expression regex, and if that regex has problems, then imenu's beh= avior is undefined. If that's the case, then that's the way it's been writt= en and it's upon the package developer to create a better working regex. Ho= wever my speculation (because I am not great at Elisp and have not dug into= the code here for imenu) is that imenu operates serially through the buffe= r characters applying the regex, and then adding list items as it finds the= m. So, should a malfunctioning regex be capable of removing PRIOR list item= s imenu has discovered (assuming my speculation on how it works is correct)= ? How should imenu behave when the regex has issues? > >=20 > > In any event, I will update my clone of the Emacs-MATLAB-Mode repositor= y and then I'll have John's newest simpler regex which will work for my pur= poses (I don't use the crazy cases of line continuation he was trying to co= ver.) So maybe this is just a case where imenu is as the mercy of a regex a= nd gracefully recovering from that is difficult to impossible to do. Just f= igured I'd report and alert in case there was a fundamental behavior issue,= and if it's a case that code cannot anticipate and recover from and that's= accepted, then that's alright. I know it's impossible to foolproof everyth= ing! > >=20 > > Details about this particular regex at this SHA below: > >=20 > > The SHA that I'm at is eea387. Just for reference, this is the contents= of imenu-generic-expression for this commit. Note, there are literal ^M ch= aracters in there, so those have been transcribed to string "^M" which isn'= t really the same thing, but required for the email environment. > >=20 > > Value in # > > ((nil > > "^[[:blank:]]function\\>\\(?:\\(?:[]\\[a-zA-Z0-9_,[:blank:]]\\(?:\\.\\.= \\.[[:blank:]]\\(?:%[^^M\n]\\)?^M?\n\\)?\\)+[[:blank:]]=3D\\)?\\(?:[[:blank= :]]\\(?:\\.\\.\\.[[:blank:]]\\(?:%[^^M\n]\\)?^M?\n\\)?\\)[\\.[:space:]\n^M]= \\([a-zA-Z][a-zA-Z0-9_]+\\)" > > 1)) > >=20 > > And, the bit of matlab.el at this commit that creates this (because it'= s a bit easier to read than the non-evaluated string regex (even the evalua= ted string regex is pretty rough). There are literal ^M's here too however = they just show up as whitespace in the Elisp. > >=20 > > ;; ----------------- > > ;; | Imenu support | > > ;; ----------------- > > ;; Example functions we match, f0, f1, f2, f3, f4, f5, F6, g4 > > ;; function f0 > > ;; function... > > ;; a =3D f1 > > ;; function f2 > > ;; function x =3D ... > > ;; f3 > > ;; function [a, ... > > ;; b ] ... > > ;; =3D ... > > ;; f4(c) > > ;; function a =3D F6 > > ;; function [ ... > > ;; a, ... % comment for a > > ;; b ... % comment for b > > ;; ] ... > > ;; =3D ... > > ;; g4(c) > > ;; > > (defvar matlab-imenu-generic-expression > > ;; Using concat to increase indentation and improve readability > > `(,(list nil (concat > > "^[[:blank:]]*" > > "function\\>" > >=20 > > ;; Optional return args, function ARGS =3D NAME. Capture the 'ARGS =3D' > > (concat "\\(?:" > >=20 > > ;; ARGS can span multiple lines > > (concat "\\(?:" > > ;; valid ARGS chars: "[" "]" variables "," space, tab > > "[]\\[a-zA-Z0-9_,[:blank:]]*" > > ;; Optional continue to next line "..." or "... % comment" > > "\\(?:" matlab--ellipsis-to-eol-re "\\)?" > > "\\)+") > >=20 > > ;; ARGS must be preceeded by the assignment operator, "=3D" > > "[[:blank:]]*=3D" > >=20 > > "\\)?") > >=20 > > ;; Optional space/tabs or '...' continuation > > (concat "\\(?:" > > "[[:blank:]]" > > "\\(?:" matlab--ellipsis-to-eol-re "\\)?" > > "\\)") > >=20 > > "[\\.[:space:]\n\r]*" > > "\\([a-zA-Z][a-zA-Z0-9_]+\\)" ;; function NAME > > ) > > 1)) > > "Regexp to find function names in *.m files for `imenu'.") >=20 >=20 > I used the latest commit from the 'default' branch of the repository, > which is one commit ahead of yours. So maybe the recent changes to > the package solved this problem. Please try the latest Git. From unknown Sun Jun 22 11:48:39 2025 MIME-Version: 1.0 X-Mailer: MIME-tools 5.505 (Entity 5.505) X-Loop: help-debbugs@gnu.org From: help-debbugs@gnu.org (GNU bug Tracking System) To: mdnorton Subject: bug#78612: closed (Re: bug#78612: imenu list generation failing on some items of similar quality) Message-ID: References: <86sekmtw1b.fsf@gnu.org> X-Gnu-PR-Message: they-closed 78612 X-Gnu-PR-Package: emacs Reply-To: 78612@debbugs.gnu.org Date: Fri, 30 May 2025 07:10:02 +0000 Content-Type: multipart/mixed; boundary="----------=_1748589002-15277-1" This is a multi-part message in MIME format... ------------=_1748589002-15277-1 Content-Disposition: inline Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Your bug report #78612: imenu list generation failing on some items of similar quality which was filed against the emacs package, has been closed. The explanation is attached below, along with your original report. If you require more details, please reply to 78612@debbugs.gnu.org. --=20 78612: https://debbugs.gnu.org/cgi/bugreport.cgi?bug=3D78612 GNU Bug Tracking System Contact help-debbugs@gnu.org with problems ------------=_1748589002-15277-1 Content-Type: message/rfc822 Content-Disposition: inline Content-Transfer-Encoding: 7bit Received: (at 78612-done) by debbugs.gnu.org; 30 May 2025 07:09:15 +0000 Received: from localhost ([127.0.0.1]:44696 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1uKtre-0003v7-Pj for submit@debbugs.gnu.org; Fri, 30 May 2025 03:09:15 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:34084) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from ) id 1uKtrb-0003uF-NY for 78612-done@debbugs.gnu.org; Fri, 30 May 2025 03:09:13 -0400 Received: from fencepost.gnu.org ([2001:470:142:3::e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1uKtrW-0006Rv-0b; Fri, 30 May 2025 03:09:06 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=References:Subject:In-Reply-To:To:From:Date: mime-version; bh=SSQIudd8Z4zH2tjsYY3oh+tYTL37kN8XnDIjW8923Uw=; b=rWH5hBQGZrD3 wauyCaJb7uhQ8wnWq9HZjsBxf8sALksgflCakFdVyxMT1ZDRDin4Vl+S9+k80iZnK+Ll9PKn/RfQ8 3r0520od6VqiFpqJC4fxQ/QcKaiZ6YTuiTTXGNWCS7ik67gLPnhL8AFk1rjQYLuPvzCW2k1czNlP0 SckCCVZp6mGeQwST+vS72q3fBBVWaGAiHUStpTSszRLQFVkc4D50VuPZrieD7N19D+ypnrhJ83hm6 hSg9ecXwLImvAI6h2Qe3pLRJsYSt/1G2vVoRlYAeF9Jjt+5NenCiniHdAi0pv1SNh1R7vCNz+YQ+y Xg84kl1urgmXTpRHQMqNBQ==; Date: Fri, 30 May 2025 10:09:04 +0300 Message-Id: <86sekmtw1b.fsf@gnu.org> From: Eli Zaretskii To: mdnorton In-Reply-To: (message from mdnorton on Thu, 29 May 2025 17:57:17 +0000) Subject: Re: bug#78612: imenu list generation failing on some items of similar quality References: <86ldqhvsxh.fsf@gnu.org> <-KBcJGlsQJaA4hR5G6zqz1hVpIqIgMEuSEeh0hqV3Y8WmZdUBxetCfjwInhzXnouYQjJO6LzbPK18xsZi2B2MQPGjyqxvaXs5N2onenbsX8=@proton.me> <86ikljv9ob.fsf@gnu.org> X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 78612-done Cc: 78612-done@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) > Date: Thu, 29 May 2025 17:57:17 +0000 > From: mdnorton > Cc: 78612@debbugs.gnu.org > > Yes, the latest version seems to do what is necessary. That solves the initial issue, and I suppose imenu is just deeply reliant on a good regex for predictable behavior. Thanks for considering this problem. Thanks, I'm therefore closing this bug. ------------=_1748589002-15277-1 Content-Type: message/rfc822 Content-Disposition: inline Content-Transfer-Encoding: 7bit Received: (at submit) by debbugs.gnu.org; 28 May 2025 01:45:23 +0000 Received: from localhost ([127.0.0.1]:47066 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1uK5r7-0007j2-Ix for submit@debbugs.gnu.org; Tue, 27 May 2025 21:45:23 -0400 Received: from lists.gnu.org ([2001:470:142::17]:47606) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from ) id 1uJyVO-0005xu-3Q for submit@debbugs.gnu.org; Tue, 27 May 2025 13:54:28 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1uJyVH-0000fl-RZ for bug-gnu-emacs@gnu.org; Tue, 27 May 2025 13:54:19 -0400 Received: from mail-4322.protonmail.ch ([185.70.43.22]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1uJyVD-0004RT-Mq for bug-gnu-emacs@gnu.org; Tue, 27 May 2025 13:54:19 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=proton.me; s=protonmail; t=1748368451; x=1748627651; bh=0lOlcpvzHfZdcNT90U39hhnkFzcEDFrXJfa+ch3sE6g=; h=Date:To:From:Subject:Message-ID:Feedback-ID:From:To:Cc:Date: Subject:Reply-To:Feedback-ID:Message-ID:BIMI-Selector: List-Unsubscribe:List-Unsubscribe-Post; b=lqkYF5D7MNzgb4Fc+L5rdPsSJpLgIZ5wx2UNg+qnvQdJeNDYLV1yQzZq99/O5VYZP /tKDMGQWs3hqTjtplK6hLCsxg5ykQgsXoB1OxoA94vsE3Lvt5xQqQyQEteRaasyrLJ S/dg56wTHnTBI1lJLJx+LQvpf/muFzJqrAfSmaBHeNU6QKKYGuK4z1nRflnEVzrZzV S4Yd1s3o+IVWuCFzVLH7kWrHBfMam0z1YPfnK+MlaIvMo4anVYJXY3TWLr0lJYNhGp 1rH/NJi3zbDtJOfr0/eVOyuCXq7R1oNR0qDzDEn9EPYNNL5iSHWOkbnwxwghIu78UP QVUYWNMbek30g== Date: Tue, 27 May 2025 17:54:05 +0000 To: "bug-gnu-emacs@gnu.org" From: mdnorton Subject: imenu list generation failing on some items of similar quality Message-ID: Feedback-ID: 113491323:user:proton X-Pm-Message-ID: 02d92b86c98cdaaa9d1c4beaa56a7ea9a47d5b24 MIME-Version: 1.0 Content-Type: multipart/alternative; boundary="b1=_k7G90lb06e4EkXUzCRQ5U61vqmOHFlH9zi8sL5YZw" Received-SPF: pass client-ip=185.70.43.22; envelope-from=mdnorton@proton.me; helo=mail-4322.protonmail.ch X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H4=0.001, RCVD_IN_MSPIKE_WL=0.001, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-Spam-Score: 1.0 (+) X-Debbugs-Envelope-To: submit X-Mailman-Approved-At: Tue, 27 May 2025 21:45:20 -0400 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -0.0 (/) --b1=_k7G90lb06e4EkXUzCRQ5U61vqmOHFlH9zi8sL5YZw Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: base64 R29vZCBtb3JuaW5nLiBJJ3ZlIGNoZWNrZWQgdGhlIGJ1ZyBhcmNoaXZlIGZvciBpbWVudeKAiyBh bmQgZGlkIG5vdCBmaW5kIGFueXRoaW5nIHRoYXQgc2VlbWVkIHJlbGF0ZWQgdG8gd2hhdCBJJ20g c2VlaW5nLCBzbyBnb2luZyB0byB0cnkgdG8gcmVwb3J0IHRoaXMgdmlhIHRoZSBlbWFpbCBpbiAz NC4zLiBIb3BlZnVsbHkgSSBjb3ZlciBldmVyeXRoaW5nIG5lY2Vzc2FyeSBpbiAzNC4zLiBJIGNh bm5vdCB1c2UgdGhlIHJlcG9ydCBmdW5jdGlvbiBhcyBJIGRvbid0IGhhdmUgRW1hY3Mgc2V0IHVw IHdpdGggYSBtYWlsIHNlcnZpY2UuCgotIEVtYWNzIHZlcnNpb246IDMwLjEKLSBHTlUgRW1hY3Mg MzAuMSAoYnVpbGQgMiwgeDg2XzY0LXc2NC1taW5ndzMyKSBvZiAyMDI1LTAyLTIzCgotIFdpbmRv d3MgT1MKCldoYXQgSSdtIHNlZWluZyBpcyBhIGZhaWx1cmUgaW4gaW1lbnXigIsgdG8gY3JlYXRl IGEgY29ycmVjdCBsaXN0IGZvciBmdW5jdGlvbiBuYW1lcyB1c2luZyB0aGUgTUFUTEFCIHBhY2th Z2UgKFtodHRwczovL2dpdGh1Yi5jb20vbWF0aHdvcmtzL0VtYWNzLU1BVExBQi1Nb2RlL10oaHR0 cHM6Ly9naXRodWIuY29tL21hdGh3b3Jrcy9FbWFjcy1NQVRMQUItTW9kZS9pc3N1ZXMvNDIpKS4g SSd2ZSBiZWVuIHdvcmtpbmcgd2l0aCB0aGUgY3VycmVudCBtYWludGFpbmVyIGFuZCBJIGFtIHBy ZXR0eSBjZXJ0YWluIHRoYXQgdGhpcyBpcyBub3QgZGlyZWN0bHkgYSBNQVRMQUIgcGFja2FnZSBp c3N1ZSwgdGhvdWdoIEkgY2Fubm90IHRlbGwgaWYgaXQgaXMgYW4gaW50ZXJhY3Rpb24uIFRoZSBy ZWd1bGFyIGV4cHJlc3Npb24gdG8gaWRlbnRpZnkgdGhlIGZ1bmN0aW9uIG5hbWUgdGhhdCBpcyB0 aGUgcG9pbnQgb2YgdGhlIGltZW514oCLIGxpc3QgaXMgcHJldHR5IGduYXJseSBidXQgc2VlbXMg dG8gd29yayB3aXRoIHRoZSBjb3JuZXIgY2FzZXMgcmVxdWlyZWQgZm9yIHRoZSBzeW50YXguCgpJ biBhbnkgZXZlbnQsIHRoaXMgaXMgdGhlIGJlaGF2aW9yIEkgc2VlIHRoYXQgZG9lc24ndCBtYWtl IGEgbG90IG9mIHNlbnNlIHRvIG1lLiBHaXZlbiBhIE1BVExBQiBmaWxlIHdpdGggdGhlIGZvbGxv d2luZyBjb250ZW50czoKCiUgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KZnVuY3Rpb24gZm9vYmFyMShhLCBiLCBjKQplbmQKCmZ1bmN0aW9uIGZvb2JhcjIo YSwgYiwgYykKZW5kCgpmdW5jdGlvbiBnZW5fcHVsc2VfYXZnX2xpbl9kYXRhKGEsIGIsIGMpCmVu ZAoKZnVuY3Rpb24gZ2VuX3B1bHNlX2F2Z19sb2dfZGF0YShhLCBiLCBjKQplbmQKCmZ1bmN0aW9u IGdlbl9iZWFtc2hhcnBlbmVkX2RhdGEoYSwgYiwgYykKZW5kCgpmdW5jdGlvbiBmb29iYXIzKGEs IGIsIGMpZW5kCgolIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCgpBcyBwcmVzZW50ZWQsIGltZW514oCLIHdpbGwgZmFpbCBhbmQgb25seSBs aXN0IHRoZSBsYXN0IDMgZnVuY3Rpb25zLiBJbiB0aGUgZm9sbG93aW5nIG5vdGVzLCB0aGUgInJl YWwiIGZ1bmN0aW9ucyBhcmUgZGVmaW5lZCBieSB0aG9zZSB0aGF0IGFyZSBub3QgImZvb2JhciIu IEkgbmVlZGVkIHRvIGNyZWF0ZSBzb21lIGV4cGVyaW1lbnRhbCBwYWRkaW5nLiBTbzoKCi0gSWYg YW55IHNpbmdsZSBjaGFyYWN0ZXIgaW4gZWl0aGVyIG9mIHRoZSB0aHJlZSAicmVhbCIgZnVuY3Rp b24gbmFtZXMgaXMgZGVsZXRlZCwgaW1lbnXigIsgd2lsbCB3b3JrIGFuZCBsaXN0IGFsbCBmdW5j dGlvbnMKLSBJZiBhbnkgYW55IHNpbmdsZSBjaGFyYWN0ZXIgaW4gZWl0aGVyIG9mIHRoZSB0aHJl ZSAicmVhbCIgZnVuY3Rpb24gbmFtZXMgaXMgYWx0ZXJlZCB0byBhbm90aGVyIGNoYXJhY3Rlciwg aW1lbnXigIsgd2lsbCBmYWlsIGFuZCBsaXN0IG9ubHkgdGhlIGxhc3QgMyBmdW5jdGlvbnMuCi0g SWYgYSBjaGFyYWN0ZXIgaXMgYWRkZWQgdG8gdGhlIGZpcnN0IG9mIHRoZSB0aHJlZSByZWFsIGZ1 bmN0aW9uIG5hbWVzLCBpbWVudeKAiyB3aWxsIGZhaWwgYW5kIG9ubHkgbGlzdCB0aGUgbGFzdCAz IGZ1bmN0aW9ucy4KLSBJZiBhIGNoYXJhY3RlciBpcyBhZGRlZCB0byBlaXRoZXIgb2YgdGhlIDJu ZCBvciAzcmQgcmVhbCBmdW5jdGlvbiBuYW1lcywgaW1lbnXigIsgd2lsbCBmYWlsIGFuZCBvbmx5 IGxpc3QgdGhlIGxhc3QgMiBmdW5jdGlvbnMuCgpJdCBqdXN0IHNvIGhhcHBlbnMgdGhhdCB0aGUg dGhyZWUgZ2Vu4oCLIGZ1bmN0aW9ucyBoYXZlIHRoZSBzYW1lIG51bWJlciBvZiBjaGFyYWN0ZXJz LCBhbmQgc28gSSB0aG91Z2h0IGl0IG1pZ2h0IGJlIHJlbGF0ZWQgdG8gaW1lbnUtbWF4LWl0ZW0t bGVuZ3Ro4oCLIGhvd2V2ZXIgdGhhdCB2YWx1ZSBpcyBzZXQgdG8gNjAgY2hhcmFjdGVycyBhbmQg c28gSSBkb24ndCB0aGluayBpdCdzIHJlbGV2YW50LiBJIGNhbid0IHRoaW5rIG9mIGFueSByZWFz b24gd2h5IHRoZSBsaXN0IGNyZWF0aW9uIGlzIHNvIHNlbnNpdGl2ZSB0byB0aGUgdG9rZW4gbGVu Z3RoIGhlcmUuIFBsYXlpbmcgYXJvdW5kIHdpdGggdGhlIHRva2VuIGxlbmd0aCBwcm9kdWNlZCBy ZXN1bHRzIHNvIHN0cmFuZ2UgdGhhdCBJIGNhbm5vdCBldmVuIHNwZWN1bGF0ZSBvbiBhIGJ1ZyB2 ZWN0b3IuCgpJbiBhbnkgZXZlbnQsIGhvcGUgdGhpcyBoZWxwcy4gSXQncyBhIHdlaXJkIG9uZSB0 byBtZS4KCkJlc3QgcmVnYXJkcywKTWFyayBOb3J0b24KClNlbnQgd2l0aCBbUHJvdG9uIE1haWxd KGh0dHBzOi8vcHJvdG9uLm1lL21haWwvaG9tZSkgc2VjdXJlIGVtYWlsLg== --b1=_k7G90lb06e4EkXUzCRQ5U61vqmOHFlH9zi8sL5YZw Content-Type: text/html; charset=utf-8 Content-Transfer-Encoding: base64 PGRpdiBzdHlsZT0iZm9udC1mYW1pbHk6IEFyaWFsLCBzYW5zLXNlcmlmOyBmb250LXNpemU6IDE0 cHg7Ij5Hb29kIG1vcm5pbmcuJm5ic3A7IEkndmUgY2hlY2tlZCB0aGUgYnVnIGFyY2hpdmUgZm9y IDxjb2RlPmltZW51PC9jb2RlPuKAiyZuYnNwO2FuZCBkaWQgbm90IGZpbmQgYW55dGhpbmcgdGhh dCBzZWVtZWQgcmVsYXRlZCB0byB3aGF0IEknbSBzZWVpbmcsIHNvIGdvaW5nIHRvIHRyeSB0byBy ZXBvcnQgdGhpcyB2aWEgdGhlIGVtYWlsIGluIDM0LjMuJm5ic3A7IEhvcGVmdWxseSBJIGNvdmVy IGV2ZXJ5dGhpbmcgbmVjZXNzYXJ5IGluIDM0LjMuJm5ic3A7IEkgY2Fubm90IHVzZSB0aGUgcmVw b3J0IGZ1bmN0aW9uIGFzIEkgZG9uJ3QgaGF2ZSBFbWFjcyBzZXQgdXAgd2l0aCBhIG1haWwgc2Vy dmljZS48L2Rpdj48ZGl2IHN0eWxlPSJmb250LWZhbWlseTogQXJpYWwsIHNhbnMtc2VyaWY7IGZv bnQtc2l6ZTogMTRweDsiPjxicj48L2Rpdj48ZGl2IHN0eWxlPSJmb250LWZhbWlseTogQXJpYWws IHNhbnMtc2VyaWY7IGZvbnQtc2l6ZTogMTRweDsiPjx1bCBkYXRhLWVkaXRpbmctaW5mbz0ieyZx dW90O29yZGVyZWRTdHlsZVR5cGUmcXVvdDs6MSwmcXVvdDt1bm9yZGVyZWRTdHlsZVR5cGUmcXVv dDs6MX0iIHN0eWxlPSJtYXJnaW4tdG9wOiAwcHg7IG1hcmdpbi1ib3R0b206IDBweDsiPjxsaSBz dHlsZT0ibGlzdC1zdHlsZS10eXBlOiBkaXNjOyI+PHNwYW4+RW1hY3MgdmVyc2lvbjogMzAuMTwv c3Bhbj48L2xpPjxsaSBzdHlsZT0ibGlzdC1zdHlsZS10eXBlOiBkaXNjOyI+PHNwYW4+R05VIEVt YWNzIDMwLjEgKGJ1aWxkIDIsIHg4Nl82NC13NjQtbWluZ3czMikgb2YgMjAyNS0wMi0yMzwvc3Bh bj48YnI+PC9saT48bGkgc3R5bGU9Imxpc3Qtc3R5bGUtdHlwZTogZGlzYzsiPjxzcGFuPldpbmRv d3MgT1M8L3NwYW4+PC9saT48L3VsPjxkaXY+PHNwYW4+PGJyPjwvc3Bhbj48L2Rpdj48ZGl2Pjxz cGFuPldoYXQgSSdtIHNlZWluZyBpcyBhIGZhaWx1cmUgaW4gPGNvZGU+aW1lbnU8L2NvZGU+4oCL IHRvIGNyZWF0ZSBhIGNvcnJlY3QgbGlzdCBmb3IgZnVuY3Rpb24gbmFtZXMgdXNpbmcgdGhlIE1B VExBQiBwYWNrYWdlICg8c3Bhbj48YSB0YXJnZXQ9Il9ibGFuayIgcmVsPSJub3JlZmVycmVyIG5v Zm9sbG93IG5vb3BlbmVyIiBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vbWF0aHdvcmtzL0VtYWNz LU1BVExBQi1Nb2RlL2lzc3Vlcy80MiI+aHR0cHM6Ly9naXRodWIuY29tL21hdGh3b3Jrcy9FbWFj cy1NQVRMQUItTW9kZS88L2E+KS4mbmJzcDsgSSd2ZSBiZWVuIHdvcmtpbmcgd2l0aCB0aGUgY3Vy cmVudCBtYWludGFpbmVyIGFuZCBJIGFtIHByZXR0eSBjZXJ0YWluIHRoYXQgdGhpcyBpcyBub3Qg ZGlyZWN0bHkgYSBNQVRMQUIgcGFja2FnZSBpc3N1ZSwgdGhvdWdoIEkgY2Fubm90IHRlbGwgaWYg aXQgaXMgYW4gaW50ZXJhY3Rpb24uJm5ic3A7IFRoZSByZWd1bGFyIGV4cHJlc3Npb24gdG8gaWRl bnRpZnkgdGhlIGZ1bmN0aW9uIG5hbWUgdGhhdCBpcyB0aGUgcG9pbnQgb2YgdGhlIDxjb2RlPmlt ZW51PC9jb2RlPuKAiyBsaXN0IGlzIHByZXR0eSBnbmFybHkgYnV0IHNlZW1zIHRvIHdvcmsgd2l0 aCB0aGUgY29ybmVyIGNhc2VzIHJlcXVpcmVkIGZvciB0aGUgc3ludGF4LiZuYnNwOyZuYnNwOzwv c3Bhbj48L3NwYW4+PC9kaXY+PGRpdj48c3Bhbj48c3Bhbj48YnI+PC9zcGFuPjwvc3Bhbj48L2Rp dj48ZGl2PjxzcGFuPjxzcGFuPkluIGFueSBldmVudCwgdGhpcyBpcyB0aGUgYmVoYXZpb3IgSSBz ZWUgdGhhdCBkb2Vzbid0IG1ha2UgYSBsb3Qgb2Ygc2Vuc2UgdG8gbWUuJm5ic3A7IEdpdmVuIGEg TUFUTEFCIGZpbGUgd2l0aCB0aGUgZm9sbG93aW5nIGNvbnRlbnRzOjwvc3Bhbj48L3NwYW4+PC9k aXY+PGRpdj48c3Bhbj48c3Bhbj48YnI+PC9zcGFuPjwvc3Bhbj48L2Rpdj48ZGl2PjxzcGFuPjxz cGFuPiUgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS08L3Nw YW4+PC9zcGFuPjwvZGl2PjxkaXY+PHNwYW4+PHNwYW4+PHNwYW4+ZnVuY3Rpb24gZm9vYmFyMShh LCBiLCBjKTwvc3Bhbj48ZGl2PjxzcGFuPmVuZDwvc3Bhbj48L2Rpdj48ZGl2Pjxicj48L2Rpdj48 ZGl2PjxzcGFuPmZ1bmN0aW9uIGZvb2JhcjIoYSwgYiwgYyk8L3NwYW4+PC9kaXY+PGRpdj48c3Bh bj5lbmQ8L3NwYW4+PC9kaXY+PGRpdj48YnI+PC9kaXY+PGRpdj48c3Bhbj5mdW5jdGlvbiBnZW5f cHVsc2VfYXZnX2xpbl9kYXRhKGEsIGIsIGMpPC9zcGFuPjwvZGl2PjxkaXY+PHNwYW4+ZW5kPC9z cGFuPjwvZGl2PjxkaXY+PGJyPjwvZGl2PjxkaXY+PHNwYW4+ZnVuY3Rpb24gZ2VuX3B1bHNlX2F2 Z19sb2dfZGF0YShhLCBiLCBjKTwvc3Bhbj48L2Rpdj48ZGl2PjxzcGFuPmVuZDwvc3Bhbj48L2Rp dj48ZGl2Pjxicj48L2Rpdj48ZGl2PjxzcGFuPmZ1bmN0aW9uIGdlbl9iZWFtc2hhcnBlbmVkX2Rh dGEoYSwgYiwgYyk8L3NwYW4+PC9kaXY+PGRpdj48c3Bhbj5lbmQ8L3NwYW4+PC9kaXY+PGRpdj48 YnI+PC9kaXY+PGRpdj48c3Bhbj5mdW5jdGlvbiBmb29iYXIzKGEsIGIsIGMpPC9zcGFuPjwvZGl2 PjxzcGFuPmVuZDwvc3Bhbj48YnI+PC9zcGFuPjwvc3Bhbj48L2Rpdj48ZGl2PjxzcGFuPjxzcGFu PjxzcGFuPiUgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS08L3NwYW4+PC9zcGFuPjwvc3Bhbj48L2Rpdj48L2Rpdj48ZGl2IHN0eWxlPSJmb250 LWZhbWlseTogQXJpYWwsIHNhbnMtc2VyaWY7IGZvbnQtc2l6ZTogMTRweDsiPjxicj48L2Rpdj48 ZGl2IHN0eWxlPSJmb250LWZhbWlseTogQXJpYWwsIHNhbnMtc2VyaWY7IGZvbnQtc2l6ZTogMTRw eDsiPkFzIHByZXNlbnRlZCwgPGNvZGU+aW1lbnU8L2NvZGU+4oCLIHdpbGwgZmFpbCBhbmQgb25s eSBsaXN0IHRoZSBsYXN0IDMgZnVuY3Rpb25zLiZuYnNwOyBJbiB0aGUgZm9sbG93aW5nIG5vdGVz LCB0aGUgInJlYWwiIGZ1bmN0aW9ucyBhcmUgZGVmaW5lZCBieSB0aG9zZSB0aGF0IGFyZSBub3Qg ImZvb2JhciIuJm5ic3A7IEkgbmVlZGVkIHRvIGNyZWF0ZSBzb21lIGV4cGVyaW1lbnRhbCBwYWRk aW5nLiZuYnNwOyBTbzo8L2Rpdj48ZGl2IHN0eWxlPSJmb250LWZhbWlseTogQXJpYWwsIHNhbnMt c2VyaWY7IGZvbnQtc2l6ZTogMTRweDsiPjx1bCBkYXRhLWVkaXRpbmctaW5mbz0ieyZxdW90O29y ZGVyZWRTdHlsZVR5cGUmcXVvdDs6MSwmcXVvdDt1bm9yZGVyZWRTdHlsZVR5cGUmcXVvdDs6MX0i IHN0eWxlPSJtYXJnaW4tdG9wOiAwcHg7IG1hcmdpbi1ib3R0b206IDBweDsiPjxsaSBzdHlsZT0i bGlzdC1zdHlsZS10eXBlOiBkaXNjOyI+PHNwYW4+SWYgYW55IHNpbmdsZSBjaGFyYWN0ZXIgaW4g ZWl0aGVyIG9mIHRoZSB0aHJlZSAicmVhbCIgZnVuY3Rpb24gbmFtZXMgaXMgZGVsZXRlZCwgPGNv ZGU+aW1lbnU8L2NvZGU+4oCLIHdpbGwgd29yayBhbmQgbGlzdCBhbGwgZnVuY3Rpb25zPC9zcGFu PjwvbGk+PGxpIHN0eWxlPSJsaXN0LXN0eWxlLXR5cGU6IGRpc2M7Ij48c3Bhbj5JZiBhbnkgYW55 IHNpbmdsZSBjaGFyYWN0ZXIgaW4gZWl0aGVyIG9mIHRoZSB0aHJlZSAicmVhbCIgZnVuY3Rpb24g bmFtZXMgaXMgYWx0ZXJlZCB0byBhbm90aGVyIGNoYXJhY3RlciwgPGNvZGU+aW1lbnU8L2NvZGU+ 4oCLIHdpbGwgZmFpbCBhbmQgbGlzdCBvbmx5IHRoZSBsYXN0IDMgZnVuY3Rpb25zLjwvc3Bhbj48 L2xpPjxsaSBzdHlsZT0ibGlzdC1zdHlsZS10eXBlOiBkaXNjOyI+PHNwYW4+SWYgYSBjaGFyYWN0 ZXIgaXMgYWRkZWQgdG8gdGhlIGZpcnN0IG9mIHRoZSB0aHJlZSByZWFsIGZ1bmN0aW9uIG5hbWVz LCA8Y29kZT5pbWVudTwvY29kZT7igIsgd2lsbCBmYWlsIGFuZCBvbmx5IGxpc3QgdGhlIGxhc3Qg MyBmdW5jdGlvbnMuPC9zcGFuPjwvbGk+PGxpIHN0eWxlPSJsaXN0LXN0eWxlLXR5cGU6IGRpc2M7 Ij48c3Bhbj5JZiBhIGNoYXJhY3RlciBpcyBhZGRlZCB0byBlaXRoZXIgb2YgdGhlIDJuZCBvciAz cmQgcmVhbCBmdW5jdGlvbiBuYW1lcywgPGNvZGU+aW1lbnU8L2NvZGU+4oCLIHdpbGwgZmFpbCBh bmQgb25seSBsaXN0IHRoZSBsYXN0IDIgZnVuY3Rpb25zLjwvc3Bhbj48L2xpPjwvdWw+PGRpdj48 YnI+PC9kaXY+PGRpdj5JdCBqdXN0IHNvIGhhcHBlbnMgdGhhdCB0aGUgdGhyZWUgPGNvZGU+Z2Vu PC9jb2RlPuKAiyBmdW5jdGlvbnMgaGF2ZSB0aGUgc2FtZSBudW1iZXIgb2YgY2hhcmFjdGVycywg YW5kIHNvIEkgdGhvdWdodCBpdCBtaWdodCBiZSByZWxhdGVkIHRvIDxjb2RlPmltZW51LW1heC1p dGVtLWxlbmd0aDwvY29kZT7igIsgaG93ZXZlciB0aGF0IHZhbHVlIGlzIHNldCB0byA2MCBjaGFy YWN0ZXJzIGFuZCBzbyBJIGRvbid0IHRoaW5rIGl0J3MgcmVsZXZhbnQuJm5ic3A7IEkgY2FuJ3Qg dGhpbmsgb2YgYW55IHJlYXNvbiB3aHkgdGhlIGxpc3QgY3JlYXRpb24gaXMgc28gc2Vuc2l0aXZl IHRvIHRoZSB0b2tlbiBsZW5ndGggaGVyZS4mbmJzcDsgUGxheWluZyBhcm91bmQgd2l0aCB0aGUg dG9rZW4gbGVuZ3RoIHByb2R1Y2VkIHJlc3VsdHMgc28gc3RyYW5nZSB0aGF0IEkgY2Fubm90IGV2 ZW4gc3BlY3VsYXRlIG9uIGEgYnVnIHZlY3Rvci48L2Rpdj48ZGl2Pjxicj48L2Rpdj48ZGl2Pklu IGFueSBldmVudCwgaG9wZSB0aGlzIGhlbHBzLiZuYnNwOyBJdCdzIGEgd2VpcmQgb25lIHRvIG1l LjwvZGl2PjxkaXY+PGJyPjwvZGl2PjxkaXY+QmVzdCByZWdhcmRzLDwvZGl2PjxkaXY+TWFyayBO b3J0b248L2Rpdj48L2Rpdj48ZGl2IHN0eWxlPSJmb250LWZhbWlseTogQXJpYWwsIHNhbnMtc2Vy aWY7IGZvbnQtc2l6ZTogMTRweDsiPjxicj48L2Rpdj48ZGl2IHN0eWxlPSJmb250LWZhbWlseTog QXJpYWwsIHNhbnMtc2VyaWY7IGZvbnQtc2l6ZTogMTRweDsiPjxicj48L2Rpdj48ZGl2IHN0eWxl PSJmb250LWZhbWlseTogQXJpYWwsIHNhbnMtc2VyaWY7IGZvbnQtc2l6ZTogMTRweDsiPjxicj48 L2Rpdj4NCjxkaXYgY2xhc3M9InByb3Rvbm1haWxfc2lnbmF0dXJlX2Jsb2NrIiBzdHlsZT0iZm9u dC1mYW1pbHk6IEFyaWFsLCBzYW5zLXNlcmlmOyBmb250LXNpemU6IDE0cHg7Ij4NCiAgICA8ZGl2 IGNsYXNzPSJwcm90b25tYWlsX3NpZ25hdHVyZV9ibG9jay11c2VyIHByb3Rvbm1haWxfc2lnbmF0 dXJlX2Jsb2NrLWVtcHR5Ij4NCiAgICAgICAgDQogICAgICAgICAgICA8L2Rpdj4NCiAgICANCiAg ICAgICAgICAgIDxkaXYgY2xhc3M9InByb3Rvbm1haWxfc2lnbmF0dXJlX2Jsb2NrLXByb3RvbiI+ DQogICAgICAgIFNlbnQgd2l0aCA8YSB0YXJnZXQ9Il9ibGFuayIgaHJlZj0iaHR0cHM6Ly9wcm90 b24ubWUvbWFpbC9ob21lIj5Qcm90b24gTWFpbDwvYT4gc2VjdXJlIGVtYWlsLg0KICAgIDwvZGl2 Pg0KPC9kaXY+DQo= --b1=_k7G90lb06e4EkXUzCRQ5U61vqmOHFlH9zi8sL5YZw-- ------------=_1748589002-15277-1--