From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Denis Zubarev Newsgroups: gmane.emacs.bugs Subject: bug#67061: [PATCH] Improve syntax highlighting for python-ts-mode Date: Sun, 17 Dec 2023 04:56:16 +0300 Message-ID: <41601702778144@mail.yandex.ru> References: <8734xdni6y.fsf@yandex.ru> <831qcwycbj.fsf@gnu.org> <83v8a3qh6m.fsf@gnu.org> <834jhadvkt.fsf@gnu.org> <7aee7e42-c07d-9131-18a9-4806f07d4267@gutov.dev> <83a5qw7izt.fsf@gnu.org> <172531702081590@mail.yandex.ru> <212931702208489@mail.yandex.ru> <0c6e2e14-b494-a8cb-3893-ffb39577baf9@gutov.dev> <7b17c99d-6e4b-43b3-af93-993901a3a4ea@gmail.com> <95071702343720@mail.yandex.ru> <78ffdcf3-e322-49ea-a0d5-d0485ade9e73@gmail.com> Mime-Version: 1.0 Content-Type: text/html; charset=utf-8 Content-Transfer-Encoding: base64 Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="6790"; mail-complaints-to="usenet@ciao.gmane.io" Cc: "67061@debbugs.gnu.org" <67061@debbugs.gnu.org> To: Dmitry Gutov , Yuan Fu , Eli Zaretskii Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Sun Dec 17 02:57:26 2023 Return-path: Envelope-to: geb-bug-gnu-emacs@m.gmane-mx.org Original-Received: from lists.gnu.org ([209.51.188.17]) by ciao.gmane.io with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1rEgPG-0001cM-7M for geb-bug-gnu-emacs@m.gmane-mx.org; Sun, 17 Dec 2023 02:57:26 +0100 Original-Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1rEgOx-00030S-7s; Sat, 16 Dec 2023 20:57:07 -0500 Original-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 1rEgOs-000307-48 for bug-gnu-emacs@gnu.org; Sat, 16 Dec 2023 20:57:02 -0500 Original-Received: from debbugs.gnu.org ([2001:470:142:5::43]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1rEgOr-0008No-S1 for bug-gnu-emacs@gnu.org; Sat, 16 Dec 2023 20:57:01 -0500 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1rEgOs-0004iO-64 for bug-gnu-emacs@gnu.org; Sat, 16 Dec 2023 20:57:02 -0500 X-Loop: help-debbugs@gnu.org Resent-From: Denis Zubarev Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Sun, 17 Dec 2023 01:57:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 67061 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: patch Original-Received: via spool by 67061-submit@debbugs.gnu.org id=B67061.170277819018078 (code B ref 67061); Sun, 17 Dec 2023 01:57:02 +0000 Original-Received: (at 67061) by debbugs.gnu.org; 17 Dec 2023 01:56:30 +0000 Original-Received: from localhost ([127.0.0.1]:56401 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rEgOL-0004hV-EN for submit@debbugs.gnu.org; Sat, 16 Dec 2023 20:56:30 -0500 Original-Received: from forward502a.mail.yandex.net ([2a02:6b8:c0e:500:1:45:d181:d502]:47314) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rEgOF-0004hC-Q6 for 67061@debbugs.gnu.org; Sat, 16 Dec 2023 20:56:27 -0500 Original-Received: from mail-nwsmtp-mxback-production-main-68.vla.yp-c.yandex.net (mail-nwsmtp-mxback-production-main-68.vla.yp-c.yandex.net [IPv6:2a02:6b8:c1d:5fd1:0:640:ba91:0]) by forward502a.mail.yandex.net (Yandex) with ESMTP id C522160B1E; Sun, 17 Dec 2023 04:56:16 +0300 (MSK) Original-Received: from mail.yandex.ru (2a02:6b8:c0d:385:0:640:2c5b:0 [2a02:6b8:c0d:385:0:640:2c5b:0]) by mail-nwsmtp-mxback-production-main-68.vla.yp-c.yandex.net (mxback/Yandex) with HTTP id htbkqs3oVuQ0-X4E7R3Ve; Sun, 17 Dec 2023 04:56:16 +0300 X-Yandex-Fwd: 1 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yandex.ru; s=mail; t=1702778176; bh=/jis7w19Q5xd6BVcQBxbDffqfUmB+1RYzCUx6Sd85rs=; h=Message-Id:References:Date:Cc:Subject:In-Reply-To:To:From; b=RXZVVq/uzc0CBcKRdWyCGYd8CjHaEMA16ckg+dkvYG6R1BogluyP/JbR+Y5+/cCAj ecEt37xRA5xqL/iTZX2YEYcVojP4RbFjzpultLWWTdUd4i5KXZSb692CFjAENCuXEX 3f/e89QpniHCT+FJt1F0d+pZyXUfMRv7RtdXKzX8= Authentication-Results: mail-nwsmtp-mxback-production-main-68.vla.yp-c.yandex.net; dkim=pass header.i=@yandex.ru Original-Received: by ajvwwkfnk4mrpgm2.vla.yp-c.yandex.net with HTTP; Sun, 17 Dec 2023 04:56:16 +0300 In-Reply-To: X-Mailer: Yamail [ http://yandex.ru ] 5.0 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-BeenThere: bug-gnu-emacs@gnu.org List-Id: "Bug reports for GNU Emacs, the Swiss army knife of text editors" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Original-Sender: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Xref: news.gmane.io gmane.emacs.bugs:276401 Archived-At: PGRpdj48ZGl2PiZndDsgRG8gd2Ugd2FudCB0byBoYXZlIGEgY29tbW9uIGZhY2Ugd2hpY2ggd291 bGQgaW5oZXJpdCBmcm9tPC9kaXY+PGRpdj4mZ3Q7IGZvbnQtbG9jay12YXJpYWJsZS1uYW1lLWZh Y2UgYW5kIHdvdWxkIGJlIHVzZWQgc29sZWx5IGZvcjwvZGl2PjxkaXY+Jmd0OyBmdW5jdGlvbi9t ZXRob2RzIHBhcmFtZXRlcnMgYW5kIG5vdGhpbmcgZWxzZT8gSSBkb24ndCBvYmplY3QsIGJ1dCBJ PC9kaXY+PGRpdj4mZ3Q7IGRvbid0IHF1aXRlIHNlZSB0aGUgcG9pbnQgZWl0aGVyLjwvZGl2Pjxk aXY+wqA8L2Rpdj48ZGl2PlRoZSBwb2ludCBpcyB0byBtYWtlIGl0IGVhc3kgZm9yIHVzZXJzIHRv IGN1c3RvbWl6ZSBmYWNlcyBvZiBmZWF0dXJlczwvZGl2PjxkaXY+aW5kZXBlbmRlbnRseSBmcm9t IGVhY2ggb3RoZXIuPC9kaXY+PGRpdj5JdCBpcyBub3Qgb25seSBhYm91dCB2YXJpYWJsZXMvcGFy YW1ldGVycy48L2Rpdj48ZGl2PkZvciBleGFtcGxlLCBpZiBJIHdhbnQgdG8gY2hhbmdlIGEgZmFj ZSBmb3IgZGVjb3JhdG9ycywgSSBoYXZlIHRvIGNoYW5nZTwvZGl2PjxkaXY+Zm9udC1sb2NrLXR5 cGUtZmFjZSwgd2hpY2ggd2lsbCBjaGFuZ2UgYWxzbyBhbGwgdHlwZSBmYWNlcy48L2Rpdj48ZGl2 PsKgPC9kaXY+PGRpdj5JIGxpa2UgYXBwcm9hY2ggZnJvbSB0aGUgaGVsaXggZWRpdG9yLiBUaGV5 IGludHJvZHVjZSBtYW55IGNhcHR1cmVzIHdpdGg8L2Rpdj48ZGl2PmRpZmZlcmVudCBsZXZlbHMg b2Ygc3BlY2lmaWNpdHksIGZvciBleGFtcGxlIEB2YXJpYWJsZSBmb3IgKGlkZW50aWZpZXIpLDwv ZGl2PjxkaXY+QHZhcmlhYmxlLnBhcmFtZXRlciBmb3IgZnVuY3Rpb24gcGFyYW1ldGVycywgQHZh cmlhYmxlLmJ1aWx0aW4gZm9yPC9kaXY+PGRpdj5zZWxmfGNscyBldGMuIEkgZ3Vlc3MgYnkgZGVm YXVsdCB0aGUgZGVmYXVsdCBmYWNlIGRlZmluZWQgZm9yIGEgQHZhcmlhYmxlPC9kaXY+PGRpdj5p cyB1c2VkLiBCdXQgb25lIGNhbiBjdXN0b21pemUgdmFyaWFibGUucGFyYW1ldGVyIHRvIHRoZWly IGxpa2luZyB3aXRob3V0IHRvdWNoaW5nIGFueTwvZGl2PjxkaXY+b3RoZXIgdmFyaWFibGVzLjwv ZGl2PjxkaXY+wqA8L2Rpdj48ZGl2PiZndDsgVGhlbiBJIHN1cHBvc2Ugd2Ugc2hvdWxkIGNsYXJp Znkgd2hldGhlciBEZW5pcyB3YW50cyBhIGZhY2UgdGhhdCBvbmx5PC9kaXY+PGRpdj4mZ3Q7IG1h dGNoZXMgZnVuY3Rpb24gcGFyYW1ldGVycywgb3IgaW1wbGljaXQgdmFyaWFibGUgZGVjbGFyYXRp b25zIGFzIHdlbGwuPC9kaXY+PGRpdj4mZ3Q7IE9yIG1heWJlIGluc3RlYWQgYSBmYWNlIHRoYXQg aXMgb25seSB1c2VkIGZvciBhc3NpZ25tZW50cyAob25seSBmaXJzdDwvZGl2PjxkaXY+Jmd0OyBh c3NpZ25tZW50cz8pIC0tIHdoaWNoIHdvdWxkIHNlcGFyYXRlIHRoZW0gZnJvbSB0aGUgdHdvIHNl bWFudGljIHVuaXRzPC9kaXY+PGRpdj4mZ3Q7IGFib3ZlLjwvZGl2PjxkaXY+wqA8L2Rpdj48ZGl2 PkkgdGhpbmsgaWRlYWxseSwgdGhlcmUgc2hvdWxkIGJlIGEgZmFjZSBmb3IgYSBmZWF0dXJlIChv ciBldmVuIG11bHRpcGxlPC9kaXY+PGRpdj5mYWNlcykuPC9kaXY+PGRpdj5Gb3IgZXhhbXBsZSwg ZmFjZXMgZm9yIHZhcmlhYmxlcyBpbiBoZWxpeCBub3RhdGlvbjo8L2Rpdj48ZGl2Pi0gQHZhcmlh YmxlPC9kaXY+PGRpdj4tIEB2YXJpYWJsZS5kZWZpbml0aW9uPC9kaXY+PGRpdj4tIEB2YXJpYWJs ZS5kZWZpbml0aW9uLnBhcmFtZXRlcjwvZGl2PjxkaXY+LSBAdmFyaWFibGUuYXNzaWdubWVudDwv ZGl2PjxkaXY+LSBAdmFyaWFibGUudXNlPC9kaXY+PGRpdj7CoDwvZGl2PjxkaXY+wqA8L2Rpdj48 L2Rpdj48ZGl2PjxiciAvPjwvZGl2PjxkaXY+PGJyIC8+PC9kaXY+PGRpdj4xMy4xMi4yMDIzLCAy MToyOCwgIkRtaXRyeSBHdXRvdiIgJmx0O2RtaXRyeUBndXRvdi5kZXYmZ3Q7OjwvZGl2PjxibG9j a3F1b3RlPjxwPk9uIDEzLzEyLzIwMjMgMDU6NDksIFl1YW4gRnUgd3JvdGU6PGJyIC8+PGJyIC8+ PC9wPjxibG9ja3F1b3RlIGNsYXNzPSIyMTBlN2E4NDhlOGZjYjQ1d21pLXF1b3RlIj48YmxvY2tx dW90ZSBjbGFzcz0iMjEwZTdhODQ4ZThmY2I0NXdtaS1xdW90ZSI+wqBQeXRob24gZG9lc24ndCBo YXZlIHNwZWNpYWwga2V5d29yZHMgZm9yIHZhcmlhYmxlIGRlY2xhcmF0aW9ucyAodW5saWtlIDxi ciAvPsKgJ2xldCcgaW4gSmF2YVNjcmlwdCBvciB0eXBlZCBkZWNsYXJhdGlvbiBpbiBDKSwgc28g dGhlIGZpcnN0IHRpbWUgYSA8YnIgLz7CoHZhcmlhYmxlIGlzIGludHJvZHVjZWQgc2VydmVzIGFz IGl0cyBkZWNsYXJhdGlvbi4gRm9yIGFzc2lnbm1lbnRzLCB3ZSA8YnIgLz7CoGNhbid0IGVhc2ls eSBkZXRlcm1pbmUgd2hpY2ggaXMgdGhlIGZpcnN0IHRpbWUgZm9yIGEgZ2l2ZW4gc2NvcGUsIGJ1 dCA8YnIgLz7CoGV4YW1wbGVzIGxpa2UgJ2ZvciB2YXIgaW4gLi4uJyBvciAnZXhjZXB0IFplcm9E aXZpc2lvbkVycm9yIGFzIGU6JyBvciA8YnIgLz7CoCdbLi4uIGZvciB2YXIgaW4gLi4uXScgYXJl IGFsbCB1bmFtYmlndW91c2x5IHZhcmlhYmxlIGRlZmluaXRpb25zLjxiciAvPjwvYmxvY2txdW90 ZT7CoDxiciAvPsKgU3VyZSwgSSBkb24ndCByZWFsbHkgY2FyZSB0b28gbXVjaCBhYm91dCB3aGlj aCBmZWF0dXJlIHNob3VsZCBhIHJ1bGUgYmUgPGJyIC8+wqBpbjsgd2hhdCBJIGRvIGNhcmUgYWJv dXQgaXMgdG8ga2VlcCBmaXJzdCBhbmQgc2Vjb25kIGZvbnRpZmljYXRpb24gbGV2ZWwgPGJyIC8+ wqByZWxhdGl2ZWx5IHF1aXRlIGFuZCBtaW5pbWFsLCBhbmQga2VlcCBsZXZlbCAzIHJlYXNvbmFi bHkgY29uc2VydmF0aXZlLiA8YnIgLz7CoEFuZCBwZW9wbGUgdGhhdCB3YW50IGEgbG90IG9mIGhp Z2hsaWdodCBjYW4gdHVybiBvbiBsZXZlbCA0LjxiciAvPjwvYmxvY2txdW90ZT48cD48YnIgLz5J IGRvbid0IG1pbmQgaWYgYXNzaWdubWVudHMgaW4gcHl0aG9uLXRzLW1vZGUgZ28gdG8gbGV2ZWwg MywgdGhhdCdzIHdoYXQgPGJyIC8+cnVieS10cy1tb2RlIGRvZXMgYW55d2F5LiBCdXQgJ1suLi4g Zm9yIHZhciBpbiAuLi5dJyByZWFsbHkgc2hvdWxkIHVzZSA8YnIgLz52YXJpYWJsZS1uYW1lLWZh Y2UgYW5kIGl0IHNob3VsZCBiZSBpbiB0aGUgZGVmYXVsdCBjb25maWcgKGxldmVsIDMgYXQgPGJy IC8+bW9zdCkuIEkgdGhpbmsgdGhlICdkZWZpbml0aW9uJyBmZWF0dXJlIGlzIGdvb2QgZm9yIGl0 IChnb2luZyBieSB0aGUgPGJyIC8+bmFtZSwgc2luY2UgaXQncyBhbiBpbXBsaWNpdCB2YXJpYWJs ZSBkZWNsYXJhdGlvbiksIGJ1dCBpdCBjb3VsZCBiZSA8YnIgLz5zcGxpdCBvZmYgaW50byBhIHNl cGFyYXRlIGZlYXR1cmUgdG9vLjxiciAvPjxiciAvPjwvcD48YmxvY2txdW90ZSBjbGFzcz0iMjEw ZTdhODQ4ZThmY2I0NXdtaS1xdW90ZSI+PGJsb2NrcXVvdGUgY2xhc3M9IjIxMGU3YTg0OGU4ZmNi NDV3bWktcXVvdGUiPsKgaW4gYy10cy1tb2RlIGhpZ2hsaWdodGluZyBmb3IgJ2ludCBpID0gNCcg aXMgc3BsaXQgYmV0d2VlbiA8YnIgLz7CoCdkZWZpbml0aW9uJyBhbmQgJ2Fzc2lnbm1lbnQnICh0 aGUgbGF0dGVyIHNlZW1pbmdseSByZWR1bmRhbnQpOyA8YnIgLz48L2Jsb2NrcXVvdGU+wqA8YnIg Lz7CoFNob3VsZCd2ZSBiZWVuIGluIGFzc2lnbm1lbnQgSU1PLiBJIHByb2JhYmx5IG92ZXJsb29r ZWQgaXQuPGJyIC8+PC9ibG9ja3F1b3RlPjxwPjxiciAvPlRoZSBjdXJyZW50IHN0YXRlIGlzIHRo YXQgdGhlIHF1ZXJ5IGluICdkZWZpbml0aW9uJyBjYW4gaGlnaGxpZ2h0IGJvdGggPGJyIC8+J2lu dCBpOycgYW5kICdpbnQgaSA9IDQ7Jy4gVGhlIHF1ZXJ5IGluICdhc3NpZ25tZW50JyBpbiBjLXRz LW1vZGUgb25seSA8YnIgLz5oaWdobGlnaHRzICdpbnQgaSA9IDQ7Jy48YnIgLz48YnIgLz5JZiB5 b3UganVzdCBrZWVwIHRoZSBsYXR0ZXIgcXVlcnksICdpbnQgaTsnIHdvdWxkIHN0YXkgdW5mb250 aWZpZWQuIElmIDxiciAvPnlvdSBtb3ZlIHRoZSBjb3JyZXNwb25kaW5nIHF1ZXJ5IGZyb20gJ2Rl ZmluaXRpb24nIHRvICdhc3NpZ25tZW50JywgaXQgPGJyIC8+d291bGQgc3RhcnQgbWF0Y2hpbmcg bm9uLWFzc2lnbm1lbnQgZGVjbGFyYXRpb25zIHRvby4gTWlnaHQgc2VlbSBvZGQuPGJyIC8+PGJy IC8+PC9wPjxibG9ja3F1b3RlIGNsYXNzPSIyMTBlN2E4NDhlOGZjYjQ1d21pLXF1b3RlIj48Ymxv Y2txdW90ZSBjbGFzcz0iMjEwZTdhODQ4ZThmY2I0NXdtaS1xdW90ZSI+wqB0eXBlc2NyaXB0LXRz LW1vZGUgYW5kIHJ1c3QtdHMtbW9kZSBhbHNvIGZvbGxvdyB0aGUgcHJpbmNpcGxlLCBtb3JlIG9y IDxiciAvPsKgbGVzcy48YnIgLz48L2Jsb2NrcXVvdGU+wqA8YnIgLz7CoFdlbGwsIHRoZSBvbmx5 IHRzLW1vZGUgdGhhdCBJIGFjdHVhbGx5IHdyb3RlIGlzIHB5dGhvbi10cy1tb2RlLiBGb3IgPGJy IC8+wqBvdGhlciBtYWpvciBtb2RlcywgSSBjYW4gb25seSBzdWdnZXN0LiBFdmVuIGZvciBweXRo b24tdHMtbW9kZSwgSSBkb24ndCA8YnIgLz7CoHdhbnQgdG8gZXhlcnQgbXkgcGVyc29uYWwgb3Bp bmlvbiBvbnRvIGl0IHRvbyBtdWNoLCBleGNlcHQgZm9yIGtlZXBpbmcgPGJyIC8+wqBmb250LWxv Y2sgbGV2ZWwgMSBhbmQgMiBxdWlldC48YnIgLz48L2Jsb2NrcXVvdGU+PHA+PGJyIC8+Rm9yIG15 IHBhcnQsIEkgbW9zdGx5IGNhcmUgYWJvdXQga2VlcGluZyB0aGUgbGV2ZWwgMyBmZWF0dXJlLXJp Y2ggPGJyIC8+ZW5vdWdoLCBidXQgcHJlY2lzZSBhdCB0aGUgc2FtZSB0aW1lLiBBbmQgd2l0aG91 dCBmcml2b2xvdXMgaGlnaGxpZ2h0cyA8YnIgLz4ob25seSBhIGxpdHRsZSBtb3JlIGZydWl0LXNh bGFkeSB0aGFuIHRoZSBwcmUtdHJlZXNpdCBtb2RlcykuPGJyIC8+PGJyIC8+PC9wPjxibG9ja3F1 b3RlIGNsYXNzPSIyMTBlN2E4NDhlOGZjYjQ1d21pLXF1b3RlIj48YmxvY2txdW90ZSBjbGFzcz0i MjEwZTdhODQ4ZThmY2I0NXdtaS1xdW90ZSI+PGJsb2NrcXVvdGUgY2xhc3M9IjIxMGU3YTg0OGU4 ZmNiNDV3bWktcXVvdGUiPjxibG9ja3F1b3RlIGNsYXNzPSIyMTBlN2E4NDhlOGZjYjQ1d21pLXF1 b3RlIj7CoE15IHRob3VnaHRzIGFib3V0IHBhcmFtZXRlcnMuIEkgc3RhcnRlZCB0byBleHRlbmQg cnVsZXMgZm9yIHRoZW0gPGJyIC8+wqBzaW5jZSB0aGV5IGFyZSB2ZXJ5IGxpbWl0ZWQgbm93Ljxi ciAvPsKgQnV0IEknbSBub3Qgc3VyZSB3aGF0IGZhY2UgdG8gdXNlIGZvciB0aGVtLjxiciAvPsKg SSB3b3VsZCBsaWtlIHRvIG5vdCB1c2UgdGhlIHNhbWUgZmFjZSBhcyBmb3IgYXNzaWdubWVudHMs IGJlY2F1c2UgPGJyIC8+wqBJJ2Qgd2FudCB0byBoaWdobGlnaHQgdGhlbSBkaWZmZXJlbnRseS48 YnIgLz7CoEl0IHNlZW1zIHRoYXQgdGhlcmUgaXMgbm8gYXBwcm9wcmlhdGUgZmFjZSBpbiBmb250 LWxvY2suZWwsIHNvIEkgPGJyIC8+wqBlbmRlZCB1cCBjcmVhdGluZyBteSBvd24gZmFjZSBpbiBt eSBjb25maWcuPGJyIC8+wqBEb2VzIGl0IG1ha2Ugc2Vuc2UgdG8gYWRkIG5ldyBmYWNlIGZvciBw YXJhbWV0ZXJzIGluIGZvbnQtbG9jay5lbD88YnIgLz7CoE9yIGl0IGlzIHRvbyBzbWFsbCBmZWF0 dXJlIGZvciBpdHMgb3duIGZhY2U/PGJyIC8+wqBJIGFsc28gYXBwbHkgdGhpcyBmYWNlIGZvciBr ZXl3b3JkIGFyZ3VtZW50IGluIGZ1bmN0aW9uIGNhbGxzLjxiciAvPjwvYmxvY2txdW90ZT7CoFRv IGJlIGhvbmVzdCwgSSBkb24ndCBoYXZlIGFueSBnb29kIGlkZWFzLiBQZXJoYXBzIHdlIGNhbiBh ZGQgYSA8YnIgLz7CoHBhcmFtZXRlciBmYWNlIHRoYXQgaW5oZXJpdHMgZnJvbSB2YXJpYWJsZSBu YW1lIGZhY2UgYnkgZGVmYXVsdCwgPGJyIC8+wqBEbWl0cnksIFdEWVQ/PGJyIC8+PC9ibG9ja3F1 b3RlPjxiciAvPsKgQXMgcGVyIGFib3ZlLCBwYXJhbWV0ZXJzIGRvbid0IHNlZW0gdG9vIGRpZmZl cmVudCBmcm9tIGFueSBvdGhlciA8YnIgLz7CoHZhcmlhYmxlIGRlY2xhcmF0aW9ucyBmcm9tIG15 IFBPVi4gVGhleSBhcmUgc2ltaWxhcmx5IHVzZWZ1bCwgc28gSSdkIDxiciAvPsKgaGlnaGxpZ2h0 IHRoZW0gdGhlIHNhbWUgd2F5LjxiciAvPjxiciAvPsKgRG8gd2Ugd2FudCB0byBoYXZlIGEgY29t bW9uIGZhY2Ugd2hpY2ggd291bGQgaW5oZXJpdCBmcm9tIDxiciAvPsKgZm9udC1sb2NrLXZhcmlh YmxlLW5hbWUtZmFjZSBhbmQgd291bGQgYmUgdXNlZCBzb2xlbHkgZm9yIDxiciAvPsKgZnVuY3Rp b24vbWV0aG9kcyBwYXJhbWV0ZXJzIGFuZCBub3RoaW5nIGVsc2U/IEkgZG9uJ3Qgb2JqZWN0LCBi dXQgSSA8YnIgLz7CoGRvbid0IHF1aXRlIHNlZSB0aGUgcG9pbnQgZWl0aGVyLjxiciAvPjwvYmxv Y2txdW90ZT7CoDxiciAvPsKgSSBhZ3JlZS48YnIgLz48L2Jsb2NrcXVvdGU+PHA+PGJyIC8+VGhl biBJIHN1cHBvc2Ugd2Ugc2hvdWxkIGNsYXJpZnkgd2hldGhlciBEZW5pcyB3YW50cyBhIGZhY2Ug dGhhdCBvbmx5IDxiciAvPm1hdGNoZXMgZnVuY3Rpb24gcGFyYW1ldGVycywgb3IgaW1wbGljaXQg dmFyaWFibGUgZGVjbGFyYXRpb25zIGFzIHdlbGwuIDxiciAvPk9yIG1heWJlIGluc3RlYWQgYSBm YWNlIHRoYXQgaXMgb25seSB1c2VkIGZvciBhc3NpZ25tZW50cyAob25seSBmaXJzdCA8YnIgLz5h c3NpZ25tZW50cz8pIC0tIHdoaWNoIHdvdWxkIHNlcGFyYXRlIHRoZW0gZnJvbSB0aGUgdHdvIHNl bWFudGljIHVuaXRzIDxiciAvPmFib3ZlLjxiciAvPjwvcD48L2Jsb2NrcXVvdGU+