From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Shingo Tanaka Newsgroups: gmane.emacs.bugs Subject: bug#48149: 27.2; Wrong underline width when the line char has a width of 2 Date: Sun, 09 May 2021 22:57:43 +0900 Message-ID: <87eeegc8mg.wl-shingo.fg8@gmail.com> References: <87fsz62b1w.wl-shingo.fg8@gmail.com> <87a6pd86el.fsf@nicolasgoaziou.fr> <83im416r6h.fsf@gnu.org> Mime-Version: 1.0 (generated by SEMI-EPG 1.14.7 - "Harue") Content-Type: multipart/mixed; boundary="Multipart_Sun_May__9_22:57:41_2021-1" Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="28920"; mail-complaints-to="usenet@ciao.gmane.io" User-Agent: Wanderlust/2.15.9 (Almost Unreal) SEMI-EPG/1.14.7 (Harue) FLIM-LB/1.14.9 (=?UTF-8?Q?Goj=C5=8D?=) APEL-LB/10.8 EasyPG/1.0.0 Emacs/27.2 (aarch64-unknown-linux-gnu) MULE/6.0 (HANACHIRUSATO) Cc: shingo.fg8@gmail.com, mail@nicolasgoaziou.fr, 48149@debbugs.gnu.org To: Eli Zaretskii Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Sun May 09 15:58:19 2021 Return-path: Envelope-to: geb-bug-gnu-emacs@m.gmane-mx.org Original-Received: from lists.gnu.org ([209.51.188.17]) by ciao.gmane.io with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1lfjwp-0007Pr-KI for geb-bug-gnu-emacs@m.gmane-mx.org; Sun, 09 May 2021 15:58:19 +0200 Original-Received: from localhost ([::1]:44740 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1lfjwo-0005l2-K3 for geb-bug-gnu-emacs@m.gmane-mx.org; Sun, 09 May 2021 09:58:18 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:59484) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lfjwY-0005ka-Ae; Sun, 09 May 2021 09:58:02 -0400 Original-Received: from debbugs.gnu.org ([209.51.188.43]:43900) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1lfjwY-0001Ca-2n; Sun, 09 May 2021 09:58:02 -0400 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1lfjwY-00064A-1a; Sun, 09 May 2021 09:58:02 -0400 X-Loop: help-debbugs@gnu.org Resent-From: Shingo Tanaka Original-Sender: "Debbugs-submit" Resent-CC: emacs-orgmode@gnu.org, bug-gnu-emacs@gnu.org Resent-Date: Sun, 09 May 2021 13:58:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 48149 X-GNU-PR-Package: org-mode,emacs X-Debbugs-Original-Cc: bug-gnu-emacs@gnu.org, shingo.fg8@gmail.com, Nicolas Goaziou , 48149@debbugs.gnu.org Original-Received: via spool by 48149-submit@debbugs.gnu.org id=B48149.162056868023304 (code B ref 48149); Sun, 09 May 2021 13:58:01 +0000 Original-Received: (at 48149) by debbugs.gnu.org; 9 May 2021 13:58:00 +0000 Original-Received: from localhost ([127.0.0.1]:55444 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1lfjwW-00063o-3R for submit@debbugs.gnu.org; Sun, 09 May 2021 09:58:00 -0400 Original-Received: from mail-pf1-f176.google.com ([209.85.210.176]:34605) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1lfjwP-00063T-Ev for 48149@debbugs.gnu.org; Sun, 09 May 2021 09:57:55 -0400 Original-Received: by mail-pf1-f176.google.com with SMTP id 10so11963716pfl.1 for <48149@debbugs.gnu.org>; Sun, 09 May 2021 06:57:53 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=date:message-id:from:to:cc:subject:in-reply-to:references :user-agent:mime-version; bh=xy4JIk1MI8Y45axuEJilXN4v6VHkYgogSV4xnQzyMrY=; b=KM+HqAMRhaLZ34gyBoSv8votlwI2TeVtx/ohelWQyMqDbhaqXqTXDLBnn3Ac4CzYYn WZpDJuSu6LPJO1OjeRGXtdHDepdjFdpiy3r/VlRfLHofQnv03dftTxSWFa+yCZyutwRb IRtN87FcOf9bRdA/5gLh+xS0H7EqraGr34wG+hBhb08bcZHxghNjM/u6ORpDAlGPoIKj 16XDfZFKo8dak1foKYK5EX7c71Zu+C1/OXzI0oT92brgrHgjwGMcmBWwExkUGA4mU++K b9C24SvcL5QzaD5JfpMak8d/Y2GZbWvgZNQuvWZ0mdaYNTSh388Zra+EUXdxIkIg174K +yUQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:date:message-id:from:to:cc:subject:in-reply-to :references:user-agent:mime-version; bh=xy4JIk1MI8Y45axuEJilXN4v6VHkYgogSV4xnQzyMrY=; b=a6Lg8HnVD449Th/Z4TkD+M9XFq5bLBbBmuRDBN8GxOZssCgJ4JUesXoORTPxwlfCLG vfOH61MVHQM1IGTeg/d/UbL56nInXcoE+ksyV76w4q4w+RAcZhs+5he9D0ae/k8MgmtX faAZzIEW3D98neloiDI+FRgqVuwV0XYAGTym3LuNQOGlJft0xUycuAtvvqId88UEeFUq 6nA3jFBYOf2rj95Dhe0Ah0+jLnISdsVFdbvTL6+7gzRzYBozwZ1il8E2xd1+huhGWwzj KB1OtUuXQSbh7ZdpAo0C8+H7Zrmlwpe9i2aVoPY7ux0yX4iPF2/KM+q0CG5lOKz05oAY +vCg== X-Gm-Message-State: AOAM532ZMRvIGrQPTRZmEziaD58qnNkp4LqHhGna4hvwW/1SH/hgmAsX dbwU0cMnxXSWPgUj+OIUwFs= X-Google-Smtp-Source: ABdhPJyy9vuDB6XCqGXjz9dXNmXS+XQpfP0qvNzn0T5d75ITCX70B/tZNbwCBWTOteXNC5BABudITw== X-Received: by 2002:a63:5fc5:: with SMTP id t188mr20364480pgb.228.1620568667489; Sun, 09 May 2021 06:57:47 -0700 (PDT) Original-Received: from shingo-desktop.gmail.com ([240d:1a:6f4:6b00:5514:ce7d:f5f9:375b]) by smtp.gmail.com with ESMTPSA id mr3sm16790713pjb.20.2021.05.09.06.57.45 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 09 May 2021 06:57:46 -0700 (PDT) In-Reply-To: <83im416r6h.fsf@gnu.org> X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-BeenThere: bug-gnu-emacs@gnu.org List-Id: "Bug reports for GNU Emacs, the Swiss army knife of text editors" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Original-Sender: "bug-gnu-emacs" Xref: news.gmane.io gmane.emacs.bugs:206076 Archived-At: --Multipart_Sun_May__9_22:57:41_2021-1 Content-Type: text/plain; charset=ISO-2022-JP Hi, > Please note that using char-width cannot solve the problem of a > character whose width depends on the font, because char-width is > oblivious to fonts, it only knows about the character's codepoint. I updated my patch proposal as attached to use window-text-pixel-size based on Eli's advice. Could you check it to see if it meets the expectation? It works good in my environment with some fonts of different char widths. Here are some comments: - New internal functions org-ascii--make-string and org-ascii--pixel-width are introduced just to improve code readability of this modification - Line width is decided by org-ascii--make-string, which is a pixel width based make-string - org-ascii--make-string uses org-ascii--pixel-width, which returns actual pixel width of characters and strings by using window-text-pixel-size with frame default font - Line justification is also modified to be a pixel width basis Since this is not a simple modification, I think we might need further improvement, so any feedback is appreciated. Especially, we could do better for table alignment, as that is not very easy because the pixel width of line character and that of space character is not always the same. Anyway, I appreciate it if you can give it a try. I am doing FSF signing process in parallel just in case. --- Shingo Tanaka On Mon, 03 May 2021 01:23:02 +0900, Eli Zaretskii wrote: > > > From: Nicolas Goaziou > > Date: Sun, 02 May 2021 18:08:50 +0200 > > Cc: 48149@debbugs.gnu.org > > > > > In case of 1), it correctly takes account of the case in which the character > > > has a width of 2 in `org-ascii--build-title', by dividing the line width by > > > `(char-width under-char)' (line 700-701), maybe because the character is user > > > configurable and its width in unknown. However, in case of 2) and > > > 3), maybe because the characters is embedded in the code, it looks like only > > > considering the character always has a width of 1. But the reality is > > > character ?─ or ?━ can have a width of 2 in the screen displayed with some > > > fonts (ex. "Noto Sans Mono CJK JP"), and in that case the line width gets > > > doubled of the expected width. > > > > > > Attached one is a potential patch. The basic concepts are: > > > > > > a) Do the same in case of 2) and 3) as in case of 1) > > > (dividing the line width by `(char-width under-char)', > > > assuming `char-width-table' is correctly set) > > > > > > b) Prefer the longer line width if the width is odd, even in case of 1) > > > (adding `(1- (char-width under-char))' to dividend, > > > just because it should be more beautiful ;-) ) > > > > Thank you. This looks good. I cannot apply it on "maint" branch, > > however. Also, a proper commit message would be nice. Could you send an > > updated patch? > > Please note that using char-width cannot solve the problem of a > character whose width depends on the font, because char-width is > oblivious to fonts, it only knows about the character's codepoint. --Multipart_Sun_May__9_22:57:41_2021-1 Content-Type: application/octet-stream; type=patch Content-Disposition: attachment; filename="ox-ascii.el.patch" Content-Transfer-Encoding: base64 LS0tIG94LWFzY2lpLmVsLm9yZwkyMDIxLTAzLTI2IDA5OjI4OjQ0LjAwMDAwMDAwMCArMDkwMAor Kysgb3gtYXNjaWkuZWwJMjAyMS0wNS0wOSAxNzoyMzo0MC40MjE5MTI5MzEgKzA5MDAKQEAgLTQ0 MCw4ICs0NDAsMTEgQEAKIDs7IGBvcmctYXNjaWktLWRlc2NyaWJlLWxpbmtzJyBjcmVhdGVzIG5v dGVzIGFib3V0IGxpbmtzIGZvcgogOzsgaW5zZXJ0aW9uIGF0IHRoZSBlbmQgb2YgYSBzZWN0aW9u LiAgSXQgdXNlcwogOzsgYG9yZy1hc2NpaS0tdW5pcXVlLWxpbmtzJyB0byBnZXQgdGhlIGxpc3Qg b2YgbGlua3MgdG8gZGVzY3JpYmUuCi07OyBFdmVudHVhbGx5LCBgb3JnLWFzY2lpLS10cmFuc2xh dGUnIHRyYW5zbGF0ZXMgYSBzdHJpbmcgYWNjb3JkaW5nCis7OyBgb3JnLWFzY2lpLS10cmFuc2xh dGUnIHRyYW5zbGF0ZXMgYSBzdHJpbmcgYWNjb3JkaW5nCiA7OyB0byBsYW5ndWFnZSBhbmQgY2hh cnNldCBzcGVjaWZpY2F0aW9uLgorOzsgYG9yZy1hc2NpaS0tbWFrZS1zdHJpbmcnIHByb3ZpZGVz IHBpeGVsIHdpZHRoIGJhc2VkIGBtYWtlLXN0cmluZycgZm9yCis7OyBiZXR0ZXIgdGV4dCBhbGln bm1lbnQsIGJ5IHVzaW5nIGBvcmctYXNjaWktLXBpeGVsLXdpZHRoJyB3aGljaCByZXR1cm5zCis7 OyBhY3R1YWwgcGl4ZWwgd2lkdGggb2YgY2hhcmFjdGVycyBhbmQgc3RyaW5ncy4KIAogCiAoZGVm dW4gb3JnLWFzY2lpLS1maWxsLXN0cmluZyAocyB0ZXh0LXdpZHRoIGluZm8gJm9wdGlvbmFsIGp1 c3RpZnkpCkBAIC00ODEsOSArNDg0LDE5IEBACiAgICAgKGxldCAoKGZpbGwtY29sdW1uIHRleHQt d2lkdGgpCiAJICA7OyBEaXNhYmxlIGBhZGFwdGl2ZS1maWxsLW1vZGUnIHNvIGl0IGRvZXNuJ3Qg cHJldmVudAogCSAgOzsgZmlsbGluZyBsaW5lcyBtYXRjaGluZyBgYWRhcHRpdmUtZmlsbC1yZWdl eHAnLgotCSAgKGFkYXB0aXZlLWZpbGwtbW9kZSBuaWwpKQorCSAgKGFkYXB0aXZlLWZpbGwtbW9k ZSBuaWwpCisgICAgICAgICAgbGluZXN0ciBwd2lkdGgpCiAgICAgICAod2hpbGUgKDwgKHBvaW50 KSAocG9pbnQtbWF4KSkKLQkoanVzdGlmeS1jdXJyZW50LWxpbmUgaG93KQorICAgICAgICAoc2V0 cSBsaW5lc3RyIChidWZmZXItc3Vic3RyaW5nIChwb2ludCkgKGxpbmUtZW5kLXBvc2l0aW9uKSkK KyAgICAgICAgICAgICAgcHdpZHRoIChtYXggKC0gKCogKG9yZy1hc2NpaS0tcGl4ZWwtd2lkdGgg P1xzKSB0ZXh0LXdpZHRoKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob3JnLWFzY2lp LS1waXhlbC13aWR0aCBsaW5lc3RyKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgMCkpCisg ICAgICAgIChpbnNlcnQgKG9yZy1hc2NpaS0tbWFrZS1zdHJpbmcgKHBjYXNlIGhvdworICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGBsZWZ0IDApCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoYGNlbnRlciAoLyBwd2lkdGggMikpCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoYHJpZ2h0IHB3aWR0aCkp CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgP1xzIDAgKC0gdGV4dC13 aWR0aAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChz dHJpbmctd2lkdGggbGluZXN0cikpKSkKIAkoZm9yd2FyZC1saW5lKSkpCiAgICAgKGJ1ZmZlci1z dHJpbmcpKSkKIApAQCAtNjk3LDkgKzcxMCw4IEBACiAJCQkgICAgICAocGxpc3QtZ2V0IGluZm8g OmFzY2lpLXVuZGVybGluZSkpKSkpKQogCSAoYW5kIHVuZGVyLWNoYXIKIAkgICAgICAoY29uY2F0 ICJcbiIKLQkJICAgICAgKG1ha2Utc3RyaW5nICgvIChzdHJpbmctd2lkdGggZmlyc3QtcGFydCkK LQkJCQkgICAgICAoY2hhci13aWR0aCB1bmRlci1jaGFyKSkKLQkJCQkgICB1bmRlci1jaGFyKSkp KSkpKSkKKwkJICAgICAgKG9yZy1hc2NpaS0tbWFrZS1zdHJpbmcKKyAgICAgICAgICAgICAgICAg ICAgICAgKG9yZy1hc2NpaS0tcGl4ZWwtd2lkdGggZmlyc3QtcGFydCkgdW5kZXItY2hhcikpKSkp KSkpCiAKIChkZWZ1biBvcmctYXNjaWktLWhhcy1jYXB0aW9uLXAgKGVsZW1lbnQgX2luZm8pCiAg ICJOb24tbmlsIHdoZW4gRUxFTUVOVCBoYXMgYSBjYXB0aW9uIGFmZmlsaWF0ZWQga2V5d29yZC4K QEAgLTc1MCw5ICs3NjIsOSBAQAogICAgKHVubGVzcyBzY29wZQogICAgICAobGV0ICgodGl0bGUg KG9yZy1hc2NpaS0tdHJhbnNsYXRlICJUYWJsZSBvZiBDb250ZW50cyIgaW5mbykpKQogICAgICAg IChjb25jYXQgdGl0bGUgIlxuIgotCSAgICAgICAobWFrZS1zdHJpbmcKLQkJKHN0cmluZy13aWR0 aCB0aXRsZSkKLQkJKGlmIChlcSAocGxpc3QtZ2V0IGluZm8gOmFzY2lpLWNoYXJzZXQpICd1dGYt OCkgP+KUgCA/XykpCisgICAgICAgICAgICAgICAob3JnLWFzY2lpLS1tYWtlLXN0cmluZworICAg ICAgICAgICAgICAgIChvcmctYXNjaWktLXBpeGVsLXdpZHRoIHRpdGxlKQorICAgICAgICAgICAg ICAgIChpZiAoZXEgKHBsaXN0LWdldCBpbmZvIDphc2NpaS1jaGFyc2V0KSAndXRmLTgpID/ilIAg P18pKQogCSAgICAgICAiXG5cbiIpKSkKICAgIChsZXQgKCh0ZXh0LXdpZHRoCiAJICAoaWYga2V5 d29yZCAob3JnLWFzY2lpLS1jdXJyZW50LXRleHQtd2lkdGgga2V5d29yZCBpbmZvKQpAQCAtNzc5 LDggKzc5MSw5IEBACiAgIChsZXQgKCh0aXRsZSAob3JnLWFzY2lpLS10cmFuc2xhdGUgIkxpc3Qg b2YgTGlzdGluZ3MiIGluZm8pKSkKICAgICAoY29uY2F0CiAgICAgIHRpdGxlICJcbiIKLSAgICAg KG1ha2Utc3RyaW5nIChzdHJpbmctd2lkdGggdGl0bGUpCi0JCSAgKGlmIChlcSAocGxpc3QtZ2V0 IGluZm8gOmFzY2lpLWNoYXJzZXQpICd1dGYtOCkgP+KUgCA/XykpCisgICAgIChvcmctYXNjaWkt LW1ha2Utc3RyaW5nCisgICAgICAob3JnLWFzY2lpLS1waXhlbC13aWR0aCB0aXRsZSkKKyAgICAg IChpZiAoZXEgKHBsaXN0LWdldCBpbmZvIDphc2NpaS1jaGFyc2V0KSAndXRmLTgpID/ilIAgP18p KQogICAgICAiXG5cbiIKICAgICAgKGxldCAoKHRleHQtd2lkdGgKIAkgICAgKGlmIGtleXdvcmQg KG9yZy1hc2NpaS0tY3VycmVudC10ZXh0LXdpZHRoIGtleXdvcmQgaW5mbykKQEAgLTgxOSw4ICs4 MzIsOSBAQAogICAobGV0ICgodGl0bGUgKG9yZy1hc2NpaS0tdHJhbnNsYXRlICJMaXN0IG9mIFRh YmxlcyIgaW5mbykpKQogICAgIChjb25jYXQKICAgICAgdGl0bGUgIlxuIgotICAgICAobWFrZS1z dHJpbmcgKHN0cmluZy13aWR0aCB0aXRsZSkKLQkJICAoaWYgKGVxIChwbGlzdC1nZXQgaW5mbyA6 YXNjaWktY2hhcnNldCkgJ3V0Zi04KSA/4pSAID9fKSkKKyAgICAgKG9yZy1hc2NpaS0tbWFrZS1z dHJpbmcKKyAgICAgIChvcmctYXNjaWktLXBpeGVsLXdpZHRoIHRpdGxlKQorICAgICAgKGlmIChl cSAocGxpc3QtZ2V0IGluZm8gOmFzY2lpLWNoYXJzZXQpICd1dGYtOCkgP+KUgCA/XykpCiAgICAg ICJcblxuIgogICAgICAobGV0ICgodGV4dC13aWR0aAogCSAgICAoaWYga2V5d29yZCAob3JnLWFz Y2lpLS1jdXJyZW50LXRleHQtd2lkdGgga2V5d29yZCBpbmZvKQpAQCAtMTAzMyw3ICsxMDQ3LDcg QEAKIAkgICAgIDs7IEZvcm1hdCBUSVRMRS4gIEl0IG1heSBiZSBmaWxsZWQgaWYgaXQgaXMgdG9v IHdpZGUsCiAJICAgICA7OyB0aGF0IGlzIHdpZGVyIHRoYW4gdGhlIHR3byB0aGlyZHMgb2YgdGhl IHRvdGFsIHdpZHRoLgogCSAgICAgKHRpdGxlLWxlbiAobWluIChhcHBseSAjJ21heAotCQkJCSAg ICAobWFwY2FyICMnbGVuZ3RoCisJCQkJICAgIChtYXBjYXIgIydzdHJpbmctd2lkdGgKIAkJCQkJ ICAgIChvcmctc3BsaXQtc3RyaW5nCiAJCQkJCSAgICAgKGNvbmNhdCB0aXRsZSAiXG4iIHN1YnRp dGxlKSAiXG4iKSkpCiAJCQkgICAgICgvICgqIDIgdGV4dC13aWR0aCkgMykpKQpAQCAtMTA0MSwx MiArMTA1NSwxOSBAQAogCSAgICAgKGZvcm1hdHRlZC1zdWJ0aXRsZSAod2hlbiAob3JnLXN0cmlu Zy1udy1wIHN1YnRpdGxlKQogCQkJCSAgIChvcmctYXNjaWktLWZpbGwtc3RyaW5nIHN1YnRpdGxl IHRpdGxlLWxlbiBpbmZvKSkpCiAJICAgICAobGluZQotCSAgICAgIChtYWtlLXN0cmluZwotCSAg ICAgICAobWluICgrIChtYXggdGl0bGUtbGVuCi0JCQkgICAgKHN0cmluZy13aWR0aCAob3IgYXV0 aG9yICIiKSkKLQkJCSAgICAoc3RyaW5nLXdpZHRoIChvciBlbWFpbCAiIikpKQotCQkgICAgICAg MikKLQkJICAgIHRleHQtd2lkdGgpIChpZiB1dGY4cCA/4pSBID9fKSkpKQorICAgICAgICAgICAg ICAob3JnLWFzY2lpLS1tYWtlLXN0cmluZworICAgICAgICAgICAgICAgKGFwcGx5ICMnbWF4Cisg ICAgICAgICAgICAgICAgICAgICAgKG1hcGNhciAjJ29yZy1hc2NpaS0tcGl4ZWwtd2lkdGgKKwkg ICAgICAgICAgICAgICAgICAgICAgKG9yZy1zcGxpdC1zdHJpbmcKKwkJICAgICAgICAgICAgICAg KGNvbmNhdCBmb3JtYXR0ZWQtdGl0bGUgIlxuIgorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgZm9ybWF0dGVkLXN1YnRpdGxlICJcbiIKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIChpZiBhdXRob3IgKGNvbmNhdCBhdXRob3IgIlxuIikgIiIpCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaWYgZW1haWwgKGNvbmNhdCBl bWFpbCAiXG4iKSAiIikpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlxuIikpKQor ICAgICAgICAgICAgICAgKGlmIHV0ZjhwID/ilIEgP18pCisgICAgICAgICAgICAgICAyIHRleHQt d2lkdGgpKSkKKyAgICAgICAgKG1lc3NhZ2UgIiVzIiBsaW5lKQorICAgICAgICAobWVzc2FnZSAi JXMiIGZvcm1hdHRlZC10aXRsZSkKIAkob3JnLWFzY2lpLS1qdXN0aWZ5LWxpbmVzCiAJIChjb25j YXQgbGluZSAiXG4iCiAJCSAodW5sZXNzIHV0ZjhwICJcbiIpCkBAIC0xMDgyLDkgKzExMDMsOSBA QAogCSAgICAobGV0ICgodGl0bGUgKG9yZy1hc2NpaS0tdHJhbnNsYXRlICJGb290bm90ZXMiIGlu Zm8pKSkKIAkgICAgICAoY29uY2F0CiAJICAgICAgIHRpdGxlICJcbiIKLQkgICAgICAgKG1ha2Ut c3RyaW5nCi0JCShzdHJpbmctd2lkdGggdGl0bGUpCi0JCShpZiAoZXEgKHBsaXN0LWdldCBpbmZv IDphc2NpaS1jaGFyc2V0KSAndXRmLTgpID/ilIAgP18pKSkpCisgICAgICAgICAgICAgICAob3Jn LWFzY2lpLS1tYWtlLXN0cmluZworICAgICAgICAgICAgICAgIChvcmctYXNjaWktLXBpeGVsLXdp ZHRoIHRpdGxlKQorICAgICAgICAgICAgICAgIChpZiAoZXEgKHBsaXN0LWdldCBpbmZvIDphc2Np aS1jaGFyc2V0KSAndXRmLTgpID/ilIAgP18pKSkpCiAJICAgICJcblxuIgogCSAgICAobGV0ICgo dGV4dC13aWR0aCAoLSAocGxpc3QtZ2V0IGluZm8gOmFzY2lpLXRleHQtd2lkdGgpCiAJCQkJIGds b2JhbC1tYXJnaW4pKSkKQEAgLTExNTAsNiArMTE3MSwyOSBAQAogICAobGV0ICgoY2hhcnNldCAo aW50ZXJuIChmb3JtYXQgIjolcyIgKHBsaXN0LWdldCBpbmZvIDphc2NpaS1jaGFyc2V0KSkpKSkK ICAgICAob3JnLWV4cG9ydC10cmFuc2xhdGUgcyBjaGFyc2V0IGluZm8pKSkKIAorKGRlZnVuIG9y Zy1hc2NpaS0tbWFrZS1zdHJpbmcgKHB3aWR0aCBpbml0ICZvcHRpb25hbCBhZGp1c3QgbGltaXQp CisgICJSZXR1cm4gYSBuZXdseSBjcmVhdGVkIHN0cmluZyBvZiB3aWR0aCBQV0lEVEgsIHdpdGgg SU5JVCBpbiBlYWNoIGVsZW1lbnQuCitQV0lEVEggaXMgaW4gcGl4ZWwgYW5kIHRoZSBhY3R1YWwg d2lkdGggaXMgYSBtaW5pbXVtIGxvbmdlciB0aGFuCitQV0lEVEgsIHVubGVzcyBlaXRoZXIgQURK VVNUIG9yIExJTUlUIGlzIHNwZWNpZmllZC4gIEFESlVTVCBpcwordGhlIG51bWJlciBvZiBjaGFy YWN0ZXJzIGFkZGVkIG9yIHJlbW92ZWQgZnJvbSB0aGUgc3RyaW5nIGlmIHRoZQordmFsdWUgaXMg cG9zaXRpdmUgb3IgbmVnYXRpdmUgaW50ZWdlci4gIExJTUlUIGlzIHRoZSBtYXhpbXVtCithbGxv d2VkIG51bWJlciBvZiBjaGFyYWN0ZXJzIG9mIHRoZSBzdHJpbmcuIgorICAobGV0KiAoKGluaXQt cHdpZHRoIChvcmctYXNjaWktLXBpeGVsLXdpZHRoIGluaXQpKQorICAgICAgICAgKHdpZHRoICgv ICgrIHB3aWR0aCAoMS0gaW5pdC1wd2lkdGgpKSBpbml0LXB3aWR0aCkpKQorICAgIChpZiAoaW50 ZWdlcnAgYWRqdXN0KSAoc2V0cSB3aWR0aCAoKyB3aWR0aCBhZGp1c3QpKSkKKyAgICAoaWYgKGlu dGVnZXJwIGxpbWl0KSAoc2V0cSB3aWR0aCAobWluIHdpZHRoIChtYXggbGltaXQgMCkpKSkKKyAg ICAobWFrZS1zdHJpbmcgd2lkdGggaW5pdCkpKQorCisoZGVmdW4gb3JnLWFzY2lpLS1waXhlbC13 aWR0aCAob2JqKQorICAiUmV0dXJuIE9CSiBwaXhlbCB3aWR0aCBpbiBkaXNwbGF5LgorT0JKIGlz IHN1cHBvc2VkIHRvIGJlIGEgY2hhcmFjdGVyIG9yIGEgc3RyaW5nLiAgUmV0dXJuZWQgcGl4ZWwK K3dpZHRoIGlzIGJhc2VkIG9uIGZyYW1lIGRlZmF1bHQgZm9udC4iCisgICh3aXRoLXRlbXAtYnVm ZmVyCisgICAgKGluc2VydCBvYmopCisgICAgKHN3aXRjaC10by1idWZmZXIgKGN1cnJlbnQtYnVm ZmVyKSkKKyAgICAoY2FyICh3aW5kb3ctdGV4dC1waXhlbC1zaXplCisgICAgICAgICAgbmlsIDEg KDErIChpZiAoc2VxdWVuY2VwIG9iaikgKGxlbmd0aCBvYmopIDEpKSkpKSkKKwogCiAMCiA7Ozsg VHJhbnNjb2RlIEZ1bmN0aW9ucwpAQCAtMTk2MCw3ICsyMDA0LDkgQEAKIAkJCQkJJ2lkZW50aXR5 IGluZm8gdCkKIAkJCQkgICAgICBjZWxsKSkKIAkJCSBsY29ybmVyKQotCQkgICAgICAgKG1ha2Ut c3RyaW5nICgrIDIgd2lkdGgpIChzdHJpbmctdG8tY2hhciBob3JpeikpCisgICAgICAgICAgICAg ICAgICAgICAgIChvcmctYXNjaWktLW1ha2Utc3RyaW5nCisgICAgICAgICAgICAgICAgICAgICAg ICAoKiAoKyAyIHdpZHRoKSAob3JnLWFzY2lpLS1waXhlbC13aWR0aCA/XHMpKQorICAgICAgICAg ICAgICAgICAgICAgICAgKHN0cmluZy10by1jaGFyIGhvcml6KSkKIAkJICAgICAgIChjb25kCiAJ CQkoKG5vdCAobWVtcSAncmlnaHQgYm9yZGVycykpIG5pbCkKIAkJCSgoZXEgKGNhciAobGFzdCAo b3JnLWVsZW1lbnQtY29udGVudHMgdGFibGUtcm93KSkpIGNlbGwpCg== --Multipart_Sun_May__9_22:57:41_2021-1--