From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Dmitry Gutov Newsgroups: gmane.emacs.bugs Subject: bug#48356: 28.0.50; choose-completion discards the suffix after the completion boundary Date: Sat, 20 Apr 2024 03:12:59 +0300 Message-ID: <616b1604-f21e-482b-9991-68559bcc0545@gutov.dev> References: <18593691-8b7a-facf-68e1-e9d0c106897b@daniel-mendler.de> <868rtcjqk4.fsf@mail.linkov.net> <949a6c3a-9a59-89dd-bdee-c0ec6ee0baa7@daniel-mendler.de> <86r173odnm.fsf@mail.linkov.net> <868rt42wiz.fsf@mail.linkov.net> <39326c56-094c-4074-95d7-8f92f7f927a5@gutov.dev> <82196eff-85e6-44da-89e4-4ead4d72e657@gutov.dev> <5f353cfe-b2d7-43ab-bc65-37a0d306c042@gutov.dev> <865xwov165.fsf@gnu.org> <3833acf2-704e-486b-8e33-54cddf26adc9@gutov.dev> <86le5f99ml.fsf@mail.linkov.net> <11a8e438-128d-47b3-ae6f-c3ce48bb902b@gutov.dev> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="------------OdxMGo0ARm2v6tGKsA8hRSIq" Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="13794"; mail-complaints-to="usenet@ciao.gmane.io" User-Agent: Mozilla Thunderbird Cc: mail@daniel-mendler.de, Juri Linkov , 48356@debbugs.gnu.org, monnier@iro.umontreal.ca, jdtsmith@gmail.com, Visuwesh , Eli Zaretskii To: Spencer Baugh Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Sat Apr 20 02:14:17 2024 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 1rxyMx-0003N3-QE for geb-bug-gnu-emacs@m.gmane-mx.org; Sat, 20 Apr 2024 02:14:17 +0200 Original-Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1rxyMa-000154-SO; Fri, 19 Apr 2024 20:13:53 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1rxyMX-00014X-Um for bug-gnu-emacs@gnu.org; Fri, 19 Apr 2024 20:13:50 -0400 Original-Received: from debbugs.gnu.org ([2001:470:142:5::43]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1rxyMW-0004dn-Rm for bug-gnu-emacs@gnu.org; Fri, 19 Apr 2024 20:13:49 -0400 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1rxyMk-000282-LT for bug-gnu-emacs@gnu.org; Fri, 19 Apr 2024 20:14:02 -0400 X-Loop: help-debbugs@gnu.org Resent-From: Dmitry Gutov Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Sat, 20 Apr 2024 00:14:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 48356 X-GNU-PR-Package: emacs Original-Received: via spool by 48356-submit@debbugs.gnu.org id=B48356.17135720218022 (code B ref 48356); Sat, 20 Apr 2024 00:14:02 +0000 Original-Received: (at 48356) by debbugs.gnu.org; 20 Apr 2024 00:13:41 +0000 Original-Received: from localhost ([127.0.0.1]:32897 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rxyMK-00025A-Us for submit@debbugs.gnu.org; Fri, 19 Apr 2024 20:13:41 -0400 Original-Received: from fout6-smtp.messagingengine.com ([103.168.172.149]:34693) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rxyMA-00023M-64 for 48356@debbugs.gnu.org; Fri, 19 Apr 2024 20:13:33 -0400 Original-Received: from compute6.internal (compute6.nyi.internal [10.202.2.47]) by mailfout.nyi.internal (Postfix) with ESMTP id 5A5FC13800CB; Fri, 19 Apr 2024 20:13:06 -0400 (EDT) Original-Received: from mailfrontend2 ([10.202.2.163]) by compute6.internal (MEProxy); Fri, 19 Apr 2024 20:13:06 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gutov.dev; h=cc :cc: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=1713571986; x=1713658386; bh=btzAgYsTqg lpXPPpVqjiYPE0ROfBeKx2LLK/oGma1Pk=; b=xRQWb6aC7S0dFcmRMeiIuCzzKW QwEubwBL3mhptvV4fFYQ3bpaU3rtJLC2fIPfarEAWPTdPyn3U06ndXvtCHwBX1pX Ea3kN/0qkkziYiMYRSZOhT9gR6ArmbKEEZeHLTPlQaCG4JV6CtQIkUoVm++tGBZl jbP+y0fOhlmeiditI+pcpSHLviHSlPPbpI0YnceLqZBN7WTpjDze3mNd84Lm+Sld DQi6clc7+Zz7KHZeNgQthPPsr8aiIFX11+ER6KeekXGiw+QVGkK5Kp9dAo+zi4zh D2uV9Bo0NSEyq3vZH1eZifEFDmuj2cX51oxXylRRPe3Jyxa7VLidDjdNIUYw== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:cc: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= fm3; t=1713571986; x=1713658386; bh=btzAgYsTqglpXPPpVqjiYPE0ROfB eKx2LLK/oGma1Pk=; b=dZma+2mBsyMx5USZuY6hRGw7NJEA/J13WV3PLziC8KLG TUxMynTzyHziLebKJrqhqcMeNugLzMKQUf7LMAYnVV2G7kMkKutuVOcE1FqChuv4 lE2EfCAEfsgrl40fH9ldzD1emVKtx9ac4SohZkLyHuC5Qb92OfgsAjY2dwp6BM/S 0cDZ1p6LfMZdh4wSV7NA3DxgVwsF9Gg7FvrAIPfhCELGc+WFmw1vIWcMTaMutxyy YyfcoNh5sVOLQSJe7jmSF4FWZTUUlOFintV0YqyxQd+9t0JCSj8iee00/cVDicUs kL+Wjs5VN74K9D/O5itPLIE6JAaz2SK8WePlNZftQg== X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedvledrudekfedgfedvucetufdoteggodetrfdotf fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfqfgfvpdfurfetoffkrfgpnffqhgen uceurghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmne cujfgurheptgfkffggfgfuvfevfhfhjgesmhdtreertddvjeenucfhrhhomhepffhmihht rhihucfiuhhtohhvuceoughmihhtrhihsehguhhtohhvrdguvghvqeenucggtffrrghtth gvrhhnpeehleefudekudduveekieelgfeiffdvkefhkeeljeeujeegueekveffkeejjeev heenucevlhhushhtvghrufhiiigvpedtnecurfgrrhgrmhepmhgrihhlfhhrohhmpegumh hithhrhiesghhuthhovhdruggvvh X-ME-Proxy: Feedback-ID: i0e71465a:Fastmail Original-Received: by mail.messagingengine.com (Postfix) with ESMTPA; Fri, 19 Apr 2024 20:13:02 -0400 (EDT) Content-Language: en-US In-Reply-To: X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-BeenThere: bug-gnu-emacs@gnu.org List-Id: "Bug reports for GNU Emacs, the Swiss army knife of text editors" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Original-Sender: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Xref: news.gmane.io gmane.emacs.bugs:283709 Archived-At: This is a multi-part message in MIME format. --------------OdxMGo0ARm2v6tGKsA8hRSIq Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit On 18/04/2024 17:25, Spencer Baugh wrote: >>> But then the user could change the mind >>> and still select a candidate. This would interfere with the >>> contents of the minibuffer. >> >> Suppose they do. But the list of completions they're shown is for an >> outdated input. Does it really make more sense to erase the current >> input than to insert the completion where it was supposed to go? > > Yeah, this patch changes the behavior in the case of an outdated > *Completions* buffer, and the new behavior is buggy, but I think the old > behavior was also buggy and the new behavior is better. > > Example: In emacs -Q, if I type > > C-x C-f ~/src/emacs/emacs-2 > > I get completions "emacs-28" and "emacs-29" > > Suppose I then type /src (without hitting tab or updating the > *Completions* buffer) so that the minibuffer contains: > > ~/src/emacs/emacs-2/src > > Then I click on one of the completions to choose it. > > Before this patch the minibuffer will contain: > > ~/src/emacs/emacs-28/ > > and after this patch it will contain > > ~/src/emacs/emacs-28//src > > Both of these are wrong IMO, but IMO the second one is closer to > correct, and it's more consistent with the normal case (when > *Completions* is up to date) and with in-buffer completion behavior, so > I think this patch is an improvement and could be installed. > > Still, maybe we can get it to the point where clicking on an outdated > completion makes the minibuffer contain > > ~/src/emacs/emacs-28/src > > instead? Which I think is the correct behavior. > > But I don't think we need to do that before landing this patch. That gave me an idea. With a bit more spaghetti, we can support both this scenario and the others mentioned previously that didn't have field boundaries in the "new" input: Whenever POINT > END, we can re-query the completion boundaries again inside completion-list-insert-choice-function and adjust END. In theory, I guess we'd ideally also recompute the completion entity first (to pass the correct prefix and suffix), but the capf function is not in context anymore. As long as the field boundaries simply looks for chars in passed string, this should work fine. The attached v4 adds a new step and also fixes an issue apparently introduced in 2021 with 0ce2f591ff9 when making minibuffer-completion-table and others buffer-local. The bindings for CTABLE and other 2 vars currently always set them to nil because the variables are looked up right after the current buffer is changed (with-current-buffer standard-output ...). This can affect the completion--done call at the end, reverting it to the previous behavior. But nobody noticed the change, so... --------------OdxMGo0ARm2v6tGKsA8hRSIq Content-Type: text/x-patch; charset=UTF-8; name="base-suffix-v4.diff" Content-Disposition: attachment; filename="base-suffix-v4.diff" Content-Transfer-Encoding: base64 ZGlmZiAtLWdpdCBhL2xpc3AvbWluaWJ1ZmZlci5lbCBiL2xpc3AvbWluaWJ1ZmZlci5lbApp bmRleCBhZDZhMDkyOGNkYS4uNjEzOTU1NzcwMzUgMTAwNjQ0Ci0tLSBhL2xpc3AvbWluaWJ1 ZmZlci5lbAorKysgYi9saXNwL21pbmlidWZmZXIuZWwKQEAgLTExMiwyMCArMTEyLDYgQEAg Y29tcGxldGlvbi1ib3VuZGFyaWVzCiAgICAgKGNvbnMgKG9yIChjYWRyIGJvdW5kYXJpZXMp IDApCiAgICAgICAgICAgKG9yIChjZGRyIGJvdW5kYXJpZXMpIChsZW5ndGggc3VmZml4KSkp KSkKIAotKGRlZnVuIGNvbXBsZXRpb24tYmFzZS1zdWZmaXggKHN0YXJ0IGVuZCBjb2xsZWN0 aW9uIHByZWRpY2F0ZSkKLSAgIlJldHVybiBzdWZmaXggb2YgY29tcGxldGlvbiBvZiBidWZm ZXIgdGV4dCBiZXR3ZWVuIFNUQVJUIGFuZCBFTkQuCi1DT0xMRUNUSU9OIGFuZCBQUkVESUNB VEUgYXJlLCByZXNwZWN0aXZlbHksIHRoZSBjb21wbGV0aW9uJ3MKLWNvbXBsZXRpb24gdGFi bGUgYW5kIHByZWRpY2F0ZSwgYXMgaW4gYGNvbXBsZXRpb24tYm91bmRhcmllcycgKHdoaWNo IHNlZSkuCi1WYWx1ZSBpcyBhIHN1YnN0cmluZyBvZiBidWZmZXIgdGV4dCBiZXR3ZWVuIHBv aW50IGFuZCBFTkQuICBJdCBpcwotdGhlIGNvbXBsZXRpb24gc3VmZml4IHRoYXQgZm9sbG93 cyB0aGUgY29tcGxldGlvbiBib3VuZGFyeS4iCi0gIChsZXQgKChzdWZmaXggKGJ1ZmZlci1z dWJzdHJpbmcgKHBvaW50KSBlbmQpKSkKLSAgICAoc3Vic3RyaW5nCi0gICAgIHN1ZmZpeAot ICAgICAoY2RyIChjb21wbGV0aW9uLWJvdW5kYXJpZXMgKGJ1ZmZlci1zdWJzdHJpbmcgc3Rh cnQgKHBvaW50KSkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbGxlY3Rp b24KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByZWRpY2F0ZQotICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgc3VmZml4KSkpKSkKLQogKGRlZnVuIGNvbXBs ZXRpb24tbWV0YWRhdGEgKHN0cmluZyB0YWJsZSBwcmVkKQogICAiUmV0dXJuIHRoZSBtZXRh ZGF0YSBvZiBlbGVtZW50cyB0byBjb21wbGV0ZSBhdCB0aGUgZW5kIG9mIFNUUklORy4KIFRo aXMgbWV0YWRhdGEgaXMgYW4gYWxpc3QuICBDdXJyZW50bHkgdW5kZXJzdG9vZCBrZXlzIGFy ZToKQEAgLTEzNzcsNyArMTM2Myw3IEBAIGNvbXBsZXRpb24tLXJlcGxhY2UKICAgICAgIChz ZXRxIG5ld3RleHQgKHN1YnN0cmluZyBuZXd0ZXh0IDAgKC0gc3VmZml4LWxlbikpKSkKICAg ICAoZ290by1jaGFyIGJlZykKICAgICAobGV0ICgobGVuZ3RoICgtIGVuZCBiZWcpKSkgICAg ICAgICA7UmVhZCBgZW5kJyBiZWZvcmUgd2UgaW5zZXJ0IHRoZSB0ZXh0LgotICAgICAgKGlu c2VydC1hbmQtaW5oZXJpdCBuZXd0ZXh0KQorICAgICAgKGluc2VydC1iZWZvcmUtbWFya2Vy cy1hbmQtaW5oZXJpdCBuZXd0ZXh0KQogICAgICAgKGRlbGV0ZS1yZWdpb24gKHBvaW50KSAo KyAocG9pbnQpIGxlbmd0aCkpKQogICAgIChmb3J3YXJkLWNoYXIgc3VmZml4LWxlbikpKQog CkBAIC0yNTk4LDE3ICsyNTg0LDIzIEBAIG1pbmlidWZmZXItY29tcGxldGlvbi1oZWxwCiAg ICAgICAgICAgICAgKGJhc2Utc2l6ZSAob3IgKGNkciBsYXN0KSAwKSkKICAgICAgICAgICAg ICAocHJlZml4ICh1bmxlc3MgKHplcm9wIGJhc2Utc2l6ZSkgKHN1YnN0cmluZyBzdHJpbmcg MCBiYXNlLXNpemUpKSkKICAgICAgICAgICAgICAobWluaWJ1ZmZlci1jb21wbGV0aW9uLWJh c2UgKHN1YnN0cmluZyBzdHJpbmcgMCBiYXNlLXNpemUpKQotICAgICAgICAgICAgIChiYXNl LXByZWZpeCAoYnVmZmVyLXN1YnN0cmluZyAobWluaWJ1ZmZlci0tY29tcGxldGlvbi1wcm9t cHQtZW5kKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAo KyBzdGFydCBiYXNlLXNpemUpKSkKLSAgICAgICAgICAgICAoYmFzZS1zdWZmaXggKGNvbmNh dCAoY29tcGxldGlvbi1iYXNlLXN1ZmZpeCBzdGFydCBlbmQKLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtaW5pYnVmZmVyLWNv bXBsZXRpb24tdGFibGUKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBtaW5pYnVmZmVyLWNvbXBsZXRpb24tcHJlZGljYXRlKQot ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChidWZmZXItc3Vic3RyaW5nIGVu ZCAocG9pbnQtbWF4KSkpKQorICAgICAgICAgICAgIChjdGFibGUgbWluaWJ1ZmZlci1jb21w bGV0aW9uLXRhYmxlKQorICAgICAgICAgICAgIChjcHJlZCBtaW5pYnVmZmVyLWNvbXBsZXRp b24tcHJlZGljYXRlKQorICAgICAgICAgICAgIChjcHJvcHMgY29tcGxldGlvbi1leHRyYS1w cm9wZXJ0aWVzKQorICAgICAgICAgICAgIChmaWVsZC1lbmQKKyAgICAgICAgICAgICAgKHNh dmUtZXhjdXJzaW9uCisgICAgICAgICAgICAgICAgKGZvcndhcmQtY2hhcgorICAgICAgICAg ICAgICAgICAoY2RyIChjb21wbGV0aW9uLWJvdW5kYXJpZXMgKGJ1ZmZlci1zdWJzdHJpbmcg c3RhcnQgKHBvaW50KSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGN0YWJsZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgY3ByZWQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIChidWZmZXItc3Vic3RyaW5nIChwb2ludCkgZW5kKSkpKQorICAgICAgICAgICAgICAg IChwb2ludC1tYXJrZXIpKSkKKyAgICAgICAgICAgICAoZmllbGQtY2hhciAoYW5kICg8IGZp ZWxkLWVuZCBlbmQpIChjaGFyLWFmdGVyIGZpZWxkLWVuZCkpKQogICAgICAgICAgICAgIChh bGwtbWQgKGNvbXBsZXRpb24tLW1ldGFkYXRhIChidWZmZXItc3Vic3RyaW5nLW5vLXByb3Bl cnRpZXMKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Rh cnQgKHBvaW50KSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBiYXNlLXNpemUgbWQKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBtaW5pYnVmZmVyLWNvbXBsZXRpb24tdGFibGUKLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBtaW5pYnVmZmVyLWNvbXBsZXRpb24tcHJlZGljYXRl KSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjdGFibGUK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjcHJlZCkpCiAg ICAgICAgICAgICAgKGFubi1mdW4gKGNvbXBsZXRpb24tbWV0YWRhdGEtZ2V0IGFsbC1tZCAn YW5ub3RhdGlvbi1mdW5jdGlvbikpCiAgICAgICAgICAgICAgKGFmZi1mdW4gKGNvbXBsZXRp b24tbWV0YWRhdGEtZ2V0IGFsbC1tZCAnYWZmaXhhdGlvbi1mdW5jdGlvbikpCiAgICAgICAg ICAgICAgKHNvcnQtZnVuIChjb21wbGV0aW9uLW1ldGFkYXRhLWdldCBhbGwtbWQgJ2Rpc3Bs YXktc29ydC1mdW5jdGlvbikpCkBAIC0yNjg3LDM4ICsyNjc5LDMxIEBAIG1pbmlidWZmZXIt Y29tcGxldGlvbi1oZWxwCiAKICAgICAgICAgICAgICAgICAgICAgICAod2l0aC1jdXJyZW50 LWJ1ZmZlciBzdGFuZGFyZC1vdXRwdXQKICAgICAgICAgICAgICAgICAgICAgICAgIChzZXRx LWxvY2FsIGNvbXBsZXRpb24tYmFzZS1wb3NpdGlvbgotICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAobGlzdCAoKyBzdGFydCBiYXNlLXNpemUpCi0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIDs7IEZJWE1FOiBXZSBzaG91bGQgcGF5IGF0dGVudGlvbiB0byBj b21wbGV0aW9uCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDs7IGJvdW5k YXJpZXMgaGVyZSwgYnV0IGN1cnJlbnRseQotICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICA7OyBjb21wbGV0aW9uLWFsbC1jb21wbGV0aW9ucyBkb2VzIG5vdCBnaXZlIHVz IHRoZQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA7OyBuZWNlc3Nhcnkg aW5mb3JtYXRpb24uCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZCkp Ci0gICAgICAgICAgICAgICAgICAgICAgICAoc2V0cS1sb2NhbCBjb21wbGV0aW9uLWJhc2Ut YWZmaXhlcwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxpc3QgYmFz ZS1wcmVmaXggYmFzZS1zdWZmaXgpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgKGxpc3QgKCsgc3RhcnQgYmFzZS1zaXplKSBmaWVsZC1lbmQpKQogICAgICAgICAg ICAgICAgICAgICAgICAgKHNldHEtbG9jYWwgY29tcGxldGlvbi1saXN0LWluc2VydC1jaG9p Y2UtZnVuY3Rpb24KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxldCAoKGN0YWJs ZSBtaW5pYnVmZmVyLWNvbXBsZXRpb24tdGFibGUpCi0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIChjcHJlZCBtaW5pYnVmZmVyLWNvbXBsZXRpb24tcHJlZGljYXRlKQot ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY3Byb3BzIGNvbXBsZXRpb24t ZXh0cmEtcHJvcGVydGllcykpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxh bWJkYSAoc3RhcnQgZW5kIGNob2ljZSkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIChpZiAoYW5kIChzdHJpbmdwIHN0YXJ0KSAoc3RyaW5ncCBlbmQpKQotICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIChwcm9nbgotICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgKGRlbGV0ZS1taW5pYnVmZmVyLWNvbnRlbnRzKQotICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGluc2VydCBzdGFydCBjaG9p Y2UpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA7OyBLZWVwIHBv aW50IGFmdGVyIGNvbXBsZXRpb24gYmVmb3JlIHN1ZmZpeAotICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgKHNhdmUtZXhjdXJzaW9uIChpbnNlcnQKLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNvbXBs ZXRpb24tLW1lcmdlLXN1ZmZpeAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgY2hvaWNlCi0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoMS0gKGxlbmd0aCBjaG9pY2Up KQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgZW5kKSkpKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodW5s ZXNzIChvciAoemVyb3AgKGxlbmd0aCBwcmVmaXgpKQotICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAoZXF1YWwgcHJlZml4Ci0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoYnVmZmVyLXN1YnN0 cmluZy1uby1wcm9wZXJ0aWVzCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgKG1heCAocG9pbnQtbWluKQotICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKC0gc3RhcnQg KGxlbmd0aCBwcmVmaXgpKSkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBzdGFydCkpKQotICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIChtZXNzYWdlICIqQ29tcGxldGlvbnMqIG91dCBvZiBkYXRlIikpCi0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDs7IEZJWE1FOiBVc2UgYG1kJyB0 byBkbyBxdW90aW5nJnRlcm1pbmF0b3IgaGVyZS4KLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgKGNvbXBsZXRpb24tLXJlcGxhY2Ugc3RhcnQgZW5kIGNob2ljZSkpCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodW5sZXNzIChvciAoemVyb3AgKGxl bmd0aCBwcmVmaXgpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgKGVxdWFsIHByZWZpeAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIChidWZmZXItc3Vic3RyaW5nLW5vLXByb3BlcnRpZXMKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1h eCAocG9pbnQtbWluKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICgtIHN0YXJ0IChsZW5ndGggcHJlZml4KSkpCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0KSkp CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtZXNzYWdlICIqQ29tcGxl dGlvbnMqIG91dCBvZiBkYXRlIikpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAod2hlbiAoPiAocG9pbnQpIGVuZCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgOzsgQ29tcGxldGlvbiBzdWZmaXggaGFzIGNoYW5nZWQsIGhhdmUgdG8gYWRhcHQu CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChzZXRxIGVuZCAoKyBlbmQK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjZHIg KGNvbXBsZXRpb24tYm91bmRhcmllcworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgKGNvbmNhdCBwcmVmaXggY2hvaWNlKSBjdGFibGUg Y3ByZWQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIChidWZmZXItc3Vic3RyaW5nIGVuZCAocG9pbnQpKSkpKSkKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgOzsgU3RvcHBlZCBiZWZvcmUgc29tZSBmaWVsZCBi b3VuZGFyeS4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHdoZW4gKD4g KHBvaW50KSBlbmQpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHNl dHEgZmllbGQtY2hhciAoY2hhci1hZnRlciBlbmQpKSkpCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAod2hlbiAoYW5kIGZpZWxkLWNoYXIKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgKD0gKGFyZWYgY2hvaWNlICgxLSAobGVuZ3Ro IGNob2ljZSkpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBmaWVsZC1jaGFyKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg KHNldHEgZW5kICgxKyBlbmQpKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IDs7IEZJWE1FOiBVc2UgYG1kJyB0byBkbyBxdW90aW5nJnRlcm1pbmF0b3IgaGVyZS4KKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjb21wbGV0aW9uLS1yZXBsYWNlIHN0 YXJ0IGVuZCBjaG9pY2UpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobGV0 KiAoKG1pbmlidWZmZXItY29tcGxldGlvbi10YWJsZSBjdGFibGUpCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1pbmlidWZmZXItY29tcGxldGlvbi1wcmVk aWNhdGUgY3ByZWQpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg KGNvbXBsZXRpb24tZXh0cmEtcHJvcGVydGllcyBjcHJvcHMpCkBAIC0yNzI5LDcgKzI3MTQs NyBAQCBtaW5pYnVmZmVyLWNvbXBsZXRpb24taGVscAogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICA7OyBjb21wbGV0aW9uIGlzIG5vdCBmaW5pc2hlZC4KICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNvbXBsZXRpb24tLWRvbmUgcmVzdWx0CiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChp ZiAoZXEgKGNhciBib3VuZHMpIChsZW5ndGggcmVzdWx0KSkKLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdleGFjdCAnZmluaXNo ZWQpKSkpKSkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAnZXhhY3QgJ2ZpbmlzaGVkKSkpKSkpCiAKICAgICAgICAgICAgICAg ICAgICAgICAoZGlzcGxheS1jb21wbGV0aW9uLWxpc3QgY29tcGxldGlvbnMgbmlsIGdyb3Vw LWZ1bikpKSkpCiAgICAgICAgICAgbmlsKSkpCkBAIC00ODc3LDggKzQ4NjIsNyBAQCBtaW5p YnVmZmVyLW5leHQtY29tcGxldGlvbgogICAgICAgICAgIChuZXh0LWxpbmUtY29tcGxldGlv biAob3IgbiAxKSkKICAgICAgICAgKG5leHQtY29tcGxldGlvbiAob3IgbiAxKSkpCiAgICAg ICAod2hlbiBhdXRvLWNob29zZQotICAgICAgICAobGV0ICgoY29tcGxldGlvbi11c2UtYmFz ZS1hZmZpeGVzIHQpCi0gICAgICAgICAgICAgIChjb21wbGV0aW9uLWF1dG8tZGVzZWxlY3Qg bmlsKSkKKyAgICAgICAgKGxldCAoKGNvbXBsZXRpb24tYXV0by1kZXNlbGVjdCBuaWwpKQog ICAgICAgICAgIChjaG9vc2UtY29tcGxldGlvbiBuaWwgdCB0KSkpKSkpCiAKIChkZWZ1biBt aW5pYnVmZmVyLXByZXZpb3VzLWNvbXBsZXRpb24gKCZvcHRpb25hbCBuKQpAQCAtNDkxNiw4 ICs0OTAwLDcgQEAgbWluaWJ1ZmZlci1jaG9vc2UtY29tcGxldGlvbgogbWluaWJ1ZmZlciwg YnV0IGRvbid0IHF1aXQgdGhlIGNvbXBsZXRpb25zIHdpbmRvdy4iCiAgIChpbnRlcmFjdGl2 ZSAiUCIpCiAgICh3aXRoLW1pbmlidWZmZXItY29tcGxldGlvbnMtd2luZG93Ci0gICAgKGxl dCAoKGNvbXBsZXRpb24tdXNlLWJhc2UtYWZmaXhlcyB0KSkKLSAgICAgIChjaG9vc2UtY29t cGxldGlvbiBuaWwgbm8tZXhpdCBuby1xdWl0KSkpKQorICAgIChjaG9vc2UtY29tcGxldGlv biBuaWwgbm8tZXhpdCBuby1xdWl0KSkpCiAKIChkZWZ1biBtaW5pYnVmZmVyLWNob29zZS1j b21wbGV0aW9uLW9yLWV4aXQgKCZvcHRpb25hbCBuby1leGl0IG5vLXF1aXQpCiAgICJDaG9v c2UgdGhlIGNvbXBsZXRpb24gZnJvbSB0aGUgbWluaWJ1ZmZlciBvciBleGl0IHRoZSBtaW5p YnVmZmVyLgpkaWZmIC0tZ2l0IGEvbGlzcC9zaW1wbGUuZWwgYi9saXNwL3NpbXBsZS5lbApp bmRleCBlNDYyOWNlM2RiNy4uNzQxY2Y1OWYzNDQgMTAwNjQ0Ci0tLSBhL2xpc3Avc2ltcGxl LmVsCisrKyBiL2xpc3Avc2ltcGxlLmVsCkBAIC05ODU2LDE2ICs5ODU2LDYgQEAgY29tcGxl dGlvbi1iYXNlLXBvc2l0aW9uCiB3aGVyZSB0aGUgY29tcGxldGlvbiBzaG91bGQgYmUgaW5z ZXJ0ZWQgYW5kIEVORCAoaWYgbm9uLW5pbCkgaXMgdGhlIGVuZAogb2YgdGhlIHRleHQgdG8g cmVwbGFjZS4gIElmIEVORCBpcyBuaWwsIHBvaW50IGlzIHVzZWQgaW5zdGVhZC4iKQogCi0o ZGVmdmFyIGNvbXBsZXRpb24tYmFzZS1hZmZpeGVzIG5pbAotICAiQmFzZSBjb250ZXh0IG9m IHRoZSB0ZXh0IGNvcnJlc3BvbmRpbmcgdG8gdGhlIHNob3duIGNvbXBsZXRpb25zLgotVGhp cyB2YXJpYWJsZSBpcyB1c2VkIGluIHRoZSAqQ29tcGxldGlvbnMqIGJ1ZmZlci4KLUl0cyB2 YWx1ZSBpcyBhIGxpc3Qgb2YgdGhlIGZvcm0gKFBSRUZJWCBTVUZGSVgpIHdoZXJlIFBSRUZJ WCBpcyB0aGUgdGV4dAotYmVmb3JlIHRoZSBwbGFjZSB3aGVyZSBjb21wbGV0aW9uIHNob3Vs ZCBiZSBpbnNlcnRlZCwgYW5kIFNVRkZJWCBpcyB0aGUgdGV4dAotYWZ0ZXIgdGhlIGNvbXBs ZXRpb24uIikKLQotKGRlZnZhciBjb21wbGV0aW9uLXVzZS1iYXNlLWFmZml4ZXMgbmlsCi0g ICJOb24tbmlsIG1lYW5zIHRvIHJlc3RvcmUgb3JpZ2luYWwgcHJlZml4IGFuZCBzdWZmaXgg aW4gdGhlIG1pbmlidWZmZXIuIikKLQogKGRlZnZhciBjb21wbGV0aW9uLWxpc3QtaW5zZXJ0 LWNob2ljZS1mdW5jdGlvbiAjJ2NvbXBsZXRpb24tLXJlcGxhY2UKICAgIkZ1bmN0aW9uIHRv IHVzZSB0byBpbnNlcnQgdGhlIHRleHQgY2hvc2VuIGluICpDb21wbGV0aW9ucyouCiBDYWxs ZWQgd2l0aCB0aHJlZSBhcmd1bWVudHMgKEJFRyBFTkQgVEVYVCksIGl0IHNob3VsZCByZXBs YWNlIHRoZSB0ZXh0CkBAIC0xMDEyNiw3ICsxMDExNiw2IEBAIGNob29zZS1jb21wbGV0aW9u CiAgICh3aXRoLWN1cnJlbnQtYnVmZmVyICh3aW5kb3ctYnVmZmVyIChwb3NuLXdpbmRvdyAo ZXZlbnQtc3RhcnQgZXZlbnQpKSkKICAgICAobGV0ICgoYnVmZmVyIGNvbXBsZXRpb24tcmVm ZXJlbmNlLWJ1ZmZlcikKICAgICAgICAgICAoYmFzZS1wb3NpdGlvbiBjb21wbGV0aW9uLWJh c2UtcG9zaXRpb24pCi0gICAgICAgICAgKGJhc2UtYWZmaXhlcyBjb21wbGV0aW9uLWJhc2Ut YWZmaXhlcykKICAgICAgICAgICAoaW5zZXJ0LWZ1bmN0aW9uIGNvbXBsZXRpb24tbGlzdC1p bnNlcnQtY2hvaWNlLWZ1bmN0aW9uKQogICAgICAgICAgIChjb21wbGV0aW9uLW5vLWF1dG8t ZXhpdCAoaWYgbm8tZXhpdCB0IGNvbXBsZXRpb24tbm8tYXV0by1leGl0KSkKICAgICAgICAg ICAoY2hvaWNlCkBAIC0xMDE1OSwxMyArMTAxNDgsNyBAQCBjaG9vc2UtY29tcGxldGlvbgog ICAgICAgKHdpdGgtY3VycmVudC1idWZmZXIgYnVmZmVyCiAgICAgICAgIChjaG9vc2UtY29t cGxldGlvbi1zdHJpbmcKICAgICAgICAgIGNob2ljZSBidWZmZXIKLSAgICAgICAgIDs7IERv bid0IGFsbG93IGFmZml4ZXMgdG8gcmVwbGFjZSB0aGUgd2hvbGUgYnVmZmVyIHdoZW4gbm90 Ci0gICAgICAgICA7OyBpbiB0aGUgbWluaWJ1ZmZlci4gIFRodXMgY2hlY2sgZm9yIGBjb21w bGV0aW9uLWluLXJlZ2lvbi1tb2RlJwotICAgICAgICAgOzsgdG8gaWdub3JlIG5vbi1uaWwg dmFsdWUgb2YgYGNvbXBsZXRpb24tdXNlLWJhc2UtYWZmaXhlcycgc2V0IGJ5Ci0gICAgICAg ICA7OyBgbWluaWJ1ZmZlci1jaG9vc2UtY29tcGxldGlvbicuCi0gICAgICAgICAob3IgKGFu ZCAobm90IGNvbXBsZXRpb24taW4tcmVnaW9uLW1vZGUpCi0gICAgICAgICAgICAgICAgICBj b21wbGV0aW9uLXVzZS1iYXNlLWFmZml4ZXMgYmFzZS1hZmZpeGVzKQotICAgICAgICAgICAg IGJhc2UtcG9zaXRpb24KKyAgICAgICAgIChvciBiYXNlLXBvc2l0aW9uCiAgICAgICAgICAg ICAgOzsgSWYgYWxsIGVsc2UgZmFpbHMsIGp1c3QgZ3Vlc3MuCiAgICAgICAgICAgICAgKGxp c3QgKGNob29zZS1jb21wbGV0aW9uLWd1ZXNzLWJhc2UtcG9zaXRpb24gY2hvaWNlKSkpCiAg ICAgICAgICBpbnNlcnQtZnVuY3Rpb24pKSkpKQpAQCAtMTAzMjEsMTEgKzEwMzA0LDkgQEAg Y29tcGxldGlvbi1zZXR1cC1mdW5jdGlvbgogICAgICAgICAgICAgICAgIChidWZmZXItc3Vi c3RyaW5nIChtaW5pYnVmZmVyLXByb21wdC1lbmQpIChwb2ludCkpKSkpKSkKICAgICAod2l0 aC1jdXJyZW50LWJ1ZmZlciBzdGFuZGFyZC1vdXRwdXQKICAgICAgIChsZXQgKChiYXNlLXBv c2l0aW9uIGNvbXBsZXRpb24tYmFzZS1wb3NpdGlvbikKLSAgICAgICAgICAgIChiYXNlLWFm Zml4ZXMgY29tcGxldGlvbi1iYXNlLWFmZml4ZXMpCiAgICAgICAgICAgICAoaW5zZXJ0LWZ1 biBjb21wbGV0aW9uLWxpc3QtaW5zZXJ0LWNob2ljZS1mdW5jdGlvbikpCiAgICAgICAgIChj b21wbGV0aW9uLWxpc3QtbW9kZSkKICAgICAgICAgKHNldHEtbG9jYWwgY29tcGxldGlvbi1i YXNlLXBvc2l0aW9uIGJhc2UtcG9zaXRpb24pCi0gICAgICAgIChzZXRxLWxvY2FsIGNvbXBs ZXRpb24tYmFzZS1hZmZpeGVzIGJhc2UtYWZmaXhlcykKICAgICAgICAgKHNldHEtbG9jYWwg Y29tcGxldGlvbi1saXN0LWluc2VydC1jaG9pY2UtZnVuY3Rpb24gaW5zZXJ0LWZ1bikpCiAg ICAgICAoc2V0cS1sb2NhbCBjb21wbGV0aW9uLXJlZmVyZW5jZS1idWZmZXIgbWFpbmJ1ZikK ICAgICAgIChpZiBiYXNlLWRpciAoc2V0cSBkZWZhdWx0LWRpcmVjdG9yeSBiYXNlLWRpcikp Cg== --------------OdxMGo0ARm2v6tGKsA8hRSIq--