From unknown Mon Aug 18 14:21:02 2025 Content-Disposition: inline Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-Mailer: MIME-tools 5.509 (Entity 5.509) Content-Type: text/plain; charset=utf-8 From: bug#67061 <67061@debbugs.gnu.org> To: bug#67061 <67061@debbugs.gnu.org> Subject: Status: [PATCH] Improve syntax highlighting for python-ts-mode Reply-To: bug#67061 <67061@debbugs.gnu.org> Date: Mon, 18 Aug 2025 21:21:02 +0000 retitle 67061 [PATCH] Improve syntax highlighting for python-ts-mode reassign 67061 emacs submitter 67061 Denis Zubarev severity 67061 normal tag 67061 patch thanks From debbugs-submit-bounces@debbugs.gnu.org Fri Nov 10 21:22:45 2023 Received: (at submit) by debbugs.gnu.org; 11 Nov 2023 02:22:45 +0000 Received: from localhost ([127.0.0.1]:51264 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1r1de0-00082f-2f for submit@debbugs.gnu.org; Fri, 10 Nov 2023 21:22:44 -0500 Received: from lists.gnu.org ([2001:470:142::17]:52998) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1r1dds-00082M-KJ for submit@debbugs.gnu.org; Fri, 10 Nov 2023 21:22:43 -0500 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 1r1dd8-0004HT-8J for bug-gnu-emacs@gnu.org; Fri, 10 Nov 2023 21:21:50 -0500 Received: from forward103a.mail.yandex.net ([178.154.239.86]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1r1dd1-0000O8-Ty for bug-gnu-emacs@gnu.org; Fri, 10 Nov 2023 21:21:49 -0500 Received: from mail-nwsmtp-smtp-production-main-59.iva.yp-c.yandex.net (mail-nwsmtp-smtp-production-main-59.iva.yp-c.yandex.net [IPv6:2a02:6b8:c0c:493:0:640:ecd:0]) by forward103a.mail.yandex.net (Yandex) with ESMTP id 1BA3B6003C for ; Sat, 11 Nov 2023 05:21:35 +0300 (MSK) Received: by mail-nwsmtp-smtp-production-main-59.iva.yp-c.yandex.net (smtp/Yandex) with ESMTPSA id YLV8ACC9TiE0-BAU64rpS; Sat, 11 Nov 2023 05:21:34 +0300 X-Yandex-Fwd: 1 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yandex.ru; s=mail; t=1699669294; bh=vt7PAqhzlzVoFuJYRG1grbcKbg/+k/zNAR41DnpIaG0=; h=Message-ID:Date:Subject:To:From; b=UKKGkLgObFyPsC1M5k7vUpbj6Y0H0qxEmknpygTGnr522ypwQchRGIn4is1jB30Yr zjnmL0Y/+KmUtJQeZHwct5tkFz/BxQNOoaW15vTCbZ6TNEH0BSF6qEy/SvJwf5vaIg J0yhmtG+ELNP0yy3G/7Y8f7H1xAHbxD/kDJ0AoiI= Authentication-Results: mail-nwsmtp-smtp-production-main-59.iva.yp-c.yandex.net; dkim=pass header.i=@yandex.ru From: Denis Zubarev To: bug-gnu-emacs@gnu.org Subject: [PATCH] Improve syntax highlighting for python-ts-mode Date: Sat, 11 Nov 2023 05:21:25 +0300 Message-ID: <8734xdni6y.fsf@yandex.ru> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="=-=-=" Received-SPF: pass client-ip=178.154.239.86; envelope-from=dvzubarev@yandex.ru; helo=forward103a.mail.yandex.net 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, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=ham autolearn_force=no X-Spam_action: no action X-Spam-Score: 3.0 (+++) X-Spam-Report: Spam detection software, running on the system "debbugs.gnu.org", has NOT identified this incoming email as spam. The original message has been attached to this so you can view it or label similar future email. If you have any questions, see the administrator of that system for details. Content preview: Tags: patch Improve syntax highlighting for python-ts-mode. - Fontify compound keywords "not in" and "is not" (fixes bug#67015) - Fix fontification of strings inside of f-strings interpolation, e.g. for f"beg {'nested'}" - 'nested' was not fontified as string. [...] Content analysis details: (3.0 points, 10.0 required) pts rule name description ---- ---------------------- -------------------------------------------------- 0.0 FREEMAIL_FROM Sender email is commonly abused enduser mail provider (dvzubarev[at]yandex.ru) -0.0 SPF_HELO_PASS SPF: HELO matches SPF record 1.0 SPF_SOFTFAIL SPF: sender does not match SPF record (softfail) 2.0 SPOOFED_FREEMAIL No description available. X-Debbugs-Envelope-To: submit 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 (/) --=-=-= Content-Type: text/plain Tags: patch Improve syntax highlighting for python-ts-mode. - Fontify compound keywords "not in" and "is not" (fixes bug#67015) - Fix fontification of strings inside of f-strings interpolation, e.g. for f"beg {'nested'}" - 'nested' was not fontified as string. - Do not override the face of builtin functions (all, bytes etc.) with the function call face - Add missing assignment expressions - Fontify built-ins (dict,list,etc.) as types when they are used in type hints I have added tests to treesit-tests.el, but I'm not sure that it is the right place for them. I tried to create new file python-ts-mode-tests.el, but when I run tests using make, I got an error: *** No rule to make target '../lisp/progmodes/python-ts-mode.el', needed by 'lisp/progmodes/python-ts-mode-tests.log'. Stop. It seems that python-ts-mode is required to be in its own file, but it is defined in python.el. Adding tests to python-tests.el seems like not good idea too, because some CI code is searching for *-ts-mode-tests.el or treesit-tests.el files. In GNU Emacs 30.0.50 (build 3, x86_64-pc-linux-gnu, GTK+ Version 3.24.33, cairo version 1.16.0) of 2023-11-11 built on NUC-here Repository revision: 400a71b8f2c5a49dce4f542adfd2fdb59eb34243 Repository branch: master Windowing system distributor 'The X.Org Foundation', version 11.0.12101004 System Description: Ubuntu 22.04.3 LTS Configured using: 'configure --with-modules --with-native-compilation=aot --with-imagemagick --with-json --with-tree-sitter --with-xft' --=-=-= Content-Type: text/patch Content-Disposition: attachment; filename=0001-Improve-syntax-highlighting-for-python-ts-mode.patch >From 0b3165eb90bdc1b85688d3c9a1902c1f293972d1 Mon Sep 17 00:00:00 2001 From: Denis Zubarev Date: Sat, 11 Nov 2023 04:55:44 +0300 Subject: [PATCH] Improve syntax highlighting for python-ts-mode * lisp/progmodes/python.el (python--treesit-keywords): Fontify compound keywords "not in" and "is not" (bug#67015). (python--treesit-fontify-string): Fix fontification of strings inside of f-strings interpolation, e.g. for f"beg {'nested'}" - 'nested' was not fontified as string. (python--treesit-fontify-string-interpolation): Remove function. (python--treesit-settings): Do not override the face of builtin functions (all, bytes etc.) with the function call face. Add missing assignment expressions. Fontify built-ins (dict,list,etc.) as types when they are used in type hints. * test/src/treesit-tests.el (python-ts-tests-with-temp-buffer): (python-ts-mode-compound-keywords-face): (python-ts-mode-named-assignement-face): (python-ts-mode-nested-types-face): (python-ts-mode-builtin-call-face): (python-ts-mode-interpolation-nested-string): (python-ts-mode-interpolation-doc-string): Add tests. --- lisp/progmodes/python.el | 81 +++++++++++++++++----------------- test/src/treesit-tests.el | 93 +++++++++++++++++++++++++++++++++++++++ 2 files changed, 134 insertions(+), 40 deletions(-) diff --git a/lisp/progmodes/python.el b/lisp/progmodes/python.el index d3cb5a77e2..e3a4e0d2f9 100644 --- a/lisp/progmodes/python.el +++ b/lisp/progmodes/python.el @@ -979,7 +979,7 @@ python--treesit-keywords "raise" "return" "try" "while" "with" "yield" ;; These are technically operators, but we fontify them as ;; keywords. - "and" "in" "is" "not" "or")) + "and" "in" "is" "not" "or" "is not" "not in")) (defvar python--treesit-builtins '("abs" "all" "any" "ascii" "bin" "bool" "breakpoint" "bytearray" @@ -1042,9 +1042,7 @@ python--treesit-fontify-string f-strings. OVERRIDE is the override flag described in `treesit-font-lock-rules'. START and END mark the region to be fontified." - (let* ((string-beg (treesit-node-start node)) - (string-end (treesit-node-end node)) - (maybe-expression (treesit-node-parent node)) + (let* ((maybe-expression (treesit-node-parent node)) (grandparent (treesit-node-parent (treesit-node-parent maybe-expression))) @@ -1072,28 +1070,29 @@ python--treesit-fontify-string (equal (treesit-node-type maybe-expression) "expression_statement")) 'font-lock-doc-face - 'font-lock-string-face))) - ;; Don't highlight string prefixes like f/r/b. - (save-excursion - (goto-char string-beg) - (when (re-search-forward "[\"']" string-end t) - (setq string-beg (match-beginning 0)))) - (treesit-fontify-with-override - string-beg string-end face override start end))) + 'font-lock-string-face)) + ;; We will highlight only string_start/string_content/string_end children + ;; Do not touch interpolation node that can occur inside of the string + (string-nodes (treesit-filter-child + node + (lambda (ch) (member (treesit-node-type ch) + '("string_start" + "string_content" + "string_end"))) + t))) + + (dolist (string-node string-nodes) + (let ((string-beg (treesit-node-start string-node)) + (string-end (treesit-node-end string-node))) + (when (equal (treesit-node-type string-node) "string_start") + ;; Don't highlight string prefixes like f/r/b. + (save-excursion + (goto-char string-beg) + (when (re-search-forward "[\"']" string-end t) + (setq string-beg (match-beginning 0))))) -(defun python--treesit-fontify-string-interpolation - (node _ start end &rest _) - "Fontify string interpolation. -NODE is the string node. Do not fontify the initial f for -f-strings. START and END mark the region to be -fontified." - ;; This is kind of a hack, it basically removes the face applied by - ;; the string feature, so that following features can apply their - ;; face. - (let ((n-start (treesit-node-start node)) - (n-end (treesit-node-end node))) - (remove-text-properties - (max start n-start) (min end n-end) '(face)))) + (treesit-fontify-with-override + string-beg string-end face override start end))))) (defvar python--treesit-settings (treesit-font-lock-rules @@ -1103,14 +1102,9 @@ python--treesit-settings :feature 'string :language 'python - '((string) @python--treesit-fontify-string) + '((string) @python--treesit-fontify-string + (interpolation ["{" "}"] @font-lock-misc-punctuation-face)) - ;; HACK: This feature must come after the string feature and before - ;; other features. Maybe we should make string-interpolation an - ;; option rather than a feature. - :feature 'string-interpolation - :language 'python - '((interpolation) @python--treesit-fontify-string-interpolation) :feature 'keyword :language 'python @@ -1126,12 +1120,6 @@ python--treesit-settings name: (identifier) @font-lock-type-face) (parameters (identifier) @font-lock-variable-name-face)) - :feature 'function - :language 'python - '((call function: (identifier) @font-lock-function-call-face) - (call function: (attribute - attribute: (identifier) @font-lock-function-call-face))) - :feature 'builtin :language 'python `(((identifier) @font-lock-builtin-face @@ -1142,6 +1130,12 @@ python--treesit-settings eol)) @font-lock-builtin-face))) + :feature 'function + :language 'python + '((call function: (identifier) @font-lock-function-call-face) + (call function: (attribute + attribute: (identifier) @font-lock-function-call-face))) + :feature 'constant :language 'python '([(true) (false) (none)] @font-lock-constant-face) @@ -1154,6 +1148,10 @@ python--treesit-settings (assignment left: (attribute attribute: (identifier) @font-lock-property-use-face)) + (augmented_assignment left: (identifier) + @font-lock-variable-name-face) + (named_expression name: (identifier) + @font-lock-variable-name-face) (pattern_list (identifier) @font-lock-variable-name-face) (tuple_pattern (identifier) @@ -1168,15 +1166,18 @@ python--treesit-settings '((decorator "@" @font-lock-type-face) (decorator (call function: (identifier) @font-lock-type-face)) (decorator (identifier) @font-lock-type-face)) - :feature 'type :language 'python + ;; override built-in faces when dict/list are used for type hints + :override t `(((identifier) @font-lock-type-face (:match ,(rx-to-string `(seq bol (or ,@python--treesit-exceptions) eol)) @font-lock-type-face)) - (type (identifier) @font-lock-type-face)) + (type [(identifier) (none)] @font-lock-type-face) + (type + (_ [(identifier) (none)] @font-lock-type-face))) :feature 'escape-sequence :language 'python diff --git a/test/src/treesit-tests.el b/test/src/treesit-tests.el index 791e902bd0..71c7b92957 100644 --- a/test/src/treesit-tests.el +++ b/test/src/treesit-tests.el @@ -1167,6 +1167,99 @@ treesit-defun-navigation-top-level treesit--ert-defun-navigation-top-level-master 'top-level)) +;;; python-ts-mode font-lock tests + +(defmacro python-ts-tests-with-temp-buffer (contents &rest body) + "Create a `python-ts-mode' enabled temp buffer with CONTENTS. +BODY is code to be executed within the temp buffer. Point is +always located at the beginning of buffer." + (declare (indent 1) (debug t)) + `(with-temp-buffer + (skip-unless (treesit-language-available-p 'python)) + (require 'python) + (let ((python-indent-guess-indent-offset nil)) + (python-ts-mode) + (insert ,contents) + (goto-char (point-min)) + ,@body))) + +(ert-deftest python-ts-mode-compound-keywords-face () + (dolist (test '("is not" "not in")) + (python-ts-tests-with-temp-buffer (concat "t " test " t") + (font-lock-ensure) + (forward-to-word) + (should (eq (face-at-point) font-lock-keyword-face)) + (forward-to-word) + (should (eq (face-at-point) font-lock-keyword-face))))) + +(ert-deftest python-ts-mode-named-assignement-face () + (python-ts-tests-with-temp-buffer "var := 3" + (font-lock-ensure) + (should (eq (face-at-point) font-lock-variable-name-face)))) + +(ert-deftest python-ts-mode-nested-types-face () + (python-ts-tests-with-temp-buffer "def func(v:dict[ list[ tuple[str] ], int | None] | None):" + (font-lock-ensure) + (dolist (test '("dict" "list" "tuple" "str" "int" "None" "None")) + (search-forward test) + (goto-char (match-beginning 0)) + (should (eq (face-at-point) font-lock-type-face))))) + +(ert-deftest python-ts-mode-builtin-call-face () + (python-ts-tests-with-temp-buffer "all()" + ;; enable 'function' feature from 4th level + (setopt treesit-font-lock-level 4) + (font-lock-ensure) + (should (eq (face-at-point) font-lock-builtin-face)))) + +(ert-deftest python-ts-mode-interpolation-nested-string () + (python-ts-tests-with-temp-buffer "t = f\"beg {var + 'string'}\"" + (font-lock-ensure) + + (search-forward "var") + (goto-char (match-beginning 0)) + (should (eq (face-at-point) font-lock-variable-name-face)) + + (goto-char (point-min)) + (dolist (test '("f" "{" "+" "}")) + (search-forward test) + (goto-char (match-beginning 0)) + (should (not (eq (face-at-point) font-lock-string-face)))) + + + (goto-char (point-min)) + (dolist (test '("beg" "'string'" "\"")) + (search-forward test) + (goto-char (match-beginning 0)) + (should (eq (face-at-point) font-lock-string-face))))) + +(ert-deftest python-ts-mode-interpolation-doc-string () + (python-ts-tests-with-temp-buffer "f\"\"\"beg {'s1' + var + 's2'} end\"\"\"" + (font-lock-ensure) + + (search-forward "var") + (goto-char (match-beginning 0)) + (should (eq (face-at-point) font-lock-variable-name-face)) + + (goto-char (point-min)) + (dolist (test '("f" "{" "+" "}")) + (search-forward test) + (goto-char (match-beginning 0)) + (should (not (eq (face-at-point) font-lock-string-face)))) + + (goto-char (point-min)) + (dolist (test '("\"\"\"" "beg" "end" "\"\"\"")) + (search-forward test) + (goto-char (match-beginning 0)) + (should (eq (face-at-point) font-lock-doc-face))) + + (goto-char (point-min)) + (dolist (test '("'s1'" "'s2'")) + (search-forward test) + (goto-char (match-beginning 0)) + (should (eq (face-at-point) font-lock-string-face))))) + + ;; TODO ;; - Functions in treesit.el ;; - treesit-load-name-override-list -- 2.34.1 --=-=-=-- From debbugs-submit-bounces@debbugs.gnu.org Sat Nov 11 02:33:45 2023 Received: (at 67061) by debbugs.gnu.org; 11 Nov 2023 07:33:45 +0000 Received: from localhost ([127.0.0.1]:51414 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1r1iUy-00080e-L3 for submit@debbugs.gnu.org; Sat, 11 Nov 2023 02:33:44 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:53292) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1r1iUw-00080Q-Cb for 67061@debbugs.gnu.org; Sat, 11 Nov 2023 02:33:43 -0500 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 1r1iUC-00068G-2t; Sat, 11 Nov 2023 02:32:56 -0500 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=U70Lbe/VLSxPaSFr5g4SzMLChY8yKVUkP8sMvXCkY40=; b=TnhzmEqMCg+1 m8vu95MJXIO+dR1WaG2laleacfV+PuV9NeJZlFkq2M0j1DuN0hs3ZMHXZMeZH3ff/Rd9k1+MBm5cg 4x6ju+yYwSJGD86op9dcd8VzI6dUBtuu2Qutnajwyxeut7bdkERWSGsbUzjqdSQYOECTiJwPBpTqU ag8eEhPsZqJPnZnIiWT02WPt+w5OJ02+ebgjjtKab+Te9z2QWBmN3M+PTWMFP3a3nMYXBE/ud6yPE Zuung+msRiF499Hg+lW/Vpf/7mV9W4v3nBgAWLk/udRP9LLi7BIbHCF4DS7f3bqfrLl9y1tFSqRFP Lm0/LOu8zE1rGjW3FxC6zw==; Date: Sat, 11 Nov 2023 09:32:48 +0200 Message-Id: <831qcwycbj.fsf@gnu.org> From: Eli Zaretskii To: Denis Zubarev , Yuan Fu In-Reply-To: <8734xdni6y.fsf@yandex.ru> (message from Denis Zubarev on Sat, 11 Nov 2023 05:21:25 +0300) Subject: Re: bug#67061: [PATCH] Improve syntax highlighting for python-ts-mode References: <8734xdni6y.fsf@yandex.ru> X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 67061 Cc: 67061@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 (---) > From: Denis Zubarev > Date: Sat, 11 Nov 2023 05:21:25 +0300 > > Improve syntax highlighting for python-ts-mode. > > - Fontify compound keywords "not in" and "is not" (fixes bug#67015) > - Fix fontification of strings inside of f-strings interpolation, > e.g. for f"beg {'nested'}" - 'nested' was not fontified as string. > - Do not override the face of builtin functions (all, bytes etc.) with > the function call face > - Add missing assignment expressions > - Fontify built-ins (dict,list,etc.) as types when they are used in type hints Yuan, any comments? My only comment is that we should decide in which fontification level(s) should the additional fontifications be. > I have added tests to treesit-tests.el, but I'm not sure that it is the > right place for them. I tried to create new file > python-ts-mode-tests.el, but when I run tests using make, I got > an error: > *** No rule to make target '../lisp/progmodes/python-ts-mode.el', needed by 'lisp/progmodes/python-ts-mode-tests.log'. Stop. > > It seems that python-ts-mode is required to be in its own file, but it > is defined in python.el. > Adding tests to python-tests.el seems like not good idea too, because > some CI code is searching for *-ts-mode-tests.el or treesit-tests.el files. The tests should be in python-tests.el, and should be skipped if (treesit-ready-p 'python t) returns nil. What problems with CI did you see? I don't think I understand your last sentence above. > >From 0b3165eb90bdc1b85688d3c9a1902c1f293972d1 Mon Sep 17 00:00:00 2001 > From: Denis Zubarev > Date: Sat, 11 Nov 2023 04:55:44 +0300 > Subject: [PATCH] Improve syntax highlighting for python-ts-mode This submission is too large for us to accept without a copyright assignment. Would you like to start your assignment copyright paperwork rolling at this time? If yes, I will send you the form to fill and the instructions to email it. Thanks. From debbugs-submit-bounces@debbugs.gnu.org Sat Nov 11 05:53:33 2023 Received: (at 67061) by debbugs.gnu.org; 11 Nov 2023 10:53:33 +0000 Received: from localhost ([127.0.0.1]:52141 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1r1lcK-0005DF-HW for submit@debbugs.gnu.org; Sat, 11 Nov 2023 05:53:32 -0500 Received: from forward501a.mail.yandex.net ([178.154.239.81]:59522) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1r1lcG-0005D4-Js for 67061@debbugs.gnu.org; Sat, 11 Nov 2023 05:53:31 -0500 Received: from mail-nwsmtp-mxback-production-main-48.vla.yp-c.yandex.net (mail-nwsmtp-mxback-production-main-48.vla.yp-c.yandex.net [IPv6:2a02:6b8:c2a:6a3:0:640:2307:0]) by forward501a.mail.yandex.net (Yandex) with ESMTP id 2DD9A61011; Sat, 11 Nov 2023 13:52:46 +0300 (MSK) Received: from mail.yandex.ru (2a02:6b8:c15:2909:0:640:eee1:0 [2a02:6b8:c15:2909:0:640:eee1:0]) by mail-nwsmtp-mxback-production-main-48.vla.yp-c.yandex.net (mxback/Yandex) with HTTP id eqdY172U6Sw0-Lo3pW1Yn; Sat, 11 Nov 2023 13:52:45 +0300 X-Yandex-Fwd: 1 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yandex.ru; s=mail; t=1699699965; bh=rJIwHLvIDqzAjerjNtparoUZTec8x4u/2x/ALiXcKMQ=; h=Message-Id:References:Date:Cc:Subject:In-Reply-To:To:From; b=oGmiTxW93wIQI2KXmWnVHIoKWWGCkI/ZH4RlKgSTKymM7eQticxlsrMZXh/XE12Fk t7d6m+R7WyxjOPvlvzd0gj03XfaxBh9nUsSqpEF4aiXxNN2GkpZf53H2CzVZr1ESox bQgXG0SlcVeYONZXdlduHaFvddPYV056bMPpWFhU= Authentication-Results: mail-nwsmtp-mxback-production-main-48.vla.yp-c.yandex.net; dkim=pass header.i=@yandex.ru Received: by 6yorfbioao7cchjm.vla.yp-c.yandex.net with HTTP; Sat, 11 Nov 2023 13:52:45 +0300 From: Denis Zubarev To: Eli Zaretskii , Yuan Fu In-Reply-To: <831qcwycbj.fsf@gnu.org> References: <8734xdni6y.fsf@yandex.ru> <831qcwycbj.fsf@gnu.org> Subject: Re: bug#67061: [PATCH] Improve syntax highlighting for python-ts-mode MIME-Version: 1.0 X-Mailer: Yamail [ http://yandex.ru ] 5.0 Date: Sat, 11 Nov 2023 13:52:45 +0300 Message-Id: <355881699699654@mail.yandex.ru> Content-Transfer-Encoding: base64 Content-Type: text/html; charset=utf-8 X-Spam-Score: 0.7 (/) X-Debbugs-Envelope-To: 67061 Cc: "67061@debbugs.gnu.org" <67061@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: -0.3 (/) PGRpdj48YmxvY2txdW90ZT48ZGl2Pk15IG9ubHkgY29tbWVudCBpcyB0aGF0IHdlIHNob3VsZCBk ZWNpZGUgaW4gd2hpY2ggZm9udGlmaWNhdGlvbjxiciAvPmxldmVsKHMpIHNob3VsZCB0aGUgYWRk aXRpb25hbCBmb250aWZpY2F0aW9ucyBiZS48L2Rpdj48L2Jsb2NrcXVvdGU+PC9kaXY+PGRpdj5J IGRpZG4ndCBhZGQgYW55IG5ldyBmZWF0dXJlcywganVzdCB0d2VhayB0aGUgb2xkIG9uZXMgdG8g YmUgbW9yZSBjb3JyZWN0LjwvZGl2PjxkaXY+wqA8L2Rpdj48ZGl2PjxibG9ja3F1b3RlPjxkaXY+ V2hhdCBwcm9ibGVtcyB3aXRoIENJIGRpZCB5b3Ugc2VlPyBJIGRvbid0IHRoaW5rIEkgdW5kZXJz dGFuZCB5b3VyPGJyIC8+bGFzdCBzZW50ZW5jZSBhYm92ZS48L2Rpdj48L2Jsb2NrcXVvdGU+PC9k aXY+PGRpdj5JJ3ZlIGdyZXBwZWQgdGhlIGNvZGViYXNlIGFuZCBmb3VuZCB0aG9zZSBsaW5lczo8 L2Rpdj48ZGl2PsKgPC9kaXY+PGRpdj48ZGl2PlRSRUUtU0lUVEVSLUZJTEVTID89ICQoc2hlbGwg Y2QgLi4gOyBcPC9kaXY+PGRpdj7CoCBmaW5kIGxpc3Agc3JjIFwoIC1uYW1lICIqLXRzLW1vZGUt dGVzdHMuZWwiIC1vIC1uYW1lICJ0cmVlc2l0LXRlc3RzLmVsIiBcKSB8IFw8L2Rpdj48ZGl2PsKg IHNvcnQgfCBzZWQgcy9cXC5lbC8ubG9nLyk8L2Rpdj48ZGl2PsKgPC9kaXY+PGRpdj5pbiB0ZXN0 L2luZnJhL01ha2VmaWxlLmluPC9kaXY+PC9kaXY+PGRpdj5JIHRob3VnaHQgdGhhdCB0cmVlLXNp dHRlciB0ZXN0cyDCoHNob3VsZCBnbyB0byBlaXRoZXIgKi10cy1tb2RlLXRlc3RzLmVsIG9yIHRy ZWVzaXQtdGVzdHMuZWwgZmlsZXMuPC9kaXY+PGRpdj7CoDwvZGl2PjxkaXY+PGJsb2NrcXVvdGU+ PGRpdj5Xb3VsZCB5b3UgbGlrZSB0byBzdGFydCB5b3VyIGFzc2lnbm1lbnQgY29weXJpZ2h0PGJy IC8+cGFwZXJ3b3JrIHJvbGxpbmcgYXQgdGhpcyB0aW1lPyBJZiB5ZXMsIEkgd2lsbCBzZW5kIHlv dSB0aGUgZm9ybSB0bzxiciAvPmZpbGwgYW5kIHRoZSBpbnN0cnVjdGlvbnMgdG8gZW1haWwgaXQu PC9kaXY+PC9ibG9ja3F1b3RlPjwvZGl2PjxkaXY+WWVzLCBwbGVhc2UuPC9kaXY+PGRpdj7CoDwv ZGl2PjxkaXY+MTEuMTEuMjAyMywgMTA6MzMsICJFbGkgWmFyZXRza2lpIiAmbHQ7ZWxpekBnbnUu b3JnJmd0Ozo8L2Rpdj48YmxvY2txdW90ZT48YmxvY2txdW90ZT7CoEZyb206IERlbmlzIFp1YmFy ZXYgJmx0OzxhIGhyZWY9Im1haWx0bzpkdnp1YmFyZXZAeWFuZGV4LnJ1IiByZWw9Im5vb3BlbmVy IG5vcmVmZXJyZXIiPmR2enViYXJldkB5YW5kZXgucnU8L2E+Jmd0OzxiciAvPsKgRGF0ZTogU2F0 LCAxMSBOb3YgMjAyMyAwNToyMToyNSArMDMwMDxiciAvPsKgPGJyIC8+wqBJbXByb3ZlIHN5bnRh eCBoaWdobGlnaHRpbmcgZm9yIHB5dGhvbi10cy1tb2RlLjxiciAvPsKgPGJyIC8+wqAtIEZvbnRp ZnkgY29tcG91bmQga2V5d29yZHMgIm5vdCBpbiIgYW5kICJpcyBub3QiIChmaXhlcyBidWcjNjcw MTUpPGJyIC8+wqAtIEZpeCBmb250aWZpY2F0aW9uIG9mIHN0cmluZ3MgaW5zaWRlIG9mIGYtc3Ry aW5ncyBpbnRlcnBvbGF0aW9uLDxiciAvPsKgwqDCoMKgZS5nLiBmb3IgZiJiZWcgeyduZXN0ZWQn fSIgLSAnbmVzdGVkJyB3YXMgbm90IGZvbnRpZmllZCBhcyBzdHJpbmcuPGJyIC8+wqAtIERvIG5v dCBvdmVycmlkZSB0aGUgZmFjZSBvZiBidWlsdGluIGZ1bmN0aW9ucyAoYWxsLCBieXRlcyBldGMu KSB3aXRoPGJyIC8+wqDCoMKgdGhlIGZ1bmN0aW9uIGNhbGwgZmFjZTxiciAvPsKgLSBBZGQgbWlz c2luZyBhc3NpZ25tZW50IGV4cHJlc3Npb25zPGJyIC8+wqAtIEZvbnRpZnkgYnVpbHQtaW5zIChk aWN0LGxpc3QsZXRjLikgYXMgdHlwZXMgd2hlbiB0aGV5IGFyZSB1c2VkIGluIHR5cGUgaGludHM8 L2Jsb2NrcXVvdGU+PHA+PGJyIC8+WXVhbiwgYW55IGNvbW1lbnRzPzxiciAvPjxiciAvPk15IG9u bHkgY29tbWVudCBpcyB0aGF0IHdlIHNob3VsZCBkZWNpZGUgaW4gd2hpY2ggZm9udGlmaWNhdGlv bjxiciAvPmxldmVsKHMpIHNob3VsZCB0aGUgYWRkaXRpb25hbCBmb250aWZpY2F0aW9ucyBiZS48 YnIgLz7CoDwvcD48YmxvY2txdW90ZT7CoEkgaGF2ZSBhZGRlZCB0ZXN0cyB0byB0cmVlc2l0LXRl c3RzLmVsLCBidXQgSSdtIG5vdCBzdXJlIHRoYXQgaXQgaXMgdGhlPGJyIC8+wqByaWdodCBwbGFj ZSBmb3IgdGhlbS4gSSB0cmllZCB0byBjcmVhdGUgbmV3IGZpbGU8YnIgLz7CoHB5dGhvbi10cy1t b2RlLXRlc3RzLmVsLCBidXQgd2hlbiBJIHJ1biB0ZXN0cyB1c2luZyBtYWtlLCBJIGdvdDxiciAv PsKgYW4gZXJyb3I6PGJyIC8+wqAqKiogTm8gcnVsZSB0byBtYWtlIHRhcmdldCAnLi4vbGlzcC9w cm9nbW9kZXMvcHl0aG9uLXRzLW1vZGUuZWwnLCBuZWVkZWQgYnkgJ2xpc3AvcHJvZ21vZGVzL3B5 dGhvbi10cy1tb2RlLXRlc3RzLmxvZycuIFN0b3AuPGJyIC8+wqA8YnIgLz7CoEl0IHNlZW1zIHRo YXQgcHl0aG9uLXRzLW1vZGUgaXMgcmVxdWlyZWQgdG8gYmUgaW4gaXRzIG93biBmaWxlLCBidXQg aXQ8YnIgLz7CoGlzIGRlZmluZWQgaW4gcHl0aG9uLmVsLjxiciAvPsKgQWRkaW5nIHRlc3RzIHRv IHB5dGhvbi10ZXN0cy5lbCBzZWVtcyBsaWtlIG5vdCBnb29kIGlkZWEgdG9vLCBiZWNhdXNlPGJy IC8+wqBzb21lIENJIGNvZGUgaXMgc2VhcmNoaW5nIGZvciAqLXRzLW1vZGUtdGVzdHMuZWwgb3Ig dHJlZXNpdC10ZXN0cy5lbCBmaWxlcy48L2Jsb2NrcXVvdGU+PHA+PGJyIC8+VGhlIHRlc3RzIHNo b3VsZCBiZSBpbiBweXRob24tdGVzdHMuZWwsIGFuZCBzaG91bGQgYmUgc2tpcHBlZCBpZjxiciAv Pih0cmVlc2l0LXJlYWR5LXAgJ3B5dGhvbiB0KSByZXR1cm5zIG5pbC48YnIgLz48YnIgLz5XaGF0 IHByb2JsZW1zIHdpdGggQ0kgZGlkIHlvdSBzZWU/IEkgZG9uJ3QgdGhpbmsgSSB1bmRlcnN0YW5k IHlvdXI8YnIgLz5sYXN0IHNlbnRlbmNlIGFib3ZlLjxiciAvPsKgPC9wPjxibG9ja3F1b3RlPsKg Jmd0O0Zyb20gMGIzMTY1ZWI5MGJkYzFiODU2ODhkM2M5YTE5MDJjMWYyOTM5NzJkMSBNb24gU2Vw IDE3IDAwOjAwOjAwIDIwMDE8YnIgLz7CoEZyb206IERlbmlzIFp1YmFyZXYgJmx0OzxhIGhyZWY9 Im1haWx0bzpkdnp1YmFyZXZAeWFuZGV4LnJ1IiByZWw9Im5vb3BlbmVyIG5vcmVmZXJyZXIiPmR2 enViYXJldkB5YW5kZXgucnU8L2E+Jmd0OzxiciAvPsKgRGF0ZTogU2F0LCAxMSBOb3YgMjAyMyAw NDo1NTo0NCArMDMwMDxiciAvPsKgU3ViamVjdDogW1BBVENIXSBJbXByb3ZlIHN5bnRheCBoaWdo bGlnaHRpbmcgZm9yIHB5dGhvbi10cy1tb2RlPC9ibG9ja3F1b3RlPjxwPjxiciAvPlRoaXMgc3Vi bWlzc2lvbiBpcyB0b28gbGFyZ2UgZm9yIHVzIHRvIGFjY2VwdCB3aXRob3V0IGEgY29weXJpZ2h0 PGJyIC8+YXNzaWdubWVudC4gV291bGQgeW91IGxpa2UgdG8gc3RhcnQgeW91ciBhc3NpZ25tZW50 IGNvcHlyaWdodDxiciAvPnBhcGVyd29yayByb2xsaW5nIGF0IHRoaXMgdGltZT8gSWYgeWVzLCBJ IHdpbGwgc2VuZCB5b3UgdGhlIGZvcm0gdG88YnIgLz5maWxsIGFuZCB0aGUgaW5zdHJ1Y3Rpb25z IHRvIGVtYWlsIGl0LjxiciAvPjxiciAvPlRoYW5rcy48L3A+PC9ibG9ja3F1b3RlPg== From debbugs-submit-bounces@debbugs.gnu.org Sat Nov 11 06:01:54 2023 Received: (at 67061) by debbugs.gnu.org; 11 Nov 2023 11:01:54 +0000 Received: from localhost ([127.0.0.1]:52152 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1r1lkQ-0005SD-0O for submit@debbugs.gnu.org; Sat, 11 Nov 2023 06:01:54 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:55132) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1r1lkL-0005Rt-SA for 67061@debbugs.gnu.org; Sat, 11 Nov 2023 06:01:53 -0500 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 1r1ljb-0002Nw-RA; Sat, 11 Nov 2023 06:01:03 -0500 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=rRljS28RV/HHXviQFqTCKFp6qTbDsUQrXkISlirzKbs=; b=AVtnj0QKgJMB 21+M9Zv4IEs96D0mfeae/unHqdiCCoaomYne3nTcTTsslIyakguPxl2DTjH9atRpUIexn+dNyAldo 7E6rdchniXITUFnWfIOwWifN/d93tRpUKjk0qnoZJFtibpEHtyZHKjJKHroew8ffmMN5InslDmPzl LowfEiID98uckGhK0nNOXON09EQKhWRmZY1S47agf0oD54v0SPeMs6rARWRuEmX81iOHBLlQjS3mX 9So4lwgKnMDI56NyOX/QoRzbgUgeVr8QHlgRg6PhcHZsfkfTT0XfQUJyf7EHWL0MzVyTQlCujEwjr YZXp6mc8HougfaXKDactEg==; Date: Sat, 11 Nov 2023 13:00:59 +0200 Message-Id: <83h6lswo44.fsf@gnu.org> From: Eli Zaretskii To: Denis Zubarev In-Reply-To: <355881699699654@mail.yandex.ru> (message from Denis Zubarev on Sat, 11 Nov 2023 13:52:45 +0300) Subject: Re: bug#67061: [PATCH] Improve syntax highlighting for python-ts-mode References: <8734xdni6y.fsf@yandex.ru> <831qcwycbj.fsf@gnu.org> <355881699699654@mail.yandex.ru> X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 67061 Cc: casouri@gmail.com, 67061@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 (---) > From: Denis Zubarev > Cc: "67061@debbugs.gnu.org" <67061@debbugs.gnu.org> > Date: Sat, 11 Nov 2023 13:52:45 +0300 > > My only comment is that we should decide in which fontification > level(s) should the additional fontifications be. > > I didn't add any new features, just tweak the old ones to be more correct. I thought at least some of these are new: > > - Fontify compound keywords "not in" and "is not" (fixes bug#67015) > > - Fix fontification of strings inside of f-strings interpolation, > > e.g. for f"beg {'nested'}" - 'nested' was not fontified as string. > > - Do not override the face of builtin functions (all, bytes etc.) with > > the function call face > > - Add missing assignment expressions > > - Fontify built-ins (dict,list,etc.) as types when they are used in type hints For example, isn't the first item an addition? And what about "missing assignment expressions"? > What problems with CI did you see? I don't think I understand your > last sentence above. > > I've grepped the codebase and found those lines: > > TREE-SITTER-FILES ?= $(shell cd .. ; \ > find lisp src \( -name "*-ts-mode-tests.el" -o -name "treesit-tests.el" \) | \ > sort | sed s/\\.el/.log/) > > in test/infra/Makefile.in > I thought that tree-sitter tests should go to either *-ts-mode-tests.el or treesit-tests.el files. No, I don't think so. If having them in python-tests.el triggers some problems, please show them, and let's take it from there. > Would you like to start your assignment copyright > paperwork rolling at this time? If yes, I will send you the form to > fill and the instructions to email it. > > Yes, please. Thanks, form sent off-list. From debbugs-submit-bounces@debbugs.gnu.org Sat Nov 11 07:10:07 2023 Received: (at 67061) by debbugs.gnu.org; 11 Nov 2023 12:10:07 +0000 Received: from localhost ([127.0.0.1]:52252 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1r1moQ-0007Vc-UY for submit@debbugs.gnu.org; Sat, 11 Nov 2023 07:10:07 -0500 Received: from forward502a.mail.yandex.net ([2a02:6b8:c0e:500:1:45:d181:d502]:36236) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1r1moP-0007V2-8m for 67061@debbugs.gnu.org; Sat, 11 Nov 2023 07:10:05 -0500 Received: from mail-nwsmtp-mxback-production-main-36.vla.yp-c.yandex.net (mail-nwsmtp-mxback-production-main-36.vla.yp-c.yandex.net [IPv6:2a02:6b8:c1f:5e80:0:640:d4c0:0]) by forward502a.mail.yandex.net (Yandex) with ESMTP id CC28C60CD3; Sat, 11 Nov 2023 15:09:18 +0300 (MSK) Received: from mail.yandex.ru (2a02:6b8:c15:339a:0:640:480e:0 [2a02:6b8:c15:339a:0:640:480e:0]) by mail-nwsmtp-mxback-production-main-36.vla.yp-c.yandex.net (mxback/Yandex) with HTTP id 89fZu82U50U0-TyKq90Q5; Sat, 11 Nov 2023 15:09:18 +0300 X-Yandex-Fwd: 1 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yandex.ru; s=mail; t=1699704558; bh=P0k1Ua5b99+A3VXCzIhQaXZfbV8dmLA4ACH6Y+9oqY0=; h=Message-Id:References:Date:Cc:Subject:In-Reply-To:To:From; b=ZrAejv/FTRYU+YKj/xSmq4XTwHEsGEyJn1zkkoQ/kLtkbDsKwAN6ODNoWHbfFizQ8 xYWshMm+On+sX0GsVwTZMXDSv7zEHMwYANEqOH1iCvRjS3c/lVJL1ca0iCDoU6MGpr zG77+xe8rWrHtZEWS+Pt7uer/3XFQ+unP9Jh1K3E= Authentication-Results: mail-nwsmtp-mxback-production-main-36.vla.yp-c.yandex.net; dkim=pass header.i=@yandex.ru Received: by megd36izw2gubgrl.vla.yp-c.yandex.net with HTTP; Sat, 11 Nov 2023 15:09:17 +0300 From: Denis Zubarev To: Eli Zaretskii In-Reply-To: <83h6lswo44.fsf@gnu.org> References: <8734xdni6y.fsf@yandex.ru> <831qcwycbj.fsf@gnu.org> <355881699699654@mail.yandex.ru> <83h6lswo44.fsf@gnu.org> Subject: Re: bug#67061: [PATCH] Improve syntax highlighting for python-ts-mode MIME-Version: 1.0 X-Mailer: Yamail [ http://yandex.ru ] 5.0 Date: Sat, 11 Nov 2023 15:09:17 +0300 Message-Id: <1240341699704033@mail.yandex.ru> Content-Transfer-Encoding: base64 Content-Type: text/html; charset=utf-8 X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 67061 Cc: "casouri@gmail.com" , "67061@debbugs.gnu.org" <67061@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: -1.0 (-) PGRpdj48YmxvY2txdW90ZT48ZGl2PkZvciBleGFtcGxlLCBpc24ndCB0aGUgZmlyc3QgaXRlbSBh biBhZGRpdGlvbj8gQW5kIHdoYXQgYWJvdXQ8YnIgLz4ibWlzc2luZyBhc3NpZ25tZW50IGV4cHJl c3Npb25zIj88L2Rpdj48L2Jsb2NrcXVvdGU+PC9kaXY+PGRpdj5UaGUgZmlyc3QgaXRlbSBpcyBh biBleHRlbnNpb24gb2YgImtleXdvcmQiIGZlYXR1cmUuIEkndmUgYWRkZWQgImlzIG5vdCIgYW5k ICJub3QgaW4iIHRvIHRoZSBgcHl0aG9uLS10cmVlc2l0LWtleXdvcmRzYCBsaXN0LjwvZGl2Pjxk aXY+PGRpdj4ibWlzc2luZyBhc3NpZ25tZW50IGV4cHJlc3Npb25zIiBpcyBleHRlbnNpb24gb2Yg ImFzc2lnbm1lbnQiIGZlYXR1cmUuPC9kaXY+PGRpdj5JJ3ZlIGFkZGVkIHR3byB0cmVlLXNpdHRl ciBxdWVyaWVzLjwvZGl2PjxkaXY+Rm9yIGV4YW1wbGU6IGB2YXIgPSAzYCAtIHZhciB3YXMgZm9u dGlmaWVkIHdpdGggYGZvbnQtbG9jay12YXJpYWJsZS1uYW1lLWZhY2VgLCBidXQgaW4gdGhlIGV4 cHJlc3Npb24gYHZhciAqPSAzYCAtIHZhciB3YXNuJ3QgZm9udGlmaWVkIGFzIHZhcmlhYmxlLjwv ZGl2PjwvZGl2PjxkaXY+wqA8L2Rpdj48ZGl2PjExLjExLjIwMjMsIDE0OjAxLCAiRWxpIFphcmV0 c2tpaSIgJmx0O2VsaXpAZ251Lm9yZyZndDs6PC9kaXY+PGJsb2NrcXVvdGU+PGJsb2NrcXVvdGU+ wqBGcm9tOiBEZW5pcyBadWJhcmV2ICZsdDs8YSBocmVmPSJtYWlsdG86ZHZ6dWJhcmV2QHlhbmRl eC5ydSIgcmVsPSJub29wZW5lciBub3JlZmVycmVyIj5kdnp1YmFyZXZAeWFuZGV4LnJ1PC9hPiZn dDs8YnIgLz7CoENjOiAiPGEgaHJlZj0ibWFpbHRvOjY3MDYxQGRlYmJ1Z3MuZ251Lm9yZyIgcmVs PSJub29wZW5lciBub3JlZmVycmVyIj42NzA2MUBkZWJidWdzLmdudS5vcmc8L2E+IiAmbHQ7PGEg aHJlZj0ibWFpbHRvOjY3MDYxQGRlYmJ1Z3MuZ251Lm9yZyIgcmVsPSJub29wZW5lciBub3JlZmVy cmVyIj42NzA2MUBkZWJidWdzLmdudS5vcmc8L2E+Jmd0OzxiciAvPsKgRGF0ZTogU2F0LCAxMSBO b3YgMjAyMyAxMzo1Mjo0NSArMDMwMDxiciAvPsKgPGJyIC8+wqDCoE15IG9ubHkgY29tbWVudCBp cyB0aGF0IHdlIHNob3VsZCBkZWNpZGUgaW4gd2hpY2ggZm9udGlmaWNhdGlvbjxiciAvPsKgwqBs ZXZlbChzKSBzaG91bGQgdGhlIGFkZGl0aW9uYWwgZm9udGlmaWNhdGlvbnMgYmUuPGJyIC8+wqA8 YnIgLz7CoEkgZGlkbid0IGFkZCBhbnkgbmV3IGZlYXR1cmVzLCBqdXN0IHR3ZWFrIHRoZSBvbGQg b25lcyB0byBiZSBtb3JlIGNvcnJlY3QuPC9ibG9ja3F1b3RlPjxwPjxiciAvPkkgdGhvdWdodCBh dCBsZWFzdCBzb21lIG9mIHRoZXNlIGFyZSBuZXc6PGJyIC8+wqA8L3A+PGJsb2NrcXVvdGU+wqAm Z3Q7IC0gRm9udGlmeSBjb21wb3VuZCBrZXl3b3JkcyAibm90IGluIiBhbmQgImlzIG5vdCIgKGZp eGVzIGJ1ZyM2NzAxNSk8YnIgLz7CoCZndDsgLSBGaXggZm9udGlmaWNhdGlvbiBvZiBzdHJpbmdz IGluc2lkZSBvZiBmLXN0cmluZ3MgaW50ZXJwb2xhdGlvbiw8YnIgLz7CoCZndDsgZS5nLiBmb3Ig ZiJiZWcgeyduZXN0ZWQnfSIgLSAnbmVzdGVkJyB3YXMgbm90IGZvbnRpZmllZCBhcyBzdHJpbmcu PGJyIC8+wqAmZ3Q7IC0gRG8gbm90IG92ZXJyaWRlIHRoZSBmYWNlIG9mIGJ1aWx0aW4gZnVuY3Rp b25zIChhbGwsIGJ5dGVzIGV0Yy4pIHdpdGg8YnIgLz7CoCZndDsgdGhlIGZ1bmN0aW9uIGNhbGwg ZmFjZTxiciAvPsKgJmd0OyAtIEFkZCBtaXNzaW5nIGFzc2lnbm1lbnQgZXhwcmVzc2lvbnM8YnIg Lz7CoCZndDsgLSBGb250aWZ5IGJ1aWx0LWlucyAoZGljdCxsaXN0LGV0Yy4pIGFzIHR5cGVzIHdo ZW4gdGhleSBhcmUgdXNlZCBpbiB0eXBlIGhpbnRzPC9ibG9ja3F1b3RlPjxwPjxiciAvPkZvciBl eGFtcGxlLCBpc24ndCB0aGUgZmlyc3QgaXRlbSBhbiBhZGRpdGlvbj8gQW5kIHdoYXQgYWJvdXQ8 YnIgLz4ibWlzc2luZyBhc3NpZ25tZW50IGV4cHJlc3Npb25zIj88YnIgLz7CoDwvcD48YmxvY2tx dW90ZT7CoMKgV2hhdCBwcm9ibGVtcyB3aXRoIENJIGRpZCB5b3Ugc2VlPyBJIGRvbid0IHRoaW5r IEkgdW5kZXJzdGFuZCB5b3VyPGJyIC8+wqDCoGxhc3Qgc2VudGVuY2UgYWJvdmUuPGJyIC8+wqA8 YnIgLz7CoEkndmUgZ3JlcHBlZCB0aGUgY29kZWJhc2UgYW5kIGZvdW5kIHRob3NlIGxpbmVzOjxi ciAvPsKgwqA8YnIgLz7CoFRSRUUtU0lUVEVSLUZJTEVTID89ICQoc2hlbGwgY2QgLi4gOyBcPGJy IC8+wqDCoMKgZmluZCBsaXNwIHNyYyBcKCAtbmFtZSAiKi10cy1tb2RlLXRlc3RzLmVsIiAtbyAt bmFtZSAidHJlZXNpdC10ZXN0cy5lbCIgXCkgfCBcPGJyIC8+wqDCoMKgc29ydCB8IHNlZCBzL1xc LmVsLy5sb2cvKTxiciAvPsKgwqA8YnIgLz7CoGluIHRlc3QvaW5mcmEvTWFrZWZpbGUuaW48YnIg Lz7CoEkgdGhvdWdodCB0aGF0IHRyZWUtc2l0dGVyIHRlc3RzIHNob3VsZCBnbyB0byBlaXRoZXIg Ki10cy1tb2RlLXRlc3RzLmVsIG9yIHRyZWVzaXQtdGVzdHMuZWwgZmlsZXMuPC9ibG9ja3F1b3Rl PjxwPjxiciAvPk5vLCBJIGRvbid0IHRoaW5rIHNvLiBJZiBoYXZpbmcgdGhlbSBpbiBweXRob24t dGVzdHMuZWwgdHJpZ2dlcnMgc29tZTxiciAvPnByb2JsZW1zLCBwbGVhc2Ugc2hvdyB0aGVtLCBh bmQgbGV0J3MgdGFrZSBpdCBmcm9tIHRoZXJlLjxiciAvPsKgPC9wPjxibG9ja3F1b3RlPsKgwqBX b3VsZCB5b3UgbGlrZSB0byBzdGFydCB5b3VyIGFzc2lnbm1lbnQgY29weXJpZ2h0PGJyIC8+wqDC oHBhcGVyd29yayByb2xsaW5nIGF0IHRoaXMgdGltZT8gSWYgeWVzLCBJIHdpbGwgc2VuZCB5b3Ug dGhlIGZvcm0gdG88YnIgLz7CoMKgZmlsbCBhbmQgdGhlIGluc3RydWN0aW9ucyB0byBlbWFpbCBp dC48YnIgLz7CoDxiciAvPsKgWWVzLCBwbGVhc2UuPC9ibG9ja3F1b3RlPjxwPjxiciAvPlRoYW5r cywgZm9ybSBzZW50IG9mZi1saXN0LjwvcD48L2Jsb2NrcXVvdGU+ From debbugs-submit-bounces@debbugs.gnu.org Wed Nov 15 11:07:44 2023 Received: (at 67061) by debbugs.gnu.org; 15 Nov 2023 16:07:44 +0000 Received: from localhost ([127.0.0.1]:53015 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1r3IQZ-0001Tl-P4 for submit@debbugs.gnu.org; Wed, 15 Nov 2023 11:07:44 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:58120) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1r3IQV-0001QS-63 for 67061@debbugs.gnu.org; Wed, 15 Nov 2023 11:07:39 -0500 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 1r3Fwh-0005c9-Bc; Wed, 15 Nov 2023 08:28:43 -0500 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=bgR+xgsziKvD0Q4JG0v9KfU1B/kORZLf4ZaM67BQ4Jc=; b=fCmwEmLRxEZe eF+VGdq07cZO8wUsFWT0OnMvMyoV0qm3mZPUAIS/d3+hsTcQeKAFQUceHMqYfWS1MBWQAAvxk81lZ 2s7eQnA58+kp8ovy2r6v5TlwLMeddoWU80usfQCZw54K2EDb2jRnRl/FUebm6U5jIEP3JyldFDBRR 3Rrg7P1jEGo182nLrkOd2PTLW5Tp4hS3szq5eTxjUutaw7nYE55DvzcpceIDM1W6x3GMJ1tj2DfK7 Ljz56TfluQoIQdH0XQ89f0amTPYXtKU/SA3ddQdyqmTpnumbhAw+j0PT2pDaHKD8qwJDghgPXA6+4 Ax04aAyWtkqIz54sDhnKrA==; Date: Wed, 15 Nov 2023 15:28:33 +0200 Message-Id: <83v8a3qh6m.fsf@gnu.org> From: Eli Zaretskii To: casouri@gmail.com In-Reply-To: <831qcwycbj.fsf@gnu.org> (message from Eli Zaretskii on Sat, 11 Nov 2023 09:32:48 +0200) Subject: Re: bug#67061: [PATCH] Improve syntax highlighting for python-ts-mode References: <8734xdni6y.fsf@yandex.ru> <831qcwycbj.fsf@gnu.org> X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 67061 Cc: dvzubarev@yandex.ru, 67061@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 (---) Ping! > Cc: 67061@debbugs.gnu.org > Date: Sat, 11 Nov 2023 09:32:48 +0200 > From: Eli Zaretskii > > > From: Denis Zubarev > > Date: Sat, 11 Nov 2023 05:21:25 +0300 > > > > Improve syntax highlighting for python-ts-mode. > > > > - Fontify compound keywords "not in" and "is not" (fixes bug#67015) > > - Fix fontification of strings inside of f-strings interpolation, > > e.g. for f"beg {'nested'}" - 'nested' was not fontified as string. > > - Do not override the face of builtin functions (all, bytes etc.) with > > the function call face > > - Add missing assignment expressions > > - Fontify built-ins (dict,list,etc.) as types when they are used in type hints > > Yuan, any comments? From debbugs-submit-bounces@debbugs.gnu.org Sat Nov 25 04:35:46 2023 Received: (at 67061) by debbugs.gnu.org; 25 Nov 2023 09:35:46 +0000 Received: from localhost ([127.0.0.1]:37832 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1r6p4j-0003sd-Vd for submit@debbugs.gnu.org; Sat, 25 Nov 2023 04:35:46 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:46788) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1r6p4h-0003sQ-Lt for 67061@debbugs.gnu.org; Sat, 25 Nov 2023 04:35:44 -0500 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 1r6p4X-0000OK-6w; Sat, 25 Nov 2023 04:35:33 -0500 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=U0wwkMq0IuXqo678Q1DcSN4L6bOKHOBT2JKeH969i10=; b=MBV6k8GcqKjP aiH2uQ8j2txYl2e86lH8E8MTqKmz7jlJpLLfw76Ov2jzoz/8kjqDeWiVsJE9ZYUbnEqCeth0ILItx aUVdnaBs/D5p+J7S84qs3eKXrLINyRLmzVsnMyzRetLjtDb1+7h3wjY5J6vn7E3h/fSfhaT2auVJa LdC5R2k1gDW8auLN2Skg6NT7S36Ou+UKo+MRF2SDKrphxFdIy9iW4VIIpj+4F9OBZstrSPA3YNhle yUAPwUJklLRLjGR7+HfYwO3MfbbKQpE9he+0E4wAt8XGHOfhPP5VEjpMXx1TXtt9PdUAAkOu8Ffu6 I0wdYcKPXo+IAWL+jcpDDw==; Date: Sat, 25 Nov 2023 11:35:30 +0200 Message-Id: <834jhadvkt.fsf@gnu.org> From: Eli Zaretskii To: casouri@gmail.com In-Reply-To: <83v8a3qh6m.fsf@gnu.org> (message from Eli Zaretskii on Wed, 15 Nov 2023 15:28:33 +0200) Subject: Re: bug#67061: [PATCH] Improve syntax highlighting for python-ts-mode References: <8734xdni6y.fsf@yandex.ru> <831qcwycbj.fsf@gnu.org> <83v8a3qh6m.fsf@gnu.org> X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 67061 Cc: dvzubarev@yandex.ru, 67061@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 (---) Ping! Ping! Yuan, could you please chime in? We are waiting for Denis's legal paperwork to come through, but meanwhile I'd like your opinions on the changes he proposed, and also on whether this should be installed on the emacs-29 branch or on master. > Cc: dvzubarev@yandex.ru, 67061@debbugs.gnu.org > Date: Wed, 15 Nov 2023 15:28:33 +0200 > From: Eli Zaretskii > > Ping! > > > Cc: 67061@debbugs.gnu.org > > Date: Sat, 11 Nov 2023 09:32:48 +0200 > > From: Eli Zaretskii > > > > > From: Denis Zubarev > > > Date: Sat, 11 Nov 2023 05:21:25 +0300 > > > > > > Improve syntax highlighting for python-ts-mode. > > > > > > - Fontify compound keywords "not in" and "is not" (fixes bug#67015) > > > - Fix fontification of strings inside of f-strings interpolation, > > > e.g. for f"beg {'nested'}" - 'nested' was not fontified as string. > > > - Do not override the face of builtin functions (all, bytes etc.) with > > > the function call face > > > - Add missing assignment expressions > > > - Fontify built-ins (dict,list,etc.) as types when they are used in type hints > > > > Yuan, any comments? > > > > From debbugs-submit-bounces@debbugs.gnu.org Sat Nov 25 21:12:21 2023 Received: (at 67061) by debbugs.gnu.org; 26 Nov 2023 02:12:21 +0000 Received: from localhost ([127.0.0.1]:40519 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1r74dB-0006KB-FA for submit@debbugs.gnu.org; Sat, 25 Nov 2023 21:12:21 -0500 Received: from wout1-smtp.messagingengine.com ([64.147.123.24]:48335) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1r74d9-0006Jx-Du for 67061@debbugs.gnu.org; Sat, 25 Nov 2023 21:12:19 -0500 Received: from compute6.internal (compute6.nyi.internal [10.202.2.47]) by mailout.west.internal (Postfix) with ESMTP id 1792032004CE; Sat, 25 Nov 2023 21:12:08 -0500 (EST) Received: from mailfrontend1 ([10.202.2.162]) by compute6.internal (MEProxy); Sat, 25 Nov 2023 21:12:08 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gutov.dev; h=cc :cc:content-transfer-encoding:content-type:content-type:date :date:from:from:in-reply-to:in-reply-to:message-id:mime-version :references:reply-to:sender:subject:subject:to:to; s=fm3; t= 1700964727; x=1701051127; bh=gcZ/WUhChf4n6toxeHst5PAYaSKeLMQ9j2K Evz5kEnI=; b=FBgbG6ATtLdVb7GLzPePEEIUEigPEjsEdQ8k9vN5J5Ieug5tRVU JiYiWKSGTK/zkhhiWq1BB97nz3hL7X/oAItwVQ1LHRT15xpyB3YaiE4H9ioMvjyK k7SoxlQfpVnYy9MsajDrsr84QvbDY9NnPO2Zu9UWkn7FuRyqZ4eyRmvERSjvDuDc 0XOSC0uMLVmIhRRrH0xWAWRYtFQ40LzDoE827Wbh1B9bi+3mp0GreBYlLjgn8Znh FxiGYSVGhJt+BvQibW9o6EStVRXnGVhthBvbHdIePA4xTGYDT132fwRb8jTsK5XA 5nI4KuxmfwNlKGKEU3fOodBtwRt9fVC/u5g== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:cc:content-transfer-encoding :content-type:content-type:date:date:feedback-id:feedback-id :from:from:in-reply-to:in-reply-to:message-id:mime-version :references:reply-to:sender:subject:subject:to:to:x-me-proxy :x-me-proxy:x-me-sender:x-me-sender:x-sasl-enc; s=fm1; t= 1700964727; x=1701051127; bh=gcZ/WUhChf4n6toxeHst5PAYaSKeLMQ9j2K Evz5kEnI=; b=vRM/WR+K59rkulEXl1Mx3VSTKoJhVmkYa9XuVGhwxndfAMa+n9D F58tvb5BkyTgk8sBJtZKHK02bXZo5SJ9/MNAQSv00F7YLm5/iHBHMdCYFNA3i7F2 z38ej51vyY4rMgxggMCodSphM7heWibLFatbfbtqcWBE12HtRjbrvHd+SO8103kq QKRZN1d8iNgwQrdhjqCCJUFAFUsHL6HkiIGSFF8c7SCWWN6SWCFUXYW1+NZQRwJb WKvJapJgTPy1jZj9alBKQzJHk9ykHD2JLzx7dvNpEAcg3r9BEX38mKB4Ojg3VQjl KVci9jt8II5lJuhZkvv7Bf+AEYK+vlEF0tw== X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedvkedrudehkedggeegucetufdoteggodetrfdotf fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfqfgfvpdfurfetoffkrfgpnffqhgen uceurghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmne cujfgurhepkfffgggfuffvvehfhfgjtgfgsehtjeertddtfeejnecuhfhrohhmpeffmhhi thhrhicuifhuthhovhcuoegumhhithhrhiesghhuthhovhdruggvvheqnecuggftrfgrth htvghrnhepiefgteevheevveffheeltdeukeeiieekueefgedugfefgefhudelgfefveel vdevnecuvehluhhsthgvrhfuihiivgeptdenucfrrghrrghmpehmrghilhhfrhhomhepug hmihhtrhihsehguhhtohhvrdguvghv X-ME-Proxy: Feedback-ID: i0e71465a:Fastmail Received: by mail.messagingengine.com (Postfix) with ESMTPA; Sat, 25 Nov 2023 21:12:06 -0500 (EST) Message-ID: <9eb7ca4d-28c8-72d4-0fa6-4b9bdd224456@gutov.dev> Date: Sun, 26 Nov 2023 04:12:04 +0200 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.13.0 Subject: Re: bug#67061: [PATCH] Improve syntax highlighting for python-ts-mode Content-Language: en-US To: Eli Zaretskii , Denis Zubarev References: <8734xdni6y.fsf@yandex.ru> <831qcwycbj.fsf@gnu.org> <355881699699654@mail.yandex.ru> <83h6lswo44.fsf@gnu.org> From: Dmitry Gutov In-Reply-To: <83h6lswo44.fsf@gnu.org> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-Spam-Score: -2.9 (--) X-Debbugs-Envelope-To: 67061 Cc: casouri@gmail.com, 67061@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.9 (---) On 11/11/2023 13:00, Eli Zaretskii wrote: >> What problems with CI did you see? I don't think I understand your >> last sentence above. >> >> I've grepped the codebase and found those lines: >> >> TREE-SITTER-FILES ?= $(shell cd .. ; \ >> find lisp src \( -name "*-ts-mode-tests.el" -o -name "treesit-tests.el" \) | \ >> sort | sed s/\\.el/.log/) >> >> in test/infra/Makefile.in >> I thought that tree-sitter tests should go to either *-ts-mode-tests.el or treesit-tests.el files. > No, I don't think so. If having them in python-tests.el triggers some > problems, please show them, and let's take it from there. I'm guessing the main problem with that is that the test-tree-sitter job on EMBA won't be picking those tests up. Which is unfortunate, but not at all a deal-breaker (but if we could make the build of python-ts-mode-tests.log load python.el, that would be even better). From debbugs-submit-bounces@debbugs.gnu.org Sat Nov 25 21:18:15 2023 Received: (at 67061) by debbugs.gnu.org; 26 Nov 2023 02:18:15 +0000 Received: from localhost ([127.0.0.1]:40525 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1r74it-0006U0-9g for submit@debbugs.gnu.org; Sat, 25 Nov 2023 21:18:15 -0500 Received: from wout1-smtp.messagingengine.com ([64.147.123.24]:47353) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1r74ir-0006Tm-L9 for 67061@debbugs.gnu.org; Sat, 25 Nov 2023 21:18:14 -0500 Received: from compute3.internal (compute3.nyi.internal [10.202.2.43]) by mailout.west.internal (Postfix) with ESMTP id 4F4B13200A11; Sat, 25 Nov 2023 21:18:02 -0500 (EST) Received: from mailfrontend1 ([10.202.2.162]) by compute3.internal (MEProxy); Sat, 25 Nov 2023 21:18:02 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gutov.dev; h=cc :cc:content-transfer-encoding:content-type:content-type:date :date:from:from:in-reply-to:in-reply-to:message-id:mime-version :references:reply-to:sender:subject:subject:to:to; s=fm3; t= 1700965081; x=1701051481; bh=OHR1oa8xcSOwHZz/Aq1IsZVs54kNgm69Vs0 xrBmM29Y=; b=ag0qpsQD5h4tnHuNPwrTrcqsM5I5WKKVpIu1UGlcCXBbbafw71x jPuuHjhziJhlGK5/q7raOPUJGHFRAeuzyEyubRYLYBd0IWR3TaVGJItU72+K8rZi 1VWscPKWTNufcFDtJTINDCmGktld+DfeTORtr7safIzwCl38dc/T5crsv1ioPNB9 Y0hOcbaVxVkYZQWquuL+H5dlP713UFqSZm7MPKvqSYxIn4DnK/whHTPVhlx2pVOW zkq3X48DTi0WKHhDAuk3dScfMyfdW0Taw6/j7radfcFDHnrWI3FH8HOSL82mSMSH QqPFuJIsZ3y47Qg60jUnChrLIsM/l6jdl0Q== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:cc:content-transfer-encoding :content-type:content-type:date:date:feedback-id:feedback-id :from:from:in-reply-to:in-reply-to:message-id:mime-version :references:reply-to:sender:subject:subject:to:to:x-me-proxy :x-me-proxy:x-me-sender:x-me-sender:x-sasl-enc; s=fm1; t= 1700965081; x=1701051481; bh=OHR1oa8xcSOwHZz/Aq1IsZVs54kNgm69Vs0 xrBmM29Y=; b=KToG9DEFE/oUx2VvaNOtOMsVMkedwfj9nk+dohT2TjUYIfU/MqV 3b+WT0wIVZJzNoos57M9x7SQMlUDD3Egqlp9VqKsz8xLo1t4Mi8OHAWROgAZOGQh 9NtRtAXNw8R0Kh6Y0m9G+3vQzYJZKEJZ66kE4428dyXVwVRZjh23s60vQeouJT3K De6jxC42ws7dcCv5oevDq8NdxR3BDtTIQZsrq/QRArczF4saAnn/8uXeWG4puqDy k6KH/fUfaHZzGoaGm/E2ySNaUKneK0O3RBgwKEjSqMrPRf9FCcS0TTgWttynVRlC ZICxD2ED+kjOn1pxVJZoCWGEATdwMWgisig== X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedvkedrudehkedggeehucetufdoteggodetrfdotf fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfqfgfvpdfurfetoffkrfgpnffqhgen uceurghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmne cujfgurhepkfffgggfuffvvehfhfgjtgfgsehtjeertddtfeejnecuhfhrohhmpeffmhhi thhrhicuifhuthhovhcuoegumhhithhrhiesghhuthhovhdruggvvheqnecuggftrfgrth htvghrnhepiefgteevheevveffheeltdeukeeiieekueefgedugfefgefhudelgfefveel vdevnecuvehluhhsthgvrhfuihiivgeptdenucfrrghrrghmpehmrghilhhfrhhomhepug hmihhtrhihsehguhhtohhvrdguvghv X-ME-Proxy: Feedback-ID: i0e71465a:Fastmail Received: by mail.messagingengine.com (Postfix) with ESMTPA; Sat, 25 Nov 2023 21:18:00 -0500 (EST) Message-ID: <7aee7e42-c07d-9131-18a9-4806f07d4267@gutov.dev> Date: Sun, 26 Nov 2023 04:17:59 +0200 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.13.0 Subject: Re: bug#67061: [PATCH] Improve syntax highlighting for python-ts-mode Content-Language: en-US To: Eli Zaretskii , casouri@gmail.com References: <8734xdni6y.fsf@yandex.ru> <831qcwycbj.fsf@gnu.org> <83v8a3qh6m.fsf@gnu.org> <834jhadvkt.fsf@gnu.org> From: Dmitry Gutov In-Reply-To: <834jhadvkt.fsf@gnu.org> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-Spam-Score: -2.9 (--) X-Debbugs-Envelope-To: 67061 Cc: dvzubarev@yandex.ru, 67061@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.9 (---) On 25/11/2023 11:35, Eli Zaretskii wrote: > Ping! Ping! Yuan, could you please chime in? We are waiting for > Denis's legal paperwork to come through, but meanwhile I'd like your > opinions on the changes he proposed, and also on whether this should > be installed on the emacs-29 branch or on master. FWIW, the changes and the explanations look reasonable to me. The presence of tests is a good sign too (though they'll probably need to move to another file). The fixes are relevant to Emacs 29 for sure. I don't know at what stage we're going to start worrying when adding new elements to the queries, though, in fear of breaking compatibility with some potential older version of the grammar. From debbugs-submit-bounces@debbugs.gnu.org Wed Nov 29 09:05:48 2023 Received: (at 67061) by debbugs.gnu.org; 29 Nov 2023 14:05:48 +0000 Received: from localhost ([127.0.0.1]:49190 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1r8LCF-0001zP-JD for submit@debbugs.gnu.org; Wed, 29 Nov 2023 09:05:47 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:47698) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1r8LCE-0001zC-0w for 67061@debbugs.gnu.org; Wed, 29 Nov 2023 09:05:46 -0500 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 1r8LC1-0005TL-0X; Wed, 29 Nov 2023 09:05:33 -0500 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=4ZNxvAreIjKg286JmfV025F/wJ2S4FBJo4eHSPpBx3E=; b=SiYUfdD6WZrG tpyVyECKund/b8WsBTQPJ2q7poBtTRA19Y5lZ90+wr4pMMXDePaW2LewB9HilB1Zyvict1WpniokD 7x1NtumWORHs/eTprVA7BIwrDqoFJHyba5mktL6cdkytk1DccnhzQVbR6n8GxhCbWn7ZAvf3Unw9u n1Lv+krlM5bTg9ieOsqIeNLKFGcp9fOJGESk8nUtXKVtI/K9TkFRmadLeXayh2pk8I2C6V9KOsiHB qY1BqFt0SdcVNbCuIr2D8I+WUuyf6kgzper2v0zEFrRaKRcAR10r7WlbwrRlc91+7jNBT/Zo21xZZ qiY5fySbOSyVgSzB4o2yDg==; Date: Wed, 29 Nov 2023 16:05:10 +0200 Message-Id: <83a5qw7izt.fsf@gnu.org> From: Eli Zaretskii To: Dmitry Gutov In-Reply-To: <7aee7e42-c07d-9131-18a9-4806f07d4267@gutov.dev> (message from Dmitry Gutov on Sun, 26 Nov 2023 04:17:59 +0200) Subject: Re: bug#67061: [PATCH] Improve syntax highlighting for python-ts-mode References: <8734xdni6y.fsf@yandex.ru> <831qcwycbj.fsf@gnu.org> <83v8a3qh6m.fsf@gnu.org> <834jhadvkt.fsf@gnu.org> <7aee7e42-c07d-9131-18a9-4806f07d4267@gutov.dev> X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 67061 Cc: casouri@gmail.com, dvzubarev@yandex.ru, 67061@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: Sun, 26 Nov 2023 04:17:59 +0200 > Cc: dvzubarev@yandex.ru, 67061@debbugs.gnu.org > From: Dmitry Gutov > > On 25/11/2023 11:35, Eli Zaretskii wrote: > > Ping! Ping! Yuan, could you please chime in? We are waiting for > > Denis's legal paperwork to come through, but meanwhile I'd like your > > opinions on the changes he proposed, and also on whether this should > > be installed on the emacs-29 branch or on master. > > FWIW, the changes and the explanations look reasonable to me. The > presence of tests is a good sign too (though they'll probably need to > move to another file). > > The fixes are relevant to Emacs 29 for sure. > > I don't know at what stage we're going to start worrying when adding new > elements to the queries, though, in fear of breaking compatibility with > some potential older version of the grammar. Thanks. Yuan, please chime in, I'm waiting for your response. From debbugs-submit-bounces@debbugs.gnu.org Fri Dec 08 19:40:03 2023 Received: (at 67061) by debbugs.gnu.org; 9 Dec 2023 00:40:03 +0000 Received: from localhost ([127.0.0.1]:46532 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rBlNy-0003eI-Fs for submit@debbugs.gnu.org; Fri, 08 Dec 2023 19:40:03 -0500 Received: from forward102c.mail.yandex.net ([2a02:6b8:c03:500:1:45:d181:d102]:40838) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rBlNv-0003dg-NR for 67061@debbugs.gnu.org; Fri, 08 Dec 2023 19:40:01 -0500 Received: from mail-nwsmtp-mxback-production-main-93.myt.yp-c.yandex.net (mail-nwsmtp-mxback-production-main-93.myt.yp-c.yandex.net [IPv6:2a02:6b8:c00:279f:0:640:32c8:0]) by forward102c.mail.yandex.net (Yandex) with ESMTP id 6F5D3608E4; Sat, 9 Dec 2023 03:39:40 +0300 (MSK) Received: from mail.yandex.ru (2a02:6b8:c12:601e:0:640:68e:0 [2a02:6b8:c12:601e:0:640:68e:0]) by mail-nwsmtp-mxback-production-main-93.myt.yp-c.yandex.net (mxback/Yandex) with HTTP id BdSOCF4O1Os0-vLjsbQta; Sat, 09 Dec 2023 03:39:40 +0300 X-Yandex-Fwd: 1 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yandex.ru; s=mail; t=1702082380; bh=CJ0HF6XWjilp42dp2yWohIvBHBqTKZuIosbdHS4miTs=; h=Message-Id:Date:Subject:References:To:From:Cc; b=IJMvDtU8ZIf9W0o/1VIRd9eITNwKe6ZrgrEXiAqpzoVhNFeQA/Q66+PKe9SReMfl2 /aVqtr38Slt0g5Z7RS528in63JE1CLDMMVJbnMJpy9s31KjfA0AjlBT+EXpxCJTIQu x3EwpznBaJPnzhyxJjkt0fr48jkSlVUT7xDPMBVM= Authentication-Results: mail-nwsmtp-mxback-production-main-93.myt.yp-c.yandex.net; dkim=pass header.i=@yandex.ru Received: by cqfxmjbu3o7k6zup.myt.yp-c.yandex.net with HTTP; Sat, 09 Dec 2023 03:39:39 +0300 From: Denis Zubarev To: Eli Zaretskii , Dmitry Gutov 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> Subject: Re: bug#67061: [PATCH] Improve syntax highlighting for python-ts-mode MIME-Version: 1.0 X-Mailer: Yamail [ http://yandex.ru ] 5.0 Date: Sat, 09 Dec 2023 03:39:39 +0300 Message-Id: <172531702081590@mail.yandex.ru> Content-Type: multipart/mixed; boundary="----==--bound.610717.cqfxmjbu3o7k6zup.myt.yp-c.yandex.net" X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 67061 Cc: "casouri@gmail.com" , "67061@debbugs.gnu.org" <67061@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: -1.7 (-) ------==--bound.610717.cqfxmjbu3o7k6zup.myt.yp-c.yandex.net Content-Transfer-Encoding: base64 Content-Type: text/html; charset=utf-8 PGRpdj5JJ3ZlIG1vdmVkIHRlc3RzIHRvIHB5dGhvbi10ZXN0cy5lbCBhbmQgYWRkZWQgYW5vdGhl ciBmaXhlczo8L2Rpdj48ZGl2PjxkaXY+wqA8L2Rpdj48ZGl2PmFzc2lnbm1lbnQgZmVhdHVyZTo8 L2Rpdj48ZGl2PmBmb3IgdmFyIGluIHJhbmdlKDMpYCBoaWdobGlnaHQgdmFyIGFzIGZvbnQtbG9j ay12YXJpYWJsZS1uYW1lLWZhY2U8L2Rpdj48ZGl2PmB2YXIxW2lpXSA9IDE7IHQudmFyMltqal0g PSAyYCBoaWdobGlnaHQgdmFyMSwgdmFyMiBhcyBmb250LWxvY2stdmFyaWFibGUtbmFtZS1mYWNl PC9kaXY+PGRpdj7CoDwvZGl2PjxkaXY+dHlwZSBmZWF0dXJlOjwvZGl2PjxkaXY+c3VwcG9ydCBu ZXN0ZWQgb3B0aW9uYWwgdHlwZXMgdXAgdG8gMyBsZXZlbCBkZWVwLCBmb3IgZXhhbXBsZSBgdHVw bGVbdHVwbGUsIGxpc3RbTHZsMSB8IEx2bDJbTHZsM1tMdmwzXSwgTHZsMl1dXWA8L2Rpdj48ZGl2 PsKgPC9kaXY+PGRpdj7CoDwvZGl2PjxkaXY+U3VtbWFyeSBvZiBhbGwgY2hhbmdlcyBpbiB0aGUg cGF0Y2g6PC9kaXY+PGRpdj7CoDwvZGl2PjxkaXY+PGRpdj5rZXl3b3JkIGZlYXR1cmU6PC9kaXY+ PGRpdj5BZGQgImlzIG5vdCIgwqB0byB0aGUgYHB5dGhvbi0tdHJlZXNpdC1rZXl3b3Jkc2AgbGlz dC48L2Rpdj48ZGl2PsKgPC9kaXY+PGRpdj48ZGl2PmFzc2lnbm1lbnQgZmVhdHVyZTo8L2Rpdj48 ZGl2PkZvciBhbGwgZXhhbXBsZXMsPC9kaXY+PGRpdj48ZGl2PmBmb3IgdmFyIGluIHJhbmdlKDMp YDwvZGl2PjxkaXY+YHZhcjFbaWldID0gMTsgdC52YXIyW2pqXSA9IDJgPC9kaXY+PGRpdj5gdmFy IDo9IDNgPC9kaXY+PGRpdj5gdmFyICo9IDNgPC9kaXY+PGRpdj48ZGl2PmhpZ2hsaWdodCB2YXIg YXMgZm9udC1sb2NrLXZhcmlhYmxlLW5hbWUtZmFjZTwvZGl2PjxkaXY+wqA8L2Rpdj48ZGl2PnN0 cmluZyBmZWF0dXJlOjwvZGl2PjxkaXY+PGRpdj5GaXggZm9udGlmaWNhdGlvbiBvZiBzdHJpbmdz IGluc2lkZSBvZiBmLXN0cmluZ3MgaW50ZXJwb2xhdGlvbiw8L2Rpdj48ZGl2PmUuZy4gZm9yIGYi YmVnIHsnbmVzdGVkJ30iIC0gJ25lc3RlZCcgd2FzIG5vdCBmb250aWZpZWQgYXMgc3RyaW5nLjwv ZGl2PjxkaXY+wqA8L2Rpdj48ZGl2PmZ1bmN0aW9uIGZlYXR1cmU6PC9kaXY+PGRpdj48ZGl2PkRv IG5vdCBvdmVycmlkZSB0aGUgZmFjZSBvZiBidWlsdGluIGZ1bmN0aW9ucyAoYWxsLCBieXRlcyBl dGMuKSB3aXRoPC9kaXY+PGRpdj50aGUgZnVuY3Rpb24gY2FsbCBmYWNlPC9kaXY+PGRpdj7CoDwv ZGl2PjxkaXY+dHlwZSBmZWF0dXJlOjwvZGl2PjxkaXY+PGRpdj5Gb250aWZ5IGJ1aWx0LWlucyAo ZGljdCxsaXN0LGV0Yy4pIGFzIHR5cGVzIHdoZW4gdGhleSBhcmUgdXNlZCBpbiB0eXBlIGhpbnRz LjwvZGl2PjxkaXY+RS5nLiBkZWYgZnVuYyh2OmRpY3RbIGxpc3RbIHR1cGxlW3N0cl0gXSwgaW50 IHwgTm9uZV0gfCBOb25lKTo8L2Rpdj48L2Rpdj48ZGl2PsKgPC9kaXY+PC9kaXY+PGRpdj7CoDwv ZGl2PjwvZGl2PjwvZGl2PjwvZGl2PjwvZGl2PjwvZGl2PjxkaXY+wqA8L2Rpdj48ZGl2PsKgPC9k aXY+PC9kaXY+PGRpdj7CoDwvZGl2PjxkaXY+wqA8L2Rpdj48ZGl2PjI5LjExLjIwMjMsIDE3OjA1 LCAiRWxpIFphcmV0c2tpaSIgJmx0OzxhIGhyZWY9Im1haWx0bzplbGl6QGdudS5vcmciIHJlbD0i bm9vcGVuZXIgbm9yZWZlcnJlciI+ZWxpekBnbnUub3JnPC9hPiZndDs6PC9kaXY+PGJsb2NrcXVv dGU+PGJsb2NrcXVvdGU+wqBEYXRlOiBTdW4sIDI2IE5vdiAyMDIzIDA0OjE3OjU5ICswMjAwPGJy IC8+wqBDYzogPGEgaHJlZj0ibWFpbHRvOmR2enViYXJldkB5YW5kZXgucnUiIHJlbD0ibm9vcGVu ZXIgbm9yZWZlcnJlciI+ZHZ6dWJhcmV2QHlhbmRleC5ydTwvYT4sIDxhIGhyZWY9Im1haWx0bzo2 NzA2MUBkZWJidWdzLmdudS5vcmciIHJlbD0ibm9vcGVuZXIgbm9yZWZlcnJlciI+NjcwNjFAZGVi YnVncy5nbnUub3JnPC9hPjxiciAvPsKgRnJvbTogRG1pdHJ5IEd1dG92ICZsdDs8YSBocmVmPSJt YWlsdG86ZG1pdHJ5QGd1dG92LmRldiIgcmVsPSJub29wZW5lciBub3JlZmVycmVyIj5kbWl0cnlA Z3V0b3YuZGV2PC9hPiZndDs8YnIgLz7CoDxiciAvPsKgT24gMjUvMTEvMjAyMyAxMTozNSwgRWxp IFphcmV0c2tpaSB3cm90ZTo8YnIgLz7CoCZndDsgUGluZyEgUGluZyEgWXVhbiwgY291bGQgeW91 IHBsZWFzZSBjaGltZSBpbj8gV2UgYXJlIHdhaXRpbmcgZm9yPGJyIC8+wqAmZ3Q7IERlbmlzJ3Mg bGVnYWwgcGFwZXJ3b3JrIHRvIGNvbWUgdGhyb3VnaCwgYnV0IG1lYW53aGlsZSBJJ2QgbGlrZSB5 b3VyPGJyIC8+wqAmZ3Q7IG9waW5pb25zIG9uIHRoZSBjaGFuZ2VzIGhlIHByb3Bvc2VkLCBhbmQg YWxzbyBvbiB3aGV0aGVyIHRoaXMgc2hvdWxkPGJyIC8+wqAmZ3Q7IGJlIGluc3RhbGxlZCBvbiB0 aGUgZW1hY3MtMjkgYnJhbmNoIG9yIG9uIG1hc3Rlci48YnIgLz7CoDxiciAvPsKgRldJVywgdGhl IGNoYW5nZXMgYW5kIHRoZSBleHBsYW5hdGlvbnMgbG9vayByZWFzb25hYmxlIHRvIG1lLiBUaGU8 YnIgLz7CoHByZXNlbmNlIG9mIHRlc3RzIGlzIGEgZ29vZCBzaWduIHRvbyAodGhvdWdoIHRoZXkn bGwgcHJvYmFibHkgbmVlZCB0bzxiciAvPsKgbW92ZSB0byBhbm90aGVyIGZpbGUpLjxiciAvPsKg PGJyIC8+wqBUaGUgZml4ZXMgYXJlIHJlbGV2YW50IHRvIEVtYWNzIDI5IGZvciBzdXJlLjxiciAv PsKgPGJyIC8+wqBJIGRvbid0IGtub3cgYXQgd2hhdCBzdGFnZSB3ZSdyZSBnb2luZyB0byBzdGFy dCB3b3JyeWluZyB3aGVuIGFkZGluZyBuZXc8YnIgLz7CoGVsZW1lbnRzIHRvIHRoZSBxdWVyaWVz LCB0aG91Z2gsIGluIGZlYXIgb2YgYnJlYWtpbmcgY29tcGF0aWJpbGl0eSB3aXRoPGJyIC8+wqBz b21lIHBvdGVudGlhbCBvbGRlciB2ZXJzaW9uIG9mIHRoZSBncmFtbWFyLjwvYmxvY2txdW90ZT48 cD48YnIgLz5UaGFua3MuPGJyIC8+PGJyIC8+WXVhbiwgcGxlYXNlIGNoaW1lIGluLCBJJ20gd2Fp dGluZyBmb3IgeW91ciByZXNwb25zZS48L3A+PC9ibG9ja3F1b3RlPg== ------==--bound.610717.cqfxmjbu3o7k6zup.myt.yp-c.yandex.net Content-Disposition: attachment; filename="0002-Improve-syntax-highlighting-for-python-ts-mode.patch" Content-Transfer-Encoding: base64 Content-Type: text/x-diff; name="0002-Improve-syntax-highlighting-for-python-ts-mode.patch" RnJvbSA0MzQyMmU1OWQ4M2UxYWU0Yzg0MmQ1MWViZDA2NWUxMzE1YzUzY2ZjIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBEZW5pcyBadWJhcmV2IDxkdnp1YmFyZXZAeWFuZGV4LnJ1PgpE YXRlOiBTYXQsIDExIE5vdiAyMDIzIDA0OjU1OjQ0ICswMzAwClN1YmplY3Q6IFtQQVRDSF0gSW1w cm92ZSBzeW50YXggaGlnaGxpZ2h0aW5nIGZvciBweXRob24tdHMtbW9kZQoKKiBsaXNwL3Byb2dt b2Rlcy9weXRob24uZWwgKHB5dGhvbi0tdHJlZXNpdC1rZXl3b3Jkcyk6IEZvbnRpZnkgY29tcG91 bmQKa2V5d29yZCAgImlzIG5vdCIuCihweXRob24tLXRyZWVzaXQtZm9udGlmeS1zdHJpbmcpOiBG aXggZm9udGlmaWNhdGlvbiBvZiBzdHJpbmdzIGluc2lkZSBvZgpmLXN0cmluZ3MgaW50ZXJwb2xh dGlvbiwgZS5nLiBmb3IgZiJiZWcgeyduZXN0ZWQnfSIgLSAnbmVzdGVkJyB3YXMgbm90CmZvbnRp ZmllZCBhcyBzdHJpbmcuCihweXRob24tLXRyZWVzaXQtZm9udGlmeS1zdHJpbmctaW50ZXJwb2xh dGlvbik6IFJlbW92ZSBmdW5jdGlvbi4KKHB5dGhvbi0tdHJlZXNpdC1zZXR0aW5ncyk6IERvIG5v dCBvdmVycmlkZSB0aGUgZmFjZSBvZiBidWlsdGluCmZ1bmN0aW9ucyAoYWxsLCBieXRlcyBldGMu KSB3aXRoIHRoZSBmdW5jdGlvbiBjYWxsIGZhY2UuICBBZGQgbWlzc2luZwphc3NpZ25tZW50IGV4 cHJlc3Npb25zLiAgRm9udGlmeSBidWlsdC1pbnMgKGRpY3QsbGlzdCxldGMuKSBhcyB0eXBlcwp3 aGVuIHRoZXkgYXJlIHVzZWQgaW4gdHlwZSBoaW50cy4KKiB0ZXN0L2xpc3AvcHJvZ21vZGVzL3B5 dGhvbi10ZXN0cy5lbCAocHl0aG9uLXRzLXRlc3RzLXdpdGgtdGVtcC1idWZmZXIpOgoocHl0aG9u LXRzLW1vZGUtY29tcG91bmQta2V5d29yZHMtZmFjZSk6CihweXRob24tdHMtbW9kZS1uYW1lZC1h c3NpZ25lbWVudC1mYWNlLTEpOgoocHl0aG9uLXRzLW1vZGUtbmFtZWQtYXNzaWduZW1lbnQtZmFj ZS0yKToKKHB5dGhvbi10cy1tb2RlLW5lc3RlZC10eXBlcy1mYWNlLTEpOgoocHl0aG9uLXRzLW1v ZGUtbmVzdGVkLXR5cGVzLWZhY2UtMik6CihweXRob24tdHMtbW9kZS1idWlsdGluLWNhbGwtZmFj ZSk6CihweXRob24tdHMtbW9kZS1pbnRlcnBvbGF0aW9uLW5lc3RlZC1zdHJpbmcpOgoocHl0aG9u LXRzLW1vZGUtaW50ZXJwb2xhdGlvbi1kb2Mtc3RyaW5nKTogQWRkIHRlc3RzLgotLS0KIGxpc3Av cHJvZ21vZGVzL3B5dGhvbi5lbCAgICAgICAgICAgIHwgIDk0ICsrKysrKysrKysrKystLS0tLS0t LS0tCiB0ZXN0L2xpc3AvcHJvZ21vZGVzL3B5dGhvbi10ZXN0cy5lbCB8IDExNCArKysrKysrKysr KysrKysrKysrKysrKysrKysrCiAyIGZpbGVzIGNoYW5nZWQsIDE2NiBpbnNlcnRpb25zKCspLCA0 MiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9saXNwL3Byb2dtb2Rlcy9weXRob24uZWwgYi9s aXNwL3Byb2dtb2Rlcy9weXRob24uZWwKaW5kZXggYWIzYmYxYjRlYy4uOGExNzhkOWM3ZSAxMDA2 NDQKLS0tIGEvbGlzcC9wcm9nbW9kZXMvcHl0aG9uLmVsCisrKyBiL2xpc3AvcHJvZ21vZGVzL3B5 dGhvbi5lbApAQCAtOTc5LDcgKzk3OSw3IEBAIHB5dGhvbi0tdHJlZXNpdC1rZXl3b3JkcwogICAg ICJyYWlzZSIgInJldHVybiIgInRyeSIgIndoaWxlIiAid2l0aCIgInlpZWxkIgogICAgIDs7IFRo ZXNlIGFyZSB0ZWNobmljYWxseSBvcGVyYXRvcnMsIGJ1dCB3ZSBmb250aWZ5IHRoZW0gYXMKICAg ICA7OyBrZXl3b3Jkcy4KLSAgICAiYW5kIiAiaW4iICJpcyIgIm5vdCIgIm9yIiAibm90IGluIikp CisgICAgImFuZCIgImluIiAiaXMiICJub3QiICJvciIgIm5vdCBpbiIgImlzIG5vdCIpKQogCiAo ZGVmdmFyIHB5dGhvbi0tdHJlZXNpdC1idWlsdGlucwogICAnKCJhYnMiICJhbGwiICJhbnkiICJh c2NpaSIgImJpbiIgImJvb2wiICJicmVha3BvaW50IiAiYnl0ZWFycmF5IgpAQCAtMTA0Miw5ICsx MDQyLDcgQEAgcHl0aG9uLS10cmVlc2l0LWZvbnRpZnktc3RyaW5nCiBmLXN0cmluZ3MuICBPVkVS UklERSBpcyB0aGUgb3ZlcnJpZGUgZmxhZyBkZXNjcmliZWQgaW4KIGB0cmVlc2l0LWZvbnQtbG9j ay1ydWxlcycuICBTVEFSVCBhbmQgRU5EIG1hcmsgdGhlIHJlZ2lvbiB0byBiZQogZm9udGlmaWVk LiIKLSAgKGxldCogKChzdHJpbmctYmVnICh0cmVlc2l0LW5vZGUtc3RhcnQgbm9kZSkpCi0gICAg ICAgICAoc3RyaW5nLWVuZCAodHJlZXNpdC1ub2RlLWVuZCBub2RlKSkKLSAgICAgICAgIChtYXli ZS1leHByZXNzaW9uICh0cmVlc2l0LW5vZGUtcGFyZW50IG5vZGUpKQorICAobGV0KiAoKG1heWJl LWV4cHJlc3Npb24gKHRyZWVzaXQtbm9kZS1wYXJlbnQgbm9kZSkpCiAgICAgICAgICAoZ3JhbmRw YXJlbnQgKHRyZWVzaXQtbm9kZS1wYXJlbnQKICAgICAgICAgICAgICAgICAgICAgICAgKHRyZWVz aXQtbm9kZS1wYXJlbnQKICAgICAgICAgICAgICAgICAgICAgICAgIG1heWJlLWV4cHJlc3Npb24p KSkKQEAgLTEwNzIsMjggKzEwNzAsMjkgQEAgcHl0aG9uLS10cmVlc2l0LWZvbnRpZnktc3RyaW5n CiAgICAgICAgICAgICAgICAgICAgICAgICAoZXF1YWwgKHRyZWVzaXQtbm9kZS10eXBlIG1heWJl LWV4cHJlc3Npb24pCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImV4cHJlc3Npb25f c3RhdGVtZW50IikpCiAgICAgICAgICAgICAgICAgICAgJ2ZvbnQtbG9jay1kb2MtZmFjZQotICAg ICAgICAgICAgICAgICAnZm9udC1sb2NrLXN0cmluZy1mYWNlKSkpCi0gICAgOzsgRG9uJ3QgaGln aGxpZ2h0IHN0cmluZyBwcmVmaXhlcyBsaWtlIGYvci9iLgotICAgIChzYXZlLWV4Y3Vyc2lvbgot ICAgICAgKGdvdG8tY2hhciBzdHJpbmctYmVnKQotICAgICAgKHdoZW4gKHJlLXNlYXJjaC1mb3J3 YXJkICJbXCInXSIgc3RyaW5nLWVuZCB0KQotICAgICAgICAoc2V0cSBzdHJpbmctYmVnIChtYXRj aC1iZWdpbm5pbmcgMCkpKSkKLSAgICAodHJlZXNpdC1mb250aWZ5LXdpdGgtb3ZlcnJpZGUKLSAg ICAgc3RyaW5nLWJlZyBzdHJpbmctZW5kIGZhY2Ugb3ZlcnJpZGUgc3RhcnQgZW5kKSkpCisgICAg ICAgICAgICAgICAgICdmb250LWxvY2stc3RyaW5nLWZhY2UpKQorICAgICAgICAgOzsgV2Ugd2ls bCBoaWdobGlnaHQgb25seSBzdHJpbmdfc3RhcnQvc3RyaW5nX2NvbnRlbnQvc3RyaW5nX2VuZCBj aGlsZHJlbgorICAgICAgICAgOzsgRG8gbm90IHRvdWNoIGludGVycG9sYXRpb24gbm9kZSB0aGF0 IGNhbiBvY2N1ciBpbnNpZGUgb2YgdGhlIHN0cmluZworICAgICAgICAgKHN0cmluZy1ub2RlcyAo dHJlZXNpdC1maWx0ZXItY2hpbGQKKyAgICAgICAgICAgICAgICAgICAgICAgIG5vZGUKKyAgICAg ICAgICAgICAgICAgICAgICAgIChsYW1iZGEgKGNoKSAobWVtYmVyICh0cmVlc2l0LW5vZGUtdHlw ZSBjaCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICcoInN0 cmluZ19zdGFydCIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgInN0cmluZ19jb250ZW50IgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAic3RyaW5nX2VuZCIpKSkKKyAgICAgICAgICAgICAgICAgICAgICAgIHQpKSkK KworICAgIChkb2xpc3QgKHN0cmluZy1ub2RlIHN0cmluZy1ub2RlcykKKyAgICAgIChsZXQgKChz dHJpbmctYmVnICh0cmVlc2l0LW5vZGUtc3RhcnQgc3RyaW5nLW5vZGUpKQorICAgICAgICAgICAg KHN0cmluZy1lbmQgKHRyZWVzaXQtbm9kZS1lbmQgc3RyaW5nLW5vZGUpKSkKKyAgICAgICAgKHdo ZW4gKGVxdWFsICh0cmVlc2l0LW5vZGUtdHlwZSBzdHJpbmctbm9kZSkgInN0cmluZ19zdGFydCIp CisgICAgICAgICAgOzsgRG9uJ3QgaGlnaGxpZ2h0IHN0cmluZyBwcmVmaXhlcyBsaWtlIGYvci9i LgorICAgICAgICAgIChzYXZlLWV4Y3Vyc2lvbgorICAgICAgICAgICAgKGdvdG8tY2hhciBzdHJp bmctYmVnKQorICAgICAgICAgICAgKHdoZW4gKHJlLXNlYXJjaC1mb3J3YXJkICJbXCInXSIgc3Ry aW5nLWVuZCB0KQorICAgICAgICAgICAgICAoc2V0cSBzdHJpbmctYmVnIChtYXRjaC1iZWdpbm5p bmcgMCkpKSkpCiAKLShkZWZ1biBweXRob24tLXRyZWVzaXQtZm9udGlmeS1zdHJpbmctaW50ZXJw b2xhdGlvbgotICAgIChub2RlIF8gc3RhcnQgZW5kICZyZXN0IF8pCi0gICJGb250aWZ5IHN0cmlu ZyBpbnRlcnBvbGF0aW9uLgotTk9ERSBpcyB0aGUgc3RyaW5nIG5vZGUuICBEbyBub3QgZm9udGlm eSB0aGUgaW5pdGlhbCBmIGZvcgotZi1zdHJpbmdzLiAgU1RBUlQgYW5kIEVORCBtYXJrIHRoZSBy ZWdpb24gdG8gYmUKLWZvbnRpZmllZC4iCi0gIDs7IFRoaXMgaXMga2luZCBvZiBhIGhhY2ssIGl0 IGJhc2ljYWxseSByZW1vdmVzIHRoZSBmYWNlIGFwcGxpZWQgYnkKLSAgOzsgdGhlIHN0cmluZyBm ZWF0dXJlLCBzbyB0aGF0IGZvbGxvd2luZyBmZWF0dXJlcyBjYW4gYXBwbHkgdGhlaXIKLSAgOzsg ZmFjZS4KLSAgKGxldCAoKG4tc3RhcnQgKHRyZWVzaXQtbm9kZS1zdGFydCBub2RlKSkKLSAgICAg ICAgKG4tZW5kICh0cmVlc2l0LW5vZGUtZW5kIG5vZGUpKSkKLSAgICAocmVtb3ZlLXRleHQtcHJv cGVydGllcwotICAgICAobWF4IHN0YXJ0IG4tc3RhcnQpIChtaW4gZW5kIG4tZW5kKSAnKGZhY2Up KSkpCisgICAgICAgICh0cmVlc2l0LWZvbnRpZnktd2l0aC1vdmVycmlkZQorICAgICAgICAgc3Ry aW5nLWJlZyBzdHJpbmctZW5kIGZhY2Ugb3ZlcnJpZGUgc3RhcnQgZW5kKSkpKSkKIAogKGRlZnZh ciBweXRob24tLXRyZWVzaXQtc2V0dGluZ3MKICAgKHRyZWVzaXQtZm9udC1sb2NrLXJ1bGVzCkBA IC0xMTAzLDE0ICsxMTAyLDkgQEAgcHl0aG9uLS10cmVlc2l0LXNldHRpbmdzCiAKICAgIDpmZWF0 dXJlICdzdHJpbmcKICAgIDpsYW5ndWFnZSAncHl0aG9uCi0gICAnKChzdHJpbmcpIEBweXRob24t LXRyZWVzaXQtZm9udGlmeS1zdHJpbmcpCisgICAnKChzdHJpbmcpIEBweXRob24tLXRyZWVzaXQt Zm9udGlmeS1zdHJpbmcKKyAgICAgKGludGVycG9sYXRpb24gWyJ7IiAifSJdIEBmb250LWxvY2st bWlzYy1wdW5jdHVhdGlvbi1mYWNlKSkKIAotICAgOzsgSEFDSzogVGhpcyBmZWF0dXJlIG11c3Qg Y29tZSBhZnRlciB0aGUgc3RyaW5nIGZlYXR1cmUgYW5kIGJlZm9yZQotICAgOzsgb3RoZXIgZmVh dHVyZXMuICBNYXliZSB3ZSBzaG91bGQgbWFrZSBzdHJpbmctaW50ZXJwb2xhdGlvbiBhbgotICAg Ozsgb3B0aW9uIHJhdGhlciB0aGFuIGEgZmVhdHVyZS4KLSAgIDpmZWF0dXJlICdzdHJpbmctaW50 ZXJwb2xhdGlvbgotICAgOmxhbmd1YWdlICdweXRob24KLSAgICcoKGludGVycG9sYXRpb24pIEBw eXRob24tLXRyZWVzaXQtZm9udGlmeS1zdHJpbmctaW50ZXJwb2xhdGlvbikKIAogICAgOmZlYXR1 cmUgJ2tleXdvcmQKICAgIDpsYW5ndWFnZSAncHl0aG9uCkBAIC0xMTI2LDEyICsxMTIwLDYgQEAg cHl0aG9uLS10cmVlc2l0LXNldHRpbmdzCiAgICAgICBuYW1lOiAoaWRlbnRpZmllcikgQGZvbnQt bG9jay10eXBlLWZhY2UpCiAgICAgIChwYXJhbWV0ZXJzIChpZGVudGlmaWVyKSBAZm9udC1sb2Nr LXZhcmlhYmxlLW5hbWUtZmFjZSkpCiAKLSAgIDpmZWF0dXJlICdmdW5jdGlvbgotICAgOmxhbmd1 YWdlICdweXRob24KLSAgICcoKGNhbGwgZnVuY3Rpb246IChpZGVudGlmaWVyKSBAZm9udC1sb2Nr LWZ1bmN0aW9uLWNhbGwtZmFjZSkKLSAgICAgKGNhbGwgZnVuY3Rpb246IChhdHRyaWJ1dGUKLSAg ICAgICAgICAgICAgICAgICAgICBhdHRyaWJ1dGU6IChpZGVudGlmaWVyKSBAZm9udC1sb2NrLWZ1 bmN0aW9uLWNhbGwtZmFjZSkpKQotCiAgICA6ZmVhdHVyZSAnYnVpbHRpbgogICAgOmxhbmd1YWdl ICdweXRob24KICAgIGAoKChpZGVudGlmaWVyKSBAZm9udC1sb2NrLWJ1aWx0aW4tZmFjZQpAQCAt MTE0Miw2ICsxMTMwLDEyIEBAIHB5dGhvbi0tdHJlZXNpdC1zZXR0aW5ncwogICAgICAgICAgICAg ICAgICAgICAgIGVvbCkpCiAgICAgICAgICAgICAgIEBmb250LWxvY2stYnVpbHRpbi1mYWNlKSkp CiAKKyAgIDpmZWF0dXJlICdmdW5jdGlvbgorICAgOmxhbmd1YWdlICdweXRob24KKyAgICcoKGNh bGwgZnVuY3Rpb246IChpZGVudGlmaWVyKSBAZm9udC1sb2NrLWZ1bmN0aW9uLWNhbGwtZmFjZSkK KyAgICAgKGNhbGwgZnVuY3Rpb246IChhdHRyaWJ1dGUKKyAgICAgICAgICAgICAgICAgICAgICBh dHRyaWJ1dGU6IChpZGVudGlmaWVyKSBAZm9udC1sb2NrLWZ1bmN0aW9uLWNhbGwtZmFjZSkpKQor CiAgICA6ZmVhdHVyZSAnY29uc3RhbnQKICAgIDpsYW5ndWFnZSAncHl0aG9uCiAgICAnKFsodHJ1 ZSkgKGZhbHNlKSAobm9uZSldIEBmb250LWxvY2stY29uc3RhbnQtZmFjZSkKQEAgLTExNTEsOSAr MTE0NSwyMCBAQCBweXRob24tLXRyZWVzaXQtc2V0dGluZ3MKICAgIGAoOzsgVmFyaWFibGUgbmFt ZXMgYW5kIExIUy4KICAgICAgKGFzc2lnbm1lbnQgbGVmdDogKGlkZW50aWZpZXIpCiAgICAgICAg ICAgICAgICAgIEBmb250LWxvY2stdmFyaWFibGUtbmFtZS1mYWNlKQorICAgICAoYXNzaWdubWVu dCBsZWZ0OiAoc3Vic2NyaXB0IHZhbHVlOiAoaWRlbnRpZmllcikKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBAZm9udC1sb2NrLXZhcmlhYmxlLW5hbWUtZmFjZSkpCiAgICAgIChh c3NpZ25tZW50IGxlZnQ6IChhdHRyaWJ1dGUKICAgICAgICAgICAgICAgICAgICAgICAgIGF0dHJp YnV0ZTogKGlkZW50aWZpZXIpCi0gICAgICAgICAgICAgICAgICAgICAgICBAZm9udC1sb2NrLXBy b3BlcnR5LXVzZS1mYWNlKSkKKyAgICAgICAgICAgICAgICAgICAgICAgIEBmb250LWxvY2stdmFy aWFibGUtbmFtZS1mYWNlKSkKKyAgICAgKGFzc2lnbm1lbnQgbGVmdDogKHN1YnNjcmlwdCAoYXR0 cmlidXRlCisgICAgICAgICAgICAgICAgICAgICAgICBhdHRyaWJ1dGU6IChpZGVudGlmaWVyKQor ICAgICAgICAgICAgICAgICAgICAgICAgQGZvbnQtbG9jay12YXJpYWJsZS1uYW1lLWZhY2UpKSkK KyAgICAgKGF1Z21lbnRlZF9hc3NpZ25tZW50IGxlZnQ6IChpZGVudGlmaWVyKQorICAgICAgICAg ICAgICAgICAgICAgICAgICAgQGZvbnQtbG9jay12YXJpYWJsZS1uYW1lLWZhY2UpCisgICAgIChu YW1lZF9leHByZXNzaW9uIG5hbWU6IChpZGVudGlmaWVyKQorICAgICAgICAgICAgICAgICAgICAg ICBAZm9udC1sb2NrLXZhcmlhYmxlLW5hbWUtZmFjZSkKKyAgICAgKGZvcl9zdGF0ZW1lbnQgbGVm dDogKGlkZW50aWZpZXIpCisgICAgICAgICAgICAgICAgICAgIEBmb250LWxvY2stdmFyaWFibGUt bmFtZS1mYWNlKQogICAgICAocGF0dGVybl9saXN0IChpZGVudGlmaWVyKQogICAgICAgICAgICAg ICAgICAgIEBmb250LWxvY2stdmFyaWFibGUtbmFtZS1mYWNlKQogICAgICAodHVwbGVfcGF0dGVy biAoaWRlbnRpZmllcikKQEAgLTExNjgsMTUgKzExNzMsMjAgQEAgcHl0aG9uLS10cmVlc2l0LXNl dHRpbmdzCiAgICAnKChkZWNvcmF0b3IgIkAiIEBmb250LWxvY2stdHlwZS1mYWNlKQogICAgICAo ZGVjb3JhdG9yIChjYWxsIGZ1bmN0aW9uOiAoaWRlbnRpZmllcikgQGZvbnQtbG9jay10eXBlLWZh Y2UpKQogICAgICAoZGVjb3JhdG9yIChpZGVudGlmaWVyKSBAZm9udC1sb2NrLXR5cGUtZmFjZSkp Ci0KICAgIDpmZWF0dXJlICd0eXBlCiAgICA6bGFuZ3VhZ2UgJ3B5dGhvbgorICAgOzsgb3ZlcnJp ZGUgYnVpbHQtaW4gZmFjZXMgd2hlbiBkaWN0L2xpc3QgYXJlIHVzZWQgZm9yIHR5cGUgaGludHMK KyAgIDpvdmVycmlkZSB0CiAgICBgKCgoaWRlbnRpZmllcikgQGZvbnQtbG9jay10eXBlLWZhY2UK ICAgICAgICg6bWF0Y2ggLChyeC10by1zdHJpbmcKICAgICAgICAgICAgICAgICBgKHNlcSBib2wg KG9yICxAcHl0aG9uLS10cmVlc2l0LWV4Y2VwdGlvbnMpCiAgICAgICAgICAgICAgICAgICAgICAg ZW9sKSkKICAgICAgICAgICAgICAgQGZvbnQtbG9jay10eXBlLWZhY2UpKQotICAgICAodHlwZSAo aWRlbnRpZmllcikgQGZvbnQtbG9jay10eXBlLWZhY2UpKQorICAgICAodHlwZSBbKGlkZW50aWZp ZXIpIChub25lKV0gQGZvbnQtbG9jay10eXBlLWZhY2UpCisgICAgICh0eXBlCisgICAgICAoXyBb KGlkZW50aWZpZXIpIChub25lKV0gQGZvbnQtbG9jay10eXBlLWZhY2UKKyAgICAgICAgIChfIFso aWRlbnRpZmllcikgKG5vbmUpXSBAZm9udC1sb2NrLXR5cGUtZmFjZQorICAgICAgICAgICAgKF8g WyhpZGVudGlmaWVyKSAobm9uZSldIEBmb250LWxvY2stdHlwZS1mYWNlKSA6PykgOj8pKSkKIAog ICAgOmZlYXR1cmUgJ2VzY2FwZS1zZXF1ZW5jZQogICAgOmxhbmd1YWdlICdweXRob24KQEAgLTY4 NDIsNyArNjg1Miw3IEBAIHB5dGhvbi10cy1tb2RlCiAgICAgICAgICAgICAgICAgJygoIGNvbW1l bnQgZGVmaW5pdGlvbikKICAgICAgICAgICAgICAgICAgICgga2V5d29yZCBzdHJpbmcgdHlwZSkK ICAgICAgICAgICAgICAgICAgICggYXNzaWdubWVudCBidWlsdGluIGNvbnN0YW50IGRlY29yYXRv cgotICAgICAgICAgICAgICAgICAgICBlc2NhcGUtc2VxdWVuY2UgbnVtYmVyIHN0cmluZy1pbnRl cnBvbGF0aW9uICkKKyAgICAgICAgICAgICAgICAgICAgZXNjYXBlLXNlcXVlbmNlIG51bWJlciAp CiAgICAgICAgICAgICAgICAgICAoIGJyYWNrZXQgZGVsaW1pdGVyIGZ1bmN0aW9uIG9wZXJhdG9y IHZhcmlhYmxlIHByb3BlcnR5KSkpCiAgICAgKHNldHEtbG9jYWwgdHJlZXNpdC1mb250LWxvY2st c2V0dGluZ3MgcHl0aG9uLS10cmVlc2l0LXNldHRpbmdzKQogICAgIChzZXRxLWxvY2FsIGltZW51 LWNyZWF0ZS1pbmRleC1mdW5jdGlvbgpkaWZmIC0tZ2l0IGEvdGVzdC9saXNwL3Byb2dtb2Rlcy9w eXRob24tdGVzdHMuZWwgYi90ZXN0L2xpc3AvcHJvZ21vZGVzL3B5dGhvbi10ZXN0cy5lbAppbmRl eCBhNDRhMTE4OTZmLi5mOGUxZDhkMDdhIDEwMDY0NAotLS0gYS90ZXN0L2xpc3AvcHJvZ21vZGVz L3B5dGhvbi10ZXN0cy5lbAorKysgYi90ZXN0L2xpc3AvcHJvZ21vZGVzL3B5dGhvbi10ZXN0cy5l bApAQCAtNzI5OSw2ICs3Mjk5LDEyMCBAQCBweXRob24tdGVzdHMtLWZseW1ha2UtY29tbWFuZC1v dXRwdXQtcGF0dGVybgogICAgICAgICAgICAgICAgICAgICAgICAgICJVbnVzZWQgaW1wb3J0IGEu Yi5jICh1bnVzZWQtaW1wb3J0KSIKICAgICAgICAgICAgICAgICAgICAgICAgIlcwNjExOiBVbnVz ZWQgaW1wb3J0IGEuYi5jICh1bnVzZWQtaW1wb3J0KSIpKSkpKSkKIAorOzs7IHB5dGhvbi10cy1t b2RlIGZvbnQtbG9jayB0ZXN0cworCisoZGVmbWFjcm8gcHl0aG9uLXRzLXRlc3RzLXdpdGgtdGVt cC1idWZmZXIgKGNvbnRlbnRzICZyZXN0IGJvZHkpCisgICJDcmVhdGUgYSBgcHl0aG9uLXRzLW1v ZGUnIGVuYWJsZWQgdGVtcCBidWZmZXIgd2l0aCBDT05URU5UUy4KK0JPRFkgaXMgY29kZSB0byBi ZSBleGVjdXRlZCB3aXRoaW4gdGhlIHRlbXAgYnVmZmVyLiAgUG9pbnQgaXMKK2Fsd2F5cyBsb2Nh dGVkIGF0IHRoZSBiZWdpbm5pbmcgb2YgYnVmZmVyLiIKKyAgKGRlY2xhcmUgKGluZGVudCAxKSAo ZGVidWcgdCkpCisgIGAod2l0aC10ZW1wLWJ1ZmZlcgorICAgICAoc2tpcC11bmxlc3MgKHRyZWVz aXQtcmVhZHktcCAncHl0aG9uKSkKKyAgICAgKHJlcXVpcmUgJ3B5dGhvbikKKyAgICAgKGxldCAo KHB5dGhvbi1pbmRlbnQtZ3Vlc3MtaW5kZW50LW9mZnNldCBuaWwpKQorICAgICAgIChweXRob24t dHMtbW9kZSkKKyAgICAgICAoaW5zZXJ0ICxjb250ZW50cykKKyAgICAgICAoZ290by1jaGFyIChw b2ludC1taW4pKQorICAgICAgICxAYm9keSkpKQorCisoZXJ0LWRlZnRlc3QgcHl0aG9uLXRzLW1v ZGUtY29tcG91bmQta2V5d29yZHMtZmFjZSAoKQorICAoZG9saXN0ICh0ZXN0ICcoImlzIG5vdCIg Im5vdCBpbiIpKQorICAgIChweXRob24tdHMtdGVzdHMtd2l0aC10ZW1wLWJ1ZmZlciAoY29uY2F0 ICJ0ICIgdGVzdCAiIHQiKQorICAgICAgKGZvbnQtbG9jay1lbnN1cmUpCisgICAgICAoZm9yd2Fy ZC10by13b3JkKQorICAgICAgKHNob3VsZCAoZXEgKGZhY2UtYXQtcG9pbnQpIGZvbnQtbG9jay1r ZXl3b3JkLWZhY2UpKQorICAgICAgKGZvcndhcmQtdG8td29yZCkKKyAgICAgIChzaG91bGQgKGVx IChmYWNlLWF0LXBvaW50KSBmb250LWxvY2sta2V5d29yZC1mYWNlKSkpKSkKKworKGVydC1kZWZ0 ZXN0IHB5dGhvbi10cy1tb2RlLW5hbWVkLWFzc2lnbmVtZW50LWZhY2UtMSAoKQorICAocHl0aG9u LXRzLXRlc3RzLXdpdGgtdGVtcC1idWZmZXIgInZhciA6PSAzIgorICAgIChmb250LWxvY2stZW5z dXJlKQorICAgIChzaG91bGQgKGVxIChmYWNlLWF0LXBvaW50KSBmb250LWxvY2stdmFyaWFibGUt bmFtZS1mYWNlKSkpKQorCisoZXJ0LWRlZnRlc3QgcHl0aG9uLXRzLW1vZGUtbmFtZWQtYXNzaWdu ZW1lbnQtZmFjZS0yICgpCisgIChweXRob24tdHMtdGVzdHMtd2l0aC10ZW1wLWJ1ZmZlciAidmFy MVtpaV0gPSAxOyB0LnZhcjJbampdID0gMiIKKyAgICAoc2V0b3B0IHRyZWVzaXQtZm9udC1sb2Nr LWxldmVsIDMpCisgICAgKGZvbnQtbG9jay1lbnN1cmUpCisgICAgKGRvbGlzdCAodGVzdCAnKCJ2 YXIxIiAgInZhcjIiKSkKKyAgICAgIChzZWFyY2gtZm9yd2FyZCB0ZXN0KQorICAgICAgKGdvdG8t Y2hhciAobWF0Y2gtYmVnaW5uaW5nIDApKQorICAgICAgKHNob3VsZCAoZXEgKGZhY2UtYXQtcG9p bnQpIGZvbnQtbG9jay12YXJpYWJsZS1uYW1lLWZhY2UpKSkKKyAgICAoZ290by1jaGFyIChwb2lu dC1taW4pKQorICAgIChkb2xpc3QgKHRlc3QgJygiaWkiICJqaiIpKQorICAgICAgKHNlYXJjaC1m b3J3YXJkIHRlc3QpCisgICAgICAoZ290by1jaGFyIChtYXRjaC1iZWdpbm5pbmcgMCkpCisgICAg ICAoc2hvdWxkIChlcSAoZmFjZS1hdC1wb2ludCkgbmlsKSkpKSkKKworKGVydC1kZWZ0ZXN0IHB5 dGhvbi10cy1tb2RlLW5lc3RlZC10eXBlcy1mYWNlLTEgKCkKKyAgKHB5dGhvbi10cy10ZXN0cy13 aXRoLXRlbXAtYnVmZmVyICJkZWYgZnVuYyh2OmRpY3RbIGxpc3RbIHR1cGxlW3N0cl0gXSwgaW50 IHwgTm9uZV0gfCBOb25lKToiCisgICAgKGZvbnQtbG9jay1lbnN1cmUpCisgICAgKGRvbGlzdCAo dGVzdCAnKCJkaWN0IiAibGlzdCIgInR1cGxlIiAic3RyIiAiaW50IiAiTm9uZSIgIk5vbmUiKSkK KyAgICAgIChzZWFyY2gtZm9yd2FyZCB0ZXN0KQorICAgICAgKGdvdG8tY2hhciAobWF0Y2gtYmVn aW5uaW5nIDApKQorICAgICAgKHNob3VsZCAoZXEgKGZhY2UtYXQtcG9pbnQpIGZvbnQtbG9jay10 eXBlLWZhY2UpKSkpKQorCisoZXJ0LWRlZnRlc3QgcHl0aG9uLXRzLW1vZGUtbmVzdGVkLXR5cGVz LWZhY2UtMiAoKQorICAocHl0aG9uLXRzLXRlc3RzLXdpdGgtdGVtcC1idWZmZXIgImRlZiBmKHZh bDogdHVwbGVbdHVwbGUsIGxpc3RbTHZsMSB8IEx2bDJbTHZsM1tMdmwzXSwgTHZsMl1dXSk6Igor ICAgIChmb250LWxvY2stZW5zdXJlKQorICAgIChkb2xpc3QgKHRlc3QgJygidHVwbGUiICJ0dXBs ZSIgImxpc3QiICJMdmwxIiAiTHZsMiIgIkx2bDMiICJMdmwzIiAiTHZsMiIpKQorICAgICAgKHNl YXJjaC1mb3J3YXJkIHRlc3QpCisgICAgICAoZ290by1jaGFyIChtYXRjaC1iZWdpbm5pbmcgMCkp CisgICAgICAoc2hvdWxkIChlcSAoZmFjZS1hdC1wb2ludCkgZm9udC1sb2NrLXR5cGUtZmFjZSkp KSkpCisKKyhlcnQtZGVmdGVzdCBweXRob24tdHMtbW9kZS1idWlsdGluLWNhbGwtZmFjZSAoKQor ICAocHl0aG9uLXRzLXRlc3RzLXdpdGgtdGVtcC1idWZmZXIgImFsbCgpIgorICAgIDs7IGVuYWJs ZSAnZnVuY3Rpb24nIGZlYXR1cmUgZnJvbSA0dGggbGV2ZWwKKyAgICAoc2V0b3B0IHRyZWVzaXQt Zm9udC1sb2NrLWxldmVsIDQpCisgICAgKGZvbnQtbG9jay1lbnN1cmUpCisgICAgKHNob3VsZCAo ZXEgKGZhY2UtYXQtcG9pbnQpIGZvbnQtbG9jay1idWlsdGluLWZhY2UpKSkpCisKKyhlcnQtZGVm dGVzdCBweXRob24tdHMtbW9kZS1pbnRlcnBvbGF0aW9uLW5lc3RlZC1zdHJpbmcgKCkKKyAgKHB5 dGhvbi10cy10ZXN0cy13aXRoLXRlbXAtYnVmZmVyICJ0ID0gZlwiYmVnIHtUcnVlICsgJ3N0cmlu Zyd9XCIiCisgICAgKGZvbnQtbG9jay1lbnN1cmUpCisKKyAgICAoc2VhcmNoLWZvcndhcmQgIlRy dWUiKQorICAgIChnb3RvLWNoYXIgKG1hdGNoLWJlZ2lubmluZyAwKSkKKyAgICAoc2hvdWxkIChl cSAoZmFjZS1hdC1wb2ludCkgZm9udC1sb2NrLWNvbnN0YW50LWZhY2UpKQorCisgICAgKGdvdG8t Y2hhciAocG9pbnQtbWluKSkKKyAgICAoZG9saXN0ICh0ZXN0ICcoImYiICJ7IiAiKyIgIn0iKSkK KyAgICAgIChzZWFyY2gtZm9yd2FyZCB0ZXN0KQorICAgICAgKGdvdG8tY2hhciAobWF0Y2gtYmVn aW5uaW5nIDApKQorICAgICAgKHNob3VsZCAobm90IChlcSAoZmFjZS1hdC1wb2ludCkgZm9udC1s b2NrLXN0cmluZy1mYWNlKSkpKQorCisKKyAgICAoZ290by1jaGFyIChwb2ludC1taW4pKQorICAg IChkb2xpc3QgKHRlc3QgJygiYmVnIiAiJ3N0cmluZyciICJcIiIpKQorICAgICAgKHNlYXJjaC1m b3J3YXJkIHRlc3QpCisgICAgICAoZ290by1jaGFyIChtYXRjaC1iZWdpbm5pbmcgMCkpCisgICAg ICAoc2hvdWxkIChlcSAoZmFjZS1hdC1wb2ludCkgZm9udC1sb2NrLXN0cmluZy1mYWNlKSkpKSkK KworKGVydC1kZWZ0ZXN0IHB5dGhvbi10cy1tb2RlLWludGVycG9sYXRpb24tZG9jLXN0cmluZyAo KQorICAocHl0aG9uLXRzLXRlc3RzLXdpdGgtdGVtcC1idWZmZXIgImZcIlwiXCJiZWcgeydzMScg KyBUcnVlICsgJ3MyJ30gZW5kXCJcIlwiIgorICAgIChmb250LWxvY2stZW5zdXJlKQorCisgICAg KHNlYXJjaC1mb3J3YXJkICJUcnVlIikKKyAgICAoZ290by1jaGFyIChtYXRjaC1iZWdpbm5pbmcg MCkpCisgICAgKHNob3VsZCAoZXEgKGZhY2UtYXQtcG9pbnQpIGZvbnQtbG9jay1jb25zdGFudC1m YWNlKSkKKworICAgIChnb3RvLWNoYXIgKHBvaW50LW1pbikpCisgICAgKGRvbGlzdCAodGVzdCAn KCJmIiAieyIgIisiICJ9IikpCisgICAgICAoc2VhcmNoLWZvcndhcmQgdGVzdCkKKyAgICAgIChn b3RvLWNoYXIgKG1hdGNoLWJlZ2lubmluZyAwKSkKKyAgICAgIChzaG91bGQgKG5vdCAoZXEgKGZh Y2UtYXQtcG9pbnQpIGZvbnQtbG9jay1zdHJpbmctZmFjZSkpKSkKKworICAgIChnb3RvLWNoYXIg KHBvaW50LW1pbikpCisgICAgKGRvbGlzdCAodGVzdCAnKCJcIlwiXCIiICJiZWciICJlbmQiICJc IlwiXCIiKSkKKyAgICAgIChzZWFyY2gtZm9yd2FyZCB0ZXN0KQorICAgICAgKGdvdG8tY2hhciAo bWF0Y2gtYmVnaW5uaW5nIDApKQorICAgICAgKHNob3VsZCAoZXEgKGZhY2UtYXQtcG9pbnQpIGZv bnQtbG9jay1kb2MtZmFjZSkpKQorCisgICAgKGdvdG8tY2hhciAocG9pbnQtbWluKSkKKyAgICAo ZG9saXN0ICh0ZXN0ICcoIidzMSciICInczInIikpCisgICAgICAoc2VhcmNoLWZvcndhcmQgdGVz dCkKKyAgICAgIChnb3RvLWNoYXIgKG1hdGNoLWJlZ2lubmluZyAwKSkKKyAgICAgIChzaG91bGQg KGVxIChmYWNlLWF0LXBvaW50KSBmb250LWxvY2stc3RyaW5nLWZhY2UpKSkpKQorCiAocHJvdmlk ZSAncHl0aG9uLXRlc3RzKQogCiA7OzsgcHl0aG9uLXRlc3RzLmVsIGVuZHMgaGVyZQotLSAKMi4z NC4xCgo= ------==--bound.610717.cqfxmjbu3o7k6zup.myt.yp-c.yandex.net-- From debbugs-submit-bounces@debbugs.gnu.org Sat Dec 09 02:32:51 2023 Received: (at 67061) by debbugs.gnu.org; 9 Dec 2023 07:32:51 +0000 Received: from localhost ([127.0.0.1]:46718 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rBrpS-0000sT-Ok for submit@debbugs.gnu.org; Sat, 09 Dec 2023 02:32:51 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:57098) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rBrpP-0000sF-QD for 67061@debbugs.gnu.org; Sat, 09 Dec 2023 02:32:48 -0500 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 1rBrp5-00088O-LW; Sat, 09 Dec 2023 02:32:28 -0500 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=3bDUPzJFjgN2gfDIIcUwzhInOU4BMNgRiWUbaLu4wHY=; b=ayyTKXXvT4c4 YcwrH3bnOM9LNWIl7w4oBb5svZhb3gH6tz0pk57M8wee46hPSdvWwuSB9F+rYv/Gr376hromjwoak UME8iekOFfIvLkyjyfBFofj8Wd+yytz7fAmxPV6m5Pblnh6j7SAT/K+WrLSQy7b1h7g0K2dJIejRM xKCq683j0IrqCTBGNJfyX5sdaaf3PY8vyYB5djin9oBxlv4Rt4/J88TnUN6yZrjKS5OPRTClRBjnN XuUsdGX+tgrfmEayd3YbWZf84m8IKl4S/exdWRWs/y1RPkUmBMQxwUg8TDLYReYv4MiyJuHtMiwXS 8E4n5ep6DVC4jR9Uhas8ig==; Date: Sat, 09 Dec 2023 09:32:11 +0200 Message-Id: <8334wbzv9g.fsf@gnu.org> From: Eli Zaretskii To: Denis Zubarev In-Reply-To: <172531702081590@mail.yandex.ru> (message from Denis Zubarev on Sat, 09 Dec 2023 03:39:39 +0300) Subject: Re: bug#67061: [PATCH] Improve syntax highlighting for python-ts-mode 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> X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 67061 Cc: dmitry@gutov.dev, casouri@gmail.com, 67061@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 (---) > From: Denis Zubarev > Cc: "casouri@gmail.com" , > "67061@debbugs.gnu.org" <67061@debbugs.gnu.org> > Date: Sat, 09 Dec 2023 03:39:39 +0300 > > I've moved tests to python-tests.el and added another fixes: > > assignment feature: > `for var in range(3)` highlight var as font-lock-variable-name-face > `var1[ii] = 1; t.var2[jj] = 2` highlight var1, var2 as font-lock-variable-name-face > > type feature: > support nested optional types up to 3 level deep, for example `tuple[tuple, list[Lvl1 | Lvl2[Lvl3[Lvl3], > Lvl2]]]` > > > Summary of all changes in the patch: > > keyword feature: > Add "is not" to the `python--treesit-keywords` list. > > assignment feature: > For all examples, > `for var in range(3)` > `var1[ii] = 1; t.var2[jj] = 2` > `var := 3` > `var *= 3` > highlight var as font-lock-variable-name-face > > string feature: > Fix fontification of strings inside of f-strings interpolation, > e.g. for f"beg {'nested'}" - 'nested' was not fontified as string. > > function feature: > Do not override the face of builtin functions (all, bytes etc.) with > the function call face > > type feature: > Fontify built-ins (dict,list,etc.) as types when they are used in type hints. > E.g. def func(v:dict[ list[ tuple[str] ], int | None] | None): Thanks. Yuan, would you please chime in and provide your comments, if any? From debbugs-submit-bounces@debbugs.gnu.org Sat Dec 09 13:18:47 2023 Received: (at 67061) by debbugs.gnu.org; 9 Dec 2023 18:18:47 +0000 Received: from localhost ([127.0.0.1]:48897 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rC1uZ-0001xs-BV for submit@debbugs.gnu.org; Sat, 09 Dec 2023 13:18:47 -0500 Received: from out1-smtp.messagingengine.com ([66.111.4.25]:41737) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rC1uX-0001xe-Ql for 67061@debbugs.gnu.org; Sat, 09 Dec 2023 13:18:46 -0500 Received: from compute7.internal (compute7.nyi.internal [10.202.2.48]) by mailout.nyi.internal (Postfix) with ESMTP id B54E35C011B; Sat, 9 Dec 2023 13:18:26 -0500 (EST) Received: from mailfrontend1 ([10.202.2.162]) by compute7.internal (MEProxy); Sat, 09 Dec 2023 13:18:26 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gutov.dev; h=cc :cc:content-transfer-encoding:content-type:content-type:date :date:from:from:in-reply-to:in-reply-to:message-id:mime-version :references:reply-to:sender:subject:subject:to:to; s=fm3; t= 1702145906; x=1702232306; bh=3RChE8JvGJoxuurDnjgtT7ON99YKB9CAgSS gkFRJlcI=; b=xGhQgu3ezNH215LVYgeJMJWh4m6FSVZk8WaiUK4Cpxnb1L7yDxp LmR+Qakvk/tXQKWcc/uN8t/gH63HfN9/TZgU/saMyFNv5J0V+iJLZbIDbBwS/NcG Rt2rBny9V9n3t9mVhmgb8fII1ZTLaNCrJRJjp22vCtTOz/IqrvJllKpJXiTHxPbi ZlH/fRlBLHUkCPDFGhq9d7i/Hgx2TkvQW0qBxlgsNtUiVId8+q9fe5xKW/UbyHCe jA3JX5ti8xSd9WH1j4+c9O+AutkrcgY7DT62nl8T3lreWOPXVKzcYmR1yp2nfpsX yxuAMC6S7opEYIhj5LeA0Q1jszMuruhFTZg== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:cc:content-transfer-encoding :content-type:content-type:date:date:feedback-id:feedback-id :from:from:in-reply-to:in-reply-to:message-id:mime-version :references:reply-to:sender:subject:subject:to:to:x-me-proxy :x-me-proxy:x-me-sender:x-me-sender:x-sasl-enc; s=fm1; t= 1702145906; x=1702232306; bh=3RChE8JvGJoxuurDnjgtT7ON99YKB9CAgSS gkFRJlcI=; b=cTVUMBzXkQanhj/SwjQ8PGBuSf+X5IgbVSYC3nSYYrPBnLZXE/4 SEgv5AiP/IaKx7/S+u/p+RLKFsYhp4AH0QP/GVZOf9PfiVI0mb6y2GqDpKzgF49F Q+XJrduaSUi0SkWAdRoLZXgPjTz0A3+l/XHkl1XXB5RXIMgwULS25Vx/nAMznujz +tW5O4I4tZCf0u1jd96B211YWO+nY+srxyw+/G5R/Tusiq9OHhyxM2T76sNsDmMi 2oU103rHkUJsatz16YVIZVJWWqKHXm5spkPmLH+1DAuU+AJz7MEt/fGwk4KL9vxi azgrIwAE+IbRESEo3d2gDvLYD1v0+JyXWFg== X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedvkedrudekkedgudduudcutefuodetggdotefrod ftvfcurfhrohhfihhlvgemucfhrghsthforghilhdpqfgfvfdpuffrtefokffrpgfnqfgh necuuegrihhlohhuthemuceftddtnecusecvtfgvtghiphhivghnthhsucdlqddutddtmd enucfjughrpefkffggfgfuvfevfhfhjggtgfesthejredttdefjeenucfhrhhomhepffhm ihhtrhihucfiuhhtohhvuceoughmihhtrhihsehguhhtohhvrdguvghvqeenucggtffrrg htthgvrhhnpeeigfetveehveevffehledtueekieeikeeufeegudfgfeeghfdulefgfeev ledvveenucevlhhushhtvghrufhiiigvpedtnecurfgrrhgrmhepmhgrihhlfhhrohhmpe gumhhithhrhiesghhuthhovhdruggvvh X-ME-Proxy: Feedback-ID: i0e71465a:Fastmail Received: by mail.messagingengine.com (Postfix) with ESMTPA; Sat, 9 Dec 2023 13:18:25 -0500 (EST) Message-ID: Date: Sat, 9 Dec 2023 20:18:22 +0200 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.13.0 Subject: Re: bug#67061: [PATCH] Improve syntax highlighting for python-ts-mode Content-Language: en-US To: Denis Zubarev , Eli Zaretskii 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> From: Dmitry Gutov In-Reply-To: <172531702081590@mail.yandex.ru> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-Spam-Score: -2.9 (--) X-Debbugs-Envelope-To: 67061 Cc: "casouri@gmail.com" , "67061@debbugs.gnu.org" <67061@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.9 (---) On 09/12/2023 02:39, Denis Zubarev wrote: > assignment feature: > For all examples, > `for var in range(3)` > `var1[ii] = 1; t.var2[jj] = 2` > `var := 3` > `var *= 3` > highlight var as font-lock-variable-name-face Arguably, the last 2 lines are "variable references" rather than definitions (so font-lock-variable-use-face might make more sense), since such operators imply that a variable has already been defined previously. And python--treesit-fontify-variable (in the 'variable' feature) already applies that face. The first example, however, should indeed use font-lock-variable-name-face. From debbugs-submit-bounces@debbugs.gnu.org Sun Dec 10 05:17:20 2023 Received: (at 67061) by debbugs.gnu.org; 10 Dec 2023 10:17:21 +0000 Received: from localhost ([127.0.0.1]:49541 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rCGsC-0006I2-H1 for submit@debbugs.gnu.org; Sun, 10 Dec 2023 05:17:20 -0500 Received: from mail-pf1-x435.google.com ([2607:f8b0:4864:20::435]:48631) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rCGsB-0006Ho-3s for 67061@debbugs.gnu.org; Sun, 10 Dec 2023 05:17:19 -0500 Received: by mail-pf1-x435.google.com with SMTP id d2e1a72fcca58-6cda22140f2so2897726b3a.1 for <67061@debbugs.gnu.org>; Sun, 10 Dec 2023 02:17:04 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1702203419; x=1702808219; darn=debbugs.gnu.org; h=content-transfer-encoding:in-reply-to:from:references:cc:to :content-language:subject:user-agent:mime-version:date:message-id :from:to:cc:subject:date:message-id:reply-to; bh=TXKJzzXBU3smevc98dlBS+HW3PpoSanvwYRrxdete6s=; b=UPe1avNsrp3BLzL5n6C9BATw49DKzoBhxY10nZ5IQ7IsnHuzofBP8aqRJEH2iEUa6V rFfC347prA0TR3wpHpFdsFXjt3ZWWLesH23IoHR9MKv1FRrjhAtZs6q/dIWfneXdj6mq 9ASw/vV7GbNRfDD3sJ21cjq29IcccGF85OV+nfx3DwsAC0oyoyaOVmzFC3OQCUjoUQfv 285VmgBiYF91QCb/KSq6UVPMQvJsMAWnBThIIF5ymYjjGc3fzMT9oJEwMSscGMG8XaRR ye9vPDSjsSlQZ2dE5tR+b/srJ+IXqe9rhiusOF69E6Hto3iP7KrNX0/g72TBMWEVvrmE NN4g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1702203419; x=1702808219; h=content-transfer-encoding:in-reply-to:from:references:cc:to :content-language:subject:user-agent:mime-version:date:message-id :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=TXKJzzXBU3smevc98dlBS+HW3PpoSanvwYRrxdete6s=; b=UoMuDQzPYvg4fo6WEZLK43p4Q3BQS29kRX2kUPsf8qepL8C7fNIp7zpdz7BAuPRTi2 wxI5BaOL9lVxxCiwCpr1kZ2Y4+InV+pc/K4JR8CU7+Gw8mCxfpubxBXk729mqIPoiInp zjenB99ktO/Az9wyEXw+o9126reWEy96BUGzBFS0PR4ZqcBF2NZVpenhtrSqNiVdGY02 hx5q5A4OkeTPEPjyTzchl33DaUm5UxTN/bHo3xLAzKGno6EjdpAodzzdfGMb3xNY/G5o 8zBa25GQ+DSDqoJ6imy1a9gg1RazhxRHCtj519cMckSnsiijJiShrVKx2VvKv5n+mow8 Pymg== X-Gm-Message-State: AOJu0Yw+twOVgCZ+6cWKP5hhA6lg0GRYqLsgV+n01c4xSMgWcDNitAgi EmRkovs3kcTKqGftsvobu9g= X-Google-Smtp-Source: AGHT+IHbV8RtsF/f6mwa6Pbs9p5pk+rbY3HXrqqBX7dq1mAuou7tn7SmdMkDDaTBvW2P+K39kc9fnQ== X-Received: by 2002:a05:6a00:c85:b0:6ce:2731:a093 with SMTP id a5-20020a056a000c8500b006ce2731a093mr3502804pfv.66.1702203419175; Sun, 10 Dec 2023 02:16:59 -0800 (PST) Received: from [192.168.1.7] (172-117-161-177.res.spectrum.com. [172.117.161.177]) by smtp.gmail.com with ESMTPSA id k21-20020aa788d5000000b006ce75e0ef88sm4366551pff.78.2023.12.10.02.16.58 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Sun, 10 Dec 2023 02:16:58 -0800 (PST) Message-ID: Date: Sun, 10 Dec 2023 02:16:57 -0800 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: bug#67061: [PATCH] Improve syntax highlighting for python-ts-mode Content-Language: en-US To: Eli Zaretskii , Denis Zubarev 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> <8334wbzv9g.fsf@gnu.org> From: Yuan Fu In-Reply-To: <8334wbzv9g.fsf@gnu.org> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-Spam-Score: -0.0 (/) X-Debbugs-Envelope-To: 67061 Cc: dmitry@gutov.dev, 67061@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: -1.0 (-) On 12/8/23 11:32 PM, Eli Zaretskii wrote: >> From: Denis Zubarev >> Cc: "casouri@gmail.com" , >> "67061@debbugs.gnu.org" <67061@debbugs.gnu.org> >> Date: Sat, 09 Dec 2023 03:39:39 +0300 >> >> I've moved tests to python-tests.el and added another fixes: >> >> assignment feature: >> `for var in range(3)` highlight var as font-lock-variable-name-face >> `var1[ii] = 1; t.var2[jj] = 2` highlight var1, var2 as font-lock-variable-name-face >> >> type feature: >> support nested optional types up to 3 level deep, for example `tuple[tuple, list[Lvl1 | Lvl2[Lvl3[Lvl3], >> Lvl2]]]` >> >> >> Summary of all changes in the patch: >> >> keyword feature: >> Add "is not" to the `python--treesit-keywords` list. >> >> assignment feature: >> For all examples, >> `for var in range(3)` >> `var1[ii] = 1; t.var2[jj] = 2` >> `var := 3` >> `var *= 3` >> highlight var as font-lock-variable-name-face >> >> string feature: >> Fix fontification of strings inside of f-strings interpolation, >> e.g. for f"beg {'nested'}" - 'nested' was not fontified as string. >> >> function feature: >> Do not override the face of builtin functions (all, bytes etc.) with >> the function call face >> >> type feature: >> Fontify built-ins (dict,list,etc.) as types when they are used in type hints. >> E.g. def func(v:dict[ list[ tuple[str] ], int | None] | None): > Thanks. > > Yuan, would you please chime in and provide your comments, if any? This should be the last bug report that I missed. I'll look at this tomorrow, promise promise. Yuan From debbugs-submit-bounces@debbugs.gnu.org Sun Dec 10 07:05:16 2023 Received: (at 67061) by debbugs.gnu.org; 10 Dec 2023 12:05:16 +0000 Received: from localhost ([127.0.0.1]:49661 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rCIYe-0001CK-17 for submit@debbugs.gnu.org; Sun, 10 Dec 2023 07:05:16 -0500 Received: from forward500b.mail.yandex.net ([2a02:6b8:c02:900:1:45:d181:d500]:51362) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rCIYb-0001C1-27 for 67061@debbugs.gnu.org; Sun, 10 Dec 2023 07:05:14 -0500 Received: from mail-nwsmtp-mxback-production-main-93.myt.yp-c.yandex.net (mail-nwsmtp-mxback-production-main-93.myt.yp-c.yandex.net [IPv6:2a02:6b8:c00:279f:0:640:32c8:0]) by forward500b.mail.yandex.net (Yandex) with ESMTP id AB43060AFA; Sun, 10 Dec 2023 15:04:52 +0300 (MSK) Received: from mail.yandex.ru (2a02:6b8:c12:37ac:0:640:3277:0 [2a02:6b8:c12:37ac:0:640:3277:0]) by mail-nwsmtp-mxback-production-main-93.myt.yp-c.yandex.net (mxback/Yandex) with HTTP id m4fWpx5OxGk0-DWqp2K8m; Sun, 10 Dec 2023 15:04:52 +0300 X-Yandex-Fwd: 1 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yandex.ru; s=mail; t=1702209892; bh=QoPBsdyU3HCxvqI6NJhs+rX4RUfKpciJbB8rjb5SuYc=; h=Message-Id:References:Date:Cc:Subject:To:From; b=uZIEji77Vh0GizfW+7ZN6tTmFdbm8aCEjZKaQ3VlfMAtJFB/LI6G5XE8n8BDkOut1 1CLTYPSLfevMXRrACj89xRhD8IvIGjWXzsqP9NvZdYGkviJdx+D4a2sY3YLx+zouO6 EJzJYu6g9kgqxZ0c8irPwmHavchgWqAmKjP0bCV8= Authentication-Results: mail-nwsmtp-mxback-production-main-93.myt.yp-c.yandex.net; dkim=pass header.i=@yandex.ru Received: by dedaz52jklfeb6nn.myt.yp-c.yandex.net with HTTP; Sun, 10 Dec 2023 15:04:51 +0300 From: Denis Zubarev To: Dmitry Gutov , Eli Zaretskii 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> Subject: Re: bug#67061: [PATCH] Improve syntax highlighting for python-ts-mode MIME-Version: 1.0 X-Mailer: Yamail [ http://yandex.ru ] 5.0 Date: Sun, 10 Dec 2023 15:04:51 +0300 Message-Id: <212931702208489@mail.yandex.ru> Content-Transfer-Encoding: base64 Content-Type: text/html; charset=utf-8 X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 67061 Cc: "casouri@gmail.com" , "67061@debbugs.gnu.org" <67061@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: -1.0 (-) PGRpdj4mZ3Q7IEFyZ3VhYmx5LCB0aGUgbGFzdCAyIGxpbmVzIGFyZSAidmFyaWFibGUgcmVmZXJl bmNlcyIgcmF0aGVyIHRoYW4gZGVmaW5pdGlvbnM8L2Rpdj48ZGl2PsKgPC9kaXY+PGRpdj5gdmFy IDo9IDNgIMKgaXMgYXNzaWdubWVudCBleHByZXNzaW9ucy4gSXQgYWxsb3dzIHZhcmlhYmxlIGFz c2lnbm1lbnRzIHRvIG9jY3VyIGluc2lkZSBvZiBsYXJnZXIgZXhwcmVzc2lvbnMuIEZvciBleGFt cGxlIGBpZiAobWF0Y2ggOj0gcGF0dGVybi5zZWFyY2goZGF0YSkpIGlzIG5vdCBOb25lOmAuPC9k aXY+PGRpdj5JdCBtb3N0bHkgdXNlZCB0byBkZWZpbmUgbmV3IHZhcmlhYmxlcyBhbmQgYWN0IG9u IHRoZW0gaWYgc29tZSBjb25kaXRpb24gaXMgbWV0LjwvZGl2PjxkaXY+wqA8L2Rpdj48ZGl2Pk15 IHJhdGlvbmFsZSBmb3IgYHZhciAqPSAzYCB3YXMgdGhhdCBpdCBpcyBzaG9ydGhhbmQgZm9yIGB2 YXIgPSB2YXIgKiAzYCBhbmQgY3VycmVudGx5IHRoZSBgdmFyYCBvbiB0aGUgbGVmdCBoYW5kIHNp ZGUgaXMgZm9udGlmaWVkIHdpdGggYGZvbnQtbG9jay12YXJpYWJsZS1uYW1lLWZhY2VgLjwvZGl2 PjxkaXY+SSB3YW50ZWQgc2hvcnRoYW5kIGZvcm0gdG8gYmUgY29uc2lzdGVudCB3aXRoIHRoZSBm dWxsIGZvcm0uPC9kaXY+PGRpdj7CoDwvZGl2PjxkaXY+WW91ciBwb2ludCBtYWtlcyBzZW5zZSB0 b28sIEkgZG9uJ3QgaGF2ZSBzdHJvbmcgb3BpbmlvbiBhYm91dCB0aGlzLjwvZGl2PjxkaXY+QWxz byBJJ20gbm90IHN1cmUgbm93IGFib3V0IGB2YXJbaWldID0gMWAsIHNpbmNlIGl0IGlzIGFjdHVh bGx5IGFjY2Vzc2luZyB0aGUgbGlzdCBvciBkaWN0aW9uYXJ5IGVsZW1lbnQgYW5kIGBmb250LWxv Y2stdmFyaWFibGUtdXNlLWZhY2VgIG1heSBzdWl0IGJldHRlciBoZXJlLjwvZGl2PjxkaXY+wqA8 L2Rpdj48ZGl2PsKgPC9kaXY+PGRpdj5RdWVzdGlvbiBhYm91dCBuZXcgY2hhbmdlcy48L2Rpdj48 ZGl2PlNob3VsZCBJIHB1c2ggdGhlbSB0byB0aGlzIHBhdGNoIGFuZCBwcm92aWRlIGRlc2NyaXB0 aW9uIG9mIG5ldyBjaGFuZ2VzLDwvZGl2PjxkaXY+b3IgaXQgd291bGQgYmUgYmV0dGVyIHRvIHdh aXQgZm9yIHJldmlldyBhbmQgc2VuZCB0aGVtIGFzIG5ldyBwYXRjaD88L2Rpdj48ZGl2PsKgPC9k aXY+PGRpdj7CoDwvZGl2PjxkaXY+wqA8L2Rpdj48ZGl2PsKgPC9kaXY+PGRpdj4wOS4xMi4yMDIz LCAyMToxOCwgIkRtaXRyeSBHdXRvdiIgJmx0OzxhIGhyZWY9Im1haWx0bzpkbWl0cnlAZ3V0b3Yu ZGV2IiByZWw9Im5vb3BlbmVyIG5vcmVmZXJyZXIiPmRtaXRyeUBndXRvdi5kZXY8L2E+Jmd0Ozo8 L2Rpdj48YmxvY2txdW90ZT48cD5PbiAwOS8xMi8yMDIzIDAyOjM5LCBEZW5pcyBadWJhcmV2IHdy b3RlOjwvcD48YmxvY2txdW90ZT7CoGFzc2lnbm1lbnQgZmVhdHVyZTo8YnIgLz7CoEZvciBhbGwg ZXhhbXBsZXMsPGJyIC8+wqBgZm9yIHZhciBpbiByYW5nZSgzKWA8YnIgLz7CoGB2YXIxW2lpXSA9 IDE7IHQudmFyMltqal0gPSAyYDxiciAvPsKgYHZhciA6PSAzYDxiciAvPsKgYHZhciAqPSAzYDxi ciAvPsKgaGlnaGxpZ2h0IHZhciBhcyBmb250LWxvY2stdmFyaWFibGUtbmFtZS1mYWNlPC9ibG9j a3F1b3RlPjxwPjxiciAvPkFyZ3VhYmx5LCB0aGUgbGFzdCAyIGxpbmVzIGFyZSAidmFyaWFibGUg cmVmZXJlbmNlcyIgcmF0aGVyIHRoYW48YnIgLz5kZWZpbml0aW9ucyAoc28gZm9udC1sb2NrLXZh cmlhYmxlLXVzZS1mYWNlIG1pZ2h0IG1ha2UgbW9yZSBzZW5zZSksPGJyIC8+c2luY2Ugc3VjaCBv cGVyYXRvcnMgaW1wbHkgdGhhdCBhIHZhcmlhYmxlIGhhcyBhbHJlYWR5IGJlZW4gZGVmaW5lZDxi ciAvPnByZXZpb3VzbHkuPGJyIC8+PGJyIC8+QW5kIHB5dGhvbi0tdHJlZXNpdC1mb250aWZ5LXZh cmlhYmxlIChpbiB0aGUgJ3ZhcmlhYmxlJyBmZWF0dXJlKSBhbHJlYWR5PGJyIC8+YXBwbGllcyB0 aGF0IGZhY2UuPGJyIC8+PGJyIC8+VGhlIGZpcnN0IGV4YW1wbGUsIGhvd2V2ZXIsIHNob3VsZCBp bmRlZWQgdXNlIGZvbnQtbG9jay12YXJpYWJsZS1uYW1lLWZhY2UuPC9wPjwvYmxvY2txdW90ZT4= From debbugs-submit-bounces@debbugs.gnu.org Sun Dec 10 19:01:28 2023 Received: (at 67061) by debbugs.gnu.org; 11 Dec 2023 00:01:28 +0000 Received: from localhost ([127.0.0.1]:52106 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rCTjk-0001wx-57 for submit@debbugs.gnu.org; Sun, 10 Dec 2023 19:01:28 -0500 Received: from wout3-smtp.messagingengine.com ([64.147.123.19]:56333) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rCTjg-0001wh-LO for 67061@debbugs.gnu.org; Sun, 10 Dec 2023 19:01:27 -0500 Received: from compute2.internal (compute2.nyi.internal [10.202.2.46]) by mailout.west.internal (Postfix) with ESMTP id 00E2E3200AA3; Sun, 10 Dec 2023 19:01:03 -0500 (EST) Received: from mailfrontend1 ([10.202.2.162]) by compute2.internal (MEProxy); Sun, 10 Dec 2023 19:01:04 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gutov.dev; h=cc :cc:content-transfer-encoding:content-type:content-type:date :date:from:from:in-reply-to:in-reply-to:message-id:mime-version :references:reply-to:sender:subject:subject:to:to; s=fm3; t= 1702252863; x=1702339263; bh=hOzzCWXU3mnHPkoH9xkw7pOlrTifC/FKDeW nmGbMis4=; b=dwp+GH7KcIrv/AArkLDcQGUXoezv8W+LCrpcDtdF3zWRWo1jM5z Eh4/IkPagCL1YkYl1pxlMpTuB2AW+TwH4w8rIxBC4N9gB+dDOc4uSBzcDdOKR1B8 eRZikdaczbMaDdtEz6v8qP4R09mGPJTIsu603xBfkriD+yEFlQG97/kPxe/Jvn6Z hYOe+aMOh4FdCGiKmJL5Trnc0shWzuv9TnVS2/mVCl3Ec7la7XDaccX7/OdcvRQO /ns5kpd23dobRagT2cCpcKkXOptkk5bH6XIwkT6sAw1MMxgqq/1X+SIHUQvVUDS2 E1Uxfy8flGWvCHKCottXJJeNxOZUUQza95g== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:cc:content-transfer-encoding :content-type:content-type:date:date:feedback-id:feedback-id :from:from:in-reply-to:in-reply-to:message-id:mime-version :references:reply-to:sender:subject:subject:to:to:x-me-proxy :x-me-proxy:x-me-sender:x-me-sender:x-sasl-enc; s=fm1; t= 1702252863; x=1702339263; bh=hOzzCWXU3mnHPkoH9xkw7pOlrTifC/FKDeW nmGbMis4=; b=qq8bxhqminxE6qEqZ4WEONqi8eG9yne299W6IeLnCk3/W+Mtzrs NHXr8479KiHuE9P3uq8RFzC9L/sXPaid2xNfV4pBD5bkjVcirNgFuiVfIFyvBsXW 8WtBj9QJUhkxOjNOxKvGkE6Nm6TEnI0I9Oza4IOwerrkqehNA+w/u0LPGLvIO8v+ g1e4BYXFPMxaRkCpWfiVgCLS0YxProM3hHzqVb27VRT6QsJYCMd2NEtE7bz7PHUn WUwTYX+1I8P0wor8sImljkrRWMVmT62yMZ4g19fVIrx4HUsHDowsNdVE5foiD+FV l0cMlkGKJdwNsUq2gcYm8pkm8/Z31ST6gng== X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedvkedrudeluddgudekucetufdoteggodetrfdotf fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfqfgfvpdfurfetoffkrfgpnffqhgen uceurghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmne cujfgurhepkfffgggfuffvvehfhfgjtgfgsehtkeertddtfeejnecuhfhrohhmpeffmhhi thhrhicuifhuthhovhcuoegumhhithhrhiesghhuthhovhdruggvvheqnecuggftrfgrth htvghrnhephfffheeljeffgeffueeghfekkedtfffgheejvdegjeettdduheeufffggfef jeehnecuvehluhhsthgvrhfuihiivgeptdenucfrrghrrghmpehmrghilhhfrhhomhepug hmihhtrhihsehguhhtohhvrdguvghv X-ME-Proxy: Feedback-ID: i0e71465a:Fastmail Received: by mail.messagingengine.com (Postfix) with ESMTPA; Sun, 10 Dec 2023 19:00:59 -0500 (EST) Message-ID: <0c6e2e14-b494-a8cb-3893-ffb39577baf9@gutov.dev> Date: Mon, 11 Dec 2023 02:00:57 +0200 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.13.0 Subject: Re: bug#67061: [PATCH] Improve syntax highlighting for python-ts-mode Content-Language: en-US To: Denis Zubarev , Eli Zaretskii 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> From: Dmitry Gutov In-Reply-To: <212931702208489@mail.yandex.ru> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit X-Spam-Score: -2.9 (--) X-Debbugs-Envelope-To: 67061 Cc: "casouri@gmail.com" , "67061@debbugs.gnu.org" <67061@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.9 (---) On 10/12/2023 14:04, Denis Zubarev wrote: > > Arguably, the last 2 lines are "variable references" rather than > definitions > `var := 3`  is assignment expressions. It allows variable assignments to > occur inside of larger expressions. For example `if (match := > pattern.search(data)) is not None:`. > It mostly used to define new variables and act on them if some condition > is met. Ah, thanks! This feature is newer than my working experience with Python. > My rationale for `var *= 3` was that it is shorthand for `var = var * 3` > and currently the `var` on the left hand side is fontified with > `font-lock-variable-name-face`. I think ideally, in cases when "var =" is not the first occurrence for the same var in a given scope, we wouldn't highlight it as "definition" either. Speaking of font-lock-variable-use-face, I think it would be most useful if it helped with noticing typos (meaning, it would only be used for references to variables that have been defined previously, according to the rules of the language). But for that we still need to implement the scope tracking. And before that, well, my personal preference is not to highlight the references at all, but opinions differ. > I wanted shorthand form to be consistent with the full form. > Your point makes sense too, I don't have strong opinion about this. > Also I'm not sure now about `var[ii] = 1`, since it is actually > accessing the list or dictionary element and > `font-lock-variable-use-face` may suit better here. Yep. To sum up, I would add highlighting to your examples `for var in range(3)` and `var := 3` but not others. > Question about new changes. > Should I push them to this patch and provide description of new changes, > or it would be better to wait for review and send them as new patch? I suggest sending an updated patch for review in this case, but you can also wait for Yuan's comments first. Also, please double-check that the tests pass. It might be something in the way I applied your latest patch, but in the example that you gave regarding the "type" feature, def func(v:dict[ list[ tuple[str] ], int | None] | None): , only the last "None" gets highlighted for me with font-lock-type-face. There are corresponding test failures too. Again, could be something on my side, but it would help to verify. From debbugs-submit-bounces@debbugs.gnu.org Mon Dec 11 01:54:25 2023 Received: (at 67061) by debbugs.gnu.org; 11 Dec 2023 06:54:25 +0000 Received: from localhost ([127.0.0.1]:52302 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rCaBN-0005TW-9F for submit@debbugs.gnu.org; Mon, 11 Dec 2023 01:54:25 -0500 Received: from mail-pj1-x102b.google.com ([2607:f8b0:4864:20::102b]:50460) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rCaBI-0005T4-Ni for 67061@debbugs.gnu.org; Mon, 11 Dec 2023 01:54:23 -0500 Received: by mail-pj1-x102b.google.com with SMTP id 98e67ed59e1d1-2886576cf18so2485434a91.1 for <67061@debbugs.gnu.org>; Sun, 10 Dec 2023 22:54:05 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1702277640; x=1702882440; darn=debbugs.gnu.org; h=content-transfer-encoding:in-reply-to:from:references:to :content-language:subject:user-agent:mime-version:date:message-id :from:to:cc:subject:date:message-id:reply-to; bh=CzEFglg/M/RP2EEj78vMoQP/bmy2N/7V5P8L9VgF7jc=; b=e5QtTj7ulV83G8dh2FMQdV0ZKCFF3p94OU+UCxKdRGQOgiX6Kn5XhX7mbbymQ7Cfy1 R4ZcEyM1eZ+euBfGZ/6v5EjwW3MUWlKSoTmR0toehy33ufzL3tIb50MNW77edMSaU6Zd 8uoqfQ4zvlw4egeXMTRQGcNQ9RRtzEu9gX0bG9viJYNQ/1ygvP3ot20egcdJ0Tq8Cf4C m8kjF2A7rOzt3IMWoaEGFN8H42NA/Agv7wDPMKm5NdN2UPBmN5vWvUi7ISxNlAhA+eRu 9S8u6HXDqLZnMva8jeXMV5yfqmyQEqVc45+oz2BgXC2NO4IzHTgGtYRVH+/iKj3s+oSq Cp1w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1702277640; x=1702882440; h=content-transfer-encoding:in-reply-to:from:references:to :content-language:subject:user-agent:mime-version:date:message-id :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=CzEFglg/M/RP2EEj78vMoQP/bmy2N/7V5P8L9VgF7jc=; b=EtfV6POnD+PmEyHpwlngYbmTNEt1HjNQa8zOFFSSbI4jB/8ZZhlVIQErHZyCIQSfL5 cAHhG/4n8oX0Ao9GMvNQ0UlMdAcHoN9V0WQpGDeS/tVF0jb7LMaUfXp20Uj6OB8CNLxG tu1+SwEWFgKotkToujDRZgDOYIs1MH0CxkIVFQVP/XMsLan0aHNMvvQtbVBvjSUcAvzV KDpORnvE0F02aJja2GIFT0QfHfRRXty6/OGtUAZyqpkrxxzW00yvKhtJB1Et4pBoE4W1 bAc5R4oo3iK392NL6qShYdJgTgv3LWGhm+a4UUEQwKhHCAMDYn0mA7EOKh/uIb5vJqtq fT4g== X-Gm-Message-State: AOJu0Yz5+ptqilxmkAsNyZGXsPptqlsNOJeFq+TOUqBmCXTmKbPzIbx3 Nnr8PyTXjSSroJEsZuJwfr8= X-Google-Smtp-Source: AGHT+IHaJBDgadO/WupkhFvMw4k76MIt8V1LLKu3d3CcTTX/XDlnE2Gni0E/0rOimFtd5qsBWgPuCw== X-Received: by 2002:a17:90b:4012:b0:286:6cc1:286 with SMTP id ie18-20020a17090b401200b002866cc10286mr1267025pjb.81.1702277639950; Sun, 10 Dec 2023 22:53:59 -0800 (PST) Received: from [192.168.1.7] (172-117-161-177.res.spectrum.com. [172.117.161.177]) by smtp.gmail.com with ESMTPSA id pm17-20020a17090b3c5100b002866c96fc71sm6245787pjb.38.2023.12.10.22.53.59 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Sun, 10 Dec 2023 22:53:59 -0800 (PST) Message-ID: <6752e286-618e-4fcd-a210-14090fa8a72d@gmail.com> Date: Sun, 10 Dec 2023 22:53:58 -0800 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: bug#67061: [PATCH] Improve syntax highlighting for python-ts-mode Content-Language: en-US To: Denis Zubarev , 67061@debbugs.gnu.org References: <8734xdni6y.fsf@yandex.ru> From: Yuan Fu In-Reply-To: <8734xdni6y.fsf@yandex.ru> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit X-Spam-Score: -0.0 (/) X-Debbugs-Envelope-To: 67061 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 (-) Here's my long due review: > Improve syntax highlighting for python-ts-mode. > > - Fontify compound keywords "not in" and "is not" (fixes bug#67015) This is great, though you'll need to rebase your changes on top of latest emacs-29 now, because I added one of the keywords when fixing bug#67015. Sorry for the trouble. > - Fix fontification of strings inside of f-strings interpolation, > e.g. for f"beg {'nested'}" - 'nested' was not fontified as string. I see that you removed string-interpolation feature, I don't know how I feel about it. For one, if this fix is to be applied to emacs-29, we cannot remove that feature—that's a breaking change IMO. Can we do this instead: in python--treesit-fontify-string, we check if string-interpolation feature is enabled, if it is, fontify string_start, string_content and string_end only; if not, fontify the whole string. > - Do not override the face of builtin functions (all, bytes etc.) with > the function call face > - Fontify built-ins (dict,list,etc.) as types when they are used in type hints LGTM > - Add missing assignment expressions Do you have examples on the type of assignments you are adding fontification for? Some general tips: for comments, we always write complete sentences, capitalize the first character and ends with a period. Also I see double empty lines and missing empty lines at places. Yuan From debbugs-submit-bounces@debbugs.gnu.org Mon Dec 11 02:11:12 2023 Received: (at 67061) by debbugs.gnu.org; 11 Dec 2023 07:11:12 +0000 Received: from localhost ([127.0.0.1]:52319 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rCaRc-0005yT-71 for submit@debbugs.gnu.org; Mon, 11 Dec 2023 02:11:12 -0500 Received: from mail-pg1-x52d.google.com ([2607:f8b0:4864:20::52d]:48457) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rCaRW-0005xt-TL for 67061@debbugs.gnu.org; Mon, 11 Dec 2023 02:11:10 -0500 Received: by mail-pg1-x52d.google.com with SMTP id 41be03b00d2f7-5c690c3d113so3465845a12.1 for <67061@debbugs.gnu.org>; Sun, 10 Dec 2023 23:10:52 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1702278646; x=1702883446; darn=debbugs.gnu.org; h=content-transfer-encoding:in-reply-to:from:references:cc:to :content-language:subject:user-agent:mime-version:date:message-id :from:to:cc:subject:date:message-id:reply-to; bh=rQT8Api6FqNHq/6i/MEvbVEKz0hXMnC52LJiA7AREM4=; b=Po9tvKdJdgikFOXLHOXJ3mhl5nnKPFeUmtggaX4xhXLBLrZdy8iENxIBk3F7KGypdN hySzc+LOjReeRt+aewDSi8UgZwXOT2j9llq/uJE76+UIYZ/II40SDy2834DtnKab70Ff 9C4e1bWJAU9CILZaYhSzrCfaS54f1i3Ng0t6fU28SijiM+lFER3xdjbY8Guw2JuSBlPP qBXhuAlIQ15cUDHdthBQ8NWz/KyvY1UESaF+zDXNxkkKmumjdqXqU5DsqocKl5zMSpVb MFqt0KFW3u59Lad+f1IukBJwxF5HO/vZP4pAF1Unep1nI+zHUD91Vyej9+aQWsvHJazS 8pOw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1702278646; x=1702883446; h=content-transfer-encoding:in-reply-to:from:references:cc:to :content-language:subject:user-agent:mime-version:date:message-id :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=rQT8Api6FqNHq/6i/MEvbVEKz0hXMnC52LJiA7AREM4=; b=N4ESpYigYHZ/JzQDxkKds6trTBVkY3s5A0xAzBGjbK1+2wpxDvetoZ8+GwZP5o4p2x sJCd/jdPfR9+xvS6oHIl0tSwyJwBIv6Dit6I8279fre5+XVTg+bo2WLU3lpy6lN8YPYr QxQSDBbQ5wvTYMv9wDySuxl9ndvJUKKgCkeGbMCBTYHo/Wnl1AJ2Sx9KPTRTaBP5E+KF 5axNN1tn4hLeRBBiIepYrE+qEq80Hrk6DWjppbOL9wNFIP0mxmKPFCFeniBIs86mwJ2N SN6WVMz7ZqyYsed5ZAhpiJY41fh3M5YxL/6WoBxNegw+6ok/K7QvF8mPeRMKPOosLywb bjfw== X-Gm-Message-State: AOJu0Yw/y/aVh13bByn+g5n0aMCmQNBatRiECV6MxSyzsN5aNGd4X4rw vjCcmtMK9XxDWEL0DOqER92p+gOI+Wnsn+qb X-Google-Smtp-Source: AGHT+IHRZy8SzTYQQLMeBn/QVcFw2JYeH2/DMMV4BdhYEentX+DiRK5DNQiyWbDsOTLdVWxTuOEQKw== X-Received: by 2002:a05:6a21:18d:b0:189:bde9:9cb0 with SMTP id le13-20020a056a21018d00b00189bde99cb0mr6069611pzb.27.1702278646195; Sun, 10 Dec 2023 23:10:46 -0800 (PST) Received: from [192.168.1.7] (172-117-161-177.res.spectrum.com. [172.117.161.177]) by smtp.gmail.com with ESMTPSA id si7-20020a17090b528700b00286e9f15f21sm6204942pjb.12.2023.12.10.23.10.45 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Sun, 10 Dec 2023 23:10:45 -0800 (PST) Message-ID: <7b17c99d-6e4b-43b3-af93-993901a3a4ea@gmail.com> Date: Sun, 10 Dec 2023 23:10:44 -0800 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: bug#67061: [PATCH] Improve syntax highlighting for python-ts-mode Content-Language: en-US To: Dmitry Gutov , Denis Zubarev , Eli Zaretskii 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> From: Yuan Fu In-Reply-To: <0c6e2e14-b494-a8cb-3893-ffb39577baf9@gutov.dev> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit X-Spam-Score: -0.0 (/) X-Debbugs-Envelope-To: 67061 Cc: "67061@debbugs.gnu.org" <67061@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: -1.0 (-) On 12/10/23 4:00 PM, Dmitry Gutov wrote: > On 10/12/2023 14:04, Denis Zubarev wrote: >>  > Arguably, the last 2 lines are "variable references" rather than >> definitions >> `var := 3`  is assignment expressions. It allows variable assignments >> to occur inside of larger expressions. For example `if (match := >> pattern.search(data)) is not None:`. >> It mostly used to define new variables and act on them if some >> condition is met. > > Ah, thanks! This feature is newer than my working experience with Python. > >> My rationale for `var *= 3` was that it is shorthand for `var = var * >> 3` and currently the `var` on the left hand side is fontified with >> `font-lock-variable-name-face`. > > I think ideally, in cases when "var =" is not the first occurrence for > the same var in a given scope, we wouldn't highlight it as > "definition" either. > > Speaking of font-lock-variable-use-face, I think it would be most > useful if it helped with noticing typos (meaning, it would only be > used for references to variables that have been defined previously, > according to the rules of the language). But for that we still need to > implement the scope tracking. And before that, well, my personal > preference is not to highlight the references at all, but opinions > differ. Personally I regard the "assignment" feature to mean "any assignment", rather than definition. But that's just me. For my personal taste, I would make *= always highlight its LHS. >> I wanted shorthand form to be consistent with the full form. >> Your point makes sense too, I don't have strong opinion about this. >> Also I'm not sure now about `var[ii] = 1`, since it is actually >> accessing the list or dictionary element and >> `font-lock-variable-use-face` may suit better here. > > Yep. To sum up, I would add highlighting to your examples `for var in > range(3)` and `var := 3` but not others. IMHO, for the assignment feature, we should stick to the narrow definition of assignments, ie, anything that looks like "a = b". Things like "for var in range(3)" could be highlighted by variable feature, I think. And for var[i] = 1, I don't know either. I think I decided to not fontify it back then, but it wasn't based on any strong reasoning. >> Question about new changes. >> Should I push them to this patch and provide description of new changes, >> or it would be better to wait for review and send them as new patch? > > I suggest sending an updated patch for review in this case, but you > can also wait for Yuan's comments first. > If you can consolidate everything into a single patch, and pair it with a summary, that'll be a great aid to me. Also, in case you don't know yet, we follow certain format for commit messages, you can check it out in the CONTRIBUTE file, "Commit messages" section. Yuan From debbugs-submit-bounces@debbugs.gnu.org Mon Dec 11 07:02:32 2023 Received: (at 67061) by debbugs.gnu.org; 11 Dec 2023 12:02:32 +0000 Received: from localhost ([127.0.0.1]:52811 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rCezY-0005yv-Ch for submit@debbugs.gnu.org; Mon, 11 Dec 2023 07:02:32 -0500 Received: from out3-smtp.messagingengine.com ([66.111.4.27]:56287) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rCezV-0005yg-VW for 67061@debbugs.gnu.org; Mon, 11 Dec 2023 07:02:31 -0500 Received: from compute1.internal (compute1.nyi.internal [10.202.2.41]) by mailout.nyi.internal (Postfix) with ESMTP id F225E5C01EA; Mon, 11 Dec 2023 07:02:09 -0500 (EST) Received: from mailfrontend1 ([10.202.2.162]) by compute1.internal (MEProxy); Mon, 11 Dec 2023 07:02:09 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gutov.dev; h=cc :cc:content-transfer-encoding:content-type:content-type:date :date:from:from:in-reply-to:in-reply-to:message-id:mime-version :references:reply-to:sender:subject:subject:to:to; s=fm3; t= 1702296129; x=1702382529; bh=ngzTQUzREoX6QiBZm9KA5VUM9zq0VhoCLek H5YcWwos=; b=vnRV36IVRAtm1lhYxVWCCUURSwmQud4/bR3Oacb7CvpldsQRW19 UUsxPaiG3RVJFlpKt55R0PbEUciYxr5LYissQHR/tZ6bf/l+inKKEiPzgYKWwx+M TRrmfoQ1n/7PU3HepV+Ic7Vowd8V1qM3KbPcqvJdImehkpPacq1kwgVis14hAB3P tWut/42pKG2h/7wshnq1IvXQzh6xhrHuxIE9QUZH1IxAVuK6PLAUaL5W21l2Kb53 4mgvhgJ+J86L3/68LkaM1ao9S5lGatgxnnCZBr5PZXStF4MyPDgklJ9vo1ydyYn8 /O4zCEOB/ZJ6UA6dWmbGu2Vx8+InFT+qrvw== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:cc:content-transfer-encoding :content-type:content-type:date:date:feedback-id:feedback-id :from:from:in-reply-to:in-reply-to:message-id:mime-version :references:reply-to:sender:subject:subject:to:to:x-me-proxy :x-me-proxy:x-me-sender:x-me-sender:x-sasl-enc; s=fm1; t= 1702296129; x=1702382529; bh=ngzTQUzREoX6QiBZm9KA5VUM9zq0VhoCLek H5YcWwos=; b=t4/jQ7/PkoXQc3Ue6wbk+TlKqd6GW2dcAKk6HuPXgcT/XXY+Qvy oJmAfzm+zDenkHBHrMmmMSSZJ7/bvz1pKUfF/pqcjuZnW/DEur2yEQ2MY/8ZNU96 xyS1rEZLMZCRJ8yFzokKOrcnY3uEVLMvAvPFsn3lI6hicz1npXaLw1Kbm/44qD6E TZ0TsPPMD9FHANoJdy1roXRk0Stkw0U01l2nviso5G3B1grJVR5saHteoCAO/56J NDayTIH9CHcAyjg8kFGWNJAQQzrK6/sy/xcWepAqzQgBFzUiEvCc0HPLrf/RR/Eu Qcuca6OuorkaSpI6Ii81UNIFtRFHHjMlXaQ== X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedvkedrudelvddgfeeiucetufdoteggodetrfdotf fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfqfgfvpdfurfetoffkrfgpnffqhgen uceurghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmne cujfgurhepkfffgggfuffvvehfhfgjtgfgsehtjeertddtfeejnecuhfhrohhmpeffmhhi thhrhicuifhuthhovhcuoegumhhithhrhiesghhuthhovhdruggvvheqnecuggftrfgrth htvghrnhepiefgteevheevveffheeltdeukeeiieekueefgedugfefgefhudelgfefveel vdevnecuvehluhhsthgvrhfuihiivgeptdenucfrrghrrghmpehmrghilhhfrhhomhepug hmihhtrhihsehguhhtohhvrdguvghv X-ME-Proxy: Feedback-ID: i0e71465a:Fastmail Received: by mail.messagingengine.com (Postfix) with ESMTPA; Mon, 11 Dec 2023 07:02:06 -0500 (EST) Message-ID: Date: Mon, 11 Dec 2023 14:02:01 +0200 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.13.0 Subject: Re: bug#67061: [PATCH] Improve syntax highlighting for python-ts-mode Content-Language: en-US To: Yuan Fu , Denis Zubarev , Eli Zaretskii 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> From: Dmitry Gutov In-Reply-To: <7b17c99d-6e4b-43b3-af93-993901a3a4ea@gmail.com> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-Spam-Score: -2.9 (--) X-Debbugs-Envelope-To: 67061 Cc: "67061@debbugs.gnu.org" <67061@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.9 (---) On 11/12/2023 09:10, Yuan Fu wrote: >>> I wanted shorthand form to be consistent with the full form. >>> Your point makes sense too, I don't have strong opinion about this. >>> Also I'm not sure now about `var[ii] = 1`, since it is actually >>> accessing the list or dictionary element and >>> `font-lock-variable-use-face` may suit better here. >> >> Yep. To sum up, I would add highlighting to your examples `for var in >> range(3)` and `var := 3` but not others. > IMHO, for the assignment feature, we should stick to the narrow > definition of assignments, ie, anything that looks like "a = b". Things > like "for var in range(3)" could be highlighted by variable feature, I > think. I think "for var in range(3)" should be part of the "definition" feature because a variable is defined there. Alongside parameters. From debbugs-submit-bounces@debbugs.gnu.org Mon Dec 11 20:18:27 2023 Received: (at 67061) by debbugs.gnu.org; 12 Dec 2023 01:18:27 +0000 Received: from localhost ([127.0.0.1]:55046 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rCrPm-0003dt-1P for submit@debbugs.gnu.org; Mon, 11 Dec 2023 20:18:27 -0500 Received: from forward100c.mail.yandex.net ([178.154.239.211]:39114) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rCrPh-0003dg-TH for 67061@debbugs.gnu.org; Mon, 11 Dec 2023 20:18:24 -0500 Received: from mail-nwsmtp-mxback-production-main-57.iva.yp-c.yandex.net (mail-nwsmtp-mxback-production-main-57.iva.yp-c.yandex.net [IPv6:2a02:6b8:c0c:16a0:0:640:1498:0]) by forward100c.mail.yandex.net (Yandex) with ESMTP id 15517608EE; Tue, 12 Dec 2023 04:18:04 +0300 (MSK) Received: from mail.yandex.ru (2a02:6b8:c0c:215:0:640:419b:0 [2a02:6b8:c0c:215:0:640:419b:0]) by mail-nwsmtp-mxback-production-main-57.iva.yp-c.yandex.net (mxback/Yandex) with HTTP id 2IWtAf0O7W20-XUjnApcL; Tue, 12 Dec 2023 04:18:03 +0300 X-Yandex-Fwd: 1 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yandex.ru; s=mail; t=1702343883; bh=sLF/NiWy0cp12EJTTfxntotVmb+6Rou44ruIkIS1OpI=; h=Message-Id:References:Date:Cc:Subject:In-Reply-To:To:From; b=O3LgLLOlWt7ZbpGTscCBs1z1rnKvbQSSR604QUtAekcz7TAvg9j1qUcMBwR6LFhvK cXDrVyvMifNO4JwVe3bJS7H83qxJ0frnecrPVmnspQ8zIt+tSp7xFxoT5W9dugaGiB ObdudSoaOPxiZ5MR5m0JIEsG2XIIQ9Zm0cMVyUsI= Authentication-Results: mail-nwsmtp-mxback-production-main-57.iva.yp-c.yandex.net; dkim=pass header.i=@yandex.ru Received: by pyij2bcyucz6ldu4.iva.yp-c.yandex.net with HTTP; Tue, 12 Dec 2023 04:18:02 +0300 From: Denis Zubarev To: Yuan Fu , Dmitry Gutov , Eli Zaretskii In-Reply-To: <7b17c99d-6e4b-43b3-af93-993901a3a4ea@gmail.com> 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> Subject: Re: bug#67061: [PATCH] Improve syntax highlighting for python-ts-mode MIME-Version: 1.0 X-Mailer: Yamail [ http://yandex.ru ] 5.0 Date: Tue, 12 Dec 2023 04:18:02 +0300 Message-Id: <95071702343720@mail.yandex.ru> Content-Type: multipart/mixed; boundary="----==--bound.277746.pyij2bcyucz6ldu4.iva.yp-c.yandex.net" X-Spam-Score: -0.0 (/) X-Debbugs-Envelope-To: 67061 Cc: "67061@debbugs.gnu.org" <67061@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: -1.0 (-) ------==--bound.277746.pyij2bcyucz6ldu4.iva.yp-c.yandex.net Content-Transfer-Encoding: base64 Content-Type: text/html; charset=utf-8 PGRpdj48ZGl2Pll1YW4gYW5kIERtaXRyeSwgdGhhbmsgeW91IGZvciByZXZpZXcgYW5kIHN1Z2dl c3Rpb25zLjwvZGl2PjxkaXY+wqA8L2Rpdj48ZGl2PiZndDsgQ2FuIHdlIGRvIHRoaXMgaW5zdGVh ZDogaW4gcHl0aG9uLS10cmVlc2l0LWZvbnRpZnktc3RyaW5nLCB3ZSBjaGVjayBpZjwvZGl2Pjxk aXY+wqAgc3RyaW5nLWludGVycG9sYXRpb24gZmVhdHVyZSBpcyBlbmFibGVkLCBpZiBpdCBpcywg Zm9udGlmeSBzdHJpbmdfc3RhcnQsPC9kaXY+PGRpdj7CoCBzdHJpbmdfY29udGVudCBhbmQgc3Ry aW5nX2VuZCBvbmx5OyBpZiBub3QsIGZvbnRpZnkgdGhlIHdob2xlIHN0cmluZy48L2Rpdj48ZGl2 PsKgPC9kaXY+PGRpdj5Eb25lLjwvZGl2PjxkaXY+RW5hYmxlIGludGVycG9sYXRpb24gaGlnaGxp Z2h0aW5nIG9ubHkgaWYgJ3N0cmluZy1pbnRlcnBvbGF0aW9uIGlzIHByZXNlbnRlZCBvbiB0aGUg dGhpcmQgbGV2ZWwgb2YgdHJlZXNpdC1mb250LWxvY2stZmVhdHVyZS1saXN0LjwvZGl2PjxkaXY+ UGVyc29uYWxseSwgSWYgSSBzYXcgYSBmLXN0cmluZyB3aXRoIGFuIGludGVycG9sYXRpb24gZm9u dGlmaWVkIGFzIHN0cmluZywgSSB3b3VsZCBhc3N1bWUgdGhhdCBpdCBpcyBidWcuPC9kaXY+PGRp dj5DbGVhcmx5IGl0IGlzIG5vdCBhIHN0cmluZywgc28gaXQgc2hvdWxkIGJlIGhpZ2hsaWdodGVk IGRpc3RpbmN0bHkuPC9kaXY+PGRpdj5CdXQgaWYgaXQgaXMgYSBjb252ZW50aW9uIGFjcm9zcyBh bGwgbGFuZ3VhZ2VzLCB3ZSBzaG91bGQgZm9sbG93IGl0LjwvZGl2PjxkaXY+wqA8L2Rpdj48ZGl2 PiZndDsgSSB0aGluayAiZm9yIHZhciBpbiByYW5nZSgzKSIgc2hvdWxkIGJlIHBhcnQgb2YgdGhl ICJkZWZpbml0aW9uIiBmZWF0dXJlPC9kaXY+PGRpdj7CoCBiZWNhdXNlIGEgdmFyaWFibGUgaXMg ZGVmaW5lZCB0aGVyZS4gQWxvbmdzaWRlIHBhcmFtZXRlcnMuPC9kaXY+PGRpdj7CoDwvZGl2Pjxk aXY+SSBhZGRlZCBpdCB0byBkZWZpbml0aW9ucy48L2Rpdj48ZGl2Pk15IHRob3VnaHRzIGFib3V0 IHBhcmFtZXRlcnMuIEkgc3RhcnRlZCB0byBleHRlbmQgcnVsZXMgZm9yIHRoZW0gc2luY2UgdGhl eSBhcmUgdmVyeSBsaW1pdGVkIG5vdy48L2Rpdj48ZGl2PkJ1dCBJJ20gbm90IHN1cmUgd2hhdCBm YWNlIHRvIHVzZSBmb3IgdGhlbS48L2Rpdj48ZGl2Pkkgd291bGQgbGlrZSB0byBub3QgdXNlIHRo ZSBzYW1lIGZhY2UgYXMgZm9yIGFzc2lnbm1lbnRzLCBiZWNhdXNlIEknZCB3YW50IHRvIGhpZ2hs aWdodCB0aGVtIGRpZmZlcmVudGx5LjwvZGl2PjxkaXY+SXQgc2VlbXMgdGhhdCB0aGVyZSBpcyBu byBhcHByb3ByaWF0ZSBmYWNlIGluIGZvbnQtbG9jay5lbCwgc28gSSBlbmRlZCB1cCBjcmVhdGlu ZyBteSBvd24gZmFjZSBpbiBteSBjb25maWcuPC9kaXY+PGRpdj5Eb2VzIGl0IG1ha2Ugc2Vuc2Ug dG8gYWRkIG5ldyBmYWNlIGZvciBwYXJhbWV0ZXJzIGluIGZvbnQtbG9jay5lbD88L2Rpdj48ZGl2 Pk9yIGl0IGlzIHRvbyBzbWFsbCBmZWF0dXJlIGZvciBpdHMgb3duIGZhY2U/PC9kaXY+PGRpdj5J IGFsc28gYXBwbHkgdGhpcyBmYWNlIGZvciBrZXl3b3JkIGFyZ3VtZW50IGluIGZ1bmN0aW9uIGNh bGxzLiDCoDwvZGl2PjxkaXY+wqA8L2Rpdj48ZGl2PsKgPC9kaXY+PGRpdj5TdW1tYXJ5IGZvciBh bGwgY2hhbmdlcyBpbiB0aGUgcGF0Y2guPC9kaXY+PGRpdj7CoDwvZGl2PjxkaXY+ZGVmaW5pdGlv biBmZWF0dXJlOjwvZGl2PjxkaXY+YGZvciB2YXIgaW4gcmFuZ2UoMylgIGhpZ2hsaWdodCB2YXIg YXMgZm9udC1sb2NrLXZhcmlhYmxlLW5hbWUtZmFjZTwvZGl2PjxkaXY+wqA8L2Rpdj48ZGl2PsKg PC9kaXY+PGRpdj5hc3NpZ25tZW50IGZlYXR1cmU6PC9kaXY+PGRpdj52YXIgOj0gMyAobmFtZWRf ZXhwcmVzc2lvbik8L2Rpdj48ZGl2PnZhciAqPSAzIChhdWdtZW50ZWRfYXNzaWdubWVudCk8L2Rp dj48ZGl2PkhpZ2hsaWdodCB2YXIgYXMgZm9udC1sb2NrLXZhcmlhYmxlLW5hbWUtZmFjZS48L2Rp dj48ZGl2PsKgPC9kaXY+PGRpdj5NYWtlIGxpc3Rfc3BsYXRfcGF0dGVybiBxdWVyeSBtb3JlIHBy ZWNpc2UuPC9kaXY+PGRpdj5saXN0X3NwbGF0X3BhdHRlcm4gbWF5IGFwcGVhciBub3Qgb25seSBp biBhc3NpZ25tZW50czogdmFyLCAqcmVzdCA9IGNhbGwoKSw8L2Rpdj48ZGl2PmJ1dCBpbiB0aGUg cGFyYW1ldGVyIGxpc3QgdG9vOiBkZWYgZigqYXJncykuPC9kaXY+PGRpdj5IaWdobGlnaHQgYXJn cyBvbmx5IGZvciB0aGUgZmlyc3QgY2FzZSBpbiBhc3NpZ25tZW50IGZlYXR1cmUuPC9kaXY+PGRp dj7CoDwvZGl2PjxkaXY+wqA8L2Rpdj48ZGl2PnR5cGUgZmVhdHVyZTo8L2Rpdj48ZGl2PkZvbnRp ZnkgYnVpbHQtaW5zIChkaWN0LGxpc3QsZXRjLikgYXMgdHlwZXMgd2hlbiB0aGV5IGFyZSB1c2Vk IGluIHR5cGUgaGludHMuPC9kaXY+PGRpdj5zdXBwb3J0IG5lc3RlZCB1bmlvbiB0eXBlcywgZm9y IGV4YW1wbGUgYEx2bDEgfCBMdmwyW0x2bDNbTHZsM10sIEx2bDJdYC48L2Rpdj48ZGl2PlRoaXMg c3RydWN0dXJlIGlzIHJlcHJlc2VudGVkIHZpYSBuZXN0aW5nIGJpbmFyeV9vcGVyYXRvciBhbmQg c3Vic2NyaXB0IG5vZGVzIGluIHRoZSBncmFtbWFyLjwvZGl2PjxkaXY+RnVuY3Rpb24gcHl0aG9u LS10cmVlc2l0LWZvbnRpZnktdW5pb24tdHlwZXMgaXRlcmF0ZXMgb3ZlciBhbGwgY2hpbGRyZW4g YW5kIGhpZ2hsaWdodCBpZGVudGlmaWVyIG5vZGVzLjwvZGl2PjxkaXY+wqA8L2Rpdj48ZGl2PkZv bnRpZnkgYmFzZSBjbGFzcyBuYW1lcyBpbiB0aGUgY2xhc3MgZGVmaW5pdGlvbjogY2xhc3MgVGVt cChCYXNlMSwgcGFjazAuQmFzZTIpOjwvZGl2PjxkaXY+Rm9udGlmeSBjbGFzcyBwYXR0ZXJucyBp biBjYXNlIHN0YXRlbWVudDogY2FzZSBbVGVtcEMoKSB8IGJ5dGVzKGIpXTo8L2Rpdj48ZGl2Pkhp Z2hsaWdodCB0aGUgc2Vjb25kIGFyZ3VtZW50IGFzIGEgdHlwZSBpbiBpc2luc3RhbmNlL2lzc3Vi Y2xhc3MgY2FsbDo8L2Rpdj48ZGl2PmlzaW5zdGFuY2UodmFyMiwgKHN0ciwgZGljdCwgVHlwZTEp KTsgaXNzdWJjbGFzcyh2YXIxLCBpbnR8c3RyKTwvZGl2PjxkaXY+wqA8L2Rpdj48ZGl2PkZvciBh bGwgZG90dGVkIG5hbWVzIG9mIGEgdHlwZSBoaWdobGlnaHQgb25seSB0aGUgbGFzdCBwYXJ0IG9m IHRoZSBuYW1lLDwvZGl2PjxkaXY+ZS5nLiBjb2xsZWN0aW9ucy5hYmMuSXRlcmF0b3IuPC9kaXY+ PGRpdj7CoDwvZGl2PjxkaXY+wqA8L2Rpdj48ZGl2PmRlY29yYXRvciBmZWF0dXJlOjwvZGl2Pjxk aXY+SGlnaGxpZ2h0IGRvdHRlZCBuYW1lczogQHB5dGVzdC5tYXJrLnNraXA8L2Rpdj48ZGl2PkZ1 bmN0aW9uIHB5dGhvbi0tdHJlZXNpdC1mb250aWZ5LWRvdHRlZC1kZWNvcmF0b3IgaXRlcmF0ZXMg b3ZlciBhbGwgbmVzdGVkIGF0dHJpYnV0ZSBub2RlcyBhbmQgaGlnaGxpZ2h0IGlkZW50aWZpZXIg bm9kZXMuPC9kaXY+PGRpdj7CoDwvZGl2PjxkaXY+V2hlbiBmb250LWxvY2stbGV2ZWwgaXMgc2V0 IDQsIGBza2lwYCBoYWQgZnVuY3Rpb24tY2FsbCBmYWNlIGluOiBAcHl0ZXN0Lm1hcmsuc2tpcChy ZWFzb249J3QnKTwvZGl2PjxkaXY+QWRkIGA6b3ZlcnJpZGUgdGAgdG8gZGVjb3JhdG9yIGZlYXR1 cmUgdG8gb3ZlcnJpZGUgZnVuY3Rpb24tY2FsbCBmYWNlLjwvZGl2PjxkaXY+wqA8L2Rpdj48ZGl2 PsKgPC9kaXY+PGRpdj5zdHJpbmcgZmVhdHVyZTo8L2Rpdj48ZGl2PkVuYWJsZSBpbnRlcnBvbGF0 aW9uIGhpZ2hsaWdodGluZyBvbmx5IGlmIHN0cmluZy1pbnRlcnBvbGF0aW9uIGlzIHByZXNlbnRl ZCBvbiB0aGUgdGhpcmQgbGV2ZWwgb2YgdHJlZXNpdC1mb250LWxvY2stZmVhdHVyZS1saXN0Ljwv ZGl2PjxkaXY+Rml4IGZvbnRpZmljYXRpb24gb2Ygc3RyaW5ncyBpbnNpZGUgb2YgZi1zdHJpbmdz IGludGVycG9sYXRpb24sPC9kaXY+PGRpdj5lLmcuIGZvciBmImJlZyB7J25lc3RlZCd9IiAtICdu ZXN0ZWQnIHdhcyBub3QgZm9udGlmaWVkIGFzIHN0cmluZy48L2Rpdj48ZGl2PsKgPC9kaXY+PGRp dj7CoDwvZGl2PjxkaXY+ZnVuY3Rpb24gZmVhdHVyZTo8L2Rpdj48ZGl2PkRvIG5vdCBvdmVycmlk ZSB0aGUgZmFjZSBvZiBidWlsdGluIGZ1bmN0aW9ucyAoYWxsLCBieXRlcyBldGMuKSB3aXRoPC9k aXY+PGRpdj50aGUgZnVuY3Rpb24gY2FsbCBmYWNlPC9kaXY+PGRpdj7CoDwvZGl2PjxkaXY+wqA8 L2Rpdj48ZGl2PmtleXdvcmQgZmVhdHVyZTo8L2Rpdj48ZGl2PkFkZCAiaXMgbm90IsKgIHRvIHRo ZSBgcHl0aG9uLS10cmVlc2l0LWtleXdvcmRzYCBsaXN0LjwvZGl2PjxkaXY+wqA8L2Rpdj48ZGl2 PsKgPC9kaXY+PC9kaXY+PGRpdj7CoDwvZGl2PjxkaXY+MTEuMTIuMjAyMywgMTA6MTAsICJZdWFu IEZ1IiAmbHQ7Y2Fzb3VyaUBnbWFpbC5jb20mZ3Q7OjwvZGl2PjxibG9ja3F1b3RlPjxwPjxiciAv PjxiciAvPk9uIDEyLzEwLzIzIDQ6MDAgUE0sIERtaXRyeSBHdXRvdiB3cm90ZTo8L3A+PGJsb2Nr cXVvdGU+wqBPbiAxMC8xMi8yMDIzIDE0OjA0LCBEZW5pcyBadWJhcmV2IHdyb3RlOjxibG9ja3F1 b3RlPsKgwqAmZ3Q7IEFyZ3VhYmx5LCB0aGUgbGFzdCAyIGxpbmVzIGFyZSAidmFyaWFibGUgcmVm ZXJlbmNlcyIgcmF0aGVyIHRoYW48YnIgLz7CoGRlZmluaXRpb25zPGJyIC8+wqBgdmFyIDo9IDNg IMKgaXMgYXNzaWdubWVudCBleHByZXNzaW9ucy4gSXQgYWxsb3dzIHZhcmlhYmxlIGFzc2lnbm1l bnRzPGJyIC8+wqB0byBvY2N1ciBpbnNpZGUgb2YgbGFyZ2VyIGV4cHJlc3Npb25zLiBGb3IgZXhh bXBsZSBgaWYgKG1hdGNoIDo9PGJyIC8+wqBwYXR0ZXJuLnNlYXJjaChkYXRhKSkgaXMgbm90IE5v bmU6YC48YnIgLz7CoEl0IG1vc3RseSB1c2VkIHRvIGRlZmluZSBuZXcgdmFyaWFibGVzIGFuZCBh Y3Qgb24gdGhlbSBpZiBzb21lPGJyIC8+wqBjb25kaXRpb24gaXMgbWV0LjwvYmxvY2txdW90ZT48 YnIgLz7CoEFoLCB0aGFua3MhIFRoaXMgZmVhdHVyZSBpcyBuZXdlciB0aGFuIG15IHdvcmtpbmcg ZXhwZXJpZW5jZSB3aXRoIFB5dGhvbi48YnIgLz7CoDxibG9ja3F1b3RlPsKgTXkgcmF0aW9uYWxl IGZvciBgdmFyICo9IDNgIHdhcyB0aGF0IGl0IGlzIHNob3J0aGFuZCBmb3IgYHZhciA9IHZhciAq PGJyIC8+wqAzYCBhbmQgY3VycmVudGx5IHRoZSBgdmFyYCBvbiB0aGUgbGVmdCBoYW5kIHNpZGUg aXMgZm9udGlmaWVkIHdpdGg8YnIgLz7CoGBmb250LWxvY2stdmFyaWFibGUtbmFtZS1mYWNlYC48 L2Jsb2NrcXVvdGU+PGJyIC8+wqBJIHRoaW5rIGlkZWFsbHksIGluIGNhc2VzIHdoZW4gInZhciA9 IiBpcyBub3QgdGhlIGZpcnN0IG9jY3VycmVuY2UgZm9yPGJyIC8+wqB0aGUgc2FtZSB2YXIgaW4g YSBnaXZlbiBzY29wZSwgd2Ugd291bGRuJ3QgaGlnaGxpZ2h0IGl0IGFzPGJyIC8+wqAiZGVmaW5p dGlvbiIgZWl0aGVyLjxiciAvPjxiciAvPsKgU3BlYWtpbmcgb2YgZm9udC1sb2NrLXZhcmlhYmxl LXVzZS1mYWNlLCBJIHRoaW5rIGl0IHdvdWxkIGJlIG1vc3Q8YnIgLz7CoHVzZWZ1bCBpZiBpdCBo ZWxwZWQgd2l0aCBub3RpY2luZyB0eXBvcyAobWVhbmluZywgaXQgd291bGQgb25seSBiZTxiciAv PsKgdXNlZCBmb3IgcmVmZXJlbmNlcyB0byB2YXJpYWJsZXMgdGhhdCBoYXZlIGJlZW4gZGVmaW5l ZCBwcmV2aW91c2x5LDxiciAvPsKgYWNjb3JkaW5nIHRvIHRoZSBydWxlcyBvZiB0aGUgbGFuZ3Vh Z2UpLiBCdXQgZm9yIHRoYXQgd2Ugc3RpbGwgbmVlZCB0bzxiciAvPsKgaW1wbGVtZW50IHRoZSBz Y29wZSB0cmFja2luZy4gQW5kIGJlZm9yZSB0aGF0LCB3ZWxsLCBteSBwZXJzb25hbDxiciAvPsKg cHJlZmVyZW5jZSBpcyBub3QgdG8gaGlnaGxpZ2h0IHRoZSByZWZlcmVuY2VzIGF0IGFsbCwgYnV0 IG9waW5pb25zPGJyIC8+wqBkaWZmZXIuPC9ibG9ja3F1b3RlPjxwPlBlcnNvbmFsbHkgSSByZWdh cmQgdGhlICJhc3NpZ25tZW50IiBmZWF0dXJlIHRvIG1lYW4gImFueSBhc3NpZ25tZW50Iiw8YnIg Lz5yYXRoZXIgdGhhbiBkZWZpbml0aW9uLiBCdXQgdGhhdCdzIGp1c3QgbWUuIEZvciBteSBwZXJz b25hbCB0YXN0ZSwgSTxiciAvPndvdWxkIG1ha2UgKj0gYWx3YXlzIGhpZ2hsaWdodCBpdHMgTEhT LjwvcD48YmxvY2txdW90ZT48YmxvY2txdW90ZT7CoEkgd2FudGVkIHNob3J0aGFuZCBmb3JtIHRv IGJlIGNvbnNpc3RlbnQgd2l0aCB0aGUgZnVsbCBmb3JtLjxiciAvPsKgWW91ciBwb2ludCBtYWtl cyBzZW5zZSB0b28sIEkgZG9uJ3QgaGF2ZSBzdHJvbmcgb3BpbmlvbiBhYm91dCB0aGlzLjxiciAv PsKgQWxzbyBJJ20gbm90IHN1cmUgbm93IGFib3V0IGB2YXJbaWldID0gMWAsIHNpbmNlIGl0IGlz IGFjdHVhbGx5PGJyIC8+wqBhY2Nlc3NpbmcgdGhlIGxpc3Qgb3IgZGljdGlvbmFyeSBlbGVtZW50 IGFuZDxiciAvPsKgYGZvbnQtbG9jay12YXJpYWJsZS11c2UtZmFjZWAgbWF5IHN1aXQgYmV0dGVy IGhlcmUuPC9ibG9ja3F1b3RlPjxiciAvPsKgWWVwLiBUbyBzdW0gdXAsIEkgd291bGQgYWRkIGhp Z2hsaWdodGluZyB0byB5b3VyIGV4YW1wbGVzIGBmb3IgdmFyIGluPGJyIC8+wqByYW5nZSgzKWAg YW5kIGB2YXIgOj0gM2AgYnV0IG5vdCBvdGhlcnMuPC9ibG9ja3F1b3RlPjxwPklNSE8sIGZvciB0 aGUgYXNzaWdubWVudCBmZWF0dXJlLCB3ZSBzaG91bGQgc3RpY2sgdG8gdGhlIG5hcnJvdzxiciAv PmRlZmluaXRpb24gb2YgYXNzaWdubWVudHMsIGllLCBhbnl0aGluZyB0aGF0IGxvb2tzIGxpa2Ug ImEgPSBiIi4gVGhpbmdzPGJyIC8+bGlrZSAiZm9yIHZhciBpbiByYW5nZSgzKSIgY291bGQgYmUg aGlnaGxpZ2h0ZWQgYnkgdmFyaWFibGUgZmVhdHVyZSwgSTxiciAvPnRoaW5rLjxiciAvPjxiciAv PkFuZCBmb3IgdmFyW2ldID0gMSwgSSBkb24ndCBrbm93IGVpdGhlci4gSSB0aGluayBJIGRlY2lk ZWQgdG8gbm90PGJyIC8+Zm9udGlmeSBpdCBiYWNrIHRoZW4sIGJ1dCBpdCB3YXNuJ3QgYmFzZWQg b24gYW55IHN0cm9uZyByZWFzb25pbmcuPC9wPjxibG9ja3F1b3RlPjxibG9ja3F1b3RlPsKgUXVl c3Rpb24gYWJvdXQgbmV3IGNoYW5nZXMuPGJyIC8+wqBTaG91bGQgSSBwdXNoIHRoZW0gdG8gdGhp cyBwYXRjaCBhbmQgcHJvdmlkZSBkZXNjcmlwdGlvbiBvZiBuZXcgY2hhbmdlcyw8YnIgLz7CoG9y IGl0IHdvdWxkIGJlIGJldHRlciB0byB3YWl0IGZvciByZXZpZXcgYW5kIHNlbmQgdGhlbSBhcyBu ZXcgcGF0Y2g/PC9ibG9ja3F1b3RlPjxiciAvPsKgSSBzdWdnZXN0IHNlbmRpbmcgYW4gdXBkYXRl ZCBwYXRjaCBmb3IgcmV2aWV3IGluIHRoaXMgY2FzZSwgYnV0IHlvdTxiciAvPsKgY2FuIGFsc28g d2FpdCBmb3IgWXVhbidzIGNvbW1lbnRzIGZpcnN0LjxiciAvPsKgPC9ibG9ja3F1b3RlPjxwPklm IHlvdSBjYW4gY29uc29saWRhdGUgZXZlcnl0aGluZyBpbnRvIGEgc2luZ2xlIHBhdGNoLCBhbmQg cGFpciBpdCB3aXRoPGJyIC8+YSBzdW1tYXJ5LCB0aGF0J2xsIGJlIGEgZ3JlYXQgYWlkIHRvIG1l LiBBbHNvLCBpbiBjYXNlIHlvdSBkb24ndCBrbm93PGJyIC8+eWV0LCB3ZSBmb2xsb3cgY2VydGFp biBmb3JtYXQgZm9yIGNvbW1pdCBtZXNzYWdlcywgeW91IGNhbiBjaGVjayBpdCBvdXQ8YnIgLz5p biB0aGUgQ09OVFJJQlVURSBmaWxlLCAiQ29tbWl0IG1lc3NhZ2VzIiBzZWN0aW9uLjxiciAvPjxi ciAvPll1YW48YnIgLz7CoDwvcD48L2Jsb2NrcXVvdGU+ ------==--bound.277746.pyij2bcyucz6ldu4.iva.yp-c.yandex.net Content-Disposition: attachment; filename="0003-Improve-syntax-highlighting-for-python-ts-mode.patch" Content-Transfer-Encoding: base64 Content-Type: text/x-diff; name="0003-Improve-syntax-highlighting-for-python-ts-mode.patch" RnJvbSBlNWVjOGYzMGM0OTZjN2YyODBlMzIwY2FiOWIwMTMxMTdjOGI0MTM1IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBEZW5pcyBadWJhcmV2IDxkdnp1YmFyZXZAeWFuZGV4LnJ1PgpE YXRlOiBTYXQsIDExIE5vdiAyMDIzIDA0OjU1OjQ0ICswMzAwClN1YmplY3Q6IFtQQVRDSF0gSW1w cm92ZSBzeW50YXggaGlnaGxpZ2h0aW5nIGZvciBweXRob24tdHMtbW9kZQoKRml4IGZvbnRpZmlj YXRpb24gb2Ygc3RyaW5ncyBpbnNpZGUgb2YgZi1zdHJpbmdzIGludGVycG9sYXRpb24sIGUuZy4g Zm9yCmYiYmVnIHsnbmVzdGVkJ30iIC0gJ25lc3RlZCcgd2FzIG5vdCBmb250aWZpZWQgYXMgc3Ry aW5nLiAgRG8gbm90Cm92ZXJyaWRlIHRoZSBmYWNlIG9mIGJ1aWx0aW4gZnVuY3Rpb25zIChhbGws IGJ5dGVzIGV0Yy4pIHdpdGggdGhlCmZ1bmN0aW9uIGNhbGwgZmFjZS4gIEFkZCBtaXNzaW5nIGFz c2lnbm1lbnQgZXhwcmVzc2lvbnMgKDo9ICo9KS4KSGlnaGxpZ2h0IHZhcmlhYmxlcyBkZWZpbmVk IGluIGZvciBsb29wIChmb3IgdmFyMSwgdmFyMiBpbiApLiAgRm9udGlmeQpidWlsdC1pbnMgKGRp Y3QsbGlzdCxldGMuKSBhcyB0eXBlcyB3aGVuIHRoZXkgYXJlIHVzZWQgaW4gdHlwZSBoaW50cy4K SGlnaGxpZ2h0IHVuaW9uIHR5cGVzICh0eXBlMXx0eXBlMikuICBIaWdobGlnaHQgYmFzZSBjbGFz cyBuYW1lcyBpbiB0aGUKY2xhc3MgZGVmaW5pdGlvbi4gIEZvbnRpZnkgY2xhc3MgcGF0dGVybnMg aW4gY2FzZSBzdGF0ZW1lbnQuIEhpZ2hsaWdodAp0aGUgc2Vjb25kIGFyZ3VtZW50IGFzIGEgdHlw ZSBpbiBpc2luc3RhbmNlL2lzc3ViY2xhc3MgY2FsbC4gSGlnaGxpZ2h0CmRvdHRlZCBkZWNvcmF0 b3IgbmFtZXMuCgoqIGxpc3AvcHJvZ21vZGVzL3B5dGhvbi5lbCAocHl0aG9uLS10cmVlc2l0LWtl eXdvcmRzKTogQWRkIGNvbXBvdW5kCmtleXdvcmQgImlzIG5vdCIuCihweXRob24tLXRyZWVzaXQt Zm9udGlmeS1zdHJpbmcpOiBmaXggZi1zdHJpbmcgaW50ZXJwb2xhdGlvbi4gRW5hYmxlCmludGVy cG9sYXRpb24gaGlnaGxpZ2h0aW5nIG9ubHkgaWYgc3RyaW5nLWludGVycG9sYXRpb24gaXMgcHJl c2VudGVkIG9uCnRoZSB0aGlyZCBsZXZlbCBvZiB0cmVlc2l0LWZvbnQtbG9jay1mZWF0dXJlLWxp c3QuCihweXRob24tLXRyZWVzaXQtZm9udGlmeS1zdHJpbmctaW50ZXJwb2xhdGlvbik6IFJlbW92 ZSBmdW5jdGlvbi4KKHB5dGhvbi0tdHJlZXNpdC1mb250aWZ5LXVuaW9uLXR5cGVzKTogRm9udGlm eSBuZXN0ZWQgdW5pb24gdHlwZXMuCihweXRob24tLXRyZWVzaXQtZm9udGlmeS1kb3R0ZWQtZGVj b3JhdG9yKTogRm9udGlmeSBhbGwgcGFydHMgb2YKZG90dGVkIGRlY29yYXRvciBuYW1lLgoocHl0 aG9uLS10cmVlc2l0LXNldHRpbmdzKTogQ2hhbmdlL2FkZCBydWxlcy4KKiB0ZXN0L2xpc3AvcHJv Z21vZGVzL3B5dGhvbi10ZXN0cy5lbCAocHl0aG9uLXRzLXRlc3RzLXdpdGgtdGVtcC1idWZmZXIp OgpmdW5jdGlvbiBmb3Igc2V0dGluZyB1cCB0ZXN0IGJ1ZmZlci4KKHB5dGhvbi10cy1tb2RlLWNv bXBvdW5kLWtleXdvcmRzLWZhY2UpCihweXRob24tdHMtbW9kZS12YXItZm9yLWxvb3AtZmFjZSkK KHB5dGhvbi10cy1tb2RlLW5hbWVkLWFzc2lnbmVtZW50LWZhY2UtMSkKKHB5dGhvbi10cy1tb2Rl LWFzc2lnbmVtZW50LWZhY2UtMikKKHB5dGhvbi10cy1tb2RlLW5lc3RlZC10eXBlcy1mYWNlLTEp CihweXRob24tdHMtbW9kZS11bmlvbi10eXBlcy1mYWNlLTEpCihweXRob24tdHMtbW9kZS11bmlv bi10eXBlcy1mYWNlLTIpCihweXRob24tdHMtbW9kZS10eXBlcy1mYWNlLTEpCihweXRob24tdHMt bW9kZS10eXBlcy1mYWNlLTIpCihweXRob24tdHMtbW9kZS10eXBlcy1mYWNlLTMpCihweXRob24t dHMtbW9kZS1pc2luc3RhbmNlLXR5cGUtZmFjZS0xKQoocHl0aG9uLXRzLW1vZGUtaXNpbnN0YW5j ZS10eXBlLWZhY2UtMikKKHB5dGhvbi10cy1tb2RlLXN1cGVyY2xhc3MtdHlwZS1mYWNlKQoocHl0 aG9uLXRzLW1vZGUtY2xhc3MtcGF0dGVybnMtZmFjZSkKKHB5dGhvbi10cy1tb2RlLWRvdHRlZC1k ZWNvcmF0b3ItZmFjZS0xKQoocHl0aG9uLXRzLW1vZGUtZG90dGVkLWRlY29yYXRvci1mYWNlLTIp CihweXRob24tdHMtbW9kZS1idWlsdGluLWNhbGwtZmFjZSkKKHB5dGhvbi10cy1tb2RlLWludGVy cG9sYXRpb24tbmVzdGVkLXN0cmluZykKKHB5dGhvbi10cy1tb2RlLWRpc2FibGVkLXN0cmluZy1p bnRlcnBvbGF0aW9uKQoocHl0aG9uLXRzLW1vZGUtaW50ZXJwb2xhdGlvbi1kb2Mtc3RyaW5nKTog QWRkIHRlc3RzLgotLS0KIGxpc3AvcHJvZ21vZGVzL3B5dGhvbi5lbCAgICAgICAgICAgIHwgMTgy ICsrKysrKysrKysrKystLS0tLQogdGVzdC9saXNwL3Byb2dtb2Rlcy9weXRob24tdGVzdHMuZWwg fCAyNzkgKysrKysrKysrKysrKysrKysrKysrKysrKysrKwogMiBmaWxlcyBjaGFuZ2VkLCA0MTMg aW5zZXJ0aW9ucygrKSwgNDggZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvbGlzcC9wcm9nbW9k ZXMvcHl0aG9uLmVsIGIvbGlzcC9wcm9nbW9kZXMvcHl0aG9uLmVsCmluZGV4IGFiM2JmMWI0ZWMu LmJhY2IwNzc2ZjAgMTAwNjQ0Ci0tLSBhL2xpc3AvcHJvZ21vZGVzL3B5dGhvbi5lbAorKysgYi9s aXNwL3Byb2dtb2Rlcy9weXRob24uZWwKQEAgLTk3OSw3ICs5NzksNyBAQCBweXRob24tLXRyZWVz aXQta2V5d29yZHMKICAgICAicmFpc2UiICJyZXR1cm4iICJ0cnkiICJ3aGlsZSIgIndpdGgiICJ5 aWVsZCIKICAgICA7OyBUaGVzZSBhcmUgdGVjaG5pY2FsbHkgb3BlcmF0b3JzLCBidXQgd2UgZm9u dGlmeSB0aGVtIGFzCiAgICAgOzsga2V5d29yZHMuCi0gICAgImFuZCIgImluIiAiaXMiICJub3Qi ICJvciIgIm5vdCBpbiIpKQorICAgICJhbmQiICJpbiIgImlzIiAibm90IiAib3IiICJub3QgaW4i ICJpcyBub3QiKSkKIAogKGRlZnZhciBweXRob24tLXRyZWVzaXQtYnVpbHRpbnMKICAgJygiYWJz IiAiYWxsIiAiYW55IiAiYXNjaWkiICJiaW4iICJib29sIiAiYnJlYWtwb2ludCIgImJ5dGVhcnJh eSIKQEAgLTEwNDIsOSArMTA0Miw3IEBAIHB5dGhvbi0tdHJlZXNpdC1mb250aWZ5LXN0cmluZwog Zi1zdHJpbmdzLiAgT1ZFUlJJREUgaXMgdGhlIG92ZXJyaWRlIGZsYWcgZGVzY3JpYmVkIGluCiBg dHJlZXNpdC1mb250LWxvY2stcnVsZXMnLiAgU1RBUlQgYW5kIEVORCBtYXJrIHRoZSByZWdpb24g dG8gYmUKIGZvbnRpZmllZC4iCi0gIChsZXQqICgoc3RyaW5nLWJlZyAodHJlZXNpdC1ub2RlLXN0 YXJ0IG5vZGUpKQotICAgICAgICAgKHN0cmluZy1lbmQgKHRyZWVzaXQtbm9kZS1lbmQgbm9kZSkp Ci0gICAgICAgICAobWF5YmUtZXhwcmVzc2lvbiAodHJlZXNpdC1ub2RlLXBhcmVudCBub2RlKSkK KyAgKGxldCogKChtYXliZS1leHByZXNzaW9uICh0cmVlc2l0LW5vZGUtcGFyZW50IG5vZGUpKQog ICAgICAgICAgKGdyYW5kcGFyZW50ICh0cmVlc2l0LW5vZGUtcGFyZW50CiAgICAgICAgICAgICAg ICAgICAgICAgICh0cmVlc2l0LW5vZGUtcGFyZW50CiAgICAgICAgICAgICAgICAgICAgICAgICBt YXliZS1leHByZXNzaW9uKSkpCkBAIC0xMDcyLDI4ICsxMDcwLDc2IEBAIHB5dGhvbi0tdHJlZXNp dC1mb250aWZ5LXN0cmluZwogICAgICAgICAgICAgICAgICAgICAgICAgKGVxdWFsICh0cmVlc2l0 LW5vZGUtdHlwZSBtYXliZS1leHByZXNzaW9uKQogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICJleHByZXNzaW9uX3N0YXRlbWVudCIpKQogICAgICAgICAgICAgICAgICAgICdmb250LWxv Y2stZG9jLWZhY2UKLSAgICAgICAgICAgICAgICAgJ2ZvbnQtbG9jay1zdHJpbmctZmFjZSkpKQot ICAgIDs7IERvbid0IGhpZ2hsaWdodCBzdHJpbmcgcHJlZml4ZXMgbGlrZSBmL3IvYi4KLSAgICAo c2F2ZS1leGN1cnNpb24KLSAgICAgIChnb3RvLWNoYXIgc3RyaW5nLWJlZykKLSAgICAgICh3aGVu IChyZS1zZWFyY2gtZm9yd2FyZCAiW1wiJ10iIHN0cmluZy1lbmQgdCkKLSAgICAgICAgKHNldHEg c3RyaW5nLWJlZyAobWF0Y2gtYmVnaW5uaW5nIDApKSkpCi0gICAgKHRyZWVzaXQtZm9udGlmeS13 aXRoLW92ZXJyaWRlCi0gICAgIHN0cmluZy1iZWcgc3RyaW5nLWVuZCBmYWNlIG92ZXJyaWRlIHN0 YXJ0IGVuZCkpKQotCi0oZGVmdW4gcHl0aG9uLS10cmVlc2l0LWZvbnRpZnktc3RyaW5nLWludGVy cG9sYXRpb24KLSAgICAobm9kZSBfIHN0YXJ0IGVuZCAmcmVzdCBfKQotICAiRm9udGlmeSBzdHJp bmcgaW50ZXJwb2xhdGlvbi4KLU5PREUgaXMgdGhlIHN0cmluZyBub2RlLiAgRG8gbm90IGZvbnRp ZnkgdGhlIGluaXRpYWwgZiBmb3IKLWYtc3RyaW5ncy4gIFNUQVJUIGFuZCBFTkQgbWFyayB0aGUg cmVnaW9uIHRvIGJlCisgICAgICAgICAgICAgICAgICdmb250LWxvY2stc3RyaW5nLWZhY2UpKQor CisgICAgICAgICAoaWdub3JlLWludGVycG9sYXRpb24gKG5vdCAobWVtcSAnc3RyaW5nLWludGVy cG9sYXRpb24KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChudGgg MiB0cmVlc2l0LWZvbnQtbG9jay1mZWF0dXJlLWxpc3QpKSkpCisgICAgICAgICA7OyBJZiBpbnRl cnBvbGF0aW9uIGlzIGVuYWJsZWQsIGhpZ2hsaWdodCBvbmx5CisgICAgICAgICA7OyBzdHJpbmdf c3RhcnQvc3RyaW5nX2NvbnRlbnQvc3RyaW5nX2VuZCBjaGlsZHJlbi4gIERvIG5vdAorICAgICAg ICAgOzsgdG91Y2ggaW50ZXJwb2xhdGlvbiBub2RlIHRoYXQgY2FuIG9jY3VyIGluc2lkZSBvZiB0 aGUKKyAgICAgICAgIDs7IHN0cmluZy4KKyAgICAgICAgIChzdHJpbmctbm9kZXMgKGlmIGlnbm9y ZS1pbnRlcnBvbGF0aW9uCisgICAgICAgICAgICAgICAgICAgICAgICAgICAobGlzdCBub2RlKQor ICAgICAgICAgICAgICAgICAgICAgICAgICh0cmVlc2l0LWZpbHRlci1jaGlsZAorICAgICAgICAg ICAgICAgICAgICAgICAgICBub2RlCisgICAgICAgICAgICAgICAgICAgICAgICAgIChsYW1iZGEg KGNoKSAobWVtYmVyICh0cmVlc2l0LW5vZGUtdHlwZSBjaCkKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgJygic3RyaW5nX3N0YXJ0IgorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJzdHJpbmdfY29udGVudCIKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAic3RyaW5nX2Vu ZCIpKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgdCkpKSkKKworICAgIChkb2xpc3QgKHN0 cmluZy1ub2RlIHN0cmluZy1ub2RlcykKKyAgICAgIChsZXQgKChzdHJpbmctYmVnICh0cmVlc2l0 LW5vZGUtc3RhcnQgc3RyaW5nLW5vZGUpKQorICAgICAgICAgICAgKHN0cmluZy1lbmQgKHRyZWVz aXQtbm9kZS1lbmQgc3RyaW5nLW5vZGUpKSkKKyAgICAgICAgKHdoZW4gKG9yIGlnbm9yZS1pbnRl cnBvbGF0aW9uCisgICAgICAgICAgICAgICAgICAoZXF1YWwgKHRyZWVzaXQtbm9kZS10eXBlIHN0 cmluZy1ub2RlKSAic3RyaW5nX3N0YXJ0IikpCisgICAgICAgICAgOzsgRG9uJ3QgaGlnaGxpZ2h0 IHN0cmluZyBwcmVmaXhlcyBsaWtlIGYvci9iLgorICAgICAgICAgIChzYXZlLWV4Y3Vyc2lvbgor ICAgICAgICAgICAgKGdvdG8tY2hhciBzdHJpbmctYmVnKQorICAgICAgICAgICAgKHdoZW4gKHJl LXNlYXJjaC1mb3J3YXJkICJbXCInXSIgc3RyaW5nLWVuZCB0KQorICAgICAgICAgICAgICAoc2V0 cSBzdHJpbmctYmVnIChtYXRjaC1iZWdpbm5pbmcgMCkpKSkpCisKKyAgICAgICAgKHRyZWVzaXQt Zm9udGlmeS13aXRoLW92ZXJyaWRlCisgICAgICAgICBzdHJpbmctYmVnIHN0cmluZy1lbmQgZmFj ZSBvdmVycmlkZSBzdGFydCBlbmQpKSkpKQorCisoZGVmdW4gcHl0aG9uLS10cmVlc2l0LWZvbnRp ZnktdW5pb24tdHlwZXMgKG5vZGUgb3ZlcnJpZGUgc3RhcnQgZW5kICZyZXN0IF8pCisgICJGb250 aWZ5IG5lc3RlZCB1bmlvbiB0eXBlcyBpbiB0aGUgdHlwZSBoaW50cy4KK0ZvciBleGFtbHBlLCBM dmwxIHwgTHZsMltMdmwzW0x2bDRbTHZsNSB8IE5vbmVdXSwgTHZsMl0uICBUaGlzCitzdHJ1Y3R1 cmUgaXMgcmVwcmVzZW50ZWQgdmlhIG5lc3RpbmcgYmluYXJ5X29wZXJhdG9yIGFuZAorc3Vic2Ny aXB0IG5vZGVzLiAgVGhpcyBmdW5jdGlvbiBpdGVyYXRlcyBvdmVyIGFsbCBsZXZlbHMgYW5kCito aWdobGlnaHQgaWRlbnRpZmllciBub2Rlcy4gIE5PREUgaXMgdGhlIGJpbmFyeV9vcGVyYXRvcgor bm9kZS4gIE9WRVJSSURFIGlzIHRoZSBvdmVycmlkZSBmbGFnIGRlc2NyaWJlZCBpbgorYHRyZWVz aXQtZm9udC1sb2NrLXJ1bGVzJy4gIFNUQVJUIGFuZCBFTkQgbWFyayB0aGUgcmVnaW9uIHRvIGJl Citmb250aWZpZWQuIgorICAoZG9saXN0IChjaGlsZCAodHJlZXNpdC1ub2RlLWNoaWxkcmVuIG5v ZGUgdCkpCisgICAgKHBjYXNlICh0cmVlc2l0LW5vZGUtdHlwZSBjaGlsZCkKKyAgICAgICgob3Ig ImlkZW50aWZpZXIiICJub25lIikKKyAgICAgICAodHJlZXNpdC1mb250aWZ5LXdpdGgtb3ZlcnJp ZGUKKyAgICAgICAgKHRyZWVzaXQtbm9kZS1zdGFydCBjaGlsZCkgKHRyZWVzaXQtbm9kZS1lbmQg Y2hpbGQpCisgICAgICAgICdmb250LWxvY2stdHlwZS1mYWNlIG92ZXJyaWRlIHN0YXJ0IGVuZCkp CisgICAgICAoImF0dHJpYnV0ZSIKKyAgICAgICAod2hlbi1sZXQgKCh0eXBlLW5vZGUgKHRyZWVz aXQtbm9kZS1jaGlsZC1ieS1maWVsZC1uYW1lIGNoaWxkICJhdHRyaWJ1dGUiKSkpCisgICAgICAg ICAodHJlZXNpdC1mb250aWZ5LXdpdGgtb3ZlcnJpZGUKKyAgICAgICAgICAodHJlZXNpdC1ub2Rl LXN0YXJ0IHR5cGUtbm9kZSkgKHRyZWVzaXQtbm9kZS1lbmQgdHlwZS1ub2RlKQorICAgICAgICAg ICdmb250LWxvY2stdHlwZS1mYWNlIG92ZXJyaWRlIHN0YXJ0IGVuZCkpKQorICAgICAgKChvciAi YmluYXJ5X29wZXJhdG9yIiAic3Vic2NyaXB0IikKKyAgICAgICAocHl0aG9uLS10cmVlc2l0LWZv bnRpZnktdW5pb24tdHlwZXMgY2hpbGQgb3ZlcnJpZGUgc3RhcnQgZW5kKSkpKSkKKworKGRlZnVu IHB5dGhvbi0tdHJlZXNpdC1mb250aWZ5LWRvdHRlZC1kZWNvcmF0b3IgKG5vZGUgb3ZlcnJpZGUg c3RhcnQgZW5kICZyZXN0IF8pCisgICJGb250aWZ5IGRvdHRlZCBkZWNvcmF0b3JzLgorRm9yIGV4 YW1wbGUgQHB5dGVzLm1hcmsuc2tpcC4gIEl0ZXJhdGUgb3ZlciBhbGwgbmVzdGVkIGF0dHJpYnV0 ZQorbm9kZXMgYW5kIGhpZ2hsaWdodCBpZGVudGlmaWVyIG5vZGVzLiAgTk9ERSBpcyB0aGUgZmly c3QgYXR0cmlidXRlCitub2RlLiAgT1ZFUlJJREUgaXMgdGhlIG92ZXJyaWRlIGZsYWcgZGVzY3Jp YmVkIGluCitgdHJlZXNpdC1mb250LWxvY2stcnVsZXMnLiAgU1RBUlQgYW5kIEVORCBtYXJrIHRo ZSByZWdpb24gdG8gYmUKIGZvbnRpZmllZC4iCi0gIDs7IFRoaXMgaXMga2luZCBvZiBhIGhhY2ss IGl0IGJhc2ljYWxseSByZW1vdmVzIHRoZSBmYWNlIGFwcGxpZWQgYnkKLSAgOzsgdGhlIHN0cmlu ZyBmZWF0dXJlLCBzbyB0aGF0IGZvbGxvd2luZyBmZWF0dXJlcyBjYW4gYXBwbHkgdGhlaXIKLSAg OzsgZmFjZS4KLSAgKGxldCAoKG4tc3RhcnQgKHRyZWVzaXQtbm9kZS1zdGFydCBub2RlKSkKLSAg ICAgICAgKG4tZW5kICh0cmVlc2l0LW5vZGUtZW5kIG5vZGUpKSkKLSAgICAocmVtb3ZlLXRleHQt cHJvcGVydGllcwotICAgICAobWF4IHN0YXJ0IG4tc3RhcnQpIChtaW4gZW5kIG4tZW5kKSAnKGZh Y2UpKSkpCisgIChkb2xpc3QgKGNoaWxkICh0cmVlc2l0LW5vZGUtY2hpbGRyZW4gbm9kZSB0KSkK KyAgICAocGNhc2UgKHRyZWVzaXQtbm9kZS10eXBlIGNoaWxkKQorICAgICAgKCJpZGVudGlmaWVy IgorICAgICAgICh0cmVlc2l0LWZvbnRpZnktd2l0aC1vdmVycmlkZQorICAgICAgICAodHJlZXNp dC1ub2RlLXN0YXJ0IGNoaWxkKSAodHJlZXNpdC1ub2RlLWVuZCBjaGlsZCkKKyAgICAgICAgJ2Zv bnQtbG9jay10eXBlLWZhY2Ugb3ZlcnJpZGUgc3RhcnQgZW5kKSkKKyAgICAgICgiYXR0cmlidXRl IgorICAgICAgIChweXRob24tLXRyZWVzaXQtZm9udGlmeS1kb3R0ZWQtZGVjb3JhdG9yIGNoaWxk IG92ZXJyaWRlIHN0YXJ0IGVuZCkpKSkpCiAKIChkZWZ2YXIgcHl0aG9uLS10cmVlc2l0LXNldHRp bmdzCiAgICh0cmVlc2l0LWZvbnQtbG9jay1ydWxlcwpAQCAtMTEwMywxNCArMTE0OSw5IEBAIHB5 dGhvbi0tdHJlZXNpdC1zZXR0aW5ncwogCiAgICA6ZmVhdHVyZSAnc3RyaW5nCiAgICA6bGFuZ3Vh Z2UgJ3B5dGhvbgotICAgJygoc3RyaW5nKSBAcHl0aG9uLS10cmVlc2l0LWZvbnRpZnktc3RyaW5n KQorICAgJygoc3RyaW5nKSBAcHl0aG9uLS10cmVlc2l0LWZvbnRpZnktc3RyaW5nCisgICAgIChp bnRlcnBvbGF0aW9uIFsieyIgIn0iXSBAZm9udC1sb2NrLW1pc2MtcHVuY3R1YXRpb24tZmFjZSkp CiAKLSAgIDs7IEhBQ0s6IFRoaXMgZmVhdHVyZSBtdXN0IGNvbWUgYWZ0ZXIgdGhlIHN0cmluZyBm ZWF0dXJlIGFuZCBiZWZvcmUKLSAgIDs7IG90aGVyIGZlYXR1cmVzLiAgTWF5YmUgd2Ugc2hvdWxk IG1ha2Ugc3RyaW5nLWludGVycG9sYXRpb24gYW4KLSAgIDs7IG9wdGlvbiByYXRoZXIgdGhhbiBh IGZlYXR1cmUuCi0gICA6ZmVhdHVyZSAnc3RyaW5nLWludGVycG9sYXRpb24KLSAgIDpsYW5ndWFn ZSAncHl0aG9uCi0gICAnKChpbnRlcnBvbGF0aW9uKSBAcHl0aG9uLS10cmVlc2l0LWZvbnRpZnkt c3RyaW5nLWludGVycG9sYXRpb24pCiAKICAgIDpmZWF0dXJlICdrZXl3b3JkCiAgICA6bGFuZ3Vh Z2UgJ3B5dGhvbgpAQCAtMTEyNCwxNCArMTE2NSwxMCBAQCBweXRob24tLXRyZWVzaXQtc2V0dGlu Z3MKICAgICAgIG5hbWU6IChpZGVudGlmaWVyKSBAZm9udC1sb2NrLWZ1bmN0aW9uLW5hbWUtZmFj ZSkKICAgICAgKGNsYXNzX2RlZmluaXRpb24KICAgICAgIG5hbWU6IChpZGVudGlmaWVyKSBAZm9u dC1sb2NrLXR5cGUtZmFjZSkKKyAgICAgKGZvcl9zdGF0ZW1lbnQgbGVmdDogKGlkZW50aWZpZXIp CisgICAgICAgICAgICAgICAgICAgIEBmb250LWxvY2stdmFyaWFibGUtbmFtZS1mYWNlKQogICAg ICAocGFyYW1ldGVycyAoaWRlbnRpZmllcikgQGZvbnQtbG9jay12YXJpYWJsZS1uYW1lLWZhY2Up KQogCi0gICA6ZmVhdHVyZSAnZnVuY3Rpb24KLSAgIDpsYW5ndWFnZSAncHl0aG9uCi0gICAnKChj YWxsIGZ1bmN0aW9uOiAoaWRlbnRpZmllcikgQGZvbnQtbG9jay1mdW5jdGlvbi1jYWxsLWZhY2Up Ci0gICAgIChjYWxsIGZ1bmN0aW9uOiAoYXR0cmlidXRlCi0gICAgICAgICAgICAgICAgICAgICAg YXR0cmlidXRlOiAoaWRlbnRpZmllcikgQGZvbnQtbG9jay1mdW5jdGlvbi1jYWxsLWZhY2UpKSkK LQogICAgOmZlYXR1cmUgJ2J1aWx0aW4KICAgIDpsYW5ndWFnZSAncHl0aG9uCiAgICBgKCgoaWRl bnRpZmllcikgQGZvbnQtbG9jay1idWlsdGluLWZhY2UKQEAgLTExNDIsNiArMTE3OSwxMiBAQCBw eXRob24tLXRyZWVzaXQtc2V0dGluZ3MKICAgICAgICAgICAgICAgICAgICAgICBlb2wpKQogICAg ICAgICAgICAgICBAZm9udC1sb2NrLWJ1aWx0aW4tZmFjZSkpKQogCisgICA6ZmVhdHVyZSAnZnVu Y3Rpb24KKyAgIDpsYW5ndWFnZSAncHl0aG9uCisgICAnKChjYWxsIGZ1bmN0aW9uOiAoaWRlbnRp ZmllcikgQGZvbnQtbG9jay1mdW5jdGlvbi1jYWxsLWZhY2UpCisgICAgIChjYWxsIGZ1bmN0aW9u OiAoYXR0cmlidXRlCisgICAgICAgICAgICAgICAgICAgICAgYXR0cmlidXRlOiAoaWRlbnRpZmll cikgQGZvbnQtbG9jay1mdW5jdGlvbi1jYWxsLWZhY2UpKSkKKwogICAgOmZlYXR1cmUgJ2NvbnN0 YW50CiAgICA6bGFuZ3VhZ2UgJ3B5dGhvbgogICAgJyhbKHRydWUpIChmYWxzZSkgKG5vbmUpXSBA Zm9udC1sb2NrLWNvbnN0YW50LWZhY2UpCkBAIC0xMTUzLDMwICsxMTk2LDczIEBAIHB5dGhvbi0t dHJlZXNpdC1zZXR0aW5ncwogICAgICAgICAgICAgICAgICBAZm9udC1sb2NrLXZhcmlhYmxlLW5h bWUtZmFjZSkKICAgICAgKGFzc2lnbm1lbnQgbGVmdDogKGF0dHJpYnV0ZQogICAgICAgICAgICAg ICAgICAgICAgICAgYXR0cmlidXRlOiAoaWRlbnRpZmllcikKLSAgICAgICAgICAgICAgICAgICAg ICAgIEBmb250LWxvY2stcHJvcGVydHktdXNlLWZhY2UpKQotICAgICAocGF0dGVybl9saXN0IChp ZGVudGlmaWVyKQorICAgICAgICAgICAgICAgICAgICAgICAgQGZvbnQtbG9jay12YXJpYWJsZS1u YW1lLWZhY2UpKQorICAgICAoYXVnbWVudGVkX2Fzc2lnbm1lbnQgbGVmdDogKGlkZW50aWZpZXIp CisgICAgICAgICAgICAgICAgICAgICAgICAgICBAZm9udC1sb2NrLXZhcmlhYmxlLW5hbWUtZmFj ZSkKKyAgICAgKG5hbWVkX2V4cHJlc3Npb24gbmFtZTogKGlkZW50aWZpZXIpCisgICAgICAgICAg ICAgICAgICAgICAgIEBmb250LWxvY2stdmFyaWFibGUtbmFtZS1mYWNlKQorICAgICAocGF0dGVy bl9saXN0IFsoaWRlbnRpZmllcikKKyAgICAgICAgICAgICAgICAgICAgKGxpc3Rfc3BsYXRfcGF0 dGVybiAoaWRlbnRpZmllcikpXQogICAgICAgICAgICAgICAgICAgIEBmb250LWxvY2stdmFyaWFi bGUtbmFtZS1mYWNlKQotICAgICAodHVwbGVfcGF0dGVybiAoaWRlbnRpZmllcikKKyAgICAgKHR1 cGxlX3BhdHRlcm4gWyhpZGVudGlmaWVyKQorICAgICAgICAgICAgICAgICAgICAgKGxpc3Rfc3Bs YXRfcGF0dGVybiAoaWRlbnRpZmllcikpXQogICAgICAgICAgICAgICAgICAgICBAZm9udC1sb2Nr LXZhcmlhYmxlLW5hbWUtZmFjZSkKLSAgICAgKGxpc3RfcGF0dGVybiAoaWRlbnRpZmllcikKLSAg ICAgICAgICAgICAgICAgICBAZm9udC1sb2NrLXZhcmlhYmxlLW5hbWUtZmFjZSkKLSAgICAgKGxp c3Rfc3BsYXRfcGF0dGVybiAoaWRlbnRpZmllcikKLSAgICAgICAgICAgICAgICAgICAgICAgICBA Zm9udC1sb2NrLXZhcmlhYmxlLW5hbWUtZmFjZSkpCisgICAgIChsaXN0X3BhdHRlcm4gWyhpZGVu dGlmaWVyKQorICAgICAgICAgICAgICAgICAgICAobGlzdF9zcGxhdF9wYXR0ZXJuIChpZGVudGlm aWVyKSldCisgICAgICAgICAgICAgICAgICAgQGZvbnQtbG9jay12YXJpYWJsZS1uYW1lLWZhY2Up KQogCiAgICA6ZmVhdHVyZSAnZGVjb3JhdG9yCiAgICA6bGFuZ3VhZ2UgJ3B5dGhvbgorICAgOzsg T3ZlcnJpZGUgZnVuY3Rpb24gY2FsbCBmYWNlLgorICAgOm92ZXJyaWRlIHQKICAgICcoKGRlY29y YXRvciAiQCIgQGZvbnQtbG9jay10eXBlLWZhY2UpCiAgICAgIChkZWNvcmF0b3IgKGNhbGwgZnVu Y3Rpb246IChpZGVudGlmaWVyKSBAZm9udC1sb2NrLXR5cGUtZmFjZSkpCi0gICAgIChkZWNvcmF0 b3IgKGlkZW50aWZpZXIpIEBmb250LWxvY2stdHlwZS1mYWNlKSkKKyAgICAgKGRlY29yYXRvciAo aWRlbnRpZmllcikgQGZvbnQtbG9jay10eXBlLWZhY2UpCisgICAgIChkZWNvcmF0b3IgWyhhdHRy aWJ1dGUpIChjYWxsIChhdHRyaWJ1dGUpKV0gQHB5dGhvbi0tdHJlZXNpdC1mb250aWZ5LWRvdHRl ZC1kZWNvcmF0b3IpKQogCiAgICA6ZmVhdHVyZSAndHlwZQogICAgOmxhbmd1YWdlICdweXRob24K KyAgIDs7IE92ZXJyaWRlIGJ1aWx0LWluIGZhY2VzIHdoZW4gZGljdC9saXN0IGFyZSB1c2VkIGZv ciB0eXBlIGhpbnRzLgorICAgOm92ZXJyaWRlIHQKICAgIGAoKChpZGVudGlmaWVyKSBAZm9udC1s b2NrLXR5cGUtZmFjZQogICAgICAgKDptYXRjaCAsKHJ4LXRvLXN0cmluZwogICAgICAgICAgICAg ICAgIGAoc2VxIGJvbCAob3IgLEBweXRob24tLXRyZWVzaXQtZXhjZXB0aW9ucykKLSAgICAgICAg ICAgICAgICAgICAgICBlb2wpKQorICAgICAgICAgICAgICAgICAgZW9sKSkKICAgICAgICAgICAg ICAgQGZvbnQtbG9jay10eXBlLWZhY2UpKQotICAgICAodHlwZSAoaWRlbnRpZmllcikgQGZvbnQt bG9jay10eXBlLWZhY2UpKQorICAgICAodHlwZSBbKGlkZW50aWZpZXIpIChub25lKV0gQGZvbnQt bG9jay10eXBlLWZhY2UpCisgICAgICh0eXBlIChhdHRyaWJ1dGUgYXR0cmlidXRlOiAoaWRlbnRp ZmllcikgQGZvbnQtbG9jay10eXBlLWZhY2UpKQorICAgICA7OyBXZSBkb24ndCB3YW50IHRvIGhp Z2hsaWdodCBhIHBhY2thZ2Ugb2YgdGhlIHR5cGUKKyAgICAgOzsgKGUuZy4gcGFjay5DbGFzc05h bWUpLiAgU28gZXhwbGljaXRseSBleGNsdWRlIHBhdHRlcm5zIHdpdGgKKyAgICAgOzsgYXR0cmli dXRlLCBzaW5jZSB3ZSBoYW5kbGUgZG90dGVkIHR5cGUgbmFtZSBpbiB0aGUgcHJldmlvdXMKKyAg ICAgOzsgcnVsZS4gIFRoZSBmb2xsb3dpbmcgcnVsZSBoYW5kbGUKKyAgICAgOzsgZ2VuZXJpY190 eXBlL2xpc3QvdHVwbGUvc3BsYXRfdHlwZSBub2Rlcy4KKyAgICAgKHR5cGUgKF8gIWF0dHJpYnV0 ZSBbKGlkZW50aWZpZXIpIChub25lKV0gQGZvbnQtbG9jay10eXBlLWZhY2UpKQorICAgICA7OyBj b2xsZWN0aW9ucy5hYmMuSXRlcmF0b3JbVF0gY2FzZS4KKyAgICAgKHR5cGUgKHN1YnNjcmlwdCAo YXR0cmlidXRlIGF0dHJpYnV0ZTogKGlkZW50aWZpZXIpIEBmb250LWxvY2stdHlwZS1mYWNlKSkp CisgICAgIDs7IE5lc3RlZCBvcHRpb25hbCB0eXBlIGhpbnRzLCBlLmcuIHZhbDogTHZsMSB8IEx2 bDJbTHZsM1tMdmw0XV0uCisgICAgICh0eXBlIChiaW5hcnlfb3BlcmF0b3IpIEBweXRob24tLXRy ZWVzaXQtZm9udGlmeS11bmlvbi10eXBlcykKKyAgICAgOztjbGFzcyBUeXBlKEJhc2UxLCBTZXF1 ZW5jZVtUXSkuCisgICAgIChjbGFzc19kZWZpbml0aW9uCisgICAgICBzdXBlcmNsYXNzZXM6Cisg ICAgICAoYXJndW1lbnRfbGlzdCBbKGlkZW50aWZpZXIpIEBmb250LWxvY2stdHlwZS1mYWNlCisg ICAgICAgICAgICAgICAgICAgICAgKGF0dHJpYnV0ZSBhdHRyaWJ1dGU6IChpZGVudGlmaWVyKSBA Zm9udC1sb2NrLXR5cGUtZmFjZSkKKyAgICAgICAgICAgICAgICAgICAgICAoc3Vic2NyaXB0IChp ZGVudGlmaWVyKSBAZm9udC1sb2NrLXR5cGUtZmFjZSkKKyAgICAgICAgICAgICAgICAgICAgICAo c3Vic2NyaXB0IChhdHRyaWJ1dGUgYXR0cmlidXRlOiAoaWRlbnRpZmllcikgQGZvbnQtbG9jay10 eXBlLWZhY2UpKV0pKQorCisgICAgIDs7IFBhdGVybiBtYXRjaGluZzogY2FzZSBbc3RyKCksIHBh Y2swLlR5cGUwKCldLiAgVGFrZSBvbmx5IHRoZQorICAgICA7OyBsYXN0IGlkZW50aWZpZXIuCisg ICAgIChjbGFzc19wYXR0ZXJuIChkb3R0ZWRfbmFtZSAoaWRlbnRpZmllcikgQGZvbnQtbG9jay10 eXBlLWZhY2UgOmFuY2hvcikpCisKKworICAgICA7OyBIaWdobGlnaHQgdGhlIHNlY29uZCBhcmd1 bWVudCBhcyBhIHR5cGUgaW4gaXNpbnN0YW5jZS9pc3N1YmNsYXNzLgorICAgICAoKGNhbGwgZnVu Y3Rpb246IChpZGVudGlmaWVyKSBAZnVuYy1uYW1lCisgICAgICAgICAgICAoYXJndW1lbnRfbGlz dCA6YW5jaG9yIChfKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgWyhpZGVudGlmaWVyKSBA Zm9udC1sb2NrLXR5cGUtZmFjZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIChhdHRyaWJ1 dGUgYXR0cmlidXRlOiAoaWRlbnRpZmllcikgQGZvbnQtbG9jay10eXBlLWZhY2UpCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgKHR1cGxlIChpZGVudGlmaWVyKSBAZm9udC1sb2NrLXR5cGUt ZmFjZSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAodHVwbGUgKGF0dHJpYnV0ZSBhdHRy aWJ1dGU6IChpZGVudGlmaWVyKSBAZm9udC1sb2NrLXR5cGUtZmFjZSkpCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgKGJpbmFyeV9vcGVyYXRvcikgQHB5dGhvbi0tdHJlZXNpdC1mb250aWZ5 LXVuaW9uLXR5cGVzXSkpCisgICAgICAoOm1hdGNoICJeaXNcXCg/Omluc3RhbmNlXFx8c3ViY2xh c3NcXCkkIiBAZnVuYy1uYW1lKSkpCiAKICAgIDpmZWF0dXJlICdlc2NhcGUtc2VxdWVuY2UKICAg IDpsYW5ndWFnZSAncHl0aG9uCmRpZmYgLS1naXQgYS90ZXN0L2xpc3AvcHJvZ21vZGVzL3B5dGhv bi10ZXN0cy5lbCBiL3Rlc3QvbGlzcC9wcm9nbW9kZXMvcHl0aG9uLXRlc3RzLmVsCmluZGV4IGE0 NGExMTg5NmYuLjg2MTNlZDg3MDIgMTAwNjQ0Ci0tLSBhL3Rlc3QvbGlzcC9wcm9nbW9kZXMvcHl0 aG9uLXRlc3RzLmVsCisrKyBiL3Rlc3QvbGlzcC9wcm9nbW9kZXMvcHl0aG9uLXRlc3RzLmVsCkBA IC03Mjk5LDYgKzcyOTksMjg1IEBAIHB5dGhvbi10ZXN0cy0tZmx5bWFrZS1jb21tYW5kLW91dHB1 dC1wYXR0ZXJuCiAgICAgICAgICAgICAgICAgICAgICAgICAgIlVudXNlZCBpbXBvcnQgYS5iLmMg KHVudXNlZC1pbXBvcnQpIgogICAgICAgICAgICAgICAgICAgICAgICAiVzA2MTE6IFVudXNlZCBp bXBvcnQgYS5iLmMgKHVudXNlZC1pbXBvcnQpIikpKSkpKQogCis7OzsgcHl0aG9uLXRzLW1vZGUg Zm9udC1sb2NrIHRlc3RzCisKKyhkZWZtYWNybyBweXRob24tdHMtdGVzdHMtd2l0aC10ZW1wLWJ1 ZmZlciAoY29udGVudHMgJnJlc3QgYm9keSkKKyAgIkNyZWF0ZSBhIGBweXRob24tdHMtbW9kZScg ZW5hYmxlZCB0ZW1wIGJ1ZmZlciB3aXRoIENPTlRFTlRTLgorQk9EWSBpcyBjb2RlIHRvIGJlIGV4 ZWN1dGVkIHdpdGhpbiB0aGUgdGVtcCBidWZmZXIuICBQb2ludCBpcworYWx3YXlzIGxvY2F0ZWQg YXQgdGhlIGJlZ2lubmluZyBvZiBidWZmZXIuIgorICAoZGVjbGFyZSAoaW5kZW50IDEpIChkZWJ1 ZyB0KSkKKyAgYCh3aXRoLXRlbXAtYnVmZmVyCisgICAgIChza2lwLXVubGVzcyAodHJlZXNpdC1y ZWFkeS1wICdweXRob24pKQorICAgICAocmVxdWlyZSAncHl0aG9uKQorICAgICAobGV0ICgocHl0 aG9uLWluZGVudC1ndWVzcy1pbmRlbnQtb2Zmc2V0IG5pbCkpCisgICAgICAgKHB5dGhvbi10cy1t b2RlKQorICAgICAgIChzZXRvcHQgdHJlZXNpdC1mb250LWxvY2stbGV2ZWwgMykKKyAgICAgICAo aW5zZXJ0ICxjb250ZW50cykKKyAgICAgICAoZm9udC1sb2NrLWVuc3VyZSkKKyAgICAgICAoZ290 by1jaGFyIChwb2ludC1taW4pKQorICAgICAgICxAYm9keSkpKQorCisoZXJ0LWRlZnRlc3QgcHl0 aG9uLXRzLW1vZGUtY29tcG91bmQta2V5d29yZHMtZmFjZSAoKQorICAoZG9saXN0ICh0ZXN0ICco ImlzIG5vdCIgIm5vdCBpbiIpKQorICAgIChweXRob24tdHMtdGVzdHMtd2l0aC10ZW1wLWJ1ZmZl cgorICAgICAoY29uY2F0ICJ0ICIgdGVzdCAiIHQiKQorICAgICAoZm9yd2FyZC10by13b3JkKQor ICAgICAoc2hvdWxkIChlcSAoZmFjZS1hdC1wb2ludCkgZm9udC1sb2NrLWtleXdvcmQtZmFjZSkp CisgICAgIChmb3J3YXJkLXRvLXdvcmQpCisgICAgIChzaG91bGQgKGVxIChmYWNlLWF0LXBvaW50 KSBmb250LWxvY2sta2V5d29yZC1mYWNlKSkpKSkKKworKGVydC1kZWZ0ZXN0IHB5dGhvbi10cy1t b2RlLXZhci1mb3ItbG9vcC1mYWNlICgpCisgIChweXRob24tdHMtdGVzdHMtd2l0aC10ZW1wLWJ1 ZmZlcgorICAgImZvciB2YXIgaW4gcmFuZ2UoMyk6IgorICAgKGRvbGlzdCAodGVzdCAnKCJ2YXIi KSkKKyAgICAgKHNlYXJjaC1mb3J3YXJkIHRlc3QpCisgICAgIChnb3RvLWNoYXIgKG1hdGNoLWJl Z2lubmluZyAwKSkKKyAgICAgKHNob3VsZCAoZXEgKGZhY2UtYXQtcG9pbnQpIGZvbnQtbG9jay12 YXJpYWJsZS1uYW1lLWZhY2UpKSkpKQorCisoZXJ0LWRlZnRlc3QgcHl0aG9uLXRzLW1vZGUtbmFt ZWQtYXNzaWduZW1lbnQtZmFjZS0xICgpCisgIChweXRob24tdHMtdGVzdHMtd2l0aC10ZW1wLWJ1 ZmZlcgorICAgInZhciA6PSAzIgorICAgKHNob3VsZCAoZXEgKGZhY2UtYXQtcG9pbnQpIGZvbnQt bG9jay12YXJpYWJsZS1uYW1lLWZhY2UpKSkpCisKKyhlcnQtZGVmdGVzdCBweXRob24tdHMtbW9k ZS1hc3NpZ25lbWVudC1mYWNlLTIgKCkKKyAgKHB5dGhvbi10cy10ZXN0cy13aXRoLXRlbXAtYnVm ZmVyCisgICAidmFyLCAqcmVzdCA9IGNhbGwoKSIKKyAgIChkb2xpc3QgKHRlc3QgJygidmFyIiAi cmVzdCIpKQorICAgICAoc2VhcmNoLWZvcndhcmQgdGVzdCkKKyAgICAgKGdvdG8tY2hhciAobWF0 Y2gtYmVnaW5uaW5nIDApKQorICAgICAoc2hvdWxkIChlcSAoZmFjZS1hdC1wb2ludCkgZm9udC1s b2NrLXZhcmlhYmxlLW5hbWUtZmFjZSkpKSkKKworICAocHl0aG9uLXRzLXRlc3RzLXdpdGgtdGVt cC1idWZmZXIKKyAgICJkZWYgZnVuYygqYXJncyk6IgorICAgKGRvbGlzdCAodGVzdCAnKCJhcmdz IikpCisgICAgIChzZWFyY2gtZm9yd2FyZCB0ZXN0KQorICAgICAoZ290by1jaGFyIChtYXRjaC1i ZWdpbm5pbmcgMCkpCisgICAgIChzaG91bGQgKG5vdCAoZXEgKGZhY2UtYXQtcG9pbnQpIGZvbnQt bG9jay12YXJpYWJsZS1uYW1lLWZhY2UpKSkpKSkKKworKGVydC1kZWZ0ZXN0IHB5dGhvbi10cy1t b2RlLW5lc3RlZC10eXBlcy1mYWNlLTEgKCkKKyAgKHB5dGhvbi10cy10ZXN0cy13aXRoLXRlbXAt YnVmZmVyCisgICAiZGVmIGZ1bmModjpkaWN0WyBsaXN0WyB0dXBsZVtzdHJdIF0sIGludCB8IE5v bmVdIHwgTm9uZSk6IgorICAgKGRvbGlzdCAodGVzdCAnKCJkaWN0IiAibGlzdCIgInR1cGxlIiAi c3RyIiAiaW50IiAiTm9uZSIgIk5vbmUiKSkKKyAgICAgKHNlYXJjaC1mb3J3YXJkIHRlc3QpCisg ICAgIChnb3RvLWNoYXIgKG1hdGNoLWJlZ2lubmluZyAwKSkKKyAgICAgKHNob3VsZCAoZXEgKGZh Y2UtYXQtcG9pbnQpIGZvbnQtbG9jay10eXBlLWZhY2UpKSkpKQorCisoZXJ0LWRlZnRlc3QgcHl0 aG9uLXRzLW1vZGUtdW5pb24tdHlwZXMtZmFjZS0xICgpCisgIChweXRob24tdHMtdGVzdHMtd2l0 aC10ZW1wLWJ1ZmZlcgorICAgImRlZiBmKHZhbDogdHVwbGVbdHVwbGUsIGxpc3RbTHZsMSB8IEx2 bDJbTHZsM1tMdmw0W0x2bDUgfCBOb25lXV0sIEx2bDJdXV0pOiIKKyAgIChkb2xpc3QgKHRlc3Qg JygidHVwbGUiICJ0dXBsZSIgImxpc3QiICJMdmwxIiAiTHZsMiIgIkx2bDMiICJMdmw0IiAiTHZs NSIgIk5vbmUiICJMdmwyIikpCisgICAgIChzZWFyY2gtZm9yd2FyZCB0ZXN0KQorICAgICAoZ290 by1jaGFyIChtYXRjaC1iZWdpbm5pbmcgMCkpCisgICAgIChzaG91bGQgKGVxIChmYWNlLWF0LXBv aW50KSBmb250LWxvY2stdHlwZS1mYWNlKSkpKSkKKworKGVydC1kZWZ0ZXN0IHB5dGhvbi10cy1t b2RlLXVuaW9uLXR5cGVzLWZhY2UtMiAoKQorICAocHl0aG9uLXRzLXRlc3RzLXdpdGgtdGVtcC1i dWZmZXIKKyAgICJkZWYgZih2YWw6IFR5cGUwIHwgVHlwZTFbVHlwZTIsIHBhY2swLlR5cGUzXSB8 IHBhY2sxLnBhY2syLlR5cGU0IHwgTm9uZSk6IgorICAgKGRvbGlzdCAodGVzdCAnKCJUeXBlMCIg IlR5cGUxIiAiVHlwZTIiICJUeXBlMyIgIlR5cGU0IiAiTm9uZSIpKQorICAgICAoc2VhcmNoLWZv cndhcmQgdGVzdCkKKyAgICAgKGdvdG8tY2hhciAobWF0Y2gtYmVnaW5uaW5nIDApKQorICAgICAo c2hvdWxkIChlcSAoZmFjZS1hdC1wb2ludCkgZm9udC1sb2NrLXR5cGUtZmFjZSkpKQorCisgICAo Z290by1jaGFyIChwb2ludC1taW4pKQorICAgKGRvbGlzdCAodGVzdCAnKCJwYWNrMCIgInBhY2sx IiAicGFjazIiKSkKKyAgICAgKHNlYXJjaC1mb3J3YXJkIHRlc3QpCisgICAgIChnb3RvLWNoYXIg KG1hdGNoLWJlZ2lubmluZyAwKSkKKyAgICAgKHNob3VsZCAobm90IChlcSAoZmFjZS1hdC1wb2lu dCkgZm9udC1sb2NrLXR5cGUtZmFjZSkpKSkpKQorCisoZXJ0LWRlZnRlc3QgcHl0aG9uLXRzLW1v ZGUtdHlwZXMtZmFjZS0xICgpCisgIChweXRob24tdHMtdGVzdHMtd2l0aC10ZW1wLWJ1ZmZlcgor ICAgImRlZiBmKHZhbDogQ2FsbGFibGVbW1R5cGUwXSwgKFR5cGUxLCBUeXBlMildKToiCisgICAo ZG9saXN0ICh0ZXN0ICcoIkNhbGxhYmxlIiAiVHlwZTAiICJUeXBlMSIgIlR5cGUyIikpCisgICAg IChzZWFyY2gtZm9yd2FyZCB0ZXN0KQorICAgICAoZ290by1jaGFyIChtYXRjaC1iZWdpbm5pbmcg MCkpCisgICAgIChzaG91bGQgKGVxIChmYWNlLWF0LXBvaW50KSBmb250LWxvY2stdHlwZS1mYWNl KSkpKSkKKworKGVydC1kZWZ0ZXN0IHB5dGhvbi10cy1tb2RlLXR5cGVzLWZhY2UtMiAoKQorICAo cHl0aG9uLXRzLXRlc3RzLXdpdGgtdGVtcC1idWZmZXIKKyAgICJkZWYgYW5ub3QzKHZhbDpwYWNr MC5UeXBlMCktPnBhY2sxLnBhY2syLnBhY2szLlR5cGUxOiIKKyAgIChkb2xpc3QgKHRlc3QgJygi VHlwZTAiICJUeXBlMSIpKQorICAgICAoc2VhcmNoLWZvcndhcmQgdGVzdCkKKyAgICAgKGdvdG8t Y2hhciAobWF0Y2gtYmVnaW5uaW5nIDApKQorICAgICAoc2hvdWxkIChlcSAoZmFjZS1hdC1wb2lu dCkgZm9udC1sb2NrLXR5cGUtZmFjZSkpKQorICAgKGdvdG8tY2hhciAocG9pbnQtbWluKSkKKyAg IChkb2xpc3QgKHRlc3QgJygicGFjazAiICJwYWNrMSIgInBhY2syIiAicGFjazMiKSkKKyAgICAg KHNlYXJjaC1mb3J3YXJkIHRlc3QpCisgICAgIChnb3RvLWNoYXIgKG1hdGNoLWJlZ2lubmluZyAw KSkKKyAgICAgKHNob3VsZCAobm90IChlcSAoZmFjZS1hdC1wb2ludCkgZm9udC1sb2NrLXR5cGUt ZmFjZSkpKSkpKQorCisoZXJ0LWRlZnRlc3QgcHl0aG9uLXRzLW1vZGUtdHlwZXMtZmFjZS0zICgp CisgIChweXRob24tdHMtdGVzdHMtd2l0aC10ZW1wLWJ1ZmZlcgorICAgImRlZiBhbm5vdDModmFs OmNvbGxlY3Rpb25zLmFiYy5JdGVyYXRvcltUeXBlMF0pOiIKKyAgIChkb2xpc3QgKHRlc3QgJygi SXRlcmF0b3IiICJUeXBlMCIpKQorICAgICAoc2VhcmNoLWZvcndhcmQgdGVzdCkKKyAgICAgKGdv dG8tY2hhciAobWF0Y2gtYmVnaW5uaW5nIDApKQorICAgICAoc2hvdWxkIChlcSAoZmFjZS1hdC1w b2ludCkgZm9udC1sb2NrLXR5cGUtZmFjZSkpKQorICAgKGdvdG8tY2hhciAocG9pbnQtbWluKSkK KyAgIChkb2xpc3QgKHRlc3QgJygiY29sbGVjdGlvbnMiICJhYmMiKSkKKyAgICAgKHNlYXJjaC1m b3J3YXJkIHRlc3QpCisgICAgIChnb3RvLWNoYXIgKG1hdGNoLWJlZ2lubmluZyAwKSkKKyAgICAg KHNob3VsZCAobm90IChlcSAoZmFjZS1hdC1wb2ludCkgZm9udC1sb2NrLXR5cGUtZmFjZSkpKSkp KQorCisoZXJ0LWRlZnRlc3QgcHl0aG9uLXRzLW1vZGUtaXNpbnN0YW5jZS10eXBlLWZhY2UtMSAo KQorICAocHl0aG9uLXRzLXRlc3RzLXdpdGgtdGVtcC1idWZmZXIKKyAgICJpc2luc3RhbmNlKHZh cjEsIHBrZy5UeXBlMCkKKyAgICBpc2luc3RhbmNlKHZhcjIsIChzdHIsIGRpY3QsIFR5cGUxLCB0 eXBlKE5vbmUpKSkKKyAgICBpc2luc3RhbmNlKHZhcjMsIG15X3R5cGUoKSkiCisKKyAgIChkb2xp c3QgKHRlc3QgJygidmFyMSIgInBrZyIgInZhcjIiICJ0eXBlIiAiTm9uZSIgInZhcjMiICJteV90 eXBlIikpCisgICAgIChsZXQgKChjYXNlLWZvbGQtc2VhcmNoIG5pbCkpCisgICAgICAgKHNlYXJj aC1mb3J3YXJkIHRlc3QpKQorICAgICAoZ290by1jaGFyIChtYXRjaC1iZWdpbm5pbmcgMCkpCisg ICAgIChzaG91bGQgKG5vdCAoZXEgKGZhY2UtYXQtcG9pbnQpIGZvbnQtbG9jay10eXBlLWZhY2Up KSkpCisKKyAgIChnb3RvLWNoYXIgKHBvaW50LW1pbikpCisgICAoZG9saXN0ICh0ZXN0ICcoIlR5 cGUwIiAic3RyIiAiZGljdCIgIlR5cGUxIikpCisgICAgIChzZWFyY2gtZm9yd2FyZCB0ZXN0KQor ICAgICAoZ290by1jaGFyIChtYXRjaC1iZWdpbm5pbmcgMCkpCisgICAgIChzaG91bGQgKGVxIChm YWNlLWF0LXBvaW50KSBmb250LWxvY2stdHlwZS1mYWNlKSkpKSkKKworKGVydC1kZWZ0ZXN0IHB5 dGhvbi10cy1tb2RlLWlzaW5zdGFuY2UtdHlwZS1mYWNlLTIgKCkKKyAgKHB5dGhvbi10cy10ZXN0 cy13aXRoLXRlbXAtYnVmZmVyCisgICAiaXNzdWJjbGFzcyhteXR5cGUsIGludHxsaXN0fGNvbGxl Y3Rpb25zLmFiYy5JdGVyYWJsZSkiCisgICAoZG9saXN0ICh0ZXN0ICcoImludCIgImxpc3QiICJJ dGVyYWJsZSIpKQorICAgICAoc2VhcmNoLWZvcndhcmQgdGVzdCkKKyAgICAgKGdvdG8tY2hhciAo bWF0Y2gtYmVnaW5uaW5nIDApKQorICAgICAoc2hvdWxkIChlcSAoZmFjZS1hdC1wb2ludCkgZm9u dC1sb2NrLXR5cGUtZmFjZSkpKSkpCisKKyhlcnQtZGVmdGVzdCBweXRob24tdHMtbW9kZS1zdXBl cmNsYXNzLXR5cGUtZmFjZSAoKQorICAocHl0aG9uLXRzLXRlc3RzLXdpdGgtdGVtcC1idWZmZXIK KyAgICJjbGFzcyBUZW1wKEJhc2UxLCBwYWNrMC5CYXNlMiwgIFNlcXVlbmNlW1QxLCBUMl0pOiIK KworICAgKGRvbGlzdCAodGVzdCAnKCJCYXNlMSIgIkJhc2UyIiAiU2VxdWVuY2UiICJUMSIgIlQy IikpCisgICAgIChzZWFyY2gtZm9yd2FyZCB0ZXN0KQorICAgICAoZ290by1jaGFyIChtYXRjaC1i ZWdpbm5pbmcgMCkpCisgICAgIChzaG91bGQgKGVxIChmYWNlLWF0LXBvaW50KSBmb250LWxvY2st dHlwZS1mYWNlKSkpCisKKyAgIChnb3RvLWNoYXIgKHBvaW50LW1pbikpCisgICAoZG9saXN0ICh0 ZXN0ICcoInBhY2swIikpCisgICAgIChzZWFyY2gtZm9yd2FyZCB0ZXN0KQorICAgICAoZ290by1j aGFyIChtYXRjaC1iZWdpbm5pbmcgMCkpCisgICAgIChzaG91bGQgKG5vdCAoZXEgKGZhY2UtYXQt cG9pbnQpIGZvbnQtbG9jay10eXBlLWZhY2UpKSkpKSkKKworKGVydC1kZWZ0ZXN0IHB5dGhvbi10 cy1tb2RlLWNsYXNzLXBhdHRlcm5zLWZhY2UgKCkKKyAgKHB5dGhvbi10cy10ZXN0cy13aXRoLXRl bXAtYnVmZmVyCisgICAibWF0Y2ggdHQ6CisgICAgICAgIGNhc2Ugc3RyKCk6CisgICAgICAgICAg ICBwYXNzCisgICAgICAgIGNhc2UgW1R5cGUwKCkgfCBieXRlcyhiKSB8IHBhY2swLnBhY2sxLlR5 cGUxKCldOgorICAgICAgICAgICAgcGFzcworICAgICAgICBjYXNlIHsnaSc6IGludChpKSwgJ2Yn OiBmbG9hdCgpIGFzIGZ9OgorICAgICAgICAgICAgcGFzcyIKKworICAgKGRvbGlzdCAodGVzdCAn KCJzdHIiICJUeXBlMCIgImJ5dGVzIiAiVHlwZTEiICJpbnQiICJmbG9hdCIpKQorICAgICAoc2Vh cmNoLWZvcndhcmQgdGVzdCkKKyAgICAgKGdvdG8tY2hhciAobWF0Y2gtYmVnaW5uaW5nIDApKQor ICAgICAoc2hvdWxkIChlcSAoZmFjZS1hdC1wb2ludCkgZm9udC1sb2NrLXR5cGUtZmFjZSkpKQor CisgICAoZ290by1jaGFyIChwb2ludC1taW4pKQorICAgKGRvbGlzdCAodGVzdCAnKCJwYWNrMCIg InBhY2sxIikpCisgICAgIChzZWFyY2gtZm9yd2FyZCB0ZXN0KQorICAgICAoZ290by1jaGFyICht YXRjaC1iZWdpbm5pbmcgMCkpCisgICAgIChzaG91bGQgKG5vdCAoZXEgKGZhY2UtYXQtcG9pbnQp IGZvbnQtbG9jay10eXBlLWZhY2UpKSkpKSkKKworKGVydC1kZWZ0ZXN0IHB5dGhvbi10cy1tb2Rl LWRvdHRlZC1kZWNvcmF0b3ItZmFjZS0xICgpCisgIChweXRob24tdHMtdGVzdHMtd2l0aC10ZW1w LWJ1ZmZlcgorICAgIkBweXRlc3QubWFyay5za2lwCisgICAgQHB5dGVzdC5tYXJrLnNraXAocmVh c29uPSdtc2cnKQorICAgIGRlZiB0ZXN0KCk6IgorCisgICAoZG9saXN0ICh0ZXN0ICcoInB5dGVz dCIgIm1hcmsiICJza2lwIiAicHl0ZXN0IiAibWFyayIgInNraXAiKSkKKyAgICAgKHNlYXJjaC1m b3J3YXJkIHRlc3QpCisgICAgIChnb3RvLWNoYXIgKG1hdGNoLWJlZ2lubmluZyAwKSkKKyAgICAg KHNob3VsZCAoZXEgKGZhY2UtYXQtcG9pbnQpIGZvbnQtbG9jay10eXBlLWZhY2UpKSkpKQorCiso ZXJ0LWRlZnRlc3QgcHl0aG9uLXRzLW1vZGUtZG90dGVkLWRlY29yYXRvci1mYWNlLTIgKCkKKyAg KHB5dGhvbi10cy10ZXN0cy13aXRoLXRlbXAtYnVmZmVyCisgICAiQHB5dGVzdC5tYXJrLnNraXAo cmVhc29uPSdtc2cnKQorICAgIGRlZiB0ZXN0KCk6IgorCisgICAoc2V0b3B0IHRyZWVzaXQtZm9u dC1sb2NrLWxldmVsIDQpCisgICAoZG9saXN0ICh0ZXN0ICcoInB5dGVzdCIgIm1hcmsiICJza2lw IikpCisgICAgIChzZWFyY2gtZm9yd2FyZCB0ZXN0KQorICAgICAoZ290by1jaGFyIChtYXRjaC1i ZWdpbm5pbmcgMCkpCisgICAgIChzaG91bGQgKGVxIChmYWNlLWF0LXBvaW50KSBmb250LWxvY2st dHlwZS1mYWNlKSkpKSkKKworKGVydC1kZWZ0ZXN0IHB5dGhvbi10cy1tb2RlLWJ1aWx0aW4tY2Fs bC1mYWNlICgpCisgIChweXRob24tdHMtdGVzdHMtd2l0aC10ZW1wLWJ1ZmZlcgorICAgImFsbCgp IgorICAgOzsgZW5hYmxlICdmdW5jdGlvbicgZmVhdHVyZSBmcm9tIDR0aCBsZXZlbAorICAgKHNl dG9wdCB0cmVlc2l0LWZvbnQtbG9jay1sZXZlbCA0KQorICAgKHNob3VsZCAoZXEgKGZhY2UtYXQt cG9pbnQpIGZvbnQtbG9jay1idWlsdGluLWZhY2UpKSkpCisKKyhlcnQtZGVmdGVzdCBweXRob24t dHMtbW9kZS1pbnRlcnBvbGF0aW9uLW5lc3RlZC1zdHJpbmcgKCkKKyAgKHB5dGhvbi10cy10ZXN0 cy13aXRoLXRlbXAtYnVmZmVyCisgICAidCA9IGZcImJlZyB7VHJ1ZSArICdzdHJpbmcnfVwiIgor CisgICAoc2VhcmNoLWZvcndhcmQgIlRydWUiKQorICAgKGdvdG8tY2hhciAobWF0Y2gtYmVnaW5u aW5nIDApKQorICAgKHNob3VsZCAoZXEgKGZhY2UtYXQtcG9pbnQpIGZvbnQtbG9jay1jb25zdGFu dC1mYWNlKSkKKworICAgKGdvdG8tY2hhciAocG9pbnQtbWluKSkKKyAgIChkb2xpc3QgKHRlc3Qg JygiZiIgInsiICIrIiAifSIpKQorICAgICAoc2VhcmNoLWZvcndhcmQgdGVzdCkKKyAgICAgKGdv dG8tY2hhciAobWF0Y2gtYmVnaW5uaW5nIDApKQorICAgICAoc2hvdWxkIChub3QgKGVxIChmYWNl LWF0LXBvaW50KSBmb250LWxvY2stc3RyaW5nLWZhY2UpKSkpCisKKworICAgKGdvdG8tY2hhciAo cG9pbnQtbWluKSkKKyAgIChkb2xpc3QgKHRlc3QgJygiYmVnIiAiJ3N0cmluZyciICJcIiIpKQor ICAgICAoc2VhcmNoLWZvcndhcmQgdGVzdCkKKyAgICAgKGdvdG8tY2hhciAobWF0Y2gtYmVnaW5u aW5nIDApKQorICAgICAoc2hvdWxkIChlcSAoZmFjZS1hdC1wb2ludCkgZm9udC1sb2NrLXN0cmlu Zy1mYWNlKSkpKSkKKworKGVydC1kZWZ0ZXN0IHB5dGhvbi10cy1tb2RlLWRpc2FibGVkLXN0cmlu Zy1pbnRlcnBvbGF0aW9uICgpCisgIChweXRob24tdHMtdGVzdHMtd2l0aC10ZW1wLWJ1ZmZlcgor ICAgInQgPSBmXCJiZWcge1RydWUgKyB2YXJ9XCIiCisKKyAgICh1bndpbmQtcHJvdGVjdAorICAg ICAgIChwcm9nbgorICAgICAgICAgKHNldGYgKG50aCAyIHRyZWVzaXQtZm9udC1sb2NrLWZlYXR1 cmUtbGlzdCkKKyAgICAgICAgICAgICAgIChyZW1xICdzdHJpbmctaW50ZXJwb2xhdGlvbiAobnRo IDIgdHJlZXNpdC1mb250LWxvY2stZmVhdHVyZS1saXN0KSkpCisgICAgICAgICAoc2V0b3B0IHRy ZWVzaXQtZm9udC1sb2NrLWxldmVsIDMpCisKKyAgICAgICAgIChzZWFyY2gtZm9yd2FyZCAiZiIp CisgICAgICAgICAoZ290by1jaGFyIChtYXRjaC1iZWdpbm5pbmcgMCkpCisgICAgICAgICAoc2hv dWxkIChub3QgKGVxIChmYWNlLWF0LXBvaW50KSBmb250LWxvY2stc3RyaW5nLWZhY2UpKSkKKwor ICAgICAgICAgKGRvbGlzdCAodGVzdCAnKCJcIiIgImJlZyIgInsiICJUcnVlIiAidmFyIiAifSIg IlwiIikpCisgICAgICAgICAgIChzZWFyY2gtZm9yd2FyZCB0ZXN0KQorICAgICAgICAgICAoZ290 by1jaGFyIChtYXRjaC1iZWdpbm5pbmcgMCkpCisgICAgICAgICAgIChzaG91bGQgKGVxIChmYWNl LWF0LXBvaW50KSBmb250LWxvY2stc3RyaW5nLWZhY2UpKSkpCisKKyAgICAoc2V0ZiAobnRoIDIg dHJlZXNpdC1mb250LWxvY2stZmVhdHVyZS1saXN0KQorICAgICAgICAgIChhcHBlbmQgKG50aCAy IHRyZWVzaXQtZm9udC1sb2NrLWZlYXR1cmUtbGlzdCkgJyhzdHJpbmctaW50ZXJwb2xhdGlvbikp KSkpKQorCisoZXJ0LWRlZnRlc3QgcHl0aG9uLXRzLW1vZGUtaW50ZXJwb2xhdGlvbi1kb2Mtc3Ry aW5nICgpCisgIChweXRob24tdHMtdGVzdHMtd2l0aC10ZW1wLWJ1ZmZlcgorICAgImZcIlwiXCJi ZWcgeydzMScgKyBUcnVlICsgJ3MyJ30gZW5kXCJcIlwiIgorCisgICAoc2VhcmNoLWZvcndhcmQg IlRydWUiKQorICAgKGdvdG8tY2hhciAobWF0Y2gtYmVnaW5uaW5nIDApKQorICAgKHNob3VsZCAo ZXEgKGZhY2UtYXQtcG9pbnQpIGZvbnQtbG9jay1jb25zdGFudC1mYWNlKSkKKworICAgKGdvdG8t Y2hhciAocG9pbnQtbWluKSkKKyAgIChkb2xpc3QgKHRlc3QgJygiZiIgInsiICIrIiAifSIpKQor ICAgICAoc2VhcmNoLWZvcndhcmQgdGVzdCkKKyAgICAgKGdvdG8tY2hhciAobWF0Y2gtYmVnaW5u aW5nIDApKQorICAgICAoc2hvdWxkIChub3QgKGVxIChmYWNlLWF0LXBvaW50KSBmb250LWxvY2st c3RyaW5nLWZhY2UpKSkpCisKKyAgIChnb3RvLWNoYXIgKHBvaW50LW1pbikpCisgICAoZG9saXN0 ICh0ZXN0ICcoIlwiXCJcIiIgImJlZyIgImVuZCIgIlwiXCJcIiIpKQorICAgICAoc2VhcmNoLWZv cndhcmQgdGVzdCkKKyAgICAgKGdvdG8tY2hhciAobWF0Y2gtYmVnaW5uaW5nIDApKQorICAgICAo c2hvdWxkIChlcSAoZmFjZS1hdC1wb2ludCkgZm9udC1sb2NrLWRvYy1mYWNlKSkpCisKKyAgIChn b3RvLWNoYXIgKHBvaW50LW1pbikpCisgICAoZG9saXN0ICh0ZXN0ICcoIidzMSciICInczInIikp CisgICAgIChzZWFyY2gtZm9yd2FyZCB0ZXN0KQorICAgICAoZ290by1jaGFyIChtYXRjaC1iZWdp bm5pbmcgMCkpCisgICAgIChzaG91bGQgKGVxIChmYWNlLWF0LXBvaW50KSBmb250LWxvY2stc3Ry aW5nLWZhY2UpKSkpKQorCiAocHJvdmlkZSAncHl0aG9uLXRlc3RzKQogCiA7OzsgcHl0aG9uLXRl c3RzLmVsIGVuZHMgaGVyZQotLSAKMi4zNC4xCgo= ------==--bound.277746.pyij2bcyucz6ldu4.iva.yp-c.yandex.net-- From debbugs-submit-bounces@debbugs.gnu.org Tue Dec 12 03:25:10 2023 Received: (at 67061) by debbugs.gnu.org; 12 Dec 2023 08:25:10 +0000 Received: from localhost ([127.0.0.1]:55217 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rCy4j-0007ff-SE for submit@debbugs.gnu.org; Tue, 12 Dec 2023 03:25:10 -0500 Received: from mail-oi1-x231.google.com ([2607:f8b0:4864:20::231]:51402) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rCy4e-0007f3-Cy for 67061@debbugs.gnu.org; Tue, 12 Dec 2023 03:25:08 -0500 Received: by mail-oi1-x231.google.com with SMTP id 5614622812f47-3b9e2a014e8so3663488b6e.2 for <67061@debbugs.gnu.org>; Tue, 12 Dec 2023 00:24:49 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1702369483; x=1702974283; darn=debbugs.gnu.org; h=content-transfer-encoding:in-reply-to:from:references:cc:to :content-language:subject:user-agent:mime-version:date:message-id :from:to:cc:subject:date:message-id:reply-to; bh=8il+Wj6PdqRnvWWfMp/NLw1V5MoOV7hBwCuehu3ldPY=; b=B3VUz9lghzr6vFfsqJ51aHc+gPJ/4uC/+rD5OlEPWNd7n0+FoXsXKxkSiIY7CEm6Vo 2rS9dHKmKRmxJ6Z+pCcytsxsG+dHgl6Gb/+zCcUF5cSCySiX9JkbxDw0qpeJL9NW8nke t4ZvfkquvvFK9mZ612VHWmgMlAqyqxiFcWM6Sov1L/Sm2UJiYfwdEiwNqi1sR+rPvb6r 2/a94IbSeMNnbSd3cJnv2z5QUCTtS8BFJUcS0HBRp0QTaz2EdKg2EdBkWBN54rUsY7nh JMd0TCTKt17fmMm/+mb/jc1cH97M8H7x1/y2vgmrB15W+67DYF+APhoH8kyzRMaxlgmK 7Rqw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1702369483; x=1702974283; h=content-transfer-encoding:in-reply-to:from:references:cc:to :content-language:subject:user-agent:mime-version:date:message-id :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=8il+Wj6PdqRnvWWfMp/NLw1V5MoOV7hBwCuehu3ldPY=; b=coMcXEx4C2jYFTkfbJ8NhXmpNvqMP/7TAG0p3hSdKAom6UU5U49D4riZ/IpEaTOdEy 26y3zmHXQeZl3r+dl95U1t+fNEV4OLCjd6ow5wd5CrqsVAl0mi9k7QCZ/Nw4XUL6Sulv fWiAOAwedbW2KCvha8kg5RvFciQyGJ1WwbjV8LeH4Fr9ajKZzSYj9IKWLPbEBX2gWckk Vi79s6xVEBaZHalHTRNlu+MAoUbBjn8Op4wg5VaNBmmOZYid2K0qq75Fw9x+MIXSzt1y Y+HwcQ3Tez1w57C9YSCF6D0H8J5p8dWW9tSUH+a3wv/L0oo6Jz+BsAJNGvGguRgTmg0J 0jGA== X-Gm-Message-State: AOJu0YxeO6cMgXrQHEjmeD1Sj/Pt1HN7an499dAbT9zdNGKX6x9m840n +ITx4/oxqg9sxLJxw8u2fIA= X-Google-Smtp-Source: AGHT+IG90rYZaKFyJfW0c9pZHBk+dCrtwDEGdD4SEFJeljsZivrt7BkUpPmQcQOhBi838tRNjqFBrA== X-Received: by 2002:a05:6808:2099:b0:3b9:e618:1861 with SMTP id s25-20020a056808209900b003b9e6181861mr7554390oiw.1.1702369483412; Tue, 12 Dec 2023 00:24:43 -0800 (PST) Received: from [192.168.1.7] (172-117-161-177.res.spectrum.com. [172.117.161.177]) by smtp.gmail.com with ESMTPSA id d18-20020aa78692000000b006bdd7cbcf98sm7580963pfo.182.2023.12.12.00.24.42 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Tue, 12 Dec 2023 00:24:43 -0800 (PST) Message-ID: <78ffdcf3-e322-49ea-a0d5-d0485ade9e73@gmail.com> Date: Tue, 12 Dec 2023 00:24:41 -0800 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: bug#67061: [PATCH] Improve syntax highlighting for python-ts-mode Content-Language: en-US To: Denis Zubarev , Dmitry Gutov , Eli Zaretskii 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> From: Yuan Fu In-Reply-To: <95071702343720@mail.yandex.ru> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit X-Spam-Score: -0.0 (/) X-Debbugs-Envelope-To: 67061 Cc: "67061@debbugs.gnu.org" <67061@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: -1.0 (-) On 12/11/23 5:18 PM, Denis Zubarev wrote: > Yuan and Dmitry, thank you for review and suggestions. > > Can we do this instead: in python--treesit-fontify-string, we check if >   string-interpolation feature is enabled, if it is, fontify string_start, >   string_content and string_end only; if not, fontify the whole string. > Done. > Enable interpolation highlighting only if 'string-interpolation is > presented on the third level of treesit-font-lock-feature-list. > Personally, If I saw a f-string with an interpolation fontified as > string, I would assume that it is bug. > Clearly it is not a string, so it should be highlighted distinctly. > But if it is a convention across all languages, we should follow it. I  encourage everyone to also think in terms of fontification levels, in addition to features. For many Emacs users, they want a quieter or even minimal fontification. Some people only want comment and function names highlighted, and they can get it by setting the fontification level to 1, because python-ts-mode only activates the comment and definition feature at level 1. The string feature is at level 2, this level is still relatively simplistic. And full string interpolation probably don't belong at that level. That's why I separated it out into another feature, and placed string-interpolation at level 3. > > I think "for var in range(3)" should be part of the "definition" feature >   because a variable is defined there. Alongside parameters. > I added it to definitions. Again, if we think of fontification levels, the definition feature is about fontifying the function names of definitions, and it's at a low level (level 1). Non-essential fontification like "var" shouldn't be activated at that level. So I suggest to put it in the variable feature, along with many other non-essential fontifications. (Variable feature is placed at level 4.) > My thoughts about parameters. I started to extend rules for them since > they are very limited now. > But I'm not sure what face to use for them. > I would like to not use the same face as for assignments, because I'd > want to highlight them differently. > It seems that there is no appropriate face in font-lock.el, so I ended > up creating my own face in my config. > Does it make sense to add new face for parameters in font-lock.el? > Or it is too small feature for its own face? > I also apply this face for keyword argument in function calls. To be honest, I don't have any good ideas. Perhaps we can add a parameter face that inherits from variable name face by default, Dmitry, WDYT? > Summary for all changes in the patch. > definition feature: > `for var in range(3)` highlight var as font-lock-variable-name-face > assignment feature: > var := 3 (named_expression) > var *= 3 (augmented_assignment) > Highlight var as font-lock-variable-name-face. > Make list_splat_pattern query more precise. > list_splat_pattern may appear not only in assignments: var, *rest = > call(), > but in the parameter list too: def f(*args). > Highlight args only for the first case in assignment feature. > type feature: > Fontify built-ins (dict,list,etc.) as types when they are used in type > hints. > support nested union types, for example `Lvl1 | Lvl2[Lvl3[Lvl3], Lvl2]`. > This structure is represented via nesting binary_operator and > subscript nodes in the grammar. > Function python--treesit-fontify-union-types iterates over all > children and highlight identifier nodes. > Fontify base class names in the class definition: class Temp(Base1, > pack0.Base2): > Fontify class patterns in case statement: case [TempC() | bytes(b)]: > Highlight the second argument as a type in isinstance/issubclass call: > isinstance(var2, (str, dict, Type1)); issubclass(var1, int|str) > For all dotted names of a type highlight only the last part of the name, > e.g. collections.abc.Iterator. > decorator feature: > Highlight dotted names: @pytest.mark.skip > Function python--treesit-fontify-dotted-decorator iterates over all > nested attribute nodes and highlight identifier nodes. > When font-lock-level is set 4, `skip` had function-call face in: > @pytest.mark.skip(reason='t') > Add `:override t` to decorator feature to override function-call face. > string feature: > Enable interpolation highlighting only if string-interpolation is > presented on the third level of treesit-font-lock-feature-list. > Fix fontification of strings inside of f-strings interpolation, > e.g. for f"beg {'nested'}" - 'nested' was not fontified as string. Instead of the third level, the check should use the value treesit-font-lock-level. And it should check for each level smaller than or equal to treesit-font-lock-level. > function feature: > Do not override the face of builtin functions (all, bytes etc.) with > the function call face > keyword feature: > Add "is not"  to the `python--treesit-keywords` list. > Thanks, they look good. The patch is getting rather large, let's focus on getting the existing changes merged rather than adding new stuff to it. Though I think your copyright assignment hasn't completed, right? Yuan From debbugs-submit-bounces@debbugs.gnu.org Tue Dec 12 19:45:00 2023 Received: (at 67061) by debbugs.gnu.org; 13 Dec 2023 00:45:01 +0000 Received: from localhost ([127.0.0.1]:57956 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rDDMy-00073v-D7 for submit@debbugs.gnu.org; Tue, 12 Dec 2023 19:45:00 -0500 Received: from wout1-smtp.messagingengine.com ([64.147.123.24]:46607) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rDDMw-00073h-HS for 67061@debbugs.gnu.org; Tue, 12 Dec 2023 19:44:59 -0500 Received: from compute5.internal (compute5.nyi.internal [10.202.2.45]) by mailout.west.internal (Postfix) with ESMTP id 8A6FE3200B03; Tue, 12 Dec 2023 19:44:36 -0500 (EST) Received: from mailfrontend1 ([10.202.2.162]) by compute5.internal (MEProxy); Tue, 12 Dec 2023 19:44:36 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gutov.dev; h=cc :cc:content-transfer-encoding:content-type:content-type:date :date:from:from:in-reply-to:in-reply-to:message-id:mime-version :references:reply-to:subject:subject:to:to; s=fm3; t=1702428276; x=1702514676; bh=UISs3FANMAyg/nRQSxHTl/32uX16b6U3HZFaXhdDkSA=; b= W86RxARu5jCe5b5/VK9OAuH8ceKQr4FTf0tiRv2BE/+1A46LibiT3s4SChgbv4LH 8N7NFSpCKMTF5xGZP397RIWDSmib7THPYkN/NwGVSlZQP3XoJJvVMGL4y0c+4cWs FM8JipHN8HzE6x/h0QEa7MEs0tMiHaVeXGkAPtB/lkHek2zUtpym+H/DqeTtPny0 j5i67t7A4rEXa06xAejE4xMr8hXGoHJ8qHAx+7CmUoy+TEIXMPBe1zY5hIQMVoDG tLGcVZiu0dnP9OKgAsMXko+7Rz/PkhK3pS42rHCgM+zRnz2dn4//bAHCmyf0L7Qz KXJRF/lt8+g+HeA1IA39PA== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:cc:content-transfer-encoding :content-type:content-type:date:date:feedback-id:feedback-id :from:from:in-reply-to:in-reply-to:message-id:mime-version :references:reply-to:subject:subject:to:to:x-me-proxy:x-me-proxy :x-me-sender:x-me-sender:x-sasl-enc; s=fm1; t=1702428276; x= 1702514676; bh=UISs3FANMAyg/nRQSxHTl/32uX16b6U3HZFaXhdDkSA=; b=X PX+lWPnVn25ePBfx7YWW9HDQobBUB0JDx5REyQ5586iVf4vRe2EQaOAMSn5x0GwK kMw4X/AhoxbFFRjpBg+xVB3r17N3krZ8pPX4WWOwg1OugsUaJy05r0+N5SQtgBKN kSFPp3v7ZqR6M6kin3oSPCONGm660xlalO2NXd0MqfPkX48cALsOKK5USryzpfv4 hRbKpOlSSSPt3e8o67tczv17OfKF7w6dQrd6Qql5B7ixnAy1wL5fHbGdHZvdHE5u TUjKkCEJz081MS2mvoleLPL+/SNHcYa5yTWP/gr2ipdOuwIfRTbWrJxjxGQQ0UeN MIYIvi92C75KWit3d2mHA== X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedvkedrudelhedgvdejucetufdoteggodetrfdotf fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfqfgfvpdfurfetoffkrfgpnffqhgen uceurghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmne cujfgurhepkfffgggfuffvvehfhfgjtgfgsehtkeertddtfeejnecuhfhrohhmpeffmhhi thhrhicuifhuthhovhcuoegumhhithhrhiesghhuthhovhdruggvvheqnecuggftrfgrth htvghrnhephfffheeljeffgeffueeghfekkedtfffgheejvdegjeettdduheeufffggfef jeehnecuvehluhhsthgvrhfuihiivgeptdenucfrrghrrghmpehmrghilhhfrhhomhepug hmihhtrhihsehguhhtohhvrdguvghv X-ME-Proxy: Feedback-ID: i0e71465a:Fastmail Received: by mail.messagingengine.com (Postfix) with ESMTPA; Tue, 12 Dec 2023 19:44:34 -0500 (EST) Message-ID: Date: Wed, 13 Dec 2023 02:44:30 +0200 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.13.0 Subject: Re: bug#67061: [PATCH] Improve syntax highlighting for python-ts-mode Content-Language: en-US To: Yuan Fu , Denis Zubarev , Eli Zaretskii 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> From: Dmitry Gutov In-Reply-To: <78ffdcf3-e322-49ea-a0d5-d0485ade9e73@gmail.com> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit X-Spam-Score: -2.9 (--) X-Debbugs-Envelope-To: 67061 Cc: "67061@debbugs.gnu.org" <67061@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.9 (---) On 12/12/2023 10:24, Yuan Fu wrote: >> > I think "for var in range(3)" should be part of the "definition" >> feature >>   because a variable is defined there. Alongside parameters. >> I added it to definitions. > > Again, if we think of fontification levels, the definition feature is > about fontifying the function names of definitions, and it's at a low > level (level 1). Non-essential fontification like "var" shouldn't be > activated at that level. So I suggest to put it in the variable feature, > along with many other non-essential fontifications. (Variable feature is > placed at level 4.) I disagree: 'var' in this example is not much different from a function parameter. It's a definite place where a variable's name introduced in the current scope. Python doesn't have special keywords for variable declarations (unlike 'let' in JavaScript or typed declaration in C), so the first time a variable is introduced serves as its declaration. For assignments, we can't easily determine which is the first time for a given scope, but examples like 'for var in ...' or 'except ZeroDivisionError as e:' or '[... for var in ...]' are all unambiguously variable definitions. So I think that: a) All variable definitions (functions parameters or not) should use font-lock-variable-name-face -- to make it easier to find where a given symbol is introduced. b) No font-lock-variable-name-face highlights should be put into the 'variable' feature, which is disabled by default. All of the examples above should either go into 'definition', or if somebody does like that approach, into some new 'variable-declaration' feature (enabled by default). And maybe some into 'assignment', which is on feature level 3. c) The 'variable' feature should, at this point, only contain the relatively useless highlights, since we don't track variable lifetimes yet. That's why it's disabled by default. The current situation across ts modes is that js-ts-mode has variable declarations in the 'definition' feature (and not by my hand, FWIW); ruby-ts-mode has a separate 'parameter-definition' feature that encompasses both parameters and other variables; in c-ts-mode highlighting for 'int i = 4' is split between 'definition' and 'assignment' (the latter seemingly redundant); typescript-ts-mode and rust-ts-mode also follow the principle, more or less. >> My thoughts about parameters. I started to extend rules for them since >> they are very limited now. >> But I'm not sure what face to use for them. >> I would like to not use the same face as for assignments, because I'd >> want to highlight them differently. >> It seems that there is no appropriate face in font-lock.el, so I ended >> up creating my own face in my config. >> Does it make sense to add new face for parameters in font-lock.el? >> Or it is too small feature for its own face? >> I also apply this face for keyword argument in function calls. > To be honest, I don't have any good ideas. Perhaps we can add a > parameter face that inherits from variable name face by default, Dmitry, > WDYT? As per above, parameters don't seem too different from any other variable declarations from my POV. They are similarly useful, so I'd highlight them the same way. Do we want to have a common face which would inherit from font-lock-variable-name-face and would be used solely for function/methods parameters and nothing else? I don't object, but I don't quite see the point either. From debbugs-submit-bounces@debbugs.gnu.org Tue Dec 12 22:50:20 2023 Received: (at 67061) by debbugs.gnu.org; 13 Dec 2023 03:50:20 +0000 Received: from localhost ([127.0.0.1]:58022 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rDGGJ-00044r-K5 for submit@debbugs.gnu.org; Tue, 12 Dec 2023 22:50:20 -0500 Received: from mail-pf1-x42a.google.com ([2607:f8b0:4864:20::42a]:49609) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rDGGH-00044Y-Qd for 67061@debbugs.gnu.org; Tue, 12 Dec 2023 22:50:18 -0500 Received: by mail-pf1-x42a.google.com with SMTP id d2e1a72fcca58-6ce6dd83945so5872580b3a.3 for <67061@debbugs.gnu.org>; Tue, 12 Dec 2023 19:50:01 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1702439396; x=1703044196; darn=debbugs.gnu.org; h=content-transfer-encoding:in-reply-to:from:references:cc:to :content-language:subject:user-agent:mime-version:date:message-id :from:to:cc:subject:date:message-id:reply-to; bh=yPTUSdIJoJLhmihB+QgEtZ5mzNffI8A7rkO2ME40VRA=; b=N7NQodBE9bXwdkzYwjH6qngY7vasOxKw+iw/hIB+rSd1YQhhEbaQzSkIxyb2xkgfKy 3kFj685csrwZnPrDy1DnNF7HDhrvk7AhD64SiPE+ex2miln4VPB5H/KXca//tbWkQg9H 2G4fpdohmVle0cR1X0Yn0gUQdPkZt3/HhYdCxyfY96xokejWXk/TAoR3dR3EdjY7bbde q1YJ3QAEByebmjb8dZkzoY0Lm+LdGXtWZV+/Kmb1JJKiPi3nMd82stJHHh5WYmRXA5Do 52sUpHKKdNP8iF017p9V2j6Rawj4VxPv84lFh/5eNHr9jrOGaVIOkStRfsSNePn2ApJK GilQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1702439396; x=1703044196; h=content-transfer-encoding:in-reply-to:from:references:cc:to :content-language:subject:user-agent:mime-version:date:message-id :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=yPTUSdIJoJLhmihB+QgEtZ5mzNffI8A7rkO2ME40VRA=; b=wV06qPCdSe5wvm6C6Qfk+CUgQ+DBkzVimbTzZKE6k+24Qt3LL7IP69TIRG12SeQRQ9 K3LOqwA96NKaE/+vu4yF2W+T10GkQXnxD3MjFRO6w+s7tNl1UB6BdzIrxFFEaZSB7XSF iAZEmNk3y/gn76/lWr93RtLIro24mg4rSgBcmqZJqG2784bIScK1oV48265loX9Ou1DT +dF6I6R0BpESkKkC7JUqNbfAD5I2IwO90fGF0qdLCfOcto4JbUf0YSfKqsZ6uqZFykOJ xxf8t7K6X4zSejRdIg+D8ONHoNJ++wy8vcwnq71ov65Nna+elGRFEK1baJa35pAOs6F/ 0R/Q== X-Gm-Message-State: AOJu0YxEXGPaj/PECu4lDwJlNKtGYYXsBzquYZLXBURVMM1AmoRUDtaM 9UJftN9VqqmyNevpThR0pvRb8JYxs8ZAWw== X-Google-Smtp-Source: AGHT+IF2IhMLGBpoB9SGB5Tr3xt6eF5sOE90IPEV/Z4omxRNUSyE5pnOEcGTCSwDoYjnEvpQNOE0Sg== X-Received: by 2002:a05:6a20:1583:b0:18f:c42c:d735 with SMTP id h3-20020a056a20158300b0018fc42cd735mr9839767pzj.99.1702439396051; Tue, 12 Dec 2023 19:49:56 -0800 (PST) Received: from [192.168.1.7] (172-117-161-177.res.spectrum.com. [172.117.161.177]) by smtp.gmail.com with ESMTPSA id jd21-20020a170903261500b001d347c435ffsm737385plb.36.2023.12.12.19.49.55 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Tue, 12 Dec 2023 19:49:55 -0800 (PST) Message-ID: Date: Tue, 12 Dec 2023 19:49:54 -0800 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: bug#67061: [PATCH] Improve syntax highlighting for python-ts-mode Content-Language: en-US To: Dmitry Gutov , Denis Zubarev , Eli Zaretskii 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> From: Yuan Fu In-Reply-To: Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit X-Spam-Score: -0.0 (/) X-Debbugs-Envelope-To: 67061 Cc: "67061@debbugs.gnu.org" <67061@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: -1.0 (-) On 12/12/23 4:44 PM, Dmitry Gutov wrote: > On 12/12/2023 10:24, Yuan Fu wrote: >>> > I think "for var in range(3)" should be part of the "definition" >>> feature >>>   because a variable is defined there. Alongside parameters. >>> I added it to definitions. >> >> Again, if we think of fontification levels, the definition feature is >> about fontifying the function names of definitions, and it's at a low >> level (level 1). Non-essential fontification like "var" shouldn't be >> activated at that level. So I suggest to put it in the variable >> feature, along with many other non-essential fontifications. >> (Variable feature is placed at level 4.) > > I disagree: 'var' in this example is not much different from a > function parameter. It's a definite place where a variable's name > introduced in the current scope. > > Python doesn't have special keywords for variable declarations (unlike > 'let' in JavaScript or typed declaration in C), so the first time a > variable is introduced serves as its declaration. For assignments, we > can't easily determine which is the first time for a given scope, but > examples like 'for var in ...' or 'except ZeroDivisionError as e:' or > '[... for var in ...]' are all unambiguously variable definitions. Sure, I don't really care too much about which feature should a rule be in; what I do care about is to keep first and second fontification level relatively quite and minimal, and keep level 3 reasonably conservative. And people that want a lot of highlight can turn on level 4. > > So I think that: > > a) All variable definitions (functions parameters or not) should use > font-lock-variable-name-face -- to make it easier to find where a > given symbol is introduced. > b) No font-lock-variable-name-face highlights should be put into the > 'variable' feature, which is disabled by default. All of the examples > above should either go into 'definition', or if somebody does like > that approach, into some new 'variable-declaration' feature (enabled > by default). And maybe some into 'assignment', which is on feature > level 3. > c) The 'variable' feature should, at this point, only contain the > relatively useless highlights, since we don't track variable lifetimes > yet. That's why it's disabled by default. > > The current situation across ts modes is that js-ts-mode has variable > declarations in the 'definition' feature (and not by my hand, FWIW); Gah! > ruby-ts-mode has a separate 'parameter-definition' feature that > encompasses both parameters and other variables; > in c-ts-mode highlighting for 'int i = 4' is split between > 'definition' and 'assignment' (the latter seemingly redundant); Should've been in assignment IMO. I probably overlooked it. > typescript-ts-mode and rust-ts-mode also follow the principle, more or > less. Well, the only ts-mode that I actually wrote is python-ts-mode. For other major modes, I can only suggest. Even for python-ts-mode, I don't want to exert my personal opinion onto it too much, except for keeping font-lock level 1 and 2 quiet. >>> My thoughts about parameters. I started to extend rules for them >>> since they are very limited now. >>> But I'm not sure what face to use for them. >>> I would like to not use the same face as for assignments, because >>> I'd want to highlight them differently. >>> It seems that there is no appropriate face in font-lock.el, so I >>> ended up creating my own face in my config. >>> Does it make sense to add new face for parameters in font-lock.el? >>> Or it is too small feature for its own face? >>> I also apply this face for keyword argument in function calls. >> To be honest, I don't have any good ideas. Perhaps we can add a >> parameter face that inherits from variable name face by default, >> Dmitry, WDYT? > > As per above, parameters don't seem too different from any other > variable declarations from my POV. They are similarly useful, so I'd > highlight them the same way. > > Do we want to have a common face which would inherit from > font-lock-variable-name-face and would be used solely for > function/methods parameters and nothing else? I don't object, but I > don't quite see the point either. I agree. Yuan From debbugs-submit-bounces@debbugs.gnu.org Wed Dec 13 06:53:28 2023 Received: (at 67061) by debbugs.gnu.org; 13 Dec 2023 11:53:28 +0000 Received: from localhost ([127.0.0.1]:58322 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rDNns-00012l-EM for submit@debbugs.gnu.org; Wed, 13 Dec 2023 06:53:28 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:54198) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rDNnp-00012U-IC for 67061@debbugs.gnu.org; Wed, 13 Dec 2023 06:53:26 -0500 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 1rDNnT-0001HU-S3; Wed, 13 Dec 2023 06:53:03 -0500 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=n9I9Eyz2VP2Vxr7Ij01vYhOK+ojCbSVI5Q1VFiaOKXY=; b=DjQ8ZkHY57C6 jY336nfbhvda2+YvnEWrx38pF+owqQEYOhu69rdqC+4BjFt/yoZnl8EL25RoRCxug4EEAYMIRHj50 YHNU/Y3GBf0VeVYXb1+QPLTTGBNy7bwGhBei9oxIhNJii55tMNm+H4ahzqvM8jicWWHdDvuRBC0Ps roU7dTVl72VOhAUa/FF0k1pHNTiIqm8AyDgzN8jUa0tptuROF5eZD2eY3ErBqyVUMqDzdQLBgS3k+ qFVUITLJ6luZYe+aEN8QbHxj8L+t84PmquFrH8LY3x8UXFZH3iAAaRCb5v7s6RXOY/6dZptaTjy4r LUsCYm8BVCLokNO6xMlG0g==; Date: Wed, 13 Dec 2023 13:52:57 +0200 Message-Id: <83ttoms4iu.fsf@gnu.org> From: Eli Zaretskii To: Yuan Fu In-Reply-To: <78ffdcf3-e322-49ea-a0d5-d0485ade9e73@gmail.com> (message from Yuan Fu on Tue, 12 Dec 2023 00:24:41 -0800) Subject: Re: bug#67061: [PATCH] Improve syntax highlighting for python-ts-mode 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> X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 67061 Cc: dmitry@gutov.dev, dvzubarev@yandex.ru, 67061@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: Tue, 12 Dec 2023 00:24:41 -0800 > Cc: "67061@debbugs.gnu.org" <67061@debbugs.gnu.org> > From: Yuan Fu > > Thanks, they look good. The patch is getting rather large, let's focus > on getting the existing changes merged rather than adding new stuff to > it. Though I think your copyright assignment hasn't completed, right? Denis's assignment is on file, so we are good to go with his contributions. From debbugs-submit-bounces@debbugs.gnu.org Wed Dec 13 13:29:12 2023 Received: (at 67061) by debbugs.gnu.org; 13 Dec 2023 18:29:12 +0000 Received: from localhost ([127.0.0.1]:59662 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rDTyp-0006Sd-Ez for submit@debbugs.gnu.org; Wed, 13 Dec 2023 13:29:11 -0500 Received: from out4-smtp.messagingengine.com ([66.111.4.28]:56101) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rDTyj-0006S4-LR for 67061@debbugs.gnu.org; Wed, 13 Dec 2023 13:29:09 -0500 Received: from compute1.internal (compute1.nyi.internal [10.202.2.41]) by mailout.nyi.internal (Postfix) with ESMTP id 4692C5C040F; Wed, 13 Dec 2023 13:28:44 -0500 (EST) Received: from mailfrontend1 ([10.202.2.162]) by compute1.internal (MEProxy); Wed, 13 Dec 2023 13:28:44 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gutov.dev; h=cc :cc:content-transfer-encoding:content-type:content-type:date :date:from:from:in-reply-to:in-reply-to:message-id:mime-version :references:reply-to:subject:subject:to:to; s=fm3; t=1702492124; x=1702578524; bh=WcMQXgzYiDZ2fUhRrmwahHgoXszgoDKmHaJF+JWwFCw=; b= ycmuNJ92LuZBCV9e9t83ZWuVqMiLPQdwnhW1DTugFFDwWu36lwDaIj/SVk57DWNg RrV6LRAakO+kKrAImd3CZiIFkLzC+b8+rh5Lm8c9vN0flkprBX6e8IkVuB3XcK9S Ya2bLtGXx8Xlxi1Ag0XzAlWnMT/clHL/3NkeHE5RL66VxlUaepldO3M7yxFgnqdg OEAxgeCrzjjnQcCvSKR+OP6WV84Gi1byOlktyrn4sBT2i4thqm+3jEMChq0R+jGY E0RozFz1LN7ixauKj53N26C5rbewmFF8nigXwtT0tgXPiJpxg4EndmcJGvpnS1tA zPPqL6RMiRt1nLglQlpxNA== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:cc:content-transfer-encoding :content-type:content-type:date:date:feedback-id:feedback-id :from:from:in-reply-to:in-reply-to:message-id:mime-version :references:reply-to:subject:subject:to:to:x-me-proxy:x-me-proxy :x-me-sender:x-me-sender:x-sasl-enc; s=fm1; t=1702492124; x= 1702578524; bh=WcMQXgzYiDZ2fUhRrmwahHgoXszgoDKmHaJF+JWwFCw=; b=3 OZk2+cAJQoHCqJsx5EXJI2oaVHlJgus5b6wGm30q/SDCwtKAW03y2BjW+4SoPaSa Y1snIvEjeTVcygJ27AZAsXp+O9i6SdIPo540d08++vKqWSB56PnwIdMAOl/l3qNQ OgBwwvYRUbW3KcgPvnZf0w+r2D1jYdNnvOIbsbTA72fCg+dekUE8qt34/xVvde3s YKpgxQl8NgFvpfchoz2FvjjZhjKs1TBz88OJ3n6hmB6z1Vn7GhzzRhRNSkfRqvT+ ItU0TWqTEEN2IR1+m58GagxgZGBFq0+G06hcBsARHKI1RVT6uTky0qaABU+KYR+2 l0fOwKs3TtCFTgtHhJEKw== X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedvkedrudeljedgheefucetufdoteggodetrfdotf fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfqfgfvpdfurfetoffkrfgpnffqhgen uceurghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmne cujfgurhepkfffgggfuffvvehfhfgjtgfgsehtjeertddtfeejnecuhfhrohhmpeffmhhi thhrhicuifhuthhovhcuoegumhhithhrhiesghhuthhovhdruggvvheqnecuggftrfgrth htvghrnhepiefgteevheevveffheeltdeukeeiieekueefgedugfefgefhudelgfefveel vdevnecuvehluhhsthgvrhfuihiivgeptdenucfrrghrrghmpehmrghilhhfrhhomhepug hmihhtrhihsehguhhtohhvrdguvghv X-ME-Proxy: Feedback-ID: i0e71465a:Fastmail Received: by mail.messagingengine.com (Postfix) with ESMTPA; Wed, 13 Dec 2023 13:28:42 -0500 (EST) Message-ID: Date: Wed, 13 Dec 2023 20:28:39 +0200 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.13.0 Subject: Re: bug#67061: [PATCH] Improve syntax highlighting for python-ts-mode Content-Language: en-US To: Yuan Fu , Denis Zubarev , Eli Zaretskii 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> From: Dmitry Gutov In-Reply-To: Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-Spam-Score: -2.9 (--) X-Debbugs-Envelope-To: 67061 Cc: "67061@debbugs.gnu.org" <67061@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.9 (---) On 13/12/2023 05:49, Yuan Fu wrote: >> Python doesn't have special keywords for variable declarations (unlike >> 'let' in JavaScript or typed declaration in C), so the first time a >> variable is introduced serves as its declaration. For assignments, we >> can't easily determine which is the first time for a given scope, but >> examples like 'for var in ...' or 'except ZeroDivisionError as e:' or >> '[... for var in ...]' are all unambiguously variable definitions. > > Sure, I don't really care too much about which feature should a rule be > in; what I do care about is to keep first and second fontification level > relatively quite and minimal, and keep level 3 reasonably conservative. > And people that want a lot of highlight can turn on level 4. I don't mind if assignments in python-ts-mode go to level 3, that's what ruby-ts-mode does anyway. But '[... for var in ...]' really should use variable-name-face and it should be in the default config (level 3 at most). I think the 'definition' feature is good for it (going by the name, since it's an implicit variable declaration), but it could be split off into a separate feature too. >> in c-ts-mode highlighting for 'int i = 4' is split between >> 'definition' and 'assignment' (the latter seemingly redundant); > > Should've been in assignment IMO. I probably overlooked it. The current state is that the query in 'definition' can highlight both 'int i;' and 'int i = 4;'. The query in 'assignment' in c-ts-mode only highlights 'int i = 4;'. If you just keep the latter query, 'int i;' would stay unfontified. If you move the corresponding query from 'definition' to 'assignment', it would start matching non-assignment declarations too. Might seem odd. >> typescript-ts-mode and rust-ts-mode also follow the principle, more or >> less. > > Well, the only ts-mode that I actually wrote is python-ts-mode. For > other major modes, I can only suggest. Even for python-ts-mode, I don't > want to exert my personal opinion onto it too much, except for keeping > font-lock level 1 and 2 quiet. For my part, I mostly care about keeping the level 3 feature-rich enough, but precise at the same time. And without frivolous highlights (only a little more fruit-salady than the pre-treesit modes). >>>> My thoughts about parameters. I started to extend rules for them >>>> since they are very limited now. >>>> But I'm not sure what face to use for them. >>>> I would like to not use the same face as for assignments, because >>>> I'd want to highlight them differently. >>>> It seems that there is no appropriate face in font-lock.el, so I >>>> ended up creating my own face in my config. >>>> Does it make sense to add new face for parameters in font-lock.el? >>>> Or it is too small feature for its own face? >>>> I also apply this face for keyword argument in function calls. >>> To be honest, I don't have any good ideas. Perhaps we can add a >>> parameter face that inherits from variable name face by default, >>> Dmitry, WDYT? >> >> As per above, parameters don't seem too different from any other >> variable declarations from my POV. They are similarly useful, so I'd >> highlight them the same way. >> >> Do we want to have a common face which would inherit from >> font-lock-variable-name-face and would be used solely for >> function/methods parameters and nothing else? I don't object, but I >> don't quite see the point either. > > I agree. Then I suppose we should clarify whether Denis wants a face that only matches function parameters, or implicit variable declarations as well. Or maybe instead a face that is only used for assignments (only first assignments?) -- which would separate them from the two semantic units above. From debbugs-submit-bounces@debbugs.gnu.org Wed Dec 13 16:17:21 2023 Received: (at 67061) by debbugs.gnu.org; 13 Dec 2023 21:17:22 +0000 Received: from localhost ([127.0.0.1]:59765 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rDWbZ-0002Qz-Ih for submit@debbugs.gnu.org; Wed, 13 Dec 2023 16:17:21 -0500 Received: from mail-wr1-x436.google.com ([2a00:1450:4864:20::436]:59514) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rDWbU-0002Qi-JS for 67061@debbugs.gnu.org; Wed, 13 Dec 2023 16:17:20 -0500 Received: by mail-wr1-x436.google.com with SMTP id ffacd0b85a97d-3332efd75c9so6427870f8f.2 for <67061@debbugs.gnu.org>; Wed, 13 Dec 2023 13:17:00 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1702502214; x=1703107014; darn=debbugs.gnu.org; h=cc:to:subject:message-id:date:mime-version:references:in-reply-to :from:from:to:cc:subject:date:message-id:reply-to; bh=JtQ3Ioxztnkb7iW78EMIgSsqIE03E7Ylc/WMjmM0kM0=; b=JVL+nMWRnMWj5TKwjSJ+/CC3QFNuiHcIXAFYM1cFAF92pm2F91mY0s87iuJXxw9iNK htFIBvQ+2bLqI7vgMiGHaGEdjRBnsOV4UOzHfmxZhmGs8sqziD5gN4oMaU2iK6ZuCNqC j1K8Tl6onEUNcypOePH6tWbtj3bHUZnGk+0lAmNXco9y3WH6CRvAt62kx0JOfG1C30SJ lwzBOfhDGFPQQxQRwcG7aNM/ysmfqa8kBKdo3MU5AsjYhcGzZ3YvAfd3tI0rGJba7IEF 6StLrsDnGfeDhN5GodlFd8Qa+jsbdKGqLPIVgcHOQ2+hI0JLcEex1XDM2Pw/UqQ38zYL 2e+A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1702502214; x=1703107014; h=cc:to:subject:message-id:date:mime-version:references:in-reply-to :from:x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=JtQ3Ioxztnkb7iW78EMIgSsqIE03E7Ylc/WMjmM0kM0=; b=WUKQCqtEcoG6vMoGMWHEUOlUS656vd7pDYtrBfOn96Rxn5wXEE0fyEsKmH42PDQvaa DpR5M02lDPZ/lgTJuXEs/1cSSC77M5TnUmsYBigoM9h5w39/sMLMjtgzajtgwdtWrWzZ Hpl9vfW/0bGBM5BB6rCEa32t5f6W5epC9UTptanA56+pNyW70ciKdfU9K42WCsH+WTOl Q4a22wMBOAUU7ysG2DUE0Lr+/2cW1wf5SF3GukHj18AhU1o5ts56XmhdLL1xmg3yeOtW NH0Z5AGj2esIi3bb6lTfAIzIPGj9z2H7bmMDq8fHcvR2WUaExvmojO4xshJT72+aDsJC ZoCA== X-Gm-Message-State: AOJu0YwycygUb8IO7ekzZMREQ4wilM19hLeoTUwWT+AiN/+vjZ3c6vZS 2r3UrfgLy8R4SQZdfSROPSh+q16JN9WwuBAlibM= X-Google-Smtp-Source: AGHT+IGdjbAI7Kq1aCTjw78qftXnL5voCy9wkq2WsR5Cw1XVzxUpT9CKZnVykbTPfZQsUJQP0/VVlQJoCFG95gz6naU= X-Received: by 2002:adf:fb49:0:b0:333:53b9:441b with SMTP id c9-20020adffb49000000b0033353b9441bmr2533687wrs.47.1702502214373; Wed, 13 Dec 2023 13:16:54 -0800 (PST) Received: from 753933720722 named unknown by gmailapi.google.com with HTTPREST; Wed, 13 Dec 2023 13:16:53 -0800 From: Stefan Kangas In-Reply-To: <7aee7e42-c07d-9131-18a9-4806f07d4267@gutov.dev> References: <8734xdni6y.fsf@yandex.ru> <831qcwycbj.fsf@gnu.org> <83v8a3qh6m.fsf@gnu.org> <834jhadvkt.fsf@gnu.org> <7aee7e42-c07d-9131-18a9-4806f07d4267@gutov.dev> MIME-Version: 1.0 Date: Wed, 13 Dec 2023 13:16:53 -0800 Message-ID: Subject: Re: bug#67061: [PATCH] Improve syntax highlighting for python-ts-mode To: Dmitry Gutov , Eli Zaretskii , casouri@gmail.com Content-Type: text/plain; charset="UTF-8" X-Spam-Score: -0.0 (/) X-Debbugs-Envelope-To: 67061 Cc: dvzubarev@yandex.ru, 67061@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: -1.0 (-) Dmitry Gutov writes: > I don't know at what stage we're going to start worrying when adding new > elements to the queries, though, in fear of breaking compatibility with > some potential older version of the grammar. Right. But can we really stop installing support for new language features that users expect? I'm not super close to the tree-sitter stuff to be honest, so apologies if I misunderstood something. But IIUC, the current situation means that we can't depend on concrete versions of grammars, which means we can't depend on that to make adaptions. But that situation is not really caused by us, right? So maybe at the point when we find problems in practice, we should just throw up our hands and urge users to upgrade. Perhaps it'll encourage more work on improving the situation with grammar versioning. The biggest problems will be with faster moving languages, of course. And who knows how common they will be even then - only experience will tell. Just my two cents. From debbugs-submit-bounces@debbugs.gnu.org Wed Dec 13 20:31:39 2023 Received: (at 67061) by debbugs.gnu.org; 14 Dec 2023 01:31:40 +0000 Received: from localhost ([127.0.0.1]:59928 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rDaZf-000159-GN for submit@debbugs.gnu.org; Wed, 13 Dec 2023 20:31:39 -0500 Received: from out5-smtp.messagingengine.com ([66.111.4.29]:53501) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rDaZd-00014w-Fy for 67061@debbugs.gnu.org; Wed, 13 Dec 2023 20:31:38 -0500 Received: from compute2.internal (compute2.nyi.internal [10.202.2.46]) by mailout.nyi.internal (Postfix) with ESMTP id 0EE925C0342; Wed, 13 Dec 2023 20:31:16 -0500 (EST) Received: from mailfrontend1 ([10.202.2.162]) by compute2.internal (MEProxy); Wed, 13 Dec 2023 20:31:16 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gutov.dev; h=cc :cc:content-transfer-encoding:content-type:content-type:date :date:from:from:in-reply-to:in-reply-to:message-id:mime-version :references:reply-to:subject:subject:to:to; s=fm3; t=1702517476; x=1702603876; bh=pkBwwnExdaG4FgeHHi9LCoLLNm7c9tQZPeqXDNQX/sY=; b= MjFhiLdC8muKco6umbGJkEhQApkkCQs4lVBt8K73qytvY46CyTRx1YjbBsQbRP0H C56+mM4GFTveosArp6hz52K44A+9ouMMsLmSyj3GIcpe9iGCDw3hzOupS3AQPeoW XO5a7IIYSXzTDoczaru0HW66ZaI8nq6SNs0aVUPfnsGjU0uH3RthD6zeHmp2iTs+ j9RODZ8fHm5U8YP2VHaA/PBGWmDyGYapKjxp1jhlrwM6qLXM/H7kD9/wts/Brglg 5qH0mBhch56QBnNCa/HULSmgwO+Xoh9+2DNDdjda2tra1RFsAKRZXcQhYHUYlJ+F DXhJlTQC2ecKpcEhCYaR8g== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:cc:content-transfer-encoding :content-type:content-type:date:date:feedback-id:feedback-id :from:from:in-reply-to:in-reply-to:message-id:mime-version :references:reply-to:subject:subject:to:to:x-me-proxy:x-me-proxy :x-me-sender:x-me-sender:x-sasl-enc; s=fm1; t=1702517476; x= 1702603876; bh=pkBwwnExdaG4FgeHHi9LCoLLNm7c9tQZPeqXDNQX/sY=; b=O 0oazUNr8ldfvRVLKakYEjEr6GA4w61KMzV3398Y+lxc1s7PyQOiiwgivJHJ9Pm5g 5U2aqafCTt/mp2v8d2U9ap0AznNCuCF6e16cxY7raSXpi6EDWmU7AoviEXJQT6b3 NMc3P4kVeuSwoHrQ/YEW/G+dAYP/pbnxVTp01auDYDrFRfoW/qbKJLvKsiJ/hQ5Q 6cFuldvbZNi/RObCkuE1biUXZXtMbHFoXMu+CVZMMCrfUAEOL8J8liIeKU9ffKLy BAcRrr/wcu0NPv2XvtutX4miclefqjYqGiZBRg/wsKcSLqWeB6z1vnX/PWgsFmLT irGG6MhxGDBHvuA5x2/og== X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedvkedrudelkedgfeeiucetufdoteggodetrfdotf fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfqfgfvpdfurfetoffkrfgpnffqhgen uceurghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmne cujfgurhepkfffgggfuffvvehfhfgjtgfgsehtjeertddtfeejnecuhfhrohhmpeffmhhi thhrhicuifhuthhovhcuoegumhhithhrhiesghhuthhovhdruggvvheqnecuggftrfgrth htvghrnhepiefgteevheevveffheeltdeukeeiieekueefgedugfefgefhudelgfefveel vdevnecuvehluhhsthgvrhfuihiivgeptdenucfrrghrrghmpehmrghilhhfrhhomhepug hmihhtrhihsehguhhtohhvrdguvghv X-ME-Proxy: Feedback-ID: i0e71465a:Fastmail Received: by mail.messagingengine.com (Postfix) with ESMTPA; Wed, 13 Dec 2023 20:31:13 -0500 (EST) Message-ID: Date: Thu, 14 Dec 2023 03:31:12 +0200 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.13.0 Subject: Re: bug#67061: [PATCH] Improve syntax highlighting for python-ts-mode Content-Language: en-US To: Stefan Kangas , Eli Zaretskii , casouri@gmail.com References: <8734xdni6y.fsf@yandex.ru> <831qcwycbj.fsf@gnu.org> <83v8a3qh6m.fsf@gnu.org> <834jhadvkt.fsf@gnu.org> <7aee7e42-c07d-9131-18a9-4806f07d4267@gutov.dev> From: Dmitry Gutov In-Reply-To: Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-Spam-Score: -2.9 (--) X-Debbugs-Envelope-To: 67061 Cc: dvzubarev@yandex.ru, 67061@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.9 (---) On 13/12/2023 23:16, Stefan Kangas wrote: > Dmitry Gutov writes: > >> I don't know at what stage we're going to start worrying when adding new >> elements to the queries, though, in fear of breaking compatibility with >> some potential older version of the grammar. > > Right. But can we really stop installing support for new language > features that users expect? Some less important ones -- maybe. E.g. syntax highlighting is less essential than indentation. Though it's usually easier to implement (with tree-sitter, at least). > I'm not super close to the tree-sitter stuff to be honest, so apologies > if I misunderstood something. But IIUC, the current situation means > that we can't depend on concrete versions of grammars, which means we > can't depend on that to make adaptions. But that situation is not > really caused by us, right? We made our choices here too: - Trying to support different versions of grammars, not just the latest ones. Or a "pinned" revision. - Adding treesit modes to the core, rather than publishing them to ELPA. > So maybe at the point when we find problems in practice, we should just > throw up our hands and urge users to upgrade. Perhaps it'll encourage > more work on improving the situation with grammar versioning. Simply asking our users to upgrade to the latest grammar won't work if the major mode they are using is only compatible with some older grammar version. And it's not upgradable because the major mode is not in ELPA. We might solve this in the future with a two-step: "throwing up our hands" and publishing major modes to "ELPA core". treesit.el will probably need to stabilize a bit more before that, though. From debbugs-submit-bounces@debbugs.gnu.org Thu Dec 14 00:54:58 2023 Received: (at 67061) by debbugs.gnu.org; 14 Dec 2023 05:54:58 +0000 Received: from localhost ([127.0.0.1]:60018 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rDegU-0007jp-1H for submit@debbugs.gnu.org; Thu, 14 Dec 2023 00:54:58 -0500 Received: from mail-pj1-x102b.google.com ([2607:f8b0:4864:20::102b]:61493) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rDegN-0007jX-Gb for 67061@debbugs.gnu.org; Thu, 14 Dec 2023 00:54:56 -0500 Received: by mail-pj1-x102b.google.com with SMTP id 98e67ed59e1d1-286f22c52c7so5546712a91.2 for <67061@debbugs.gnu.org>; Wed, 13 Dec 2023 21:54:34 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1702533269; x=1703138069; darn=debbugs.gnu.org; h=to:references:message-id:content-transfer-encoding:cc:date :in-reply-to:from:subject:mime-version:from:to:cc:subject:date :message-id:reply-to; bh=o+PzLQmH/smHIh1Kwd6wvnNYyhNrTBPQFcp+HojyzkQ=; b=c8iiJv+ofo6k6zHXK9VljNXm4m3Qn11WV4mNHdBc/FlKyxXcmMjQcA3yuKOB/CrjjK XmCJP5UWfMh3sB8SGd8QNoEJFzqYAiMbRJLU3WqN6GL4VbPQz4svbjt3jK8dCi5U+QdV 1+jE5l1idEQZUEiYpSHM4ctoBSm5jJfK/t29I5s2jUmg/1aDe94EkDCXeUenI/b0mx0Q 8TeaECNQJV/JoEbjFud/exMEXQdW31v22STrwn0zrDKO9HmalI+y/tP6UwJRtJFLh7Vr 8pE+IGX5CrDzn0lTzE/3HcdGg/CLaofk0lu1/Gae4E1da70tKUAEwoxpd1Iu1Rke6Mvk GWsg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1702533269; x=1703138069; h=to:references:message-id:content-transfer-encoding:cc:date :in-reply-to:from:subject:mime-version:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=o+PzLQmH/smHIh1Kwd6wvnNYyhNrTBPQFcp+HojyzkQ=; b=ZGIragaPwrL0iwGOQjUsnJD4jpNOVkqW2kbaOpORoi0F3I6Cwe4fE9WSt3iyhYnGCE lcOdYb8miE7R9mGtGGJxRa4TBw6afZYD71dIT9pjHE2mRBEmQNgh/k/7AyVCh0wXn4b+ i8OTPwuw3Eu/DyD/ZevUVrViNfiykyziL4TMejjvMcF/nWHRVa+R+tC1shaQ6Akp9S5j 2P8rkIvhRiYTYBKI1rp9Fe21aFg3yf0+fzB1U8g4lps3WF5OV8+sXqCUXBnGaoJgaByO IoU36jgZgXxK33IPdO+EXhFE5ENURLKUlv0gY6liBj6jOFtxoZdeEtZLtlpvRP8rg79o hW+g== X-Gm-Message-State: AOJu0Yyxv+OrFO2Io0vvnroUnvmr7uL/AsHpLQf4u8i7f2RzfeYHnOnE hVldopKuBTkaSpPQCSDINHY= X-Google-Smtp-Source: AGHT+IHjfbWy+g+AOIdb4rRsJGeihYhs1kOD7BXj0TvMNHNdaEPaML2wVHV0k2r68tcvPAvMeoTl/w== X-Received: by 2002:a17:902:6506:b0:1d3:4ff0:f81c with SMTP id b6-20020a170902650600b001d34ff0f81cmr1333548plk.7.1702533268811; Wed, 13 Dec 2023 21:54:28 -0800 (PST) Received: from smtpclient.apple (172-117-161-177.res.spectrum.com. [172.117.161.177]) by smtp.gmail.com with ESMTPSA id iy20-20020a170903131400b001d33f3d8768sm3922965plb.149.2023.12.13.21.54.26 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Wed, 13 Dec 2023 21:54:27 -0800 (PST) Content-Type: text/plain; charset=utf-8 Mime-Version: 1.0 (Mac OS X Mail 16.0 \(3731.700.6\)) Subject: Re: bug#67061: [PATCH] Improve syntax highlighting for python-ts-mode From: Yuan Fu In-Reply-To: Date: Wed, 13 Dec 2023 21:54:16 -0800 Content-Transfer-Encoding: quoted-printable Message-Id: 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> To: Dmitry Gutov X-Mailer: Apple Mail (2.3731.700.6) X-Spam-Score: -0.0 (/) X-Debbugs-Envelope-To: 67061 Cc: Eli Zaretskii , Denis Zubarev , "67061@debbugs.gnu.org" <67061@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: -1.0 (-) > On Dec 13, 2023, at 10:28 AM, Dmitry Gutov wrote: >=20 > On 13/12/2023 05:49, Yuan Fu wrote: >=20 >>> Python doesn't have special keywords for variable declarations = (unlike 'let' in JavaScript or typed declaration in C), so the first = time a variable is introduced serves as its declaration. For = assignments, we can't easily determine which is the first time for a = given scope, but examples like 'for var in ...' or 'except = ZeroDivisionError as e:' or '[... for var in ...]' are all unambiguously = variable definitions. >> Sure, I don't really care too much about which feature should a rule = be in; what I do care about is to keep first and second fontification = level relatively quite and minimal, and keep level 3 reasonably = conservative. And people that want a lot of highlight can turn on level = 4. >=20 > I don't mind if assignments in python-ts-mode go to level 3, that's = what ruby-ts-mode does anyway. Assignment is in level 3 for python-ts-mode. > But '[... for var in ...]' really should use variable-name-face and it = should be in the default config (level 3 at most). I=E2=80=99m fine with that. > I think the 'definition' feature is good for it (going by the name, = since it's an implicit variable declaration), but it could be split off = into a separate feature too. As long as it=E2=80=99s not added to the definition feature, because, = again, definition is at level 1 and I don=E2=80=99t want to keep level 1 = minimal. Maybe we can use local-definition, or something similar, to signify that = this feature highlights scoped definitions. >=20 >>> in c-ts-mode highlighting for 'int i =3D 4' is split between = 'definition' and 'assignment' (the latter seemingly redundant);=20 >> Should've been in assignment IMO. I probably overlooked it. >=20 > The current state is that the query in 'definition' can highlight both = 'int i;' and 'int i =3D 4;'. The query in 'assignment' in c-ts-mode only = highlights 'int i =3D 4;'. >=20 > If you just keep the latter query, 'int i;' would stay unfontified. If = you move the corresponding query from 'definition' to 'assignment', it = would start matching non-assignment declarations too. Might seem odd. Right=E2=80=A6 hmm=E2=80=A6 This one is hard to decide... >=20 >>> typescript-ts-mode and rust-ts-mode also follow the principle, more = or less. >> Well, the only ts-mode that I actually wrote is python-ts-mode. For = other major modes, I can only suggest. Even for python-ts-mode, I don't = want to exert my personal opinion onto it too much, except for keeping = font-lock level 1 and 2 quiet. >=20 > For my part, I mostly care about keeping the level 3 feature-rich = enough, but precise at the same time. And without frivolous highlights = (only a little more fruit-salady than the pre-treesit modes). Sounds good to me :-) >>>>> My thoughts about parameters. I started to extend rules for them = since they are very limited now. >>>>> But I'm not sure what face to use for them. >>>>> I would like to not use the same face as for assignments, because = I'd want to highlight them differently. >>>>> It seems that there is no appropriate face in font-lock.el, so I = ended up creating my own face in my config. >>>>> Does it make sense to add new face for parameters in font-lock.el? >>>>> Or it is too small feature for its own face? >>>>> I also apply this face for keyword argument in function calls. >>>> To be honest, I don't have any good ideas. Perhaps we can add a = parameter face that inherits from variable name face by default, Dmitry, = WDYT? >>>=20 >>> As per above, parameters don't seem too different from any other = variable declarations from my POV. They are similarly useful, so I'd = highlight them the same way. >>>=20 >>> Do we want to have a common face which would inherit from = font-lock-variable-name-face and would be used solely for = function/methods parameters and nothing else? I don't object, but I = don't quite see the point either. >> I agree. >=20 > Then I suppose we should clarify whether Denis wants a face that only = matches function parameters, or implicit variable declarations as well. = Or maybe instead a face that is only used for assignments (only first = assignments?) -- which would separate them from the two semantic units = above. I=E2=80=99m ok with either. And I=E2=80=99ll leave it to you guys to = decide, like I did other faces we added in Emacs 29 ;-) Yuan= From debbugs-submit-bounces@debbugs.gnu.org Thu Dec 14 07:11:12 2023 Received: (at 67061) by debbugs.gnu.org; 14 Dec 2023 12:11:12 +0000 Received: from localhost ([127.0.0.1]:48727 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rDkYZ-0000Q7-UF for submit@debbugs.gnu.org; Thu, 14 Dec 2023 07:11:12 -0500 Received: from out2-smtp.messagingengine.com ([66.111.4.26]:60103) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rDkYX-0000Ps-0Z for 67061@debbugs.gnu.org; Thu, 14 Dec 2023 07:11:10 -0500 Received: from compute2.internal (compute2.nyi.internal [10.202.2.46]) by mailout.nyi.internal (Postfix) with ESMTP id 4734A5C02A5; Thu, 14 Dec 2023 06:51:47 -0500 (EST) Received: from mailfrontend1 ([10.202.2.162]) by compute2.internal (MEProxy); Thu, 14 Dec 2023 06:51:47 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gutov.dev; h=cc :cc:content-transfer-encoding:content-type:content-type:date :date:from:from:in-reply-to:in-reply-to:message-id:mime-version :references:reply-to:subject:subject:to:to; s=fm3; t=1702554707; x=1702641107; bh=GISe6KdLVEJPpjYOkdqjZM/aAYH7fz43NfVkLe+FDGE=; b= VD1rbRafoz7VtZ2ou1ILoA3NnJSKmmGarzKWXb5fgF4iFXfFw1K0DOcwUBQrCmZu 4OWzDXFsPnlw9Rz9z72HfwUG3v+x0L20Gw9tj3hDRrIa/E7cSQPbpPTe4uBGbal5 F164TTpf6HNoD/KOdriu+a7mSaLzS2JokKSIBtCopfjSoYDRrnX29JUlhTh2AgOq KvUeIht9XeZZIEtBkCjiq0vxN7ZNixzQbc10XZtPwyRWDbE8OU7OG+xwUexZauSG ex/DXAW7OLHjvRaj7i2IRhRjGEbQmIRjIBWM9UsZ1ca9KRow9Uw1vmRSfOhq7kXW +cemaHuPKvbgs9PZt24HWg== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:cc:content-transfer-encoding :content-type:content-type:date:date:feedback-id:feedback-id :from:from:in-reply-to:in-reply-to:message-id:mime-version :references:reply-to:subject:subject:to:to:x-me-proxy:x-me-proxy :x-me-sender:x-me-sender:x-sasl-enc; s=fm1; t=1702554707; x= 1702641107; bh=GISe6KdLVEJPpjYOkdqjZM/aAYH7fz43NfVkLe+FDGE=; b=H lZH6Ow248krNGavlgkts5F8DLHX9nDSt4k9LKlV4lsR8KZCMW6c3nu301re8ddt+ dQQ0qE0jvvaElDTf1UCwi/+UZuZuDNE1PCxEvXuJ7UrUVB7KESq1BcidzEpmaq1h oYwnCsandZYK2fm1bdcxAAGNLHDAE3bxTA74yGYebJ7dehczoRbfbKSDxrsQ3nJv t74z1ftbyV+Coxq51QBg/LNn/3nzccd29T0h1SCCRMo8epPlXbH3T+BZqo5Ihiwy 176UHZGrbnFmjSHUa41FOyDL90T4iFIMnEJw6WcfWZrHInhK7w9La/FmC45Od5Ip iGVz/nItbYsIyJoivJvbg== X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedvkedrudelledgfedvucetufdoteggodetrfdotf fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfqfgfvpdfurfetoffkrfgpnffqhgen uceurghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmne cujfgurhepkfffgggfuffvvehfhfgjtgfgsehtkeertddtfeejnecuhfhrohhmpeffmhhi thhrhicuifhuthhovhcuoegumhhithhrhiesghhuthhovhdruggvvheqnecuggftrfgrth htvghrnhephfffheeljeffgeffueeghfekkedtfffgheejvdegjeettdduheeufffggfef jeehnecuvehluhhsthgvrhfuihiivgeptdenucfrrghrrghmpehmrghilhhfrhhomhepug hmihhtrhihsehguhhtohhvrdguvghv X-ME-Proxy: Feedback-ID: i0e71465a:Fastmail Received: by mail.messagingengine.com (Postfix) with ESMTPA; Thu, 14 Dec 2023 06:51:45 -0500 (EST) Message-ID: Date: Thu, 14 Dec 2023 13:51:41 +0200 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.13.0 Subject: Re: bug#67061: [PATCH] Improve syntax highlighting for python-ts-mode Content-Language: en-US To: Yuan Fu 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> From: Dmitry Gutov In-Reply-To: Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit X-Spam-Score: -1.4 (-) X-Debbugs-Envelope-To: 67061 Cc: Eli Zaretskii , Denis Zubarev , "67061@debbugs.gnu.org" <67061@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: -2.4 (--) On 14/12/2023 07:54, Yuan Fu wrote: >> I think the 'definition' feature is good for it (going by the name, since it's an implicit variable declaration), but it could be split off into a separate feature too. > As long as it’s not added to the definition feature, because, again, definition is at level 1 and I don’t want to keep level 1 minimal. > > Maybe we can use local-definition, or something similar, to signify that this feature highlights scoped definitions. But you think function parameters should be in 'definition'? They are also "scoped", I would say. If not, we could have a separate feature 'variable-definition' which would include parameters as well. From debbugs-submit-bounces@debbugs.gnu.org Thu Dec 14 17:49:39 2023 Received: (at 67061) by debbugs.gnu.org; 14 Dec 2023 22:49:39 +0000 Received: from localhost ([127.0.0.1]:51164 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rDuWR-0000Q4-6u for submit@debbugs.gnu.org; Thu, 14 Dec 2023 17:49:39 -0500 Received: from mail-ed1-x52c.google.com ([2a00:1450:4864:20::52c]:56682) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rDuWO-0000Pn-TD for 67061@debbugs.gnu.org; Thu, 14 Dec 2023 17:49:37 -0500 Received: by mail-ed1-x52c.google.com with SMTP id 4fb4d7f45d1cf-551437d5344so61553a12.1 for <67061@debbugs.gnu.org>; Thu, 14 Dec 2023 14:49:37 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1702594171; x=1703198971; darn=debbugs.gnu.org; h=cc:to:subject:message-id:date:mime-version:references:in-reply-to :from:from:to:cc:subject:date:message-id:reply-to; bh=Do2MyQB7urp0HqmPkpFnRKxG9m/KM8qRs1U0QUb7Xyc=; b=E92tQDfCHie9QsN5eJWY3F6bjNVZ2cAmKLObDwrFq/g7bno/Yh9ZdeXjVc+qrmiPmS fTUbdR8AVLaO0j5H62wmHhuVkZhxycGWNEr9KisCDGLURq2YANPYGtney7s+SlJkYRHV fcXX6IML69ZKhhbBJFjr74KPTC6rL4An7IJtiE/bNqQPiLW73FrI/A9AT4jiAei0loK7 WR4xs0C+hChWQ1ptsSvaWDc5WnQ7REvy1dXQ3/A0tfgc6MsaWWou9tbsOAicQKvQmKR1 mhEgr+KWTLQXeCvWUovm1Kgykzi/FBYhtV5wiu5IsoodUpUcuymCjXI3hLH59WpXroOO fnog== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1702594171; x=1703198971; h=cc:to:subject:message-id:date:mime-version:references:in-reply-to :from:x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=Do2MyQB7urp0HqmPkpFnRKxG9m/KM8qRs1U0QUb7Xyc=; b=n+obyHovU1et1xQ/0JsDmm9BrYFAR8Kd7jhVFQ1pvK+UHYY+KGe4iEiY+4XR3Ze6Pv BzUlSe10dHLOTPswE3DEz53T3GAMGbu81x77tpdFdAXmvR3Kf4WqUZ6VwlRObH908sNg 1JMhcdZLfoo0vHgH03O9txB+xY3dtVF/QIEIMYbnI9PmTn37iag8FeaO0gBx14QknWwx KJqxjlxU2orh6GOmTdIr3FjesyBTJAGTw979AymSdni+lXAgC/zdCHA6g3jBJ/YSXHxV u8d96GGhYUM/26s/iRWRWlZCI+i+hu5bm1PiQUpvVETPxksi2oUBNfW+8j/u2q381lQV Tt0g== X-Gm-Message-State: AOJu0YznAq7+nR4ANBbwsSSq6B3SaZxq/FE9XS1mP2TclkdyH6Py0h+C jPV1J7rvAwNRvrQYZzwoU5xqbIROybU73YjFuKK/5D3OwaGOUA== X-Google-Smtp-Source: AGHT+IH/0oVe+GJ8ZA5v11EvBR5eWqSBVMCJy3yRs1pzNVZBndBOVjGG6rQ4b0HkFnZIzfhjFgiWhf8+r57/xVZlMmk= X-Received: by 2002:a50:9353:0:b0:552:2a70:a2cb with SMTP id n19-20020a509353000000b005522a70a2cbmr1456406eda.53.1702594171564; Thu, 14 Dec 2023 14:49:31 -0800 (PST) Received: from 753933720722 named unknown by gmailapi.google.com with HTTPREST; Thu, 14 Dec 2023 14:49:31 -0800 From: Stefan Kangas In-Reply-To: References: <8734xdni6y.fsf@yandex.ru> <831qcwycbj.fsf@gnu.org> <83v8a3qh6m.fsf@gnu.org> <834jhadvkt.fsf@gnu.org> <7aee7e42-c07d-9131-18a9-4806f07d4267@gutov.dev> MIME-Version: 1.0 Date: Thu, 14 Dec 2023 14:49:31 -0800 Message-ID: Subject: Re: bug#67061: [PATCH] Improve syntax highlighting for python-ts-mode To: Dmitry Gutov , Eli Zaretskii , casouri@gmail.com Content-Type: text/plain; charset="UTF-8" X-Spam-Score: -0.0 (/) X-Debbugs-Envelope-To: 67061 Cc: dvzubarev@yandex.ru, 67061@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: -1.0 (-) Dmitry Gutov writes: > We might solve this in the future with a two-step: "throwing up our > hands" and publishing major modes to "ELPA core". treesit.el will > probably need to stabilize a bit more before that, though. Yeah, that's what I had in mind. It's not hard to make packages into :core packages, we just have to be careful not to use backwards-incompatible stuff in them. From debbugs-submit-bounces@debbugs.gnu.org Fri Dec 15 02:15:08 2023 Received: (at 67061) by debbugs.gnu.org; 15 Dec 2023 07:15:08 +0000 Received: from localhost ([127.0.0.1]:51562 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rE2Pc-000612-3l for submit@debbugs.gnu.org; Fri, 15 Dec 2023 02:15:08 -0500 Received: from mail-pg1-x52c.google.com ([2607:f8b0:4864:20::52c]:49637) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rE2Pa-0005ei-FF for 67061@debbugs.gnu.org; Fri, 15 Dec 2023 02:15:06 -0500 Received: by mail-pg1-x52c.google.com with SMTP id 41be03b00d2f7-53fbf2c42bfso326320a12.3 for <67061@debbugs.gnu.org>; Thu, 14 Dec 2023 23:15:06 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1702624501; x=1703229301; darn=debbugs.gnu.org; h=to:references:message-id:content-transfer-encoding:cc:date :in-reply-to:from:subject:mime-version:from:to:cc:subject:date :message-id:reply-to; bh=m48Wl1w1nXNti/T8Hpz++HBAb2xfNTitn3nGpKhHg8o=; b=L1BYP5jJV2UssO7GtPtdFHr11L2g5wwFMGquLVr9d3TNDSYFoAG8EztklKPtwYff6g hVocefEMkhI/REeTdOvDWpr57IO3M2aSuRAz4Xw2501naqP6FT78ugr/UiF3Aai/03r0 wKllf9TmcIfoeEKC+GD9dDLwusjuXz1uCPiribQCfkmGtDQ7sGFbWY391rwKzX9ZdLW3 WKoAMBZ3iXzm8whBJEoIEQtutFzlpiFUG0K4DOpq7K+PBDXv+3ixSRPmkL7MhN6q+Zfq 0nIVbm+0ZbmV/JFKG+cLUeBAFDVQZxPG14tyreEJWgOusehaPx8sTkiDGHYOJa1j76pQ l0zA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1702624501; x=1703229301; h=to:references:message-id:content-transfer-encoding:cc:date :in-reply-to:from:subject:mime-version:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=m48Wl1w1nXNti/T8Hpz++HBAb2xfNTitn3nGpKhHg8o=; b=jiHSpNeIQ78+sRJgoDUC9qqtax3QJ3mP+rvmSUDjmYJhI9EmGXsyjMb/+0ULpPmxyI h/FHaRJOJuBsAmZzFiSE47Mo1PgNmmyg8rBuSr0j9mzphELij6U8uy1+jBqxZKVBodCR sfR0r3dbxl/COg0mzDJ3odxsiQqdZLt7tNskFBEchz0aMXXEiiTJAhfNEsdylOCRCsN1 enfIUS6hSBVt6gAG2uPyTGbTdSYy9g9SiqdBmwyjN131DdJfs8ryAVqMiAi1iTMqYBM7 9ryLE2HQVYxN4L4gUeARlc3Sa4ZGETiS8mJqY4/t4lqoLO1Rm9wgygb/PO11sb0lbdCL i6Jw== X-Gm-Message-State: AOJu0YxRRU6fMZw4PkD+APQzZIjaT5LU9HY2nJ6JDCfnMhAhVqOtO3Xw HQEmULoyVmUjehWJLnjN1ULoH4isAXn6IA== X-Google-Smtp-Source: AGHT+IGfWz7u4+UIY06vMaSKY1E+RUbYKnBr0uRt4vS+XuPuiluFf5O0xR9PTO8LZdEuR6zV4O/iNA== X-Received: by 2002:a05:6a21:78a3:b0:18f:97c:615a with SMTP id bf35-20020a056a2178a300b0018f097c615amr13438009pzc.87.1702624500779; Thu, 14 Dec 2023 23:15:00 -0800 (PST) Received: from smtpclient.apple (172-117-161-177.res.spectrum.com. [172.117.161.177]) by smtp.gmail.com with ESMTPSA id o137-20020a62cd8f000000b006cbb3512266sm13381225pfg.1.2023.12.14.23.14.59 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Thu, 14 Dec 2023 23:15:00 -0800 (PST) Content-Type: text/plain; charset=us-ascii Mime-Version: 1.0 (Mac OS X Mail 16.0 \(3731.700.6\)) Subject: Re: bug#67061: [PATCH] Improve syntax highlighting for python-ts-mode From: Yuan Fu In-Reply-To: Date: Thu, 14 Dec 2023 23:14:49 -0800 Content-Transfer-Encoding: quoted-printable Message-Id: References: <8734xdni6y.fsf@yandex.ru> <831qcwycbj.fsf@gnu.org> <83v8a3qh6m.fsf@gnu.org> <834jhadvkt.fsf@gnu.org> <7aee7e42-c07d-9131-18a9-4806f07d4267@gutov.dev> To: Stefan Kangas X-Mailer: Apple Mail (2.3731.700.6) X-Spam-Score: -0.0 (/) X-Debbugs-Envelope-To: 67061 Cc: Dmitry Gutov , Eli Zaretskii , Denis Zubarev , 67061@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: -1.0 (-) > On Dec 14, 2023, at 2:49 PM, Stefan Kangas = wrote: >=20 > Dmitry Gutov writes: >=20 >> We might solve this in the future with a two-step: "throwing up our >> hands" and publishing major modes to "ELPA core". treesit.el will >> probably need to stabilize a bit more before that, though. >=20 > Yeah, that's what I had in mind. It's not hard to make packages into > :core packages, we just have to be careful not to use > backwards-incompatible stuff in them. Maybe we can think of that before Emacs 30 releases? By then treesit.el = should be more or less stable and feature-complete. Yuan= From debbugs-submit-bounces@debbugs.gnu.org Sat Dec 16 08:04:21 2023 Received: (at 67061) by debbugs.gnu.org; 16 Dec 2023 13:04:21 +0000 Received: from localhost ([127.0.0.1]:54199 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rEUL6-0001gl-R8 for submit@debbugs.gnu.org; Sat, 16 Dec 2023 08:04:21 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:34048) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rEUL5-0001gW-Jk for 67061@debbugs.gnu.org; Sat, 16 Dec 2023 08:04:20 -0500 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 1rEUKz-0005uU-6P; Sat, 16 Dec 2023 08:04:13 -0500 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=RIKfmqe/GwB0M6J916TdjLqa9wB42+ElgoNp1JlIBM0=; b=jL6yIEpN6ETqIlAyJBMT wlupz3lKbAHc67/J93CxsorhMEMGfmAqGKfZYF0G8fqRIsc4W0E/Y/J23j+iz3C21FaptvTBfbsWp zUef35kDIdWyD1PKJWH6OvkNxYWBGNHSLcAuPA+x8wq/73XECyFvVezDIlryTk82O77GFzCV1kezd 67OS91CWiijElf/rIMnOka26IKTtgddK13XaVFv6z2FyK8V6uQralGR0ojHfliVX1YorXgjLWcLv7 QFhTLAxXtEEcB37uxhjPh9wti/C2s5xYdMtr3B7K9R3+xyuWUh9snwwNZGEFIP6gz4+HrPALmFObC vcYLm2dtX3pcfg==; Date: Sat, 16 Dec 2023 15:03:52 +0200 Message-Id: <83fs02mh8n.fsf@gnu.org> From: Eli Zaretskii To: Yuan Fu In-Reply-To: (message from Yuan Fu on Wed, 13 Dec 2023 21:54:16 -0800) Subject: Re: bug#67061: [PATCH] Improve syntax highlighting for python-ts-mode 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/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 67061 Cc: dmitry@gutov.dev, dvzubarev@yandex.ru, 67061@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 (---) > From: Yuan Fu > Date: Wed, 13 Dec 2023 21:54:16 -0800 > Cc: Denis Zubarev , > Eli Zaretskii , > "67061@debbugs.gnu.org" <67061@debbugs.gnu.org> > > > Then I suppose we should clarify whether Denis wants a face that only matches function parameters, or implicit variable declarations as well. Or maybe instead a face that is only used for assignments (only first assignments?) -- which would separate them from the two semantic units above. > > I’m ok with either. And I’ll leave it to you guys to decide, like I did other faces we added in Emacs 29 ;-) I'm not sure how to move forward here. The copyright assignment is on file now, and Denis posted a rebased patch, but I'm not sure we all agree that it should be installed. is there anything else that needs to be done before Denis's patch can be installed on the emacs-29 branch? From debbugs-submit-bounces@debbugs.gnu.org Sat Dec 16 19:26:24 2023 Received: (at 67061) by debbugs.gnu.org; 17 Dec 2023 00:26:24 +0000 Received: from localhost ([127.0.0.1]:56363 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rEez8-0003MH-6i for submit@debbugs.gnu.org; Sat, 16 Dec 2023 19:26:24 -0500 Received: from forward100a.mail.yandex.net ([2a02:6b8:c0e:500:1:45:d181:d100]:40188) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rEez3-0003Ls-Dh for 67061@debbugs.gnu.org; Sat, 16 Dec 2023 19:26:20 -0500 Received: from mail-nwsmtp-mxback-production-main-670.vla.yp-c.yandex.net (mail-nwsmtp-mxback-production-main-670.vla.yp-c.yandex.net [IPv6:2a02:6b8:c1d:5a08:0:640:78db:0]) by forward100a.mail.yandex.net (Yandex) with ESMTP id 63A4741C6C; Sun, 17 Dec 2023 03:26:09 +0300 (MSK) Received: from mail.yandex.ru (2a02:6b8:c15:2c15:0:640:9da3:0 [2a02:6b8:c15:2c15:0:640:9da3:0]) by mail-nwsmtp-mxback-production-main-670.vla.yp-c.yandex.net (mxback/Yandex) with HTTP id 1Qaj1v3O7Sw0-bg8UWk8s; Sun, 17 Dec 2023 03:26:09 +0300 X-Yandex-Fwd: 1 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yandex.ru; s=mail; t=1702772769; bh=sndKl6EZ+cgrp+4Y8tv7NPP/+LAu7SwMg16C7d6+C/I=; h=Message-Id:References:Date:Cc:Subject:In-Reply-To:To:From; b=JH+IQPEFygxA5AqHOod4A1qAliOLDXMwJ8siUxo1n3Tr3m060KEiL1rNYad+8iPX+ afz40VzA13bDvPnSYvyeB1bUjJe4P5hNnsJncJdBqHqc2530ji08AHR7gPkVyXHRUh Qa8/0FKVtKhrzt25WjrCdz3C9PVfKchetV+GzOtQ= Authentication-Results: mail-nwsmtp-mxback-production-main-670.vla.yp-c.yandex.net; dkim=pass header.i=@yandex.ru Received: by an4sa4silbm64yo4.vla.yp-c.yandex.net with HTTP; Sun, 17 Dec 2023 03:26:08 +0300 From: Denis Zubarev To: Yuan Fu , Dmitry Gutov , Eli Zaretskii In-Reply-To: <78ffdcf3-e322-49ea-a0d5-d0485ade9e73@gmail.com> 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> Subject: Re: bug#67061: [PATCH] Improve syntax highlighting for python-ts-mode MIME-Version: 1.0 X-Mailer: Yamail [ http://yandex.ru ] 5.0 Date: Sun, 17 Dec 2023 03:26:08 +0300 Message-Id: <7371702772641@mail.yandex.ru> Content-Type: multipart/mixed; boundary="----==--bound.549855.an4sa4silbm64yo4.vla.yp-c.yandex.net" X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 67061 Cc: "67061@debbugs.gnu.org" <67061@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: -1.7 (-) ------==--bound.549855.an4sa4silbm64yo4.vla.yp-c.yandex.net Content-Transfer-Encoding: base64 Content-Type: text/html; charset=utf-8 PGRpdj48ZGl2PlNvcnJ5IGZvciB0aGUgZGVsYXllZCByZXNwb25zZS48L2Rpdj48ZGl2PsKgPC9k aXY+PGRpdj4mZ3Q7IEZvciBtYW55IEVtYWNzIHVzZXJzLCB0aGV5IHdhbnQgYSBxdWlldGVyIG9y IGV2ZW4gbWluaW1hbCBmb250aWZpY2F0aW9uLjwvZGl2PjxkaXY+wqA8L2Rpdj48ZGl2PkknbSBu b3QgYWdhaW5zdCBpdC4gSSBqdXN0IHRoaW5rIHRoYXQgaGlnaGxpZ2h0aW5nIG9mIGFuIGludGVy cG9sYXRpb248L2Rpdj48ZGl2PmFzIGEgc3RyaW5nIGlzIHdyb25nLiBJcyBpdCBwb3NzaWJsZSB0 byBzZXQgcXVpZXQgZm9udGlmaWNhdGlvbiBpbjwvZGl2PjxkaXY+ZW1hY3MtbGlzcCBtb2RlLCBp biBzdWNoIGEgd2F5IHRoYXQgYGtleXdvcmRzJyBpbiBkb2Mtc3RyaW5ncyB3ZXJlPC9kaXY+PGRp dj5mb250aWZpZWQgYXMgYSBkb2Mtc3RyaW5nIGl0c2VsZj8gSSB0aGluayBpdCBpcyBzaW1pbGFy IHRvPC9kaXY+PGRpdj5pbnRlcnBvbGF0aW9uLCBpdCBzZXJ2ZXMgdGhlIHB1cnBvc2Ugb2Ygc2Vw YXJhdGluZyBkaWZmZXJlbnQgc2VtYW50aWM8L2Rpdj48ZGl2PmVsZW1lbnRzIGZyb20gZWFjaCBv dGhlci4gSU1ITywgdXNlcnMgd2hvIGxpa2UgcXVpZXQgbGV2ZWxzIHdpbGwgYmVuZWZpdDwvZGl2 PjxkaXY+ZnJvbSBpbnRlcnBvbGF0aW9uIGhpZ2hsaWdodGVkIGRpZmZlcmVudGx5LjwvZGl2Pjxk aXY+wqA8L2Rpdj48ZGl2PiZndDsgSW5zdGVhZCBvZiB0aGUgdGhpcmQgbGV2ZWwsIHRoZSBjaGVj ayBzaG91bGQgdXNlIHRoZSB2YWx1ZTwvZGl2PjxkaXY+Jmd0OyB0cmVlc2l0LWZvbnQtbG9jay1s ZXZlbC4gQW5kIGl0IHNob3VsZCBjaGVjayBmb3IgZWFjaCBsZXZlbCBzbWFsbGVyIHRoYW48L2Rp dj48ZGl2PiZndDsgb3IgZXF1YWwgdG8gdHJlZXNpdC1mb250LWxvY2stbGV2ZWwuPC9kaXY+PGRp dj7CoDwvZGl2PjxkaXY+RG9uZS48L2Rpdj48ZGl2PsKgPC9kaXY+PGRpdj4mZ3Q7IE5vbi1lc3Nl bnRpYWwgZm9udGlmaWNhdGlvbiBsaWtlICJ2YXIiIHNob3VsZG4ndCBiZTwvZGl2PjxkaXY+Jmd0 OyBhY3RpdmF0ZWQgYXQgdGhhdCBsZXZlbC4gU28gSSBzdWdnZXN0IHRvIHB1dCBpdCBpbiB0aGUg dmFyaWFibGUgZmVhdHVyZSw8L2Rpdj48ZGl2PiZndDsgYWxvbmcgd2l0aCBtYW55IG90aGVyIG5v bi1lc3NlbnRpYWwgZm9udGlmaWNhdGlvbnMuIChWYXJpYWJsZSBmZWF0dXJlIGlzPC9kaXY+PGRp dj4mZ3Q7IHBsYWNlZCBhdCBsZXZlbCA0Lik8L2Rpdj48ZGl2PsKgPC9kaXY+PGRpdj5JIGFkZGVk IGEgbmV3IGZlYXR1cmUgdmFyaWFibGUtZGVmaW5pdGlvbiBmb3IgdmFyaWFibGVzIGRlZmluZWQg Zm9yIGxvY2FsIHNjb3BlcyBhbmQgcHV0IGl0IG9uIHRoZSAzcmQgbGV2ZWwuPC9kaXY+PGRpdj48 ZGl2PkkgYWxzbyBhZGRlZCBydWxlcyB0byB2YXJpYWJsZS1kZWZpbml0aW9uIGZlYXR1cmUgZm9y IHZhcmlhYmxlcyBpbiBsaXN0PC9kaXY+PGRpdj5jb21wcmVoZW5zaW9uICggW3ZhcisxIGZvciB2 YXIgaW4gW11dICkgYW5kIGFzX3BhdHRlcm4gKHdpdGggVCBhcyB2YXI6LDwvZGl2PjxkaXY+ZXhj ZXB0IEUgYXMgdmFyOiwgY2FzZSBzdHIoKSBhcyB2YXI6KS48L2Rpdj48ZGl2PsKgPC9kaXY+PC9k aXY+PGRpdj5JJ3ZlIG5vdGljZWQgdGhhdCB2YXJzIGluIGBmb3IgdmFyMSwgKHZhcjIsIHZhcjMp IGluIFtdOmAgYXJlIGhpZ2hsaWdodGVkIGJ5IHRoZSBydWxlIGZyb20gdGhlIGFzc2lnbm1lbnQg ZmVhdHVyZSAoc3BlY2lmaWNhbGx5IGBwYXR0ZXJuX2xpc3RgLCBgdHVwbGVfcGF0dGVybmApLjwv ZGl2PjxkaXY+SXQgc2VlbXMgZWFzeSB0byBmaXggYHBhdHRlcm5fbGlzdGAsIGJ1dCBub3Qgc28g ZWFzeSBmb3I8L2Rpdj48ZGl2PmB0dXBsZV9wYXR0ZXJuYCwgc2luY2UgdGhpcyBub2RlIG1heSBv Y2N1ciByZWN1cnNpdmVseS48L2Rpdj48ZGl2PkkgZGlkbid0IHRvdWNoIHRoZXNlIHJ1bGVzIGZv ciBub3cuPC9kaXY+PGRpdj7CoDwvZGl2PjxkaXY+wqA8L2Rpdj48ZGl2PsKgPC9kaXY+PGRpdj5T dW1tYXJ5IGZvciBhbGwgY2hhbmdlcyBpbiB0aGUgcGF0Y2guPC9kaXY+PGRpdj7CoDwvZGl2Pjxk aXY+TmV3IGZlYXR1cmUgdmFyaWFibGUtZGVmaW5pdGlvbjo8L2Rpdj48ZGl2PmBmb3IgdmFyIGlu IHJhbmdlKDMpYDwvZGl2PjxkaXY+YFt2YXIrMSBmb3IgdmFyIGluIFtdXWA8L2Rpdj48ZGl2PmB3 aXRoIFQgYXMgdmFyOmA8L2Rpdj48ZGl2PmBleGNlcHQgRSBhcyB2YXI6YDwvZGl2PjxkaXY+YGNh c2Ugc3RyKCkgYXMgdmFyOmA8L2Rpdj48ZGl2PmhpZ2hsaWdodCB2YXIgYXMgZm9udC1sb2NrLXZh cmlhYmxlLW5hbWUtZmFjZTwvZGl2PjxkaXY+wqA8L2Rpdj48ZGl2PmFzc2lnbm1lbnQgZmVhdHVy ZTo8L2Rpdj48ZGl2PnZhciA6PSAzIChuYW1lZF9leHByZXNzaW9uKTwvZGl2PjxkaXY+dmFyICo9 IDMgKGF1Z21lbnRlZF9hc3NpZ25tZW50KTwvZGl2PjxkaXY+SGlnaGxpZ2h0IHZhciBhcyBmb250 LWxvY2stdmFyaWFibGUtbmFtZS1mYWNlLjwvZGl2PjxkaXY+wqA8L2Rpdj48ZGl2Pk1ha2UgbGlz dF9zcGxhdF9wYXR0ZXJuIHF1ZXJ5IG1vcmUgcHJlY2lzZS48L2Rpdj48ZGl2Pmxpc3Rfc3BsYXRf cGF0dGVybiBtYXkgYXBwZWFyIG5vdCBvbmx5IGluIGFzc2lnbm1lbnRzOiB2YXIsICpyZXN0ID0g Y2FsbCgpLDwvZGl2PjxkaXY+YnV0IGluIHRoZSBwYXJhbWV0ZXIgbGlzdCB0b286IGRlZiBmKCph cmdzKS48L2Rpdj48ZGl2PkhpZ2hsaWdodCBhcmdzIG9ubHkgZm9yIHRoZSBmaXJzdCBjYXNlIGlu IGFzc2lnbm1lbnQgZmVhdHVyZS48L2Rpdj48ZGl2PsKgPC9kaXY+PGRpdj7CoDwvZGl2PjxkaXY+ dHlwZSBmZWF0dXJlOjwvZGl2PjxkaXY+Rm9udGlmeSBidWlsdC1pbnMgKGRpY3QsbGlzdCxldGMu KSBhcyB0eXBlcyB3aGVuIHRoZXkgYXJlIHVzZWQgaW4gdHlwZSBoaW50cy48L2Rpdj48ZGl2PnN1 cHBvcnQgbmVzdGVkIHVuaW9uIHR5cGVzLCBmb3IgZXhhbXBsZSBgTHZsMSB8IEx2bDJbTHZsM1tM dmwzXSwgTHZsMl1gLjwvZGl2PjxkaXY+VGhpcyBzdHJ1Y3R1cmUgaXMgcmVwcmVzZW50ZWQgdmlh IG5lc3RpbmcgYmluYXJ5X29wZXJhdG9yIGFuZCBzdWJzY3JpcHQgbm9kZXMgaW4gdGhlIGdyYW1t YXIuPC9kaXY+PGRpdj5GdW5jdGlvbiBweXRob24tLXRyZWVzaXQtZm9udGlmeS11bmlvbi10eXBl cyBpdGVyYXRlcyBvdmVyIGFsbCBjaGlsZHJlbiBhbmQgaGlnaGxpZ2h0IGlkZW50aWZpZXIgbm9k ZXMuPC9kaXY+PGRpdj7CoDwvZGl2PjxkaXY+Rm9udGlmeSBiYXNlIGNsYXNzIG5hbWVzIGluIHRo ZSBjbGFzcyBkZWZpbml0aW9uOiBjbGFzcyBUZW1wKEJhc2UxLCBwYWNrMC5CYXNlMik6PC9kaXY+ PGRpdj5Gb250aWZ5IGNsYXNzIHBhdHRlcm5zIGluIGNhc2Ugc3RhdGVtZW50OiBjYXNlIFtUZW1w QygpIHwgYnl0ZXMoYildOjwvZGl2PjxkaXY+SGlnaGxpZ2h0IHRoZSBzZWNvbmQgYXJndW1lbnQg YXMgYSB0eXBlIGluIGlzaW5zdGFuY2UvaXNzdWJjbGFzcyBjYWxsOjwvZGl2PjxkaXY+aXNpbnN0 YW5jZSh2YXIyLCAoc3RyLCBkaWN0LCBUeXBlMSkpOyBpc3N1YmNsYXNzKHZhcjEsIGludHxzdHIp PC9kaXY+PGRpdj7CoDwvZGl2PjxkaXY+Rm9yIGFsbCBkb3R0ZWQgbmFtZXMgb2YgYSB0eXBlIGhp Z2hsaWdodCBvbmx5IHRoZSBsYXN0IHBhcnQgb2YgdGhlIG5hbWUsPC9kaXY+PGRpdj5lLmcuIGNv bGxlY3Rpb25zLmFiYy5JdGVyYXRvci48L2Rpdj48ZGl2PsKgPC9kaXY+PGRpdj7CoDwvZGl2Pjxk aXY+ZGVjb3JhdG9yIGZlYXR1cmU6PC9kaXY+PGRpdj5IaWdobGlnaHQgZG90dGVkIG5hbWVzOiBA cHl0ZXN0Lm1hcmsuc2tpcDwvZGl2PjxkaXY+RnVuY3Rpb24gcHl0aG9uLS10cmVlc2l0LWZvbnRp ZnktZG90dGVkLWRlY29yYXRvciBpdGVyYXRlcyBvdmVyIGFsbCBuZXN0ZWQgYXR0cmlidXRlIG5v ZGVzIGFuZCBoaWdobGlnaHQgaWRlbnRpZmllciBub2Rlcy48L2Rpdj48ZGl2PsKgPC9kaXY+PGRp dj5XaGVuIGZvbnQtbG9jay1sZXZlbCBpcyBzZXQgNCwgYHNraXBgIGhhZCBmdW5jdGlvbi1jYWxs IGZhY2UgaW46IEBweXRlc3QubWFyay5za2lwKHJlYXNvbj0ndCcpPC9kaXY+PGRpdj5BZGQgYDpv dmVycmlkZSB0YCB0byBkZWNvcmF0b3IgZmVhdHVyZSB0byBvdmVycmlkZSBmdW5jdGlvbi1jYWxs IGZhY2UuPC9kaXY+PGRpdj7CoDwvZGl2PjxkaXY+wqA8L2Rpdj48ZGl2PnN0cmluZyBmZWF0dXJl OjwvZGl2PjxkaXY+RW5hYmxlIGludGVycG9sYXRpb24gaGlnaGxpZ2h0aW5nIG9ubHkgaWYgc3Ry aW5nLWludGVycG9sYXRpb24gaXM8L2Rpdj48ZGl2PnByZXNlbnRlZCBvbiB0aGUgZW5hYmxlZCBs ZXZlbHMgb2YgdHJlZXNpdC1mb250LWxvY2stZmVhdHVyZS1saXN0LjwvZGl2PjxkaXY+Rml4IGZv bnRpZmljYXRpb24gb2Ygc3RyaW5ncyBpbnNpZGUgb2YgZi1zdHJpbmdzIGludGVycG9sYXRpb24s PC9kaXY+PGRpdj5lLmcuIGZvciBmImJlZyB7J25lc3RlZCd9IiAtICduZXN0ZWQnIHdhcyBub3Qg Zm9udGlmaWVkIGFzIHN0cmluZy48L2Rpdj48ZGl2PsKgPC9kaXY+PGRpdj7CoDwvZGl2PjxkaXY+ ZnVuY3Rpb24gZmVhdHVyZTo8L2Rpdj48ZGl2PkRvIG5vdCBvdmVycmlkZSB0aGUgZmFjZSBvZiBi dWlsdGluIGZ1bmN0aW9ucyAoYWxsLCBieXRlcyBldGMuKSB3aXRoPC9kaXY+PGRpdj50aGUgZnVu Y3Rpb24gY2FsbCBmYWNlPC9kaXY+PGRpdj7CoDwvZGl2PjxkaXY+wqA8L2Rpdj48ZGl2PmtleXdv cmQgZmVhdHVyZTo8L2Rpdj48ZGl2PkFkZCAiaXMgbm90IsKgIHRvIHRoZSBgcHl0aG9uLS10cmVl c2l0LWtleXdvcmRzYCBsaXN0LjwvZGl2PjxkaXY+wqA8L2Rpdj48ZGl2PsKgPC9kaXY+PC9kaXY+ PGRpdj7CoDwvZGl2PjxkaXY+MTIuMTIuMjAyMywgMTE6MjQsICJZdWFuIEZ1IiAmbHQ7Y2Fzb3Vy aUBnbWFpbC5jb20mZ3Q7OjwvZGl2PjxibG9ja3F1b3RlPjxwPjxiciAvPjxiciAvPk9uIDEyLzEx LzIzIDU6MTggUE0sIERlbmlzIFp1YmFyZXYgd3JvdGU6PC9wPjxibG9ja3F1b3RlPsKgWXVhbiBh bmQgRG1pdHJ5LCB0aGFuayB5b3UgZm9yIHJldmlldyBhbmQgc3VnZ2VzdGlvbnMuPGJyIC8+wqAm Z3Q7IENhbiB3ZSBkbyB0aGlzIGluc3RlYWQ6IGluIHB5dGhvbi0tdHJlZXNpdC1mb250aWZ5LXN0 cmluZywgd2UgY2hlY2sgaWY8YnIgLz7CoMKgIHN0cmluZy1pbnRlcnBvbGF0aW9uIGZlYXR1cmUg aXMgZW5hYmxlZCwgaWYgaXQgaXMsIGZvbnRpZnkgc3RyaW5nX3N0YXJ0LDxiciAvPsKgwqAgc3Ry aW5nX2NvbnRlbnQgYW5kIHN0cmluZ19lbmQgb25seTsgaWYgbm90LCBmb250aWZ5IHRoZSB3aG9s ZSBzdHJpbmcuPGJyIC8+wqBEb25lLjxiciAvPsKgRW5hYmxlIGludGVycG9sYXRpb24gaGlnaGxp Z2h0aW5nIG9ubHkgaWYgJ3N0cmluZy1pbnRlcnBvbGF0aW9uIGlzPGJyIC8+wqBwcmVzZW50ZWQg b24gdGhlIHRoaXJkIGxldmVsIG9mIHRyZWVzaXQtZm9udC1sb2NrLWZlYXR1cmUtbGlzdC48YnIg Lz7CoFBlcnNvbmFsbHksIElmIEkgc2F3IGEgZi1zdHJpbmcgd2l0aCBhbiBpbnRlcnBvbGF0aW9u IGZvbnRpZmllZCBhczxiciAvPsKgc3RyaW5nLCBJIHdvdWxkIGFzc3VtZSB0aGF0IGl0IGlzIGJ1 Zy48YnIgLz7CoENsZWFybHkgaXQgaXMgbm90IGEgc3RyaW5nLCBzbyBpdCBzaG91bGQgYmUgaGln aGxpZ2h0ZWQgZGlzdGluY3RseS48YnIgLz7CoEJ1dCBpZiBpdCBpcyBhIGNvbnZlbnRpb24gYWNy b3NzIGFsbCBsYW5ndWFnZXMsIHdlIHNob3VsZCBmb2xsb3cgaXQuPC9ibG9ja3F1b3RlPjxwPjxi ciAvPknCoCBlbmNvdXJhZ2UgZXZlcnlvbmUgdG8gYWxzbyB0aGluayBpbiB0ZXJtcyBvZiBmb250 aWZpY2F0aW9uIGxldmVscywgaW48YnIgLz5hZGRpdGlvbiB0byBmZWF0dXJlcy48YnIgLz48YnIg Lz5Gb3IgbWFueSBFbWFjcyB1c2VycywgdGhleSB3YW50IGEgcXVpZXRlciBvciBldmVuIG1pbmlt YWwgZm9udGlmaWNhdGlvbi48YnIgLz5Tb21lIHBlb3BsZSBvbmx5IHdhbnQgY29tbWVudCBhbmQg ZnVuY3Rpb24gbmFtZXMgaGlnaGxpZ2h0ZWQsIGFuZCB0aGV5PGJyIC8+Y2FuIGdldCBpdCBieSBz ZXR0aW5nIHRoZSBmb250aWZpY2F0aW9uIGxldmVsIHRvIDEsIGJlY2F1c2U8YnIgLz5weXRob24t dHMtbW9kZSBvbmx5IGFjdGl2YXRlcyB0aGUgY29tbWVudCBhbmQgZGVmaW5pdGlvbiBmZWF0dXJl IGF0PGJyIC8+bGV2ZWwgMS4gVGhlIHN0cmluZyBmZWF0dXJlIGlzIGF0IGxldmVsIDIsIHRoaXMg bGV2ZWwgaXMgc3RpbGw8YnIgLz5yZWxhdGl2ZWx5IHNpbXBsaXN0aWMuIEFuZCBmdWxsIHN0cmlu ZyBpbnRlcnBvbGF0aW9uIHByb2JhYmx5IGRvbid0PGJyIC8+YmVsb25nIGF0IHRoYXQgbGV2ZWwu IFRoYXQncyB3aHkgSSBzZXBhcmF0ZWQgaXQgb3V0IGludG8gYW5vdGhlcjxiciAvPmZlYXR1cmUs IGFuZCBwbGFjZWQgc3RyaW5nLWludGVycG9sYXRpb24gYXQgbGV2ZWwgMy48YnIgLz7CoDwvcD48 YmxvY2txdW90ZT7CoCZndDsgSSB0aGluayAiZm9yIHZhciBpbiByYW5nZSgzKSIgc2hvdWxkIGJl IHBhcnQgb2YgdGhlICJkZWZpbml0aW9uIiBmZWF0dXJlPGJyIC8+wqDCoCBiZWNhdXNlIGEgdmFy aWFibGUgaXMgZGVmaW5lZCB0aGVyZS4gQWxvbmdzaWRlIHBhcmFtZXRlcnMuPGJyIC8+wqBJIGFk ZGVkIGl0IHRvIGRlZmluaXRpb25zLjwvYmxvY2txdW90ZT48cD48YnIgLz5BZ2FpbiwgaWYgd2Ug dGhpbmsgb2YgZm9udGlmaWNhdGlvbiBsZXZlbHMsIHRoZSBkZWZpbml0aW9uIGZlYXR1cmUgaXM8 YnIgLz5hYm91dCBmb250aWZ5aW5nIHRoZSBmdW5jdGlvbiBuYW1lcyBvZiBkZWZpbml0aW9ucywg YW5kIGl0J3MgYXQgYSBsb3c8YnIgLz5sZXZlbCAobGV2ZWwgMSkuIE5vbi1lc3NlbnRpYWwgZm9u dGlmaWNhdGlvbiBsaWtlICJ2YXIiIHNob3VsZG4ndCBiZTxiciAvPmFjdGl2YXRlZCBhdCB0aGF0 IGxldmVsLiBTbyBJIHN1Z2dlc3QgdG8gcHV0IGl0IGluIHRoZSB2YXJpYWJsZSBmZWF0dXJlLDxi ciAvPmFsb25nIHdpdGggbWFueSBvdGhlciBub24tZXNzZW50aWFsIGZvbnRpZmljYXRpb25zLiAo VmFyaWFibGUgZmVhdHVyZSBpczxiciAvPnBsYWNlZCBhdCBsZXZlbCA0Lik8YnIgLz7CoDwvcD48 YmxvY2txdW90ZT7CoE15IHRob3VnaHRzIGFib3V0IHBhcmFtZXRlcnMuIEkgc3RhcnRlZCB0byBl eHRlbmQgcnVsZXMgZm9yIHRoZW0gc2luY2U8YnIgLz7CoHRoZXkgYXJlIHZlcnkgbGltaXRlZCBu b3cuPGJyIC8+wqBCdXQgSSdtIG5vdCBzdXJlIHdoYXQgZmFjZSB0byB1c2UgZm9yIHRoZW0uPGJy IC8+wqBJIHdvdWxkIGxpa2UgdG8gbm90IHVzZSB0aGUgc2FtZSBmYWNlIGFzIGZvciBhc3NpZ25t ZW50cywgYmVjYXVzZSBJJ2Q8YnIgLz7CoHdhbnQgdG8gaGlnaGxpZ2h0IHRoZW0gZGlmZmVyZW50 bHkuPGJyIC8+wqBJdCBzZWVtcyB0aGF0IHRoZXJlIGlzIG5vIGFwcHJvcHJpYXRlIGZhY2UgaW4g Zm9udC1sb2NrLmVsLCBzbyBJIGVuZGVkPGJyIC8+wqB1cCBjcmVhdGluZyBteSBvd24gZmFjZSBp biBteSBjb25maWcuPGJyIC8+wqBEb2VzIGl0IG1ha2Ugc2Vuc2UgdG8gYWRkIG5ldyBmYWNlIGZv ciBwYXJhbWV0ZXJzIGluIGZvbnQtbG9jay5lbD88YnIgLz7CoE9yIGl0IGlzIHRvbyBzbWFsbCBm ZWF0dXJlIGZvciBpdHMgb3duIGZhY2U/PGJyIC8+wqBJIGFsc28gYXBwbHkgdGhpcyBmYWNlIGZv ciBrZXl3b3JkIGFyZ3VtZW50IGluIGZ1bmN0aW9uIGNhbGxzLjwvYmxvY2txdW90ZT48cD5UbyBi ZSBob25lc3QsIEkgZG9uJ3QgaGF2ZSBhbnkgZ29vZCBpZGVhcy4gUGVyaGFwcyB3ZSBjYW4gYWRk IGE8YnIgLz5wYXJhbWV0ZXIgZmFjZSB0aGF0IGluaGVyaXRzIGZyb20gdmFyaWFibGUgbmFtZSBm YWNlIGJ5IGRlZmF1bHQsIERtaXRyeSw8YnIgLz5XRFlUPzwvcD48YmxvY2txdW90ZT7CoFN1bW1h cnkgZm9yIGFsbCBjaGFuZ2VzIGluIHRoZSBwYXRjaC48YnIgLz7CoGRlZmluaXRpb24gZmVhdHVy ZTo8YnIgLz7CoGBmb3IgdmFyIGluIHJhbmdlKDMpYCBoaWdobGlnaHQgdmFyIGFzIGZvbnQtbG9j ay12YXJpYWJsZS1uYW1lLWZhY2U8YnIgLz7CoGFzc2lnbm1lbnQgZmVhdHVyZTo8YnIgLz7CoHZh ciA6PSAzIChuYW1lZF9leHByZXNzaW9uKTxiciAvPsKgdmFyICo9IDMgKGF1Z21lbnRlZF9hc3Np Z25tZW50KTxiciAvPsKgSGlnaGxpZ2h0IHZhciBhcyBmb250LWxvY2stdmFyaWFibGUtbmFtZS1m YWNlLjxiciAvPsKgTWFrZSBsaXN0X3NwbGF0X3BhdHRlcm4gcXVlcnkgbW9yZSBwcmVjaXNlLjxi ciAvPsKgbGlzdF9zcGxhdF9wYXR0ZXJuIG1heSBhcHBlYXIgbm90IG9ubHkgaW4gYXNzaWdubWVu dHM6IHZhciwgKnJlc3QgPTxiciAvPsKgY2FsbCgpLDxiciAvPsKgYnV0IGluIHRoZSBwYXJhbWV0 ZXIgbGlzdCB0b286IGRlZiBmKCphcmdzKS48YnIgLz7CoEhpZ2hsaWdodCBhcmdzIG9ubHkgZm9y IHRoZSBmaXJzdCBjYXNlIGluIGFzc2lnbm1lbnQgZmVhdHVyZS48YnIgLz7CoHR5cGUgZmVhdHVy ZTo8YnIgLz7CoEZvbnRpZnkgYnVpbHQtaW5zIChkaWN0LGxpc3QsZXRjLikgYXMgdHlwZXMgd2hl biB0aGV5IGFyZSB1c2VkIGluIHR5cGU8YnIgLz7CoGhpbnRzLjxiciAvPsKgc3VwcG9ydCBuZXN0 ZWQgdW5pb24gdHlwZXMsIGZvciBleGFtcGxlIGBMdmwxIHwgTHZsMltMdmwzW0x2bDNdLCBMdmwy XWAuPGJyIC8+wqBUaGlzIHN0cnVjdHVyZSBpcyByZXByZXNlbnRlZCB2aWEgbmVzdGluZyBiaW5h cnlfb3BlcmF0b3IgYW5kPGJyIC8+wqBzdWJzY3JpcHQgbm9kZXMgaW4gdGhlIGdyYW1tYXIuPGJy IC8+wqBGdW5jdGlvbiBweXRob24tLXRyZWVzaXQtZm9udGlmeS11bmlvbi10eXBlcyBpdGVyYXRl cyBvdmVyIGFsbDxiciAvPsKgY2hpbGRyZW4gYW5kIGhpZ2hsaWdodCBpZGVudGlmaWVyIG5vZGVz LjxiciAvPsKgRm9udGlmeSBiYXNlIGNsYXNzIG5hbWVzIGluIHRoZSBjbGFzcyBkZWZpbml0aW9u OiBjbGFzcyBUZW1wKEJhc2UxLDxiciAvPsKgcGFjazAuQmFzZTIpOjxiciAvPsKgRm9udGlmeSBj bGFzcyBwYXR0ZXJucyBpbiBjYXNlIHN0YXRlbWVudDogY2FzZSBbVGVtcEMoKSB8IGJ5dGVzKGIp XTo8YnIgLz7CoEhpZ2hsaWdodCB0aGUgc2Vjb25kIGFyZ3VtZW50IGFzIGEgdHlwZSBpbiBpc2lu c3RhbmNlL2lzc3ViY2xhc3MgY2FsbDo8YnIgLz7CoGlzaW5zdGFuY2UodmFyMiwgKHN0ciwgZGlj dCwgVHlwZTEpKTsgaXNzdWJjbGFzcyh2YXIxLCBpbnR8c3RyKTxiciAvPsKgRm9yIGFsbCBkb3R0 ZWQgbmFtZXMgb2YgYSB0eXBlIGhpZ2hsaWdodCBvbmx5IHRoZSBsYXN0IHBhcnQgb2YgdGhlIG5h bWUsPGJyIC8+wqBlLmcuIGNvbGxlY3Rpb25zLmFiYy5JdGVyYXRvci48YnIgLz7CoGRlY29yYXRv ciBmZWF0dXJlOjxiciAvPsKgSGlnaGxpZ2h0IGRvdHRlZCBuYW1lczogQHB5dGVzdC5tYXJrLnNr aXA8YnIgLz7CoEZ1bmN0aW9uIHB5dGhvbi0tdHJlZXNpdC1mb250aWZ5LWRvdHRlZC1kZWNvcmF0 b3IgaXRlcmF0ZXMgb3ZlciBhbGw8YnIgLz7CoG5lc3RlZCBhdHRyaWJ1dGUgbm9kZXMgYW5kIGhp Z2hsaWdodCBpZGVudGlmaWVyIG5vZGVzLjxiciAvPsKgV2hlbiBmb250LWxvY2stbGV2ZWwgaXMg c2V0IDQsIGBza2lwYCBoYWQgZnVuY3Rpb24tY2FsbCBmYWNlIGluOjxiciAvPsKgQHB5dGVzdC5t YXJrLnNraXAocmVhc29uPSd0Jyk8YnIgLz7CoEFkZCBgOm92ZXJyaWRlIHRgIHRvIGRlY29yYXRv ciBmZWF0dXJlIHRvIG92ZXJyaWRlIGZ1bmN0aW9uLWNhbGwgZmFjZS48YnIgLz7CoHN0cmluZyBm ZWF0dXJlOjxiciAvPsKgRW5hYmxlIGludGVycG9sYXRpb24gaGlnaGxpZ2h0aW5nIG9ubHkgaWYg c3RyaW5nLWludGVycG9sYXRpb24gaXM8YnIgLz7CoHByZXNlbnRlZCBvbiB0aGUgdGhpcmQgbGV2 ZWwgb2YgdHJlZXNpdC1mb250LWxvY2stZmVhdHVyZS1saXN0LjxiciAvPsKgRml4IGZvbnRpZmlj YXRpb24gb2Ygc3RyaW5ncyBpbnNpZGUgb2YgZi1zdHJpbmdzIGludGVycG9sYXRpb24sPGJyIC8+ wqBlLmcuIGZvciBmImJlZyB7J25lc3RlZCd9IiAtICduZXN0ZWQnIHdhcyBub3QgZm9udGlmaWVk IGFzIHN0cmluZy48L2Jsb2NrcXVvdGU+PHA+SW5zdGVhZCBvZiB0aGUgdGhpcmQgbGV2ZWwsIHRo ZSBjaGVjayBzaG91bGQgdXNlIHRoZSB2YWx1ZTxiciAvPnRyZWVzaXQtZm9udC1sb2NrLWxldmVs LiBBbmQgaXQgc2hvdWxkIGNoZWNrIGZvciBlYWNoIGxldmVsIHNtYWxsZXIgdGhhbjxiciAvPm9y IGVxdWFsIHRvIHRyZWVzaXQtZm9udC1sb2NrLWxldmVsLjwvcD48YmxvY2txdW90ZT7CoGZ1bmN0 aW9uIGZlYXR1cmU6PGJyIC8+wqBEbyBub3Qgb3ZlcnJpZGUgdGhlIGZhY2Ugb2YgYnVpbHRpbiBm dW5jdGlvbnMgKGFsbCwgYnl0ZXMgZXRjLikgd2l0aDxiciAvPsKgdGhlIGZ1bmN0aW9uIGNhbGwg ZmFjZTxiciAvPsKga2V5d29yZCBmZWF0dXJlOjxiciAvPsKgQWRkICJpcyBub3QiwqAgdG8gdGhl IGBweXRob24tLXRyZWVzaXQta2V5d29yZHNgIGxpc3QuPGJyIC8+wqA8L2Jsb2NrcXVvdGU+PHA+ VGhhbmtzLCB0aGV5IGxvb2sgZ29vZC4gVGhlIHBhdGNoIGlzIGdldHRpbmcgcmF0aGVyIGxhcmdl LCBsZXQncyBmb2N1czxiciAvPm9uIGdldHRpbmcgdGhlIGV4aXN0aW5nIGNoYW5nZXMgbWVyZ2Vk IHJhdGhlciB0aGFuIGFkZGluZyBuZXcgc3R1ZmYgdG88YnIgLz5pdC4gVGhvdWdoIEkgdGhpbmsg eW91ciBjb3B5cmlnaHQgYXNzaWdubWVudCBoYXNuJ3QgY29tcGxldGVkLCByaWdodD88YnIgLz48 YnIgLz5ZdWFuPGJyIC8+PGJyIC8+wqA8L3A+PC9ibG9ja3F1b3RlPg== ------==--bound.549855.an4sa4silbm64yo4.vla.yp-c.yandex.net Content-Disposition: attachment; filename="0004-Improve-syntax-highlighting-for-python-ts-mode.patch" Content-Transfer-Encoding: base64 Content-Type: text/x-diff; name="0004-Improve-syntax-highlighting-for-python-ts-mode.patch" RnJvbSA4OWZhMmNhZDc5M2UwMDA2MmI4MjNlODU1YTE0MWJkOTQwYzRjMTc1IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBEZW5pcyBadWJhcmV2IDxkdnp1YmFyZXZAeWFuZGV4LnJ1PgpE YXRlOiBTYXQsIDExIE5vdiAyMDIzIDA0OjU1OjQ0ICswMzAwClN1YmplY3Q6IFtQQVRDSF0gSW1w cm92ZSBzeW50YXggaGlnaGxpZ2h0aW5nIGZvciBweXRob24tdHMtbW9kZQoKRml4IGZvbnRpZmlj YXRpb24gb2Ygc3RyaW5ncyBpbnNpZGUgb2YgZi1zdHJpbmdzIGludGVycG9sYXRpb24sIGUuZy4g Zm9yCmYiYmVnIHsnbmVzdGVkJ30iIC0gJ25lc3RlZCcgd2FzIG5vdCBmb250aWZpZWQgYXMgc3Ry aW5nLiAgRG8gbm90Cm92ZXJyaWRlIHRoZSBmYWNlIG9mIGJ1aWx0aW4gZnVuY3Rpb25zIChhbGws IGJ5dGVzIGV0Yy4pIHdpdGggdGhlCmZ1bmN0aW9uIGNhbGwgZmFjZS4gIEFkZCBtaXNzaW5nIGFz c2lnbm1lbnQgZXhwcmVzc2lvbnMgKDo9ICo9KS4KSGlnaGxpZ2h0IHZhcmlhYmxlcyBkZWZpbmVk IGluIGZvciBsb29wIChmb3IgdmFyMSwgdmFyMiBpbiApLiAgRm9udGlmeQpidWlsdC1pbnMgKGRp Y3QsbGlzdCxldGMuKSBhcyB0eXBlcyB3aGVuIHRoZXkgYXJlIHVzZWQgaW4gdHlwZSBoaW50cy4K SGlnaGxpZ2h0IHVuaW9uIHR5cGVzICh0eXBlMXx0eXBlMikuICBIaWdobGlnaHQgYmFzZSBjbGFz cyBuYW1lcyBpbiB0aGUKY2xhc3MgZGVmaW5pdGlvbi4gIEZvbnRpZnkgY2xhc3MgcGF0dGVybnMg aW4gY2FzZSBzdGF0ZW1lbnQuIEhpZ2hsaWdodAp0aGUgc2Vjb25kIGFyZ3VtZW50IGFzIGEgdHlw ZSBpbiBpc2luc3RhbmNlL2lzc3ViY2xhc3MgY2FsbC4gSGlnaGxpZ2h0CmRvdHRlZCBkZWNvcmF0 b3IgbmFtZXMuCgpBZGQgbmV3IGZlYXR1cmUgdmFyaWFibGUtZGVmaW5pdGlvbiBmb3IgdmFyaWFi bGVzIGRlZmluZWQgZm9yIGxvY2FsCnNjb3BlcyAoZm9yIHZhciBpbiBbXSwgd2l0aCBUIGFzIHZh ciwgZXRjLikuCgoqIGxpc3AvcHJvZ21vZGVzL3B5dGhvbi5lbCAocHl0aG9uLS10cmVlc2l0LWtl eXdvcmRzKTogQWRkIGNvbXBvdW5kCmtleXdvcmQgImlzIG5vdCIuCihweXRob24tLXRyZWVzaXQt Zm9udGlmeS1zdHJpbmcpOiBmaXggZi1zdHJpbmcgaW50ZXJwb2xhdGlvbi4gRW5hYmxlCmludGVy cG9sYXRpb24gaGlnaGxpZ2h0aW5nIG9ubHkgaWYgc3RyaW5nLWludGVycG9sYXRpb24gaXMgcHJl c2VudGVkIG9uCnRoZSBlbmFibGVkIGxldmVscyBvZiB0cmVlc2l0LWZvbnQtbG9jay1mZWF0dXJl LWxpc3QuCihweXRob24tLXRyZWVzaXQtZm9udGlmeS1zdHJpbmctaW50ZXJwb2xhdGlvbik6IFJl bW92ZSBmdW5jdGlvbi4KKHB5dGhvbi0tdHJlZXNpdC1mb250aWZ5LXVuaW9uLXR5cGVzKTogRm9u dGlmeSBuZXN0ZWQgdW5pb24gdHlwZXMuCihweXRob24tLXRyZWVzaXQtZm9udGlmeS1kb3R0ZWQt ZGVjb3JhdG9yKTogRm9udGlmeSBhbGwgcGFydHMgb2YKZG90dGVkIGRlY29yYXRvciBuYW1lLgoo cHl0aG9uLS10cmVlc2l0LXNldHRpbmdzKTogQ2hhbmdlL2FkZCBydWxlcy4KKiB0ZXN0L2xpc3Av cHJvZ21vZGVzL3B5dGhvbi10ZXN0cy5lbCAocHl0aG9uLXRzLXRlc3RzLXdpdGgtdGVtcC1idWZm ZXIpOgpmdW5jdGlvbiBmb3Igc2V0dGluZyB1cCB0ZXN0IGJ1ZmZlci4KKHB5dGhvbi10cy1tb2Rl LWNvbXBvdW5kLWtleXdvcmRzLWZhY2UpCihweXRob24tdHMtbW9kZS12YXItZm9yLWxvb3AtZmFj ZSkKKHB5dGhvbi10cy1tb2RlLW5hbWVkLWFzc2lnbmVtZW50LWZhY2UtMSkKKHB5dGhvbi10cy1t b2RlLWFzc2lnbmVtZW50LWZhY2UtMikKKHB5dGhvbi10cy1tb2RlLW5lc3RlZC10eXBlcy1mYWNl LTEpCihweXRob24tdHMtbW9kZS11bmlvbi10eXBlcy1mYWNlLTEpCihweXRob24tdHMtbW9kZS11 bmlvbi10eXBlcy1mYWNlLTIpCihweXRob24tdHMtbW9kZS10eXBlcy1mYWNlLTEpCihweXRob24t dHMtbW9kZS10eXBlcy1mYWNlLTIpCihweXRob24tdHMtbW9kZS10eXBlcy1mYWNlLTMpCihweXRo b24tdHMtbW9kZS1pc2luc3RhbmNlLXR5cGUtZmFjZS0xKQoocHl0aG9uLXRzLW1vZGUtaXNpbnN0 YW5jZS10eXBlLWZhY2UtMikKKHB5dGhvbi10cy1tb2RlLXN1cGVyY2xhc3MtdHlwZS1mYWNlKQoo cHl0aG9uLXRzLW1vZGUtY2xhc3MtcGF0dGVybnMtZmFjZSkKKHB5dGhvbi10cy1tb2RlLWRvdHRl ZC1kZWNvcmF0b3ItZmFjZS0xKQoocHl0aG9uLXRzLW1vZGUtZG90dGVkLWRlY29yYXRvci1mYWNl LTIpCihweXRob24tdHMtbW9kZS1idWlsdGluLWNhbGwtZmFjZSkKKHB5dGhvbi10cy1tb2RlLWlu dGVycG9sYXRpb24tbmVzdGVkLXN0cmluZykKKHB5dGhvbi10cy1tb2RlLWRpc2FibGVkLXN0cmlu Zy1pbnRlcnBvbGF0aW9uKQoocHl0aG9uLXRzLW1vZGUtaW50ZXJwb2xhdGlvbi1kb2Mtc3RyaW5n KTogQWRkIHRlc3RzLgotLS0KIGxpc3AvcHJvZ21vZGVzL3B5dGhvbi5lbCAgICAgICAgICAgIHwg MTk2ICsrKysrKysrKysrKy0tLS0KIHRlc3QvbGlzcC9wcm9nbW9kZXMvcHl0aG9uLXRlc3RzLmVs IHwgMzUwICsrKysrKysrKysrKysrKysrKysrKysrKysrKysKIDIgZmlsZXMgY2hhbmdlZCwgNDk3 IGluc2VydGlvbnMoKyksIDQ5IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2xpc3AvcHJvZ21v ZGVzL3B5dGhvbi5lbCBiL2xpc3AvcHJvZ21vZGVzL3B5dGhvbi5lbAppbmRleCBhYjNiZjFiNGVj Li5lN2RjZDhmM2ZiIDEwMDY0NAotLS0gYS9saXNwL3Byb2dtb2Rlcy9weXRob24uZWwKKysrIGIv bGlzcC9wcm9nbW9kZXMvcHl0aG9uLmVsCkBAIC05NzksNyArOTc5LDcgQEAgcHl0aG9uLS10cmVl c2l0LWtleXdvcmRzCiAgICAgInJhaXNlIiAicmV0dXJuIiAidHJ5IiAid2hpbGUiICJ3aXRoIiAi eWllbGQiCiAgICAgOzsgVGhlc2UgYXJlIHRlY2huaWNhbGx5IG9wZXJhdG9ycywgYnV0IHdlIGZv bnRpZnkgdGhlbSBhcwogICAgIDs7IGtleXdvcmRzLgotICAgICJhbmQiICJpbiIgImlzIiAibm90 IiAib3IiICJub3QgaW4iKSkKKyAgICAiYW5kIiAiaW4iICJpcyIgIm5vdCIgIm9yIiAibm90IGlu IiAiaXMgbm90IikpCiAKIChkZWZ2YXIgcHl0aG9uLS10cmVlc2l0LWJ1aWx0aW5zCiAgICcoImFi cyIgImFsbCIgImFueSIgImFzY2lpIiAiYmluIiAiYm9vbCIgImJyZWFrcG9pbnQiICJieXRlYXJy YXkiCkBAIC0xMDQyLDkgKzEwNDIsNyBAQCBweXRob24tLXRyZWVzaXQtZm9udGlmeS1zdHJpbmcK IGYtc3RyaW5ncy4gIE9WRVJSSURFIGlzIHRoZSBvdmVycmlkZSBmbGFnIGRlc2NyaWJlZCBpbgog YHRyZWVzaXQtZm9udC1sb2NrLXJ1bGVzJy4gIFNUQVJUIGFuZCBFTkQgbWFyayB0aGUgcmVnaW9u IHRvIGJlCiBmb250aWZpZWQuIgotICAobGV0KiAoKHN0cmluZy1iZWcgKHRyZWVzaXQtbm9kZS1z dGFydCBub2RlKSkKLSAgICAgICAgIChzdHJpbmctZW5kICh0cmVlc2l0LW5vZGUtZW5kIG5vZGUp KQotICAgICAgICAgKG1heWJlLWV4cHJlc3Npb24gKHRyZWVzaXQtbm9kZS1wYXJlbnQgbm9kZSkp CisgIChsZXQqICgobWF5YmUtZXhwcmVzc2lvbiAodHJlZXNpdC1ub2RlLXBhcmVudCBub2RlKSkK ICAgICAgICAgIChncmFuZHBhcmVudCAodHJlZXNpdC1ub2RlLXBhcmVudAogICAgICAgICAgICAg ICAgICAgICAgICAodHJlZXNpdC1ub2RlLXBhcmVudAogICAgICAgICAgICAgICAgICAgICAgICAg bWF5YmUtZXhwcmVzc2lvbikpKQpAQCAtMTA3MiwyOCArMTA3MCw3OCBAQCBweXRob24tLXRyZWVz aXQtZm9udGlmeS1zdHJpbmcKICAgICAgICAgICAgICAgICAgICAgICAgIChlcXVhbCAodHJlZXNp dC1ub2RlLXR5cGUgbWF5YmUtZXhwcmVzc2lvbikKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAiZXhwcmVzc2lvbl9zdGF0ZW1lbnQiKSkKICAgICAgICAgICAgICAgICAgICAnZm9udC1s b2NrLWRvYy1mYWNlCi0gICAgICAgICAgICAgICAgICdmb250LWxvY2stc3RyaW5nLWZhY2UpKSkK LSAgICA7OyBEb24ndCBoaWdobGlnaHQgc3RyaW5nIHByZWZpeGVzIGxpa2UgZi9yL2IuCi0gICAg KHNhdmUtZXhjdXJzaW9uCi0gICAgICAoZ290by1jaGFyIHN0cmluZy1iZWcpCi0gICAgICAod2hl biAocmUtc2VhcmNoLWZvcndhcmQgIltcIiddIiBzdHJpbmctZW5kIHQpCi0gICAgICAgIChzZXRx IHN0cmluZy1iZWcgKG1hdGNoLWJlZ2lubmluZyAwKSkpKQotICAgICh0cmVlc2l0LWZvbnRpZnkt d2l0aC1vdmVycmlkZQotICAgICBzdHJpbmctYmVnIHN0cmluZy1lbmQgZmFjZSBvdmVycmlkZSBz dGFydCBlbmQpKSkKLQotKGRlZnVuIHB5dGhvbi0tdHJlZXNpdC1mb250aWZ5LXN0cmluZy1pbnRl cnBvbGF0aW9uCi0gICAgKG5vZGUgXyBzdGFydCBlbmQgJnJlc3QgXykKLSAgIkZvbnRpZnkgc3Ry aW5nIGludGVycG9sYXRpb24uCi1OT0RFIGlzIHRoZSBzdHJpbmcgbm9kZS4gIERvIG5vdCBmb250 aWZ5IHRoZSBpbml0aWFsIGYgZm9yCi1mLXN0cmluZ3MuICBTVEFSVCBhbmQgRU5EIG1hcmsgdGhl IHJlZ2lvbiB0byBiZQorICAgICAgICAgICAgICAgICAnZm9udC1sb2NrLXN0cmluZy1mYWNlKSkK KworICAgICAgICAgKGlnbm9yZS1pbnRlcnBvbGF0aW9uIChub3QKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgKHNlcS1zb21lCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAobGFtYmRhIChmZWF0cykgKG1lbXEgJ3N0cmluZy1pbnRlcnBvbGF0aW9uIGZlYXRzKSkKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChzZXEtdGFrZSB0cmVlc2l0LWZvbnQtbG9j ay1mZWF0dXJlLWxpc3QgdHJlZXNpdC1mb250LWxvY2stbGV2ZWwpKSkpCisgICAgICAgICA7OyBJ ZiBpbnRlcnBvbGF0aW9uIGlzIGVuYWJsZWQsIGhpZ2hsaWdodCBvbmx5CisgICAgICAgICA7OyBz dHJpbmdfc3RhcnQvc3RyaW5nX2NvbnRlbnQvc3RyaW5nX2VuZCBjaGlsZHJlbi4gIERvIG5vdAor ICAgICAgICAgOzsgdG91Y2ggaW50ZXJwb2xhdGlvbiBub2RlIHRoYXQgY2FuIG9jY3VyIGluc2lk ZSBvZiB0aGUKKyAgICAgICAgIDs7IHN0cmluZy4KKyAgICAgICAgIChzdHJpbmctbm9kZXMgKGlm IGlnbm9yZS1pbnRlcnBvbGF0aW9uCisgICAgICAgICAgICAgICAgICAgICAgICAgICAobGlzdCBu b2RlKQorICAgICAgICAgICAgICAgICAgICAgICAgICh0cmVlc2l0LWZpbHRlci1jaGlsZAorICAg ICAgICAgICAgICAgICAgICAgICAgICBub2RlCisgICAgICAgICAgICAgICAgICAgICAgICAgIChs YW1iZGEgKGNoKSAobWVtYmVyICh0cmVlc2l0LW5vZGUtdHlwZSBjaCkKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJygic3RyaW5nX3N0YXJ0IgorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJzdHJpbmdfY29udGVu dCIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAic3Ry aW5nX2VuZCIpKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgdCkpKSkKKworICAgIChkb2xp c3QgKHN0cmluZy1ub2RlIHN0cmluZy1ub2RlcykKKyAgICAgIChsZXQgKChzdHJpbmctYmVnICh0 cmVlc2l0LW5vZGUtc3RhcnQgc3RyaW5nLW5vZGUpKQorICAgICAgICAgICAgKHN0cmluZy1lbmQg KHRyZWVzaXQtbm9kZS1lbmQgc3RyaW5nLW5vZGUpKSkKKyAgICAgICAgKHdoZW4gKG9yIGlnbm9y ZS1pbnRlcnBvbGF0aW9uCisgICAgICAgICAgICAgICAgICAoZXF1YWwgKHRyZWVzaXQtbm9kZS10 eXBlIHN0cmluZy1ub2RlKSAic3RyaW5nX3N0YXJ0IikpCisgICAgICAgICAgOzsgRG9uJ3QgaGln aGxpZ2h0IHN0cmluZyBwcmVmaXhlcyBsaWtlIGYvci9iLgorICAgICAgICAgIChzYXZlLWV4Y3Vy c2lvbgorICAgICAgICAgICAgKGdvdG8tY2hhciBzdHJpbmctYmVnKQorICAgICAgICAgICAgKHdo ZW4gKHJlLXNlYXJjaC1mb3J3YXJkICJbXCInXSIgc3RyaW5nLWVuZCB0KQorICAgICAgICAgICAg ICAoc2V0cSBzdHJpbmctYmVnIChtYXRjaC1iZWdpbm5pbmcgMCkpKSkpCisKKyAgICAgICAgKHRy ZWVzaXQtZm9udGlmeS13aXRoLW92ZXJyaWRlCisgICAgICAgICBzdHJpbmctYmVnIHN0cmluZy1l bmQgZmFjZSBvdmVycmlkZSBzdGFydCBlbmQpKSkpKQorCisoZGVmdW4gcHl0aG9uLS10cmVlc2l0 LWZvbnRpZnktdW5pb24tdHlwZXMgKG5vZGUgb3ZlcnJpZGUgc3RhcnQgZW5kICZyZXN0IF8pCisg ICJGb250aWZ5IG5lc3RlZCB1bmlvbiB0eXBlcyBpbiB0aGUgdHlwZSBoaW50cy4KK0ZvciBleGFt bHBlLCBMdmwxIHwgTHZsMltMdmwzW0x2bDRbTHZsNSB8IE5vbmVdXSwgTHZsMl0uICBUaGlzCitz dHJ1Y3R1cmUgaXMgcmVwcmVzZW50ZWQgdmlhIG5lc3RpbmcgYmluYXJ5X29wZXJhdG9yIGFuZAor c3Vic2NyaXB0IG5vZGVzLiAgVGhpcyBmdW5jdGlvbiBpdGVyYXRlcyBvdmVyIGFsbCBsZXZlbHMg YW5kCitoaWdobGlnaHQgaWRlbnRpZmllciBub2Rlcy4gIE5PREUgaXMgdGhlIGJpbmFyeV9vcGVy YXRvcgorbm9kZS4gIE9WRVJSSURFIGlzIHRoZSBvdmVycmlkZSBmbGFnIGRlc2NyaWJlZCBpbgor YHRyZWVzaXQtZm9udC1sb2NrLXJ1bGVzJy4gIFNUQVJUIGFuZCBFTkQgbWFyayB0aGUgcmVnaW9u IHRvIGJlCitmb250aWZpZWQuIgorICAoZG9saXN0IChjaGlsZCAodHJlZXNpdC1ub2RlLWNoaWxk cmVuIG5vZGUgdCkpCisgICAgKHBjYXNlICh0cmVlc2l0LW5vZGUtdHlwZSBjaGlsZCkKKyAgICAg ICgob3IgImlkZW50aWZpZXIiICJub25lIikKKyAgICAgICAodHJlZXNpdC1mb250aWZ5LXdpdGgt b3ZlcnJpZGUKKyAgICAgICAgKHRyZWVzaXQtbm9kZS1zdGFydCBjaGlsZCkgKHRyZWVzaXQtbm9k ZS1lbmQgY2hpbGQpCisgICAgICAgICdmb250LWxvY2stdHlwZS1mYWNlIG92ZXJyaWRlIHN0YXJ0 IGVuZCkpCisgICAgICAoImF0dHJpYnV0ZSIKKyAgICAgICAod2hlbi1sZXQgKCh0eXBlLW5vZGUg KHRyZWVzaXQtbm9kZS1jaGlsZC1ieS1maWVsZC1uYW1lIGNoaWxkICJhdHRyaWJ1dGUiKSkpCisg ICAgICAgICAodHJlZXNpdC1mb250aWZ5LXdpdGgtb3ZlcnJpZGUKKyAgICAgICAgICAodHJlZXNp dC1ub2RlLXN0YXJ0IHR5cGUtbm9kZSkgKHRyZWVzaXQtbm9kZS1lbmQgdHlwZS1ub2RlKQorICAg ICAgICAgICdmb250LWxvY2stdHlwZS1mYWNlIG92ZXJyaWRlIHN0YXJ0IGVuZCkpKQorICAgICAg KChvciAiYmluYXJ5X29wZXJhdG9yIiAic3Vic2NyaXB0IikKKyAgICAgICAocHl0aG9uLS10cmVl c2l0LWZvbnRpZnktdW5pb24tdHlwZXMgY2hpbGQgb3ZlcnJpZGUgc3RhcnQgZW5kKSkpKSkKKwor KGRlZnVuIHB5dGhvbi0tdHJlZXNpdC1mb250aWZ5LWRvdHRlZC1kZWNvcmF0b3IgKG5vZGUgb3Zl cnJpZGUgc3RhcnQgZW5kICZyZXN0IF8pCisgICJGb250aWZ5IGRvdHRlZCBkZWNvcmF0b3JzLgor Rm9yIGV4YW1wbGUgQHB5dGVzLm1hcmsuc2tpcC4gIEl0ZXJhdGUgb3ZlciBhbGwgbmVzdGVkIGF0 dHJpYnV0ZQorbm9kZXMgYW5kIGhpZ2hsaWdodCBpZGVudGlmaWVyIG5vZGVzLiAgTk9ERSBpcyB0 aGUgZmlyc3QgYXR0cmlidXRlCitub2RlLiAgT1ZFUlJJREUgaXMgdGhlIG92ZXJyaWRlIGZsYWcg ZGVzY3JpYmVkIGluCitgdHJlZXNpdC1mb250LWxvY2stcnVsZXMnLiAgU1RBUlQgYW5kIEVORCBt YXJrIHRoZSByZWdpb24gdG8gYmUKIGZvbnRpZmllZC4iCi0gIDs7IFRoaXMgaXMga2luZCBvZiBh IGhhY2ssIGl0IGJhc2ljYWxseSByZW1vdmVzIHRoZSBmYWNlIGFwcGxpZWQgYnkKLSAgOzsgdGhl IHN0cmluZyBmZWF0dXJlLCBzbyB0aGF0IGZvbGxvd2luZyBmZWF0dXJlcyBjYW4gYXBwbHkgdGhl aXIKLSAgOzsgZmFjZS4KLSAgKGxldCAoKG4tc3RhcnQgKHRyZWVzaXQtbm9kZS1zdGFydCBub2Rl KSkKLSAgICAgICAgKG4tZW5kICh0cmVlc2l0LW5vZGUtZW5kIG5vZGUpKSkKLSAgICAocmVtb3Zl LXRleHQtcHJvcGVydGllcwotICAgICAobWF4IHN0YXJ0IG4tc3RhcnQpIChtaW4gZW5kIG4tZW5k KSAnKGZhY2UpKSkpCisgIChkb2xpc3QgKGNoaWxkICh0cmVlc2l0LW5vZGUtY2hpbGRyZW4gbm9k ZSB0KSkKKyAgICAocGNhc2UgKHRyZWVzaXQtbm9kZS10eXBlIGNoaWxkKQorICAgICAgKCJpZGVu dGlmaWVyIgorICAgICAgICh0cmVlc2l0LWZvbnRpZnktd2l0aC1vdmVycmlkZQorICAgICAgICAo dHJlZXNpdC1ub2RlLXN0YXJ0IGNoaWxkKSAodHJlZXNpdC1ub2RlLWVuZCBjaGlsZCkKKyAgICAg ICAgJ2ZvbnQtbG9jay10eXBlLWZhY2Ugb3ZlcnJpZGUgc3RhcnQgZW5kKSkKKyAgICAgICgiYXR0 cmlidXRlIgorICAgICAgIChweXRob24tLXRyZWVzaXQtZm9udGlmeS1kb3R0ZWQtZGVjb3JhdG9y IGNoaWxkIG92ZXJyaWRlIHN0YXJ0IGVuZCkpKSkpCiAKIChkZWZ2YXIgcHl0aG9uLS10cmVlc2l0 LXNldHRpbmdzCiAgICh0cmVlc2l0LWZvbnQtbG9jay1ydWxlcwpAQCAtMTEwMywxNCArMTE1MSw5 IEBAIHB5dGhvbi0tdHJlZXNpdC1zZXR0aW5ncwogCiAgICA6ZmVhdHVyZSAnc3RyaW5nCiAgICA6 bGFuZ3VhZ2UgJ3B5dGhvbgotICAgJygoc3RyaW5nKSBAcHl0aG9uLS10cmVlc2l0LWZvbnRpZnkt c3RyaW5nKQorICAgJygoc3RyaW5nKSBAcHl0aG9uLS10cmVlc2l0LWZvbnRpZnktc3RyaW5nCisg ICAgIChpbnRlcnBvbGF0aW9uIFsieyIgIn0iXSBAZm9udC1sb2NrLW1pc2MtcHVuY3R1YXRpb24t ZmFjZSkpCiAKLSAgIDs7IEhBQ0s6IFRoaXMgZmVhdHVyZSBtdXN0IGNvbWUgYWZ0ZXIgdGhlIHN0 cmluZyBmZWF0dXJlIGFuZCBiZWZvcmUKLSAgIDs7IG90aGVyIGZlYXR1cmVzLiAgTWF5YmUgd2Ug c2hvdWxkIG1ha2Ugc3RyaW5nLWludGVycG9sYXRpb24gYW4KLSAgIDs7IG9wdGlvbiByYXRoZXIg dGhhbiBhIGZlYXR1cmUuCi0gICA6ZmVhdHVyZSAnc3RyaW5nLWludGVycG9sYXRpb24KLSAgIDps YW5ndWFnZSAncHl0aG9uCi0gICAnKChpbnRlcnBvbGF0aW9uKSBAcHl0aG9uLS10cmVlc2l0LWZv bnRpZnktc3RyaW5nLWludGVycG9sYXRpb24pCiAKICAgIDpmZWF0dXJlICdrZXl3b3JkCiAgICA6 bGFuZ3VhZ2UgJ3B5dGhvbgpAQCAtMTEyNiwxMiArMTE2OSw2IEBAIHB5dGhvbi0tdHJlZXNpdC1z ZXR0aW5ncwogICAgICAgbmFtZTogKGlkZW50aWZpZXIpIEBmb250LWxvY2stdHlwZS1mYWNlKQog ICAgICAocGFyYW1ldGVycyAoaWRlbnRpZmllcikgQGZvbnQtbG9jay12YXJpYWJsZS1uYW1lLWZh Y2UpKQogCi0gICA6ZmVhdHVyZSAnZnVuY3Rpb24KLSAgIDpsYW5ndWFnZSAncHl0aG9uCi0gICAn KChjYWxsIGZ1bmN0aW9uOiAoaWRlbnRpZmllcikgQGZvbnQtbG9jay1mdW5jdGlvbi1jYWxsLWZh Y2UpCi0gICAgIChjYWxsIGZ1bmN0aW9uOiAoYXR0cmlidXRlCi0gICAgICAgICAgICAgICAgICAg ICAgYXR0cmlidXRlOiAoaWRlbnRpZmllcikgQGZvbnQtbG9jay1mdW5jdGlvbi1jYWxsLWZhY2Up KSkKLQogICAgOmZlYXR1cmUgJ2J1aWx0aW4KICAgIDpsYW5ndWFnZSAncHl0aG9uCiAgICBgKCgo aWRlbnRpZmllcikgQGZvbnQtbG9jay1idWlsdGluLWZhY2UKQEAgLTExNDIsNiArMTE3OSwxMiBA QCBweXRob24tLXRyZWVzaXQtc2V0dGluZ3MKICAgICAgICAgICAgICAgICAgICAgICBlb2wpKQog ICAgICAgICAgICAgICBAZm9udC1sb2NrLWJ1aWx0aW4tZmFjZSkpKQogCisgICA6ZmVhdHVyZSAn ZnVuY3Rpb24KKyAgIDpsYW5ndWFnZSAncHl0aG9uCisgICAnKChjYWxsIGZ1bmN0aW9uOiAoaWRl bnRpZmllcikgQGZvbnQtbG9jay1mdW5jdGlvbi1jYWxsLWZhY2UpCisgICAgIChjYWxsIGZ1bmN0 aW9uOiAoYXR0cmlidXRlCisgICAgICAgICAgICAgICAgICAgICAgYXR0cmlidXRlOiAoaWRlbnRp ZmllcikgQGZvbnQtbG9jay1mdW5jdGlvbi1jYWxsLWZhY2UpKSkKKwogICAgOmZlYXR1cmUgJ2Nv bnN0YW50CiAgICA6bGFuZ3VhZ2UgJ3B5dGhvbgogICAgJyhbKHRydWUpIChmYWxzZSkgKG5vbmUp XSBAZm9udC1sb2NrLWNvbnN0YW50LWZhY2UpCkBAIC0xMTUzLDMwICsxMTk2LDg1IEBAIHB5dGhv bi0tdHJlZXNpdC1zZXR0aW5ncwogICAgICAgICAgICAgICAgICBAZm9udC1sb2NrLXZhcmlhYmxl LW5hbWUtZmFjZSkKICAgICAgKGFzc2lnbm1lbnQgbGVmdDogKGF0dHJpYnV0ZQogICAgICAgICAg ICAgICAgICAgICAgICAgYXR0cmlidXRlOiAoaWRlbnRpZmllcikKLSAgICAgICAgICAgICAgICAg ICAgICAgIEBmb250LWxvY2stcHJvcGVydHktdXNlLWZhY2UpKQotICAgICAocGF0dGVybl9saXN0 IChpZGVudGlmaWVyKQorICAgICAgICAgICAgICAgICAgICAgICAgQGZvbnQtbG9jay12YXJpYWJs ZS1uYW1lLWZhY2UpKQorICAgICAoYXVnbWVudGVkX2Fzc2lnbm1lbnQgbGVmdDogKGlkZW50aWZp ZXIpCisgICAgICAgICAgICAgICAgICAgICAgICAgICBAZm9udC1sb2NrLXZhcmlhYmxlLW5hbWUt ZmFjZSkKKyAgICAgKG5hbWVkX2V4cHJlc3Npb24gbmFtZTogKGlkZW50aWZpZXIpCisgICAgICAg ICAgICAgICAgICAgICAgIEBmb250LWxvY2stdmFyaWFibGUtbmFtZS1mYWNlKQorICAgICAocGF0 dGVybl9saXN0IFsoaWRlbnRpZmllcikKKyAgICAgICAgICAgICAgICAgICAgKGxpc3Rfc3BsYXRf cGF0dGVybiAoaWRlbnRpZmllcikpXQogICAgICAgICAgICAgICAgICAgIEBmb250LWxvY2stdmFy aWFibGUtbmFtZS1mYWNlKQotICAgICAodHVwbGVfcGF0dGVybiAoaWRlbnRpZmllcikKKyAgICAg KHR1cGxlX3BhdHRlcm4gWyhpZGVudGlmaWVyKQorICAgICAgICAgICAgICAgICAgICAgKGxpc3Rf c3BsYXRfcGF0dGVybiAoaWRlbnRpZmllcikpXQogICAgICAgICAgICAgICAgICAgICBAZm9udC1s b2NrLXZhcmlhYmxlLW5hbWUtZmFjZSkKLSAgICAgKGxpc3RfcGF0dGVybiAoaWRlbnRpZmllcikK LSAgICAgICAgICAgICAgICAgICBAZm9udC1sb2NrLXZhcmlhYmxlLW5hbWUtZmFjZSkKLSAgICAg KGxpc3Rfc3BsYXRfcGF0dGVybiAoaWRlbnRpZmllcikKLSAgICAgICAgICAgICAgICAgICAgICAg ICBAZm9udC1sb2NrLXZhcmlhYmxlLW5hbWUtZmFjZSkpCisgICAgIChsaXN0X3BhdHRlcm4gWyhp ZGVudGlmaWVyKQorICAgICAgICAgICAgICAgICAgICAobGlzdF9zcGxhdF9wYXR0ZXJuIChpZGVu dGlmaWVyKSldCisgICAgICAgICAgICAgICAgICAgQGZvbnQtbG9jay12YXJpYWJsZS1uYW1lLWZh Y2UpKQorCisgICA6ZmVhdHVyZSAndmFyaWFibGUtZGVmaW5pdGlvbgorICAgOmxhbmd1YWdlICdw eXRob24KKyAgIGAoKGZvcl9zdGF0ZW1lbnQgbGVmdDogKGlkZW50aWZpZXIpCisgICAgICBAZm9u dC1sb2NrLXZhcmlhYmxlLW5hbWUtZmFjZSkKKyAgICAgKGZvcl9pbl9jbGF1c2UgbGVmdDogKGlk ZW50aWZpZXIpCisgICAgICAgICAgICAgICAgICAgIEBmb250LWxvY2stdmFyaWFibGUtbmFtZS1m YWNlKQorICAgICAoYXNfcGF0dGVybl90YXJnZXQgKGlkZW50aWZpZXIpCisgICAgICAgICAgICAg ICAgICAgICAgICBAZm9udC1sb2NrLXZhcmlhYmxlLW5hbWUtZmFjZSkKKyAgICAgKGNhc2VfcGF0 dGVybiAoYXNfcGF0dGVybiAiYXMiIDphbmNob3IgKGlkZW50aWZpZXIpCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgQGZvbnQtbG9jay12YXJpYWJsZS1uYW1lLWZhY2UpKSkKIAogICAg OmZlYXR1cmUgJ2RlY29yYXRvcgogICAgOmxhbmd1YWdlICdweXRob24KKyAgIDs7IE92ZXJyaWRl IGZ1bmN0aW9uIGNhbGwgZmFjZS4KKyAgIDpvdmVycmlkZSB0CiAgICAnKChkZWNvcmF0b3IgIkAi IEBmb250LWxvY2stdHlwZS1mYWNlKQogICAgICAoZGVjb3JhdG9yIChjYWxsIGZ1bmN0aW9uOiAo aWRlbnRpZmllcikgQGZvbnQtbG9jay10eXBlLWZhY2UpKQotICAgICAoZGVjb3JhdG9yIChpZGVu dGlmaWVyKSBAZm9udC1sb2NrLXR5cGUtZmFjZSkpCisgICAgIChkZWNvcmF0b3IgKGlkZW50aWZp ZXIpIEBmb250LWxvY2stdHlwZS1mYWNlKQorICAgICAoZGVjb3JhdG9yIFsoYXR0cmlidXRlKSAo Y2FsbCAoYXR0cmlidXRlKSldIEBweXRob24tLXRyZWVzaXQtZm9udGlmeS1kb3R0ZWQtZGVjb3Jh dG9yKSkKIAogICAgOmZlYXR1cmUgJ3R5cGUKICAgIDpsYW5ndWFnZSAncHl0aG9uCisgICA7OyBP dmVycmlkZSBidWlsdC1pbiBmYWNlcyB3aGVuIGRpY3QvbGlzdCBhcmUgdXNlZCBmb3IgdHlwZSBo aW50cy4KKyAgIDpvdmVycmlkZSB0CiAgICBgKCgoaWRlbnRpZmllcikgQGZvbnQtbG9jay10eXBl LWZhY2UKICAgICAgICg6bWF0Y2ggLChyeC10by1zdHJpbmcKICAgICAgICAgICAgICAgICBgKHNl cSBib2wgKG9yICxAcHl0aG9uLS10cmVlc2l0LWV4Y2VwdGlvbnMpCi0gICAgICAgICAgICAgICAg ICAgICAgZW9sKSkKKyAgICAgICAgICAgICAgICAgIGVvbCkpCiAgICAgICAgICAgICAgIEBmb250 LWxvY2stdHlwZS1mYWNlKSkKLSAgICAgKHR5cGUgKGlkZW50aWZpZXIpIEBmb250LWxvY2stdHlw ZS1mYWNlKSkKKyAgICAgKHR5cGUgWyhpZGVudGlmaWVyKSAobm9uZSldIEBmb250LWxvY2stdHlw ZS1mYWNlKQorICAgICAodHlwZSAoYXR0cmlidXRlIGF0dHJpYnV0ZTogKGlkZW50aWZpZXIpIEBm b250LWxvY2stdHlwZS1mYWNlKSkKKyAgICAgOzsgV2UgZG9uJ3Qgd2FudCB0byBoaWdobGlnaHQg YSBwYWNrYWdlIG9mIHRoZSB0eXBlCisgICAgIDs7IChlLmcuIHBhY2suQ2xhc3NOYW1lKS4gIFNv IGV4cGxpY2l0bHkgZXhjbHVkZSBwYXR0ZXJucyB3aXRoCisgICAgIDs7IGF0dHJpYnV0ZSwgc2lu Y2Ugd2UgaGFuZGxlIGRvdHRlZCB0eXBlIG5hbWUgaW4gdGhlIHByZXZpb3VzCisgICAgIDs7IHJ1 bGUuICBUaGUgZm9sbG93aW5nIHJ1bGUgaGFuZGxlCisgICAgIDs7IGdlbmVyaWNfdHlwZS9saXN0 L3R1cGxlL3NwbGF0X3R5cGUgbm9kZXMuCisgICAgICh0eXBlIChfICFhdHRyaWJ1dGUgW1soaWRl bnRpZmllcikgKG5vbmUpXSBAZm9udC1sb2NrLXR5cGUtZmFjZQorICAgICAgICAgICAgICAgICAg ICAgICAgICAoYXR0cmlidXRlIGF0dHJpYnV0ZTogKGlkZW50aWZpZXIpIEBmb250LWxvY2stdHlw ZS1mYWNlKSBdKSkKKyAgICAgOzsgY29sbGVjdGlvbnMuYWJjLkl0ZXJhdG9yW1RdIGNhc2UuCisg ICAgICh0eXBlIChzdWJzY3JpcHQgKGF0dHJpYnV0ZSBhdHRyaWJ1dGU6IChpZGVudGlmaWVyKSBA Zm9udC1sb2NrLXR5cGUtZmFjZSkpKQorICAgICA7OyBOZXN0ZWQgb3B0aW9uYWwgdHlwZSBoaW50 cywgZS5nLiB2YWw6IEx2bDEgfCBMdmwyW0x2bDNbTHZsNF1dLgorICAgICAodHlwZSAoYmluYXJ5 X29wZXJhdG9yKSBAcHl0aG9uLS10cmVlc2l0LWZvbnRpZnktdW5pb24tdHlwZXMpCisgICAgIDs7 Y2xhc3MgVHlwZShCYXNlMSwgU2VxdWVuY2VbVF0pLgorICAgICAoY2xhc3NfZGVmaW5pdGlvbgor ICAgICAgc3VwZXJjbGFzc2VzOgorICAgICAgKGFyZ3VtZW50X2xpc3QgWyhpZGVudGlmaWVyKSBA Zm9udC1sb2NrLXR5cGUtZmFjZQorICAgICAgICAgICAgICAgICAgICAgIChhdHRyaWJ1dGUgYXR0 cmlidXRlOiAoaWRlbnRpZmllcikgQGZvbnQtbG9jay10eXBlLWZhY2UpCisgICAgICAgICAgICAg ICAgICAgICAgKHN1YnNjcmlwdCAoaWRlbnRpZmllcikgQGZvbnQtbG9jay10eXBlLWZhY2UpCisg ICAgICAgICAgICAgICAgICAgICAgKHN1YnNjcmlwdCAoYXR0cmlidXRlIGF0dHJpYnV0ZTogKGlk ZW50aWZpZXIpIEBmb250LWxvY2stdHlwZS1mYWNlKSldKSkKKworICAgICA7OyBQYXRlcm4gbWF0 Y2hpbmc6IGNhc2UgW3N0cigpLCBwYWNrMC5UeXBlMCgpXS4gIFRha2Ugb25seSB0aGUKKyAgICAg OzsgbGFzdCBpZGVudGlmaWVyLgorICAgICAoY2xhc3NfcGF0dGVybiAoZG90dGVkX25hbWUgKGlk ZW50aWZpZXIpIEBmb250LWxvY2stdHlwZS1mYWNlIDphbmNob3IpKQorCisKKyAgICAgOzsgSGln aGxpZ2h0IHRoZSBzZWNvbmQgYXJndW1lbnQgYXMgYSB0eXBlIGluIGlzaW5zdGFuY2UvaXNzdWJj bGFzcy4KKyAgICAgKChjYWxsIGZ1bmN0aW9uOiAoaWRlbnRpZmllcikgQGZ1bmMtbmFtZQorICAg ICAgICAgICAgKGFyZ3VtZW50X2xpc3QgOmFuY2hvciAoXykKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgIFsoaWRlbnRpZmllcikgQGZvbnQtbG9jay10eXBlLWZhY2UKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAoYXR0cmlidXRlIGF0dHJpYnV0ZTogKGlkZW50aWZpZXIpIEBmb250LWxv Y2stdHlwZS1mYWNlKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICh0dXBsZSAoaWRlbnRp ZmllcikgQGZvbnQtbG9jay10eXBlLWZhY2UpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg KHR1cGxlIChhdHRyaWJ1dGUgYXR0cmlidXRlOiAoaWRlbnRpZmllcikgQGZvbnQtbG9jay10eXBl LWZhY2UpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIChiaW5hcnlfb3BlcmF0b3IpIEBw eXRob24tLXRyZWVzaXQtZm9udGlmeS11bmlvbi10eXBlc10pKQorICAgICAgKDptYXRjaCAiXmlz XFwoPzppbnN0YW5jZVxcfHN1YmNsYXNzXFwpJCIgQGZ1bmMtbmFtZSkpKQogCiAgICA6ZmVhdHVy ZSAnZXNjYXBlLXNlcXVlbmNlCiAgICA6bGFuZ3VhZ2UgJ3B5dGhvbgpAQCAtNjg0MSw3ICs2OTM5 LDcgQEAgcHl0aG9uLXRzLW1vZGUKICAgICAoc2V0cS1sb2NhbCB0cmVlc2l0LWZvbnQtbG9jay1m ZWF0dXJlLWxpc3QKICAgICAgICAgICAgICAgICAnKCggY29tbWVudCBkZWZpbml0aW9uKQogICAg ICAgICAgICAgICAgICAgKCBrZXl3b3JkIHN0cmluZyB0eXBlKQotICAgICAgICAgICAgICAgICAg KCBhc3NpZ25tZW50IGJ1aWx0aW4gY29uc3RhbnQgZGVjb3JhdG9yCisgICAgICAgICAgICAgICAg ICAoIGFzc2lnbm1lbnQgdmFyaWFibGUtZGVmaW5pdGlvbiBidWlsdGluIGNvbnN0YW50IGRlY29y YXRvcgogICAgICAgICAgICAgICAgICAgICBlc2NhcGUtc2VxdWVuY2UgbnVtYmVyIHN0cmluZy1p bnRlcnBvbGF0aW9uICkKICAgICAgICAgICAgICAgICAgICggYnJhY2tldCBkZWxpbWl0ZXIgZnVu Y3Rpb24gb3BlcmF0b3IgdmFyaWFibGUgcHJvcGVydHkpKSkKICAgICAoc2V0cS1sb2NhbCB0cmVl c2l0LWZvbnQtbG9jay1zZXR0aW5ncyBweXRob24tLXRyZWVzaXQtc2V0dGluZ3MpCmRpZmYgLS1n aXQgYS90ZXN0L2xpc3AvcHJvZ21vZGVzL3B5dGhvbi10ZXN0cy5lbCBiL3Rlc3QvbGlzcC9wcm9n bW9kZXMvcHl0aG9uLXRlc3RzLmVsCmluZGV4IGE0NGExMTg5NmYuLjI1MWIyNGViYTIgMTAwNjQ0 Ci0tLSBhL3Rlc3QvbGlzcC9wcm9nbW9kZXMvcHl0aG9uLXRlc3RzLmVsCisrKyBiL3Rlc3QvbGlz cC9wcm9nbW9kZXMvcHl0aG9uLXRlc3RzLmVsCkBAIC03Mjk5LDYgKzcyOTksMzU2IEBAIHB5dGhv bi10ZXN0cy0tZmx5bWFrZS1jb21tYW5kLW91dHB1dC1wYXR0ZXJuCiAgICAgICAgICAgICAgICAg ICAgICAgICAgIlVudXNlZCBpbXBvcnQgYS5iLmMgKHVudXNlZC1pbXBvcnQpIgogICAgICAgICAg ICAgICAgICAgICAgICAiVzA2MTE6IFVudXNlZCBpbXBvcnQgYS5iLmMgKHVudXNlZC1pbXBvcnQp IikpKSkpKQogCis7OzsgcHl0aG9uLXRzLW1vZGUgZm9udC1sb2NrIHRlc3RzCisKKyhkZWZtYWNy byBweXRob24tdHMtdGVzdHMtd2l0aC10ZW1wLWJ1ZmZlciAoY29udGVudHMgJnJlc3QgYm9keSkK KyAgIkNyZWF0ZSBhIGBweXRob24tdHMtbW9kZScgZW5hYmxlZCB0ZW1wIGJ1ZmZlciB3aXRoIENP TlRFTlRTLgorQk9EWSBpcyBjb2RlIHRvIGJlIGV4ZWN1dGVkIHdpdGhpbiB0aGUgdGVtcCBidWZm ZXIuICBQb2ludCBpcworYWx3YXlzIGxvY2F0ZWQgYXQgdGhlIGJlZ2lubmluZyBvZiBidWZmZXIu IgorICAoZGVjbGFyZSAoaW5kZW50IDEpIChkZWJ1ZyB0KSkKKyAgYCh3aXRoLXRlbXAtYnVmZmVy CisgICAgIChza2lwLXVubGVzcyAodHJlZXNpdC1yZWFkeS1wICdweXRob24pKQorICAgICAocmVx dWlyZSAncHl0aG9uKQorICAgICAobGV0ICgocHl0aG9uLWluZGVudC1ndWVzcy1pbmRlbnQtb2Zm c2V0IG5pbCkpCisgICAgICAgKHB5dGhvbi10cy1tb2RlKQorICAgICAgIChzZXRvcHQgdHJlZXNp dC1mb250LWxvY2stbGV2ZWwgMykKKyAgICAgICAoaW5zZXJ0ICxjb250ZW50cykKKyAgICAgICAo Zm9udC1sb2NrLWVuc3VyZSkKKyAgICAgICAoZ290by1jaGFyIChwb2ludC1taW4pKQorICAgICAg ICxAYm9keSkpKQorCisoZXJ0LWRlZnRlc3QgcHl0aG9uLXRzLW1vZGUtY29tcG91bmQta2V5d29y ZHMtZmFjZSAoKQorICAoZG9saXN0ICh0ZXN0ICcoImlzIG5vdCIgIm5vdCBpbiIpKQorICAgIChw eXRob24tdHMtdGVzdHMtd2l0aC10ZW1wLWJ1ZmZlcgorICAgICAoY29uY2F0ICJ0ICIgdGVzdCAi IHQiKQorICAgICAoZm9yd2FyZC10by13b3JkKQorICAgICAoc2hvdWxkIChlcSAoZmFjZS1hdC1w b2ludCkgZm9udC1sb2NrLWtleXdvcmQtZmFjZSkpCisgICAgIChmb3J3YXJkLXRvLXdvcmQpCisg ICAgIChzaG91bGQgKGVxIChmYWNlLWF0LXBvaW50KSBmb250LWxvY2sta2V5d29yZC1mYWNlKSkp KSkKKworKGVydC1kZWZ0ZXN0IHB5dGhvbi10cy1tb2RlLXZhci1mb3ItbG9vcC1mYWNlLTEgKCkK KyAgKHB5dGhvbi10cy10ZXN0cy13aXRoLXRlbXAtYnVmZmVyCisgICAiZm9yIHZhciBpbiByYW5n ZSgzKToiCisgICAoZG9saXN0ICh0ZXN0ICcoInZhciIpKQorICAgICAoc2VhcmNoLWZvcndhcmQg dGVzdCkKKyAgICAgKGdvdG8tY2hhciAobWF0Y2gtYmVnaW5uaW5nIDApKQorICAgICAoc2hvdWxk IChlcSAoZmFjZS1hdC1wb2ludCkgZm9udC1sb2NrLXZhcmlhYmxlLW5hbWUtZmFjZSkpKSkpCisK KyhlcnQtZGVmdGVzdCBweXRob24tdHMtbW9kZS12YXItZm9yLWxvb3AtZmFjZS0yICgpCisgIChw eXRob24tdHMtdGVzdHMtd2l0aC10ZW1wLWJ1ZmZlcgorICAgImZvciB2YXIxLCAodmFyMiwgdmFy MykgaW4gW106IgorICAgKGRvbGlzdCAodGVzdCAnKCJ2YXIxIiAidmFyMiIgInZhcjMiKSkKKyAg ICAgKHNlYXJjaC1mb3J3YXJkIHRlc3QpCisgICAgIChnb3RvLWNoYXIgKG1hdGNoLWJlZ2lubmlu ZyAwKSkKKyAgICAgKHNob3VsZCAoZXEgKGZhY2UtYXQtcG9pbnQpIGZvbnQtbG9jay12YXJpYWJs ZS1uYW1lLWZhY2UpKSkpKQorCisoZXJ0LWRlZnRlc3QgcHl0aG9uLXRzLW1vZGUtdmFyLWZvci1s b29wLWZhY2UtMyAoKQorICAocHl0aG9uLXRzLXRlc3RzLXdpdGgtdGVtcC1idWZmZXIKKyAgICJb dmFyIGZvciB2YXIgaW4gW10gaWYgdmFyIF0iCisgICAoc2VhcmNoLWZvcndhcmQgInZhciIpCisg ICAoZ290by1jaGFyIChtYXRjaC1iZWdpbm5pbmcgMCkpCisgICAoc2hvdWxkIChub3QgKGVxIChm YWNlLWF0LXBvaW50KSBmb250LWxvY2stdmFyaWFibGUtbmFtZS1mYWNlKSkpCisKKyAgIChzZWFy Y2gtZm9yd2FyZCAidmFyIiBuaWwgbmlsIDIpCisgICAoZ290by1jaGFyIChtYXRjaC1iZWdpbm5p bmcgMCkpCisgICAoc2hvdWxkIChlcSAoZmFjZS1hdC1wb2ludCkgZm9udC1sb2NrLXZhcmlhYmxl LW5hbWUtZmFjZSkpCisKKyAgIChzZWFyY2gtZm9yd2FyZCAidmFyIiBuaWwgbmlsIDIpCisgICAo Z290by1jaGFyIChtYXRjaC1iZWdpbm5pbmcgMCkpCisgICAoc2hvdWxkIChub3QgKGVxIChmYWNl LWF0LXBvaW50KSBmb250LWxvY2stdmFyaWFibGUtbmFtZS1mYWNlKSkpKSkKKworKGVydC1kZWZ0 ZXN0IHB5dGhvbi10cy1tb2RlLWFzLXBhdHRlcm4tZmFjZS0xICgpCisgIChweXRob24tdHMtdGVz dHMtd2l0aC10ZW1wLWJ1ZmZlcgorICAgInRyeToKKyAgICBwYXNzCitleGNlcHQgRXhjZXB0aW9u IGFzIGV4Y3A6CisgICAgcGFzcyIKKworICAgKHNlYXJjaC1mb3J3YXJkICJleGNwIikKKyAgIChn b3RvLWNoYXIgKG1hdGNoLWJlZ2lubmluZyAwKSkKKyAgIChzaG91bGQgKGVxIChmYWNlLWF0LXBv aW50KSBmb250LWxvY2stdmFyaWFibGUtbmFtZS1mYWNlKSkpKQorCisoZXJ0LWRlZnRlc3QgcHl0 aG9uLXRzLW1vZGUtYXMtcGF0dGVybi1mYWNlLTIgKCkKKyAgKHB5dGhvbi10cy10ZXN0cy13aXRo LXRlbXAtYnVmZmVyCisgICAid2l0aCBjdHgoKSBhcyB2YXI6IgorICAgKHNlYXJjaC1mb3J3YXJk ICJ2YXIiKQorICAgKGdvdG8tY2hhciAobWF0Y2gtYmVnaW5uaW5nIDApKQorICAgKHNob3VsZCAo ZXEgKGZhY2UtYXQtcG9pbnQpIGZvbnQtbG9jay12YXJpYWJsZS1uYW1lLWZhY2UpKSkpCisKKyhl cnQtZGVmdGVzdCBweXRob24tdHMtbW9kZS1hcy1wYXR0ZXJuLWZhY2UtMyAoKQorICAocHl0aG9u LXRzLXRlc3RzLXdpdGgtdGVtcC1idWZmZXIKKyAgICJ3aXRoIGN0eCgpIGFzIHZhcjoiCisgICAo c2VhcmNoLWZvcndhcmQgInZhciIpCisgICAoZ290by1jaGFyIChtYXRjaC1iZWdpbm5pbmcgMCkp CisgICAoc2hvdWxkIChlcSAoZmFjZS1hdC1wb2ludCkgZm9udC1sb2NrLXZhcmlhYmxlLW5hbWUt ZmFjZSkpKSkKKworKGVydC1kZWZ0ZXN0IHB5dGhvbi10cy1tb2RlLWFzLXBhdHRlcm4tZmFjZS00 ICgpCisgIChweXRob24tdHMtdGVzdHMtd2l0aC10ZW1wLWJ1ZmZlcgorICAgIm1hdGNoIHY6Cisg ICAgY2FzZSAobGlzdCgpIGFzIGx2YXIsIEluc3QoKSBhcyBpdmFyKToiCisgICAoZG9saXN0ICh0 ZXN0ICcoImx2YXIiICJpdmFyIikpCisgICAgIChzZWFyY2gtZm9yd2FyZCB0ZXN0KQorICAgICAo Z290by1jaGFyIChtYXRjaC1iZWdpbm5pbmcgMCkpCisgICAgIChzaG91bGQgKGVxIChmYWNlLWF0 LXBvaW50KSBmb250LWxvY2stdmFyaWFibGUtbmFtZS1mYWNlKSkpKSkKKworKGVydC1kZWZ0ZXN0 IHB5dGhvbi10cy1tb2RlLW5hbWVkLWFzc2lnbmVtZW50LWZhY2UtMSAoKQorICAocHl0aG9uLXRz LXRlc3RzLXdpdGgtdGVtcC1idWZmZXIKKyAgICJ2YXIgOj0gMyIKKyAgIChzaG91bGQgKGVxIChm YWNlLWF0LXBvaW50KSBmb250LWxvY2stdmFyaWFibGUtbmFtZS1mYWNlKSkpKQorCisoZXJ0LWRl ZnRlc3QgcHl0aG9uLXRzLW1vZGUtYXNzaWduZW1lbnQtZmFjZS0yICgpCisgIChweXRob24tdHMt dGVzdHMtd2l0aC10ZW1wLWJ1ZmZlcgorICAgInZhciwgKnJlc3QgPSBjYWxsKCkiCisgICAoZG9s aXN0ICh0ZXN0ICcoInZhciIgInJlc3QiKSkKKyAgICAgKHNlYXJjaC1mb3J3YXJkIHRlc3QpCisg ICAgIChnb3RvLWNoYXIgKG1hdGNoLWJlZ2lubmluZyAwKSkKKyAgICAgKHNob3VsZCAoZXEgKGZh Y2UtYXQtcG9pbnQpIGZvbnQtbG9jay12YXJpYWJsZS1uYW1lLWZhY2UpKSkpCisKKyAgKHB5dGhv bi10cy10ZXN0cy13aXRoLXRlbXAtYnVmZmVyCisgICAiZGVmIGZ1bmMoKmFyZ3MpOiIKKyAgIChk b2xpc3QgKHRlc3QgJygiYXJncyIpKQorICAgICAoc2VhcmNoLWZvcndhcmQgdGVzdCkKKyAgICAg KGdvdG8tY2hhciAobWF0Y2gtYmVnaW5uaW5nIDApKQorICAgICAoc2hvdWxkIChub3QgKGVxIChm YWNlLWF0LXBvaW50KSBmb250LWxvY2stdmFyaWFibGUtbmFtZS1mYWNlKSkpKSkpCisKKyhlcnQt ZGVmdGVzdCBweXRob24tdHMtbW9kZS1uZXN0ZWQtdHlwZXMtZmFjZS0xICgpCisgIChweXRob24t dHMtdGVzdHMtd2l0aC10ZW1wLWJ1ZmZlcgorICAgImRlZiBmdW5jKHY6ZGljdFsgbGlzdFsgdHVw bGVbc3RyXSBdLCBpbnQgfCBOb25lXSB8IE5vbmUpOiIKKyAgIChkb2xpc3QgKHRlc3QgJygiZGlj dCIgImxpc3QiICJ0dXBsZSIgInN0ciIgImludCIgIk5vbmUiICJOb25lIikpCisgICAgIChzZWFy Y2gtZm9yd2FyZCB0ZXN0KQorICAgICAoZ290by1jaGFyIChtYXRjaC1iZWdpbm5pbmcgMCkpCisg ICAgIChzaG91bGQgKGVxIChmYWNlLWF0LXBvaW50KSBmb250LWxvY2stdHlwZS1mYWNlKSkpKSkK KworKGVydC1kZWZ0ZXN0IHB5dGhvbi10cy1tb2RlLXVuaW9uLXR5cGVzLWZhY2UtMSAoKQorICAo cHl0aG9uLXRzLXRlc3RzLXdpdGgtdGVtcC1idWZmZXIKKyAgICJkZWYgZih2YWw6IHR1cGxlW3R1 cGxlLCBsaXN0W0x2bDEgfCBMdmwyW0x2bDNbTHZsNFtMdmw1IHwgTm9uZV1dLCBMdmwyXV1dKToi CisgICAoZG9saXN0ICh0ZXN0ICcoInR1cGxlIiAidHVwbGUiICJsaXN0IiAiTHZsMSIgIkx2bDIi ICJMdmwzIiAiTHZsNCIgIkx2bDUiICJOb25lIiAiTHZsMiIpKQorICAgICAoc2VhcmNoLWZvcndh cmQgdGVzdCkKKyAgICAgKGdvdG8tY2hhciAobWF0Y2gtYmVnaW5uaW5nIDApKQorICAgICAoc2hv dWxkIChlcSAoZmFjZS1hdC1wb2ludCkgZm9udC1sb2NrLXR5cGUtZmFjZSkpKSkpCisKKyhlcnQt ZGVmdGVzdCBweXRob24tdHMtbW9kZS11bmlvbi10eXBlcy1mYWNlLTIgKCkKKyAgKHB5dGhvbi10 cy10ZXN0cy13aXRoLXRlbXAtYnVmZmVyCisgICAiZGVmIGYodmFsOiBUeXBlMCB8IFR5cGUxW1R5 cGUyLCBwYWNrMC5UeXBlM10gfCBwYWNrMS5wYWNrMi5UeXBlNCB8IE5vbmUpOiIKKyAgIChkb2xp c3QgKHRlc3QgJygiVHlwZTAiICJUeXBlMSIgIlR5cGUyIiAiVHlwZTMiICJUeXBlNCIgIk5vbmUi KSkKKyAgICAgKHNlYXJjaC1mb3J3YXJkIHRlc3QpCisgICAgIChnb3RvLWNoYXIgKG1hdGNoLWJl Z2lubmluZyAwKSkKKyAgICAgKHNob3VsZCAoZXEgKGZhY2UtYXQtcG9pbnQpIGZvbnQtbG9jay10 eXBlLWZhY2UpKSkKKworICAgKGdvdG8tY2hhciAocG9pbnQtbWluKSkKKyAgIChkb2xpc3QgKHRl c3QgJygicGFjazAiICJwYWNrMSIgInBhY2syIikpCisgICAgIChzZWFyY2gtZm9yd2FyZCB0ZXN0 KQorICAgICAoZ290by1jaGFyIChtYXRjaC1iZWdpbm5pbmcgMCkpCisgICAgIChzaG91bGQgKG5v dCAoZXEgKGZhY2UtYXQtcG9pbnQpIGZvbnQtbG9jay10eXBlLWZhY2UpKSkpKSkKKworKGVydC1k ZWZ0ZXN0IHB5dGhvbi10cy1tb2RlLXR5cGVzLWZhY2UtMSAoKQorICAocHl0aG9uLXRzLXRlc3Rz LXdpdGgtdGVtcC1idWZmZXIKKyAgICJkZWYgZih2YWw6IENhbGxhYmxlW1tUeXBlMF0sIChUeXBl MSwgVHlwZTIpXSk6IgorICAgKGRvbGlzdCAodGVzdCAnKCJDYWxsYWJsZSIgIlR5cGUwIiAiVHlw ZTEiICJUeXBlMiIpKQorICAgICAoc2VhcmNoLWZvcndhcmQgdGVzdCkKKyAgICAgKGdvdG8tY2hh ciAobWF0Y2gtYmVnaW5uaW5nIDApKQorICAgICAoc2hvdWxkIChlcSAoZmFjZS1hdC1wb2ludCkg Zm9udC1sb2NrLXR5cGUtZmFjZSkpKSkpCisKKyhlcnQtZGVmdGVzdCBweXRob24tdHMtbW9kZS10 eXBlcy1mYWNlLTIgKCkKKyAgKHB5dGhvbi10cy10ZXN0cy13aXRoLXRlbXAtYnVmZmVyCisgICAi ZGVmIGFubm90Myh2YWw6cGFjazAuVHlwZTApLT5wYWNrMS5wYWNrMi5wYWNrMy5UeXBlMToiCisg ICAoZG9saXN0ICh0ZXN0ICcoIlR5cGUwIiAiVHlwZTEiKSkKKyAgICAgKHNlYXJjaC1mb3J3YXJk IHRlc3QpCisgICAgIChnb3RvLWNoYXIgKG1hdGNoLWJlZ2lubmluZyAwKSkKKyAgICAgKHNob3Vs ZCAoZXEgKGZhY2UtYXQtcG9pbnQpIGZvbnQtbG9jay10eXBlLWZhY2UpKSkKKyAgIChnb3RvLWNo YXIgKHBvaW50LW1pbikpCisgICAoZG9saXN0ICh0ZXN0ICcoInBhY2swIiAicGFjazEiICJwYWNr MiIgInBhY2szIikpCisgICAgIChzZWFyY2gtZm9yd2FyZCB0ZXN0KQorICAgICAoZ290by1jaGFy IChtYXRjaC1iZWdpbm5pbmcgMCkpCisgICAgIChzaG91bGQgKG5vdCAoZXEgKGZhY2UtYXQtcG9p bnQpIGZvbnQtbG9jay10eXBlLWZhY2UpKSkpKSkKKworKGVydC1kZWZ0ZXN0IHB5dGhvbi10cy1t b2RlLXR5cGVzLWZhY2UtMyAoKQorICAocHl0aG9uLXRzLXRlc3RzLXdpdGgtdGVtcC1idWZmZXIK KyAgICJkZWYgYW5ub3QzKHZhbDpjb2xsZWN0aW9ucy5hYmMuSXRlcmF0b3JbVHlwZTBdKToiCisg ICAoZG9saXN0ICh0ZXN0ICcoIkl0ZXJhdG9yIiAiVHlwZTAiKSkKKyAgICAgKHNlYXJjaC1mb3J3 YXJkIHRlc3QpCisgICAgIChnb3RvLWNoYXIgKG1hdGNoLWJlZ2lubmluZyAwKSkKKyAgICAgKHNo b3VsZCAoZXEgKGZhY2UtYXQtcG9pbnQpIGZvbnQtbG9jay10eXBlLWZhY2UpKSkKKyAgIChnb3Rv LWNoYXIgKHBvaW50LW1pbikpCisgICAoZG9saXN0ICh0ZXN0ICcoImNvbGxlY3Rpb25zIiAiYWJj IikpCisgICAgIChzZWFyY2gtZm9yd2FyZCB0ZXN0KQorICAgICAoZ290by1jaGFyIChtYXRjaC1i ZWdpbm5pbmcgMCkpCisgICAgIChzaG91bGQgKG5vdCAoZXEgKGZhY2UtYXQtcG9pbnQpIGZvbnQt bG9jay10eXBlLWZhY2UpKSkpKSkKKworKGVydC1kZWZ0ZXN0IHB5dGhvbi10cy1tb2RlLWlzaW5z dGFuY2UtdHlwZS1mYWNlLTEgKCkKKyAgKHB5dGhvbi10cy10ZXN0cy13aXRoLXRlbXAtYnVmZmVy CisgICAiaXNpbnN0YW5jZSh2YXIxLCBwa2cuVHlwZTApCisgICAgaXNpbnN0YW5jZSh2YXIyLCAo c3RyLCBkaWN0LCBUeXBlMSwgdHlwZShOb25lKSkpCisgICAgaXNpbnN0YW5jZSh2YXIzLCBteV90 eXBlKCkpIgorCisgICAoZG9saXN0ICh0ZXN0ICcoInZhcjEiICJwa2ciICJ2YXIyIiAidHlwZSIg Ik5vbmUiICJ2YXIzIiAibXlfdHlwZSIpKQorICAgICAobGV0ICgoY2FzZS1mb2xkLXNlYXJjaCBu aWwpKQorICAgICAgIChzZWFyY2gtZm9yd2FyZCB0ZXN0KSkKKyAgICAgKGdvdG8tY2hhciAobWF0 Y2gtYmVnaW5uaW5nIDApKQorICAgICAoc2hvdWxkIChub3QgKGVxIChmYWNlLWF0LXBvaW50KSBm b250LWxvY2stdHlwZS1mYWNlKSkpKQorCisgICAoZ290by1jaGFyIChwb2ludC1taW4pKQorICAg KGRvbGlzdCAodGVzdCAnKCJUeXBlMCIgInN0ciIgImRpY3QiICJUeXBlMSIpKQorICAgICAoc2Vh cmNoLWZvcndhcmQgdGVzdCkKKyAgICAgKGdvdG8tY2hhciAobWF0Y2gtYmVnaW5uaW5nIDApKQor ICAgICAoc2hvdWxkIChlcSAoZmFjZS1hdC1wb2ludCkgZm9udC1sb2NrLXR5cGUtZmFjZSkpKSkp CisKKyhlcnQtZGVmdGVzdCBweXRob24tdHMtbW9kZS1pc2luc3RhbmNlLXR5cGUtZmFjZS0yICgp CisgIChweXRob24tdHMtdGVzdHMtd2l0aC10ZW1wLWJ1ZmZlcgorICAgImlzc3ViY2xhc3MobXl0 eXBlLCBpbnR8bGlzdHxjb2xsZWN0aW9ucy5hYmMuSXRlcmFibGUpIgorICAgKGRvbGlzdCAodGVz dCAnKCJpbnQiICJsaXN0IiAiSXRlcmFibGUiKSkKKyAgICAgKHNlYXJjaC1mb3J3YXJkIHRlc3Qp CisgICAgIChnb3RvLWNoYXIgKG1hdGNoLWJlZ2lubmluZyAwKSkKKyAgICAgKHNob3VsZCAoZXEg KGZhY2UtYXQtcG9pbnQpIGZvbnQtbG9jay10eXBlLWZhY2UpKSkpKQorCisoZXJ0LWRlZnRlc3Qg cHl0aG9uLXRzLW1vZGUtc3VwZXJjbGFzcy10eXBlLWZhY2UgKCkKKyAgKHB5dGhvbi10cy10ZXN0 cy13aXRoLXRlbXAtYnVmZmVyCisgICAiY2xhc3MgVGVtcChCYXNlMSwgcGFjazAuQmFzZTIsICBT ZXF1ZW5jZVtUMSwgVDJdKToiCisKKyAgIChkb2xpc3QgKHRlc3QgJygiQmFzZTEiICJCYXNlMiIg IlNlcXVlbmNlIiAiVDEiICJUMiIpKQorICAgICAoc2VhcmNoLWZvcndhcmQgdGVzdCkKKyAgICAg KGdvdG8tY2hhciAobWF0Y2gtYmVnaW5uaW5nIDApKQorICAgICAoc2hvdWxkIChlcSAoZmFjZS1h dC1wb2ludCkgZm9udC1sb2NrLXR5cGUtZmFjZSkpKQorCisgICAoZ290by1jaGFyIChwb2ludC1t aW4pKQorICAgKGRvbGlzdCAodGVzdCAnKCJwYWNrMCIpKQorICAgICAoc2VhcmNoLWZvcndhcmQg dGVzdCkKKyAgICAgKGdvdG8tY2hhciAobWF0Y2gtYmVnaW5uaW5nIDApKQorICAgICAoc2hvdWxk IChub3QgKGVxIChmYWNlLWF0LXBvaW50KSBmb250LWxvY2stdHlwZS1mYWNlKSkpKSkpCisKKyhl cnQtZGVmdGVzdCBweXRob24tdHMtbW9kZS1jbGFzcy1wYXR0ZXJucy1mYWNlICgpCisgIChweXRo b24tdHMtdGVzdHMtd2l0aC10ZW1wLWJ1ZmZlcgorICAgIm1hdGNoIHR0OgorICAgICAgICBjYXNl IHN0cigpOgorICAgICAgICAgICAgcGFzcworICAgICAgICBjYXNlIFtUeXBlMCgpIHwgYnl0ZXMo YikgfCBwYWNrMC5wYWNrMS5UeXBlMSgpXToKKyAgICAgICAgICAgIHBhc3MKKyAgICAgICAgY2Fz ZSB7J2knOiBpbnQoaSksICdmJzogZmxvYXQoKSBhcyBmfToKKyAgICAgICAgICAgIHBhc3MiCisK KyAgIChkb2xpc3QgKHRlc3QgJygic3RyIiAiVHlwZTAiICJieXRlcyIgIlR5cGUxIiAiaW50IiAi ZmxvYXQiKSkKKyAgICAgKHNlYXJjaC1mb3J3YXJkIHRlc3QpCisgICAgIChnb3RvLWNoYXIgKG1h dGNoLWJlZ2lubmluZyAwKSkKKyAgICAgKHNob3VsZCAoZXEgKGZhY2UtYXQtcG9pbnQpIGZvbnQt bG9jay10eXBlLWZhY2UpKSkKKworICAgKGdvdG8tY2hhciAocG9pbnQtbWluKSkKKyAgIChkb2xp c3QgKHRlc3QgJygicGFjazAiICJwYWNrMSIpKQorICAgICAoc2VhcmNoLWZvcndhcmQgdGVzdCkK KyAgICAgKGdvdG8tY2hhciAobWF0Y2gtYmVnaW5uaW5nIDApKQorICAgICAoc2hvdWxkIChub3Qg KGVxIChmYWNlLWF0LXBvaW50KSBmb250LWxvY2stdHlwZS1mYWNlKSkpKSkpCisKKyhlcnQtZGVm dGVzdCBweXRob24tdHMtbW9kZS1kb3R0ZWQtZGVjb3JhdG9yLWZhY2UtMSAoKQorICAocHl0aG9u LXRzLXRlc3RzLXdpdGgtdGVtcC1idWZmZXIKKyAgICJAcHl0ZXN0Lm1hcmsuc2tpcAorICAgIEBw eXRlc3QubWFyay5za2lwKHJlYXNvbj0nbXNnJykKKyAgICBkZWYgdGVzdCgpOiIKKworICAgKGRv bGlzdCAodGVzdCAnKCJweXRlc3QiICJtYXJrIiAic2tpcCIgInB5dGVzdCIgIm1hcmsiICJza2lw IikpCisgICAgIChzZWFyY2gtZm9yd2FyZCB0ZXN0KQorICAgICAoZ290by1jaGFyIChtYXRjaC1i ZWdpbm5pbmcgMCkpCisgICAgIChzaG91bGQgKGVxIChmYWNlLWF0LXBvaW50KSBmb250LWxvY2st dHlwZS1mYWNlKSkpKSkKKworKGVydC1kZWZ0ZXN0IHB5dGhvbi10cy1tb2RlLWRvdHRlZC1kZWNv cmF0b3ItZmFjZS0yICgpCisgIChweXRob24tdHMtdGVzdHMtd2l0aC10ZW1wLWJ1ZmZlcgorICAg IkBweXRlc3QubWFyay5za2lwKHJlYXNvbj0nbXNnJykKKyAgICBkZWYgdGVzdCgpOiIKKworICAg KHNldG9wdCB0cmVlc2l0LWZvbnQtbG9jay1sZXZlbCA0KQorICAgKGRvbGlzdCAodGVzdCAnKCJw eXRlc3QiICJtYXJrIiAic2tpcCIpKQorICAgICAoc2VhcmNoLWZvcndhcmQgdGVzdCkKKyAgICAg KGdvdG8tY2hhciAobWF0Y2gtYmVnaW5uaW5nIDApKQorICAgICAoc2hvdWxkIChlcSAoZmFjZS1h dC1wb2ludCkgZm9udC1sb2NrLXR5cGUtZmFjZSkpKSkpCisKKyhlcnQtZGVmdGVzdCBweXRob24t dHMtbW9kZS1idWlsdGluLWNhbGwtZmFjZSAoKQorICAocHl0aG9uLXRzLXRlc3RzLXdpdGgtdGVt cC1idWZmZXIKKyAgICJhbGwoKSIKKyAgIDs7IGVuYWJsZSAnZnVuY3Rpb24nIGZlYXR1cmUgZnJv bSA0dGggbGV2ZWwKKyAgIChzZXRvcHQgdHJlZXNpdC1mb250LWxvY2stbGV2ZWwgNCkKKyAgIChz aG91bGQgKGVxIChmYWNlLWF0LXBvaW50KSBmb250LWxvY2stYnVpbHRpbi1mYWNlKSkpKQorCiso ZXJ0LWRlZnRlc3QgcHl0aG9uLXRzLW1vZGUtaW50ZXJwb2xhdGlvbi1uZXN0ZWQtc3RyaW5nICgp CisgIChweXRob24tdHMtdGVzdHMtd2l0aC10ZW1wLWJ1ZmZlcgorICAgInQgPSBmXCJiZWcge1Ry dWUgKyAnc3RyaW5nJ31cIiIKKworICAgKHNlYXJjaC1mb3J3YXJkICJUcnVlIikKKyAgIChnb3Rv LWNoYXIgKG1hdGNoLWJlZ2lubmluZyAwKSkKKyAgIChzaG91bGQgKGVxIChmYWNlLWF0LXBvaW50 KSBmb250LWxvY2stY29uc3RhbnQtZmFjZSkpCisKKyAgIChnb3RvLWNoYXIgKHBvaW50LW1pbikp CisgICAoZG9saXN0ICh0ZXN0ICcoImYiICJ7IiAiKyIgIn0iKSkKKyAgICAgKHNlYXJjaC1mb3J3 YXJkIHRlc3QpCisgICAgIChnb3RvLWNoYXIgKG1hdGNoLWJlZ2lubmluZyAwKSkKKyAgICAgKHNo b3VsZCAobm90IChlcSAoZmFjZS1hdC1wb2ludCkgZm9udC1sb2NrLXN0cmluZy1mYWNlKSkpKQor CisKKyAgIChnb3RvLWNoYXIgKHBvaW50LW1pbikpCisgICAoZG9saXN0ICh0ZXN0ICcoImJlZyIg IidzdHJpbmcnIiAiXCIiKSkKKyAgICAgKHNlYXJjaC1mb3J3YXJkIHRlc3QpCisgICAgIChnb3Rv LWNoYXIgKG1hdGNoLWJlZ2lubmluZyAwKSkKKyAgICAgKHNob3VsZCAoZXEgKGZhY2UtYXQtcG9p bnQpIGZvbnQtbG9jay1zdHJpbmctZmFjZSkpKSkpCisKKyhlcnQtZGVmdGVzdCBweXRob24tdHMt bW9kZS1sZXZlbC1mb250aWZpY2F0aW9uLXdvLWludGVycG9sYXRpb24gKCkKKyAgKHB5dGhvbi10 cy10ZXN0cy13aXRoLXRlbXAtYnVmZmVyCisgICAidCA9IGZcImJlZyB7VHJ1ZSArIHZhcn1cIiIK KworICAgKHNldG9wdCB0cmVlc2l0LWZvbnQtbG9jay1sZXZlbCAyKQorICAgKHNlYXJjaC1mb3J3 YXJkICJmIikKKyAgIChnb3RvLWNoYXIgKG1hdGNoLWJlZ2lubmluZyAwKSkKKyAgIChzaG91bGQg KG5vdCAoZXEgKGZhY2UtYXQtcG9pbnQpIGZvbnQtbG9jay1zdHJpbmctZmFjZSkpKQorCisgICAo ZG9saXN0ICh0ZXN0ICcoIlwiIiAiYmVnIiAieyIgIlRydWUiICJ2YXIiICJ9IiAiXCIiKSkKKyAg ICAgKHNlYXJjaC1mb3J3YXJkIHRlc3QpCisgICAgIChnb3RvLWNoYXIgKG1hdGNoLWJlZ2lubmlu ZyAwKSkKKyAgICAgKHNob3VsZCAoZXEgKGZhY2UtYXQtcG9pbnQpIGZvbnQtbG9jay1zdHJpbmct ZmFjZSkpKSkpCisKKyhlcnQtZGVmdGVzdCBweXRob24tdHMtbW9kZS1kaXNhYmxlZC1zdHJpbmct aW50ZXJwb2xhdGlvbiAoKQorICAocHl0aG9uLXRzLXRlc3RzLXdpdGgtdGVtcC1idWZmZXIKKyAg ICJ0ID0gZlwiYmVnIHtUcnVlICsgdmFyfVwiIgorCisgICAodW53aW5kLXByb3RlY3QKKyAgICAg ICAocHJvZ24KKyAgICAgICAgIChzZXRmIChudGggMiB0cmVlc2l0LWZvbnQtbG9jay1mZWF0dXJl LWxpc3QpCisgICAgICAgICAgICAgICAocmVtcSAnc3RyaW5nLWludGVycG9sYXRpb24gKG50aCAy IHRyZWVzaXQtZm9udC1sb2NrLWZlYXR1cmUtbGlzdCkpKQorICAgICAgICAgKHNldG9wdCB0cmVl c2l0LWZvbnQtbG9jay1sZXZlbCAzKQorCisgICAgICAgICAoc2VhcmNoLWZvcndhcmQgImYiKQor ICAgICAgICAgKGdvdG8tY2hhciAobWF0Y2gtYmVnaW5uaW5nIDApKQorICAgICAgICAgKHNob3Vs ZCAobm90IChlcSAoZmFjZS1hdC1wb2ludCkgZm9udC1sb2NrLXN0cmluZy1mYWNlKSkpCisKKyAg ICAgICAgIChkb2xpc3QgKHRlc3QgJygiXCIiICJiZWciICJ7IiAiVHJ1ZSIgInZhciIgIn0iICJc IiIpKQorICAgICAgICAgICAoc2VhcmNoLWZvcndhcmQgdGVzdCkKKyAgICAgICAgICAgKGdvdG8t Y2hhciAobWF0Y2gtYmVnaW5uaW5nIDApKQorICAgICAgICAgICAoc2hvdWxkIChlcSAoZmFjZS1h dC1wb2ludCkgZm9udC1sb2NrLXN0cmluZy1mYWNlKSkpKQorCisgICAgKHNldGYgKG50aCAyIHRy ZWVzaXQtZm9udC1sb2NrLWZlYXR1cmUtbGlzdCkKKyAgICAgICAgICAoYXBwZW5kIChudGggMiB0 cmVlc2l0LWZvbnQtbG9jay1mZWF0dXJlLWxpc3QpICcoc3RyaW5nLWludGVycG9sYXRpb24pKSkp KSkKKworKGVydC1kZWZ0ZXN0IHB5dGhvbi10cy1tb2RlLWludGVycG9sYXRpb24tZG9jLXN0cmlu ZyAoKQorICAocHl0aG9uLXRzLXRlc3RzLXdpdGgtdGVtcC1idWZmZXIKKyAgICJmXCJcIlwiYmVn IHsnczEnICsgVHJ1ZSArICdzMid9IGVuZFwiXCJcIiIKKworICAgKHNlYXJjaC1mb3J3YXJkICJU cnVlIikKKyAgIChnb3RvLWNoYXIgKG1hdGNoLWJlZ2lubmluZyAwKSkKKyAgIChzaG91bGQgKGVx IChmYWNlLWF0LXBvaW50KSBmb250LWxvY2stY29uc3RhbnQtZmFjZSkpCisKKyAgIChnb3RvLWNo YXIgKHBvaW50LW1pbikpCisgICAoZG9saXN0ICh0ZXN0ICcoImYiICJ7IiAiKyIgIn0iKSkKKyAg ICAgKHNlYXJjaC1mb3J3YXJkIHRlc3QpCisgICAgIChnb3RvLWNoYXIgKG1hdGNoLWJlZ2lubmlu ZyAwKSkKKyAgICAgKHNob3VsZCAobm90IChlcSAoZmFjZS1hdC1wb2ludCkgZm9udC1sb2NrLXN0 cmluZy1mYWNlKSkpKQorCisgICAoZ290by1jaGFyIChwb2ludC1taW4pKQorICAgKGRvbGlzdCAo dGVzdCAnKCJcIlwiXCIiICJiZWciICJlbmQiICJcIlwiXCIiKSkKKyAgICAgKHNlYXJjaC1mb3J3 YXJkIHRlc3QpCisgICAgIChnb3RvLWNoYXIgKG1hdGNoLWJlZ2lubmluZyAwKSkKKyAgICAgKHNo b3VsZCAoZXEgKGZhY2UtYXQtcG9pbnQpIGZvbnQtbG9jay1kb2MtZmFjZSkpKQorCisgICAoZ290 by1jaGFyIChwb2ludC1taW4pKQorICAgKGRvbGlzdCAodGVzdCAnKCInczEnIiAiJ3MyJyIpKQor ICAgICAoc2VhcmNoLWZvcndhcmQgdGVzdCkKKyAgICAgKGdvdG8tY2hhciAobWF0Y2gtYmVnaW5u aW5nIDApKQorICAgICAoc2hvdWxkIChlcSAoZmFjZS1hdC1wb2ludCkgZm9udC1sb2NrLXN0cmlu Zy1mYWNlKSkpKSkKKwogKHByb3ZpZGUgJ3B5dGhvbi10ZXN0cykKIAogOzs7IHB5dGhvbi10ZXN0 cy5lbCBlbmRzIGhlcmUKLS0gCjIuMzQuMQoK ------==--bound.549855.an4sa4silbm64yo4.vla.yp-c.yandex.net-- From debbugs-submit-bounces@debbugs.gnu.org Sat Dec 16 20:07:45 2023 Received: (at 67061) by debbugs.gnu.org; 17 Dec 2023 01:07:45 +0000 Received: from localhost ([127.0.0.1]:56386 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rEfdB-0003sM-5O for submit@debbugs.gnu.org; Sat, 16 Dec 2023 20:07:45 -0500 Received: from mail-oa1-x2c.google.com ([2001:4860:4864:20::2c]:45232) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rEfd7-0003s2-On for 67061@debbugs.gnu.org; Sat, 16 Dec 2023 20:07:43 -0500 Received: by mail-oa1-x2c.google.com with SMTP id 586e51a60fabf-1fb33059466so1403044fac.2 for <67061@debbugs.gnu.org>; Sat, 16 Dec 2023 17:07:40 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1702775254; x=1703380054; darn=debbugs.gnu.org; h=to:references:message-id:content-transfer-encoding:cc:date :in-reply-to:from:subject:mime-version:from:to:cc:subject:date :message-id:reply-to; bh=k6btj+CiaUQxXiY4FFW5EsXw5DeRUA4DhuFXBQEN+TA=; b=VBgaiwap+3g8BMLGaxkXYuuSB4jX8n90HT7kFgnEpc6YXdB4V360+kVi66rakRNPR0 jmn+ZmwrkyRwQY2KDew+EepHiQyAnhfODXfxA4xlGsxWUjv0QCnUxAq4u98dRiSweqgj ju/GNlvG6hWcGhNiWgSRXLQKaIGDizBQ9K/QKI2rjID3wYf9a1KKAFiIXa49UmkZVNJg yJA3FrG5N1Vahh7YAShyE8qilwQxtFDEu8zOlWIyVP7Pr2o/yCQvx7XwHsd1Iv2YbvTs qCrk4rqJ00Ai5tXt9UVYdtEbt64CSbcg576ZUzveWBfO7luMYLaJAxXZUCRBOLl97IWe /QCA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1702775254; x=1703380054; h=to:references:message-id:content-transfer-encoding:cc:date :in-reply-to:from:subject:mime-version:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=k6btj+CiaUQxXiY4FFW5EsXw5DeRUA4DhuFXBQEN+TA=; b=XtO9eWo7J8s8x7SNCg53wZetEi0og693aMybar0pf6mfauew1cXdZqxBrErpnyb3GC KEPuR6tjH0EoguF7XtbgN1+4s6MZ+vOMGlnpxO8UBAqBDHe7BJ5JzTX8I3dIc0OEZqZj 9+ux0PWOmmpnD+fEiP/LvTOJQSscw/jnArxIPXGoy0dOO4q11HpycPNsr9SFMB7m8lJB gmhcPpiKHpFOLtXcbETj9KE0nQbvtWh3FMaMUbsPWh7NGnHWvOkG7r9eAGfT3Gz8ewrT PYPOYFuQwb6koOlRzXmjg5H+2MXsU0ABTaWeknMmwrVlc+gOgTf4RfFagB/Ifse2AWB5 0Qxg== X-Gm-Message-State: AOJu0YwXNtD3i4FniDoN3unYN66KuzBsoYJe1TR4dxRmil0qiwDRUTZv X5lqZ4kU0Cbvpog95vszvwE= X-Google-Smtp-Source: AGHT+IGUYC9zEW0Phi/px/WEwHXEXZAUBktKRODSabMGit4Bx8IRkQNUZEFOzD2ArbQhbH2WablQJA== X-Received: by 2002:a05:6870:9720:b0:203:96a3:162d with SMTP id n32-20020a056870972000b0020396a3162dmr1736126oaq.19.1702775254489; Sat, 16 Dec 2023 17:07:34 -0800 (PST) Received: from smtpclient.apple (172-117-161-177.res.spectrum.com. [172.117.161.177]) by smtp.gmail.com with ESMTPSA id k24-20020a170902761800b001d395e5c800sm2038542pll.289.2023.12.16.17.07.33 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Sat, 16 Dec 2023 17:07:34 -0800 (PST) Content-Type: text/plain; charset=utf-8 Mime-Version: 1.0 (Mac OS X Mail 16.0 \(3731.700.6\)) Subject: Re: bug#67061: [PATCH] Improve syntax highlighting for python-ts-mode From: Yuan Fu In-Reply-To: Date: Sat, 16 Dec 2023 17:07:22 -0800 Content-Transfer-Encoding: quoted-printable Message-Id: 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> To: Dmitry Gutov X-Mailer: Apple Mail (2.3731.700.6) X-Spam-Score: -0.0 (/) X-Debbugs-Envelope-To: 67061 Cc: Eli Zaretskii , Denis Zubarev , "67061@debbugs.gnu.org" <67061@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: -1.0 (-) > On Dec 14, 2023, at 3:51 AM, Dmitry Gutov wrote: >=20 > On 14/12/2023 07:54, Yuan Fu wrote: >>> I think the 'definition' feature is good for it (going by the name, = since it's an implicit variable declaration), but it could be split off = into a separate feature too. >> As long as it=E2=80=99s not added to the definition feature, because, = again, definition is at level 1 and I don=E2=80=99t want to keep level 1 = minimal. >> Maybe we can use local-definition, or something similar, to signify = that this feature highlights scoped definitions. >=20 > But you think function parameters should be in 'definition'? They are = also "scoped", I would say. I don=E2=80=99t think function parameters should be in =E2=80=98definition= =E2=80=99. In fact, in my head, only the variable/function/class name of = top-level constructs should be in =E2=80=98definition=E2=80=99. Now I = can see that the name =E2=80=98definition=E2=80=99 is too vague for my = original intent, and most ts modes probably don=E2=80=99t share the same = interpretation as I do... Maybe we can allow definition to include more things and move it to = level 3, and add a more restricted =E2=80=99top-level-definition=E2=80=99 = to level 1 to take it=E2=80=99s current role. WDYT? Yuan= From debbugs-submit-bounces@debbugs.gnu.org Sat Dec 16 20:10:46 2023 Received: (at 67061) by debbugs.gnu.org; 17 Dec 2023 01:10:46 +0000 Received: from localhost ([127.0.0.1]:56390 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rEfg5-0003xX-QM for submit@debbugs.gnu.org; Sat, 16 Dec 2023 20:10:46 -0500 Received: from mail-pg1-x533.google.com ([2607:f8b0:4864:20::533]:49487) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rEfg2-0003xD-Vg for 67061@debbugs.gnu.org; Sat, 16 Dec 2023 20:10:44 -0500 Received: by mail-pg1-x533.google.com with SMTP id 41be03b00d2f7-53fbf2c42bfso1563663a12.3 for <67061@debbugs.gnu.org>; Sat, 16 Dec 2023 17:10:41 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1702775436; x=1703380236; darn=debbugs.gnu.org; h=to:references:message-id:content-transfer-encoding:cc:date :in-reply-to:from:subject:mime-version:from:to:cc:subject:date :message-id:reply-to; bh=UXRV6BxtcefNFYqhr0fQRjKcGKhjzRwvDF94fToM0hs=; b=arAGsB3kmha7U80TzVryFxVtAYO21bOX0s2j7kDhukFErUdNIsITjcb1dHvKfjrEaC KvKvH2x17L0gImLLlQAaDQZQQrQyuievDzjqZbMy1Su8H+p/pFhuPtbk6cucEiTurvCh M+X/QIKS3urgFFtYQreNmXJr8DHibCIIYs0I9z8E6u5FtMc80Lg5l4i6OSQK9GhRr2ef LB6LPnX2FNEb0RASFgnVptB/lVFXO7XR89ZYUnFLY9Bb1R0JjESv71q7Dx7LA60hbz2s eWNffhb6LQSqzEBBJAhK9PnVNvqUTZQB8urpcnkhck027ylDj4cYk49zQQ3lWyIRMAZU QADA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1702775436; x=1703380236; h=to:references:message-id:content-transfer-encoding:cc:date :in-reply-to:from:subject:mime-version:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=UXRV6BxtcefNFYqhr0fQRjKcGKhjzRwvDF94fToM0hs=; b=lQrJReAXQxVwMlSyp2nGpIJICPsOc9HkiCpSAXxlYcCjcPWqFA/xXO4Sf/uJ85ga2E 0U3fCT4XUeePujBiPrmgwt6GYM5c6A/7yMQ7lHxizydZDU+tnTRQBW4N10vkSPmzni9a utcSY5VuUYytVI/vASi3mOCZ8rjEkD3MaWf2KhLVDVVFegsKN15UGDAOR38Wdo3sccIZ pMfuPzVJCVEb/qalB99l3flILl8iCP1lIJ50bU5L4M1msfy5zxcuKxugeA/OS0J19yx+ YR9ti4UA5Ab/XdrWUCnP2J/a+WKrcQ57i0EpaS5FwDrdx247UMYAUsC80PtJvtTOcuPr sKAg== X-Gm-Message-State: AOJu0Yz10hfsuXAVQ9U7ckmVHoofqfnzSIlbcDZ2kv8DzzCO6N0LIjfs A+3j9tyZYjBniheJdtkPlV8= X-Google-Smtp-Source: AGHT+IGyDkANwS4EttmBTKcg5pHyST4+73VSTOcEienKrM2g99pN/jLBDMtvp2imHgM4gwf5wNEfEQ== X-Received: by 2002:a17:903:110d:b0:1d3:2a96:5c81 with SMTP id n13-20020a170903110d00b001d32a965c81mr11960935plh.51.1702775436086; Sat, 16 Dec 2023 17:10:36 -0800 (PST) Received: from smtpclient.apple (172-117-161-177.res.spectrum.com. [172.117.161.177]) by smtp.gmail.com with ESMTPSA id j3-20020a170902c08300b001d0b3c4f5fbsm16487317pld.63.2023.12.16.17.10.35 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Sat, 16 Dec 2023 17:10:35 -0800 (PST) Content-Type: text/plain; charset=utf-8 Mime-Version: 1.0 (Mac OS X Mail 16.0 \(3731.700.6\)) Subject: Re: bug#67061: [PATCH] Improve syntax highlighting for python-ts-mode From: Yuan Fu In-Reply-To: <7371702772641@mail.yandex.ru> Date: Sat, 16 Dec 2023 17:10:24 -0800 Content-Transfer-Encoding: quoted-printable Message-Id: <8915940C-F69C-4CAE-80E8-4F70C5753061@gmail.com> 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> <7371702772641@mail.yandex.ru> To: Denis Zubarev X-Mailer: Apple Mail (2.3731.700.6) X-Spam-Score: -0.0 (/) X-Debbugs-Envelope-To: 67061 Cc: Dmitry Gutov , Eli Zaretskii , "67061@debbugs.gnu.org" <67061@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: -1.0 (-) > On Dec 16, 2023, at 4:26 PM, Denis Zubarev = wrote: >=20 > Sorry for the delayed response. > > For many Emacs users, they want a quieter or even minimal = fontification. > I'm not against it. I just think that highlighting of an = interpolation > as a string is wrong. Is it possible to set quiet fontification in > emacs-lisp mode, in such a way that `keywords' in doc-strings were > fontified as a doc-string itself? I think it is similar to > interpolation, it serves the purpose of separating different semantic > elements from each other. IMHO, users who like quiet levels will = benefit > from interpolation highlighted differently. I definitely can see your point, and it makes a lot of sense. I don=E2=80=99= t really know people who want quieter fontification wants (probably both = approach has their supporters) so can=E2=80=99t speak for them. But in = general, I think it wouldn=E2=80=99t hurt to have the option. > > Instead of the third level, the check should use the value > > treesit-font-lock-level. And it should check for each level smaller = than > > or equal to treesit-font-lock-level. > Done. Thank you for your hard work! I=E2=80=99m just here talking and you went = ahead and did all the work :-) > > Non-essential fontification like "var" shouldn't be > > activated at that level. So I suggest to put it in the variable = feature, > > along with many other non-essential fontifications. (Variable = feature is > > placed at level 4.) > I added a new feature variable-definition for variables defined for = local scopes and put it on the 3rd level. > I also added rules to variable-definition feature for variables in = list > comprehension ( [var+1 for var in []] ) and as_pattern (with T as = var:, > except E as var:, case str() as var:). > I've noticed that vars in `for var1, (var2, var3) in []:` are = highlighted by the rule from the assignment feature (specifically = `pattern_list`, `tuple_pattern`). > It seems easy to fix `pattern_list`, but not so easy for > `tuple_pattern`, since this node may occur recursively. > I didn't touch these rules for now. Ok, makes sense. > Summary for all changes in the patch. > New feature variable-definition: > `for var in range(3)` > `[var+1 for var in []]` > `with T as var:` > `except E as var:` > `case str() as var:` > highlight var as font-lock-variable-name-face > assignment feature: > var :=3D 3 (named_expression) > var *=3D 3 (augmented_assignment) > Highlight var as font-lock-variable-name-face. > Make list_splat_pattern query more precise. > list_splat_pattern may appear not only in assignments: var, *rest =3D = call(), > but in the parameter list too: def f(*args). > Highlight args only for the first case in assignment feature. > type feature: > Fontify built-ins (dict,list,etc.) as types when they are used in type = hints. > support nested union types, for example `Lvl1 | Lvl2[Lvl3[Lvl3], = Lvl2]`. > This structure is represented via nesting binary_operator and = subscript nodes in the grammar. > Function python--treesit-fontify-union-types iterates over all = children and highlight identifier nodes. > Fontify base class names in the class definition: class Temp(Base1, = pack0.Base2): > Fontify class patterns in case statement: case [TempC() | bytes(b)]: > Highlight the second argument as a type in isinstance/issubclass call: > isinstance(var2, (str, dict, Type1)); issubclass(var1, int|str) > For all dotted names of a type highlight only the last part of the = name, > e.g. collections.abc.Iterator. > decorator feature: > Highlight dotted names: @pytest.mark.skip > Function python--treesit-fontify-dotted-decorator iterates over all = nested attribute nodes and highlight identifier nodes. > When font-lock-level is set 4, `skip` had function-call face in: = @pytest.mark.skip(reason=3D't') > Add `:override t` to decorator feature to override function-call face. > string feature: > Enable interpolation highlighting only if string-interpolation is > presented on the enabled levels of treesit-font-lock-feature-list. > Fix fontification of strings inside of f-strings interpolation, > e.g. for f"beg {'nested'}" - 'nested' was not fontified as string. > function feature: > Do not override the face of builtin functions (all, bytes etc.) with > the function call face > keyword feature: > Add "is not" to the `python--treesit-keywords` list. Thanks. I think the only thing that=E2=80=99s still up to discussion is = the variable-definition rules. Others can be merged to emacs-29. Yuan= From debbugs-submit-bounces@debbugs.gnu.org Sat Dec 16 20:56:30 2023 Received: (at 67061) by debbugs.gnu.org; 17 Dec 2023 01:56:30 +0000 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 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 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) 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 Received: by ajvwwkfnk4mrpgm2.vla.yp-c.yandex.net with HTTP; Sun, 17 Dec 2023 04:56:16 +0300 From: Denis Zubarev To: Dmitry Gutov , Yuan Fu , Eli Zaretskii In-Reply-To: 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> Subject: Re: bug#67061: [PATCH] Improve syntax highlighting for python-ts-mode MIME-Version: 1.0 X-Mailer: Yamail [ http://yandex.ru ] 5.0 Date: Sun, 17 Dec 2023 04:56:16 +0300 Message-Id: <41601702778144@mail.yandex.ru> Content-Transfer-Encoding: base64 Content-Type: text/html; charset=utf-8 X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 67061 Cc: "67061@debbugs.gnu.org" <67061@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: -1.0 (-) 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+ From debbugs-submit-bounces@debbugs.gnu.org Sat Dec 16 21:07:17 2023 Received: (at 67061) by debbugs.gnu.org; 17 Dec 2023 02:07:17 +0000 Received: from localhost ([127.0.0.1]:56405 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rEgYl-0007aA-UT for submit@debbugs.gnu.org; Sat, 16 Dec 2023 21:07:17 -0500 Received: from forward100b.mail.yandex.net ([2a02:6b8:c02:900:1:45:d181:d100]:39250) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rEgYg-0007Zq-24 for 67061@debbugs.gnu.org; Sat, 16 Dec 2023 21:07:14 -0500 Received: from mail-nwsmtp-mxback-production-main-83.iva.yp-c.yandex.net (mail-nwsmtp-mxback-production-main-83.iva.yp-c.yandex.net [IPv6:2a02:6b8:c0c:b98c:0:640:5ddd:0]) by forward100b.mail.yandex.net (Yandex) with ESMTP id EC9BF6003B; Sun, 17 Dec 2023 05:07:02 +0300 (MSK) Received: from mail.yandex.ru (2a02:6b8:c0c:c16:0:640:861:0 [2a02:6b8:c0c:c16:0:640:861:0]) by mail-nwsmtp-mxback-production-main-83.iva.yp-c.yandex.net (mxback/Yandex) with HTTP id o6cIWH4Ox4Y0-37auYqSy; Sun, 17 Dec 2023 05:07:02 +0300 X-Yandex-Fwd: 1 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yandex.ru; s=mail; t=1702778822; bh=7Xjv+LmJukbwcfVafC+WTxpEUQl8GgYdv8lLb/p75kc=; h=Message-Id:References:Date:Cc:Subject:In-Reply-To:To:From; b=a3CX3y0yPpbrEGqSyeWWsjEgCZ505wQ8gxR1HTF9pkQskzcrrHufOJ5wnm8CTqeSY h7AU1Lt2GkvF29swj9pxLDsUCUs3Maqo4nGk5GylDsQ8AQfzkov4h+lUOunk8jZ2PO zJdYc+rrXU8Pt/24jT+niCLkv4ztCKta3klw5zwE= Authentication-Results: mail-nwsmtp-mxback-production-main-83.iva.yp-c.yandex.net; dkim=pass header.i=@yandex.ru Received: by 454dhcrkfdwiwlad.iva.yp-c.yandex.net with HTTP; Sun, 17 Dec 2023 05:07:01 +0300 From: Denis Zubarev To: Yuan Fu In-Reply-To: <8915940C-F69C-4CAE-80E8-4F70C5753061@gmail.com> 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> <7371702772641@mail.yandex.ru> <8915940C-F69C-4CAE-80E8-4F70C5753061@gmail.com> Subject: Re: bug#67061: [PATCH] Improve syntax highlighting for python-ts-mode MIME-Version: 1.0 X-Mailer: Yamail [ http://yandex.ru ] 5.0 Date: Sun, 17 Dec 2023 05:07:01 +0300 Message-Id: <240311702778783@mail.yandex.ru> Content-Type: multipart/mixed; boundary="----==--bound.271104.454dhcrkfdwiwlad.iva.yp-c.yandex.net" X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 67061 Cc: Dmitry Gutov , Eli Zaretskii , "67061@debbugs.gnu.org" <67061@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: -1.7 (-) ------==--bound.271104.454dhcrkfdwiwlad.iva.yp-c.yandex.net Content-Transfer-Encoding: base64 Content-Type: text/html; charset=utf-8 PGRpdj48ZGl2PsKgPC9kaXY+PGRpdj4mZ3Q7IFRoYW5rcy4gSSB0aGluayB0aGUgb25seSB0aGlu ZyB0aGF04oCZcyBzdGlsbCB1cCB0byBkaXNjdXNzaW9uIGlzIHRoZSB2YXJpYWJsZS1kZWZpbml0 aW9uIHJ1bGVzLiBPdGhlcnMgY2FuIGJlIG1lcmdlZCB0byBlbWFjcy0yOS48L2Rpdj48ZGl2PsKg PC9kaXY+PGRpdj5JIGNhbiBleHRyYWN0IHBhcnQgd2l0aCB2YXJpYWJsZS1kZWZpbml0aW9uIGlu dG8gdGhlIG5leHQgcGF0Y2guPC9kaXY+PGRpdj5JbiBjYXNlIGl0IGlzIG9rLCBJIGF0dGFjaGVk IHBhdGNoIHdpdGhvdXQgbmV3IHZhcmlhYmxlLWRlZmluaXRpb24gZmVhdHVyZS48L2Rpdj48ZGl2 PsKgPC9kaXY+PGRpdj7CoDwvZGl2PjwvZGl2PjxkaXY+wqA8L2Rpdj48ZGl2PjE3LjEyLjIwMjMs IDA0OjEwLCAiWXVhbiBGdSIgJmx0O2Nhc291cmlAZ21haWwuY29tJmd0Ozo8L2Rpdj48YmxvY2tx dW90ZT48cD48YnIgLz7CoDwvcD48YmxvY2txdW90ZT7CoE9uIERlYyAxNiwgMjAyMywgYXQgNDoy NiBQTSwgRGVuaXMgWnViYXJldiAmbHQ7PGEgaHJlZj0ibWFpbHRvOmR2enViYXJldkB5YW5kZXgu cnUiIHJlbD0ibm9vcGVuZXIgbm9yZWZlcnJlciI+ZHZ6dWJhcmV2QHlhbmRleC5ydTwvYT4mZ3Q7 IHdyb3RlOjxiciAvPsKgPGJyIC8+wqBTb3JyeSBmb3IgdGhlIGRlbGF5ZWQgcmVzcG9uc2UuPGJy IC8+wqDCoCZndDsgRm9yIG1hbnkgRW1hY3MgdXNlcnMsIHRoZXkgd2FudCBhIHF1aWV0ZXIgb3Ig ZXZlbiBtaW5pbWFsIGZvbnRpZmljYXRpb24uPGJyIC8+wqDCoEknbSBub3QgYWdhaW5zdCBpdC4g SSBqdXN0IHRoaW5rIHRoYXQgaGlnaGxpZ2h0aW5nIG9mIGFuIGludGVycG9sYXRpb248YnIgLz7C oGFzIGEgc3RyaW5nIGlzIHdyb25nLiBJcyBpdCBwb3NzaWJsZSB0byBzZXQgcXVpZXQgZm9udGlm aWNhdGlvbiBpbjxiciAvPsKgZW1hY3MtbGlzcCBtb2RlLCBpbiBzdWNoIGEgd2F5IHRoYXQgYGtl eXdvcmRzJyBpbiBkb2Mtc3RyaW5ncyB3ZXJlPGJyIC8+wqBmb250aWZpZWQgYXMgYSBkb2Mtc3Ry aW5nIGl0c2VsZj8gSSB0aGluayBpdCBpcyBzaW1pbGFyIHRvPGJyIC8+wqBpbnRlcnBvbGF0aW9u LCBpdCBzZXJ2ZXMgdGhlIHB1cnBvc2Ugb2Ygc2VwYXJhdGluZyBkaWZmZXJlbnQgc2VtYW50aWM8 YnIgLz7CoGVsZW1lbnRzIGZyb20gZWFjaCBvdGhlci4gSU1ITywgdXNlcnMgd2hvIGxpa2UgcXVp ZXQgbGV2ZWxzIHdpbGwgYmVuZWZpdDxiciAvPsKgZnJvbSBpbnRlcnBvbGF0aW9uIGhpZ2hsaWdo dGVkIGRpZmZlcmVudGx5LjwvYmxvY2txdW90ZT48cD48YnIgLz5JIGRlZmluaXRlbHkgY2FuIHNl ZSB5b3VyIHBvaW50LCBhbmQgaXQgbWFrZXMgYSBsb3Qgb2Ygc2Vuc2UuIEkgZG9u4oCZdCByZWFs bHkga25vdyBwZW9wbGUgd2hvIHdhbnQgcXVpZXRlciBmb250aWZpY2F0aW9uIHdhbnRzIChwcm9i YWJseSBib3RoIGFwcHJvYWNoIGhhcyB0aGVpciBzdXBwb3J0ZXJzKSBzbyBjYW7igJl0IHNwZWFr IGZvciB0aGVtLiBCdXQgaW4gZ2VuZXJhbCwgSSB0aGluayBpdCB3b3VsZG7igJl0IGh1cnQgdG8g aGF2ZSB0aGUgb3B0aW9uLjxiciAvPsKgPC9wPjxibG9ja3F1b3RlPsKgwqAmZ3Q7IEluc3RlYWQg b2YgdGhlIHRoaXJkIGxldmVsLCB0aGUgY2hlY2sgc2hvdWxkIHVzZSB0aGUgdmFsdWU8YnIgLz7C oCZndDsgdHJlZXNpdC1mb250LWxvY2stbGV2ZWwuIEFuZCBpdCBzaG91bGQgY2hlY2sgZm9yIGVh Y2ggbGV2ZWwgc21hbGxlciB0aGFuPGJyIC8+wqAmZ3Q7IG9yIGVxdWFsIHRvIHRyZWVzaXQtZm9u dC1sb2NrLWxldmVsLjxiciAvPsKgwqBEb25lLjwvYmxvY2txdW90ZT48cD48YnIgLz5UaGFuayB5 b3UgZm9yIHlvdXIgaGFyZCB3b3JrISBJ4oCZbSBqdXN0IGhlcmUgdGFsa2luZyBhbmQgeW91IHdl bnQgYWhlYWQgYW5kIGRpZCBhbGwgdGhlIHdvcmsgOi0pPGJyIC8+wqA8L3A+PGJsb2NrcXVvdGU+ wqDCoCZndDsgTm9uLWVzc2VudGlhbCBmb250aWZpY2F0aW9uIGxpa2UgInZhciIgc2hvdWxkbid0 IGJlPGJyIC8+wqAmZ3Q7IGFjdGl2YXRlZCBhdCB0aGF0IGxldmVsLiBTbyBJIHN1Z2dlc3QgdG8g cHV0IGl0IGluIHRoZSB2YXJpYWJsZSBmZWF0dXJlLDxiciAvPsKgJmd0OyBhbG9uZyB3aXRoIG1h bnkgb3RoZXIgbm9uLWVzc2VudGlhbCBmb250aWZpY2F0aW9ucy4gKFZhcmlhYmxlIGZlYXR1cmUg aXM8YnIgLz7CoCZndDsgcGxhY2VkIGF0IGxldmVsIDQuKTxiciAvPsKgwqBJIGFkZGVkIGEgbmV3 IGZlYXR1cmUgdmFyaWFibGUtZGVmaW5pdGlvbiBmb3IgdmFyaWFibGVzIGRlZmluZWQgZm9yIGxv Y2FsIHNjb3BlcyBhbmQgcHV0IGl0IG9uIHRoZSAzcmQgbGV2ZWwuPGJyIC8+wqBJIGFsc28gYWRk ZWQgcnVsZXMgdG8gdmFyaWFibGUtZGVmaW5pdGlvbiBmZWF0dXJlIGZvciB2YXJpYWJsZXMgaW4g bGlzdDxiciAvPsKgY29tcHJlaGVuc2lvbiAoIFt2YXIrMSBmb3IgdmFyIGluIFtdXSApIGFuZCBh c19wYXR0ZXJuICh3aXRoIFQgYXMgdmFyOiw8YnIgLz7CoGV4Y2VwdCBFIGFzIHZhcjosIGNhc2Ug c3RyKCkgYXMgdmFyOikuPGJyIC8+wqDCoEkndmUgbm90aWNlZCB0aGF0IHZhcnMgaW4gYGZvciB2 YXIxLCAodmFyMiwgdmFyMykgaW4gW106YCBhcmUgaGlnaGxpZ2h0ZWQgYnkgdGhlIHJ1bGUgZnJv bSB0aGUgYXNzaWdubWVudCBmZWF0dXJlIChzcGVjaWZpY2FsbHkgYHBhdHRlcm5fbGlzdGAsIGB0 dXBsZV9wYXR0ZXJuYCkuPGJyIC8+wqBJdCBzZWVtcyBlYXN5IHRvIGZpeCBgcGF0dGVybl9saXN0 YCwgYnV0IG5vdCBzbyBlYXN5IGZvcjxiciAvPsKgYHR1cGxlX3BhdHRlcm5gLCBzaW5jZSB0aGlz IG5vZGUgbWF5IG9jY3VyIHJlY3Vyc2l2ZWx5LjxiciAvPsKgSSBkaWRuJ3QgdG91Y2ggdGhlc2Ug cnVsZXMgZm9yIG5vdy48L2Jsb2NrcXVvdGU+PHA+PGJyIC8+T2ssIG1ha2VzIHNlbnNlLjxiciAv PsKgPC9wPjxibG9ja3F1b3RlPsKgwqDCoMKgU3VtbWFyeSBmb3IgYWxsIGNoYW5nZXMgaW4gdGhl IHBhdGNoLjxiciAvPsKgwqBOZXcgZmVhdHVyZSB2YXJpYWJsZS1kZWZpbml0aW9uOjxiciAvPsKg YGZvciB2YXIgaW4gcmFuZ2UoMylgPGJyIC8+wqBgW3ZhcisxIGZvciB2YXIgaW4gW11dYDxiciAv PsKgYHdpdGggVCBhcyB2YXI6YDxiciAvPsKgYGV4Y2VwdCBFIGFzIHZhcjpgPGJyIC8+wqBgY2Fz ZSBzdHIoKSBhcyB2YXI6YDxiciAvPsKgaGlnaGxpZ2h0IHZhciBhcyBmb250LWxvY2stdmFyaWFi bGUtbmFtZS1mYWNlPGJyIC8+wqDCoGFzc2lnbm1lbnQgZmVhdHVyZTo8YnIgLz7CoHZhciA6PSAz IChuYW1lZF9leHByZXNzaW9uKTxiciAvPsKgdmFyICo9IDMgKGF1Z21lbnRlZF9hc3NpZ25tZW50 KTxiciAvPsKgSGlnaGxpZ2h0IHZhciBhcyBmb250LWxvY2stdmFyaWFibGUtbmFtZS1mYWNlLjxi ciAvPsKgwqBNYWtlIGxpc3Rfc3BsYXRfcGF0dGVybiBxdWVyeSBtb3JlIHByZWNpc2UuPGJyIC8+ wqBsaXN0X3NwbGF0X3BhdHRlcm4gbWF5IGFwcGVhciBub3Qgb25seSBpbiBhc3NpZ25tZW50czog dmFyLCAqcmVzdCA9IGNhbGwoKSw8YnIgLz7CoGJ1dCBpbiB0aGUgcGFyYW1ldGVyIGxpc3QgdG9v OiBkZWYgZigqYXJncykuPGJyIC8+wqBIaWdobGlnaHQgYXJncyBvbmx5IGZvciB0aGUgZmlyc3Qg Y2FzZSBpbiBhc3NpZ25tZW50IGZlYXR1cmUuPGJyIC8+wqDCoMKgdHlwZSBmZWF0dXJlOjxiciAv PsKgRm9udGlmeSBidWlsdC1pbnMgKGRpY3QsbGlzdCxldGMuKSBhcyB0eXBlcyB3aGVuIHRoZXkg YXJlIHVzZWQgaW4gdHlwZSBoaW50cy48YnIgLz7CoHN1cHBvcnQgbmVzdGVkIHVuaW9uIHR5cGVz LCBmb3IgZXhhbXBsZSBgTHZsMSB8IEx2bDJbTHZsM1tMdmwzXSwgTHZsMl1gLjxiciAvPsKgVGhp cyBzdHJ1Y3R1cmUgaXMgcmVwcmVzZW50ZWQgdmlhIG5lc3RpbmcgYmluYXJ5X29wZXJhdG9yIGFu ZCBzdWJzY3JpcHQgbm9kZXMgaW4gdGhlIGdyYW1tYXIuPGJyIC8+wqBGdW5jdGlvbiBweXRob24t LXRyZWVzaXQtZm9udGlmeS11bmlvbi10eXBlcyBpdGVyYXRlcyBvdmVyIGFsbCBjaGlsZHJlbiBh bmQgaGlnaGxpZ2h0IGlkZW50aWZpZXIgbm9kZXMuPGJyIC8+wqDCoEZvbnRpZnkgYmFzZSBjbGFz cyBuYW1lcyBpbiB0aGUgY2xhc3MgZGVmaW5pdGlvbjogY2xhc3MgVGVtcChCYXNlMSwgcGFjazAu QmFzZTIpOjxiciAvPsKgRm9udGlmeSBjbGFzcyBwYXR0ZXJucyBpbiBjYXNlIHN0YXRlbWVudDog Y2FzZSBbVGVtcEMoKSB8IGJ5dGVzKGIpXTo8YnIgLz7CoEhpZ2hsaWdodCB0aGUgc2Vjb25kIGFy Z3VtZW50IGFzIGEgdHlwZSBpbiBpc2luc3RhbmNlL2lzc3ViY2xhc3MgY2FsbDo8YnIgLz7CoGlz aW5zdGFuY2UodmFyMiwgKHN0ciwgZGljdCwgVHlwZTEpKTsgaXNzdWJjbGFzcyh2YXIxLCBpbnR8 c3RyKTxiciAvPsKgwqBGb3IgYWxsIGRvdHRlZCBuYW1lcyBvZiBhIHR5cGUgaGlnaGxpZ2h0IG9u bHkgdGhlIGxhc3QgcGFydCBvZiB0aGUgbmFtZSw8YnIgLz7CoGUuZy4gY29sbGVjdGlvbnMuYWJj Lkl0ZXJhdG9yLjxiciAvPsKgwqDCoGRlY29yYXRvciBmZWF0dXJlOjxiciAvPsKgSGlnaGxpZ2h0 IGRvdHRlZCBuYW1lczogQHB5dGVzdC5tYXJrLnNraXA8YnIgLz7CoEZ1bmN0aW9uIHB5dGhvbi0t dHJlZXNpdC1mb250aWZ5LWRvdHRlZC1kZWNvcmF0b3IgaXRlcmF0ZXMgb3ZlciBhbGwgbmVzdGVk IGF0dHJpYnV0ZSBub2RlcyBhbmQgaGlnaGxpZ2h0IGlkZW50aWZpZXIgbm9kZXMuPGJyIC8+wqDC oFdoZW4gZm9udC1sb2NrLWxldmVsIGlzIHNldCA0LCBgc2tpcGAgaGFkIGZ1bmN0aW9uLWNhbGwg ZmFjZSBpbjogQHB5dGVzdC5tYXJrLnNraXAocmVhc29uPSd0Jyk8YnIgLz7CoEFkZCBgOm92ZXJy aWRlIHRgIHRvIGRlY29yYXRvciBmZWF0dXJlIHRvIG92ZXJyaWRlIGZ1bmN0aW9uLWNhbGwgZmFj ZS48YnIgLz7CoMKgwqBzdHJpbmcgZmVhdHVyZTo8YnIgLz7CoEVuYWJsZSBpbnRlcnBvbGF0aW9u IGhpZ2hsaWdodGluZyBvbmx5IGlmIHN0cmluZy1pbnRlcnBvbGF0aW9uIGlzPGJyIC8+wqBwcmVz ZW50ZWQgb24gdGhlIGVuYWJsZWQgbGV2ZWxzIG9mIHRyZWVzaXQtZm9udC1sb2NrLWZlYXR1cmUt bGlzdC48YnIgLz7CoEZpeCBmb250aWZpY2F0aW9uIG9mIHN0cmluZ3MgaW5zaWRlIG9mIGYtc3Ry aW5ncyBpbnRlcnBvbGF0aW9uLDxiciAvPsKgZS5nLiBmb3IgZiJiZWcgeyduZXN0ZWQnfSIgLSAn bmVzdGVkJyB3YXMgbm90IGZvbnRpZmllZCBhcyBzdHJpbmcuPGJyIC8+wqDCoMKgZnVuY3Rpb24g ZmVhdHVyZTo8YnIgLz7CoERvIG5vdCBvdmVycmlkZSB0aGUgZmFjZSBvZiBidWlsdGluIGZ1bmN0 aW9ucyAoYWxsLCBieXRlcyBldGMuKSB3aXRoPGJyIC8+wqB0aGUgZnVuY3Rpb24gY2FsbCBmYWNl PGJyIC8+wqDCoMKga2V5d29yZCBmZWF0dXJlOjxiciAvPsKgQWRkICJpcyBub3QiIHRvIHRoZSBg cHl0aG9uLS10cmVlc2l0LWtleXdvcmRzYCBsaXN0LjwvYmxvY2txdW90ZT48cD48YnIgLz5UaGFu a3MuIEkgdGhpbmsgdGhlIG9ubHkgdGhpbmcgdGhhdOKAmXMgc3RpbGwgdXAgdG8gZGlzY3Vzc2lv biBpcyB0aGUgdmFyaWFibGUtZGVmaW5pdGlvbiBydWxlcy4gT3RoZXJzIGNhbiBiZSBtZXJnZWQg dG8gZW1hY3MtMjkuPGJyIC8+PGJyIC8+WXVhbjwvcD48L2Jsb2NrcXVvdGU+ ------==--bound.271104.454dhcrkfdwiwlad.iva.yp-c.yandex.net Content-Disposition: attachment; filename="0005-Improve-syntax-highlighting-for-python-ts-mode.patch" Content-Transfer-Encoding: base64 Content-Type: text/x-diff; name="0005-Improve-syntax-highlighting-for-python-ts-mode.patch" RnJvbSBkZDQ4NjNhZDU1MzEwYjA4NDgzOWRmOGY1MDhiZjU3MzY0ZDQ4OWI3IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBEZW5pcyBadWJhcmV2IDxkdnp1YmFyZXZAeWFuZGV4LnJ1PgpE YXRlOiBTYXQsIDExIE5vdiAyMDIzIDA0OjU1OjQ0ICswMzAwClN1YmplY3Q6IFtQQVRDSF0gSW1w cm92ZSBzeW50YXggaGlnaGxpZ2h0aW5nIGZvciBweXRob24tdHMtbW9kZQoKRml4IGZvbnRpZmlj YXRpb24gb2Ygc3RyaW5ncyBpbnNpZGUgb2YgZi1zdHJpbmdzIGludGVycG9sYXRpb24sIGUuZy4g Zm9yCmYiYmVnIHsnbmVzdGVkJ30iIC0gJ25lc3RlZCcgd2FzIG5vdCBmb250aWZpZWQgYXMgc3Ry aW5nLiAgRG8gbm90Cm92ZXJyaWRlIHRoZSBmYWNlIG9mIGJ1aWx0aW4gZnVuY3Rpb25zIChhbGws IGJ5dGVzIGV0Yy4pIHdpdGggdGhlCmZ1bmN0aW9uIGNhbGwgZmFjZS4gIEFkZCBtaXNzaW5nIGFz c2lnbm1lbnQgZXhwcmVzc2lvbnMgKDo9ICo9KS4KSGlnaGxpZ2h0IHZhcmlhYmxlcyBkZWZpbmVk IGluIGZvciBsb29wIChmb3IgdmFyMSwgdmFyMiBpbiApLiAgRm9udGlmeQpidWlsdC1pbnMgKGRp Y3QsbGlzdCxldGMuKSBhcyB0eXBlcyB3aGVuIHRoZXkgYXJlIHVzZWQgaW4gdHlwZSBoaW50cy4K SGlnaGxpZ2h0IHVuaW9uIHR5cGVzICh0eXBlMXx0eXBlMikuICBIaWdobGlnaHQgYmFzZSBjbGFz cyBuYW1lcyBpbiB0aGUKY2xhc3MgZGVmaW5pdGlvbi4gIEZvbnRpZnkgY2xhc3MgcGF0dGVybnMg aW4gY2FzZSBzdGF0ZW1lbnQuIEhpZ2hsaWdodAp0aGUgc2Vjb25kIGFyZ3VtZW50IGFzIGEgdHlw ZSBpbiBpc2luc3RhbmNlL2lzc3ViY2xhc3MgY2FsbC4gSGlnaGxpZ2h0CmRvdHRlZCBkZWNvcmF0 b3IgbmFtZXMuCgoqIGxpc3AvcHJvZ21vZGVzL3B5dGhvbi5lbCAocHl0aG9uLS10cmVlc2l0LWtl eXdvcmRzKTogQWRkIGNvbXBvdW5kCmtleXdvcmQgImlzIG5vdCIuCihweXRob24tLXRyZWVzaXQt Zm9udGlmeS1zdHJpbmcpOiBmaXggZi1zdHJpbmcgaW50ZXJwb2xhdGlvbi4gRW5hYmxlCmludGVy cG9sYXRpb24gaGlnaGxpZ2h0aW5nIG9ubHkgaWYgc3RyaW5nLWludGVycG9sYXRpb24gaXMgcHJl c2VudGVkIG9uCnRoZSBlbmFibGVkIGxldmVscyBvZiB0cmVlc2l0LWZvbnQtbG9jay1mZWF0dXJl LWxpc3QuCihweXRob24tLXRyZWVzaXQtZm9udGlmeS1zdHJpbmctaW50ZXJwb2xhdGlvbik6IFJl bW92ZSBmdW5jdGlvbi4KKHB5dGhvbi0tdHJlZXNpdC1mb250aWZ5LXVuaW9uLXR5cGVzKTogRm9u dGlmeSBuZXN0ZWQgdW5pb24gdHlwZXMuCihweXRob24tLXRyZWVzaXQtZm9udGlmeS1kb3R0ZWQt ZGVjb3JhdG9yKTogRm9udGlmeSBhbGwgcGFydHMgb2YKZG90dGVkIGRlY29yYXRvciBuYW1lLgoo cHl0aG9uLS10cmVlc2l0LXNldHRpbmdzKTogQ2hhbmdlL2FkZCBydWxlcy4KKiB0ZXN0L2xpc3Av cHJvZ21vZGVzL3B5dGhvbi10ZXN0cy5lbCAocHl0aG9uLXRzLXRlc3RzLXdpdGgtdGVtcC1idWZm ZXIpOgpmdW5jdGlvbiBmb3Igc2V0dGluZyB1cCB0ZXN0IGJ1ZmZlci4KKHB5dGhvbi10cy1tb2Rl LWNvbXBvdW5kLWtleXdvcmRzLWZhY2UpCihweXRob24tdHMtbW9kZS12YXItZm9yLWxvb3AtZmFj ZSkKKHB5dGhvbi10cy1tb2RlLW5hbWVkLWFzc2lnbmVtZW50LWZhY2UtMSkKKHB5dGhvbi10cy1t b2RlLWFzc2lnbmVtZW50LWZhY2UtMikKKHB5dGhvbi10cy1tb2RlLW5lc3RlZC10eXBlcy1mYWNl LTEpCihweXRob24tdHMtbW9kZS11bmlvbi10eXBlcy1mYWNlLTEpCihweXRob24tdHMtbW9kZS11 bmlvbi10eXBlcy1mYWNlLTIpCihweXRob24tdHMtbW9kZS10eXBlcy1mYWNlLTEpCihweXRob24t dHMtbW9kZS10eXBlcy1mYWNlLTIpCihweXRob24tdHMtbW9kZS10eXBlcy1mYWNlLTMpCihweXRo b24tdHMtbW9kZS1pc2luc3RhbmNlLXR5cGUtZmFjZS0xKQoocHl0aG9uLXRzLW1vZGUtaXNpbnN0 YW5jZS10eXBlLWZhY2UtMikKKHB5dGhvbi10cy1tb2RlLXN1cGVyY2xhc3MtdHlwZS1mYWNlKQoo cHl0aG9uLXRzLW1vZGUtY2xhc3MtcGF0dGVybnMtZmFjZSkKKHB5dGhvbi10cy1tb2RlLWRvdHRl ZC1kZWNvcmF0b3ItZmFjZS0xKQoocHl0aG9uLXRzLW1vZGUtZG90dGVkLWRlY29yYXRvci1mYWNl LTIpCihweXRob24tdHMtbW9kZS1idWlsdGluLWNhbGwtZmFjZSkKKHB5dGhvbi10cy1tb2RlLWlu dGVycG9sYXRpb24tbmVzdGVkLXN0cmluZykKKHB5dGhvbi10cy1tb2RlLWRpc2FibGVkLXN0cmlu Zy1pbnRlcnBvbGF0aW9uKQoocHl0aG9uLXRzLW1vZGUtaW50ZXJwb2xhdGlvbi1kb2Mtc3RyaW5n KTogQWRkIHRlc3RzLgotLS0KIGxpc3AvcHJvZ21vZGVzL3B5dGhvbi5lbCAgICAgICAgICAgIHwg MTgzICsrKysrKysrKysrKystLS0tLQogdGVzdC9saXNwL3Byb2dtb2Rlcy9weXRob24tdGVzdHMu ZWwgfCAyODUgKysrKysrKysrKysrKysrKysrKysrKysrKysrKwogMiBmaWxlcyBjaGFuZ2VkLCA0 MjAgaW5zZXJ0aW9ucygrKSwgNDggZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvbGlzcC9wcm9n bW9kZXMvcHl0aG9uLmVsIGIvbGlzcC9wcm9nbW9kZXMvcHl0aG9uLmVsCmluZGV4IGFiM2JmMWI0 ZWMuLjFiMzNhNDU5NjUgMTAwNjQ0Ci0tLSBhL2xpc3AvcHJvZ21vZGVzL3B5dGhvbi5lbAorKysg Yi9saXNwL3Byb2dtb2Rlcy9weXRob24uZWwKQEAgLTk3OSw3ICs5NzksNyBAQCBweXRob24tLXRy ZWVzaXQta2V5d29yZHMKICAgICAicmFpc2UiICJyZXR1cm4iICJ0cnkiICJ3aGlsZSIgIndpdGgi ICJ5aWVsZCIKICAgICA7OyBUaGVzZSBhcmUgdGVjaG5pY2FsbHkgb3BlcmF0b3JzLCBidXQgd2Ug Zm9udGlmeSB0aGVtIGFzCiAgICAgOzsga2V5d29yZHMuCi0gICAgImFuZCIgImluIiAiaXMiICJu b3QiICJvciIgIm5vdCBpbiIpKQorICAgICJhbmQiICJpbiIgImlzIiAibm90IiAib3IiICJub3Qg aW4iICJpcyBub3QiKSkKIAogKGRlZnZhciBweXRob24tLXRyZWVzaXQtYnVpbHRpbnMKICAgJygi YWJzIiAiYWxsIiAiYW55IiAiYXNjaWkiICJiaW4iICJib29sIiAiYnJlYWtwb2ludCIgImJ5dGVh cnJheSIKQEAgLTEwNDIsOSArMTA0Miw3IEBAIHB5dGhvbi0tdHJlZXNpdC1mb250aWZ5LXN0cmlu ZwogZi1zdHJpbmdzLiAgT1ZFUlJJREUgaXMgdGhlIG92ZXJyaWRlIGZsYWcgZGVzY3JpYmVkIGlu CiBgdHJlZXNpdC1mb250LWxvY2stcnVsZXMnLiAgU1RBUlQgYW5kIEVORCBtYXJrIHRoZSByZWdp b24gdG8gYmUKIGZvbnRpZmllZC4iCi0gIChsZXQqICgoc3RyaW5nLWJlZyAodHJlZXNpdC1ub2Rl LXN0YXJ0IG5vZGUpKQotICAgICAgICAgKHN0cmluZy1lbmQgKHRyZWVzaXQtbm9kZS1lbmQgbm9k ZSkpCi0gICAgICAgICAobWF5YmUtZXhwcmVzc2lvbiAodHJlZXNpdC1ub2RlLXBhcmVudCBub2Rl KSkKKyAgKGxldCogKChtYXliZS1leHByZXNzaW9uICh0cmVlc2l0LW5vZGUtcGFyZW50IG5vZGUp KQogICAgICAgICAgKGdyYW5kcGFyZW50ICh0cmVlc2l0LW5vZGUtcGFyZW50CiAgICAgICAgICAg ICAgICAgICAgICAgICh0cmVlc2l0LW5vZGUtcGFyZW50CiAgICAgICAgICAgICAgICAgICAgICAg ICBtYXliZS1leHByZXNzaW9uKSkpCkBAIC0xMDcyLDI4ICsxMDcwLDc4IEBAIHB5dGhvbi0tdHJl ZXNpdC1mb250aWZ5LXN0cmluZwogICAgICAgICAgICAgICAgICAgICAgICAgKGVxdWFsICh0cmVl c2l0LW5vZGUtdHlwZSBtYXliZS1leHByZXNzaW9uKQogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICJleHByZXNzaW9uX3N0YXRlbWVudCIpKQogICAgICAgICAgICAgICAgICAgICdmb250 LWxvY2stZG9jLWZhY2UKLSAgICAgICAgICAgICAgICAgJ2ZvbnQtbG9jay1zdHJpbmctZmFjZSkp KQotICAgIDs7IERvbid0IGhpZ2hsaWdodCBzdHJpbmcgcHJlZml4ZXMgbGlrZSBmL3IvYi4KLSAg ICAoc2F2ZS1leGN1cnNpb24KLSAgICAgIChnb3RvLWNoYXIgc3RyaW5nLWJlZykKLSAgICAgICh3 aGVuIChyZS1zZWFyY2gtZm9yd2FyZCAiW1wiJ10iIHN0cmluZy1lbmQgdCkKLSAgICAgICAgKHNl dHEgc3RyaW5nLWJlZyAobWF0Y2gtYmVnaW5uaW5nIDApKSkpCi0gICAgKHRyZWVzaXQtZm9udGlm eS13aXRoLW92ZXJyaWRlCi0gICAgIHN0cmluZy1iZWcgc3RyaW5nLWVuZCBmYWNlIG92ZXJyaWRl IHN0YXJ0IGVuZCkpKQotCi0oZGVmdW4gcHl0aG9uLS10cmVlc2l0LWZvbnRpZnktc3RyaW5nLWlu dGVycG9sYXRpb24KLSAgICAobm9kZSBfIHN0YXJ0IGVuZCAmcmVzdCBfKQotICAiRm9udGlmeSBz dHJpbmcgaW50ZXJwb2xhdGlvbi4KLU5PREUgaXMgdGhlIHN0cmluZyBub2RlLiAgRG8gbm90IGZv bnRpZnkgdGhlIGluaXRpYWwgZiBmb3IKLWYtc3RyaW5ncy4gIFNUQVJUIGFuZCBFTkQgbWFyayB0 aGUgcmVnaW9uIHRvIGJlCisgICAgICAgICAgICAgICAgICdmb250LWxvY2stc3RyaW5nLWZhY2Up KQorCisgICAgICAgICAoaWdub3JlLWludGVycG9sYXRpb24gKG5vdAorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAoc2VxLXNvbWUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIChsYW1iZGEgKGZlYXRzKSAobWVtcSAnc3RyaW5nLWludGVycG9sYXRpb24gZmVhdHMpKQor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHNlcS10YWtlIHRyZWVzaXQtZm9udC1s b2NrLWZlYXR1cmUtbGlzdCB0cmVlc2l0LWZvbnQtbG9jay1sZXZlbCkpKSkKKyAgICAgICAgIDs7 IElmIGludGVycG9sYXRpb24gaXMgZW5hYmxlZCwgaGlnaGxpZ2h0IG9ubHkKKyAgICAgICAgIDs7 IHN0cmluZ19zdGFydC9zdHJpbmdfY29udGVudC9zdHJpbmdfZW5kIGNoaWxkcmVuLiAgRG8gbm90 CisgICAgICAgICA7OyB0b3VjaCBpbnRlcnBvbGF0aW9uIG5vZGUgdGhhdCBjYW4gb2NjdXIgaW5z aWRlIG9mIHRoZQorICAgICAgICAgOzsgc3RyaW5nLgorICAgICAgICAgKHN0cmluZy1ub2RlcyAo aWYgaWdub3JlLWludGVycG9sYXRpb24KKyAgICAgICAgICAgICAgICAgICAgICAgICAgIChsaXN0 IG5vZGUpCisgICAgICAgICAgICAgICAgICAgICAgICAgKHRyZWVzaXQtZmlsdGVyLWNoaWxkCisg ICAgICAgICAgICAgICAgICAgICAgICAgIG5vZGUKKyAgICAgICAgICAgICAgICAgICAgICAgICAg KGxhbWJkYSAoY2gpIChtZW1iZXIgKHRyZWVzaXQtbm9kZS10eXBlIGNoKQorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnKCJzdHJpbmdfc3RhcnQiCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInN0cmluZ19jb250 ZW50IgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJz dHJpbmdfZW5kIikpKQorICAgICAgICAgICAgICAgICAgICAgICAgICB0KSkpKQorCisgICAgKGRv bGlzdCAoc3RyaW5nLW5vZGUgc3RyaW5nLW5vZGVzKQorICAgICAgKGxldCAoKHN0cmluZy1iZWcg KHRyZWVzaXQtbm9kZS1zdGFydCBzdHJpbmctbm9kZSkpCisgICAgICAgICAgICAoc3RyaW5nLWVu ZCAodHJlZXNpdC1ub2RlLWVuZCBzdHJpbmctbm9kZSkpKQorICAgICAgICAod2hlbiAob3IgaWdu b3JlLWludGVycG9sYXRpb24KKyAgICAgICAgICAgICAgICAgIChlcXVhbCAodHJlZXNpdC1ub2Rl LXR5cGUgc3RyaW5nLW5vZGUpICJzdHJpbmdfc3RhcnQiKSkKKyAgICAgICAgICA7OyBEb24ndCBo aWdobGlnaHQgc3RyaW5nIHByZWZpeGVzIGxpa2UgZi9yL2IuCisgICAgICAgICAgKHNhdmUtZXhj dXJzaW9uCisgICAgICAgICAgICAoZ290by1jaGFyIHN0cmluZy1iZWcpCisgICAgICAgICAgICAo d2hlbiAocmUtc2VhcmNoLWZvcndhcmQgIltcIiddIiBzdHJpbmctZW5kIHQpCisgICAgICAgICAg ICAgIChzZXRxIHN0cmluZy1iZWcgKG1hdGNoLWJlZ2lubmluZyAwKSkpKSkKKworICAgICAgICAo dHJlZXNpdC1mb250aWZ5LXdpdGgtb3ZlcnJpZGUKKyAgICAgICAgIHN0cmluZy1iZWcgc3RyaW5n LWVuZCBmYWNlIG92ZXJyaWRlIHN0YXJ0IGVuZCkpKSkpCisKKyhkZWZ1biBweXRob24tLXRyZWVz aXQtZm9udGlmeS11bmlvbi10eXBlcyAobm9kZSBvdmVycmlkZSBzdGFydCBlbmQgJnJlc3QgXykK KyAgIkZvbnRpZnkgbmVzdGVkIHVuaW9uIHR5cGVzIGluIHRoZSB0eXBlIGhpbnRzLgorRm9yIGV4 YW1scGUsIEx2bDEgfCBMdmwyW0x2bDNbTHZsNFtMdmw1IHwgTm9uZV1dLCBMdmwyXS4gIFRoaXMK K3N0cnVjdHVyZSBpcyByZXByZXNlbnRlZCB2aWEgbmVzdGluZyBiaW5hcnlfb3BlcmF0b3IgYW5k CitzdWJzY3JpcHQgbm9kZXMuICBUaGlzIGZ1bmN0aW9uIGl0ZXJhdGVzIG92ZXIgYWxsIGxldmVs cyBhbmQKK2hpZ2hsaWdodCBpZGVudGlmaWVyIG5vZGVzLiAgTk9ERSBpcyB0aGUgYmluYXJ5X29w ZXJhdG9yCitub2RlLiAgT1ZFUlJJREUgaXMgdGhlIG92ZXJyaWRlIGZsYWcgZGVzY3JpYmVkIGlu CitgdHJlZXNpdC1mb250LWxvY2stcnVsZXMnLiAgU1RBUlQgYW5kIEVORCBtYXJrIHRoZSByZWdp b24gdG8gYmUKIGZvbnRpZmllZC4iCi0gIDs7IFRoaXMgaXMga2luZCBvZiBhIGhhY2ssIGl0IGJh c2ljYWxseSByZW1vdmVzIHRoZSBmYWNlIGFwcGxpZWQgYnkKLSAgOzsgdGhlIHN0cmluZyBmZWF0 dXJlLCBzbyB0aGF0IGZvbGxvd2luZyBmZWF0dXJlcyBjYW4gYXBwbHkgdGhlaXIKLSAgOzsgZmFj ZS4KLSAgKGxldCAoKG4tc3RhcnQgKHRyZWVzaXQtbm9kZS1zdGFydCBub2RlKSkKLSAgICAgICAg KG4tZW5kICh0cmVlc2l0LW5vZGUtZW5kIG5vZGUpKSkKLSAgICAocmVtb3ZlLXRleHQtcHJvcGVy dGllcwotICAgICAobWF4IHN0YXJ0IG4tc3RhcnQpIChtaW4gZW5kIG4tZW5kKSAnKGZhY2UpKSkp CisgIChkb2xpc3QgKGNoaWxkICh0cmVlc2l0LW5vZGUtY2hpbGRyZW4gbm9kZSB0KSkKKyAgICAo cGNhc2UgKHRyZWVzaXQtbm9kZS10eXBlIGNoaWxkKQorICAgICAgKChvciAiaWRlbnRpZmllciIg Im5vbmUiKQorICAgICAgICh0cmVlc2l0LWZvbnRpZnktd2l0aC1vdmVycmlkZQorICAgICAgICAo dHJlZXNpdC1ub2RlLXN0YXJ0IGNoaWxkKSAodHJlZXNpdC1ub2RlLWVuZCBjaGlsZCkKKyAgICAg ICAgJ2ZvbnQtbG9jay10eXBlLWZhY2Ugb3ZlcnJpZGUgc3RhcnQgZW5kKSkKKyAgICAgICgiYXR0 cmlidXRlIgorICAgICAgICh3aGVuLWxldCAoKHR5cGUtbm9kZSAodHJlZXNpdC1ub2RlLWNoaWxk LWJ5LWZpZWxkLW5hbWUgY2hpbGQgImF0dHJpYnV0ZSIpKSkKKyAgICAgICAgICh0cmVlc2l0LWZv bnRpZnktd2l0aC1vdmVycmlkZQorICAgICAgICAgICh0cmVlc2l0LW5vZGUtc3RhcnQgdHlwZS1u b2RlKSAodHJlZXNpdC1ub2RlLWVuZCB0eXBlLW5vZGUpCisgICAgICAgICAgJ2ZvbnQtbG9jay10 eXBlLWZhY2Ugb3ZlcnJpZGUgc3RhcnQgZW5kKSkpCisgICAgICAoKG9yICJiaW5hcnlfb3BlcmF0 b3IiICJzdWJzY3JpcHQiKQorICAgICAgIChweXRob24tLXRyZWVzaXQtZm9udGlmeS11bmlvbi10 eXBlcyBjaGlsZCBvdmVycmlkZSBzdGFydCBlbmQpKSkpKQorCisoZGVmdW4gcHl0aG9uLS10cmVl c2l0LWZvbnRpZnktZG90dGVkLWRlY29yYXRvciAobm9kZSBvdmVycmlkZSBzdGFydCBlbmQgJnJl c3QgXykKKyAgIkZvbnRpZnkgZG90dGVkIGRlY29yYXRvcnMuCitGb3IgZXhhbXBsZSBAcHl0ZXMu bWFyay5za2lwLiAgSXRlcmF0ZSBvdmVyIGFsbCBuZXN0ZWQgYXR0cmlidXRlCitub2RlcyBhbmQg aGlnaGxpZ2h0IGlkZW50aWZpZXIgbm9kZXMuICBOT0RFIGlzIHRoZSBmaXJzdCBhdHRyaWJ1dGUK K25vZGUuICBPVkVSUklERSBpcyB0aGUgb3ZlcnJpZGUgZmxhZyBkZXNjcmliZWQgaW4KK2B0cmVl c2l0LWZvbnQtbG9jay1ydWxlcycuICBTVEFSVCBhbmQgRU5EIG1hcmsgdGhlIHJlZ2lvbiB0byBi ZQorZm9udGlmaWVkLiIKKyAgKGRvbGlzdCAoY2hpbGQgKHRyZWVzaXQtbm9kZS1jaGlsZHJlbiBu b2RlIHQpKQorICAgIChwY2FzZSAodHJlZXNpdC1ub2RlLXR5cGUgY2hpbGQpCisgICAgICAoImlk ZW50aWZpZXIiCisgICAgICAgKHRyZWVzaXQtZm9udGlmeS13aXRoLW92ZXJyaWRlCisgICAgICAg ICh0cmVlc2l0LW5vZGUtc3RhcnQgY2hpbGQpICh0cmVlc2l0LW5vZGUtZW5kIGNoaWxkKQorICAg ICAgICAnZm9udC1sb2NrLXR5cGUtZmFjZSBvdmVycmlkZSBzdGFydCBlbmQpKQorICAgICAgKCJh dHRyaWJ1dGUiCisgICAgICAgKHB5dGhvbi0tdHJlZXNpdC1mb250aWZ5LWRvdHRlZC1kZWNvcmF0 b3IgY2hpbGQgb3ZlcnJpZGUgc3RhcnQgZW5kKSkpKSkKIAogKGRlZnZhciBweXRob24tLXRyZWVz aXQtc2V0dGluZ3MKICAgKHRyZWVzaXQtZm9udC1sb2NrLXJ1bGVzCkBAIC0xMTAzLDE0ICsxMTUx LDkgQEAgcHl0aG9uLS10cmVlc2l0LXNldHRpbmdzCiAKICAgIDpmZWF0dXJlICdzdHJpbmcKICAg IDpsYW5ndWFnZSAncHl0aG9uCi0gICAnKChzdHJpbmcpIEBweXRob24tLXRyZWVzaXQtZm9udGlm eS1zdHJpbmcpCisgICAnKChzdHJpbmcpIEBweXRob24tLXRyZWVzaXQtZm9udGlmeS1zdHJpbmcK KyAgICAgKGludGVycG9sYXRpb24gWyJ7IiAifSJdIEBmb250LWxvY2stbWlzYy1wdW5jdHVhdGlv bi1mYWNlKSkKIAotICAgOzsgSEFDSzogVGhpcyBmZWF0dXJlIG11c3QgY29tZSBhZnRlciB0aGUg c3RyaW5nIGZlYXR1cmUgYW5kIGJlZm9yZQotICAgOzsgb3RoZXIgZmVhdHVyZXMuICBNYXliZSB3 ZSBzaG91bGQgbWFrZSBzdHJpbmctaW50ZXJwb2xhdGlvbiBhbgotICAgOzsgb3B0aW9uIHJhdGhl ciB0aGFuIGEgZmVhdHVyZS4KLSAgIDpmZWF0dXJlICdzdHJpbmctaW50ZXJwb2xhdGlvbgotICAg Omxhbmd1YWdlICdweXRob24KLSAgICcoKGludGVycG9sYXRpb24pIEBweXRob24tLXRyZWVzaXQt Zm9udGlmeS1zdHJpbmctaW50ZXJwb2xhdGlvbikKIAogICAgOmZlYXR1cmUgJ2tleXdvcmQKICAg IDpsYW5ndWFnZSAncHl0aG9uCkBAIC0xMTI2LDEyICsxMTY5LDYgQEAgcHl0aG9uLS10cmVlc2l0 LXNldHRpbmdzCiAgICAgICBuYW1lOiAoaWRlbnRpZmllcikgQGZvbnQtbG9jay10eXBlLWZhY2Up CiAgICAgIChwYXJhbWV0ZXJzIChpZGVudGlmaWVyKSBAZm9udC1sb2NrLXZhcmlhYmxlLW5hbWUt ZmFjZSkpCiAKLSAgIDpmZWF0dXJlICdmdW5jdGlvbgotICAgOmxhbmd1YWdlICdweXRob24KLSAg ICcoKGNhbGwgZnVuY3Rpb246IChpZGVudGlmaWVyKSBAZm9udC1sb2NrLWZ1bmN0aW9uLWNhbGwt ZmFjZSkKLSAgICAgKGNhbGwgZnVuY3Rpb246IChhdHRyaWJ1dGUKLSAgICAgICAgICAgICAgICAg ICAgICBhdHRyaWJ1dGU6IChpZGVudGlmaWVyKSBAZm9udC1sb2NrLWZ1bmN0aW9uLWNhbGwtZmFj ZSkpKQotCiAgICA6ZmVhdHVyZSAnYnVpbHRpbgogICAgOmxhbmd1YWdlICdweXRob24KICAgIGAo KChpZGVudGlmaWVyKSBAZm9udC1sb2NrLWJ1aWx0aW4tZmFjZQpAQCAtMTE0Miw2ICsxMTc5LDEy IEBAIHB5dGhvbi0tdHJlZXNpdC1zZXR0aW5ncwogICAgICAgICAgICAgICAgICAgICAgIGVvbCkp CiAgICAgICAgICAgICAgIEBmb250LWxvY2stYnVpbHRpbi1mYWNlKSkpCiAKKyAgIDpmZWF0dXJl ICdmdW5jdGlvbgorICAgOmxhbmd1YWdlICdweXRob24KKyAgICcoKGNhbGwgZnVuY3Rpb246IChp ZGVudGlmaWVyKSBAZm9udC1sb2NrLWZ1bmN0aW9uLWNhbGwtZmFjZSkKKyAgICAgKGNhbGwgZnVu Y3Rpb246IChhdHRyaWJ1dGUKKyAgICAgICAgICAgICAgICAgICAgICBhdHRyaWJ1dGU6IChpZGVu dGlmaWVyKSBAZm9udC1sb2NrLWZ1bmN0aW9uLWNhbGwtZmFjZSkpKQorCiAgICA6ZmVhdHVyZSAn Y29uc3RhbnQKICAgIDpsYW5ndWFnZSAncHl0aG9uCiAgICAnKFsodHJ1ZSkgKGZhbHNlKSAobm9u ZSldIEBmb250LWxvY2stY29uc3RhbnQtZmFjZSkKQEAgLTExNTMsMzAgKzExOTYsNzQgQEAgcHl0 aG9uLS10cmVlc2l0LXNldHRpbmdzCiAgICAgICAgICAgICAgICAgIEBmb250LWxvY2stdmFyaWFi bGUtbmFtZS1mYWNlKQogICAgICAoYXNzaWdubWVudCBsZWZ0OiAoYXR0cmlidXRlCiAgICAgICAg ICAgICAgICAgICAgICAgICBhdHRyaWJ1dGU6IChpZGVudGlmaWVyKQotICAgICAgICAgICAgICAg ICAgICAgICAgQGZvbnQtbG9jay1wcm9wZXJ0eS11c2UtZmFjZSkpCi0gICAgIChwYXR0ZXJuX2xp c3QgKGlkZW50aWZpZXIpCisgICAgICAgICAgICAgICAgICAgICAgICBAZm9udC1sb2NrLXZhcmlh YmxlLW5hbWUtZmFjZSkpCisgICAgIChhdWdtZW50ZWRfYXNzaWdubWVudCBsZWZ0OiAoaWRlbnRp ZmllcikKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIEBmb250LWxvY2stdmFyaWFibGUtbmFt ZS1mYWNlKQorICAgICAobmFtZWRfZXhwcmVzc2lvbiBuYW1lOiAoaWRlbnRpZmllcikKKyAgICAg ICAgICAgICAgICAgICAgICAgQGZvbnQtbG9jay12YXJpYWJsZS1uYW1lLWZhY2UpCisgICAgIChw YXR0ZXJuX2xpc3QgWyhpZGVudGlmaWVyKQorICAgICAgICAgICAgICAgICAgICAobGlzdF9zcGxh dF9wYXR0ZXJuIChpZGVudGlmaWVyKSldCiAgICAgICAgICAgICAgICAgICAgQGZvbnQtbG9jay12 YXJpYWJsZS1uYW1lLWZhY2UpCi0gICAgICh0dXBsZV9wYXR0ZXJuIChpZGVudGlmaWVyKQorICAg ICAodHVwbGVfcGF0dGVybiBbKGlkZW50aWZpZXIpCisgICAgICAgICAgICAgICAgICAgICAobGlz dF9zcGxhdF9wYXR0ZXJuIChpZGVudGlmaWVyKSldCiAgICAgICAgICAgICAgICAgICAgIEBmb250 LWxvY2stdmFyaWFibGUtbmFtZS1mYWNlKQotICAgICAobGlzdF9wYXR0ZXJuIChpZGVudGlmaWVy KQotICAgICAgICAgICAgICAgICAgIEBmb250LWxvY2stdmFyaWFibGUtbmFtZS1mYWNlKQotICAg ICAobGlzdF9zcGxhdF9wYXR0ZXJuIChpZGVudGlmaWVyKQotICAgICAgICAgICAgICAgICAgICAg ICAgIEBmb250LWxvY2stdmFyaWFibGUtbmFtZS1mYWNlKSkKKyAgICAgKGxpc3RfcGF0dGVybiBb KGlkZW50aWZpZXIpCisgICAgICAgICAgICAgICAgICAgIChsaXN0X3NwbGF0X3BhdHRlcm4gKGlk ZW50aWZpZXIpKV0KKyAgICAgICAgICAgICAgICAgICBAZm9udC1sb2NrLXZhcmlhYmxlLW5hbWUt ZmFjZSkpCiAKICAgIDpmZWF0dXJlICdkZWNvcmF0b3IKICAgIDpsYW5ndWFnZSAncHl0aG9uCisg ICA7OyBPdmVycmlkZSBmdW5jdGlvbiBjYWxsIGZhY2UuCisgICA6b3ZlcnJpZGUgdAogICAgJygo ZGVjb3JhdG9yICJAIiBAZm9udC1sb2NrLXR5cGUtZmFjZSkKICAgICAgKGRlY29yYXRvciAoY2Fs bCBmdW5jdGlvbjogKGlkZW50aWZpZXIpIEBmb250LWxvY2stdHlwZS1mYWNlKSkKLSAgICAgKGRl Y29yYXRvciAoaWRlbnRpZmllcikgQGZvbnQtbG9jay10eXBlLWZhY2UpKQorICAgICAoZGVjb3Jh dG9yIChpZGVudGlmaWVyKSBAZm9udC1sb2NrLXR5cGUtZmFjZSkKKyAgICAgKGRlY29yYXRvciBb KGF0dHJpYnV0ZSkgKGNhbGwgKGF0dHJpYnV0ZSkpXSBAcHl0aG9uLS10cmVlc2l0LWZvbnRpZnkt ZG90dGVkLWRlY29yYXRvcikpCiAKICAgIDpmZWF0dXJlICd0eXBlCiAgICA6bGFuZ3VhZ2UgJ3B5 dGhvbgorICAgOzsgT3ZlcnJpZGUgYnVpbHQtaW4gZmFjZXMgd2hlbiBkaWN0L2xpc3QgYXJlIHVz ZWQgZm9yIHR5cGUgaGludHMuCisgICA6b3ZlcnJpZGUgdAogICAgYCgoKGlkZW50aWZpZXIpIEBm b250LWxvY2stdHlwZS1mYWNlCiAgICAgICAoOm1hdGNoICwocngtdG8tc3RyaW5nCiAgICAgICAg ICAgICAgICAgYChzZXEgYm9sIChvciAsQHB5dGhvbi0tdHJlZXNpdC1leGNlcHRpb25zKQotICAg ICAgICAgICAgICAgICAgICAgIGVvbCkpCisgICAgICAgICAgICAgICAgICBlb2wpKQogICAgICAg ICAgICAgICBAZm9udC1sb2NrLXR5cGUtZmFjZSkpCi0gICAgICh0eXBlIChpZGVudGlmaWVyKSBA Zm9udC1sb2NrLXR5cGUtZmFjZSkpCisgICAgICh0eXBlIFsoaWRlbnRpZmllcikgKG5vbmUpXSBA Zm9udC1sb2NrLXR5cGUtZmFjZSkKKyAgICAgKHR5cGUgKGF0dHJpYnV0ZSBhdHRyaWJ1dGU6IChp ZGVudGlmaWVyKSBAZm9udC1sb2NrLXR5cGUtZmFjZSkpCisgICAgIDs7IFdlIGRvbid0IHdhbnQg dG8gaGlnaGxpZ2h0IGEgcGFja2FnZSBvZiB0aGUgdHlwZQorICAgICA7OyAoZS5nLiBwYWNrLkNs YXNzTmFtZSkuICBTbyBleHBsaWNpdGx5IGV4Y2x1ZGUgcGF0dGVybnMgd2l0aAorICAgICA7OyBh dHRyaWJ1dGUsIHNpbmNlIHdlIGhhbmRsZSBkb3R0ZWQgdHlwZSBuYW1lIGluIHRoZSBwcmV2aW91 cworICAgICA7OyBydWxlLiAgVGhlIGZvbGxvd2luZyBydWxlIGhhbmRsZQorICAgICA7OyBnZW5l cmljX3R5cGUvbGlzdC90dXBsZS9zcGxhdF90eXBlIG5vZGVzLgorICAgICAodHlwZSAoXyAhYXR0 cmlidXRlIFtbKGlkZW50aWZpZXIpIChub25lKV0gQGZvbnQtbG9jay10eXBlLWZhY2UKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgKGF0dHJpYnV0ZSBhdHRyaWJ1dGU6IChpZGVudGlmaWVyKSBA Zm9udC1sb2NrLXR5cGUtZmFjZSkgXSkpCisgICAgIDs7IGNvbGxlY3Rpb25zLmFiYy5JdGVyYXRv cltUXSBjYXNlLgorICAgICAodHlwZSAoc3Vic2NyaXB0IChhdHRyaWJ1dGUgYXR0cmlidXRlOiAo aWRlbnRpZmllcikgQGZvbnQtbG9jay10eXBlLWZhY2UpKSkKKyAgICAgOzsgTmVzdGVkIG9wdGlv bmFsIHR5cGUgaGludHMsIGUuZy4gdmFsOiBMdmwxIHwgTHZsMltMdmwzW0x2bDRdXS4KKyAgICAg KHR5cGUgKGJpbmFyeV9vcGVyYXRvcikgQHB5dGhvbi0tdHJlZXNpdC1mb250aWZ5LXVuaW9uLXR5 cGVzKQorICAgICA7O2NsYXNzIFR5cGUoQmFzZTEsIFNlcXVlbmNlW1RdKS4KKyAgICAgKGNsYXNz X2RlZmluaXRpb24KKyAgICAgIHN1cGVyY2xhc3NlczoKKyAgICAgIChhcmd1bWVudF9saXN0IFso aWRlbnRpZmllcikgQGZvbnQtbG9jay10eXBlLWZhY2UKKyAgICAgICAgICAgICAgICAgICAgICAo YXR0cmlidXRlIGF0dHJpYnV0ZTogKGlkZW50aWZpZXIpIEBmb250LWxvY2stdHlwZS1mYWNlKQor ICAgICAgICAgICAgICAgICAgICAgIChzdWJzY3JpcHQgKGlkZW50aWZpZXIpIEBmb250LWxvY2st dHlwZS1mYWNlKQorICAgICAgICAgICAgICAgICAgICAgIChzdWJzY3JpcHQgKGF0dHJpYnV0ZSBh dHRyaWJ1dGU6IChpZGVudGlmaWVyKSBAZm9udC1sb2NrLXR5cGUtZmFjZSkpXSkpCisKKyAgICAg OzsgUGF0ZXJuIG1hdGNoaW5nOiBjYXNlIFtzdHIoKSwgcGFjazAuVHlwZTAoKV0uICBUYWtlIG9u bHkgdGhlCisgICAgIDs7IGxhc3QgaWRlbnRpZmllci4KKyAgICAgKGNsYXNzX3BhdHRlcm4gKGRv dHRlZF9uYW1lIChpZGVudGlmaWVyKSBAZm9udC1sb2NrLXR5cGUtZmFjZSA6YW5jaG9yKSkKKwor CisgICAgIDs7IEhpZ2hsaWdodCB0aGUgc2Vjb25kIGFyZ3VtZW50IGFzIGEgdHlwZSBpbiBpc2lu c3RhbmNlL2lzc3ViY2xhc3MuCisgICAgICgoY2FsbCBmdW5jdGlvbjogKGlkZW50aWZpZXIpIEBm dW5jLW5hbWUKKyAgICAgICAgICAgIChhcmd1bWVudF9saXN0IDphbmNob3IgKF8pCisgICAgICAg ICAgICAgICAgICAgICAgICAgICBbKGlkZW50aWZpZXIpIEBmb250LWxvY2stdHlwZS1mYWNlCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgKGF0dHJpYnV0ZSBhdHRyaWJ1dGU6IChpZGVudGlm aWVyKSBAZm9udC1sb2NrLXR5cGUtZmFjZSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAo dHVwbGUgKGlkZW50aWZpZXIpIEBmb250LWxvY2stdHlwZS1mYWNlKQorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICh0dXBsZSAoYXR0cmlidXRlIGF0dHJpYnV0ZTogKGlkZW50aWZpZXIpIEBm b250LWxvY2stdHlwZS1mYWNlKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAoYmluYXJ5 X29wZXJhdG9yKSBAcHl0aG9uLS10cmVlc2l0LWZvbnRpZnktdW5pb24tdHlwZXNdKSkKKyAgICAg ICg6bWF0Y2ggIl5pc1xcKD86aW5zdGFuY2VcXHxzdWJjbGFzc1xcKSQiIEBmdW5jLW5hbWUpKSkK IAogICAgOmZlYXR1cmUgJ2VzY2FwZS1zZXF1ZW5jZQogICAgOmxhbmd1YWdlICdweXRob24KZGlm ZiAtLWdpdCBhL3Rlc3QvbGlzcC9wcm9nbW9kZXMvcHl0aG9uLXRlc3RzLmVsIGIvdGVzdC9saXNw L3Byb2dtb2Rlcy9weXRob24tdGVzdHMuZWwKaW5kZXggYTQ0YTExODk2Zi4uZmQ0ZDU5MzYxMyAx MDA2NDQKLS0tIGEvdGVzdC9saXNwL3Byb2dtb2Rlcy9weXRob24tdGVzdHMuZWwKKysrIGIvdGVz dC9saXNwL3Byb2dtb2Rlcy9weXRob24tdGVzdHMuZWwKQEAgLTcyOTksNiArNzI5OSwyOTEgQEAg cHl0aG9uLXRlc3RzLS1mbHltYWtlLWNvbW1hbmQtb3V0cHV0LXBhdHRlcm4KICAgICAgICAgICAg ICAgICAgICAgICAgICAiVW51c2VkIGltcG9ydCBhLmIuYyAodW51c2VkLWltcG9ydCkiCiAgICAg ICAgICAgICAgICAgICAgICAgICJXMDYxMTogVW51c2VkIGltcG9ydCBhLmIuYyAodW51c2VkLWlt cG9ydCkiKSkpKSkpCiAKKzs7OyBweXRob24tdHMtbW9kZSBmb250LWxvY2sgdGVzdHMKKworKGRl Zm1hY3JvIHB5dGhvbi10cy10ZXN0cy13aXRoLXRlbXAtYnVmZmVyIChjb250ZW50cyAmcmVzdCBi b2R5KQorICAiQ3JlYXRlIGEgYHB5dGhvbi10cy1tb2RlJyBlbmFibGVkIHRlbXAgYnVmZmVyIHdp dGggQ09OVEVOVFMuCitCT0RZIGlzIGNvZGUgdG8gYmUgZXhlY3V0ZWQgd2l0aGluIHRoZSB0ZW1w IGJ1ZmZlci4gIFBvaW50IGlzCithbHdheXMgbG9jYXRlZCBhdCB0aGUgYmVnaW5uaW5nIG9mIGJ1 ZmZlci4iCisgIChkZWNsYXJlIChpbmRlbnQgMSkgKGRlYnVnIHQpKQorICBgKHdpdGgtdGVtcC1i dWZmZXIKKyAgICAgKHNraXAtdW5sZXNzICh0cmVlc2l0LXJlYWR5LXAgJ3B5dGhvbikpCisgICAg IChyZXF1aXJlICdweXRob24pCisgICAgIChsZXQgKChweXRob24taW5kZW50LWd1ZXNzLWluZGVu dC1vZmZzZXQgbmlsKSkKKyAgICAgICAocHl0aG9uLXRzLW1vZGUpCisgICAgICAgKHNldG9wdCB0 cmVlc2l0LWZvbnQtbG9jay1sZXZlbCAzKQorICAgICAgIChpbnNlcnQgLGNvbnRlbnRzKQorICAg ICAgIChmb250LWxvY2stZW5zdXJlKQorICAgICAgIChnb3RvLWNoYXIgKHBvaW50LW1pbikpCisg ICAgICAgLEBib2R5KSkpCisKKyhlcnQtZGVmdGVzdCBweXRob24tdHMtbW9kZS1jb21wb3VuZC1r ZXl3b3Jkcy1mYWNlICgpCisgIChkb2xpc3QgKHRlc3QgJygiaXMgbm90IiAibm90IGluIikpCisg ICAgKHB5dGhvbi10cy10ZXN0cy13aXRoLXRlbXAtYnVmZmVyCisgICAgIChjb25jYXQgInQgIiB0 ZXN0ICIgdCIpCisgICAgIChmb3J3YXJkLXRvLXdvcmQpCisgICAgIChzaG91bGQgKGVxIChmYWNl LWF0LXBvaW50KSBmb250LWxvY2sta2V5d29yZC1mYWNlKSkKKyAgICAgKGZvcndhcmQtdG8td29y ZCkKKyAgICAgKHNob3VsZCAoZXEgKGZhY2UtYXQtcG9pbnQpIGZvbnQtbG9jay1rZXl3b3JkLWZh Y2UpKSkpKQorCisoZXJ0LWRlZnRlc3QgcHl0aG9uLXRzLW1vZGUtbmFtZWQtYXNzaWduZW1lbnQt ZmFjZS0xICgpCisgIChweXRob24tdHMtdGVzdHMtd2l0aC10ZW1wLWJ1ZmZlcgorICAgInZhciA6 PSAzIgorICAgKHNob3VsZCAoZXEgKGZhY2UtYXQtcG9pbnQpIGZvbnQtbG9jay12YXJpYWJsZS1u YW1lLWZhY2UpKSkpCisKKyhlcnQtZGVmdGVzdCBweXRob24tdHMtbW9kZS1hc3NpZ25lbWVudC1m YWNlLTIgKCkKKyAgKHB5dGhvbi10cy10ZXN0cy13aXRoLXRlbXAtYnVmZmVyCisgICAidmFyLCAq cmVzdCA9IGNhbGwoKSIKKyAgIChkb2xpc3QgKHRlc3QgJygidmFyIiAicmVzdCIpKQorICAgICAo c2VhcmNoLWZvcndhcmQgdGVzdCkKKyAgICAgKGdvdG8tY2hhciAobWF0Y2gtYmVnaW5uaW5nIDAp KQorICAgICAoc2hvdWxkIChlcSAoZmFjZS1hdC1wb2ludCkgZm9udC1sb2NrLXZhcmlhYmxlLW5h bWUtZmFjZSkpKSkKKworICAocHl0aG9uLXRzLXRlc3RzLXdpdGgtdGVtcC1idWZmZXIKKyAgICJk ZWYgZnVuYygqYXJncyk6IgorICAgKGRvbGlzdCAodGVzdCAnKCJhcmdzIikpCisgICAgIChzZWFy Y2gtZm9yd2FyZCB0ZXN0KQorICAgICAoZ290by1jaGFyIChtYXRjaC1iZWdpbm5pbmcgMCkpCisg ICAgIChzaG91bGQgKG5vdCAoZXEgKGZhY2UtYXQtcG9pbnQpIGZvbnQtbG9jay12YXJpYWJsZS1u YW1lLWZhY2UpKSkpKSkKKworKGVydC1kZWZ0ZXN0IHB5dGhvbi10cy1tb2RlLW5lc3RlZC10eXBl cy1mYWNlLTEgKCkKKyAgKHB5dGhvbi10cy10ZXN0cy13aXRoLXRlbXAtYnVmZmVyCisgICAiZGVm IGZ1bmModjpkaWN0WyBsaXN0WyB0dXBsZVtzdHJdIF0sIGludCB8IE5vbmVdIHwgTm9uZSk6Igor ICAgKGRvbGlzdCAodGVzdCAnKCJkaWN0IiAibGlzdCIgInR1cGxlIiAic3RyIiAiaW50IiAiTm9u ZSIgIk5vbmUiKSkKKyAgICAgKHNlYXJjaC1mb3J3YXJkIHRlc3QpCisgICAgIChnb3RvLWNoYXIg KG1hdGNoLWJlZ2lubmluZyAwKSkKKyAgICAgKHNob3VsZCAoZXEgKGZhY2UtYXQtcG9pbnQpIGZv bnQtbG9jay10eXBlLWZhY2UpKSkpKQorCisoZXJ0LWRlZnRlc3QgcHl0aG9uLXRzLW1vZGUtdW5p b24tdHlwZXMtZmFjZS0xICgpCisgIChweXRob24tdHMtdGVzdHMtd2l0aC10ZW1wLWJ1ZmZlcgor ICAgImRlZiBmKHZhbDogdHVwbGVbdHVwbGUsIGxpc3RbTHZsMSB8IEx2bDJbTHZsM1tMdmw0W0x2 bDUgfCBOb25lXV0sIEx2bDJdXV0pOiIKKyAgIChkb2xpc3QgKHRlc3QgJygidHVwbGUiICJ0dXBs ZSIgImxpc3QiICJMdmwxIiAiTHZsMiIgIkx2bDMiICJMdmw0IiAiTHZsNSIgIk5vbmUiICJMdmwy IikpCisgICAgIChzZWFyY2gtZm9yd2FyZCB0ZXN0KQorICAgICAoZ290by1jaGFyIChtYXRjaC1i ZWdpbm5pbmcgMCkpCisgICAgIChzaG91bGQgKGVxIChmYWNlLWF0LXBvaW50KSBmb250LWxvY2st dHlwZS1mYWNlKSkpKSkKKworKGVydC1kZWZ0ZXN0IHB5dGhvbi10cy1tb2RlLXVuaW9uLXR5cGVz LWZhY2UtMiAoKQorICAocHl0aG9uLXRzLXRlc3RzLXdpdGgtdGVtcC1idWZmZXIKKyAgICJkZWYg Zih2YWw6IFR5cGUwIHwgVHlwZTFbVHlwZTIsIHBhY2swLlR5cGUzXSB8IHBhY2sxLnBhY2syLlR5 cGU0IHwgTm9uZSk6IgorICAgKGRvbGlzdCAodGVzdCAnKCJUeXBlMCIgIlR5cGUxIiAiVHlwZTIi ICJUeXBlMyIgIlR5cGU0IiAiTm9uZSIpKQorICAgICAoc2VhcmNoLWZvcndhcmQgdGVzdCkKKyAg ICAgKGdvdG8tY2hhciAobWF0Y2gtYmVnaW5uaW5nIDApKQorICAgICAoc2hvdWxkIChlcSAoZmFj ZS1hdC1wb2ludCkgZm9udC1sb2NrLXR5cGUtZmFjZSkpKQorCisgICAoZ290by1jaGFyIChwb2lu dC1taW4pKQorICAgKGRvbGlzdCAodGVzdCAnKCJwYWNrMCIgInBhY2sxIiAicGFjazIiKSkKKyAg ICAgKHNlYXJjaC1mb3J3YXJkIHRlc3QpCisgICAgIChnb3RvLWNoYXIgKG1hdGNoLWJlZ2lubmlu ZyAwKSkKKyAgICAgKHNob3VsZCAobm90IChlcSAoZmFjZS1hdC1wb2ludCkgZm9udC1sb2NrLXR5 cGUtZmFjZSkpKSkpKQorCisoZXJ0LWRlZnRlc3QgcHl0aG9uLXRzLW1vZGUtdHlwZXMtZmFjZS0x ICgpCisgIChweXRob24tdHMtdGVzdHMtd2l0aC10ZW1wLWJ1ZmZlcgorICAgImRlZiBmKHZhbDog Q2FsbGFibGVbW1R5cGUwXSwgKFR5cGUxLCBUeXBlMildKToiCisgICAoZG9saXN0ICh0ZXN0ICco IkNhbGxhYmxlIiAiVHlwZTAiICJUeXBlMSIgIlR5cGUyIikpCisgICAgIChzZWFyY2gtZm9yd2Fy ZCB0ZXN0KQorICAgICAoZ290by1jaGFyIChtYXRjaC1iZWdpbm5pbmcgMCkpCisgICAgIChzaG91 bGQgKGVxIChmYWNlLWF0LXBvaW50KSBmb250LWxvY2stdHlwZS1mYWNlKSkpKSkKKworKGVydC1k ZWZ0ZXN0IHB5dGhvbi10cy1tb2RlLXR5cGVzLWZhY2UtMiAoKQorICAocHl0aG9uLXRzLXRlc3Rz LXdpdGgtdGVtcC1idWZmZXIKKyAgICJkZWYgYW5ub3QzKHZhbDpwYWNrMC5UeXBlMCktPnBhY2sx LnBhY2syLnBhY2szLlR5cGUxOiIKKyAgIChkb2xpc3QgKHRlc3QgJygiVHlwZTAiICJUeXBlMSIp KQorICAgICAoc2VhcmNoLWZvcndhcmQgdGVzdCkKKyAgICAgKGdvdG8tY2hhciAobWF0Y2gtYmVn aW5uaW5nIDApKQorICAgICAoc2hvdWxkIChlcSAoZmFjZS1hdC1wb2ludCkgZm9udC1sb2NrLXR5 cGUtZmFjZSkpKQorICAgKGdvdG8tY2hhciAocG9pbnQtbWluKSkKKyAgIChkb2xpc3QgKHRlc3Qg JygicGFjazAiICJwYWNrMSIgInBhY2syIiAicGFjazMiKSkKKyAgICAgKHNlYXJjaC1mb3J3YXJk IHRlc3QpCisgICAgIChnb3RvLWNoYXIgKG1hdGNoLWJlZ2lubmluZyAwKSkKKyAgICAgKHNob3Vs ZCAobm90IChlcSAoZmFjZS1hdC1wb2ludCkgZm9udC1sb2NrLXR5cGUtZmFjZSkpKSkpKQorCiso ZXJ0LWRlZnRlc3QgcHl0aG9uLXRzLW1vZGUtdHlwZXMtZmFjZS0zICgpCisgIChweXRob24tdHMt dGVzdHMtd2l0aC10ZW1wLWJ1ZmZlcgorICAgImRlZiBhbm5vdDModmFsOmNvbGxlY3Rpb25zLmFi Yy5JdGVyYXRvcltUeXBlMF0pOiIKKyAgIChkb2xpc3QgKHRlc3QgJygiSXRlcmF0b3IiICJUeXBl MCIpKQorICAgICAoc2VhcmNoLWZvcndhcmQgdGVzdCkKKyAgICAgKGdvdG8tY2hhciAobWF0Y2gt YmVnaW5uaW5nIDApKQorICAgICAoc2hvdWxkIChlcSAoZmFjZS1hdC1wb2ludCkgZm9udC1sb2Nr LXR5cGUtZmFjZSkpKQorICAgKGdvdG8tY2hhciAocG9pbnQtbWluKSkKKyAgIChkb2xpc3QgKHRl c3QgJygiY29sbGVjdGlvbnMiICJhYmMiKSkKKyAgICAgKHNlYXJjaC1mb3J3YXJkIHRlc3QpCisg ICAgIChnb3RvLWNoYXIgKG1hdGNoLWJlZ2lubmluZyAwKSkKKyAgICAgKHNob3VsZCAobm90IChl cSAoZmFjZS1hdC1wb2ludCkgZm9udC1sb2NrLXR5cGUtZmFjZSkpKSkpKQorCisoZXJ0LWRlZnRl c3QgcHl0aG9uLXRzLW1vZGUtaXNpbnN0YW5jZS10eXBlLWZhY2UtMSAoKQorICAocHl0aG9uLXRz LXRlc3RzLXdpdGgtdGVtcC1idWZmZXIKKyAgICJpc2luc3RhbmNlKHZhcjEsIHBrZy5UeXBlMCkK KyAgICBpc2luc3RhbmNlKHZhcjIsIChzdHIsIGRpY3QsIFR5cGUxLCB0eXBlKE5vbmUpKSkKKyAg ICBpc2luc3RhbmNlKHZhcjMsIG15X3R5cGUoKSkiCisKKyAgIChkb2xpc3QgKHRlc3QgJygidmFy MSIgInBrZyIgInZhcjIiICJ0eXBlIiAiTm9uZSIgInZhcjMiICJteV90eXBlIikpCisgICAgIChs ZXQgKChjYXNlLWZvbGQtc2VhcmNoIG5pbCkpCisgICAgICAgKHNlYXJjaC1mb3J3YXJkIHRlc3Qp KQorICAgICAoZ290by1jaGFyIChtYXRjaC1iZWdpbm5pbmcgMCkpCisgICAgIChzaG91bGQgKG5v dCAoZXEgKGZhY2UtYXQtcG9pbnQpIGZvbnQtbG9jay10eXBlLWZhY2UpKSkpCisKKyAgIChnb3Rv LWNoYXIgKHBvaW50LW1pbikpCisgICAoZG9saXN0ICh0ZXN0ICcoIlR5cGUwIiAic3RyIiAiZGlj dCIgIlR5cGUxIikpCisgICAgIChzZWFyY2gtZm9yd2FyZCB0ZXN0KQorICAgICAoZ290by1jaGFy IChtYXRjaC1iZWdpbm5pbmcgMCkpCisgICAgIChzaG91bGQgKGVxIChmYWNlLWF0LXBvaW50KSBm b250LWxvY2stdHlwZS1mYWNlKSkpKSkKKworKGVydC1kZWZ0ZXN0IHB5dGhvbi10cy1tb2RlLWlz aW5zdGFuY2UtdHlwZS1mYWNlLTIgKCkKKyAgKHB5dGhvbi10cy10ZXN0cy13aXRoLXRlbXAtYnVm ZmVyCisgICAiaXNzdWJjbGFzcyhteXR5cGUsIGludHxsaXN0fGNvbGxlY3Rpb25zLmFiYy5JdGVy YWJsZSkiCisgICAoZG9saXN0ICh0ZXN0ICcoImludCIgImxpc3QiICJJdGVyYWJsZSIpKQorICAg ICAoc2VhcmNoLWZvcndhcmQgdGVzdCkKKyAgICAgKGdvdG8tY2hhciAobWF0Y2gtYmVnaW5uaW5n IDApKQorICAgICAoc2hvdWxkIChlcSAoZmFjZS1hdC1wb2ludCkgZm9udC1sb2NrLXR5cGUtZmFj ZSkpKSkpCisKKyhlcnQtZGVmdGVzdCBweXRob24tdHMtbW9kZS1zdXBlcmNsYXNzLXR5cGUtZmFj ZSAoKQorICAocHl0aG9uLXRzLXRlc3RzLXdpdGgtdGVtcC1idWZmZXIKKyAgICJjbGFzcyBUZW1w KEJhc2UxLCBwYWNrMC5CYXNlMiwgIFNlcXVlbmNlW1QxLCBUMl0pOiIKKworICAgKGRvbGlzdCAo dGVzdCAnKCJCYXNlMSIgIkJhc2UyIiAiU2VxdWVuY2UiICJUMSIgIlQyIikpCisgICAgIChzZWFy Y2gtZm9yd2FyZCB0ZXN0KQorICAgICAoZ290by1jaGFyIChtYXRjaC1iZWdpbm5pbmcgMCkpCisg ICAgIChzaG91bGQgKGVxIChmYWNlLWF0LXBvaW50KSBmb250LWxvY2stdHlwZS1mYWNlKSkpCisK KyAgIChnb3RvLWNoYXIgKHBvaW50LW1pbikpCisgICAoZG9saXN0ICh0ZXN0ICcoInBhY2swIikp CisgICAgIChzZWFyY2gtZm9yd2FyZCB0ZXN0KQorICAgICAoZ290by1jaGFyIChtYXRjaC1iZWdp bm5pbmcgMCkpCisgICAgIChzaG91bGQgKG5vdCAoZXEgKGZhY2UtYXQtcG9pbnQpIGZvbnQtbG9j ay10eXBlLWZhY2UpKSkpKSkKKworKGVydC1kZWZ0ZXN0IHB5dGhvbi10cy1tb2RlLWNsYXNzLXBh dHRlcm5zLWZhY2UgKCkKKyAgKHB5dGhvbi10cy10ZXN0cy13aXRoLXRlbXAtYnVmZmVyCisgICAi bWF0Y2ggdHQ6CisgICAgICAgIGNhc2Ugc3RyKCk6CisgICAgICAgICAgICBwYXNzCisgICAgICAg IGNhc2UgW1R5cGUwKCkgfCBieXRlcyhiKSB8IHBhY2swLnBhY2sxLlR5cGUxKCldOgorICAgICAg ICAgICAgcGFzcworICAgICAgICBjYXNlIHsnaSc6IGludChpKSwgJ2YnOiBmbG9hdCgpIGFzIGZ9 OgorICAgICAgICAgICAgcGFzcyIKKworICAgKGRvbGlzdCAodGVzdCAnKCJzdHIiICJUeXBlMCIg ImJ5dGVzIiAiVHlwZTEiICJpbnQiICJmbG9hdCIpKQorICAgICAoc2VhcmNoLWZvcndhcmQgdGVz dCkKKyAgICAgKGdvdG8tY2hhciAobWF0Y2gtYmVnaW5uaW5nIDApKQorICAgICAoc2hvdWxkIChl cSAoZmFjZS1hdC1wb2ludCkgZm9udC1sb2NrLXR5cGUtZmFjZSkpKQorCisgICAoZ290by1jaGFy IChwb2ludC1taW4pKQorICAgKGRvbGlzdCAodGVzdCAnKCJwYWNrMCIgInBhY2sxIikpCisgICAg IChzZWFyY2gtZm9yd2FyZCB0ZXN0KQorICAgICAoZ290by1jaGFyIChtYXRjaC1iZWdpbm5pbmcg MCkpCisgICAgIChzaG91bGQgKG5vdCAoZXEgKGZhY2UtYXQtcG9pbnQpIGZvbnQtbG9jay10eXBl LWZhY2UpKSkpKSkKKworKGVydC1kZWZ0ZXN0IHB5dGhvbi10cy1tb2RlLWRvdHRlZC1kZWNvcmF0 b3ItZmFjZS0xICgpCisgIChweXRob24tdHMtdGVzdHMtd2l0aC10ZW1wLWJ1ZmZlcgorICAgIkBw eXRlc3QubWFyay5za2lwCisgICAgQHB5dGVzdC5tYXJrLnNraXAocmVhc29uPSdtc2cnKQorICAg IGRlZiB0ZXN0KCk6IgorCisgICAoZG9saXN0ICh0ZXN0ICcoInB5dGVzdCIgIm1hcmsiICJza2lw IiAicHl0ZXN0IiAibWFyayIgInNraXAiKSkKKyAgICAgKHNlYXJjaC1mb3J3YXJkIHRlc3QpCisg ICAgIChnb3RvLWNoYXIgKG1hdGNoLWJlZ2lubmluZyAwKSkKKyAgICAgKHNob3VsZCAoZXEgKGZh Y2UtYXQtcG9pbnQpIGZvbnQtbG9jay10eXBlLWZhY2UpKSkpKQorCisoZXJ0LWRlZnRlc3QgcHl0 aG9uLXRzLW1vZGUtZG90dGVkLWRlY29yYXRvci1mYWNlLTIgKCkKKyAgKHB5dGhvbi10cy10ZXN0 cy13aXRoLXRlbXAtYnVmZmVyCisgICAiQHB5dGVzdC5tYXJrLnNraXAocmVhc29uPSdtc2cnKQor ICAgIGRlZiB0ZXN0KCk6IgorCisgICAoc2V0b3B0IHRyZWVzaXQtZm9udC1sb2NrLWxldmVsIDQp CisgICAoZG9saXN0ICh0ZXN0ICcoInB5dGVzdCIgIm1hcmsiICJza2lwIikpCisgICAgIChzZWFy Y2gtZm9yd2FyZCB0ZXN0KQorICAgICAoZ290by1jaGFyIChtYXRjaC1iZWdpbm5pbmcgMCkpCisg ICAgIChzaG91bGQgKGVxIChmYWNlLWF0LXBvaW50KSBmb250LWxvY2stdHlwZS1mYWNlKSkpKSkK KworKGVydC1kZWZ0ZXN0IHB5dGhvbi10cy1tb2RlLWJ1aWx0aW4tY2FsbC1mYWNlICgpCisgIChw eXRob24tdHMtdGVzdHMtd2l0aC10ZW1wLWJ1ZmZlcgorICAgImFsbCgpIgorICAgOzsgZW5hYmxl ICdmdW5jdGlvbicgZmVhdHVyZSBmcm9tIDR0aCBsZXZlbAorICAgKHNldG9wdCB0cmVlc2l0LWZv bnQtbG9jay1sZXZlbCA0KQorICAgKHNob3VsZCAoZXEgKGZhY2UtYXQtcG9pbnQpIGZvbnQtbG9j ay1idWlsdGluLWZhY2UpKSkpCisKKyhlcnQtZGVmdGVzdCBweXRob24tdHMtbW9kZS1pbnRlcnBv bGF0aW9uLW5lc3RlZC1zdHJpbmcgKCkKKyAgKHB5dGhvbi10cy10ZXN0cy13aXRoLXRlbXAtYnVm ZmVyCisgICAidCA9IGZcImJlZyB7VHJ1ZSArICdzdHJpbmcnfVwiIgorCisgICAoc2VhcmNoLWZv cndhcmQgIlRydWUiKQorICAgKGdvdG8tY2hhciAobWF0Y2gtYmVnaW5uaW5nIDApKQorICAgKHNo b3VsZCAoZXEgKGZhY2UtYXQtcG9pbnQpIGZvbnQtbG9jay1jb25zdGFudC1mYWNlKSkKKworICAg KGdvdG8tY2hhciAocG9pbnQtbWluKSkKKyAgIChkb2xpc3QgKHRlc3QgJygiZiIgInsiICIrIiAi fSIpKQorICAgICAoc2VhcmNoLWZvcndhcmQgdGVzdCkKKyAgICAgKGdvdG8tY2hhciAobWF0Y2gt YmVnaW5uaW5nIDApKQorICAgICAoc2hvdWxkIChub3QgKGVxIChmYWNlLWF0LXBvaW50KSBmb250 LWxvY2stc3RyaW5nLWZhY2UpKSkpCisKKworICAgKGdvdG8tY2hhciAocG9pbnQtbWluKSkKKyAg IChkb2xpc3QgKHRlc3QgJygiYmVnIiAiJ3N0cmluZyciICJcIiIpKQorICAgICAoc2VhcmNoLWZv cndhcmQgdGVzdCkKKyAgICAgKGdvdG8tY2hhciAobWF0Y2gtYmVnaW5uaW5nIDApKQorICAgICAo c2hvdWxkIChlcSAoZmFjZS1hdC1wb2ludCkgZm9udC1sb2NrLXN0cmluZy1mYWNlKSkpKSkKKwor KGVydC1kZWZ0ZXN0IHB5dGhvbi10cy1tb2RlLWxldmVsLWZvbnRpZmljYXRpb24td28taW50ZXJw b2xhdGlvbiAoKQorICAocHl0aG9uLXRzLXRlc3RzLXdpdGgtdGVtcC1idWZmZXIKKyAgICJ0ID0g ZlwiYmVnIHtUcnVlICsgdmFyfVwiIgorCisgICAoc2V0b3B0IHRyZWVzaXQtZm9udC1sb2NrLWxl dmVsIDIpCisgICAoc2VhcmNoLWZvcndhcmQgImYiKQorICAgKGdvdG8tY2hhciAobWF0Y2gtYmVn aW5uaW5nIDApKQorICAgKHNob3VsZCAobm90IChlcSAoZmFjZS1hdC1wb2ludCkgZm9udC1sb2Nr LXN0cmluZy1mYWNlKSkpCisKKyAgIChkb2xpc3QgKHRlc3QgJygiXCIiICJiZWciICJ7IiAiVHJ1 ZSIgInZhciIgIn0iICJcIiIpKQorICAgICAoc2VhcmNoLWZvcndhcmQgdGVzdCkKKyAgICAgKGdv dG8tY2hhciAobWF0Y2gtYmVnaW5uaW5nIDApKQorICAgICAoc2hvdWxkIChlcSAoZmFjZS1hdC1w b2ludCkgZm9udC1sb2NrLXN0cmluZy1mYWNlKSkpKSkKKworKGVydC1kZWZ0ZXN0IHB5dGhvbi10 cy1tb2RlLWRpc2FibGVkLXN0cmluZy1pbnRlcnBvbGF0aW9uICgpCisgIChweXRob24tdHMtdGVz dHMtd2l0aC10ZW1wLWJ1ZmZlcgorICAgInQgPSBmXCJiZWcge1RydWUgKyB2YXJ9XCIiCisKKyAg ICh1bndpbmQtcHJvdGVjdAorICAgICAgIChwcm9nbgorICAgICAgICAgKHNldGYgKG50aCAyIHRy ZWVzaXQtZm9udC1sb2NrLWZlYXR1cmUtbGlzdCkKKyAgICAgICAgICAgICAgIChyZW1xICdzdHJp bmctaW50ZXJwb2xhdGlvbiAobnRoIDIgdHJlZXNpdC1mb250LWxvY2stZmVhdHVyZS1saXN0KSkp CisgICAgICAgICAoc2V0b3B0IHRyZWVzaXQtZm9udC1sb2NrLWxldmVsIDMpCisKKyAgICAgICAg IChzZWFyY2gtZm9yd2FyZCAiZiIpCisgICAgICAgICAoZ290by1jaGFyIChtYXRjaC1iZWdpbm5p bmcgMCkpCisgICAgICAgICAoc2hvdWxkIChub3QgKGVxIChmYWNlLWF0LXBvaW50KSBmb250LWxv Y2stc3RyaW5nLWZhY2UpKSkKKworICAgICAgICAgKGRvbGlzdCAodGVzdCAnKCJcIiIgImJlZyIg InsiICJUcnVlIiAidmFyIiAifSIgIlwiIikpCisgICAgICAgICAgIChzZWFyY2gtZm9yd2FyZCB0 ZXN0KQorICAgICAgICAgICAoZ290by1jaGFyIChtYXRjaC1iZWdpbm5pbmcgMCkpCisgICAgICAg ICAgIChzaG91bGQgKGVxIChmYWNlLWF0LXBvaW50KSBmb250LWxvY2stc3RyaW5nLWZhY2UpKSkp CisKKyAgICAoc2V0ZiAobnRoIDIgdHJlZXNpdC1mb250LWxvY2stZmVhdHVyZS1saXN0KQorICAg ICAgICAgIChhcHBlbmQgKG50aCAyIHRyZWVzaXQtZm9udC1sb2NrLWZlYXR1cmUtbGlzdCkgJyhz dHJpbmctaW50ZXJwb2xhdGlvbikpKSkpKQorCisoZXJ0LWRlZnRlc3QgcHl0aG9uLXRzLW1vZGUt aW50ZXJwb2xhdGlvbi1kb2Mtc3RyaW5nICgpCisgIChweXRob24tdHMtdGVzdHMtd2l0aC10ZW1w LWJ1ZmZlcgorICAgImZcIlwiXCJiZWcgeydzMScgKyBUcnVlICsgJ3MyJ30gZW5kXCJcIlwiIgor CisgICAoc2VhcmNoLWZvcndhcmQgIlRydWUiKQorICAgKGdvdG8tY2hhciAobWF0Y2gtYmVnaW5u aW5nIDApKQorICAgKHNob3VsZCAoZXEgKGZhY2UtYXQtcG9pbnQpIGZvbnQtbG9jay1jb25zdGFu dC1mYWNlKSkKKworICAgKGdvdG8tY2hhciAocG9pbnQtbWluKSkKKyAgIChkb2xpc3QgKHRlc3Qg JygiZiIgInsiICIrIiAifSIpKQorICAgICAoc2VhcmNoLWZvcndhcmQgdGVzdCkKKyAgICAgKGdv dG8tY2hhciAobWF0Y2gtYmVnaW5uaW5nIDApKQorICAgICAoc2hvdWxkIChub3QgKGVxIChmYWNl LWF0LXBvaW50KSBmb250LWxvY2stc3RyaW5nLWZhY2UpKSkpCisKKyAgIChnb3RvLWNoYXIgKHBv aW50LW1pbikpCisgICAoZG9saXN0ICh0ZXN0ICcoIlwiXCJcIiIgImJlZyIgImVuZCIgIlwiXCJc IiIpKQorICAgICAoc2VhcmNoLWZvcndhcmQgdGVzdCkKKyAgICAgKGdvdG8tY2hhciAobWF0Y2gt YmVnaW5uaW5nIDApKQorICAgICAoc2hvdWxkIChlcSAoZmFjZS1hdC1wb2ludCkgZm9udC1sb2Nr LWRvYy1mYWNlKSkpCisKKyAgIChnb3RvLWNoYXIgKHBvaW50LW1pbikpCisgICAoZG9saXN0ICh0 ZXN0ICcoIidzMSciICInczInIikpCisgICAgIChzZWFyY2gtZm9yd2FyZCB0ZXN0KQorICAgICAo Z290by1jaGFyIChtYXRjaC1iZWdpbm5pbmcgMCkpCisgICAgIChzaG91bGQgKGVxIChmYWNlLWF0 LXBvaW50KSBmb250LWxvY2stc3RyaW5nLWZhY2UpKSkpKQorCiAocHJvdmlkZSAncHl0aG9uLXRl c3RzKQogCiA7OzsgcHl0aG9uLXRlc3RzLmVsIGVuZHMgaGVyZQotLSAKMi4zNC4xCgo= ------==--bound.271104.454dhcrkfdwiwlad.iva.yp-c.yandex.net-- From debbugs-submit-bounces@debbugs.gnu.org Sun Dec 17 16:37:01 2023 Received: (at 67061) by debbugs.gnu.org; 17 Dec 2023 21:37:01 +0000 Received: from localhost ([127.0.0.1]:59081 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rEyon-0007rI-2q for submit@debbugs.gnu.org; Sun, 17 Dec 2023 16:37:01 -0500 Received: from wout2-smtp.messagingengine.com ([64.147.123.25]:40965) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rEyol-0007r1-3v for 67061@debbugs.gnu.org; Sun, 17 Dec 2023 16:36:59 -0500 Received: from compute5.internal (compute5.nyi.internal [10.202.2.45]) by mailout.west.internal (Postfix) with ESMTP id EA7203200A2A; Sun, 17 Dec 2023 16:36:50 -0500 (EST) Received: from mailfrontend1 ([10.202.2.162]) by compute5.internal (MEProxy); Sun, 17 Dec 2023 16:36:51 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gutov.dev; h=cc :cc:content-transfer-encoding:content-type:content-type:date :date:from:from:in-reply-to:in-reply-to:message-id:mime-version :references:reply-to:subject:subject:to:to; s=fm3; t=1702849010; x=1702935410; bh=+mok1SBwckPYaha9dzu0tQxrfssL4hVHj3mDWmhE2Sc=; b= jYyvMtmlCHCsfNJJ/QJXMRhyaRpcZqr+j4x55a3kM4WdS1D1bUBi2RRH9TuUN0DZ SRqyM8dJxIJ3gnXNirkexGAHeNRVxfPYYLDr2mG8/v0tVvObwiO5XCTbjosTdUwu uhGjRLUap9Nsicv9HLpOqMjsmAzb9n/AM3BcT/wIJphkMxA5xX5ap1BZW6fgmR6r Aho7NL3l3Sc3XIWaohl5aRPxXKGWhqs46qDImD6iYZwPGquaigzLlEBHWDekotxu hnf3CQxf2B24vL56CgKbY92Yj/B6Vuj/vVr4fxayoHUY+JzFpnYodgswyecCxqrA g51rPhcGkvIq9PLnHGUX8Q== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:cc:content-transfer-encoding :content-type:content-type:date:date:feedback-id:feedback-id :from:from:in-reply-to:in-reply-to:message-id:mime-version :references:reply-to:subject:subject:to:to:x-me-proxy:x-me-proxy :x-me-sender:x-me-sender:x-sasl-enc; s=fm2; t=1702849010; x= 1702935410; bh=+mok1SBwckPYaha9dzu0tQxrfssL4hVHj3mDWmhE2Sc=; b=f NcWhxxj5l/p1jOQQ/tOQI6MhWVzzFUIUz+STA0IQtURXQUF/f+c9ZUsXWfWm2/zu Q4XSU4zUS/GdDOCprhz5UHs71JoSJA/3mE7vvXEwzxG8KS9srYjqDnsORJ2iZox2 xYN5Gbj3Ao3IKVAocakZzl2DxL5ev8DPeX/9s6tU/o+hBwlcgfMS9it+kkQcgCLY u0WLZZXCcsV0Jj7RRexdm0QFoZLHkd8OimW61PAbvv+2PJj4AIojJv/O7cyPp3mx odp+ZAqslpn9TgpNswEEsUnnydk2DP0ApouNH1+seb/SUjteBs8lg2XCvVAcODjk EN3xoTM4JtF5M3h5oxqRw== X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedvkedrvddtiedgudehtdcutefuodetggdotefrod ftvfcurfhrohhfihhlvgemucfhrghsthforghilhdpqfgfvfdpuffrtefokffrpgfnqfgh necuuegrihhlohhuthemuceftddtnecusecvtfgvtghiphhivghnthhsucdlqddutddtmd enucfjughrpefkffggfgfuvfevfhfhjggtgfesthekredttdefjeenucfhrhhomhepffhm ihhtrhihucfiuhhtohhvuceoughmihhtrhihsehguhhtohhvrdguvghvqeenucggtffrrg htthgvrhhnpefhffehleejffegffeugefhkeektdffgfehjedvgeejtedtudehueffgffg feejheenucevlhhushhtvghrufhiiigvpedtnecurfgrrhgrmhepmhgrihhlfhhrohhmpe gumhhithhrhiesghhuthhovhdruggvvh X-ME-Proxy: Feedback-ID: i0e71465a:Fastmail Received: by mail.messagingengine.com (Postfix) with ESMTPA; Sun, 17 Dec 2023 16:36:49 -0500 (EST) Message-ID: <53f96024-5515-2579-6d12-59d6e2cbe4ed@gutov.dev> Date: Sun, 17 Dec 2023 23:36:46 +0200 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.13.0 Subject: Re: bug#67061: [PATCH] Improve syntax highlighting for python-ts-mode Content-Language: en-US To: Yuan Fu 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> From: Dmitry Gutov In-Reply-To: Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit X-Spam-Score: -1.4 (-) X-Debbugs-Envelope-To: 67061 Cc: Eli Zaretskii , Denis Zubarev , "67061@debbugs.gnu.org" <67061@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: -2.4 (--) On 17/12/2023 03:07, Yuan Fu wrote: > >> On Dec 14, 2023, at 3:51 AM, Dmitry Gutov wrote: >> >> On 14/12/2023 07:54, Yuan Fu wrote: >>>> I think the 'definition' feature is good for it (going by the name, since it's an implicit variable declaration), but it could be split off into a separate feature too. >>> As long as it’s not added to the definition feature, because, again, definition is at level 1 and I don’t want to keep level 1 minimal. >>> Maybe we can use local-definition, or something similar, to signify that this feature highlights scoped definitions. >> But you think function parameters should be in 'definition'? They are also "scoped", I would say. > I don’t think function parameters should be in ‘definition’. In fact, in my head, only the variable/function/class name of top-level constructs should be in ‘definition’. Now I can see that the name ‘definition’ is too vague for my original intent, and most ts modes probably don’t share the same interpretation as I do... > > Maybe we can allow definition to include more things and move it to level 3, and add a more restricted ’top-level-definition’ to level 1 to take it’s current role. WDYT? What about a split like function-definition/variable-definition? Not all functions are top-level. But there are also classes... Or the features could just be called 'definition' and 'variable-definition', and that the former only contains functions and classes might simply be implied by the existence of the latter. From debbugs-submit-bounces@debbugs.gnu.org Sun Dec 17 18:39:03 2023 Received: (at 67061) by debbugs.gnu.org; 17 Dec 2023 23:39:03 +0000 Received: from localhost ([127.0.0.1]:59174 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rF0is-0006iy-Hx for submit@debbugs.gnu.org; Sun, 17 Dec 2023 18:39:02 -0500 Received: from wout4-smtp.messagingengine.com ([64.147.123.20]:42627) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rF0iq-0006iR-42 for 67061@debbugs.gnu.org; Sun, 17 Dec 2023 18:39:00 -0500 Received: from compute3.internal (compute3.nyi.internal [10.202.2.43]) by mailout.west.internal (Postfix) with ESMTP id 57CCD32000D9; Sun, 17 Dec 2023 18:38:51 -0500 (EST) Received: from mailfrontend1 ([10.202.2.162]) by compute3.internal (MEProxy); Sun, 17 Dec 2023 18:38:51 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gutov.dev; h=cc :cc:content-transfer-encoding:content-type:content-type:date :date:from:from:in-reply-to:in-reply-to:message-id:mime-version :references:reply-to:subject:subject:to:to; s=fm3; t=1702856330; x=1702942730; bh=xvk7VfpK8m6H4/yzK6Tb1g0rJdkJ+ToLyahqzkPJKvo=; b= GV06d5RWrD35WvCjxyuCFxpHzEPY95ERblFpGmnpH+oJBa9tgNx+Dec1HFw90VZa 5eAvntv6XVuTwHs/oKQ6D9yruaH0zq+sr51pbY5prVB4kR7WBtkzX6YBMSx8I08I c/a6AUGtz6xzEcpjUTO9DkKd4dWYospNT2e0AFRV15frQgzMFXRL+uEzeuHwFkM0 7Pf7VdtuJBWsQhHY6HsSygLTQmBqgF+koCnos5O+96gVQbTpLLGmjd4RDkhRMPRu xFqKOo9kozDGUWvDYGp+2QwAY5LNdlEeLr6rdiC2EiZOIjrPdaoLTbbUQ97u+r9Z UPTJPryPr6b/iNuoBcTalQ== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:cc:content-transfer-encoding :content-type:content-type:date:date:feedback-id:feedback-id :from:from:in-reply-to:in-reply-to:message-id:mime-version :references:reply-to:subject:subject:to:to:x-me-proxy:x-me-proxy :x-me-sender:x-me-sender:x-sasl-enc; s=fm2; t=1702856330; x= 1702942730; bh=xvk7VfpK8m6H4/yzK6Tb1g0rJdkJ+ToLyahqzkPJKvo=; b=H sDCzq8ROJZD7KYUzTR36UPGinSxWkH0lWy8diUUE58lZHixwbW+PQKjDy0byUkgH iUecHvZPn6ay1cdz0/oMJW3Vnmivi0N/XpL8423IBYEtLAcAoPrSESZosDSCV+uU GA+0YQzSeCFhEdltxt/CHGNqFDPQNHPnfvhok43YtxTx/UPm6eadF6zMEyAMSTs4 FnnT+bSXV+tuaJ1SEDQhnsiDMcCqbcOJ4qE2Rf0Bt7TKYqifKgV/vZ1qEON7nRhC WAlvhsH4FcKvtRGuZwdp7ZyJEXFVYST/9f34kqCtSTIQNzRJ87Jo/4NfZIHn2qK1 +X/SaWZEtwAlG02ZMvixw== X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedvkedrvddtjedguddvucetufdoteggodetrfdotf fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfqfgfvpdfurfetoffkrfgpnffqhgen uceurghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmne cujfgurhepkfffgggfuffvvehfhfgjtgfgsehtjeertddtfeejnecuhfhrohhmpeffmhhi thhrhicuifhuthhovhcuoegumhhithhrhiesghhuthhovhdruggvvheqnecuggftrfgrth htvghrnhepiefgteevheevveffheeltdeukeeiieekueefgedugfefgefhudelgfefveel vdevnecuvehluhhsthgvrhfuihiivgeptdenucfrrghrrghmpehmrghilhhfrhhomhepug hmihhtrhihsehguhhtohhvrdguvghv X-ME-Proxy: Feedback-ID: i0e71465a:Fastmail Received: by mail.messagingengine.com (Postfix) with ESMTPA; Sun, 17 Dec 2023 18:38:48 -0500 (EST) Message-ID: Date: Mon, 18 Dec 2023 01:38:46 +0200 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.13.0 Subject: Re: bug#67061: [PATCH] Improve syntax highlighting for python-ts-mode Content-Language: en-US To: Denis Zubarev , Yuan Fu , Eli Zaretskii 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> <41601702778144@mail.yandex.ru> From: Dmitry Gutov In-Reply-To: <41601702778144@mail.yandex.ru> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-Spam-Score: -1.4 (-) X-Debbugs-Envelope-To: 67061 Cc: "67061@debbugs.gnu.org" <67061@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: -2.4 (--) On 17/12/2023 03:56, Denis Zubarev wrote: > > Do we want to have a common face which would inherit from > > font-lock-variable-name-face and would be used solely for > > function/methods parameters and nothing else? I don't object, but I > > don't quite see the point either. > The point is to make it easy for users to customize faces of features > independently from each other. > It is not only about variables/parameters. Granularity of faces can be increased, but one should also consider which nodes go together better with which others. E.g. even if variable-assignment is a separate face, we would need to make it inherit from one of the more basic faces. > For example, if I want to change a face for decorators, I have to change > font-lock-type-face, which will change also all type faces. > I like approach from the helix editor. They introduce many captures with > different levels of specificity, for example @variable for (identifier), > @variable.parameter for function parameters, @variable.builtin for > self|cls etc. I guess by default the default face defined for a @variable > is used. But one can customize variable.parameter to their liking > without touching any > other variables. > > Then I suppose we should clarify whether Denis wants a face that only > > matches function parameters, or implicit variable declarations as well. > > Or maybe instead a face that is only used for assignments (only first > > assignments?) -- which would separate them from the two semantic units > > above. > I think ideally, there should be a face for a feature (or even multiple > faces). > For example, faces for variables in helix notation: > - @variable > - @variable.definition > - @variable.definition.parameter > - @variable.assignment > - @variable.use I think this is fairly similar to our faces hierarchy, where children inherit attributes from the parent. Just using a shorter notation. Going back to what is a good thing for highlighting assignments, I would separate "first assignments" from the rest, and either inherit their face from "variable definition", or simply used the same face. Only in languages like Python or Ruby, or course, where any first assignment is an implicit variable declaration. From debbugs-submit-bounces@debbugs.gnu.org Sun Dec 17 19:25:50 2023 Received: (at 67061) by debbugs.gnu.org; 18 Dec 2023 00:25:50 +0000 Received: from localhost ([127.0.0.1]:59194 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rF1SA-0007Cx-9M for submit@debbugs.gnu.org; Sun, 17 Dec 2023 19:25:50 -0500 Received: from out3-smtp.messagingengine.com ([66.111.4.27]:55185) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rF1S7-0007Cd-87 for 67061@debbugs.gnu.org; Sun, 17 Dec 2023 19:25:48 -0500 Received: from compute5.internal (compute5.nyi.internal [10.202.2.45]) by mailout.nyi.internal (Postfix) with ESMTP id 4B7535C0105; Sun, 17 Dec 2023 19:25:40 -0500 (EST) Received: from mailfrontend1 ([10.202.2.162]) by compute5.internal (MEProxy); Sun, 17 Dec 2023 19:25:40 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gutov.dev; h=cc :cc:content-transfer-encoding:content-type:content-type:date :date:from:from:in-reply-to:in-reply-to:message-id:mime-version :references:reply-to:subject:subject:to:to; s=fm3; t=1702859140; x=1702945540; bh=vfeXK4OnClrrA6FG3NONByDsooV16Y87gRgZ2EkzqsM=; b= 1VaW1IIhKxS3bbI4+OLa1zMSOM7jiWpRJ/JkFr64zRemB3AA+pVeRMYW9a/8t6cl SHAaPc1MVwBJacK+KndQC9n2RYJJ7SZVnbVOw1Ib7qFPJZ9wRDMb023Dw7iS6UNL Nh3qaqiwNl0mx6POCJpeJM0TOLDwa0n3nJU9Y1ZxYyiog6zkgotTgzTLg8UEqk3c qZYtiTIAjv74yMb03RhrL4ofS+v3xNmMecjtb+WNxHPxGHpRL+8e5LftfePsGb5K L3+i3mq67Ej3XEcunDHpxW/Ov5PYxJYkoSeKsbI4vTDjHsg5ff1/XXchhqGm/E85 RPQbBntznvXZ4Ryf1E4DCw== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:cc:content-transfer-encoding :content-type:content-type:date:date:feedback-id:feedback-id :from:from:in-reply-to:in-reply-to:message-id:mime-version :references:reply-to:subject:subject:to:to:x-me-proxy:x-me-proxy :x-me-sender:x-me-sender:x-sasl-enc; s=fm2; t=1702859140; x= 1702945540; bh=vfeXK4OnClrrA6FG3NONByDsooV16Y87gRgZ2EkzqsM=; b=m LZczSqsS8CgyoOAej+fY0wv7SIpakc0htcmtl9sDv8U4P9Z8qMffx2fKirkKLWca z/qLbDxdocafFWj0FLeU0hq6l98v7VUrkqpVyvCc26mcCDKZQuJBj0ypeD/cA0RQ N2HIr1Q30GegdOXY9khpaKagbdkZAO2hpJwr8nLUqn0Uchcip/rCbo+BUmEQJNKI TIYCa9qfZI8+Jvke5MlxS+zlC0P7rDD6JGiiR0yW2r1ITIIx/eV6TgYII85FfkuS nmGo1Pk1wXvAvQmDKryYaJGdO+RKipK2YqcN3J+S9ekiHeFVBvKgFA5kLoUSEqwX x15/YBas2B8pl4qvxMByQ== X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedvkedrvddtjedgvdduucetufdoteggodetrfdotf fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfqfgfvpdfurfetoffkrfgpnffqhgen uceurghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmne cujfgurhepkfffgggfuffvvehfhfgjtgfgsehtjeertddtfeejnecuhfhrohhmpeffmhhi thhrhicuifhuthhovhcuoegumhhithhrhiesghhuthhovhdruggvvheqnecuggftrfgrth htvghrnhepteffudetffetveefieelfeevfefhueekheetgfetvdfgveehieejteekveei veehnecuffhomhgrihhnpehrvgguughithdrtghomhdprhgvuggurdhithenucevlhhush htvghrufhiiigvpedtnecurfgrrhgrmhepmhgrihhlfhhrohhmpegumhhithhrhiesghhu thhovhdruggvvh X-ME-Proxy: Feedback-ID: i0e71465a:Fastmail Received: by mail.messagingengine.com (Postfix) with ESMTPA; Sun, 17 Dec 2023 19:25:38 -0500 (EST) Message-ID: Date: Mon, 18 Dec 2023 02:25:36 +0200 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.13.0 Subject: Re: bug#67061: [PATCH] Improve syntax highlighting for python-ts-mode Content-Language: en-US To: Denis Zubarev , Yuan Fu , Eli Zaretskii 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> <7371702772641@mail.yandex.ru> From: Dmitry Gutov In-Reply-To: <7371702772641@mail.yandex.ru> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-Spam-Score: -1.4 (-) X-Debbugs-Envelope-To: 67061 Cc: "67061@debbugs.gnu.org" <67061@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: -2.4 (--) On 17/12/2023 02:26, Denis Zubarev wrote: > Summary for all changes in the patch. > New feature variable-definition: > `for var in range(3)` > `[var+1 for var in []]` > `with T as var:` > `except E as var:` > `case str() as var:` > highlight var as font-lock-variable-name-face > assignment feature: > var := 3 (named_expression) > var *= 3 (augmented_assignment) > Highlight var as font-lock-variable-name-face. I still think variable-name-face is not the best fit for augmented_assignment, but admittedly it's a minor thing. > type feature: > Fontify built-ins (dict,list,etc.) as types when they are used in type > hints. > support nested union types, for example `Lvl1 | Lvl2[Lvl3[Lvl3], Lvl2]`. > This structure is represented via nesting binary_operator and subscript > nodes in the grammar. > Function python--treesit-fontify-union-types iterates over all children > and highlight identifier nodes. If you recall my earlier complaint that these highlightings didn't work (and the tests didn't pass), this happened due to an older Python grammar. More specifically, these highlights, and the type-related face tests, don't work with the Python ts grammar I had from March 7th 2023. The queries didn't lead to errors either (that's a good thing), but maybe we'll want to revisit these highlights later to add support for the older grammar as well. > Fontify base class names in the class definition: class Temp(Base1, > pack0.Base2): > Fontify class patterns in case statement: case [TempC() | bytes(b)]: > Highlight the second argument as a type in isinstance/issubclass call: > isinstance(var2, (str, dict, Type1)); issubclass(var1, int|str) I'm not sure highlighting types based on the caller method and position is a good idea. I think that's backward, logically. If one puts a non-type value in such argument, and we would highlight it as a type -- that seems like the wrong message. OTOH, see this reddit thread and this screenshot: https://www.reddit.com/r/emacs/comments/18kr1gl/how_can_i_configure_pythontsmode_to_fontify_more/ https://preview.redd.it/y8l3k8tt4x6c1.png?width=3840&format=png&auto=webp&s=0a6882e66d4b334c07e856934ce847e63aa2db2c One of the complaints is that "User" is not highlighted as a type when used in other, non-built-in methods, which like a reasonable question to me. Yes, Python is dynamic, but using CamelCase for types is a fairly regular convention, so highlighting such identifiers as types can work. You can see rust-ts-mode for an example of this approach. > decorator feature: > Highlight dotted names: @pytest.mark.skip > Function python--treesit-fontify-dotted-decorator iterates over all > nested attribute nodes and highlight identifier nodes. > When font-lock-level is set 4, `skip` had function-call face in: > @pytest.mark.skip(reason='t') > Add `:override t` to decorator feature to override function-call face. > string feature: Could we just move it above the 'function' feature, so that the override is not needed? From debbugs-submit-bounces@debbugs.gnu.org Mon Dec 18 19:14:24 2023 Received: (at 67061) by debbugs.gnu.org; 19 Dec 2023 00:14:25 +0000 Received: from localhost ([127.0.0.1]:33809 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rFNkc-0003YA-T7 for submit@debbugs.gnu.org; Mon, 18 Dec 2023 19:14:24 -0500 Received: from forward101c.mail.yandex.net ([2a02:6b8:c03:500:1:45:d181:d101]:41270) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rFNkY-0003Xs-PK for 67061@debbugs.gnu.org; Mon, 18 Dec 2023 19:14:21 -0500 Received: from mail-nwsmtp-mxback-production-main-35.iva.yp-c.yandex.net (mail-nwsmtp-mxback-production-main-35.iva.yp-c.yandex.net [IPv6:2a02:6b8:c0c:6e2c:0:640:622a:0]) by forward101c.mail.yandex.net (Yandex) with ESMTP id 5B0EE608DE; Tue, 19 Dec 2023 03:14:10 +0300 (MSK) Received: from mail.yandex.ru (2a02:6b8:c0c:1606:0:640:506f:0 [2a02:6b8:c0c:1606:0:640:506f:0]) by mail-nwsmtp-mxback-production-main-35.iva.yp-c.yandex.net (mxback/Yandex) with HTTP id 5E9lWK7Ov4Y0-ObUFQluZ; Tue, 19 Dec 2023 03:14:09 +0300 X-Yandex-Fwd: 1 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yandex.ru; s=mail; t=1702944849; bh=IryoaY9Z3wf6oSQtG0BQ52qcMGUSZPawWi0MkLwymn0=; h=Message-Id:References:Date:Cc:Subject:In-Reply-To:To:From; b=uhcPOGE//JzGTp+CDiiVrOJJjjCfOpqZvLzP8bDm8WzrC/6EXe7i5+dOf8iN1eKJw uWZS8FQq3u4e/AicXWpRUcniS7OZw5tLSpz8oP9+nZa7jVauRGtwvD/ps4nhzNWoSe AP6e/Vd7G2rRS89Z68Ac/0yHiRqxuiMIQCgOLi50= Authentication-Results: mail-nwsmtp-mxback-production-main-35.iva.yp-c.yandex.net; dkim=pass header.i=@yandex.ru Received: by 5onccsrv2hdogkey.iva.yp-c.yandex.net with HTTP; Tue, 19 Dec 2023 03:14:09 +0300 From: Denis Zubarev To: Dmitry Gutov , Yuan Fu , Eli Zaretskii In-Reply-To: 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> <7371702772641@mail.yandex.ru> Subject: Re: bug#67061: [PATCH] Improve syntax highlighting for python-ts-mode MIME-Version: 1.0 X-Mailer: Yamail [ http://yandex.ru ] 5.0 Date: Tue, 19 Dec 2023 03:14:09 +0300 Message-Id: <27502181702944649@mail.yandex.ru> Content-Type: multipart/mixed; boundary="----==--bound.465107.5onccsrv2hdogkey.iva.yp-c.yandex.net" X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 67061 Cc: "67061@debbugs.gnu.org" <67061@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: -1.7 (-) ------==--bound.465107.5onccsrv2hdogkey.iva.yp-c.yandex.net Content-Transfer-Encoding: base64 Content-Type: text/html; charset=utf-8 PGRpdj7CoDwvZGl2PjxkaXY+PGRpdj4mZ3Q7IElmIHlvdSByZWNhbGwgbXkgZWFybGllciBjb21w bGFpbnQgdGhhdCB0aGVzZSBoaWdobGlnaHRpbmdzIGRpZG4ndCB3b3JrPC9kaXY+PGRpdj4mZ3Q7 IChhbmQgdGhlIHRlc3RzIGRpZG4ndCBwYXNzKSwgdGhpcyBoYXBwZW5lZCBkdWUgdG8gYW4gb2xk ZXIgUHl0aG9uIGdyYW1tYXIuPC9kaXY+PGRpdj7CoDwvZGl2PjxkaXY+VGhhbmsgeW91IGZvciBp bnZlc3RpZ2F0aW5nIHRoaXMuIEl0IHNlZW1zIHRoaXMgY29tbWl0IGludHJvZHVjZWQ8L2Rpdj48 ZGl2PmNoYW5nZXMgdG8gdHlwZSBub2RlcyBoaWVyYXJjaHkgKGh0dHBzOi8vZ2l0aHViLmNvbS90 cmVlLXNpdHRlci90cmVlLXNpdHRlci1weXRob24vY29tbWl0L2JjYmY0MTU4OWY0ZGMzOGE5OGJk YTRjYTRjOTI0ZWI1Y2FlMjZmN2IpLjwvZGl2PjxkaXY+wqA8L2Rpdj48ZGl2PiZndDsgVGhlIHF1 ZXJpZXMgZGlkbid0IGxlYWQgdG8gZXJyb3JzIGVpdGhlciAodGhhdCdzIGEgZ29vZCB0aGluZyks IGJ1dCBtYXliZTwvZGl2PjxkaXY+Jmd0OyB3ZSdsbCB3YW50IHRvIHJldmlzaXQgdGhlc2UgaGln aGxpZ2h0cyBsYXRlciB0byBhZGQgc3VwcG9ydCBmb3IgdGhlPC9kaXY+PGRpdj4mZ3Q7IG9sZGVy IGdyYW1tYXIgYXMgd2VsbC48L2Rpdj48ZGl2PsKgPC9kaXY+PGRpdj5JdCBtYXkgbGVhZCB0byB1 bm5lY2Vzc2FyaWx5IGNvbXBsZXggcnVsZXMuIEkgZG9uJ3Q8L2Rpdj48ZGl2Pmtub3cgaXMgaXQg d29ydGggaXQsIHNpbmNlIHVzZXJzIGNhbiBlYXNpbHkgdXBkYXRlIGdyYW1tYXJzLjwvZGl2Pjxk aXY+wqA8L2Rpdj48ZGl2PsKgPC9kaXY+PGRpdj4mZ3Q7IEknbSBub3Qgc3VyZSBoaWdobGlnaHRp bmcgdHlwZXMgYmFzZWQgb24gdGhlIGNhbGxlciBtZXRob2QgYW5kIHBvc2l0aW9uPC9kaXY+PGRp dj4mZ3Q7IGlzIGEgZ29vZCBpZGVhLiBJIHRoaW5rIHRoYXQncyBiYWNrd2FyZCwgbG9naWNhbGx5 LiBJZiBvbmUgcHV0cyBhPC9kaXY+PGRpdj4mZ3Q7IG5vbi10eXBlIHZhbHVlIGluIHN1Y2ggYXJn dW1lbnQsIGFuZCB3ZSB3b3VsZCBoaWdobGlnaHQgaXQgYXMgYSB0eXBlIC0tPC9kaXY+PGRpdj4m Z3Q7IHRoYXQgc2VlbXMgbGlrZSB0aGUgd3JvbmcgbWVzc2FnZS48L2Rpdj48ZGl2PsKgPC9kaXY+ PGRpdj5UaGVzZSB0d28gZnVuY3Rpb25zIGV4cGVjdCBhIHR5cGUgKG9yIHR1cGxlIG9mIHR5cGVz KSBhcyB0aGUgc2Vjb25kPC9kaXY+PGRpdj5hcmd1bWVudC4gVG8gYWRkcmVzcyB5b3VyIGNvbmNl cm5zIGFib3V0IGhpZ2hsaWdodGluZyBhcyBhIHR5cGUgYTwvZGl2PjxkaXY+bm9uLXR5cGUgdmFy aWFibGUsIEkgYWRkZWQgcmVnZXhwIHB5dGhvbi0tdHJlZXNpdC10eXBlLXJlZ2V4LiBUaGlzIHJl Z2V4PC9kaXY+PGRpdj5tYXRjaGVzIGlmIHRleHQgaXMgZWl0aGVyIGJ1aWx0LWluIHR5cGUgb3Ig dGV4dCBzdGFydHMgd2l0aCBjYXBpdGFsPC9kaXY+PGRpdj5sZXR0ZXIuIEkgZXh0cmFjdGVkIGJ1 aWx0LWluIHR5cGVzIGZyb20gdGhlIHB5dGhvbi0tdHJlZXNpdC1idWlsdGluczwvZGl2PjxkaXY+ aW50byBpdHMgb3duIHZhcmlhYmxlIHB5dGhvbi0tdHJlZXNpdC1idWlsdGluLXR5cGVzLjwvZGl2 PjxkaXY+cHl0aG9uLS10cmVlc2l0LWJ1aWx0aW5zIGlzIG5vdyBjb25zdHJ1Y3RpbmcgYnkgYXBw ZW5kaW5nPC9kaXY+PGRpdj5weXRob24tLXRyZWVzaXQtYnVpbHRpbi10eXBlcyBhbmQgb3RoZXIg YnVpbHQtaW5zLiBJIGhvcGUgaXQgaXMgb2suPC9kaXY+PGRpdj7CoDwvZGl2PjxkaXY+Jmd0OyBP bmUgb2YgdGhlIGNvbXBsYWludHMgaXMgdGhhdCAiVXNlciIgaXMgbm90IGhpZ2hsaWdodGVkIGFz IGEgdHlwZSB3aGVuPC9kaXY+PGRpdj4mZ3Q7IHVzZWQgaW4gb3RoZXIsIG5vbi1idWlsdC1pbiBt ZXRob2RzLCB3aGljaCBsaWtlIGEgcmVhc29uYWJsZSBxdWVzdGlvbiB0bzwvZGl2PjxkaXY+Jmd0 OyBtZS4gWWVzLCBQeXRob24gaXMgZHluYW1pYywgYnV0IHVzaW5nIENhbWVsQ2FzZSBmb3IgdHlw ZXMgaXMgYSBmYWlybHk8L2Rpdj48ZGl2PiZndDsgcmVndWxhciBjb252ZW50aW9uLCBzbyBoaWdo bGlnaHRpbmcgc3VjaCBpZGVudGlmaWVycyBhcyB0eXBlcyBjYW4gd29yay48L2Rpdj48ZGl2PsKg PC9kaXY+PGRpdj5JdCBpcyBnb29kIGlkZWEsIHRvIGhpZ2hsaWdodCBzb21lIHZhcmlhYmxlcyBh cyB0eXBlcy4gQnV0IEkgdGhpbmsgaXQ8L2Rpdj48ZGl2PnNob3VsZCBiZSBkb25lIG9uIHRoZSA0 dGggbGV2ZWwuIE9uZSBjb3VsZCBzcGxpdCB0aGUgdmFyaWFibGUgZmVhdHVyZTwvZGl2PjxkaXY+ aW50byBtdWx0aXBsZSBmZWF0dXJlczogdmFyaWFibGUtdHlwZSwgdmFyaWFibGUtYXJndW1lbnQs IHZhcmlhYmxlLXVzZSw8L2Rpdj48ZGl2PmV0Yy4gU28gZm9yIHZhcmlhYmxlLXR5cGUgZmVhdHVy ZSB3ZSBjYW4gdXNlIHB5dGhvbi0tdHJlZXNpdC10eXBlLXJlZ2V4PC9kaXY+PGRpdj5hbmQgaGln aGxpZ2h0IG1hdGNoZWQgaWRlbnRpZmllcnMgd2l0aCB0eXBlIGZhY2UuIEZvciBub3cgSSB3YW50 ZWQgdG88L2Rpdj48ZGl2PnByb3Blcmx5IGhpZ2hsaWdodCB0eXBlcyBpbiBwbGFjZXMgd2hlcmUg dGhleSBleHBlY3RlZCB0byBiZS48L2Rpdj48ZGl2PsKgPC9kaXY+PGRpdj7CoDwvZGl2PjxkaXY+ Jmd0OyBDb3VsZCB3ZSBqdXN0IG1vdmUgaXQgYWJvdmUgdGhlICdmdW5jdGlvbicgZmVhdHVyZSwg c28gdGhhdCB0aGUgb3ZlcnJpZGU8L2Rpdj48ZGl2PiZndDsgaXMgbm90IG5lZWRlZD88L2Rpdj48 ZGl2PsKgPC9kaXY+PGRpdj5Eb25lLjwvZGl2PjxkaXY+wqA8L2Rpdj48ZGl2PkkgYXR0YWNoIGEg cGF0Y2ggd2l0aCBuZXcgY2hhbmdlcy48L2Rpdj48ZGl2PsKgPC9kaXY+PGRpdj7CoDwvZGl2Pjwv ZGl2PjxkaXY+wqA8L2Rpdj48ZGl2PjE4LjEyLjIwMjMsIDAzOjI1LCAiRG1pdHJ5IEd1dG92IiAm bHQ7ZG1pdHJ5QGd1dG92LmRldiZndDs6PC9kaXY+PGJsb2NrcXVvdGU+PHA+T24gMTcvMTIvMjAy MyAwMjoyNiwgRGVuaXMgWnViYXJldiB3cm90ZTo8YnIgLz7CoDwvcD48YmxvY2txdW90ZT7CoFN1 bW1hcnkgZm9yIGFsbCBjaGFuZ2VzIGluIHRoZSBwYXRjaC48YnIgLz7CoE5ldyBmZWF0dXJlIHZh cmlhYmxlLWRlZmluaXRpb246PGJyIC8+wqBgZm9yIHZhciBpbiByYW5nZSgzKWA8YnIgLz7CoGBb dmFyKzEgZm9yIHZhciBpbiBbXV1gPGJyIC8+wqBgd2l0aCBUIGFzIHZhcjpgPGJyIC8+wqBgZXhj ZXB0IEUgYXMgdmFyOmA8YnIgLz7CoGBjYXNlIHN0cigpIGFzIHZhcjpgPGJyIC8+wqBoaWdobGln aHQgdmFyIGFzIGZvbnQtbG9jay12YXJpYWJsZS1uYW1lLWZhY2U8YnIgLz7CoGFzc2lnbm1lbnQg ZmVhdHVyZTo8YnIgLz7CoHZhciA6PSAzIChuYW1lZF9leHByZXNzaW9uKTxiciAvPsKgdmFyICo9 IDMgKGF1Z21lbnRlZF9hc3NpZ25tZW50KTxiciAvPsKgSGlnaGxpZ2h0IHZhciBhcyBmb250LWxv Y2stdmFyaWFibGUtbmFtZS1mYWNlLjwvYmxvY2txdW90ZT48cD48YnIgLz5JIHN0aWxsIHRoaW5r IHZhcmlhYmxlLW5hbWUtZmFjZSBpcyBub3QgdGhlIGJlc3QgZml0IGZvcjxiciAvPmF1Z21lbnRl ZF9hc3NpZ25tZW50LCBidXQgYWRtaXR0ZWRseSBpdCdzIGEgbWlub3IgdGhpbmcuPGJyIC8+wqA8 L3A+PGJsb2NrcXVvdGU+wqB0eXBlIGZlYXR1cmU6PGJyIC8+wqBGb250aWZ5IGJ1aWx0LWlucyAo ZGljdCxsaXN0LGV0Yy4pIGFzIHR5cGVzIHdoZW4gdGhleSBhcmUgdXNlZCBpbiB0eXBlPGJyIC8+ wqBoaW50cy48YnIgLz7CoHN1cHBvcnQgbmVzdGVkIHVuaW9uIHR5cGVzLCBmb3IgZXhhbXBsZSBg THZsMSB8IEx2bDJbTHZsM1tMdmwzXSwgTHZsMl1gLjxiciAvPsKgVGhpcyBzdHJ1Y3R1cmUgaXMg cmVwcmVzZW50ZWQgdmlhIG5lc3RpbmcgYmluYXJ5X29wZXJhdG9yIGFuZCBzdWJzY3JpcHQ8YnIg Lz7CoG5vZGVzIGluIHRoZSBncmFtbWFyLjxiciAvPsKgRnVuY3Rpb24gcHl0aG9uLS10cmVlc2l0 LWZvbnRpZnktdW5pb24tdHlwZXMgaXRlcmF0ZXMgb3ZlciBhbGwgY2hpbGRyZW48YnIgLz7CoGFu ZCBoaWdobGlnaHQgaWRlbnRpZmllciBub2Rlcy48L2Jsb2NrcXVvdGU+PHA+PGJyIC8+SWYgeW91 IHJlY2FsbCBteSBlYXJsaWVyIGNvbXBsYWludCB0aGF0IHRoZXNlIGhpZ2hsaWdodGluZ3MgZGlk bid0IHdvcms8YnIgLz4oYW5kIHRoZSB0ZXN0cyBkaWRuJ3QgcGFzcyksIHRoaXMgaGFwcGVuZWQg ZHVlIHRvIGFuIG9sZGVyIFB5dGhvbiBncmFtbWFyLjxiciAvPjxiciAvPk1vcmUgc3BlY2lmaWNh bGx5LCB0aGVzZSBoaWdobGlnaHRzLCBhbmQgdGhlIHR5cGUtcmVsYXRlZCBmYWNlIHRlc3RzLDxi ciAvPmRvbid0IHdvcmsgd2l0aCB0aGUgUHl0aG9uIHRzIGdyYW1tYXIgSSBoYWQgZnJvbSBNYXJj aCA3dGggMjAyMy4gVGhlPGJyIC8+cXVlcmllcyBkaWRuJ3QgbGVhZCB0byBlcnJvcnMgZWl0aGVy ICh0aGF0J3MgYSBnb29kIHRoaW5nKSwgYnV0IG1heWJlPGJyIC8+d2UnbGwgd2FudCB0byByZXZp c2l0IHRoZXNlIGhpZ2hsaWdodHMgbGF0ZXIgdG8gYWRkIHN1cHBvcnQgZm9yIHRoZTxiciAvPm9s ZGVyIGdyYW1tYXIgYXMgd2VsbC48YnIgLz7CoDwvcD48YmxvY2txdW90ZT7CoEZvbnRpZnkgYmFz ZSBjbGFzcyBuYW1lcyBpbiB0aGUgY2xhc3MgZGVmaW5pdGlvbjogY2xhc3MgVGVtcChCYXNlMSw8 YnIgLz7CoHBhY2swLkJhc2UyKTo8YnIgLz7CoEZvbnRpZnkgY2xhc3MgcGF0dGVybnMgaW4gY2Fz ZSBzdGF0ZW1lbnQ6IGNhc2UgW1RlbXBDKCkgfCBieXRlcyhiKV06PGJyIC8+wqBIaWdobGlnaHQg dGhlIHNlY29uZCBhcmd1bWVudCBhcyBhIHR5cGUgaW4gaXNpbnN0YW5jZS9pc3N1YmNsYXNzIGNh bGw6PGJyIC8+wqBpc2luc3RhbmNlKHZhcjIsIChzdHIsIGRpY3QsIFR5cGUxKSk7IGlzc3ViY2xh c3ModmFyMSwgaW50fHN0cik8L2Jsb2NrcXVvdGU+PHA+PGJyIC8+SSdtIG5vdCBzdXJlIGhpZ2hs aWdodGluZyB0eXBlcyBiYXNlZCBvbiB0aGUgY2FsbGVyIG1ldGhvZCBhbmQgcG9zaXRpb248YnIg Lz5pcyBhIGdvb2QgaWRlYS4gSSB0aGluayB0aGF0J3MgYmFja3dhcmQsIGxvZ2ljYWxseS4gSWYg b25lIHB1dHMgYTxiciAvPm5vbi10eXBlIHZhbHVlIGluIHN1Y2ggYXJndW1lbnQsIGFuZCB3ZSB3 b3VsZCBoaWdobGlnaHQgaXQgYXMgYSB0eXBlIC0tPGJyIC8+dGhhdCBzZWVtcyBsaWtlIHRoZSB3 cm9uZyBtZXNzYWdlLjxiciAvPjxiciAvPk9UT0gsIHNlZSB0aGlzIHJlZGRpdCB0aHJlYWQgYW5k IHRoaXMgc2NyZWVuc2hvdDo8YnIgLz48YnIgLz48YSBocmVmPSJodHRwczovL3d3dy5yZWRkaXQu Y29tL3IvZW1hY3MvY29tbWVudHMvMThrcjFnbC9ob3dfY2FuX2lfY29uZmlndXJlX3B5dGhvbnRz bW9kZV90b19mb250aWZ5X21vcmUvIiByZWw9Im5vb3BlbmVyIG5vcmVmZXJyZXIiPmh0dHBzOi8v d3d3LnJlZGRpdC5jb20vci9lbWFjcy9jb21tZW50cy8xOGtyMWdsL2hvd19jYW5faV9jb25maWd1 cmVfcHl0aG9udHNtb2RlX3RvX2ZvbnRpZnlfbW9yZS88L2E+PGJyIC8+PGJyIC8+PGEgaHJlZj0i aHR0cHM6Ly9wcmV2aWV3LnJlZGQuaXQveThsM2s4dHQ0eDZjMS5wbmc/d2lkdGg9Mzg0MCZhbXA7 Zm9ybWF0PXBuZyZhbXA7YXV0bz13ZWJwJmFtcDtzPTBhNjg4MmU2NmQ0YjMzNGMwN2U4NTY5MzRj ZTg0N2U2M2FhMmRiMmMiIHJlbD0ibm9vcGVuZXIgbm9yZWZlcnJlciI+aHR0cHM6Ly9wcmV2aWV3 LnJlZGQuaXQveThsM2s4dHQ0eDZjMS5wbmc/d2lkdGg9Mzg0MCZhbXA7Zm9ybWF0PXBuZyZhbXA7 YXV0bz13ZWJwJmFtcDtzPTBhNjg4MmU2NmQ0YjMzNGMwN2U4NTY5MzRjZTg0N2U2M2FhMmRiMmM8 L2E+PGJyIC8+PGJyIC8+T25lIG9mIHRoZSBjb21wbGFpbnRzIGlzIHRoYXQgIlVzZXIiIGlzIG5v dCBoaWdobGlnaHRlZCBhcyBhIHR5cGUgd2hlbjxiciAvPnVzZWQgaW4gb3RoZXIsIG5vbi1idWls dC1pbiBtZXRob2RzLCB3aGljaCBsaWtlIGEgcmVhc29uYWJsZSBxdWVzdGlvbiB0bzxiciAvPm1l LiBZZXMsIFB5dGhvbiBpcyBkeW5hbWljLCBidXQgdXNpbmcgQ2FtZWxDYXNlIGZvciB0eXBlcyBp cyBhIGZhaXJseTxiciAvPnJlZ3VsYXIgY29udmVudGlvbiwgc28gaGlnaGxpZ2h0aW5nIHN1Y2gg aWRlbnRpZmllcnMgYXMgdHlwZXMgY2FuIHdvcmsuPGJyIC8+WW91IGNhbiBzZWUgcnVzdC10cy1t b2RlIGZvciBhbiBleGFtcGxlIG9mIHRoaXMgYXBwcm9hY2guPGJyIC8+wqA8L3A+PGJsb2NrcXVv dGU+wqBkZWNvcmF0b3IgZmVhdHVyZTo8YnIgLz7CoEhpZ2hsaWdodCBkb3R0ZWQgbmFtZXM6IEBw eXRlc3QubWFyay5za2lwPGJyIC8+wqBGdW5jdGlvbiBweXRob24tLXRyZWVzaXQtZm9udGlmeS1k b3R0ZWQtZGVjb3JhdG9yIGl0ZXJhdGVzIG92ZXIgYWxsPGJyIC8+wqBuZXN0ZWQgYXR0cmlidXRl IG5vZGVzIGFuZCBoaWdobGlnaHQgaWRlbnRpZmllciBub2Rlcy48YnIgLz7CoFdoZW4gZm9udC1s b2NrLWxldmVsIGlzIHNldCA0LCBgc2tpcGAgaGFkIGZ1bmN0aW9uLWNhbGwgZmFjZSBpbjo8YnIg Lz7CoEBweXRlc3QubWFyay5za2lwKHJlYXNvbj0ndCcpPGJyIC8+wqBBZGQgYDpvdmVycmlkZSB0 YCB0byBkZWNvcmF0b3IgZmVhdHVyZSB0byBvdmVycmlkZSBmdW5jdGlvbi1jYWxsIGZhY2UuPGJy IC8+wqBzdHJpbmcgZmVhdHVyZTo8L2Jsb2NrcXVvdGU+PHA+PGJyIC8+Q291bGQgd2UganVzdCBt b3ZlIGl0IGFib3ZlIHRoZSAnZnVuY3Rpb24nIGZlYXR1cmUsIHNvIHRoYXQgdGhlIG92ZXJyaWRl PGJyIC8+aXMgbm90IG5lZWRlZD88L3A+PC9ibG9ja3F1b3RlPg== ------==--bound.465107.5onccsrv2hdogkey.iva.yp-c.yandex.net Content-Disposition: attachment; filename="0006-Improve-syntax-highlighting-for-python-ts-mode.patch" Content-Transfer-Encoding: base64 Content-Type: text/x-diff; name="0006-Improve-syntax-highlighting-for-python-ts-mode.patch" RnJvbSBhOGFkMTEyODVmYmI5MzgxMzdiY2Y4ZjMxMTQ4MTljMWU1YmE3YzlkIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBEZW5pcyBadWJhcmV2IDxkdnp1YmFyZXZAeWFuZGV4LnJ1PgpE YXRlOiBTYXQsIDExIE5vdiAyMDIzIDA0OjU1OjQ0ICswMzAwClN1YmplY3Q6IFtQQVRDSF0gSW1w cm92ZSBzeW50YXggaGlnaGxpZ2h0aW5nIGZvciBweXRob24tdHMtbW9kZQoKRml4IGZvbnRpZmlj YXRpb24gb2Ygc3RyaW5ncyBpbnNpZGUgb2YgZi1zdHJpbmdzIGludGVycG9sYXRpb24sIGUuZy4g Zm9yCmYiYmVnIHsnbmVzdGVkJ30iIC0gJ25lc3RlZCcgd2FzIG5vdCBmb250aWZpZWQgYXMgc3Ry aW5nLiAgRG8gbm90Cm92ZXJyaWRlIHRoZSBmYWNlIG9mIGJ1aWx0aW4gZnVuY3Rpb25zIChhbGws IGJ5dGVzIGV0Yy4pIHdpdGggdGhlCmZ1bmN0aW9uIGNhbGwgZmFjZS4gIEFkZCBtaXNzaW5nIGFz c2lnbm1lbnQgZXhwcmVzc2lvbnMgKDo9ICo9KS4KRm9udGlmeSBidWlsdC1pbnMgKGRpY3QsbGlz dCxldGMuKSBhcyB0eXBlcyB3aGVuIHRoZXkgYXJlIHVzZWQgaW4gdHlwZQpoaW50cy4gIEhpZ2hs aWdodCB1bmlvbiB0eXBlcyAodHlwZTF8dHlwZTIpLiAgSGlnaGxpZ2h0IGJhc2UgY2xhc3MgbmFt ZXMKaW4gdGhlIGNsYXNzIGRlZmluaXRpb24uICBGb250aWZ5IGNsYXNzIHBhdHRlcm5zIGluIGNh c2Ugc3RhdGVtZW50cy4KSGlnaGxpZ2h0IHRoZSBzZWNvbmQgYXJndW1lbnQgYXMgYSB0eXBlIGlu IGlzaW5zdGFuY2UvaXNzdWJjbGFzcyBjYWxsLgpIaWdobGlnaHQgZG90dGVkIGRlY29yYXRvciBu YW1lcy4KCkFkZCBuZXcgZmVhdHVyZSB2YXJpYWJsZS1kZWZpbml0aW9uIGZvciB2YXJpYWJsZXMg ZGVmaW5lZCBpbiBsb2NhbApzY29wZXMgKGZvciB2YXIgaW4gW10sIHdpdGggVCBhcyB2YXIsIGV0 Yy4pLgoKKiBsaXNwL3Byb2dtb2Rlcy9weXRob24uZWwgKHB5dGhvbi0tdHJlZXNpdC1rZXl3b3Jk cyk6IEFkZCBjb21wb3VuZAprZXl3b3JkICJpcyBub3QiLgoocHl0aG9uLS10cmVlc2l0LWJ1aWx0 aW4tdHlwZXMpOiBOZXcgdmFyaWFibGUgdGhhdCBzdG9yZXMgYWxsIHB5dGhvbgpidWlsdC1pbiB0 eXBlcy4KKHB5dGhvbi0tdHJlZXNpdC10eXBlLXJlZ2V4KTogTmV3IHZhcmlhYmxlLiBSZWdleCBt YXRjaGVzIGlmIHRleHQgaXMgZWl0aGVyCmJ1aWx0LWluIHR5cGUgb3IgdGV4dCBzdGFydHMgd2l0 aCBjYXBpdGFsIGxldHRlci4KKHB5dGhvbi0tdHJlZXNpdC1idWlsdGlucyk6IEV4dHJhY3QgYnVp bHQtaW4gdHlwZXMgdG8gb3RoZXIgdmFyaWFibGUuCihweXRob24tLXRyZWVzaXQtZm9udGlmeS1z dHJpbmcpOiBmaXggZi1zdHJpbmcgaW50ZXJwb2xhdGlvbi4gRW5hYmxlCmludGVycG9sYXRpb24g aGlnaGxpZ2h0aW5nIG9ubHkgaWYgc3RyaW5nLWludGVycG9sYXRpb24gaXMgcHJlc2VudGVkIG9u CnRoZSBlbmFibGVkIGxldmVscyBvZiB0cmVlc2l0LWZvbnQtbG9jay1mZWF0dXJlLWxpc3QuCihw eXRob24tLXRyZWVzaXQtZm9udGlmeS1zdHJpbmctaW50ZXJwb2xhdGlvbik6IFJlbW92ZSBmdW5j dGlvbi4KKHB5dGhvbi0tdHJlZXNpdC1mb250aWZ5LXVuaW9uLXR5cGVzKTogRm9udGlmeSBuZXN0 ZWQgdW5pb24gdHlwZXMuCihweXRob24tLXRyZWVzaXQtZm9udGlmeS11bmlvbi10eXBlcy1zdHJp Y3QpOiBGb250aWZ5IG5lc3RlZCB1bmlvbgp0eXBlcywgb25seSBpZiB0eXBlIGlkZW50aWZpZXIg bWF0Y2hlcyBhZ2FpbnN0CnB5dGhvbi0tdHJlZXNpdC10eXBlLXJlZ2V4LgoocHl0aG9uLS10cmVl c2l0LWZvbnRpZnktZG90dGVkLWRlY29yYXRvcik6IEZvbnRpZnkgYWxsIHBhcnRzIG9mCmRvdHRl ZCBkZWNvcmF0b3IgbmFtZS4KKHB5dGhvbi0tdHJlZXNpdC1zZXR0aW5ncyk6IENoYW5nZS9hZGQg cnVsZXMuCiogdGVzdC9saXNwL3Byb2dtb2Rlcy9weXRob24tdGVzdHMuZWwgKHB5dGhvbi10cy10 ZXN0cy13aXRoLXRlbXAtYnVmZmVyKToKZnVuY3Rpb24gZm9yIHNldHRpbmcgdXAgdGVzdCBidWZm ZXIuCihweXRob24tdHMtbW9kZS1jb21wb3VuZC1rZXl3b3Jkcy1mYWNlKQoocHl0aG9uLXRzLW1v ZGUtdmFyLWZvci1sb29wLWZhY2UpCihweXRob24tdHMtbW9kZS1uYW1lZC1hc3NpZ25lbWVudC1m YWNlLTEpCihweXRob24tdHMtbW9kZS1hc3NpZ25lbWVudC1mYWNlLTIpCihweXRob24tdHMtbW9k ZS1uZXN0ZWQtdHlwZXMtZmFjZS0xKQoocHl0aG9uLXRzLW1vZGUtdW5pb24tdHlwZXMtZmFjZS0x KQoocHl0aG9uLXRzLW1vZGUtdW5pb24tdHlwZXMtZmFjZS0yKQoocHl0aG9uLXRzLW1vZGUtdHlw ZXMtZmFjZS0xKQoocHl0aG9uLXRzLW1vZGUtdHlwZXMtZmFjZS0yKQoocHl0aG9uLXRzLW1vZGUt dHlwZXMtZmFjZS0zKQoocHl0aG9uLXRzLW1vZGUtaXNpbnN0YW5jZS10eXBlLWZhY2UtMSkKKHB5 dGhvbi10cy1tb2RlLWlzaW5zdGFuY2UtdHlwZS1mYWNlLTIpCihweXRob24tdHMtbW9kZS1pc2lu c3RhbmNlLXR5cGUtZmFjZS0zKQoocHl0aG9uLXRzLW1vZGUtc3VwZXJjbGFzcy10eXBlLWZhY2Up CihweXRob24tdHMtbW9kZS1jbGFzcy1wYXR0ZXJucy1mYWNlKQoocHl0aG9uLXRzLW1vZGUtZG90 dGVkLWRlY29yYXRvci1mYWNlLTEpCihweXRob24tdHMtbW9kZS1kb3R0ZWQtZGVjb3JhdG9yLWZh Y2UtMikKKHB5dGhvbi10cy1tb2RlLWJ1aWx0aW4tY2FsbC1mYWNlKQoocHl0aG9uLXRzLW1vZGUt aW50ZXJwb2xhdGlvbi1uZXN0ZWQtc3RyaW5nKQoocHl0aG9uLXRzLW1vZGUtZGlzYWJsZWQtc3Ry aW5nLWludGVycG9sYXRpb24pCihweXRob24tdHMtbW9kZS1pbnRlcnBvbGF0aW9uLWRvYy1zdHJp bmcpOiBBZGQgdGVzdHMuCi0tLQogbGlzcC9wcm9nbW9kZXMvcHl0aG9uLmVsICAgICAgICAgICAg fCAyNTIgKysrKysrKysrKysrKystLS0tLQogdGVzdC9saXNwL3Byb2dtb2Rlcy9weXRob24tdGVz dHMuZWwgfCAzNjcgKysrKysrKysrKysrKysrKysrKysrKysrKysrKwogMiBmaWxlcyBjaGFuZ2Vk LCA1NTcgaW5zZXJ0aW9ucygrKSwgNjIgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvbGlzcC9w cm9nbW9kZXMvcHl0aG9uLmVsIGIvbGlzcC9wcm9nbW9kZXMvcHl0aG9uLmVsCmluZGV4IGFiM2Jm MWI0ZWMuLmU5ZGY2NGZjMWIgMTAwNjQ0Ci0tLSBhL2xpc3AvcHJvZ21vZGVzL3B5dGhvbi5lbAor KysgYi9saXNwL3Byb2dtb2Rlcy9weXRob24uZWwKQEAgLTk3OSwxOSArOTc5LDMwIEBAIHB5dGhv bi0tdHJlZXNpdC1rZXl3b3JkcwogICAgICJyYWlzZSIgInJldHVybiIgInRyeSIgIndoaWxlIiAi d2l0aCIgInlpZWxkIgogICAgIDs7IFRoZXNlIGFyZSB0ZWNobmljYWxseSBvcGVyYXRvcnMsIGJ1 dCB3ZSBmb250aWZ5IHRoZW0gYXMKICAgICA7OyBrZXl3b3Jkcy4KLSAgICAiYW5kIiAiaW4iICJp cyIgIm5vdCIgIm9yIiAibm90IGluIikpCisgICAgImFuZCIgImluIiAiaXMiICJub3QiICJvciIg Im5vdCBpbiIgImlzIG5vdCIpKQorCisoZGVmdmFyIHB5dGhvbi0tdHJlZXNpdC1idWlsdGluLXR5 cGVzCisgICcoImludCIgImZsb2F0IiAiY29tcGxleCIgImJvb2wiICJsaXN0IiAidHVwbGUiICJy YW5nZSIgInN0ciIKKyAgICAiYnl0ZXMiICJieXRlYXJyYXkiICJtZW1vcnl2aWV3IiAic2V0IiAi ZnJvemVuc2V0IiAiZGljdCIpKQorCisoZGVmdmFyIHB5dGhvbi0tdHJlZXNpdC10eXBlLXJlZ2V4 CisgIChyeC10by1zdHJpbmcgYChzZXEgYm9sIChvcgorICAgICAgICAgICAgICAgICAgICAgICAg ICAgLEBweXRob24tLXRyZWVzaXQtYnVpbHRpbi10eXBlcworICAgICAgICAgICAgICAgICAgICAg ICAgICAgKHNlcSAoPyAgIl8iKSAoYW55ICJBLVoiKSAoKyAoYW55ICJhLXpBLVpfMC05IikpKSkK KyAgICAgICAgICAgICAgICAgIGVvbCkpKQogCiAoZGVmdmFyIHB5dGhvbi0tdHJlZXNpdC1idWls dGlucwotICAnKCJhYnMiICJhbGwiICJhbnkiICJhc2NpaSIgImJpbiIgImJvb2wiICJicmVha3Bv aW50IiAiYnl0ZWFycmF5IgotICAgICJieXRlcyIgImNhbGxhYmxlIiAiY2hyIiAiY2xhc3NtZXRo b2QiICJjb21waWxlIiAiY29tcGxleCIKLSAgICAiZGVsYXR0ciIgImRpY3QiICJkaXIiICJkaXZt b2QiICJlbnVtZXJhdGUiICJldmFsIiAiZXhlYyIKLSAgICAiZmlsdGVyIiAiZmxvYXQiICJmb3Jt YXQiICJmcm96ZW5zZXQiICJnZXRhdHRyIiAiZ2xvYmFscyIKLSAgICAiaGFzYXR0ciIgImhhc2gi ICJoZWxwIiAiaGV4IiAiaWQiICJpbnB1dCIgImludCIgImlzaW5zdGFuY2UiCi0gICAgImlzc3Vi Y2xhc3MiICJpdGVyIiAibGVuIiAibGlzdCIgImxvY2FscyIgIm1hcCIgIm1heCIKLSAgICAibWVt b3J5dmlldyIgIm1pbiIgIm5leHQiICJvYmplY3QiICJvY3QiICJvcGVuIiAib3JkIiAicG93Igot ICAgICJwcmludCIgInByb3BlcnR5IiAicmFuZ2UiICJyZXByIiAicmV2ZXJzZWQiICJyb3VuZCIg InNldCIKLSAgICAic2V0YXR0ciIgInNsaWNlIiAic29ydGVkIiAic3RhdGljbWV0aG9kIiAic3Ry IiAic3VtIiAic3VwZXIiCi0gICAgInR1cGxlIiAidHlwZSIgInZhcnMiICJ6aXAiICJfX2ltcG9y dF9fIikpCisgIChhcHBlbmQgcHl0aG9uLS10cmVlc2l0LWJ1aWx0aW4tdHlwZXMKKyAgICAgICAg ICAnKCJhYnMiICJhbGwiICJhbnkiICJhc2NpaSIgImJpbiIgImJyZWFrcG9pbnQiCisgICAgICAg ICAgICAiY2FsbGFibGUiICJjaHIiICJjbGFzc21ldGhvZCIgImNvbXBpbGUiCisgICAgICAgICAg ICAiZGVsYXR0ciIgImRpciIgImRpdm1vZCIgImVudW1lcmF0ZSIgImV2YWwiICJleGVjIgorICAg ICAgICAgICAgImZpbHRlciIgImZvcm1hdCIgImdldGF0dHIiICJnbG9iYWxzIgorICAgICAgICAg ICAgImhhc2F0dHIiICJoYXNoIiAiaGVscCIgImhleCIgImlkIiAiaW5wdXQiICJpc2luc3RhbmNl IgorICAgICAgICAgICAgImlzc3ViY2xhc3MiICJpdGVyIiAibGVuIiAibG9jYWxzIiAibWFwIiAi bWF4IgorICAgICAgICAgICAgIm1pbiIgIm5leHQiICJvYmplY3QiICJvY3QiICJvcGVuIiAib3Jk IiAicG93IgorICAgICAgICAgICAgInByaW50IiAicHJvcGVydHkiICJyZXByIiAicmV2ZXJzZWQi ICJyb3VuZCIKKyAgICAgICAgICAgICJzZXRhdHRyIiAic2xpY2UiICJzb3J0ZWQiICJzdGF0aWNt ZXRob2QiICJzdW0iICJzdXBlciIKKyAgICAgICAgICAgICJ0eXBlIiAidmFycyIgInppcCIgIl9f aW1wb3J0X18iKSkpCiAKIChkZWZ2YXIgcHl0aG9uLS10cmVlc2l0LWNvbnN0YW50cwogICAnKCJF bGxpcHNpcyIgIkZhbHNlIiAiTm9uZSIgIk5vdEltcGxlbWVudGVkIiAiVHJ1ZSIgIl9fZGVidWdf XyIKQEAgLTEwNDIsOSArMTA1Myw3IEBAIHB5dGhvbi0tdHJlZXNpdC1mb250aWZ5LXN0cmluZwog Zi1zdHJpbmdzLiAgT1ZFUlJJREUgaXMgdGhlIG92ZXJyaWRlIGZsYWcgZGVzY3JpYmVkIGluCiBg dHJlZXNpdC1mb250LWxvY2stcnVsZXMnLiAgU1RBUlQgYW5kIEVORCBtYXJrIHRoZSByZWdpb24g dG8gYmUKIGZvbnRpZmllZC4iCi0gIChsZXQqICgoc3RyaW5nLWJlZyAodHJlZXNpdC1ub2RlLXN0 YXJ0IG5vZGUpKQotICAgICAgICAgKHN0cmluZy1lbmQgKHRyZWVzaXQtbm9kZS1lbmQgbm9kZSkp Ci0gICAgICAgICAobWF5YmUtZXhwcmVzc2lvbiAodHJlZXNpdC1ub2RlLXBhcmVudCBub2RlKSkK KyAgKGxldCogKChtYXliZS1leHByZXNzaW9uICh0cmVlc2l0LW5vZGUtcGFyZW50IG5vZGUpKQog ICAgICAgICAgKGdyYW5kcGFyZW50ICh0cmVlc2l0LW5vZGUtcGFyZW50CiAgICAgICAgICAgICAg ICAgICAgICAgICh0cmVlc2l0LW5vZGUtcGFyZW50CiAgICAgICAgICAgICAgICAgICAgICAgICBt YXliZS1leHByZXNzaW9uKSkpCkBAIC0xMDcyLDI4ICsxMDgxLDkyIEBAIHB5dGhvbi0tdHJlZXNp dC1mb250aWZ5LXN0cmluZwogICAgICAgICAgICAgICAgICAgICAgICAgKGVxdWFsICh0cmVlc2l0 LW5vZGUtdHlwZSBtYXliZS1leHByZXNzaW9uKQogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICJleHByZXNzaW9uX3N0YXRlbWVudCIpKQogICAgICAgICAgICAgICAgICAgICdmb250LWxv Y2stZG9jLWZhY2UKLSAgICAgICAgICAgICAgICAgJ2ZvbnQtbG9jay1zdHJpbmctZmFjZSkpKQot ICAgIDs7IERvbid0IGhpZ2hsaWdodCBzdHJpbmcgcHJlZml4ZXMgbGlrZSBmL3IvYi4KLSAgICAo c2F2ZS1leGN1cnNpb24KLSAgICAgIChnb3RvLWNoYXIgc3RyaW5nLWJlZykKLSAgICAgICh3aGVu IChyZS1zZWFyY2gtZm9yd2FyZCAiW1wiJ10iIHN0cmluZy1lbmQgdCkKLSAgICAgICAgKHNldHEg c3RyaW5nLWJlZyAobWF0Y2gtYmVnaW5uaW5nIDApKSkpCi0gICAgKHRyZWVzaXQtZm9udGlmeS13 aXRoLW92ZXJyaWRlCi0gICAgIHN0cmluZy1iZWcgc3RyaW5nLWVuZCBmYWNlIG92ZXJyaWRlIHN0 YXJ0IGVuZCkpKQotCi0oZGVmdW4gcHl0aG9uLS10cmVlc2l0LWZvbnRpZnktc3RyaW5nLWludGVy cG9sYXRpb24KLSAgICAobm9kZSBfIHN0YXJ0IGVuZCAmcmVzdCBfKQotICAiRm9udGlmeSBzdHJp bmcgaW50ZXJwb2xhdGlvbi4KLU5PREUgaXMgdGhlIHN0cmluZyBub2RlLiAgRG8gbm90IGZvbnRp ZnkgdGhlIGluaXRpYWwgZiBmb3IKLWYtc3RyaW5ncy4gIFNUQVJUIGFuZCBFTkQgbWFyayB0aGUg cmVnaW9uIHRvIGJlCisgICAgICAgICAgICAgICAgICdmb250LWxvY2stc3RyaW5nLWZhY2UpKQor CisgICAgICAgICAoaWdub3JlLWludGVycG9sYXRpb24gKG5vdAorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAoc2VxLXNvbWUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IChsYW1iZGEgKGZlYXRzKSAobWVtcSAnc3RyaW5nLWludGVycG9sYXRpb24gZmVhdHMpKQorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHNlcS10YWtlIHRyZWVzaXQtZm9udC1sb2Nr LWZlYXR1cmUtbGlzdCB0cmVlc2l0LWZvbnQtbG9jay1sZXZlbCkpKSkKKyAgICAgICAgIDs7IElm IGludGVycG9sYXRpb24gaXMgZW5hYmxlZCwgaGlnaGxpZ2h0IG9ubHkKKyAgICAgICAgIDs7IHN0 cmluZ19zdGFydC9zdHJpbmdfY29udGVudC9zdHJpbmdfZW5kIGNoaWxkcmVuLiAgRG8gbm90Cisg ICAgICAgICA7OyB0b3VjaCBpbnRlcnBvbGF0aW9uIG5vZGUgdGhhdCBjYW4gb2NjdXIgaW5zaWRl IG9mIHRoZQorICAgICAgICAgOzsgc3RyaW5nLgorICAgICAgICAgKHN0cmluZy1ub2RlcyAoaWYg aWdub3JlLWludGVycG9sYXRpb24KKyAgICAgICAgICAgICAgICAgICAgICAgICAgIChsaXN0IG5v ZGUpCisgICAgICAgICAgICAgICAgICAgICAgICAgKHRyZWVzaXQtZmlsdGVyLWNoaWxkCisgICAg ICAgICAgICAgICAgICAgICAgICAgIG5vZGUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgKGxh bWJkYSAoY2gpIChtZW1iZXIgKHRyZWVzaXQtbm9kZS10eXBlIGNoKQorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnKCJzdHJpbmdfc3RhcnQiCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInN0cmluZ19jb250ZW50 IgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJzdHJp bmdfZW5kIikpKQorICAgICAgICAgICAgICAgICAgICAgICAgICB0KSkpKQorCisgICAgKGRvbGlz dCAoc3RyaW5nLW5vZGUgc3RyaW5nLW5vZGVzKQorICAgICAgKGxldCAoKHN0cmluZy1iZWcgKHRy ZWVzaXQtbm9kZS1zdGFydCBzdHJpbmctbm9kZSkpCisgICAgICAgICAgICAoc3RyaW5nLWVuZCAo dHJlZXNpdC1ub2RlLWVuZCBzdHJpbmctbm9kZSkpKQorICAgICAgICAod2hlbiAob3IgaWdub3Jl LWludGVycG9sYXRpb24KKyAgICAgICAgICAgICAgICAgIChlcXVhbCAodHJlZXNpdC1ub2RlLXR5 cGUgc3RyaW5nLW5vZGUpICJzdHJpbmdfc3RhcnQiKSkKKyAgICAgICAgICA7OyBEb24ndCBoaWdo bGlnaHQgc3RyaW5nIHByZWZpeGVzIGxpa2UgZi9yL2IuCisgICAgICAgICAgKHNhdmUtZXhjdXJz aW9uCisgICAgICAgICAgICAoZ290by1jaGFyIHN0cmluZy1iZWcpCisgICAgICAgICAgICAod2hl biAocmUtc2VhcmNoLWZvcndhcmQgIltcIiddIiBzdHJpbmctZW5kIHQpCisgICAgICAgICAgICAg IChzZXRxIHN0cmluZy1iZWcgKG1hdGNoLWJlZ2lubmluZyAwKSkpKSkKKworICAgICAgICAodHJl ZXNpdC1mb250aWZ5LXdpdGgtb3ZlcnJpZGUKKyAgICAgICAgIHN0cmluZy1iZWcgc3RyaW5nLWVu ZCBmYWNlIG92ZXJyaWRlIHN0YXJ0IGVuZCkpKSkpCisKKyhkZWZ1biBweXRob24tLXRyZWVzaXQt Zm9udGlmeS11bmlvbi10eXBlcyAobm9kZSBvdmVycmlkZSBzdGFydCBlbmQgJm9wdGlvbmFsIHR5 cGUtcmVnZXggJnJlc3QgXykKKyAgIkZvbnRpZnkgbmVzdGVkIHVuaW9uIHR5cGVzIGluIHRoZSB0 eXBlIGhpbnRzLgorRm9yIGV4YW1scGUsIEx2bDEgfCBMdmwyW0x2bDNbTHZsNFtMdmw1IHwgTm9u ZV1dLCBMdmwyXS4gIFRoaXMKK3N0cnVjdHVyZSBpcyByZXByZXNlbnRlZCB2aWEgbmVzdGluZyBi aW5hcnlfb3BlcmF0b3IgYW5kCitzdWJzY3JpcHQgbm9kZXMuICBUaGlzIGZ1bmN0aW9uIGl0ZXJh dGVzIG92ZXIgYWxsIGxldmVscyBhbmQKK2hpZ2hsaWdodCBpZGVudGlmaWVyIG5vZGVzLiBJZiBU WVBFLVJFR0VYIGlzIG5vdCBuaWwgZm9udGlmeSB0eXBlCitpZGVudGlmaWVyIG9ubHkgaWYgaXQg bWF0Y2hlcyBhZ2FpbnN0IFRZUEUtUkVHRVguIE5PREUgaXMgdGhlCitiaW5hcnlfb3BlcmF0b3Ig bm9kZS4gIE9WRVJSSURFIGlzIHRoZSBvdmVycmlkZSBmbGFnIGRlc2NyaWJlZCBpbgorYHRyZWVz aXQtZm9udC1sb2NrLXJ1bGVzJy4gIFNUQVJUIGFuZCBFTkQgbWFyayB0aGUgcmVnaW9uIHRvIGJl Citmb250aWZpZWQuIgorICAoZG9saXN0IChjaGlsZCAodHJlZXNpdC1ub2RlLWNoaWxkcmVuIG5v ZGUgdCkpCisgICAgKGxldCAoZm9udC1ub2RlKQorICAgICAgKHBjYXNlICh0cmVlc2l0LW5vZGUt dHlwZSBjaGlsZCkKKyAgICAgICAgKChvciAiaWRlbnRpZmllciIgIm5vbmUiKQorICAgICAgICAg KHNldHEgZm9udC1ub2RlIGNoaWxkKSkKKyAgICAgICAgKCJhdHRyaWJ1dGUiCisgICAgICAgICAo d2hlbi1sZXQgKCh0eXBlLW5vZGUgKHRyZWVzaXQtbm9kZS1jaGlsZC1ieS1maWVsZC1uYW1lIGNo aWxkICJhdHRyaWJ1dGUiKSkpCisgICAgICAgICAgIChzZXRxIGZvbnQtbm9kZSB0eXBlLW5vZGUp KSkKKyAgICAgICAgKChvciAiYmluYXJ5X29wZXJhdG9yIiAic3Vic2NyaXB0IikKKyAgICAgICAg IChweXRob24tLXRyZWVzaXQtZm9udGlmeS11bmlvbi10eXBlcyBjaGlsZCBvdmVycmlkZSBzdGFy dCBlbmQgdHlwZS1yZWdleCkpKQorCisgICAgICAod2hlbiAoYW5kIGZvbnQtbm9kZQorICAgICAg ICAgICAgICAgICAob3IgKG51bGwgdHlwZS1yZWdleCkKKyAgICAgICAgICAgICAgICAgICAgIChs ZXQgKChjYXNlLWZvbGQtc2VhcmNoIG5pbCkpCisgICAgICAgICAgICAgICAgICAgICAgIChzdHJp bmctbWF0Y2gtcCB0eXBlLXJlZ2V4ICh0cmVlc2l0LW5vZGUtdGV4dCBmb250LW5vZGUpKSkpKQor ICAgICAgICAodHJlZXNpdC1mb250aWZ5LXdpdGgtb3ZlcnJpZGUKKyAgICAgICAgICh0cmVlc2l0 LW5vZGUtc3RhcnQgZm9udC1ub2RlKSAodHJlZXNpdC1ub2RlLWVuZCBmb250LW5vZGUpCisgICAg ICAgICAnZm9udC1sb2NrLXR5cGUtZmFjZSBvdmVycmlkZSBzdGFydCBlbmQpKSkpKQorCisoZGVm dW4gcHl0aG9uLS10cmVlc2l0LWZvbnRpZnktdW5pb24tdHlwZXMtc3RyaWN0IChub2RlIG92ZXJy aWRlIHN0YXJ0IGVuZCAmcmVzdCBfKQorICAiRm9udGlmeSBuZXN0ZWQgdW5pb24gdHlwZXMuCitT YW1lIGFzIGBweXRob24tLXRyZWVzaXQtZm9udGlmeS11bmlvbi10eXBlcycgYnV0IHR5cGUgaWRl bnRpZmllcgorc2hvdWxkIG1hdGNoIGFnYWluc3QgYHB5dGhvbi0tdHJlZXNpdC10eXBlLXJlZ2V4 Jy4gIEZvciBOT0RFLAorT1ZFUlJJREUsIFNUQVJUIGFuZCBFTkQgZGVzY3JpcHRpb24gc2VlCitg cHl0aG9uLS10cmVlc2l0LWZvbnRpZnktdW5pb24tdHlwZXMnLiIKKyAgKHB5dGhvbi0tdHJlZXNp dC1mb250aWZ5LXVuaW9uLXR5cGVzIG5vZGUgb3ZlcnJpZGUgc3RhcnQgZW5kIHB5dGhvbi0tdHJl ZXNpdC10eXBlLXJlZ2V4KSkKKworKGRlZnVuIHB5dGhvbi0tdHJlZXNpdC1mb250aWZ5LWRvdHRl ZC1kZWNvcmF0b3IgKG5vZGUgb3ZlcnJpZGUgc3RhcnQgZW5kICZyZXN0IF8pCisgICJGb250aWZ5 IGRvdHRlZCBkZWNvcmF0b3JzLgorRm9yIGV4YW1wbGUgQHB5dGVzLm1hcmsuc2tpcC4gIEl0ZXJh dGUgb3ZlciBhbGwgbmVzdGVkIGF0dHJpYnV0ZQorbm9kZXMgYW5kIGhpZ2hsaWdodCBpZGVudGlm aWVyIG5vZGVzLiAgTk9ERSBpcyB0aGUgZmlyc3QgYXR0cmlidXRlCitub2RlLiAgT1ZFUlJJREUg aXMgdGhlIG92ZXJyaWRlIGZsYWcgZGVzY3JpYmVkIGluCitgdHJlZXNpdC1mb250LWxvY2stcnVs ZXMnLiAgU1RBUlQgYW5kIEVORCBtYXJrIHRoZSByZWdpb24gdG8gYmUKIGZvbnRpZmllZC4iCi0g IDs7IFRoaXMgaXMga2luZCBvZiBhIGhhY2ssIGl0IGJhc2ljYWxseSByZW1vdmVzIHRoZSBmYWNl IGFwcGxpZWQgYnkKLSAgOzsgdGhlIHN0cmluZyBmZWF0dXJlLCBzbyB0aGF0IGZvbGxvd2luZyBm ZWF0dXJlcyBjYW4gYXBwbHkgdGhlaXIKLSAgOzsgZmFjZS4KLSAgKGxldCAoKG4tc3RhcnQgKHRy ZWVzaXQtbm9kZS1zdGFydCBub2RlKSkKLSAgICAgICAgKG4tZW5kICh0cmVlc2l0LW5vZGUtZW5k IG5vZGUpKSkKLSAgICAocmVtb3ZlLXRleHQtcHJvcGVydGllcwotICAgICAobWF4IHN0YXJ0IG4t c3RhcnQpIChtaW4gZW5kIG4tZW5kKSAnKGZhY2UpKSkpCisgIChkb2xpc3QgKGNoaWxkICh0cmVl c2l0LW5vZGUtY2hpbGRyZW4gbm9kZSB0KSkKKyAgICAocGNhc2UgKHRyZWVzaXQtbm9kZS10eXBl IGNoaWxkKQorICAgICAgKCJpZGVudGlmaWVyIgorICAgICAgICh0cmVlc2l0LWZvbnRpZnktd2l0 aC1vdmVycmlkZQorICAgICAgICAodHJlZXNpdC1ub2RlLXN0YXJ0IGNoaWxkKSAodHJlZXNpdC1u b2RlLWVuZCBjaGlsZCkKKyAgICAgICAgJ2ZvbnQtbG9jay10eXBlLWZhY2Ugb3ZlcnJpZGUgc3Rh cnQgZW5kKSkKKyAgICAgICgiYXR0cmlidXRlIgorICAgICAgIChweXRob24tLXRyZWVzaXQtZm9u dGlmeS1kb3R0ZWQtZGVjb3JhdG9yIGNoaWxkIG92ZXJyaWRlIHN0YXJ0IGVuZCkpKSkpCiAKIChk ZWZ2YXIgcHl0aG9uLS10cmVlc2l0LXNldHRpbmdzCiAgICh0cmVlc2l0LWZvbnQtbG9jay1ydWxl cwpAQCAtMTEwMywxNCArMTE3Niw5IEBAIHB5dGhvbi0tdHJlZXNpdC1zZXR0aW5ncwogCiAgICA6 ZmVhdHVyZSAnc3RyaW5nCiAgICA6bGFuZ3VhZ2UgJ3B5dGhvbgotICAgJygoc3RyaW5nKSBAcHl0 aG9uLS10cmVlc2l0LWZvbnRpZnktc3RyaW5nKQorICAgJygoc3RyaW5nKSBAcHl0aG9uLS10cmVl c2l0LWZvbnRpZnktc3RyaW5nCisgICAgIChpbnRlcnBvbGF0aW9uIFsieyIgIn0iXSBAZm9udC1s b2NrLW1pc2MtcHVuY3R1YXRpb24tZmFjZSkpCiAKLSAgIDs7IEhBQ0s6IFRoaXMgZmVhdHVyZSBt dXN0IGNvbWUgYWZ0ZXIgdGhlIHN0cmluZyBmZWF0dXJlIGFuZCBiZWZvcmUKLSAgIDs7IG90aGVy IGZlYXR1cmVzLiAgTWF5YmUgd2Ugc2hvdWxkIG1ha2Ugc3RyaW5nLWludGVycG9sYXRpb24gYW4K LSAgIDs7IG9wdGlvbiByYXRoZXIgdGhhbiBhIGZlYXR1cmUuCi0gICA6ZmVhdHVyZSAnc3RyaW5n LWludGVycG9sYXRpb24KLSAgIDpsYW5ndWFnZSAncHl0aG9uCi0gICAnKChpbnRlcnBvbGF0aW9u KSBAcHl0aG9uLS10cmVlc2l0LWZvbnRpZnktc3RyaW5nLWludGVycG9sYXRpb24pCiAKICAgIDpm ZWF0dXJlICdrZXl3b3JkCiAgICA6bGFuZ3VhZ2UgJ3B5dGhvbgpAQCAtMTEyNiwxMiArMTE5NCw2 IEBAIHB5dGhvbi0tdHJlZXNpdC1zZXR0aW5ncwogICAgICAgbmFtZTogKGlkZW50aWZpZXIpIEBm b250LWxvY2stdHlwZS1mYWNlKQogICAgICAocGFyYW1ldGVycyAoaWRlbnRpZmllcikgQGZvbnQt bG9jay12YXJpYWJsZS1uYW1lLWZhY2UpKQogCi0gICA6ZmVhdHVyZSAnZnVuY3Rpb24KLSAgIDps YW5ndWFnZSAncHl0aG9uCi0gICAnKChjYWxsIGZ1bmN0aW9uOiAoaWRlbnRpZmllcikgQGZvbnQt bG9jay1mdW5jdGlvbi1jYWxsLWZhY2UpCi0gICAgIChjYWxsIGZ1bmN0aW9uOiAoYXR0cmlidXRl Ci0gICAgICAgICAgICAgICAgICAgICAgYXR0cmlidXRlOiAoaWRlbnRpZmllcikgQGZvbnQtbG9j ay1mdW5jdGlvbi1jYWxsLWZhY2UpKSkKLQogICAgOmZlYXR1cmUgJ2J1aWx0aW4KICAgIDpsYW5n dWFnZSAncHl0aG9uCiAgICBgKCgoaWRlbnRpZmllcikgQGZvbnQtbG9jay1idWlsdGluLWZhY2UK QEAgLTExNDIsNiArMTIwNCwxOSBAQCBweXRob24tLXRyZWVzaXQtc2V0dGluZ3MKICAgICAgICAg ICAgICAgICAgICAgICBlb2wpKQogICAgICAgICAgICAgICBAZm9udC1sb2NrLWJ1aWx0aW4tZmFj ZSkpKQogCisgICA6ZmVhdHVyZSAnZGVjb3JhdG9yCisgICA6bGFuZ3VhZ2UgJ3B5dGhvbgorICAg JygoZGVjb3JhdG9yICJAIiBAZm9udC1sb2NrLXR5cGUtZmFjZSkKKyAgICAgKGRlY29yYXRvciAo Y2FsbCBmdW5jdGlvbjogKGlkZW50aWZpZXIpIEBmb250LWxvY2stdHlwZS1mYWNlKSkKKyAgICAg KGRlY29yYXRvciAoaWRlbnRpZmllcikgQGZvbnQtbG9jay10eXBlLWZhY2UpCisgICAgIChkZWNv cmF0b3IgWyhhdHRyaWJ1dGUpIChjYWxsIChhdHRyaWJ1dGUpKV0gQHB5dGhvbi0tdHJlZXNpdC1m b250aWZ5LWRvdHRlZC1kZWNvcmF0b3IpKQorCisgICA6ZmVhdHVyZSAnZnVuY3Rpb24KKyAgIDps YW5ndWFnZSAncHl0aG9uCisgICAnKChjYWxsIGZ1bmN0aW9uOiAoaWRlbnRpZmllcikgQGZvbnQt bG9jay1mdW5jdGlvbi1jYWxsLWZhY2UpCisgICAgIChjYWxsIGZ1bmN0aW9uOiAoYXR0cmlidXRl CisgICAgICAgICAgICAgICAgICAgICAgYXR0cmlidXRlOiAoaWRlbnRpZmllcikgQGZvbnQtbG9j ay1mdW5jdGlvbi1jYWxsLWZhY2UpKSkKKwogICAgOmZlYXR1cmUgJ2NvbnN0YW50CiAgICA6bGFu Z3VhZ2UgJ3B5dGhvbgogICAgJyhbKHRydWUpIChmYWxzZSkgKG5vbmUpXSBAZm9udC1sb2NrLWNv bnN0YW50LWZhY2UpCkBAIC0xMTUzLDMwICsxMjI4LDgzIEBAIHB5dGhvbi0tdHJlZXNpdC1zZXR0 aW5ncwogICAgICAgICAgICAgICAgICBAZm9udC1sb2NrLXZhcmlhYmxlLW5hbWUtZmFjZSkKICAg ICAgKGFzc2lnbm1lbnQgbGVmdDogKGF0dHJpYnV0ZQogICAgICAgICAgICAgICAgICAgICAgICAg YXR0cmlidXRlOiAoaWRlbnRpZmllcikKLSAgICAgICAgICAgICAgICAgICAgICAgIEBmb250LWxv Y2stcHJvcGVydHktdXNlLWZhY2UpKQotICAgICAocGF0dGVybl9saXN0IChpZGVudGlmaWVyKQor ICAgICAgICAgICAgICAgICAgICAgICAgQGZvbnQtbG9jay12YXJpYWJsZS1uYW1lLWZhY2UpKQor ICAgICAoYXVnbWVudGVkX2Fzc2lnbm1lbnQgbGVmdDogKGlkZW50aWZpZXIpCisgICAgICAgICAg ICAgICAgICAgICAgICAgICBAZm9udC1sb2NrLXZhcmlhYmxlLW5hbWUtZmFjZSkKKyAgICAgKG5h bWVkX2V4cHJlc3Npb24gbmFtZTogKGlkZW50aWZpZXIpCisgICAgICAgICAgICAgICAgICAgICAg IEBmb250LWxvY2stdmFyaWFibGUtbmFtZS1mYWNlKQorICAgICAocGF0dGVybl9saXN0IFsoaWRl bnRpZmllcikKKyAgICAgICAgICAgICAgICAgICAgKGxpc3Rfc3BsYXRfcGF0dGVybiAoaWRlbnRp ZmllcikpXQogICAgICAgICAgICAgICAgICAgIEBmb250LWxvY2stdmFyaWFibGUtbmFtZS1mYWNl KQotICAgICAodHVwbGVfcGF0dGVybiAoaWRlbnRpZmllcikKKyAgICAgKHR1cGxlX3BhdHRlcm4g WyhpZGVudGlmaWVyKQorICAgICAgICAgICAgICAgICAgICAgKGxpc3Rfc3BsYXRfcGF0dGVybiAo aWRlbnRpZmllcikpXQogICAgICAgICAgICAgICAgICAgICBAZm9udC1sb2NrLXZhcmlhYmxlLW5h bWUtZmFjZSkKLSAgICAgKGxpc3RfcGF0dGVybiAoaWRlbnRpZmllcikKLSAgICAgICAgICAgICAg ICAgICBAZm9udC1sb2NrLXZhcmlhYmxlLW5hbWUtZmFjZSkKLSAgICAgKGxpc3Rfc3BsYXRfcGF0 dGVybiAoaWRlbnRpZmllcikKLSAgICAgICAgICAgICAgICAgICAgICAgICBAZm9udC1sb2NrLXZh cmlhYmxlLW5hbWUtZmFjZSkpCisgICAgIChsaXN0X3BhdHRlcm4gWyhpZGVudGlmaWVyKQorICAg ICAgICAgICAgICAgICAgICAobGlzdF9zcGxhdF9wYXR0ZXJuIChpZGVudGlmaWVyKSldCisgICAg ICAgICAgICAgICAgICAgQGZvbnQtbG9jay12YXJpYWJsZS1uYW1lLWZhY2UpKQogCi0gICA6ZmVh dHVyZSAnZGVjb3JhdG9yCisgICA6ZmVhdHVyZSAndmFyaWFibGUtZGVmaW5pdGlvbgogICAgOmxh bmd1YWdlICdweXRob24KLSAgICcoKGRlY29yYXRvciAiQCIgQGZvbnQtbG9jay10eXBlLWZhY2Up Ci0gICAgIChkZWNvcmF0b3IgKGNhbGwgZnVuY3Rpb246IChpZGVudGlmaWVyKSBAZm9udC1sb2Nr LXR5cGUtZmFjZSkpCi0gICAgIChkZWNvcmF0b3IgKGlkZW50aWZpZXIpIEBmb250LWxvY2stdHlw ZS1mYWNlKSkKKyAgIGAoKGZvcl9zdGF0ZW1lbnQgbGVmdDogKGlkZW50aWZpZXIpCisgICAgICBA Zm9udC1sb2NrLXZhcmlhYmxlLW5hbWUtZmFjZSkKKyAgICAgKGZvcl9pbl9jbGF1c2UgbGVmdDog KGlkZW50aWZpZXIpCisgICAgICAgICAgICAgICAgICAgIEBmb250LWxvY2stdmFyaWFibGUtbmFt ZS1mYWNlKQorICAgICAoYXNfcGF0dGVybl90YXJnZXQgKGlkZW50aWZpZXIpCisgICAgICAgICAg ICAgICAgICAgICAgICBAZm9udC1sb2NrLXZhcmlhYmxlLW5hbWUtZmFjZSkKKyAgICAgKGNhc2Vf cGF0dGVybiAoYXNfcGF0dGVybiAiYXMiIDphbmNob3IgKGlkZW50aWZpZXIpCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgQGZvbnQtbG9jay12YXJpYWJsZS1uYW1lLWZhY2UpKSkKKwog CiAgICA6ZmVhdHVyZSAndHlwZQogICAgOmxhbmd1YWdlICdweXRob24KKyAgIDs7IE92ZXJyaWRl IGJ1aWx0LWluIGZhY2VzIHdoZW4gZGljdC9saXN0IGFyZSB1c2VkIGZvciB0eXBlIGhpbnRzLgor ICAgOm92ZXJyaWRlIHQKICAgIGAoKChpZGVudGlmaWVyKSBAZm9udC1sb2NrLXR5cGUtZmFjZQog ICAgICAgKDptYXRjaCAsKHJ4LXRvLXN0cmluZwogICAgICAgICAgICAgICAgIGAoc2VxIGJvbCAo b3IgLEBweXRob24tLXRyZWVzaXQtZXhjZXB0aW9ucykKLSAgICAgICAgICAgICAgICAgICAgICBl b2wpKQorICAgICAgICAgICAgICAgICAgZW9sKSkKICAgICAgICAgICAgICAgQGZvbnQtbG9jay10 eXBlLWZhY2UpKQotICAgICAodHlwZSAoaWRlbnRpZmllcikgQGZvbnQtbG9jay10eXBlLWZhY2Up KQorICAgICAodHlwZSBbKGlkZW50aWZpZXIpIChub25lKV0gQGZvbnQtbG9jay10eXBlLWZhY2Up CisgICAgICh0eXBlIChhdHRyaWJ1dGUgYXR0cmlidXRlOiAoaWRlbnRpZmllcikgQGZvbnQtbG9j ay10eXBlLWZhY2UpKQorICAgICA7OyBXZSBkb24ndCB3YW50IHRvIGhpZ2hsaWdodCBhIHBhY2th Z2Ugb2YgdGhlIHR5cGUKKyAgICAgOzsgKGUuZy4gcGFjay5DbGFzc05hbWUpLiAgU28gZXhwbGlj aXRseSBleGNsdWRlIHBhdHRlcm5zIHdpdGgKKyAgICAgOzsgYXR0cmlidXRlLCBzaW5jZSB3ZSBo YW5kbGUgZG90dGVkIHR5cGUgbmFtZSBpbiB0aGUgcHJldmlvdXMKKyAgICAgOzsgcnVsZS4gIFRo ZSBmb2xsb3dpbmcgcnVsZSBoYW5kbGUKKyAgICAgOzsgZ2VuZXJpY190eXBlL2xpc3QvdHVwbGUv c3BsYXRfdHlwZSBub2Rlcy4KKyAgICAgKHR5cGUgKF8gIWF0dHJpYnV0ZSBbWyhpZGVudGlmaWVy KSAobm9uZSldIEBmb250LWxvY2stdHlwZS1mYWNlCisgICAgICAgICAgICAgICAgICAgICAgICAg IChhdHRyaWJ1dGUgYXR0cmlidXRlOiAoaWRlbnRpZmllcikgQGZvbnQtbG9jay10eXBlLWZhY2Up IF0pKQorICAgICA7OyBjb2xsZWN0aW9ucy5hYmMuSXRlcmF0b3JbVF0gY2FzZS4KKyAgICAgKHR5 cGUgKHN1YnNjcmlwdCAoYXR0cmlidXRlIGF0dHJpYnV0ZTogKGlkZW50aWZpZXIpIEBmb250LWxv Y2stdHlwZS1mYWNlKSkpCisgICAgIDs7IE5lc3RlZCBvcHRpb25hbCB0eXBlIGhpbnRzLCBlLmcu IHZhbDogTHZsMSB8IEx2bDJbTHZsM1tMdmw0XV0uCisgICAgICh0eXBlIChiaW5hcnlfb3BlcmF0 b3IpIEBweXRob24tLXRyZWVzaXQtZm9udGlmeS11bmlvbi10eXBlcykKKyAgICAgOztjbGFzcyBU eXBlKEJhc2UxLCBTZXF1ZW5jZVtUXSkuCisgICAgIChjbGFzc19kZWZpbml0aW9uCisgICAgICBz dXBlcmNsYXNzZXM6CisgICAgICAoYXJndW1lbnRfbGlzdCBbKGlkZW50aWZpZXIpIEBmb250LWxv Y2stdHlwZS1mYWNlCisgICAgICAgICAgICAgICAgICAgICAgKGF0dHJpYnV0ZSBhdHRyaWJ1dGU6 IChpZGVudGlmaWVyKSBAZm9udC1sb2NrLXR5cGUtZmFjZSkKKyAgICAgICAgICAgICAgICAgICAg ICAoc3Vic2NyaXB0IChpZGVudGlmaWVyKSBAZm9udC1sb2NrLXR5cGUtZmFjZSkKKyAgICAgICAg ICAgICAgICAgICAgICAoc3Vic2NyaXB0IChhdHRyaWJ1dGUgYXR0cmlidXRlOiAoaWRlbnRpZmll cikgQGZvbnQtbG9jay10eXBlLWZhY2UpKV0pKQorCisgICAgIDs7IFBhdGVybiBtYXRjaGluZzog Y2FzZSBbc3RyKCksIHBhY2swLlR5cGUwKCldLiAgVGFrZSBvbmx5IHRoZQorICAgICA7OyBsYXN0 IGlkZW50aWZpZXIuCisgICAgIChjbGFzc19wYXR0ZXJuIChkb3R0ZWRfbmFtZSAoaWRlbnRpZmll cikgQGZvbnQtbG9jay10eXBlLWZhY2UgOmFuY2hvcikpCisKKworICAgICA7OyBIaWdobGlnaHQg dGhlIHNlY29uZCBhcmd1bWVudCBhcyBhIHR5cGUgaW4gaXNpbnN0YW5jZS9pc3N1YmNsYXNzLgor ICAgICAoKGNhbGwgZnVuY3Rpb246IChpZGVudGlmaWVyKSBAZnVuYy1uYW1lCisgICAgICAgICAg ICAoYXJndW1lbnRfbGlzdCA6YW5jaG9yIChfKQorICAgICAgICAgICAgICAgICAgICAgICAgICAg WyhpZGVudGlmaWVyKSBAZm9udC1sb2NrLXR5cGUtZmFjZQorICAgICAgICAgICAgICAgICAgICAg ICAgICAgIChhdHRyaWJ1dGUgYXR0cmlidXRlOiAoaWRlbnRpZmllcikgQGZvbnQtbG9jay10eXBl LWZhY2UpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHR1cGxlIChpZGVudGlmaWVyKSBA Zm9udC1sb2NrLXR5cGUtZmFjZSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAodHVwbGUg KGF0dHJpYnV0ZSBhdHRyaWJ1dGU6IChpZGVudGlmaWVyKSBAZm9udC1sb2NrLXR5cGUtZmFjZSkp XQorICAgICAgICAgICAgICAgICAgICAgICAgICAgKDptYXRjaCAscHl0aG9uLS10cmVlc2l0LXR5 cGUtcmVnZXggQGZvbnQtbG9jay10eXBlLWZhY2UpKSkKKyAgICAgICg6bWF0Y2ggIl5pc1xcKD86 aW5zdGFuY2VcXHxzdWJjbGFzc1xcKSQiIEBmdW5jLW5hbWUpKQorCisgICAgIDs7IGlzaW5zdGFu Y2UodCwgaW50fGZsb2F0KS4KKyAgICAgKChjYWxsIGZ1bmN0aW9uOiAoaWRlbnRpZmllcikgQGZ1 bmMtbmFtZQorICAgICAgICAgICAgKGFyZ3VtZW50X2xpc3QgOmFuY2hvciAoXykKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgIChiaW5hcnlfb3BlcmF0b3IpIEBweXRob24tLXRyZWVzaXQtZm9u dGlmeS11bmlvbi10eXBlcy1zdHJpY3QpKQorICAgICAgKDptYXRjaCAiXmlzXFwoPzppbnN0YW5j ZVxcfHN1YmNsYXNzXFwpJCIgQGZ1bmMtbmFtZSkpKQogCiAgICA6ZmVhdHVyZSAnZXNjYXBlLXNl cXVlbmNlCiAgICA6bGFuZ3VhZ2UgJ3B5dGhvbgpAQCAtNjg0MSw3ICs2OTY5LDcgQEAgcHl0aG9u LXRzLW1vZGUKICAgICAoc2V0cS1sb2NhbCB0cmVlc2l0LWZvbnQtbG9jay1mZWF0dXJlLWxpc3QK ICAgICAgICAgICAgICAgICAnKCggY29tbWVudCBkZWZpbml0aW9uKQogICAgICAgICAgICAgICAg ICAgKCBrZXl3b3JkIHN0cmluZyB0eXBlKQotICAgICAgICAgICAgICAgICAgKCBhc3NpZ25tZW50 IGJ1aWx0aW4gY29uc3RhbnQgZGVjb3JhdG9yCisgICAgICAgICAgICAgICAgICAoIGFzc2lnbm1l bnQgdmFyaWFibGUtZGVmaW5pdGlvbiBidWlsdGluIGNvbnN0YW50IGRlY29yYXRvcgogICAgICAg ICAgICAgICAgICAgICBlc2NhcGUtc2VxdWVuY2UgbnVtYmVyIHN0cmluZy1pbnRlcnBvbGF0aW9u ICkKICAgICAgICAgICAgICAgICAgICggYnJhY2tldCBkZWxpbWl0ZXIgZnVuY3Rpb24gb3BlcmF0 b3IgdmFyaWFibGUgcHJvcGVydHkpKSkKICAgICAoc2V0cS1sb2NhbCB0cmVlc2l0LWZvbnQtbG9j ay1zZXR0aW5ncyBweXRob24tLXRyZWVzaXQtc2V0dGluZ3MpCmRpZmYgLS1naXQgYS90ZXN0L2xp c3AvcHJvZ21vZGVzL3B5dGhvbi10ZXN0cy5lbCBiL3Rlc3QvbGlzcC9wcm9nbW9kZXMvcHl0aG9u LXRlc3RzLmVsCmluZGV4IGE0NGExMTg5NmYuLmZjNjY3YmE3M2QgMTAwNjQ0Ci0tLSBhL3Rlc3Qv bGlzcC9wcm9nbW9kZXMvcHl0aG9uLXRlc3RzLmVsCisrKyBiL3Rlc3QvbGlzcC9wcm9nbW9kZXMv cHl0aG9uLXRlc3RzLmVsCkBAIC03Mjk5LDYgKzcyOTksMzczIEBAIHB5dGhvbi10ZXN0cy0tZmx5 bWFrZS1jb21tYW5kLW91dHB1dC1wYXR0ZXJuCiAgICAgICAgICAgICAgICAgICAgICAgICAgIlVu dXNlZCBpbXBvcnQgYS5iLmMgKHVudXNlZC1pbXBvcnQpIgogICAgICAgICAgICAgICAgICAgICAg ICAiVzA2MTE6IFVudXNlZCBpbXBvcnQgYS5iLmMgKHVudXNlZC1pbXBvcnQpIikpKSkpKQogCis7 OzsgcHl0aG9uLXRzLW1vZGUgZm9udC1sb2NrIHRlc3RzCisKKyhkZWZtYWNybyBweXRob24tdHMt dGVzdHMtd2l0aC10ZW1wLWJ1ZmZlciAoY29udGVudHMgJnJlc3QgYm9keSkKKyAgIkNyZWF0ZSBh IGBweXRob24tdHMtbW9kZScgZW5hYmxlZCB0ZW1wIGJ1ZmZlciB3aXRoIENPTlRFTlRTLgorQk9E WSBpcyBjb2RlIHRvIGJlIGV4ZWN1dGVkIHdpdGhpbiB0aGUgdGVtcCBidWZmZXIuICBQb2ludCBp cworYWx3YXlzIGxvY2F0ZWQgYXQgdGhlIGJlZ2lubmluZyBvZiBidWZmZXIuIgorICAoZGVjbGFy ZSAoaW5kZW50IDEpIChkZWJ1ZyB0KSkKKyAgYCh3aXRoLXRlbXAtYnVmZmVyCisgICAgIChza2lw LXVubGVzcyAodHJlZXNpdC1yZWFkeS1wICdweXRob24pKQorICAgICAocmVxdWlyZSAncHl0aG9u KQorICAgICAobGV0ICgocHl0aG9uLWluZGVudC1ndWVzcy1pbmRlbnQtb2Zmc2V0IG5pbCkpCisg ICAgICAgKHB5dGhvbi10cy1tb2RlKQorICAgICAgIChzZXRvcHQgdHJlZXNpdC1mb250LWxvY2st bGV2ZWwgMykKKyAgICAgICAoaW5zZXJ0ICxjb250ZW50cykKKyAgICAgICAoZm9udC1sb2NrLWVu c3VyZSkKKyAgICAgICAoZ290by1jaGFyIChwb2ludC1taW4pKQorICAgICAgICxAYm9keSkpKQor CisoZXJ0LWRlZnRlc3QgcHl0aG9uLXRzLW1vZGUtY29tcG91bmQta2V5d29yZHMtZmFjZSAoKQor ICAoZG9saXN0ICh0ZXN0ICcoImlzIG5vdCIgIm5vdCBpbiIpKQorICAgIChweXRob24tdHMtdGVz dHMtd2l0aC10ZW1wLWJ1ZmZlcgorICAgICAoY29uY2F0ICJ0ICIgdGVzdCAiIHQiKQorICAgICAo Zm9yd2FyZC10by13b3JkKQorICAgICAoc2hvdWxkIChlcSAoZmFjZS1hdC1wb2ludCkgZm9udC1s b2NrLWtleXdvcmQtZmFjZSkpCisgICAgIChmb3J3YXJkLXRvLXdvcmQpCisgICAgIChzaG91bGQg KGVxIChmYWNlLWF0LXBvaW50KSBmb250LWxvY2sta2V5d29yZC1mYWNlKSkpKSkKKworKGVydC1k ZWZ0ZXN0IHB5dGhvbi10cy1tb2RlLXZhci1mb3ItbG9vcC1mYWNlLTEgKCkKKyAgKHB5dGhvbi10 cy10ZXN0cy13aXRoLXRlbXAtYnVmZmVyCisgICAiZm9yIHZhciBpbiByYW5nZSgzKToiCisgICAo ZG9saXN0ICh0ZXN0ICcoInZhciIpKQorICAgICAoc2VhcmNoLWZvcndhcmQgdGVzdCkKKyAgICAg KGdvdG8tY2hhciAobWF0Y2gtYmVnaW5uaW5nIDApKQorICAgICAoc2hvdWxkIChlcSAoZmFjZS1h dC1wb2ludCkgZm9udC1sb2NrLXZhcmlhYmxlLW5hbWUtZmFjZSkpKSkpCisKKyhlcnQtZGVmdGVz dCBweXRob24tdHMtbW9kZS12YXItZm9yLWxvb3AtZmFjZS0yICgpCisgIChweXRob24tdHMtdGVz dHMtd2l0aC10ZW1wLWJ1ZmZlcgorICAgImZvciB2YXIxLCAodmFyMiwgdmFyMykgaW4gW106Igor ICAgKGRvbGlzdCAodGVzdCAnKCJ2YXIxIiAidmFyMiIgInZhcjMiKSkKKyAgICAgKHNlYXJjaC1m b3J3YXJkIHRlc3QpCisgICAgIChnb3RvLWNoYXIgKG1hdGNoLWJlZ2lubmluZyAwKSkKKyAgICAg KHNob3VsZCAoZXEgKGZhY2UtYXQtcG9pbnQpIGZvbnQtbG9jay12YXJpYWJsZS1uYW1lLWZhY2Up KSkpKQorCisoZXJ0LWRlZnRlc3QgcHl0aG9uLXRzLW1vZGUtdmFyLWZvci1sb29wLWZhY2UtMyAo KQorICAocHl0aG9uLXRzLXRlc3RzLXdpdGgtdGVtcC1idWZmZXIKKyAgICJbdmFyIGZvciB2YXIg aW4gW10gaWYgdmFyIF0iCisgICAoc2VhcmNoLWZvcndhcmQgInZhciIpCisgICAoZ290by1jaGFy IChtYXRjaC1iZWdpbm5pbmcgMCkpCisgICAoc2hvdWxkIChub3QgKGVxIChmYWNlLWF0LXBvaW50 KSBmb250LWxvY2stdmFyaWFibGUtbmFtZS1mYWNlKSkpCisKKyAgIChzZWFyY2gtZm9yd2FyZCAi dmFyIiBuaWwgbmlsIDIpCisgICAoZ290by1jaGFyIChtYXRjaC1iZWdpbm5pbmcgMCkpCisgICAo c2hvdWxkIChlcSAoZmFjZS1hdC1wb2ludCkgZm9udC1sb2NrLXZhcmlhYmxlLW5hbWUtZmFjZSkp CisKKyAgIChzZWFyY2gtZm9yd2FyZCAidmFyIiBuaWwgbmlsIDIpCisgICAoZ290by1jaGFyICht YXRjaC1iZWdpbm5pbmcgMCkpCisgICAoc2hvdWxkIChub3QgKGVxIChmYWNlLWF0LXBvaW50KSBm b250LWxvY2stdmFyaWFibGUtbmFtZS1mYWNlKSkpKSkKKworKGVydC1kZWZ0ZXN0IHB5dGhvbi10 cy1tb2RlLWFzLXBhdHRlcm4tZmFjZS0xICgpCisgIChweXRob24tdHMtdGVzdHMtd2l0aC10ZW1w LWJ1ZmZlcgorICAgInRyeToKKyAgICBwYXNzCitleGNlcHQgRXhjZXB0aW9uIGFzIGV4Y3A6Cisg ICAgcGFzcyIKKworICAgKHNlYXJjaC1mb3J3YXJkICJleGNwIikKKyAgIChnb3RvLWNoYXIgKG1h dGNoLWJlZ2lubmluZyAwKSkKKyAgIChzaG91bGQgKGVxIChmYWNlLWF0LXBvaW50KSBmb250LWxv Y2stdmFyaWFibGUtbmFtZS1mYWNlKSkpKQorCisoZXJ0LWRlZnRlc3QgcHl0aG9uLXRzLW1vZGUt YXMtcGF0dGVybi1mYWNlLTIgKCkKKyAgKHB5dGhvbi10cy10ZXN0cy13aXRoLXRlbXAtYnVmZmVy CisgICAid2l0aCBjdHgoKSBhcyB2YXI6IgorICAgKHNlYXJjaC1mb3J3YXJkICJ2YXIiKQorICAg KGdvdG8tY2hhciAobWF0Y2gtYmVnaW5uaW5nIDApKQorICAgKHNob3VsZCAoZXEgKGZhY2UtYXQt cG9pbnQpIGZvbnQtbG9jay12YXJpYWJsZS1uYW1lLWZhY2UpKSkpCisKKyhlcnQtZGVmdGVzdCBw eXRob24tdHMtbW9kZS1hcy1wYXR0ZXJuLWZhY2UtMyAoKQorICAocHl0aG9uLXRzLXRlc3RzLXdp dGgtdGVtcC1idWZmZXIKKyAgICJ3aXRoIGN0eCgpIGFzIHZhcjoiCisgICAoc2VhcmNoLWZvcndh cmQgInZhciIpCisgICAoZ290by1jaGFyIChtYXRjaC1iZWdpbm5pbmcgMCkpCisgICAoc2hvdWxk IChlcSAoZmFjZS1hdC1wb2ludCkgZm9udC1sb2NrLXZhcmlhYmxlLW5hbWUtZmFjZSkpKSkKKwor KGVydC1kZWZ0ZXN0IHB5dGhvbi10cy1tb2RlLWFzLXBhdHRlcm4tZmFjZS00ICgpCisgIChweXRo b24tdHMtdGVzdHMtd2l0aC10ZW1wLWJ1ZmZlcgorICAgIm1hdGNoIHY6CisgICAgY2FzZSAobGlz dCgpIGFzIGx2YXIsIEluc3QoKSBhcyBpdmFyKToiCisgICAoZG9saXN0ICh0ZXN0ICcoImx2YXIi ICJpdmFyIikpCisgICAgIChzZWFyY2gtZm9yd2FyZCB0ZXN0KQorICAgICAoZ290by1jaGFyICht YXRjaC1iZWdpbm5pbmcgMCkpCisgICAgIChzaG91bGQgKGVxIChmYWNlLWF0LXBvaW50KSBmb250 LWxvY2stdmFyaWFibGUtbmFtZS1mYWNlKSkpKSkKKworKGVydC1kZWZ0ZXN0IHB5dGhvbi10cy1t b2RlLW5hbWVkLWFzc2lnbmVtZW50LWZhY2UtMSAoKQorICAocHl0aG9uLXRzLXRlc3RzLXdpdGgt dGVtcC1idWZmZXIKKyAgICJ2YXIgOj0gMyIKKyAgIChzaG91bGQgKGVxIChmYWNlLWF0LXBvaW50 KSBmb250LWxvY2stdmFyaWFibGUtbmFtZS1mYWNlKSkpKQorCisoZXJ0LWRlZnRlc3QgcHl0aG9u LXRzLW1vZGUtYXNzaWduZW1lbnQtZmFjZS0yICgpCisgIChweXRob24tdHMtdGVzdHMtd2l0aC10 ZW1wLWJ1ZmZlcgorICAgInZhciwgKnJlc3QgPSBjYWxsKCkiCisgICAoZG9saXN0ICh0ZXN0ICco InZhciIgInJlc3QiKSkKKyAgICAgKHNlYXJjaC1mb3J3YXJkIHRlc3QpCisgICAgIChnb3RvLWNo YXIgKG1hdGNoLWJlZ2lubmluZyAwKSkKKyAgICAgKHNob3VsZCAoZXEgKGZhY2UtYXQtcG9pbnQp IGZvbnQtbG9jay12YXJpYWJsZS1uYW1lLWZhY2UpKSkpCisKKyAgKHB5dGhvbi10cy10ZXN0cy13 aXRoLXRlbXAtYnVmZmVyCisgICAiZGVmIGZ1bmMoKmFyZ3MpOiIKKyAgIChkb2xpc3QgKHRlc3Qg JygiYXJncyIpKQorICAgICAoc2VhcmNoLWZvcndhcmQgdGVzdCkKKyAgICAgKGdvdG8tY2hhciAo bWF0Y2gtYmVnaW5uaW5nIDApKQorICAgICAoc2hvdWxkIChub3QgKGVxIChmYWNlLWF0LXBvaW50 KSBmb250LWxvY2stdmFyaWFibGUtbmFtZS1mYWNlKSkpKSkpCisKKyhlcnQtZGVmdGVzdCBweXRo b24tdHMtbW9kZS1uZXN0ZWQtdHlwZXMtZmFjZS0xICgpCisgIChweXRob24tdHMtdGVzdHMtd2l0 aC10ZW1wLWJ1ZmZlcgorICAgImRlZiBmdW5jKHY6ZGljdFsgbGlzdFsgdHVwbGVbc3RyXSBdLCBp bnQgfCBOb25lXSB8IE5vbmUpOiIKKyAgIChkb2xpc3QgKHRlc3QgJygiZGljdCIgImxpc3QiICJ0 dXBsZSIgInN0ciIgImludCIgIk5vbmUiICJOb25lIikpCisgICAgIChzZWFyY2gtZm9yd2FyZCB0 ZXN0KQorICAgICAoZ290by1jaGFyIChtYXRjaC1iZWdpbm5pbmcgMCkpCisgICAgIChzaG91bGQg KGVxIChmYWNlLWF0LXBvaW50KSBmb250LWxvY2stdHlwZS1mYWNlKSkpKSkKKworKGVydC1kZWZ0 ZXN0IHB5dGhvbi10cy1tb2RlLXVuaW9uLXR5cGVzLWZhY2UtMSAoKQorICAocHl0aG9uLXRzLXRl c3RzLXdpdGgtdGVtcC1idWZmZXIKKyAgICJkZWYgZih2YWw6IHR1cGxlW3R1cGxlLCBsaXN0W0x2 bDEgfCBMdmwyW0x2bDNbTHZsNFtMdmw1IHwgTm9uZV1dLCBMdmwyXV1dKToiCisgICAoZG9saXN0 ICh0ZXN0ICcoInR1cGxlIiAidHVwbGUiICJsaXN0IiAiTHZsMSIgIkx2bDIiICJMdmwzIiAiTHZs NCIgIkx2bDUiICJOb25lIiAiTHZsMiIpKQorICAgICAoc2VhcmNoLWZvcndhcmQgdGVzdCkKKyAg ICAgKGdvdG8tY2hhciAobWF0Y2gtYmVnaW5uaW5nIDApKQorICAgICAoc2hvdWxkIChlcSAoZmFj ZS1hdC1wb2ludCkgZm9udC1sb2NrLXR5cGUtZmFjZSkpKSkpCisKKyhlcnQtZGVmdGVzdCBweXRo b24tdHMtbW9kZS11bmlvbi10eXBlcy1mYWNlLTIgKCkKKyAgKHB5dGhvbi10cy10ZXN0cy13aXRo LXRlbXAtYnVmZmVyCisgICAiZGVmIGYodmFsOiBUeXBlMCB8IFR5cGUxW1R5cGUyLCBwYWNrMC5U eXBlM10gfCBwYWNrMS5wYWNrMi5UeXBlNCB8IE5vbmUpOiIKKyAgIChkb2xpc3QgKHRlc3QgJygi VHlwZTAiICJUeXBlMSIgIlR5cGUyIiAiVHlwZTMiICJUeXBlNCIgIk5vbmUiKSkKKyAgICAgKHNl YXJjaC1mb3J3YXJkIHRlc3QpCisgICAgIChnb3RvLWNoYXIgKG1hdGNoLWJlZ2lubmluZyAwKSkK KyAgICAgKHNob3VsZCAoZXEgKGZhY2UtYXQtcG9pbnQpIGZvbnQtbG9jay10eXBlLWZhY2UpKSkK KworICAgKGdvdG8tY2hhciAocG9pbnQtbWluKSkKKyAgIChkb2xpc3QgKHRlc3QgJygicGFjazAi ICJwYWNrMSIgInBhY2syIikpCisgICAgIChzZWFyY2gtZm9yd2FyZCB0ZXN0KQorICAgICAoZ290 by1jaGFyIChtYXRjaC1iZWdpbm5pbmcgMCkpCisgICAgIChzaG91bGQgKG5vdCAoZXEgKGZhY2Ut YXQtcG9pbnQpIGZvbnQtbG9jay10eXBlLWZhY2UpKSkpKSkKKworKGVydC1kZWZ0ZXN0IHB5dGhv bi10cy1tb2RlLXR5cGVzLWZhY2UtMSAoKQorICAocHl0aG9uLXRzLXRlc3RzLXdpdGgtdGVtcC1i dWZmZXIKKyAgICJkZWYgZih2YWw6IENhbGxhYmxlW1tUeXBlMF0sIChUeXBlMSwgVHlwZTIpXSk6 IgorICAgKGRvbGlzdCAodGVzdCAnKCJDYWxsYWJsZSIgIlR5cGUwIiAiVHlwZTEiICJUeXBlMiIp KQorICAgICAoc2VhcmNoLWZvcndhcmQgdGVzdCkKKyAgICAgKGdvdG8tY2hhciAobWF0Y2gtYmVn aW5uaW5nIDApKQorICAgICAoc2hvdWxkIChlcSAoZmFjZS1hdC1wb2ludCkgZm9udC1sb2NrLXR5 cGUtZmFjZSkpKSkpCisKKyhlcnQtZGVmdGVzdCBweXRob24tdHMtbW9kZS10eXBlcy1mYWNlLTIg KCkKKyAgKHB5dGhvbi10cy10ZXN0cy13aXRoLXRlbXAtYnVmZmVyCisgICAiZGVmIGFubm90Myh2 YWw6cGFjazAuVHlwZTApLT5wYWNrMS5wYWNrMi5wYWNrMy5UeXBlMToiCisgICAoZG9saXN0ICh0 ZXN0ICcoIlR5cGUwIiAiVHlwZTEiKSkKKyAgICAgKHNlYXJjaC1mb3J3YXJkIHRlc3QpCisgICAg IChnb3RvLWNoYXIgKG1hdGNoLWJlZ2lubmluZyAwKSkKKyAgICAgKHNob3VsZCAoZXEgKGZhY2Ut YXQtcG9pbnQpIGZvbnQtbG9jay10eXBlLWZhY2UpKSkKKyAgIChnb3RvLWNoYXIgKHBvaW50LW1p bikpCisgICAoZG9saXN0ICh0ZXN0ICcoInBhY2swIiAicGFjazEiICJwYWNrMiIgInBhY2szIikp CisgICAgIChzZWFyY2gtZm9yd2FyZCB0ZXN0KQorICAgICAoZ290by1jaGFyIChtYXRjaC1iZWdp bm5pbmcgMCkpCisgICAgIChzaG91bGQgKG5vdCAoZXEgKGZhY2UtYXQtcG9pbnQpIGZvbnQtbG9j ay10eXBlLWZhY2UpKSkpKSkKKworKGVydC1kZWZ0ZXN0IHB5dGhvbi10cy1tb2RlLXR5cGVzLWZh Y2UtMyAoKQorICAocHl0aG9uLXRzLXRlc3RzLXdpdGgtdGVtcC1idWZmZXIKKyAgICJkZWYgYW5u b3QzKHZhbDpjb2xsZWN0aW9ucy5hYmMuSXRlcmF0b3JbVHlwZTBdKToiCisgICAoZG9saXN0ICh0 ZXN0ICcoIkl0ZXJhdG9yIiAiVHlwZTAiKSkKKyAgICAgKHNlYXJjaC1mb3J3YXJkIHRlc3QpCisg ICAgIChnb3RvLWNoYXIgKG1hdGNoLWJlZ2lubmluZyAwKSkKKyAgICAgKHNob3VsZCAoZXEgKGZh Y2UtYXQtcG9pbnQpIGZvbnQtbG9jay10eXBlLWZhY2UpKSkKKyAgIChnb3RvLWNoYXIgKHBvaW50 LW1pbikpCisgICAoZG9saXN0ICh0ZXN0ICcoImNvbGxlY3Rpb25zIiAiYWJjIikpCisgICAgIChz ZWFyY2gtZm9yd2FyZCB0ZXN0KQorICAgICAoZ290by1jaGFyIChtYXRjaC1iZWdpbm5pbmcgMCkp CisgICAgIChzaG91bGQgKG5vdCAoZXEgKGZhY2UtYXQtcG9pbnQpIGZvbnQtbG9jay10eXBlLWZh Y2UpKSkpKSkKKworKGVydC1kZWZ0ZXN0IHB5dGhvbi10cy1tb2RlLWlzaW5zdGFuY2UtdHlwZS1m YWNlLTEgKCkKKyAgKHB5dGhvbi10cy10ZXN0cy13aXRoLXRlbXAtYnVmZmVyCisgICAiaXNpbnN0 YW5jZSh2YXIxLCBwa2cuVHlwZTApCisgICAgaXNpbnN0YW5jZSh2YXIyLCAoc3RyLCBkaWN0LCBU eXBlMSwgdHlwZShOb25lKSkpCisgICAgaXNpbnN0YW5jZSh2YXIzLCBteV90eXBlKCkpIgorCisg ICAoZG9saXN0ICh0ZXN0ICcoInZhcjEiICJwa2ciICJ2YXIyIiAidHlwZSIgIk5vbmUiICJ2YXIz IiAibXlfdHlwZSIpKQorICAgICAobGV0ICgoY2FzZS1mb2xkLXNlYXJjaCBuaWwpKQorICAgICAg IChzZWFyY2gtZm9yd2FyZCB0ZXN0KSkKKyAgICAgKGdvdG8tY2hhciAobWF0Y2gtYmVnaW5uaW5n IDApKQorICAgICAoc2hvdWxkIChub3QgKGVxIChmYWNlLWF0LXBvaW50KSBmb250LWxvY2stdHlw ZS1mYWNlKSkpKQorCisgICAoZ290by1jaGFyIChwb2ludC1taW4pKQorICAgKGRvbGlzdCAodGVz dCAnKCJUeXBlMCIgInN0ciIgImRpY3QiICJUeXBlMSIpKQorICAgICAoc2VhcmNoLWZvcndhcmQg dGVzdCkKKyAgICAgKGdvdG8tY2hhciAobWF0Y2gtYmVnaW5uaW5nIDApKQorICAgICAoc2hvdWxk IChlcSAoZmFjZS1hdC1wb2ludCkgZm9udC1sb2NrLXR5cGUtZmFjZSkpKSkpCisKKyhlcnQtZGVm dGVzdCBweXRob24tdHMtbW9kZS1pc2luc3RhbmNlLXR5cGUtZmFjZS0yICgpCisgIChweXRob24t dHMtdGVzdHMtd2l0aC10ZW1wLWJ1ZmZlcgorICAgImlzc3ViY2xhc3MobXl0eXBlLCBpbnR8bGlz dHxjb2xsZWN0aW9ucy5hYmMuSXRlcmFibGUpIgorICAgKGRvbGlzdCAodGVzdCAnKCJpbnQiICJs aXN0IiAiSXRlcmFibGUiKSkKKyAgICAgKHNlYXJjaC1mb3J3YXJkIHRlc3QpCisgICAgIChnb3Rv LWNoYXIgKG1hdGNoLWJlZ2lubmluZyAwKSkKKyAgICAgKHNob3VsZCAoZXEgKGZhY2UtYXQtcG9p bnQpIGZvbnQtbG9jay10eXBlLWZhY2UpKSkpKQorCisoZXJ0LWRlZnRlc3QgcHl0aG9uLXRzLW1v ZGUtaXNpbnN0YW5jZS10eXBlLWZhY2UtMyAoKQorICAocHl0aG9uLXRzLXRlc3RzLXdpdGgtdGVt cC1idWZmZXIKKyAgICJpc3N1YmNsYXNzKG15dHlwZSwgdHlwZXZhcjEpCisgICAgaXNpbnN0YW5j ZShteXR5cGUsIChUeXBlMSwgdHlwZXZhcjIsIHR1cGxlLCBhYmMuQ29sbCkpCisgICAgaXNpbnN0 YW5jZShteXR5cGUsIHBrZzAuVHlwZTJ8c2VsZi50eXBldmFyM3x0eXBldmFyNCkiCisKKyAgIChk b2xpc3QgKHRlc3QgJygidHlwZXZhcjEiICJ0eXBldmFyMiIgInBrZzAiICJzZWxmIiAidHlwZXZh cjMiICJ0eXBldmFyNCIpKQorICAgICAoc2VhcmNoLWZvcndhcmQgdGVzdCkKKyAgICAgKGdvdG8t Y2hhciAobWF0Y2gtYmVnaW5uaW5nIDApKQorICAgICAoc2hvdWxkIChub3QgKGVxIChmYWNlLWF0 LXBvaW50KSBmb250LWxvY2stdHlwZS1mYWNlKSkpKQorCisgICAoZ290by1jaGFyIChwb2ludC1t aW4pKQorICAgKGRvbGlzdCAodGVzdCAnKCJUeXBlMSIgInR1cGxlIiAiQ29sbCIgIlR5cGUyIikp CisgICAgIChzZWFyY2gtZm9yd2FyZCB0ZXN0KQorICAgICAoZ290by1jaGFyIChtYXRjaC1iZWdp bm5pbmcgMCkpCisgICAgIChzaG91bGQgKGVxIChmYWNlLWF0LXBvaW50KSBmb250LWxvY2stdHlw ZS1mYWNlKSkpKSkKKworKGVydC1kZWZ0ZXN0IHB5dGhvbi10cy1tb2RlLXN1cGVyY2xhc3MtdHlw ZS1mYWNlICgpCisgIChweXRob24tdHMtdGVzdHMtd2l0aC10ZW1wLWJ1ZmZlcgorICAgImNsYXNz IFRlbXAoQmFzZTEsIHBhY2swLkJhc2UyLCAgU2VxdWVuY2VbVDEsIFQyXSk6IgorCisgICAoZG9s aXN0ICh0ZXN0ICcoIkJhc2UxIiAiQmFzZTIiICJTZXF1ZW5jZSIgIlQxIiAiVDIiKSkKKyAgICAg KHNlYXJjaC1mb3J3YXJkIHRlc3QpCisgICAgIChnb3RvLWNoYXIgKG1hdGNoLWJlZ2lubmluZyAw KSkKKyAgICAgKHNob3VsZCAoZXEgKGZhY2UtYXQtcG9pbnQpIGZvbnQtbG9jay10eXBlLWZhY2Up KSkKKworICAgKGdvdG8tY2hhciAocG9pbnQtbWluKSkKKyAgIChkb2xpc3QgKHRlc3QgJygicGFj azAiKSkKKyAgICAgKHNlYXJjaC1mb3J3YXJkIHRlc3QpCisgICAgIChnb3RvLWNoYXIgKG1hdGNo LWJlZ2lubmluZyAwKSkKKyAgICAgKHNob3VsZCAobm90IChlcSAoZmFjZS1hdC1wb2ludCkgZm9u dC1sb2NrLXR5cGUtZmFjZSkpKSkpKQorCisoZXJ0LWRlZnRlc3QgcHl0aG9uLXRzLW1vZGUtY2xh c3MtcGF0dGVybnMtZmFjZSAoKQorICAocHl0aG9uLXRzLXRlc3RzLXdpdGgtdGVtcC1idWZmZXIK KyAgICJtYXRjaCB0dDoKKyAgICAgICAgY2FzZSBzdHIoKToKKyAgICAgICAgICAgIHBhc3MKKyAg ICAgICAgY2FzZSBbVHlwZTAoKSB8IGJ5dGVzKGIpIHwgcGFjazAucGFjazEuVHlwZTEoKV06Cisg ICAgICAgICAgICBwYXNzCisgICAgICAgIGNhc2UgeydpJzogaW50KGkpLCAnZic6IGZsb2F0KCkg YXMgZn06CisgICAgICAgICAgICBwYXNzIgorCisgICAoZG9saXN0ICh0ZXN0ICcoInN0ciIgIlR5 cGUwIiAiYnl0ZXMiICJUeXBlMSIgImludCIgImZsb2F0IikpCisgICAgIChzZWFyY2gtZm9yd2Fy ZCB0ZXN0KQorICAgICAoZ290by1jaGFyIChtYXRjaC1iZWdpbm5pbmcgMCkpCisgICAgIChzaG91 bGQgKGVxIChmYWNlLWF0LXBvaW50KSBmb250LWxvY2stdHlwZS1mYWNlKSkpCisKKyAgIChnb3Rv LWNoYXIgKHBvaW50LW1pbikpCisgICAoZG9saXN0ICh0ZXN0ICcoInBhY2swIiAicGFjazEiKSkK KyAgICAgKHNlYXJjaC1mb3J3YXJkIHRlc3QpCisgICAgIChnb3RvLWNoYXIgKG1hdGNoLWJlZ2lu bmluZyAwKSkKKyAgICAgKHNob3VsZCAobm90IChlcSAoZmFjZS1hdC1wb2ludCkgZm9udC1sb2Nr LXR5cGUtZmFjZSkpKSkpKQorCisoZXJ0LWRlZnRlc3QgcHl0aG9uLXRzLW1vZGUtZG90dGVkLWRl Y29yYXRvci1mYWNlLTEgKCkKKyAgKHB5dGhvbi10cy10ZXN0cy13aXRoLXRlbXAtYnVmZmVyCisg ICAiQHB5dGVzdC5tYXJrLnNraXAKKyAgICBAcHl0ZXN0Lm1hcmsuc2tpcChyZWFzb249J21zZycp CisgICAgZGVmIHRlc3QoKToiCisKKyAgIChkb2xpc3QgKHRlc3QgJygicHl0ZXN0IiAibWFyayIg InNraXAiICJweXRlc3QiICJtYXJrIiAic2tpcCIpKQorICAgICAoc2VhcmNoLWZvcndhcmQgdGVz dCkKKyAgICAgKGdvdG8tY2hhciAobWF0Y2gtYmVnaW5uaW5nIDApKQorICAgICAoc2hvdWxkIChl cSAoZmFjZS1hdC1wb2ludCkgZm9udC1sb2NrLXR5cGUtZmFjZSkpKSkpCisKKyhlcnQtZGVmdGVz dCBweXRob24tdHMtbW9kZS1kb3R0ZWQtZGVjb3JhdG9yLWZhY2UtMiAoKQorICAocHl0aG9uLXRz LXRlc3RzLXdpdGgtdGVtcC1idWZmZXIKKyAgICJAcHl0ZXN0Lm1hcmsuc2tpcChyZWFzb249J21z ZycpCisgICAgZGVmIHRlc3QoKToiCisKKyAgIChzZXRvcHQgdHJlZXNpdC1mb250LWxvY2stbGV2 ZWwgNCkKKyAgIChkb2xpc3QgKHRlc3QgJygicHl0ZXN0IiAibWFyayIgInNraXAiKSkKKyAgICAg KHNlYXJjaC1mb3J3YXJkIHRlc3QpCisgICAgIChnb3RvLWNoYXIgKG1hdGNoLWJlZ2lubmluZyAw KSkKKyAgICAgKHNob3VsZCAoZXEgKGZhY2UtYXQtcG9pbnQpIGZvbnQtbG9jay10eXBlLWZhY2Up KSkpKQorCisoZXJ0LWRlZnRlc3QgcHl0aG9uLXRzLW1vZGUtYnVpbHRpbi1jYWxsLWZhY2UgKCkK KyAgKHB5dGhvbi10cy10ZXN0cy13aXRoLXRlbXAtYnVmZmVyCisgICAiYWxsKCkiCisgICA7OyBl bmFibGUgJ2Z1bmN0aW9uJyBmZWF0dXJlIGZyb20gNHRoIGxldmVsCisgICAoc2V0b3B0IHRyZWVz aXQtZm9udC1sb2NrLWxldmVsIDQpCisgICAoc2hvdWxkIChlcSAoZmFjZS1hdC1wb2ludCkgZm9u dC1sb2NrLWJ1aWx0aW4tZmFjZSkpKSkKKworKGVydC1kZWZ0ZXN0IHB5dGhvbi10cy1tb2RlLWlu dGVycG9sYXRpb24tbmVzdGVkLXN0cmluZyAoKQorICAocHl0aG9uLXRzLXRlc3RzLXdpdGgtdGVt cC1idWZmZXIKKyAgICJ0ID0gZlwiYmVnIHtUcnVlICsgJ3N0cmluZyd9XCIiCisKKyAgIChzZWFy Y2gtZm9yd2FyZCAiVHJ1ZSIpCisgICAoZ290by1jaGFyIChtYXRjaC1iZWdpbm5pbmcgMCkpCisg ICAoc2hvdWxkIChlcSAoZmFjZS1hdC1wb2ludCkgZm9udC1sb2NrLWNvbnN0YW50LWZhY2UpKQor CisgICAoZ290by1jaGFyIChwb2ludC1taW4pKQorICAgKGRvbGlzdCAodGVzdCAnKCJmIiAieyIg IisiICJ9IikpCisgICAgIChzZWFyY2gtZm9yd2FyZCB0ZXN0KQorICAgICAoZ290by1jaGFyICht YXRjaC1iZWdpbm5pbmcgMCkpCisgICAgIChzaG91bGQgKG5vdCAoZXEgKGZhY2UtYXQtcG9pbnQp IGZvbnQtbG9jay1zdHJpbmctZmFjZSkpKSkKKworCisgICAoZ290by1jaGFyIChwb2ludC1taW4p KQorICAgKGRvbGlzdCAodGVzdCAnKCJiZWciICInc3RyaW5nJyIgIlwiIikpCisgICAgIChzZWFy Y2gtZm9yd2FyZCB0ZXN0KQorICAgICAoZ290by1jaGFyIChtYXRjaC1iZWdpbm5pbmcgMCkpCisg ICAgIChzaG91bGQgKGVxIChmYWNlLWF0LXBvaW50KSBmb250LWxvY2stc3RyaW5nLWZhY2UpKSkp KQorCisoZXJ0LWRlZnRlc3QgcHl0aG9uLXRzLW1vZGUtbGV2ZWwtZm9udGlmaWNhdGlvbi13by1p bnRlcnBvbGF0aW9uICgpCisgIChweXRob24tdHMtdGVzdHMtd2l0aC10ZW1wLWJ1ZmZlcgorICAg InQgPSBmXCJiZWcge1RydWUgKyB2YXJ9XCIiCisKKyAgIChzZXRvcHQgdHJlZXNpdC1mb250LWxv Y2stbGV2ZWwgMikKKyAgIChzZWFyY2gtZm9yd2FyZCAiZiIpCisgICAoZ290by1jaGFyIChtYXRj aC1iZWdpbm5pbmcgMCkpCisgICAoc2hvdWxkIChub3QgKGVxIChmYWNlLWF0LXBvaW50KSBmb250 LWxvY2stc3RyaW5nLWZhY2UpKSkKKworICAgKGRvbGlzdCAodGVzdCAnKCJcIiIgImJlZyIgInsi ICJUcnVlIiAidmFyIiAifSIgIlwiIikpCisgICAgIChzZWFyY2gtZm9yd2FyZCB0ZXN0KQorICAg ICAoZ290by1jaGFyIChtYXRjaC1iZWdpbm5pbmcgMCkpCisgICAgIChzaG91bGQgKGVxIChmYWNl LWF0LXBvaW50KSBmb250LWxvY2stc3RyaW5nLWZhY2UpKSkpKQorCisoZXJ0LWRlZnRlc3QgcHl0 aG9uLXRzLW1vZGUtZGlzYWJsZWQtc3RyaW5nLWludGVycG9sYXRpb24gKCkKKyAgKHB5dGhvbi10 cy10ZXN0cy13aXRoLXRlbXAtYnVmZmVyCisgICAidCA9IGZcImJlZyB7VHJ1ZSArIHZhcn1cIiIK KworICAgKHVud2luZC1wcm90ZWN0CisgICAgICAgKHByb2duCisgICAgICAgICAoc2V0ZiAobnRo IDIgdHJlZXNpdC1mb250LWxvY2stZmVhdHVyZS1saXN0KQorICAgICAgICAgICAgICAgKHJlbXEg J3N0cmluZy1pbnRlcnBvbGF0aW9uIChudGggMiB0cmVlc2l0LWZvbnQtbG9jay1mZWF0dXJlLWxp c3QpKSkKKyAgICAgICAgIChzZXRvcHQgdHJlZXNpdC1mb250LWxvY2stbGV2ZWwgMykKKworICAg ICAgICAgKHNlYXJjaC1mb3J3YXJkICJmIikKKyAgICAgICAgIChnb3RvLWNoYXIgKG1hdGNoLWJl Z2lubmluZyAwKSkKKyAgICAgICAgIChzaG91bGQgKG5vdCAoZXEgKGZhY2UtYXQtcG9pbnQpIGZv bnQtbG9jay1zdHJpbmctZmFjZSkpKQorCisgICAgICAgICAoZG9saXN0ICh0ZXN0ICcoIlwiIiAi YmVnIiAieyIgIlRydWUiICJ2YXIiICJ9IiAiXCIiKSkKKyAgICAgICAgICAgKHNlYXJjaC1mb3J3 YXJkIHRlc3QpCisgICAgICAgICAgIChnb3RvLWNoYXIgKG1hdGNoLWJlZ2lubmluZyAwKSkKKyAg ICAgICAgICAgKHNob3VsZCAoZXEgKGZhY2UtYXQtcG9pbnQpIGZvbnQtbG9jay1zdHJpbmctZmFj ZSkpKSkKKworICAgIChzZXRmIChudGggMiB0cmVlc2l0LWZvbnQtbG9jay1mZWF0dXJlLWxpc3Qp CisgICAgICAgICAgKGFwcGVuZCAobnRoIDIgdHJlZXNpdC1mb250LWxvY2stZmVhdHVyZS1saXN0 KSAnKHN0cmluZy1pbnRlcnBvbGF0aW9uKSkpKSkpCisKKyhlcnQtZGVmdGVzdCBweXRob24tdHMt bW9kZS1pbnRlcnBvbGF0aW9uLWRvYy1zdHJpbmcgKCkKKyAgKHB5dGhvbi10cy10ZXN0cy13aXRo LXRlbXAtYnVmZmVyCisgICAiZlwiXCJcImJlZyB7J3MxJyArIFRydWUgKyAnczInfSBlbmRcIlwi XCIiCisKKyAgIChzZWFyY2gtZm9yd2FyZCAiVHJ1ZSIpCisgICAoZ290by1jaGFyIChtYXRjaC1i ZWdpbm5pbmcgMCkpCisgICAoc2hvdWxkIChlcSAoZmFjZS1hdC1wb2ludCkgZm9udC1sb2NrLWNv bnN0YW50LWZhY2UpKQorCisgICAoZ290by1jaGFyIChwb2ludC1taW4pKQorICAgKGRvbGlzdCAo dGVzdCAnKCJmIiAieyIgIisiICJ9IikpCisgICAgIChzZWFyY2gtZm9yd2FyZCB0ZXN0KQorICAg ICAoZ290by1jaGFyIChtYXRjaC1iZWdpbm5pbmcgMCkpCisgICAgIChzaG91bGQgKG5vdCAoZXEg KGZhY2UtYXQtcG9pbnQpIGZvbnQtbG9jay1zdHJpbmctZmFjZSkpKSkKKworICAgKGdvdG8tY2hh ciAocG9pbnQtbWluKSkKKyAgIChkb2xpc3QgKHRlc3QgJygiXCJcIlwiIiAiYmVnIiAiZW5kIiAi XCJcIlwiIikpCisgICAgIChzZWFyY2gtZm9yd2FyZCB0ZXN0KQorICAgICAoZ290by1jaGFyICht YXRjaC1iZWdpbm5pbmcgMCkpCisgICAgIChzaG91bGQgKGVxIChmYWNlLWF0LXBvaW50KSBmb250 LWxvY2stZG9jLWZhY2UpKSkKKworICAgKGdvdG8tY2hhciAocG9pbnQtbWluKSkKKyAgIChkb2xp c3QgKHRlc3QgJygiJ3MxJyIgIidzMiciKSkKKyAgICAgKHNlYXJjaC1mb3J3YXJkIHRlc3QpCisg ICAgIChnb3RvLWNoYXIgKG1hdGNoLWJlZ2lubmluZyAwKSkKKyAgICAgKHNob3VsZCAoZXEgKGZh Y2UtYXQtcG9pbnQpIGZvbnQtbG9jay1zdHJpbmctZmFjZSkpKSkpCisKIChwcm92aWRlICdweXRo b24tdGVzdHMpCiAKIDs7OyBweXRob24tdGVzdHMuZWwgZW5kcyBoZXJlCi0tIAoyLjM0LjEKCg== ------==--bound.465107.5onccsrv2hdogkey.iva.yp-c.yandex.net-- From debbugs-submit-bounces@debbugs.gnu.org Wed Dec 20 18:34:46 2023 Received: (at 67061) by debbugs.gnu.org; 20 Dec 2023 23:34:46 +0000 Received: from localhost ([127.0.0.1]:42049 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rG65N-0003ao-Gd for submit@debbugs.gnu.org; Wed, 20 Dec 2023 18:34:46 -0500 Received: from out2-smtp.messagingengine.com ([66.111.4.26]:44249) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rG65K-0003aa-VW for 67061@debbugs.gnu.org; Wed, 20 Dec 2023 18:34:44 -0500 Received: from compute4.internal (compute4.nyi.internal [10.202.2.44]) by mailout.nyi.internal (Postfix) with ESMTP id 4CD335C05F5; Wed, 20 Dec 2023 18:34:34 -0500 (EST) Received: from mailfrontend1 ([10.202.2.162]) by compute4.internal (MEProxy); Wed, 20 Dec 2023 18:34:34 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gutov.dev; h=cc :cc:content-transfer-encoding:content-type:content-type:date :date:from:from:in-reply-to:in-reply-to:message-id:mime-version :references:reply-to:subject:subject:to:to; s=fm3; t=1703115274; x=1703201674; bh=VvregLDodIDU3sx0jomR28tLOF45AZBemzUNwqVXJjc=; b= oBY7B5MkTFuqU28vp2qoYdmEaf3sQz1zU4p5W9MAPJBVFnXphHvT2yir3c4nMmCP FZ8BJyxf1w8ovQbUFDltpDOXDJ+H9NhWqDf/r/FP/+kcg2j/1FYlijac8ySa7kQN GuqU+WQG4I2J0BEuq/y1+POJtvFpeFTie28n2QDSbXE2QZfYOUTOxq5fr1E36VRk jbWhLgjyt/Hkowa5zkiutG7gsglig8gjatDszwAASiK//lig7PV4tS/zN5oht8D3 OBkNakNyiAPbQaY2TI1fU/HFX1vGJBTmarv8ZhgjrbB2/J2/0RMBbo6hSpT7BrzK CvESpFVsYRtiLtbojo2PiQ== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:cc:content-transfer-encoding :content-type:content-type:date:date:feedback-id:feedback-id :from:from:in-reply-to:in-reply-to:message-id:mime-version :references:reply-to:subject:subject:to:to:x-me-proxy:x-me-proxy :x-me-sender:x-me-sender:x-sasl-enc; s=fm2; t=1703115274; x= 1703201674; bh=VvregLDodIDU3sx0jomR28tLOF45AZBemzUNwqVXJjc=; b=K +GlU+96nQpF+MGJEjWJ6gJMEwCJT5QNgZKWP5o6bm0RN4jrEbACikpJbsJ7wE2cV bSMF7Y4+4jrvqM+0RP12lqJ2zva29xY+QeKQB+ka1SdCVcRNmBXqJInhB0Y9bOgg YTwYa0FCX6pw90QazaeKte+HWgMV6UiogxjX4JEzJcid8CRuC3SDCcvAvcFDRf+/ 6w2U6kbTQuPWcImlESwJvTBTgXm5ss3o9adgTTzQpeurSXNVqgvjngvu/TCZIZYf qolGOjCcYWI1ew9vHEYzGNSIxOOp1rHsbSCmTWPh4Fk4eHi13AK5NrW0yTFwUNOF V49gMAFmLA3FSHPmdTvMQ== X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedvkedrvddufedgudefucetufdoteggodetrfdotf fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfqfgfvpdfurfetoffkrfgpnffqhgen uceurghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmne cujfgurhepkfffgggfuffvvehfhfgjtgfgsehtjeertddtfeejnecuhfhrohhmpeffmhhi thhrhicuifhuthhovhcuoegumhhithhrhiesghhuthhovhdruggvvheqnecuggftrfgrth htvghrnhephffhleeifffgveevudeugfeifeeuffevgfeutdeitefhiefgtedvheeuvedv vdefnecuffhomhgrihhnpehgihhthhhusgdrtghomhenucevlhhushhtvghrufhiiigvpe dtnecurfgrrhgrmhepmhgrihhlfhhrohhmpegumhhithhrhiesghhuthhovhdruggvvh X-ME-Proxy: Feedback-ID: i0e71465a:Fastmail Received: by mail.messagingengine.com (Postfix) with ESMTPA; Wed, 20 Dec 2023 18:34:32 -0500 (EST) Message-ID: <16489c3d-bddf-984b-6c98-2a1de9fdb6e8@gutov.dev> Date: Thu, 21 Dec 2023 01:34:30 +0200 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.13.0 Subject: Re: bug#67061: [PATCH] Improve syntax highlighting for python-ts-mode Content-Language: en-US To: Denis Zubarev , Yuan Fu , Eli Zaretskii 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> <7371702772641@mail.yandex.ru> <27502181702944649@mail.yandex.ru> From: Dmitry Gutov In-Reply-To: <27502181702944649@mail.yandex.ru> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-Spam-Score: -1.4 (-) X-Debbugs-Envelope-To: 67061 Cc: "67061@debbugs.gnu.org" <67061@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: -2.4 (--) On 19/12/2023 02:14, Denis Zubarev wrote: > > If you recall my earlier complaint that these highlightings didn't work > > (and the tests didn't pass), this happened due to an older Python > grammar. > Thank you for investigating this. It seems this commit introduced > changes to type nodes hierarchy > (https://github.com/tree-sitter/tree-sitter-python/commit/bcbf41589f4dc38a98bda4ca4c924eb5cae26f7b). Could be this one, yes. > > The queries didn't lead to errors either (that's a good thing), but maybe > > we'll want to revisit these highlights later to add support for the > > older grammar as well. > It may lead to unnecessarily complex rules. I don't > know is it worth it, since users can easily update grammars. No problem. > > I'm not sure highlighting types based on the caller method and position > > is a good idea. I think that's backward, logically. If one puts a > > non-type value in such argument, and we would highlight it as a type -- > > that seems like the wrong message. > These two functions expect a type (or tuple of types) as the second > argument. To address your concerns about highlighting as a type a > non-type variable, I added regexp python--treesit-type-regex. This regex > matches if text is either built-in type or text starts with capital > letter. I extracted built-in types from the python--treesit-builtins > into its own variable python--treesit-builtin-types. > python--treesit-builtins is now constructing by appending > python--treesit-builtin-types and other built-ins. I hope it is ok. Thank you. I'm actually not sure if we _have to_ check the identifier names in this context (any chance to have a false negative, miss some valid types?), but it probably doesn't hurt either. > > One of the complaints is that "User" is not highlighted as a type when > > used in other, non-built-in methods, which like a reasonable question to > > me. Yes, Python is dynamic, but using CamelCase for types is a fairly > > regular convention, so highlighting such identifiers as types can work. > It is good idea, to highlight some variables as types. But I think it > should be done on the 4th level. One could split the variable feature > into multiple features: variable-type, variable-argument, variable-use, > etc. So for variable-type feature we can use python--treesit-type-regex > and highlight matched identifiers with type face. For now I wanted to > properly highlight types in places where they expected to be. I wouldn't mind the level 4 (after all, python-mode is also conservative here and doesn't add such highlighting), but I'd rather not add the special handling for isinstance/issubclass thing for the reasons previously outlined. Perhaps Yuan will disagree. I'm just here to say that the rest of the patch LGTM. From debbugs-submit-bounces@debbugs.gnu.org Thu Dec 21 02:04:30 2023 Received: (at 67061) by debbugs.gnu.org; 21 Dec 2023 07:04:30 +0000 Received: from localhost ([127.0.0.1]:42308 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rGD6b-0001Ei-SF for submit@debbugs.gnu.org; Thu, 21 Dec 2023 02:04:30 -0500 Received: from mail-oo1-xc2c.google.com ([2607:f8b0:4864:20::c2c]:50586) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rGD6Z-0001EU-6f for 67061@debbugs.gnu.org; Thu, 21 Dec 2023 02:04:28 -0500 Received: by mail-oo1-xc2c.google.com with SMTP id 006d021491bc7-593f420187aso353102eaf.1 for <67061@debbugs.gnu.org>; Wed, 20 Dec 2023 23:04:23 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1703142257; x=1703747057; darn=debbugs.gnu.org; h=to:references:message-id:content-transfer-encoding:cc:date :in-reply-to:from:subject:mime-version:from:to:cc:subject:date :message-id:reply-to; bh=t9RKY7YNs4svi0Wd8eu3UYYcLxfRXvjlXUE/CQ2cuk0=; b=FDe2m03udnWauxaodTCrLDl4KVI1EPrkGUXPL1LUi3hwAo4/y3OUqfegOriAvSfhL0 Rs2ZOx4IHr0r04yvemWTFgedi+oaTXlOzOJIs2q+djk0E2kclkMQnKUroAXmSEKC9nbC 04hzI7MxHFrCs1tyKIemRv5nxIVxTPIvJBBBYYGOlqyU8T52Y1SNp91nd1pxMHX4Kd3X I/ltKZxZwN4X/+hxvVdV8Y+AYmlNOFUDUql7Ug8B0oC+IjlrV0vfb814iuB7C3w7c7aA Np9esL/qvyu6wkH+v2y/p4tfL9lzmdw7kst8PDIyvPWqCocxGpz3CBPfEUk2njZ/W5YM W9/A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1703142257; x=1703747057; h=to:references:message-id:content-transfer-encoding:cc:date :in-reply-to:from:subject:mime-version:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=t9RKY7YNs4svi0Wd8eu3UYYcLxfRXvjlXUE/CQ2cuk0=; b=mSr5M/GYhVP2vOGyhYFUWQOTnKLG8dzLGCEYG3aT0f7OBoqMENBYpfMDHMMaub5XY5 awtB5k3TAbKccV2dzC5jl11IszOkFA4zn7Gb3USjcgOPVm1Pzwka9cwSIdOUPIp3JBI5 QLQl3a5s/KKS9ifRVo8Uabz988GzYl3wMAsV21wbnZk+eCyImvFBP5ZTdR+JqbZjk1ro h3K0dI4fXbtSTNcAPWubvXqdHualrrSZN92ou0lfY9F2Cwss1esnj97ViRQ2fWE4DY+i 5HZj2erBzybh7ro9DYQjoBCj0ptYoHjLMC0bk5PB/2mbIUwWa2T+u0Pskb6OKShAT4CZ TLtg== X-Gm-Message-State: AOJu0YyyF034mezSnyGCRCPwur6B97sQpMNgGfJfIJiSWuDnQWrlsbhA LIJc7QzRG56DGwAj/WbcC68= X-Google-Smtp-Source: AGHT+IH/DScp3IpdaNjvuOOEVXgNM3NVkbdt9EXNOWVghP2o53RrOj8ZlC7G1cCh9W0/P7TG9tdoCQ== X-Received: by 2002:a05:6358:8187:b0:172:d789:df8a with SMTP id r7-20020a056358818700b00172d789df8amr613947rwk.56.1703142257408; Wed, 20 Dec 2023 23:04:17 -0800 (PST) Received: from smtpclient.apple (172-117-161-177.res.spectrum.com. [172.117.161.177]) by smtp.gmail.com with ESMTPSA id a12-20020a62d40c000000b006d975ca1fcesm433746pfh.49.2023.12.20.23.04.15 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Wed, 20 Dec 2023 23:04:16 -0800 (PST) Content-Type: text/plain; charset=utf-8 Mime-Version: 1.0 (Mac OS X Mail 16.0 \(3731.700.6\)) Subject: Re: bug#67061: [PATCH] Improve syntax highlighting for python-ts-mode From: Yuan Fu In-Reply-To: <16489c3d-bddf-984b-6c98-2a1de9fdb6e8@gutov.dev> Date: Wed, 20 Dec 2023 23:04:04 -0800 Content-Transfer-Encoding: quoted-printable Message-Id: <80835E29-BA35-4550-9CAC-DA7AE9F60440@gmail.com> 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> <7371702772641@mail.yandex.ru> <27502181702944649@mail.yandex.ru> <16489c3d-bddf-984b-6c98-2a1de9fdb6e8@gutov.dev> To: Dmitry Gutov X-Mailer: Apple Mail (2.3731.700.6) X-Spam-Score: -0.0 (/) X-Debbugs-Envelope-To: 67061 Cc: Eli Zaretskii , Denis Zubarev , "67061@debbugs.gnu.org" <67061@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: -1.0 (-) > On Dec 20, 2023, at 3:34 PM, Dmitry Gutov wrote: >=20 > On 19/12/2023 02:14, Denis Zubarev wrote: >> > If you recall my earlier complaint that these highlightings didn't = work >> > (and the tests didn't pass), this happened due to an older Python = grammar. >> Thank you for investigating this. It seems this commit introduced >> changes to type nodes hierarchy = (https://github.com/tree-sitter/tree-sitter-python/commit/bcbf41589f4dc38a= 98bda4ca4c924eb5cae26f7b). >=20 > Could be this one, yes. >=20 >> > The queries didn't lead to errors either (that's a good thing), but = maybe >> > we'll want to revisit these highlights later to add support for the >> > older grammar as well. >> It may lead to unnecessarily complex rules. I don't >> know is it worth it, since users can easily update grammars. >=20 > No problem. >=20 >> > I'm not sure highlighting types based on the caller method and = position >> > is a good idea. I think that's backward, logically. If one puts a >> > non-type value in such argument, and we would highlight it as a = type -- >> > that seems like the wrong message. >> These two functions expect a type (or tuple of types) as the second >> argument. To address your concerns about highlighting as a type a >> non-type variable, I added regexp python--treesit-type-regex. This = regex >> matches if text is either built-in type or text starts with capital >> letter. I extracted built-in types from the python--treesit-builtins >> into its own variable python--treesit-builtin-types. >> python--treesit-builtins is now constructing by appending >> python--treesit-builtin-types and other built-ins. I hope it is ok. >=20 > Thank you. I'm actually not sure if we _have to_ check the identifier = names in this context (any chance to have a false negative, miss some = valid types?), but it probably doesn't hurt either. >=20 >> > One of the complaints is that "User" is not highlighted as a type = when >> > used in other, non-built-in methods, which like a reasonable = question to >> > me. Yes, Python is dynamic, but using CamelCase for types is a = fairly >> > regular convention, so highlighting such identifiers as types can = work. >> It is good idea, to highlight some variables as types. But I think it >> should be done on the 4th level. One could split the variable feature >> into multiple features: variable-type, variable-argument, = variable-use, >> etc. So for variable-type feature we can use = python--treesit-type-regex >> and highlight matched identifiers with type face. For now I wanted to >> properly highlight types in places where they expected to be. >=20 > I wouldn't mind the level 4 (after all, python-mode is also = conservative here and doesn't add such highlighting), but I'd rather not = add the special handling for isinstance/issubclass thing for the reasons = previously outlined. >=20 > Perhaps Yuan will disagree. I'm just here to say that the rest of the = patch LGTM. I wouldn=E2=80=99t mind either, go crazy with level 4 :-) I wouldn=E2=80=99= t even mind it in level 3, since they are indeed types. Using a separate = feature is a good idea, so people who doesn=E2=80=99t want it can turn = it off. Yuan From debbugs-submit-bounces@debbugs.gnu.org Sat Dec 23 04:43:09 2023 Received: (at 67061) by debbugs.gnu.org; 23 Dec 2023 09:43:09 +0000 Received: from localhost ([127.0.0.1]:48600 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rGyXF-00034Z-44 for submit@debbugs.gnu.org; Sat, 23 Dec 2023 04:43:09 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:53016) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rGyXD-00034M-FZ for 67061@debbugs.gnu.org; Sat, 23 Dec 2023 04:43:08 -0500 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 1rGyX2-0005KP-7D; Sat, 23 Dec 2023 04:42:56 -0500 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=F09f216G8NkcLJ5qmunuB9Bmbi5HICiLBn1Dt7PpmvI=; b=VhD39d/ssj/DqfBLlpMy 7R6lEYk1xVV6vmmKA/1pTDN4GnmjOHrprTm5m6DAZKHW8SKJ3tguLNTuGJIXhnHCH+cBcO65bu34V AoJtQOh8jm/nNGShQ1ViSxVq3CGqx983dAWnp2Z0FCOv2VUGIX5I2K8ooVUN7TSrk/WQLyT4meBK7 mpkaII/1a8b66nnoW4xNAOVeiVqmsTQR5D6iutfsmv7rfuLxPiz1jb8cuzShxJFjvtATu+5RF8zUR lUCFivyD2CsNhSJC1BT1JjFdhsuk0aLR801qGpp2aN1SFzuHU/jhMFGzH3CodNWt8h7lyMK+Lf7hq kPDQHNlwhd/T+w==; Date: Sat, 23 Dec 2023 11:42:45 +0200 Message-Id: <83h6k9dzl6.fsf@gnu.org> From: Eli Zaretskii To: Denis Zubarev In-Reply-To: <240311702778783@mail.yandex.ru> (message from Denis Zubarev on Sun, 17 Dec 2023 05:07:01 +0300) Subject: Re: bug#67061: [PATCH] Improve syntax highlighting for python-ts-mode 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> <7371702772641@mail.yandex.ru> <8915940C-F69C-4CAE-80E8-4F70C5753061@gmail.com> <240311702778783@mail.yandex.ru> MIME-version: 1.0 Content-type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 67061 Cc: dmitry@gutov.dev, casouri@gmail.com, 67061@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 (---) > From: Denis Zubarev > Cc: Dmitry Gutov , > Eli Zaretskii , > "67061@debbugs.gnu.org" <67061@debbugs.gnu.org> > Date: Sun, 17 Dec 2023 05:07:01 +0300 > > > Thanks. I think the only thing that’s still up to discussion is the variable-definition rules. Others can > be merged to emacs-29. > > I can extract part with variable-definition into the next patch. > In case it is ok, I attached patch without new variable-definition feature. Thanks, but it doesn't apply cleanly to the current emacs-29 branch. Would you mind please rebasing the patch on the emacs-29 branch and resubmitting it? From debbugs-submit-bounces@debbugs.gnu.org Sat Dec 23 16:46:16 2023 Received: (at 67061) by debbugs.gnu.org; 23 Dec 2023 21:46:16 +0000 Received: from localhost ([127.0.0.1]:51407 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rH9p1-0007SI-Il for submit@debbugs.gnu.org; Sat, 23 Dec 2023 16:46:16 -0500 Received: from forward502a.mail.yandex.net ([2a02:6b8:c0e:500:1:45:d181:d502]:42978) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rH9oy-0007Hd-BJ for 67061@debbugs.gnu.org; Sat, 23 Dec 2023 16:46:13 -0500 Received: from mail-nwsmtp-mxback-production-main-41.vla.yp-c.yandex.net (mail-nwsmtp-mxback-production-main-41.vla.yp-c.yandex.net [IPv6:2a02:6b8:c1d:62c4:0:640:23af:0]) by forward502a.mail.yandex.net (Yandex) with ESMTP id B40BF60DE7; Sun, 24 Dec 2023 00:46:00 +0300 (MSK) Received: from mail.yandex.ru (2a02:6b8:c15:3012:0:640:2a7a:0 [2a02:6b8:c15:3012:0:640:2a7a:0]) by mail-nwsmtp-mxback-production-main-41.vla.yp-c.yandex.net (mxback/Yandex) with HTTP id mjYYiwD5gGk0-0IDE8M8B; Sun, 24 Dec 2023 00:46:00 +0300 X-Yandex-Fwd: 1 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yandex.ru; s=mail; t=1703367960; bh=2x1Sb6FZkWFCxWZCfxAFDp4ABcXJs3JHJT2rhcmaEus=; h=Message-Id:References:Date:Cc:Subject:To:From; b=ufwGYPn1/BVScR0hBR3jy0RXqPEddqfc7tkszNKFZg+9LFnRCggWDKoPCpxGbFhjE GQnw/TIn9zzzJ5bd2SQy8nMBj0IPWtpubAtGcv15KBKErqXpxsTrsLNUfp+QvZ5pOk k7AWGN4f/FjKghW9y3K2V2kGaXaOdCZbhxU5CahU= Authentication-Results: mail-nwsmtp-mxback-production-main-41.vla.yp-c.yandex.net; dkim=pass header.i=@yandex.ru Received: by vpfns56j3qv6ec2k.vla.yp-c.yandex.net with HTTP; Sun, 24 Dec 2023 00:45:59 +0300 From: Denis Zubarev To: Dmitry Gutov , Yuan Fu , Eli Zaretskii 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> <7371702772641@mail.yandex.ru> <27502181702944649@mail.yandex.ru> <16489c3d-bddf-984b-6c98-2a1de9fdb6e8@gutov.dev> Subject: Re: bug#67061: [PATCH] Improve syntax highlighting for python-ts-mode MIME-Version: 1.0 X-Mailer: Yamail [ http://yandex.ru ] 5.0 Date: Sun, 24 Dec 2023 00:45:59 +0300 Message-Id: <43841703366539@mail.yandex.ru> Content-Transfer-Encoding: base64 Content-Type: text/html; charset=utf-8 X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 67061 Cc: "67061@debbugs.gnu.org" <67061@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: -1.0 (-) PGRpdj48ZGl2PjxkaXY+Jmd0OyAmZ3Q7wqAgJmd0OyBPbmUgb2YgdGhlIGNvbXBsYWludHMgaXMg dGhhdCAiVXNlciIgaXMgbm90IGhpZ2hsaWdodGVkIGFzIGEgdHlwZSB3aGVuPC9kaXY+PGRpdj4m Z3Q7ICZndDvCoCAmZ3Q7IHVzZWQgaW4gb3RoZXIsIG5vbi1idWlsdC1pbiBtZXRob2RzLCB3aGlj aCBsaWtlIGEgcmVhc29uYWJsZSBxdWVzdGlvbiB0bzwvZGl2PjxkaXY+Jmd0OyAmZ3Q7wqAgJmd0 OyBtZS4gWWVzLCBQeXRob24gaXMgZHluYW1pYywgYnV0IHVzaW5nIENhbWVsQ2FzZSBmb3IgdHlw ZXMgaXMgYSBmYWlybHk8L2Rpdj48ZGl2PiZndDsgJmd0O8KgICZndDsgcmVndWxhciBjb252ZW50 aW9uLCBzbyBoaWdobGlnaHRpbmcgc3VjaCBpZGVudGlmaWVycyBhcyB0eXBlcyBjYW4gd29yay48 L2Rpdj48ZGl2PiZndDsgJmd0OyBJdCBpcyBnb29kIGlkZWEsIHRvIGhpZ2hsaWdodCBzb21lIHZh cmlhYmxlcyBhcyB0eXBlcy4gQnV0IEkgdGhpbmsgaXQ8L2Rpdj48ZGl2PiZndDsgJmd0OyBzaG91 bGQgYmUgZG9uZSBvbiB0aGUgNHRoIGxldmVsLiBPbmUgY291bGQgc3BsaXQgdGhlIHZhcmlhYmxl IGZlYXR1cmU8L2Rpdj48ZGl2PiZndDsgJmd0OyBpbnRvIG11bHRpcGxlIGZlYXR1cmVzOiB2YXJp YWJsZS10eXBlLCB2YXJpYWJsZS1hcmd1bWVudCwgdmFyaWFibGUtdXNlLDwvZGl2PjxkaXY+Jmd0 OyAmZ3Q7IGV0Yy4gU28gZm9yIHZhcmlhYmxlLXR5cGUgZmVhdHVyZSB3ZSBjYW4gdXNlIHB5dGhv bi0tdHJlZXNpdC10eXBlLXJlZ2V4PC9kaXY+PGRpdj4mZ3Q7ICZndDsgYW5kIGhpZ2hsaWdodCBt YXRjaGVkIGlkZW50aWZpZXJzIHdpdGggdHlwZSBmYWNlLiBGb3Igbm93IEkgd2FudGVkIHRvPC9k aXY+PGRpdj4mZ3Q7ICZndDsgcHJvcGVybHkgaGlnaGxpZ2h0IHR5cGVzIGluIHBsYWNlcyB3aGVy ZSB0aGV5IGV4cGVjdGVkIHRvIGJlLjwvZGl2PjxkaXY+wqA8L2Rpdj48ZGl2PiZndDsgSSB3b3Vs ZG4ndCBtaW5kIHRoZSBsZXZlbCA0IChhZnRlciBhbGwsIHB5dGhvbi1tb2RlIGlzIGFsc28gY29u c2VydmF0aXZlPC9kaXY+PGRpdj4mZ3Q7wqAgaGVyZSBhbmQgZG9lc24ndCBhZGQgc3VjaCBoaWdo bGlnaHRpbmcpLCBidXQgSSdkIHJhdGhlciBub3QgYWRkIHRoZTwvZGl2PjxkaXY+Jmd0O8KgIHNw ZWNpYWwgaGFuZGxpbmcgZm9yIGlzaW5zdGFuY2UvaXNzdWJjbGFzcyB0aGluZyBmb3IgdGhlIHJl YXNvbnM8L2Rpdj48ZGl2PiZndDvCoCBwcmV2aW91c2x5IG91dGxpbmVkLjwvZGl2PjxkaXY+wqA8 L2Rpdj48ZGl2Pkp1c3QgYWRkaW5nIGEgcnVsZSBmb3IgaGlnaGxpZ2h0aW5nIENhbWVsQ2FzZSBp ZGVudGlmaWVycyBhcyB0eXBlcyB3b3VsZDwvZGl2PjxkaXY+bGVhZCB0byBtYW55IGZhbHNlIHBv c2l0aXZlcy4gRm9yIGV4YW1wbGUsIGdsb2JhbCB2YXJpYWJsZXMgb3IgYW4gb2JqZWN0PC9kaXY+ PGRpdj5pbnN0YW50aWF0aW9uLiBXZSBjb3VsZCBhZGQgaXRzIG93biBmZWF0dXJlcyBmb3IgdGhl c2UgY2FzZXMsIHNvIHRoZSB0eXBlPC9kaXY+PGRpdj5mZWF0dXJlIGNvdWxkbid0IG92ZXJyaWRl IHRoZW0sIGJ1dCBpdCByZXF1aXJlcyBleHRyYSB3b3JrIGFuZCB0aGUgcGF0Y2g8L2Rpdj48ZGl2 PmlzIGFscmVhZHkgcXVpdGUgbGFyZ2UuIFNvIEknZCBsaWtlIHRvIGhpZ2hsaWdodCBpZGVudGlm aWVycyBhcyB0eXBlczwvZGl2PjxkaXY+b25seSBpbiB0aGUgY29udGV4dCwgd2hlcmUgdHlwZXMg YXJlIGV4cGVjdGVkLCBmb3Igbm93LiBXZSBjb3VsZCByZWNvbnNpZGVyPC9kaXY+PGRpdj50aGlz IGFmdGVyIGRlYWxpbmcgd2l0aCB0aGUgbW9zdCBjb21tb24gZmFsc2UgcG9zaXRpdmVzLjwvZGl2 PjxkaXY+wqA8L2Rpdj48ZGl2PsKgPC9kaXY+PC9kaXY+PGRpdj7CoDwvZGl2PjxkaXY+wqA8L2Rp dj48L2Rpdj48ZGl2PsKgPC9kaXY+PGRpdj4yMS4xMi4yMDIzLCAwMjozNCwgIkRtaXRyeSBHdXRv diIgJmx0OzxhIGhyZWY9Im1haWx0bzpkbWl0cnlAZ3V0b3YuZGV2IiByZWw9Im5vb3BlbmVyIG5v cmVmZXJyZXIiPmRtaXRyeUBndXRvdi5kZXY8L2E+Jmd0Ozo8L2Rpdj48YmxvY2txdW90ZT48cD5P biAxOS8xMi8yMDIzIDAyOjE0LCBEZW5pcyBadWJhcmV2IHdyb3RlOjwvcD48YmxvY2txdW90ZT7C oMKgJmd0OyBJZiB5b3UgcmVjYWxsIG15IGVhcmxpZXIgY29tcGxhaW50IHRoYXQgdGhlc2UgaGln aGxpZ2h0aW5ncyBkaWRuJ3Qgd29yazxiciAvPsKgwqAmZ3Q7IChhbmQgdGhlIHRlc3RzIGRpZG4n dCBwYXNzKSwgdGhpcyBoYXBwZW5lZCBkdWUgdG8gYW4gb2xkZXIgUHl0aG9uPGJyIC8+wqBncmFt bWFyLjxiciAvPsKgVGhhbmsgeW91IGZvciBpbnZlc3RpZ2F0aW5nIHRoaXMuIEl0IHNlZW1zIHRo aXMgY29tbWl0IGludHJvZHVjZWQ8YnIgLz7CoGNoYW5nZXMgdG8gdHlwZSBub2RlcyBoaWVyYXJj aHk8YnIgLz7CoCg8YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vdHJlZS1zaXR0ZXIvdHJlZS1z aXR0ZXItcHl0aG9uL2NvbW1pdC9iY2JmNDE1ODlmNGRjMzhhOThiZGE0Y2E0YzkyNGViNWNhZTI2 ZjdiIiByZWw9Im5vb3BlbmVyIG5vcmVmZXJyZXIiPmh0dHBzOi8vZ2l0aHViLmNvbS90cmVlLXNp dHRlci90cmVlLXNpdHRlci1weXRob24vY29tbWl0L2JjYmY0MTU4OWY0ZGMzOGE5OGJkYTRjYTRj OTI0ZWI1Y2FlMjZmN2I8L2E+KS48L2Jsb2NrcXVvdGU+PHA+PGJyIC8+Q291bGQgYmUgdGhpcyBv bmUsIHllcy48YnIgLz7CoDwvcD48YmxvY2txdW90ZT7CoMKgJmd0OyBUaGUgcXVlcmllcyBkaWRu J3QgbGVhZCB0byBlcnJvcnMgZWl0aGVyICh0aGF0J3MgYSBnb29kIHRoaW5nKSwgYnV0IG1heWJl PGJyIC8+wqDCoCZndDsgd2UnbGwgd2FudCB0byByZXZpc2l0IHRoZXNlIGhpZ2hsaWdodHMgbGF0 ZXIgdG8gYWRkIHN1cHBvcnQgZm9yIHRoZTxiciAvPsKgwqAmZ3Q7IG9sZGVyIGdyYW1tYXIgYXMg d2VsbC48YnIgLz7CoEl0IG1heSBsZWFkIHRvIHVubmVjZXNzYXJpbHkgY29tcGxleCBydWxlcy4g SSBkb24ndDxiciAvPsKga25vdyBpcyBpdCB3b3J0aCBpdCwgc2luY2UgdXNlcnMgY2FuIGVhc2ls eSB1cGRhdGUgZ3JhbW1hcnMuPC9ibG9ja3F1b3RlPjxwPjxiciAvPk5vIHByb2JsZW0uPGJyIC8+ wqA8L3A+PGJsb2NrcXVvdGU+wqDCoCZndDsgSSdtIG5vdCBzdXJlIGhpZ2hsaWdodGluZyB0eXBl cyBiYXNlZCBvbiB0aGUgY2FsbGVyIG1ldGhvZCBhbmQgcG9zaXRpb248YnIgLz7CoMKgJmd0OyBp cyBhIGdvb2QgaWRlYS4gSSB0aGluayB0aGF0J3MgYmFja3dhcmQsIGxvZ2ljYWxseS4gSWYgb25l IHB1dHMgYTxiciAvPsKgwqAmZ3Q7IG5vbi10eXBlIHZhbHVlIGluIHN1Y2ggYXJndW1lbnQsIGFu ZCB3ZSB3b3VsZCBoaWdobGlnaHQgaXQgYXMgYSB0eXBlIC0tPGJyIC8+wqDCoCZndDsgdGhhdCBz ZWVtcyBsaWtlIHRoZSB3cm9uZyBtZXNzYWdlLjxiciAvPsKgVGhlc2UgdHdvIGZ1bmN0aW9ucyBl eHBlY3QgYSB0eXBlIChvciB0dXBsZSBvZiB0eXBlcykgYXMgdGhlIHNlY29uZDxiciAvPsKgYXJn dW1lbnQuIFRvIGFkZHJlc3MgeW91ciBjb25jZXJucyBhYm91dCBoaWdobGlnaHRpbmcgYXMgYSB0 eXBlIGE8YnIgLz7CoG5vbi10eXBlIHZhcmlhYmxlLCBJIGFkZGVkIHJlZ2V4cCBweXRob24tLXRy ZWVzaXQtdHlwZS1yZWdleC4gVGhpcyByZWdleDxiciAvPsKgbWF0Y2hlcyBpZiB0ZXh0IGlzIGVp dGhlciBidWlsdC1pbiB0eXBlIG9yIHRleHQgc3RhcnRzIHdpdGggY2FwaXRhbDxiciAvPsKgbGV0 dGVyLiBJIGV4dHJhY3RlZCBidWlsdC1pbiB0eXBlcyBmcm9tIHRoZSBweXRob24tLXRyZWVzaXQt YnVpbHRpbnM8YnIgLz7CoGludG8gaXRzIG93biB2YXJpYWJsZSBweXRob24tLXRyZWVzaXQtYnVp bHRpbi10eXBlcy48YnIgLz7CoHB5dGhvbi0tdHJlZXNpdC1idWlsdGlucyBpcyBub3cgY29uc3Ry dWN0aW5nIGJ5IGFwcGVuZGluZzxiciAvPsKgcHl0aG9uLS10cmVlc2l0LWJ1aWx0aW4tdHlwZXMg YW5kIG90aGVyIGJ1aWx0LWlucy4gSSBob3BlIGl0IGlzIG9rLjwvYmxvY2txdW90ZT48cD48YnIg Lz5UaGFuayB5b3UuIEknbSBhY3R1YWxseSBub3Qgc3VyZSBpZiB3ZSBfaGF2ZSB0b18gY2hlY2sg dGhlIGlkZW50aWZpZXI8YnIgLz5uYW1lcyBpbiB0aGlzIGNvbnRleHQgKGFueSBjaGFuY2UgdG8g aGF2ZSBhIGZhbHNlIG5lZ2F0aXZlLCBtaXNzIHNvbWU8YnIgLz52YWxpZCB0eXBlcz8pLCBidXQg aXQgcHJvYmFibHkgZG9lc24ndCBodXJ0IGVpdGhlci48YnIgLz7CoDwvcD48YmxvY2txdW90ZT7C oMKgJmd0OyBPbmUgb2YgdGhlIGNvbXBsYWludHMgaXMgdGhhdCAiVXNlciIgaXMgbm90IGhpZ2hs aWdodGVkIGFzIGEgdHlwZSB3aGVuPGJyIC8+wqDCoCZndDsgdXNlZCBpbiBvdGhlciwgbm9uLWJ1 aWx0LWluIG1ldGhvZHMsIHdoaWNoIGxpa2UgYSByZWFzb25hYmxlIHF1ZXN0aW9uIHRvPGJyIC8+ wqDCoCZndDsgbWUuIFllcywgUHl0aG9uIGlzIGR5bmFtaWMsIGJ1dCB1c2luZyBDYW1lbENhc2Ug Zm9yIHR5cGVzIGlzIGEgZmFpcmx5PGJyIC8+wqDCoCZndDsgcmVndWxhciBjb252ZW50aW9uLCBz byBoaWdobGlnaHRpbmcgc3VjaCBpZGVudGlmaWVycyBhcyB0eXBlcyBjYW4gd29yay48YnIgLz7C oEl0IGlzIGdvb2QgaWRlYSwgdG8gaGlnaGxpZ2h0IHNvbWUgdmFyaWFibGVzIGFzIHR5cGVzLiBC dXQgSSB0aGluayBpdDxiciAvPsKgc2hvdWxkIGJlIGRvbmUgb24gdGhlIDR0aCBsZXZlbC4gT25l IGNvdWxkIHNwbGl0IHRoZSB2YXJpYWJsZSBmZWF0dXJlPGJyIC8+wqBpbnRvIG11bHRpcGxlIGZl YXR1cmVzOiB2YXJpYWJsZS10eXBlLCB2YXJpYWJsZS1hcmd1bWVudCwgdmFyaWFibGUtdXNlLDxi ciAvPsKgZXRjLiBTbyBmb3IgdmFyaWFibGUtdHlwZSBmZWF0dXJlIHdlIGNhbiB1c2UgcHl0aG9u LS10cmVlc2l0LXR5cGUtcmVnZXg8YnIgLz7CoGFuZCBoaWdobGlnaHQgbWF0Y2hlZCBpZGVudGlm aWVycyB3aXRoIHR5cGUgZmFjZS4gRm9yIG5vdyBJIHdhbnRlZCB0bzxiciAvPsKgcHJvcGVybHkg aGlnaGxpZ2h0IHR5cGVzIGluIHBsYWNlcyB3aGVyZSB0aGV5IGV4cGVjdGVkIHRvIGJlLjwvYmxv Y2txdW90ZT48cD48YnIgLz5JIHdvdWxkbid0IG1pbmQgdGhlIGxldmVsIDQgKGFmdGVyIGFsbCwg cHl0aG9uLW1vZGUgaXMgYWxzbyBjb25zZXJ2YXRpdmU8YnIgLz5oZXJlIGFuZCBkb2Vzbid0IGFk ZCBzdWNoIGhpZ2hsaWdodGluZyksIGJ1dCBJJ2QgcmF0aGVyIG5vdCBhZGQgdGhlPGJyIC8+c3Bl Y2lhbCBoYW5kbGluZyBmb3IgaXNpbnN0YW5jZS9pc3N1YmNsYXNzIHRoaW5nIGZvciB0aGUgcmVh c29uczxiciAvPnByZXZpb3VzbHkgb3V0bGluZWQuPGJyIC8+PGJyIC8+UGVyaGFwcyBZdWFuIHdp bGwgZGlzYWdyZWUuIEknbSBqdXN0IGhlcmUgdG8gc2F5IHRoYXQgdGhlIHJlc3Qgb2YgdGhlPGJy IC8+cGF0Y2ggTEdUTS48L3A+PC9ibG9ja3F1b3RlPg== From debbugs-submit-bounces@debbugs.gnu.org Sat Dec 23 16:46:56 2023 Received: (at 67061) by debbugs.gnu.org; 23 Dec 2023 21:46:57 +0000 Received: from localhost ([127.0.0.1]:51410 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rH9pg-0007db-J7 for submit@debbugs.gnu.org; Sat, 23 Dec 2023 16:46:56 -0500 Received: from forward502a.mail.yandex.net ([178.154.239.82]:58024) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rH9pd-0007dS-MB for 67061@debbugs.gnu.org; Sat, 23 Dec 2023 16:46:54 -0500 Received: from mail-nwsmtp-mxback-production-main-64.vla.yp-c.yandex.net (mail-nwsmtp-mxback-production-main-64.vla.yp-c.yandex.net [IPv6:2a02:6b8:c1f:2503:0:640:3194:0]) by forward502a.mail.yandex.net (Yandex) with ESMTP id 4B8EC60CD5; Sun, 24 Dec 2023 00:46:47 +0300 (MSK) Received: from mail.yandex.ru (2a02:6b8:c2a:da3:0:640:1e1d:0 [2a02:6b8:c2a:da3:0:640:1e1d:0]) by mail-nwsmtp-mxback-production-main-64.vla.yp-c.yandex.net (mxback/Yandex) with HTTP id LkYjoHGOwGk0-WSZ2j80a; Sun, 24 Dec 2023 00:46:47 +0300 X-Yandex-Fwd: 1 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yandex.ru; s=mail; t=1703368007; bh=YKoE1nalxeRV6GPATAG3hlX9OGehqWbBVAIWjm14qaI=; h=Message-Id:References:Date:Cc:Subject:In-Reply-To:To:From; b=APV8MoDG6o9ATGX8fgQmJqZ/2JBwywTA6kC9joc3pQJbpr+iIwDA6Jhvg0ApgF/Ot cXhjdsfAl+Vc9XaXhzhopID3s9KEY7dgTauhwHtftUZDOsAQ8iRW0FB6yiN/pu2prz JMOdDYpciP4A0M/ZwGfAuWpGZP0VeNaIy6JEMsT0= Authentication-Results: mail-nwsmtp-mxback-production-main-64.vla.yp-c.yandex.net; dkim=pass header.i=@yandex.ru Received: by oksgrhdoy7hswshs.vla.yp-c.yandex.net with HTTP; Sun, 24 Dec 2023 00:46:46 +0300 From: Denis Zubarev To: Yuan Fu , Dmitry Gutov In-Reply-To: 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> Subject: Re: bug#67061: [PATCH] Improve syntax highlighting for python-ts-mode MIME-Version: 1.0 X-Mailer: Yamail [ http://yandex.ru ] 5.0 Date: Sun, 24 Dec 2023 00:46:46 +0300 Message-Id: <101111703367999@mail.yandex.ru> Content-Transfer-Encoding: base64 Content-Type: text/html; charset=utf-8 X-Spam-Score: 0.7 (/) X-Debbugs-Envelope-To: 67061 Cc: Eli Zaretskii , "67061@debbugs.gnu.org" <67061@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: -0.3 (/) PGRpdj48ZGl2PiZndDsgSSBkb27igJl0IHRoaW5rIGZ1bmN0aW9uIHBhcmFtZXRlcnMgc2hvdWxk IGJlIGluIOKAmGRlZmluaXRpb27igJkuIEluIGZhY3QsIGluIG15IGhlYWQsIG9ubHkgdGhlIHZh cmlhYmxlL2Z1bmN0aW9uL2NsYXNzIG5hbWUgb2YgdG9wLWxldmVsIGNvbnN0cnVjdHMgc2hvdWxk IGJlIGluIOKAmGRlZmluaXRpb27igJkuPC9kaXY+PGRpdj7CoDwvZGl2PjxkaXY+QXMgRG1pdHJ5 IHN1Z2dlc3RlZCwgSSBjb3VsZCBtb3ZlIHBhcmFtZXRlcnMgdG8gdGhlIG5ldyBmZWF0dXJlPC9k aXY+PGRpdj52YXJpYWJsZS1kZWZpbml0aW9uLiBUaGlzIGZlYXR1cmUgd291bGQgYmUgZGVkaWNh dGVkIHRvIGhpZ2hsaWdodGluZzwvZGl2PjxkaXY+dmFyaWFibGVzIGludHJvZHVjZWQgaW50byBh IHNjb3BlLiBJZiB3ZSBhZ3JlZSBvbiB0aGF0LCBpdCB3b3VsZCBiZSBlYXN5PC9kaXY+PGRpdj50 byBhZGQgdG8gdGhpcyBwYXRjaC48L2Rpdj48ZGl2PsKgPC9kaXY+PGRpdj7CoDwvZGl2PjwvZGl2 PjxkaXY+PGJyIC8+PC9kaXY+PGRpdj48YnIgLz48L2Rpdj48ZGl2PjE3LjEyLjIwMjMsIDA0OjA3 LCAiWXVhbiBGdSIgJmx0O2Nhc291cmlAZ21haWwuY29tJmd0Ozo8L2Rpdj48YmxvY2txdW90ZT48 cD48YnIgLz48YnIgLz48L3A+PGJsb2NrcXVvdGUgY2xhc3M9IjIxMGU3YTg0OGU4ZmNiNDV3bWkt cXVvdGUiPsKgT24gRGVjIDE0LCAyMDIzLCBhdCAzOjUxIEFNLCBEbWl0cnkgR3V0b3YgJmx0Ozxh IGhyZWY9Im1haWx0bzpkbWl0cnlAZ3V0b3YuZGV2Ij5kbWl0cnlAZ3V0b3YuZGV2PC9hPiZndDsg d3JvdGU6PGJyIC8+wqA8YnIgLz7CoE9uIDE0LzEyLzIwMjMgMDc6NTQsIFl1YW4gRnUgd3JvdGU6 PGJyIC8+PGJsb2NrcXVvdGUgY2xhc3M9IjIxMGU3YTg0OGU4ZmNiNDV3bWktcXVvdGUiPjxibG9j a3F1b3RlIGNsYXNzPSIyMTBlN2E4NDhlOGZjYjQ1d21pLXF1b3RlIj7CoEkgdGhpbmsgdGhlICdk ZWZpbml0aW9uJyBmZWF0dXJlIGlzIGdvb2QgZm9yIGl0IChnb2luZyBieSB0aGUgbmFtZSwgc2lu Y2UgaXQncyBhbiBpbXBsaWNpdCB2YXJpYWJsZSBkZWNsYXJhdGlvbiksIGJ1dCBpdCBjb3VsZCBi ZSBzcGxpdCBvZmYgaW50byBhIHNlcGFyYXRlIGZlYXR1cmUgdG9vLjxiciAvPjwvYmxvY2txdW90 ZT7CoEFzIGxvbmcgYXMgaXTigJlzIG5vdCBhZGRlZCB0byB0aGUgZGVmaW5pdGlvbiBmZWF0dXJl LCBiZWNhdXNlLCBhZ2FpbiwgZGVmaW5pdGlvbiBpcyBhdCBsZXZlbCAxIGFuZCBJIGRvbuKAmXQg d2FudCB0byBrZWVwIGxldmVsIDEgbWluaW1hbC48YnIgLz7CoE1heWJlIHdlIGNhbiB1c2UgbG9j YWwtZGVmaW5pdGlvbiwgb3Igc29tZXRoaW5nIHNpbWlsYXIsIHRvIHNpZ25pZnkgdGhhdCB0aGlz IGZlYXR1cmUgaGlnaGxpZ2h0cyBzY29wZWQgZGVmaW5pdGlvbnMuPGJyIC8+PC9ibG9ja3F1b3Rl PsKgPGJyIC8+wqBCdXQgeW91IHRoaW5rIGZ1bmN0aW9uIHBhcmFtZXRlcnMgc2hvdWxkIGJlIGlu ICdkZWZpbml0aW9uJz8gVGhleSBhcmUgYWxzbyAic2NvcGVkIiwgSSB3b3VsZCBzYXkuPGJyIC8+ PC9ibG9ja3F1b3RlPjxwPjxiciAvPkkgZG9u4oCZdCB0aGluayBmdW5jdGlvbiBwYXJhbWV0ZXJz IHNob3VsZCBiZSBpbiDigJhkZWZpbml0aW9u4oCZLiBJbiBmYWN0LCBpbiBteSBoZWFkLCBvbmx5 IHRoZSB2YXJpYWJsZS9mdW5jdGlvbi9jbGFzcyBuYW1lIG9mIHRvcC1sZXZlbCBjb25zdHJ1Y3Rz IHNob3VsZCBiZSBpbiDigJhkZWZpbml0aW9u4oCZLiBOb3cgSSBjYW4gc2VlIHRoYXQgdGhlIG5h bWUg4oCYZGVmaW5pdGlvbuKAmSBpcyB0b28gdmFndWUgZm9yIG15IG9yaWdpbmFsIGludGVudCwg YW5kIG1vc3QgdHMgbW9kZXMgcHJvYmFibHkgZG9u4oCZdCBzaGFyZSB0aGUgc2FtZSBpbnRlcnBy ZXRhdGlvbiBhcyBJIGRvLi4uPGJyIC8+PGJyIC8+TWF5YmUgd2UgY2FuIGFsbG93IGRlZmluaXRp b24gdG8gaW5jbHVkZSBtb3JlIHRoaW5ncyBhbmQgbW92ZSBpdCB0byBsZXZlbCAzLCBhbmQgYWRk IGEgbW9yZSByZXN0cmljdGVkIOKAmXRvcC1sZXZlbC1kZWZpbml0aW9u4oCZIHRvIGxldmVsIDEg dG8gdGFrZSBpdOKAmXMgY3VycmVudCByb2xlLiBXRFlUPzxiciAvPjxiciAvPll1YW48YnIgLz48 L3A+PC9ibG9ja3F1b3RlPg== From debbugs-submit-bounces@debbugs.gnu.org Sat Dec 30 05:53:53 2023 Received: (at 67061) by debbugs.gnu.org; 30 Dec 2023 10:53:53 +0000 Received: from localhost ([127.0.0.1]:43142 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rJWyV-0000EW-FR for submit@debbugs.gnu.org; Sat, 30 Dec 2023 05:53:52 -0500 Received: from forward102a.mail.yandex.net ([2a02:6b8:c0e:500:1:45:d181:d102]:55140) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rJWyS-0000EE-DU for 67061@debbugs.gnu.org; Sat, 30 Dec 2023 05:53:50 -0500 Received: from mail-nwsmtp-mxback-production-main-63.vla.yp-c.yandex.net (mail-nwsmtp-mxback-production-main-63.vla.yp-c.yandex.net [IPv6:2a02:6b8:c1d:6294:0:640:ff91:0]) by forward102a.mail.yandex.net (Yandex) with ESMTP id B505F608F2; Sat, 30 Dec 2023 13:53:39 +0300 (MSK) Received: from mail.yandex.ru (2a02:6b8:c0d:33a1:0:640:612:0 [2a02:6b8:c0d:33a1:0:640:612:0]) by mail-nwsmtp-mxback-production-main-63.vla.yp-c.yandex.net (mxback/Yandex) with HTTP id ZrUUU7BOvuQ0-0GcnhFyE; Sat, 30 Dec 2023 13:53:39 +0300 X-Yandex-Fwd: 1 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yandex.ru; s=mail; t=1703933619; bh=FkEqce+9K1KnnxMSTiUuHV2Gt71H3Kp/0R+0NuHojqM=; h=Message-Id:References:Date:Cc:Subject:In-Reply-To:To:From; b=Cj5I27VVpslOvwCtQueSIQ9/wQ9/kWzBsOvVc80gLFozgDNaSfZ8yieFAAgCtG1iG fRRQGotSHeEvFEIeqUziJvTJesb4JpSsezZSVbFNqupX4tXCYiJdTum7IEncEz7Zbp sB+J7ABYfvo5D6PThiDVhFYdwEH0gTiVE8X7ZFWI= Authentication-Results: mail-nwsmtp-mxback-production-main-63.vla.yp-c.yandex.net; dkim=pass header.i=@yandex.ru Received: by ajvwwkfnk4mrpgm2.vla.yp-c.yandex.net with HTTP; Sat, 30 Dec 2023 13:53:38 +0300 From: Denis Zubarev To: Eli Zaretskii In-Reply-To: <83h6k9dzl6.fsf@gnu.org> 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> <7371702772641@mail.yandex.ru> <8915940C-F69C-4CAE-80E8-4F70C5753061@gmail.com> <240311702778783@mail.yandex.ru> <83h6k9dzl6.fsf@gnu.org> Subject: Re: bug#67061: [PATCH] Improve syntax highlighting for python-ts-mode MIME-Version: 1.0 X-Mailer: Yamail [ http://yandex.ru ] 5.0 Date: Sat, 30 Dec 2023 13:53:38 +0300 Message-Id: <124811703927449@mail.yandex.ru> Content-Type: multipart/mixed; boundary="----==--bound.31493.ajvwwkfnk4mrpgm2.vla.yp-c.yandex.net" X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 67061 Cc: "dmitry@gutov.dev" , "casouri@gmail.com" , "67061@debbugs.gnu.org" <67061@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: -1.7 (-) ------==--bound.31493.ajvwwkfnk4mrpgm2.vla.yp-c.yandex.net Content-Transfer-Encoding: base64 Content-Type: text/html; charset=utf-8 PGRpdj48ZGl2Pkl0IHNlZW1zLCB0aGVyZSBpcyBubyBjb25zZW5zdXMgYWJvdXQgbmV3IHZhcmlh YmxlLWRlZmluaXRpb24gZmVhdHVyZS4gU28gSSByZW1vdmVkIGl0IGZyb20gdGhpcyBwYXRjaC48 L2Rpdj48ZGl2PkxhdGVyIEkgd2lsbCBzZW5kIGEgbmV3IHBhdGNoIGZvciBkaXNjdXNzaW5nIGl0 LjwvZGl2PjxkaXY+wqA8L2Rpdj48ZGl2PkkgcmViYXNlZCBvbiB0aGUgbGF0ZXN0IGVtYWNzLTI5 IGFuZCBhbHNvIGZpeGVkIGEgdGVzdCB0aGF0IGZhaWxlZCBvbiB0aGlzIGJyYW5jaC48L2Rpdj48 ZGl2PlBsZWFzZSBmaW5kIHRoZSBwYXRjaCBpbiB0aGUgYXR0YWNobWVudC48L2Rpdj48L2Rpdj48 ZGl2PsKgPC9kaXY+PGRpdj4yMy4xMi4yMDIzLCAxMjo0MiwgIkVsaSBaYXJldHNraWkiICZsdDtl bGl6QGdudS5vcmcmZ3Q7OjwvZGl2PjxibG9ja3F1b3RlPjxibG9ja3F1b3RlPsKgRnJvbTogRGVu aXMgWnViYXJldiAmbHQ7PGEgaHJlZj0ibWFpbHRvOmR2enViYXJldkB5YW5kZXgucnUiIHJlbD0i bm9vcGVuZXIgbm9yZWZlcnJlciI+ZHZ6dWJhcmV2QHlhbmRleC5ydTwvYT4mZ3Q7PGJyIC8+wqBD YzogRG1pdHJ5IEd1dG92ICZsdDs8YSBocmVmPSJtYWlsdG86ZG1pdHJ5QGd1dG92LmRldiIgcmVs PSJub29wZW5lciBub3JlZmVycmVyIj5kbWl0cnlAZ3V0b3YuZGV2PC9hPiZndDssPGJyIC8+wqDC oMKgwqDCoMKgwqDCoMKgRWxpIFphcmV0c2tpaSAmbHQ7PGEgaHJlZj0ibWFpbHRvOmVsaXpAZ251 Lm9yZyIgcmVsPSJub29wZW5lciBub3JlZmVycmVyIj5lbGl6QGdudS5vcmc8L2E+Jmd0Oyw8YnIg Lz7CoMKgwqDCoMKgwqDCoMKgwqAiPGEgaHJlZj0ibWFpbHRvOjY3MDYxQGRlYmJ1Z3MuZ251Lm9y ZyIgcmVsPSJub29wZW5lciBub3JlZmVycmVyIj42NzA2MUBkZWJidWdzLmdudS5vcmc8L2E+IiAm bHQ7PGEgaHJlZj0ibWFpbHRvOjY3MDYxQGRlYmJ1Z3MuZ251Lm9yZyIgcmVsPSJub29wZW5lciBu b3JlZmVycmVyIj42NzA2MUBkZWJidWdzLmdudS5vcmc8L2E+Jmd0OzxiciAvPsKgRGF0ZTogU3Vu LCAxNyBEZWMgMjAyMyAwNTowNzowMSArMDMwMDxiciAvPsKgPGJyIC8+wqAmZ3Q7IFRoYW5rcy4g SSB0aGluayB0aGUgb25seSB0aGluZyB0aGF04oCZcyBzdGlsbCB1cCB0byBkaXNjdXNzaW9uIGlz IHRoZSB2YXJpYWJsZS1kZWZpbml0aW9uIHJ1bGVzLiBPdGhlcnMgY2FuPGJyIC8+wqBiZSBtZXJn ZWQgdG8gZW1hY3MtMjkuPGJyIC8+wqDCoDxiciAvPsKgSSBjYW4gZXh0cmFjdCBwYXJ0IHdpdGgg dmFyaWFibGUtZGVmaW5pdGlvbiBpbnRvIHRoZSBuZXh0IHBhdGNoLjxiciAvPsKgSW4gY2FzZSBp dCBpcyBvaywgSSBhdHRhY2hlZCBwYXRjaCB3aXRob3V0IG5ldyB2YXJpYWJsZS1kZWZpbml0aW9u IGZlYXR1cmUuPC9ibG9ja3F1b3RlPjxwPjxiciAvPlRoYW5rcywgYnV0IGl0IGRvZXNuJ3QgYXBw bHkgY2xlYW5seSB0byB0aGUgY3VycmVudCBlbWFjcy0yOSBicmFuY2guPGJyIC8+V291bGQgeW91 IG1pbmQgcGxlYXNlIHJlYmFzaW5nIHRoZSBwYXRjaCBvbiB0aGUgZW1hY3MtMjkgYnJhbmNoIGFu ZDxiciAvPnJlc3VibWl0dGluZyBpdD88L3A+PC9ibG9ja3F1b3RlPg== ------==--bound.31493.ajvwwkfnk4mrpgm2.vla.yp-c.yandex.net Content-Disposition: attachment; filename="0008-Improve-syntax-highlighting-for-python-ts-mode.patch" Content-Transfer-Encoding: base64 Content-Type: text/x-diff; name="0008-Improve-syntax-highlighting-for-python-ts-mode.patch" RnJvbSBiN2ExNzA2NzNlMjZlOWNmMmQwNDkxMDdhNzJjZTZkZjBhOGEyMzBlIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBEZW5pcyBadWJhcmV2IDxkdnp1YmFyZXZAeWFuZGV4LnJ1PgpE YXRlOiBTYXQsIDExIE5vdiAyMDIzIDA0OjU1OjQ0ICswMzAwClN1YmplY3Q6IFtQQVRDSF0gSW1w cm92ZSBzeW50YXggaGlnaGxpZ2h0aW5nIGZvciBweXRob24tdHMtbW9kZQoKRml4IGZvbnRpZmlj YXRpb24gb2Ygc3RyaW5ncyBpbnNpZGUgb2YgZi1zdHJpbmdzIGludGVycG9sYXRpb24sIGUuZy4g Zm9yCmYiYmVnIHsnbmVzdGVkJ30iIC0gJ25lc3RlZCcgd2FzIG5vdCBmb250aWZpZWQgYXMgc3Ry aW5nLiAgRG8gbm90Cm92ZXJyaWRlIHRoZSBmYWNlIG9mIGJ1aWx0aW4gZnVuY3Rpb25zIChhbGws IGJ5dGVzIGV0Yy4pIHdpdGggdGhlCmZ1bmN0aW9uIGNhbGwgZmFjZS4gIEFkZCBtaXNzaW5nIGFz c2lnbm1lbnQgZXhwcmVzc2lvbnMgKDo9ICo9KS4KRm9udGlmeSBidWlsdC1pbnMgKGRpY3QsbGlz dCxldGMuKSBhcyB0eXBlcyB3aGVuIHRoZXkgYXJlIHVzZWQgaW4gdHlwZQpoaW50cy4gIEhpZ2hs aWdodCB1bmlvbiB0eXBlcyAodHlwZTF8dHlwZTIpLiAgSGlnaGxpZ2h0IGJhc2UgY2xhc3MgbmFt ZXMKaW4gdGhlIGNsYXNzIGRlZmluaXRpb24uICBGb250aWZ5IGNsYXNzIHBhdHRlcm5zIGluIGNh c2Ugc3RhdGVtZW50cy4KSGlnaGxpZ2h0IHRoZSBzZWNvbmQgYXJndW1lbnQgYXMgYSB0eXBlIGlu IGlzaW5zdGFuY2UvaXNzdWJjbGFzcyBjYWxsLgpIaWdobGlnaHQgZG90dGVkIGRlY29yYXRvciBu YW1lcy4KCiogbGlzcC9wcm9nbW9kZXMvcHl0aG9uLmVsIChweXRob24tLXRyZWVzaXQta2V5d29y ZHMpOiBBZGQgY29tcG91bmQKa2V5d29yZCAiaXMgbm90Ii4KKHB5dGhvbi0tdHJlZXNpdC1idWls dGluLXR5cGVzKTogTmV3IHZhcmlhYmxlIHRoYXQgc3RvcmVzIGFsbCBweXRob24KYnVpbHQtaW4g dHlwZXMuCihweXRob24tLXRyZWVzaXQtdHlwZS1yZWdleCk6IE5ldyB2YXJpYWJsZS4gUmVnZXgg bWF0Y2hlcyBpZiB0ZXh0IGlzIGVpdGhlcgpidWlsdC1pbiB0eXBlIG9yIHRleHQgc3RhcnRzIHdp dGggY2FwaXRhbCBsZXR0ZXIuCihweXRob24tLXRyZWVzaXQtYnVpbHRpbnMpOiBFeHRyYWN0IGJ1 aWx0LWluIHR5cGVzIHRvIG90aGVyIHZhcmlhYmxlLgoocHl0aG9uLS10cmVlc2l0LWZvbnRpZnkt c3RyaW5nKTogZml4IGYtc3RyaW5nIGludGVycG9sYXRpb24uIEVuYWJsZQppbnRlcnBvbGF0aW9u IGhpZ2hsaWdodGluZyBvbmx5IGlmIHN0cmluZy1pbnRlcnBvbGF0aW9uIGlzIHByZXNlbnRlZCBv bgp0aGUgZW5hYmxlZCBsZXZlbHMgb2YgdHJlZXNpdC1mb250LWxvY2stZmVhdHVyZS1saXN0Lgoo cHl0aG9uLS10cmVlc2l0LWZvbnRpZnktc3RyaW5nLWludGVycG9sYXRpb24pOiBSZW1vdmUgZnVu Y3Rpb24uCihweXRob24tLXRyZWVzaXQtZm9udGlmeS11bmlvbi10eXBlcyk6IEZvbnRpZnkgbmVz dGVkIHVuaW9uIHR5cGVzLgoocHl0aG9uLS10cmVlc2l0LWZvbnRpZnktdW5pb24tdHlwZXMtc3Ry aWN0KTogRm9udGlmeSBuZXN0ZWQgdW5pb24KdHlwZXMsIG9ubHkgaWYgdHlwZSBpZGVudGlmaWVy IG1hdGNoZXMgYWdhaW5zdApweXRob24tLXRyZWVzaXQtdHlwZS1yZWdleC4KKHB5dGhvbi0tdHJl ZXNpdC1mb250aWZ5LWRvdHRlZC1kZWNvcmF0b3IpOiBGb250aWZ5IGFsbCBwYXJ0cyBvZgpkb3R0 ZWQgZGVjb3JhdG9yIG5hbWUuCihweXRob24tLXRyZWVzaXQtc2V0dGluZ3MpOiBDaGFuZ2UvYWRk IHJ1bGVzLgoqIHRlc3QvbGlzcC9wcm9nbW9kZXMvcHl0aG9uLXRlc3RzLmVsIChweXRob24tdHMt dGVzdHMtd2l0aC10ZW1wLWJ1ZmZlcik6CmZ1bmN0aW9uIGZvciBzZXR0aW5nIHVwIHRlc3QgYnVm ZmVyLgoocHl0aG9uLXRzLW1vZGUtY29tcG91bmQta2V5d29yZHMtZmFjZSkKKHB5dGhvbi10cy1t b2RlLW5hbWVkLWFzc2lnbmVtZW50LWZhY2UtMSkKKHB5dGhvbi10cy1tb2RlLWFzc2lnbmVtZW50 LWZhY2UtMikKKHB5dGhvbi10cy1tb2RlLW5lc3RlZC10eXBlcy1mYWNlLTEpCihweXRob24tdHMt bW9kZS11bmlvbi10eXBlcy1mYWNlLTEpCihweXRob24tdHMtbW9kZS11bmlvbi10eXBlcy1mYWNl LTIpCihweXRob24tdHMtbW9kZS10eXBlcy1mYWNlLTEpCihweXRob24tdHMtbW9kZS10eXBlcy1m YWNlLTIpCihweXRob24tdHMtbW9kZS10eXBlcy1mYWNlLTMpCihweXRob24tdHMtbW9kZS1pc2lu c3RhbmNlLXR5cGUtZmFjZS0xKQoocHl0aG9uLXRzLW1vZGUtaXNpbnN0YW5jZS10eXBlLWZhY2Ut MikKKHB5dGhvbi10cy1tb2RlLWlzaW5zdGFuY2UtdHlwZS1mYWNlLTMpCihweXRob24tdHMtbW9k ZS1zdXBlcmNsYXNzLXR5cGUtZmFjZSkKKHB5dGhvbi10cy1tb2RlLWNsYXNzLXBhdHRlcm5zLWZh Y2UpCihweXRob24tdHMtbW9kZS1kb3R0ZWQtZGVjb3JhdG9yLWZhY2UtMSkKKHB5dGhvbi10cy1t b2RlLWRvdHRlZC1kZWNvcmF0b3ItZmFjZS0yKQoocHl0aG9uLXRzLW1vZGUtYnVpbHRpbi1jYWxs LWZhY2UpCihweXRob24tdHMtbW9kZS1pbnRlcnBvbGF0aW9uLW5lc3RlZC1zdHJpbmcpCihweXRo b24tdHMtbW9kZS1kaXNhYmxlZC1zdHJpbmctaW50ZXJwb2xhdGlvbikKKHB5dGhvbi10cy1tb2Rl LWludGVycG9sYXRpb24tZG9jLXN0cmluZyk6IEFkZCB0ZXN0cy4KLS0tCiBsaXNwL3Byb2dtb2Rl cy9weXRob24uZWwgICAgICAgICAgICB8IDI0MCArKysrKysrKysrKysrKysrLS0tLS0tCiB0ZXN0 L2xpc3AvcHJvZ21vZGVzL3B5dGhvbi10ZXN0cy5lbCB8IDMwMiArKysrKysrKysrKysrKysrKysr KysrKysrKysrCiAyIGZpbGVzIGNoYW5nZWQsIDQ4MCBpbnNlcnRpb25zKCspLCA2MiBkZWxldGlv bnMoLSkKCmRpZmYgLS1naXQgYS9saXNwL3Byb2dtb2Rlcy9weXRob24uZWwgYi9saXNwL3Byb2dt b2Rlcy9weXRob24uZWwKaW5kZXggZDcyNTAxNDhmYS4uZjVmODlhZDU1MiAxMDA2NDQKLS0tIGEv bGlzcC9wcm9nbW9kZXMvcHl0aG9uLmVsCisrKyBiL2xpc3AvcHJvZ21vZGVzL3B5dGhvbi5lbApA QCAtOTY5LDE5ICs5NjksMzAgQEAgcHl0aG9uLS10cmVlc2l0LWtleXdvcmRzCiAgICAgInJhaXNl IiAicmV0dXJuIiAidHJ5IiAid2hpbGUiICJ3aXRoIiAieWllbGQiCiAgICAgOzsgVGhlc2UgYXJl IHRlY2huaWNhbGx5IG9wZXJhdG9ycywgYnV0IHdlIGZvbnRpZnkgdGhlbSBhcwogICAgIDs7IGtl eXdvcmRzLgotICAgICJhbmQiICJpbiIgImlzIiAibm90IiAib3IiICJub3QgaW4iKSkKKyAgICAi YW5kIiAiaW4iICJpcyIgIm5vdCIgIm9yIiAibm90IGluIiAiaXMgbm90IikpCisKKyhkZWZ2YXIg cHl0aG9uLS10cmVlc2l0LWJ1aWx0aW4tdHlwZXMKKyAgJygiaW50IiAiZmxvYXQiICJjb21wbGV4 IiAiYm9vbCIgImxpc3QiICJ0dXBsZSIgInJhbmdlIiAic3RyIgorICAgICJieXRlcyIgImJ5dGVh cnJheSIgIm1lbW9yeXZpZXciICJzZXQiICJmcm96ZW5zZXQiICJkaWN0IikpCisKKyhkZWZ2YXIg cHl0aG9uLS10cmVlc2l0LXR5cGUtcmVnZXgKKyAgKHJ4LXRvLXN0cmluZyBgKHNlcSBib2wgKG9y CisgICAgICAgICAgICAgICAgICAgICAgICAgICAsQHB5dGhvbi0tdHJlZXNpdC1idWlsdGluLXR5 cGVzCisgICAgICAgICAgICAgICAgICAgICAgICAgICAoc2VxICg/ICAiXyIpIChhbnkgIkEtWiIp ICgrIChhbnkgImEtekEtWl8wLTkiKSkpKQorICAgICAgICAgICAgICAgICAgZW9sKSkpCiAKIChk ZWZ2YXIgcHl0aG9uLS10cmVlc2l0LWJ1aWx0aW5zCi0gICcoImFicyIgImFsbCIgImFueSIgImFz Y2lpIiAiYmluIiAiYm9vbCIgImJyZWFrcG9pbnQiICJieXRlYXJyYXkiCi0gICAgImJ5dGVzIiAi Y2FsbGFibGUiICJjaHIiICJjbGFzc21ldGhvZCIgImNvbXBpbGUiICJjb21wbGV4IgotICAgICJk ZWxhdHRyIiAiZGljdCIgImRpciIgImRpdm1vZCIgImVudW1lcmF0ZSIgImV2YWwiICJleGVjIgot ICAgICJmaWx0ZXIiICJmbG9hdCIgImZvcm1hdCIgImZyb3plbnNldCIgImdldGF0dHIiICJnbG9i YWxzIgotICAgICJoYXNhdHRyIiAiaGFzaCIgImhlbHAiICJoZXgiICJpZCIgImlucHV0IiAiaW50 IiAiaXNpbnN0YW5jZSIKLSAgICAiaXNzdWJjbGFzcyIgIml0ZXIiICJsZW4iICJsaXN0IiAibG9j YWxzIiAibWFwIiAibWF4IgotICAgICJtZW1vcnl2aWV3IiAibWluIiAibmV4dCIgIm9iamVjdCIg Im9jdCIgIm9wZW4iICJvcmQiICJwb3ciCi0gICAgInByaW50IiAicHJvcGVydHkiICJyYW5nZSIg InJlcHIiICJyZXZlcnNlZCIgInJvdW5kIiAic2V0IgotICAgICJzZXRhdHRyIiAic2xpY2UiICJz b3J0ZWQiICJzdGF0aWNtZXRob2QiICJzdHIiICJzdW0iICJzdXBlciIKLSAgICAidHVwbGUiICJ0 eXBlIiAidmFycyIgInppcCIgIl9faW1wb3J0X18iKSkKKyAgKGFwcGVuZCBweXRob24tLXRyZWVz aXQtYnVpbHRpbi10eXBlcworICAgICAgICAgICcoImFicyIgImFsbCIgImFueSIgImFzY2lpIiAi YmluIiAiYnJlYWtwb2ludCIKKyAgICAgICAgICAgICJjYWxsYWJsZSIgImNociIgImNsYXNzbWV0 aG9kIiAiY29tcGlsZSIKKyAgICAgICAgICAgICJkZWxhdHRyIiAiZGlyIiAiZGl2bW9kIiAiZW51 bWVyYXRlIiAiZXZhbCIgImV4ZWMiCisgICAgICAgICAgICAiZmlsdGVyIiAiZm9ybWF0IiAiZ2V0 YXR0ciIgImdsb2JhbHMiCisgICAgICAgICAgICAiaGFzYXR0ciIgImhhc2giICJoZWxwIiAiaGV4 IiAiaWQiICJpbnB1dCIgImlzaW5zdGFuY2UiCisgICAgICAgICAgICAiaXNzdWJjbGFzcyIgIml0 ZXIiICJsZW4iICJsb2NhbHMiICJtYXAiICJtYXgiCisgICAgICAgICAgICAibWluIiAibmV4dCIg Im9iamVjdCIgIm9jdCIgIm9wZW4iICJvcmQiICJwb3ciCisgICAgICAgICAgICAicHJpbnQiICJw cm9wZXJ0eSIgInJlcHIiICJyZXZlcnNlZCIgInJvdW5kIgorICAgICAgICAgICAgInNldGF0dHIi ICJzbGljZSIgInNvcnRlZCIgInN0YXRpY21ldGhvZCIgInN1bSIgInN1cGVyIgorICAgICAgICAg ICAgInR5cGUiICJ2YXJzIiAiemlwIiAiX19pbXBvcnRfXyIpKSkKIAogKGRlZnZhciBweXRob24t LXRyZWVzaXQtY29uc3RhbnRzCiAgICcoIkVsbGlwc2lzIiAiRmFsc2UiICJOb25lIiAiTm90SW1w bGVtZW50ZWQiICJUcnVlIiAiX19kZWJ1Z19fIgpAQCAtMTAzMiw5ICsxMDQzLDcgQEAgcHl0aG9u LS10cmVlc2l0LWZvbnRpZnktc3RyaW5nCiBmLXN0cmluZ3MuICBPVkVSUklERSBpcyB0aGUgb3Zl cnJpZGUgZmxhZyBkZXNjcmliZWQgaW4KIGB0cmVlc2l0LWZvbnQtbG9jay1ydWxlcycuICBTVEFS VCBhbmQgRU5EIG1hcmsgdGhlIHJlZ2lvbiB0byBiZQogZm9udGlmaWVkLiIKLSAgKGxldCogKChz dHJpbmctYmVnICh0cmVlc2l0LW5vZGUtc3RhcnQgbm9kZSkpCi0gICAgICAgICAoc3RyaW5nLWVu ZCAodHJlZXNpdC1ub2RlLWVuZCBub2RlKSkKLSAgICAgICAgIChtYXliZS1leHByZXNzaW9uICh0 cmVlc2l0LW5vZGUtcGFyZW50IG5vZGUpKQorICAobGV0KiAoKG1heWJlLWV4cHJlc3Npb24gKHRy ZWVzaXQtbm9kZS1wYXJlbnQgbm9kZSkpCiAgICAgICAgICAoZ3JhbmRwYXJlbnQgKHRyZWVzaXQt bm9kZS1wYXJlbnQKICAgICAgICAgICAgICAgICAgICAgICAgKHRyZWVzaXQtbm9kZS1wYXJlbnQK ICAgICAgICAgICAgICAgICAgICAgICAgIG1heWJlLWV4cHJlc3Npb24pKSkKQEAgLTEwNjIsMjgg KzEwNzEsOTIgQEAgcHl0aG9uLS10cmVlc2l0LWZvbnRpZnktc3RyaW5nCiAgICAgICAgICAgICAg ICAgICAgICAgICAoZXF1YWwgKHRyZWVzaXQtbm9kZS10eXBlIG1heWJlLWV4cHJlc3Npb24pCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImV4cHJlc3Npb25fc3RhdGVtZW50IikpCiAg ICAgICAgICAgICAgICAgICAgJ2ZvbnQtbG9jay1kb2MtZmFjZQotICAgICAgICAgICAgICAgICAn Zm9udC1sb2NrLXN0cmluZy1mYWNlKSkpCi0gICAgOzsgRG9uJ3QgaGlnaGxpZ2h0IHN0cmluZyBw cmVmaXhlcyBsaWtlIGYvci9iLgotICAgIChzYXZlLWV4Y3Vyc2lvbgotICAgICAgKGdvdG8tY2hh ciBzdHJpbmctYmVnKQotICAgICAgKHdoZW4gKHJlLXNlYXJjaC1mb3J3YXJkICJbXCInXSIgc3Ry aW5nLWVuZCB0KQotICAgICAgICAoc2V0cSBzdHJpbmctYmVnIChtYXRjaC1iZWdpbm5pbmcgMCkp KSkKLSAgICAodHJlZXNpdC1mb250aWZ5LXdpdGgtb3ZlcnJpZGUKLSAgICAgc3RyaW5nLWJlZyBz dHJpbmctZW5kIGZhY2Ugb3ZlcnJpZGUgc3RhcnQgZW5kKSkpCi0KLShkZWZ1biBweXRob24tLXRy ZWVzaXQtZm9udGlmeS1zdHJpbmctaW50ZXJwb2xhdGlvbgotICAgIChub2RlIF8gc3RhcnQgZW5k ICZyZXN0IF8pCi0gICJGb250aWZ5IHN0cmluZyBpbnRlcnBvbGF0aW9uLgotTk9ERSBpcyB0aGUg c3RyaW5nIG5vZGUuICBEbyBub3QgZm9udGlmeSB0aGUgaW5pdGlhbCBmIGZvcgotZi1zdHJpbmdz LiAgU1RBUlQgYW5kIEVORCBtYXJrIHRoZSByZWdpb24gdG8gYmUKKyAgICAgICAgICAgICAgICAg J2ZvbnQtbG9jay1zdHJpbmctZmFjZSkpCisKKyAgICAgICAgIChpZ25vcmUtaW50ZXJwb2xhdGlv biAobm90CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChzZXEtc29tZQorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxhbWJkYSAoZmVhdHMpIChtZW1xICdzdHJpbmct aW50ZXJwb2xhdGlvbiBmZWF0cykpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAo c2VxLXRha2UgdHJlZXNpdC1mb250LWxvY2stZmVhdHVyZS1saXN0IHRyZWVzaXQtZm9udC1sb2Nr LWxldmVsKSkpKQorICAgICAgICAgOzsgSWYgaW50ZXJwb2xhdGlvbiBpcyBlbmFibGVkLCBoaWdo bGlnaHQgb25seQorICAgICAgICAgOzsgc3RyaW5nX3N0YXJ0L3N0cmluZ19jb250ZW50L3N0cmlu Z19lbmQgY2hpbGRyZW4uICBEbyBub3QKKyAgICAgICAgIDs7IHRvdWNoIGludGVycG9sYXRpb24g bm9kZSB0aGF0IGNhbiBvY2N1ciBpbnNpZGUgb2YgdGhlCisgICAgICAgICA7OyBzdHJpbmcuCisg ICAgICAgICAoc3RyaW5nLW5vZGVzIChpZiBpZ25vcmUtaW50ZXJwb2xhdGlvbgorICAgICAgICAg ICAgICAgICAgICAgICAgICAgKGxpc3Qgbm9kZSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAo dHJlZXNpdC1maWx0ZXItY2hpbGQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgbm9kZQorICAg ICAgICAgICAgICAgICAgICAgICAgICAobGFtYmRhIChjaCkgKG1lbWJlciAodHJlZXNpdC1ub2Rl LXR5cGUgY2gpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICcoInN0cmluZ19zdGFydCIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAic3RyaW5nX2NvbnRlbnQiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgInN0cmluZ19lbmQiKSkpCisgICAgICAgICAgICAgICAgICAg ICAgICAgIHQpKSkpCisKKyAgICAoZG9saXN0IChzdHJpbmctbm9kZSBzdHJpbmctbm9kZXMpCisg ICAgICAobGV0ICgoc3RyaW5nLWJlZyAodHJlZXNpdC1ub2RlLXN0YXJ0IHN0cmluZy1ub2RlKSkK KyAgICAgICAgICAgIChzdHJpbmctZW5kICh0cmVlc2l0LW5vZGUtZW5kIHN0cmluZy1ub2RlKSkp CisgICAgICAgICh3aGVuIChvciBpZ25vcmUtaW50ZXJwb2xhdGlvbgorICAgICAgICAgICAgICAg ICAgKGVxdWFsICh0cmVlc2l0LW5vZGUtdHlwZSBzdHJpbmctbm9kZSkgInN0cmluZ19zdGFydCIp KQorICAgICAgICAgIDs7IERvbid0IGhpZ2hsaWdodCBzdHJpbmcgcHJlZml4ZXMgbGlrZSBmL3Iv Yi4KKyAgICAgICAgICAoc2F2ZS1leGN1cnNpb24KKyAgICAgICAgICAgIChnb3RvLWNoYXIgc3Ry aW5nLWJlZykKKyAgICAgICAgICAgICh3aGVuIChyZS1zZWFyY2gtZm9yd2FyZCAiW1wiJ10iIHN0 cmluZy1lbmQgdCkKKyAgICAgICAgICAgICAgKHNldHEgc3RyaW5nLWJlZyAobWF0Y2gtYmVnaW5u aW5nIDApKSkpKQorCisgICAgICAgICh0cmVlc2l0LWZvbnRpZnktd2l0aC1vdmVycmlkZQorICAg ICAgICAgc3RyaW5nLWJlZyBzdHJpbmctZW5kIGZhY2Ugb3ZlcnJpZGUgc3RhcnQgZW5kKSkpKSkK KworKGRlZnVuIHB5dGhvbi0tdHJlZXNpdC1mb250aWZ5LXVuaW9uLXR5cGVzIChub2RlIG92ZXJy aWRlIHN0YXJ0IGVuZCAmb3B0aW9uYWwgdHlwZS1yZWdleCAmcmVzdCBfKQorICAiRm9udGlmeSBu ZXN0ZWQgdW5pb24gdHlwZXMgaW4gdGhlIHR5cGUgaGludHMuCitGb3IgZXhhbWxwZSwgTHZsMSB8 IEx2bDJbTHZsM1tMdmw0W0x2bDUgfCBOb25lXV0sIEx2bDJdLiAgVGhpcworc3RydWN0dXJlIGlz IHJlcHJlc2VudGVkIHZpYSBuZXN0aW5nIGJpbmFyeV9vcGVyYXRvciBhbmQKK3N1YnNjcmlwdCBu b2Rlcy4gIFRoaXMgZnVuY3Rpb24gaXRlcmF0ZXMgb3ZlciBhbGwgbGV2ZWxzIGFuZAoraGlnaGxp Z2h0IGlkZW50aWZpZXIgbm9kZXMuIElmIFRZUEUtUkVHRVggaXMgbm90IG5pbCBmb250aWZ5IHR5 cGUKK2lkZW50aWZpZXIgb25seSBpZiBpdCBtYXRjaGVzIGFnYWluc3QgVFlQRS1SRUdFWC4gTk9E RSBpcyB0aGUKK2JpbmFyeV9vcGVyYXRvciBub2RlLiAgT1ZFUlJJREUgaXMgdGhlIG92ZXJyaWRl IGZsYWcgZGVzY3JpYmVkIGluCitgdHJlZXNpdC1mb250LWxvY2stcnVsZXMnLiAgU1RBUlQgYW5k IEVORCBtYXJrIHRoZSByZWdpb24gdG8gYmUKK2ZvbnRpZmllZC4iCisgIChkb2xpc3QgKGNoaWxk ICh0cmVlc2l0LW5vZGUtY2hpbGRyZW4gbm9kZSB0KSkKKyAgICAobGV0IChmb250LW5vZGUpCisg ICAgICAocGNhc2UgKHRyZWVzaXQtbm9kZS10eXBlIGNoaWxkKQorICAgICAgICAoKG9yICJpZGVu dGlmaWVyIiAibm9uZSIpCisgICAgICAgICAoc2V0cSBmb250LW5vZGUgY2hpbGQpKQorICAgICAg ICAoImF0dHJpYnV0ZSIKKyAgICAgICAgICh3aGVuLWxldCAoKHR5cGUtbm9kZSAodHJlZXNpdC1u b2RlLWNoaWxkLWJ5LWZpZWxkLW5hbWUgY2hpbGQgImF0dHJpYnV0ZSIpKSkKKyAgICAgICAgICAg KHNldHEgZm9udC1ub2RlIHR5cGUtbm9kZSkpKQorICAgICAgICAoKG9yICJiaW5hcnlfb3BlcmF0 b3IiICJzdWJzY3JpcHQiKQorICAgICAgICAgKHB5dGhvbi0tdHJlZXNpdC1mb250aWZ5LXVuaW9u LXR5cGVzIGNoaWxkIG92ZXJyaWRlIHN0YXJ0IGVuZCB0eXBlLXJlZ2V4KSkpCisKKyAgICAgICh3 aGVuIChhbmQgZm9udC1ub2RlCisgICAgICAgICAgICAgICAgIChvciAobnVsbCB0eXBlLXJlZ2V4 KQorICAgICAgICAgICAgICAgICAgICAgKGxldCAoKGNhc2UtZm9sZC1zZWFyY2ggbmlsKSkKKyAg ICAgICAgICAgICAgICAgICAgICAgKHN0cmluZy1tYXRjaC1wIHR5cGUtcmVnZXggKHRyZWVzaXQt bm9kZS10ZXh0IGZvbnQtbm9kZSkpKSkpCisgICAgICAgICh0cmVlc2l0LWZvbnRpZnktd2l0aC1v dmVycmlkZQorICAgICAgICAgKHRyZWVzaXQtbm9kZS1zdGFydCBmb250LW5vZGUpICh0cmVlc2l0 LW5vZGUtZW5kIGZvbnQtbm9kZSkKKyAgICAgICAgICdmb250LWxvY2stdHlwZS1mYWNlIG92ZXJy aWRlIHN0YXJ0IGVuZCkpKSkpCisKKyhkZWZ1biBweXRob24tLXRyZWVzaXQtZm9udGlmeS11bmlv bi10eXBlcy1zdHJpY3QgKG5vZGUgb3ZlcnJpZGUgc3RhcnQgZW5kICZyZXN0IF8pCisgICJGb250 aWZ5IG5lc3RlZCB1bmlvbiB0eXBlcy4KK1NhbWUgYXMgYHB5dGhvbi0tdHJlZXNpdC1mb250aWZ5 LXVuaW9uLXR5cGVzJyBidXQgdHlwZSBpZGVudGlmaWVyCitzaG91bGQgbWF0Y2ggYWdhaW5zdCBg cHl0aG9uLS10cmVlc2l0LXR5cGUtcmVnZXgnLiAgRm9yIE5PREUsCitPVkVSUklERSwgU1RBUlQg YW5kIEVORCBkZXNjcmlwdGlvbiBzZWUKK2BweXRob24tLXRyZWVzaXQtZm9udGlmeS11bmlvbi10 eXBlcycuIgorICAocHl0aG9uLS10cmVlc2l0LWZvbnRpZnktdW5pb24tdHlwZXMgbm9kZSBvdmVy cmlkZSBzdGFydCBlbmQgcHl0aG9uLS10cmVlc2l0LXR5cGUtcmVnZXgpKQorCisoZGVmdW4gcHl0 aG9uLS10cmVlc2l0LWZvbnRpZnktZG90dGVkLWRlY29yYXRvciAobm9kZSBvdmVycmlkZSBzdGFy dCBlbmQgJnJlc3QgXykKKyAgIkZvbnRpZnkgZG90dGVkIGRlY29yYXRvcnMuCitGb3IgZXhhbXBs ZSBAcHl0ZXMubWFyay5za2lwLiAgSXRlcmF0ZSBvdmVyIGFsbCBuZXN0ZWQgYXR0cmlidXRlCitu b2RlcyBhbmQgaGlnaGxpZ2h0IGlkZW50aWZpZXIgbm9kZXMuICBOT0RFIGlzIHRoZSBmaXJzdCBh dHRyaWJ1dGUKK25vZGUuICBPVkVSUklERSBpcyB0aGUgb3ZlcnJpZGUgZmxhZyBkZXNjcmliZWQg aW4KK2B0cmVlc2l0LWZvbnQtbG9jay1ydWxlcycuICBTVEFSVCBhbmQgRU5EIG1hcmsgdGhlIHJl Z2lvbiB0byBiZQogZm9udGlmaWVkLiIKLSAgOzsgVGhpcyBpcyBraW5kIG9mIGEgaGFjaywgaXQg YmFzaWNhbGx5IHJlbW92ZXMgdGhlIGZhY2UgYXBwbGllZCBieQotICA7OyB0aGUgc3RyaW5nIGZl YXR1cmUsIHNvIHRoYXQgZm9sbG93aW5nIGZlYXR1cmVzIGNhbiBhcHBseSB0aGVpcgotICA7OyBm YWNlLgotICAobGV0ICgobi1zdGFydCAodHJlZXNpdC1ub2RlLXN0YXJ0IG5vZGUpKQotICAgICAg ICAobi1lbmQgKHRyZWVzaXQtbm9kZS1lbmQgbm9kZSkpKQotICAgIChyZW1vdmUtdGV4dC1wcm9w ZXJ0aWVzCi0gICAgIChtYXggc3RhcnQgbi1zdGFydCkgKG1pbiBlbmQgbi1lbmQpICcoZmFjZSkp KSkKKyAgKGRvbGlzdCAoY2hpbGQgKHRyZWVzaXQtbm9kZS1jaGlsZHJlbiBub2RlIHQpKQorICAg IChwY2FzZSAodHJlZXNpdC1ub2RlLXR5cGUgY2hpbGQpCisgICAgICAoImlkZW50aWZpZXIiCisg ICAgICAgKHRyZWVzaXQtZm9udGlmeS13aXRoLW92ZXJyaWRlCisgICAgICAgICh0cmVlc2l0LW5v ZGUtc3RhcnQgY2hpbGQpICh0cmVlc2l0LW5vZGUtZW5kIGNoaWxkKQorICAgICAgICAnZm9udC1s b2NrLXR5cGUtZmFjZSBvdmVycmlkZSBzdGFydCBlbmQpKQorICAgICAgKCJhdHRyaWJ1dGUiCisg ICAgICAgKHB5dGhvbi0tdHJlZXNpdC1mb250aWZ5LWRvdHRlZC1kZWNvcmF0b3IgY2hpbGQgb3Zl cnJpZGUgc3RhcnQgZW5kKSkpKSkKIAogKGRlZnZhciBweXRob24tLXRyZWVzaXQtc2V0dGluZ3MK ICAgKHRyZWVzaXQtZm9udC1sb2NrLXJ1bGVzCkBAIC0xMDkzLDE0ICsxMTY2LDkgQEAgcHl0aG9u LS10cmVlc2l0LXNldHRpbmdzCiAKICAgIDpmZWF0dXJlICdzdHJpbmcKICAgIDpsYW5ndWFnZSAn cHl0aG9uCi0gICAnKChzdHJpbmcpIEBweXRob24tLXRyZWVzaXQtZm9udGlmeS1zdHJpbmcpCisg ICAnKChzdHJpbmcpIEBweXRob24tLXRyZWVzaXQtZm9udGlmeS1zdHJpbmcKKyAgICAgKGludGVy cG9sYXRpb24gWyJ7IiAifSJdIEBmb250LWxvY2stbWlzYy1wdW5jdHVhdGlvbi1mYWNlKSkKIAot ICAgOzsgSEFDSzogVGhpcyBmZWF0dXJlIG11c3QgY29tZSBhZnRlciB0aGUgc3RyaW5nIGZlYXR1 cmUgYW5kIGJlZm9yZQotICAgOzsgb3RoZXIgZmVhdHVyZXMuICBNYXliZSB3ZSBzaG91bGQgbWFr ZSBzdHJpbmctaW50ZXJwb2xhdGlvbiBhbgotICAgOzsgb3B0aW9uIHJhdGhlciB0aGFuIGEgZmVh dHVyZS4KLSAgIDpmZWF0dXJlICdzdHJpbmctaW50ZXJwb2xhdGlvbgotICAgOmxhbmd1YWdlICdw eXRob24KLSAgICcoKGludGVycG9sYXRpb24pIEBweXRob24tLXRyZWVzaXQtZm9udGlmeS1zdHJp bmctaW50ZXJwb2xhdGlvbikKIAogICAgOmZlYXR1cmUgJ2tleXdvcmQKICAgIDpsYW5ndWFnZSAn cHl0aG9uCkBAIC0xMTE3LDEyICsxMTg1LDYgQEAgcHl0aG9uLS10cmVlc2l0LXNldHRpbmdzCiAg ICAgIChwYXJhbWV0ZXJzIChpZGVudGlmaWVyKSBAZm9udC1sb2NrLXZhcmlhYmxlLW5hbWUtZmFj ZSkKICAgICAgKHBhcmFtZXRlcnMgKGRlZmF1bHRfcGFyYW1ldGVyIG5hbWU6IChpZGVudGlmaWVy KSBAZm9udC1sb2NrLXZhcmlhYmxlLW5hbWUtZmFjZSkpKQogCi0gICA6ZmVhdHVyZSAnZnVuY3Rp b24KLSAgIDpsYW5ndWFnZSAncHl0aG9uCi0gICAnKChjYWxsIGZ1bmN0aW9uOiAoaWRlbnRpZmll cikgQGZvbnQtbG9jay1mdW5jdGlvbi1jYWxsLWZhY2UpCi0gICAgIChjYWxsIGZ1bmN0aW9uOiAo YXR0cmlidXRlCi0gICAgICAgICAgICAgICAgICAgICAgYXR0cmlidXRlOiAoaWRlbnRpZmllcikg QGZvbnQtbG9jay1mdW5jdGlvbi1jYWxsLWZhY2UpKSkKLQogICAgOmZlYXR1cmUgJ2J1aWx0aW4K ICAgIDpsYW5ndWFnZSAncHl0aG9uCiAgICBgKCgoaWRlbnRpZmllcikgQGZvbnQtbG9jay1idWls dGluLWZhY2UKQEAgLTExMzMsNiArMTE5NSwxOSBAQCBweXRob24tLXRyZWVzaXQtc2V0dGluZ3MK ICAgICAgICAgICAgICAgICAgICAgICBlb2wpKQogICAgICAgICAgICAgICBAZm9udC1sb2NrLWJ1 aWx0aW4tZmFjZSkpKQogCisgICA6ZmVhdHVyZSAnZGVjb3JhdG9yCisgICA6bGFuZ3VhZ2UgJ3B5 dGhvbgorICAgJygoZGVjb3JhdG9yICJAIiBAZm9udC1sb2NrLXR5cGUtZmFjZSkKKyAgICAgKGRl Y29yYXRvciAoY2FsbCBmdW5jdGlvbjogKGlkZW50aWZpZXIpIEBmb250LWxvY2stdHlwZS1mYWNl KSkKKyAgICAgKGRlY29yYXRvciAoaWRlbnRpZmllcikgQGZvbnQtbG9jay10eXBlLWZhY2UpCisg ICAgIChkZWNvcmF0b3IgWyhhdHRyaWJ1dGUpIChjYWxsIChhdHRyaWJ1dGUpKV0gQHB5dGhvbi0t dHJlZXNpdC1mb250aWZ5LWRvdHRlZC1kZWNvcmF0b3IpKQorCisgICA6ZmVhdHVyZSAnZnVuY3Rp b24KKyAgIDpsYW5ndWFnZSAncHl0aG9uCisgICAnKChjYWxsIGZ1bmN0aW9uOiAoaWRlbnRpZmll cikgQGZvbnQtbG9jay1mdW5jdGlvbi1jYWxsLWZhY2UpCisgICAgIChjYWxsIGZ1bmN0aW9uOiAo YXR0cmlidXRlCisgICAgICAgICAgICAgICAgICAgICAgYXR0cmlidXRlOiAoaWRlbnRpZmllcikg QGZvbnQtbG9jay1mdW5jdGlvbi1jYWxsLWZhY2UpKSkKKwogICAgOmZlYXR1cmUgJ2NvbnN0YW50 CiAgICA6bGFuZ3VhZ2UgJ3B5dGhvbgogICAgJyhbKHRydWUpIChmYWxzZSkgKG5vbmUpXSBAZm9u dC1sb2NrLWNvbnN0YW50LWZhY2UpCkBAIC0xMTQ0LDMwICsxMjE5LDcxIEBAIHB5dGhvbi0tdHJl ZXNpdC1zZXR0aW5ncwogICAgICAgICAgICAgICAgICBAZm9udC1sb2NrLXZhcmlhYmxlLW5hbWUt ZmFjZSkKICAgICAgKGFzc2lnbm1lbnQgbGVmdDogKGF0dHJpYnV0ZQogICAgICAgICAgICAgICAg ICAgICAgICAgYXR0cmlidXRlOiAoaWRlbnRpZmllcikKLSAgICAgICAgICAgICAgICAgICAgICAg IEBmb250LWxvY2stcHJvcGVydHktdXNlLWZhY2UpKQotICAgICAocGF0dGVybl9saXN0IChpZGVu dGlmaWVyKQorICAgICAgICAgICAgICAgICAgICAgICAgQGZvbnQtbG9jay12YXJpYWJsZS1uYW1l LWZhY2UpKQorICAgICAoYXVnbWVudGVkX2Fzc2lnbm1lbnQgbGVmdDogKGlkZW50aWZpZXIpCisg ICAgICAgICAgICAgICAgICAgICAgICAgICBAZm9udC1sb2NrLXZhcmlhYmxlLW5hbWUtZmFjZSkK KyAgICAgKG5hbWVkX2V4cHJlc3Npb24gbmFtZTogKGlkZW50aWZpZXIpCisgICAgICAgICAgICAg ICAgICAgICAgIEBmb250LWxvY2stdmFyaWFibGUtbmFtZS1mYWNlKQorICAgICAocGF0dGVybl9s aXN0IFsoaWRlbnRpZmllcikKKyAgICAgICAgICAgICAgICAgICAgKGxpc3Rfc3BsYXRfcGF0dGVy biAoaWRlbnRpZmllcikpXQogICAgICAgICAgICAgICAgICAgIEBmb250LWxvY2stdmFyaWFibGUt bmFtZS1mYWNlKQotICAgICAodHVwbGVfcGF0dGVybiAoaWRlbnRpZmllcikKKyAgICAgKHR1cGxl X3BhdHRlcm4gWyhpZGVudGlmaWVyKQorICAgICAgICAgICAgICAgICAgICAgKGxpc3Rfc3BsYXRf cGF0dGVybiAoaWRlbnRpZmllcikpXQogICAgICAgICAgICAgICAgICAgICBAZm9udC1sb2NrLXZh cmlhYmxlLW5hbWUtZmFjZSkKLSAgICAgKGxpc3RfcGF0dGVybiAoaWRlbnRpZmllcikKLSAgICAg ICAgICAgICAgICAgICBAZm9udC1sb2NrLXZhcmlhYmxlLW5hbWUtZmFjZSkKLSAgICAgKGxpc3Rf c3BsYXRfcGF0dGVybiAoaWRlbnRpZmllcikKLSAgICAgICAgICAgICAgICAgICAgICAgICBAZm9u dC1sb2NrLXZhcmlhYmxlLW5hbWUtZmFjZSkpCisgICAgIChsaXN0X3BhdHRlcm4gWyhpZGVudGlm aWVyKQorICAgICAgICAgICAgICAgICAgICAobGlzdF9zcGxhdF9wYXR0ZXJuIChpZGVudGlmaWVy KSldCisgICAgICAgICAgICAgICAgICAgQGZvbnQtbG9jay12YXJpYWJsZS1uYW1lLWZhY2UpKQog Ci0gICA6ZmVhdHVyZSAnZGVjb3JhdG9yCi0gICA6bGFuZ3VhZ2UgJ3B5dGhvbgotICAgJygoZGVj b3JhdG9yICJAIiBAZm9udC1sb2NrLXR5cGUtZmFjZSkKLSAgICAgKGRlY29yYXRvciAoY2FsbCBm dW5jdGlvbjogKGlkZW50aWZpZXIpIEBmb250LWxvY2stdHlwZS1mYWNlKSkKLSAgICAgKGRlY29y YXRvciAoaWRlbnRpZmllcikgQGZvbnQtbG9jay10eXBlLWZhY2UpKQogCiAgICA6ZmVhdHVyZSAn dHlwZQogICAgOmxhbmd1YWdlICdweXRob24KKyAgIDs7IE92ZXJyaWRlIGJ1aWx0LWluIGZhY2Vz IHdoZW4gZGljdC9saXN0IGFyZSB1c2VkIGZvciB0eXBlIGhpbnRzLgorICAgOm92ZXJyaWRlIHQK ICAgIGAoKChpZGVudGlmaWVyKSBAZm9udC1sb2NrLXR5cGUtZmFjZQogICAgICAgKDptYXRjaCAs KHJ4LXRvLXN0cmluZwogICAgICAgICAgICAgICAgIGAoc2VxIGJvbCAob3IgLEBweXRob24tLXRy ZWVzaXQtZXhjZXB0aW9ucykKLSAgICAgICAgICAgICAgICAgICAgICBlb2wpKQorICAgICAgICAg ICAgICAgICAgZW9sKSkKICAgICAgICAgICAgICAgQGZvbnQtbG9jay10eXBlLWZhY2UpKQotICAg ICAodHlwZSAoaWRlbnRpZmllcikgQGZvbnQtbG9jay10eXBlLWZhY2UpKQorICAgICAodHlwZSBb KGlkZW50aWZpZXIpIChub25lKV0gQGZvbnQtbG9jay10eXBlLWZhY2UpCisgICAgICh0eXBlIChh dHRyaWJ1dGUgYXR0cmlidXRlOiAoaWRlbnRpZmllcikgQGZvbnQtbG9jay10eXBlLWZhY2UpKQor ICAgICA7OyBXZSBkb24ndCB3YW50IHRvIGhpZ2hsaWdodCBhIHBhY2thZ2Ugb2YgdGhlIHR5cGUK KyAgICAgOzsgKGUuZy4gcGFjay5DbGFzc05hbWUpLiAgU28gZXhwbGljaXRseSBleGNsdWRlIHBh dHRlcm5zIHdpdGgKKyAgICAgOzsgYXR0cmlidXRlLCBzaW5jZSB3ZSBoYW5kbGUgZG90dGVkIHR5 cGUgbmFtZSBpbiB0aGUgcHJldmlvdXMKKyAgICAgOzsgcnVsZS4gIFRoZSBmb2xsb3dpbmcgcnVs ZSBoYW5kbGUKKyAgICAgOzsgZ2VuZXJpY190eXBlL2xpc3QvdHVwbGUvc3BsYXRfdHlwZSBub2Rl cy4KKyAgICAgKHR5cGUgKF8gIWF0dHJpYnV0ZSBbWyhpZGVudGlmaWVyKSAobm9uZSldIEBmb250 LWxvY2stdHlwZS1mYWNlCisgICAgICAgICAgICAgICAgICAgICAgICAgIChhdHRyaWJ1dGUgYXR0 cmlidXRlOiAoaWRlbnRpZmllcikgQGZvbnQtbG9jay10eXBlLWZhY2UpIF0pKQorICAgICA7OyBj b2xsZWN0aW9ucy5hYmMuSXRlcmF0b3JbVF0gY2FzZS4KKyAgICAgKHR5cGUgKHN1YnNjcmlwdCAo YXR0cmlidXRlIGF0dHJpYnV0ZTogKGlkZW50aWZpZXIpIEBmb250LWxvY2stdHlwZS1mYWNlKSkp CisgICAgIDs7IE5lc3RlZCBvcHRpb25hbCB0eXBlIGhpbnRzLCBlLmcuIHZhbDogTHZsMSB8IEx2 bDJbTHZsM1tMdmw0XV0uCisgICAgICh0eXBlIChiaW5hcnlfb3BlcmF0b3IpIEBweXRob24tLXRy ZWVzaXQtZm9udGlmeS11bmlvbi10eXBlcykKKyAgICAgOztjbGFzcyBUeXBlKEJhc2UxLCBTZXF1 ZW5jZVtUXSkuCisgICAgIChjbGFzc19kZWZpbml0aW9uCisgICAgICBzdXBlcmNsYXNzZXM6Cisg ICAgICAoYXJndW1lbnRfbGlzdCBbKGlkZW50aWZpZXIpIEBmb250LWxvY2stdHlwZS1mYWNlCisg ICAgICAgICAgICAgICAgICAgICAgKGF0dHJpYnV0ZSBhdHRyaWJ1dGU6IChpZGVudGlmaWVyKSBA Zm9udC1sb2NrLXR5cGUtZmFjZSkKKyAgICAgICAgICAgICAgICAgICAgICAoc3Vic2NyaXB0IChp ZGVudGlmaWVyKSBAZm9udC1sb2NrLXR5cGUtZmFjZSkKKyAgICAgICAgICAgICAgICAgICAgICAo c3Vic2NyaXB0IChhdHRyaWJ1dGUgYXR0cmlidXRlOiAoaWRlbnRpZmllcikgQGZvbnQtbG9jay10 eXBlLWZhY2UpKV0pKQorCisgICAgIDs7IFBhdGVybiBtYXRjaGluZzogY2FzZSBbc3RyKCksIHBh Y2swLlR5cGUwKCldLiAgVGFrZSBvbmx5IHRoZQorICAgICA7OyBsYXN0IGlkZW50aWZpZXIuCisg ICAgIChjbGFzc19wYXR0ZXJuIChkb3R0ZWRfbmFtZSAoaWRlbnRpZmllcikgQGZvbnQtbG9jay10 eXBlLWZhY2UgOmFuY2hvcikpCisKKyAgICAgOzsgSGlnaGxpZ2h0IHRoZSBzZWNvbmQgYXJndW1l bnQgYXMgYSB0eXBlIGluIGlzaW5zdGFuY2UvaXNzdWJjbGFzcy4KKyAgICAgKChjYWxsIGZ1bmN0 aW9uOiAoaWRlbnRpZmllcikgQGZ1bmMtbmFtZQorICAgICAgICAgICAgKGFyZ3VtZW50X2xpc3Qg OmFuY2hvciAoXykKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIFsoaWRlbnRpZmllcikgQGZv bnQtbG9jay10eXBlLWZhY2UKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAoYXR0cmlidXRl IGF0dHJpYnV0ZTogKGlkZW50aWZpZXIpIEBmb250LWxvY2stdHlwZS1mYWNlKQorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICh0dXBsZSAoaWRlbnRpZmllcikgQGZvbnQtbG9jay10eXBlLWZh Y2UpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHR1cGxlIChhdHRyaWJ1dGUgYXR0cmli dXRlOiAoaWRlbnRpZmllcikgQGZvbnQtbG9jay10eXBlLWZhY2UpKV0KKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICg6bWF0Y2ggLHB5dGhvbi0tdHJlZXNpdC10eXBlLXJlZ2V4IEBmb250LWxv Y2stdHlwZS1mYWNlKSkpCisgICAgICAoOm1hdGNoICJeaXNcXCg/Omluc3RhbmNlXFx8c3ViY2xh c3NcXCkkIiBAZnVuYy1uYW1lKSkKKworICAgICA7OyBpc2luc3RhbmNlKHQsIGludHxmbG9hdCku CisgICAgICgoY2FsbCBmdW5jdGlvbjogKGlkZW50aWZpZXIpIEBmdW5jLW5hbWUKKyAgICAgICAg ICAgIChhcmd1bWVudF9saXN0IDphbmNob3IgKF8pCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAoYmluYXJ5X29wZXJhdG9yKSBAcHl0aG9uLS10cmVlc2l0LWZvbnRpZnktdW5pb24tdHlwZXMt c3RyaWN0KSkKKyAgICAgICg6bWF0Y2ggIl5pc1xcKD86aW5zdGFuY2VcXHxzdWJjbGFzc1xcKSQi IEBmdW5jLW5hbWUpKSkKIAogICAgOmZlYXR1cmUgJ2VzY2FwZS1zZXF1ZW5jZQogICAgOmxhbmd1 YWdlICdweXRob24KZGlmZiAtLWdpdCBhL3Rlc3QvbGlzcC9wcm9nbW9kZXMvcHl0aG9uLXRlc3Rz LmVsIGIvdGVzdC9saXNwL3Byb2dtb2Rlcy9weXRob24tdGVzdHMuZWwKaW5kZXggZTFiNGMwYTc0 Yy4uNTkyODc5NzBjYSAxMDA2NDQKLS0tIGEvdGVzdC9saXNwL3Byb2dtb2Rlcy9weXRob24tdGVz dHMuZWwKKysrIGIvdGVzdC9saXNwL3Byb2dtb2Rlcy9weXRob24tdGVzdHMuZWwKQEAgLTcxMjIs NiArNzEyMiwzMDggQEAgcHl0aG9uLXRlc3RzLS1mbHltYWtlLWNvbW1hbmQtb3V0cHV0LXBhdHRl cm4KICAgICAgICAgICAgICAgICAgICAgICAgICAiVW51c2VkIGltcG9ydCBhLmIuYyAodW51c2Vk LWltcG9ydCkiCiAgICAgICAgICAgICAgICAgICAgICAgICJXMDYxMTogVW51c2VkIGltcG9ydCBh LmIuYyAodW51c2VkLWltcG9ydCkiKSkpKSkpCiAKKzs7OyBweXRob24tdHMtbW9kZSBmb250LWxv Y2sgdGVzdHMKKworKGRlZm1hY3JvIHB5dGhvbi10cy10ZXN0cy13aXRoLXRlbXAtYnVmZmVyIChj b250ZW50cyAmcmVzdCBib2R5KQorICAiQ3JlYXRlIGEgYHB5dGhvbi10cy1tb2RlJyBlbmFibGVk IHRlbXAgYnVmZmVyIHdpdGggQ09OVEVOVFMuCitCT0RZIGlzIGNvZGUgdG8gYmUgZXhlY3V0ZWQg d2l0aGluIHRoZSB0ZW1wIGJ1ZmZlci4gIFBvaW50IGlzCithbHdheXMgbG9jYXRlZCBhdCB0aGUg YmVnaW5uaW5nIG9mIGJ1ZmZlci4iCisgIChkZWNsYXJlIChpbmRlbnQgMSkgKGRlYnVnIHQpKQor ICBgKHdpdGgtdGVtcC1idWZmZXIKKyAgICAgKHNraXAtdW5sZXNzICh0cmVlc2l0LXJlYWR5LXAg J3B5dGhvbikpCisgICAgIChyZXF1aXJlICdweXRob24pCisgICAgIChsZXQgKChweXRob24taW5k ZW50LWd1ZXNzLWluZGVudC1vZmZzZXQgbmlsKSkKKyAgICAgICAocHl0aG9uLXRzLW1vZGUpCisg ICAgICAgKHNldG9wdCB0cmVlc2l0LWZvbnQtbG9jay1sZXZlbCAzKQorICAgICAgIChpbnNlcnQg LGNvbnRlbnRzKQorICAgICAgIChmb250LWxvY2stZW5zdXJlKQorICAgICAgIChnb3RvLWNoYXIg KHBvaW50LW1pbikpCisgICAgICAgLEBib2R5KSkpCisKKyhlcnQtZGVmdGVzdCBweXRob24tdHMt bW9kZS1jb21wb3VuZC1rZXl3b3Jkcy1mYWNlICgpCisgIChkb2xpc3QgKHRlc3QgJygiaXMgbm90 IiAibm90IGluIikpCisgICAgKHB5dGhvbi10cy10ZXN0cy13aXRoLXRlbXAtYnVmZmVyCisgICAg IChjb25jYXQgInQgIiB0ZXN0ICIgdCIpCisgICAgIChmb3J3YXJkLXRvLXdvcmQgMSkKKyAgICAg KHNob3VsZCAoZXEgKGZhY2UtYXQtcG9pbnQpIGZvbnQtbG9jay1rZXl3b3JkLWZhY2UpKQorICAg ICAoZm9yd2FyZC10by13b3JkIDEpCisgICAgIChzaG91bGQgKGVxIChmYWNlLWF0LXBvaW50KSBm b250LWxvY2sta2V5d29yZC1mYWNlKSkpKSkKKworKGVydC1kZWZ0ZXN0IHB5dGhvbi10cy1tb2Rl LW5hbWVkLWFzc2lnbmVtZW50LWZhY2UtMSAoKQorICAocHl0aG9uLXRzLXRlc3RzLXdpdGgtdGVt cC1idWZmZXIKKyAgICJ2YXIgOj0gMyIKKyAgIChzaG91bGQgKGVxIChmYWNlLWF0LXBvaW50KSBm b250LWxvY2stdmFyaWFibGUtbmFtZS1mYWNlKSkpKQorCisoZXJ0LWRlZnRlc3QgcHl0aG9uLXRz LW1vZGUtYXNzaWduZW1lbnQtZmFjZS0yICgpCisgIChweXRob24tdHMtdGVzdHMtd2l0aC10ZW1w LWJ1ZmZlcgorICAgInZhciwgKnJlc3QgPSBjYWxsKCkiCisgICAoZG9saXN0ICh0ZXN0ICcoInZh ciIgInJlc3QiKSkKKyAgICAgKHNlYXJjaC1mb3J3YXJkIHRlc3QpCisgICAgIChnb3RvLWNoYXIg KG1hdGNoLWJlZ2lubmluZyAwKSkKKyAgICAgKHNob3VsZCAoZXEgKGZhY2UtYXQtcG9pbnQpIGZv bnQtbG9jay12YXJpYWJsZS1uYW1lLWZhY2UpKSkpCisKKyAgKHB5dGhvbi10cy10ZXN0cy13aXRo LXRlbXAtYnVmZmVyCisgICAiZGVmIGZ1bmMoKmFyZ3MpOiIKKyAgIChkb2xpc3QgKHRlc3QgJygi YXJncyIpKQorICAgICAoc2VhcmNoLWZvcndhcmQgdGVzdCkKKyAgICAgKGdvdG8tY2hhciAobWF0 Y2gtYmVnaW5uaW5nIDApKQorICAgICAoc2hvdWxkIChub3QgKGVxIChmYWNlLWF0LXBvaW50KSBm b250LWxvY2stdmFyaWFibGUtbmFtZS1mYWNlKSkpKSkpCisKKyhlcnQtZGVmdGVzdCBweXRob24t dHMtbW9kZS1uZXN0ZWQtdHlwZXMtZmFjZS0xICgpCisgIChweXRob24tdHMtdGVzdHMtd2l0aC10 ZW1wLWJ1ZmZlcgorICAgImRlZiBmdW5jKHY6ZGljdFsgbGlzdFsgdHVwbGVbc3RyXSBdLCBpbnQg fCBOb25lXSB8IE5vbmUpOiIKKyAgIChkb2xpc3QgKHRlc3QgJygiZGljdCIgImxpc3QiICJ0dXBs ZSIgInN0ciIgImludCIgIk5vbmUiICJOb25lIikpCisgICAgIChzZWFyY2gtZm9yd2FyZCB0ZXN0 KQorICAgICAoZ290by1jaGFyIChtYXRjaC1iZWdpbm5pbmcgMCkpCisgICAgIChzaG91bGQgKGVx IChmYWNlLWF0LXBvaW50KSBmb250LWxvY2stdHlwZS1mYWNlKSkpKSkKKworKGVydC1kZWZ0ZXN0 IHB5dGhvbi10cy1tb2RlLXVuaW9uLXR5cGVzLWZhY2UtMSAoKQorICAocHl0aG9uLXRzLXRlc3Rz LXdpdGgtdGVtcC1idWZmZXIKKyAgICJkZWYgZih2YWw6IHR1cGxlW3R1cGxlLCBsaXN0W0x2bDEg fCBMdmwyW0x2bDNbTHZsNFtMdmw1IHwgTm9uZV1dLCBMdmwyXV1dKToiCisgICAoZG9saXN0ICh0 ZXN0ICcoInR1cGxlIiAidHVwbGUiICJsaXN0IiAiTHZsMSIgIkx2bDIiICJMdmwzIiAiTHZsNCIg Ikx2bDUiICJOb25lIiAiTHZsMiIpKQorICAgICAoc2VhcmNoLWZvcndhcmQgdGVzdCkKKyAgICAg KGdvdG8tY2hhciAobWF0Y2gtYmVnaW5uaW5nIDApKQorICAgICAoc2hvdWxkIChlcSAoZmFjZS1h dC1wb2ludCkgZm9udC1sb2NrLXR5cGUtZmFjZSkpKSkpCisKKyhlcnQtZGVmdGVzdCBweXRob24t dHMtbW9kZS11bmlvbi10eXBlcy1mYWNlLTIgKCkKKyAgKHB5dGhvbi10cy10ZXN0cy13aXRoLXRl bXAtYnVmZmVyCisgICAiZGVmIGYodmFsOiBUeXBlMCB8IFR5cGUxW1R5cGUyLCBwYWNrMC5UeXBl M10gfCBwYWNrMS5wYWNrMi5UeXBlNCB8IE5vbmUpOiIKKyAgIChkb2xpc3QgKHRlc3QgJygiVHlw ZTAiICJUeXBlMSIgIlR5cGUyIiAiVHlwZTMiICJUeXBlNCIgIk5vbmUiKSkKKyAgICAgKHNlYXJj aC1mb3J3YXJkIHRlc3QpCisgICAgIChnb3RvLWNoYXIgKG1hdGNoLWJlZ2lubmluZyAwKSkKKyAg ICAgKHNob3VsZCAoZXEgKGZhY2UtYXQtcG9pbnQpIGZvbnQtbG9jay10eXBlLWZhY2UpKSkKKwor ICAgKGdvdG8tY2hhciAocG9pbnQtbWluKSkKKyAgIChkb2xpc3QgKHRlc3QgJygicGFjazAiICJw YWNrMSIgInBhY2syIikpCisgICAgIChzZWFyY2gtZm9yd2FyZCB0ZXN0KQorICAgICAoZ290by1j aGFyIChtYXRjaC1iZWdpbm5pbmcgMCkpCisgICAgIChzaG91bGQgKG5vdCAoZXEgKGZhY2UtYXQt cG9pbnQpIGZvbnQtbG9jay10eXBlLWZhY2UpKSkpKSkKKworKGVydC1kZWZ0ZXN0IHB5dGhvbi10 cy1tb2RlLXR5cGVzLWZhY2UtMSAoKQorICAocHl0aG9uLXRzLXRlc3RzLXdpdGgtdGVtcC1idWZm ZXIKKyAgICJkZWYgZih2YWw6IENhbGxhYmxlW1tUeXBlMF0sIChUeXBlMSwgVHlwZTIpXSk6Igor ICAgKGRvbGlzdCAodGVzdCAnKCJDYWxsYWJsZSIgIlR5cGUwIiAiVHlwZTEiICJUeXBlMiIpKQor ICAgICAoc2VhcmNoLWZvcndhcmQgdGVzdCkKKyAgICAgKGdvdG8tY2hhciAobWF0Y2gtYmVnaW5u aW5nIDApKQorICAgICAoc2hvdWxkIChlcSAoZmFjZS1hdC1wb2ludCkgZm9udC1sb2NrLXR5cGUt ZmFjZSkpKSkpCisKKyhlcnQtZGVmdGVzdCBweXRob24tdHMtbW9kZS10eXBlcy1mYWNlLTIgKCkK KyAgKHB5dGhvbi10cy10ZXN0cy13aXRoLXRlbXAtYnVmZmVyCisgICAiZGVmIGFubm90Myh2YWw6 cGFjazAuVHlwZTApLT5wYWNrMS5wYWNrMi5wYWNrMy5UeXBlMToiCisgICAoZG9saXN0ICh0ZXN0 ICcoIlR5cGUwIiAiVHlwZTEiKSkKKyAgICAgKHNlYXJjaC1mb3J3YXJkIHRlc3QpCisgICAgIChn b3RvLWNoYXIgKG1hdGNoLWJlZ2lubmluZyAwKSkKKyAgICAgKHNob3VsZCAoZXEgKGZhY2UtYXQt cG9pbnQpIGZvbnQtbG9jay10eXBlLWZhY2UpKSkKKyAgIChnb3RvLWNoYXIgKHBvaW50LW1pbikp CisgICAoZG9saXN0ICh0ZXN0ICcoInBhY2swIiAicGFjazEiICJwYWNrMiIgInBhY2szIikpCisg ICAgIChzZWFyY2gtZm9yd2FyZCB0ZXN0KQorICAgICAoZ290by1jaGFyIChtYXRjaC1iZWdpbm5p bmcgMCkpCisgICAgIChzaG91bGQgKG5vdCAoZXEgKGZhY2UtYXQtcG9pbnQpIGZvbnQtbG9jay10 eXBlLWZhY2UpKSkpKSkKKworKGVydC1kZWZ0ZXN0IHB5dGhvbi10cy1tb2RlLXR5cGVzLWZhY2Ut MyAoKQorICAocHl0aG9uLXRzLXRlc3RzLXdpdGgtdGVtcC1idWZmZXIKKyAgICJkZWYgYW5ub3Qz KHZhbDpjb2xsZWN0aW9ucy5hYmMuSXRlcmF0b3JbVHlwZTBdKToiCisgICAoZG9saXN0ICh0ZXN0 ICcoIkl0ZXJhdG9yIiAiVHlwZTAiKSkKKyAgICAgKHNlYXJjaC1mb3J3YXJkIHRlc3QpCisgICAg IChnb3RvLWNoYXIgKG1hdGNoLWJlZ2lubmluZyAwKSkKKyAgICAgKHNob3VsZCAoZXEgKGZhY2Ut YXQtcG9pbnQpIGZvbnQtbG9jay10eXBlLWZhY2UpKSkKKyAgIChnb3RvLWNoYXIgKHBvaW50LW1p bikpCisgICAoZG9saXN0ICh0ZXN0ICcoImNvbGxlY3Rpb25zIiAiYWJjIikpCisgICAgIChzZWFy Y2gtZm9yd2FyZCB0ZXN0KQorICAgICAoZ290by1jaGFyIChtYXRjaC1iZWdpbm5pbmcgMCkpCisg ICAgIChzaG91bGQgKG5vdCAoZXEgKGZhY2UtYXQtcG9pbnQpIGZvbnQtbG9jay10eXBlLWZhY2Up KSkpKSkKKworKGVydC1kZWZ0ZXN0IHB5dGhvbi10cy1tb2RlLWlzaW5zdGFuY2UtdHlwZS1mYWNl LTEgKCkKKyAgKHB5dGhvbi10cy10ZXN0cy13aXRoLXRlbXAtYnVmZmVyCisgICAiaXNpbnN0YW5j ZSh2YXIxLCBwa2cuVHlwZTApCisgICAgaXNpbnN0YW5jZSh2YXIyLCAoc3RyLCBkaWN0LCBUeXBl MSwgdHlwZShOb25lKSkpCisgICAgaXNpbnN0YW5jZSh2YXIzLCBteV90eXBlKCkpIgorCisgICAo ZG9saXN0ICh0ZXN0ICcoInZhcjEiICJwa2ciICJ2YXIyIiAidHlwZSIgIk5vbmUiICJ2YXIzIiAi bXlfdHlwZSIpKQorICAgICAobGV0ICgoY2FzZS1mb2xkLXNlYXJjaCBuaWwpKQorICAgICAgIChz ZWFyY2gtZm9yd2FyZCB0ZXN0KSkKKyAgICAgKGdvdG8tY2hhciAobWF0Y2gtYmVnaW5uaW5nIDAp KQorICAgICAoc2hvdWxkIChub3QgKGVxIChmYWNlLWF0LXBvaW50KSBmb250LWxvY2stdHlwZS1m YWNlKSkpKQorCisgICAoZ290by1jaGFyIChwb2ludC1taW4pKQorICAgKGRvbGlzdCAodGVzdCAn KCJUeXBlMCIgInN0ciIgImRpY3QiICJUeXBlMSIpKQorICAgICAoc2VhcmNoLWZvcndhcmQgdGVz dCkKKyAgICAgKGdvdG8tY2hhciAobWF0Y2gtYmVnaW5uaW5nIDApKQorICAgICAoc2hvdWxkIChl cSAoZmFjZS1hdC1wb2ludCkgZm9udC1sb2NrLXR5cGUtZmFjZSkpKSkpCisKKyhlcnQtZGVmdGVz dCBweXRob24tdHMtbW9kZS1pc2luc3RhbmNlLXR5cGUtZmFjZS0yICgpCisgIChweXRob24tdHMt dGVzdHMtd2l0aC10ZW1wLWJ1ZmZlcgorICAgImlzc3ViY2xhc3MobXl0eXBlLCBpbnR8bGlzdHxj b2xsZWN0aW9ucy5hYmMuSXRlcmFibGUpIgorICAgKGRvbGlzdCAodGVzdCAnKCJpbnQiICJsaXN0 IiAiSXRlcmFibGUiKSkKKyAgICAgKHNlYXJjaC1mb3J3YXJkIHRlc3QpCisgICAgIChnb3RvLWNo YXIgKG1hdGNoLWJlZ2lubmluZyAwKSkKKyAgICAgKHNob3VsZCAoZXEgKGZhY2UtYXQtcG9pbnQp IGZvbnQtbG9jay10eXBlLWZhY2UpKSkpKQorCisoZXJ0LWRlZnRlc3QgcHl0aG9uLXRzLW1vZGUt aXNpbnN0YW5jZS10eXBlLWZhY2UtMyAoKQorICAocHl0aG9uLXRzLXRlc3RzLXdpdGgtdGVtcC1i dWZmZXIKKyAgICJpc3N1YmNsYXNzKG15dHlwZSwgdHlwZXZhcjEpCisgICAgaXNpbnN0YW5jZSht eXR5cGUsIChUeXBlMSwgdHlwZXZhcjIsIHR1cGxlLCBhYmMuQ29sbCkpCisgICAgaXNpbnN0YW5j ZShteXR5cGUsIHBrZzAuVHlwZTJ8c2VsZi50eXBldmFyM3x0eXBldmFyNCkiCisKKyAgIChkb2xp c3QgKHRlc3QgJygidHlwZXZhcjEiICJ0eXBldmFyMiIgInBrZzAiICJzZWxmIiAidHlwZXZhcjMi ICJ0eXBldmFyNCIpKQorICAgICAoc2VhcmNoLWZvcndhcmQgdGVzdCkKKyAgICAgKGdvdG8tY2hh ciAobWF0Y2gtYmVnaW5uaW5nIDApKQorICAgICAoc2hvdWxkIChub3QgKGVxIChmYWNlLWF0LXBv aW50KSBmb250LWxvY2stdHlwZS1mYWNlKSkpKQorCisgICAoZ290by1jaGFyIChwb2ludC1taW4p KQorICAgKGRvbGlzdCAodGVzdCAnKCJUeXBlMSIgInR1cGxlIiAiQ29sbCIgIlR5cGUyIikpCisg ICAgIChzZWFyY2gtZm9yd2FyZCB0ZXN0KQorICAgICAoZ290by1jaGFyIChtYXRjaC1iZWdpbm5p bmcgMCkpCisgICAgIChzaG91bGQgKGVxIChmYWNlLWF0LXBvaW50KSBmb250LWxvY2stdHlwZS1m YWNlKSkpKSkKKworKGVydC1kZWZ0ZXN0IHB5dGhvbi10cy1tb2RlLXN1cGVyY2xhc3MtdHlwZS1m YWNlICgpCisgIChweXRob24tdHMtdGVzdHMtd2l0aC10ZW1wLWJ1ZmZlcgorICAgImNsYXNzIFRl bXAoQmFzZTEsIHBhY2swLkJhc2UyLCAgU2VxdWVuY2VbVDEsIFQyXSk6IgorCisgICAoZG9saXN0 ICh0ZXN0ICcoIkJhc2UxIiAiQmFzZTIiICJTZXF1ZW5jZSIgIlQxIiAiVDIiKSkKKyAgICAgKHNl YXJjaC1mb3J3YXJkIHRlc3QpCisgICAgIChnb3RvLWNoYXIgKG1hdGNoLWJlZ2lubmluZyAwKSkK KyAgICAgKHNob3VsZCAoZXEgKGZhY2UtYXQtcG9pbnQpIGZvbnQtbG9jay10eXBlLWZhY2UpKSkK KworICAgKGdvdG8tY2hhciAocG9pbnQtbWluKSkKKyAgIChkb2xpc3QgKHRlc3QgJygicGFjazAi KSkKKyAgICAgKHNlYXJjaC1mb3J3YXJkIHRlc3QpCisgICAgIChnb3RvLWNoYXIgKG1hdGNoLWJl Z2lubmluZyAwKSkKKyAgICAgKHNob3VsZCAobm90IChlcSAoZmFjZS1hdC1wb2ludCkgZm9udC1s b2NrLXR5cGUtZmFjZSkpKSkpKQorCisoZXJ0LWRlZnRlc3QgcHl0aG9uLXRzLW1vZGUtY2xhc3Mt cGF0dGVybnMtZmFjZSAoKQorICAocHl0aG9uLXRzLXRlc3RzLXdpdGgtdGVtcC1idWZmZXIKKyAg ICJtYXRjaCB0dDoKKyAgICAgICAgY2FzZSBzdHIoKToKKyAgICAgICAgICAgIHBhc3MKKyAgICAg ICAgY2FzZSBbVHlwZTAoKSB8IGJ5dGVzKGIpIHwgcGFjazAucGFjazEuVHlwZTEoKV06CisgICAg ICAgICAgICBwYXNzCisgICAgICAgIGNhc2UgeydpJzogaW50KGkpLCAnZic6IGZsb2F0KCkgYXMg Zn06CisgICAgICAgICAgICBwYXNzIgorCisgICAoZG9saXN0ICh0ZXN0ICcoInN0ciIgIlR5cGUw IiAiYnl0ZXMiICJUeXBlMSIgImludCIgImZsb2F0IikpCisgICAgIChzZWFyY2gtZm9yd2FyZCB0 ZXN0KQorICAgICAoZ290by1jaGFyIChtYXRjaC1iZWdpbm5pbmcgMCkpCisgICAgIChzaG91bGQg KGVxIChmYWNlLWF0LXBvaW50KSBmb250LWxvY2stdHlwZS1mYWNlKSkpCisKKyAgIChnb3RvLWNo YXIgKHBvaW50LW1pbikpCisgICAoZG9saXN0ICh0ZXN0ICcoInBhY2swIiAicGFjazEiKSkKKyAg ICAgKHNlYXJjaC1mb3J3YXJkIHRlc3QpCisgICAgIChnb3RvLWNoYXIgKG1hdGNoLWJlZ2lubmlu ZyAwKSkKKyAgICAgKHNob3VsZCAobm90IChlcSAoZmFjZS1hdC1wb2ludCkgZm9udC1sb2NrLXR5 cGUtZmFjZSkpKSkpKQorCisoZXJ0LWRlZnRlc3QgcHl0aG9uLXRzLW1vZGUtZG90dGVkLWRlY29y YXRvci1mYWNlLTEgKCkKKyAgKHB5dGhvbi10cy10ZXN0cy13aXRoLXRlbXAtYnVmZmVyCisgICAi QHB5dGVzdC5tYXJrLnNraXAKKyAgICBAcHl0ZXN0Lm1hcmsuc2tpcChyZWFzb249J21zZycpCisg ICAgZGVmIHRlc3QoKToiCisKKyAgIChkb2xpc3QgKHRlc3QgJygicHl0ZXN0IiAibWFyayIgInNr aXAiICJweXRlc3QiICJtYXJrIiAic2tpcCIpKQorICAgICAoc2VhcmNoLWZvcndhcmQgdGVzdCkK KyAgICAgKGdvdG8tY2hhciAobWF0Y2gtYmVnaW5uaW5nIDApKQorICAgICAoc2hvdWxkIChlcSAo ZmFjZS1hdC1wb2ludCkgZm9udC1sb2NrLXR5cGUtZmFjZSkpKSkpCisKKyhlcnQtZGVmdGVzdCBw eXRob24tdHMtbW9kZS1kb3R0ZWQtZGVjb3JhdG9yLWZhY2UtMiAoKQorICAocHl0aG9uLXRzLXRl c3RzLXdpdGgtdGVtcC1idWZmZXIKKyAgICJAcHl0ZXN0Lm1hcmsuc2tpcChyZWFzb249J21zZycp CisgICAgZGVmIHRlc3QoKToiCisKKyAgIChzZXRvcHQgdHJlZXNpdC1mb250LWxvY2stbGV2ZWwg NCkKKyAgIChkb2xpc3QgKHRlc3QgJygicHl0ZXN0IiAibWFyayIgInNraXAiKSkKKyAgICAgKHNl YXJjaC1mb3J3YXJkIHRlc3QpCisgICAgIChnb3RvLWNoYXIgKG1hdGNoLWJlZ2lubmluZyAwKSkK KyAgICAgKHNob3VsZCAoZXEgKGZhY2UtYXQtcG9pbnQpIGZvbnQtbG9jay10eXBlLWZhY2UpKSkp KQorCisoZXJ0LWRlZnRlc3QgcHl0aG9uLXRzLW1vZGUtYnVpbHRpbi1jYWxsLWZhY2UgKCkKKyAg KHB5dGhvbi10cy10ZXN0cy13aXRoLXRlbXAtYnVmZmVyCisgICAiYWxsKCkiCisgICA7OyBlbmFi bGUgJ2Z1bmN0aW9uJyBmZWF0dXJlIGZyb20gNHRoIGxldmVsCisgICAoc2V0b3B0IHRyZWVzaXQt Zm9udC1sb2NrLWxldmVsIDQpCisgICAoc2hvdWxkIChlcSAoZmFjZS1hdC1wb2ludCkgZm9udC1s b2NrLWJ1aWx0aW4tZmFjZSkpKSkKKworKGVydC1kZWZ0ZXN0IHB5dGhvbi10cy1tb2RlLWludGVy cG9sYXRpb24tbmVzdGVkLXN0cmluZyAoKQorICAocHl0aG9uLXRzLXRlc3RzLXdpdGgtdGVtcC1i dWZmZXIKKyAgICJ0ID0gZlwiYmVnIHtUcnVlICsgJ3N0cmluZyd9XCIiCisKKyAgIChzZWFyY2gt Zm9yd2FyZCAiVHJ1ZSIpCisgICAoZ290by1jaGFyIChtYXRjaC1iZWdpbm5pbmcgMCkpCisgICAo c2hvdWxkIChlcSAoZmFjZS1hdC1wb2ludCkgZm9udC1sb2NrLWNvbnN0YW50LWZhY2UpKQorCisg ICAoZ290by1jaGFyIChwb2ludC1taW4pKQorICAgKGRvbGlzdCAodGVzdCAnKCJmIiAieyIgIisi ICJ9IikpCisgICAgIChzZWFyY2gtZm9yd2FyZCB0ZXN0KQorICAgICAoZ290by1jaGFyIChtYXRj aC1iZWdpbm5pbmcgMCkpCisgICAgIChzaG91bGQgKG5vdCAoZXEgKGZhY2UtYXQtcG9pbnQpIGZv bnQtbG9jay1zdHJpbmctZmFjZSkpKSkKKworCisgICAoZ290by1jaGFyIChwb2ludC1taW4pKQor ICAgKGRvbGlzdCAodGVzdCAnKCJiZWciICInc3RyaW5nJyIgIlwiIikpCisgICAgIChzZWFyY2gt Zm9yd2FyZCB0ZXN0KQorICAgICAoZ290by1jaGFyIChtYXRjaC1iZWdpbm5pbmcgMCkpCisgICAg IChzaG91bGQgKGVxIChmYWNlLWF0LXBvaW50KSBmb250LWxvY2stc3RyaW5nLWZhY2UpKSkpKQor CisoZXJ0LWRlZnRlc3QgcHl0aG9uLXRzLW1vZGUtbGV2ZWwtZm9udGlmaWNhdGlvbi13by1pbnRl cnBvbGF0aW9uICgpCisgIChweXRob24tdHMtdGVzdHMtd2l0aC10ZW1wLWJ1ZmZlcgorICAgInQg PSBmXCJiZWcge1RydWUgKyB2YXJ9XCIiCisKKyAgIChzZXRvcHQgdHJlZXNpdC1mb250LWxvY2st bGV2ZWwgMikKKyAgIChzZWFyY2gtZm9yd2FyZCAiZiIpCisgICAoZ290by1jaGFyIChtYXRjaC1i ZWdpbm5pbmcgMCkpCisgICAoc2hvdWxkIChub3QgKGVxIChmYWNlLWF0LXBvaW50KSBmb250LWxv Y2stc3RyaW5nLWZhY2UpKSkKKworICAgKGRvbGlzdCAodGVzdCAnKCJcIiIgImJlZyIgInsiICJU cnVlIiAidmFyIiAifSIgIlwiIikpCisgICAgIChzZWFyY2gtZm9yd2FyZCB0ZXN0KQorICAgICAo Z290by1jaGFyIChtYXRjaC1iZWdpbm5pbmcgMCkpCisgICAgIChzaG91bGQgKGVxIChmYWNlLWF0 LXBvaW50KSBmb250LWxvY2stc3RyaW5nLWZhY2UpKSkpKQorCisoZXJ0LWRlZnRlc3QgcHl0aG9u LXRzLW1vZGUtZGlzYWJsZWQtc3RyaW5nLWludGVycG9sYXRpb24gKCkKKyAgKHB5dGhvbi10cy10 ZXN0cy13aXRoLXRlbXAtYnVmZmVyCisgICAidCA9IGZcImJlZyB7VHJ1ZSArIHZhcn1cIiIKKwor ICAgKHVud2luZC1wcm90ZWN0CisgICAgICAgKHByb2duCisgICAgICAgICAoc2V0ZiAobnRoIDIg dHJlZXNpdC1mb250LWxvY2stZmVhdHVyZS1saXN0KQorICAgICAgICAgICAgICAgKHJlbXEgJ3N0 cmluZy1pbnRlcnBvbGF0aW9uIChudGggMiB0cmVlc2l0LWZvbnQtbG9jay1mZWF0dXJlLWxpc3Qp KSkKKyAgICAgICAgIChzZXRvcHQgdHJlZXNpdC1mb250LWxvY2stbGV2ZWwgMykKKworICAgICAg ICAgKHNlYXJjaC1mb3J3YXJkICJmIikKKyAgICAgICAgIChnb3RvLWNoYXIgKG1hdGNoLWJlZ2lu bmluZyAwKSkKKyAgICAgICAgIChzaG91bGQgKG5vdCAoZXEgKGZhY2UtYXQtcG9pbnQpIGZvbnQt bG9jay1zdHJpbmctZmFjZSkpKQorCisgICAgICAgICAoZG9saXN0ICh0ZXN0ICcoIlwiIiAiYmVn IiAieyIgIlRydWUiICJ2YXIiICJ9IiAiXCIiKSkKKyAgICAgICAgICAgKHNlYXJjaC1mb3J3YXJk IHRlc3QpCisgICAgICAgICAgIChnb3RvLWNoYXIgKG1hdGNoLWJlZ2lubmluZyAwKSkKKyAgICAg ICAgICAgKHNob3VsZCAoZXEgKGZhY2UtYXQtcG9pbnQpIGZvbnQtbG9jay1zdHJpbmctZmFjZSkp KSkKKworICAgIChzZXRmIChudGggMiB0cmVlc2l0LWZvbnQtbG9jay1mZWF0dXJlLWxpc3QpCisg ICAgICAgICAgKGFwcGVuZCAobnRoIDIgdHJlZXNpdC1mb250LWxvY2stZmVhdHVyZS1saXN0KSAn KHN0cmluZy1pbnRlcnBvbGF0aW9uKSkpKSkpCisKKyhlcnQtZGVmdGVzdCBweXRob24tdHMtbW9k ZS1pbnRlcnBvbGF0aW9uLWRvYy1zdHJpbmcgKCkKKyAgKHB5dGhvbi10cy10ZXN0cy13aXRoLXRl bXAtYnVmZmVyCisgICAiZlwiXCJcImJlZyB7J3MxJyArIFRydWUgKyAnczInfSBlbmRcIlwiXCIi CisKKyAgIChzZWFyY2gtZm9yd2FyZCAiVHJ1ZSIpCisgICAoZ290by1jaGFyIChtYXRjaC1iZWdp bm5pbmcgMCkpCisgICAoc2hvdWxkIChlcSAoZmFjZS1hdC1wb2ludCkgZm9udC1sb2NrLWNvbnN0 YW50LWZhY2UpKQorCisgICAoZ290by1jaGFyIChwb2ludC1taW4pKQorICAgKGRvbGlzdCAodGVz dCAnKCJmIiAieyIgIisiICJ9IikpCisgICAgIChzZWFyY2gtZm9yd2FyZCB0ZXN0KQorICAgICAo Z290by1jaGFyIChtYXRjaC1iZWdpbm5pbmcgMCkpCisgICAgIChzaG91bGQgKG5vdCAoZXEgKGZh Y2UtYXQtcG9pbnQpIGZvbnQtbG9jay1zdHJpbmctZmFjZSkpKSkKKworICAgKGdvdG8tY2hhciAo cG9pbnQtbWluKSkKKyAgIChkb2xpc3QgKHRlc3QgJygiXCJcIlwiIiAiYmVnIiAiZW5kIiAiXCJc IlwiIikpCisgICAgIChzZWFyY2gtZm9yd2FyZCB0ZXN0KQorICAgICAoZ290by1jaGFyIChtYXRj aC1iZWdpbm5pbmcgMCkpCisgICAgIChzaG91bGQgKGVxIChmYWNlLWF0LXBvaW50KSBmb250LWxv Y2stZG9jLWZhY2UpKSkKKworICAgKGdvdG8tY2hhciAocG9pbnQtbWluKSkKKyAgIChkb2xpc3Qg KHRlc3QgJygiJ3MxJyIgIidzMiciKSkKKyAgICAgKHNlYXJjaC1mb3J3YXJkIHRlc3QpCisgICAg IChnb3RvLWNoYXIgKG1hdGNoLWJlZ2lubmluZyAwKSkKKyAgICAgKHNob3VsZCAoZXEgKGZhY2Ut YXQtcG9pbnQpIGZvbnQtbG9jay1zdHJpbmctZmFjZSkpKSkpCisKIChwcm92aWRlICdweXRob24t dGVzdHMpCiAKIDs7OyBweXRob24tdGVzdHMuZWwgZW5kcyBoZXJlCi0tIAoyLjM0LjEKCg== ------==--bound.31493.ajvwwkfnk4mrpgm2.vla.yp-c.yandex.net-- From debbugs-submit-bounces@debbugs.gnu.org Sat Dec 30 06:19:24 2023 Received: (at 67061) by debbugs.gnu.org; 30 Dec 2023 11:19:24 +0000 Received: from localhost ([127.0.0.1]:43199 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rJXND-00066C-PG for submit@debbugs.gnu.org; Sat, 30 Dec 2023 06:19:24 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:46060) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rJXNB-00065y-2Y for 67061@debbugs.gnu.org; Sat, 30 Dec 2023 06:19:22 -0500 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 1rJXN4-00046R-GL; Sat, 30 Dec 2023 06:19:14 -0500 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=cTb8BWNLSeohRJD8EyugasvqlrVZI0Fs7odkpuos/10=; b=oMZYtxQxU4zD vJy0nEwRfeKYEjYUS2KfEUMiXzrM+wAi5Miub8h9b7nFxXQLolwQ/JShVvJ4ivLUjZv1rIkUxtecb txPdU1RTygK/ZMkSadLvCt5j932xd9SNJduhp7keSQTnQCzGPdcrb2Z+fLRM5Ql2pts728ErOw3zv SUYx28hCviggzZ16wK9Oi27G7iy4H8+DmRH0O0UvQWYyYeiiforKyRckOi1QogSfF/ZMFFZKi0DqX IZgsVtRG5KQXVklpX2SYIDadXeREhGoqFP8jcw8z/IuKj4jaBG069IUI6cXMOfKrofJyFwtIjRVSF 9OJfVs+IGbihKd4CDFT6vA==; Date: Sat, 30 Dec 2023 13:19:04 +0200 Message-Id: <83bka83plj.fsf@gnu.org> From: Eli Zaretskii To: Denis Zubarev In-Reply-To: <124811703927449@mail.yandex.ru> (message from Denis Zubarev on Sat, 30 Dec 2023 13:53:38 +0300) Subject: Re: bug#67061: [PATCH] Improve syntax highlighting for python-ts-mode 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> <7371702772641@mail.yandex.ru> <8915940C-F69C-4CAE-80E8-4F70C5753061@gmail.com> <240311702778783@mail.yandex.ru> <83h6k9dzl6.fsf@gnu.org> <124811703927449@mail.yandex.ru> X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 67061 Cc: dmitry@gutov.dev, casouri@gmail.com, 67061@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 (---) > From: Denis Zubarev > Cc: "casouri@gmail.com" , > "dmitry@gutov.dev" , > "67061@debbugs.gnu.org" <67061@debbugs.gnu.org> > Date: Sat, 30 Dec 2023 13:53:38 +0300 > > It seems, there is no consensus about new variable-definition feature. So I removed it from this > patch. > Later I will send a new patch for discussing it. > > I rebased on the latest emacs-29 and also fixed a test that failed on this branch. > Please find the patch in the attachment. Thanks, now installed on the emacs-29 branch. From debbugs-submit-bounces@debbugs.gnu.org Mon Jan 01 12:42:29 2024 Received: (at 67061) by debbugs.gnu.org; 1 Jan 2024 17:42:29 +0000 Received: from localhost ([127.0.0.1]:48702 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rKMJ3-0001wW-93 for submit@debbugs.gnu.org; Mon, 01 Jan 2024 12:42:29 -0500 Received: from wout5-smtp.messagingengine.com ([64.147.123.21]:46971) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rKMJ1-0001wH-OF for 67061@debbugs.gnu.org; Mon, 01 Jan 2024 12:42:28 -0500 Received: from compute5.internal (compute5.nyi.internal [10.202.2.45]) by mailout.west.internal (Postfix) with ESMTP id 89B043200C3D; Mon, 1 Jan 2024 12:42:19 -0500 (EST) Received: from mailfrontend1 ([10.202.2.162]) by compute5.internal (MEProxy); Mon, 01 Jan 2024 12:42:19 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gutov.dev; h=cc :cc:content-transfer-encoding:content-type:content-type:date :date:from:from:in-reply-to:in-reply-to:message-id:mime-version :references:reply-to:subject:subject:to:to; s=fm1; t=1704130939; x=1704217339; bh=DfzNjIUT+Gy6dZCcmszb8gZWkkQIEsFhZHFAWYZNHrU=; b= J6eGWEvR/yXEigyeuhLjuhZ+pfWI20P4jManqZygh/sVb8lVcPsWSerQe4PNztVW U9A9OrgIWTn8kT0DpWEia3IFoSdUz0vaHefqaGRb8AH3Hum+7eieAe4/md5e4UV0 OBng2U27wqE0wJqLUfy4ImAsQjLEPybn8/IA87Tv46qJvYNRpDoUGVUkDWEqE6mc 4DQv7Glk7HCuKX7Y5rHKtCJaeZHW/xGOX5zCkT/p5p6gOj44Xo9iRo/iKAykk1pt GDbTdMcpcyS4su0DYj7+CqeKQD3+YkQXiHIz8cIi7VKxVRB44a3iXVIKhQuJBVQn Y0eA8L4Yu136hEG1M2kdQg== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:cc:content-transfer-encoding :content-type:content-type:date:date:feedback-id:feedback-id :from:from:in-reply-to:in-reply-to:message-id:mime-version :references:reply-to:subject:subject:to:to:x-me-proxy:x-me-proxy :x-me-sender:x-me-sender:x-sasl-enc; s=fm2; t=1704130939; x= 1704217339; bh=DfzNjIUT+Gy6dZCcmszb8gZWkkQIEsFhZHFAWYZNHrU=; b=a ivJOuSE+t6IVHZvND/W+6eWeleOs9C0riyj54foxyPg3O1RxbuZQBhFmVB/BG/Ty zkjeQtGB6TR8yD2XunFoCghhVaQTao9+s+nPETL079zdJXw9n1d1mZHab6slXbWs kgeRvaEbP1sAozq/ZYU5506mLRINUWcIpCSc+YwPJr/5/S6tYTn/zDh25IhTw49s 77EgU5C3rd6Me1owuRGcaPabB58n6boQlBO1cDtmgFmkXapgS9g1xSkBDIcnLIgK PnmOd0g4m86LpbGa87RYqHL+9L0xji0W8GVZIRUKV3hT0c3ZSi8hxOICLqXDAr9j wBEMACANHp+Gqv5IGwuFw== X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedvkedrvdegtddguddtfecutefuodetggdotefrod ftvfcurfhrohhfihhlvgemucfhrghsthforghilhdpqfgfvfdpuffrtefokffrpgfnqfgh necuuegrihhlohhuthemuceftddtnecusecvtfgvtghiphhivghnthhsucdlqddutddtmd enucfjughrpefkffggfgfuvfevfhfhjggtgfesthejredttddvjeenucfhrhhomhepffhm ihhtrhihucfiuhhtohhvuceoughmihhtrhihsehguhhtohhvrdguvghvqeenucggtffrrg htthgvrhhnpeetudeljeegheetgfehgeejkeeuhedvveeikeeufedtvddtveefhfdvveeg udejheenucevlhhushhtvghrufhiiigvpedtnecurfgrrhgrmhepmhgrihhlfhhrohhmpe gumhhithhrhiesghhuthhovhdruggvvh X-ME-Proxy: Feedback-ID: i0e71465a:Fastmail Received: by mail.messagingengine.com (Postfix) with ESMTPA; Mon, 1 Jan 2024 12:42:17 -0500 (EST) Message-ID: Date: Mon, 1 Jan 2024 19:42:16 +0200 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: bug#67061: [PATCH] Improve syntax highlighting for python-ts-mode Content-Language: en-US To: Denis Zubarev , Yuan Fu , Eli Zaretskii 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> <7371702772641@mail.yandex.ru> <27502181702944649@mail.yandex.ru> <16489c3d-bddf-984b-6c98-2a1de9fdb6e8@gutov.dev> <43841703366539@mail.yandex.ru> From: Dmitry Gutov In-Reply-To: <43841703366539@mail.yandex.ru> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 67061 Cc: "67061@debbugs.gnu.org" <67061@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: -1.7 (-) On 23/12/2023 23:45, Denis Zubarev wrote: > Just adding a rule for highlighting CamelCase identifiers as types would > lead to many false positives. For example, global variables or an object > instantiation. It seems like the convention is to use ALL_CAPITAL for constants and CamelCase for classes/constructors. Those can be distinguished with a regexp, with single-char names being sorted into constants, which they usually are. I suppose some code could be violating that, but perhaps we should remind such authors about that with highlighting as well. Regarding object instantiation, I'd be happy to see the class name in Class(...) instantiation calls highlighted with font-lock-type-face. that's more useful that telling the user that they are seeing a function call by the means of font-lock-function-call-face. From debbugs-submit-bounces@debbugs.gnu.org Tue Jan 09 15:04:08 2024 Received: (at 67061) by debbugs.gnu.org; 9 Jan 2024 20:04:08 +0000 Received: from localhost ([127.0.0.1]:41075 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rNIKV-0003tG-Uu for submit@debbugs.gnu.org; Tue, 09 Jan 2024 15:04:08 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:41288) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rNIKT-0003si-T4 for 67061@debbugs.gnu.org; Tue, 09 Jan 2024 15:04:06 -0500 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 1rNIKG-0005fg-M7; Tue, 09 Jan 2024 15:03:53 -0500 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=3Q8BOCWNZTmzE9kni1Xr1rdHiiKxTPJqeQEJvbB2T28=; b=HwWLOJYq5hwg dTIK5Y8qpreRISYRs/qe+F6Xc4CWSzt80ge6vCu3yWMNCdxQjhNBN363fUWypbl1nnU6ndDCFuYUM XuQcaXpYjAGlCNimQnUZM3NJIiy0rWW+zYhVilWq9S71AO6j3rY+yobYSEAxGC4eameJEyULca8gW 2W0/Mlv1qR3ddjaOIOJJ/uBgkijBkwJqalfaq7hAO3FlFYlxqWsgo5XrdJDaAp4YfFYCSH+peBGcm VmRW1TkdP8jxbFCypiwdVVHBZmU27giYYuunnOPSzAmywTi8794N6RqLhK29+bxzCY1xDPNIdIJaI /B1PRzDkzV4QNithZOBF6w==; Date: Tue, 09 Jan 2024 22:03:33 +0200 Message-Id: <83le8ynuju.fsf@gnu.org> From: Eli Zaretskii To: Dmitry Gutov In-Reply-To: (message from Dmitry Gutov on Mon, 1 Jan 2024 19:42:16 +0200) Subject: Re: bug#67061: [PATCH] Improve syntax highlighting for python-ts-mode 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> <7371702772641@mail.yandex.ru> <27502181702944649@mail.yandex.ru> <16489c3d-bddf-984b-6c98-2a1de9fdb6e8@gutov.dev> <43841703366539@mail.yandex.ru> X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 67061 Cc: casouri@gmail.com, dvzubarev@yandex.ru, 67061@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: Mon, 1 Jan 2024 19:42:16 +0200 > Cc: "67061@debbugs.gnu.org" <67061@debbugs.gnu.org> > From: Dmitry Gutov > > On 23/12/2023 23:45, Denis Zubarev wrote: > > Just adding a rule for highlighting CamelCase identifiers as types would > > lead to many false positives. For example, global variables or an object > > instantiation. > > It seems like the convention is to use ALL_CAPITAL for constants and > CamelCase for classes/constructors. Those can be distinguished with a > regexp, with single-char names being sorted into constants, which they > usually are. > > I suppose some code could be violating that, but perhaps we should > remind such authors about that with highlighting as well. > > Regarding object instantiation, I'd be happy to see the class name in > Class(...) instantiation calls highlighted with font-lock-type-face. > that's more useful that telling the user that they are seeing a function > call by the means of font-lock-function-call-face. Is there anything else left to do here, or should I close this bug? From debbugs-submit-bounces@debbugs.gnu.org Sun Jan 14 01:16:53 2024 Received: (at control) by debbugs.gnu.org; 14 Jan 2024 06:16:53 +0000 Received: from localhost ([127.0.0.1]:41522 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rOtng-0003zU-Vn for submit@debbugs.gnu.org; Sun, 14 Jan 2024 01:16:53 -0500 Received: from mail-wm1-x329.google.com ([2a00:1450:4864:20::329]:47184) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rOtnf-0003vB-9G for control@debbugs.gnu.org; Sun, 14 Jan 2024 01:16:51 -0500 Received: by mail-wm1-x329.google.com with SMTP id 5b1f17b1804b1-40e62e6e3b0so26610865e9.2 for ; Sat, 13 Jan 2024 22:16:52 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1705213006; x=1705817806; darn=debbugs.gnu.org; h=to:subject:message-id:date:mime-version:from:from:to:cc:subject :date:message-id:reply-to; bh=qVYNNMzVX0myOL1q9wTMwloRd4+1jHuvvs7rd+4pidE=; b=nIHfp/YNMJbVDT7BCqktHFlkdZzAipek3IP71C2dRERl3X3iaP+74P8yKJ5Gu0j88F DqhiNbsbRZD4Yg5Gw4lclzyUgSJ/Hb8GoQg2SHA7TmyoRqVMIjwJqok7Nm3vmOgFj/k4 vyjTFomkGPbOae2/j5zMPmWeLgQ9VC+zdOUTjiYLAJwoYfCV+CIHC9MRGF1wTNV+xmKN ZJuMb1/v+/JycjN/b7HUQCz8UjretpXK1IpgvPIn/8KYAIbfzVXBD4QjTktUdAC9wIeB OuEIvcVqZDFyhRmRTWkXYrm+KM6WfE/fNSUlYmWs6BrFApANVbUGWIKSvShsOWFvbToL 6g0w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1705213006; x=1705817806; h=to:subject:message-id:date:mime-version:from:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=qVYNNMzVX0myOL1q9wTMwloRd4+1jHuvvs7rd+4pidE=; b=OJRgVNH0MyZiQbVHB752BF5YeC+Gl+EtUTd7MfrMIFFAROmpZzlFt179JsBtvvYPhB rDE95qamJUUPt73Wskn47O+ABBh5FEvh+3X3T1eoqgMyeHqokdEvMzeBEqTL/3DQwlqb YUZiwRgRL6xTxVoEIWRwZYCWra+CeVurn6qmQsErk/e83PsX18PXyTLWl2/+y/JaKcii 5MBWlDNdU2iZvo2tcLbOgQZkQwayk6ncojIqQPnZXDrl3747nFT9PTl1h264ZAhdoLyI zsfbWSvaIBZxRJhaj4fY1okKvu6RehT2bz7J+htFAnXjuPbEPTpDaLOofxO1aZPhVcCB 0kGw== X-Gm-Message-State: AOJu0YwAnWNE6j1512BwUqVLPdsC3Pg+YKN/GKCdjppE9kb9ptNNzMYy ojHDn8djymTflhVb+5m6UUd0WuA3T1SS91wODFZeACBY X-Google-Smtp-Source: AGHT+IH+KAnFJ+todj8L0jdRgZgzlkgL51d9VT3kSkh4xjeI+ROO3jvPXEsstjX1qmgW8cDyKUVft6bomGlUhFhGsP4= X-Received: by 2002:a05:600c:2d16:b0:40c:6a4c:ce05 with SMTP id x22-20020a05600c2d1600b0040c6a4cce05mr1256277wmf.202.1705213006129; Sat, 13 Jan 2024 22:16:46 -0800 (PST) Received: from 753933720722 named unknown by gmailapi.google.com with HTTPREST; Sun, 14 Jan 2024 00:16:45 -0600 From: Stefan Kangas MIME-Version: 1.0 Date: Sun, 14 Jan 2024 00:16:45 -0600 Message-ID: Subject: control message for bug #67061 To: control@debbugs.gnu.org Content-Type: text/plain; charset="UTF-8" X-Spam-Score: -0.0 (/) X-Debbugs-Envelope-To: control 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 (-) fixed 67061 29.2 quit From debbugs-submit-bounces@debbugs.gnu.org Sat Jan 20 04:08:51 2024 Received: (at 67061) by debbugs.gnu.org; 20 Jan 2024 09:08:51 +0000 Received: from localhost ([127.0.0.1]:60820 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rR7LO-0003oN-Uw for submit@debbugs.gnu.org; Sat, 20 Jan 2024 04:08:51 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:45082) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rR7LM-0003o4-4N for 67061@debbugs.gnu.org; Sat, 20 Jan 2024 04:08:49 -0500 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 1rR7LD-00048C-VU; Sat, 20 Jan 2024 04:08:39 -0500 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=KSMGLfauLWyiU/se7SrewrbMt9L3QjzIMvRBDznAOhc=; b=NUyJRA9RY+RF PraxNgUOhOKcEZL3BtcpoKNICGQSAp4P06/JtOtZkZURox3enhz5o9sDFrq1XcvmuRpHGd8v6NoIn +tRAGvw4QDJ95NicT70thIzrN95vGXrASo5ydJ8qthOVS1voSPfJXXDKkKcbg2207aVcV6QqnNPaz BCdnt8Z1e1TUZMGWtNgbbM57IWj9yHDfpjqg0D4AfYkugbz4J5xr0juRH/TtBh5Tf3/nGx7SwPUKU +G2D1qF8ldxO01bbcQdOinro2wQu/ROvjf7Z4lyRpH05T+JuTq7tilnNAWJz5Z2VvLL5wWtj9Cs4M 1E6mWpx1WejDOSrYV2RwIQ==; Date: Sat, 20 Jan 2024 11:08:18 +0200 Message-Id: <83plxwtlrx.fsf@gnu.org> From: Eli Zaretskii To: dmitry@gutov.dev, casouri@gmail.com In-Reply-To: <83le8ynuju.fsf@gnu.org> (message from Eli Zaretskii on Tue, 09 Jan 2024 22:03:33 +0200) Subject: Re: bug#67061: [PATCH] Improve syntax highlighting for python-ts-mode 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> <7371702772641@mail.yandex.ru> <27502181702944649@mail.yandex.ru> <16489c3d-bddf-984b-6c98-2a1de9fdb6e8@gutov.dev> <43841703366539@mail.yandex.ru> <83le8ynuju.fsf@gnu.org> X-Spam-Score: -1.6 (-) X-Debbugs-Envelope-To: 67061 Cc: dvzubarev@yandex.ru, 67061@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: -2.6 (--) Ping! Should this bug be closed now? > Cc: casouri@gmail.com, dvzubarev@yandex.ru, 67061@debbugs.gnu.org > Date: Tue, 09 Jan 2024 22:03:33 +0200 > From: Eli Zaretskii > > > Date: Mon, 1 Jan 2024 19:42:16 +0200 > > Cc: "67061@debbugs.gnu.org" <67061@debbugs.gnu.org> > > From: Dmitry Gutov > > > > On 23/12/2023 23:45, Denis Zubarev wrote: > > > Just adding a rule for highlighting CamelCase identifiers as types would > > > lead to many false positives. For example, global variables or an object > > > instantiation. > > > > It seems like the convention is to use ALL_CAPITAL for constants and > > CamelCase for classes/constructors. Those can be distinguished with a > > regexp, with single-char names being sorted into constants, which they > > usually are. > > > > I suppose some code could be violating that, but perhaps we should > > remind such authors about that with highlighting as well. > > > > Regarding object instantiation, I'd be happy to see the class name in > > Class(...) instantiation calls highlighted with font-lock-type-face. > > that's more useful that telling the user that they are seeing a function > > call by the means of font-lock-function-call-face. > > Is there anything else left to do here, or should I close this bug? > > > > From debbugs-submit-bounces@debbugs.gnu.org Sat Jan 27 04:49:55 2024 Received: (at 67061) by debbugs.gnu.org; 27 Jan 2024 09:49:56 +0000 Received: from localhost ([127.0.0.1]:53496 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rTfJz-0007JJ-DX for submit@debbugs.gnu.org; Sat, 27 Jan 2024 04:49:55 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:38742) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rTfJw-0007J3-Ng for 67061@debbugs.gnu.org; Sat, 27 Jan 2024 04:49:53 -0500 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 1rTfJk-00075J-07; Sat, 27 Jan 2024 04:49:40 -0500 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=dBStcDFFodqKjW+sU+WA08zkuu6Ygj/8vVezRmGrI5Q=; b=j3xCw/KTysfk BUIY6NK3N3tncUQ5zwNE9kO0Nf7kQgFFdSL19cVi3A9VyKb8sS0gwKQJ4gD1SPXgmWHuT9O4U9Mc0 BrEGfExHEOm4l16oVSiIB8JHZ7yYmXv+8j5szyvj1XM0W+NqBfkupF5QF5gJOuNp9aveldGv2iUGR q/kviTYSTccrYOeqNa1j5bg03z8HHFJpVwhDla6hiuk381Ge0XODslV//+7g6iICC1zwc/DzcTNk8 UWxVmhrshHLTvXQiWZCx2i0cBvF1FBy9M/40HW4NOWAfEU5mmE8TzQQmck2Zk86O+oRM7rjJHg8Xi wug0mNMeGJ4Y+vTvkSvy0g==; Date: Sat, 27 Jan 2024 11:49:37 +0200 Message-Id: <86plxn85se.fsf@gnu.org> From: Eli Zaretskii To: dmitry@gutov.dev, casouri@gmail.com, dvzubarev@yandex.ru In-Reply-To: <83plxwtlrx.fsf@gnu.org> (message from Eli Zaretskii on Sat, 20 Jan 2024 11:08:18 +0200) Subject: Re: bug#67061: [PATCH] Improve syntax highlighting for python-ts-mode 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> <7371702772641@mail.yandex.ru> <27502181702944649@mail.yandex.ru> <16489c3d-bddf-984b-6c98-2a1de9fdb6e8@gutov.dev> <43841703366539@mail.yandex.ru> <83le8ynuju.fsf@gnu.org> <83plxwtlrx.fsf@gnu.org> X-Spam-Score: -1.6 (-) X-Debbugs-Envelope-To: 67061 Cc: 67061@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: -2.6 (--) Ping! Ping! Can this bug be closed now, or do we have anything left to do? > Cc: dvzubarev@yandex.ru, 67061@debbugs.gnu.org > Date: Sat, 20 Jan 2024 11:08:18 +0200 > From: Eli Zaretskii > > Ping! Should this bug be closed now? > > > Cc: casouri@gmail.com, dvzubarev@yandex.ru, 67061@debbugs.gnu.org > > Date: Tue, 09 Jan 2024 22:03:33 +0200 > > From: Eli Zaretskii > > > > > Date: Mon, 1 Jan 2024 19:42:16 +0200 > > > Cc: "67061@debbugs.gnu.org" <67061@debbugs.gnu.org> > > > From: Dmitry Gutov > > > > > > On 23/12/2023 23:45, Denis Zubarev wrote: > > > > Just adding a rule for highlighting CamelCase identifiers as types would > > > > lead to many false positives. For example, global variables or an object > > > > instantiation. > > > > > > It seems like the convention is to use ALL_CAPITAL for constants and > > > CamelCase for classes/constructors. Those can be distinguished with a > > > regexp, with single-char names being sorted into constants, which they > > > usually are. > > > > > > I suppose some code could be violating that, but perhaps we should > > > remind such authors about that with highlighting as well. > > > > > > Regarding object instantiation, I'd be happy to see the class name in > > > Class(...) instantiation calls highlighted with font-lock-type-face. > > > that's more useful that telling the user that they are seeing a function > > > call by the means of font-lock-function-call-face. > > > > Is there anything else left to do here, or should I close this bug? > > > > > > > > > > > > From debbugs-submit-bounces@debbugs.gnu.org Sat Jan 27 05:47:24 2024 Received: (at 67061) by debbugs.gnu.org; 27 Jan 2024 10:47:24 +0000 Received: from localhost ([127.0.0.1]:53546 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rTgDc-0000Ml-63 for submit@debbugs.gnu.org; Sat, 27 Jan 2024 05:47:24 -0500 Received: from forward502c.mail.yandex.net ([2a02:6b8:c03:500:1:45:d181:d502]:40582) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rTgDa-0000MY-04 for 67061@debbugs.gnu.org; Sat, 27 Jan 2024 05:47:23 -0500 Received: from mail-nwsmtp-mxback-production-main-50.sas.yp-c.yandex.net (mail-nwsmtp-mxback-production-main-50.sas.yp-c.yandex.net [IPv6:2a02:6b8:c08:9204:0:640:2780:0]) by forward502c.mail.yandex.net (Yandex) with ESMTP id C1F7060CFA; Sat, 27 Jan 2024 13:47:08 +0300 (MSK) Received: from mail.yandex.ru (2a02:6b8:c14:3982:0:640:27b4:0 [2a02:6b8:c14:3982:0:640:27b4:0]) by mail-nwsmtp-mxback-production-main-50.sas.yp-c.yandex.net (mxback/Yandex) with HTTP id rkTa4a6O20U0-h4u4RWfT; Sat, 27 Jan 2024 13:47:08 +0300 X-Yandex-Fwd: 1 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yandex.ru; s=mail; t=1706352428; bh=yoNNqQ53+CvoHKdpw/TvDRfIEaltAP2HGsWBQm5paQ0=; h=Message-Id:Date:Subject:In-Reply-To:Cc:References:To:From; b=BOJJ+V/ZaAj4XA/ne9/1fS1F/vmYfETLHRGFbEmTBJ9lvMOKKG9l9aIvBD7c5RKFn hpm9Hb4vcfD6XXBqf3PrTCdz45VLQUH/e1Av9sIJudzGcVFQmeUDsDhRBE524l612F GOzkjgTl9JO5TSkdDGk4Fd9Uxd6xAfXQ4gF2627c= Authentication-Results: mail-nwsmtp-mxback-production-main-50.sas.yp-c.yandex.net; dkim=pass header.i=@yandex.ru Received: by wjdchmct5l2sqvhb.sas.yp-c.yandex.net with HTTP; Sat, 27 Jan 2024 13:47:08 +0300 From: Denis Zubarev To: Eli Zaretskii , "dmitry@gutov.dev" , "casouri@gmail.com" In-Reply-To: <86plxn85se.fsf@gnu.org> 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> <7371702772641@mail.yandex.ru> <27502181702944649@mail.yandex.ru> <16489c3d-bddf-984b-6c98-2a1de9fdb6e8@gutov.dev> <43841703366539@mail.yandex.ru> <83le8ynuju.fsf@gnu.org> <83plxwtlrx.fsf@gnu.org> <86plxn85se.fsf@gnu.org> Subject: Re: bug#67061: [PATCH] Improve syntax highlighting for python-ts-mode MIME-Version: 1.0 X-Mailer: Yamail [ http://yandex.ru ] 5.0 Date: Sat, 27 Jan 2024 13:47:08 +0300 Message-Id: <10631706351815@mail.yandex.ru> Content-Transfer-Encoding: base64 Content-Type: text/html; charset=utf-8 X-Spam-Score: 1.8 (+) X-Spam-Report: Spam detection software, running on the system "debbugs.gnu.org", has NOT identified this incoming email as spam. The original message has been attached to this so you can view it or label similar future email. If you have any questions, see the administrator of that system for details. Content preview: I think, It can be closed since the patch was merged. I may send a new patch if I continue work on this. 27.01.2024, 12:49, "Eli Zaretskii" : Ping! Ping! Can this bug be closed now, or do we have anything left to do? Content analysis details: (1.8 points, 10.0 required) pts rule name description ---- ---------------------- -------------------------------------------------- 0.1 URIBL_SBL_A Contains URL's A record listed in the Spamhaus SBL blocklist [URIs: gutov.dev] 0.6 URIBL_SBL Contains an URL's NS IP listed in the Spamhaus SBL blocklist [URIs: gutov.dev] -0.0 SPF_PASS SPF: sender matches SPF record 0.0 SPF_HELO_NONE SPF: HELO does not publish an SPF Record 0.0 FREEMAIL_FROM Sender email is commonly abused enduser mail provider (dvzubarev[at]yandex.ru) 0.1 MIME_HTML_ONLY BODY: Message only has text/html MIME parts 0.0 HTML_MESSAGE BODY: HTML included in message -0.7 RCVD_IN_DNSWL_LOW RBL: Sender listed at https://www.dnswl.org/, low trust [2a02:6b8:c03:500:1:45:d181:d502 listed in] [list.dnswl.org] 0.6 HTML_MIME_NO_HTML_TAG HTML-only message, but there is no HTML tag -0.0 T_SCC_BODY_TEXT_LINE No description available. 1.0 FREEMAIL_REPLY From and body contain different freemails X-Debbugs-Envelope-To: 67061 Cc: "67061@debbugs.gnu.org" <67061@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: -0.2 (/) PGRpdj5JIHRoaW5rLCBJdCBjYW4gYmUgY2xvc2VkIHNpbmNlIHRoZSBwYXRjaCB3YXMgbWVyZ2Vk LiBJIG1heSBzZW5kIGEgbmV3IHBhdGNoIGlmIEkgY29udGludWUgd29yayBvbiB0aGlzLjwvZGl2 PjxkaXY+wqA8L2Rpdj48ZGl2PjI3LjAxLjIwMjQsIDEyOjQ5LCAiRWxpIFphcmV0c2tpaSIgJmx0 O2VsaXpAZ251Lm9yZyZndDs6PC9kaXY+PGJsb2NrcXVvdGU+PHA+UGluZyEgUGluZyEgQ2FuIHRo aXMgYnVnIGJlIGNsb3NlZCBub3csIG9yIGRvIHdlIGhhdmUgYW55dGhpbmcgbGVmdCB0bzxiciAv PmRvPzxiciAvPsKgPC9wPjxibG9ja3F1b3RlPsKgQ2M6IDxhIGhyZWY9Im1haWx0bzpkdnp1YmFy ZXZAeWFuZGV4LnJ1IiByZWw9Im5vb3BlbmVyIG5vcmVmZXJyZXIiPmR2enViYXJldkB5YW5kZXgu cnU8L2E+LCA8YSBocmVmPSJtYWlsdG86NjcwNjFAZGViYnVncy5nbnUub3JnIiByZWw9Im5vb3Bl bmVyIG5vcmVmZXJyZXIiPjY3MDYxQGRlYmJ1Z3MuZ251Lm9yZzwvYT48YnIgLz7CoERhdGU6IFNh dCwgMjAgSmFuIDIwMjQgMTE6MDg6MTggKzAyMDA8YnIgLz7CoEZyb206IEVsaSBaYXJldHNraWkg Jmx0OzxhIGhyZWY9Im1haWx0bzplbGl6QGdudS5vcmciIHJlbD0ibm9vcGVuZXIgbm9yZWZlcnJl ciI+ZWxpekBnbnUub3JnPC9hPiZndDs8YnIgLz7CoDxiciAvPsKgUGluZyEgU2hvdWxkIHRoaXMg YnVnIGJlIGNsb3NlZCBub3c/PGJyIC8+wqA8YnIgLz7CoCZndDsgQ2M6IDxhIGhyZWY9Im1haWx0 bzpjYXNvdXJpQGdtYWlsLmNvbSIgcmVsPSJub29wZW5lciBub3JlZmVycmVyIj5jYXNvdXJpQGdt YWlsLmNvbTwvYT4sIDxhIGhyZWY9Im1haWx0bzpkdnp1YmFyZXZAeWFuZGV4LnJ1IiByZWw9Im5v b3BlbmVyIG5vcmVmZXJyZXIiPmR2enViYXJldkB5YW5kZXgucnU8L2E+LCA8YSBocmVmPSJtYWls dG86NjcwNjFAZGViYnVncy5nbnUub3JnIiByZWw9Im5vb3BlbmVyIG5vcmVmZXJyZXIiPjY3MDYx QGRlYmJ1Z3MuZ251Lm9yZzwvYT48YnIgLz7CoCZndDsgRGF0ZTogVHVlLCAwOSBKYW4gMjAyNCAy MjowMzozMyArMDIwMDxiciAvPsKgJmd0OyBGcm9tOiBFbGkgWmFyZXRza2lpICZsdDs8YSBocmVm PSJtYWlsdG86ZWxpekBnbnUub3JnIiByZWw9Im5vb3BlbmVyIG5vcmVmZXJyZXIiPmVsaXpAZ251 Lm9yZzwvYT4mZ3Q7PGJyIC8+wqAmZ3Q7PGJyIC8+wqAmZ3Q7ICZndDsgRGF0ZTogTW9uLCAxIEph biAyMDI0IDE5OjQyOjE2ICswMjAwPGJyIC8+wqAmZ3Q7ICZndDsgQ2M6ICI8YSBocmVmPSJtYWls dG86NjcwNjFAZGViYnVncy5nbnUub3JnIiByZWw9Im5vb3BlbmVyIG5vcmVmZXJyZXIiPjY3MDYx QGRlYmJ1Z3MuZ251Lm9yZzwvYT4iICZsdDs8YSBocmVmPSJtYWlsdG86NjcwNjFAZGViYnVncy5n bnUub3JnIiByZWw9Im5vb3BlbmVyIG5vcmVmZXJyZXIiPjY3MDYxQGRlYmJ1Z3MuZ251Lm9yZzwv YT4mZ3Q7PGJyIC8+wqAmZ3Q7ICZndDsgRnJvbTogRG1pdHJ5IEd1dG92ICZsdDs8YSBocmVmPSJt YWlsdG86ZG1pdHJ5QGd1dG92LmRldiIgcmVsPSJub29wZW5lciBub3JlZmVycmVyIj5kbWl0cnlA Z3V0b3YuZGV2PC9hPiZndDs8YnIgLz7CoCZndDsgJmd0OzxiciAvPsKgJmd0OyAmZ3Q7IE9uIDIz LzEyLzIwMjMgMjM6NDUsIERlbmlzIFp1YmFyZXYgd3JvdGU6PGJyIC8+wqAmZ3Q7ICZndDsgJmd0 OyBKdXN0IGFkZGluZyBhIHJ1bGUgZm9yIGhpZ2hsaWdodGluZyBDYW1lbENhc2UgaWRlbnRpZmll cnMgYXMgdHlwZXMgd291bGQ8YnIgLz7CoCZndDsgJmd0OyAmZ3Q7IGxlYWQgdG8gbWFueSBmYWxz ZSBwb3NpdGl2ZXMuIEZvciBleGFtcGxlLCBnbG9iYWwgdmFyaWFibGVzIG9yIGFuIG9iamVjdDxi ciAvPsKgJmd0OyAmZ3Q7ICZndDsgaW5zdGFudGlhdGlvbi48YnIgLz7CoCZndDsgJmd0OzxiciAv PsKgJmd0OyAmZ3Q7IEl0IHNlZW1zIGxpa2UgdGhlIGNvbnZlbnRpb24gaXMgdG8gdXNlIEFMTF9D QVBJVEFMIGZvciBjb25zdGFudHMgYW5kPGJyIC8+wqAmZ3Q7ICZndDsgQ2FtZWxDYXNlIGZvciBj bGFzc2VzL2NvbnN0cnVjdG9ycy4gVGhvc2UgY2FuIGJlIGRpc3Rpbmd1aXNoZWQgd2l0aCBhPGJy IC8+wqAmZ3Q7ICZndDsgcmVnZXhwLCB3aXRoIHNpbmdsZS1jaGFyIG5hbWVzIGJlaW5nIHNvcnRl ZCBpbnRvIGNvbnN0YW50cywgd2hpY2ggdGhleTxiciAvPsKgJmd0OyAmZ3Q7IHVzdWFsbHkgYXJl LjxiciAvPsKgJmd0OyAmZ3Q7PGJyIC8+wqAmZ3Q7ICZndDsgSSBzdXBwb3NlIHNvbWUgY29kZSBj b3VsZCBiZSB2aW9sYXRpbmcgdGhhdCwgYnV0IHBlcmhhcHMgd2Ugc2hvdWxkPGJyIC8+wqAmZ3Q7 ICZndDsgcmVtaW5kIHN1Y2ggYXV0aG9ycyBhYm91dCB0aGF0IHdpdGggaGlnaGxpZ2h0aW5nIGFz IHdlbGwuPGJyIC8+wqAmZ3Q7ICZndDs8YnIgLz7CoCZndDsgJmd0OyBSZWdhcmRpbmcgb2JqZWN0 IGluc3RhbnRpYXRpb24sIEknZCBiZSBoYXBweSB0byBzZWUgdGhlIGNsYXNzIG5hbWUgaW48YnIg Lz7CoCZndDsgJmd0OyBDbGFzcyguLi4pIGluc3RhbnRpYXRpb24gY2FsbHMgaGlnaGxpZ2h0ZWQg d2l0aCBmb250LWxvY2stdHlwZS1mYWNlLjxiciAvPsKgJmd0OyAmZ3Q7IHRoYXQncyBtb3JlIHVz ZWZ1bCB0aGF0IHRlbGxpbmcgdGhlIHVzZXIgdGhhdCB0aGV5IGFyZSBzZWVpbmcgYSBmdW5jdGlv bjxiciAvPsKgJmd0OyAmZ3Q7IGNhbGwgYnkgdGhlIG1lYW5zIG9mIGZvbnQtbG9jay1mdW5jdGlv bi1jYWxsLWZhY2UuPGJyIC8+wqAmZ3Q7PGJyIC8+wqAmZ3Q7IElzIHRoZXJlIGFueXRoaW5nIGVs c2UgbGVmdCB0byBkbyBoZXJlLCBvciBzaG91bGQgSSBjbG9zZSB0aGlzIGJ1Zz88YnIgLz7CoCZn dDs8YnIgLz7CoCZndDs8YnIgLz7CoCZndDs8YnIgLz7CoCZndDs8YnIgLz7CoDxiciAvPsKgPGJy IC8+wqA8YnIgLz7CoDwvYmxvY2txdW90ZT48L2Jsb2NrcXVvdGU+ From debbugs-submit-bounces@debbugs.gnu.org Sat Jan 27 06:31:17 2024 Received: (at 67061-done) by debbugs.gnu.org; 27 Jan 2024 11:31:17 +0000 Received: from localhost ([127.0.0.1]:53586 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rTgu4-0001pT-Uq for submit@debbugs.gnu.org; Sat, 27 Jan 2024 06:31:17 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:34520) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rTgu2-0001pE-1Q for 67061-done@debbugs.gnu.org; Sat, 27 Jan 2024 06:31:15 -0500 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 1rTgtp-0007tY-BO; Sat, 27 Jan 2024 06:31:01 -0500 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=cATodQjXBCIcvwNtspQ/Z4H+Xl+5hgNGXyTUmEXClTY=; b=nKpc7FEn5AWs iHqmDm1ItN857xe7rqr829BsCdqBo/IkzBM8wdLGUkFqT56nLDZq+emptqgoYN7yvP5hWtMxvX4KK yeNfokoG+/4OuVBKckiULdIA5/Mt2vXOGmj4hw+TpkYag3PYmYzpOkMccCYklYJC206tB3a3hpfvV GTJ99ywCilCRcOZyN82AR7W7k+1mknxK5kuO2GM/1qpwnBGBZYfTN7ajMSpaTRptSU+J3iOt2UnDZ 3Hx/wyTFymYE0DAOZqOUYiCa9EY3zpsDPDtxKEkd3n4HHIG+Noz3Y4l32TdMSFpsjnzODuB7HZcen gJrXEFGPfnJl95Id/00thw==; Date: Sat, 27 Jan 2024 13:30:59 +0200 Message-Id: <867cjv813g.fsf@gnu.org> From: Eli Zaretskii To: Denis Zubarev In-Reply-To: <10631706351815@mail.yandex.ru> (message from Denis Zubarev on Sat, 27 Jan 2024 13:47:08 +0300) Subject: Re: bug#67061: [PATCH] Improve syntax highlighting for python-ts-mode 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> <7371702772641@mail.yandex.ru> <27502181702944649@mail.yandex.ru> <16489c3d-bddf-984b-6c98-2a1de9fdb6e8@gutov.dev> <43841703366539@mail.yandex.ru> <83le8ynuju.fsf@gnu.org> <83plxwtlrx.fsf@gnu.org> <86plxn85se.fsf@gnu.org> <10631706351815@mail.yandex.ru> X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 67061-done Cc: dmitry@gutov.dev, casouri@gmail.com, 67061-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 (---) > From: Denis Zubarev > Cc: "67061@debbugs.gnu.org" <67061@debbugs.gnu.org> > Date: Sat, 27 Jan 2024 13:47:08 +0300 > > I think, It can be closed since the patch was merged. I may send a new patch if I continue work on > this. Thanks, closing. From unknown Mon Aug 18 14:21:02 2025 Received: (at fakecontrol) by fakecontrolmessage; To: internal_control@debbugs.gnu.org From: Debbugs Internal Request Subject: Internal Control Message-Id: bug archived. Date: Sat, 24 Feb 2024 12:24:06 +0000 User-Agent: Fakemail v42.6.9 # This is a fake control message. # # The action: # bug archived. thanks # This fakemail brought to you by your local debbugs # administrator