GNU bug report logs - #59862
quit-restore per window buffer

Please note: This is a static page, with minimal formatting, updated once a day.
Click here to see this page with the latest information and nicer formatting.

Package: emacs; Reported by: Juri Linkov <juri@HIDDEN>; dated Tue, 6 Dec 2022 17:35:02 UTC; Maintainer for emacs is bug-gnu-emacs@HIDDEN.

Message received at 59862 <at> debbugs.gnu.org:


Received: (at 59862) by debbugs.gnu.org; 13 Oct 2024 06:23:16 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Sun Oct 13 02:23:16 2024
Received: from localhost ([127.0.0.1]:49981 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1szs0a-0004Jl-03
	for submit <at> debbugs.gnu.org; Sun, 13 Oct 2024 02:23:16 -0400
Received: from relay3-d.mail.gandi.net ([217.70.183.195]:45987)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <juri@HIDDEN>) id 1szs0X-0004JR-HA
 for 59862 <at> debbugs.gnu.org; Sun, 13 Oct 2024 02:23:14 -0400
Received: by mail.gandi.net (Postfix) with ESMTPSA id 4EA1060003;
 Sun, 13 Oct 2024 06:22:29 +0000 (UTC)
From: Juri Linkov <juri@HIDDEN>
To: martin rudalics <rudalics@HIDDEN>
Subject: Re: bug#59862: quit-restore per window buffer
In-Reply-To: <4ccff054-18bf-4149-8100-37fd26ea2992@HIDDEN> (martin rudalics's
 message of "Fri, 11 Oct 2024 09:50:44 +0200")
Organization: LINKOV.NET
References: <86fsds8mlm.fsf@HIDDEN>
 <ca1388d2-3481-49c4-8721-42792a399340@HIDDEN>
 <86le2b12ni.fsf@HIDDEN>
 <a972688e-01f6-428e-9dc0-67a45bc9a770@HIDDEN>
 <86y169kafb.fsf@HIDDEN>
 <61c4f245-3dd8-4e24-9c84-7ddd4cfe3c49@HIDDEN>
 <86a5ioo269.fsf@HIDDEN>
 <eb3b984d-dd6a-48e3-88c8-ef2cd146b0b7@HIDDEN>
 <867cdr3xs7.fsf@HIDDEN>
 <3f399d4f-3dd2-4624-b857-e198f70b5565@HIDDEN>
 <86h6csct0w.fsf@HIDDEN>
 <38aedd8d-8966-44eb-afc0-79b4db412483@HIDDEN>
 <86r0b9tqo3.fsf@HIDDEN>
 <22c18c89-b288-4c2e-83ae-11fd7cb1ec24@HIDDEN>
 <86ed78w7t4.fsf@HIDDEN> <86msjefqfa.fsf@HIDDEN>
 <6272a373-1e7c-4df9-b0c2-e535ca3fe49b@HIDDEN>
 <864j5ll110.fsf@HIDDEN>
 <9c103d92-c8f5-4fe7-934f-2f56219475b8@HIDDEN>
 <86msjbyfqx.fsf@HIDDEN>
 <4ccff054-18bf-4149-8100-37fd26ea2992@HIDDEN>
Date: Sun, 13 Oct 2024 09:18:00 +0300
Message-ID: <86a5f8cyqv.fsf@HIDDEN>
User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/31.0.50 (x86_64-pc-linux-gnu)
MIME-Version: 1.0
Content-Type: text/plain
X-GND-Sasl: juri@HIDDEN
X-Spam-Score: -0.7 (/)
X-Debbugs-Envelope-To: 59862
Cc: 59862 <at> debbugs.gnu.org
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.7 (-)

>> +     ((and tab-bar-mode
>
> Wouldn't
>
> (> (frame-parameter frame 'tab-bar-lines) 0)
>
> be more accurate?
>
>> +           (> (length (funcall tab-bar-tabs-function frame)) 1)
>> +           ;; Close the tab with the initial window (bug#59862)
>> +           (or (eq (nth 1 (window-parameter window 'quit-restore)) 'tab)
>> +               ;; or with the dedicated window (bug#71386)
>
> Please always close comments with a period.
>
>> +               (window-dedicated-p window))
>> +           ;; Don't close the tab if more windows were created explicitly
>> +           (< (seq-count (lambda (w) (window-parameter w 'quit-restore))
>> +                         (window-list-1 nil 'nomini))
>
> Shouldn't you give 'window-list-1' a FRAME argument?

Thanks, will fix these.  Also noticed this needs 'car':
(memq (car (window-parameter w 'quit-restore)) '(window tab frame))

Also during testing for a few days I found a problem
that prevents fixing bug#71386:

1. C-x t 2
2. C-x d any_dir
3. mark files with 'm'
4. R other_dir

This unexpectedly closes the tab.  This is because
(window-dedicated-p window) in window-deletable-p
in the patch discovers that the window with the
buffer " *Marked files*" is dedicated while trying
to delete this window.

So probably to fix bug#71386 need to add another condition
that closes the tab only when there are no more windows on the frame:

  (and (window-dedicated-p window)
       (frame-root-window-p window))




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#59862; Package emacs. Full text available.

Message received at 59862 <at> debbugs.gnu.org:


Received: (at 59862) by debbugs.gnu.org; 11 Oct 2024 07:51:14 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Fri Oct 11 03:51:14 2024
Received: from localhost ([127.0.0.1]:33335 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1szAQc-0001Jb-89
	for submit <at> debbugs.gnu.org; Fri, 11 Oct 2024 03:51:14 -0400
Received: from mout.gmx.net ([212.227.15.18]:48713)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <rudalics@HIDDEN>) id 1szAQZ-0001JK-H6
 for 59862 <at> debbugs.gnu.org; Fri, 11 Oct 2024 03:51:12 -0400
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmx.at;
 s=s31663417; t=1728633050; x=1729237850; i=rudalics@HIDDEN;
 bh=ufLmCEjHmqHV2DaNZehamfa3HVNZ/GsdJhjUmFhw/v8=;
 h=X-UI-Sender-Class:Message-ID:Date:MIME-Version:Subject:To:Cc:
 References:From:In-Reply-To:Content-Type:
 Content-Transfer-Encoding:cc:content-transfer-encoding:
 content-type:date:from:message-id:mime-version:reply-to:subject:
 to;
 b=QS0NQeGAVf1A6nCxOtoD8aEVFYOinqEexYbIkLzzTf47Q6uWkujtsfYKikVZnDRr
 3QgAW7E6/Fzs6geBE7Lc3JNiOjzNrj3MwimeUoXIbl2dVf/5sgVhfPeKq2g7tyLuI
 JvZs8jajSSM9EFu5aH7qG99IdJZEVCx5TucnuhLsbaCmNxNfDjqAUOiZEO/2cMIWv
 bcUx/RIGxj7WyGVhp9ou3mmv8OAIiXpNq9z0k2TKLfj6RgR1PEj0m2g5vto/VUnTJ
 HjQLF8CKUlqZdA105+b6IwCBeX+HX25n8l6oEEASKhKtMJEOOG4tBgIe2maUEXLm0
 lgaQ1/tbBsfgBP33aA==
X-UI-Sender-Class: 724b4f7f-cbec-4199-ad4e-598c01a50d3a
Received: from [192.168.31.113] ([46.125.249.110]) by mail.gmx.net (mrgmx004
 [212.227.17.190]) with ESMTPSA (Nemesis) id 1M4JqV-1szRXP06OP-003xeN; Fri, 11
 Oct 2024 09:50:50 +0200
Message-ID: <4ccff054-18bf-4149-8100-37fd26ea2992@HIDDEN>
Date: Fri, 11 Oct 2024 09:50:44 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: bug#59862: quit-restore per window buffer
To: Juri Linkov <juri@HIDDEN>
References: <86fsds8mlm.fsf@HIDDEN>
 <ad0bfe5d-817b-4d11-b82f-90c5a76b4c81@HIDDEN>
 <86plsgrfvu.fsf@HIDDEN>
 <ca1388d2-3481-49c4-8721-42792a399340@HIDDEN>
 <86le2b12ni.fsf@HIDDEN>
 <a972688e-01f6-428e-9dc0-67a45bc9a770@HIDDEN>
 <86y169kafb.fsf@HIDDEN>
 <61c4f245-3dd8-4e24-9c84-7ddd4cfe3c49@HIDDEN>
 <86a5ioo269.fsf@HIDDEN>
 <eb3b984d-dd6a-48e3-88c8-ef2cd146b0b7@HIDDEN>
 <867cdr3xs7.fsf@HIDDEN>
 <3f399d4f-3dd2-4624-b857-e198f70b5565@HIDDEN>
 <86h6csct0w.fsf@HIDDEN>
 <38aedd8d-8966-44eb-afc0-79b4db412483@HIDDEN>
 <86r0b9tqo3.fsf@HIDDEN>
 <22c18c89-b288-4c2e-83ae-11fd7cb1ec24@HIDDEN>
 <86ed78w7t4.fsf@HIDDEN> <86msjefqfa.fsf@HIDDEN>
 <6272a373-1e7c-4df9-b0c2-e535ca3fe49b@HIDDEN>
 <864j5ll110.fsf@HIDDEN>
 <9c103d92-c8f5-4fe7-934f-2f56219475b8@HIDDEN>
 <86msjbyfqx.fsf@HIDDEN>
Content-Language: en-US
From: martin rudalics <rudalics@HIDDEN>
In-Reply-To: <86msjbyfqx.fsf@HIDDEN>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
X-Provags-ID: V03:K1:wS6PE7xgOU5qEpFkUqXnfZinP4KnAQgbU1CiZM0qtopvXrLI4sp
 i5roEIUdAYIRy/+rhKtKJV0SoX8ARfK81yzSp8TnJSpoDDErlkaCabUiyN3ns/qKVYLLr3l
 pydroAXvjojsYfvAmmFJYh8C4Iqz9wLAsReiKWvfT4Y2KzpHcRrAgICT0hah3kXzM4k1CyJ
 Xs54dVdwEdgKfD7C2VUEw==
X-Spam-Flag: NO
UI-OutboundReport: notjunk:1;M01:P0:SBqkEKL+rjM=;CjFtLDD9xqkHFGLIU4Q5S6fSW+7
 dFgozT6f1tOymWwTNwOs0E/skRcXzdiT4BvChrUF8NS2sLQDguPYlr4W46pjg3gXRtwe7sNuA
 BPCp3okJ3wYTbKjAXhmukD1JjCQv0mIY2ZPpjdd7N+ixvkUH2xsWyfbHxKsSb82c3DQtfAYgI
 swisC+KbxUYQ5paX/Lt0paYPuQvROgYxdLbc2wlGEvdIOzTWSr0PSCRkaMxDkeYotA3x0hX06
 sOMct7XrtQiZU7zvG7Sc22nR/QmqGhBNeCU8ZAFZt57Ea+KdqQkEKsN3pmPvKULxsztcQJ6Xl
 B1u1/lK9Zw2LETO3HoqgaM1iToMIginwB6JJVt5ugBp4xlXI3rzQte0UkY/3EDR/H5d2mKgjn
 iI5HsqgxVgznJqmCVCSHefmsDqCh+96Pj8fJqUApD9/5z8KaCs/TRiC+Gtclv7OZkNzi9T5CC
 kwKPLRRqUCPpeS+5e23mVkVNiROHbR1lzWtXYJwhM5d/xUx6VOtzn6Pygn3IkaQBc3giEvINS
 y/8eJrPP5jJ87VO+ZdVdTzl6NLdnK7RMTiJ+GyBOnJI90HuKFJQT48cO4BTq4z7ahEd9b89pk
 UMg2zx08A3JDRsPNs4Bju5IzUIHAJBpT44IctIRlYDMjhOPu6V70IzuLX1xfpbA2Ny7XBB7cy
 geJ0A2FpqA4aAAGE34QITxfFUIIDYKUiJPoHDpWiZQCKzy2ky64kOG4zvCJVE+BJ8HGYO+CvF
 4eYyArJHyvNzSG/vQxpEo5B6Zj1c0FX2vfnR5N5i7OZCiOiP+8VFgAqWmT0Px94HVAgG96WUA
 chKLfsum4ugba+9+lr/6mcYl1OU1AiYAJkMqFAd+u3Wxc=
X-Spam-Score: -0.7 (/)
X-Debbugs-Envelope-To: 59862
Cc: 59862 <at> debbugs.gnu.org
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.7 (-)

 > +     ((and tab-bar-mode

Wouldn't

(> (frame-parameter frame 'tab-bar-lines) 0)

be more accurate?

 > +           (> (length (funcall tab-bar-tabs-function frame)) 1)
 > +           ;; Close the tab with the initial window (bug#59862)
 > +           (or (eq (nth 1 (window-parameter window 'quit-restore)) 'tab)
 > +               ;; or with the dedicated window (bug#71386)

Please always close comments with a period.

 > +               (window-dedicated-p window))
 > +           ;; Don't close the tab if more windows were created explicitly
 > +           (< (seq-count (lambda (w) (window-parameter w 'quit-restore))
 > +                         (window-list-1 nil 'nomini))

Shouldn't you give 'window-list-1' a FRAME argument?

martin





Information forwarded to bug-gnu-emacs@HIDDEN:
bug#59862; Package emacs. Full text available.

Message received at 59862 <at> debbugs.gnu.org:


Received: (at 59862) by debbugs.gnu.org; 10 Oct 2024 18:31:50 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Thu Oct 10 14:31:49 2024
Received: from localhost ([127.0.0.1]:60546 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1syxwz-0001IN-8f
	for submit <at> debbugs.gnu.org; Thu, 10 Oct 2024 14:31:49 -0400
Received: from relay5-d.mail.gandi.net ([217.70.183.197]:59289)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <juri@HIDDEN>) id 1syxwu-0001Hs-Mr
 for 59862 <at> debbugs.gnu.org; Thu, 10 Oct 2024 14:31:45 -0400
Received: by mail.gandi.net (Postfix) with ESMTPSA id 217701C0002;
 Thu, 10 Oct 2024 18:31:04 +0000 (UTC)
From: Juri Linkov <juri@HIDDEN>
To: martin rudalics <rudalics@HIDDEN>
Subject: Re: bug#59862: quit-restore per window buffer
In-Reply-To: <9c103d92-c8f5-4fe7-934f-2f56219475b8@HIDDEN> (martin rudalics's
 message of "Thu, 10 Oct 2024 16:54:02 +0200")
Organization: LINKOV.NET
References: <86fsds8mlm.fsf@HIDDEN>
 <ad0bfe5d-817b-4d11-b82f-90c5a76b4c81@HIDDEN>
 <86plsgrfvu.fsf@HIDDEN>
 <ca1388d2-3481-49c4-8721-42792a399340@HIDDEN>
 <86le2b12ni.fsf@HIDDEN>
 <a972688e-01f6-428e-9dc0-67a45bc9a770@HIDDEN>
 <86y169kafb.fsf@HIDDEN>
 <61c4f245-3dd8-4e24-9c84-7ddd4cfe3c49@HIDDEN>
 <86a5ioo269.fsf@HIDDEN>
 <eb3b984d-dd6a-48e3-88c8-ef2cd146b0b7@HIDDEN>
 <867cdr3xs7.fsf@HIDDEN>
 <3f399d4f-3dd2-4624-b857-e198f70b5565@HIDDEN>
 <86h6csct0w.fsf@HIDDEN>
 <38aedd8d-8966-44eb-afc0-79b4db412483@HIDDEN>
 <86r0b9tqo3.fsf@HIDDEN>
 <22c18c89-b288-4c2e-83ae-11fd7cb1ec24@HIDDEN>
 <86ed78w7t4.fsf@HIDDEN> <86msjefqfa.fsf@HIDDEN>
 <6272a373-1e7c-4df9-b0c2-e535ca3fe49b@HIDDEN>
 <864j5ll110.fsf@HIDDEN>
 <9c103d92-c8f5-4fe7-934f-2f56219475b8@HIDDEN>
Date: Thu, 10 Oct 2024 21:28:22 +0300
Message-ID: <86msjbyfqx.fsf@HIDDEN>
User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/31.0.50 (x86_64-pc-linux-gnu)
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary="=-=-="
X-GND-Sasl: juri@HIDDEN
X-Spam-Score: -0.7 (/)
X-Debbugs-Envelope-To: 59862
Cc: 59862 <at> debbugs.gnu.org
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.7 (-)

--=-=-=
Content-Type: text/plain

>  > Because tabs have priority over frames.  The precedence is:
>  > windows -> tabs -> frames.  When there are many tabs
>  > then quit-restore-window should close tabs, and only
>  > on the last tab should delete the frame.  This is bug#71386,
>  > but first need to finish bug#59862.
>
> So which bug are we discussing here?  Bug#59862 or Bug#71386?

I intended to finish first bug#59862, then to do bug#71386 later.
But really they are closely related, so I fixed them both now
and added corresponding references to bug numbers in comments.

>  >> I don't understand the problem yet.  'window-deletable-p' calls
>  >> 'frame-deletable-p' iff WINDOW is the root window of the frame.  At this
>  >> time we can only either delete the frame or show another buffer in
>  >> WINDOW; tertium non datur.  What am I missing?
>  >
>  > The third first-class citizen is the tab-bar.
>
> But I haven't written anything for the tab-bar code.  This is something
> you have to provide.  Earlier you proposed

So I extended this patch, and now all tests pass successfully with:


--=-=-=
Content-Type: text/x-diff
Content-Disposition: inline; filename=quit-restore-tab.patch

diff --git a/lisp/window.el b/lisp/window.el
index 5822947f2fe..119de1eb38f 100644
--- a/lisp/window.el
+++ b/lisp/window.el
@@ -4143,6 +4143,18 @@ window-deletable-p
 
   (let ((frame (window-frame window)))
     (cond
+     ((and tab-bar-mode
+           ;; Fall back to frame handling in case of less than 2 tabs
+           (> (length (funcall tab-bar-tabs-function frame)) 1)
+           ;; Close the tab with the initial window (bug#59862)
+           (or (eq (nth 1 (window-parameter window 'quit-restore)) 'tab)
+               ;; or with the dedicated window (bug#71386)
+               (window-dedicated-p window))
+           ;; Don't close the tab if more windows were created explicitly
+           (< (seq-count (lambda (w) (window-parameter w 'quit-restore))
+                         (window-list-1 nil 'nomini))
+              2))
+      'tab)
      ((frame-root-window-p window)
       ;; WINDOW's frame can be deleted only if there are other frames
       ;; on the same terminal, and it does not contain the active
@@ -4979,6 +4991,9 @@ window--delete
   (unless (and dedicated-only (not (window-dedicated-p window)))
     (let ((deletable (window-deletable-p window)))
       (cond
+       ((eq deletable 'tab)
+        (tab-bar-close-tab)
+        'tab)
        ((eq deletable 'frame)
 	(let ((frame (window-frame window)))
 	  (cond
@@ -5340,13 +5355,7 @@ quit-restore-window
       ;; If the previously selected window is still alive, select it.
       (window--quit-restore-select-window quit-restore-2))
      ((and (not prev-buffer)
-	   (eq (nth 1 quit-restore) 'tab)
-	   (eq (nth 3 quit-restore) buffer))
-      (tab-bar-close-tab)
-      ;; If the previously selected window is still alive, select it.
-      (window--quit-restore-select-window quit-restore-2))
-     ((and (not prev-buffer)
-	   (or (eq (nth 1 quit-restore) 'frame)
+	   (or (memq (nth 1 quit-restore) '(frame tab))
 	       (and (eq (nth 1 quit-restore) 'window)
 		    ;; If the window has been created on an existing
 		    ;; frame and ended up as the sole window on that
diff --git a/test/lisp/tab-bar-tests.el b/test/lisp/tab-bar-tests.el
index aa8384b24e8..8e8e75ce720 100644
--- a/test/lisp/tab-bar-tests.el
+++ b/test/lisp/tab-bar-tests.el
@@ -42,10 +42,116 @@ tab-bar-tests-close-other-tabs
   (should (eq (length tab-bar-closed-tabs) 0)))
 
 (ert-deftest tab-bar-tests-close-other-tabs-default ()
-  (tab-bar-tests-close-other-tabs nil))
+  (tab-bar-tests-close-other-tabs nil)
+  ;; Clean up tabs afterwards
+  (tab-bar-tabs-set nil))
 
 (ert-deftest tab-bar-tests-close-other-tabs-with-arg ()
-  (dotimes (i 5) (tab-bar-tests-close-other-tabs i)))
+  (dotimes (i 5) (tab-bar-tests-close-other-tabs i))
+  ;; Clean up tabs afterwards
+  (tab-bar-tabs-set nil))
+
+(ert-deftest tab-bar-tests-quit-restore-window ()
+  (let* ((frame-params (when noninteractive
+                         '((window-system . nil)
+                           (tty-type . "linux"))))
+         (pop-up-frame-alist frame-params)
+         (frame-auto-hide-function 'delete-frame))
+
+    ;; 1.1. 'quit-restore-window' should delete the frame
+    ;; from initial window (bug#59862)
+    (progn
+      (should (eq (length (frame-list)) 1))
+      (other-frame-prefix)
+      (info)
+      (should (eq (length (frame-list)) 2))
+      (should (equal (buffer-name) "*info*"))
+      (view-echo-area-messages)
+      (other-window 1)
+      (should (eq (length (window-list)) 2))
+      (should (equal (buffer-name) "*Messages*"))
+      (quit-window)
+      (should (eq (length (window-list)) 1))
+      (should (equal (buffer-name) "*info*"))
+      (quit-window)
+      (should (eq (length (frame-list)) 1)))
+
+    ;; 1.2. 'quit-restore-window' should not delete the frame
+    ;; from non-initial window (bug#59862)
+    (progn
+      (should (eq (length (frame-list)) 1))
+      (other-frame-prefix)
+      (info)
+      (should (eq (length (frame-list)) 2))
+      (should (equal (buffer-name) "*info*"))
+      (view-echo-area-messages)
+      (should (eq (length (window-list)) 2))
+      (should (equal (buffer-name) "*info*"))
+      (quit-window)
+      (should (eq (length (window-list)) 1))
+      (should (eq (length (frame-list)) 2))
+      (should (equal (buffer-name) "*Messages*"))
+      (quit-window)
+      (should (eq (length (frame-list)) 2))
+      ;; Clean up the frame afterwards
+      (delete-frame))
+
+    ;; 2.1. 'quit-restore-window' should close the tab
+    ;; from initial window (bug#59862)
+    (progn
+      (should (eq (length (tab-bar-tabs)) 1))
+      (other-tab-prefix)
+      (info)
+      (should (eq (length (tab-bar-tabs)) 2))
+      (should (equal (buffer-name) "*info*"))
+      (view-echo-area-messages)
+      (other-window 1)
+      (should (eq (length (window-list)) 2))
+      (should (equal (buffer-name) "*Messages*"))
+      (quit-window)
+      (should (eq (length (window-list)) 1))
+      (should (equal (buffer-name) "*info*"))
+      (quit-window)
+      (should (eq (length (tab-bar-tabs)) 1)))
+
+    ;; 2.2. 'quit-restore-window' should not close the tab
+    ;; from non-initial window (bug#59862)
+    (progn
+      (should (eq (length (tab-bar-tabs)) 1))
+      (other-tab-prefix)
+      (info)
+      (should (eq (length (tab-bar-tabs)) 2))
+      (should (equal (buffer-name) "*info*"))
+      (view-echo-area-messages)
+      (should (eq (length (window-list)) 2))
+      (should (equal (buffer-name) "*info*"))
+      (quit-window)
+      (should (eq (length (window-list)) 1))
+      (should (eq (length (tab-bar-tabs)) 2))
+      (should (equal (buffer-name) "*Messages*"))
+      (quit-window)
+      (should (eq (length (tab-bar-tabs)) 2))
+      ;; Clean up the tab afterwards
+      (tab-close))
+
+    ;; 3. Don't delete the frame with dedicated window
+    ;; from the second tab (bug#71386)
+    (with-selected-frame (make-frame frame-params)
+      (switch-to-buffer (generate-new-buffer "test1"))
+      (tab-new)
+      (switch-to-buffer (generate-new-buffer "test2"))
+      (set-window-dedicated-p (selected-window) t)
+      (kill-buffer)
+      (should (eq (length (frame-list)) 2))
+      (should (eq (length (tab-bar-tabs)) 1))
+      ;; But now should delete the frame with dedicated window
+      ;; from the last tab
+      (set-window-dedicated-p (selected-window) t)
+      (kill-buffer)
+      (should (eq (length (frame-list)) 1)))
+
+    ;; Clean up tabs afterwards
+    (tab-bar-tabs-set nil)))
 
 (provide 'tab-bar-tests)
 ;;; tab-bar-tests.el ends here

--=-=-=--




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#59862; Package emacs. Full text available.

Message received at 59862 <at> debbugs.gnu.org:


Received: (at 59862) by debbugs.gnu.org; 10 Oct 2024 14:54:28 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Thu Oct 10 10:54:28 2024
Received: from localhost ([127.0.0.1]:60202 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1syuYd-0006Tz-K7
	for submit <at> debbugs.gnu.org; Thu, 10 Oct 2024 10:54:27 -0400
Received: from mout.gmx.net ([212.227.17.22]:34791)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <rudalics@HIDDEN>) id 1syuYa-0006Tj-T7
 for 59862 <at> debbugs.gnu.org; Thu, 10 Oct 2024 10:54:26 -0400
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmx.at;
 s=s31663417; t=1728572046; x=1729176846; i=rudalics@HIDDEN;
 bh=eC7gqJEPnVYZm9nJn0maAmPxGXg2Xiar4e4JWvT8ssA=;
 h=X-UI-Sender-Class:Message-ID:Date:MIME-Version:Subject:To:Cc:
 References:From:In-Reply-To:Content-Type:
 Content-Transfer-Encoding:cc:content-transfer-encoding:
 content-type:date:from:message-id:mime-version:reply-to:subject:
 to;
 b=ZMpz3T8isIMfAYyxyEeb6tuG8+Ens/P+POHp0KWPFgo5FZzZegLacl2Ehx8UbgCm
 MT8AOwAf5ibhxUsic9Z1z4gJ7jPWtDyZxDDP+pKBL8YpvVw9r0dWLn0pO+j1iu+YR
 Xm+PNzms0z3x7VFD3rfjGuOQfwNgbcG2lwUvwnIpzDPv9i9tLDoyFQCF1hkjyDbAT
 vd78FKyHlw4apxw4UjP//DM6tTLkU7DoR5OB9qqh1O78/EVlpJ/QZih/Nqt7ifsZ2
 Rjq+wdVHghggkysmyMIwSqOPLcEaR/Sm8/pd9GAuC8YrLEnHQ31a02GxMEr77qBU7
 B2caLoQ9NTI8XV3CQg==
X-UI-Sender-Class: 724b4f7f-cbec-4199-ad4e-598c01a50d3a
Received: from [192.168.31.113] ([46.125.249.23]) by mail.gmx.net (mrgmx104
 [212.227.17.168]) with ESMTPSA (Nemesis) id 1Ma20q-1tSWni05MC-00SXxN; Thu, 10
 Oct 2024 16:54:06 +0200
Message-ID: <9c103d92-c8f5-4fe7-934f-2f56219475b8@HIDDEN>
Date: Thu, 10 Oct 2024 16:54:02 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: bug#59862: quit-restore per window buffer
To: Juri Linkov <juri@HIDDEN>
References: <86fsds8mlm.fsf@HIDDEN>
 <743dc4dd-cf09-4c5e-9209-b63a47480e0b@HIDDEN>
 <86msnne7ut.fsf@HIDDEN>
 <ad0bfe5d-817b-4d11-b82f-90c5a76b4c81@HIDDEN>
 <86plsgrfvu.fsf@HIDDEN>
 <ca1388d2-3481-49c4-8721-42792a399340@HIDDEN>
 <86le2b12ni.fsf@HIDDEN>
 <a972688e-01f6-428e-9dc0-67a45bc9a770@HIDDEN>
 <86y169kafb.fsf@HIDDEN>
 <61c4f245-3dd8-4e24-9c84-7ddd4cfe3c49@HIDDEN>
 <86a5ioo269.fsf@HIDDEN>
 <eb3b984d-dd6a-48e3-88c8-ef2cd146b0b7@HIDDEN>
 <867cdr3xs7.fsf@HIDDEN>
 <3f399d4f-3dd2-4624-b857-e198f70b5565@HIDDEN>
 <86h6csct0w.fsf@HIDDEN>
 <38aedd8d-8966-44eb-afc0-79b4db412483@HIDDEN>
 <86r0b9tqo3.fsf@HIDDEN>
 <22c18c89-b288-4c2e-83ae-11fd7cb1ec24@HIDDEN>
 <86ed78w7t4.fsf@HIDDEN> <86msjefqfa.fsf@HIDDEN>
 <6272a373-1e7c-4df9-b0c2-e535ca3fe49b@HIDDEN>
 <864j5ll110.fsf@HIDDEN>
Content-Language: en-US
From: martin rudalics <rudalics@HIDDEN>
In-Reply-To: <864j5ll110.fsf@HIDDEN>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
X-Provags-ID: V03:K1:8eZ10qnOJfUgHxC5wWj4w19xS+Jg4xhr1fjOT+H10WoKRtU9lg1
 08PGBejiPe8MNDfVRrOKGPbHkKXfWB4F5lC8v7LSmuOH/Kuyptn+kHICobOJ/uDXE1kN0AA
 HpGfemarOm8BU8zuWMRSSvSeEAhmXXdwfvj/BeF75f8vjn9O+y/YJND0axAlCICkEIBVl3b
 Ni8rT7hqI3/l8g25c5+Fw==
X-Spam-Flag: NO
UI-OutboundReport: notjunk:1;M01:P0:km94Zc7/Zdw=;TM7H1api+PPEGuWFiaZm0+FWpJU
 50Dpu35HAL1KI+irOzzyMZWR+D5NhDPvyIAD9m4GQuQfcjbycSVW8PpTXV4weuFNBHznbMYOb
 57vMUBZDWJmeJW5Tt/Q2X684IRSNKHi7Je3kNeWLkQBrrcltH9D/HHdQ0SkZEx/lGi5vtoHDu
 jvG2FmEC0+jc1AmhqK4fx6mQtNLSGW60OJXKrX1M/unnChq3Do0HH5s9CeoaQ4ASvwkdj9uV/
 8H7z5aUzTxsY0PP/km4C/7lypny/yGBcIDzgEQrIvgs/y7poR5Dif8Rr3J0yDsNtDm9VC1fCT
 dCKDZh6EqkOMEgPY8INBUzZnqafr1Nh5GOHlY7Ohq2ZIjsatG7dJ14GyzC71J/nRj+9khp+dL
 LQuPXk6xVLaMxhLt4/ZX8IVEsE8TEug7B3BtXplUtPWRG1OMRqNPIk4pp8PuzSwDbKWLNVQgD
 04aAYhEqjKDUcm03fJCHvemx6bwoEob/jkRKUqfCqshJ/8/902TPrg0WYPpqpwiuTGTgV57fY
 CT8tLgla566EW+kL5/EWGvsQeV55BOd9sAqYbAUwyR0IPV5V/75QIPzGxafa+pHvFrVV+9bKp
 UjKgIjVdEsemiae0tQwhSDPyarpSAwEUz4CqKsu2vdfTeSslPZtAmK6Nlf8cI+irfjDfyRqf5
 KUTVcg5mqQKd5zEpHVvFzrGWGmxcKxdCMPSFWfF092hIoQnuZftOncoYTaNqWbLrm2z1sS55+
 npbDW0BDNWUVh6+AU2ZSQLpu2fZMr1CSVolg6NE/kPDOnKShhaiEOn67hMy5LTLhJ1ygcOjV5
 SJWgVqeuqLvAPW5pQlk875+w==
X-Spam-Score: -0.7 (/)
X-Debbugs-Envelope-To: 59862
Cc: 59862 <at> debbugs.gnu.org
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.7 (-)

 > Because tabs have priority over frames.  The precedence is:
 > windows -> tabs -> frames.  When there are many tabs
 > then quit-restore-window should close tabs, and only
 > on the last tab should delete the frame.  This is bug#71386,
 > but first need to finish bug#59862.

So which bug are we discussing here?  Bug#59862 or Bug#71386?

 >> I don't understand the problem yet.  'window-deletable-p' calls
 >> 'frame-deletable-p' iff WINDOW is the root window of the frame.  At this
 >> time we can only either delete the frame or show another buffer in
 >> WINDOW; tertium non datur.  What am I missing?
 >
 > The third first-class citizen is the tab-bar.

But I haven't written anything for the tab-bar code.  This is something
you have to provide.  Earlier you proposed


diff --git a/lisp/window.el b/lisp/window.el
index 58120c919c7..82efb3c40ce 100644
--- a/lisp/window.el
+++ b/lisp/window.el
@@ -4120,6 +4120,11 @@ window-deletable-p

    (let ((frame (window-frame window)))
      (cond
+     ((and (eq (nth 1 (window-parameter window 'quit-restore)) 'tab)
+	   (< (seq-count (lambda (w) (window-parameter w 'quit-restore))
+			 (window-list-1 nil 'nomini))
+	      2))
+      'tab)
       ((frame-root-window-p window)
        ;; WINDOW's frame can be deleted only if there are other frames
        ;; on the same terminal, and it does not contain the active
@@ -4990,6 +4995,9 @@ window--delete
    (unless (and dedicated-only (not (window-dedicated-p window)))
      (let ((deletable (window-deletable-p window)))
        (cond
+       ((eq deletable 'tab)
+	(tab-bar-close-tab)
+	'tab)
         ((eq deletable 'frame)
  	(let ((frame (window-frame window)))
  	  (cond
@@ -5303,10 +5311,8 @@ quit-restore-window
       ((and (not prev-buffer)
  	   (eq (nth 1 quit-restore) 'tab)
  	   (eq (nth 3 quit-restore) buffer)
-	   (< (seq-count (lambda (w) (window-parameter w 'quit-restore))
-		         (window-list-1 nil 'nomini))
-              2))
-      (tab-bar-close-tab)
+	   (window--delete
+	    window nil (memq bury-or-kill '(kill killing))))
        ;; If the previously selected window is still alive, select it.
        (window--quit-restore-select-window quit-restore-2))
       ((and (not prev-buffer)


martin




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#59862; Package emacs. Full text available.

Message received at 59862 <at> debbugs.gnu.org:


Received: (at 59862) by debbugs.gnu.org; 9 Oct 2024 16:23:48 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Wed Oct 09 12:23:48 2024
Received: from localhost ([127.0.0.1]:57444 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1syZTX-0000fV-JV
	for submit <at> debbugs.gnu.org; Wed, 09 Oct 2024 12:23:48 -0400
Received: from relay7-d.mail.gandi.net ([217.70.183.200]:40217)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <juri@HIDDEN>) id 1syZTV-0000f1-6G
 for 59862 <at> debbugs.gnu.org; Wed, 09 Oct 2024 12:23:45 -0400
Received: by mail.gandi.net (Postfix) with ESMTPSA id 0DCB820003;
 Wed,  9 Oct 2024 16:23:27 +0000 (UTC)
From: Juri Linkov <juri@HIDDEN>
To: martin rudalics <rudalics@HIDDEN>
Subject: Re: bug#59862: quit-restore per window buffer
In-Reply-To: <6272a373-1e7c-4df9-b0c2-e535ca3fe49b@HIDDEN> (martin rudalics's
 message of "Wed, 9 Oct 2024 10:46:05 +0200")
Organization: LINKOV.NET
References: <86fsds8mlm.fsf@HIDDEN>
 <743dc4dd-cf09-4c5e-9209-b63a47480e0b@HIDDEN>
 <86msnne7ut.fsf@HIDDEN>
 <ad0bfe5d-817b-4d11-b82f-90c5a76b4c81@HIDDEN>
 <86plsgrfvu.fsf@HIDDEN>
 <ca1388d2-3481-49c4-8721-42792a399340@HIDDEN>
 <86le2b12ni.fsf@HIDDEN>
 <a972688e-01f6-428e-9dc0-67a45bc9a770@HIDDEN>
 <86y169kafb.fsf@HIDDEN>
 <61c4f245-3dd8-4e24-9c84-7ddd4cfe3c49@HIDDEN>
 <86a5ioo269.fsf@HIDDEN>
 <eb3b984d-dd6a-48e3-88c8-ef2cd146b0b7@HIDDEN>
 <867cdr3xs7.fsf@HIDDEN>
 <3f399d4f-3dd2-4624-b857-e198f70b5565@HIDDEN>
 <86h6csct0w.fsf@HIDDEN>
 <38aedd8d-8966-44eb-afc0-79b4db412483@HIDDEN>
 <86r0b9tqo3.fsf@HIDDEN>
 <22c18c89-b288-4c2e-83ae-11fd7cb1ec24@HIDDEN>
 <86ed78w7t4.fsf@HIDDEN> <86msjefqfa.fsf@HIDDEN>
 <6272a373-1e7c-4df9-b0c2-e535ca3fe49b@HIDDEN>
Date: Wed, 09 Oct 2024 19:17:11 +0300
Message-ID: <864j5ll110.fsf@HIDDEN>
User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/31.0.50 (x86_64-pc-linux-gnu)
MIME-Version: 1.0
Content-Type: text/plain
X-GND-Sasl: juri@HIDDEN
X-Spam-Score: -0.7 (/)
X-Debbugs-Envelope-To: 59862
Cc: 59862 <at> debbugs.gnu.org
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.7 (-)

>>
>> (defun tab-bar-window-deletable (window single)
>>    (if (and single (eq (nth 1 (window-parameter window 'quit-restore)) 'tab))
>>        (progn (tab-bar-close-tab) nil)
>>      t))
>>
>> (add-hook 'window-deletable-functions 'tab-bar-window-deletable)
>>
>> But 'window-deletable-functions' is not called at all,
>> because 'window-deletable-p' first checks
>>
>>    (frame-deletable-p (window-frame window))
>>
>> and a single frame with tabs is not deletable.
>
> Why "with tabs" and not just "a single frame is not deletable"?

Because tabs have priority over frames.  The precedence is:
windows -> tabs -> frames.  When there are many tabs
then quit-restore-window should close tabs, and only
on the last tab should delete the frame.  This is bug#71386,
but first need to finish bug#59862.

>> Also instead of 'frame-root-window-p' in 'window-deletable-p'
>> the tab-bar needs to use another code.
>
> I don't understand the problem yet.  'window-deletable-p' calls
> 'frame-deletable-p' iff WINDOW is the root window of the frame.  At this
> time we can only either delete the frame or show another buffer in
> WINDOW; tertium non datur.  What am I missing?

The third first-class citizen is the tab-bar.

Here is the test case that will help to understand the requirements.

1.1. 'quit-restore-window' deletes the frame
2.1. 'quit-restore-window' deletes the tab

Both test cases are identical, and already pass correctly.

1.2. 'quit-restore-window' doesn't delete the frame

passes as well, but its counterpart

2.2. 'quit-restore-window' doesn't delete the tab

fails at the line "FAILS HERE":

```
diff --git a/test/lisp/tab-bar-tests.el b/test/lisp/tab-bar-tests.el
index aa8384b24e8..00fd78cf081 100644
--- a/test/lisp/tab-bar-tests.el
+++ b/test/lisp/tab-bar-tests.el
@@ -42,10 +42,104 @@ tab-bar-tests-close-other-tabs
   (should (eq (length tab-bar-closed-tabs) 0)))
 
 (ert-deftest tab-bar-tests-close-other-tabs-default ()
-  (tab-bar-tests-close-other-tabs nil))
+  (tab-bar-tests-close-other-tabs nil)
+  ;; Clean up tabs afterwards
+  (tab-bar-tabs-set nil))
 
 (ert-deftest tab-bar-tests-close-other-tabs-with-arg ()
-  (dotimes (i 5) (tab-bar-tests-close-other-tabs i)))
+  (dotimes (i 5) (tab-bar-tests-close-other-tabs i))
+  ;; Clean up tabs afterwards
+  (tab-bar-tabs-set nil))
+
+(ert-deftest tab-bar-tests-quit-restore-window ()
+  (let* ((frame-params (when noninteractive
+                         '((window-system . nil)
+                           (tty-type . "linux"))))
+         (pop-up-frame-alist frame-params)
+         (frame-auto-hide-function 'delete-frame))
+
+    ;; 1.1. 'quit-restore-window' deletes the frame
+    (progn
+      (should (eq (length (frame-list)) 1))
+      (other-frame-prefix)
+      (info)
+      (should (eq (length (frame-list)) 2))
+      (should (equal (buffer-name) "*info*"))
+      (view-echo-area-messages)
+      (other-window 1)
+      (should (eq (length (window-list)) 2))
+      (should (equal (buffer-name) "*Messages*"))
+      (quit-window)
+      (should (eq (length (window-list)) 1))
+      (should (equal (buffer-name) "*info*"))
+      (quit-window)
+      (should (eq (length (frame-list)) 1)))
+
+    ;; 1.2. 'quit-restore-window' doesn't delete the frame
+    (progn
+      (should (eq (length (frame-list)) 1))
+      (other-frame-prefix)
+      (info)
+      (should (eq (length (frame-list)) 2))
+      (should (equal (buffer-name) "*info*"))
+      (view-echo-area-messages)
+      (should (eq (length (window-list)) 2))
+      (should (equal (buffer-name) "*info*"))
+      (quit-window)
+      (should (eq (length (window-list)) 1))
+      (should (eq (length (frame-list)) 2))
+      (should (equal (buffer-name) "*Messages*"))
+      (quit-window)
+      (should (eq (length (frame-list)) 2))
+      ;; Clean up the frame afterwards
+      (delete-frame))
+
+    ;; 2.1. 'quit-restore-window' deletes the tab
+    (progn
+      (should (eq (length (tab-bar-tabs)) 1))
+      (other-tab-prefix)
+      (info)
+      (should (eq (length (tab-bar-tabs)) 2))
+      (should (equal (buffer-name) "*info*"))
+      (view-echo-area-messages)
+      (other-window 1)
+      (should (eq (length (window-list)) 2))
+      (should (equal (buffer-name) "*Messages*"))
+      (quit-window)
+      (should (eq (length (window-list)) 1))
+      (should (equal (buffer-name) "*info*"))
+      (quit-window)
+      (should (eq (length (tab-bar-tabs)) 1)))
+
+    ;; 2.2. 'quit-restore-window' doesn't delete the tab
+    (progn
+      (should (eq (length (tab-bar-tabs)) 1))
+      (other-tab-prefix)
+      (info)
+      (should (eq (length (tab-bar-tabs)) 2))
+      (should (equal (buffer-name) "*info*"))
+      (view-echo-area-messages)
+      (should (eq (length (window-list)) 2))
+      (should (equal (buffer-name) "*info*"))
+      (quit-window)
+      (should (eq (length (window-list)) 1))
+      (should (eq (length (tab-bar-tabs)) 2)) ;; FAILS HERE
+      (should (equal (buffer-name) "*Messages*"))
+      (quit-window)
+      (should (eq (length (tab-bar-tabs)) 2))
+      ;; Clean up the tab afterwards
+      (tab-close))
+
+    ;; Clean up tabs afterwards
+    (tab-bar-tabs-set nil)))
 
 (provide 'tab-bar-tests)
 ;;; tab-bar-tests.el ends here
```




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#59862; Package emacs. Full text available.

Message received at 59862 <at> debbugs.gnu.org:


Received: (at 59862) by debbugs.gnu.org; 9 Oct 2024 08:46:25 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Wed Oct 09 04:46:25 2024
Received: from localhost ([127.0.0.1]:55587 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1sySKv-0001J3-HS
	for submit <at> debbugs.gnu.org; Wed, 09 Oct 2024 04:46:25 -0400
Received: from mout.gmx.net ([212.227.15.18]:57713)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <rudalics@HIDDEN>) id 1sySKs-0001Im-Ld
 for 59862 <at> debbugs.gnu.org; Wed, 09 Oct 2024 04:46:24 -0400
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmx.at;
 s=s31663417; t=1728463566; x=1729068366; i=rudalics@HIDDEN;
 bh=HTwuS9eSTBAZUn20YxzcEeCKpX5GLhNmlUITTK9LJ0M=;
 h=X-UI-Sender-Class:Message-ID:Date:MIME-Version:Subject:To:Cc:
 References:From:In-Reply-To:Content-Type:
 Content-Transfer-Encoding:cc:content-transfer-encoding:
 content-type:date:from:message-id:mime-version:reply-to:subject:
 to;
 b=sItRkUtwoMZgb07qE7adGMr/kTFRqOxQU2Sta/0ByO3DAwszMOzu+qRKwxf4Y62o
 vW7PCblUsxn64HoyQqMHGtu0o7q4oN1KlfZbCYtkZ2AGEh1hpSVOf5JayES3jLUgO
 EtzqDQrlmcb4QPZTS9YXGxS2Gem9+sFArTuq/h7zPjTtovuIl/EENPcnL7BvAb0zX
 J21qW4Rr24ubEhL21P/yYxni2t94U4d7TNY+a3NdAadIiAsv5bF7V2H3PUvmXhe9C
 ZYpzZKLNtt3AJp5UHe0YCJNh/zgrj0BzXUuHMM/ky7WVwWhoDO7yj14m0shHRUU86
 2xC5x/KqZmLBDTrFkg==
X-UI-Sender-Class: 724b4f7f-cbec-4199-ad4e-598c01a50d3a
Received: from [192.168.31.113] ([212.95.5.219]) by mail.gmx.net (mrgmx005
 [212.227.17.190]) with ESMTPSA (Nemesis) id 1M8hV5-1t39Id0skL-0011YJ; Wed, 09
 Oct 2024 10:46:06 +0200
Message-ID: <6272a373-1e7c-4df9-b0c2-e535ca3fe49b@HIDDEN>
Date: Wed, 9 Oct 2024 10:46:05 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: bug#59862: quit-restore per window buffer
To: Juri Linkov <juri@HIDDEN>
References: <86fsds8mlm.fsf@HIDDEN>
 <0d01a044-d7d6-456a-9ba9-d987faad4332@HIDDEN>
 <86frthjq4y.fsf@HIDDEN>
 <743dc4dd-cf09-4c5e-9209-b63a47480e0b@HIDDEN>
 <86msnne7ut.fsf@HIDDEN>
 <ad0bfe5d-817b-4d11-b82f-90c5a76b4c81@HIDDEN>
 <86plsgrfvu.fsf@HIDDEN>
 <ca1388d2-3481-49c4-8721-42792a399340@HIDDEN>
 <86le2b12ni.fsf@HIDDEN>
 <a972688e-01f6-428e-9dc0-67a45bc9a770@HIDDEN>
 <86y169kafb.fsf@HIDDEN>
 <61c4f245-3dd8-4e24-9c84-7ddd4cfe3c49@HIDDEN>
 <86a5ioo269.fsf@HIDDEN>
 <eb3b984d-dd6a-48e3-88c8-ef2cd146b0b7@HIDDEN>
 <867cdr3xs7.fsf@HIDDEN>
 <3f399d4f-3dd2-4624-b857-e198f70b5565@HIDDEN>
 <86h6csct0w.fsf@HIDDEN>
 <38aedd8d-8966-44eb-afc0-79b4db412483@HIDDEN>
 <86r0b9tqo3.fsf@HIDDEN>
 <22c18c89-b288-4c2e-83ae-11fd7cb1ec24@HIDDEN>
 <86ed78w7t4.fsf@HIDDEN> <86msjefqfa.fsf@HIDDEN>
Content-Language: en-US
From: martin rudalics <rudalics@HIDDEN>
In-Reply-To: <86msjefqfa.fsf@HIDDEN>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
X-Provags-ID: V03:K1:nMknrlrbcxuBpy2HdCniBt8a4bL3pIdsvbyYaGm4X4Q5Bbbjs+7
 +gKFq+CJasBZo0vt9UrgG3yTOnhTzdtnJZEGmEh20Bl6we3PGfD2aRTBy9kc3iQqeH7pF2v
 g5PVI7fP5Vtv/8Khgms7w6Z0GoMUXjxjdl81rMvLIzFx5lveUqumSZnZ9YSq+BqA8MpRUm2
 iKrUrB9KYb131QXVD2tHQ==
X-Spam-Flag: NO
UI-OutboundReport: notjunk:1;M01:P0:AVhTe4oJTbc=;Y8ZsyjI8bBlJ1tnbiicISkOQhmZ
 slnMKZgEOvUwDpqabzo8m4Ze/zqMHeJe9uXPV/T4dn0nRwDvs6Pbz5G9lbsmhBDFvdi60ehbU
 dZlgaCGnAtLq7/t3yBBrh6rlgwzZGB0TNvhO60XndJ7SZV4wDhAZnJ2GHTXVsMtpOEsZ+2EKM
 hcHQBZuDrgvE9mIdx3QqQlx8qXaoyJ5F1zEqk041rcs7KIaggBbolk/JnSFePdGxuF2d9Kltl
 yBQQQ2dxcQSYcbbNhDXhK+NeceY0uu4Mohz7MC7ZW/mEHL2ndpXHKKx3Ix9CPpV0FA0A1Drb2
 dmK/8Vkssti/oXgh61nEF4lYJu0lJAJ0UJr0CXLOfM0n/KlpsjqfP452kf3nbvpnN6YtBgpIR
 toloE0S/pQOoYB3uOEZa5PdBbLEIZLVljspNR+N/F1o0YOsJS13kqe+MR413aVLcc1DzqJfWK
 djISmVbjdKGaxlAfh5Px7HifnhF070hKKvGR8MbMCYbBmJHnKcyeKLNwjJPB6I46HtEM7Ae6E
 h9KB5cxWzSmtsNqCERlJzldSAj12JZnbnPArwwgbvhagM3NbC26Uf+2J7rvPRZZcRZMkTaoxc
 +vpsFsK+ND4fXpJQky7EYkQlCKi6S9OyFmKrMH+CrZZ0I+oLFUFcNBWOTIuDL79j7Z6wPrfre
 5Nn2Kms0VKEKHvT//niLxuNFGRNWwbVE9maMzD9j20cvwSrmxYKNRphH6o53ijEIQYD4xCszc
 z/ZF16U+WXbDs4wIRi3naOWeE2jWk0SNvB9DlouJCdTmvvJSVOV5Jq4vVKIF1SYZ/LlQwka0R
 uds2fd4TpSRn8IIiTDyJietg==
X-Spam-Score: 2.9 (++)
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:  > > (defun tab-bar-window-deletable (window single) > (if
 (and single (eq (nth 1 (window-parameter window 'quit-restore)) 'tab)) >
 (progn (tab-bar-close-tab) nil) > t)) > > (add-hook 'window-deletabl [...]
 Content analysis details:   (2.9 points, 10.0 required)
 pts rule name              description
 ---- ---------------------- --------------------------------------------------
 0.0 RCVD_IN_VALIDITY_SAFE_BLOCKED RBL: ADMINISTRATOR NOTICE: The
 query to Validity was blocked.  See
 https://knowledge.validity.com/hc/en-us/articles/20961730681243
 for more information.
 [212.227.15.18 listed in sa-trusted.bondedsender.org]
 3.6 RCVD_IN_SBL_CSS        RBL: Received via a relay in Spamhaus SBL-CSS
 [212.95.5.219 listed in zen.spamhaus.org]
 0.0 SPF_HELO_NONE          SPF: HELO does not publish an SPF Record
 -0.7 RCVD_IN_DNSWL_LOW      RBL: Sender listed at https://www.dnswl.org/,
 low trust [212.227.15.18 listed in list.dnswl.org]
 -0.0 RCVD_IN_MSPIKE_H2      RBL: Average reputation (+2)
 [212.227.15.18 listed in wl.mailspike.net]
 -0.0 SPF_PASS               SPF: sender matches SPF record
 0.0 FREEMAIL_FROM          Sender email is commonly abused enduser mail
 provider (rudalics[at]gmx.at)
 0.0 RCVD_IN_VALIDITY_RPBL_BLOCKED RBL: ADMINISTRATOR NOTICE: The
 query to Validity was blocked.  See
 https://knowledge.validity.com/hc/en-us/articles/20961730681243
 for more information.
 [212.227.15.18 listed in bl.score.senderscore.com]
X-Debbugs-Envelope-To: 59862
Cc: 59862 <at> debbugs.gnu.org
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: 1.9 (+)
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:  > > (defun tab-bar-window-deletable (window single) > (if
    (and single (eq (nth 1 (window-parameter window 'quit-restore)) 'tab)) >
   (progn (tab-bar-close-tab) nil) > t)) > > (add-hook 'window-deletabl [...]
    
 
 Content analysis details:   (1.9 points, 10.0 required)
 
  pts rule name              description
 ---- ---------------------- --------------------------------------------------
 -0.0 RCVD_IN_MSPIKE_H2      RBL: Average reputation (+2)
                             [212.227.15.18 listed in wl.mailspike.net]
  0.0 RCVD_IN_VALIDITY_SAFE_BLOCKED RBL: ADMINISTRATOR NOTICE: The
                             query to Validity was blocked.  See
                             https://knowledge.validity.com/hc/en-us/articles/20961730681243
                              for more information.
                             [212.227.15.18 listed in sa-accredit.habeas.com]
  0.0 RCVD_IN_VALIDITY_RPBL_BLOCKED RBL: ADMINISTRATOR NOTICE: The
                             query to Validity was blocked.  See
                             https://knowledge.validity.com/hc/en-us/articles/20961730681243
                              for more information.
                             [212.227.15.18 listed in bl.score.senderscore.com]
 -0.7 RCVD_IN_DNSWL_LOW      RBL: Sender listed at https://www.dnswl.org/,
                             low trust
                             [212.227.15.18 listed in list.dnswl.org]
  3.6 RCVD_IN_SBL_CSS        RBL: Received via a relay in Spamhaus SBL-CSS
                             [212.95.5.219 listed in zen.spamhaus.org]
  0.0 SPF_HELO_NONE          SPF: HELO does not publish an SPF Record
 -0.0 SPF_PASS               SPF: sender matches SPF record
  0.0 FREEMAIL_FROM          Sender email is commonly abused enduser mail
                             provider (rudalics[at]gmx.at)
 -1.0 MAILING_LIST_MULTI     Multiple indicators imply a widely-seen list
                             manager

 >
 > (defun tab-bar-window-deletable (window single)
 >    (if (and single (eq (nth 1 (window-parameter window 'quit-restore)) 'tab))
 >        (progn (tab-bar-close-tab) nil)
 >      t))
 >
 > (add-hook 'window-deletable-functions 'tab-bar-window-deletable)
 >
 > But 'window-deletable-functions' is not called at all,
 > because 'window-deletable-p' first checks
 >
 >    (frame-deletable-p (window-frame window))
 >
 > and a single frame with tabs is not deletable.

Why "with tabs" and not just "a single frame is not deletable"?

 > Also instead of 'frame-root-window-p' in 'window-deletable-p'
 > the tab-bar needs to use another code.

I don't understand the problem yet.  'window-deletable-p' calls
'frame-deletable-p' iff WINDOW is the root window of the frame.  At this
time we can only either delete the frame or show another buffer in
WINDOW; tertium non datur.  What am I missing?

martin




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#59862; Package emacs. Full text available.

Message received at 59862 <at> debbugs.gnu.org:


Received: (at 59862) by debbugs.gnu.org; 8 Oct 2024 18:18:34 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Tue Oct 08 14:18:34 2024
Received: from localhost ([127.0.0.1]:54376 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1syEn4-00063H-6C
	for submit <at> debbugs.gnu.org; Tue, 08 Oct 2024 14:18:34 -0400
Received: from relay5-d.mail.gandi.net ([217.70.183.197]:50645)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <juri@HIDDEN>) id 1syEn1-000632-Tq
 for 59862 <at> debbugs.gnu.org; Tue, 08 Oct 2024 14:18:33 -0400
Received: by mail.gandi.net (Postfix) with ESMTPSA id BE9D31C0004;
 Tue,  8 Oct 2024 18:17:54 +0000 (UTC)
From: Juri Linkov <juri@HIDDEN>
To: martin rudalics <rudalics@HIDDEN>
Subject: Re: bug#59862: quit-restore per window buffer
In-Reply-To: <86ed78w7t4.fsf@HIDDEN> (Juri Linkov's message of "Thu, 
 01 Aug 2024 19:01:59 +0300")
Organization: LINKOV.NET
References: <86fsds8mlm.fsf@HIDDEN>
 <0d01a044-d7d6-456a-9ba9-d987faad4332@HIDDEN>
 <86frthjq4y.fsf@HIDDEN>
 <743dc4dd-cf09-4c5e-9209-b63a47480e0b@HIDDEN>
 <86msnne7ut.fsf@HIDDEN>
 <ad0bfe5d-817b-4d11-b82f-90c5a76b4c81@HIDDEN>
 <86plsgrfvu.fsf@HIDDEN>
 <ca1388d2-3481-49c4-8721-42792a399340@HIDDEN>
 <86le2b12ni.fsf@HIDDEN>
 <a972688e-01f6-428e-9dc0-67a45bc9a770@HIDDEN>
 <86y169kafb.fsf@HIDDEN>
 <61c4f245-3dd8-4e24-9c84-7ddd4cfe3c49@HIDDEN>
 <86a5ioo269.fsf@HIDDEN>
 <eb3b984d-dd6a-48e3-88c8-ef2cd146b0b7@HIDDEN>
 <867cdr3xs7.fsf@HIDDEN>
 <3f399d4f-3dd2-4624-b857-e198f70b5565@HIDDEN>
 <86h6csct0w.fsf@HIDDEN>
 <38aedd8d-8966-44eb-afc0-79b4db412483@HIDDEN>
 <86r0b9tqo3.fsf@HIDDEN>
 <22c18c89-b288-4c2e-83ae-11fd7cb1ec24@HIDDEN>
 <86ed78w7t4.fsf@HIDDEN>
Date: Tue, 08 Oct 2024 20:53:53 +0300
Message-ID: <86msjefqfa.fsf@HIDDEN>
User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/31.0.50 (x86_64-pc-linux-gnu)
MIME-Version: 1.0
Content-Type: text/plain
X-GND-Sasl: juri@HIDDEN
X-Spam-Score: -0.7 (/)
X-Debbugs-Envelope-To: 59862
Cc: 59862 <at> debbugs.gnu.org
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.7 (-)

>> Pushed now.  Lets hope for the best.  Please consider closing Bug#59862.
>
> Thank you!  I'm going to test bug#59862 and bug#71386.

I tried to support this case

C-x t t   ;; other-tab-prefix
C-h i     ;; info
C-h e     ;; view-echo-area-messages
q         ;; quit-window should not close the tab

using the new hook 'window-deletable-functions', but I see no way.
Could you please help.  Here is what I did:

diff --git a/lisp/window.el b/lisp/window.el
index e08680aa392..5b4f642afc9 100644
--- a/lisp/window.el
+++ b/lisp/window.el
@@ -5340,13 +5346,7 @@ quit-restore-window
       ;; If the previously selected window is still alive, select it.
       (window--quit-restore-select-window quit-restore-2))
      ((and (not prev-buffer)
-	   (eq (nth 1 quit-restore) 'tab)
-	   (eq (nth 3 quit-restore) buffer))
-      (tab-bar-close-tab)
-      ;; If the previously selected window is still alive, select it.
-      (window--quit-restore-select-window quit-restore-2))
-     ((and (not prev-buffer)
-	   (or (eq (nth 1 quit-restore) 'frame)
+	   (or (memq (nth 1 quit-restore) '(frame tab))
 	       (and (eq (nth 1 quit-restore) 'window)
 		    ;; If the window has been created on an existing
 		    ;; frame and ended up as the sole window on that

So frame and tab will be handled equally.  Then also code for tab-bar.el:

(defun tab-bar-window-deletable (window single)
  (if (and single (eq (nth 1 (window-parameter window 'quit-restore)) 'tab))
      (progn (tab-bar-close-tab) nil)
    t))

(add-hook 'window-deletable-functions 'tab-bar-window-deletable)

But 'window-deletable-functions' is not called at all,
because 'window-deletable-p' first checks

  (frame-deletable-p (window-frame window))

and a single frame with tabs is not deletable.

Also instead of 'frame-root-window-p' in 'window-deletable-p'
the tab-bar needs to use another code.




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#59862; Package emacs. Full text available.

Message received at 59862 <at> debbugs.gnu.org:


Received: (at 59862) by debbugs.gnu.org; 1 Aug 2024 16:03:20 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Thu Aug 01 12:03:19 2024
Received: from localhost ([127.0.0.1]:51851 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1sZYGt-0000YX-Lq
	for submit <at> debbugs.gnu.org; Thu, 01 Aug 2024 12:03:19 -0400
Received: from relay3-d.mail.gandi.net ([217.70.183.195]:36901)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <juri@HIDDEN>) id 1sZYGq-0000Y9-4R
 for 59862 <at> debbugs.gnu.org; Thu, 01 Aug 2024 12:03:18 -0400
Received: by mail.gandi.net (Postfix) with ESMTPSA id D9C896000A;
 Thu,  1 Aug 2024 16:02:49 +0000 (UTC)
From: Juri Linkov <juri@HIDDEN>
To: martin rudalics <rudalics@HIDDEN>
Subject: Re: bug#59862: quit-restore per window buffer
In-Reply-To: <22c18c89-b288-4c2e-83ae-11fd7cb1ec24@HIDDEN> (martin rudalics's
 message of "Thu, 1 Aug 2024 09:49:52 +0200")
Organization: LINKOV.NET
References: <86fsds8mlm.fsf@HIDDEN> <86r0d4ezdc.fsf@HIDDEN>
 <0d01a044-d7d6-456a-9ba9-d987faad4332@HIDDEN>
 <86frthjq4y.fsf@HIDDEN>
 <743dc4dd-cf09-4c5e-9209-b63a47480e0b@HIDDEN>
 <86msnne7ut.fsf@HIDDEN>
 <ad0bfe5d-817b-4d11-b82f-90c5a76b4c81@HIDDEN>
 <86plsgrfvu.fsf@HIDDEN>
 <ca1388d2-3481-49c4-8721-42792a399340@HIDDEN>
 <86le2b12ni.fsf@HIDDEN>
 <a972688e-01f6-428e-9dc0-67a45bc9a770@HIDDEN>
 <86y169kafb.fsf@HIDDEN>
 <61c4f245-3dd8-4e24-9c84-7ddd4cfe3c49@HIDDEN>
 <86a5ioo269.fsf@HIDDEN>
 <eb3b984d-dd6a-48e3-88c8-ef2cd146b0b7@HIDDEN>
 <867cdr3xs7.fsf@HIDDEN>
 <3f399d4f-3dd2-4624-b857-e198f70b5565@HIDDEN>
 <86h6csct0w.fsf@HIDDEN>
 <38aedd8d-8966-44eb-afc0-79b4db412483@HIDDEN>
 <86r0b9tqo3.fsf@HIDDEN>
 <22c18c89-b288-4c2e-83ae-11fd7cb1ec24@HIDDEN>
Date: Thu, 01 Aug 2024 19:01:59 +0300
Message-ID: <86ed78w7t4.fsf@HIDDEN>
User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/31.0.50 (x86_64-pc-linux-gnu)
MIME-Version: 1.0
Content-Type: text/plain
X-GND-Sasl: juri@HIDDEN
X-Spam-Score: -0.7 (/)
X-Debbugs-Envelope-To: 59862
Cc: 59862 <at> debbugs.gnu.org
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.7 (-)

>> I've tested your previous changes for a long time,
>> and everything works nicely.  I hope your new patch is even
>> better.  However, since it grew to an unmanageable size,
>> I will test it only after you will push it.
>
> Pushed now.  Lets hope for the best.  Please consider closing Bug#59862.

Thank you!  I'm going to test bug#59862 and bug#71386.




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#59862; Package emacs. Full text available.

Message received at 59862 <at> debbugs.gnu.org:


Received: (at 59862) by debbugs.gnu.org; 1 Aug 2024 07:50:32 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Thu Aug 01 03:50:32 2024
Received: from localhost ([127.0.0.1]:50785 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1sZQa0-0003e0-6h
	for submit <at> debbugs.gnu.org; Thu, 01 Aug 2024 03:50:32 -0400
Received: from mout.gmx.net ([212.227.17.22]:50381)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <rudalics@HIDDEN>) id 1sZQZx-0003dn-Mm
 for 59862 <at> debbugs.gnu.org; Thu, 01 Aug 2024 03:50:30 -0400
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmx.at;
 s=s31663417; t=1722498607; x=1723103407; i=rudalics@HIDDEN;
 bh=lVH1KT5oUksepXZoGHIFQ1xmcgrTNtlDGUDJG1xghjs=;
 h=X-UI-Sender-Class:Message-ID:Date:MIME-Version:Subject:To:Cc:
 References:From:In-Reply-To:Content-Type:
 Content-Transfer-Encoding:cc:content-transfer-encoding:
 content-type:date:from:message-id:mime-version:reply-to:subject:
 to;
 b=ndEgYaACTsIYCtrAgRAgdJIwXABtNZ4bIZ67LYEOQVAYb3HdJ9U1Q3uRZUWXqZQm
 3ymBuGt3fmqUwQtlV6ux4+lOoMsSGBJkkoYHW74lWPF1mVlsB+s4hXUfJ4vSAiWwe
 Tokaa4rBHvtOyvPlVUMsbJPCC8MgmX8myml9qxh7OMN+MdzLriC4u/Z4kn/GvepLk
 HMTg6gTAIo6lf7BDVY7Kx+qw6oemnFpR9Wmbq4zGm+p+SDOHaxQ7TEpTMuWcpALYd
 lJ3odWtL90jAqznyZWZVEtKRdXDZbfTkmkRZMi5z9ntaXi+zXUzlGp6AdVJwcq0+B
 5lGHE5Me9dROoIYuvg==
X-UI-Sender-Class: 724b4f7f-cbec-4199-ad4e-598c01a50d3a
Received: from [192.168.31.113] ([212.95.5.37]) by mail.gmx.net (mrgmx105
 [212.227.17.168]) with ESMTPSA (Nemesis) id 1MRmjq-1sfV7U3e3e-00K5yQ; Thu, 01
 Aug 2024 09:50:07 +0200
Message-ID: <c7b4367b-787e-4343-bb35-6304d642579f@HIDDEN>
Date: Thu, 1 Aug 2024 09:50:04 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: bug#59862: quit-restore per window buffer
To: Juri Linkov <juri@HIDDEN>
References: <86fsds8mlm.fsf@HIDDEN> <86plsxmc6d.fsf@HIDDEN>
 <86r0d4ezdc.fsf@HIDDEN>
 <0d01a044-d7d6-456a-9ba9-d987faad4332@HIDDEN>
 <86frthjq4y.fsf@HIDDEN>
 <743dc4dd-cf09-4c5e-9209-b63a47480e0b@HIDDEN>
 <86msnne7ut.fsf@HIDDEN>
 <ad0bfe5d-817b-4d11-b82f-90c5a76b4c81@HIDDEN>
 <86plsgrfvu.fsf@HIDDEN>
 <ca1388d2-3481-49c4-8721-42792a399340@HIDDEN>
 <86le2b12ni.fsf@HIDDEN>
 <a972688e-01f6-428e-9dc0-67a45bc9a770@HIDDEN>
 <86y169kafb.fsf@HIDDEN>
 <61c4f245-3dd8-4e24-9c84-7ddd4cfe3c49@HIDDEN>
 <86a5ioo269.fsf@HIDDEN>
 <eb3b984d-dd6a-48e3-88c8-ef2cd146b0b7@HIDDEN>
 <867cdr3xs7.fsf@HIDDEN>
 <3f399d4f-3dd2-4624-b857-e198f70b5565@HIDDEN>
 <86h6csct0w.fsf@HIDDEN>
 <38aedd8d-8966-44eb-afc0-79b4db412483@HIDDEN>
 <86r0b9tqo3.fsf@HIDDEN> <86plqswxyl.fsf@HIDDEN>
Content-Language: en-US
From: martin rudalics <rudalics@HIDDEN>
In-Reply-To: <86plqswxyl.fsf@HIDDEN>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
X-Provags-ID: V03:K1:KxfC1qKhGwhu+stf4k2govh5q0H36Q6sBHDoe3qGifTzRJnaYNy
 Swgo1D2X20cTmsTtFt4+d0NEnJ9eat7TBufLJfP3AUr+Vfw85wMbcmbJNK3oZg6VGf0W+UH
 VZGu/FkUODTqobE5KaVyfH26CF5TVQZCXt6NeSSjntkG4rWtNP+kpHQjCPs/NB73WxDQGrX
 Y7E2V9yj02gIRkC+E8NGA==
X-Spam-Flag: NO
UI-OutboundReport: notjunk:1;M01:P0:LtmxZpzSR/8=;wRUPmenIBpU6kZoBI1OPTgyPNNF
 a5grvX1aRNW6WyEDC6SeDE1ltHzfuedv5ZevarPDqGZYYG1Xr8ONTzirzfqddbZdbehNTtrBe
 n9I+qM1orYuVHFNE2Rv3NLnJyv/zLMvps5vrRpwmmqxw/JnaCA4+IhEhjOBiA5wPlkTMgJo9H
 RNier7D1A+7p4ima803u73QAh42MvSUsQoBSpOIyufG0l+cjxaRtLQmc8JtNxxMYuQB5Xwx1S
 JnvavY4kYkI2Mu+HEnWWXYW7b8Tbfp6k3CNJmnxNe3+1YyFJeVSn8QPjz+1Q+Q2SNBibTdJia
 fkl0ssGpnmRS2zVZ/vD1vLPsG2xuAWMCdlIH8xR3ezydZHF+Ru/3MGyXnm8ho6nJVig+w+53o
 LZiQnSON9t1yG2x07N5y5Gs9o7JYI6WJFrwcKh21iJf1KTEC6D5qK92zc2XHA9vKmeccq17HN
 0AZWEUK2d39BPaa0ZiMsiCj/CMAk95KBCAqPpfIr3S/2BQrUiUw0rio5YG/6B19QQFg1qugYo
 spwDPuVQqAAGCJfeuA4xsuzl9ppxl+GuFcLdSFH+Tji8ZIZQCxIxQ2T5HsLWfykc7k3sSoU9Y
 R8CWGG9HDqz2TkDLlS0jZcv4vqIfgr8U8OF/di81ndobx7sus8jM4HhC2JXUYc2ut+T81PKdt
 CbIby/r+LOl0evv/rAkDWET5dLMmEaPUlbIeUsb4ixZo7sebQHsoPnD7mzyZ9dkbQQ/s+bWH2
 dQkYuLjfCEpv0HK+YSIESXfLuDouhwUC9Bo/cfmlQJ97OsHYJK5xgxe7X6ngXj3UaxoEoIROz
 R1wcdFWzJ793/b+zQRYs//8Q==
X-Spam-Score: -0.7 (/)
X-Debbugs-Envelope-To: 59862
Cc: 59862 <at> debbugs.gnu.org
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.7 (-)

 > Or maybe will use it for tabs, I don't know, need to try,
 > but not sure if you expect such try before you push or after.

After, by now.

martin




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#59862; Package emacs. Full text available.

Message received at 59862 <at> debbugs.gnu.org:


Received: (at 59862) by debbugs.gnu.org; 1 Aug 2024 07:50:23 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Thu Aug 01 03:50:23 2024
Received: from localhost ([127.0.0.1]:50782 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1sZQZq-0003dd-R7
	for submit <at> debbugs.gnu.org; Thu, 01 Aug 2024 03:50:23 -0400
Received: from mout.gmx.net ([212.227.17.22]:45891)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <rudalics@HIDDEN>) id 1sZQZp-0003dP-17
 for 59862 <at> debbugs.gnu.org; Thu, 01 Aug 2024 03:50:22 -0400
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmx.at;
 s=s31663417; t=1722498595; x=1723103395; i=rudalics@HIDDEN;
 bh=k4/kqCrOY9okVKYIXJbswHPSGFvrT3V+qnfpEg7ZE64=;
 h=X-UI-Sender-Class:Message-ID:Date:MIME-Version:Subject:To:Cc:
 References:From:In-Reply-To:Content-Type:
 Content-Transfer-Encoding:cc:content-transfer-encoding:
 content-type:date:from:message-id:mime-version:reply-to:subject:
 to;
 b=LZwGNPCq9zIQV8+d4icVcQ822M2vNSsYW0gJcxdgU3M7mkG49oyCI1lBaTjS5NA7
 CD54yCme3FF0HfrnJMyw8tPpPHkQNRyjbCN4l0tZAaQsiz27WFl9x46BwiIv0FM30
 P4K6F7QTGhbKpluWqat3OBTVXUiT+L9dNRbVEaCFuBVV/EQxGRh7svqhNxNEyzYbj
 GGmdj7JGeQDTb0X96LKc+27XEkrAHLt73KH6CamodfNSgrMmZG99iSA8rC9SJXWoX
 zyfI4j4y1/WVBOo1eDcaSLbyE7j5yT7eHyr9XeVS3A3ES8LxGBLCvUNZtRqSsq/N1
 JDUncfHPvZSnaRrpEA==
X-UI-Sender-Class: 724b4f7f-cbec-4199-ad4e-598c01a50d3a
Received: from [192.168.31.113] ([212.95.5.37]) by mail.gmx.net (mrgmx104
 [212.227.17.168]) with ESMTPSA (Nemesis) id 1MSc1B-1sfmN00OKn-00PhWh; Thu, 01
 Aug 2024 09:49:55 +0200
Message-ID: <22c18c89-b288-4c2e-83ae-11fd7cb1ec24@HIDDEN>
Date: Thu, 1 Aug 2024 09:49:52 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: bug#59862: quit-restore per window buffer
To: Juri Linkov <juri@HIDDEN>
References: <86fsds8mlm.fsf@HIDDEN>
 <f9eb9bae-6275-4448-9590-e72a56064220@HIDDEN>
 <86plsxmc6d.fsf@HIDDEN> <86r0d4ezdc.fsf@HIDDEN>
 <0d01a044-d7d6-456a-9ba9-d987faad4332@HIDDEN>
 <86frthjq4y.fsf@HIDDEN>
 <743dc4dd-cf09-4c5e-9209-b63a47480e0b@HIDDEN>
 <86msnne7ut.fsf@HIDDEN>
 <ad0bfe5d-817b-4d11-b82f-90c5a76b4c81@HIDDEN>
 <86plsgrfvu.fsf@HIDDEN>
 <ca1388d2-3481-49c4-8721-42792a399340@HIDDEN>
 <86le2b12ni.fsf@HIDDEN>
 <a972688e-01f6-428e-9dc0-67a45bc9a770@HIDDEN>
 <86y169kafb.fsf@HIDDEN>
 <61c4f245-3dd8-4e24-9c84-7ddd4cfe3c49@HIDDEN>
 <86a5ioo269.fsf@HIDDEN>
 <eb3b984d-dd6a-48e3-88c8-ef2cd146b0b7@HIDDEN>
 <867cdr3xs7.fsf@HIDDEN>
 <3f399d4f-3dd2-4624-b857-e198f70b5565@HIDDEN>
 <86h6csct0w.fsf@HIDDEN>
 <38aedd8d-8966-44eb-afc0-79b4db412483@HIDDEN>
 <86r0b9tqo3.fsf@HIDDEN>
Content-Language: en-US
From: martin rudalics <rudalics@HIDDEN>
In-Reply-To: <86r0b9tqo3.fsf@HIDDEN>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
X-Provags-ID: V03:K1:EVdfc8C0iPQDKs6bZrg6EdxDnBdwWcP51+mhkKM22CDUp88LAFN
 jBRuQlnHXHBXIh/ZDaEESvPl9uHECwb+PNfXWVQCpymqkqxy9ea+YGpAOQFAeGaZK9xWIik
 ofhCqhuT3+N09kMfTeGWY59bRxq/fDETtdlvbAkLsPuRfxgrK1T4Zm+CAh3eHJeJCC+xKvH
 P73SUlGNrK85j5OTOQ45A==
X-Spam-Flag: NO
UI-OutboundReport: notjunk:1;M01:P0:cUkyBR8jvy4=;P1iWYjH+MuS0vTvn35aKdXL6zUf
 NLMaAOVt2mUU3WaOppn6yYF9ylLqMFuntWhGVn02xpi1PGSLgF9Ri7V5ppb7tcD0X5cpeL01S
 oQCybi7baCSfM3vxR7lQXW/MPGE1ipdB1yBdItdcUdTYTj8kjQ/matJnZ/aJd/xF0yZfM+ybX
 kfjC/lPJW8hHUVVhBjMriymZROAcRuBlXP9HAVWVqefuQQ2UxULHEEM6aFHQfDy1dN3OepU3j
 tJ7EhblSanIs09aPAoFT+cnYO4pjbS991+k7xtTjb+17sPZFJgsEj9JEZg20NAVO6jSVNdEVO
 sRu/w1NXk2hgSnX1Qg5FtVHpxIfjOJPMG7GlIsaCohMREIeM0OGMwSb1AbzOzQijyaMELi87j
 oQDGc9gv7epqpJoEX9GWM3HEP53lU1O7MsaOBSKqayOVIrdgvtiubGvC2n6Z62tBGFJMOv54j
 QSItrxsYSnfSouRnGZSIvFlplj6AYt7nPiK2dUmp2vGlsdkBGdx8tq34N1eWj7pmcmmS5o3CP
 8Q0tE6mb8WmQdmF5Ax3g0keJuAnSHn+PSkBTSHcU83nVfZVQGiJWR4xXi90BVfAWNxLRWwdgB
 qqFTQzwkIZl77f246e1kammCtwtxH9wsK84837RiRh7En/xDPtgBcPvvIxc/fx8znY04xA4M9
 OxASSYR1/MWwTijGF7jY4RPpGd/EDuuwU4Qh3lRvGLz5U7vKlspoenVsgrs2gHVG1mhTN82pO
 TOebG8b0mobY/PZv7LN1Qegk1AtNJrA3jw8Uxkh90GwZgVC/ozLPcQiB1JozP2YpE0q9kTYNh
 YTKTNp4S48lLkrQbQNFHOz6w==
X-Spam-Score: -0.7 (/)
X-Debbugs-Envelope-To: 59862
Cc: 59862 <at> debbugs.gnu.org
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.7 (-)

 > I've tested your previous changes for a long time,
 > and everything works nicely.  I hope your new patch is even
 > better.  However, since it grew to an unmanageable size,
 > I will test it only after you will push it.

Pushed now.  Lets hope for the best.  Please consider closing Bug#59862.
It has become unmanageable for me as well.

 >> +*** New hook 'window-deletable-functions'.
 >> +This abnormal hook gives its client a way to save a window from getting
 >> +deleted implicitly by functions like 'kill-buffer', 'bury-buffer' and
 >> +'quit-restore-window',
 >
 > Maybe this hook is needed for bug#71386, but I have no plans
 > to use it for tab handling.

Actually, this is the opposite of ...

 >> +*** New option 'quit-restore-window-no-switch'.
 >> +With this option set, 'quit-restore-window' will delete its window more
 >> +aggressively rather than switching to some other buffer in it.
 >
 > This option looks useful for some cases.

... that.  So people may decide which of them suits their needs better.

martin




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#59862; Package emacs. Full text available.

Message received at 59862 <at> debbugs.gnu.org:


Received: (at 59862) by debbugs.gnu.org; 1 Aug 2024 06:43:06 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Thu Aug 01 02:43:06 2024
Received: from localhost ([127.0.0.1]:50710 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1sZPWk-0001mG-E6
	for submit <at> debbugs.gnu.org; Thu, 01 Aug 2024 02:43:06 -0400
Received: from relay3-d.mail.gandi.net ([217.70.183.195]:42277)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <juri@HIDDEN>) id 1sZPWi-0001lk-DO
 for 59862 <at> debbugs.gnu.org; Thu, 01 Aug 2024 02:43:05 -0400
Received: by mail.gandi.net (Postfix) with ESMTPSA id E253260002;
 Thu,  1 Aug 2024 06:42:40 +0000 (UTC)
From: Juri Linkov <juri@HIDDEN>
To: martin rudalics <rudalics@HIDDEN>
Subject: Re: bug#59862: quit-restore per window buffer
In-Reply-To: <86r0b9tqo3.fsf@HIDDEN> (Juri Linkov's message of "Wed, 
 31 Jul 2024 20:30:36 +0300")
Organization: LINKOV.NET
References: <86fsds8mlm.fsf@HIDDEN> <86plsxmc6d.fsf@HIDDEN>
 <86r0d4ezdc.fsf@HIDDEN>
 <0d01a044-d7d6-456a-9ba9-d987faad4332@HIDDEN>
 <86frthjq4y.fsf@HIDDEN>
 <743dc4dd-cf09-4c5e-9209-b63a47480e0b@HIDDEN>
 <86msnne7ut.fsf@HIDDEN>
 <ad0bfe5d-817b-4d11-b82f-90c5a76b4c81@HIDDEN>
 <86plsgrfvu.fsf@HIDDEN>
 <ca1388d2-3481-49c4-8721-42792a399340@HIDDEN>
 <86le2b12ni.fsf@HIDDEN>
 <a972688e-01f6-428e-9dc0-67a45bc9a770@HIDDEN>
 <86y169kafb.fsf@HIDDEN>
 <61c4f245-3dd8-4e24-9c84-7ddd4cfe3c49@HIDDEN>
 <86a5ioo269.fsf@HIDDEN>
 <eb3b984d-dd6a-48e3-88c8-ef2cd146b0b7@HIDDEN>
 <867cdr3xs7.fsf@HIDDEN>
 <3f399d4f-3dd2-4624-b857-e198f70b5565@HIDDEN>
 <86h6csct0w.fsf@HIDDEN>
 <38aedd8d-8966-44eb-afc0-79b4db412483@HIDDEN>
 <86r0b9tqo3.fsf@HIDDEN>
Date: Thu, 01 Aug 2024 09:37:06 +0300
Message-ID: <86plqswxyl.fsf@HIDDEN>
User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/31.0.50 (x86_64-pc-linux-gnu)
MIME-Version: 1.0
Content-Type: text/plain
X-GND-Sasl: juri@HIDDEN
X-Spam-Score: -0.7 (/)
X-Debbugs-Envelope-To: 59862
Cc: 59862 <at> debbugs.gnu.org
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.7 (-)

>> After fixing a few other inconsistencies find my final version of the
>> patch here.  The ChangeLog is below.  If you see no further problems,
>> I'll install it and you can add your changes on top of it.
>
> I've tested your previous changes for a long time,
> and everything works nicely.  I hope your new patch is even
> better.  However, since it grew to an unmanageable size,
> I will test it only after you will push it.
>
>> +*** New hook 'window-deletable-functions'.
>> +This abnormal hook gives its client a way to save a window from getting
>> +deleted implicitly by functions like 'kill-buffer', 'bury-buffer' and
>> +'quit-restore-window',
>
> Maybe this hook is needed for bug#71386, but I have no plans
> to use it for tab handling.

Or maybe will use it for tabs, I don't know, need to try,
but not sure if you expect such try before you push or after.




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#59862; Package emacs. Full text available.

Message received at 59862 <at> debbugs.gnu.org:


Received: (at 59862) by debbugs.gnu.org; 31 Jul 2024 17:32:56 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Wed Jul 31 13:32:56 2024
Received: from localhost ([127.0.0.1]:50239 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1sZDC3-0006nC-Nb
	for submit <at> debbugs.gnu.org; Wed, 31 Jul 2024 13:32:56 -0400
Received: from relay8-d.mail.gandi.net ([217.70.183.201]:43963)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <juri@HIDDEN>) id 1sZDC1-0006mq-7N
 for 59862 <at> debbugs.gnu.org; Wed, 31 Jul 2024 13:32:54 -0400
Received: by mail.gandi.net (Postfix) with ESMTPSA id A304E1BF205;
 Wed, 31 Jul 2024 17:32:30 +0000 (UTC)
From: Juri Linkov <juri@HIDDEN>
To: martin rudalics <rudalics@HIDDEN>
Subject: Re: bug#59862: quit-restore per window buffer
In-Reply-To: <38aedd8d-8966-44eb-afc0-79b4db412483@HIDDEN> (martin rudalics's
 message of "Tue, 30 Jul 2024 10:20:37 +0200")
Organization: LINKOV.NET
References: <86fsds8mlm.fsf@HIDDEN>
 <f9eb9bae-6275-4448-9590-e72a56064220@HIDDEN>
 <86plsxmc6d.fsf@HIDDEN> <86r0d4ezdc.fsf@HIDDEN>
 <0d01a044-d7d6-456a-9ba9-d987faad4332@HIDDEN>
 <86frthjq4y.fsf@HIDDEN>
 <743dc4dd-cf09-4c5e-9209-b63a47480e0b@HIDDEN>
 <86msnne7ut.fsf@HIDDEN>
 <ad0bfe5d-817b-4d11-b82f-90c5a76b4c81@HIDDEN>
 <86plsgrfvu.fsf@HIDDEN>
 <ca1388d2-3481-49c4-8721-42792a399340@HIDDEN>
 <86le2b12ni.fsf@HIDDEN>
 <a972688e-01f6-428e-9dc0-67a45bc9a770@HIDDEN>
 <86y169kafb.fsf@HIDDEN>
 <61c4f245-3dd8-4e24-9c84-7ddd4cfe3c49@HIDDEN>
 <86a5ioo269.fsf@HIDDEN>
 <eb3b984d-dd6a-48e3-88c8-ef2cd146b0b7@HIDDEN>
 <867cdr3xs7.fsf@HIDDEN>
 <3f399d4f-3dd2-4624-b857-e198f70b5565@HIDDEN>
 <86h6csct0w.fsf@HIDDEN>
 <38aedd8d-8966-44eb-afc0-79b4db412483@HIDDEN>
Date: Wed, 31 Jul 2024 20:30:36 +0300
Message-ID: <86r0b9tqo3.fsf@HIDDEN>
User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/31.0.50 (x86_64-pc-linux-gnu)
MIME-Version: 1.0
Content-Type: text/plain
X-GND-Sasl: juri@HIDDEN
X-Spam-Score: -0.7 (/)
X-Debbugs-Envelope-To: 59862
Cc: 59862 <at> debbugs.gnu.org
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.7 (-)

> After fixing a few other inconsistencies find my final version of the
> patch here.  The ChangeLog is below.  If you see no further problems,
> I'll install it and you can add your changes on top of it.

I've tested your previous changes for a long time,
and everything works nicely.  I hope your new patch is even
better.  However, since it grew to an unmanageable size,
I will test it only after you will push it.

> +*** New hook 'window-deletable-functions'.
> +This abnormal hook gives its client a way to save a window from getting
> +deleted implicitly by functions like 'kill-buffer', 'bury-buffer' and
> +'quit-restore-window',

Maybe this hook is needed for bug#71386, but I have no plans
to use it for tab handling.

> +*** New option 'quit-restore-window-no-switch'.
> +With this option set, 'quit-restore-window' will delete its window more
> +aggressively rather than switching to some other buffer in it.

This option looks useful for some cases.




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#59862; Package emacs. Full text available.

Message received at 59862 <at> debbugs.gnu.org:


Received: (at 59862) by debbugs.gnu.org; 30 Jul 2024 08:21:12 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Tue Jul 30 04:21:12 2024
Received: from localhost ([127.0.0.1]:46919 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1sYi6X-0006Fe-8N
	for submit <at> debbugs.gnu.org; Tue, 30 Jul 2024 04:21:12 -0400
Received: from mout.gmx.net ([212.227.17.22]:49359)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <rudalics@HIDDEN>) id 1sYi6S-0006Ew-2g
 for 59862 <at> debbugs.gnu.org; Tue, 30 Jul 2024 04:21:07 -0400
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmx.at;
 s=s31663417; t=1722327638; x=1722932438; i=rudalics@HIDDEN;
 bh=EJzOaoPjLtw25aaZIfV0V+4JsC43KppegYOpA8roAWU=;
 h=X-UI-Sender-Class:Content-Type:Message-ID:Date:MIME-Version:
 Subject:To:Cc:References:From:In-Reply-To:cc:
 content-transfer-encoding:content-type:date:from:message-id:
 mime-version:reply-to:subject:to;
 b=ohyzahp4q20Qdm2/5fSLUAyLLVsiijU8ADSyLM/adMxoxsXU+xRAepkPlXH0BjV0
 x4PhEJJLgbC/wqkUkPHI5IC8P0CRKeUhoBkDUcz9JUHzceyk6gCuBqVVgbYsl0lmO
 RsaDXxlgEN2UT/bu6bxjAVveJHxC0IcMf/C3gVShXRmJmcPW9+tQj6BYEg2AelSsh
 gfENaQJh4oA38jygSG1SUM7uZrBrsbNeVHex9wu/BOGrBVwOh/Cvfly5dwwNVaL5B
 Rb5pm16Xq1B/BR+n/2UJF80IXJ1heTnehLHjkhY5ed/7EJGKYyCu6iLFV/a6ZzRCl
 SD9YRXZkyu6oau7Q+Q==
X-UI-Sender-Class: 724b4f7f-cbec-4199-ad4e-598c01a50d3a
Received: from [192.168.31.113] ([212.95.5.61]) by mail.gmx.net (mrgmx105
 [212.227.17.168]) with ESMTPSA (Nemesis) id 1MQMuX-1sv4Qp2Nnd-00VOiZ; Tue, 30
 Jul 2024 10:20:38 +0200
Content-Type: multipart/mixed; boundary="------------RMD6CDRucDauQxOc8ngRmTVZ"
Message-ID: <38aedd8d-8966-44eb-afc0-79b4db412483@HIDDEN>
Date: Tue, 30 Jul 2024 10:20:37 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: bug#59862: quit-restore per window buffer
To: Juri Linkov <juri@HIDDEN>
References: <86fsds8mlm.fsf@HIDDEN>
 <8243325e-ed03-4e9e-b64f-c8225fb6dc60@HIDDEN>
 <18173da7-32e1-4f14-bbea-9a8fa66af7dd@HIDDEN>
 <f9eb9bae-6275-4448-9590-e72a56064220@HIDDEN>
 <86plsxmc6d.fsf@HIDDEN> <86r0d4ezdc.fsf@HIDDEN>
 <0d01a044-d7d6-456a-9ba9-d987faad4332@HIDDEN>
 <86frthjq4y.fsf@HIDDEN>
 <743dc4dd-cf09-4c5e-9209-b63a47480e0b@HIDDEN>
 <86msnne7ut.fsf@HIDDEN>
 <ad0bfe5d-817b-4d11-b82f-90c5a76b4c81@HIDDEN>
 <86plsgrfvu.fsf@HIDDEN>
 <ca1388d2-3481-49c4-8721-42792a399340@HIDDEN>
 <86le2b12ni.fsf@HIDDEN>
 <a972688e-01f6-428e-9dc0-67a45bc9a770@HIDDEN>
 <86y169kafb.fsf@HIDDEN>
 <61c4f245-3dd8-4e24-9c84-7ddd4cfe3c49@HIDDEN>
 <86a5ioo269.fsf@HIDDEN>
 <eb3b984d-dd6a-48e3-88c8-ef2cd146b0b7@HIDDEN>
 <867cdr3xs7.fsf@HIDDEN>
 <3f399d4f-3dd2-4624-b857-e198f70b5565@HIDDEN>
 <86h6csct0w.fsf@HIDDEN>
Content-Language: en-US
From: martin rudalics <rudalics@HIDDEN>
In-Reply-To: <86h6csct0w.fsf@HIDDEN>
X-Provags-ID: V03:K1:EF7UOoVpRzPKL03RYfTmOYJr1NHRkbKOUZIgbGQ6KQZl1KcfpGT
 tb+8a8skSi+mJYFwBM9aY8oMWvOiO3ZT+xsAo+R1Um3zEwG+SOZfEfW98c5GMre1mVufDMb
 LIDIMy0vuE3Xpz+RULrOgw9Yb34aDNQkrWqkFUsSy8ylsZhmyOtnPYmCqU6kUc7RmzwD2I+
 VDY4TFvJqAORHD19cAWlA==
X-Spam-Flag: NO
UI-OutboundReport: notjunk:1;M01:P0:D7RdHCJyu8M=;e8fsoZ/MiBoR0PlKsmhp8ICtj/6
 XYKDBuZMObVUfXdYNU+7vRVFd01duqHGd9GUr4s1oe+qXTf5Y5Br3EF1cgBx40OrwsDdbxkU7
 ZzbLFLiP0qD6vZ4KM08vFEd0tmbqWqz+a63rjxeKPEFauvIE01EoSE5sKJMrPU88D5xuoPWTk
 xQyL3PUdtX6BaYYIB/o1mvh9eLL5NoOzfbY8k+IgY5pSkCII9XXsohuqFyAQ9uzHrVuao3yy6
 IbhlXkh1H3odjyDG7gRdSYSn+qgGIfMciKDRf3280gUpEpN3pFc7hrLT79+OVjChOR86+S9Yh
 xH9ZMYzvRA/LhRxjr28YrhcGUGLcGGNF5ofZo/ncGDIgYpA85YmjJkxCTqozR4Z33Cgl+lx7G
 xMsNGJgjXqcJzqDC61Du93Mbgl+Gl72XkD60FkATwpqpR3c+IFxKZM/CbJFNdqM5kyYTv0HCp
 GS3S+YYEt/hdSRJivAA9hkG+zL7jUC7QaT2eXI83A5q+ze+pGWKZdjy9UaMc08TdpqwOI8hDh
 uNMipCrXa19glxVUNrJixammKMn7F7t5VzyXp8P3HEd2KEzQXjMuN0vO31ptdr8HUcsoBtaAg
 i+CrXaUhLiJaL+08VXghJLrellcjhGdPygmv3L1XjXYFnryGLAexFLSJ9f/SrSHbjRAbQS/28
 IRIobgAtG4+VDv85sMp12ErMlO0q4kb0Ju4FC/K3BPDX1RjY7b+btL13qs1CzGM2gN50eVMtY
 aczdyNjXQ7S3CB7SRjXrEHJOuP4olXhH7vCBGeNeVIxpfIvmzlpGBDtzzuHA/N+YAUasptVcf
 5zbQdU68nUJJlIt6NHKPp9eA==
X-Spam-Score: -0.7 (/)
X-Debbugs-Envelope-To: 59862
Cc: 59862 <at> debbugs.gnu.org
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.7 (-)

This is a multi-part message in MIME format.
--------------RMD6CDRucDauQxOc8ngRmTVZ
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

 > OTOH, I tried to add the tab case handling to the same places
 > where the frame case is handled, and everything works nicely
 > with this patch applied over your previous patches:

After fixing a few other inconsistencies find my final version of the
patch here.  The ChangeLog is below.  If you see no further problems,
I'll install it and you can add your changes on top of it.

martin

Improve window/buffer handling code

The purpose of these changes is to improve the code handling the
display of buffers in windows, switching to previous and next
buffers in windows and restoring a previous state after quitting
or killing buffers.  In particular it does:

- Add a new window parameter 'quit-restore-prev' so a window can
keep its initial 'quit-restore' parameter and undoing a sequence
of quit window operations becomes more reliable (Bug#59862).

- Optionally have 'kill-buffer' call 'quit-restore-window' for
all windows showing the argument buffer (Bug#59862).

- Add a new hook so it's possible to avoid that a window gets
deleted implicitly by functions like 'kill-buffer' (Bug#71386).

- Add a new option to make 'quit-restore-window' delete windows
more aggressively (Bug#59862).

- Immediately remove killed buffers from all windows' previous
and next buffers.  For windows that are already dead, use a weak
hash table to be used by 'kill-buffer'.  This avoids any special
handling of such windows by the garbage collector.

- Immediately remove 'quit-restore' and 'quit-restore-prev'
window parameters that reference killed buffers.  These
parameters have no more use once their buffers got killed.

- Make sure that internal windows do not have any previous and
next buffers.  This fixes a silly memory leak.

- Make sure that after set_window_buffer and some wset_buffer
calls the buffer now shown in the window does not appear in the
lists of that window's previous and next buffers.  The old
behavior could make functions investigating these lists
erroneously believe that there still existed some other buffer
to switch to.

* src/alloc.c (mark_discard_killed_buffers): Remove function.
(mark_window): No more filter previous and next buffer lists.
* src/window.h (struct window): Move up prev_buffers and
next-buffers in structure; they are now treated by the collector
as usual.
* src/window.c (window_discard_buffer_from_alist)
(window_discard_buffer_from_list)
(window_discard_buffer_from_window)
(window_discard_buffer_from_dead_windows)
(Fwindow_discard_buffer): New functions.
(set_window_buffer): Discard BUFFER from WINDOW's previous and
next buffers.
(make_parent_window): Make sure internal windows have no previous
and next buffers.
(make_window): Don't initialize window's previous and next
buffers, they are handled by allocate_window now.
(Fdelete_window_internal): Add WINDOW to window_dead_windows_table.
(Fset_window_configuration): Remove resurrected window from
window_dead_windows_table.  Make sure buffers set by wset_buffer
calls are not recorded in window's previous and next buffers.
(delete_all_child_windows): Add deleted windows to
window_dead_windows_table.
(window_dead_windows_table): New weak hash table to record dead
windows that are stored in saved window configurations.
* src/buffer.c (Fkill_buffer): Call new function
'window_discard_buffer_from_dead_windows'.
* lisp/window.el (window-deletable-functions): New hook.
(window-deletable-p): Update doc-string.  Run
'window-deletable-functions' (Bug#71386).
(unrecord-window-buffer): New argument ALL.  Move body to
'window-discard-buffer-from-window' so that if ALL is non-nil,
WINDOW's 'quit-restore' and 'quit-restore-prev' parameters get
removed too.
(switch-to-prev-buffer): Don't care about killed buffers here;
'replace-buffer-in-windows' should have done that already.  Use
'unrecord-window-buffer'.
(switch-to-next-buffer): Don't care about killed buffers here;
'replace-buffer-in-windows' should do that now.
(kill-buffer-quit-windows): New option.
(delete-windows-on): Update doc-string.  Handle new option
'kill-buffer-quit-windows'.  Update 'unrecord-window-buffer'
calls.
(replace-buffer-in-windows): Update doc-string.  Handle new
option 'kill-buffer-quit-windows' (Bug#59862).  Update call to
'unrecord-window-buffer'.
(quit-restore-window-no-switch): New option.
(quit-restore-window): Update doc-string.  Handle additional
values of BURY-OR-KILL so to not kill a buffer about to be
killed by the caller.  Handle 'quit-restore-prev' parameter
(Bug#59862).  Handle new option 'quit-restore-window-no-switch'
(Bug#59862).
(quit-windows-on): Update doc-string.  Call 'quit-window-hook'
and call 'quit-restore-window' directly so that the buffer does
not get buried or killed by the latter.  Update
'unrecord-window-buffer' call.
(display-buffer-record-window): Update doc-string.  Handle new
`quit-restore-prev' parameter (Bug#59862).
(switch-to-buffer): Call 'display-buffer-record-window' so a
latter 'quit-restore-window' can use its parameters.
* doc/lispref/windows.texi (Deleting Windows): Describe implicit
deletion of windows and new hook 'window-deletable-functions'.
(Buffers and Windows): Update description of
'replace-buffer-in-windows'.  Describe new option
'kill-buffer-quit-windows'.
(Quitting Windows): Describe 'quit-restore-prev' parameter and
new option 'quit-restore-window-no-switch'.  Update description
of 'quit-restore-window'.
(Window Parameters): Mention 'quit-restore-prev' parameter.
* etc/NEWS: Add entries for 'window-deletable-functions',
'kill-buffer-quit-windows', 'quit-restore-window-no-switch'.
mention new parameter 'quit-restore-prev' and new argument
values for 'quit-restore-window'.
--------------RMD6CDRucDauQxOc8ngRmTVZ
Content-Type: text/x-patch; charset=UTF-8; name="window-buffer-changes.diff"
Content-Disposition: attachment; filename="window-buffer-changes.diff"
Content-Transfer-Encoding: base64

ZGlmZiAtLWdpdCBhL2RvYy9saXNwcmVmL3dpbmRvd3MudGV4aSBiL2RvYy9saXNwcmVmL3dp
bmRvd3MudGV4aQppbmRleCBmNTk2M2Q5ODRlOS4uNjU2YTQ0ZGZjYmYgMTAwNjQ0Ci0tLSBh
L2RvYy9saXNwcmVmL3dpbmRvd3MudGV4aQorKysgYi9kb2MvbGlzcHJlZi93aW5kb3dzLnRl
eGkKQEAgLTE2NDcsNiArMTY0Nyw0NSBAQCBEZWxldGluZyBXaW5kb3dzCiBhcmUgdGhlIG9w
cG9zaXRlIG9mIHdoYXQgdGhleSBhcmUgaW4gdGhvc2Ugb3RoZXIgZnVuY3Rpb25zLgogQGVu
ZCBkZWZmbgogCitAY2luZGV4IGltcGxpY2l0IGRlbGV0aW9uIG9mIHdpbmRvd3MKK0BjaW5k
ZXggZGVsZXRpbmcgd2luZG93cyBpbXBsaWNpdGx5CisKKyAgVGhlIGFib3ZlIGNvbW1hbmRz
IGRlbGV0ZSB3aW5kb3dzIGV4cGxpY2l0bHkuICBIb3dldmVyLCBFbWFjcyBtYXkgYWxzbwor
ZGVsZXRlIGEgd2luZG93IGltcGxpY2l0bHkgd2hlbiBpdCB0aGlua3MgdGhhdCBpdCdzIG1v
cmUgaW50dWl0aXZlIHRvCitlbGltaW5hdGUgaXQgcmF0aGVyIHRoYW4gc2hvd2luZyBzb21l
IHVucmVsYXRlZCBidWZmZXIgaW4gaXQuICBGdW5jdGlvbnMKK3RoYXQgbWF5IGRlbGV0ZSB3
aW5kb3dzIGltcGxpY2l0bHkgYXJlIEBjb2Rle2tpbGwtYnVmZmVyfQorKEBweHJlZntLaWxs
aW5nIEJ1ZmZlcnN9KSwgQGNvZGV7cXVpdC1yZXN0b3JlLXdpbmRvd30gKEBweHJlZntRdWl0
dGluZworV2luZG93c30pIGFuZCBAY29kZXtidXJ5LWJ1ZmZlcn0gKEBweHJlZntCdWZmZXIg
TGlzdH0pLiAgU29tZSBvZiB0aGVzZQorZGVsZXRlIGEgd2luZG93IGlmIGFuZCBvbmx5IGlm
IHRoYXQgd2luZG93IGlzIGRlZGljYXRlZCB0byBpdHMgYnVmZmVyCisoQHB4cmVme0RlZGlj
YXRlZCBXaW5kb3dzfSkuICBPdGhlcnMgZGVsZXRlIGEgd2luZG93IHdoZW4gdGhhdCB3aW5k
b3cKK2hhcyBiZWVuIGNyZWF0ZWQgYnkgQGNvZGV7ZGlzcGxheS1idWZmZXJ9IChAcHhyZWZ7
RGlzcGxheWluZyBCdWZmZXJzfSkuCitTb21lIHdpbGwgYWxzbyB0cnkgdG8gZGVsZXRlIGEg
d2luZG93J3MgZnJhbWUgdG9nZXRoZXIgd2l0aCB0aGUgd2luZG93LAorcHJvdmlkZWQgdGhl
cmUgYXJlIG90aGVyIGZyYW1lcyBvbiB0aGUgc2FtZSB0ZXJtaW5hbCBhbmQgdGhlIGZyYW1l
IGRvZXMKK25vdCBob3N0IHRoZSBhY3RpdmUgbWluaWJ1ZmZlciB3aW5kb3cuCisKKyAgVGhl
IGhvb2sgZGVzY3JpYmVkIG5leHQgY2FuIGJlIHVzZWQgdG8gYXZvaWQgdGhhdCBhIHdpbmRv
dyBnZXRzCitkZWxldGVkIGJ5IHRoZXNlIGZ1bmN0aW9ucy4KKworQGRlZm9wdCB3aW5kb3ct
ZGVsZXRhYmxlLWZ1bmN0aW9ucworVGhpcyBpcyBhbiBhYm5vcm1hbCBob29rIHRoYXQgY2Fu
IGJlIHVzZWQgdG8gYXZvaWQgdGhhdCBhIHdpbmRvdyBnZXRzCitkZWxldGVkIGltcGxpY2l0
bHkuICBUaGUgdmFsdWUgc2hvdWxkIGJlIGEgbGlzdCBvZiBmdW5jdGlvbnMgdGhhdCB0YWtl
Cit0d28gYXJndW1lbnRzLiAgVGhlIGZpcnN0IGFyZ3VtZW50IGlzIHRoZSB3aW5kb3cgYWJv
dXQgdG8gYmUgZGVsZXRlZC4KK1RoZSBzZWNvbmQgYXJndW1lbnQsIGlmIG5vbi1AY29kZXtu
aWx9LCBtZWFucyB0aGF0IHRoZSB3aW5kb3cgaXMgdGhlCitvbmx5IHdpbmRvdyBvbiBpdHMg
ZnJhbWUgYW5kIHdvdWxkIGJlIGRlbGV0ZWQgdG9nZXRoZXIgd2l0aCBpdHMgZnJhbWUuCitU
aGUgd2luZG93J3MgYnVmZmVyIGlzIGN1cnJlbnQgd2hlbiBydW5uaW5nIHRoaXMgaG9vay4K
KworSWYgYW55IG9mIHRoZXNlIGZ1bmN0aW9ucyByZXR1cm5zIEBjb2Rle25pbH0sIHRoZSB3
aW5kb3cgd2lsbCBub3QgYmUKK2RlbGV0ZWQgYW5kIGFub3RoZXIgYnVmZmVyIHdpbGwgYmUg
c2hvd24gaW4gaXQuICBUaGlzIGhvb2sgaXMgcnVuCisoaW5kaXJlY3RseSkgYnkgdGhlIGZ1
bmN0aW9ucyBAY29kZXtxdWl0LXJlc3RvcmUtd2luZG93fSwKK0Bjb2Rle2tpbGwtYnVmZmVy
fSBhbmQgQGNvZGV7YnVyeS1idWZmZXJ9LiAgSXQgaXMgbm90IHJ1biBieSBmdW5jdGlvbnMK
K3RoYXQgZGVsZXRlIHdpbmRvd3MgZXhwbGljaXRseSBsaWtlIEBjb2Rle2RlbGV0ZS13aW5k
b3d9LAorQGNvZGV7ZGVsZXRlLW90aGVyLXdpbmRvd3N9IG9yIEBjb2Rle2RlbGV0ZS13aW5k
b3dzLW9ufS4KKworVGhlIHB1cnBvc2Ugb2YgdGhpcyBob29rIGlzIHRvIGdpdmUgaXRzIGNs
aWVudHMgYSBjaGFuY2UgdG8gc2F2ZSBhCit3aW5kb3cgb3IgaXRzIGZyYW1lIGZyb20gZGVs
ZXRpb24gYmVjYXVzZSB0aGV5IG1pZ2h0IHN0aWxsIHdhbnQgdG8gdXNlCit0aGF0IHdpbmRv
dyBvciBmcmFtZSBmb3IgdGhlaXIgb3duIHB1cnBvc2VzLgorQGVuZCBkZWZvcHQKKwogCiBA
bm9kZSBSZWNvbWJpbmluZyBXaW5kb3dzCiBAc2VjdGlvbiBSZWNvbWJpbmluZyBXaW5kb3dz
CkBAIC0yMjk3LDE2ICsyMzM2LDQxIEBAIEJ1ZmZlcnMgYW5kIFdpbmRvd3MKIHRoZSBuYW1l
IG9mIGFuIGV4aXN0aW5nIGJ1ZmZlcjsgaWYgb21pdHRlZCBvciBAY29kZXtuaWx9LCBpdCBk
ZWZhdWx0cyB0bwogdGhlIGN1cnJlbnQgYnVmZmVyLgogCi1UaGUgcmVwbGFjZW1lbnQgYnVm
ZmVyIGluIGVhY2ggd2luZG93IGlzIGNob3NlbiB2aWEKK1RoZSByZXBsYWNlbWVudCBidWZm
ZXIgaW4gZWFjaCB3aW5kb3cgaXMgdXN1YWxseSBjaG9zZW4gdmlhCiBAY29kZXtzd2l0Y2gt
dG8tcHJldi1idWZmZXJ9IChAcHhyZWZ7V2luZG93IEhpc3Rvcnl9KS4gIFdpdGggdGhlCiBl
eGNlcHRpb24gb2Ygc2lkZSB3aW5kb3dzIChAcHhyZWZ7U2lkZSBXaW5kb3dzfSksIGFueSBk
ZWRpY2F0ZWQgd2luZG93CiBkaXNwbGF5aW5nIEB2YXJ7YnVmZmVyLW9yLW5hbWV9IGlzIGRl
bGV0ZWQgaWYgcG9zc2libGUgKEBweHJlZntEZWRpY2F0ZWQKIFdpbmRvd3N9KS4gIElmIHN1
Y2ggYSB3aW5kb3cgaXMgdGhlIG9ubHkgd2luZG93IG9uIGl0cyBmcmFtZSBhbmQgdGhlcmUK
LWFyZSBvdGhlciBmcmFtZXMgb24gdGhlIHNhbWUgdGVybWluYWwsIHRoZSBmcmFtZSBpcyBk
ZWxldGVkIGFzIHdlbGwuCi1JZiB0aGUgZGVkaWNhdGVkIHdpbmRvdyBpcyB0aGUgb25seSB3
aW5kb3cgb24gdGhlIG9ubHkgZnJhbWUgb24gaXRzCithcmUgb3RoZXIgZnJhbWVzIG9uIHRo
ZSBzYW1lIHRlcm1pbmFsLCB0aGUgZnJhbWUgaXMgZGVsZXRlZCBhcyB3ZWxsLiAgSWYKK3Ro
ZSBkZWRpY2F0ZWQgd2luZG93IGlzIHRoZSBvbmx5IHdpbmRvdyBvbiB0aGUgb25seSBmcmFt
ZSBvbiBpdHMKIHRlcm1pbmFsLCB0aGUgYnVmZmVyIGlzIHJlcGxhY2VkIGFueXdheS4KKwor
VGhlIG1haW4gcHVycG9zZSBvZiB0aGlzIGZ1bmN0aW9uIGlzIHRvIGRlY2lkZSB3aGF0IHRv
IGRvIHdpdGggd2luZG93cword2hvc2UgYnVmZmVycyBhcmUgYWJvdXQgdG8gYmUga2lsbGVk
IGJ5IEBjb2Rle2tpbGwtYnVmZmVyfQorKEBweHJlZntLaWxsaW5nIEJ1ZmZlcnN9KS4gIEl0
IHdpbGwsIGhvd2V2ZXIsIGFsc28gcmVtb3ZlIHRoZSBidWZmZXIKK3NwZWNpZmllZCBieSBA
dmFye2J1ZmZlci1vci1uYW1lfSBmcm9tIHRoZSBsaXN0cyBvZiBwcmV2aW91cyBhbmQgbmV4
dAorYnVmZmVycyAoQHB4cmVme1dpbmRvdyBIaXN0b3J5fSkgb2YgYWxsIHdpbmRvd3MgKGlu
Y2x1ZGluZyBkZWFkIHdpbmRvd3MKK3RoYXQgYXJlIG9ubHkgcmVmZXJlbmNlZCBieSB3aW5k
b3cgY29uZmlndXJhdGlvbnMpIGFuZCByZW1vdmUgYW55CitAY29kZXtxdWl0LXJlc3RvcmV9
IG9yIEBjb2Rle3F1aXQtcmVzdG9yZS1wcmV2fSBwYXJhbWV0ZXJzCisoQHB4cmVme1dpbmRv
dyBQYXJhbWV0ZXJzfSkgcmVmZXJlbmNpbmcgdGhhdCBidWZmZXIuCiBAZW5kIGRlZmZuCiAK
K0J5IGRlZmF1bHQsIEBjb2Rle3JlcGxhY2UtYnVmZmVyLWluLXdpbmRvd3N9IGRlbGV0ZXMg
b25seSB3aW5kb3dzCitkZWRpY2F0ZWQgdG8gdGhlaXIgYnVmZmVycyBhbmQgaWdub3JlcyBh
bnkgQGNvZGV7cXVpdC1yZXN0b3JlfSBvcgorQGNvZGV7cXVpdC1yZXN0b3JlLXByZXZ9IHBh
cmFtZXRlcnMgb2YgdGhlIHdpbmRvd3MgaXQgd29ya3Mgb24uICBUaGUKK2ZvbGxvd2luZyBv
cHRpb24gaXMgdXNlZnVsIGZvciBjaXJjdW12ZW50aW5nIHRoZXNlIHJlc3RyaWN0aW9ucy4K
KworQGRlZm9wdCBraWxsLWJ1ZmZlci1xdWl0LXdpbmRvd3MKK0lmIHRoaXMgb3B0aW9uIGlz
IEBjb2Rle25pbH0sIEBjb2Rle2tpbGwtYnVmZmVyfSAoYW5kIGluIGNvbnNlcXVlbmNlCitA
Y29kZXtyZXBsYWNlLWJ1ZmZlci1pbi13aW5kb3dzfSkgbWF5IG9ubHkgZGVsZXRlIHdpbmRv
d3MgdGhhdCBhcmUKK2RlZGljYXRlZCB0byB0aGUgYnVmZmVyIGFib3V0IHRvIGJlIGtpbGxl
ZC4gIElmIHRoaXMgaXMgbm9uLUBjb2Rle25pbH0sCitAY29kZXtyZXBsYWNlLWJ1ZmZlci1p
bi13aW5kb3dzfSBoYXMgQGNvZGV7cXVpdC1yZXN0b3JlLXdpbmRvd30KKyhAcHhyZWZ7UXVp
dHRpbmcgV2luZG93c30pIGRlYWwgd2l0aCBhbnkgc3VjaCB3aW5kb3cuICBUaGF0IGZ1bmN0
aW9uIG1heQorZGVsZXRlIHN1Y2ggYSB3aW5kb3cgZXZlbiBpZiBpdCdzIG5vdCBkZWRpY2F0
ZWQgdG8gaXRzIGJ1ZmZlci4gIEFsc28sCitAY29kZXtkZWxldGUtd2luZG93cy1vbn0gd2ls
bCB1c2UgQGNvZGV7cXVpdC1yZXN0b3JlLXdpbmRvd30gYXMgZmFsbGJhY2sKK3doZW4gYSB3
aW5kb3cgY2Fubm90IGJlIGRlbGV0ZWQgYW5kIGFub3RoZXIgYnVmZmVyIG11c3QgYmUgc2hv
d24gaW4gaXQuCitAZW5kIGRlZm9wdAorCiAKIEBub2RlIFN3aXRjaGluZyBCdWZmZXJzCiBA
c2VjdGlvbiBTd2l0Y2hpbmcgdG8gYSBCdWZmZXIgaW4gYSBXaW5kb3cKQEAgLTQ1MzIsNiAr
NDU5NiwxNSBAQCBRdWl0dGluZyBXaW5kb3dzCiAKIEBpdGVtIGtpbGwKIFRoaXMgbWVhbnMg
dG8ga2lsbCBAdmFye3dpbmRvd30ncyBidWZmZXIuCisKK0BpdGVtIGtpbGxpbmcKK1RoaXMg
aXMgaGFuZGxlZCBsaWtlIEBjb2Rle2tpbGx9IGJ1dCBhc3N1bWVzIHRoYXQgQHZhcnt3aW5k
b3d9J3MgYnVmZmVyCitnZXRzIGtpbGxlZCBlbHNld2hlcmUuICBUaGlzIHZhbHVlIGlzIHVz
ZWQgYnkKK0Bjb2Rle3JlcGxhY2UtYnVmZmVyLWluLXdpbmRvd3N9IGFuZCBAY29kZXtxdWl0
LXdpbmRvd3Mtb259LgorCitAaXRlbSBidXJ5aW5nCitUaGlzIGlzIGhhbmRsZWQgbGlrZSBA
Y29kZXtidXJ5fSBidXQgYXNzdW1lcyB0aGF0IEB2YXJ7d2luZG93fSdzIGJ1ZmZlcgorZ2V0
cyBidXJpZWQgZWxzZXdoZXJlLiAgVGhpcyB2YWx1ZSBpcyB1c2VkIGJ5IEBjb2Rle3F1aXQt
d2luZG93cy1vbn0uCiBAZW5kIHRhYmxlCiAKIFRoZSBhcmd1bWVudCBAdmFye2J1cnktb3It
a2lsbH0gYWxzbyBzcGVjaWZpZXMgd2hhdCB0byBkbyB3aXRoCkBAIC00NTQxLDE0ICs0NjE0
LDE4IEBAIFF1aXR0aW5nIFdpbmRvd3MKIGRlbGV0ZSB0aGUgZnJhbWUuICBPdGhlcndpc2Us
IHRoZSBmYXRlIG9mIHRoZSBmcmFtZSBpcyBkZXRlcm1pbmVkIGJ5CiBjYWxsaW5nIEBjb2Rl
e2ZyYW1lLWF1dG8taGlkZS1mdW5jdGlvbn0gKHNlZSBiZWxvdykgd2l0aCB0aGF0IGZyYW1l
IGFzCiBzb2xlIGFyZ3VtZW50LgotCi1UaGlzIGZ1bmN0aW9uIGFsd2F5cyBzZXRzIEB2YXJ7
d2luZG93fSdzIEBjb2Rle3F1aXQtcmVzdG9yZX0gcGFyYW1ldGVyCi10byBAY29kZXtuaWx9
IHVubGVzcyBpdCBkZWxldGVzIHRoZSB3aW5kb3cuCiBAZW5kIGRlZnVuCiAKLVRoZSB3aW5k
b3cgQHZhcnt3aW5kb3d9J3MgQGNvZGV7cXVpdC1yZXN0b3JlfSBwYXJhbWV0ZXIgKEBweHJl
ZntXaW5kb3cKLVBhcmFtZXRlcnN9KSBzaG91bGQgYmUgQGNvZGV7bmlsfSBvciBhIGxpc3Qg
b2YgZm91ciBlbGVtZW50czoKLUBjIEZJWE1FOiBkZXNjcmliZSB3aGF0IHF1aXQtcmVzdG9y
ZS13aW5kb3cgZG9lcyBpZiB0aGlzIGlzIG5pbC4KKyAgQSB3aW5kb3cncyBAY29kZXtxdWl0
LXJlc3RvcmV9IGFuZCBAY29kZXtxdWl0LXJlc3RvcmUtcHJldn0gcGFyYW1ldGVycworKEBw
eHJlZntXaW5kb3cgUGFyYW1ldGVyc30pIGd1aWRlIEBjb2Rle3F1aXQtcmVzdG9yZS13aW5k
b3d9IHRocm91Z2ggaXRzCitwcm9jZXNzIG9mIGRlYWxpbmcgd2l0aCBpdHMgQHZhcnt3aW5k
b3d9IGFyZ3VtZW50LiAgSWYgc3VjaCBhIHBhcmFtZXRlcgoraXMgYWJzZW50IG9yIEBjb2Rl
e25pbH0sIHRoaXMgdXN1YWxseSBtZWFucyB0aGF0IHRoZSB3aW5kb3cgaGFzIGJlZW4KK2Ny
ZWF0ZWQgYnkgYSBjb21tYW5kIGxpa2UgQGNvZGV7c3BsaXQtd2luZG93LWJlbG93fSBvcgor
QGNvZGV7c3BsaXQtd2luZG93LXJpZ2h0fSAoQHB4cmVme1NwbGl0IFdpbmRvdywsLCBlbWFj
cywgVGhlIEdOVSBFbWFjcworTWFudWFsfSkgYW5kIEBjb2Rle3F1aXQtcmVzdG9yZS13aW5k
b3d9IHdpbGwgZGVsZXRlIHRoZSB3aW5kb3cgb25seSBpZgoraXQgd2FzIGRlZGljYXRlZCB0
byBpdHMgYnVmZmVyLgorCisgIElmIG5vbi1AY29kZXtuaWx9LCBhbnkgc3VjaCBwYXJhbWV0
ZXIgaXMgYSBsaXN0IG9mIGZvdXIgZWxlbWVudHM6CiAKIEBsaXNwCiAoQHZhcnttZXRob2R9
IEB2YXJ7b2J1ZmZlcn0gQHZhcntvd2luZG93fSBAdmFye3RoaXMtYnVmZmVyfSkKQEAgLTQ1
ODYsMTcgKzQ2NjMsMTcgQEAgUXVpdHRpbmcgV2luZG93cwogQHZhcnt3aW5kb3d9LCBpdCB0
cmllcyB0byBzZWxlY3QgQHZhcntvd2luZG93fS4KIAogVGhlIGZvdXJ0aCBlbGVtZW50LCBA
dmFye3RoaXMtYnVmZmVyfSwgaXMgdGhlIGJ1ZmZlciB3aG9zZSBkaXNwbGF5aW5nCi1zZXQg
dGhlIEBjb2Rle3F1aXQtcmVzdG9yZX0gcGFyYW1ldGVyLiAgUXVpdHRpbmcgQHZhcnt3aW5k
b3d9IG1heSBkZWxldGUKLXRoYXQgd2luZG93IG9ubHkgaWYgaXQgc3RpbGwgc2hvd3MgdGhh
dCBidWZmZXIuCi0KLVF1aXR0aW5nIEB2YXJ7d2luZG93fSB0cmllcyB0byBkZWxldGUgaXQg
aWYgYW5kIG9ubHkgaWYgKDEpCi1AdmFye21ldGhvZH0gaXMgZWl0aGVyIEBjb2Rle3dpbmRv
d30gb3IgQGNvZGV7ZnJhbWV9LCAoMikgdGhlIHdpbmRvdwotaGFzIG5vIGhpc3Rvcnkgb2Yg
cHJldmlvdXNseS1kaXNwbGF5ZWQgYnVmZmVycyBhbmQgKDMpCi1AdmFye3RoaXMtYnVmZmVy
fSBlcXVhbHMgdGhlIGJ1ZmZlciBjdXJyZW50bHkgZGlzcGxheWVkIGluCi1AdmFye3dpbmRv
d30uICBJZiBAdmFye3dpbmRvd30gaXMgcGFydCBvZiBhbiBhdG9taWMgd2luZG93Ci0oQHB4
cmVme0F0b21pYyBXaW5kb3dzfSksIHF1aXR0aW5nIHdpbGwgdHJ5IHRvIGRlbGV0ZSB0aGUg
cm9vdCBvZiB0aGF0Ci1hdG9taWMgd2luZG93IGluc3RlYWQuICBJbiBlaXRoZXIgY2FzZSwg
aXQgdHJpZXMgdG8gYXZvaWQgc2lnbmFsaW5nIGFuCi1lcnJvciB3aGVuIEB2YXJ7d2luZG93
fSBjYW5ub3QgYmUgZGVsZXRlZC4KK3NldCB0aGUgQGNvZGV7cXVpdC1yZXN0b3JlfSBwYXJh
bWV0ZXIuICBRdWl0dGluZyBAdmFye3dpbmRvd30gd2lsbCB1c2UKK3RoZSBpbmZvcm1hdGlv
biBzdG9yZWQgYnkgdGhhdCBwYXJhbWV0ZXIgaWYgYW5kIG9ubHkgaWYgaXQgc3RpbGwgc2hv
d3MKK3RoYXQgYnVmZmVyLgorCitAY29kZXtxdWl0LXJlc3RvcmUtd2luZG93fSB0cmllcyB0
byBkZWxldGUgaXRzIEB2YXJ7d2luZG93fSBpZiAoMSkKK0B2YXJ7bWV0aG9kfSBpcyBlaXRo
ZXIgQGNvZGV7d2luZG93fSBvciBAY29kZXtmcmFtZX0sICgyKSB0aGUgd2luZG93IGhhcwor
bm8gaGlzdG9yeSBvZiBwcmV2aW91c2x5LWRpc3BsYXllZCBidWZmZXJzIGFuZCAoMykgQHZh
cnt0aGlzLWJ1ZmZlcn0KK2VxdWFscyB0aGUgYnVmZmVyIGN1cnJlbnRseSBkaXNwbGF5ZWQg
aW4gQHZhcnt3aW5kb3d9LiAgSWYgQHZhcnt3aW5kb3d9CitpcyBwYXJ0IG9mIGFuIGF0b21p
YyB3aW5kb3cgKEBweHJlZntBdG9taWMgV2luZG93c30pLCBpdCB3aWxsIHRyeSB0bworZGVs
ZXRlIHRoZSByb290IG9mIHRoYXQgYXRvbWljIHdpbmRvdyBpbnN0ZWFkLiAgSW4gZWl0aGVy
IGNhc2UsIGl0IHRyaWVzCit0byBhdm9pZCBzaWduYWxpbmcgYW4gZXJyb3Igd2hlbiBAdmFy
e3dpbmRvd30gY2Fubm90IGJlIGRlbGV0ZWQuCiAKIElmIEB2YXJ7b2J1ZmZlcn0gaXMgYSBs
aXN0LCBhbmQgQHZhcntwcmV2LWJ1ZmZlcn0gaXMgc3RpbGwgbGl2ZSwKIHF1aXR0aW5nIGRp
c3BsYXlzIEB2YXJ7cHJldi1idWZmZXJ9IGluIEB2YXJ7d2luZG93fSBhY2NvcmRpbmcgdG8g
dGhlCkBAIC00NjA4LDYgKzQ2ODUsNTggQEAgUXVpdHRpbmcgV2luZG93cwogYnVmZmVycyAo
QHB4cmVme1dpbmRvdyBIaXN0b3J5fSksIHRoZSBtb3N0IHJlY2VudCBidWZmZXIgaW4gdGhh
dAogaGlzdG9yeSB3aWxsIGJlIGRpc3BsYXllZC4KIAorICBDb25jZXB0dWFsbHksIHRoZSBA
Y29kZXtxdWl0LXJlc3RvcmV9IHBhcmFtZXRlciBpcyB1c2VkIGZvciB1bmRvaW5nCit0aGUg
Zmlyc3QgYnVmZmVyIGRpc3BsYXkgb3BlcmF0aW9uIGZvciBhIHNwZWNpZmljIHdpbmRvdy4g
IFRoZQorQGNvZGV7cXVpdC1yZXN0b3JlLXByZXZ9IHBhcmFtZXRlciBpcyB1c2VkIGZvciB1
bmRvaW5nIHRoZSBsYXN0IGJ1ZmZlcgorZGlzcGxheSBvcGVyYXRpb24gaW4gYSByb3cgb2Yg
c3VjaCBvcGVyYXRpb25zIGZvciBhIHNwZWNpZmljIHdpbmRvdy4KK0FueSBidWZmZXIgZGlz
cGxheSBvcGVyYXRpb24gZm9yIHRoYXQgd2luZG93IHRoYXQgaGFwcGVuZWQgaW4gYmV0d2Vl
biwKK2lzIHVuZG9uZSBieSBkaXNwbGF5aW5nIHRoZSBidWZmZXIgcHJldmlvdXNseSBzaG93
biBpbiB0aGF0IHdpbmRvdy4KKworICBAY29kZXtkaXNwbGF5LWJ1ZmZlcn0gc2V0cyB1cCB0
aGUgQGNvZGV7cXVpdC1yZXN0b3JlfSBwYXJhbWV0ZXIgb2YgYW55Cit3aW5kb3cgaXQgdXNl
cyB3aGVuIHRoYXQgd2luZG93IGhhcyBiZWVuIGVpdGhlciBjcmVhdGVkIGJ5IGl0IG9yIGhh
cyBubworbm9uLUBjb2Rle25pbH0gQGNvZGV7cXVpdC1yZXN0b3JlfSBwYXJhbWV0ZXIuICBJ
ZiB0aGUgd2luZG93IGFscmVhZHkgaGFzCithIEBjb2Rle3F1aXQtcmVzdG9yZX0gcGFyYW1l
dGVyLCBAY29kZXtkaXNwbGF5LWJ1ZmZlcn0gYWRkcyBhCitAY29kZXtxdWl0LXJlc3RvcmUt
cHJldn0gcGFyYW1ldGVyIHdob3NlIEB2YXJ7bWV0aG9kfSBlbGVtZW50IGlzIGVpdGhlcgor
QGNvZGV7c2FtZX0gb3IgQGNvZGV7b3RoZXJ9LiAgSW4gZWl0aGVyIGNhc2UsIGlmIHRoZSB3
aW5kb3cgYWxyZWFkeSBoYXMKK2EgQGNvZGV7cXVpdC1yZXN0b3JlLXByZXZ9IG9yIEBjb2Rl
e3F1aXQtcmVzdG9yZX0gcGFyYW1ldGVyLCBpdCBtYXkKK3VwZGF0ZSB0aGF0IHBhcmFtZXRl
cidzIGNvbnRlbnRzLgorCisgIEBjb2Rle3F1aXQtcmVzdG9yZS13aW5kb3d9IG5vdyBmaXJz
dCB0cmllcyB0byBmaW5kIGEgc3VpdGFibGUKK0Bjb2Rle3F1aXQtcmVzdG9yZS1wcmV2fSBw
YXJhbWV0ZXIgZm9yIGl0cyB3aW5kb3cgdGVsbGluZyB3aGljaCBidWZmZXIKK3RvIHNob3cg
aW5zdGVhZC4gIElmIGl0IGRvZXNuJ3QgZmluZCBvbmUsIGl0IHdpbGwgbG9vayBmb3IgYSBz
dWl0YWJsZQorQGNvZGV7cXVpdC1yZXN0b3JlfSBwYXJhbWV0ZXIgdG8gZWl0aGVyIGRlbGV0
ZSB0aGUgd2luZG93IG9yIHNob3cKK2Fub3RoZXIgYnVmZmVyIGluIGl0LgorCisgIE9uY2Ug
aXQgaGFzIHVzZWQgb25lIG9mIHRoZXNlIHBhcmFtZXRlcnMsIEBjb2Rle3F1aXQtcmVzdG9y
ZS13aW5kb3d9CityZXNldHMgaXQgdG8gQGNvZGV7bmlsfS4gIFBhcmFtZXRlcnMgaXQgZGlk
IG5vdCB1c2UgYXJlIGxlZnQgYWxvbmUuICBBbnkKK29mIHRoZXNlIHBhcmFtZXRlcnMgYXJl
IGFsc28gcmVzZXQgYnkgQGNvZGV7cmVwbGFjZS1idWZmZXItaW4td2luZG93c30KKyhAcHhy
ZWZ7QnVmZmVycyBhbmQgV2luZG93c30pIHdoZW4gdGhleSByZWZlcmVuY2UgYSBidWZmZXIg
dGhhdCBpcyBhYm91dAordG8gYmUga2lsbGVkLCBlaXRoZXIgYXMgdGhlIGJ1ZmZlciBzcGVj
aWZpZWQgYnkgQHZhcntwcmV2LWJ1ZmZlcn0gb3IgYXMKK3RoZSBidWZmZXIgc3BlY2lmaWVk
IGJ5IEB2YXJ7dGhpcy1idWZmZXJ9LgorCisgIEFsbCBvcGVyYXRpb25zIG9uIHRoZXNlIHBh
cmFtZXRlcnMgYXJlIHN1cHBvc2VkIHRvIHByZXNlcnZlIHRoZQorZm9sbG93aW5nIGludmFy
aWFudDogSWYgYSB3aW5kb3cgaGFzIGEgbm9uLUBjb2Rle25pbH0KK0Bjb2Rle3F1aXQtcmVz
dG9yZS1wcmV2fSBwYXJhbWV0ZXIsIGl0IGFsc28gaGFzIGEgbm9uLUBjb2Rle25pbH0KK0Bj
b2Rle3F1aXQtcmVzdG9yZX0gcGFyYW1ldGVyLgorCitUaGUgZm9sbG93aW5nIG9wdGlvbiBh
bGxvd3MgQGNvZGV7cXVpdC1yZXN0b3JlLXdpbmRvd30gdG8gZGVsZXRlIGl0cword2luZG93
IG1vcmUgYWdncmVzc2l2ZWx5LgorCitAZGVmb3B0IHF1aXQtcmVzdG9yZS13aW5kb3ctbm8t
c3dpdGNoCitJZiB0aGlzIG9wdGlvbiBpcyBAY29kZXtuaWx9LCBAY29kZXtxdWl0LXJlc3Rv
cmUtd2luZG93fSB3aWxsIGFsd2F5cworY2FsbCBAY29kZXtzd2l0Y2gtdG8tcHJldi1idWZm
ZXJ9IHVubGVzcyB0aGUgd2luZG93IGhhcyBiZWVuIG1hZGUgYnkKK0Bjb2Rle2Rpc3BsYXkt
YnVmZmVyfS4gIElmIHRoaXMgaXMgQGNvZGV7dH0sIEBjb2Rle3F1aXQtcmVzdG9yZS13aW5k
b3d9Cit3aWxsIHRyeSBoYXJkIHRvIHN3aXRjaCBvbmx5IHRvIGJ1ZmZlcnMgcHJldmlvdXNs
eSBzaG93biBpbiB0aGF0IHdpbmRvdy4KK0lmIHRoaXMgaXMgdGhlIHN5bWJvbCBAY29kZXtz
a2lwLWZpcnN0fSwgaXQgd2lsbCBzd2l0Y2ggdG8gYSBwcmV2aW91cworYnVmZmVyIGlmIGFu
ZCBvbmx5IHRoZSB3aW5kb3cgaGFzIGF0IGxlYXN0IHR3byBwcmV2aW91cyBidWZmZXJzLgor
CitJbiBlaXRoZXIgY2FzZSwgaWYgQGNvZGV7cXVpdC1yZXN0b3JlLXdpbmRvd30gZG9lc24n
dCBzd2l0Y2ggdG8gYQorcHJldmlvdXMgYnVmZmVyLCBpdCB3aWxsIHRyeSB0byBkZWxldGUg
dGhlIHdpbmRvdyAoYW5kIG1heWJlIGl0cworZnJhbWUpIGluc3RlYWQuICBOb3RlIGFsc28g
dGhhdCBpZiBhIHdpbmRvdyBpcyBkZWRpY2F0ZWQsCitAY29kZXtxdWl0LXJlc3RvcmUtd2lu
ZG93fSB3aWxsIHVzdWFsbHkgbm90IHN3aXRjaCB0byBhIHByZXZpb3VzCitidWZmZXIgaW4g
aXQgZWl0aGVyLgorQGVuZCBkZWZvcHQKKwogQGlnbm9yZQogQGMgRklYTUU6IFNob3VsZCB3
ZSBkb2N1bWVudCBkaXNwbGF5LWJ1ZmZlci1yZXVzZS13aW5kb3c/CiBJZiB3ZSBkb2N1bWVu
dCBkaXNwbGF5LWJ1ZmZlci1yZWNvcmQtd2luZG93LCBpdCBzaG91bGQgYmUgd2l0aCBAZGVm
dW4uCkBAIC02NjY4LDEyICs2Nzk3LDE0IEBAIFdpbmRvdyBQYXJhbWV0ZXJzCiBAY29kZXt3
aW5kb3ctcHJlc2VydmUtc2l6ZX0gKEBweHJlZntQcmVzZXJ2aW5nIFdpbmRvdyBTaXplc30p
LgogCiBAaXRlbSBxdWl0LXJlc3RvcmUKK0BpdGVtIHF1aXQtcmVzdG9yZS1wcmV2CiBAdmlu
ZGV4IHF1aXQtcmVzdG9yZUByeywgYSB3aW5kb3cgcGFyYW1ldGVyfQotVGhpcyBwYXJhbWV0
ZXIgaXMgaW5zdGFsbGVkIGJ5IHRoZSBidWZmZXIgZGlzcGxheSBmdW5jdGlvbnMKK0B2aW5k
ZXggcXVpdC1yZXN0b3JlLXByZXZAcnssIGEgd2luZG93IHBhcmFtZXRlcn0KK1RoZXNlIHBh
cmFtZXRlcnMgYXJlcyBpbnN0YWxsZWQgYnkgdGhlIGJ1ZmZlciBkaXNwbGF5IGZ1bmN0aW9u
cwogKEBweHJlZntDaG9vc2luZyBXaW5kb3d9KSBhbmQgY29uc3VsdGVkIGJ5IEBjb2Rle3F1
aXQtcmVzdG9yZS13aW5kb3d9Ci0oQHB4cmVme1F1aXR0aW5nIFdpbmRvd3N9KS4gIEl0IGlz
IGEgbGlzdCBvZiBmb3VyIGVsZW1lbnRzLCBzZWUgdGhlCi1kZXNjcmlwdGlvbiBvZiBAY29k
ZXtxdWl0LXJlc3RvcmUtd2luZG93fSBpbiBAcmVme1F1aXR0aW5nIFdpbmRvd3N9Ci1mb3Ig
ZGV0YWlscy4KKyhAcHhyZWZ7UXVpdHRpbmcgV2luZG93c30pLiAgVGhleSBhcmUgbGlzdHMg
b2YgZm91ciBlbGVtZW50cywgc2VlIHRoZQorZGVzY3JpcHRpb24gb2YgQGNvZGV7cXVpdC1y
ZXN0b3JlLXdpbmRvd30gaW4gQHJlZntRdWl0dGluZyBXaW5kb3dzfSBmb3IKK2RldGFpbHMu
CiAKIEBpdGVtIHdpbmRvdy1zaWRlCiBAaXRlbXggd2luZG93LXNsb3QKZGlmZiAtLWdpdCBh
L2V0Yy9ORVdTIGIvZXRjL05FV1MKaW5kZXggYzkwN2VjNDBmYTEuLmRlN2FlN2IwMzI2IDEw
MDY0NAotLS0gYS9ldGMvTkVXUworKysgYi9ldGMvTkVXUwpAQCAtNDMsNiArNDMsMzcgQEAg
VGhlICdmaW5kLWZ1bmN0aW9uJywgJ2ZpbmQtbGlicmFyeScsICdmaW5kLWZhY2UtZGVmaW5p
dGlvbicsIGFuZAogJ2ZpbmQtdmFyaWFibGUnIGNvbW1hbmRzIG5vdyBhbGxvdyByZXRyaWV2
aW5nIHByZXZpb3VzIGlucHV0IHVzaW5nIHRoZQogdXN1YWwgbWluaWJ1ZmZlciBoaXN0b3J5
IGNvbW1hbmRzLiAgRWFjaCBjb21tYW5kIGhhcyBhIHNlcGFyYXRlIGhpc3RvcnkuCiAKKwwK
KyoqIFdpbmRvd3MKKworKysrCisqKiogTmV3IGhvb2sgJ3dpbmRvdy1kZWxldGFibGUtZnVu
Y3Rpb25zJy4KK1RoaXMgYWJub3JtYWwgaG9vayBnaXZlcyBpdHMgY2xpZW50IGEgd2F5IHRv
IHNhdmUgYSB3aW5kb3cgZnJvbSBnZXR0aW5nCitkZWxldGVkIGltcGxpY2l0bHkgYnkgZnVu
Y3Rpb25zIGxpa2UgJ2tpbGwtYnVmZmVyJywgJ2J1cnktYnVmZmVyJyBhbmQKKydxdWl0LXJl
c3RvcmUtd2luZG93JywKKworKysrCisqKiogTmV3IG9wdGlvbiAna2lsbC1idWZmZXItcXVp
dC13aW5kb3dzJy4KK1RoaXMgb3B0aW9uIGhhcyAna2lsbC1idWZmZXInIGNhbGwgJ3F1aXQt
cmVzdG9yZS13aW5kb3cnIHRvIGhhbmRsZSB0aGUKK2Z1cnRoZXIgZGVzdGlueSBvZiBhbnkg
d2luZG93IHNob3dpbmcgdGhlIGJ1ZmZlciB0byBiZSBraWxsZWQuCisKKysrKworKioqIE5l
dyB3aW5kb3cgcGFyYW1ldGVyICdxdWl0LXJlc3RvcmUtcHJldicuCitUaGlzIHBhcmFtZXRl
ciBpcyBzZXQgdXAgYnkgJ2Rpc3BsYXktYnVmZmVyJyB3aGVuIGl0IGRldGVjdHMgdGhhdCB0
aGUKK3dpbmRvdyB1c2VkIGFscmVhZHkgaGFzIGEgJ3F1aXQtcmVzdG9yZScgcGFyYW1ldGVy
LiAgSXRzIHByZXNlbmNlIGdpdmVzCisncXVpdC1yZXN0b3JlLXdpbmRvdycgYSB3YXkgdG8g
dW5kbyBhIHNlcXVlbmNlIG9mIGJ1ZmZlciBkaXNwbGF5CitvcGVyYXRpb25zIG1vcmUgaW50
dWl0aXZlbHkuCisKKysrKworKioqICdxdWl0LXJlc3RvcmUtd2luZG93JyBub3cgaGFuZGxl
cyB0aGUgdmFsdWVzICdraWxsaW5nJyBhbmQgJ2J1cnlpbmcnCitmb3IgaXRzIEJVUlktT1It
S0lMTCBhcmd1bWVudCBqdXN0IGxpa2UgJ2tpbGwnIGFuZCAnYnVyeScgYnV0IGFzc3VtZXMK
K3RoYXQgdGhlIGFjdHVhbCBraWxsaW5nIG9yIGJ1cnlpbmcgb2YgdGhlIGJ1ZmZlciBpcyBk
b25lIGJ5IHRoZSBjYWxsZXIuCisKKysrKworKioqIE5ldyBvcHRpb24gJ3F1aXQtcmVzdG9y
ZS13aW5kb3ctbm8tc3dpdGNoJy4KK1dpdGggdGhpcyBvcHRpb24gc2V0LCAncXVpdC1yZXN0
b3JlLXdpbmRvdycgd2lsbCBkZWxldGUgaXRzIHdpbmRvdyBtb3JlCithZ2dyZXNzaXZlbHkg
cmF0aGVyIHRoYW4gc3dpdGNoaW5nIHRvIHNvbWUgb3RoZXIgYnVmZmVyIGluIGl0LgorCiAM
CiAqIEVkaXRpbmcgQ2hhbmdlcyBpbiBFbWFjcyAzMS4xCiAKZGlmZiAtLWdpdCBhL2xpc3Av
d2luZG93LmVsIGIvbGlzcC93aW5kb3cuZWwKaW5kZXggMDA2Y2ZhMTk1MjUuLjQ2ODc4NjBk
YjExIDEwMDY0NAotLS0gYS9saXNwL3dpbmRvdy5lbAorKysgYi9saXNwL3dpbmRvdy5lbApA
QCAtNDEwNCwxMiArNDEwNCwzNSBAQCBvbmUtd2luZG93LXAKIAkobmV4dC13aW5kb3cgYmFz
ZS13aW5kb3cgKGlmIG5vbWluaSAnYXJnKSBhbGwtZnJhbWVzKSkpKQogDAogOzs7IERlbGV0
aW5nIHdpbmRvd3MuCi0oZGVmdW4gd2luZG93LWRlbGV0YWJsZS1wICgmb3B0aW9uYWwgd2lu
ZG93KQorKGRlZmN1c3RvbSB3aW5kb3ctZGVsZXRhYmxlLWZ1bmN0aW9ucyBuaWwKKyAgICJB
Ym5vcm1hbCBob29rIHRvIGRlY2lkZSB3aGV0aGVyIGEgd2luZG93IG1heSBiZSBpbXBsaWNp
dGx5IGRlbGV0ZWQuCitUaGUgdmFsdWUgc2hvdWxkIGJlIGEgbGlzdCBvZiBmdW5jdGlvbnMg
dGhhdCB0YWtlIHR3byBhcmd1bWVudHMuICBUaGUKK2ZpcnN0IGFyZ3VtZW50IGlzIHRoZSB3
aW5kb3cgYWJvdXQgdG8gYmUgZGVsZXRlZC4gIFRoZSBzZWNvbmQgYXJndW1lbnQKK2lmIG5v
bi1uaWwsIG1lYW5zIHRoYXQgdGhlIHdpbmRvdyBpcyB0aGUgb25seSB3aW5kb3cgb24gaXRz
IGZyYW1lIGFuZAorc2hvdWxkIGJlIGRlbGV0ZWQgdG9nZXRoZXIgd2l0aCBpdHMgZnJhbWUu
ICBUaGUgd2luZG93J3MgYnVmZmVyIGlzCitjdXJyZW50IHdoZW4gcnVubmluZyB0aGlzIGhv
b2suCisKK0lmIGFueSBvZiB0aGVzZSBmdW5jdGlvbnMgcmV0dXJucyBuaWwsIHRoZSB3aW5k
b3cgd2lsbCBub3QgYmUgZGVsZXRlZAorYW5kIGFub3RoZXIgYnVmZmVyIHdpbGwgYmUgc2hv
d24gaW4gaXQuICBUaGlzIGhvb2sgaXMgcnVuIGltcGxpY2l0bHkgYnkKK3RoZSBmdW5jdGlv
bnMgYHF1aXQtcmVzdG9yZS13aW5kb3cnLCBga2lsbC1idWZmZXInIGFuZCBgYnVyeS1idWZm
ZXInLgorSXQgaXMgbm90IHJ1biBieSBgZGVsZXRlLXdpbmRvdycgYW5kIGBkZWxldGUtd2lu
ZG93cy1vbicuICBUaGUgcHVycG9zZQorb2YgdGhpcyBob29rIGlzIHRvIGdpdmUgaXRzIGNs
aWVudHMgYSBjaGFuY2UgdG8gc2F2ZSBhIHdpbmRvdyBvciBpdHMKK2ZyYW1lIGZyb20gZGVs
ZXRpb24gYmVjYXVzZSB0aGV5IG1pZ2h0IHN0aWxsIHdhbnQgdG8gdXNlIHRoYXQgd2luZG93
IG9yCitmcmFtZSBmb3IgdGhlaXIgb3duIHB1cnBvc2VzLiIKKyAgOnR5cGUgJ2hvb2sKKyAg
OnZlcnNpb24gIjMxLjEiCisgIDpncm91cCAnd2luZG93cykKKworKGRlZnVuIHdpbmRvdy1k
ZWxldGFibGUtcCAoJm9wdGlvbmFsIHdpbmRvdyBuby1ydW4pCiAgICJSZXR1cm4gdCBpZiBX
SU5ET1cgY2FuIGJlIHNhZmVseSBkZWxldGVkIGZyb20gaXRzIGZyYW1lLgogV0lORE9XIG11
c3QgYmUgYSB2YWxpZCB3aW5kb3cgYW5kIGRlZmF1bHRzIHRvIHRoZSBzZWxlY3RlZCBvbmUu
CiAKIFJldHVybiBgZnJhbWUnIGlmIFdJTkRPVyBpcyB0aGUgcm9vdCB3aW5kb3cgb2YgaXRz
IGZyYW1lIGFuZCB0aGF0Ci1mcmFtZSBjYW4gYmUgc2FmZWx5IGRlbGV0ZWQuIgorZnJhbWUg
Y2FuIGJlIHNhZmVseSBkZWxldGVkLgorCitVbmxlc3MgdGhlIG9wdGlvbmFsIGFyZ3VtZW50
IE5PLVJVTiBpcyBub24tbmlsLCBydW4gdGhlIGFibm9ybWFsIGhvb2sKK2B3aW5kb3ctZGVs
ZXRhYmxlLWZ1bmN0aW9ucycgYW5kIHJldHVybiBuaWwgaWYgYW55IGZ1bmN0aW9uIG9uIHRo
YXQgaG9vaworcmV0dXJucyBuaWwuIgogICAoc2V0cSB3aW5kb3cgKHdpbmRvdy1ub3JtYWxp
emUtd2luZG93IHdpbmRvdykpCiAKICAgKHVubGVzcyAob3IgaWdub3JlLXdpbmRvdy1wYXJh
bWV0ZXJzCkBAIC00MTM3LDE0ICs0MTYwLDIyIEBAIHdpbmRvdy1kZWxldGFibGUtcAogCQkg
ICAgKGFuZCBtaW5pYnVmIChlcSBmcmFtZSAod2luZG93LWZyYW1lIG1pbmlidWYpKQogICAg
ICAgICAgICAgICAgICAgICAgICAgIChub3QgKGVxIChkZWZhdWx0LXRvcGxldmVsLXZhbHVl
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnbWluaWJ1ZmZlci1mb2xs
b3dzLXNlbGVjdGVkLWZyYW1lKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHQpKSkpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHQpKSkpCisJCSAg
KG9yIG5vLXJ1bgorCQkgICAgICAobm90ICh3aXRoLWN1cnJlbnQtYnVmZmVyICh3aW5kb3ct
YnVmZmVyIHdpbmRvdykKKwkJCSAgICAgKHJ1bi1ob29rLXdpdGgtYXJncy11bnRpbC1mYWls
dXJlCisJCQkgICAgICAnd2luZG93LWRlbGV0YWJsZS1mdW5jdGlvbnMgd2luZG93IHQpKSkp
KQogCSdmcmFtZSkpCiAgICAgICgod2luZG93LW1pbmlidWZmZXItcCB3aW5kb3cpCiAgICAg
ICA7OyBJZiBXSU5ET1cgaXMgdGhlIG1pbmlidWZmZXIgd2luZG93IG9mIGEgbm9uLW1pbmli
dWZmZXItb25seQogICAgICAgOzsgZnJhbWUsIGl0IGNhbm5vdCBiZSBkZWxldGVkIHNlcGFy
YXRlbHkuCiAgICAgICBuaWwpCi0gICAgICgob3IgaWdub3JlLXdpbmRvdy1wYXJhbWV0ZXJz
Ci0JICAobm90IChlcSB3aW5kb3cgKHdpbmRvdy1tYWluLXdpbmRvdyBmcmFtZSkpKSkKKyAg
ICAgKChhbmQgKG9yIGlnbm9yZS13aW5kb3ctcGFyYW1ldGVycworCSAgICAgICAobm90IChl
cSB3aW5kb3cgKHdpbmRvdy1tYWluLXdpbmRvdyBmcmFtZSkpKSkKKwkgICAob3Igbm8tcnVu
CisJICAgICAgICh3aXRoLWN1cnJlbnQtYnVmZmVyICh3aW5kb3ctYnVmZmVyIHdpbmRvdykK
KwkJIChydW4taG9vay13aXRoLWFyZ3MtdW50aWwtZmFpbHVyZQorCQkgICd3aW5kb3ctZGVs
ZXRhYmxlLWZ1bmN0aW9ucyB3aW5kb3cgbmlsKSkpKQogICAgICAgOzsgT3RoZXJ3aXNlLCBX
SU5ET1cgY2FuIGJlIGRlbGV0ZWQgdW5sZXNzIGl0IGlzIHRoZSBtYWluIHdpbmRvdwogICAg
ICAgOzsgb2YgaXRzIGZyYW1lLgogICAgICAgdCkpKSkKQEAgLTQ1MTUsMTcgKzQ1NDYsMjYg
QEAgcmVjb3JkLXdpbmRvdy1idWZmZXIKICAgICAgIChwdXNoLXdpbmRvdy1idWZmZXItb250
by1wcmV2IHdpbmRvdykKICAgICAgIChydW4taG9va3MgJ2J1ZmZlci1saXN0LXVwZGF0ZS1o
b29rKSkpKQogCi0oZGVmdW4gdW5yZWNvcmQtd2luZG93LWJ1ZmZlciAoJm9wdGlvbmFsIHdp
bmRvdyBidWZmZXIpCisoZGVmdW4gdW5yZWNvcmQtd2luZG93LWJ1ZmZlciAoJm9wdGlvbmFs
IHdpbmRvdyBidWZmZXIgYWxsKQogICAiVW5yZWNvcmQgQlVGRkVSIGluIFdJTkRPVy4KLVdJ
TkRPVyBtdXN0IGJlIGEgbGl2ZSB3aW5kb3cgYW5kIGRlZmF1bHRzIHRvIHRoZSBzZWxlY3Rl
ZCBvbmUuCi1CVUZGRVIgbXVzdCBiZSBhIGxpdmUgYnVmZmVyIGFuZCBkZWZhdWx0cyB0byB0
aGUgYnVmZmVyIG9mCi1XSU5ET1cuIgorV0lORE9XIG11c3QgYmUgYSBsaXZlIHdpbmRvdyBh
bmQgZGVmYXVsdHMgdG8gdGhlIHNlbGVjdGVkIG9uZS4gIEJVRkZFUgorbXVzdCBiZSBhIGxp
dmUgYnVmZmVyIGFuZCBkZWZhdWx0cyB0byB0aGUgYnVmZmVyIG9mIFdJTkRPVyAoYWx0aG91
Z2gKK3RoYXQgZGVmYXVsdCBoYXJkbHkgbWFrZXMgYW55IHNlbnNlKS4KKworTWFrZSBCVUZG
RVIgZGlzYXBwZWFyIGZyb20gbW9zdCBjb21wb25lbnRzIHNwZWNpZmllZCBieSB0aGUgb2Jq
ZWN0IG9mCitXSU5ET1cuICBUaGlzIGluY2x1ZGVzIHRoZSBidWZmZXJzIHByZXZpb3VzbHkg
c2hvd24gaW4gV0lORE9XIGFzIHdlbGwgYXMKK2FueSBidWZmZXJzIG1lbnRpb25lZCBieSBX
SU5ET1cncyBgcXVpdC1yZXN0b3JlJyBhbmQgYHF1aXQtcmVzdG9yZS1wcmV2JworcGFyYW1l
dGVycy4KKworVGhpcyBmdW5jdGlvbiBpcyBjYWxsZWQgYnkgYHJlcGxhY2UtYnVmZmVyLWlu
LXdpbmRvd3MnIHdoaWNoIGlzIG1haW5seQorY29uY2VybmVkIHdpdGggZmluZGluZyBhbm90
aGVyIGJ1ZmZlciBmb3IgYWxsIHdpbmRvd3Mgc2hvd2luZyBhIGJ1ZmZlcgorYWJvdXQgdG8g
YmUga2lsbGVkLiAgSXQncyBhbHNvIGNhbGxlZCBieSBgZGVsZXRlLXdpbmRvd3Mtb24nIGFu
ZAorYHF1aXQtd2luZG93cy1vbicgYW5kIHNob3VsZCBiZSBjYWxsZWQgd2hlcmV2ZXIgdGhl
IHRyYWNlcyBvZiBhIGJ1ZmZlcgorc2hvdWxkIGJlIGVyYXNlZCBmcm9tIHRoZSB3aW5kb3cg
aGFuZGxpbmcgc3Vic3lzdGVtLiIKICAgKGxldCogKCh3aW5kb3cgKHdpbmRvdy1ub3JtYWxp
emUtd2luZG93IHdpbmRvdyB0KSkKIAkgKGJ1ZmZlciAob3IgYnVmZmVyICh3aW5kb3ctYnVm
ZmVyIHdpbmRvdykpKSkKLSAgICAoc2V0LXdpbmRvdy1wcmV2LWJ1ZmZlcnMKLSAgICAgd2lu
ZG93IChhc3NxLWRlbGV0ZS1hbGwgYnVmZmVyICh3aW5kb3ctcHJldi1idWZmZXJzIHdpbmRv
dykpKQotICAgIChzZXQtd2luZG93LW5leHQtYnVmZmVycwotICAgICB3aW5kb3cgKGRlbHEg
YnVmZmVyICh3aW5kb3ctbmV4dC1idWZmZXJzIHdpbmRvdykpKSkpCisgICAgKHdoZW4gKGJ1
ZmZlci1saXZlLXAgYnVmZmVyKQorICAgICAgKHdpbmRvdy1kaXNjYXJkLWJ1ZmZlci1mcm9t
LXdpbmRvdyBidWZmZXIgd2luZG93IGFsbCkpKSkKIAogKGRlZnVuIHNldC13aW5kb3ctYnVm
ZmVyLXN0YXJ0LWFuZC1wb2ludCAod2luZG93IGJ1ZmZlciAmb3B0aW9uYWwgc3RhcnQgcG9p
bnQpCiAgICJTZXQgV0lORE9XJ3MgYnVmZmVyIHRvIEJVRkZFUi4KQEAgLTQ2ODMsNyArNDcy
Myw3IEBAIHN3aXRjaC10by1wcmV2LWJ1ZmZlcgogICAgICAgICAgICAoKG9yIHN3aXRjaC10
by1wcmV2LWJ1ZmZlci1za2lwCiAgICAgICAgICAgICAgICAgKG5vdCBzd2l0Y2gtdG8tdmlz
aWJsZS1idWZmZXIpKQogICAgICAgICAgICAgZnJhbWUpKSkKLSAgICAgICAgIGVudHJ5IG5l
dy1idWZmZXIga2lsbGVkLWJ1ZmZlcnMgc2tpcHBlZCkKKyAgICAgICAgIGVudHJ5IG5ldy1i
dWZmZXIgc2tpcHBlZCkKICAgICAod2hlbiAod2luZG93LW1pbmlidWZmZXItcCB3aW5kb3cp
CiAgICAgICA7OyBEb24ndCBzd2l0Y2ggaW4gbWluaWJ1ZmZlciB3aW5kb3cuCiAgICAgICAo
dW5sZXNzIChzZXRxIHdpbmRvdyAobWluaWJ1ZmZlci1zZWxlY3RlZC13aW5kb3cpKQpAQCAt
NDY5OSwxNCArNDczOSwxNCBAQCBzd2l0Y2gtdG8tcHJldi1idWZmZXIKICAgICAgIChkb2xp
c3QgKGVudHJ5ICh3aW5kb3ctcHJldi1idWZmZXJzIHdpbmRvdykpCiAJKHdoZW4gKGFuZCAo
bm90IChlcSAoY2FyIGVudHJ5KSBvbGQtYnVmZmVyKSkKICAgICAgICAgICAgICAgICAgICAo
c2V0cSBuZXctYnVmZmVyIChjYXIgZW50cnkpKQotCQkgICAob3IgKGJ1ZmZlci1saXZlLXAg
bmV3LWJ1ZmZlcikKLQkJICAgICAgIChub3QgKHNldHEga2lsbGVkLWJ1ZmZlcnMKLQkJCQkg
IChjb25zIG5ldy1idWZmZXIga2lsbGVkLWJ1ZmZlcnMpKSkpCi0gICAgICAgICAgICAgICAg
ICAgKG9yIChudWxsIHByZWQpIChmdW5jYWxsIHByZWQgbmV3LWJ1ZmZlcikpCisJCSAgIDs7
IEJld2FyZTogbmV3LWJ1ZmZlciBtaWdodCBoYXZlIGJlZW4ga2lsbGVkIGJ5CisJCSAgIDs7
IGEgZnVuY3Rpb24gb24gJ2J1ZmZlci1wcmVkaWNhdGUnLgorCQkgICAoYnVmZmVyLWxpdmUt
cCBuZXctYnVmZmVyKQorCQkgICAob3IgKG51bGwgcHJlZCkgKGZ1bmNhbGwgcHJlZCBuZXct
YnVmZmVyKSkKIAkJICAgOzsgV2hlbiBCVVJZLU9SLUtJTEwgaXMgbmlsLCBhdm9pZCBzd2l0
Y2hpbmcgdG8gYQogCQkgICA7OyBidWZmZXIgaW4gV0lORE9XJ3MgbmV4dCBidWZmZXJzIGxp
c3QuCiAJCSAgIChvciBidXJ5LW9yLWtpbGwgKG5vdCAobWVtcSBuZXctYnVmZmVyIG5leHQt
YnVmZmVycykpKSkKLSAgICAgICAgICAoaWYgKHN3aXRjaC10by1wcmV2LWJ1ZmZlci1za2lw
LXAgc2tpcCB3aW5kb3cgbmV3LWJ1ZmZlciBidXJ5LW9yLWtpbGwpCisJICAoaWYgKHN3aXRj
aC10by1wcmV2LWJ1ZmZlci1za2lwLXAgc2tpcCB3aW5kb3cgbmV3LWJ1ZmZlciBidXJ5LW9y
LWtpbGwpCiAJICAgICAgKHNldHEgc2tpcHBlZCBuZXctYnVmZmVyKQogCSAgICAoc2V0LXdp
bmRvdy1idWZmZXItc3RhcnQtYW5kLXBvaW50CiAJICAgICB3aW5kb3cgbmV3LWJ1ZmZlciAo
bnRoIDEgZW50cnkpIChudGggMiBlbnRyeSkpCkBAIC00NzQwLDExICs0NzgwLDcgQEAgc3dp
dGNoLXRvLXByZXYtYnVmZmVyCiAJOzsgU2NhbiByZXZlcnRlZCBuZXh0IGJ1ZmZlcnMgbGFz
dCAobXVzdCBub3QgdXNlIG5yZXZlcnNlCiAJOzsgaGVyZSEpLgogCShkb2xpc3QgKGJ1ZmZl
ciAocmV2ZXJzZSBuZXh0LWJ1ZmZlcnMpKQotCSAgOzsgQWN0dWFsbHksIGJ1ZmZlciBfbXVz
dF8gYmUgbGl2ZSBoZXJlIHNpbmNlIG90aGVyd2lzZSBpdAotCSAgOzsgd291bGQgaGF2ZSBi
ZWVuIGNhdWdodCBpbiB0aGUgc2NhbiBvZiBwcmV2aW91cyBidWZmZXJzLgotCSAgKHdoZW4g
KGFuZCAob3IgKGJ1ZmZlci1saXZlLXAgYnVmZmVyKQotCQkJIChub3QgKHNldHEga2lsbGVk
LWJ1ZmZlcnMKLQkJCQkgICAgKGNvbnMgYnVmZmVyIGtpbGxlZC1idWZmZXJzKSkpKQorCSAg
KHdoZW4gKGFuZCAoYnVmZmVyLWxpdmUtcCBidWZmZXIpCiAJCSAgICAgKG5vdCAoZXEgYnVm
ZmVyIG9sZC1idWZmZXIpKQogICAgICAgICAgICAgICAgICAgICAgKG9yIChudWxsIHByZWQp
IChmdW5jYWxsIHByZWQgYnVmZmVyKSkKIAkJICAgICAoc2V0cSBlbnRyeSAoYXNzcSBidWZm
ZXIgKHdpbmRvdy1wcmV2LWJ1ZmZlcnMgd2luZG93KSkpKQpAQCAtNDc2NSw5ICs0ODAxLDcg
QEAgc3dpdGNoLXRvLXByZXYtYnVmZmVyCiAJCQkgIChhc3NxIG9sZC1idWZmZXIgKHdpbmRv
dy1wcmV2LWJ1ZmZlcnMgd2luZG93KSkpKSkKIAkgIDs7IFJlbW92ZSBgb2xkLWJ1ZmZlcicg
ZnJvbSBXSU5ET1cncyBwcmV2aW91cyBhbmQgKHJlc3RvcmVkIGxpc3QKIAkgIDs7IG9mKSBu
ZXh0IGJ1ZmZlcnMuCi0JICAoc2V0LXdpbmRvdy1wcmV2LWJ1ZmZlcnMKLQkgICB3aW5kb3cg
KGFzc3EtZGVsZXRlLWFsbCBvbGQtYnVmZmVyICh3aW5kb3ctcHJldi1idWZmZXJzIHdpbmRv
dykpKQotCSAgKHNldC13aW5kb3ctbmV4dC1idWZmZXJzIHdpbmRvdyAoZGVscSBvbGQtYnVm
ZmVyIG5leHQtYnVmZmVycykpCisJICAodW5yZWNvcmQtd2luZG93LWJ1ZmZlciB3aW5kb3cg
b2xkLWJ1ZmZlcikKIAkgICh3aGVuIGVudHJ5CiAJICAgIDs7IEFwcGVuZCBvbGQtYnVmZmVy
J3MgZW50cnkgdG8gbGlzdCBvZiBXSU5ET1cncyBwcmV2aW91cwogCSAgICA7OyBidWZmZXJz
IHNvIGl0J3MgbGVzcyBsaWtlbHkgdG8gZ2V0IHN3aXRjaGVkIHRvIHNvb24gYnV0CkBAIC00
NzgwLDE0ICs0ODE0LDYgQEAgc3dpdGNoLXRvLXByZXYtYnVmZmVyCiAgICAgICAoc2V0LXdp
bmRvdy1uZXh0LWJ1ZmZlcnMKICAgICAgICB3aW5kb3cgKGNvbnMgb2xkLWJ1ZmZlciAoZGVs
cSBvbGQtYnVmZmVyIG5leHQtYnVmZmVycykpKSkKIAotICAgIDs7IFJlbW92ZSBraWxsZWQg
YnVmZmVycyBmcm9tIFdJTkRPVydzIHByZXZpb3VzIGFuZCBuZXh0IGJ1ZmZlcnMuCi0gICAg
KHdoZW4ga2lsbGVkLWJ1ZmZlcnMKLSAgICAgIChkb2xpc3QgKGJ1ZmZlciBraWxsZWQtYnVm
ZmVycykKLQkoc2V0LXdpbmRvdy1wcmV2LWJ1ZmZlcnMKLQkgd2luZG93IChhc3NxLWRlbGV0
ZS1hbGwgYnVmZmVyICh3aW5kb3ctcHJldi1idWZmZXJzIHdpbmRvdykpKQotCShzZXQtd2lu
ZG93LW5leHQtYnVmZmVycwotCSB3aW5kb3cgKGRlbHEgYnVmZmVyICh3aW5kb3ctbmV4dC1i
dWZmZXJzIHdpbmRvdykpKSkpCi0KICAgICA7OyBSZXR1cm4gbmV3LWJ1ZmZlci4KICAgICBu
ZXctYnVmZmVyKSkKIApAQCAtNDgxOSw3ICs0ODQ1LDcgQEAgc3dpdGNoLXRvLW5leHQtYnVm
ZmVyCiAgICAgICAgICAgICgob3Igc3dpdGNoLXRvLXByZXYtYnVmZmVyLXNraXAKICAgICAg
ICAgICAgICAgICAobm90IHN3aXRjaC10by12aXNpYmxlLWJ1ZmZlcikpCiAgICAgICAgICAg
ICBmcmFtZSkpKQotCSBuZXctYnVmZmVyIGVudHJ5IGtpbGxlZC1idWZmZXJzIHNraXBwZWQp
CisJIG5ldy1idWZmZXIgZW50cnkgc2tpcHBlZCkKICAgICAod2hlbiAod2luZG93LW1pbmli
dWZmZXItcCB3aW5kb3cpCiAgICAgICA7OyBEb24ndCBzd2l0Y2ggaW4gbWluaWJ1ZmZlciB3
aW5kb3cuCiAgICAgICAodW5sZXNzIChzZXRxIHdpbmRvdyAobWluaWJ1ZmZlci1zZWxlY3Rl
ZC13aW5kb3cpKQpAQCAtNDgzMiw5ICs0ODU4LDcgQEAgc3dpdGNoLXRvLW5leHQtYnVmZmVy
CiAgICAgKGNhdGNoICdmb3VuZAogICAgICAgOzsgU2NhbiBXSU5ET1cncyBuZXh0IGJ1ZmZl
cnMgZmlyc3QuCiAgICAgICAoZG9saXN0IChidWZmZXIgbmV4dC1idWZmZXJzKQotCSh3aGVu
IChhbmQgKG9yIChidWZmZXItbGl2ZS1wIGJ1ZmZlcikKLQkJICAgICAgIChub3QgKHNldHEg
a2lsbGVkLWJ1ZmZlcnMKLQkJCQkgIChjb25zIGJ1ZmZlciBraWxsZWQtYnVmZmVycykpKSkK
Kwkod2hlbiAoYW5kIChidWZmZXItbGl2ZS1wIGJ1ZmZlcikKIAkJICAgKG5vdCAoZXEgYnVm
ZmVyIG9sZC1idWZmZXIpKQogICAgICAgICAgICAgICAgICAgIChvciAobnVsbCBwcmVkKSAo
ZnVuY2FsbCBwcmVkIGJ1ZmZlcikpCiAJCSAgIChzZXRxIGVudHJ5IChhc3NxIGJ1ZmZlciAo
d2luZG93LXByZXYtYnVmZmVycyB3aW5kb3cpKSkpCkBAIC00ODY3LDkgKzQ4OTEsNyBAQCBz
d2l0Y2gtdG8tbmV4dC1idWZmZXIKIAkod2hlbiAoYW5kIChub3QgKGVxIG5ldy1idWZmZXIg
KGNhciBlbnRyeSkpKQogICAgICAgICAgICAgICAgICAgIChub3QgKGVxIG9sZC1idWZmZXIg
KGNhciBlbnRyeSkpKQogICAgICAgICAgICAgICAgICAgIChzZXRxIG5ldy1idWZmZXIgKGNh
ciBlbnRyeSkpCi0JCSAgIChvciAoYnVmZmVyLWxpdmUtcCBuZXctYnVmZmVyKQotCQkgICAg
ICAgKG5vdCAoc2V0cSBraWxsZWQtYnVmZmVycwotCQkJCSAgKGNvbnMgbmV3LWJ1ZmZlciBr
aWxsZWQtYnVmZmVycykpKSkKKwkJICAgKGJ1ZmZlci1saXZlLXAgbmV3LWJ1ZmZlcikKICAg
ICAgICAgICAgICAgICAgICAob3IgKG51bGwgcHJlZCkgKGZ1bmNhbGwgcHJlZCBuZXctYnVm
ZmVyKSkpCiAgICAgICAgICAgKGlmIChzd2l0Y2gtdG8tcHJldi1idWZmZXItc2tpcC1wIHNr
aXAgd2luZG93IG5ldy1idWZmZXIpCiAJICAgICAgKHNldHEgc2tpcHBlZCAob3Igc2tpcHBl
ZCBuZXctYnVmZmVyKSkKQEAgLTQ4ODUsMTQgKzQ5MDcsNiBAQCBzd2l0Y2gtdG8tbmV4dC1i
dWZmZXIKICAgICA7OyBSZW1vdmUgYG5ldy1idWZmZXInIGZyb20gYW5kIHJlc3RvcmUgV0lO
RE9XJ3MgbmV4dCBidWZmZXJzLgogICAgIChzZXQtd2luZG93LW5leHQtYnVmZmVycyB3aW5k
b3cgKGRlbHEgbmV3LWJ1ZmZlciBuZXh0LWJ1ZmZlcnMpKQogCi0gICAgOzsgUmVtb3ZlIGtp
bGxlZCBidWZmZXJzIGZyb20gV0lORE9XJ3MgcHJldmlvdXMgYW5kIG5leHQgYnVmZmVycy4K
LSAgICAod2hlbiBraWxsZWQtYnVmZmVycwotICAgICAgKGRvbGlzdCAoYnVmZmVyIGtpbGxl
ZC1idWZmZXJzKQotCShzZXQtd2luZG93LXByZXYtYnVmZmVycwotCSB3aW5kb3cgKGFzc3Et
ZGVsZXRlLWFsbCBidWZmZXIgKHdpbmRvdy1wcmV2LWJ1ZmZlcnMgd2luZG93KSkpCi0JKHNl
dC13aW5kb3ctbmV4dC1idWZmZXJzCi0JIHdpbmRvdyAoZGVscSBidWZmZXIgKHdpbmRvdy1u
ZXh0LWJ1ZmZlcnMgd2luZG93KSkpKSkKLQogICAgIDs7IFJldHVybiBuZXctYnVmZmVyLgog
ICAgIG5ldy1idWZmZXIpKQogCkBAIC01MDQ0LDYgKzUwNTgsMTggQEAgcHJldmlvdXMtYnVm
ZmVyCiAgICAgICAgICAgICAgICAgIChub3QgKG9yIGV4ZWN1dGluZy1rYmQtbWFjcm8gbm9u
aW50ZXJhY3RpdmUpKSkKICAgICAgICAgKHVzZXItZXJyb3IgIk5vIHByZXZpb3VzIGJ1ZmZl
ciIpKSkpKSkKIAorKGRlZmN1c3RvbSBraWxsLWJ1ZmZlci1xdWl0LXdpbmRvd3MgbmlsCisg
ICJOb24tbmlsIG1lYW5zIGtpbGxpbmcgYnVmZmVycyBzaGFsbCBxdWl0IHdpbmRvd3MuCitJ
ZiB0aGlzIGlzIG5pbCwga2lsbGluZyBhIGJ1ZmZlciBtYXkgb25seSBkZWxldGUgd2luZG93
cyBkZWRpY2F0ZWQgdG8KK3RoYXQgYnVmZmVyLiAgT3RoZXJ3aXNlLCBga2lsbC1idWZmZXIn
IGhhcyBgcXVpdC1yZXN0b3JlLXdpbmRvdycgZGVhbAord2l0aCBhbnkgd2luZG93IHNob3dp
bmcgdGhlIGJ1ZmZlciB0byBiZSBraWxsZWQuICBUaGF0IGZ1bmN0aW9uIG1heQorZGVsZXRl
IHN1Y2ggYSB3aW5kb3cgZXZlbiBpZiBpdCdzIG5vdCBkZWRpY2F0ZWQgdG8gaXRzIGJ1ZmZl
ci4gIEFsc28sCitgZGVsZXRlLXdpbmRvd3Mtb24nIHdpbGwgdXNlIGBxdWl0LXJlc3RvcmUt
d2luZG93JyBhcyBmYWxsYmFjayB3aGVuIGEKK3dpbmRvdyBjYW5ub3QgYmUgZGVsZXRlZCBv
dGhlcndpc2UuIgorICA6dHlwZSAnYm9vbGVhbgorICA6dmVyc2lvbiAiMzEuMSIKKyAgOmdy
b3VwICd3aW5kb3dzKQorCiAoZGVmdW4gZGVsZXRlLXdpbmRvd3Mtb24gKCZvcHRpb25hbCBi
dWZmZXItb3ItbmFtZSBmcmFtZSkKICAgIkRlbGV0ZSBhbGwgd2luZG93cyBzaG93aW5nIEJV
RkZFUi1PUi1OQU1FLgogQlVGRkVSLU9SLU5BTUUgbWF5IGJlIGEgYnVmZmVyIG9yIHRoZSBu
YW1lIG9mIGFuIGV4aXN0aW5nIGJ1ZmZlcgpAQCAtNTA3NSwyMSArNTEwMSwyMiBAQCBkZWxl
dGUtd2luZG93cy1vbgogdXNlIFxcW3VuaXZlcnNhbC1hcmd1bWVudF0gMCB0byBzcGVjaWZ5
IGFsbCB3aW5kb3dzIG9ubHkgb24KIHRoZSBjdXJyZW50IHRlcm1pbmFsJ3MgZnJhbWVzLgog
Ci1JZiBhIGZyYW1lJ3Mgcm9vdCB3aW5kb3cgc2hvd3MgdGhlIGJ1ZmZlciBzcGVjaWZpZWQg
YnkKLUJVRkZFUi1PUi1OQU1FIGFuZCBpcyBkZWRpY2F0ZWQgdG8gdGhhdCBidWZmZXIgYW5k
IHRoYXQgZnJhbWUKLWRvZXMgbm90IGhvc3QgdGhlIGFjdGl2ZSBtaW5pYnVmZmVyIHdpbmRv
dyBhbmQgdGhlcmUgaXMgYXQgbGVhc3QKLW9uZSBvdGhlciBmcmFtZSBvbiB0aGF0IGZyYW1l
J3MgdGVybWluYWwsIGRlbGV0ZSB0aGF0IGZyYW1lLgotT3RoZXJ3aXNlLCBkbyBub3QgZGVs
ZXRlIGEgZnJhbWUncyByb290IHdpbmRvdyBpZiBpdCBzaG93cyB0aGUKLWJ1ZmZlciBzcGVj
aWZpZWQgYnkgQlVGRkVSLU9SLU5BTUUgYW5kIGRvIG5vdCBkZWxldGUgYW55IGZyYW1lJ3MK
LW1haW4gd2luZG93IHNob3dpbmcgdGhhdCBidWZmZXIgZWl0aGVyLiAgUmF0aGVyLCBpbiBh
bnkgc3VjaAotY2FzZSwgY2FsbCBgc3dpdGNoLXRvLXByZXYtYnVmZmVyJyB0byBzaG93IGFu
b3RoZXIgYnVmZmVyIGluIHRoYXQKLXdpbmRvdyBhbmQgbWFrZSBzdXJlIHRoZSB3aW5kb3cg
aXMgbm8gbW9yZSBkZWRpY2F0ZWQgdG8gaXRzCi1idWZmZXIuCi0KLUlmIHRoZSBidWZmZXIg
c3BlY2lmaWVkIGJ5IEJVRkZFUi1PUi1OQU1FIGlzIHNob3duIGluIGEKLW1pbmlidWZmZXIg
d2luZG93LCBkbyBub3RoaW5nIGZvciB0aGF0IHdpbmRvdy4gIEZvciBhbnkgd2luZG93Ci10
aGF0IGRvZXMgbm90IHNob3cgdGhhdCBidWZmZXIsIHJlbW92ZSB0aGUgYnVmZmVyIGZyb20g
dGhhdAotd2luZG93J3MgbGlzdHMgb2YgcHJldmlvdXMgYW5kIG5leHQgYnVmZmVycy4iCitJ
ZiBhIGZyYW1lJ3Mgcm9vdCB3aW5kb3cgc2hvd3MgdGhlIGJ1ZmZlciBzcGVjaWZpZWQgYnkg
QlVGRkVSLU9SLU5BTUUsCitpcyBkZWRpY2F0ZWQgdG8gdGhhdCBidWZmZXIsIHRoYXQgZnJh
bWUgZG9lcyBub3QgaG9zdCB0aGUgYWN0aXZlCittaW5pYnVmZmVyIHdpbmRvdyBhbmQgdGhl
cmUgaXMgYXQgbGVhc3Qgb25lIG90aGVyIGZyYW1lIG9uIHRoYXQgZnJhbWUncwordGVybWlu
YWwsIGRlbGV0ZSB0aGF0IGZyYW1lLiAgT3RoZXJ3aXNlLCBkbyBub3QgZGVsZXRlIGEgZnJh
bWUncyByb290Cit3aW5kb3cgaWYgaXQgc2hvd3MgdGhlIGJ1ZmZlciBzcGVjaWZpZWQgYnkg
QlVGRkVSLU9SLU5BTUUgYW5kIGRvIG5vdAorZGVsZXRlIGFueSBmcmFtZSdzIG1haW4gd2lu
ZG93IHNob3dpbmcgdGhhdCBidWZmZXIgZWl0aGVyLiAgUmF0aGVyLCBpbgorYW55IHN1Y2gg
Y2FzZSwgY2FsbCBlaXRoZXIgYHF1aXQtcmVzdG9yZS13aW5kb3cnIChwcm92aWRlZAorYGtp
bGwtYnVmZmVyLXF1aXQtd2luZG93cycgaXMgbm9uLW5pbCkgb3IgYHN3aXRjaC10by1wcmV2
LWJ1ZmZlcicgdG8KK3Nob3cgYW5vdGhlciBidWZmZXIgaW4gdGhhdCB3aW5kb3cgYW5kIG1h
a2Ugc3VyZSB0aGUgd2luZG93IGlzIG5vIG1vcmUKK2RlZGljYXRlZCB0byBpdHMgYnVmZmVy
LgorCitJZiB0aGUgYnVmZmVyIHNwZWNpZmllZCBieSBCVUZGRVItT1ItTkFNRSBpcyBzaG93
biBpbiBhIG1pbmlidWZmZXIKK3dpbmRvdywgZG8gbm90aGluZyBmb3IgdGhhdCB3aW5kb3cu
ICBGb3IgYW55IHdpbmRvdyB0aGF0IGRvZXMgbm90IHNob3cKK3RoYXQgYnVmZmVyLCByZW1v
dmUgdGhlIGJ1ZmZlciBmcm9tIHRoYXQgd2luZG93J3MgbGlzdHMgb2YgcHJldmlvdXMgYW5k
CituZXh0IGJ1ZmZlcnMgYW5kIHJlbW92ZSBhbnkgYHF1aXQtcmVzdG9yZScgYW5kIGBxdWl0
LXJlc3RvcmUtcHJldicKK3BhcmFtZXRlcnMgbmFtaW5nIGl0LiIKICAgKGludGVyYWN0aXZl
CiAgICAobGV0ICgoZnJhbWUgKGNvbmQKICAgICAgICAgICAgICAgICAgKChhbmQgKG51bWJl
cnAgY3VycmVudC1wcmVmaXgtYXJnKQpAQCAtNTEwNywxMSArNTEzNCwxMiBAQCBkZWxldGUt
d2luZG93cy1vbgogICAgICAgICAgICBmcmFtZSkpKQogICAobGV0ICgoYnVmZmVyICh3aW5k
b3ctbm9ybWFsaXplLWJ1ZmZlciBidWZmZXItb3ItbmFtZSkpCiAJOzsgSGFuZGxlIHRoZSAi
aW52ZXJ0ZWQiIG1lYW5pbmcgb2YgdGhlIEZSQU1FIGFyZ3VtZW50IHdydCBvdGhlcgotCTs7
IGB3aW5kb3ctbGlzdC0xJyBiYXNlZCBmdW5jdGlvbi4KLQkoYWxsLWZyYW1lcyAoY29uZCAo
KG5vdCBmcmFtZSkgdCkgKChlcSBmcmFtZSB0KSBuaWwpICh0IGZyYW1lKSkpKQotICAgIChk
b2xpc3QgKHdpbmRvdyAod2luZG93LWxpc3QtMSBuaWwgbmlsIGFsbC1mcmFtZXMpKQorCTs7
IGB3aW5kb3ctbGlzdC0xJyBiYXNlZCBmdW5jdGlvbnMuCisJKGZyYW1lcyAoY29uZCAoKG5v
dCBmcmFtZSkgdCkgKChlcSBmcmFtZSB0KSBuaWwpICh0IGZyYW1lKSkpKQorICAgIChkb2xp
c3QgKHdpbmRvdyAod2luZG93LWxpc3QtMSBuaWwgJ25vbWluaSBmcmFtZXMpKQogICAgICAg
KGlmIChlcSAod2luZG93LWJ1ZmZlciB3aW5kb3cpIGJ1ZmZlcikKLQkgIChsZXQgKChkZWxl
dGFibGUgKHdpbmRvdy1kZWxldGFibGUtcCB3aW5kb3cpKQorCSAgOzsgRG9uJ3QgcnVuICd3
aW5kb3ctZGVsZXRhYmxlLWZ1bmN0aW9ucycuCisJICAobGV0ICgoZGVsZXRhYmxlICh3aW5k
b3ctZGVsZXRhYmxlLXAgd2luZG93IHQpKQogICAgICAgICAgICAgICAgIChkZWRpY2F0ZWQg
KHdpbmRvdy1kZWRpY2F0ZWQtcCB3aW5kb3cpKSkKIAkgICAgKGNvbmQKIAkgICAgICgoYW5k
IChlcSBkZWxldGFibGUgJ2ZyYW1lKSBkZWRpY2F0ZWQpCkBAIC01MTIwLDQzICs1MTQ4LDc3
IEBAIGRlbGV0ZS13aW5kb3dzLW9uCiAJICAgICAoKGVxIGRlbGV0YWJsZSB0KQogCSAgICAg
IDs7IERlbGV0ZSB3aW5kb3cuCiAJICAgICAgKGRlbGV0ZS13aW5kb3cgd2luZG93KSkKKwkg
ICAgIChraWxsLWJ1ZmZlci1xdWl0LXdpbmRvd3MKKwkgICAgICAocXVpdC1yZXN0b3JlLXdp
bmRvdyB3aW5kb3cgJ2J1cnkpCisJICAgICAgKHdoZW4gKHdpbmRvdy1saXZlLXAgd2luZG93
KQorCQk7OyBVbnJlY29yZCBCVUZGRVIgaW4gdGhpcyB3aW5kb3cuCisJCSh1bnJlY29yZC13
aW5kb3ctYnVmZmVyIHdpbmRvdyBidWZmZXIgdCkpKQogCSAgICAgKHQKIAkgICAgICA7OyBJ
biB3aW5kb3cgc3dpdGNoIHRvIHByZXZpb3VzIGJ1ZmZlci4KIAkgICAgICAoc2V0LXdpbmRv
dy1kZWRpY2F0ZWQtcCB3aW5kb3cgbmlsKQogCSAgICAgIChzd2l0Y2gtdG8tcHJldi1idWZm
ZXIgd2luZG93ICdidXJ5KQotICAgICAgICAgICAgICA7OyBSZXN0b3JlIHRoZSBkZWRpY2F0
ZWQgJ3NpZGUnIGZsYWcuCi0gICAgICAgICAgICAgICh3aGVuIChlcSBkZWRpY2F0ZWQgJ3Np
ZGUpCi0gICAgICAgICAgICAgICAgKHNldC13aW5kb3ctZGVkaWNhdGVkLXAgd2luZG93ICdz
aWRlKSkpKSkKKwkgICAgICA7OyBSZXN0b3JlIHRoZSBkZWRpY2F0ZWQgJ3NpZGUnIGZsYWcu
CisJICAgICAgKHdoZW4gKGVxIGRlZGljYXRlZCAnc2lkZSkKKyAgICAgICAgICAgICAgICAo
c2V0LXdpbmRvdy1kZWRpY2F0ZWQtcCB3aW5kb3cgJ3NpZGUpKQorCSAgICAgICh3aGVuICh3
aW5kb3ctbGl2ZS1wIHdpbmRvdykKKwkJOzsgVW5yZWNvcmQgQlVGRkVSIGluIHRoaXMgd2lu
ZG93LgorCQkodW5yZWNvcmQtd2luZG93LWJ1ZmZlciB3aW5kb3cgYnVmZmVyIHQpKSkpKQog
CTs7IElmIGEgd2luZG93IGRvZXNuJ3Qgc2hvdyBCVUZGRVIsIHVucmVjb3JkIEJVRkZFUiBp
biBpdC4KLQkodW5yZWNvcmQtd2luZG93LWJ1ZmZlciB3aW5kb3cgYnVmZmVyKSkpKSkKKwko
dW5yZWNvcmQtd2luZG93LWJ1ZmZlciB3aW5kb3cgYnVmZmVyIHQpKSkpKQogCiAoZGVmdW4g
cmVwbGFjZS1idWZmZXItaW4td2luZG93cyAoJm9wdGlvbmFsIGJ1ZmZlci1vci1uYW1lKQog
ICAiUmVwbGFjZSBCVUZGRVItT1ItTkFNRSB3aXRoIHNvbWUgb3RoZXIgYnVmZmVyIGluIGFs
bCB3aW5kb3dzIHNob3dpbmcgaXQuCi1CVUZGRVItT1ItTkFNRSBtYXkgYmUgYSBidWZmZXIg
b3IgdGhlIG5hbWUgb2YgYW4gZXhpc3RpbmcgYnVmZmVyCi1hbmQgZGVmYXVsdHMgdG8gdGhl
IGN1cnJlbnQgYnVmZmVyLgotCi1XaXRoIHRoZSBleGNlcHRpb24gb2Ygc2lkZSB3aW5kb3dz
LCB3aGVuIGEgd2luZG93IHNob3dpbmcgQlVGRkVSLU9SLU5BTUUKLWlzIGRlZGljYXRlZCwg
dGhhdCB3aW5kb3cgaXMgZGVsZXRlZC4gIElmIHRoYXQgd2luZG93IGlzIHRoZSBvbmx5IHdp
bmRvdwotb24gaXRzIGZyYW1lLCB0aGUgZnJhbWUgaXMgZGVsZXRlZCB0b28gd2hlbiB0aGVy
ZSBhcmUgb3RoZXIgZnJhbWVzIGxlZnQuCi1JZiB0aGVyZSBhcmUgbm8gb3RoZXIgZnJhbWVz
IGxlZnQsIHNvbWUgb3RoZXIgYnVmZmVyIGlzIGRpc3BsYXllZCBpbiB0aGF0CitCVUZGRVIt
T1ItTkFNRSBtYXkgYmUgYSBidWZmZXIgb3IgdGhlIG5hbWUgb2YgYW4gZXhpc3RpbmcgYnVm
ZmVyIGFuZAorZGVmYXVsdHMgdG8gdGhlIGN1cnJlbnQgYnVmZmVyLiAgTWluaWJ1ZmZlciB3
aW5kb3dzIGFyZSBub3QgY29uc2lkZXJlZC4KKworSWYgdGhlIG9wdGlvbiBga2lsbC1idWZm
ZXItcXVpdC13aW5kb3dzJyBpcyBuaWwsIGJlaGF2ZSBhcyBmb2xsb3dzOiBXaXRoCit0aGUg
ZXhjZXB0aW9uIG9mIHNpZGUgd2luZG93cywgd2hlbiBhIHdpbmRvdyBzaG93aW5nIEJVRkZF
Ui1PUi1OQU1FIGlzCitkZWRpY2F0ZWQsIGRlbGV0ZSB0aGF0IHdpbmRvdy4gIElmIHRoYXQg
d2luZG93IGlzIHRoZSBvbmx5IHdpbmRvdyBvbiBpdHMKK2ZyYW1lLCBkZWxldGUgaXRzIGZy
YW1lIHdoZW4gdGhlcmUgYXJlIG90aGVyIGZyYW1lcyBsZWZ0LiAgSW4gYW55IG90aGVyCitj
YXNlLCBjYWxsIGBzd2l0Y2gtdG8tcHJldi1idWZmZXInIHRvIGRpc3BsYXkgc29tZSBvdGhl
ciBidWZmZXIgaW4gdGhhdAogd2luZG93LgogCi1UaGlzIGZ1bmN0aW9uIHJlbW92ZXMgdGhl
IGJ1ZmZlciBkZW5vdGVkIGJ5IEJVRkZFUi1PUi1OQU1FIGZyb20KLWFsbCB3aW5kb3ctbG9j
YWwgYnVmZmVyIGxpc3RzLiIKK0lmIGBraWxsLWJ1ZmZlci1xdWl0LXdpbmRvd3MnIGlzIG5v
bi1uaWwsIGNhbGwgYHF1aXQtcmVzdG9yZS13aW5kb3cnIGZvcgorYW55IHdpbmRvdyBzaG93
aW5nIEJVRkZFUi1PUi1OQU1FIHdpdGggdGhlIGFyZ3VtZW50IEJVUlktT1ItS0lMTCBzZXQg
dG8KK2BraWxsaW5nJyB0byBhdm9pZCB0aGF0IHRoZSBsYXR0ZXIga2lsbHMgdGhlIGJ1ZmZl
ciBwcmVtYXR1cmVseS4KKworSW4gZWl0aGVyIGNhc2UsIHJlbW92ZSB0aGUgYnVmZmVyIGRl
bm90ZWQgYnkgQlVGRkVSLU9SLU5BTUUgZnJvbSB0aGUKK2xpc3RzIG9mIHByZXZpb3VzIGFu
ZCBuZXh0IGJ1ZmZlcnMgb2YgYWxsIHdpbmRvd3MgYW5kIHJlbW92ZSBhbnkKK2BxdWl0LXJl
c3RvcmUnIG9yIGBxdWl0LXJlc3RvcmUtcHJldicgcGFyYW1ldGVycyBtZW50aW9uaW5nIGl0
LgorCitJZiwgZm9yIGFueSB3aW5kb3cgc2hvd2luZyBCVUZGRVItT1ItTkFNRSBydW5uaW5n
IHRoZSBhYm5vcm1hbCBob29rCitgd2luZG93LWRlbGV0YWJsZS1mdW5jdGlvbnMnIHJldHVy
bnMgbmlsLCBkbyBub3QgZGVsZXRlIHRoYXQgd2luZG93IGJ1dAorc2hvdyBzb21lIG90aGVy
IGJ1ZmZlciBpbiB0aGF0IHdpbmRvdy4KKworVGhpcyBmdW5jdGlvbiBpcyBjYWxsZWQgYnkg
YGtpbGwtYnVmZmVyJyB3aGljaCBraWxscyB0aGUgYnVmZmVyCitzcGVjaWZpZWQgYnkgYGJ1
ZmZlci1vci1uYW1lJyBhZnRlcndhcmRzLiAgSXQgbmV2ZXIga2lsbHMgYSBidWZmZXIgYnkK
K2l0c2VsZi4iCiAgIChpbnRlcmFjdGl2ZSAiYkJ1ZmZlciB0byByZXBsYWNlOiAiKQogICAo
bGV0ICgoYnVmZmVyICh3aW5kb3ctbm9ybWFsaXplLWJ1ZmZlciBidWZmZXItb3ItbmFtZSkp
KQorICAgIDs7IFNjYW4gYWxsIHdpbmRvd3MuICBXZSBoYXZlIHRvIHVucmVjb3JkIEJVRkZF
Ui1PUi1OQU1FIGluIHRob3NlCisgICAgOzsgbm90IHNob3dpbmcgaXQuCiAgICAgKGRvbGlz
dCAod2luZG93ICh3aW5kb3ctbGlzdC0xIG5pbCBuaWwgdCkpCi0gICAgICAoaWYgKGVxICh3
aW5kb3ctYnVmZmVyIHdpbmRvdykgYnVmZmVyKQotICAgICAgICAgIDs7IERlbGV0ZSBhIGRl
ZGljYXRlZCB3aW5kb3cgdW5sZXNzIGl0IGlzIGEgc2lkZSB3aW5kb3cuCi0gICAgICAgICAg
KGxldCAoKGRlZGljYXRlZC1zaWRlIChlcSAod2luZG93LWRlZGljYXRlZC1wIHdpbmRvdykg
J3NpZGUpKSkKLSAgICAgICAgICAgICh3aGVuIChvciBkZWRpY2F0ZWQtc2lkZSAobm90ICh3
aW5kb3ctLWRlbGV0ZSB3aW5kb3cgdCB0KSkpCi0gICAgICAgICAgICAgIDs7IFN3aXRjaCB0
byBhbm90aGVyIGJ1ZmZlciBpbiB0aGF0IHdpbmRvdy4KLSAgICAgICAgICAgICAgKHNldC13
aW5kb3ctZGVkaWNhdGVkLXAgd2luZG93IG5pbCkKLSAgICAgICAgICAgICAgKGlmIChzd2l0
Y2gtdG8tcHJldi1idWZmZXIgd2luZG93ICdraWxsKQorICAgICAgKHdoZW4gKGVxICh3aW5k
b3ctYnVmZmVyIHdpbmRvdykgYnVmZmVyKQorCShpZiBraWxsLWJ1ZmZlci1xdWl0LXdpbmRv
d3MKKwkgICAgKHF1aXQtcmVzdG9yZS13aW5kb3cgd2luZG93ICdraWxsaW5nKQorCSAgKGxl
dCAoKGRlZGljYXRlZC1zaWRlIChlcSAod2luZG93LWRlZGljYXRlZC1wIHdpbmRvdykgJ3Np
ZGUpKSkKKyAgICAgICAgICAgICh3aGVuIChvciBkZWRpY2F0ZWQtc2lkZSAobm90ICh3aW5k
b3ctLWRlbGV0ZSB3aW5kb3cgdCAna2lsbCkpKQorCSAgICAgIDs7IFN3aXRjaCB0byBhbm90
aGVyIGJ1ZmZlciBpbiB0aGF0IHdpbmRvdy4KKwkgICAgICAoc2V0LXdpbmRvdy1kZWRpY2F0
ZWQtcCB3aW5kb3cgbmlsKQorCSAgICAgIChpZiAoc3dpdGNoLXRvLXByZXYtYnVmZmVyIHdp
bmRvdyAna2lsbCkKICAgICAgICAgICAgICAgICAgIChhbmQgZGVkaWNhdGVkLXNpZGUgKHNl
dC13aW5kb3ctZGVkaWNhdGVkLXAgd2luZG93ICdzaWRlKSkKLSAgICAgICAgICAgICAgICAo
d2luZG93LS1kZWxldGUgd2luZG93IG5pbCAna2lsbCkpKSkKLQk7OyBVbnJlY29yZCBCVUZG
RVIgaW4gV0lORE9XLgotCSh1bnJlY29yZC13aW5kb3ctYnVmZmVyIHdpbmRvdyBidWZmZXIp
KSkpKQorCQkod2luZG93LS1kZWxldGUgd2luZG93IG5pbCAna2lsbCkpKSkpKQorCisJKHdo
ZW4gKHdpbmRvdy1saXZlLXAgd2luZG93KQorCSAgOzsgSWYgdGhlIGZvdXJ0aCBlbGVtZW50
cyBvZiB0aGUgJ3F1aXQtcmVzdG9yZScgb3IKKwkgIDs7ICdxdWl0LXJlc3RvcmUtcHJldicg
cGFyYW1ldGVycyBlcXVhbCBCVUZGRVIsIHRoZXNlCisJICA7OyBwYXJhbWV0ZXJzIGJlY29t
ZSB1c2VsZXNzIC0gaW4gJ3F1aXQtcmVzdG9yZS13aW5kb3cnIHRoZQorCSAgOzsgZm91cnRo
IGVsZW1lbnQgbXVzdCBlcXVhbCB0aGUgYnVmZmVyIG9mIFdJTkRPVyBpbiBvcmRlciB0bwor
CSAgOzsgdXNlIHRoYXQgcGFyYW1ldGVyLiAgSWYgQlVGRkVSIGlzIG1lbnRpb25lZCBpbiB0
aGUgc2Vjb25kCisJICA7OyBlbGVtZW50IG9mIHRoZSBwYXJhbWV0ZXIsICdxdWl0LXJlc3Rv
cmUtd2luZG93JyBjYW5ub3QKKwkgIDs7IHBvc3NpYmx5IHNob3cgQlVGRkVSIGluc3RlYWQ7
IHNvIHRoaXMgcGFyYW1ldGVyIGJlY29tZXMKKwkgIDs7IHVzZWxlc3MgdG9vLgorCSAgKHVu
cmVjb3JkLXdpbmRvdy1idWZmZXIgd2luZG93IGJ1ZmZlciB0KSkpKSkKIAogKGRlZmN1c3Rv
bSBxdWl0LXdpbmRvdy1ob29rIG5pbAogICAiSG9vayBydW4gYmVmb3JlIHBlcmZvcm1pbmcg
YW55IG90aGVyIGFjdGlvbnMgaW4gdGhlIGBxdWl0LXdpbmRvdycgY29tbWFuZC4iCkBAIC01
MTY0LDYgKzUyMjYsMjMgQEAgcXVpdC13aW5kb3ctaG9vawogICA6dmVyc2lvbiAiMjcuMSIK
ICAgOmdyb3VwICd3aW5kb3dzKQogCisoZGVmY3VzdG9tIHF1aXQtcmVzdG9yZS13aW5kb3ct
bm8tc3dpdGNoIG5pbAorICAiTm9uLW5pbCBtZWFucyBgcXVpdC1yZXN0b3JlLXdpbmRvdycg
cHJlZmVyYWJseSB3b24ndCBzd2l0Y2ggYnVmZmVycy4KK0lmIHRoaXMgaXMgbmlsLCBgcXVp
dC1yZXN0b3JlLXdpbmRvdycgdW5jb25kaXRpb25hbGx5IGNhbGxzCitgc3dpdGNoLXRvLXBy
ZXYtYnVmZmVyJyB1bmxlc3MgdGhlIHdpbmRvdyBpcyBkZWRpY2F0ZWQgb3IgaGFzIGJlZW4g
bWFkZQorYnkgYGRpc3BsYXktYnVmZmVyJy4gIElmIHRoaXMgaXMgdCwgYHF1aXQtcmVzdG9y
ZS13aW5kb3cnIHdpbGwgdHJ5IHRvCitkZWxldGUgdGhlIHdpbmRvdyB1bmxlc3MgYSBsaXZl
IGJ1ZmZlciBleGlzdHMgdGhhdCB3YXMgcHJldmlvdXNseSBzaG93bgoraW4gdGhhdCB3aW5k
b3cuICBJZiB0aGlzIGlzIHRoZSBzeW1ib2wgYHNraXAtZmlyc3QnLCBpdCB3aWxsIHN3aXRj
aCB0byBhCitwcmV2aW91cyBidWZmZXIgb25seSBpZiB0aGVyZSBhcmUgYXQgbGVhc3QgdHdv
IG9mIHRoZW0uCisKK1RoZSBuZXQgZWZmZWN0IG9mIG1ha2luZyB0aGlzIG5vbi1uaWwgaXMg
dGhhdCBpZiBgcXVpdC1yZXN0b3JlLXdpbmRvdycKK2RvZXNuJ3QgZmluZCBhIHN1aXRhYmxl
IGJ1ZmZlciBwcmV2aW91c2x5IHNob3duIGluIHRoZSB3aW5kb3csIGl0IHdpbGwKK3JhdGhl
ciB0cnkgdG8gZGVsZXRlIHRoZSB3aW5kb3cgKGFuZCBtYXliZSBpdHMgZnJhbWUpIHRoYW4g
c2hvdyBhIGJ1ZmZlcgordGhlIHdpbmRvdyBoYXMgbmV2ZXIgc2hvd24gYmVmb3JlLiIKKyAg
OnR5cGUgJ2Jvb2xlYW4KKyAgOnZlcnNpb24gIjMxLjEiCisgIDpncm91cCAnd2luZG93cykK
KwogKGRlZnVuIHdpbmRvdy0tcXVpdC1yZXN0b3JlLXNlbGVjdC13aW5kb3cgKHdpbmRvdykK
ICAgIlNlbGVjdCBXSU5ET1cgYWZ0ZXIgaGF2aW5nIHF1aXQgYW5vdGhlciBvbmUuCiBEbyBu
b3Qgc2VsZWN0IGFuIGluYWN0aXZlIG1pbmlidWZmZXIgd2luZG93LiIKQEAgLTUxNzYsMTcg
KzUyNTUsMjEgQEAgcXVpdC1yZXN0b3JlLXdpbmRvdwogICAiUXVpdCBXSU5ET1cgYW5kIGRl
YWwgd2l0aCBpdHMgYnVmZmVyLgogV0lORE9XIG11c3QgYmUgYSBsaXZlIHdpbmRvdyBhbmQg
ZGVmYXVsdHMgdG8gdGhlIHNlbGVjdGVkIG9uZS4KIAotQWNjb3JkaW5nIHRvIGluZm9ybWF0
aW9uIHN0b3JlZCBpbiBXSU5ET1cncyBgcXVpdC1yZXN0b3JlJyB3aW5kb3cKLXBhcmFtZXRl
ciBlaXRoZXIgKDEpIGRlbGV0ZSBXSU5ET1cgYW5kIGl0cyBmcmFtZSwgKDIpIGRlbGV0ZQot
V0lORE9XIGJ1dCBsZWF2ZSBpdHMgZnJhbWUgYWxvbmUsICgzKSByZXN0b3JlIHRoZSBidWZm
ZXIKLXByZXZpb3VzbHkgc2hvd24gaW4gV0lORE9XLCBvciAoNCkgbWFrZSBXSU5ET1cgZGlz
cGxheSBzb21lIG90aGVyCi1idWZmZXIuICBJZiBXSU5ET1cgaXMgbm90IGRlbGV0ZWQsIHJl
c2V0IGl0cyBgcXVpdC1yZXN0b3JlJwotcGFyYW1ldGVyIHRvIG5pbC4gIFNlZSBJbmZvIG5v
ZGUgYChlbGlzcCkgUXVpdHRpbmcgV2luZG93cycgZm9yCi1tb3JlIGRldGFpbHMuCitBY2Nv
cmRpbmcgdG8gaW5mb3JtYXRpb24gc3RvcmVkIGluIFdJTkRPVydzIGBxdWl0LXJlc3RvcmUn
IGFuZAorYHF1aXQtcmVzdG9yZS1wcmV2JyBwYXJhbWV0ZXJzIGVpdGhlciAoMSkgZGVsZXRl
IFdJTkRPVyBhbmQgaXRzCitmcmFtZSwgKDIpIGRlbGV0ZSBXSU5ET1cgYnV0IGxlYXZlIGl0
cyBmcmFtZSBhbG9uZSwgKDMpIHJlc3RvcmUgdGhlCitidWZmZXIgcHJldmlvdXNseSBzaG93
biBpbiBXSU5ET1csIG9yICg0KSBtYWtlIFdJTkRPVyBkaXNwbGF5IHNvbWUgb3RoZXIKK2J1
ZmZlci4gIEluIGNhc2UgKDMpIHNldCBhbnkgb2YgdGhlc2UgcGFyYW1ldGVycyB0byBuaWwg
aWYgaXQgaGFzIGJlZW4KK3VzZWQgdG8gcmVzdG9yZSB0aGUgcHJldmlvdXNseSBzaG93biBi
dWZmZXIuICBTZWUgSW5mbyBub2RlIGAoZWxpc3ApCitRdWl0dGluZyBXaW5kb3dzJyBmb3Ig
bW9yZSBkZXRhaWxzLgogCi1JZiBXSU5ET1cncyBkZWRpY2F0ZWQgZmxhZyBpcyB0LCB0cnkg
dG8gZGVsZXRlIFdJTkRPVy4gIElmIGl0Ci1lcXVhbHMgdGhlIHZhbHVlIGBzaWRlJywgcmVz
dG9yZSB0aGF0IHZhbHVlIHdoZW4gV0lORE9XIGlzIG5vdAotZGVsZXRlZC4KK0lmIFdJTkRP
VydzIGRlZGljYXRlZCBmbGFnIGlzIHQsIHRyeSB0byBkZWxldGUgV0lORE9XLiAgSWYgaXQg
ZXF1YWxzIHRoZQordmFsdWUgYHNpZGUnLCByZXN0b3JlIHRoYXQgdmFsdWUgd2hlbiBXSU5E
T1cgaXMgbm90IGRlbGV0ZWQuICBXaGV0aGVyCitXSU5ET1cgb3IgaXRzIGZyYW1lIGdldCBk
ZWxldGVkIGNhbiBiZSBmdXJ0aGVyIGNvbnRyb2xsZWQgdmlhIHRoZSBvcHRpb24KK2BxdWl0
LXJlc3RvcmUtd2luZG93LW5vLXN3aXRjaCcuCisKK0lmIHJ1bm5pbmcgdGhlIGFibm9ybWFs
IGhvb2sgYHdpbmRvdy1kZWxldGFibGUtZnVuY3Rpb25zJyByZXR1cm5zIG5pbCwKK2RvIG5v
dCBkZWxldGUgV0lORE9XIGJ1dCBzaG93IHNvbWUgb3RoZXIgYnVmZmVyIGluIGl0LgogCiBP
cHRpb25hbCBzZWNvbmQgYXJndW1lbnQgQlVSWS1PUi1LSUxMIHRlbGxzIGhvdyB0byBwcm9j
ZWVkIHdpdGgKIHRoZSBidWZmZXIgb2YgV0lORE9XLiAgVGhlIGZvbGxvd2luZyB2YWx1ZXMg
YXJlIGhhbmRsZWQ6CkBAIC01MjA2LDIxICs1Mjg5LDMxIEBAIHF1aXQtcmVzdG9yZS13aW5k
b3cKICAgbW9zdCByZWxpYWJsZSByZW1lZHkgdG8gbm90IGhhdmUgYHN3aXRjaC10by1wcmV2
LWJ1ZmZlcicgc3dpdGNoCiAgIHRvIHRoaXMgYnVmZmVyIGFnYWluIHdpdGhvdXQga2lsbGlu
ZyB0aGUgYnVmZmVyLgogCi1ga2lsbCcgbWVhbnMgdG8ga2lsbCBXSU5ET1cncyBidWZmZXIu
IgorYGtpbGwnIG1lYW5zIHRvIGtpbGwgV0lORE9XJ3MgYnVmZmVyLgorCitga2lsbGluZycg
aXMgbGlrZSBga2lsbCcgYnV0IG1lYW5zIHRoYXQgV0lORE9XJ3MgYnVmZmVyIHdpbGwgZ2V0
IGtpbGxlZAorZWxzZXdoZXJlLiAgVGhpcyB2YWx1ZSBpcyB1c2VkIGJ5IGByZXBsYWNlLWJ1
ZmZlci1pbi13aW5kb3dzJyBhbmQKK2BxdWl0LXdpbmRvd3Mtb24nLgorCitgYnVyeWluZycg
aXMgbGlrZSBgYnVyeScgYnV0IG1lYW5zIHRoYXQgV0lORE9XJ3MgYnVmZmVyIHdpbGwgZ2V0
IGJ1cmllZAorZWxzZXdoZXJlLiAgVGhpcyB2YWx1ZSBpcyB1c2VkIGJ5IGBxdWl0LXdpbmRv
d3Mtb24nLiIKICAgKHNldHEgd2luZG93ICh3aW5kb3ctbm9ybWFsaXplLXdpbmRvdyB3aW5k
b3cgdCkpCiAgIChsZXQqICgoYnVmZmVyICh3aW5kb3ctYnVmZmVyIHdpbmRvdykpCiAJIChx
dWl0LXJlc3RvcmUgKHdpbmRvdy1wYXJhbWV0ZXIgd2luZG93ICdxdWl0LXJlc3RvcmUpKQor
CSAocXVpdC1yZXN0b3JlLXByZXYgKHdpbmRvdy1wYXJhbWV0ZXIgd2luZG93ICdxdWl0LXJl
c3RvcmUtcHJldikpCiAJIChxdWl0LXJlc3RvcmUtMiAobnRoIDIgcXVpdC1yZXN0b3JlKSkK
KwkgKHF1aXQtcmVzdG9yZS1wcmV2LTIgKG50aCAyIHF1aXQtcmVzdG9yZS1wcmV2KSkKICAg
ICAgICAgIChwcmV2LWJ1ZmZlciAoY2F0Y2ggJ3ByZXYtYnVmZmVyCiAgICAgICAgICAgICAg
ICAgICAgICAgICAoZG9saXN0IChidWYgKHdpbmRvdy1wcmV2LWJ1ZmZlcnMgd2luZG93KSkK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgKHVubGVzcyAoZXEgKGNhciBidWYpIGJ1ZmZl
cikKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodGhyb3cgJ3ByZXYtYnVmZmVyIChj
YXIgYnVmKSkpKSkpCiAgICAgICAgICAoZGVkaWNhdGVkICh3aW5kb3ctZGVkaWNhdGVkLXAg
d2luZG93KSkKLQkgcXVhZCBlbnRyeSkKKwkgcXVhZCBlbnRyeSByZXNldC1wcmV2KQogICAg
IChjb25kCiAgICAgIDs7IEZpcnN0IHRyeSB0byBkZWxldGUgZGVkaWNhdGVkIHdpbmRvd3Mg
dGhhdCBhcmUgbm90IHNpZGUgd2luZG93cy4KICAgICAgKChhbmQgZGVkaWNhdGVkIChub3Qg
KGVxIGRlZGljYXRlZCAnc2lkZSkpCi0gICAgICAgICAgICh3aW5kb3ctLWRlbGV0ZSB3aW5k
b3cgJ2RlZGljYXRlZCAoZXEgYnVyeS1vci1raWxsICdraWxsKSkpCisgICAgICAgICAgICh3
aW5kb3ctLWRlbGV0ZQorCSAgICB3aW5kb3cgJ2RlZGljYXRlZCAobWVtcSBidXJ5LW9yLWtp
bGwgJyhraWxsIGtpbGxpbmcpKSkpCiAgICAgICA7OyBJZiB0aGUgcHJldmlvdXNseSBzZWxl
Y3RlZCB3aW5kb3cgaXMgc3RpbGwgYWxpdmUsIHNlbGVjdCBpdC4KICAgICAgICh3aW5kb3ct
LXF1aXQtcmVzdG9yZS1zZWxlY3Qtd2luZG93IHF1aXQtcmVzdG9yZS0yKSkKICAgICAgKChh
bmQgKG5vdCBwcmV2LWJ1ZmZlcikKQEAgLTUyNDEsMTAgKzUzMzQsMjcgQEAgcXVpdC1yZXN0
b3JlLXdpbmRvdwogCSAgICh3aW5kb3ctLWRlbGV0ZSB3aW5kb3cgbmlsIChlcSBidXJ5LW9y
LWtpbGwgJ2tpbGwpKSkKICAgICAgIDs7IElmIHRoZSBwcmV2aW91c2x5IHNlbGVjdGVkIHdp
bmRvdyBpcyBzdGlsbCBhbGl2ZSwgc2VsZWN0IGl0LgogICAgICAgKHdpbmRvdy0tcXVpdC1y
ZXN0b3JlLXNlbGVjdC13aW5kb3cgcXVpdC1yZXN0b3JlLTIpKQotICAgICAoKGFuZCAobGlz
dHAgKHNldHEgcXVhZCAobnRoIDEgcXVpdC1yZXN0b3JlKSkpCi0JICAgKGJ1ZmZlci1saXZl
LXAgKGNhciBxdWFkKSkKLQkgICAoZXEgKG50aCAzIHF1aXQtcmVzdG9yZSkgYnVmZmVyKSkK
LSAgICAgIDs7IFNob3cgYW5vdGhlciBidWZmZXIgc3RvcmVkIGluIHF1aXQtcmVzdG9yZSBw
YXJhbWV0ZXIuCisgICAgICgoYW5kIChvciAoYW5kIHF1aXQtcmVzdG9yZS13aW5kb3ctbm8t
c3dpdGNoIChub3QgcHJldi1idWZmZXIpKQorCSAgICAgICA7OyBJZ25vcmUgZmlyc3Qgb2Yg
dGhlIHByZXZpb3VzIGJ1ZmZlcnMgaWYKKwkgICAgICAgOzsgJ3F1aXQtcmVzdG9yZS13aW5k
b3ctbm8tc3dpdGNoJyBzYXlzIHNvLgorCSAgICAgICAoYW5kIChlcSBxdWl0LXJlc3RvcmUt
d2luZG93LW5vLXN3aXRjaCAnc2tpcC1maXJzdCkKKwkJICAgIChub3QgKGNkciAod2luZG93
LXByZXYtYnVmZmVycyB3aW5kb3cpKSkpKQorCSAgIDs7IERlbGV0ZSBXSU5ET1cgaWYgcG9z
c2libGUuCisJICAgKHdpbmRvdy0tZGVsZXRlCisJICAgIHdpbmRvdyBuaWwgKG1lbXEgYnVy
eS1vci1raWxsICcoa2lsbCBraWxsaW5nKSkpKQorICAgICAgOzsgSWYgdGhlIHByZXZpb3Vz
bHkgc2VsZWN0ZWQgd2luZG93IGlzIHN0aWxsIGFsaXZlLCBzZWxlY3QgaXQuCisgICAgICAo
d2luZG93LS1xdWl0LXJlc3RvcmUtc2VsZWN0LXdpbmRvdyBxdWl0LXJlc3RvcmUtMikpCisg
ICAgICgob3IgKGFuZCAobGlzdHAgKHNldHEgcXVhZCAobnRoIDEgcXVpdC1yZXN0b3JlLXBy
ZXYpKSkKKwkgICAgICAgKGJ1ZmZlci1saXZlLXAgKGNhciBxdWFkKSkKKwkgICAgICAgKGVx
IChudGggMyBxdWl0LXJlc3RvcmUtcHJldikgYnVmZmVyKQorCSAgICAgICA7OyBVc2Ugc2Vs
ZWN0ZWQgd2luZG93IGZyb20gcXVpdC1yZXN0b3JlLXByZXYuCisJICAgICAgIChzZXRxIHF1
aXQtcmVzdG9yZS0yIHF1aXQtcmVzdG9yZS1wcmV2LTIpCisJICAgICAgIDs7IFdlIHdhbnQg
dG8gcmVzZXQgcXVpdC1yZXN0b3JlLXByZXYgb25seS4KKwkgICAgICAgKHNldHEgcmVzZXQt
cHJldiB0KSkKKwkgIChhbmQgKGxpc3RwIChzZXRxIHF1YWQgKG50aCAxIHF1aXQtcmVzdG9y
ZSkpKQorCSAgICAgICAoYnVmZmVyLWxpdmUtcCAoY2FyIHF1YWQpKQorCSAgICAgICAoZXEg
KG50aCAzIHF1aXQtcmVzdG9yZSkgYnVmZmVyKSkpCisgICAgICA7OyBTaG93IGFub3RoZXIg
YnVmZmVyIHN0b3JlZCBpbiBxdWl0LXJlc3RvcmUoLXByZXYpIHBhcmFtZXRlci4KICAgICAg
ICh3aGVuIChhbmQgKGludGVnZXJwIChudGggMyBxdWFkKSkKIAkJIChpZiAod2luZG93LWNv
bWJpbmVkLXAgd2luZG93KQogICAgICAgICAgICAgICAgICAgICAgKC89IChudGggMyBxdWFk
KSAod2luZG93LXRvdGFsLWhlaWdodCB3aW5kb3cpKQpAQCAtNTI2OSwyNyArNTM3OSwyNiBA
QCBxdWl0LXJlc3RvcmUtd2luZG93CiAgICAgICA7OyBEZWFsIHdpdGggdGhlIGJ1ZmZlciB3
ZSBqdXN0IHJlbW92ZWQgZnJvbSBXSU5ET1cuCiAgICAgICAoc2V0cSBlbnRyeSAoYW5kIChl
cSBidXJ5LW9yLWtpbGwgJ2FwcGVuZCkKIAkJICAgICAgIChhc3NxIGJ1ZmZlciAod2luZG93
LXByZXYtYnVmZmVycyB3aW5kb3cpKSkpCi0gICAgICAod2hlbiBidXJ5LW9yLWtpbGwKKyAg
ICAgICh3aGVuIChtZW1xIGJ1cnktb3Ita2lsbCAnKGJ1cnkgYnVyeWluZyBraWxsIGtpbGxp
bmcpKQogCTs7IFJlbW92ZSBidWZmZXIgZnJvbSBXSU5ET1cncyBwcmV2aW91cyBhbmQgbmV4
dCBidWZmZXJzLgotCShzZXQtd2luZG93LXByZXYtYnVmZmVycwotCSB3aW5kb3cgKGFzc3Et
ZGVsZXRlLWFsbCBidWZmZXIgKHdpbmRvdy1wcmV2LWJ1ZmZlcnMgd2luZG93KSkpCi0JKHNl
dC13aW5kb3ctbmV4dC1idWZmZXJzCi0JIHdpbmRvdyAoZGVscSBidWZmZXIgKHdpbmRvdy1u
ZXh0LWJ1ZmZlcnMgd2luZG93KSkpKQorCSh1bnJlY29yZC13aW5kb3ctYnVmZmVyIHdpbmRv
dyBidWZmZXIpKQogICAgICAgKHdoZW4gZW50cnkKIAk7OyBBcHBlbmQgb2xkIGJ1ZmZlcidz
IGVudHJ5IHRvIGxpc3Qgb2YgV0lORE9XJ3MgcHJldmlvdXMKIAk7OyBidWZmZXJzIHNvIGl0
J3MgbGVzcyBsaWtlbHkgdG8gZ2V0IHN3aXRjaGVkIHRvIHNvb24gYnV0CiAJOzsgYGRpc3Bs
YXktYnVmZmVyLWluLXByZXZpb3VzLXdpbmRvdycgY2FuIG5ldmVydGhlbGVzcyBmaW5kIGl0
LgogCShzZXQtd2luZG93LXByZXYtYnVmZmVycwogCSB3aW5kb3cgKGFwcGVuZCAod2luZG93
LXByZXYtYnVmZmVycyB3aW5kb3cpIChsaXN0IGVudHJ5KSkpKQotICAgICAgOzsgUmVzZXQg
dGhlIHF1aXQtcmVzdG9yZSBwYXJhbWV0ZXIuCi0gICAgICAoc2V0LXdpbmRvdy1wYXJhbWV0
ZXIgd2luZG93ICdxdWl0LXJlc3RvcmUgbmlsKQotICAgICAgOzsgU2VsZWN0IG9sZCB3aW5k
b3cuCisgICAgICA7OyBSZXNldCB0aGUgcXVpdC1yZXN0b3JlKC1wcmV2KSBwYXJhbWV0ZXIu
CisgICAgICAoc2V0LXdpbmRvdy1wYXJhbWV0ZXIgd2luZG93ICdxdWl0LXJlc3RvcmUtcHJl
diBuaWwpCisgICAgICAodW5sZXNzIHJlc2V0LXByZXYKKwk7OyBJZiBxdWl0LXJlc3RvcmUt
cHJldiB3YXMgbm90IHVzZWQsIHJlc2V0IHRoZSBxdWl0LXJlc3RvcmUKKwk7OyBwYXJhbWV0
ZXIKKwkoc2V0LXdpbmRvdy1wYXJhbWV0ZXIgd2luZG93ICdxdWl0LXJlc3RvcmUgbmlsKSkK
ICAgICAgIDs7IElmIHRoZSBwcmV2aW91c2x5IHNlbGVjdGVkIHdpbmRvdyBpcyBzdGlsbCBh
bGl2ZSwgc2VsZWN0IGl0LgogICAgICAgKHdpbmRvdy0tcXVpdC1yZXN0b3JlLXNlbGVjdC13
aW5kb3cgcXVpdC1yZXN0b3JlLTIpKQogICAgICAodAotICAgICAgOzsgU2hvdyBzb21lIG90
aGVyIGJ1ZmZlciBpbiBXSU5ET1cgYW5kIHJlc2V0IHRoZSBxdWl0LXJlc3RvcmUKLSAgICAg
IDs7IHBhcmFtZXRlci4KLSAgICAgIChzZXQtd2luZG93LXBhcmFtZXRlciB3aW5kb3cgJ3F1
aXQtcmVzdG9yZSBuaWwpCisgICAgICA7OyBTaG93IHNvbWUgb3RoZXIgYnVmZmVyIGluIFdJ
TkRPVyBhbmQgbGVhdmUgdGhlCisgICAgICA7OyBxdWl0LXJlc3RvcmUoLXByZXYpIHBhcmFt
ZXRlcnMgYWxvbmUgKEp1cmkncyBpZGVhKS4KICAgICAgIDs7IE1ha2Ugc3VyZSB0aGF0IFdJ
TkRPVyBpcyBubyBtb3JlIGRlZGljYXRlZC4KICAgICAgIChzZXQtd2luZG93LWRlZGljYXRl
ZC1wIHdpbmRvdyBuaWwpCiAgICAgICA7OyBUcnkgdG8gc3dpdGNoIHRvIGEgcHJldmlvdXMg
YnVmZmVyLiAgRGVsZXRlIHRoZSB3aW5kb3cgb25seSBpZgpAQCAtNTI5NywxNiArNTQwNiwx
NCBAQCBxdWl0LXJlc3RvcmUtd2luZG93CiAgICAgICAoaWYgKHN3aXRjaC10by1wcmV2LWJ1
ZmZlciB3aW5kb3cgYnVyeS1vci1raWxsKQogICAgICAgICAgICh3aGVuIChlcSBkZWRpY2F0
ZWQgJ3NpZGUpCiAgICAgICAgICAgICAoc2V0LXdpbmRvdy1kZWRpY2F0ZWQtcCB3aW5kb3cg
J3NpZGUpKQotICAgICAgICAod2luZG93LS1kZWxldGUgd2luZG93IG5pbCAoZXEgYnVyeS1v
ci1raWxsICdraWxsKSkKLSAgICAgIDs7IElmIHRoZSBwcmV2aW91c2x5IHNlbGVjdGVkIHdp
bmRvdyBpcyBzdGlsbCBhbGl2ZSwgc2VsZWN0IGl0LgotICAgICAgKHdpbmRvdy0tcXVpdC1y
ZXN0b3JlLXNlbGVjdC13aW5kb3cgcXVpdC1yZXN0b3JlLTIpKSkpCi0KKyAgICAgICAgKHdp
bmRvdy0tZGVsZXRlCisJIHdpbmRvdyBuaWwgKG1lbXEgYnVyeS1vci1raWxsICcoa2lsbCBr
aWxsaW5nKSkpKSkpCiAgICAgOzsgRGVhbCB3aXRoIHRoZSBidWZmZXIuCiAgICAgKGNvbmQK
ICAgICAgKChub3QgKGJ1ZmZlci1saXZlLXAgYnVmZmVyKSkpCiAgICAgICgoZXEgYnVyeS1v
ci1raWxsICdraWxsKQogICAgICAgKGtpbGwtYnVmZmVyIGJ1ZmZlcikpCi0gICAgIChidXJ5
LW9yLWtpbGwKKyAgICAgKChlcSBidXJ5LW9yLWtpbGwgJ2J1cnkpCiAgICAgICAoYnVyeS1i
dWZmZXItaW50ZXJuYWwgYnVmZmVyKSkpKSkKIAogKGRlZnVuIHF1aXQtd2luZG93ICgmb3B0
aW9uYWwga2lsbCB3aW5kb3cpCkBAIC01MzM2LDE4ICs1NDQzLDMxIEBAIHF1aXQtd2luZG93
cy1vbgogQlVGRkVSLU9SLU5BTUUuICBPcHRpb25hbCBhcmd1bWVudCBGUkFNRSBpcyBoYW5k
bGVkIGFzIGJ5CiBgZGVsZXRlLXdpbmRvd3Mtb24nLgogCi1UaGlzIGZ1bmN0aW9uIGNhbGxz
IGBxdWl0LXdpbmRvdycgb24gYWxsIGNhbmRpZGF0ZSB3aW5kb3dzCi1zaG93aW5nIEJVRkZF
Ui1PUi1OQU1FLiIKK1RoaXMgZnVuY3Rpb24gY2FsbHMgYHF1aXQtcmVzdG9yZS13aW5kb3cn
IG9uIGFsbCBjYW5kaWRhdGUgd2luZG93cworc2hvd2luZyBCVUZGRVItT1ItTkFNRS4gIElu
IGFkZGl0aW9uLCBpdCByZW1vdmVzIHRoZSBidWZmZXIgZGVub3RlZCBieQorQlVGRkVSLU9S
LU5BTUUgZnJvbSBhbGwgd2luZG93LWxvY2FsIGJ1ZmZlciBsaXN0cyBhbmQgcmVtb3ZlcyBh
bnkKK2BxdWl0LXJlc3RvcmUnIG9yIGBxdWl0LXJlc3RvcmUtcHJldicgcGFyYW1ldGVycyBt
ZW50aW9uaW5nIGl0LiIKICAgKGludGVyYWN0aXZlICJiUXVpdCB3aW5kb3dzIG9uIChidWZm
ZXIpOlxuUCIpCiAgIChsZXQgKChidWZmZXIgKHdpbmRvdy1ub3JtYWxpemUtYnVmZmVyIGJ1
ZmZlci1vci1uYW1lKSkKIAk7OyBIYW5kbGUgdGhlICJpbnZlcnRlZCIgbWVhbmluZyBvZiB0
aGUgRlJBTUUgYXJndW1lbnQgd3J0IG90aGVyCi0JOzsgYHdpbmRvdy1saXN0LTEnIGJhc2Vk
IGZ1bmN0aW9uLgotCShhbGwtZnJhbWVzIChjb25kICgobm90IGZyYW1lKSB0KSAoKGVxIGZy
YW1lIHQpIG5pbCkgKHQgZnJhbWUpKSkpCi0gICAgKGRvbGlzdCAod2luZG93ICh3aW5kb3ct
bGlzdC0xIG5pbCBuaWwgYWxsLWZyYW1lcykpCi0gICAgICAoaWYgKGVxICh3aW5kb3ctYnVm
ZmVyIHdpbmRvdykgYnVmZmVyKQotCSAgKHF1aXQtd2luZG93IGtpbGwgd2luZG93KQotCTs7
IElmIGEgd2luZG93IGRvZXNuJ3Qgc2hvdyBCVUZGRVIsIHVucmVjb3JkIEJVRkZFUiBpbiBp
dC4KLQkodW5yZWNvcmQtd2luZG93LWJ1ZmZlciB3aW5kb3cgYnVmZmVyKSkpKSkKKwk7OyBg
d2luZG93LWxpc3QnIGJhc2VkIGZ1bmN0aW9uLgorCShmcmFtZXMgKGNvbmQgKChub3QgZnJh
bWUpIHQpICgoZXEgZnJhbWUgdCkgbmlsKSAodCBmcmFtZSkpKSkKKyAgICAoZG9saXN0ICh3
aW5kb3cgKHdpbmRvdy1saXN0LTEgbmlsIG5pbCBmcmFtZXMpKQorICAgICAgKHdoZW4gKGVx
ICh3aW5kb3ctYnVmZmVyIHdpbmRvdykgYnVmZmVyKQorCSh3aXRoLWN1cnJlbnQtYnVmZmVy
IGJ1ZmZlcgorCSAgKHJ1bi1ob29rcyAncXVpdC13aW5kb3ctaG9vaykpCisJKHF1aXQtcmVz
dG9yZS13aW5kb3cKKwkgd2luZG93IChpZiBraWxsICdraWxsaW5nICdidXJ5aW5nKSkpCisK
KyAgICAgICh3aGVuICh3aW5kb3ctbGl2ZS1wIHdpbmRvdykKKwk7OyBVbnJlY29yZCBCVUZG
RVIgaW4gdGhpcyB3aW5kb3cuCisJKHVucmVjb3JkLXdpbmRvdy1idWZmZXIgd2luZG93IGJ1
ZmZlciB0KSkpCisKKyAgICA7OyBEZWFsIHdpdGggQlVGRkVSLU9SLU5BTUUuCisgICAgKGNv
bmQKKyAgICAgKChub3QgKGJ1ZmZlci1saXZlLXAgYnVmZmVyKSkpCisgICAgIChraWxsIChr
aWxsLWJ1ZmZlciBidWZmZXIpKQorICAgICAodCAoYnVyeS1idWZmZXItaW50ZXJuYWwgYnVm
ZmVyKSkpKSkKIAwKIChkZWZ1biB3aW5kb3ctLWNvbWJpbmF0aW9uLXJlc2l6YWJsZSAocGFy
ZW50ICZvcHRpb25hbCBob3Jpem9udGFsKQogICAiUmV0dXJuIG51bWJlciBvZiBwaXhlbHMg
cmVjb3ZlcmFibGUgZnJvbSBoZWlnaHQgb2Ygd2luZG93IFBBUkVOVC4KQEAgLTY2NTcsMzQg
KzY3NzcsNDIgQEAgZGlzcGxheS1idWZmZXItcmVjb3JkLXdpbmRvdwogcHJldmlvdXNseSBz
aG93biBpbiB0aGUgd2luZG93LCB0aGF0IGJ1ZmZlcidzIHdpbmRvdyBzdGFydCBhbmQKIHdp
bmRvdyBwb2ludCwgYW5kIHRoZSB3aW5kb3cncyBoZWlnaHQuICBUaGUgdGhpcmQgZWxlbWVu
dCBpcyB0aGUKIHdpbmRvdyBzZWxlY3RlZCBhdCB0aGUgdGltZSB0aGUgcGFyYW1ldGVyIHdh
cyBjcmVhdGVkLiAgVGhlCi1mb3VydGggZWxlbWVudCBpcyBCVUZGRVIuIgorZm91cnRoIGVs
ZW1lbnQgaXMgQlVGRkVSLgorCitJZiBUWVBFIGlzIGByZXVzZScsIEJVRkZFUiBpcyBkaWZm
ZXJlbnQgZnJvbSB0aGUgb25lIGN1cnJlbnRseSBkaXNwbGF5ZWQKK2luIFdJTkRPVywgYW5k
IFdJTkRPVyBhbHJlYWR5IGhhcyBhIGBxdWl0LXJlc3RvcmUnIHBhcmFtZXRlciwgaW5zdGFs
bCBvcgordXBkYXRlIGEgYHF1aXQtcmVzdG9yZS1wcmV2JyBwYXJhbWV0ZXIgZm9yIHRoaXMg
d2luZG93LiAgVGhpcyBhbGxvd3MgZm9yCitxdWl0dGluZyBXSU5ET1cgaW4gYSBzaW1pbGFy
IGZhc2hpb24gYnV0IGFsc28ga2VlcHMgdGhlIHZlcnkgZmlyc3QKK2BxdWl0LXJlc3RvcmUn
IHBhcmFtZXRlciBzdG9yZWQgZm9yIHRoaXMgd2luZG93IGFyb3VuZC4gIENvbnNlcXVlbnRs
eSwKK1dJTkRPVyAob3IgaXRzIGZyYW1lKSBjYW4gYmUgZXZlbnR1YWxseSBkZWxldGVkIGJ5
IGBxdWl0LXJlc3RvcmUtd2lkb3cnCitpZiB0aGF0IHBhcmFtZXRlcidzIGZvdXJ0aCBlbGVt
ZW50IGVxdWFscyBXSU5ET1cncyBidWZmZXIuIgogICAoY29uZAogICAgKChlcSB0eXBlICdy
ZXVzZSkKLSAgICAoaWYgKGVxICh3aW5kb3ctYnVmZmVyIHdpbmRvdykgYnVmZmVyKQotCTs7
IFdJTkRPVyBzaG93cyBCVUZGRVIgYWxyZWFkeS4gIFVwZGF0ZSBXSU5ET1cncyBxdWl0LXJl
c3RvcmUKLQk7OyBwYXJhbWV0ZXIsIGlmIGFueS4KLQkobGV0ICgocXVpdC1yZXN0b3JlICh3
aW5kb3ctcGFyYW1ldGVyIHdpbmRvdyAncXVpdC1yZXN0b3JlKSkpCisgICAgKGxldCAoKHF1
aXQtcmVzdG9yZSAod2luZG93LXBhcmFtZXRlciB3aW5kb3cgJ3F1aXQtcmVzdG9yZSkpKQor
ICAgICAgKGlmIChlcSAod2luZG93LWJ1ZmZlciB3aW5kb3cpIGJ1ZmZlcikKKwkgIDs7IFdJ
TkRPVyBzaG93cyBCVUZGRVIgYWxyZWFkeS4gIFVwZGF0ZSBXSU5ET1cncyBxdWl0LXJlc3Rv
cmUKKwkgIDs7IHBhcmFtZXRlciwgaWYgYW55LgogCSAgKHdoZW4gKGNvbnNwIHF1aXQtcmVz
dG9yZSkKIAkgICAgKHNldGNhciBxdWl0LXJlc3RvcmUgJ3NhbWUpCiAJICAgIDs7IFRoZSBz
ZWxlY3RlZC13aW5kb3cgbWlnaHQgaGF2ZSBjaGFuZ2VkIGluCiAJICAgIDs7IGJldHdlZW4g
KEJ1ZyMyMDM1MykuCiAJICAgICh1bmxlc3MgKG9yIChlcSB3aW5kb3cgKHNlbGVjdGVkLXdp
bmRvdykpCi0gICAgICAgICAgICAgICAgICAgICAgICAoZXEgd2luZG93IChudGggMiBxdWl0
LXJlc3RvcmUpKSkKLQkgICAgICAoc2V0Y2FyIChjZGRyIHF1aXQtcmVzdG9yZSkgKHNlbGVj
dGVkLXdpbmRvdykpKSkpCi0gICAgICA7OyBXSU5ET1cgc2hvd3MgYW5vdGhlciBidWZmZXIu
Ci0gICAgICAod2l0aC1jdXJyZW50LWJ1ZmZlciAod2luZG93LWJ1ZmZlciB3aW5kb3cpCi0J
KHNldC13aW5kb3ctcGFyYW1ldGVyCi0JIHdpbmRvdyAncXVpdC1yZXN0b3JlCi0JIChsaXN0
ICdvdGhlcgotCSAgICAgICA7OyBBIHF1YWRydXBsZSBvZiBXSU5ET1cncyBidWZmZXIsIHN0
YXJ0LCBwb2ludCBhbmQgaGVpZ2h0LgotCSAgICAgICAobGlzdCAoY3VycmVudC1idWZmZXIp
ICh3aW5kb3ctc3RhcnQgd2luZG93KQotCQkgICAgIDs7IFByZXNlcnZlIHdpbmRvdy1wb2lu
dC1pbnNlcnRpb24tdHlwZSAoQnVnIzEyODU1KS4KLQkJICAgICAoY29weS1tYXJrZXIKLQkJ
ICAgICAgKHdpbmRvdy1wb2ludCB3aW5kb3cpIHdpbmRvdy1wb2ludC1pbnNlcnRpb24tdHlw
ZSkKLQkJICAgICAoaWYgKHdpbmRvdy1jb21iaW5lZC1wIHdpbmRvdykKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAod2luZG93LXRvdGFsLWhlaWdodCB3aW5kb3cpCi0gICAgICAgICAg
ICAgICAgICAgICAgICh3aW5kb3ctdG90YWwtd2lkdGggd2luZG93KSkpCi0JICAgICAgIChz
ZWxlY3RlZC13aW5kb3cpIGJ1ZmZlcikpKSkpCisJCQkoZXEgd2luZG93IChudGggMiBxdWl0
LXJlc3RvcmUpKSkKKwkgICAgICAoc2V0Y2FyIChjZGRyIHF1aXQtcmVzdG9yZSkgKHNlbGVj
dGVkLXdpbmRvdykpKSkKKwk7OyBXSU5ET1cgc2hvd3MgYW5vdGhlciBidWZmZXIuCisJKHdp
dGgtY3VycmVudC1idWZmZXIgKHdpbmRvdy1idWZmZXIgd2luZG93KQorCSAgKHNldC13aW5k
b3ctcGFyYW1ldGVyCisJICAgd2luZG93IChpZiBxdWl0LXJlc3RvcmUgJ3F1aXQtcmVzdG9y
ZS1wcmV2ICdxdWl0LXJlc3RvcmUpCisJICAgKGxpc3QgJ290aGVyCisJCSA7OyBBIHF1YWRy
dXBsZSBvZiBXSU5ET1cncyBidWZmZXIsIHN0YXJ0LCBwb2ludCBhbmQgaGVpZ2h0LgorCQkg
KGxpc3QgKGN1cnJlbnQtYnVmZmVyKSAod2luZG93LXN0YXJ0IHdpbmRvdykKKwkJICAgICAg
IDs7IFByZXNlcnZlIHdpbmRvdy1wb2ludC1pbnNlcnRpb24tdHlwZSAoQnVnIzEyODU1KS4K
KwkJICAgICAgIChjb3B5LW1hcmtlcgorCQkJKHdpbmRvdy1wb2ludCB3aW5kb3cpIHdpbmRv
dy1wb2ludC1pbnNlcnRpb24tdHlwZSkKKwkJICAgICAgIChpZiAod2luZG93LWNvbWJpbmVk
LXAgd2luZG93KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgKHdpbmRvdy10b3RhbC1o
ZWlnaHQgd2luZG93KQorCQkJICh3aW5kb3ctdG90YWwtd2lkdGggd2luZG93KSkpCisJCSAo
c2VsZWN0ZWQtd2luZG93KSBidWZmZXIpKSkpKSkKICAgICgoZXEgdHlwZSAnd2luZG93KQog
ICAgIDs7IFdJTkRPVyBoYXMgYmVlbiBjcmVhdGVkIG9uIGFuIGV4aXN0aW5nIGZyYW1lLgog
ICAgIChzZXQtd2luZG93LXBhcmFtZXRlcgpAQCAtOTEyOSw2ICs5MjU3LDkgQEAgc3dpdGNo
LXRvLWJ1ZmZlcgogYXMgcHJlc2NyaWJlZCBieSB0aGUgb3B0aW9uIGBzd2l0Y2gtdG8tYnVm
ZmVyLXByZXNlcnZlLXdpbmRvdy1wb2ludCcuCiBPdGhlcndpc2UsIHRoZXNlIGFyZSBsZWZ0
IGFsb25lLgogCitJbiBlaXRoZXIgY2FzZSwgY2FsbCBgZGlzcGxheS1idWZmZXItcmVjb3Jk
LXdpbmRvdycgdG8gYXZvaWQgZGlzcnVwdGluZworYSBzZXF1ZW5jZSBvZiBgZGlzcGxheS1i
dWZmZXInIG9wZXJhdGlvbnMgdXNpbmcgdGhpcyB3aW5kb3cuCisKIFJldHVybiB0aGUgYnVm
ZmVyIHN3aXRjaGVkIHRvLiIKICAgKGludGVyYWN0aXZlCiAgICAobGV0ICgoZm9yY2Utc2Ft
ZS13aW5kb3cKQEAgLTkxODksNiArOTMyMCwxMSBAQCBzd2l0Y2gtdG8tYnVmZmVyCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBidWZmZXIpKQogCSAgICAgICAoZGlz
cGxheWVkIChhbmQgKGVxIHByZXNlcnZlLXdpbi1wb2ludCAnYWxyZWFkeS1kaXNwbGF5ZWQp
CiAJCQkgICAgICAgKGdldC1idWZmZXItd2luZG93IGJ1ZmZlciAwKSkpKQorCisJICA7OyBN
YWtlIHN1cmUgcXVpdHRpbmcgdGhlIHdpbmRvdyB3b3Jrcy4KKwkgICh1bmxlc3Mgc3dpdGNo
LXRvLWJ1ZmZlci1vYmV5LWRpc3BsYXktYWN0aW9ucworCSAgICAoZGlzcGxheS1idWZmZXIt
cmVjb3JkLXdpbmRvdyAncmV1c2UgKHNlbGVjdGVkLXdpbmRvdykgYnVmZmVyKSkKKwogCSAg
KHNldC13aW5kb3ctYnVmZmVyIG5pbCBidWZmZXIpCiAJICAod2hlbiAoYW5kIGVudHJ5IChv
ciAoZXEgcHJlc2VydmUtd2luLXBvaW50IHQpIGRpc3BsYXllZCkpCiAJICAgIDs7IFRyeSB0
byByZXN0b3JlIHN0YXJ0IGFuZCBwb2ludCBvZiBidWZmZXIgaW4gdGhlIHNlbGVjdGVkCmRp
ZmYgLS1naXQgYS9zcmMvYWxsb2MuYyBiL3NyYy9hbGxvYy5jCmluZGV4IDQ4YjE3MGI4NjZm
Li4wNmZlMTJjZmYzZCAxMDA2NDQKLS0tIGEvc3JjL2FsbG9jLmMKKysrIGIvc3JjL2FsbG9j
LmMKQEAgLTcwMDksMzMgKzcwMDksNiBAQCBtYXJrX2ZhY2VfY2FjaGUgKHN0cnVjdCBmYWNl
X2NhY2hlICpjKQogICAgIH0KIH0KIAotLyogUmVtb3ZlIGtpbGxlZCBidWZmZXJzIG9yIGl0
ZW1zIHdob3NlIGNhciBpcyBhIGtpbGxlZCBidWZmZXIgZnJvbQotICAgTElTVCwgYW5kIG1h
cmsgb3RoZXIgaXRlbXMuICBSZXR1cm4gY2hhbmdlZCBMSVNULCB3aGljaCBpcyBtYXJrZWQu
ICAqLwotCi1zdGF0aWMgTGlzcF9PYmplY3QKLW1hcmtfZGlzY2FyZF9raWxsZWRfYnVmZmVy
cyAoTGlzcF9PYmplY3QgbGlzdCkKLXsKLSAgTGlzcF9PYmplY3QgdGFpbCwgKnByZXYgPSAm
bGlzdDsKLQotICBmb3IgKHRhaWwgPSBsaXN0OyBDT05TUCAodGFpbCkgJiYgIWNvbnNfbWFy
a2VkX3AgKFhDT05TICh0YWlsKSk7Ci0gICAgICAgdGFpbCA9IFhDRFIgKHRhaWwpKQotICAg
IHsKLSAgICAgIExpc3BfT2JqZWN0IHRlbSA9IFhDQVIgKHRhaWwpOwotICAgICAgaWYgKENP
TlNQICh0ZW0pKQotCXRlbSA9IFhDQVIgKHRlbSk7Ci0gICAgICBpZiAoQlVGRkVSUCAodGVt
KSAmJiAhQlVGRkVSX0xJVkVfUCAoWEJVRkZFUiAodGVtKSkpCi0JKnByZXYgPSBYQ0RSICh0
YWlsKTsKLSAgICAgIGVsc2UKLQl7Ci0JICBzZXRfY29uc19tYXJrZWQgKFhDT05TICh0YWls
KSk7Ci0JICBtYXJrX29iamVjdCAoWENBUiAodGFpbCkpOwotCSAgcHJldiA9IHhjZHJfYWRk
ciAodGFpbCk7Ci0JfQotICAgIH0KLSAgbWFya19vYmplY3QgKHRhaWwpOwotICByZXR1cm4g
bGlzdDsKLX0KLQogc3RhdGljIHZvaWQKIG1hcmtfZnJhbWUgKHN0cnVjdCBMaXNwX1ZlY3Rv
ciAqcHRyKQogewpAQCAtNzA5MCwxNSArNzA2Myw2IEBAIG1hcmtfd2luZG93IChzdHJ1Y3Qg
TGlzcF9WZWN0b3IgKnB0cikKICAgICAgIG1hcmtfZ2x5cGhfbWF0cml4ICh3LT5jdXJyZW50
X21hdHJpeCk7CiAgICAgICBtYXJrX2dseXBoX21hdHJpeCAody0+ZGVzaXJlZF9tYXRyaXgp
OwogICAgIH0KLQotICAvKiBGaWx0ZXIgb3V0IGtpbGxlZCBidWZmZXJzIGZyb20gYm90aCBi
dWZmZXIgbGlzdHMKLSAgICAgaW4gYXR0ZW1wdCB0byBoZWxwIEdDIHRvIHJlY2xhaW0ga2ls
bGVkIGJ1ZmZlcnMgZmFzdGVyLgotICAgICBXZSBjYW4gZG8gaXQgZWxzZXdoZXJlIGZvciBs
aXZlIHdpbmRvd3MsIGJ1dCB0aGlzIGlzIHRoZQotICAgICBiZXN0IHBsYWNlIHRvIGRvIGl0
IGZvciBkZWFkIHdpbmRvd3MuICAqLwotICB3c2V0X3ByZXZfYnVmZmVycwotICAgICh3LCBt
YXJrX2Rpc2NhcmRfa2lsbGVkX2J1ZmZlcnMgKHctPnByZXZfYnVmZmVycykpOwotICB3c2V0
X25leHRfYnVmZmVycwotICAgICh3LCBtYXJrX2Rpc2NhcmRfa2lsbGVkX2J1ZmZlcnMgKHct
Pm5leHRfYnVmZmVycykpOwogfQogCiAvKiBFbnRyeSBvZiB0aGUgbWFyayBzdGFjay4gICov
CmRpZmYgLS1naXQgYS9zcmMvYnVmZmVyLmMgYi9zcmMvYnVmZmVyLmMKaW5kZXggNzQ0YjBl
ZjU1NDguLjZlYzQwYWZmNjQ2IDEwMDY0NAotLS0gYS9zcmMvYnVmZmVyLmMKKysrIGIvc3Jj
L2J1ZmZlci5jCkBAIC0yMDEyLDYgKzIwMTIsMTMgQEAgREVGVU4gKCJraWxsLWJ1ZmZlciIs
IEZraWxsX2J1ZmZlciwgU2tpbGxfYnVmZmVyLCAwLCAxLCAiYktpbGwgYnVmZmVyOiAiLAog
ICAgICBidWZmZXIgKGJ1ZyMxMDExNCkuICAqLwogICByZXBsYWNlX2J1ZmZlcl9pbl93aW5k
b3dzIChidWZmZXIpOwogCisgIC8qIEZvciBkZWFkIHdpbmRvd3MgdGhhdCBoYXZlIG5vdCBi
ZWVuIGNvbGxlY3RlZCB5ZXQsIHJlbW92ZSB0aGlzCisgICAgIGJ1ZmZlciBmcm9tIHRob3Nl
IHdpbmRvd3MnIGxpc3RzIG9mIHByZXZpb3VzbHkgYW5kIG5leHQgc2hvd24KKyAgICAgYnVm
ZmVycyBhbmQgcmVtb3ZlIGFueSAncXVpdC1yZXN0b3JlJyBvciAncXVpdC1yZXN0b3JlLXBy
ZXYnCisgICAgIHBhcmFtZXRlcnMgbWVudGlvbmluZyB0aGUgYnVmZmVyLiAgKi8KKyAgaWYg
KFhGSVhOVU0gKEJWQVIgKGIsIGRpc3BsYXlfY291bnQpKSA+IDApCisgICAgd2luZG93X2Rp
c2NhcmRfYnVmZmVyX2Zyb21fZGVhZF93aW5kb3dzIChidWZmZXIpOworCiAgIC8qIEV4aXQg
aWYgcmVwbGFjaW5nIHRoZSBidWZmZXIgaW4gd2luZG93cyBoYXMga2lsbGVkIG91ciBidWZm
ZXIuICAqLwogICBpZiAoIUJVRkZFUl9MSVZFX1AgKGIpKQogICAgIHJldHVybiBRdDsKZGlm
ZiAtLWdpdCBhL3NyYy93aW5kb3cuYyBiL3NyYy93aW5kb3cuYwppbmRleCA0YmIzNmI2NzMz
YS4uNTU5OTE5Njg5YTMgMTAwNjQ0Ci0tLSBhL3NyYy93aW5kb3cuYworKysgYi9zcmMvd2lu
ZG93LmMKQEAgLTMyNzcsNiArMzI3NywxMTMgQEAgd2luZG93X3BpeGVsX3RvX3RvdGFsIChM
aXNwX09iamVjdCBmcmFtZSwgTGlzcF9PYmplY3QgaG9yaXpvbnRhbCkKIH0KIAogCisvKiog
UmVtb3ZlIGFsbCBvY2N1cnJlbmNlcyBvZiBlbGVtZW50IHdob3NlIGNhciBpcyBCVUZGRVIg
ZnJvbSBBTElTVC4KKyAgICBSZXR1cm4gY2hhbmdlZCBBTElTVC4gICovCitzdGF0aWMgTGlz
cF9PYmplY3QKK3dpbmRvd19kaXNjYXJkX2J1ZmZlcl9mcm9tX2FsaXN0IChMaXNwX09iamVj
dCBidWZmZXIsIExpc3BfT2JqZWN0IGFsaXN0KQoreworICBMaXNwX09iamVjdCB0YWlsLCAq
cHJldiA9ICZhbGlzdDsKKworICBmb3IgKHRhaWwgPSBhbGlzdDsgQ09OU1AgKHRhaWwpOyB0
YWlsID0gWENEUiAodGFpbCkpCisgICAgeworICAgICAgTGlzcF9PYmplY3QgdGVtID0gWENB
UiAodGFpbCk7CisKKyAgICAgIHRlbSA9IFhDQVIgKHRlbSk7CisKKyAgICAgIGlmIChFUSAo
dGVtLCBidWZmZXIpKQorCSpwcmV2ID0gWENEUiAodGFpbCk7CisgICAgICBlbHNlCisJcHJl
diA9IHhjZHJfYWRkciAodGFpbCk7CisgICAgfQorCisgIHJldHVybiBhbGlzdDsKK30KKwor
LyoqIFJlbW92ZSBhbGwgb2NjdXJyZW5jZXMgb2YgQlVGRkVSIGZyb20gTElTVC4gIFJldHVy
biBjaGFuZ2VkCisgICAgTElTVC4gICovCitzdGF0aWMgTGlzcF9PYmplY3QKK3dpbmRvd19k
aXNjYXJkX2J1ZmZlcl9mcm9tX2xpc3QgKExpc3BfT2JqZWN0IGJ1ZmZlciwgTGlzcF9PYmpl
Y3QgbGlzdCkKK3sKKyAgTGlzcF9PYmplY3QgdGFpbCwgKnByZXYgPSAmbGlzdDsKKworICBm
b3IgKHRhaWwgPSBsaXN0OyBDT05TUCAodGFpbCk7IHRhaWwgPSBYQ0RSICh0YWlsKSkKKyAg
ICBpZiAoRVEgKFhDQVIgKHRhaWwpLCBidWZmZXIpKQorICAgICAgKnByZXYgPSBYQ0RSICh0
YWlsKTsKKyAgICBlbHNlCisgICAgICBwcmV2ID0geGNkcl9hZGRyICh0YWlsKTsKKworICBy
ZXR1cm4gbGlzdDsKK30KKworLyoqIFJlbW92ZSBCVUZGRVIgZnJvbSB0aGUgbGlzdHMgb2Yg
cHJldmlvdXMgYW5kIG5leHQgYnVmZmVycyBvZiBvYmplY3QKKyAgICBXSU5ET1cuICBBTEwg
dHJ1ZSBtZWFucyByZW1vdmUgYW55IGBxdWl0LXJlc3RvcmUnIGFuZAorICAgIGBxdWl0LXJl
c3RvcmUtcHJldicgcGFyYW1ldGVyIG9mIFdJTkRPVyByZWZlcmVuY2luZyBCVUZGRVIgdG9v
LiAgKi8KK3N0YXRpYyB2b2lkCit3aW5kb3dfZGlzY2FyZF9idWZmZXJfZnJvbV93aW5kb3cg
KExpc3BfT2JqZWN0IGJ1ZmZlciwgTGlzcF9PYmplY3Qgd2luZG93LCBib29sIGFsbCkKK3sK
KyAgc3RydWN0IHdpbmRvdyAqdyA9IFhXSU5ET1cgKHdpbmRvdyk7CisKKyAgd3NldF9wcmV2
X2J1ZmZlcnMKKyAgICAodywgd2luZG93X2Rpc2NhcmRfYnVmZmVyX2Zyb21fYWxpc3QgKGJ1
ZmZlciwgdy0+cHJldl9idWZmZXJzKSk7CisgIHdzZXRfbmV4dF9idWZmZXJzCisgICAgKHcs
IHdpbmRvd19kaXNjYXJkX2J1ZmZlcl9mcm9tX2xpc3QgKGJ1ZmZlciwgdy0+bmV4dF9idWZm
ZXJzKSk7CisKKyAgaWYgKGFsbCkKKyAgICB7CisgICAgICBMaXNwX09iamVjdCBxdWl0X3Jl
c3RvcmUgPSB3aW5kb3dfcGFyYW1ldGVyICh3LCBRcXVpdF9yZXN0b3JlKTsKKyAgICAgIExp
c3BfT2JqZWN0IHF1aXRfcmVzdG9yZV9wcmV2ID0gd2luZG93X3BhcmFtZXRlciAodywgUXF1
aXRfcmVzdG9yZV9wcmV2KTsKKyAgICAgIExpc3BfT2JqZWN0IHF1YWQ7CisKKyAgICAgIGlm
IChFUSAoYnVmZmVyLCBGbnRoIChtYWtlX2ZpeG51bSAoMyksIHF1aXRfcmVzdG9yZV9wcmV2
KSkKKwkgIHx8IChDT05TUCAocXVhZCA9IEZjYXIgKEZjZHIgKHF1aXRfcmVzdG9yZV9wcmV2
KSkpCisJICAgICAgJiYgRVEgKEZjYXIgKHF1YWQpLCBidWZmZXIpKSkKKwlGc2V0X3dpbmRv
d19wYXJhbWV0ZXIgKHdpbmRvdywgUXF1aXRfcmVzdG9yZV9wcmV2LCBRbmlsKTsKKworICAg
ICAgaWYgKEVRIChidWZmZXIsIEZudGggKG1ha2VfZml4bnVtICgzKSwgcXVpdF9yZXN0b3Jl
KSkKKwkgIHx8IChDT05TUCAocXVhZCA9IEZjYXIgKEZjZHIgKHF1aXRfcmVzdG9yZSkpKQor
CSAgICAgICYmIEVRIChGY2FyIChxdWFkKSwgYnVmZmVyKSkpCisJeworCSAgRnNldF93aW5k
b3dfcGFyYW1ldGVyICh3aW5kb3csIFFxdWl0X3Jlc3RvcmUsCisJCQkJIHdpbmRvd19wYXJh
bWV0ZXIgKHcsIFFxdWl0X3Jlc3RvcmVfcHJldikpOworCSAgRnNldF93aW5kb3dfcGFyYW1l
dGVyICh3aW5kb3csIFFxdWl0X3Jlc3RvcmVfcHJldiwgUW5pbCk7CisJfQorICAgIH0KK30K
KworLyoqIFJlbW92ZSBCVUZGRVIgZnJvbSB0aGUgbGlzdHMgb2YgcHJldmlvdXMgYW5kIG5l
eHQgYnVmZmVycyBhbmQgdGhlCisgICAgYHF1aXQtcmVzdG9yZScgYW5kIGBxdWl0LXJlc3Rv
cmUtcHJldicgcGFyYW1ldGVycyBvZiBhbnkgZGVhZAorICAgIFdJTkRPVy4gICovCit2b2lk
Cit3aW5kb3dfZGlzY2FyZF9idWZmZXJfZnJvbV9kZWFkX3dpbmRvd3MgKExpc3BfT2JqZWN0
IGJ1ZmZlcikKK3sKKyAgc3RydWN0IExpc3BfSGFzaF9UYWJsZSAqaCA9IFhIQVNIX1RBQkxF
ICh3aW5kb3dfZGVhZF93aW5kb3dzX3RhYmxlKTsKKworICBET0hBU0ggKGgsIGssIHYpCisg
ICAgd2luZG93X2Rpc2NhcmRfYnVmZmVyX2Zyb21fd2luZG93IChidWZmZXIsIHYsIHRydWUp
OworfQorCitERUZVTiAoIndpbmRvdy1kaXNjYXJkLWJ1ZmZlci1mcm9tLXdpbmRvdyIsIEZ3
aW5kb3dfZGlzY2FyZF9idWZmZXIsCisgICAgICAgU3dpbmRvd19kaXNjYXJkX2J1ZmZlciwg
MiwgMywgMCwKKyAgICAgICBkb2M6IC8qIERpc2NhcmQgQlVGRkVSIGZyb20gV0lORE9XLgor
RGlzY2FyZCBzcGVjaWZpZWQgbGl2ZSBCVUZGRVIgZnJvbSB0aGUgbGlzdHMgb2YgcHJldmlv
dXMgYW5kIG5leHQKK2J1ZmZlcnMgb2Ygc3BlY2lmaWVkIGxpdmUgV0lORE9XLgorCitPcHRp
b25hbCBhcmd1bWVudCBBTEwgbm9uLW5pbCBtZWFucyBkaXNjYXJkIGFueSBgcXVpdC1yZXN0
b3JlJyBhbmQKK2BxdWl0LXJlc3RvcmUtcHJldicgcGFyYW1ldGVycyBvZiBXSU5ET1cgcmVm
ZXJlbmNpbmcgQlVGRkVSIHRvby4gICovKQorICAoTGlzcF9PYmplY3QgYnVmZmVyLCBMaXNw
X09iamVjdCB3aW5kb3csIExpc3BfT2JqZWN0IGFsbCkKK3sKKyAgaWYgKCFCVUZGRVJfTElW
RV9QIChYQlVGRkVSIChidWZmZXIpKSkKKyAgICBlcnJvciAoIk5vdCBhIGxpdmUgYnVmZmVy
Iik7CisKKyAgaWYgKCFXSU5ET1dfTElWRV9QICh3aW5kb3cpKQorICAgIGVycm9yICgiTm90
IGEgbGl2ZSB3aW5kb3ciKTsKKworICB3aW5kb3dfZGlzY2FyZF9idWZmZXJfZnJvbV93aW5k
b3cgKGJ1ZmZlciwgd2luZG93LCAhTklMUCAoYWxsKSk7CisKKyAgcmV0dXJuIFFuaWw7Cit9
CisKKwogREVGVU4gKCJkZWxldGUtb3RoZXItd2luZG93cy1pbnRlcm5hbCIsIEZkZWxldGVf
b3RoZXJfd2luZG93c19pbnRlcm5hbCwKICAgICAgICBTZGVsZXRlX290aGVyX3dpbmRvd3Nf
aW50ZXJuYWwsIDAsIDIsICIiLAogICAgICAgIGRvYzogLyogTWFrZSBXSU5ET1cgZmlsbCBp
dHMgZnJhbWUuCkBAIC00MTQwLDYgKzQyNDcsOSBAQCBzZXRfd2luZG93X2J1ZmZlciAoTGlz
cF9PYmplY3Qgd2luZG93LCBMaXNwX09iamVjdCBidWZmZXIsCiAgIHctPndpbmRvd19lbmRf
dnBvcyA9IDA7CiAgIHctPmxhc3RfY3Vyc29yX3Zwb3MgPSAwOwogCisgIC8qIERpc2NhcmQg
QlVGRkVSIGZyb20gV0lORE9XJ3MgcHJldmlvdXMgYW5kIG5leHQgYnVmZmVycy4gICovCisg
IHdpbmRvd19kaXNjYXJkX2J1ZmZlcl9mcm9tX3dpbmRvdyAoYnVmZmVyLCB3aW5kb3csIGZh
bHNlKTsKKwogICBpZiAoIShrZWVwX21hcmdpbnNfcCAmJiBzYW1lYnVmKSkKICAgICB7IC8q
IElmIHdlJ3JlIG5vdCBhY3R1YWxseSBjaGFuZ2luZyB0aGUgYnVmZmVyLCBkb24ndCByZXNl
dCBoc2Nyb2xsCiAJIGFuZCB2c2Nyb2xsLiAgUmVzZXR0aW5nIGhzY3JvbGwgYW5kIHZzY3Jv
bGwgaGVyZSBpcyBwcm9ibGVtYXRpYwpAQCAtNDQwMiw2ICs0NTEyLDEwIEBAIG1ha2VfcGFy
ZW50X3dpbmRvdyAoTGlzcF9PYmplY3Qgd2luZG93LCBib29sIGhvcmZsYWcpCiAgIHdzZXRf
YnVmZmVyIChwLCBRbmlsKTsKICAgd3NldF9jb21iaW5hdGlvbiAocCwgaG9yZmxhZywgd2lu
ZG93KTsKICAgd3NldF9jb21iaW5hdGlvbl9saW1pdCAocCwgUW5pbCk7CisgIC8qIFJlc2V0
IGFueSBwcmV2aW91cyBhbmQgbmV4dCBidWZmZXJzIG9mIHAgd2hpY2ggaGF2ZSBiZWVuIGlu
c3RhbGxlZAorICAgICBieSB0aGUgbWVtY3B5IGFib3ZlLiAgKi8KKyAgd3NldF9wcmV2X2J1
ZmZlcnMgKHAsIFFuaWwpOworICB3c2V0X25leHRfYnVmZmVycyAocCwgUW5pbCk7CiAgIHdz
ZXRfd2luZG93X3BhcmFtZXRlcnMgKHAsIFFuaWwpOwogfQogCkBAIC00NDI2LDEwICs0NTQw
LDYgQEAgbWFrZV93aW5kb3cgKHZvaWQpCiAgIHdzZXRfdmVydGljYWxfc2Nyb2xsX2Jhcl90
eXBlICh3LCBRdCk7CiAgIHdzZXRfaG9yaXpvbnRhbF9zY3JvbGxfYmFyX3R5cGUgKHcsIFF0
KTsKICAgd3NldF9jdXJzb3JfdHlwZSAodywgUXQpOwotICAvKiBUaGVzZSBMaXNwIGZpZWxk
cyBhcmUgbWFya2VkIHNwZWNpYWxseSBzbyB0aGV5J3JlIG5vdCBzZXQgdG8gbmlsIGJ5Ci0g
ICAgIGFsbG9jYXRlX3dpbmRvdy4gICovCi0gIHdzZXRfcHJldl9idWZmZXJzICh3LCBRbmls
KTsKLSAgd3NldF9uZXh0X2J1ZmZlcnMgKHcsIFFuaWwpOwogCiAgIC8qIEluaXRpYWxpemUg
bm9uLUxpc3AgZGF0YS4gIE5vdGUgdGhhdCBhbGxvY2F0ZV93aW5kb3cgemVyb2VzIG91dCBh
bGwKICAgICAgbm9uLUxpc3AgZGF0YSwgc28gZG8gaXQgb25seSBmb3Igc2xvdHMgd2hpY2gg
c2hvdWxkIG5vdCBiZSB6ZXJvLiAgKi8KQEAgLTUyNTIsNiArNTM2MiwxMSBAQCBERUZVTiAo
ImRlbGV0ZS13aW5kb3ctaW50ZXJuYWwiLCBGZGVsZXRlX3dpbmRvd19pbnRlcm5hbCwgU2Rl
bGV0ZV93aW5kb3dfaW50ZXJuYQogCSAgdW5jaGFpbl9tYXJrZXIgKFhNQVJLRVIgKHctPm9s
ZF9wb2ludG0pKTsKIAkgIHVuY2hhaW5fbWFya2VyIChYTUFSS0VSICh3LT5zdGFydCkpOwog
CSAgd3NldF9idWZmZXIgKHcsIFFuaWwpOworCSAgLyogQWRkIFdJTkRPVyB0byB0YWJsZSBv
ZiBkZWFkIHdpbmRvd3Mgc28gd2hlbiBraWxsaW5nIGEgYnVmZmVyCisJICAgICBXSU5ET1cg
bWVudGlvbnMsIGFsbCByZWZlcmVuY2VzIHRvIHRoYXQgYnVmZmVyIGNhbiBiZSByZW1vdmVk
CisJICAgICBhbmQgdGhlIGJ1ZmZlciBiZSBjb2xsZWN0ZWQuICAqLworCSAgRnB1dGhhc2gg
KG1ha2VfZml4bnVtICh3LT5zZXF1ZW5jZV9udW1iZXIpLAorCQkgICAgd2luZG93LCB3aW5k
b3dfZGVhZF93aW5kb3dzX3RhYmxlKTsKIAl9CiAKICAgICAgIGlmIChOSUxQIChzLT5wcmV2
KSAmJiBOSUxQIChzLT5uZXh0KSkKQEAgLTczNTYsMTIgKzc0NzEsMjEgQEAgREVGVU4gKCJz
ZXQtd2luZG93LWNvbmZpZ3VyYXRpb24iLCBGc2V0X3dpbmRvd19jb25maWd1cmF0aW9uLAog
CQl9CiAJICAgIH0KIAorCSAgLyogUmVtb3ZlIHdpbmRvdyBmcm9tIHRoZSB0YWJsZSBvZiBk
ZWFkIHdpbmRvd3MuICAqLworCSAgRnJlbWhhc2ggKG1ha2VfZml4bnVtICh3LT5zZXF1ZW5j
ZV9udW1iZXIpLAorCQkgICAgd2luZG93X2RlYWRfd2luZG93c190YWJsZSk7CisKIAkgIGlm
ICgoTklMUCAoZG9udF9zZXRfbWluaXdpbmRvdykgfHwgIU1JTklfV0lORE9XX1AgKHcpKQog
CSAgICAgICYmIEJVRkZFUlAgKHAtPmJ1ZmZlcikgJiYgQlVGRkVSX0xJVkVfUCAoWEJVRkZF
UiAocC0+YnVmZmVyKSkpCiAJICAgIC8qIElmIHNhdmVkIGJ1ZmZlciBpcyBhbGl2ZSwgaW5z
dGFsbCBpdCwgdW5sZXNzIGl0J3MgYQogCSAgICAgICBtaW5pYnVmZmVyIHdlIGV4cGxpY2l0
bHkgcHJvaGliaXQuICAqLwogCSAgICB7Ci0JICAgICAgd3NldF9idWZmZXIgKHcsIHAtPmJ1
ZmZlcik7CisJICAgICAgaWYgKCFFUSAody0+Y29udGVudHMsIHAtPmJ1ZmZlcikpCisJCXsK
KwkJICB3c2V0X2J1ZmZlciAodywgcC0+YnVmZmVyKTsKKwkJICB3aW5kb3dfZGlzY2FyZF9i
dWZmZXJfZnJvbV93aW5kb3cgKHctPmNvbnRlbnRzLCB3aW5kb3csIGZhbHNlKTsKKwkJfQor
CiAJICAgICAgdy0+c3RhcnRfYXRfbGluZV9iZWcgPSAhTklMUCAocC0+c3RhcnRfYXRfbGlu
ZV9iZWcpOwogCSAgICAgIHNldF9tYXJrZXJfcmVzdHJpY3RlZCAody0+c3RhcnQsIHAtPnN0
YXJ0LCB3LT5jb250ZW50cyk7CiAJICAgICAgc2V0X21hcmtlcl9yZXN0cmljdGVkICh3LT5w
b2ludG0sIHAtPnBvaW50bSwgdy0+Y29udGVudHMpOwpAQCAtNzQwNiw2ICs3NTMwLDcgQEAg
REVGVU4gKCJzZXQtd2luZG93LWNvbmZpZ3VyYXRpb24iLCBGc2V0X3dpbmRvd19jb25maWd1
cmF0aW9uLAogCQkgcmVjcmVhdGUgKnNjcmF0Y2gqIGluIHRoZSBjb3Vyc2UgKHBhcnQgb2Yg
SnVhbm1hJ3MgYnMtc2hvdwogCQkgc2NlbmFyaW8gZnJvbSBNYXJjaCAyMDExKS4gICovCiAJ
ICAgICAgd3NldF9idWZmZXIgKHcsIG90aGVyX2J1ZmZlcl9zYWZlbHkgKEZjdXJyZW50X2J1
ZmZlciAoKSkpOworCSAgICAgIHdpbmRvd19kaXNjYXJkX2J1ZmZlcl9mcm9tX3dpbmRvdyAo
dy0+Y29udGVudHMsIHdpbmRvdywgZmFsc2UpOwogCSAgICAgIC8qIFRoaXMgd2lsbCBzZXQg
dGhlIG1hcmtlcnMgdG8gYmVnaW5uaW5nIG9mIHZpc2libGUKIAkJIHJhbmdlLiAgKi8KIAkg
ICAgICBzZXRfbWFya2VyX3Jlc3RyaWN0ZWRfYm90aCAody0+c3RhcnQsIHctPmNvbnRlbnRz
LCAwLCAwKTsKQEAgLTc1ODUsNiArNzcxMCwxMSBAQCBkZWxldGVfYWxsX2NoaWxkX3dpbmRv
d3MgKExpc3BfT2JqZWN0IHdpbmRvdykKIAkgcG9zc2libGUgcmVzdXJyZWN0aW9uIGluIEZz
ZXRfd2luZG93X2NvbmZpZ3VyYXRpb24uICAqLwogICAgICAgd3NldF9jb21iaW5hdGlvbl9s
aW1pdCAodywgdy0+Y29udGVudHMpOwogICAgICAgd3NldF9idWZmZXIgKHcsIFFuaWwpOwor
ICAgICAgLyogQWRkIFdJTkRPVyB0byB0YWJsZSBvZiBkZWFkIHdpbmRvd3Mgc28gd2hlbiBr
aWxsaW5nIGEgYnVmZmVyCisJIFdJTkRPVyBtZW50aW9ucywgYWxsIHJlZmVyZW5jZXMgdG8g
dGhhdCBidWZmZXIgY2FuIGJlIHJlbW92ZWQKKwkgYW5kIHRoZSBidWZmZXIgYmUgY29sbGVj
dGVkLiAgKi8KKyAgICAgIEZwdXRoYXNoIChtYWtlX2ZpeG51bSAody0+c2VxdWVuY2VfbnVt
YmVyKSwKKwkJd2luZG93LCB3aW5kb3dfZGVhZF93aW5kb3dzX3RhYmxlKTsKICAgICB9CiAK
ICAgVndpbmRvd19saXN0ID0gUW5pbDsKQEAgLTg1OTQsNiArODcyNCw4IEBAIHN5bXNfb2Zf
d2luZG93ICh2b2lkKQogICBERUZTWU0gKFFjb25maWd1cmF0aW9uLCAiY29uZmlndXJhdGlv
biIpOwogICBERUZTWU0gKFFkZWxldGUsICJkZWxldGUiKTsKICAgREVGU1lNIChRZGVkaWNh
dGVkLCAiZGVkaWNhdGVkIik7CisgIERFRlNZTSAoUXF1aXRfcmVzdG9yZSwgInF1aXQtcmVz
dG9yZSIpOworICBERUZTWU0gKFFxdWl0X3Jlc3RvcmVfcHJldiwgInF1aXQtcmVzdG9yZS1w
cmV2Iik7CiAKICAgREVGVkFSX0xJU1AgKCJ0ZW1wLWJ1ZmZlci1zaG93LWZ1bmN0aW9uIiwg
VnRlbXBfYnVmZmVyX3Nob3dfZnVuY3Rpb24sCiAJICAgICAgIGRvYzogLyogTm9uLW5pbCBt
ZWFucyBjYWxsIGFzIGZ1bmN0aW9uIHRvIGRpc3BsYXkgYSBoZWxwIGJ1ZmZlci4KQEAgLTg5
MTcsNiArOTA0OSwxNyBAQCBzeW1zX29mX3dpbmRvdyAodm9pZCkKIGRpc3BsYXllZCBhZnRl
ciBhIHNjcm9sbGluZyBvcGVyYXRpb24gdG8gYmUgc29tZXdoYXQgaW5hY2N1cmF0ZS4gICov
KTsKICAgZmFzdF9idXRfaW1wcmVjaXNlX3Njcm9sbGluZyA9IGZhbHNlOwogCisgIERFRlZB
Ul9MSVNQICgid2luZG93LWRlYWQtd2luZG93cy10YWJsZSIsIHdpbmRvd19kZWFkX3dpbmRv
d3NfdGFibGUsCisgICAgZG9jOiAvKiBIYXNoIHRhYmxlIG9mIGRlYWQgd2luZG93cy4KK0Vh
Y2ggZW50cnkgaW4gdGhpcyB0YWJsZSBtYXBzIGEgd2luZG93IG51bWJlciB0byBhIHdpbmRv
dyBvYmplY3QuCitFbnRyaWVzIGFyZSBhZGRlZCBieSBgZGVsZXRlLXdpbmRvdy1pbnRlcm5h
bCcgYW5kIGFyZSByZW1vdmVkIGJ5IHRoZQorZ2FyYmFnZSBjb2xsZWN0b3IuCisKK1RoaXMg
dGFibGUgaXMgbWFpbnRhaW5lZCBieSBjb2RlIGluIHdpbmRvdy5jIGFuZCBpcyBtYWRlIHZp
c2libGUgaW4KK0VsaXNwIGZvciB0ZXN0aW5nIHB1cnBvc2VzIG9ubHkuICAqLyk7CisgIHdp
bmRvd19kZWFkX3dpbmRvd3NfdGFibGUKKyAgICA9IENBTExOIChGbWFrZV9oYXNoX3RhYmxl
LCBRQ3dlYWtuZXNzLCBRdCk7CisKICAgZGVmc3ViciAoJlNzZWxlY3RlZF93aW5kb3cpOwog
ICBkZWZzdWJyICgmU29sZF9zZWxlY3RlZF93aW5kb3cpOwogICBkZWZzdWJyICgmU21pbmli
dWZmZXJfd2luZG93KTsKQEAgLTkwMzIsNiArOTE3NSw3IEBAIHN5bXNfb2Zfd2luZG93ICh2
b2lkKQogICBkZWZzdWJyICgmU3dpbmRvd19wYXJhbWV0ZXJzKTsKICAgZGVmc3ViciAoJlN3
aW5kb3dfcGFyYW1ldGVyKTsKICAgZGVmc3ViciAoJlNzZXRfd2luZG93X3BhcmFtZXRlcik7
CisgIGRlZnN1YnIgKCZTd2luZG93X2Rpc2NhcmRfYnVmZmVyKTsKICAgZGVmc3ViciAoJlN3
aW5kb3dfY3Vyc29yX3R5cGUpOwogICBkZWZzdWJyICgmU3NldF93aW5kb3dfY3Vyc29yX3R5
cGUpOwogfQpkaWZmIC0tZ2l0IGEvc3JjL3dpbmRvdy5oIGIvc3JjL3dpbmRvdy5oCmluZGV4
IDg2OTMyMTgxMjUyLi4zMzVlMGEzNDUzZSAxMDA2NDQKLS0tIGEvc3JjL3dpbmRvdy5oCisr
KyBiL3NyYy93aW5kb3cuaApAQCAtMTQyLDYgKzE0MiwxMiBAQCAjZGVmaW5lIFdJTkRPV19I
X0lOQ0xVREVECiAgICAgICAgYXMgd2VsbC4gICovCiAgICAgTGlzcF9PYmplY3QgY29udGVu
dHM7CiAKKyAgICAvKiBBIGxpc3Qgb2YgPGJ1ZmZlciwgd2luZG93LXN0YXJ0LCB3aW5kb3ct
cG9pbnQ+IHRyaXBsZXMgbGlzdGluZworICAgICAgIGJ1ZmZlcnMgcHJldmlvdXNseSBzaG93
biBpbiB0aGlzIHdpbmRvdy4gICovCisgICAgTGlzcF9PYmplY3QgcHJldl9idWZmZXJzOwor
ICAgIC8qIExpc3Qgb2YgYnVmZmVycyByZS1zaG93biBpbiB0aGlzIHdpbmRvdy4gICovCisg
ICAgTGlzcF9PYmplY3QgbmV4dF9idWZmZXJzOworCiAgICAgLyogVGhlIG9sZCBidWZmZXIg
b2YgdGhpcyB3aW5kb3csIHNldCB0byB0aGlzIHdpbmRvdydzIGJ1ZmZlciBieQogICAgICAg
IHJ1bl93aW5kb3dfY2hhbmdlX2Z1bmN0aW9ucyBldmVyeSB0aW1lIGl0IHNlZXMgdGhpcyB3
aW5kb3cuCiAgICAgICAgVW51c2VkIGZvciBpbnRlcm5hbCB3aW5kb3dzLiAgKi8KQEAgLTIx
OCwxNCArMjI0LDYgQEAgI2RlZmluZSBXSU5ET1dfSF9JTkNMVURFRAogICAgIHN0cnVjdCBn
bHlwaF9tYXRyaXggKmN1cnJlbnRfbWF0cml4OwogICAgIHN0cnVjdCBnbHlwaF9tYXRyaXgg
KmRlc2lyZWRfbWF0cml4OwogCi0gICAgLyogVGhlIHR3byBMaXNwX09iamVjdCBmaWVsZHMg
YmVsb3cgYXJlIG1hcmtlZCBpbiBhIHNwZWNpYWwgd2F5LAotICAgICAgIHdoaWNoIGlzIHdo
eSB0aGV5J3JlIHBsYWNlZCBhZnRlciBgY3VycmVudF9tYXRyaXgnLiAgKi8KLSAgICAvKiBB
IGxpc3Qgb2YgPGJ1ZmZlciwgd2luZG93LXN0YXJ0LCB3aW5kb3ctcG9pbnQ+IHRyaXBsZXMg
bGlzdGluZwotICAgICAgIGJ1ZmZlcnMgcHJldmlvdXNseSBzaG93biBpbiB0aGlzIHdpbmRv
dy4gICovCi0gICAgTGlzcF9PYmplY3QgcHJldl9idWZmZXJzOwotICAgIC8qIExpc3Qgb2Yg
YnVmZmVycyByZS1zaG93biBpbiB0aGlzIHdpbmRvdy4gICovCi0gICAgTGlzcF9PYmplY3Qg
bmV4dF9idWZmZXJzOwotCiAgICAgLyogTnVtYmVyIHNheWluZyBob3cgcmVjZW50bHkgd2lu
ZG93IHdhcyBzZWxlY3RlZC4gICovCiAgICAgRU1BQ1NfSU5UIHVzZV90aW1lOwogCkBAIC0x
MjI4LDYgKzEyMjYsNyBAQCAjZGVmaW5lIENIRUNLX0xJVkVfV0lORE9XKFdJTkRPVykJCQkJ
XAogZXh0ZXJuIHZvaWQgd3NldF9idWZmZXIgKHN0cnVjdCB3aW5kb3cgKiwgTGlzcF9PYmpl
Y3QpOwogZXh0ZXJuIGJvb2wgd2luZG93X291dGRhdGVkIChzdHJ1Y3Qgd2luZG93ICopOwog
ZXh0ZXJuIHB0cmRpZmZfdCB3aW5kb3dfcG9pbnQgKHN0cnVjdCB3aW5kb3cgKncpOworZXh0
ZXJuIHZvaWQgd2luZG93X2Rpc2NhcmRfYnVmZmVyX2Zyb21fZGVhZF93aW5kb3dzIChMaXNw
X09iamVjdCk7CiBleHRlcm4gdm9pZCBpbml0X3dpbmRvd19vbmNlICh2b2lkKTsKIGV4dGVy
biB2b2lkIGluaXRfd2luZG93ICh2b2lkKTsKIGV4dGVybiB2b2lkIHN5bXNfb2Zfd2luZG93
ICh2b2lkKTsK

--------------RMD6CDRucDauQxOc8ngRmTVZ--




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#59862; Package emacs. Full text available.

Message received at submit <at> debbugs.gnu.org:


Received: (at submit) by debbugs.gnu.org; 17 Jul 2024 09:24:02 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Wed Jul 17 05:24:01 2024
Received: from localhost ([127.0.0.1]:35084 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1sU0tE-0000eU-2l
	for submit <at> debbugs.gnu.org; Wed, 17 Jul 2024 05:24:01 -0400
Received: from lists.gnu.org ([209.51.188.17]:34012)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <rudalics@HIDDEN>) id 1sU0tB-0000eM-7p
 for submit <at> debbugs.gnu.org; Wed, 17 Jul 2024 05:23:59 -0400
Received: from eggs.gnu.org ([2001:470:142:3::10])
 by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.90_1) (envelope-from <rudalics@HIDDEN>) id 1sU0t7-0000JR-TO
 for bug-gnu-emacs@HIDDEN; Wed, 17 Jul 2024 05:23:53 -0400
Received: from mout.gmx.net ([212.227.17.20])
 by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.90_1) (envelope-from <rudalics@HIDDEN>) id 1sU0t4-0005z8-00
 for bug-gnu-emacs@HIDDEN; Wed, 17 Jul 2024 05:23:53 -0400
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmx.at;
 s=s31663417; t=1721208217; x=1721813017; i=rudalics@HIDDEN;
 bh=CPcBxgBgNsAMDoE7ta7iPds3w/J44fVEnAs/RN0URd0=;
 h=X-UI-Sender-Class:Content-Type:Message-ID:Date:MIME-Version:
 Subject:To:Cc:References:From:In-Reply-To:cc:
 content-transfer-encoding:content-type:date:from:message-id:
 mime-version:reply-to:subject:to;
 b=n4gO/MfdUfSKsDa+KmDhpYo6isIHo/jXeVuU2CuBYheW5IWtT9CyJiqiIFW+MIiT
 /o031EQJtvi/QkRIVJFEdecbRhbJj40ReTadOwDhOhRatqGk1sA3Dls3im4cFqBUl
 DC8Q0gElwd197kz+jkumxRcixXdBytKRr1aqik9t8Ynakoi3ipKpj+T+FJkuaanIn
 yq/jNWI1V75WDZZy7ktDwkDrvMAqbshK7Z0rVZU3IvyxYk4qMFF4l0fYMakA87nGh
 T5aDjUxLisCC8uPu7vQPl1eaQApTAYOhIIOCJYd1HKqX0FUdIhd0q23VnF5G+W+yf
 qFnOkr0DxT4kWJvUgA==
X-UI-Sender-Class: 724b4f7f-cbec-4199-ad4e-598c01a50d3a
Received: from [192.168.31.113] ([46.125.249.82]) by mail.gmx.net (mrgmx104
 [212.227.17.168]) with ESMTPSA (Nemesis) id 1MLi8m-1slgID0ATI-00VZsg; Wed, 17
 Jul 2024 11:23:37 +0200
Content-Type: multipart/mixed; boundary="------------0cpMOBypjKdTdjfLu6e2lIGs"
Message-ID: <9dfeeabb-f421-4cb3-863c-6411e7c4b8a5@HIDDEN>
Date: Wed, 17 Jul 2024 11:23:31 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: bug#59862: quit-restore per window buffer
To: =?UTF-8?Q?Bj=C3=B6rn_Bidar?= <bjorn.bidar@HIDDEN>,
 martin rudalics via Bug reports for GNU "Emacs, " the Swiss army knife of text
 editors <bug-gnu-emacs@HIDDEN>
References: <86fsds8mlm.fsf@HIDDEN> <86plsxmc6d.fsf@HIDDEN>
 <86r0d4ezdc.fsf@HIDDEN>
 <0d01a044-d7d6-456a-9ba9-d987faad4332@HIDDEN>
 <86frthjq4y.fsf@HIDDEN>
 <743dc4dd-cf09-4c5e-9209-b63a47480e0b@HIDDEN>
 <86msnne7ut.fsf@HIDDEN>
 <ad0bfe5d-817b-4d11-b82f-90c5a76b4c81@HIDDEN>
 <86plsgrfvu.fsf@HIDDEN>
 <ca1388d2-3481-49c4-8721-42792a399340@HIDDEN>
 <86le2b12ni.fsf@HIDDEN>
 <a972688e-01f6-428e-9dc0-67a45bc9a770@HIDDEN>
 <86y169kafb.fsf@HIDDEN>
 <61c4f245-3dd8-4e24-9c84-7ddd4cfe3c49@HIDDEN>
 <86a5ioo269.fsf@HIDDEN>
 <eb3b984d-dd6a-48e3-88c8-ef2cd146b0b7@HIDDEN>
 <867cdr3xs7.fsf@HIDDEN>
 <3f399d4f-3dd2-4624-b857-e198f70b5565@HIDDEN>
 <86h6csct0w.fsf@HIDDEN>
 <1fb1cc7a-b8ea-4d6d-ac6d-19abffef44f3@HIDDEN>
 <ee4e7e95-53d3-4b01-bd1a-ae2cd77352b2@HIDDEN> <871q3tc7da.fsf@>
Content-Language: en-US
From: martin rudalics <rudalics@HIDDEN>
In-Reply-To: <871q3tc7da.fsf@>
X-Provags-ID: V03:K1:VhVgOv/J4yQ8jOf6ugrt+aPc2W+/m5varTwe2cdmoC36+jy9SvC
 YWFgH2+QfjrP5Nas8lpCiotccDO1jMyTpMj9bu8JU1rrO16Jqe/F8rcdeIbh00hgFtb2enz
 eK252+YnjAAn+NjEhRY3B0Woq87Vob3Mmqbu45WxC7q3m+arG6TRAAj2FKYVyk7rd3FCfvS
 PCU0wW26brVeDqzZKKLEQ==
X-Spam-Flag: NO
UI-OutboundReport: notjunk:1;M01:P0:s/nC/AnwZf8=;HBdFjC4WbVuxKgkYa8QoKKEFmaT
 Jmog66OB+4w+SFVMjpY9LRErt/i0YXc5KxZNqHxN+ycDikMiWWutInH4zNpy1HO4SMRlszjRL
 TdhhKQkiQS4mynuSa3PKdPDMQoEDJOtx2JfZnM8XBE2a1ksXL2T7CwRgfcXeDjPPsqnR7DHyA
 YUeWQyI43Cqhy20IdkIH3uDCjoAzDBAQmpBvHPyxhj+ft4WrUBVtW5N9rlF/+JhOx/menlNhU
 U1npD87qohHtDznv0TD1XPyecxx6JUwzfY/C02jPy5EHYj3k56os0riKzS/k2zGrC7vrQvN31
 okpZN2pYi59wMAnNlINwlLbFvWBjYKlJXDAR15YRuLvC1XM3rDZ3emDL/cKcilyLMor+OIutg
 VKTCbjVLaySl+CWSCScSGX2ePII/ErucpHIerMhYkPkYJes0Ch/ZbWfwgf21pnKHJHrdDYgZ3
 deHw8QZfsiDCGH8qdP+vxX4aCmJwxsx5neLkgH3/N+/Zi+silsAd5/rfa9m1eRkS0xBbUhNpk
 r0hiKtgIqZ1r5WfDvvGEXFvqEsQ3dHAuNxIMijjmUdVFHF/4dAB8GnAYgABlIzCAoD8uNJmcS
 Yhzn3vFayLAjFo+jgVVs01UCVf5k8NSvbPyWiZtL+pIMSFhZsMzvbUnH7jQXtHBsHpjjqKvhf
 4X7dqoy+Hl0B+SgUBix/swgygICEe6bLd1ouQXCVOxsVL8sDtDZCJicpHwza8BlQukVvD/xvf
 3wGwldUvg1gz+70Ccv0Z/XloZSwHhG2yrLxMsEdk2POt8HejjyTFzdc0U7w/9oEoxo7QEteWe
 3n3PAOEDPkVZn5kMKwInWgd7pOEX7yIjn7ybbrFN3G9nM=
Received-SPF: pass client-ip=212.227.17.20; envelope-from=rudalics@HIDDEN;
 helo=mout.gmx.net
X-Spam_score_int: -27
X-Spam_score: -2.8
X-Spam_bar: --
X-Spam_report: (-2.8 / 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_LOW=-0.7, RCVD_IN_MSPIKE_H3=0.001, RCVD_IN_MSPIKE_WL=0.001,
 SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no
X-Spam_action: no action
X-Spam-Score: -1.3 (-)
X-Debbugs-Envelope-To: submit
Cc: 59862 <at> debbugs.gnu.org, juri@HIDDEN
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -2.3 (--)

This is a multi-part message in MIME format.
--------------0cpMOBypjKdTdjfLu6e2lIGs
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

 > I meant window. Same as you explain further below in your message
 > I call quit-window on a dedicate window the frame also dies with it.

Note that if a window is dedicated, 'quit-restore-window' will already
do its best to delete the window together with its frame.

 > I think if the window inside of a frame didn't contain any other buffer
 > than the initial buffer and a new buffer that uses the same window
 > there could be the argument that the window should die and thus the
 > frame too.

I attach a patch (including all previous changes) that tries to do that.
In particular, evaluating

(custom-set-variables
  '(display-buffer-alist '(("\\*info\\*" display-buffer-pop-up-window)))
  '(quit-restore-window-no-switch t)
  '(frame-auto-hide-function 'delete-frame))

and doing C-x 5 2 then C-h i then C-x 0 and finally q, will delete the
second frame.

Alternatively, evaluating

(custom-set-variables
  '(display-buffer-alist '(("\\*info\\*" display-buffer-same-window)))
  '(quit-restore-window-no-switch 'skip-initial)
  '(frame-auto-hide-function 'delete-frame))

and doing C-x 5 2 then C-h i and q, will delete the second frame too.

Finally, evaluating

(custom-set-variables
  '(display-buffer-alist '(("\\*info\\*" display-buffer-same-window)))
  '(quit-restore-window-no-switch t)
  '(frame-auto-hide-function 'delete-frame))

and doing C-x 5 2 then C-h i then C-x k *scratch* and finally q will
also delete the second frame.

martin
--------------0cpMOBypjKdTdjfLu6e2lIGs
Content-Type: text/x-patch; charset=UTF-8; name="windows-and-buffers.diff"
Content-Disposition: attachment; filename="windows-and-buffers.diff"
Content-Transfer-Encoding: base64

ZGlmZiAtLWdpdCBhL2xpc3Avd2luZG93LmVsIGIvbGlzcC93aW5kb3cuZWwKaW5kZXggOWZj
MmU1ZDY1ZTguLmFkNTUyZjUxMzllIDEwMDY0NAotLS0gYS9saXNwL3dpbmRvdy5lbAorKysg
Yi9saXNwL3dpbmRvdy5lbApAQCAtNDU0MiwxNCArNDU0MiwxOCBAQCByZWNvcmQtd2luZG93
LWJ1ZmZlcgogICAgICAgKHB1c2gtd2luZG93LWJ1ZmZlci1vbnRvLXByZXYgd2luZG93KQog
ICAgICAgKHJ1bi1ob29rcyAnYnVmZmVyLWxpc3QtdXBkYXRlLWhvb2spKSkpCiAKKzs7IEEg
dmVyc2lvbiBpbiBDIHRoYXQgaGFuZGxlcyBkZWFkIHdpbmRvd3MgKHRoYXQgcHJlc3VtYWJs
eSBhcmUgcGFydCBvZgorOzsgYSBzYXZlZCB3aW5kb3cgY29uZmlndXJhdGlvbikgbGl2ZXMg
aW4gd2luZG93LmMgYW5kIGlzIGNhbGxlZAorOzsgd2luZG93X2Rpc2NhcmRfYnVmZmVyX2Zy
b21fZGVhZF93aW5kb3cuICBXZSBjb3VsZCBjYWxsIHRoYXQgZnJvbSBoZXJlCis7OyBidXQg
aXQgc2VlbXMgbW9yZSBwcmFjdGljYWwgdG8gaGFuZGxlIGxpdmUgd2luZG93cyBlbnRpcmVs
eSBpbiBFbGlzcC4KIChkZWZ1biB1bnJlY29yZC13aW5kb3ctYnVmZmVyICgmb3B0aW9uYWwg
d2luZG93IGJ1ZmZlcikKICAgIlVucmVjb3JkIEJVRkZFUiBpbiBXSU5ET1cuCi1XSU5ET1cg
bXVzdCBiZSBhIGxpdmUgd2luZG93IGFuZCBkZWZhdWx0cyB0byB0aGUgc2VsZWN0ZWQgb25l
LgotQlVGRkVSIG11c3QgYmUgYSBsaXZlIGJ1ZmZlciBhbmQgZGVmYXVsdHMgdG8gdGhlIGJ1
ZmZlciBvZgotV0lORE9XLgorV0lORE9XIG11c3QgYmUgYSBsaXZlIHdpbmRvdyBhbmQgZGVm
YXVsdHMgdG8gdGhlIHNlbGVjdGVkIG9uZS4gIEJVRkZFUgorbXVzdCBiZSBhIGxpdmUgYnVm
ZmVyIGFuZCBkZWZhdWx0cyB0byB0aGUgYnVmZmVyIG9mIFdJTkRPVyAoYWx0aG91Z2gKK3Ro
YXQgZGVmYXVsdCBoYXJkbHkgbWFrZXMgYW55IHNlbnNlKS4KIAotTWFrZSBCVUZGRVIgZGlz
YXBwZWFyIGZyb20gYWxsIHZhcmlhYmxlcyBtZW50aW9uZWQgYnkgdGhlIG9iamVjdCBvZgot
V0lORE9XLiAgVGhpcyBpbmNsdWRlcyB0aGUgYnVmZmVycyBwcmV2aW91c2x5IHNod29uIGlu
IFdJTkRPVyBhcyB3ZWxsIGFzCitNYWtlIEJVRkZFUiBkaXNhcHBlYXIgZnJvbSBtb3N0IGNv
bXBvbmVudHMgc3BlY2lmaWVkIGJ5IHRoZSBvYmplY3Qgb2YKK1dJTkRPVy4gIFRoaXMgaW5j
bHVkZXMgdGhlIGJ1ZmZlcnMgcHJldmlvdXNseSBzaG93biBpbiBXSU5ET1cgYXMgd2VsbCBh
cwogYW55IGJ1ZmZlcnMgbWVudGlvbmVkIGJ5IFdJTkRPVydzIGBxdWl0LXJlc3RvcmUnIGFu
ZCBgcXVpdC1yZXN0b3JlLXByZXYnCiBwYXJhbWV0ZXJzLiIKICAgKGxldCogKCh3aW5kb3cg
KHdpbmRvdy1ub3JtYWxpemUtd2luZG93IHdpbmRvdyB0KSkKQEAgLTQ1NjIsNyArNDU2Niwx
MyBAQCB1bnJlY29yZC13aW5kb3ctYnVmZmVyCiAgICAgICAgd2luZG93IChhc3NxLWRlbGV0
ZS1hbGwgYnVmZmVyICh3aW5kb3ctcHJldi1idWZmZXJzIHdpbmRvdykpKQogICAgICAgKHNl
dC13aW5kb3ctbmV4dC1idWZmZXJzCiAgICAgICAgd2luZG93IChkZWxxIGJ1ZmZlciAod2lu
ZG93LW5leHQtYnVmZmVycyB3aW5kb3cpKSkKLQorICAgICAgOzsgSWYgdGhlIGZvdXJ0aCBl
bGVtZW50cyBvZiB0aGUgJ3F1aXQtcmVzdG9yZScgb3IKKyAgICAgIDs7ICdxdWl0LXJlc3Rv
cmUtcHJldicgcGFyYW1ldGVycyBlcXVhbCBCVUZGRVIsIHRoZXNlIHBhcmFtZXRlcnMKKyAg
ICAgIDs7IGJlY29tZSB1c2VsZXNzIC0gaW4gJ3F1aXQtcmVzdG9yZS13aW5kb3cnIHRoZSBm
b3VydGggZWxlbWVudAorICAgICAgOzsgbXVzdCBlcXVhbCB0aGUgYnVmZmVyIG9mIFdJTkRP
VyBpbiBvcmRlciB0byB1c2UgdGhhdCBwYXJhbWV0ZXIuCisgICAgICA7OyBJZiBCVUZGRVIg
aXMgbWVudGlvbmVkIGluIHRoZSBzZWNvbmQgZWxlbWVudCBvZiB0aGUgcGFyYW1ldGVyLAor
ICAgICAgOzsgJ3F1aXQtcmVzdG9yZS13aW5kb3cnIGNhbm5vdCBwb3NzaWJseSBzaG93IEJV
RkZFUiBpbnN0ZWFkOyBzbworICAgICAgOzsgdGhpcyBwYXJhbWV0ZXIgYmVjb21lcyB1c2Vs
ZXNzIHRvby4KICAgICAgICh3aGVuIChvciAoZXEgYnVmZmVyIChudGggMyBxdWl0LXJlc3Rv
cmUtcHJldikpCiAJCShhbmQgKGxpc3RwIChzZXRxIHF1YWQgKG50aCAxIHF1aXQtcmVzdG9y
ZS1wcmV2KSkpCiAJCSAgICAgKGVxIChjYXIgcXVhZCkgYnVmZmVyKSkpCkBAIC00NTcyLDcg
KzQ1ODIsOCBAQCB1bnJlY29yZC13aW5kb3ctYnVmZmVyCiAJCShhbmQgKGxpc3RwIChzZXRx
IHF1YWQgKG50aCAxIHF1aXQtcmVzdG9yZSkpKQogCQkgICAgIChlcSAoY2FyIHF1YWQpIGJ1
ZmZlcikpKQogCShzZXQtd2luZG93LXBhcmFtZXRlcgotCSB3aW5kb3cgJ3F1aXQtcmVzdG9y
ZSAod2luZG93LXBhcmFtZXRlciB3aW5kb3cgJ3F1aXQtcmVzdG9yZS1wcmV2KSkpKSkpCisJ
IHdpbmRvdyAncXVpdC1yZXN0b3JlICh3aW5kb3ctcGFyYW1ldGVyIHdpbmRvdyAncXVpdC1y
ZXN0b3JlLXByZXYpKQorCShzZXQtd2luZG93LXBhcmFtZXRlciB3aW5kb3cgJ3F1aXQtcmVz
dG9yZS1wcmV2IG5pbCkpKSkpCiAKIChkZWZ1biBzZXQtd2luZG93LWJ1ZmZlci1zdGFydC1h
bmQtcG9pbnQgKHdpbmRvdyBidWZmZXIgJm9wdGlvbmFsIHN0YXJ0IHBvaW50KQogICAiU2V0
IFdJTkRPVydzIGJ1ZmZlciB0byBCVUZGRVIuCkBAIC01MDkxLDYgKzUxMDIsMTggQEAgcHJl
dmlvdXMtYnVmZmVyCiAgICAgICAgICAgICAgICAgIChub3QgKG9yIGV4ZWN1dGluZy1rYmQt
bWFjcm8gbm9uaW50ZXJhY3RpdmUpKSkKICAgICAgICAgKHVzZXItZXJyb3IgIk5vIHByZXZp
b3VzIGJ1ZmZlciIpKSkpKSkKIAorKGRlZmN1c3RvbSBraWxsLWJ1ZmZlci1xdWl0LXdpbmRv
d3MgbmlsCisgICJOb24tbmlsIG1lYW5zIGtpbGxpbmcgYnVmZmVycyBzaGFsbCBxdWl0IHdp
bmRvd3MuCitJZiB0aGlzIGlzIG5pbCwga2lsbGluZyBhIGJ1ZmZlciBtYXkgZGVsZXRlIGRl
ZGljYXRlZCB3aW5kb3dzIG9ubHkuICBJZgordGhpcyBpcyBub24tbmlsLCBga2lsbC1idWZm
ZXInIChhbmQgYHJlcGxhY2UtYnVmZmVyLWluLXdpbmRvd3MnIGluCitjb25zZXF1ZW5jZSkg
aGF2ZSBgcXVpdC1yZXN0b3JlLXdpbmRvdycgZGVhbCB3aXRoIGFueSB3aW5kb3cgc2hvd2lu
ZyB0aGUKK2J1ZmZlciB0byBiZSBraWxsZWQgd2hpY2ggbWF5IGRlbGV0ZSB0aGUgd2luZG93
IGlmIGl0J3Mgbm90IGRlZGljYXRlZCB0bworaXRzIGJ1ZmZlci4gIEFsc28sIGBkZWxldGUt
d2luZG93cy1vbicgd2lsbCB1c2UgYHF1aXQtcmVzdG9yZS13aW5kb3cnIGFzCitmYWxsYmFj
ayB3aGVuIGEgd2luZG93IGNhbm5vdCBiZSBkZWxldGVkIG90aGVyd2lzZS4iCisgIDp0eXBl
ICdib29sZWFuCisgIDp2ZXJzaW9uICIzMS4xIgorICA6Z3JvdXAgJ3dpbmRvd3MpCisKIChk
ZWZ1biBkZWxldGUtd2luZG93cy1vbiAoJm9wdGlvbmFsIGJ1ZmZlci1vci1uYW1lIGZyYW1l
KQogICAiRGVsZXRlIGFsbCB3aW5kb3dzIHNob3dpbmcgQlVGRkVSLU9SLU5BTUUuCiBCVUZG
RVItT1ItTkFNRSBtYXkgYmUgYSBidWZmZXIgb3IgdGhlIG5hbWUgb2YgYW4gZXhpc3Rpbmcg
YnVmZmVyCkBAIC01MTI4LDggKzUxNTEsMTAgQEAgZGVsZXRlLXdpbmRvd3Mtb24KIHRlcm1p
bmFsLCBkZWxldGUgdGhhdCBmcmFtZS4gIE90aGVyd2lzZSwgZG8gbm90IGRlbGV0ZSBhIGZy
YW1lJ3Mgcm9vdAogd2luZG93IGlmIGl0IHNob3dzIHRoZSBidWZmZXIgc3BlY2lmaWVkIGJ5
IEJVRkZFUi1PUi1OQU1FIGFuZCBkbyBub3QKIGRlbGV0ZSBhbnkgZnJhbWUncyBtYWluIHdp
bmRvdyBzaG93aW5nIHRoYXQgYnVmZmVyIGVpdGhlci4gIFJhdGhlciwgaW4KLWFueSBzdWNo
IGNhc2UsIGNhbGwgYHF1aXQtcmVzdG9yZS13aW5kb3cnIHRvIHNob3cgYW5vdGhlciBidWZm
ZXIgaW4gdGhhdAotd2luZG93IGFuZCBtYWtlIHN1cmUgdGhlIHdpbmRvdyBpcyBubyBtb3Jl
IGRlZGljYXRlZCB0byBpdHMgYnVmZmVyLgorYW55IHN1Y2ggY2FzZSwgY2FsbCBlaXRoZXIg
YHF1aXQtcmVzdG9yZS13aW5kb3cnIChwcm92aWRlZAorYGtpbGwtYnVmZmVyLXF1aXQtd2lu
ZG93cycgaXMgbm9uLW5pbCkgb3IgYHN3aXRjaC10by1wcmV2LWJ1ZmZlcicgdG8KK3Nob3cg
YW5vdGhlciBidWZmZXIgaW4gdGhhdCB3aW5kb3cgYW5kIG1ha2Ugc3VyZSB0aGUgd2luZG93
IGlzIG5vIG1vcmUKK2RlZGljYXRlZCB0byBpdHMgYnVmZmVyLgogCiBJZiB0aGUgYnVmZmVy
IHNwZWNpZmllZCBieSBCVUZGRVItT1ItTkFNRSBpcyBzaG93biBpbiBhIG1pbmlidWZmZXIK
IHdpbmRvdywgZG8gbm90aGluZyBmb3IgdGhhdCB3aW5kb3cuICBGb3IgYW55IHdpbmRvdyB0
aGF0IGRvZXMgbm90IHNob3cKQEAgLTUxNjYsOSArNTE5MSwxOCBAQCBkZWxldGUtd2luZG93
cy1vbgogCSAgICAgKChlcSBkZWxldGFibGUgdCkKIAkgICAgICA7OyBEZWxldGUgd2luZG93
LgogCSAgICAgIChkZWxldGUtd2luZG93IHdpbmRvdykpCisJICAgICAoa2lsbC1idWZmZXIt
cXVpdC13aW5kb3dzCisJICAgICAgKHF1aXQtcmVzdG9yZS13aW5kb3cgd2luZG93ICdidXJ5
KQorCSAgICAgICh3aGVuICh3aW5kb3ctbGl2ZS1wIHdpbmRvdykKKwkJOzsgVW5yZWNvcmQg
QlVGRkVSIGluIHRoaXMgd2luZG93LgorCQkodW5yZWNvcmQtd2luZG93LWJ1ZmZlciB3aW5k
b3cgYnVmZmVyKSkpCiAJICAgICAodAotCSAgICAgICh3aGVuIChlcSAod2luZG93LWJ1ZmZl
ciB3aW5kb3cpIGJ1ZmZlcikKLQkJKHF1aXQtcmVzdG9yZS13aW5kb3cgd2luZG93ICdidXJ5
KSkKKwkgICAgICA7OyBJbiB3aW5kb3cgc3dpdGNoIHRvIHByZXZpb3VzIGJ1ZmZlci4KKwkg
ICAgICAoc2V0LXdpbmRvdy1kZWRpY2F0ZWQtcCB3aW5kb3cgbmlsKQorCSAgICAgIChzd2l0
Y2gtdG8tcHJldi1idWZmZXIgd2luZG93ICdidXJ5KQorCSAgICAgIDs7IFJlc3RvcmUgdGhl
IGRlZGljYXRlZCAnc2lkZScgZmxhZy4KKwkgICAgICAod2hlbiAoZXEgZGVkaWNhdGVkICdz
aWRlKQorICAgICAgICAgICAgICAgIChzZXQtd2luZG93LWRlZGljYXRlZC1wIHdpbmRvdyAn
c2lkZSkpCiAJICAgICAgKHdoZW4gKHdpbmRvdy1saXZlLXAgd2luZG93KQogCQk7OyBVbnJl
Y29yZCBCVUZGRVIgaW4gdGhpcyB3aW5kb3cuCiAJCSh1bnJlY29yZC13aW5kb3ctYnVmZmVy
IHdpbmRvdyBidWZmZXIpKSkpKQpAQCAtNTE3NywyOSArNTIxMSw0NiBAQCBkZWxldGUtd2lu
ZG93cy1vbgogCiAoZGVmdW4gcmVwbGFjZS1idWZmZXItaW4td2luZG93cyAoJm9wdGlvbmFs
IGJ1ZmZlci1vci1uYW1lKQogICAiUmVwbGFjZSBCVUZGRVItT1ItTkFNRSB3aXRoIHNvbWUg
b3RoZXIgYnVmZmVyIGluIGFsbCB3aW5kb3dzIHNob3dpbmcgaXQuCi1CVUZGRVItT1ItTkFN
RSBtYXkgYmUgYSBidWZmZXIgb3IgdGhlIG5hbWUgb2YgYW4gZXhpc3RpbmcgYnVmZmVyCi1h
bmQgZGVmYXVsdHMgdG8gdGhlIGN1cnJlbnQgYnVmZmVyLiAgTWluaWJ1ZmZlciB3aW5kb3dz
IGFyZSBub3QKLWNvbnNpZGVyZWQuCi0KLVdpdGggdGhlIGV4Y2VwdGlvbiBvZiBzaWRlIHdp
bmRvd3MsIHdoZW4gYSB3aW5kb3cgc2hvd2luZyBCVUZGRVItT1ItTkFNRQotaXMgZGVkaWNh
dGVkLCB0aGF0IHdpbmRvdyBpcyBkZWxldGVkLiAgSWYgdGhhdCB3aW5kb3cgaXMgdGhlIG9u
bHkgd2luZG93Ci1vbiBpdHMgZnJhbWUsIHRoZSBmcmFtZSBpcyBkZWxldGVkIHRvbyB3aGVu
IHRoZXJlIGFyZSBvdGhlciBmcmFtZXMgbGVmdC4KLUlmIHRoZXJlIGFyZSBubyBvdGhlciBm
cmFtZXMgbGVmdCwgc29tZSBvdGhlciBidWZmZXIgaXMgZGlzcGxheWVkIGluIHRoYXQKK0JV
RkZFUi1PUi1OQU1FIG1heSBiZSBhIGJ1ZmZlciBvciB0aGUgbmFtZSBvZiBhbiBleGlzdGlu
ZyBidWZmZXIgYW5kCitkZWZhdWx0cyB0byB0aGUgY3VycmVudCBidWZmZXIuICBNaW5pYnVm
ZmVyIHdpbmRvd3MgYXJlIG5vdCBjb25zaWRlcmVkLgorCitJZiB0aGUgb3B0aW9uIGBraWxs
LWJ1ZmZlci1xdWl0LXdpbmRvd3MnIGlzIG5pbCwgYmVoYXZlIGFzIGZvbGxvd3M6IFdpdGgK
K3RoZSBleGNlcHRpb24gb2Ygc2lkZSB3aW5kb3dzLCB3aGVuIGEgd2luZG93IHNob3dpbmcg
QlVGRkVSLU9SLU5BTUUgaXMKK2RlZGljYXRlZCwgZGVsZXRlIHRoYXQgd2luZG93LiAgSWYg
dGhhdCB3aW5kb3cgaXMgdGhlIG9ubHkgd2luZG93IG9uIGl0cworZnJhbWUsIGRlbGV0ZSBp
dHMgZnJhbWUgd2hlbiB0aGVyZSBhcmUgb3RoZXIgZnJhbWVzIGxlZnQuICBJbiBhbnkgb3Ro
ZXIKK2Nhc2UsIGNhbGwgYHN3aXRjaC10by1wcmV2LWJ1ZmZlcicgdG8gZGlzcGxheSBzb21l
IG90aGVyIGJ1ZmZlciBpbiB0aGF0CiB3aW5kb3cuCiAKLVRoaXMgZnVuY3Rpb24gcmVtb3Zl
cyB0aGUgYnVmZmVyIGRlbm90ZWQgYnkgQlVGRkVSLU9SLU5BTUUgZnJvbSBhbGwKLXdpbmRv
dy1sb2NhbCBidWZmZXIgbGlzdHMgYW5kIHJlbW92ZXMgYW55IGBxdWl0LXJlc3RvcmUnIG9y
Ci1gcXVpdC1yZXN0b3JlLXByZXYnIHBhcmFtZXRlcnMgbWVudGlvbmluZyBpdC4iCitJZiBg
a2lsbC1idWZmZXItcXVpdC13aW5kb3dzJyBpcyBub24tbmlsLCBjYWxsIGBxdWl0LXJlc3Rv
cmUtd2luZG93JyBmb3IKK2FueSB3aW5kb3cgc2hvd2luZyBCVUZGRVItT1ItTkFNRSB3aXRo
IHRoZSBhcmd1bWVudCBCVVJZLU9SLUtJTEwgc2V0IHRvCitga2lsbGluZycgdG8gYXZvaWQg
dGhhdCB0aGUgbGF0dGVyIGtpbGxzIHRoZSBidWZmZXIgcHJlbWF0dXJlbHkuCisKK0luIGVp
dGhlciBjYXNlLCByZW1vdmUgdGhlIGJ1ZmZlciBkZW5vdGVkIGJ5IEJVRkZFUi1PUi1OQU1F
IGZyb20gdGhlCitsaXN0cyBvZiBwcmV2aW91cyBhbmQgbmV4dCBidWZmZXJzIG9mIGFsbCB3
aW5kb3dzIGFuZCByZW1vdmUgYW55CitgcXVpdC1yZXN0b3JlJyBvciBgcXVpdC1yZXN0b3Jl
LXByZXYnIHBhcmFtZXRlcnMgbWVudGlvbmluZyBpdC4KKworVGhpcyBmdW5jdGlvbiBpcyBj
YWxsZWQgYnkgYGtpbGwtYnVmZmVyJyB3aGljaCBraWxscyB0aGUgYnVmZmVyCitzcGVjaWZp
ZWQgYnkgYGJ1ZmZlci1vci1uYW1lJyBhZnRlcndhcmRzLiAgSXQgbmV2ZXIga2lsbHMgYSBi
dWZmZXIgYnkKK2l0c2VsZi4iCiAgIChpbnRlcmFjdGl2ZSAiYkJ1ZmZlciB0byByZXBsYWNl
OiAiKQogICAobGV0ICgoYnVmZmVyICh3aW5kb3ctbm9ybWFsaXplLWJ1ZmZlciBidWZmZXIt
b3ItbmFtZSkpKQotICAgIDs7IFNjYW4gYWxsIHdpbmRvd3MuICBXZSBoYXZlIHRvIHVucmVj
b3JkIEJVRkZFUiBpbiB0aG9zZSBub3QKLSAgICA7OyBzaG93aW5nIGl0LgorICAgIDs7IFNj
YW4gYWxsIHdpbmRvd3MuICBXZSBoYXZlIHRvIHVucmVjb3JkIEJVRkZFUi1PUi1OQU1FIGlu
IHRob3NlCisgICAgOzsgbm90IHNob3dpbmcgaXQuCiAgICAgKGRvbGlzdCAod2luZG93ICh3
aW5kb3ctbGlzdC0xIG5pbCBuaWwgdCkpCiAgICAgICAod2hlbiAoZXEgKHdpbmRvdy1idWZm
ZXIgd2luZG93KSBidWZmZXIpCi0JKHF1aXQtcmVzdG9yZS13aW5kb3cgd2luZG93KSkKLSAg
ICAgICh3aGVuICh3aW5kb3ctbGl2ZS1wIHdpbmRvdykKLQk7OyBVbnJlY29yZCBCVUZGRVIg
aW4gdGhpcyB3aW5kb3cuCi0JKHVucmVjb3JkLXdpbmRvdy1idWZmZXIgd2luZG93IGJ1ZmZl
cikpKSkpCisJKGlmIGtpbGwtYnVmZmVyLXF1aXQtd2luZG93cworCSAgICAocXVpdC1yZXN0
b3JlLXdpbmRvdyB3aW5kb3cgJ2tpbGxpbmcpCisJICAobGV0ICgoZGVkaWNhdGVkLXNpZGUg
KGVxICh3aW5kb3ctZGVkaWNhdGVkLXAgd2luZG93KSAnc2lkZSkpKQorICAgICAgICAgICAg
KHdoZW4gKG9yIGRlZGljYXRlZC1zaWRlIChub3QgKHdpbmRvdy0tZGVsZXRlIHdpbmRvdyB0
ICdraWxsKSkpCisJICAgICAgOzsgU3dpdGNoIHRvIGFub3RoZXIgYnVmZmVyIGluIHRoYXQg
d2luZG93LgorCSAgICAgIChzZXQtd2luZG93LWRlZGljYXRlZC1wIHdpbmRvdyBuaWwpCisJ
ICAgICAgKGlmIChzd2l0Y2gtdG8tcHJldi1idWZmZXIgd2luZG93ICdraWxsKQorICAgICAg
ICAgICAgICAgICAgKGFuZCBkZWRpY2F0ZWQtc2lkZSAoc2V0LXdpbmRvdy1kZWRpY2F0ZWQt
cCB3aW5kb3cgJ3NpZGUpKQorCQkod2luZG93LS1kZWxldGUgd2luZG93IG5pbCAna2lsbCkp
KSkpKQorCisJKHdoZW4gKHdpbmRvdy1saXZlLXAgd2luZG93KQorCSAgOzsgVW5yZWNvcmQg
QlVGRkVSIGluIHRoaXMgd2luZG93LgorCSAgKHVucmVjb3JkLXdpbmRvdy1idWZmZXIgd2lu
ZG93IGJ1ZmZlcikpKSkpCiAKIChkZWZjdXN0b20gcXVpdC13aW5kb3ctaG9vayBuaWwKICAg
Ikhvb2sgcnVuIGJlZm9yZSBwZXJmb3JtaW5nIGFueSBvdGhlciBhY3Rpb25zIGluIHRoZSBg
cXVpdC13aW5kb3cnIGNvbW1hbmQuIgpAQCAtNTIwNyw2ICs1MjU4LDIzIEBAIHF1aXQtd2lu
ZG93LWhvb2sKICAgOnZlcnNpb24gIjI3LjEiCiAgIDpncm91cCAnd2luZG93cykKIAorKGRl
ZmN1c3RvbSBxdWl0LXJlc3RvcmUtd2luZG93LW5vLXN3aXRjaCBuaWwKKyAgIk5vbi1uaWwg
bWVhbnMgYHF1aXQtcmVzdG9yZS13aW5kb3cnIHByZWZlcmFibHkgd29uJ3Qgc3dpdGNoIGJ1
ZmZlcnMuCitJZiB0aGlzIGlzIG5pbCwgYHF1aXQtcmVzdG9yZS13aW5kb3cnIHdpbGwgY2Fs
bCBgc3dpdGNoLXRvLXByZXYtYnVmZmVyJwordW5sZXNzIHRoZSB3aW5kb3cgaGFzIGJlZW4g
bWFkZSBieSBgZGlzcGxheS1idWZmZXInLiAgSWYgdGhpcyBpcyB0LAorYHF1aXQtcmVzdG9y
ZS13aW5kb3cnIHdpbGwgc3dpdGNoIHRvIGEgcHJldmlvdXMgYnVmZmVyIG9ubHkgaWYgYSBs
aXZlCitidWZmZXIgZXhpc3RzIHRoYXQgd2FzIHByZXZpb3VzbHkgc2hvd24gaW4gdGhhdCB3
aW5kb3cuICBJZiB0aGlzIGlzIHRoZQorc3ltYm9sIGBza2lwLWluaXRpYWwnLCBpdCB3aWxs
IG5vdCBzd2l0Y2ggdG8gdGhlIGluaXRpYWwgYnVmZmVyIG9mIHRoZQord2luZG93J3MgYHF1
aXQtcmVzdG9yZScgcGFyYW1ldGVyLgorCitJbiBlaXRoZXIgY2FzZSwgaWYgYHF1aXQtcmVz
dG9yZS13aW5kb3cnIGRvZXNuJ3Qgc3dpdGNoIHRvIGEgcHJldmlvdXMKK2J1ZmZlciwgaXQg
d2lsbCB0cnkgdG8gZGVsZXRlIHRoZSB3aW5kb3cgKGFuZCBtYXliZSBpdHMgZnJhbWUpIGlu
c3RlYWQuCitOb3RlIGFsc28gdGhhdCBpZiBhIHdpbmRvdyBpcyBkZWRpY2F0ZWQsIGBxdWl0
LXJlc3RvcmUtd2luZG93JyB3aWxsCit1c3VhbGx5IG5vdCBzd2l0Y2ggdG8gYSBwcmV2aW91
cyBidWZmZXIgaW4gaXQuIgorICA6dHlwZSAnYm9vbGVhbgorICA6dmVyc2lvbiAiMzEuMSIK
KyAgOmdyb3VwICd3aW5kb3dzKQorCiAoZGVmdW4gd2luZG93LS1xdWl0LXJlc3RvcmUtc2Vs
ZWN0LXdpbmRvdyAod2luZG93KQogICAiU2VsZWN0IFdJTkRPVyBhZnRlciBoYXZpbmcgcXVp
dCBhbm90aGVyIG9uZS4KIERvIG5vdCBzZWxlY3QgYW4gaW5hY3RpdmUgbWluaWJ1ZmZlciB3
aW5kb3cuIgpAQCAtNTIyNyw5ICs1Mjk1LDEwIEBAIHF1aXQtcmVzdG9yZS13aW5kb3cKIHVz
ZWQgdG8gcmVzdG9yZSB0aGUgcHJldmlvdXNseSBzaG93biBidWZmZXIuICBTZWUgSW5mbyBu
b2RlIGAoZWxpc3ApCiBRdWl0dGluZyBXaW5kb3dzJyBmb3IgbW9yZSBkZXRhaWxzLgogCi1J
ZiBXSU5ET1cncyBkZWRpY2F0ZWQgZmxhZyBpcyB0LCB0cnkgdG8gZGVsZXRlIFdJTkRPVy4g
IElmIGl0Ci1lcXVhbHMgdGhlIHZhbHVlIGBzaWRlJywgcmVzdG9yZSB0aGF0IHZhbHVlIHdo
ZW4gV0lORE9XIGlzIG5vdAotZGVsZXRlZC4KK0lmIFdJTkRPVydzIGRlZGljYXRlZCBmbGFn
IGlzIHQsIHRyeSB0byBkZWxldGUgV0lORE9XLiAgSWYgaXQgZXF1YWxzIHRoZQordmFsdWUg
YHNpZGUnLCByZXN0b3JlIHRoYXQgdmFsdWUgd2hlbiBXSU5ET1cgaXMgbm90IGRlbGV0ZWQu
ICBXaGV0aGVyCitXSU5ET1cgb3IgaXRzIGZyYW1lIGdldCBkZWxldGVkIGNhbiBiZSBmdXJ0
aGVyIGNvbnRyb2xsZWQgdmlhIHRoZSBvcHRpb24KK2BxdWl0LXJlc3RvcmUtd2luZG93LW5v
LXN3aXRjaCcuCiAKIE9wdGlvbmFsIHNlY29uZCBhcmd1bWVudCBCVVJZLU9SLUtJTEwgdGVs
bHMgaG93IHRvIHByb2NlZWQgd2l0aAogdGhlIGJ1ZmZlciBvZiBXSU5ET1cuICBUaGUgZm9s
bG93aW5nIHZhbHVlcyBhcmUgaGFuZGxlZDoKQEAgLTUyNDksNyArNTMxOCwxNCBAQCBxdWl0
LXJlc3RvcmUtd2luZG93CiAgIG1vc3QgcmVsaWFibGUgcmVtZWR5IHRvIG5vdCBoYXZlIGBz
d2l0Y2gtdG8tcHJldi1idWZmZXInIHN3aXRjaAogICB0byB0aGlzIGJ1ZmZlciBhZ2FpbiB3
aXRob3V0IGtpbGxpbmcgdGhlIGJ1ZmZlci4KIAotYGtpbGwnIG1lYW5zIHRvIGtpbGwgV0lO
RE9XJ3MgYnVmZmVyLiIKK2BraWxsJyBtZWFucyB0byBraWxsIFdJTkRPVydzIGJ1ZmZlci4K
KworYGtpbGxpbmcnIGlzIGxpa2UgYGtpbGwnIGJ1dCBtZWFucyB0aGF0IFdJTkRPVydzIGJ1
ZmZlciB3aWxsIGdldCBraWxsZWQKK2Vsc2V3aGVyZS4gIFRoaXMgdmFsdWUgaXMgdXNlZCBi
eSBgcmVwbGFjZS1idWZmZXItaW4td2luZG93cycgYW5kCitgcXVpdC13aW5kb3dzLW9uJy4K
KworYGJ1cnlpbmcnIGlzIGxpa2UgYGJ1cnknIGJ1dCBtZWFucyB0aGF0IFdJTkRPVydzIGJ1
ZmZlciB3aWxsIGdldCBidXJpZWQKK2Vsc2V3aGVyZS4gIFRoaXMgdmFsdWUgaXMgdXNlZCBi
eSBgcXVpdC13aW5kb3dzLW9uJy4iCiAgIChzZXRxIHdpbmRvdyAod2luZG93LW5vcm1hbGl6
ZS13aW5kb3cgd2luZG93IHQpKQogICAobGV0KiAoKGJ1ZmZlciAod2luZG93LWJ1ZmZlciB3
aW5kb3cpKQogCSAocXVpdC1yZXN0b3JlICh3aW5kb3ctcGFyYW1ldGVyIHdpbmRvdyAncXVp
dC1yZXN0b3JlKSkKQEAgLTUyNjUsMzIgKzUzNDEsMzggQEAgcXVpdC1yZXN0b3JlLXdpbmRv
dwogICAgIChjb25kCiAgICAgIDs7IEZpcnN0IHRyeSB0byBkZWxldGUgZGVkaWNhdGVkIHdp
bmRvd3MgdGhhdCBhcmUgbm90IHNpZGUgd2luZG93cy4KICAgICAgKChhbmQgZGVkaWNhdGVk
IChub3QgKGVxIGRlZGljYXRlZCAnc2lkZSkpCi0gICAgICAgICAgICh3aW5kb3ctLWRlbGV0
ZSB3aW5kb3cgJ2RlZGljYXRlZCAoZXEgYnVyeS1vci1raWxsICdraWxsKSkpCisgICAgICAg
ICAgICh3aW5kb3ctLWRlbGV0ZQorCSAgICB3aW5kb3cgJ2RlZGljYXRlZCAobWVtcSBidXJ5
LW9yLWtpbGwgJyhraWxsIGtpbGxpbmcpKSkpCiAgICAgICA7OyBJZiB0aGUgcHJldmlvdXNs
eSBzZWxlY3RlZCB3aW5kb3cgaXMgc3RpbGwgYWxpdmUsIHNlbGVjdCBpdC4KICAgICAgICh3
aW5kb3ctLXF1aXQtcmVzdG9yZS1zZWxlY3Qtd2luZG93IHF1aXQtcmVzdG9yZS0yKSkKICAg
ICAgKChhbmQgKG5vdCBwcmV2LWJ1ZmZlcikKIAkgICAoZXEgKG50aCAxIHF1aXQtcmVzdG9y
ZSkgJ3RhYikKLQkgICAoZXEgKG50aCAzIHF1aXQtcmVzdG9yZSkgYnVmZmVyKSkKKwkgICAo
ZXEgKG50aCAzIHF1aXQtcmVzdG9yZSkgYnVmZmVyKQorCSAgICg8IChzZXEtY291bnQgKGxh
bWJkYSAodykgKHdpbmRvdy1wYXJhbWV0ZXIgdyAncXVpdC1yZXN0b3JlKSkKKwkJICAgICAg
ICAgKHdpbmRvdy1saXN0LTEgbmlsICdub21pbmkpKQorICAgICAgICAgICAgICAyKSkKICAg
ICAgICh0YWItYmFyLWNsb3NlLXRhYikKICAgICAgIDs7IElmIHRoZSBwcmV2aW91c2x5IHNl
bGVjdGVkIHdpbmRvdyBpcyBzdGlsbCBhbGl2ZSwgc2VsZWN0IGl0LgogICAgICAgKHdpbmRv
dy0tcXVpdC1yZXN0b3JlLXNlbGVjdC13aW5kb3cgcXVpdC1yZXN0b3JlLTIpKQotICAgICAo
KGFuZCAobm90IHByZXYtYnVmZmVyKQotCSAgIChvciAoYW5kIChvciAoZXEgKG50aCAxIHF1
aXQtcmVzdG9yZSkgJ2ZyYW1lKQotCQkJKGFuZCAoZXEgKG50aCAxIHF1aXQtcmVzdG9yZSkg
J3dpbmRvdykKLQkJCSAgICAgOzsgSWYgdGhlIHdpbmRvdyBoYXMgYmVlbiBjcmVhdGVkIG9u
IGFuCi0JCQkgICAgIDs7IGV4aXN0aW5nIGZyYW1lIGFuZCBlbmRlZCB1cCBhcyB0aGUgc29s
ZQotCQkJICAgICA7OyB3aW5kb3cgb24gdGhhdCBmcmFtZSwgZG8gbm90IGRlbGV0ZSBpdAot
CQkJICAgICA7OyAoQnVnIzEyNzY0KS4KLQkJCSAgICAgKG5vdCAoZXEgd2luZG93IChmcmFt
ZS1yb290LXdpbmRvdyB3aW5kb3cpKSkpKQotCQkgICAgKGVxIChudGggMyBxdWl0LXJlc3Rv
cmUpIGJ1ZmZlcikpCi0JICAgICAgIChhbmQgKG9yIChlcSAobnRoIDEgcXVpdC1yZXN0b3Jl
LXByZXYpICdmcmFtZSkKLQkJCShhbmQgKGVxIChudGggMSBxdWl0LXJlc3RvcmUtcHJldikg
J3dpbmRvdykKLQkJCSAgICAgKG5vdCAoZXEgd2luZG93IChmcmFtZS1yb290LXdpbmRvdyB3
aW5kb3cpKSkpKQotCQkgICAgKGVxIChudGggMyBxdWl0LXJlc3RvcmUtcHJldikgYnVmZmVy
KQotCQkgICAgOzsgVXNlIHNlbGVjdGVkIHdpbmRvdyBmcm9tIHF1aXQtcmVzdG9yZS1wcmV2
LgotCQkgICAgKHNldHEgcXVpdC1yZXN0b3JlLTIgcXVpdC1yZXN0b3JlLXByZXYtMikpKQor
ICAgICAoKGFuZCAob3IgKG5vdCBwcmV2LWJ1ZmZlcikKKwkgICAgICAgOzsgSWdub3JlIGZp
cnN0IG9mIHRoZSBwcmV2aW91cyBidWZmZXJzIGlmCisJICAgICAgIDs7ICdxdWl0LXJlc3Rv
cmUtd2luZG93LW5vLXN3aXRjaCcgc2F5cyBzby4KKwkgICAgICAgKGFuZCAoZXEgcXVpdC1y
ZXN0b3JlLXdpbmRvdy1uby1zd2l0Y2ggJ3NraXAtaW5pdGlhbCkKKwkJICAgIChub3QgKGNk
ciAod2luZG93LXByZXYtYnVmZmVycyB3aW5kb3cpKSkpKQorCSAgIChvciAoZXEgKG50aCAx
IHF1aXQtcmVzdG9yZSkgJ2ZyYW1lKQorCSAgICAgICA7OyBJZiB0aGUgd2luZG93IGhhcyBi
ZWVuIGNyZWF0ZWQgb24gYW4gZXhpc3RpbmcKKwkgICAgICAgOzsgZnJhbWUgYW5kIGVuZGVk
IHVwIGFzIHRoZSBzb2xlIHdpbmRvdyBvbiB0aGF0CisJICAgICAgIDs7IGZyYW1lLCBkbyBu
b3QgZGVsZXRlIGl0IChCdWcjMTI3NjQpLgorCSAgICAgICAoYW5kIChlcSAobnRoIDEgcXVp
dC1yZXN0b3JlKSAnd2luZG93KQorCQkgICAgKG5vdCAoZXEgd2luZG93IChmcmFtZS1yb290
LXdpbmRvdyB3aW5kb3cpKSkpCisJICAgICAgIDs7IEJ1dCBhbHdheXMgYWxsb3cgZGVsZXRp
bmcgYSBmcmFtZSBvciB3aW5kb3cgaWYKKwkgICAgICAgOzsgJ3F1aXQtcmVzdG9yZS13aW5k
b3ctbm8tc3dpdGNoJyBzYXlzIHNvLgorCSAgICAgICBxdWl0LXJlc3RvcmUtd2luZG93LW5v
LXN3aXRjaCkKKwkgICAob3IgKGVxIChudGggMyBxdWl0LXJlc3RvcmUpIGJ1ZmZlcikKKwkg
ICAgICAgcXVpdC1yZXN0b3JlLXdpbmRvdy1uby1zd2l0Y2gpCiAJICAgOzsgRGVsZXRlIFdJ
TkRPVyBpZiBwb3NzaWJsZS4KLQkgICAod2luZG93LS1kZWxldGUgd2luZG93IG5pbCAoZXEg
YnVyeS1vci1raWxsICdraWxsKSkpCisJICAgKHdpbmRvdy0tZGVsZXRlCisJICAgIHdpbmRv
dyBuaWwgKG1lbXEgYnVyeS1vci1raWxsICcoa2lsbCBraWxsaW5nKSkpKQogICAgICAgOzsg
SWYgdGhlIHByZXZpb3VzbHkgc2VsZWN0ZWQgd2luZG93IGlzIHN0aWxsIGFsaXZlLCBzZWxl
Y3QgaXQuCiAgICAgICAod2luZG93LS1xdWl0LXJlc3RvcmUtc2VsZWN0LXdpbmRvdyBxdWl0
LXJlc3RvcmUtMikpCiAgICAgICgob3IgKGFuZCAobGlzdHAgKHNldHEgcXVhZCAobnRoIDEg
cXVpdC1yZXN0b3JlLXByZXYpKSkKQEAgLTUzMjgsNyArNTQxMCw3IEBAIHF1aXQtcmVzdG9y
ZS13aW5kb3cKICAgICAgIDs7IERlYWwgd2l0aCB0aGUgYnVmZmVyIHdlIGp1c3QgcmVtb3Zl
ZCBmcm9tIFdJTkRPVy4KICAgICAgIChzZXRxIGVudHJ5IChhbmQgKGVxIGJ1cnktb3Ita2ls
bCAnYXBwZW5kKQogCQkgICAgICAgKGFzc3EgYnVmZmVyICh3aW5kb3ctcHJldi1idWZmZXJz
IHdpbmRvdykpKSkKLSAgICAgICh3aGVuIGJ1cnktb3Ita2lsbAorICAgICAgKHdoZW4gKG1l
bXEgYnVyeS1vci1raWxsICcoYnVyeSBidXJ5aW5nIGtpbGwga2lsbGluZykpCiAJOzsgUmVt
b3ZlIGJ1ZmZlciBmcm9tIFdJTkRPVydzIHByZXZpb3VzIGFuZCBuZXh0IGJ1ZmZlcnMuCiAJ
KHNldC13aW5kb3ctcHJldi1idWZmZXJzCiAJIHdpbmRvdyAoYXNzcS1kZWxldGUtYWxsIGJ1
ZmZlciAod2luZG93LXByZXYtYnVmZmVycyB3aW5kb3cpKSkKQEAgLTUzNDYsNyArNTQyOCw2
IEBAIHF1aXQtcmVzdG9yZS13aW5kb3cKIAk7OyBJZiBxdWl0LXJlc3RvcmUtcHJldiB3YXMg
bm90IHVzZWQsIHJlc2V0IHRoZSBxdWl0LXJlc3RvcmUKIAk7OyBwYXJhbWV0ZXIKIAkoc2V0
LXdpbmRvdy1wYXJhbWV0ZXIgd2luZG93ICdxdWl0LXJlc3RvcmUgbmlsKSkKLSAgICAgIDs7
IFNlbGVjdCBvbGQgd2luZG93LgogICAgICAgOzsgSWYgdGhlIHByZXZpb3VzbHkgc2VsZWN0
ZWQgd2luZG93IGlzIHN0aWxsIGFsaXZlLCBzZWxlY3QgaXQuCiAgICAgICAod2luZG93LS1x
dWl0LXJlc3RvcmUtc2VsZWN0LXdpbmRvdyBxdWl0LXJlc3RvcmUtMikpCiAgICAgICh0CkBA
IC01MzU5LDEzICs1NDQwLDE0IEBAIHF1aXQtcmVzdG9yZS13aW5kb3cKICAgICAgIChpZiAo
c3dpdGNoLXRvLXByZXYtYnVmZmVyIHdpbmRvdyBidXJ5LW9yLWtpbGwpCiAgICAgICAgICAg
KHdoZW4gKGVxIGRlZGljYXRlZCAnc2lkZSkKICAgICAgICAgICAgIChzZXQtd2luZG93LWRl
ZGljYXRlZC1wIHdpbmRvdyAnc2lkZSkpCi0gICAgICAgICh3aW5kb3ctLWRlbGV0ZSB3aW5k
b3cgbmlsIChlcSBidXJ5LW9yLWtpbGwgJ2tpbGwpKSkpKQorICAgICAgICAod2luZG93LS1k
ZWxldGUKKwkgd2luZG93IG5pbCAobWVtcSBidXJ5LW9yLWtpbGwgJyhraWxsIGtpbGxpbmcp
KSkpKSkKICAgICA7OyBEZWFsIHdpdGggdGhlIGJ1ZmZlci4KICAgICAoY29uZAogICAgICAo
KG5vdCAoYnVmZmVyLWxpdmUtcCBidWZmZXIpKSkKICAgICAgKChlcSBidXJ5LW9yLWtpbGwg
J2tpbGwpCiAgICAgICAoa2lsbC1idWZmZXIgYnVmZmVyKSkKLSAgICAgKGJ1cnktb3Ita2ls
bAorICAgICAoKGVxIGJ1cnktb3Ita2lsbCAnYnVyeSkKICAgICAgIChidXJ5LWJ1ZmZlci1p
bnRlcm5hbCBidWZmZXIpKSkpKQogCiAoZGVmdW4gcXVpdC13aW5kb3cgKCZvcHRpb25hbCBr
aWxsIHdpbmRvdykKQEAgLTU0MDYsMTEgKzU0ODgsMTggQEAgcXVpdC13aW5kb3dzLW9uCiAJ
KGZyYW1lcyAoY29uZCAoKG5vdCBmcmFtZSkgdCkgKChlcSBmcmFtZSB0KSBuaWwpICh0IGZy
YW1lKSkpKQogICAgIChkb2xpc3QgKHdpbmRvdyAod2luZG93LWxpc3QtMSBuaWwgbmlsIGZy
YW1lcykpCiAgICAgICAod2hlbiAoZXEgKHdpbmRvdy1idWZmZXIgd2luZG93KSBidWZmZXIp
Ci0JKHF1aXQtcmVzdG9yZS13aW5kb3cgd2luZG93IGtpbGwpKQorCShxdWl0LXJlc3RvcmUt
d2luZG93CisJIHdpbmRvdyAoaWYga2lsbCAna2lsbGluZyAnYnVyeWluZykpKQogCiAgICAg
ICAod2hlbiAod2luZG93LWxpdmUtcCB3aW5kb3cpCiAJOzsgVW5yZWNvcmQgQlVGRkVSIGlu
IHRoaXMgd2luZG93LgotCSh1bnJlY29yZC13aW5kb3ctYnVmZmVyIHdpbmRvdyBidWZmZXIp
KSkpKQorCSh1bnJlY29yZC13aW5kb3ctYnVmZmVyIHdpbmRvdyBidWZmZXIpKSkKKworICAg
IDs7IERlYWwgd2l0aCBCVUZGRVItT1ItTkFNRS4KKyAgICAoY29uZAorICAgICAoKG5vdCAo
YnVmZmVyLWxpdmUtcCBidWZmZXIpKSkKKyAgICAgKGtpbGwgKGtpbGwtYnVmZmVyIGJ1ZmZl
cikpCisgICAgICh0IChidXJ5LWJ1ZmZlci1pbnRlcm5hbCBidWZmZXIpKSkpKQogDAogKGRl
ZnVuIHdpbmRvdy0tY29tYmluYXRpb24tcmVzaXphYmxlIChwYXJlbnQgJm9wdGlvbmFsIGhv
cml6b250YWwpCiAgICJSZXR1cm4gbnVtYmVyIG9mIHBpeGVscyByZWNvdmVyYWJsZSBmcm9t
IGhlaWdodCBvZiB3aW5kb3cgUEFSRU5ULgpAQCAtNjcyMywzNiArNjgxMiwzOCBAQCBkaXNw
bGF5LWJ1ZmZlci1yZWNvcmQtd2luZG93CiAKIElmIFRZUEUgaXMgYHJldXNlJywgQlVGRkVS
IGlzIGRpZmZlcmVudCBmcm9tIHRoZSBvbmUgY3VycmVudGx5IGRpc3BsYXllZAogaW4gV0lO
RE9XLCBhbmQgV0lORE9XIGFscmVhZHkgaGFzIGEgYHF1aXQtcmVzdG9yZScgcGFyYW1ldGVy
LCBpbnN0YWxsIG9yCi11cGRhdGUgYSBgcXVpdC1yZXN0b3JlLXByZXYnIHBhcmFtZXRlciBm
b3IgdGhpcyB3aW5kb3cgdGhhdCBhbGxvd3MgdG8KLXF1aXQgV0lORE9XIGluIGEgc2ltaWxh
ciBmYXNoaW9uIGJ1dCByZW1lbWJlcnMgdGhlIHZlcnkgZmlyc3QgaW4gYQotc2VyaWVzIG9m
IGJ1ZmZlciBkaXNwbGF5IG9wZXJhdGlvbnMgZm9yIHRoaXMgd2luZG93LiIKK3VwZGF0ZSBh
IGBxdWl0LXJlc3RvcmUtcHJldicgcGFyYW1ldGVyIGZvciB0aGlzIHdpbmRvdy4gIFRoaXMg
YWxsb3dzIGZvcgorcXVpdHRpbmcgV0lORE9XIGluIGEgc2ltaWxhciBmYXNoaW9uIGJ1dCBh
bHNvIGtlZXBzIHRoZSB2ZXJ5IGZpcnN0CitgcXVpdC1yZXN0b3JlJyBwYXJhbWV0ZXIgc3Rv
cmVkIGZvciB0aGlzIHdpbmRvdyBhcm91bmQuICBDb25zZXF1ZW50bHksCitXSU5ET1cgKG9y
IGl0cyBmcmFtZSkgY2FuIGJlIGV2ZW50dWFsbHkgZGVsZXRlZCBieSBgcXVpdC1yZXN0b3Jl
LXdpZG93JworaWYgdGhhdCBwYXJhbWV0ZXIncyBmb3VydGggZWxlbWVudCBlcXVhbHMgV0lO
RE9XJ3MgYnVmZmVyLiIKICAgKGNvbmQKICAgICgoZXEgdHlwZSAncmV1c2UpCi0gICAgKGlm
IChlcSAod2luZG93LWJ1ZmZlciB3aW5kb3cpIGJ1ZmZlcikKLQk7OyBXSU5ET1cgc2hvd3Mg
QlVGRkVSIGFscmVhZHkuICBVcGRhdGUgV0lORE9XJ3MgcXVpdC1yZXN0b3JlCi0JOzsgcGFy
YW1ldGVyLCBpZiBhbnkuCi0JKGxldCAoKHF1aXQtcmVzdG9yZSAod2luZG93LXBhcmFtZXRl
ciB3aW5kb3cgJ3F1aXQtcmVzdG9yZSkpKQorICAgIChsZXQgKChxdWl0LXJlc3RvcmUgKHdp
bmRvdy1wYXJhbWV0ZXIgd2luZG93ICdxdWl0LXJlc3RvcmUpKSkKKyAgICAgIChpZiAoZXEg
KHdpbmRvdy1idWZmZXIgd2luZG93KSBidWZmZXIpCisJICA7OyBXSU5ET1cgc2hvd3MgQlVG
RkVSIGFscmVhZHkuICBVcGRhdGUgV0lORE9XJ3MgcXVpdC1yZXN0b3JlCisJICA7OyBwYXJh
bWV0ZXIsIGlmIGFueS4KIAkgICh3aGVuIChjb25zcCBxdWl0LXJlc3RvcmUpCiAJICAgIChz
ZXRjYXIgcXVpdC1yZXN0b3JlICdzYW1lKQogCSAgICA7OyBUaGUgc2VsZWN0ZWQtd2luZG93
IG1pZ2h0IGhhdmUgY2hhbmdlZCBpbgogCSAgICA7OyBiZXR3ZWVuIChCdWcjMjAzNTMpLgog
CSAgICAodW5sZXNzIChvciAoZXEgd2luZG93IChzZWxlY3RlZC13aW5kb3cpKQotICAgICAg
ICAgICAgICAgICAgICAgICAgKGVxIHdpbmRvdyAobnRoIDIgcXVpdC1yZXN0b3JlKSkpCi0J
ICAgICAgKHNldGNhciAoY2RkciBxdWl0LXJlc3RvcmUpIChzZWxlY3RlZC13aW5kb3cpKSkp
KQotICAgICAgOzsgV0lORE9XIHNob3dzIGFub3RoZXIgYnVmZmVyLgotICAgICAgKHdpdGgt
Y3VycmVudC1idWZmZXIgKHdpbmRvdy1idWZmZXIgd2luZG93KQotCShzZXQtd2luZG93LXBh
cmFtZXRlcgotCSB3aW5kb3cgJ3F1aXQtcmVzdG9yZS1wcmV2Ci0JIChsaXN0ICdvdGhlcgot
CSAgICAgICA7OyBBIHF1YWRydXBsZSBvZiBXSU5ET1cncyBidWZmZXIsIHN0YXJ0LCBwb2lu
dCBhbmQgaGVpZ2h0LgotCSAgICAgICAobGlzdCAoY3VycmVudC1idWZmZXIpICh3aW5kb3ct
c3RhcnQgd2luZG93KQotCQkgICAgIDs7IFByZXNlcnZlIHdpbmRvdy1wb2ludC1pbnNlcnRp
b24tdHlwZSAoQnVnIzEyODU1KS4KLQkJICAgICAoY29weS1tYXJrZXIKLQkJICAgICAgKHdp
bmRvdy1wb2ludCB3aW5kb3cpIHdpbmRvdy1wb2ludC1pbnNlcnRpb24tdHlwZSkKLQkJICAg
ICAoaWYgKHdpbmRvdy1jb21iaW5lZC1wIHdpbmRvdykKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAod2luZG93LXRvdGFsLWhlaWdodCB3aW5kb3cpCi0gICAgICAgICAgICAgICAgICAg
ICAgICh3aW5kb3ctdG90YWwtd2lkdGggd2luZG93KSkpCi0JICAgICAgIChzZWxlY3RlZC13
aW5kb3cpIGJ1ZmZlcikpKSkpCisJCQkoZXEgd2luZG93IChudGggMiBxdWl0LXJlc3RvcmUp
KSkKKwkgICAgICAoc2V0Y2FyIChjZGRyIHF1aXQtcmVzdG9yZSkgKHNlbGVjdGVkLXdpbmRv
dykpKSkKKwk7OyBXSU5ET1cgc2hvd3MgYW5vdGhlciBidWZmZXIuCisJKHdpdGgtY3VycmVu
dC1idWZmZXIgKHdpbmRvdy1idWZmZXIgd2luZG93KQorCSAgKHNldC13aW5kb3ctcGFyYW1l
dGVyCisJICAgd2luZG93IChpZiBxdWl0LXJlc3RvcmUgJ3F1aXQtcmVzdG9yZS1wcmV2ICdx
dWl0LXJlc3RvcmUpCisJICAgKGxpc3QgJ290aGVyCisJCSA7OyBBIHF1YWRydXBsZSBvZiBX
SU5ET1cncyBidWZmZXIsIHN0YXJ0LCBwb2ludCBhbmQgaGVpZ2h0LgorCQkgKGxpc3QgKGN1
cnJlbnQtYnVmZmVyKSAod2luZG93LXN0YXJ0IHdpbmRvdykKKwkJICAgICAgIDs7IFByZXNl
cnZlIHdpbmRvdy1wb2ludC1pbnNlcnRpb24tdHlwZSAoQnVnIzEyODU1KS4KKwkJICAgICAg
IChjb3B5LW1hcmtlcgorCQkJKHdpbmRvdy1wb2ludCB3aW5kb3cpIHdpbmRvdy1wb2ludC1p
bnNlcnRpb24tdHlwZSkKKwkJICAgICAgIChpZiAod2luZG93LWNvbWJpbmVkLXAgd2luZG93
KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgKHdpbmRvdy10b3RhbC1oZWlnaHQgd2lu
ZG93KQorCQkJICh3aW5kb3ctdG90YWwtd2lkdGggd2luZG93KSkpCisJCSAoc2VsZWN0ZWQt
d2luZG93KSBidWZmZXIpKSkpKSkKICAgICgoZXEgdHlwZSAnd2luZG93KQogICAgIDs7IFdJ
TkRPVyBoYXMgYmVlbiBjcmVhdGVkIG9uIGFuIGV4aXN0aW5nIGZyYW1lLgogICAgIChzZXQt
d2luZG93LXBhcmFtZXRlcgpkaWZmIC0tZ2l0IGEvc3JjL2FsbG9jLmMgYi9zcmMvYWxsb2Mu
YwppbmRleCA2NjZmNzdiZmNlMS4uYjk1NTY1MWY1YzAgMTAwNjQ0Ci0tLSBhL3NyYy9hbGxv
Yy5jCisrKyBiL3NyYy9hbGxvYy5jCkBAIC02OTk4LDMzICs2OTk4LDYgQEAgbWFya19mYWNl
X2NhY2hlIChzdHJ1Y3QgZmFjZV9jYWNoZSAqYykKICAgICB9CiB9CiAKLS8qIFJlbW92ZSBr
aWxsZWQgYnVmZmVycyBvciBpdGVtcyB3aG9zZSBjYXIgaXMgYSBraWxsZWQgYnVmZmVyIGZy
b20KLSAgIExJU1QsIGFuZCBtYXJrIG90aGVyIGl0ZW1zLiAgUmV0dXJuIGNoYW5nZWQgTElT
VCwgd2hpY2ggaXMgbWFya2VkLiAgKi8KLQotc3RhdGljIExpc3BfT2JqZWN0Ci1tYXJrX2Rp
c2NhcmRfa2lsbGVkX2J1ZmZlcnMgKExpc3BfT2JqZWN0IGxpc3QpCi17Ci0gIExpc3BfT2Jq
ZWN0IHRhaWwsICpwcmV2ID0gJmxpc3Q7Ci0KLSAgZm9yICh0YWlsID0gbGlzdDsgQ09OU1Ag
KHRhaWwpICYmICFjb25zX21hcmtlZF9wIChYQ09OUyAodGFpbCkpOwotICAgICAgIHRhaWwg
PSBYQ0RSICh0YWlsKSkKLSAgICB7Ci0gICAgICBMaXNwX09iamVjdCB0ZW0gPSBYQ0FSICh0
YWlsKTsKLSAgICAgIGlmIChDT05TUCAodGVtKSkKLQl0ZW0gPSBYQ0FSICh0ZW0pOwotICAg
ICAgaWYgKEJVRkZFUlAgKHRlbSkgJiYgIUJVRkZFUl9MSVZFX1AgKFhCVUZGRVIgKHRlbSkp
KQotCSpwcmV2ID0gWENEUiAodGFpbCk7Ci0gICAgICBlbHNlCi0JewotCSAgc2V0X2NvbnNf
bWFya2VkIChYQ09OUyAodGFpbCkpOwotCSAgbWFya19vYmplY3QgKFhDQVIgKHRhaWwpKTsK
LQkgIHByZXYgPSB4Y2RyX2FkZHIgKHRhaWwpOwotCX0KLSAgICB9Ci0gIG1hcmtfb2JqZWN0
ICh0YWlsKTsKLSAgcmV0dXJuIGxpc3Q7Ci19Ci0KIHN0YXRpYyB2b2lkCiBtYXJrX2ZyYW1l
IChzdHJ1Y3QgTGlzcF9WZWN0b3IgKnB0cikKIHsKQEAgLTcwNzksMTUgKzcwNTIsNiBAQCBt
YXJrX3dpbmRvdyAoc3RydWN0IExpc3BfVmVjdG9yICpwdHIpCiAgICAgICBtYXJrX2dseXBo
X21hdHJpeCAody0+Y3VycmVudF9tYXRyaXgpOwogICAgICAgbWFya19nbHlwaF9tYXRyaXgg
KHctPmRlc2lyZWRfbWF0cml4KTsKICAgICB9Ci0KLSAgLyogRmlsdGVyIG91dCBraWxsZWQg
YnVmZmVycyBmcm9tIGJvdGggYnVmZmVyIGxpc3RzCi0gICAgIGluIGF0dGVtcHQgdG8gaGVs
cCBHQyB0byByZWNsYWltIGtpbGxlZCBidWZmZXJzIGZhc3Rlci4KLSAgICAgV2UgY2FuIGRv
IGl0IGVsc2V3aGVyZSBmb3IgbGl2ZSB3aW5kb3dzLCBidXQgdGhpcyBpcyB0aGUKLSAgICAg
YmVzdCBwbGFjZSB0byBkbyBpdCBmb3IgZGVhZCB3aW5kb3dzLiAgKi8KLSAgd3NldF9wcmV2
X2J1ZmZlcnMKLSAgICAodywgbWFya19kaXNjYXJkX2tpbGxlZF9idWZmZXJzICh3LT5wcmV2
X2J1ZmZlcnMpKTsKLSAgd3NldF9uZXh0X2J1ZmZlcnMKLSAgICAodywgbWFya19kaXNjYXJk
X2tpbGxlZF9idWZmZXJzICh3LT5uZXh0X2J1ZmZlcnMpKTsKIH0KIAogLyogRW50cnkgb2Yg
dGhlIG1hcmsgc3RhY2suICAqLwpkaWZmIC0tZ2l0IGEvc3JjL2J1ZmZlci5jIGIvc3JjL2J1
ZmZlci5jCmluZGV4IDc0NGIwZWY1NTQ4Li42ZWM0MGFmZjY0NiAxMDA2NDQKLS0tIGEvc3Jj
L2J1ZmZlci5jCisrKyBiL3NyYy9idWZmZXIuYwpAQCAtMjAxMiw2ICsyMDEyLDEzIEBAIERF
RlVOICgia2lsbC1idWZmZXIiLCBGa2lsbF9idWZmZXIsIFNraWxsX2J1ZmZlciwgMCwgMSwg
ImJLaWxsIGJ1ZmZlcjogIiwKICAgICAgYnVmZmVyIChidWcjMTAxMTQpLiAgKi8KICAgcmVw
bGFjZV9idWZmZXJfaW5fd2luZG93cyAoYnVmZmVyKTsKIAorICAvKiBGb3IgZGVhZCB3aW5k
b3dzIHRoYXQgaGF2ZSBub3QgYmVlbiBjb2xsZWN0ZWQgeWV0LCByZW1vdmUgdGhpcworICAg
ICBidWZmZXIgZnJvbSB0aG9zZSB3aW5kb3dzJyBsaXN0cyBvZiBwcmV2aW91c2x5IGFuZCBu
ZXh0IHNob3duCisgICAgIGJ1ZmZlcnMgYW5kIHJlbW92ZSBhbnkgJ3F1aXQtcmVzdG9yZScg
b3IgJ3F1aXQtcmVzdG9yZS1wcmV2JworICAgICBwYXJhbWV0ZXJzIG1lbnRpb25pbmcgdGhl
IGJ1ZmZlci4gICovCisgIGlmIChYRklYTlVNIChCVkFSIChiLCBkaXNwbGF5X2NvdW50KSkg
PiAwKQorICAgIHdpbmRvd19kaXNjYXJkX2J1ZmZlcl9mcm9tX2RlYWRfd2luZG93cyAoYnVm
ZmVyKTsKKwogICAvKiBFeGl0IGlmIHJlcGxhY2luZyB0aGUgYnVmZmVyIGluIHdpbmRvd3Mg
aGFzIGtpbGxlZCBvdXIgYnVmZmVyLiAgKi8KICAgaWYgKCFCVUZGRVJfTElWRV9QIChiKSkK
ICAgICByZXR1cm4gUXQ7CmRpZmYgLS1naXQgYS9zcmMvd2luZG93LmMgYi9zcmMvd2luZG93
LmMKaW5kZXggZmYyOGJhYzUzMDYuLmRkMGFiZTg0ZmRmIDEwMDY0NAotLS0gYS9zcmMvd2lu
ZG93LmMKKysrIGIvc3JjL3dpbmRvdy5jCkBAIC0zMjc3LDYgKzMyNzcsOTAgQEAgd2luZG93
X3BpeGVsX3RvX3RvdGFsIChMaXNwX09iamVjdCBmcmFtZSwgTGlzcF9PYmplY3QgaG9yaXpv
bnRhbCkKIH0KIAogCisvKiBSZW1vdmUgZmlyc3Qgb2NjdXJyZW5jZSBvZiBlbGVtZW50IHdo
b3NlIGNhciBpcyBCVUZGRVIgZnJvbSBBTElTVC4KKyAgIFJldHVybiBjaGFuZ2VkIEFMSVNU
LiAgKi8KK3N0YXRpYyBMaXNwX09iamVjdAord2luZG93X2Rpc2NhcmRfYnVmZmVyX2Zyb21f
YWxpc3QgKExpc3BfT2JqZWN0IGJ1ZmZlciwgTGlzcF9PYmplY3QgYWxpc3QpCit7CisgIExp
c3BfT2JqZWN0IHRhaWwsICpwcmV2ID0gJmFsaXN0OworCisgIGZvciAodGFpbCA9IGFsaXN0
OyBDT05TUCAodGFpbCk7IHRhaWwgPSBYQ0RSICh0YWlsKSkKKyAgICB7CisgICAgICBMaXNw
X09iamVjdCB0ZW0gPSBYQ0FSICh0YWlsKTsKKworICAgICAgdGVtID0gWENBUiAodGVtKTsK
KworICAgICAgaWYgKEVRICh0ZW0sIGJ1ZmZlcikpCisJeworCSAgKnByZXYgPSBYQ0RSICh0
YWlsKTsKKwkgIGJyZWFrOworCX0KKyAgICAgIGVsc2UKKwlwcmV2ID0geGNkcl9hZGRyICh0
YWlsKTsKKyAgICB9CisKKyAgcmV0dXJuIGFsaXN0OworfQorCisvKiBSZW1vdmUgZmlyc3Qg
b2NjdXJyZW5jZSBvZiBCVUZGRVIgZnJvbSBMSVNULiAgUmV0dXJuIGNoYW5nZWQKKyAgIExJ
U1QuICAqLworc3RhdGljIExpc3BfT2JqZWN0Cit3aW5kb3dfZGlzY2FyZF9idWZmZXJfZnJv
bV9saXN0IChMaXNwX09iamVjdCBidWZmZXIsIExpc3BfT2JqZWN0IGxpc3QpCit7CisgIExp
c3BfT2JqZWN0IHRhaWwsICpwcmV2ID0gJmxpc3Q7CisKKyAgZm9yICh0YWlsID0gbGlzdDsg
Q09OU1AgKHRhaWwpOyB0YWlsID0gWENEUiAodGFpbCkpCisgICAgeworICAgICAgaWYgKEVR
IChYQ0FSICh0YWlsKSwgYnVmZmVyKSkKKwl7CisJICAqcHJldiA9IFhDRFIgKHRhaWwpOwor
CSAgYnJlYWs7CisJfQorICAgICAgZWxzZQorCXByZXYgPSB4Y2RyX2FkZHIgKHRhaWwpOwor
ICAgIH0KKworICByZXR1cm4gbGlzdDsKK30KKworc3RhdGljIHZvaWQKK3dpbmRvd19kaXNj
YXJkX2J1ZmZlcl9mcm9tX2RlYWRfd2luZG93IChMaXNwX09iamVjdCBidWZmZXIsIExpc3Bf
T2JqZWN0IHdpbmRvdykKK3sKKyAgc3RydWN0IHdpbmRvdyAqdyA9IFhXSU5ET1cgKHdpbmRv
dyk7CisgIExpc3BfT2JqZWN0IHF1aXRfcmVzdG9yZSA9IHdpbmRvd19wYXJhbWV0ZXIgKHcs
IFFxdWl0X3Jlc3RvcmUpOworICBMaXNwX09iamVjdCBxdWl0X3Jlc3RvcmVfcHJldiA9IHdp
bmRvd19wYXJhbWV0ZXIgKHcsIFFxdWl0X3Jlc3RvcmVfcHJldik7CisgIExpc3BfT2JqZWN0
IHF1YWQ7CisKKyAgd3NldF9wcmV2X2J1ZmZlcnMKKyAgICAodywgd2luZG93X2Rpc2NhcmRf
YnVmZmVyX2Zyb21fYWxpc3QgKGJ1ZmZlciwgdy0+cHJldl9idWZmZXJzKSk7CisgIHdzZXRf
bmV4dF9idWZmZXJzCisgICAgKHcsIHdpbmRvd19kaXNjYXJkX2J1ZmZlcl9mcm9tX2xpc3Qg
KGJ1ZmZlciwgdy0+bmV4dF9idWZmZXJzKSk7CisKKyAgaWYgKEVRIChidWZmZXIsIEZudGgg
KG1ha2VfZml4bnVtICgzKSwgcXVpdF9yZXN0b3JlX3ByZXYpKQorICAgICAgfHwgKENPTlNQ
IChxdWFkID0gRmNhciAoRmNkciAocXVpdF9yZXN0b3JlX3ByZXYpKSkKKwkgICYmIEVRIChG
Y2FyIChxdWFkKSwgYnVmZmVyKSkpCisgICAgRnNldF93aW5kb3dfcGFyYW1ldGVyICh3aW5k
b3csIFFxdWl0X3Jlc3RvcmVfcHJldiwgUW5pbCk7CisKKyAgaWYgKEVRIChidWZmZXIsIEZu
dGggKG1ha2VfZml4bnVtICgzKSwgcXVpdF9yZXN0b3JlKSkKKyAgICAgIHx8IChDT05TUCAo
cXVhZCA9IEZjYXIgKEZjZHIgKHF1aXRfcmVzdG9yZSkpKQorCSAgJiYgRVEgKEZjYXIgKHF1
YWQpLCBidWZmZXIpKSkKKyAgICB7CisgICAgICBGc2V0X3dpbmRvd19wYXJhbWV0ZXIgKHdp
bmRvdywgUXF1aXRfcmVzdG9yZSwKKwkJCSAgICAgd2luZG93X3BhcmFtZXRlciAodywgUXF1
aXRfcmVzdG9yZV9wcmV2KSk7CisgICAgICBGc2V0X3dpbmRvd19wYXJhbWV0ZXIgKHdpbmRv
dywgUXF1aXRfcmVzdG9yZV9wcmV2LCBRbmlsKTsKKyAgICB9Cit9CisKK3ZvaWQKK3dpbmRv
d19kaXNjYXJkX2J1ZmZlcl9mcm9tX2RlYWRfd2luZG93cyAoTGlzcF9PYmplY3QgYnVmZmVy
KQoreworICBzdHJ1Y3QgTGlzcF9IYXNoX1RhYmxlICpoID0gWEhBU0hfVEFCTEUgKHdpbmRv
d19kZWFkX3dpbmRvd3NfdGFibGUpOworCisgIERPSEFTSCAoaCwgaywgdikKKyAgICB3aW5k
b3dfZGlzY2FyZF9idWZmZXJfZnJvbV9kZWFkX3dpbmRvdyAoYnVmZmVyLCB2KTsKK30KKwor
CiBERUZVTiAoImRlbGV0ZS1vdGhlci13aW5kb3dzLWludGVybmFsIiwgRmRlbGV0ZV9vdGhl
cl93aW5kb3dzX2ludGVybmFsLAogICAgICAgIFNkZWxldGVfb3RoZXJfd2luZG93c19pbnRl
cm5hbCwgMCwgMiwgIiIsCiAgICAgICAgZG9jOiAvKiBNYWtlIFdJTkRPVyBmaWxsIGl0cyBm
cmFtZS4KQEAgLTQ0MDIsNiArNDQ4NiwxMCBAQCBtYWtlX3BhcmVudF93aW5kb3cgKExpc3Bf
T2JqZWN0IHdpbmRvdywgYm9vbCBob3JmbGFnKQogICB3c2V0X2J1ZmZlciAocCwgUW5pbCk7
CiAgIHdzZXRfY29tYmluYXRpb24gKHAsIGhvcmZsYWcsIHdpbmRvdyk7CiAgIHdzZXRfY29t
YmluYXRpb25fbGltaXQgKHAsIFFuaWwpOworICAvKiBSZXNldCBhbnkgcHJldmlvdXMgYW5k
IG5leHQgYnVmZmVycyBvZiBwIHdoaWNoIGhhdmUgYmVlbiBpbnN0YWxsZWQKKyAgICAgYnkg
dGhlIG1lbWNweSBhYm92ZS4gICovCisgIHdzZXRfcHJldl9idWZmZXJzIChwLCBRbmlsKTsK
KyAgd3NldF9uZXh0X2J1ZmZlcnMgKHAsIFFuaWwpOwogICB3c2V0X3dpbmRvd19wYXJhbWV0
ZXJzIChwLCBRbmlsKTsKIH0KIApAQCAtNDQyNiwxMCArNDUxNCw2IEBAIG1ha2Vfd2luZG93
ICh2b2lkKQogICB3c2V0X3ZlcnRpY2FsX3Njcm9sbF9iYXJfdHlwZSAodywgUXQpOwogICB3
c2V0X2hvcml6b250YWxfc2Nyb2xsX2Jhcl90eXBlICh3LCBRdCk7CiAgIHdzZXRfY3Vyc29y
X3R5cGUgKHcsIFF0KTsKLSAgLyogVGhlc2UgTGlzcCBmaWVsZHMgYXJlIG1hcmtlZCBzcGVj
aWFsbHkgc28gdGhleSdyZSBub3Qgc2V0IHRvIG5pbCBieQotICAgICBhbGxvY2F0ZV93aW5k
b3cuICAqLwotICB3c2V0X3ByZXZfYnVmZmVycyAodywgUW5pbCk7Ci0gIHdzZXRfbmV4dF9i
dWZmZXJzICh3LCBRbmlsKTsKIAogICAvKiBJbml0aWFsaXplIG5vbi1MaXNwIGRhdGEuICBO
b3RlIHRoYXQgYWxsb2NhdGVfd2luZG93IHplcm9lcyBvdXQgYWxsCiAgICAgIG5vbi1MaXNw
IGRhdGEsIHNvIGRvIGl0IG9ubHkgZm9yIHNsb3RzIHdoaWNoIHNob3VsZCBub3QgYmUgemVy
by4gICovCkBAIC01MjUyLDYgKzUzMzYsMTEgQEAgREVGVU4gKCJkZWxldGUtd2luZG93LWlu
dGVybmFsIiwgRmRlbGV0ZV93aW5kb3dfaW50ZXJuYWwsIFNkZWxldGVfd2luZG93X2ludGVy
bmEKIAkgIHVuY2hhaW5fbWFya2VyIChYTUFSS0VSICh3LT5vbGRfcG9pbnRtKSk7CiAJICB1
bmNoYWluX21hcmtlciAoWE1BUktFUiAody0+c3RhcnQpKTsKIAkgIHdzZXRfYnVmZmVyICh3
LCBRbmlsKTsKKwkgIC8qIEFkZCBXSU5ET1cgdG8gdGFibGUgb2YgZGVhZCB3aW5kb3dzIHNv
IHdoZW4ga2lsbGluZyBhIGJ1ZmZlcgorCSAgICAgV0lORE9XIG1lbnRpb25zLCBhbGwgcmVm
ZXJlbmNlcyB0byB0aGF0IGJ1ZmZlciBjYW4gYmUgcmVtb3ZlZAorCSAgICAgYW5kIHRoZSBi
dWZmZXIgYmUgY29sbGVjdGVkLiAgKi8KKwkgIEZwdXRoYXNoIChtYWtlX2ZpeG51bSAody0+
c2VxdWVuY2VfbnVtYmVyKSwKKwkJICAgIHdpbmRvdywgd2luZG93X2RlYWRfd2luZG93c190
YWJsZSk7CiAJfQogCiAgICAgICBpZiAoTklMUCAocy0+cHJldikgJiYgTklMUCAocy0+bmV4
dCkpCkBAIC03MzU2LDYgKzc0NDUsMTAgQEAgREVGVU4gKCJzZXQtd2luZG93LWNvbmZpZ3Vy
YXRpb24iLCBGc2V0X3dpbmRvd19jb25maWd1cmF0aW9uLAogCQl9CiAJICAgIH0KIAorCSAg
LyogUmVtb3ZlIHdpbmRvdyBmcm9tIHRoZSB0YWJsZSBvZiBkZWFkIHdpbmRvd3MuICAqLwor
CSAgRnJlbWhhc2ggKG1ha2VfZml4bnVtICh3LT5zZXF1ZW5jZV9udW1iZXIpLAorCQkgICAg
d2luZG93X2RlYWRfd2luZG93c190YWJsZSk7CisKIAkgIGlmICgoTklMUCAoZG9udF9zZXRf
bWluaXdpbmRvdykgfHwgIU1JTklfV0lORE9XX1AgKHcpKQogCSAgICAgICYmIEJVRkZFUlAg
KHAtPmJ1ZmZlcikgJiYgQlVGRkVSX0xJVkVfUCAoWEJVRkZFUiAocC0+YnVmZmVyKSkpCiAJ
ICAgIC8qIElmIHNhdmVkIGJ1ZmZlciBpcyBhbGl2ZSwgaW5zdGFsbCBpdCwgdW5sZXNzIGl0
J3MgYQpAQCAtNzU4NSw2ICs3Njc4LDExIEBAIGRlbGV0ZV9hbGxfY2hpbGRfd2luZG93cyAo
TGlzcF9PYmplY3Qgd2luZG93KQogCSBwb3NzaWJsZSByZXN1cnJlY3Rpb24gaW4gRnNldF93
aW5kb3dfY29uZmlndXJhdGlvbi4gICovCiAgICAgICB3c2V0X2NvbWJpbmF0aW9uX2xpbWl0
ICh3LCB3LT5jb250ZW50cyk7CiAgICAgICB3c2V0X2J1ZmZlciAodywgUW5pbCk7CisgICAg
ICAvKiBBZGQgV0lORE9XIHRvIHRhYmxlIG9mIGRlYWQgd2luZG93cyBzbyB3aGVuIGtpbGxp
bmcgYSBidWZmZXIKKwkgV0lORE9XIG1lbnRpb25zLCBhbGwgcmVmZXJlbmNlcyB0byB0aGF0
IGJ1ZmZlciBjYW4gYmUgcmVtb3ZlZAorCSBhbmQgdGhlIGJ1ZmZlciBiZSBjb2xsZWN0ZWQu
ICAqLworICAgICAgRnB1dGhhc2ggKG1ha2VfZml4bnVtICh3LT5zZXF1ZW5jZV9udW1iZXIp
LAorCQl3aW5kb3csIHdpbmRvd19kZWFkX3dpbmRvd3NfdGFibGUpOwogICAgIH0KIAogICBW
d2luZG93X2xpc3QgPSBRbmlsOwpAQCAtODU5NCw2ICs4NjkyLDggQEAgc3ltc19vZl93aW5k
b3cgKHZvaWQpCiAgIERFRlNZTSAoUWNvbmZpZ3VyYXRpb24sICJjb25maWd1cmF0aW9uIik7
CiAgIERFRlNZTSAoUWRlbGV0ZSwgImRlbGV0ZSIpOwogICBERUZTWU0gKFFkZWRpY2F0ZWQs
ICJkZWRpY2F0ZWQiKTsKKyAgREVGU1lNIChRcXVpdF9yZXN0b3JlLCAicXVpdC1yZXN0b3Jl
Iik7CisgIERFRlNZTSAoUXF1aXRfcmVzdG9yZV9wcmV2LCAicXVpdC1yZXN0b3JlLXByZXYi
KTsKIAogICBERUZWQVJfTElTUCAoInRlbXAtYnVmZmVyLXNob3ctZnVuY3Rpb24iLCBWdGVt
cF9idWZmZXJfc2hvd19mdW5jdGlvbiwKIAkgICAgICAgZG9jOiAvKiBOb24tbmlsIG1lYW5z
IGNhbGwgYXMgZnVuY3Rpb24gdG8gZGlzcGxheSBhIGhlbHAgYnVmZmVyLgpAQCAtODkxNyw2
ICs5MDE3LDE3IEBAIHN5bXNfb2Zfd2luZG93ICh2b2lkKQogZGlzcGxheWVkIGFmdGVyIGEg
c2Nyb2xsaW5nIG9wZXJhdGlvbiB0byBiZSBzb21ld2hhdCBpbmFjY3VyYXRlLiAgKi8pOwog
ICBmYXN0X2J1dF9pbXByZWNpc2Vfc2Nyb2xsaW5nID0gZmFsc2U7CiAKKyAgREVGVkFSX0xJ
U1AgKCJ3aW5kb3ctZGVhZC13aW5kb3dzLXRhYmxlIiwgd2luZG93X2RlYWRfd2luZG93c190
YWJsZSwKKyAgICBkb2M6IC8qIEhhc2ggdGFibGUgb2YgZGVhZCB3aW5kb3dzLgorRWFjaCBl
bnRyeSBpbiB0aGlzIHRhYmxlIG1hcHMgYSB3aW5kb3cgbnVtYmVyIHRvIGEgd2luZG93IG9i
amVjdC4KK0VudHJpZXMgYXJlIGFkZGVkIGJ5IGBkZWxldGUtd2luZG93LWludGVybmFsJyBh
bmQgYXJlIHJlbW92ZWQgYnkgdGhlCitnYXJiYWdlIGNvbGxlY3Rvci4KKworVGhpcyB0YWJs
ZSBpcyBtYWludGFpbmVkIGJ5IGNvZGUgaW4gd2luZG93LmMgYW5kIGlzIG1hZGUgdmlzaWJs
ZSBpbgorRWxpc3AgZm9yIHRlc3RpbmcgcHVycG9zZXMgb25seS4gICovKTsKKyAgd2luZG93
X2RlYWRfd2luZG93c190YWJsZQorICAgID0gQ0FMTE4gKEZtYWtlX2hhc2hfdGFibGUsIFFD
d2Vha25lc3MsIFF0KTsKKwogICBkZWZzdWJyICgmU3NlbGVjdGVkX3dpbmRvdyk7CiAgIGRl
ZnN1YnIgKCZTb2xkX3NlbGVjdGVkX3dpbmRvdyk7CiAgIGRlZnN1YnIgKCZTbWluaWJ1ZmZl
cl93aW5kb3cpOwpkaWZmIC0tZ2l0IGEvc3JjL3dpbmRvdy5oIGIvc3JjL3dpbmRvdy5oCmlu
ZGV4IDg2OTMyMTgxMjUyLi4zMzVlMGEzNDUzZSAxMDA2NDQKLS0tIGEvc3JjL3dpbmRvdy5o
CisrKyBiL3NyYy93aW5kb3cuaApAQCAtMTQyLDYgKzE0MiwxMiBAQCAjZGVmaW5lIFdJTkRP
V19IX0lOQ0xVREVECiAgICAgICAgYXMgd2VsbC4gICovCiAgICAgTGlzcF9PYmplY3QgY29u
dGVudHM7CiAKKyAgICAvKiBBIGxpc3Qgb2YgPGJ1ZmZlciwgd2luZG93LXN0YXJ0LCB3aW5k
b3ctcG9pbnQ+IHRyaXBsZXMgbGlzdGluZworICAgICAgIGJ1ZmZlcnMgcHJldmlvdXNseSBz
aG93biBpbiB0aGlzIHdpbmRvdy4gICovCisgICAgTGlzcF9PYmplY3QgcHJldl9idWZmZXJz
OworICAgIC8qIExpc3Qgb2YgYnVmZmVycyByZS1zaG93biBpbiB0aGlzIHdpbmRvdy4gICov
CisgICAgTGlzcF9PYmplY3QgbmV4dF9idWZmZXJzOworCiAgICAgLyogVGhlIG9sZCBidWZm
ZXIgb2YgdGhpcyB3aW5kb3csIHNldCB0byB0aGlzIHdpbmRvdydzIGJ1ZmZlciBieQogICAg
ICAgIHJ1bl93aW5kb3dfY2hhbmdlX2Z1bmN0aW9ucyBldmVyeSB0aW1lIGl0IHNlZXMgdGhp
cyB3aW5kb3cuCiAgICAgICAgVW51c2VkIGZvciBpbnRlcm5hbCB3aW5kb3dzLiAgKi8KQEAg
LTIxOCwxNCArMjI0LDYgQEAgI2RlZmluZSBXSU5ET1dfSF9JTkNMVURFRAogICAgIHN0cnVj
dCBnbHlwaF9tYXRyaXggKmN1cnJlbnRfbWF0cml4OwogICAgIHN0cnVjdCBnbHlwaF9tYXRy
aXggKmRlc2lyZWRfbWF0cml4OwogCi0gICAgLyogVGhlIHR3byBMaXNwX09iamVjdCBmaWVs
ZHMgYmVsb3cgYXJlIG1hcmtlZCBpbiBhIHNwZWNpYWwgd2F5LAotICAgICAgIHdoaWNoIGlz
IHdoeSB0aGV5J3JlIHBsYWNlZCBhZnRlciBgY3VycmVudF9tYXRyaXgnLiAgKi8KLSAgICAv
KiBBIGxpc3Qgb2YgPGJ1ZmZlciwgd2luZG93LXN0YXJ0LCB3aW5kb3ctcG9pbnQ+IHRyaXBs
ZXMgbGlzdGluZwotICAgICAgIGJ1ZmZlcnMgcHJldmlvdXNseSBzaG93biBpbiB0aGlzIHdp
bmRvdy4gICovCi0gICAgTGlzcF9PYmplY3QgcHJldl9idWZmZXJzOwotICAgIC8qIExpc3Qg
b2YgYnVmZmVycyByZS1zaG93biBpbiB0aGlzIHdpbmRvdy4gICovCi0gICAgTGlzcF9PYmpl
Y3QgbmV4dF9idWZmZXJzOwotCiAgICAgLyogTnVtYmVyIHNheWluZyBob3cgcmVjZW50bHkg
d2luZG93IHdhcyBzZWxlY3RlZC4gICovCiAgICAgRU1BQ1NfSU5UIHVzZV90aW1lOwogCkBA
IC0xMjI4LDYgKzEyMjYsNyBAQCAjZGVmaW5lIENIRUNLX0xJVkVfV0lORE9XKFdJTkRPVykJ
CQkJXAogZXh0ZXJuIHZvaWQgd3NldF9idWZmZXIgKHN0cnVjdCB3aW5kb3cgKiwgTGlzcF9P
YmplY3QpOwogZXh0ZXJuIGJvb2wgd2luZG93X291dGRhdGVkIChzdHJ1Y3Qgd2luZG93ICop
OwogZXh0ZXJuIHB0cmRpZmZfdCB3aW5kb3dfcG9pbnQgKHN0cnVjdCB3aW5kb3cgKncpOwor
ZXh0ZXJuIHZvaWQgd2luZG93X2Rpc2NhcmRfYnVmZmVyX2Zyb21fZGVhZF93aW5kb3dzIChM
aXNwX09iamVjdCk7CiBleHRlcm4gdm9pZCBpbml0X3dpbmRvd19vbmNlICh2b2lkKTsKIGV4
dGVybiB2b2lkIGluaXRfd2luZG93ICh2b2lkKTsKIGV4dGVybiB2b2lkIHN5bXNfb2Zfd2lu
ZG93ICh2b2lkKTsK

--------------0cpMOBypjKdTdjfLu6e2lIGs--




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#59862; Package emacs. Full text available.

Message received at 59862 <at> debbugs.gnu.org:


Received: (at 59862) by debbugs.gnu.org; 17 Jul 2024 09:23:53 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Wed Jul 17 05:23:53 2024
Received: from localhost ([127.0.0.1]:35081 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1sU0t5-0000e8-9e
	for submit <at> debbugs.gnu.org; Wed, 17 Jul 2024 05:23:52 -0400
Received: from mout.gmx.net ([212.227.17.20]:46601)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <rudalics@HIDDEN>) id 1sU0t1-0000dt-LS
 for 59862 <at> debbugs.gnu.org; Wed, 17 Jul 2024 05:23:50 -0400
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmx.at;
 s=s31663417; t=1721208217; x=1721813017; i=rudalics@HIDDEN;
 bh=CPcBxgBgNsAMDoE7ta7iPds3w/J44fVEnAs/RN0URd0=;
 h=X-UI-Sender-Class:Content-Type:Message-ID:Date:MIME-Version:
 Subject:To:Cc:References:From:In-Reply-To:cc:
 content-transfer-encoding:content-type:date:from:message-id:
 mime-version:reply-to:subject:to;
 b=n4gO/MfdUfSKsDa+KmDhpYo6isIHo/jXeVuU2CuBYheW5IWtT9CyJiqiIFW+MIiT
 /o031EQJtvi/QkRIVJFEdecbRhbJj40ReTadOwDhOhRatqGk1sA3Dls3im4cFqBUl
 DC8Q0gElwd197kz+jkumxRcixXdBytKRr1aqik9t8Ynakoi3ipKpj+T+FJkuaanIn
 yq/jNWI1V75WDZZy7ktDwkDrvMAqbshK7Z0rVZU3IvyxYk4qMFF4l0fYMakA87nGh
 T5aDjUxLisCC8uPu7vQPl1eaQApTAYOhIIOCJYd1HKqX0FUdIhd0q23VnF5G+W+yf
 qFnOkr0DxT4kWJvUgA==
X-UI-Sender-Class: 724b4f7f-cbec-4199-ad4e-598c01a50d3a
Received: from [192.168.31.113] ([46.125.249.82]) by mail.gmx.net (mrgmx104
 [212.227.17.168]) with ESMTPSA (Nemesis) id 1MLi8m-1slgID0ATI-00VZsg; Wed, 17
 Jul 2024 11:23:37 +0200
Content-Type: multipart/mixed; boundary="------------0cpMOBypjKdTdjfLu6e2lIGs"
Message-ID: <9dfeeabb-f421-4cb3-863c-6411e7c4b8a5@HIDDEN>
Date: Wed, 17 Jul 2024 11:23:31 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: bug#59862: quit-restore per window buffer
To: =?UTF-8?Q?Bj=C3=B6rn_Bidar?= <bjorn.bidar@HIDDEN>,
 martin rudalics via Bug reports for GNU "Emacs, " the Swiss army knife of text
 editors <bug-gnu-emacs@HIDDEN>
References: <86fsds8mlm.fsf@HIDDEN> <86plsxmc6d.fsf@HIDDEN>
 <86r0d4ezdc.fsf@HIDDEN>
 <0d01a044-d7d6-456a-9ba9-d987faad4332@HIDDEN>
 <86frthjq4y.fsf@HIDDEN>
 <743dc4dd-cf09-4c5e-9209-b63a47480e0b@HIDDEN>
 <86msnne7ut.fsf@HIDDEN>
 <ad0bfe5d-817b-4d11-b82f-90c5a76b4c81@HIDDEN>
 <86plsgrfvu.fsf@HIDDEN>
 <ca1388d2-3481-49c4-8721-42792a399340@HIDDEN>
 <86le2b12ni.fsf@HIDDEN>
 <a972688e-01f6-428e-9dc0-67a45bc9a770@HIDDEN>
 <86y169kafb.fsf@HIDDEN>
 <61c4f245-3dd8-4e24-9c84-7ddd4cfe3c49@HIDDEN>
 <86a5ioo269.fsf@HIDDEN>
 <eb3b984d-dd6a-48e3-88c8-ef2cd146b0b7@HIDDEN>
 <867cdr3xs7.fsf@HIDDEN>
 <3f399d4f-3dd2-4624-b857-e198f70b5565@HIDDEN>
 <86h6csct0w.fsf@HIDDEN>
 <1fb1cc7a-b8ea-4d6d-ac6d-19abffef44f3@HIDDEN>
 <ee4e7e95-53d3-4b01-bd1a-ae2cd77352b2@HIDDEN> <871q3tc7da.fsf@>
Content-Language: en-US
From: martin rudalics <rudalics@HIDDEN>
In-Reply-To: <871q3tc7da.fsf@>
X-Provags-ID: V03:K1:VhVgOv/J4yQ8jOf6ugrt+aPc2W+/m5varTwe2cdmoC36+jy9SvC
 YWFgH2+QfjrP5Nas8lpCiotccDO1jMyTpMj9bu8JU1rrO16Jqe/F8rcdeIbh00hgFtb2enz
 eK252+YnjAAn+NjEhRY3B0Woq87Vob3Mmqbu45WxC7q3m+arG6TRAAj2FKYVyk7rd3FCfvS
 PCU0wW26brVeDqzZKKLEQ==
X-Spam-Flag: NO
UI-OutboundReport: notjunk:1;M01:P0:s/nC/AnwZf8=;HBdFjC4WbVuxKgkYa8QoKKEFmaT
 Jmog66OB+4w+SFVMjpY9LRErt/i0YXc5KxZNqHxN+ycDikMiWWutInH4zNpy1HO4SMRlszjRL
 TdhhKQkiQS4mynuSa3PKdPDMQoEDJOtx2JfZnM8XBE2a1ksXL2T7CwRgfcXeDjPPsqnR7DHyA
 YUeWQyI43Cqhy20IdkIH3uDCjoAzDBAQmpBvHPyxhj+ft4WrUBVtW5N9rlF/+JhOx/menlNhU
 U1npD87qohHtDznv0TD1XPyecxx6JUwzfY/C02jPy5EHYj3k56os0riKzS/k2zGrC7vrQvN31
 okpZN2pYi59wMAnNlINwlLbFvWBjYKlJXDAR15YRuLvC1XM3rDZ3emDL/cKcilyLMor+OIutg
 VKTCbjVLaySl+CWSCScSGX2ePII/ErucpHIerMhYkPkYJes0Ch/ZbWfwgf21pnKHJHrdDYgZ3
 deHw8QZfsiDCGH8qdP+vxX4aCmJwxsx5neLkgH3/N+/Zi+silsAd5/rfa9m1eRkS0xBbUhNpk
 r0hiKtgIqZ1r5WfDvvGEXFvqEsQ3dHAuNxIMijjmUdVFHF/4dAB8GnAYgABlIzCAoD8uNJmcS
 Yhzn3vFayLAjFo+jgVVs01UCVf5k8NSvbPyWiZtL+pIMSFhZsMzvbUnH7jQXtHBsHpjjqKvhf
 4X7dqoy+Hl0B+SgUBix/swgygICEe6bLd1ouQXCVOxsVL8sDtDZCJicpHwza8BlQukVvD/xvf
 3wGwldUvg1gz+70Ccv0Z/XloZSwHhG2yrLxMsEdk2POt8HejjyTFzdc0U7w/9oEoxo7QEteWe
 3n3PAOEDPkVZn5kMKwInWgd7pOEX7yIjn7ybbrFN3G9nM=
X-Spam-Score: -0.7 (/)
X-Debbugs-Envelope-To: 59862
Cc: 59862 <at> debbugs.gnu.org, juri@HIDDEN
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.7 (-)

This is a multi-part message in MIME format.
--------------0cpMOBypjKdTdjfLu6e2lIGs
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

 > I meant window. Same as you explain further below in your message
 > I call quit-window on a dedicate window the frame also dies with it.

Note that if a window is dedicated, 'quit-restore-window' will already
do its best to delete the window together with its frame.

 > I think if the window inside of a frame didn't contain any other buffer
 > than the initial buffer and a new buffer that uses the same window
 > there could be the argument that the window should die and thus the
 > frame too.

I attach a patch (including all previous changes) that tries to do that.
In particular, evaluating

(custom-set-variables
  '(display-buffer-alist '(("\\*info\\*" display-buffer-pop-up-window)))
  '(quit-restore-window-no-switch t)
  '(frame-auto-hide-function 'delete-frame))

and doing C-x 5 2 then C-h i then C-x 0 and finally q, will delete the
second frame.

Alternatively, evaluating

(custom-set-variables
  '(display-buffer-alist '(("\\*info\\*" display-buffer-same-window)))
  '(quit-restore-window-no-switch 'skip-initial)
  '(frame-auto-hide-function 'delete-frame))

and doing C-x 5 2 then C-h i and q, will delete the second frame too.

Finally, evaluating

(custom-set-variables
  '(display-buffer-alist '(("\\*info\\*" display-buffer-same-window)))
  '(quit-restore-window-no-switch t)
  '(frame-auto-hide-function 'delete-frame))

and doing C-x 5 2 then C-h i then C-x k *scratch* and finally q will
also delete the second frame.

martin
--------------0cpMOBypjKdTdjfLu6e2lIGs
Content-Type: text/x-patch; charset=UTF-8; name="windows-and-buffers.diff"
Content-Disposition: attachment; filename="windows-and-buffers.diff"
Content-Transfer-Encoding: base64

ZGlmZiAtLWdpdCBhL2xpc3Avd2luZG93LmVsIGIvbGlzcC93aW5kb3cuZWwKaW5kZXggOWZj
MmU1ZDY1ZTguLmFkNTUyZjUxMzllIDEwMDY0NAotLS0gYS9saXNwL3dpbmRvdy5lbAorKysg
Yi9saXNwL3dpbmRvdy5lbApAQCAtNDU0MiwxNCArNDU0MiwxOCBAQCByZWNvcmQtd2luZG93
LWJ1ZmZlcgogICAgICAgKHB1c2gtd2luZG93LWJ1ZmZlci1vbnRvLXByZXYgd2luZG93KQog
ICAgICAgKHJ1bi1ob29rcyAnYnVmZmVyLWxpc3QtdXBkYXRlLWhvb2spKSkpCiAKKzs7IEEg
dmVyc2lvbiBpbiBDIHRoYXQgaGFuZGxlcyBkZWFkIHdpbmRvd3MgKHRoYXQgcHJlc3VtYWJs
eSBhcmUgcGFydCBvZgorOzsgYSBzYXZlZCB3aW5kb3cgY29uZmlndXJhdGlvbikgbGl2ZXMg
aW4gd2luZG93LmMgYW5kIGlzIGNhbGxlZAorOzsgd2luZG93X2Rpc2NhcmRfYnVmZmVyX2Zy
b21fZGVhZF93aW5kb3cuICBXZSBjb3VsZCBjYWxsIHRoYXQgZnJvbSBoZXJlCis7OyBidXQg
aXQgc2VlbXMgbW9yZSBwcmFjdGljYWwgdG8gaGFuZGxlIGxpdmUgd2luZG93cyBlbnRpcmVs
eSBpbiBFbGlzcC4KIChkZWZ1biB1bnJlY29yZC13aW5kb3ctYnVmZmVyICgmb3B0aW9uYWwg
d2luZG93IGJ1ZmZlcikKICAgIlVucmVjb3JkIEJVRkZFUiBpbiBXSU5ET1cuCi1XSU5ET1cg
bXVzdCBiZSBhIGxpdmUgd2luZG93IGFuZCBkZWZhdWx0cyB0byB0aGUgc2VsZWN0ZWQgb25l
LgotQlVGRkVSIG11c3QgYmUgYSBsaXZlIGJ1ZmZlciBhbmQgZGVmYXVsdHMgdG8gdGhlIGJ1
ZmZlciBvZgotV0lORE9XLgorV0lORE9XIG11c3QgYmUgYSBsaXZlIHdpbmRvdyBhbmQgZGVm
YXVsdHMgdG8gdGhlIHNlbGVjdGVkIG9uZS4gIEJVRkZFUgorbXVzdCBiZSBhIGxpdmUgYnVm
ZmVyIGFuZCBkZWZhdWx0cyB0byB0aGUgYnVmZmVyIG9mIFdJTkRPVyAoYWx0aG91Z2gKK3Ro
YXQgZGVmYXVsdCBoYXJkbHkgbWFrZXMgYW55IHNlbnNlKS4KIAotTWFrZSBCVUZGRVIgZGlz
YXBwZWFyIGZyb20gYWxsIHZhcmlhYmxlcyBtZW50aW9uZWQgYnkgdGhlIG9iamVjdCBvZgot
V0lORE9XLiAgVGhpcyBpbmNsdWRlcyB0aGUgYnVmZmVycyBwcmV2aW91c2x5IHNod29uIGlu
IFdJTkRPVyBhcyB3ZWxsIGFzCitNYWtlIEJVRkZFUiBkaXNhcHBlYXIgZnJvbSBtb3N0IGNv
bXBvbmVudHMgc3BlY2lmaWVkIGJ5IHRoZSBvYmplY3Qgb2YKK1dJTkRPVy4gIFRoaXMgaW5j
bHVkZXMgdGhlIGJ1ZmZlcnMgcHJldmlvdXNseSBzaG93biBpbiBXSU5ET1cgYXMgd2VsbCBh
cwogYW55IGJ1ZmZlcnMgbWVudGlvbmVkIGJ5IFdJTkRPVydzIGBxdWl0LXJlc3RvcmUnIGFu
ZCBgcXVpdC1yZXN0b3JlLXByZXYnCiBwYXJhbWV0ZXJzLiIKICAgKGxldCogKCh3aW5kb3cg
KHdpbmRvdy1ub3JtYWxpemUtd2luZG93IHdpbmRvdyB0KSkKQEAgLTQ1NjIsNyArNDU2Niwx
MyBAQCB1bnJlY29yZC13aW5kb3ctYnVmZmVyCiAgICAgICAgd2luZG93IChhc3NxLWRlbGV0
ZS1hbGwgYnVmZmVyICh3aW5kb3ctcHJldi1idWZmZXJzIHdpbmRvdykpKQogICAgICAgKHNl
dC13aW5kb3ctbmV4dC1idWZmZXJzCiAgICAgICAgd2luZG93IChkZWxxIGJ1ZmZlciAod2lu
ZG93LW5leHQtYnVmZmVycyB3aW5kb3cpKSkKLQorICAgICAgOzsgSWYgdGhlIGZvdXJ0aCBl
bGVtZW50cyBvZiB0aGUgJ3F1aXQtcmVzdG9yZScgb3IKKyAgICAgIDs7ICdxdWl0LXJlc3Rv
cmUtcHJldicgcGFyYW1ldGVycyBlcXVhbCBCVUZGRVIsIHRoZXNlIHBhcmFtZXRlcnMKKyAg
ICAgIDs7IGJlY29tZSB1c2VsZXNzIC0gaW4gJ3F1aXQtcmVzdG9yZS13aW5kb3cnIHRoZSBm
b3VydGggZWxlbWVudAorICAgICAgOzsgbXVzdCBlcXVhbCB0aGUgYnVmZmVyIG9mIFdJTkRP
VyBpbiBvcmRlciB0byB1c2UgdGhhdCBwYXJhbWV0ZXIuCisgICAgICA7OyBJZiBCVUZGRVIg
aXMgbWVudGlvbmVkIGluIHRoZSBzZWNvbmQgZWxlbWVudCBvZiB0aGUgcGFyYW1ldGVyLAor
ICAgICAgOzsgJ3F1aXQtcmVzdG9yZS13aW5kb3cnIGNhbm5vdCBwb3NzaWJseSBzaG93IEJV
RkZFUiBpbnN0ZWFkOyBzbworICAgICAgOzsgdGhpcyBwYXJhbWV0ZXIgYmVjb21lcyB1c2Vs
ZXNzIHRvby4KICAgICAgICh3aGVuIChvciAoZXEgYnVmZmVyIChudGggMyBxdWl0LXJlc3Rv
cmUtcHJldikpCiAJCShhbmQgKGxpc3RwIChzZXRxIHF1YWQgKG50aCAxIHF1aXQtcmVzdG9y
ZS1wcmV2KSkpCiAJCSAgICAgKGVxIChjYXIgcXVhZCkgYnVmZmVyKSkpCkBAIC00NTcyLDcg
KzQ1ODIsOCBAQCB1bnJlY29yZC13aW5kb3ctYnVmZmVyCiAJCShhbmQgKGxpc3RwIChzZXRx
IHF1YWQgKG50aCAxIHF1aXQtcmVzdG9yZSkpKQogCQkgICAgIChlcSAoY2FyIHF1YWQpIGJ1
ZmZlcikpKQogCShzZXQtd2luZG93LXBhcmFtZXRlcgotCSB3aW5kb3cgJ3F1aXQtcmVzdG9y
ZSAod2luZG93LXBhcmFtZXRlciB3aW5kb3cgJ3F1aXQtcmVzdG9yZS1wcmV2KSkpKSkpCisJ
IHdpbmRvdyAncXVpdC1yZXN0b3JlICh3aW5kb3ctcGFyYW1ldGVyIHdpbmRvdyAncXVpdC1y
ZXN0b3JlLXByZXYpKQorCShzZXQtd2luZG93LXBhcmFtZXRlciB3aW5kb3cgJ3F1aXQtcmVz
dG9yZS1wcmV2IG5pbCkpKSkpCiAKIChkZWZ1biBzZXQtd2luZG93LWJ1ZmZlci1zdGFydC1h
bmQtcG9pbnQgKHdpbmRvdyBidWZmZXIgJm9wdGlvbmFsIHN0YXJ0IHBvaW50KQogICAiU2V0
IFdJTkRPVydzIGJ1ZmZlciB0byBCVUZGRVIuCkBAIC01MDkxLDYgKzUxMDIsMTggQEAgcHJl
dmlvdXMtYnVmZmVyCiAgICAgICAgICAgICAgICAgIChub3QgKG9yIGV4ZWN1dGluZy1rYmQt
bWFjcm8gbm9uaW50ZXJhY3RpdmUpKSkKICAgICAgICAgKHVzZXItZXJyb3IgIk5vIHByZXZp
b3VzIGJ1ZmZlciIpKSkpKSkKIAorKGRlZmN1c3RvbSBraWxsLWJ1ZmZlci1xdWl0LXdpbmRv
d3MgbmlsCisgICJOb24tbmlsIG1lYW5zIGtpbGxpbmcgYnVmZmVycyBzaGFsbCBxdWl0IHdp
bmRvd3MuCitJZiB0aGlzIGlzIG5pbCwga2lsbGluZyBhIGJ1ZmZlciBtYXkgZGVsZXRlIGRl
ZGljYXRlZCB3aW5kb3dzIG9ubHkuICBJZgordGhpcyBpcyBub24tbmlsLCBga2lsbC1idWZm
ZXInIChhbmQgYHJlcGxhY2UtYnVmZmVyLWluLXdpbmRvd3MnIGluCitjb25zZXF1ZW5jZSkg
aGF2ZSBgcXVpdC1yZXN0b3JlLXdpbmRvdycgZGVhbCB3aXRoIGFueSB3aW5kb3cgc2hvd2lu
ZyB0aGUKK2J1ZmZlciB0byBiZSBraWxsZWQgd2hpY2ggbWF5IGRlbGV0ZSB0aGUgd2luZG93
IGlmIGl0J3Mgbm90IGRlZGljYXRlZCB0bworaXRzIGJ1ZmZlci4gIEFsc28sIGBkZWxldGUt
d2luZG93cy1vbicgd2lsbCB1c2UgYHF1aXQtcmVzdG9yZS13aW5kb3cnIGFzCitmYWxsYmFj
ayB3aGVuIGEgd2luZG93IGNhbm5vdCBiZSBkZWxldGVkIG90aGVyd2lzZS4iCisgIDp0eXBl
ICdib29sZWFuCisgIDp2ZXJzaW9uICIzMS4xIgorICA6Z3JvdXAgJ3dpbmRvd3MpCisKIChk
ZWZ1biBkZWxldGUtd2luZG93cy1vbiAoJm9wdGlvbmFsIGJ1ZmZlci1vci1uYW1lIGZyYW1l
KQogICAiRGVsZXRlIGFsbCB3aW5kb3dzIHNob3dpbmcgQlVGRkVSLU9SLU5BTUUuCiBCVUZG
RVItT1ItTkFNRSBtYXkgYmUgYSBidWZmZXIgb3IgdGhlIG5hbWUgb2YgYW4gZXhpc3Rpbmcg
YnVmZmVyCkBAIC01MTI4LDggKzUxNTEsMTAgQEAgZGVsZXRlLXdpbmRvd3Mtb24KIHRlcm1p
bmFsLCBkZWxldGUgdGhhdCBmcmFtZS4gIE90aGVyd2lzZSwgZG8gbm90IGRlbGV0ZSBhIGZy
YW1lJ3Mgcm9vdAogd2luZG93IGlmIGl0IHNob3dzIHRoZSBidWZmZXIgc3BlY2lmaWVkIGJ5
IEJVRkZFUi1PUi1OQU1FIGFuZCBkbyBub3QKIGRlbGV0ZSBhbnkgZnJhbWUncyBtYWluIHdp
bmRvdyBzaG93aW5nIHRoYXQgYnVmZmVyIGVpdGhlci4gIFJhdGhlciwgaW4KLWFueSBzdWNo
IGNhc2UsIGNhbGwgYHF1aXQtcmVzdG9yZS13aW5kb3cnIHRvIHNob3cgYW5vdGhlciBidWZm
ZXIgaW4gdGhhdAotd2luZG93IGFuZCBtYWtlIHN1cmUgdGhlIHdpbmRvdyBpcyBubyBtb3Jl
IGRlZGljYXRlZCB0byBpdHMgYnVmZmVyLgorYW55IHN1Y2ggY2FzZSwgY2FsbCBlaXRoZXIg
YHF1aXQtcmVzdG9yZS13aW5kb3cnIChwcm92aWRlZAorYGtpbGwtYnVmZmVyLXF1aXQtd2lu
ZG93cycgaXMgbm9uLW5pbCkgb3IgYHN3aXRjaC10by1wcmV2LWJ1ZmZlcicgdG8KK3Nob3cg
YW5vdGhlciBidWZmZXIgaW4gdGhhdCB3aW5kb3cgYW5kIG1ha2Ugc3VyZSB0aGUgd2luZG93
IGlzIG5vIG1vcmUKK2RlZGljYXRlZCB0byBpdHMgYnVmZmVyLgogCiBJZiB0aGUgYnVmZmVy
IHNwZWNpZmllZCBieSBCVUZGRVItT1ItTkFNRSBpcyBzaG93biBpbiBhIG1pbmlidWZmZXIK
IHdpbmRvdywgZG8gbm90aGluZyBmb3IgdGhhdCB3aW5kb3cuICBGb3IgYW55IHdpbmRvdyB0
aGF0IGRvZXMgbm90IHNob3cKQEAgLTUxNjYsOSArNTE5MSwxOCBAQCBkZWxldGUtd2luZG93
cy1vbgogCSAgICAgKChlcSBkZWxldGFibGUgdCkKIAkgICAgICA7OyBEZWxldGUgd2luZG93
LgogCSAgICAgIChkZWxldGUtd2luZG93IHdpbmRvdykpCisJICAgICAoa2lsbC1idWZmZXIt
cXVpdC13aW5kb3dzCisJICAgICAgKHF1aXQtcmVzdG9yZS13aW5kb3cgd2luZG93ICdidXJ5
KQorCSAgICAgICh3aGVuICh3aW5kb3ctbGl2ZS1wIHdpbmRvdykKKwkJOzsgVW5yZWNvcmQg
QlVGRkVSIGluIHRoaXMgd2luZG93LgorCQkodW5yZWNvcmQtd2luZG93LWJ1ZmZlciB3aW5k
b3cgYnVmZmVyKSkpCiAJICAgICAodAotCSAgICAgICh3aGVuIChlcSAod2luZG93LWJ1ZmZl
ciB3aW5kb3cpIGJ1ZmZlcikKLQkJKHF1aXQtcmVzdG9yZS13aW5kb3cgd2luZG93ICdidXJ5
KSkKKwkgICAgICA7OyBJbiB3aW5kb3cgc3dpdGNoIHRvIHByZXZpb3VzIGJ1ZmZlci4KKwkg
ICAgICAoc2V0LXdpbmRvdy1kZWRpY2F0ZWQtcCB3aW5kb3cgbmlsKQorCSAgICAgIChzd2l0
Y2gtdG8tcHJldi1idWZmZXIgd2luZG93ICdidXJ5KQorCSAgICAgIDs7IFJlc3RvcmUgdGhl
IGRlZGljYXRlZCAnc2lkZScgZmxhZy4KKwkgICAgICAod2hlbiAoZXEgZGVkaWNhdGVkICdz
aWRlKQorICAgICAgICAgICAgICAgIChzZXQtd2luZG93LWRlZGljYXRlZC1wIHdpbmRvdyAn
c2lkZSkpCiAJICAgICAgKHdoZW4gKHdpbmRvdy1saXZlLXAgd2luZG93KQogCQk7OyBVbnJl
Y29yZCBCVUZGRVIgaW4gdGhpcyB3aW5kb3cuCiAJCSh1bnJlY29yZC13aW5kb3ctYnVmZmVy
IHdpbmRvdyBidWZmZXIpKSkpKQpAQCAtNTE3NywyOSArNTIxMSw0NiBAQCBkZWxldGUtd2lu
ZG93cy1vbgogCiAoZGVmdW4gcmVwbGFjZS1idWZmZXItaW4td2luZG93cyAoJm9wdGlvbmFs
IGJ1ZmZlci1vci1uYW1lKQogICAiUmVwbGFjZSBCVUZGRVItT1ItTkFNRSB3aXRoIHNvbWUg
b3RoZXIgYnVmZmVyIGluIGFsbCB3aW5kb3dzIHNob3dpbmcgaXQuCi1CVUZGRVItT1ItTkFN
RSBtYXkgYmUgYSBidWZmZXIgb3IgdGhlIG5hbWUgb2YgYW4gZXhpc3RpbmcgYnVmZmVyCi1h
bmQgZGVmYXVsdHMgdG8gdGhlIGN1cnJlbnQgYnVmZmVyLiAgTWluaWJ1ZmZlciB3aW5kb3dz
IGFyZSBub3QKLWNvbnNpZGVyZWQuCi0KLVdpdGggdGhlIGV4Y2VwdGlvbiBvZiBzaWRlIHdp
bmRvd3MsIHdoZW4gYSB3aW5kb3cgc2hvd2luZyBCVUZGRVItT1ItTkFNRQotaXMgZGVkaWNh
dGVkLCB0aGF0IHdpbmRvdyBpcyBkZWxldGVkLiAgSWYgdGhhdCB3aW5kb3cgaXMgdGhlIG9u
bHkgd2luZG93Ci1vbiBpdHMgZnJhbWUsIHRoZSBmcmFtZSBpcyBkZWxldGVkIHRvbyB3aGVu
IHRoZXJlIGFyZSBvdGhlciBmcmFtZXMgbGVmdC4KLUlmIHRoZXJlIGFyZSBubyBvdGhlciBm
cmFtZXMgbGVmdCwgc29tZSBvdGhlciBidWZmZXIgaXMgZGlzcGxheWVkIGluIHRoYXQKK0JV
RkZFUi1PUi1OQU1FIG1heSBiZSBhIGJ1ZmZlciBvciB0aGUgbmFtZSBvZiBhbiBleGlzdGlu
ZyBidWZmZXIgYW5kCitkZWZhdWx0cyB0byB0aGUgY3VycmVudCBidWZmZXIuICBNaW5pYnVm
ZmVyIHdpbmRvd3MgYXJlIG5vdCBjb25zaWRlcmVkLgorCitJZiB0aGUgb3B0aW9uIGBraWxs
LWJ1ZmZlci1xdWl0LXdpbmRvd3MnIGlzIG5pbCwgYmVoYXZlIGFzIGZvbGxvd3M6IFdpdGgK
K3RoZSBleGNlcHRpb24gb2Ygc2lkZSB3aW5kb3dzLCB3aGVuIGEgd2luZG93IHNob3dpbmcg
QlVGRkVSLU9SLU5BTUUgaXMKK2RlZGljYXRlZCwgZGVsZXRlIHRoYXQgd2luZG93LiAgSWYg
dGhhdCB3aW5kb3cgaXMgdGhlIG9ubHkgd2luZG93IG9uIGl0cworZnJhbWUsIGRlbGV0ZSBp
dHMgZnJhbWUgd2hlbiB0aGVyZSBhcmUgb3RoZXIgZnJhbWVzIGxlZnQuICBJbiBhbnkgb3Ro
ZXIKK2Nhc2UsIGNhbGwgYHN3aXRjaC10by1wcmV2LWJ1ZmZlcicgdG8gZGlzcGxheSBzb21l
IG90aGVyIGJ1ZmZlciBpbiB0aGF0CiB3aW5kb3cuCiAKLVRoaXMgZnVuY3Rpb24gcmVtb3Zl
cyB0aGUgYnVmZmVyIGRlbm90ZWQgYnkgQlVGRkVSLU9SLU5BTUUgZnJvbSBhbGwKLXdpbmRv
dy1sb2NhbCBidWZmZXIgbGlzdHMgYW5kIHJlbW92ZXMgYW55IGBxdWl0LXJlc3RvcmUnIG9y
Ci1gcXVpdC1yZXN0b3JlLXByZXYnIHBhcmFtZXRlcnMgbWVudGlvbmluZyBpdC4iCitJZiBg
a2lsbC1idWZmZXItcXVpdC13aW5kb3dzJyBpcyBub24tbmlsLCBjYWxsIGBxdWl0LXJlc3Rv
cmUtd2luZG93JyBmb3IKK2FueSB3aW5kb3cgc2hvd2luZyBCVUZGRVItT1ItTkFNRSB3aXRo
IHRoZSBhcmd1bWVudCBCVVJZLU9SLUtJTEwgc2V0IHRvCitga2lsbGluZycgdG8gYXZvaWQg
dGhhdCB0aGUgbGF0dGVyIGtpbGxzIHRoZSBidWZmZXIgcHJlbWF0dXJlbHkuCisKK0luIGVp
dGhlciBjYXNlLCByZW1vdmUgdGhlIGJ1ZmZlciBkZW5vdGVkIGJ5IEJVRkZFUi1PUi1OQU1F
IGZyb20gdGhlCitsaXN0cyBvZiBwcmV2aW91cyBhbmQgbmV4dCBidWZmZXJzIG9mIGFsbCB3
aW5kb3dzIGFuZCByZW1vdmUgYW55CitgcXVpdC1yZXN0b3JlJyBvciBgcXVpdC1yZXN0b3Jl
LXByZXYnIHBhcmFtZXRlcnMgbWVudGlvbmluZyBpdC4KKworVGhpcyBmdW5jdGlvbiBpcyBj
YWxsZWQgYnkgYGtpbGwtYnVmZmVyJyB3aGljaCBraWxscyB0aGUgYnVmZmVyCitzcGVjaWZp
ZWQgYnkgYGJ1ZmZlci1vci1uYW1lJyBhZnRlcndhcmRzLiAgSXQgbmV2ZXIga2lsbHMgYSBi
dWZmZXIgYnkKK2l0c2VsZi4iCiAgIChpbnRlcmFjdGl2ZSAiYkJ1ZmZlciB0byByZXBsYWNl
OiAiKQogICAobGV0ICgoYnVmZmVyICh3aW5kb3ctbm9ybWFsaXplLWJ1ZmZlciBidWZmZXIt
b3ItbmFtZSkpKQotICAgIDs7IFNjYW4gYWxsIHdpbmRvd3MuICBXZSBoYXZlIHRvIHVucmVj
b3JkIEJVRkZFUiBpbiB0aG9zZSBub3QKLSAgICA7OyBzaG93aW5nIGl0LgorICAgIDs7IFNj
YW4gYWxsIHdpbmRvd3MuICBXZSBoYXZlIHRvIHVucmVjb3JkIEJVRkZFUi1PUi1OQU1FIGlu
IHRob3NlCisgICAgOzsgbm90IHNob3dpbmcgaXQuCiAgICAgKGRvbGlzdCAod2luZG93ICh3
aW5kb3ctbGlzdC0xIG5pbCBuaWwgdCkpCiAgICAgICAod2hlbiAoZXEgKHdpbmRvdy1idWZm
ZXIgd2luZG93KSBidWZmZXIpCi0JKHF1aXQtcmVzdG9yZS13aW5kb3cgd2luZG93KSkKLSAg
ICAgICh3aGVuICh3aW5kb3ctbGl2ZS1wIHdpbmRvdykKLQk7OyBVbnJlY29yZCBCVUZGRVIg
aW4gdGhpcyB3aW5kb3cuCi0JKHVucmVjb3JkLXdpbmRvdy1idWZmZXIgd2luZG93IGJ1ZmZl
cikpKSkpCisJKGlmIGtpbGwtYnVmZmVyLXF1aXQtd2luZG93cworCSAgICAocXVpdC1yZXN0
b3JlLXdpbmRvdyB3aW5kb3cgJ2tpbGxpbmcpCisJICAobGV0ICgoZGVkaWNhdGVkLXNpZGUg
KGVxICh3aW5kb3ctZGVkaWNhdGVkLXAgd2luZG93KSAnc2lkZSkpKQorICAgICAgICAgICAg
KHdoZW4gKG9yIGRlZGljYXRlZC1zaWRlIChub3QgKHdpbmRvdy0tZGVsZXRlIHdpbmRvdyB0
ICdraWxsKSkpCisJICAgICAgOzsgU3dpdGNoIHRvIGFub3RoZXIgYnVmZmVyIGluIHRoYXQg
d2luZG93LgorCSAgICAgIChzZXQtd2luZG93LWRlZGljYXRlZC1wIHdpbmRvdyBuaWwpCisJ
ICAgICAgKGlmIChzd2l0Y2gtdG8tcHJldi1idWZmZXIgd2luZG93ICdraWxsKQorICAgICAg
ICAgICAgICAgICAgKGFuZCBkZWRpY2F0ZWQtc2lkZSAoc2V0LXdpbmRvdy1kZWRpY2F0ZWQt
cCB3aW5kb3cgJ3NpZGUpKQorCQkod2luZG93LS1kZWxldGUgd2luZG93IG5pbCAna2lsbCkp
KSkpKQorCisJKHdoZW4gKHdpbmRvdy1saXZlLXAgd2luZG93KQorCSAgOzsgVW5yZWNvcmQg
QlVGRkVSIGluIHRoaXMgd2luZG93LgorCSAgKHVucmVjb3JkLXdpbmRvdy1idWZmZXIgd2lu
ZG93IGJ1ZmZlcikpKSkpCiAKIChkZWZjdXN0b20gcXVpdC13aW5kb3ctaG9vayBuaWwKICAg
Ikhvb2sgcnVuIGJlZm9yZSBwZXJmb3JtaW5nIGFueSBvdGhlciBhY3Rpb25zIGluIHRoZSBg
cXVpdC13aW5kb3cnIGNvbW1hbmQuIgpAQCAtNTIwNyw2ICs1MjU4LDIzIEBAIHF1aXQtd2lu
ZG93LWhvb2sKICAgOnZlcnNpb24gIjI3LjEiCiAgIDpncm91cCAnd2luZG93cykKIAorKGRl
ZmN1c3RvbSBxdWl0LXJlc3RvcmUtd2luZG93LW5vLXN3aXRjaCBuaWwKKyAgIk5vbi1uaWwg
bWVhbnMgYHF1aXQtcmVzdG9yZS13aW5kb3cnIHByZWZlcmFibHkgd29uJ3Qgc3dpdGNoIGJ1
ZmZlcnMuCitJZiB0aGlzIGlzIG5pbCwgYHF1aXQtcmVzdG9yZS13aW5kb3cnIHdpbGwgY2Fs
bCBgc3dpdGNoLXRvLXByZXYtYnVmZmVyJwordW5sZXNzIHRoZSB3aW5kb3cgaGFzIGJlZW4g
bWFkZSBieSBgZGlzcGxheS1idWZmZXInLiAgSWYgdGhpcyBpcyB0LAorYHF1aXQtcmVzdG9y
ZS13aW5kb3cnIHdpbGwgc3dpdGNoIHRvIGEgcHJldmlvdXMgYnVmZmVyIG9ubHkgaWYgYSBs
aXZlCitidWZmZXIgZXhpc3RzIHRoYXQgd2FzIHByZXZpb3VzbHkgc2hvd24gaW4gdGhhdCB3
aW5kb3cuICBJZiB0aGlzIGlzIHRoZQorc3ltYm9sIGBza2lwLWluaXRpYWwnLCBpdCB3aWxs
IG5vdCBzd2l0Y2ggdG8gdGhlIGluaXRpYWwgYnVmZmVyIG9mIHRoZQord2luZG93J3MgYHF1
aXQtcmVzdG9yZScgcGFyYW1ldGVyLgorCitJbiBlaXRoZXIgY2FzZSwgaWYgYHF1aXQtcmVz
dG9yZS13aW5kb3cnIGRvZXNuJ3Qgc3dpdGNoIHRvIGEgcHJldmlvdXMKK2J1ZmZlciwgaXQg
d2lsbCB0cnkgdG8gZGVsZXRlIHRoZSB3aW5kb3cgKGFuZCBtYXliZSBpdHMgZnJhbWUpIGlu
c3RlYWQuCitOb3RlIGFsc28gdGhhdCBpZiBhIHdpbmRvdyBpcyBkZWRpY2F0ZWQsIGBxdWl0
LXJlc3RvcmUtd2luZG93JyB3aWxsCit1c3VhbGx5IG5vdCBzd2l0Y2ggdG8gYSBwcmV2aW91
cyBidWZmZXIgaW4gaXQuIgorICA6dHlwZSAnYm9vbGVhbgorICA6dmVyc2lvbiAiMzEuMSIK
KyAgOmdyb3VwICd3aW5kb3dzKQorCiAoZGVmdW4gd2luZG93LS1xdWl0LXJlc3RvcmUtc2Vs
ZWN0LXdpbmRvdyAod2luZG93KQogICAiU2VsZWN0IFdJTkRPVyBhZnRlciBoYXZpbmcgcXVp
dCBhbm90aGVyIG9uZS4KIERvIG5vdCBzZWxlY3QgYW4gaW5hY3RpdmUgbWluaWJ1ZmZlciB3
aW5kb3cuIgpAQCAtNTIyNyw5ICs1Mjk1LDEwIEBAIHF1aXQtcmVzdG9yZS13aW5kb3cKIHVz
ZWQgdG8gcmVzdG9yZSB0aGUgcHJldmlvdXNseSBzaG93biBidWZmZXIuICBTZWUgSW5mbyBu
b2RlIGAoZWxpc3ApCiBRdWl0dGluZyBXaW5kb3dzJyBmb3IgbW9yZSBkZXRhaWxzLgogCi1J
ZiBXSU5ET1cncyBkZWRpY2F0ZWQgZmxhZyBpcyB0LCB0cnkgdG8gZGVsZXRlIFdJTkRPVy4g
IElmIGl0Ci1lcXVhbHMgdGhlIHZhbHVlIGBzaWRlJywgcmVzdG9yZSB0aGF0IHZhbHVlIHdo
ZW4gV0lORE9XIGlzIG5vdAotZGVsZXRlZC4KK0lmIFdJTkRPVydzIGRlZGljYXRlZCBmbGFn
IGlzIHQsIHRyeSB0byBkZWxldGUgV0lORE9XLiAgSWYgaXQgZXF1YWxzIHRoZQordmFsdWUg
YHNpZGUnLCByZXN0b3JlIHRoYXQgdmFsdWUgd2hlbiBXSU5ET1cgaXMgbm90IGRlbGV0ZWQu
ICBXaGV0aGVyCitXSU5ET1cgb3IgaXRzIGZyYW1lIGdldCBkZWxldGVkIGNhbiBiZSBmdXJ0
aGVyIGNvbnRyb2xsZWQgdmlhIHRoZSBvcHRpb24KK2BxdWl0LXJlc3RvcmUtd2luZG93LW5v
LXN3aXRjaCcuCiAKIE9wdGlvbmFsIHNlY29uZCBhcmd1bWVudCBCVVJZLU9SLUtJTEwgdGVs
bHMgaG93IHRvIHByb2NlZWQgd2l0aAogdGhlIGJ1ZmZlciBvZiBXSU5ET1cuICBUaGUgZm9s
bG93aW5nIHZhbHVlcyBhcmUgaGFuZGxlZDoKQEAgLTUyNDksNyArNTMxOCwxNCBAQCBxdWl0
LXJlc3RvcmUtd2luZG93CiAgIG1vc3QgcmVsaWFibGUgcmVtZWR5IHRvIG5vdCBoYXZlIGBz
d2l0Y2gtdG8tcHJldi1idWZmZXInIHN3aXRjaAogICB0byB0aGlzIGJ1ZmZlciBhZ2FpbiB3
aXRob3V0IGtpbGxpbmcgdGhlIGJ1ZmZlci4KIAotYGtpbGwnIG1lYW5zIHRvIGtpbGwgV0lO
RE9XJ3MgYnVmZmVyLiIKK2BraWxsJyBtZWFucyB0byBraWxsIFdJTkRPVydzIGJ1ZmZlci4K
KworYGtpbGxpbmcnIGlzIGxpa2UgYGtpbGwnIGJ1dCBtZWFucyB0aGF0IFdJTkRPVydzIGJ1
ZmZlciB3aWxsIGdldCBraWxsZWQKK2Vsc2V3aGVyZS4gIFRoaXMgdmFsdWUgaXMgdXNlZCBi
eSBgcmVwbGFjZS1idWZmZXItaW4td2luZG93cycgYW5kCitgcXVpdC13aW5kb3dzLW9uJy4K
KworYGJ1cnlpbmcnIGlzIGxpa2UgYGJ1cnknIGJ1dCBtZWFucyB0aGF0IFdJTkRPVydzIGJ1
ZmZlciB3aWxsIGdldCBidXJpZWQKK2Vsc2V3aGVyZS4gIFRoaXMgdmFsdWUgaXMgdXNlZCBi
eSBgcXVpdC13aW5kb3dzLW9uJy4iCiAgIChzZXRxIHdpbmRvdyAod2luZG93LW5vcm1hbGl6
ZS13aW5kb3cgd2luZG93IHQpKQogICAobGV0KiAoKGJ1ZmZlciAod2luZG93LWJ1ZmZlciB3
aW5kb3cpKQogCSAocXVpdC1yZXN0b3JlICh3aW5kb3ctcGFyYW1ldGVyIHdpbmRvdyAncXVp
dC1yZXN0b3JlKSkKQEAgLTUyNjUsMzIgKzUzNDEsMzggQEAgcXVpdC1yZXN0b3JlLXdpbmRv
dwogICAgIChjb25kCiAgICAgIDs7IEZpcnN0IHRyeSB0byBkZWxldGUgZGVkaWNhdGVkIHdp
bmRvd3MgdGhhdCBhcmUgbm90IHNpZGUgd2luZG93cy4KICAgICAgKChhbmQgZGVkaWNhdGVk
IChub3QgKGVxIGRlZGljYXRlZCAnc2lkZSkpCi0gICAgICAgICAgICh3aW5kb3ctLWRlbGV0
ZSB3aW5kb3cgJ2RlZGljYXRlZCAoZXEgYnVyeS1vci1raWxsICdraWxsKSkpCisgICAgICAg
ICAgICh3aW5kb3ctLWRlbGV0ZQorCSAgICB3aW5kb3cgJ2RlZGljYXRlZCAobWVtcSBidXJ5
LW9yLWtpbGwgJyhraWxsIGtpbGxpbmcpKSkpCiAgICAgICA7OyBJZiB0aGUgcHJldmlvdXNs
eSBzZWxlY3RlZCB3aW5kb3cgaXMgc3RpbGwgYWxpdmUsIHNlbGVjdCBpdC4KICAgICAgICh3
aW5kb3ctLXF1aXQtcmVzdG9yZS1zZWxlY3Qtd2luZG93IHF1aXQtcmVzdG9yZS0yKSkKICAg
ICAgKChhbmQgKG5vdCBwcmV2LWJ1ZmZlcikKIAkgICAoZXEgKG50aCAxIHF1aXQtcmVzdG9y
ZSkgJ3RhYikKLQkgICAoZXEgKG50aCAzIHF1aXQtcmVzdG9yZSkgYnVmZmVyKSkKKwkgICAo
ZXEgKG50aCAzIHF1aXQtcmVzdG9yZSkgYnVmZmVyKQorCSAgICg8IChzZXEtY291bnQgKGxh
bWJkYSAodykgKHdpbmRvdy1wYXJhbWV0ZXIgdyAncXVpdC1yZXN0b3JlKSkKKwkJICAgICAg
ICAgKHdpbmRvdy1saXN0LTEgbmlsICdub21pbmkpKQorICAgICAgICAgICAgICAyKSkKICAg
ICAgICh0YWItYmFyLWNsb3NlLXRhYikKICAgICAgIDs7IElmIHRoZSBwcmV2aW91c2x5IHNl
bGVjdGVkIHdpbmRvdyBpcyBzdGlsbCBhbGl2ZSwgc2VsZWN0IGl0LgogICAgICAgKHdpbmRv
dy0tcXVpdC1yZXN0b3JlLXNlbGVjdC13aW5kb3cgcXVpdC1yZXN0b3JlLTIpKQotICAgICAo
KGFuZCAobm90IHByZXYtYnVmZmVyKQotCSAgIChvciAoYW5kIChvciAoZXEgKG50aCAxIHF1
aXQtcmVzdG9yZSkgJ2ZyYW1lKQotCQkJKGFuZCAoZXEgKG50aCAxIHF1aXQtcmVzdG9yZSkg
J3dpbmRvdykKLQkJCSAgICAgOzsgSWYgdGhlIHdpbmRvdyBoYXMgYmVlbiBjcmVhdGVkIG9u
IGFuCi0JCQkgICAgIDs7IGV4aXN0aW5nIGZyYW1lIGFuZCBlbmRlZCB1cCBhcyB0aGUgc29s
ZQotCQkJICAgICA7OyB3aW5kb3cgb24gdGhhdCBmcmFtZSwgZG8gbm90IGRlbGV0ZSBpdAot
CQkJICAgICA7OyAoQnVnIzEyNzY0KS4KLQkJCSAgICAgKG5vdCAoZXEgd2luZG93IChmcmFt
ZS1yb290LXdpbmRvdyB3aW5kb3cpKSkpKQotCQkgICAgKGVxIChudGggMyBxdWl0LXJlc3Rv
cmUpIGJ1ZmZlcikpCi0JICAgICAgIChhbmQgKG9yIChlcSAobnRoIDEgcXVpdC1yZXN0b3Jl
LXByZXYpICdmcmFtZSkKLQkJCShhbmQgKGVxIChudGggMSBxdWl0LXJlc3RvcmUtcHJldikg
J3dpbmRvdykKLQkJCSAgICAgKG5vdCAoZXEgd2luZG93IChmcmFtZS1yb290LXdpbmRvdyB3
aW5kb3cpKSkpKQotCQkgICAgKGVxIChudGggMyBxdWl0LXJlc3RvcmUtcHJldikgYnVmZmVy
KQotCQkgICAgOzsgVXNlIHNlbGVjdGVkIHdpbmRvdyBmcm9tIHF1aXQtcmVzdG9yZS1wcmV2
LgotCQkgICAgKHNldHEgcXVpdC1yZXN0b3JlLTIgcXVpdC1yZXN0b3JlLXByZXYtMikpKQor
ICAgICAoKGFuZCAob3IgKG5vdCBwcmV2LWJ1ZmZlcikKKwkgICAgICAgOzsgSWdub3JlIGZp
cnN0IG9mIHRoZSBwcmV2aW91cyBidWZmZXJzIGlmCisJICAgICAgIDs7ICdxdWl0LXJlc3Rv
cmUtd2luZG93LW5vLXN3aXRjaCcgc2F5cyBzby4KKwkgICAgICAgKGFuZCAoZXEgcXVpdC1y
ZXN0b3JlLXdpbmRvdy1uby1zd2l0Y2ggJ3NraXAtaW5pdGlhbCkKKwkJICAgIChub3QgKGNk
ciAod2luZG93LXByZXYtYnVmZmVycyB3aW5kb3cpKSkpKQorCSAgIChvciAoZXEgKG50aCAx
IHF1aXQtcmVzdG9yZSkgJ2ZyYW1lKQorCSAgICAgICA7OyBJZiB0aGUgd2luZG93IGhhcyBi
ZWVuIGNyZWF0ZWQgb24gYW4gZXhpc3RpbmcKKwkgICAgICAgOzsgZnJhbWUgYW5kIGVuZGVk
IHVwIGFzIHRoZSBzb2xlIHdpbmRvdyBvbiB0aGF0CisJICAgICAgIDs7IGZyYW1lLCBkbyBu
b3QgZGVsZXRlIGl0IChCdWcjMTI3NjQpLgorCSAgICAgICAoYW5kIChlcSAobnRoIDEgcXVp
dC1yZXN0b3JlKSAnd2luZG93KQorCQkgICAgKG5vdCAoZXEgd2luZG93IChmcmFtZS1yb290
LXdpbmRvdyB3aW5kb3cpKSkpCisJICAgICAgIDs7IEJ1dCBhbHdheXMgYWxsb3cgZGVsZXRp
bmcgYSBmcmFtZSBvciB3aW5kb3cgaWYKKwkgICAgICAgOzsgJ3F1aXQtcmVzdG9yZS13aW5k
b3ctbm8tc3dpdGNoJyBzYXlzIHNvLgorCSAgICAgICBxdWl0LXJlc3RvcmUtd2luZG93LW5v
LXN3aXRjaCkKKwkgICAob3IgKGVxIChudGggMyBxdWl0LXJlc3RvcmUpIGJ1ZmZlcikKKwkg
ICAgICAgcXVpdC1yZXN0b3JlLXdpbmRvdy1uby1zd2l0Y2gpCiAJICAgOzsgRGVsZXRlIFdJ
TkRPVyBpZiBwb3NzaWJsZS4KLQkgICAod2luZG93LS1kZWxldGUgd2luZG93IG5pbCAoZXEg
YnVyeS1vci1raWxsICdraWxsKSkpCisJICAgKHdpbmRvdy0tZGVsZXRlCisJICAgIHdpbmRv
dyBuaWwgKG1lbXEgYnVyeS1vci1raWxsICcoa2lsbCBraWxsaW5nKSkpKQogICAgICAgOzsg
SWYgdGhlIHByZXZpb3VzbHkgc2VsZWN0ZWQgd2luZG93IGlzIHN0aWxsIGFsaXZlLCBzZWxl
Y3QgaXQuCiAgICAgICAod2luZG93LS1xdWl0LXJlc3RvcmUtc2VsZWN0LXdpbmRvdyBxdWl0
LXJlc3RvcmUtMikpCiAgICAgICgob3IgKGFuZCAobGlzdHAgKHNldHEgcXVhZCAobnRoIDEg
cXVpdC1yZXN0b3JlLXByZXYpKSkKQEAgLTUzMjgsNyArNTQxMCw3IEBAIHF1aXQtcmVzdG9y
ZS13aW5kb3cKICAgICAgIDs7IERlYWwgd2l0aCB0aGUgYnVmZmVyIHdlIGp1c3QgcmVtb3Zl
ZCBmcm9tIFdJTkRPVy4KICAgICAgIChzZXRxIGVudHJ5IChhbmQgKGVxIGJ1cnktb3Ita2ls
bCAnYXBwZW5kKQogCQkgICAgICAgKGFzc3EgYnVmZmVyICh3aW5kb3ctcHJldi1idWZmZXJz
IHdpbmRvdykpKSkKLSAgICAgICh3aGVuIGJ1cnktb3Ita2lsbAorICAgICAgKHdoZW4gKG1l
bXEgYnVyeS1vci1raWxsICcoYnVyeSBidXJ5aW5nIGtpbGwga2lsbGluZykpCiAJOzsgUmVt
b3ZlIGJ1ZmZlciBmcm9tIFdJTkRPVydzIHByZXZpb3VzIGFuZCBuZXh0IGJ1ZmZlcnMuCiAJ
KHNldC13aW5kb3ctcHJldi1idWZmZXJzCiAJIHdpbmRvdyAoYXNzcS1kZWxldGUtYWxsIGJ1
ZmZlciAod2luZG93LXByZXYtYnVmZmVycyB3aW5kb3cpKSkKQEAgLTUzNDYsNyArNTQyOCw2
IEBAIHF1aXQtcmVzdG9yZS13aW5kb3cKIAk7OyBJZiBxdWl0LXJlc3RvcmUtcHJldiB3YXMg
bm90IHVzZWQsIHJlc2V0IHRoZSBxdWl0LXJlc3RvcmUKIAk7OyBwYXJhbWV0ZXIKIAkoc2V0
LXdpbmRvdy1wYXJhbWV0ZXIgd2luZG93ICdxdWl0LXJlc3RvcmUgbmlsKSkKLSAgICAgIDs7
IFNlbGVjdCBvbGQgd2luZG93LgogICAgICAgOzsgSWYgdGhlIHByZXZpb3VzbHkgc2VsZWN0
ZWQgd2luZG93IGlzIHN0aWxsIGFsaXZlLCBzZWxlY3QgaXQuCiAgICAgICAod2luZG93LS1x
dWl0LXJlc3RvcmUtc2VsZWN0LXdpbmRvdyBxdWl0LXJlc3RvcmUtMikpCiAgICAgICh0CkBA
IC01MzU5LDEzICs1NDQwLDE0IEBAIHF1aXQtcmVzdG9yZS13aW5kb3cKICAgICAgIChpZiAo
c3dpdGNoLXRvLXByZXYtYnVmZmVyIHdpbmRvdyBidXJ5LW9yLWtpbGwpCiAgICAgICAgICAg
KHdoZW4gKGVxIGRlZGljYXRlZCAnc2lkZSkKICAgICAgICAgICAgIChzZXQtd2luZG93LWRl
ZGljYXRlZC1wIHdpbmRvdyAnc2lkZSkpCi0gICAgICAgICh3aW5kb3ctLWRlbGV0ZSB3aW5k
b3cgbmlsIChlcSBidXJ5LW9yLWtpbGwgJ2tpbGwpKSkpKQorICAgICAgICAod2luZG93LS1k
ZWxldGUKKwkgd2luZG93IG5pbCAobWVtcSBidXJ5LW9yLWtpbGwgJyhraWxsIGtpbGxpbmcp
KSkpKSkKICAgICA7OyBEZWFsIHdpdGggdGhlIGJ1ZmZlci4KICAgICAoY29uZAogICAgICAo
KG5vdCAoYnVmZmVyLWxpdmUtcCBidWZmZXIpKSkKICAgICAgKChlcSBidXJ5LW9yLWtpbGwg
J2tpbGwpCiAgICAgICAoa2lsbC1idWZmZXIgYnVmZmVyKSkKLSAgICAgKGJ1cnktb3Ita2ls
bAorICAgICAoKGVxIGJ1cnktb3Ita2lsbCAnYnVyeSkKICAgICAgIChidXJ5LWJ1ZmZlci1p
bnRlcm5hbCBidWZmZXIpKSkpKQogCiAoZGVmdW4gcXVpdC13aW5kb3cgKCZvcHRpb25hbCBr
aWxsIHdpbmRvdykKQEAgLTU0MDYsMTEgKzU0ODgsMTggQEAgcXVpdC13aW5kb3dzLW9uCiAJ
KGZyYW1lcyAoY29uZCAoKG5vdCBmcmFtZSkgdCkgKChlcSBmcmFtZSB0KSBuaWwpICh0IGZy
YW1lKSkpKQogICAgIChkb2xpc3QgKHdpbmRvdyAod2luZG93LWxpc3QtMSBuaWwgbmlsIGZy
YW1lcykpCiAgICAgICAod2hlbiAoZXEgKHdpbmRvdy1idWZmZXIgd2luZG93KSBidWZmZXIp
Ci0JKHF1aXQtcmVzdG9yZS13aW5kb3cgd2luZG93IGtpbGwpKQorCShxdWl0LXJlc3RvcmUt
d2luZG93CisJIHdpbmRvdyAoaWYga2lsbCAna2lsbGluZyAnYnVyeWluZykpKQogCiAgICAg
ICAod2hlbiAod2luZG93LWxpdmUtcCB3aW5kb3cpCiAJOzsgVW5yZWNvcmQgQlVGRkVSIGlu
IHRoaXMgd2luZG93LgotCSh1bnJlY29yZC13aW5kb3ctYnVmZmVyIHdpbmRvdyBidWZmZXIp
KSkpKQorCSh1bnJlY29yZC13aW5kb3ctYnVmZmVyIHdpbmRvdyBidWZmZXIpKSkKKworICAg
IDs7IERlYWwgd2l0aCBCVUZGRVItT1ItTkFNRS4KKyAgICAoY29uZAorICAgICAoKG5vdCAo
YnVmZmVyLWxpdmUtcCBidWZmZXIpKSkKKyAgICAgKGtpbGwgKGtpbGwtYnVmZmVyIGJ1ZmZl
cikpCisgICAgICh0IChidXJ5LWJ1ZmZlci1pbnRlcm5hbCBidWZmZXIpKSkpKQogDAogKGRl
ZnVuIHdpbmRvdy0tY29tYmluYXRpb24tcmVzaXphYmxlIChwYXJlbnQgJm9wdGlvbmFsIGhv
cml6b250YWwpCiAgICJSZXR1cm4gbnVtYmVyIG9mIHBpeGVscyByZWNvdmVyYWJsZSBmcm9t
IGhlaWdodCBvZiB3aW5kb3cgUEFSRU5ULgpAQCAtNjcyMywzNiArNjgxMiwzOCBAQCBkaXNw
bGF5LWJ1ZmZlci1yZWNvcmQtd2luZG93CiAKIElmIFRZUEUgaXMgYHJldXNlJywgQlVGRkVS
IGlzIGRpZmZlcmVudCBmcm9tIHRoZSBvbmUgY3VycmVudGx5IGRpc3BsYXllZAogaW4gV0lO
RE9XLCBhbmQgV0lORE9XIGFscmVhZHkgaGFzIGEgYHF1aXQtcmVzdG9yZScgcGFyYW1ldGVy
LCBpbnN0YWxsIG9yCi11cGRhdGUgYSBgcXVpdC1yZXN0b3JlLXByZXYnIHBhcmFtZXRlciBm
b3IgdGhpcyB3aW5kb3cgdGhhdCBhbGxvd3MgdG8KLXF1aXQgV0lORE9XIGluIGEgc2ltaWxh
ciBmYXNoaW9uIGJ1dCByZW1lbWJlcnMgdGhlIHZlcnkgZmlyc3QgaW4gYQotc2VyaWVzIG9m
IGJ1ZmZlciBkaXNwbGF5IG9wZXJhdGlvbnMgZm9yIHRoaXMgd2luZG93LiIKK3VwZGF0ZSBh
IGBxdWl0LXJlc3RvcmUtcHJldicgcGFyYW1ldGVyIGZvciB0aGlzIHdpbmRvdy4gIFRoaXMg
YWxsb3dzIGZvcgorcXVpdHRpbmcgV0lORE9XIGluIGEgc2ltaWxhciBmYXNoaW9uIGJ1dCBh
bHNvIGtlZXBzIHRoZSB2ZXJ5IGZpcnN0CitgcXVpdC1yZXN0b3JlJyBwYXJhbWV0ZXIgc3Rv
cmVkIGZvciB0aGlzIHdpbmRvdyBhcm91bmQuICBDb25zZXF1ZW50bHksCitXSU5ET1cgKG9y
IGl0cyBmcmFtZSkgY2FuIGJlIGV2ZW50dWFsbHkgZGVsZXRlZCBieSBgcXVpdC1yZXN0b3Jl
LXdpZG93JworaWYgdGhhdCBwYXJhbWV0ZXIncyBmb3VydGggZWxlbWVudCBlcXVhbHMgV0lO
RE9XJ3MgYnVmZmVyLiIKICAgKGNvbmQKICAgICgoZXEgdHlwZSAncmV1c2UpCi0gICAgKGlm
IChlcSAod2luZG93LWJ1ZmZlciB3aW5kb3cpIGJ1ZmZlcikKLQk7OyBXSU5ET1cgc2hvd3Mg
QlVGRkVSIGFscmVhZHkuICBVcGRhdGUgV0lORE9XJ3MgcXVpdC1yZXN0b3JlCi0JOzsgcGFy
YW1ldGVyLCBpZiBhbnkuCi0JKGxldCAoKHF1aXQtcmVzdG9yZSAod2luZG93LXBhcmFtZXRl
ciB3aW5kb3cgJ3F1aXQtcmVzdG9yZSkpKQorICAgIChsZXQgKChxdWl0LXJlc3RvcmUgKHdp
bmRvdy1wYXJhbWV0ZXIgd2luZG93ICdxdWl0LXJlc3RvcmUpKSkKKyAgICAgIChpZiAoZXEg
KHdpbmRvdy1idWZmZXIgd2luZG93KSBidWZmZXIpCisJICA7OyBXSU5ET1cgc2hvd3MgQlVG
RkVSIGFscmVhZHkuICBVcGRhdGUgV0lORE9XJ3MgcXVpdC1yZXN0b3JlCisJICA7OyBwYXJh
bWV0ZXIsIGlmIGFueS4KIAkgICh3aGVuIChjb25zcCBxdWl0LXJlc3RvcmUpCiAJICAgIChz
ZXRjYXIgcXVpdC1yZXN0b3JlICdzYW1lKQogCSAgICA7OyBUaGUgc2VsZWN0ZWQtd2luZG93
IG1pZ2h0IGhhdmUgY2hhbmdlZCBpbgogCSAgICA7OyBiZXR3ZWVuIChCdWcjMjAzNTMpLgog
CSAgICAodW5sZXNzIChvciAoZXEgd2luZG93IChzZWxlY3RlZC13aW5kb3cpKQotICAgICAg
ICAgICAgICAgICAgICAgICAgKGVxIHdpbmRvdyAobnRoIDIgcXVpdC1yZXN0b3JlKSkpCi0J
ICAgICAgKHNldGNhciAoY2RkciBxdWl0LXJlc3RvcmUpIChzZWxlY3RlZC13aW5kb3cpKSkp
KQotICAgICAgOzsgV0lORE9XIHNob3dzIGFub3RoZXIgYnVmZmVyLgotICAgICAgKHdpdGgt
Y3VycmVudC1idWZmZXIgKHdpbmRvdy1idWZmZXIgd2luZG93KQotCShzZXQtd2luZG93LXBh
cmFtZXRlcgotCSB3aW5kb3cgJ3F1aXQtcmVzdG9yZS1wcmV2Ci0JIChsaXN0ICdvdGhlcgot
CSAgICAgICA7OyBBIHF1YWRydXBsZSBvZiBXSU5ET1cncyBidWZmZXIsIHN0YXJ0LCBwb2lu
dCBhbmQgaGVpZ2h0LgotCSAgICAgICAobGlzdCAoY3VycmVudC1idWZmZXIpICh3aW5kb3ct
c3RhcnQgd2luZG93KQotCQkgICAgIDs7IFByZXNlcnZlIHdpbmRvdy1wb2ludC1pbnNlcnRp
b24tdHlwZSAoQnVnIzEyODU1KS4KLQkJICAgICAoY29weS1tYXJrZXIKLQkJICAgICAgKHdp
bmRvdy1wb2ludCB3aW5kb3cpIHdpbmRvdy1wb2ludC1pbnNlcnRpb24tdHlwZSkKLQkJICAg
ICAoaWYgKHdpbmRvdy1jb21iaW5lZC1wIHdpbmRvdykKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAod2luZG93LXRvdGFsLWhlaWdodCB3aW5kb3cpCi0gICAgICAgICAgICAgICAgICAg
ICAgICh3aW5kb3ctdG90YWwtd2lkdGggd2luZG93KSkpCi0JICAgICAgIChzZWxlY3RlZC13
aW5kb3cpIGJ1ZmZlcikpKSkpCisJCQkoZXEgd2luZG93IChudGggMiBxdWl0LXJlc3RvcmUp
KSkKKwkgICAgICAoc2V0Y2FyIChjZGRyIHF1aXQtcmVzdG9yZSkgKHNlbGVjdGVkLXdpbmRv
dykpKSkKKwk7OyBXSU5ET1cgc2hvd3MgYW5vdGhlciBidWZmZXIuCisJKHdpdGgtY3VycmVu
dC1idWZmZXIgKHdpbmRvdy1idWZmZXIgd2luZG93KQorCSAgKHNldC13aW5kb3ctcGFyYW1l
dGVyCisJICAgd2luZG93IChpZiBxdWl0LXJlc3RvcmUgJ3F1aXQtcmVzdG9yZS1wcmV2ICdx
dWl0LXJlc3RvcmUpCisJICAgKGxpc3QgJ290aGVyCisJCSA7OyBBIHF1YWRydXBsZSBvZiBX
SU5ET1cncyBidWZmZXIsIHN0YXJ0LCBwb2ludCBhbmQgaGVpZ2h0LgorCQkgKGxpc3QgKGN1
cnJlbnQtYnVmZmVyKSAod2luZG93LXN0YXJ0IHdpbmRvdykKKwkJICAgICAgIDs7IFByZXNl
cnZlIHdpbmRvdy1wb2ludC1pbnNlcnRpb24tdHlwZSAoQnVnIzEyODU1KS4KKwkJICAgICAg
IChjb3B5LW1hcmtlcgorCQkJKHdpbmRvdy1wb2ludCB3aW5kb3cpIHdpbmRvdy1wb2ludC1p
bnNlcnRpb24tdHlwZSkKKwkJICAgICAgIChpZiAod2luZG93LWNvbWJpbmVkLXAgd2luZG93
KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgKHdpbmRvdy10b3RhbC1oZWlnaHQgd2lu
ZG93KQorCQkJICh3aW5kb3ctdG90YWwtd2lkdGggd2luZG93KSkpCisJCSAoc2VsZWN0ZWQt
d2luZG93KSBidWZmZXIpKSkpKSkKICAgICgoZXEgdHlwZSAnd2luZG93KQogICAgIDs7IFdJ
TkRPVyBoYXMgYmVlbiBjcmVhdGVkIG9uIGFuIGV4aXN0aW5nIGZyYW1lLgogICAgIChzZXQt
d2luZG93LXBhcmFtZXRlcgpkaWZmIC0tZ2l0IGEvc3JjL2FsbG9jLmMgYi9zcmMvYWxsb2Mu
YwppbmRleCA2NjZmNzdiZmNlMS4uYjk1NTY1MWY1YzAgMTAwNjQ0Ci0tLSBhL3NyYy9hbGxv
Yy5jCisrKyBiL3NyYy9hbGxvYy5jCkBAIC02OTk4LDMzICs2OTk4LDYgQEAgbWFya19mYWNl
X2NhY2hlIChzdHJ1Y3QgZmFjZV9jYWNoZSAqYykKICAgICB9CiB9CiAKLS8qIFJlbW92ZSBr
aWxsZWQgYnVmZmVycyBvciBpdGVtcyB3aG9zZSBjYXIgaXMgYSBraWxsZWQgYnVmZmVyIGZy
b20KLSAgIExJU1QsIGFuZCBtYXJrIG90aGVyIGl0ZW1zLiAgUmV0dXJuIGNoYW5nZWQgTElT
VCwgd2hpY2ggaXMgbWFya2VkLiAgKi8KLQotc3RhdGljIExpc3BfT2JqZWN0Ci1tYXJrX2Rp
c2NhcmRfa2lsbGVkX2J1ZmZlcnMgKExpc3BfT2JqZWN0IGxpc3QpCi17Ci0gIExpc3BfT2Jq
ZWN0IHRhaWwsICpwcmV2ID0gJmxpc3Q7Ci0KLSAgZm9yICh0YWlsID0gbGlzdDsgQ09OU1Ag
KHRhaWwpICYmICFjb25zX21hcmtlZF9wIChYQ09OUyAodGFpbCkpOwotICAgICAgIHRhaWwg
PSBYQ0RSICh0YWlsKSkKLSAgICB7Ci0gICAgICBMaXNwX09iamVjdCB0ZW0gPSBYQ0FSICh0
YWlsKTsKLSAgICAgIGlmIChDT05TUCAodGVtKSkKLQl0ZW0gPSBYQ0FSICh0ZW0pOwotICAg
ICAgaWYgKEJVRkZFUlAgKHRlbSkgJiYgIUJVRkZFUl9MSVZFX1AgKFhCVUZGRVIgKHRlbSkp
KQotCSpwcmV2ID0gWENEUiAodGFpbCk7Ci0gICAgICBlbHNlCi0JewotCSAgc2V0X2NvbnNf
bWFya2VkIChYQ09OUyAodGFpbCkpOwotCSAgbWFya19vYmplY3QgKFhDQVIgKHRhaWwpKTsK
LQkgIHByZXYgPSB4Y2RyX2FkZHIgKHRhaWwpOwotCX0KLSAgICB9Ci0gIG1hcmtfb2JqZWN0
ICh0YWlsKTsKLSAgcmV0dXJuIGxpc3Q7Ci19Ci0KIHN0YXRpYyB2b2lkCiBtYXJrX2ZyYW1l
IChzdHJ1Y3QgTGlzcF9WZWN0b3IgKnB0cikKIHsKQEAgLTcwNzksMTUgKzcwNTIsNiBAQCBt
YXJrX3dpbmRvdyAoc3RydWN0IExpc3BfVmVjdG9yICpwdHIpCiAgICAgICBtYXJrX2dseXBo
X21hdHJpeCAody0+Y3VycmVudF9tYXRyaXgpOwogICAgICAgbWFya19nbHlwaF9tYXRyaXgg
KHctPmRlc2lyZWRfbWF0cml4KTsKICAgICB9Ci0KLSAgLyogRmlsdGVyIG91dCBraWxsZWQg
YnVmZmVycyBmcm9tIGJvdGggYnVmZmVyIGxpc3RzCi0gICAgIGluIGF0dGVtcHQgdG8gaGVs
cCBHQyB0byByZWNsYWltIGtpbGxlZCBidWZmZXJzIGZhc3Rlci4KLSAgICAgV2UgY2FuIGRv
IGl0IGVsc2V3aGVyZSBmb3IgbGl2ZSB3aW5kb3dzLCBidXQgdGhpcyBpcyB0aGUKLSAgICAg
YmVzdCBwbGFjZSB0byBkbyBpdCBmb3IgZGVhZCB3aW5kb3dzLiAgKi8KLSAgd3NldF9wcmV2
X2J1ZmZlcnMKLSAgICAodywgbWFya19kaXNjYXJkX2tpbGxlZF9idWZmZXJzICh3LT5wcmV2
X2J1ZmZlcnMpKTsKLSAgd3NldF9uZXh0X2J1ZmZlcnMKLSAgICAodywgbWFya19kaXNjYXJk
X2tpbGxlZF9idWZmZXJzICh3LT5uZXh0X2J1ZmZlcnMpKTsKIH0KIAogLyogRW50cnkgb2Yg
dGhlIG1hcmsgc3RhY2suICAqLwpkaWZmIC0tZ2l0IGEvc3JjL2J1ZmZlci5jIGIvc3JjL2J1
ZmZlci5jCmluZGV4IDc0NGIwZWY1NTQ4Li42ZWM0MGFmZjY0NiAxMDA2NDQKLS0tIGEvc3Jj
L2J1ZmZlci5jCisrKyBiL3NyYy9idWZmZXIuYwpAQCAtMjAxMiw2ICsyMDEyLDEzIEBAIERF
RlVOICgia2lsbC1idWZmZXIiLCBGa2lsbF9idWZmZXIsIFNraWxsX2J1ZmZlciwgMCwgMSwg
ImJLaWxsIGJ1ZmZlcjogIiwKICAgICAgYnVmZmVyIChidWcjMTAxMTQpLiAgKi8KICAgcmVw
bGFjZV9idWZmZXJfaW5fd2luZG93cyAoYnVmZmVyKTsKIAorICAvKiBGb3IgZGVhZCB3aW5k
b3dzIHRoYXQgaGF2ZSBub3QgYmVlbiBjb2xsZWN0ZWQgeWV0LCByZW1vdmUgdGhpcworICAg
ICBidWZmZXIgZnJvbSB0aG9zZSB3aW5kb3dzJyBsaXN0cyBvZiBwcmV2aW91c2x5IGFuZCBu
ZXh0IHNob3duCisgICAgIGJ1ZmZlcnMgYW5kIHJlbW92ZSBhbnkgJ3F1aXQtcmVzdG9yZScg
b3IgJ3F1aXQtcmVzdG9yZS1wcmV2JworICAgICBwYXJhbWV0ZXJzIG1lbnRpb25pbmcgdGhl
IGJ1ZmZlci4gICovCisgIGlmIChYRklYTlVNIChCVkFSIChiLCBkaXNwbGF5X2NvdW50KSkg
PiAwKQorICAgIHdpbmRvd19kaXNjYXJkX2J1ZmZlcl9mcm9tX2RlYWRfd2luZG93cyAoYnVm
ZmVyKTsKKwogICAvKiBFeGl0IGlmIHJlcGxhY2luZyB0aGUgYnVmZmVyIGluIHdpbmRvd3Mg
aGFzIGtpbGxlZCBvdXIgYnVmZmVyLiAgKi8KICAgaWYgKCFCVUZGRVJfTElWRV9QIChiKSkK
ICAgICByZXR1cm4gUXQ7CmRpZmYgLS1naXQgYS9zcmMvd2luZG93LmMgYi9zcmMvd2luZG93
LmMKaW5kZXggZmYyOGJhYzUzMDYuLmRkMGFiZTg0ZmRmIDEwMDY0NAotLS0gYS9zcmMvd2lu
ZG93LmMKKysrIGIvc3JjL3dpbmRvdy5jCkBAIC0zMjc3LDYgKzMyNzcsOTAgQEAgd2luZG93
X3BpeGVsX3RvX3RvdGFsIChMaXNwX09iamVjdCBmcmFtZSwgTGlzcF9PYmplY3QgaG9yaXpv
bnRhbCkKIH0KIAogCisvKiBSZW1vdmUgZmlyc3Qgb2NjdXJyZW5jZSBvZiBlbGVtZW50IHdo
b3NlIGNhciBpcyBCVUZGRVIgZnJvbSBBTElTVC4KKyAgIFJldHVybiBjaGFuZ2VkIEFMSVNU
LiAgKi8KK3N0YXRpYyBMaXNwX09iamVjdAord2luZG93X2Rpc2NhcmRfYnVmZmVyX2Zyb21f
YWxpc3QgKExpc3BfT2JqZWN0IGJ1ZmZlciwgTGlzcF9PYmplY3QgYWxpc3QpCit7CisgIExp
c3BfT2JqZWN0IHRhaWwsICpwcmV2ID0gJmFsaXN0OworCisgIGZvciAodGFpbCA9IGFsaXN0
OyBDT05TUCAodGFpbCk7IHRhaWwgPSBYQ0RSICh0YWlsKSkKKyAgICB7CisgICAgICBMaXNw
X09iamVjdCB0ZW0gPSBYQ0FSICh0YWlsKTsKKworICAgICAgdGVtID0gWENBUiAodGVtKTsK
KworICAgICAgaWYgKEVRICh0ZW0sIGJ1ZmZlcikpCisJeworCSAgKnByZXYgPSBYQ0RSICh0
YWlsKTsKKwkgIGJyZWFrOworCX0KKyAgICAgIGVsc2UKKwlwcmV2ID0geGNkcl9hZGRyICh0
YWlsKTsKKyAgICB9CisKKyAgcmV0dXJuIGFsaXN0OworfQorCisvKiBSZW1vdmUgZmlyc3Qg
b2NjdXJyZW5jZSBvZiBCVUZGRVIgZnJvbSBMSVNULiAgUmV0dXJuIGNoYW5nZWQKKyAgIExJ
U1QuICAqLworc3RhdGljIExpc3BfT2JqZWN0Cit3aW5kb3dfZGlzY2FyZF9idWZmZXJfZnJv
bV9saXN0IChMaXNwX09iamVjdCBidWZmZXIsIExpc3BfT2JqZWN0IGxpc3QpCit7CisgIExp
c3BfT2JqZWN0IHRhaWwsICpwcmV2ID0gJmxpc3Q7CisKKyAgZm9yICh0YWlsID0gbGlzdDsg
Q09OU1AgKHRhaWwpOyB0YWlsID0gWENEUiAodGFpbCkpCisgICAgeworICAgICAgaWYgKEVR
IChYQ0FSICh0YWlsKSwgYnVmZmVyKSkKKwl7CisJICAqcHJldiA9IFhDRFIgKHRhaWwpOwor
CSAgYnJlYWs7CisJfQorICAgICAgZWxzZQorCXByZXYgPSB4Y2RyX2FkZHIgKHRhaWwpOwor
ICAgIH0KKworICByZXR1cm4gbGlzdDsKK30KKworc3RhdGljIHZvaWQKK3dpbmRvd19kaXNj
YXJkX2J1ZmZlcl9mcm9tX2RlYWRfd2luZG93IChMaXNwX09iamVjdCBidWZmZXIsIExpc3Bf
T2JqZWN0IHdpbmRvdykKK3sKKyAgc3RydWN0IHdpbmRvdyAqdyA9IFhXSU5ET1cgKHdpbmRv
dyk7CisgIExpc3BfT2JqZWN0IHF1aXRfcmVzdG9yZSA9IHdpbmRvd19wYXJhbWV0ZXIgKHcs
IFFxdWl0X3Jlc3RvcmUpOworICBMaXNwX09iamVjdCBxdWl0X3Jlc3RvcmVfcHJldiA9IHdp
bmRvd19wYXJhbWV0ZXIgKHcsIFFxdWl0X3Jlc3RvcmVfcHJldik7CisgIExpc3BfT2JqZWN0
IHF1YWQ7CisKKyAgd3NldF9wcmV2X2J1ZmZlcnMKKyAgICAodywgd2luZG93X2Rpc2NhcmRf
YnVmZmVyX2Zyb21fYWxpc3QgKGJ1ZmZlciwgdy0+cHJldl9idWZmZXJzKSk7CisgIHdzZXRf
bmV4dF9idWZmZXJzCisgICAgKHcsIHdpbmRvd19kaXNjYXJkX2J1ZmZlcl9mcm9tX2xpc3Qg
KGJ1ZmZlciwgdy0+bmV4dF9idWZmZXJzKSk7CisKKyAgaWYgKEVRIChidWZmZXIsIEZudGgg
KG1ha2VfZml4bnVtICgzKSwgcXVpdF9yZXN0b3JlX3ByZXYpKQorICAgICAgfHwgKENPTlNQ
IChxdWFkID0gRmNhciAoRmNkciAocXVpdF9yZXN0b3JlX3ByZXYpKSkKKwkgICYmIEVRIChG
Y2FyIChxdWFkKSwgYnVmZmVyKSkpCisgICAgRnNldF93aW5kb3dfcGFyYW1ldGVyICh3aW5k
b3csIFFxdWl0X3Jlc3RvcmVfcHJldiwgUW5pbCk7CisKKyAgaWYgKEVRIChidWZmZXIsIEZu
dGggKG1ha2VfZml4bnVtICgzKSwgcXVpdF9yZXN0b3JlKSkKKyAgICAgIHx8IChDT05TUCAo
cXVhZCA9IEZjYXIgKEZjZHIgKHF1aXRfcmVzdG9yZSkpKQorCSAgJiYgRVEgKEZjYXIgKHF1
YWQpLCBidWZmZXIpKSkKKyAgICB7CisgICAgICBGc2V0X3dpbmRvd19wYXJhbWV0ZXIgKHdp
bmRvdywgUXF1aXRfcmVzdG9yZSwKKwkJCSAgICAgd2luZG93X3BhcmFtZXRlciAodywgUXF1
aXRfcmVzdG9yZV9wcmV2KSk7CisgICAgICBGc2V0X3dpbmRvd19wYXJhbWV0ZXIgKHdpbmRv
dywgUXF1aXRfcmVzdG9yZV9wcmV2LCBRbmlsKTsKKyAgICB9Cit9CisKK3ZvaWQKK3dpbmRv
d19kaXNjYXJkX2J1ZmZlcl9mcm9tX2RlYWRfd2luZG93cyAoTGlzcF9PYmplY3QgYnVmZmVy
KQoreworICBzdHJ1Y3QgTGlzcF9IYXNoX1RhYmxlICpoID0gWEhBU0hfVEFCTEUgKHdpbmRv
d19kZWFkX3dpbmRvd3NfdGFibGUpOworCisgIERPSEFTSCAoaCwgaywgdikKKyAgICB3aW5k
b3dfZGlzY2FyZF9idWZmZXJfZnJvbV9kZWFkX3dpbmRvdyAoYnVmZmVyLCB2KTsKK30KKwor
CiBERUZVTiAoImRlbGV0ZS1vdGhlci13aW5kb3dzLWludGVybmFsIiwgRmRlbGV0ZV9vdGhl
cl93aW5kb3dzX2ludGVybmFsLAogICAgICAgIFNkZWxldGVfb3RoZXJfd2luZG93c19pbnRl
cm5hbCwgMCwgMiwgIiIsCiAgICAgICAgZG9jOiAvKiBNYWtlIFdJTkRPVyBmaWxsIGl0cyBm
cmFtZS4KQEAgLTQ0MDIsNiArNDQ4NiwxMCBAQCBtYWtlX3BhcmVudF93aW5kb3cgKExpc3Bf
T2JqZWN0IHdpbmRvdywgYm9vbCBob3JmbGFnKQogICB3c2V0X2J1ZmZlciAocCwgUW5pbCk7
CiAgIHdzZXRfY29tYmluYXRpb24gKHAsIGhvcmZsYWcsIHdpbmRvdyk7CiAgIHdzZXRfY29t
YmluYXRpb25fbGltaXQgKHAsIFFuaWwpOworICAvKiBSZXNldCBhbnkgcHJldmlvdXMgYW5k
IG5leHQgYnVmZmVycyBvZiBwIHdoaWNoIGhhdmUgYmVlbiBpbnN0YWxsZWQKKyAgICAgYnkg
dGhlIG1lbWNweSBhYm92ZS4gICovCisgIHdzZXRfcHJldl9idWZmZXJzIChwLCBRbmlsKTsK
KyAgd3NldF9uZXh0X2J1ZmZlcnMgKHAsIFFuaWwpOwogICB3c2V0X3dpbmRvd19wYXJhbWV0
ZXJzIChwLCBRbmlsKTsKIH0KIApAQCAtNDQyNiwxMCArNDUxNCw2IEBAIG1ha2Vfd2luZG93
ICh2b2lkKQogICB3c2V0X3ZlcnRpY2FsX3Njcm9sbF9iYXJfdHlwZSAodywgUXQpOwogICB3
c2V0X2hvcml6b250YWxfc2Nyb2xsX2Jhcl90eXBlICh3LCBRdCk7CiAgIHdzZXRfY3Vyc29y
X3R5cGUgKHcsIFF0KTsKLSAgLyogVGhlc2UgTGlzcCBmaWVsZHMgYXJlIG1hcmtlZCBzcGVj
aWFsbHkgc28gdGhleSdyZSBub3Qgc2V0IHRvIG5pbCBieQotICAgICBhbGxvY2F0ZV93aW5k
b3cuICAqLwotICB3c2V0X3ByZXZfYnVmZmVycyAodywgUW5pbCk7Ci0gIHdzZXRfbmV4dF9i
dWZmZXJzICh3LCBRbmlsKTsKIAogICAvKiBJbml0aWFsaXplIG5vbi1MaXNwIGRhdGEuICBO
b3RlIHRoYXQgYWxsb2NhdGVfd2luZG93IHplcm9lcyBvdXQgYWxsCiAgICAgIG5vbi1MaXNw
IGRhdGEsIHNvIGRvIGl0IG9ubHkgZm9yIHNsb3RzIHdoaWNoIHNob3VsZCBub3QgYmUgemVy
by4gICovCkBAIC01MjUyLDYgKzUzMzYsMTEgQEAgREVGVU4gKCJkZWxldGUtd2luZG93LWlu
dGVybmFsIiwgRmRlbGV0ZV93aW5kb3dfaW50ZXJuYWwsIFNkZWxldGVfd2luZG93X2ludGVy
bmEKIAkgIHVuY2hhaW5fbWFya2VyIChYTUFSS0VSICh3LT5vbGRfcG9pbnRtKSk7CiAJICB1
bmNoYWluX21hcmtlciAoWE1BUktFUiAody0+c3RhcnQpKTsKIAkgIHdzZXRfYnVmZmVyICh3
LCBRbmlsKTsKKwkgIC8qIEFkZCBXSU5ET1cgdG8gdGFibGUgb2YgZGVhZCB3aW5kb3dzIHNv
IHdoZW4ga2lsbGluZyBhIGJ1ZmZlcgorCSAgICAgV0lORE9XIG1lbnRpb25zLCBhbGwgcmVm
ZXJlbmNlcyB0byB0aGF0IGJ1ZmZlciBjYW4gYmUgcmVtb3ZlZAorCSAgICAgYW5kIHRoZSBi
dWZmZXIgYmUgY29sbGVjdGVkLiAgKi8KKwkgIEZwdXRoYXNoIChtYWtlX2ZpeG51bSAody0+
c2VxdWVuY2VfbnVtYmVyKSwKKwkJICAgIHdpbmRvdywgd2luZG93X2RlYWRfd2luZG93c190
YWJsZSk7CiAJfQogCiAgICAgICBpZiAoTklMUCAocy0+cHJldikgJiYgTklMUCAocy0+bmV4
dCkpCkBAIC03MzU2LDYgKzc0NDUsMTAgQEAgREVGVU4gKCJzZXQtd2luZG93LWNvbmZpZ3Vy
YXRpb24iLCBGc2V0X3dpbmRvd19jb25maWd1cmF0aW9uLAogCQl9CiAJICAgIH0KIAorCSAg
LyogUmVtb3ZlIHdpbmRvdyBmcm9tIHRoZSB0YWJsZSBvZiBkZWFkIHdpbmRvd3MuICAqLwor
CSAgRnJlbWhhc2ggKG1ha2VfZml4bnVtICh3LT5zZXF1ZW5jZV9udW1iZXIpLAorCQkgICAg
d2luZG93X2RlYWRfd2luZG93c190YWJsZSk7CisKIAkgIGlmICgoTklMUCAoZG9udF9zZXRf
bWluaXdpbmRvdykgfHwgIU1JTklfV0lORE9XX1AgKHcpKQogCSAgICAgICYmIEJVRkZFUlAg
KHAtPmJ1ZmZlcikgJiYgQlVGRkVSX0xJVkVfUCAoWEJVRkZFUiAocC0+YnVmZmVyKSkpCiAJ
ICAgIC8qIElmIHNhdmVkIGJ1ZmZlciBpcyBhbGl2ZSwgaW5zdGFsbCBpdCwgdW5sZXNzIGl0
J3MgYQpAQCAtNzU4NSw2ICs3Njc4LDExIEBAIGRlbGV0ZV9hbGxfY2hpbGRfd2luZG93cyAo
TGlzcF9PYmplY3Qgd2luZG93KQogCSBwb3NzaWJsZSByZXN1cnJlY3Rpb24gaW4gRnNldF93
aW5kb3dfY29uZmlndXJhdGlvbi4gICovCiAgICAgICB3c2V0X2NvbWJpbmF0aW9uX2xpbWl0
ICh3LCB3LT5jb250ZW50cyk7CiAgICAgICB3c2V0X2J1ZmZlciAodywgUW5pbCk7CisgICAg
ICAvKiBBZGQgV0lORE9XIHRvIHRhYmxlIG9mIGRlYWQgd2luZG93cyBzbyB3aGVuIGtpbGxp
bmcgYSBidWZmZXIKKwkgV0lORE9XIG1lbnRpb25zLCBhbGwgcmVmZXJlbmNlcyB0byB0aGF0
IGJ1ZmZlciBjYW4gYmUgcmVtb3ZlZAorCSBhbmQgdGhlIGJ1ZmZlciBiZSBjb2xsZWN0ZWQu
ICAqLworICAgICAgRnB1dGhhc2ggKG1ha2VfZml4bnVtICh3LT5zZXF1ZW5jZV9udW1iZXIp
LAorCQl3aW5kb3csIHdpbmRvd19kZWFkX3dpbmRvd3NfdGFibGUpOwogICAgIH0KIAogICBW
d2luZG93X2xpc3QgPSBRbmlsOwpAQCAtODU5NCw2ICs4NjkyLDggQEAgc3ltc19vZl93aW5k
b3cgKHZvaWQpCiAgIERFRlNZTSAoUWNvbmZpZ3VyYXRpb24sICJjb25maWd1cmF0aW9uIik7
CiAgIERFRlNZTSAoUWRlbGV0ZSwgImRlbGV0ZSIpOwogICBERUZTWU0gKFFkZWRpY2F0ZWQs
ICJkZWRpY2F0ZWQiKTsKKyAgREVGU1lNIChRcXVpdF9yZXN0b3JlLCAicXVpdC1yZXN0b3Jl
Iik7CisgIERFRlNZTSAoUXF1aXRfcmVzdG9yZV9wcmV2LCAicXVpdC1yZXN0b3JlLXByZXYi
KTsKIAogICBERUZWQVJfTElTUCAoInRlbXAtYnVmZmVyLXNob3ctZnVuY3Rpb24iLCBWdGVt
cF9idWZmZXJfc2hvd19mdW5jdGlvbiwKIAkgICAgICAgZG9jOiAvKiBOb24tbmlsIG1lYW5z
IGNhbGwgYXMgZnVuY3Rpb24gdG8gZGlzcGxheSBhIGhlbHAgYnVmZmVyLgpAQCAtODkxNyw2
ICs5MDE3LDE3IEBAIHN5bXNfb2Zfd2luZG93ICh2b2lkKQogZGlzcGxheWVkIGFmdGVyIGEg
c2Nyb2xsaW5nIG9wZXJhdGlvbiB0byBiZSBzb21ld2hhdCBpbmFjY3VyYXRlLiAgKi8pOwog
ICBmYXN0X2J1dF9pbXByZWNpc2Vfc2Nyb2xsaW5nID0gZmFsc2U7CiAKKyAgREVGVkFSX0xJ
U1AgKCJ3aW5kb3ctZGVhZC13aW5kb3dzLXRhYmxlIiwgd2luZG93X2RlYWRfd2luZG93c190
YWJsZSwKKyAgICBkb2M6IC8qIEhhc2ggdGFibGUgb2YgZGVhZCB3aW5kb3dzLgorRWFjaCBl
bnRyeSBpbiB0aGlzIHRhYmxlIG1hcHMgYSB3aW5kb3cgbnVtYmVyIHRvIGEgd2luZG93IG9i
amVjdC4KK0VudHJpZXMgYXJlIGFkZGVkIGJ5IGBkZWxldGUtd2luZG93LWludGVybmFsJyBh
bmQgYXJlIHJlbW92ZWQgYnkgdGhlCitnYXJiYWdlIGNvbGxlY3Rvci4KKworVGhpcyB0YWJs
ZSBpcyBtYWludGFpbmVkIGJ5IGNvZGUgaW4gd2luZG93LmMgYW5kIGlzIG1hZGUgdmlzaWJs
ZSBpbgorRWxpc3AgZm9yIHRlc3RpbmcgcHVycG9zZXMgb25seS4gICovKTsKKyAgd2luZG93
X2RlYWRfd2luZG93c190YWJsZQorICAgID0gQ0FMTE4gKEZtYWtlX2hhc2hfdGFibGUsIFFD
d2Vha25lc3MsIFF0KTsKKwogICBkZWZzdWJyICgmU3NlbGVjdGVkX3dpbmRvdyk7CiAgIGRl
ZnN1YnIgKCZTb2xkX3NlbGVjdGVkX3dpbmRvdyk7CiAgIGRlZnN1YnIgKCZTbWluaWJ1ZmZl
cl93aW5kb3cpOwpkaWZmIC0tZ2l0IGEvc3JjL3dpbmRvdy5oIGIvc3JjL3dpbmRvdy5oCmlu
ZGV4IDg2OTMyMTgxMjUyLi4zMzVlMGEzNDUzZSAxMDA2NDQKLS0tIGEvc3JjL3dpbmRvdy5o
CisrKyBiL3NyYy93aW5kb3cuaApAQCAtMTQyLDYgKzE0MiwxMiBAQCAjZGVmaW5lIFdJTkRP
V19IX0lOQ0xVREVECiAgICAgICAgYXMgd2VsbC4gICovCiAgICAgTGlzcF9PYmplY3QgY29u
dGVudHM7CiAKKyAgICAvKiBBIGxpc3Qgb2YgPGJ1ZmZlciwgd2luZG93LXN0YXJ0LCB3aW5k
b3ctcG9pbnQ+IHRyaXBsZXMgbGlzdGluZworICAgICAgIGJ1ZmZlcnMgcHJldmlvdXNseSBz
aG93biBpbiB0aGlzIHdpbmRvdy4gICovCisgICAgTGlzcF9PYmplY3QgcHJldl9idWZmZXJz
OworICAgIC8qIExpc3Qgb2YgYnVmZmVycyByZS1zaG93biBpbiB0aGlzIHdpbmRvdy4gICov
CisgICAgTGlzcF9PYmplY3QgbmV4dF9idWZmZXJzOworCiAgICAgLyogVGhlIG9sZCBidWZm
ZXIgb2YgdGhpcyB3aW5kb3csIHNldCB0byB0aGlzIHdpbmRvdydzIGJ1ZmZlciBieQogICAg
ICAgIHJ1bl93aW5kb3dfY2hhbmdlX2Z1bmN0aW9ucyBldmVyeSB0aW1lIGl0IHNlZXMgdGhp
cyB3aW5kb3cuCiAgICAgICAgVW51c2VkIGZvciBpbnRlcm5hbCB3aW5kb3dzLiAgKi8KQEAg
LTIxOCwxNCArMjI0LDYgQEAgI2RlZmluZSBXSU5ET1dfSF9JTkNMVURFRAogICAgIHN0cnVj
dCBnbHlwaF9tYXRyaXggKmN1cnJlbnRfbWF0cml4OwogICAgIHN0cnVjdCBnbHlwaF9tYXRy
aXggKmRlc2lyZWRfbWF0cml4OwogCi0gICAgLyogVGhlIHR3byBMaXNwX09iamVjdCBmaWVs
ZHMgYmVsb3cgYXJlIG1hcmtlZCBpbiBhIHNwZWNpYWwgd2F5LAotICAgICAgIHdoaWNoIGlz
IHdoeSB0aGV5J3JlIHBsYWNlZCBhZnRlciBgY3VycmVudF9tYXRyaXgnLiAgKi8KLSAgICAv
KiBBIGxpc3Qgb2YgPGJ1ZmZlciwgd2luZG93LXN0YXJ0LCB3aW5kb3ctcG9pbnQ+IHRyaXBs
ZXMgbGlzdGluZwotICAgICAgIGJ1ZmZlcnMgcHJldmlvdXNseSBzaG93biBpbiB0aGlzIHdp
bmRvdy4gICovCi0gICAgTGlzcF9PYmplY3QgcHJldl9idWZmZXJzOwotICAgIC8qIExpc3Qg
b2YgYnVmZmVycyByZS1zaG93biBpbiB0aGlzIHdpbmRvdy4gICovCi0gICAgTGlzcF9PYmpl
Y3QgbmV4dF9idWZmZXJzOwotCiAgICAgLyogTnVtYmVyIHNheWluZyBob3cgcmVjZW50bHkg
d2luZG93IHdhcyBzZWxlY3RlZC4gICovCiAgICAgRU1BQ1NfSU5UIHVzZV90aW1lOwogCkBA
IC0xMjI4LDYgKzEyMjYsNyBAQCAjZGVmaW5lIENIRUNLX0xJVkVfV0lORE9XKFdJTkRPVykJ
CQkJXAogZXh0ZXJuIHZvaWQgd3NldF9idWZmZXIgKHN0cnVjdCB3aW5kb3cgKiwgTGlzcF9P
YmplY3QpOwogZXh0ZXJuIGJvb2wgd2luZG93X291dGRhdGVkIChzdHJ1Y3Qgd2luZG93ICop
OwogZXh0ZXJuIHB0cmRpZmZfdCB3aW5kb3dfcG9pbnQgKHN0cnVjdCB3aW5kb3cgKncpOwor
ZXh0ZXJuIHZvaWQgd2luZG93X2Rpc2NhcmRfYnVmZmVyX2Zyb21fZGVhZF93aW5kb3dzIChM
aXNwX09iamVjdCk7CiBleHRlcm4gdm9pZCBpbml0X3dpbmRvd19vbmNlICh2b2lkKTsKIGV4
dGVybiB2b2lkIGluaXRfd2luZG93ICh2b2lkKTsKIGV4dGVybiB2b2lkIHN5bXNfb2Zfd2lu
ZG93ICh2b2lkKTsK

--------------0cpMOBypjKdTdjfLu6e2lIGs--




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#59862; Package emacs. Full text available.

Message received at 59862 <at> debbugs.gnu.org:


Received: (at 59862) by debbugs.gnu.org; 16 Jul 2024 22:14:22 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Tue Jul 16 18:14:22 2024
Received: from localhost ([127.0.0.1]:34548 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1sTqRC-0005kq-69
	for submit <at> debbugs.gnu.org; Tue, 16 Jul 2024 18:14:22 -0400
Received: from thaodan.de ([185.216.177.71]:38468)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <bjorn.bidar@HIDDEN>) id 1sTqR9-0005kU-J4
 for 59862 <at> debbugs.gnu.org; Tue, 16 Jul 2024 18:14:20 -0400
Received: from odin (dsl-trebng12-50dc75-154.dhcp.inet.fi [80.220.117.154])
 by thaodan.de (Postfix) with ESMTPSA id 96491D00030;
 Wed, 17 Jul 2024 01:14:10 +0300 (EEST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=thaodan.de; s=mail;
 t=1721168050; bh=JkUCfw3/Iuujbfnmh21NeLuyyO7tsB5IxRhMqbbVY5Y=;
 h=From:To:Cc:Subject:In-Reply-To:References:Date;
 b=nv5sK/7GLyPMBoe9XhFyVZJBVlhN+PxH6WHKux/M/lPXbR2/XxIAI8nQ4aqJznuxG
 O2JigzzyWWx9Wp1LtbHS1zoturd4x0oHZyP+lotFNh1LGWeE9t0nYtIUFdVeajd9s0
 eZy6Lw38QxClI6djGj2q4hnQN18JgriyFWcFXzKwJliHGF5E9Z7WHjHUuy6B1xwO2Y
 lNmqoQ79ricEhReyw+HqIT1Wt9ehEhz6yFwwcQU+Yq4r8ZfT5V8FZM8RRN75SqP3Jj
 3+6uytSYP2ZMaujSikhDOHHjlylEMwOjJydGMbSnRy5ERaL0VT3UBsZbzAl7ta7PeP
 fDxwgPQwBGFNzXsvWRPVC5ncXqBse8n9LV8q3lOl0JIV7Webgia8o60qnLhEdG1UKm
 I3T8HOQFAdRA94PoVmwdl2FoPdaNUdvlWX1fAYrg8Yyc+bPTz3rMW66hknmwSPioJs
 c2hxSwUTPkYGlsQpPT584ercZL4v9NxQwABWlS1LD6mjjaKyws36YeDdsOiyU346Rj
 mMwWymWcBUuXuFYP3isMNAjOWtgqTmSsBCeAjsMZM/bB8hdNQURG2S/Eib3eeWQdm6
 rJwz99Ug9r6jTTzrhZzjI6UL+G9H6IMwIxFgv+pDWG5lalP0iOvESvIlE8XPyYvOHi
 r0rErZ9LfT4maR1Dz9CESgCQ=
From: =?utf-8?Q?Bj=C3=B6rn?= Bidar <bjorn.bidar@HIDDEN>
To: martin rudalics via "Bug reports for GNU Emacs, the Swiss army knife of
 text editors" <bug-gnu-emacs@HIDDEN>
Subject: Re: bug#59862: quit-restore per window buffer
In-Reply-To: <ee4e7e95-53d3-4b01-bd1a-ae2cd77352b2@HIDDEN> (martin rudalics
 via's message of "Tue, 16 Jul 2024 10:22:34 +0200")
References: <86fsds8mlm.fsf@HIDDEN> <86plsxmc6d.fsf@HIDDEN>
 <86r0d4ezdc.fsf@HIDDEN>
 <0d01a044-d7d6-456a-9ba9-d987faad4332@HIDDEN>
 <86frthjq4y.fsf@HIDDEN>
 <743dc4dd-cf09-4c5e-9209-b63a47480e0b@HIDDEN>
 <86msnne7ut.fsf@HIDDEN>
 <ad0bfe5d-817b-4d11-b82f-90c5a76b4c81@HIDDEN>
 <86plsgrfvu.fsf@HIDDEN>
 <ca1388d2-3481-49c4-8721-42792a399340@HIDDEN>
 <86le2b12ni.fsf@HIDDEN>
 <a972688e-01f6-428e-9dc0-67a45bc9a770@HIDDEN>
 <86y169kafb.fsf@HIDDEN>
 <61c4f245-3dd8-4e24-9c84-7ddd4cfe3c49@HIDDEN>
 <86a5ioo269.fsf@HIDDEN>
 <eb3b984d-dd6a-48e3-88c8-ef2cd146b0b7@HIDDEN>
 <867cdr3xs7.fsf@HIDDEN>
 <3f399d4f-3dd2-4624-b857-e198f70b5565@HIDDEN>
 <86h6csct0w.fsf@HIDDEN>
 <1fb1cc7a-b8ea-4d6d-ac6d-19abffef44f3@HIDDEN>
 <ee4e7e95-53d3-4b01-bd1a-ae2cd77352b2@HIDDEN>
Autocrypt: addr=bjorn.bidar@HIDDEN; prefer-encrypt=nopreference; keydata=
 mDMEZNfpPhYJKwYBBAHaRw8BAQdACBEmr+0xwIIHZfIDlZmm7sa+lHHSb0g9FZrN6qE6ru60JUJq
 w7ZybiBCaWRhciA8Ympvcm4uYmlkYXJAdGhhb2Rhbi5kZT6IlgQTFgoAPgIbAwULCQgHAgIiAgYV
 CgkICwIEFgIDAQIeBwIXgBYhBFHxdut1RzAepymoq1wbdKFlHF9oBQJk1/YmAhkBAAoJEFwbdKFl
 HF9oB9cBAJoIIGQKXm4cpap+Flxc/EGnYl0123lcEyzuduqvlDT0AQC3OlFKm/OiqJ8IMTrzJRZ8
 phFssTkSrrFXnM2jm5PYDoiTBBMWCgA7FiEEUfF263VHMB6nKairXBt0oWUcX2gFAmTX6T4CGwMF
 CwkIBwICIgIGFQoJCAsCBBYCAwECHgcCF4AACgkQXBt0oWUcX2hbCQEAtru7kvM8hi8zo6z9ux2h
 K+B5xViKuo7Z8K3IXuK5ugwA+wUfKzomzdBPhfxDsqLcEziGRxoyx0Q3ld9aermBUccHtBxCasO2
 cm4gQmlkYXIgPG1lQHRoYW9kYW4uZGU+iJMEExYKADsCGwMFCwkIBwICIgIGFQoJCAsCBBYCAwEC
 HgcCF4AWIQRR8XbrdUcwHqcpqKtcG3ShZRxfaAUCZNf2FQAKCRBcG3ShZRxfaCzSAP4hZ7cSp0YN
 XYpcjHdsySh2MuBhhoPeLGXs+2kSiqBiOwD/TP8AgPEg/R+SI9GI9on7fBJJ0mp2IT8kZ2rhDOjg
 gA6IkwQTFgoAOxYhBFHxdut1RzAepymoq1wbdKFlHF9oBQJk1+ntAhsDBQsJCAcCAiICBhUKCQgL
 AgQWAgMBAh4HAheAAAoJEFwbdKFlHF9oBgwA/iQHwe0VL4Df4GGTYlNjMSHFlIkBmN4UfYGLYj3E
 TrOUAQC51M+M3cjsL8WHdpBz6VAo6df9d+rVwhQ9vQuFHqevArg4BGTX6T4SCisGAQQBl1UBBQEB
 B0Cbohc3JEfn005/cm0AOGjSsW1ZxAkgaoVNjbpqk4MgNAMBCAeIeAQYFgoAIBYhBFHxdut1RzAe
 pymoq1wbdKFlHF9oBQJk1+k+AhsMAAoJEFwbdKFlHF9ooHABAKGmrGBic/Vys3BBrOQiRB3Z7izO
 HwhqTRpAqFZtXS2nAQDZhp/5aYw1TZjTzkm1KVt9QiYnjd/MvxRE9iaY6x4mDbgzBGTX6T4WCSsG
 AQQB2kcPAQEHQAgRJq/tMcCCB2XyA5WZpu7GvpRx0m9IPRWazeqhOq7uiO8EGBYKACAWIQRR8Xbr
 dUcwHqcpqKtcG3ShZRxfaAUCZNf71AIbIgCBCRBcG3ShZRxfaHYgBBkWCgAdFiEEUfF263VHMB6n
 KairXBt0oWUcX2gFAmTX+9QACgkQXBt0oWUcX2jeSwD6AtWn0cuo8IF35YRo4o3cDRJnUfJnbvJy
 GxyCDThR+zYBAKG6/jdwmZkBQZKslnDAbMMd2WfiZZT5JW3IWC4EaKMO7HkBAKYPGZ3UbfkRvfFK
 S+pQ9CgtNfkSJQBtT1Ob7Y6nsacgAQCpyXN7yppmhW/oBgivITPy9Lkg+V4NK9WZYZCU9Q7LBA==
Date: Wed, 17 Jul 2024 01:14:09 +0300
Message-ID: <871q3tc7da.fsf@>
User-Agent: Gnus/5.13 (Gnus v5.13)
MIME-Version: 1.0
Content-Type: text/plain
X-Spam-Score: 1.2 (+)
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:  martin rudalics via "Bug reports for GNU Emacs, the Swiss
 army knife of text editors" <bug-gnu-emacs@HIDDEN> writes: >> What about
 use cases where the frame was only spawned for that >> particular window?
 >> >> For a frame focused setup frames mostly contain only one window and
 >> don't close when the only window in [...] 
 Content analysis details:   (1.2 points, 10.0 required)
 pts rule name              description
 ---- ---------------------- --------------------------------------------------
 -0.0 SPF_HELO_PASS          SPF: HELO matches SPF record
 -0.0 SPF_PASS               SPF: sender matches SPF record
 1.2 INVALID_MSGID          Message-Id is not valid, according to RFC 2822
X-Debbugs-Envelope-To: 59862
Cc: martin rudalics <rudalics@HIDDEN>, 59862 <at> debbugs.gnu.org, juri@HIDDEN
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: 0.2 (/)

martin rudalics via "Bug reports for GNU Emacs, the Swiss army knife of
text editors" <bug-gnu-emacs@HIDDEN> writes:

>> What about use cases where the frame was only spawned for that
>> particular window?
>>
>> For a frame focused setup frames mostly contain only one window and
>> don't close when the only window in it is killed
>
> Do you mean "window" or "buffer" here?  C-x 0 in a frame containing only
> one window gets you an "Attempt to delete minibuffer or sole ordinary
> window" error.  I suppose you meant "buffer" here.

I meant window. Same as you explain further below in your message
I call quit-window on a dedicate window the frame also dies with it.

>> leaving a window with
>> the scratch buffer around.
>
> Let's distinguish two different cases: If, after evaluating
>
> (custom-set-variables
>  '(display-buffer-alist '(("\\*info\\*" display-buffer-same-window)))
>  '(frame-auto-hide-function 'delete-frame))
>
> you do C-x 5 2 then C-h i and finally q, the second frame will stay
> around and show *scratch*.  Alternatively, you can evaluate
>
> (custom-set-variables
>  '(display-buffer-alist '(("\\*info\\*" display-buffer-same-window))))
>
> do C-x 5 2 then C-h i and finally C-u q which also kills the *info*
> buffer.  These are the behaviors needed for handling the Bug#12764
> scenario.
>
> If instead you evaluate
>
> (custom-set-variables
>  '(display-buffer-alist '(("\\*info\\*" display-buffer-pop-up-frame)))
>  '(frame-auto-hide-function 'delete-frame))
>
> and then do C-h i followed by q, the second frame gets deleted.
> Alternatively you can get the same visual behavior via
>
> (custom-set-variables
>  '(display-buffer-alist '(("\\*info\\*" display-buffer-pop-up-frame))))
>
> followed by C-h i and C-u q where the latter also kills the *info*
> buffer.
>
> In the thread of Bug#12764 I argued that deleting the frame would make
> sense in the first scenario too.  But then we would have to look into
> the history of the last window on that frame to decide whether the
> buffer it previously showed should be restored or not.  Even if there is
> no previous buffer for that window we should at least optionally allow
> the frame to stay alive.
>

I very much agree with you on that point.

I think if the window inside of a frame didn't contain any other buffer
than the initial buffer and a new buffer that uses the same window
there could be the argument that the window should die and thus the
frame too.





Information forwarded to bug-gnu-emacs@HIDDEN:
bug#59862; Package emacs. Full text available.

Message received at submit <at> debbugs.gnu.org:


Received: (at submit) by debbugs.gnu.org; 16 Jul 2024 22:14:26 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Tue Jul 16 18:14:26 2024
Received: from localhost ([127.0.0.1]:34550 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1sTqRF-0005l0-KI
	for submit <at> debbugs.gnu.org; Tue, 16 Jul 2024 18:14:26 -0400
Received: from lists.gnu.org ([209.51.188.17]:39480)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <bjorn.bidar@HIDDEN>) id 1sTqRB-0005kj-4O
 for submit <at> debbugs.gnu.org; Tue, 16 Jul 2024 18:14:21 -0400
Received: from eggs.gnu.org ([2001:470:142:3::10])
 by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.90_1) (envelope-from <bjorn.bidar@HIDDEN>)
 id 1sTqR8-0006jJ-2G
 for bug-gnu-emacs@HIDDEN; Tue, 16 Jul 2024 18:14:18 -0400
Received: from thaodan.de ([2a03:4000:4f:f15::1])
 by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.90_1) (envelope-from <bjorn.bidar@HIDDEN>)
 id 1sTqR4-00020G-W2
 for bug-gnu-emacs@HIDDEN; Tue, 16 Jul 2024 18:14:17 -0400
Received: from odin (dsl-trebng12-50dc75-154.dhcp.inet.fi [80.220.117.154])
 by thaodan.de (Postfix) with ESMTPSA id 96491D00030;
 Wed, 17 Jul 2024 01:14:10 +0300 (EEST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=thaodan.de; s=mail;
 t=1721168050; bh=JkUCfw3/Iuujbfnmh21NeLuyyO7tsB5IxRhMqbbVY5Y=;
 h=From:To:Cc:Subject:In-Reply-To:References:Date;
 b=nv5sK/7GLyPMBoe9XhFyVZJBVlhN+PxH6WHKux/M/lPXbR2/XxIAI8nQ4aqJznuxG
 O2JigzzyWWx9Wp1LtbHS1zoturd4x0oHZyP+lotFNh1LGWeE9t0nYtIUFdVeajd9s0
 eZy6Lw38QxClI6djGj2q4hnQN18JgriyFWcFXzKwJliHGF5E9Z7WHjHUuy6B1xwO2Y
 lNmqoQ79ricEhReyw+HqIT1Wt9ehEhz6yFwwcQU+Yq4r8ZfT5V8FZM8RRN75SqP3Jj
 3+6uytSYP2ZMaujSikhDOHHjlylEMwOjJydGMbSnRy5ERaL0VT3UBsZbzAl7ta7PeP
 fDxwgPQwBGFNzXsvWRPVC5ncXqBse8n9LV8q3lOl0JIV7Webgia8o60qnLhEdG1UKm
 I3T8HOQFAdRA94PoVmwdl2FoPdaNUdvlWX1fAYrg8Yyc+bPTz3rMW66hknmwSPioJs
 c2hxSwUTPkYGlsQpPT584ercZL4v9NxQwABWlS1LD6mjjaKyws36YeDdsOiyU346Rj
 mMwWymWcBUuXuFYP3isMNAjOWtgqTmSsBCeAjsMZM/bB8hdNQURG2S/Eib3eeWQdm6
 rJwz99Ug9r6jTTzrhZzjI6UL+G9H6IMwIxFgv+pDWG5lalP0iOvESvIlE8XPyYvOHi
 r0rErZ9LfT4maR1Dz9CESgCQ=
From: =?utf-8?Q?Bj=C3=B6rn?= Bidar <bjorn.bidar@HIDDEN>
To: martin rudalics via "Bug reports for GNU Emacs, the Swiss army knife of
 text editors" <bug-gnu-emacs@HIDDEN>
Subject: Re: bug#59862: quit-restore per window buffer
In-Reply-To: <ee4e7e95-53d3-4b01-bd1a-ae2cd77352b2@HIDDEN> (martin rudalics
 via's message of "Tue, 16 Jul 2024 10:22:34 +0200")
References: <86fsds8mlm.fsf@HIDDEN> <86plsxmc6d.fsf@HIDDEN>
 <86r0d4ezdc.fsf@HIDDEN>
 <0d01a044-d7d6-456a-9ba9-d987faad4332@HIDDEN>
 <86frthjq4y.fsf@HIDDEN>
 <743dc4dd-cf09-4c5e-9209-b63a47480e0b@HIDDEN>
 <86msnne7ut.fsf@HIDDEN>
 <ad0bfe5d-817b-4d11-b82f-90c5a76b4c81@HIDDEN>
 <86plsgrfvu.fsf@HIDDEN>
 <ca1388d2-3481-49c4-8721-42792a399340@HIDDEN>
 <86le2b12ni.fsf@HIDDEN>
 <a972688e-01f6-428e-9dc0-67a45bc9a770@HIDDEN>
 <86y169kafb.fsf@HIDDEN>
 <61c4f245-3dd8-4e24-9c84-7ddd4cfe3c49@HIDDEN>
 <86a5ioo269.fsf@HIDDEN>
 <eb3b984d-dd6a-48e3-88c8-ef2cd146b0b7@HIDDEN>
 <867cdr3xs7.fsf@HIDDEN>
 <3f399d4f-3dd2-4624-b857-e198f70b5565@HIDDEN>
 <86h6csct0w.fsf@HIDDEN>
 <1fb1cc7a-b8ea-4d6d-ac6d-19abffef44f3@HIDDEN>
 <ee4e7e95-53d3-4b01-bd1a-ae2cd77352b2@HIDDEN>
Autocrypt: addr=bjorn.bidar@HIDDEN; prefer-encrypt=nopreference; keydata=
 mDMEZNfpPhYJKwYBBAHaRw8BAQdACBEmr+0xwIIHZfIDlZmm7sa+lHHSb0g9FZrN6qE6ru60JUJq
 w7ZybiBCaWRhciA8Ympvcm4uYmlkYXJAdGhhb2Rhbi5kZT6IlgQTFgoAPgIbAwULCQgHAgIiAgYV
 CgkICwIEFgIDAQIeBwIXgBYhBFHxdut1RzAepymoq1wbdKFlHF9oBQJk1/YmAhkBAAoJEFwbdKFl
 HF9oB9cBAJoIIGQKXm4cpap+Flxc/EGnYl0123lcEyzuduqvlDT0AQC3OlFKm/OiqJ8IMTrzJRZ8
 phFssTkSrrFXnM2jm5PYDoiTBBMWCgA7FiEEUfF263VHMB6nKairXBt0oWUcX2gFAmTX6T4CGwMF
 CwkIBwICIgIGFQoJCAsCBBYCAwECHgcCF4AACgkQXBt0oWUcX2hbCQEAtru7kvM8hi8zo6z9ux2h
 K+B5xViKuo7Z8K3IXuK5ugwA+wUfKzomzdBPhfxDsqLcEziGRxoyx0Q3ld9aermBUccHtBxCasO2
 cm4gQmlkYXIgPG1lQHRoYW9kYW4uZGU+iJMEExYKADsCGwMFCwkIBwICIgIGFQoJCAsCBBYCAwEC
 HgcCF4AWIQRR8XbrdUcwHqcpqKtcG3ShZRxfaAUCZNf2FQAKCRBcG3ShZRxfaCzSAP4hZ7cSp0YN
 XYpcjHdsySh2MuBhhoPeLGXs+2kSiqBiOwD/TP8AgPEg/R+SI9GI9on7fBJJ0mp2IT8kZ2rhDOjg
 gA6IkwQTFgoAOxYhBFHxdut1RzAepymoq1wbdKFlHF9oBQJk1+ntAhsDBQsJCAcCAiICBhUKCQgL
 AgQWAgMBAh4HAheAAAoJEFwbdKFlHF9oBgwA/iQHwe0VL4Df4GGTYlNjMSHFlIkBmN4UfYGLYj3E
 TrOUAQC51M+M3cjsL8WHdpBz6VAo6df9d+rVwhQ9vQuFHqevArg4BGTX6T4SCisGAQQBl1UBBQEB
 B0Cbohc3JEfn005/cm0AOGjSsW1ZxAkgaoVNjbpqk4MgNAMBCAeIeAQYFgoAIBYhBFHxdut1RzAe
 pymoq1wbdKFlHF9oBQJk1+k+AhsMAAoJEFwbdKFlHF9ooHABAKGmrGBic/Vys3BBrOQiRB3Z7izO
 HwhqTRpAqFZtXS2nAQDZhp/5aYw1TZjTzkm1KVt9QiYnjd/MvxRE9iaY6x4mDbgzBGTX6T4WCSsG
 AQQB2kcPAQEHQAgRJq/tMcCCB2XyA5WZpu7GvpRx0m9IPRWazeqhOq7uiO8EGBYKACAWIQRR8Xbr
 dUcwHqcpqKtcG3ShZRxfaAUCZNf71AIbIgCBCRBcG3ShZRxfaHYgBBkWCgAdFiEEUfF263VHMB6n
 KairXBt0oWUcX2gFAmTX+9QACgkQXBt0oWUcX2jeSwD6AtWn0cuo8IF35YRo4o3cDRJnUfJnbvJy
 GxyCDThR+zYBAKG6/jdwmZkBQZKslnDAbMMd2WfiZZT5JW3IWC4EaKMO7HkBAKYPGZ3UbfkRvfFK
 S+pQ9CgtNfkSJQBtT1Ob7Y6nsacgAQCpyXN7yppmhW/oBgivITPy9Lkg+V4NK9WZYZCU9Q7LBA==
Date: Wed, 17 Jul 2024 01:14:09 +0300
Message-ID: <871q3tc7da.fsf@>
User-Agent: Gnus/5.13 (Gnus v5.13)
MIME-Version: 1.0
Content-Type: text/plain
Received-SPF: pass client-ip=2a03:4000:4f:f15::1;
 envelope-from=bjorn.bidar@HIDDEN; helo=thaodan.de
X-Spam_score_int: -14
X-Spam_score: -1.5
X-Spam_bar: -
X-Spam_report: (-1.5 / 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, INVALID_MSGID=0.568,
 SPF_HELO_PASS=-0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no
X-Spam_action: no action
X-Spam-Score: -0.2 (/)
X-Debbugs-Envelope-To: submit
Cc: martin rudalics <rudalics@HIDDEN>, 59862 <at> debbugs.gnu.org, juri@HIDDEN
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.2 (-)

martin rudalics via "Bug reports for GNU Emacs, the Swiss army knife of
text editors" <bug-gnu-emacs@HIDDEN> writes:

>> What about use cases where the frame was only spawned for that
>> particular window?
>>
>> For a frame focused setup frames mostly contain only one window and
>> don't close when the only window in it is killed
>
> Do you mean "window" or "buffer" here?  C-x 0 in a frame containing only
> one window gets you an "Attempt to delete minibuffer or sole ordinary
> window" error.  I suppose you meant "buffer" here.

I meant window. Same as you explain further below in your message
I call quit-window on a dedicate window the frame also dies with it.

>> leaving a window with
>> the scratch buffer around.
>
> Let's distinguish two different cases: If, after evaluating
>
> (custom-set-variables
>  '(display-buffer-alist '(("\\*info\\*" display-buffer-same-window)))
>  '(frame-auto-hide-function 'delete-frame))
>
> you do C-x 5 2 then C-h i and finally q, the second frame will stay
> around and show *scratch*.  Alternatively, you can evaluate
>
> (custom-set-variables
>  '(display-buffer-alist '(("\\*info\\*" display-buffer-same-window))))
>
> do C-x 5 2 then C-h i and finally C-u q which also kills the *info*
> buffer.  These are the behaviors needed for handling the Bug#12764
> scenario.
>
> If instead you evaluate
>
> (custom-set-variables
>  '(display-buffer-alist '(("\\*info\\*" display-buffer-pop-up-frame)))
>  '(frame-auto-hide-function 'delete-frame))
>
> and then do C-h i followed by q, the second frame gets deleted.
> Alternatively you can get the same visual behavior via
>
> (custom-set-variables
>  '(display-buffer-alist '(("\\*info\\*" display-buffer-pop-up-frame))))
>
> followed by C-h i and C-u q where the latter also kills the *info*
> buffer.
>
> In the thread of Bug#12764 I argued that deleting the frame would make
> sense in the first scenario too.  But then we would have to look into
> the history of the last window on that frame to decide whether the
> buffer it previously showed should be restored or not.  Even if there is
> no previous buffer for that window we should at least optionally allow
> the frame to stay alive.
>

I very much agree with you on that point.

I think if the window inside of a frame didn't contain any other buffer
than the initial buffer and a new buffer that uses the same window
there could be the argument that the window should die and thus the
frame too.





Information forwarded to bug-gnu-emacs@HIDDEN:
bug#59862; Package emacs. Full text available.

Message received at 59862 <at> debbugs.gnu.org:


Received: (at 59862) by debbugs.gnu.org; 16 Jul 2024 08:22:51 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Tue Jul 16 04:22:51 2024
Received: from localhost ([127.0.0.1]:60924 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1sTdSU-0003Z3-MS
	for submit <at> debbugs.gnu.org; Tue, 16 Jul 2024 04:22:51 -0400
Received: from mout.gmx.net ([212.227.15.19]:49419)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <rudalics@HIDDEN>) id 1sTdSS-0003Yq-59
 for 59862 <at> debbugs.gnu.org; Tue, 16 Jul 2024 04:22:49 -0400
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmx.at;
 s=s31663417; t=1721118159; x=1721722959; i=rudalics@HIDDEN;
 bh=ygpYlppB5HhVCRMnG3MPwCjQwpYhTW0+IXQ/+ZuEW+k=;
 h=X-UI-Sender-Class:Message-ID:Date:MIME-Version:Subject:To:Cc:
 References:From:In-Reply-To:Content-Type:
 Content-Transfer-Encoding:cc:content-transfer-encoding:
 content-type:date:from:message-id:mime-version:reply-to:subject:
 to;
 b=mxBpbgx5VoOfbIUvc6Z+H5VeKf2zv6eTUF14qu3j8T5QZpI/C13QAtV01ZsOC/YX
 6jFLBu5jD9ZV0GnRy1m8qg7+eH0uh7McV3oDVq4KfoMOaDhIWsiyyMy2cXfBD1tRQ
 qXF8mP1z08prlTGaOgqWns6199uIxQdM6/LQwWA2yv2DfqCOuWDcL4ktQeIwoEQCM
 z4QvoXQkuAvFNnzlXfwX9vZjLK5yEdNV56ACgWKbrw764uSNh/j1QWJhol59utf/6
 dkPg+h4bEwFHRO8X0Mj6xlZovB7ngNdbWmOvoZ10Hw0/FQMSjw33uPqBYCgmxQJt6
 XX+uDl0uDUyak+sYFg==
X-UI-Sender-Class: 724b4f7f-cbec-4199-ad4e-598c01a50d3a
Received: from [192.168.31.113] ([46.125.249.102]) by mail.gmx.net (mrgmx004
 [212.227.17.190]) with ESMTPSA (Nemesis) id 1MDQeK-1sakTA03ny-002Aig; Tue, 16
 Jul 2024 10:22:38 +0200
Message-ID: <ee4e7e95-53d3-4b01-bd1a-ae2cd77352b2@HIDDEN>
Date: Tue, 16 Jul 2024 10:22:34 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: bug#59862: quit-restore per window buffer
To: =?UTF-8?Q?Bj=C3=B6rn_Bidar?= <bjorn.bidar@HIDDEN>,
 martin rudalics via Bug reports for GNU "Emacs, " the Swiss army knife of text
 editors <bug-gnu-emacs@HIDDEN>
References: <86fsds8mlm.fsf@HIDDEN>
 <f9eb9bae-6275-4448-9590-e72a56064220@HIDDEN>
 <86plsxmc6d.fsf@HIDDEN> <86r0d4ezdc.fsf@HIDDEN>
 <0d01a044-d7d6-456a-9ba9-d987faad4332@HIDDEN>
 <86frthjq4y.fsf@HIDDEN>
 <743dc4dd-cf09-4c5e-9209-b63a47480e0b@HIDDEN>
 <86msnne7ut.fsf@HIDDEN>
 <ad0bfe5d-817b-4d11-b82f-90c5a76b4c81@HIDDEN>
 <86plsgrfvu.fsf@HIDDEN>
 <ca1388d2-3481-49c4-8721-42792a399340@HIDDEN>
 <86le2b12ni.fsf@HIDDEN>
 <a972688e-01f6-428e-9dc0-67a45bc9a770@HIDDEN>
 <86y169kafb.fsf@HIDDEN>
 <61c4f245-3dd8-4e24-9c84-7ddd4cfe3c49@HIDDEN>
 <86a5ioo269.fsf@HIDDEN>
 <eb3b984d-dd6a-48e3-88c8-ef2cd146b0b7@HIDDEN>
 <867cdr3xs7.fsf@HIDDEN>
 <3f399d4f-3dd2-4624-b857-e198f70b5565@HIDDEN>
 <86h6csct0w.fsf@HIDDEN>
 <1fb1cc7a-b8ea-4d6d-ac6d-19abffef44f3@HIDDEN> <87frs9kgve.fsf@>
Content-Language: en-US
From: martin rudalics <rudalics@HIDDEN>
In-Reply-To: <87frs9kgve.fsf@>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
X-Provags-ID: V03:K1:FiIVgqZdbamrxEH/JE1d7rT99w4pw3n6Wv5EX9CgjcEb0agG1ir
 AzHyHT+QH+GXd5CxGSoGISAGwhSTl3AVBbCXsoDn9Ku0smiZXjfyCG68/87VSYXs1Gt9vzb
 Cb2ccuowfpGI78yxu6pM8KkZD7YgY2+vqrwKlsWwhicZF3Z5IOJLp25VcQa8s1hgjuYptDI
 AvXrIM6J+jKQkmZXzpqtQ==
X-Spam-Flag: NO
UI-OutboundReport: notjunk:1;M01:P0:z0ymmL1P0Qc=;zIjQWwrUIapC4YxZPgZgRPpzBbY
 ZS4EWi+3iumQnuFiWCSZgOyhCwNH0nPfZu3kxrW1zjp58opj+IYLYYStViW3AKq3OepC7dKUQ
 RZNjthA018AoY2ItUsV3IX0HFbRj0AtSfl/YvHbBU2fXam8LCjR++sHt+JYeooKg7IoLPrQAA
 x349qWiD1Ig52jX0rAEsqkvqyroLGWNsrk+Z4OazEDIYuR8M1+MKV+b0M+Uf5U4nL/q0rZRgd
 isGoqXrRvLamgjQolDGl7ecQfUjF2OdsggdmVnhmCQ/eYLNC0v60inP4a8M4XWa57G0pT7ujG
 CRwcOkV8HIDuMu6H26Eexpqn6rkPFxMyipT4zciEedxXqt+A2F19XbRS/UDzeUWo1vCiXhvEo
 Esmxz/QJ1JUeDMDMX7yoXbC0gHlI/M55OVByj245PmHigYImZsfYO1b1uyPnUk431tBlKNGp3
 t9wgECbAt2i2W7+o4aZ8SbeGXmthf/YM4oMoP86fodByKqVbViL07F9y1KDCxj/rWyM+GoCSg
 Z6riEYkENtNdp3gBuqdzmc0Mdq0ulLinhjBi1n9/4rIZDG+vX3LkKibrjK31xmSi+RzkCRCmS
 nRUZOXFRjxub+9GG+gwJ5cAJHuxCeUG1d9j67qhCQMzRaFMq/X+MFPywFQv/5AEAMZcThohQF
 54pjG8dMNMOf2506PsMfcvn/EFupstcCsVv2WWF76M3ti8gaOO5L4eqxv7Qd7x+n6qUAiC1wk
 h5oq1r0rgUmhg5lMSBaErfCImhES7SppS35B2anOtOWul0927KmGhGRpnp9wHvZYYpuFyDFB+
 koCjl78orrT5/I0x/Wcl5BZR+qrNifmAjqauBvvd3VGfM=
X-Spam-Score: -0.7 (/)
X-Debbugs-Envelope-To: 59862
Cc: 59862 <at> debbugs.gnu.org, Juri Linkov <juri@HIDDEN>
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.7 (-)

 > What about use cases where the frame was only spawned for that
 > particular window?
 >
 > For a frame focused setup frames mostly contain only one window and
 > don't close when the only window in it is killed

Do you mean "window" or "buffer" here?  C-x 0 in a frame containing only
one window gets you an "Attempt to delete minibuffer or sole ordinary
window" error.  I suppose you meant "buffer" here.

 > leaving a window with
 > the scratch buffer around.

Let's distinguish two different cases: If, after evaluating

(custom-set-variables
  '(display-buffer-alist '(("\\*info\\*" display-buffer-same-window)))
  '(frame-auto-hide-function 'delete-frame))

you do C-x 5 2 then C-h i and finally q, the second frame will stay
around and show *scratch*.  Alternatively, you can evaluate

(custom-set-variables
  '(display-buffer-alist '(("\\*info\\*" display-buffer-same-window))))

do C-x 5 2 then C-h i and finally C-u q which also kills the *info*
buffer.  These are the behaviors needed for handling the Bug#12764
scenario.

If instead you evaluate

(custom-set-variables
  '(display-buffer-alist '(("\\*info\\*" display-buffer-pop-up-frame)))
  '(frame-auto-hide-function 'delete-frame))

and then do C-h i followed by q, the second frame gets deleted.
Alternatively you can get the same visual behavior via

(custom-set-variables
  '(display-buffer-alist '(("\\*info\\*" display-buffer-pop-up-frame))))

followed by C-h i and C-u q where the latter also kills the *info*
buffer.

In the thread of Bug#12764 I argued that deleting the frame would make
sense in the first scenario too.  But then we would have to look into
the history of the last window on that frame to decide whether the
buffer it previously showed should be restored or not.  Even if there is
no previous buffer for that window we should at least optionally allow
the frame to stay alive.

martin




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#59862; Package emacs. Full text available.

Message received at submit <at> debbugs.gnu.org:


Received: (at submit) by debbugs.gnu.org; 16 Jul 2024 08:22:57 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Tue Jul 16 04:22:57 2024
Received: from localhost ([127.0.0.1]:60927 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1sTdSb-0003ZP-3s
	for submit <at> debbugs.gnu.org; Tue, 16 Jul 2024 04:22:57 -0400
Received: from lists.gnu.org ([209.51.188.17]:48430)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <rudalics@HIDDEN>) id 1sTdSY-0003ZG-RG
 for submit <at> debbugs.gnu.org; Tue, 16 Jul 2024 04:22:55 -0400
Received: from eggs.gnu.org ([2001:470:142:3::10])
 by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.90_1) (envelope-from <rudalics@HIDDEN>) id 1sTdSW-0004HN-1k
 for bug-gnu-emacs@HIDDEN; Tue, 16 Jul 2024 04:22:52 -0400
Received: from mout.gmx.net ([212.227.15.19])
 by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.90_1) (envelope-from <rudalics@HIDDEN>) id 1sTdSU-0000Xo-38
 for bug-gnu-emacs@HIDDEN; Tue, 16 Jul 2024 04:22:51 -0400
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmx.at;
 s=s31663417; t=1721118159; x=1721722959; i=rudalics@HIDDEN;
 bh=ygpYlppB5HhVCRMnG3MPwCjQwpYhTW0+IXQ/+ZuEW+k=;
 h=X-UI-Sender-Class:Message-ID:Date:MIME-Version:Subject:To:Cc:
 References:From:In-Reply-To:Content-Type:
 Content-Transfer-Encoding:cc:content-transfer-encoding:
 content-type:date:from:message-id:mime-version:reply-to:subject:
 to;
 b=mxBpbgx5VoOfbIUvc6Z+H5VeKf2zv6eTUF14qu3j8T5QZpI/C13QAtV01ZsOC/YX
 6jFLBu5jD9ZV0GnRy1m8qg7+eH0uh7McV3oDVq4KfoMOaDhIWsiyyMy2cXfBD1tRQ
 qXF8mP1z08prlTGaOgqWns6199uIxQdM6/LQwWA2yv2DfqCOuWDcL4ktQeIwoEQCM
 z4QvoXQkuAvFNnzlXfwX9vZjLK5yEdNV56ACgWKbrw764uSNh/j1QWJhol59utf/6
 dkPg+h4bEwFHRO8X0Mj6xlZovB7ngNdbWmOvoZ10Hw0/FQMSjw33uPqBYCgmxQJt6
 XX+uDl0uDUyak+sYFg==
X-UI-Sender-Class: 724b4f7f-cbec-4199-ad4e-598c01a50d3a
Received: from [192.168.31.113] ([46.125.249.102]) by mail.gmx.net (mrgmx004
 [212.227.17.190]) with ESMTPSA (Nemesis) id 1MDQeK-1sakTA03ny-002Aig; Tue, 16
 Jul 2024 10:22:38 +0200
Message-ID: <ee4e7e95-53d3-4b01-bd1a-ae2cd77352b2@HIDDEN>
Date: Tue, 16 Jul 2024 10:22:34 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: bug#59862: quit-restore per window buffer
To: =?UTF-8?Q?Bj=C3=B6rn_Bidar?= <bjorn.bidar@HIDDEN>,
 martin rudalics via Bug reports for GNU "Emacs, " the Swiss army knife of text
 editors <bug-gnu-emacs@HIDDEN>
References: <86fsds8mlm.fsf@HIDDEN>
 <f9eb9bae-6275-4448-9590-e72a56064220@HIDDEN>
 <86plsxmc6d.fsf@HIDDEN> <86r0d4ezdc.fsf@HIDDEN>
 <0d01a044-d7d6-456a-9ba9-d987faad4332@HIDDEN>
 <86frthjq4y.fsf@HIDDEN>
 <743dc4dd-cf09-4c5e-9209-b63a47480e0b@HIDDEN>
 <86msnne7ut.fsf@HIDDEN>
 <ad0bfe5d-817b-4d11-b82f-90c5a76b4c81@HIDDEN>
 <86plsgrfvu.fsf@HIDDEN>
 <ca1388d2-3481-49c4-8721-42792a399340@HIDDEN>
 <86le2b12ni.fsf@HIDDEN>
 <a972688e-01f6-428e-9dc0-67a45bc9a770@HIDDEN>
 <86y169kafb.fsf@HIDDEN>
 <61c4f245-3dd8-4e24-9c84-7ddd4cfe3c49@HIDDEN>
 <86a5ioo269.fsf@HIDDEN>
 <eb3b984d-dd6a-48e3-88c8-ef2cd146b0b7@HIDDEN>
 <867cdr3xs7.fsf@HIDDEN>
 <3f399d4f-3dd2-4624-b857-e198f70b5565@HIDDEN>
 <86h6csct0w.fsf@HIDDEN>
 <1fb1cc7a-b8ea-4d6d-ac6d-19abffef44f3@HIDDEN> <87frs9kgve.fsf@>
Content-Language: en-US
From: martin rudalics <rudalics@HIDDEN>
In-Reply-To: <87frs9kgve.fsf@>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
X-Provags-ID: V03:K1:FiIVgqZdbamrxEH/JE1d7rT99w4pw3n6Wv5EX9CgjcEb0agG1ir
 AzHyHT+QH+GXd5CxGSoGISAGwhSTl3AVBbCXsoDn9Ku0smiZXjfyCG68/87VSYXs1Gt9vzb
 Cb2ccuowfpGI78yxu6pM8KkZD7YgY2+vqrwKlsWwhicZF3Z5IOJLp25VcQa8s1hgjuYptDI
 AvXrIM6J+jKQkmZXzpqtQ==
X-Spam-Flag: NO
UI-OutboundReport: notjunk:1;M01:P0:z0ymmL1P0Qc=;zIjQWwrUIapC4YxZPgZgRPpzBbY
 ZS4EWi+3iumQnuFiWCSZgOyhCwNH0nPfZu3kxrW1zjp58opj+IYLYYStViW3AKq3OepC7dKUQ
 RZNjthA018AoY2ItUsV3IX0HFbRj0AtSfl/YvHbBU2fXam8LCjR++sHt+JYeooKg7IoLPrQAA
 x349qWiD1Ig52jX0rAEsqkvqyroLGWNsrk+Z4OazEDIYuR8M1+MKV+b0M+Uf5U4nL/q0rZRgd
 isGoqXrRvLamgjQolDGl7ecQfUjF2OdsggdmVnhmCQ/eYLNC0v60inP4a8M4XWa57G0pT7ujG
 CRwcOkV8HIDuMu6H26Eexpqn6rkPFxMyipT4zciEedxXqt+A2F19XbRS/UDzeUWo1vCiXhvEo
 Esmxz/QJ1JUeDMDMX7yoXbC0gHlI/M55OVByj245PmHigYImZsfYO1b1uyPnUk431tBlKNGp3
 t9wgECbAt2i2W7+o4aZ8SbeGXmthf/YM4oMoP86fodByKqVbViL07F9y1KDCxj/rWyM+GoCSg
 Z6riEYkENtNdp3gBuqdzmc0Mdq0ulLinhjBi1n9/4rIZDG+vX3LkKibrjK31xmSi+RzkCRCmS
 nRUZOXFRjxub+9GG+gwJ5cAJHuxCeUG1d9j67qhCQMzRaFMq/X+MFPywFQv/5AEAMZcThohQF
 54pjG8dMNMOf2506PsMfcvn/EFupstcCsVv2WWF76M3ti8gaOO5L4eqxv7Qd7x+n6qUAiC1wk
 h5oq1r0rgUmhg5lMSBaErfCImhES7SppS35B2anOtOWul0927KmGhGRpnp9wHvZYYpuFyDFB+
 koCjl78orrT5/I0x/Wcl5BZR+qrNifmAjqauBvvd3VGfM=
Received-SPF: pass client-ip=212.227.15.19; envelope-from=rudalics@HIDDEN;
 helo=mout.gmx.net
X-Spam_score_int: -27
X-Spam_score: -2.8
X-Spam_bar: --
X-Spam_report: (-2.8 / 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_LOW=-0.7, SPF_HELO_NONE=0.001,
 SPF_PASS=-0.001 autolearn=ham autolearn_force=no
X-Spam_action: no action
X-Spam-Score: -1.3 (-)
X-Debbugs-Envelope-To: submit
Cc: 59862 <at> debbugs.gnu.org, Juri Linkov <juri@HIDDEN>
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -2.3 (--)

 > What about use cases where the frame was only spawned for that
 > particular window?
 >
 > For a frame focused setup frames mostly contain only one window and
 > don't close when the only window in it is killed

Do you mean "window" or "buffer" here?  C-x 0 in a frame containing only
one window gets you an "Attempt to delete minibuffer or sole ordinary
window" error.  I suppose you meant "buffer" here.

 > leaving a window with
 > the scratch buffer around.

Let's distinguish two different cases: If, after evaluating

(custom-set-variables
  '(display-buffer-alist '(("\\*info\\*" display-buffer-same-window)))
  '(frame-auto-hide-function 'delete-frame))

you do C-x 5 2 then C-h i and finally q, the second frame will stay
around and show *scratch*.  Alternatively, you can evaluate

(custom-set-variables
  '(display-buffer-alist '(("\\*info\\*" display-buffer-same-window))))

do C-x 5 2 then C-h i and finally C-u q which also kills the *info*
buffer.  These are the behaviors needed for handling the Bug#12764
scenario.

If instead you evaluate

(custom-set-variables
  '(display-buffer-alist '(("\\*info\\*" display-buffer-pop-up-frame)))
  '(frame-auto-hide-function 'delete-frame))

and then do C-h i followed by q, the second frame gets deleted.
Alternatively you can get the same visual behavior via

(custom-set-variables
  '(display-buffer-alist '(("\\*info\\*" display-buffer-pop-up-frame))))

followed by C-h i and C-u q where the latter also kills the *info*
buffer.

In the thread of Bug#12764 I argued that deleting the frame would make
sense in the first scenario too.  But then we would have to look into
the history of the last window on that frame to decide whether the
buffer it previously showed should be restored or not.  Even if there is
no previous buffer for that window we should at least optionally allow
the frame to stay alive.

martin




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#59862; Package emacs. Full text available.

Message received at 59862 <at> debbugs.gnu.org:


Received: (at 59862) by debbugs.gnu.org; 16 Jul 2024 06:09:37 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Tue Jul 16 02:09:37 2024
Received: from localhost ([127.0.0.1]:60840 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1sTbNY-0008Sj-NH
	for submit <at> debbugs.gnu.org; Tue, 16 Jul 2024 02:09:37 -0400
Received: from thaodan.de ([185.216.177.71]:51944)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <bjorn.bidar@HIDDEN>) id 1sTbNX-0008SP-AV
 for 59862 <at> debbugs.gnu.org; Tue, 16 Jul 2024 02:09:35 -0400
Received: from odin (dsl-trebng12-50dc75-154.dhcp.inet.fi [80.220.117.154])
 by thaodan.de (Postfix) with ESMTPSA id 785A1D00076;
 Tue, 16 Jul 2024 09:09:26 +0300 (EEST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=thaodan.de; s=mail;
 t=1721110166; bh=TPrdyD0RjZzo6X6eYuVTX/2bo5vFPECue3U8Ni72DVM=;
 h=From:To:Cc:Subject:In-Reply-To:References:Date;
 b=MjETrgTesnVrgIMZRE/v0K+e2ipDpFmBVaD0lASr3DtKRNjEjsKuVmrjtAyg0FYDr
 2NV94V7X3r/4oJKv3ClEg503Y1G5yqSB2Nf21yK8OoZQl3g/+daY9M/+obmuKutaNh
 69Gc1LRhJAolslVDDO3FUndthGnmPES5HGSxsw0y6ApSi5N4RsLUP2j3LAOPfWjEVt
 qERTFw833JxCeYiIyNCUmM/ILnBA0lz16jXxQateV0T6ooF7/UNm2MYyoGoTnj3F8o
 FN8bvELDSABA9+ZEP0Zc8I0bEYREJMp9ZL3OpjtSXVRaL5Fgs2nKEf+NvX/r/x66T+
 2M66xMTRXaZpYrWg7gog3XD3Qfwei0LImL3MCpBa7YpHntoe4+9iKFUimLPuQ/baVR
 BGXAOZD40fv32YfJRkjHdkA3CM0t83hotpWyIvyyhmpo0WhFwd0+aT7/u6cpGD+e1/
 f/BMalIiJ28Uqt9mUrqcRzJroS/Alwt2LTkM5PVEqttMOX2QLXAnM+XlswxAMvYhOx
 HfjRJFzPcf2VIZM/0LujOrrtgD/ZMrwwsLBKExwLp6rBVOkXo27XZUnU61kgEkW9Uq
 YpZmgnIIHYGN5a1wyMKZTrf4Zqdg6LPRLeL/xTkHd+vGQWcD6iSaTAfQl5rW3cllqX
 6FiRhDAsdvrwfL5PJIH2vaM8=
From: =?utf-8?Q?Bj=C3=B6rn?= Bidar <bjorn.bidar@HIDDEN>
To: martin rudalics via "Bug reports for GNU Emacs, the Swiss army knife of
 text editors" <bug-gnu-emacs@HIDDEN>
Subject: Re: bug#59862: quit-restore per window buffer
In-Reply-To: <1fb1cc7a-b8ea-4d6d-ac6d-19abffef44f3@HIDDEN> (martin rudalics
 via's message of "Mon, 15 Jul 2024 09:32:33 +0200")
References: <86fsds8mlm.fsf@HIDDEN>
 <f9eb9bae-6275-4448-9590-e72a56064220@HIDDEN>
 <86plsxmc6d.fsf@HIDDEN> <86r0d4ezdc.fsf@HIDDEN>
 <0d01a044-d7d6-456a-9ba9-d987faad4332@HIDDEN>
 <86frthjq4y.fsf@HIDDEN>
 <743dc4dd-cf09-4c5e-9209-b63a47480e0b@HIDDEN>
 <86msnne7ut.fsf@HIDDEN>
 <ad0bfe5d-817b-4d11-b82f-90c5a76b4c81@HIDDEN>
 <86plsgrfvu.fsf@HIDDEN>
 <ca1388d2-3481-49c4-8721-42792a399340@HIDDEN>
 <86le2b12ni.fsf@HIDDEN>
 <a972688e-01f6-428e-9dc0-67a45bc9a770@HIDDEN>
 <86y169kafb.fsf@HIDDEN>
 <61c4f245-3dd8-4e24-9c84-7ddd4cfe3c49@HIDDEN>
 <86a5ioo269.fsf@HIDDEN>
 <eb3b984d-dd6a-48e3-88c8-ef2cd146b0b7@HIDDEN>
 <867cdr3xs7.fsf@HIDDEN>
 <3f399d4f-3dd2-4624-b857-e198f70b5565@HIDDEN>
 <86h6csct0w.fsf@HIDDEN>
 <1fb1cc7a-b8ea-4d6d-ac6d-19abffef44f3@HIDDEN>
Autocrypt: addr=bjorn.bidar@HIDDEN; prefer-encrypt=nopreference; keydata=
 mDMEZNfpPhYJKwYBBAHaRw8BAQdACBEmr+0xwIIHZfIDlZmm7sa+lHHSb0g9FZrN6qE6ru60JUJq
 w7ZybiBCaWRhciA8Ympvcm4uYmlkYXJAdGhhb2Rhbi5kZT6IlgQTFgoAPgIbAwULCQgHAgIiAgYV
 CgkICwIEFgIDAQIeBwIXgBYhBFHxdut1RzAepymoq1wbdKFlHF9oBQJk1/YmAhkBAAoJEFwbdKFl
 HF9oB9cBAJoIIGQKXm4cpap+Flxc/EGnYl0123lcEyzuduqvlDT0AQC3OlFKm/OiqJ8IMTrzJRZ8
 phFssTkSrrFXnM2jm5PYDoiTBBMWCgA7FiEEUfF263VHMB6nKairXBt0oWUcX2gFAmTX6T4CGwMF
 CwkIBwICIgIGFQoJCAsCBBYCAwECHgcCF4AACgkQXBt0oWUcX2hbCQEAtru7kvM8hi8zo6z9ux2h
 K+B5xViKuo7Z8K3IXuK5ugwA+wUfKzomzdBPhfxDsqLcEziGRxoyx0Q3ld9aermBUccHtBxCasO2
 cm4gQmlkYXIgPG1lQHRoYW9kYW4uZGU+iJMEExYKADsCGwMFCwkIBwICIgIGFQoJCAsCBBYCAwEC
 HgcCF4AWIQRR8XbrdUcwHqcpqKtcG3ShZRxfaAUCZNf2FQAKCRBcG3ShZRxfaCzSAP4hZ7cSp0YN
 XYpcjHdsySh2MuBhhoPeLGXs+2kSiqBiOwD/TP8AgPEg/R+SI9GI9on7fBJJ0mp2IT8kZ2rhDOjg
 gA6IkwQTFgoAOxYhBFHxdut1RzAepymoq1wbdKFlHF9oBQJk1+ntAhsDBQsJCAcCAiICBhUKCQgL
 AgQWAgMBAh4HAheAAAoJEFwbdKFlHF9oBgwA/iQHwe0VL4Df4GGTYlNjMSHFlIkBmN4UfYGLYj3E
 TrOUAQC51M+M3cjsL8WHdpBz6VAo6df9d+rVwhQ9vQuFHqevArg4BGTX6T4SCisGAQQBl1UBBQEB
 B0Cbohc3JEfn005/cm0AOGjSsW1ZxAkgaoVNjbpqk4MgNAMBCAeIeAQYFgoAIBYhBFHxdut1RzAe
 pymoq1wbdKFlHF9oBQJk1+k+AhsMAAoJEFwbdKFlHF9ooHABAKGmrGBic/Vys3BBrOQiRB3Z7izO
 HwhqTRpAqFZtXS2nAQDZhp/5aYw1TZjTzkm1KVt9QiYnjd/MvxRE9iaY6x4mDbgzBGTX6T4WCSsG
 AQQB2kcPAQEHQAgRJq/tMcCCB2XyA5WZpu7GvpRx0m9IPRWazeqhOq7uiO8EGBYKACAWIQRR8Xbr
 dUcwHqcpqKtcG3ShZRxfaAUCZNf71AIbIgCBCRBcG3ShZRxfaHYgBBkWCgAdFiEEUfF263VHMB6n
 KairXBt0oWUcX2gFAmTX+9QACgkQXBt0oWUcX2jeSwD6AtWn0cuo8IF35YRo4o3cDRJnUfJnbvJy
 GxyCDThR+zYBAKG6/jdwmZkBQZKslnDAbMMd2WfiZZT5JW3IWC4EaKMO7HkBAKYPGZ3UbfkRvfFK
 S+pQ9CgtNfkSJQBtT1Ob7Y6nsacgAQCpyXN7yppmhW/oBgivITPy9Lkg+V4NK9WZYZCU9Q7LBA==
Date: Tue, 16 Jul 2024 09:09:25 +0300
Message-ID: <87frs9kgve.fsf@>
User-Agent: Gnus/5.13 (Gnus v5.13)
MIME-Version: 1.0
Content-Type: text/plain
X-Spam-Score: 1.2 (+)
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:  martin rudalics via "Bug reports for GNU Emacs, the Swiss
 army knife of text editors" <bug-gnu-emacs@HIDDEN> writes: >>> This will
 keep the frame around so >>> Bu#12764 is not affected and the normal behavior
 of C-h i followed by >>> C-h e is not affected either unless a user deleted
 *scratch* in between. >> >> Sorr [...] 
 Content analysis details:   (1.2 points, 10.0 required)
 pts rule name              description
 ---- ---------------------- --------------------------------------------------
 -0.0 SPF_HELO_PASS          SPF: HELO matches SPF record
 -0.0 SPF_PASS               SPF: sender matches SPF record
 1.2 INVALID_MSGID          Message-Id is not valid, according to RFC 2822
X-Debbugs-Envelope-To: 59862
Cc: martin rudalics <rudalics@HIDDEN>, 59862 <at> debbugs.gnu.org,
 Juri Linkov <juri@HIDDEN>
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: 0.2 (/)

martin rudalics via "Bug reports for GNU Emacs, the Swiss army knife of
text editors" <bug-gnu-emacs@HIDDEN> writes:

>>> This will keep the frame around so
>>> Bu#12764 is not affected and the normal behavior of C-h i followed by
>>> C-h e is not affected either unless a user deleted *scratch* in between.
>>
>> Sorry, I know nothing about the frame case.
>
> When creating a frame as part of 'display-buffer', quitting the sole
> window of that frame should delete the frame.  When creating a frame
> separately and calling 'display-buffer' to show a buffer in its only
> window, quitting the window should not delete the frame even if that
> window has no previous buffer.  See Bug#12764 for the details.

What about use cases where the frame was only spawned for that
particular window?

For a frame focused setup frames mostly contain only one window and
don't close when the only window in it is killed leaving a window with
the scratch buffer around.




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#59862; Package emacs. Full text available.

Message received at submit <at> debbugs.gnu.org:


Received: (at submit) by debbugs.gnu.org; 16 Jul 2024 06:09:42 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Tue Jul 16 02:09:42 2024
Received: from localhost ([127.0.0.1]:60842 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1sTbNe-0008Sw-2F
	for submit <at> debbugs.gnu.org; Tue, 16 Jul 2024 02:09:42 -0400
Received: from lists.gnu.org ([209.51.188.17]:56800)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <bjorn.bidar@HIDDEN>) id 1sTbNY-0008Sc-8I
 for submit <at> debbugs.gnu.org; Tue, 16 Jul 2024 02:09:36 -0400
Received: from eggs.gnu.org ([2001:470:142:3::10])
 by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.90_1) (envelope-from <bjorn.bidar@HIDDEN>)
 id 1sTbNV-0008Oq-Je
 for bug-gnu-emacs@HIDDEN; Tue, 16 Jul 2024 02:09:33 -0400
Received: from thaodan.de ([2a03:4000:4f:f15::1])
 by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.90_1) (envelope-from <bjorn.bidar@HIDDEN>)
 id 1sTbNT-0007y4-KE
 for bug-gnu-emacs@HIDDEN; Tue, 16 Jul 2024 02:09:33 -0400
Received: from odin (dsl-trebng12-50dc75-154.dhcp.inet.fi [80.220.117.154])
 by thaodan.de (Postfix) with ESMTPSA id 785A1D00076;
 Tue, 16 Jul 2024 09:09:26 +0300 (EEST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=thaodan.de; s=mail;
 t=1721110166; bh=TPrdyD0RjZzo6X6eYuVTX/2bo5vFPECue3U8Ni72DVM=;
 h=From:To:Cc:Subject:In-Reply-To:References:Date;
 b=MjETrgTesnVrgIMZRE/v0K+e2ipDpFmBVaD0lASr3DtKRNjEjsKuVmrjtAyg0FYDr
 2NV94V7X3r/4oJKv3ClEg503Y1G5yqSB2Nf21yK8OoZQl3g/+daY9M/+obmuKutaNh
 69Gc1LRhJAolslVDDO3FUndthGnmPES5HGSxsw0y6ApSi5N4RsLUP2j3LAOPfWjEVt
 qERTFw833JxCeYiIyNCUmM/ILnBA0lz16jXxQateV0T6ooF7/UNm2MYyoGoTnj3F8o
 FN8bvELDSABA9+ZEP0Zc8I0bEYREJMp9ZL3OpjtSXVRaL5Fgs2nKEf+NvX/r/x66T+
 2M66xMTRXaZpYrWg7gog3XD3Qfwei0LImL3MCpBa7YpHntoe4+9iKFUimLPuQ/baVR
 BGXAOZD40fv32YfJRkjHdkA3CM0t83hotpWyIvyyhmpo0WhFwd0+aT7/u6cpGD+e1/
 f/BMalIiJ28Uqt9mUrqcRzJroS/Alwt2LTkM5PVEqttMOX2QLXAnM+XlswxAMvYhOx
 HfjRJFzPcf2VIZM/0LujOrrtgD/ZMrwwsLBKExwLp6rBVOkXo27XZUnU61kgEkW9Uq
 YpZmgnIIHYGN5a1wyMKZTrf4Zqdg6LPRLeL/xTkHd+vGQWcD6iSaTAfQl5rW3cllqX
 6FiRhDAsdvrwfL5PJIH2vaM8=
From: =?utf-8?Q?Bj=C3=B6rn?= Bidar <bjorn.bidar@HIDDEN>
To: martin rudalics via "Bug reports for GNU Emacs, the Swiss army knife of
 text editors" <bug-gnu-emacs@HIDDEN>
Subject: Re: bug#59862: quit-restore per window buffer
In-Reply-To: <1fb1cc7a-b8ea-4d6d-ac6d-19abffef44f3@HIDDEN> (martin rudalics
 via's message of "Mon, 15 Jul 2024 09:32:33 +0200")
References: <86fsds8mlm.fsf@HIDDEN>
 <f9eb9bae-6275-4448-9590-e72a56064220@HIDDEN>
 <86plsxmc6d.fsf@HIDDEN> <86r0d4ezdc.fsf@HIDDEN>
 <0d01a044-d7d6-456a-9ba9-d987faad4332@HIDDEN>
 <86frthjq4y.fsf@HIDDEN>
 <743dc4dd-cf09-4c5e-9209-b63a47480e0b@HIDDEN>
 <86msnne7ut.fsf@HIDDEN>
 <ad0bfe5d-817b-4d11-b82f-90c5a76b4c81@HIDDEN>
 <86plsgrfvu.fsf@HIDDEN>
 <ca1388d2-3481-49c4-8721-42792a399340@HIDDEN>
 <86le2b12ni.fsf@HIDDEN>
 <a972688e-01f6-428e-9dc0-67a45bc9a770@HIDDEN>
 <86y169kafb.fsf@HIDDEN>
 <61c4f245-3dd8-4e24-9c84-7ddd4cfe3c49@HIDDEN>
 <86a5ioo269.fsf@HIDDEN>
 <eb3b984d-dd6a-48e3-88c8-ef2cd146b0b7@HIDDEN>
 <867cdr3xs7.fsf@HIDDEN>
 <3f399d4f-3dd2-4624-b857-e198f70b5565@HIDDEN>
 <86h6csct0w.fsf@HIDDEN>
 <1fb1cc7a-b8ea-4d6d-ac6d-19abffef44f3@HIDDEN>
Autocrypt: addr=bjorn.bidar@HIDDEN; prefer-encrypt=nopreference; keydata=
 mDMEZNfpPhYJKwYBBAHaRw8BAQdACBEmr+0xwIIHZfIDlZmm7sa+lHHSb0g9FZrN6qE6ru60JUJq
 w7ZybiBCaWRhciA8Ympvcm4uYmlkYXJAdGhhb2Rhbi5kZT6IlgQTFgoAPgIbAwULCQgHAgIiAgYV
 CgkICwIEFgIDAQIeBwIXgBYhBFHxdut1RzAepymoq1wbdKFlHF9oBQJk1/YmAhkBAAoJEFwbdKFl
 HF9oB9cBAJoIIGQKXm4cpap+Flxc/EGnYl0123lcEyzuduqvlDT0AQC3OlFKm/OiqJ8IMTrzJRZ8
 phFssTkSrrFXnM2jm5PYDoiTBBMWCgA7FiEEUfF263VHMB6nKairXBt0oWUcX2gFAmTX6T4CGwMF
 CwkIBwICIgIGFQoJCAsCBBYCAwECHgcCF4AACgkQXBt0oWUcX2hbCQEAtru7kvM8hi8zo6z9ux2h
 K+B5xViKuo7Z8K3IXuK5ugwA+wUfKzomzdBPhfxDsqLcEziGRxoyx0Q3ld9aermBUccHtBxCasO2
 cm4gQmlkYXIgPG1lQHRoYW9kYW4uZGU+iJMEExYKADsCGwMFCwkIBwICIgIGFQoJCAsCBBYCAwEC
 HgcCF4AWIQRR8XbrdUcwHqcpqKtcG3ShZRxfaAUCZNf2FQAKCRBcG3ShZRxfaCzSAP4hZ7cSp0YN
 XYpcjHdsySh2MuBhhoPeLGXs+2kSiqBiOwD/TP8AgPEg/R+SI9GI9on7fBJJ0mp2IT8kZ2rhDOjg
 gA6IkwQTFgoAOxYhBFHxdut1RzAepymoq1wbdKFlHF9oBQJk1+ntAhsDBQsJCAcCAiICBhUKCQgL
 AgQWAgMBAh4HAheAAAoJEFwbdKFlHF9oBgwA/iQHwe0VL4Df4GGTYlNjMSHFlIkBmN4UfYGLYj3E
 TrOUAQC51M+M3cjsL8WHdpBz6VAo6df9d+rVwhQ9vQuFHqevArg4BGTX6T4SCisGAQQBl1UBBQEB
 B0Cbohc3JEfn005/cm0AOGjSsW1ZxAkgaoVNjbpqk4MgNAMBCAeIeAQYFgoAIBYhBFHxdut1RzAe
 pymoq1wbdKFlHF9oBQJk1+k+AhsMAAoJEFwbdKFlHF9ooHABAKGmrGBic/Vys3BBrOQiRB3Z7izO
 HwhqTRpAqFZtXS2nAQDZhp/5aYw1TZjTzkm1KVt9QiYnjd/MvxRE9iaY6x4mDbgzBGTX6T4WCSsG
 AQQB2kcPAQEHQAgRJq/tMcCCB2XyA5WZpu7GvpRx0m9IPRWazeqhOq7uiO8EGBYKACAWIQRR8Xbr
 dUcwHqcpqKtcG3ShZRxfaAUCZNf71AIbIgCBCRBcG3ShZRxfaHYgBBkWCgAdFiEEUfF263VHMB6n
 KairXBt0oWUcX2gFAmTX+9QACgkQXBt0oWUcX2jeSwD6AtWn0cuo8IF35YRo4o3cDRJnUfJnbvJy
 GxyCDThR+zYBAKG6/jdwmZkBQZKslnDAbMMd2WfiZZT5JW3IWC4EaKMO7HkBAKYPGZ3UbfkRvfFK
 S+pQ9CgtNfkSJQBtT1Ob7Y6nsacgAQCpyXN7yppmhW/oBgivITPy9Lkg+V4NK9WZYZCU9Q7LBA==
Date: Tue, 16 Jul 2024 09:09:25 +0300
Message-ID: <87frs9kgve.fsf@>
User-Agent: Gnus/5.13 (Gnus v5.13)
MIME-Version: 1.0
Content-Type: text/plain
Received-SPF: pass client-ip=2a03:4000:4f:f15::1;
 envelope-from=bjorn.bidar@HIDDEN; helo=thaodan.de
X-Spam_score_int: -14
X-Spam_score: -1.5
X-Spam_bar: -
X-Spam_report: (-1.5 / 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, INVALID_MSGID=0.568,
 SPF_HELO_PASS=-0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no
X-Spam_action: no action
X-Spam-Score: -0.2 (/)
X-Debbugs-Envelope-To: submit
Cc: martin rudalics <rudalics@HIDDEN>, 59862 <at> debbugs.gnu.org,
 Juri Linkov <juri@HIDDEN>
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.2 (-)

martin rudalics via "Bug reports for GNU Emacs, the Swiss army knife of
text editors" <bug-gnu-emacs@HIDDEN> writes:

>>> This will keep the frame around so
>>> Bu#12764 is not affected and the normal behavior of C-h i followed by
>>> C-h e is not affected either unless a user deleted *scratch* in between.
>>
>> Sorry, I know nothing about the frame case.
>
> When creating a frame as part of 'display-buffer', quitting the sole
> window of that frame should delete the frame.  When creating a frame
> separately and calling 'display-buffer' to show a buffer in its only
> window, quitting the window should not delete the frame even if that
> window has no previous buffer.  See Bug#12764 for the details.

What about use cases where the frame was only spawned for that
particular window?

For a frame focused setup frames mostly contain only one window and
don't close when the only window in it is killed leaving a window with
the scratch buffer around.




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#59862; Package emacs. Full text available.

Message received at 59862 <at> debbugs.gnu.org:


Received: (at 59862) by debbugs.gnu.org; 15 Jul 2024 07:32:45 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Mon Jul 15 03:32:45 2024
Received: from localhost ([127.0.0.1]:58943 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1sTGCS-0000Ge-VV
	for submit <at> debbugs.gnu.org; Mon, 15 Jul 2024 03:32:45 -0400
Received: from mout.gmx.net ([212.227.15.19]:59733)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <rudalics@HIDDEN>) id 1sTGCP-0000Es-Ub
 for 59862 <at> debbugs.gnu.org; Mon, 15 Jul 2024 03:32:42 -0400
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmx.at;
 s=s31663417; t=1721028753; x=1721633553; i=rudalics@HIDDEN;
 bh=tgiaPf+BkK6UtK5G/12lIPhCZEEZdNkcErQizE31sAc=;
 h=X-UI-Sender-Class:Message-ID:Date:MIME-Version:Subject:To:Cc:
 References:From:In-Reply-To:Content-Type:
 Content-Transfer-Encoding:cc:content-transfer-encoding:
 content-type:date:from:message-id:mime-version:reply-to:subject:
 to;
 b=OwgPlA2YUhDp6U3lV7OlljXayrg7MWX8b9JCfJhTP1gN/0TLm2plF5IhXMMkCIE/
 NsNBjXs1Hv9iuE8oKyldQTvbBCylmpuGYf35Hzwv49Tovw5A5ja2+BROQIPMIc/R1
 YGL3/yjqfJAGkjKySv050Ubywc8LYAsi6RMpYiH4+FZXo5FhnnPPUvlmXBjRHo42E
 jhoEOjlJu+TU2UIqM42Fdl5vma8ul9IJ/ZgcbzvRL9hLe8Y3Vv9u+csdJixMRdwd1
 AGsrPRQ3WweKljMtA6A9HL+yL8RmE0jgPEvorWb8008ymA9reHBqC1fJoI2GgJpms
 a47CXXg84uT0+qQsmg==
X-UI-Sender-Class: 724b4f7f-cbec-4199-ad4e-598c01a50d3a
Received: from [192.168.31.113] ([46.125.249.67]) by mail.gmx.net (mrgmx004
 [212.227.17.190]) with ESMTPSA (Nemesis) id 1MbirE-1rvabn3B66-00mAmH; Mon, 15
 Jul 2024 09:32:33 +0200
Message-ID: <1fb1cc7a-b8ea-4d6d-ac6d-19abffef44f3@HIDDEN>
Date: Mon, 15 Jul 2024 09:32:33 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: bug#59862: quit-restore per window buffer
To: Juri Linkov <juri@HIDDEN>
References: <86fsds8mlm.fsf@HIDDEN>
 <8243325e-ed03-4e9e-b64f-c8225fb6dc60@HIDDEN>
 <18173da7-32e1-4f14-bbea-9a8fa66af7dd@HIDDEN>
 <f9eb9bae-6275-4448-9590-e72a56064220@HIDDEN>
 <86plsxmc6d.fsf@HIDDEN> <86r0d4ezdc.fsf@HIDDEN>
 <0d01a044-d7d6-456a-9ba9-d987faad4332@HIDDEN>
 <86frthjq4y.fsf@HIDDEN>
 <743dc4dd-cf09-4c5e-9209-b63a47480e0b@HIDDEN>
 <86msnne7ut.fsf@HIDDEN>
 <ad0bfe5d-817b-4d11-b82f-90c5a76b4c81@HIDDEN>
 <86plsgrfvu.fsf@HIDDEN>
 <ca1388d2-3481-49c4-8721-42792a399340@HIDDEN>
 <86le2b12ni.fsf@HIDDEN>
 <a972688e-01f6-428e-9dc0-67a45bc9a770@HIDDEN>
 <86y169kafb.fsf@HIDDEN>
 <61c4f245-3dd8-4e24-9c84-7ddd4cfe3c49@HIDDEN>
 <86a5ioo269.fsf@HIDDEN>
 <eb3b984d-dd6a-48e3-88c8-ef2cd146b0b7@HIDDEN>
 <867cdr3xs7.fsf@HIDDEN>
 <3f399d4f-3dd2-4624-b857-e198f70b5565@HIDDEN>
 <86h6csct0w.fsf@HIDDEN>
Content-Language: en-US
From: martin rudalics <rudalics@HIDDEN>
In-Reply-To: <86h6csct0w.fsf@HIDDEN>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
X-Provags-ID: V03:K1:Birs+mARIjxxDqDkPZd0AKM2/KGdkBIMvwvUQ6psGjfLdMnup+B
 UPTgJNOoWqZUn9RrTYVBCpBfOQVBpcTmLLPCPmu1HZEWnev7zC68fgkgLko3fbpW6e3z52R
 5G3ew4A+kIEfN79xD98ZQB16ZLQtV3hS1HImxbepLgcCQNsLy1nuCYWC9QjZQEuAVWjIQ+I
 4TaHYi+J202MA3m4/PdCg==
X-Spam-Flag: NO
UI-OutboundReport: notjunk:1;M01:P0:ILn3KdyyuIw=;vzBG35+rqQm372uEaLjbcvC2d1X
 Pc44UJkE5CUzjnm6Xc5xBl9hD2xdI5yehhdIv5j/RaA6o3b8JL3ibcS1ETbsNMB8vWuhZazmD
 t/QKsTou47b1FUnrMIYsoZXE75jDgYDwtNfj0vOYMB0Xx8IICsdHiIIp9mdNvNlRTHmY/75uU
 D2kHm5vBcRbOplWcD2oVDZd+Uv6WIGppJ8uW4SyeQUDMn0RNhpTxP0cUr1CtzzAVpwPNTMHys
 zokW+Qawn4j+/94UuTsJYED8j9tl5Y+ID6tdJcUYgZr6q6HSpwif9ne6rrstmQ5UaO538RcUY
 rrkjvwjt+YAdVZi0Yk14X6P47tofjljVFTpwJzuwgiLy0BZ4DuY3B4BboyCMaWRa5k5fQWwIe
 YFzZXacV3oaAQd32fWyl6tVVpCYWJ4cfYmy6+0bSkdbEMEBjt/HyVFm/TpQesiTuedbO1ptpP
 q4z2rfEbrZYaLawsrkD9Z+tf3wseBfQjvyvBS9Znb0U/qMKJygPndAKThvvWXmw0Cc4HresYM
 WQASG8hybRLi95L9yyPO6JOjWtK5jpS7urad9nctZe7/IoJjrpohb7ppwN7CiAPsdl8GtPPXC
 6MWAcQnHWCeYQsH437wxNEzgJ6jgSfnhgocab1g/9uicCdRgFo4RgJWo7jnqb6iu3wUy4i19B
 E8DwXQFCyk73M7FW17u4RDiSmp33XFC6XMkrQ4i4nJ+9plC7esXHpVAUsrfeqUY6MR7+5lrvw
 N5BwDBscBTxZYraDCADwqEYDrK98Fsg5ozwJIXQpKN0kBM0QMWT83G1yxwzWRMh73ekSaQM+9
 iQ1gnUZ2krCvAK/UmZjR5E8Kceq9+UTp7HcM8w05B/+Lc=
X-Spam-Score: 2.9 (++)
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:  >> This will keep the frame around so >> Bu#12764 is not
 affected and the normal behavior of C-h i followed by >> C-h e is not affected
 either unless a user deleted *scratch* in between. > > Sorry, I [...] 
 Content analysis details:   (2.9 points, 10.0 required)
 pts rule name              description
 ---- ---------------------- --------------------------------------------------
 3.6 RCVD_IN_SBL_CSS        RBL: Received via a relay in Spamhaus SBL-CSS
 [46.125.249.67 listed in zen.spamhaus.org]
 -0.7 RCVD_IN_DNSWL_LOW      RBL: Sender listed at https://www.dnswl.org/,
 low trust [212.227.15.19 listed in list.dnswl.org]
 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 (rudalics[at]gmx.at)
 -0.0 SPF_PASS               SPF: sender matches SPF record
X-Debbugs-Envelope-To: 59862
Cc: 59862 <at> debbugs.gnu.org
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: 1.9 (+)
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:  >> This will keep the frame around so >> Bu#12764 is not
   affected and the normal behavior of C-h i followed by >> C-h e is not affected
    either unless a user deleted *scratch* in between. > > Sorry, I [...] 
 
 Content analysis details:   (1.9 points, 10.0 required)
 
  pts rule name              description
 ---- ---------------------- --------------------------------------------------
 -0.7 RCVD_IN_DNSWL_LOW      RBL: Sender listed at https://www.dnswl.org/,
                             low trust
                             [212.227.15.19 listed in list.dnswl.org]
  3.6 RCVD_IN_SBL_CSS        RBL: Received via a relay in Spamhaus SBL-CSS
                             [46.125.249.67 listed in zen.spamhaus.org]
  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 (rudalics[at]gmx.at)
 -0.0 SPF_PASS               SPF: sender matches SPF record
 -1.0 MAILING_LIST_MULTI     Multiple indicators imply a widely-seen list
                             manager

 >> This will keep the frame around so
 >> Bu#12764 is not affected and the normal behavior of C-h i followed by
 >> C-h e is not affected either unless a user deleted *scratch* in between.
 >
 > Sorry, I know nothing about the frame case.

When creating a frame as part of 'display-buffer', quitting the sole
window of that frame should delete the frame.  When creating a frame
separately and calling 'display-buffer' to show a buffer in its only
window, quitting the window should not delete the frame even if that
window has no previous buffer.  See Bug#12764 for the details.

 > OTOH, I tried to add the tab case handling to the same places
 > where the frame case is handled, and everything works nicely
 > with this patch applied over your previous patches:

If nobody objects I'll install my patch next week and you can install
your changes on top of it.

martin




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#59862; Package emacs. Full text available.

Message received at 59862 <at> debbugs.gnu.org:


Received: (at 59862) by debbugs.gnu.org; 14 Jul 2024 07:51:31 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Sun Jul 14 03:51:31 2024
Received: from localhost ([127.0.0.1]:57107 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1sSu14-0003oi-WE
	for submit <at> debbugs.gnu.org; Sun, 14 Jul 2024 03:51:31 -0400
Received: from relay1-d.mail.gandi.net ([217.70.183.193]:56115)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <juri@HIDDEN>) id 1sSu12-0003oU-UK
 for 59862 <at> debbugs.gnu.org; Sun, 14 Jul 2024 03:51:29 -0400
Received: by mail.gandi.net (Postfix) with ESMTPSA id A0A2D240003;
 Sun, 14 Jul 2024 07:50:59 +0000 (UTC)
From: Juri Linkov <juri@HIDDEN>
To: martin rudalics <rudalics@HIDDEN>
Subject: Re: bug#59862: quit-restore per window buffer
In-Reply-To: <3f399d4f-3dd2-4624-b857-e198f70b5565@HIDDEN> (martin rudalics's
 message of "Fri, 12 Jul 2024 10:20:32 +0200")
Organization: LINKOV.NET
References: <86fsds8mlm.fsf@HIDDEN>
 <8243325e-ed03-4e9e-b64f-c8225fb6dc60@HIDDEN>
 <18173da7-32e1-4f14-bbea-9a8fa66af7dd@HIDDEN>
 <f9eb9bae-6275-4448-9590-e72a56064220@HIDDEN>
 <86plsxmc6d.fsf@HIDDEN> <86r0d4ezdc.fsf@HIDDEN>
 <0d01a044-d7d6-456a-9ba9-d987faad4332@HIDDEN>
 <86frthjq4y.fsf@HIDDEN>
 <743dc4dd-cf09-4c5e-9209-b63a47480e0b@HIDDEN>
 <86msnne7ut.fsf@HIDDEN>
 <ad0bfe5d-817b-4d11-b82f-90c5a76b4c81@HIDDEN>
 <86plsgrfvu.fsf@HIDDEN>
 <ca1388d2-3481-49c4-8721-42792a399340@HIDDEN>
 <86le2b12ni.fsf@HIDDEN>
 <a972688e-01f6-428e-9dc0-67a45bc9a770@HIDDEN>
 <86y169kafb.fsf@HIDDEN>
 <61c4f245-3dd8-4e24-9c84-7ddd4cfe3c49@HIDDEN>
 <86a5ioo269.fsf@HIDDEN>
 <eb3b984d-dd6a-48e3-88c8-ef2cd146b0b7@HIDDEN>
 <867cdr3xs7.fsf@HIDDEN>
 <3f399d4f-3dd2-4624-b857-e198f70b5565@HIDDEN>
Date: Sun, 14 Jul 2024 10:49:35 +0300
Message-ID: <86h6csct0w.fsf@HIDDEN>
User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/31.0.50 (x86_64-pc-linux-gnu)
MIME-Version: 1.0
Content-Type: text/plain
X-GND-Sasl: juri@HIDDEN
X-Spam-Score: -0.7 (/)
X-Debbugs-Envelope-To: 59862
Cc: 59862 <at> debbugs.gnu.org
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.7 (-)

>> Ok, I will try to move it.
>
> We could replace the
>
> 	   (or (eq (nth 1 quit-restore) 'frame)
> 	       (and (eq (nth 1 quit-restore) 'window)
> 		    ;; If the window has been created on an existing
> 		    ;; frame and ended up as the sole window on that
> 		    ;; frame, do not delete it (Bug#12764).
> 		    (not (eq window (frame-root-window window)))))
>
> clause with
>
> 	   (or (eq (nth 1 quit-restore) 'frame)
> 	       ;; If the window has been created on an existing
> 	       ;; frame and ended up as the sole window on that
> 	       ;; frame, do not delete it (Bug#12764).
> 	       (not (eq window (frame-root-window window))))
>
> with the motivation that if a window does not have a previous buffer,
> there is no reason to switch to it.  This will keep the frame around so
> Bu#12764 is not affected and the normal behavior of C-h i followed by
> C-h e is not affected either unless a user deleted *scratch* in between.

Sorry, I know nothing about the frame case.

> Try it and if it works for you I'll add it to the new patch.

OTOH, I tried to add the tab case handling to the same places
where the frame case is handled, and everything works nicely
with this patch applied over your previous patches:

diff --git a/lisp/window.el b/lisp/window.el
index 58120c919c7..82efb3c40ce 100644
--- a/lisp/window.el
+++ b/lisp/window.el
@@ -4120,6 +4120,11 @@ window-deletable-p
 
   (let ((frame (window-frame window)))
     (cond
+     ((and (eq (nth 1 (window-parameter window 'quit-restore)) 'tab)
+	   (< (seq-count (lambda (w) (window-parameter w 'quit-restore))
+			 (window-list-1 nil 'nomini))
+	      2))
+      'tab)
      ((frame-root-window-p window)
       ;; WINDOW's frame can be deleted only if there are other frames
       ;; on the same terminal, and it does not contain the active
@@ -4990,6 +4995,9 @@ window--delete
   (unless (and dedicated-only (not (window-dedicated-p window)))
     (let ((deletable (window-deletable-p window)))
       (cond
+       ((eq deletable 'tab)
+	(tab-bar-close-tab)
+	'tab)
        ((eq deletable 'frame)
 	(let ((frame (window-frame window)))
 	  (cond
@@ -5303,10 +5311,8 @@ quit-restore-window
      ((and (not prev-buffer)
 	   (eq (nth 1 quit-restore) 'tab)
 	   (eq (nth 3 quit-restore) buffer)
-	   (< (seq-count (lambda (w) (window-parameter w 'quit-restore))
-		         (window-list-1 nil 'nomini))
-              2))
-      (tab-bar-close-tab)
+	   (window--delete
+	    window nil (memq bury-or-kill '(kill killing))))
       ;; If the previously selected window is still alive, select it.
       (window--quit-restore-select-window quit-restore-2))
      ((and (not prev-buffer)




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#59862; Package emacs. Full text available.

Message received at 59862 <at> debbugs.gnu.org:


Received: (at 59862) by debbugs.gnu.org; 12 Jul 2024 08:20:43 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Fri Jul 12 04:20:43 2024
Received: from localhost ([127.0.0.1]:53144 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1sSBWE-000492-Ms
	for submit <at> debbugs.gnu.org; Fri, 12 Jul 2024 04:20:42 -0400
Received: from mout.gmx.net ([212.227.15.18]:41415)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <rudalics@HIDDEN>) id 1sSBWC-00048o-PC
 for 59862 <at> debbugs.gnu.org; Fri, 12 Jul 2024 04:20:41 -0400
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmx.at;
 s=s31663417; t=1720772434; x=1721377234; i=rudalics@HIDDEN;
 bh=vW2X1/MRpcMYNGY82oUgS7Rypy9VDO65J7wxIdYDiWU=;
 h=X-UI-Sender-Class:Message-ID:Date:MIME-Version:Subject:To:Cc:
 References:From:In-Reply-To:Content-Type:
 Content-Transfer-Encoding:cc:content-transfer-encoding:
 content-type:date:from:message-id:mime-version:reply-to:subject:
 to;
 b=riDNST08wRhtjuygu1o6q4RpZXFKVatRLUl7pD/iUrgK0ZSrIbt4QIH61RGXXREm
 Qd/XV6A8yApYDMW4Yq784L1Nt+YRG2uk5eCmwRin88ZDLfRlr9EiBZX1Yra0L60mU
 KagJv+kPnW98vstaTkLQk3f6NpfSdW4tkQIaP7iYmRDlrqfmfxA35KlpEkbhXEBmj
 tMbmTYtl/NNNeYTyckcVpan1rnJICdOtoIfszu4qQYAYqoXXZRIDJc3X9vkzt5Bi9
 DCRR2MAE7zpKWWcDkXOlhHpyB/1fFMEZnhdoyY9xn60eylo5kxJodcAX7DHYTfgMm
 QEOsrLK09DtSZOw/Qw==
X-UI-Sender-Class: 724b4f7f-cbec-4199-ad4e-598c01a50d3a
Received: from [192.168.31.113] ([212.95.5.131]) by mail.gmx.net (mrgmx004
 [212.227.17.190]) with ESMTPSA (Nemesis) id 1MdefD-1rt7kO3I5R-00i3xq; Fri, 12
 Jul 2024 10:20:33 +0200
Message-ID: <3f399d4f-3dd2-4624-b857-e198f70b5565@HIDDEN>
Date: Fri, 12 Jul 2024 10:20:32 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: bug#59862: quit-restore per window buffer
To: Juri Linkov <juri@HIDDEN>
References: <86fsds8mlm.fsf@HIDDEN> <86ttibq1w1.fsf@HIDDEN>
 <8243325e-ed03-4e9e-b64f-c8225fb6dc60@HIDDEN>
 <18173da7-32e1-4f14-bbea-9a8fa66af7dd@HIDDEN>
 <f9eb9bae-6275-4448-9590-e72a56064220@HIDDEN>
 <86plsxmc6d.fsf@HIDDEN> <86r0d4ezdc.fsf@HIDDEN>
 <0d01a044-d7d6-456a-9ba9-d987faad4332@HIDDEN>
 <86frthjq4y.fsf@HIDDEN>
 <743dc4dd-cf09-4c5e-9209-b63a47480e0b@HIDDEN>
 <86msnne7ut.fsf@HIDDEN>
 <ad0bfe5d-817b-4d11-b82f-90c5a76b4c81@HIDDEN>
 <86plsgrfvu.fsf@HIDDEN>
 <ca1388d2-3481-49c4-8721-42792a399340@HIDDEN>
 <86le2b12ni.fsf@HIDDEN>
 <a972688e-01f6-428e-9dc0-67a45bc9a770@HIDDEN>
 <86y169kafb.fsf@HIDDEN>
 <61c4f245-3dd8-4e24-9c84-7ddd4cfe3c49@HIDDEN>
 <86a5ioo269.fsf@HIDDEN>
 <eb3b984d-dd6a-48e3-88c8-ef2cd146b0b7@HIDDEN>
 <867cdr3xs7.fsf@HIDDEN>
Content-Language: en-US
From: martin rudalics <rudalics@HIDDEN>
In-Reply-To: <867cdr3xs7.fsf@HIDDEN>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
X-Provags-ID: V03:K1:tV56pxdOjOJsIwBlFZChAYMWlPkH3qHVQGcxEkPwoTdv8Yt49iq
 bcn61+EFMk42JUT1shOVcttiRciiYa7c7Lvx8GbSIf4mNp6teCP5DUBcyI2mIqlbY1vxJIx
 CDry2s2cUo6wBgqZ/vjnwI+IfD1gWvISPvjqg+j+J97IdRtG8NtdFPxpp0wUhni6QIxsTe9
 SNt/7rlPCyfKADaAIsWuw==
X-Spam-Flag: NO
UI-OutboundReport: notjunk:1;M01:P0:ZrSWVXBi1q8=;8xBTvDgZQMljxN9Vw+Ea30CLf4w
 q4AUewtcKb7eqDxeQB0ZhzC7ofA1RKfpsYitP2Fz6iWL6Z2cN2uZIWgPoOmdmeR9WNGI4wa1y
 leOhkNfHIlZZZ7x8FDvp8hERL9YJ0MnSFNc4BGkn3Z2Vi+LJ2zWEAgTcCnz4n/X47f57ceuw3
 xvgEVa59w5+N5fElBb58+qCp17pye/tyvf7+myekP+Ll23v4t+upaGN+NG5VKhvLCTjgp1k4u
 WktOe6f49qUv82eFHEGjaXsjy6ryrBgnY9oQagO8XYlQeZFpfS07HRpKES+mEExPTBM/580J5
 AIjbrJlfVDjGmS9qE5wa7cuuCIMnYEdi75vMc4TX4FofgQE9cDnHbx9mFLZ1ArJtxz676IwtI
 TiZk3PzCFCs/BjVAVPbyR/hWK6u1BbzC0Ck73qx+z09d0wHX5OCpkBDoUCFscpiZ6wBviBeJa
 Je0iP1rj4X3TrYwU6xdpoLHzi4WjcIdvTuSgc7WDQqFGtmcClwY3o1Vs7nncxhhcsGw6K+1Tc
 8guGDJlHjTOEXBhoWtNayTxHKd+4rDzYpiK9PjPEkM2HjnCUlCK2j5EworoBxhiw3ngAx6Lk8
 i0jgLvZq5tSxeIoKu2yR83yusH0xKMu8TMF5hSpRI/MaDg8hdgMiu3syxHhInYnRXp2xBgAon
 AgrXefgf9BASj/kscmFM3cyghEGASU7pEVhMBpubGC3yFc0pF0foA2Ki9okqLU6UEfWxR2eYW
 jV4VTnRH8FIziqUWV8pEfNwAxY5uAMq9IIUr+5/2IYe11k9qMs14ILQC4CKfaGWYZP2bTyXNc
 83BP53/S9Z7fkAf14t0UbqashoqdTQ6E/dUR3idnUX+IM=
X-Spam-Score: 2.9 (++)
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:  > Ok, I will try to move it. We could replace the (or (eq
 (nth 1 quit-restore) 'frame) (and (eq (nth 1 quit-restore) 'window) ;; If
 the window has been created on an existing ;; frame and ended up as the sole
 window on that ;; frame, do not delete i [...] 
 Content analysis details:   (2.9 points, 10.0 required)
 pts rule name              description
 ---- ---------------------- --------------------------------------------------
 3.6 RCVD_IN_SBL_CSS        RBL: Received via a relay in Spamhaus SBL-CSS
 [212.95.5.131 listed in zen.spamhaus.org]
 -0.7 RCVD_IN_DNSWL_LOW      RBL: Sender listed at https://www.dnswl.org/,
 low trust [212.227.15.18 listed in list.dnswl.org]
 0.0 RCVD_IN_MSPIKE_H4      RBL: Very Good reputation (+4)
 [212.227.15.18 listed in wl.mailspike.net]
 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 (rudalics[at]gmx.at)
 -0.0 SPF_PASS               SPF: sender matches SPF record
 0.0 RCVD_IN_MSPIKE_WL      Mailspike good senders
X-Debbugs-Envelope-To: 59862
Cc: 59862 <at> debbugs.gnu.org
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: 1.9 (+)
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:  > Ok, I will try to move it. We could replace the (or (eq
    (nth 1 quit-restore) 'frame) (and (eq (nth 1 quit-restore) 'window) ;; If
    the window has been created on an existing ;; frame and ended up as the sole
    window on that ;; frame, do not delete i [...] 
 
 Content analysis details:   (1.9 points, 10.0 required)
 
  pts rule name              description
 ---- ---------------------- --------------------------------------------------
  0.0 RCVD_IN_MSPIKE_H4      RBL: Very Good reputation (+4)
                             [212.227.15.18 listed in wl.mailspike.net]
 -0.7 RCVD_IN_DNSWL_LOW      RBL: Sender listed at https://www.dnswl.org/,
                             low trust
                             [212.227.15.18 listed in list.dnswl.org]
  3.6 RCVD_IN_SBL_CSS        RBL: Received via a relay in Spamhaus SBL-CSS
                             [212.95.5.131 listed in zen.spamhaus.org]
  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 (rudalics[at]gmx.at)
 -0.0 SPF_PASS               SPF: sender matches SPF record
  0.0 RCVD_IN_MSPIKE_WL      Mailspike good senders
 -1.0 MAILING_LIST_MULTI     Multiple indicators imply a widely-seen list
                             manager

 > Ok, I will try to move it.

We could replace the

	   (or (eq (nth 1 quit-restore) 'frame)
	       (and (eq (nth 1 quit-restore) 'window)
		    ;; If the window has been created on an existing
		    ;; frame and ended up as the sole window on that
		    ;; frame, do not delete it (Bug#12764).
		    (not (eq window (frame-root-window window)))))

clause with

	   (or (eq (nth 1 quit-restore) 'frame)
	       ;; If the window has been created on an existing
	       ;; frame and ended up as the sole window on that
	       ;; frame, do not delete it (Bug#12764).
	       (not (eq window (frame-root-window window))))

with the motivation that if a window does not have a previous buffer,
there is no reason to switch to it.  This will keep the frame around so
Bu#12764 is not affected and the normal behavior of C-h i followed by
C-h e is not affected either unless a user deleted *scratch* in between.

Try it and if it works for you I'll add it to the new patch.

martin




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#59862; Package emacs. Full text available.

Message received at 59862 <at> debbugs.gnu.org:


Received: (at 59862) by debbugs.gnu.org; 12 Jul 2024 06:55:27 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Fri Jul 12 02:55:27 2024
Received: from localhost ([127.0.0.1]:53049 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1sSABj-000203-Du
	for submit <at> debbugs.gnu.org; Fri, 12 Jul 2024 02:55:27 -0400
Received: from relay6-d.mail.gandi.net ([217.70.183.198]:58887)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <juri@HIDDEN>) id 1sSABh-0001zp-Bx
 for 59862 <at> debbugs.gnu.org; Fri, 12 Jul 2024 02:55:25 -0400
Received: by mail.gandi.net (Postfix) with ESMTPSA id 24898C0009;
 Fri, 12 Jul 2024 06:55:15 +0000 (UTC)
From: Juri Linkov <juri@HIDDEN>
To: martin rudalics <rudalics@HIDDEN>
Subject: Re: bug#59862: quit-restore per window buffer
In-Reply-To: <eb3b984d-dd6a-48e3-88c8-ef2cd146b0b7@HIDDEN> (martin rudalics's
 message of "Thu, 11 Jul 2024 10:36:46 +0200")
Organization: LINKOV.NET
References: <86fsds8mlm.fsf@HIDDEN> <86ttibq1w1.fsf@HIDDEN>
 <8243325e-ed03-4e9e-b64f-c8225fb6dc60@HIDDEN>
 <18173da7-32e1-4f14-bbea-9a8fa66af7dd@HIDDEN>
 <f9eb9bae-6275-4448-9590-e72a56064220@HIDDEN>
 <86plsxmc6d.fsf@HIDDEN> <86r0d4ezdc.fsf@HIDDEN>
 <0d01a044-d7d6-456a-9ba9-d987faad4332@HIDDEN>
 <86frthjq4y.fsf@HIDDEN>
 <743dc4dd-cf09-4c5e-9209-b63a47480e0b@HIDDEN>
 <86msnne7ut.fsf@HIDDEN>
 <ad0bfe5d-817b-4d11-b82f-90c5a76b4c81@HIDDEN>
 <86plsgrfvu.fsf@HIDDEN>
 <ca1388d2-3481-49c4-8721-42792a399340@HIDDEN>
 <86le2b12ni.fsf@HIDDEN>
 <a972688e-01f6-428e-9dc0-67a45bc9a770@HIDDEN>
 <86y169kafb.fsf@HIDDEN>
 <61c4f245-3dd8-4e24-9c84-7ddd4cfe3c49@HIDDEN>
 <86a5ioo269.fsf@HIDDEN>
 <eb3b984d-dd6a-48e3-88c8-ef2cd146b0b7@HIDDEN>
Date: Fri, 12 Jul 2024 09:54:48 +0300
Message-ID: <867cdr3xs7.fsf@HIDDEN>
User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/31.0.50 (x86_64-pc-linux-gnu)
MIME-Version: 1.0
Content-Type: text/plain
X-GND-Sasl: juri@HIDDEN
X-Spam-Score: -0.7 (/)
X-Debbugs-Envelope-To: 59862
Cc: 59862 <at> debbugs.gnu.org
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.7 (-)

>> I checked that prev-buffers is nil in both frame and tab cases,
>> so everything is correct here.
>
> It's not correct in the sense that in the tab case the window showing
> *info* had a previous buffer - *scratch*.  Think of users working on
> some buffer who want to consult Info on something in that buffer with
> the intention to turn back to that buffer as soon as they are done.
> While consulting *info* they hit C-h e.  Now quitting *info* would
> delete the window showing *info* and leave them with a window showing
> *Messages* instead.  Is that really the behavior you have in mind?  How
> would a user go back to the original buffer?

The tab case should not differ from the frame case that has no previous buffer.

>> The difference between frame and tab case is that the frame branch
>> calls 'window--delete' that decides whether to delete the frame,
>> or just delete the window.  But in the tab case it either
>> closes the tab, or does nothing.  So in the tab case
>> it should call 'window--delete' as well, that will decide
>> whether to close the tab, or just delete the window.
>>
>> Then 'window--delete' should do something like this:
>>
>>     (unless (and dedicated-only (not (window-dedicated-p window)))
>>       (let ((deletable (window-deletable-p window)))
>>         (cond
>> +       ((eq deletable 'tab)
>> +        (tab-bar-close-tab)
>> +        'tab)
>>          ((eq deletable 'frame)
>>   	(let ((frame (window-frame window)))
>>   	  (cond
>>
>> Then maybe 'seq-count' with (window-parameter w 'quit-restore)
>> should be moved to 'window-deletable-p'.
>
> IIUC when 'display-buffer-record-window' installs a 'quit-restore'
> parameter of the 'tab' type, it assumes full responsibility for all
> windows on that frame as long as the corresponding tab has not been
> closed.  This means that the tab code has to assure a coherent state of
> the frame's windows after the tab has been closed.  If you can guarantee
> that, feel free to move that check wherever you want.

Ok, I will try to move it.




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#59862; Package emacs. Full text available.

Message received at 59862 <at> debbugs.gnu.org:


Received: (at 59862) by debbugs.gnu.org; 11 Jul 2024 08:36:55 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Thu Jul 11 04:36:55 2024
Received: from localhost ([127.0.0.1]:50992 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1sRpIM-00053P-Sc
	for submit <at> debbugs.gnu.org; Thu, 11 Jul 2024 04:36:55 -0400
Received: from mout.gmx.net ([212.227.15.18]:34303)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <rudalics@HIDDEN>) id 1sRpIL-00053B-AR
 for 59862 <at> debbugs.gnu.org; Thu, 11 Jul 2024 04:36:54 -0400
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmx.at;
 s=s31663417; t=1720687007; x=1721291807; i=rudalics@HIDDEN;
 bh=hs56+dRhwD4GGyKsvgnnHOiq/M44n7UsWRoX0xrC+Ak=;
 h=X-UI-Sender-Class:Message-ID:Date:MIME-Version:Subject:To:Cc:
 References:From:In-Reply-To:Content-Type:
 Content-Transfer-Encoding:cc:content-transfer-encoding:
 content-type:date:from:message-id:mime-version:reply-to:subject:
 to;
 b=HDCsuEzm6v9iJ4GDSBvKLfg9e4FznXnyesBIJUYTm1E1E1w0UZLkIwRC32T/wk/0
 jqEm8OJ4juWYGle6PHr4v8ka22WDtMhA3/nG6Afz9qRGQh0ZVLrWMDmB2VRl2ssaz
 8BLVK9Yml+yrJSvO0jW3mkEO8aTF99q9ooOL54ZinQpDxX+oXq8NH2AIBMYBidLsy
 im2EJD2n9cOaxJWVx41S9MjrCoKT3I9k7X5dNDk5z3oR+51E6UzmAKB3NWGMklqlA
 jERqusw18xkKs2H832Muq3B+zIpSl3u4kdrrKRXuNZ9ZKb/0KkzDOHHboC0sTQhVl
 COUcWU0Zd3B3jUpi2Q==
X-UI-Sender-Class: 724b4f7f-cbec-4199-ad4e-598c01a50d3a
Received: from [192.168.31.113] ([212.95.8.206]) by mail.gmx.net (mrgmx005
 [212.227.17.190]) with ESMTPSA (Nemesis) id 1Mnps0-1s2x0904uQ-00jdYH; Thu, 11
 Jul 2024 10:36:47 +0200
Message-ID: <eb3b984d-dd6a-48e3-88c8-ef2cd146b0b7@HIDDEN>
Date: Thu, 11 Jul 2024 10:36:46 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: bug#59862: quit-restore per window buffer
To: Juri Linkov <juri@HIDDEN>
References: <86fsds8mlm.fsf@HIDDEN> <86ttibq1w1.fsf@HIDDEN>
 <8243325e-ed03-4e9e-b64f-c8225fb6dc60@HIDDEN>
 <18173da7-32e1-4f14-bbea-9a8fa66af7dd@HIDDEN>
 <f9eb9bae-6275-4448-9590-e72a56064220@HIDDEN>
 <86plsxmc6d.fsf@HIDDEN> <86r0d4ezdc.fsf@HIDDEN>
 <0d01a044-d7d6-456a-9ba9-d987faad4332@HIDDEN>
 <86frthjq4y.fsf@HIDDEN>
 <743dc4dd-cf09-4c5e-9209-b63a47480e0b@HIDDEN>
 <86msnne7ut.fsf@HIDDEN>
 <ad0bfe5d-817b-4d11-b82f-90c5a76b4c81@HIDDEN>
 <86plsgrfvu.fsf@HIDDEN>
 <ca1388d2-3481-49c4-8721-42792a399340@HIDDEN>
 <86le2b12ni.fsf@HIDDEN>
 <a972688e-01f6-428e-9dc0-67a45bc9a770@HIDDEN>
 <86y169kafb.fsf@HIDDEN>
 <61c4f245-3dd8-4e24-9c84-7ddd4cfe3c49@HIDDEN>
 <86a5ioo269.fsf@HIDDEN>
Content-Language: en-US
From: martin rudalics <rudalics@HIDDEN>
In-Reply-To: <86a5ioo269.fsf@HIDDEN>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
X-Provags-ID: V03:K1:WYZtfpE7X5V3Wqi+3KBX4isaByPU5Mwr2GBirqoigkTNWmEKL3L
 7b356pUg1x95NhUb8OiU6ZqT0GpfACfMaJupUse1IAkrwWbtaDfpbSk12mqFjRB5gLY1YMI
 AS5C/NVzvpnsrvSngXIuPtb1wxBJdOVJIS3PvClq2hi3muGyoD7/zXC7nZO/Mt2fFXJIfI1
 BwbGibKZuU2pScx3X4M0Q==
X-Spam-Flag: NO
UI-OutboundReport: notjunk:1;M01:P0:gFApIb53e+I=;imkj/b+D31SDhBBagzp3zTr5ldm
 uAv3TZ/TxfoAEI0t3g2SOC0eljZ+rFE/RRINxd9NRU5gu5CCwDszT24P5fQthn7jV5KUB7VCE
 zuR3dz/1a9oniVqWd5Bzh5AcRrZBudMEazOeu3rGM3+I3BP6qlMbXj51coMkxFOwtXGyG9BYj
 pqAf+iOhlUdnKO6r0MhH+PjHvjxelD5Wcb5+bcG54qzFGtyLPYbh+9H8enwU/3CXCg35t3tUn
 JO7fNBumsEuYfOWoYgijfuNQamJmm0RUHw+9RtLKoc+k1rZ7P0d0bu5zVxr3FCTDv/aQ5x3Gd
 jdXY9PFIgVzaI0Xpl2scGsY0Klp8g9QVhRGOncnygcucgeWP5rkAA7Vq+E+KPD5IcRnaV+trY
 Hc4Tk2A3RWO+Ox/HJ80tLXDJb2NJGcerRqD8fXfjb+z0HL9InRJFHGEwfMpnQ2VglKdSeo2fG
 Xl/rA0oWxBta+f6hSNkYbB2oj1/Mf1Iw9nPIVp/uhoaX5zETXyG2T7EFPXm7Qz9e8/eZu/wdN
 VdcZ2D6Ba7agHVW1nofZCxTE0wdv+11k9fEy/b32lHPqpYfHjqu0IHtGGN6JcZ4cjWRWJaAo0
 u7vM8BEFe5RLMu6pL007pjDeX9AjZ3b4gpl5hp78gEXVXHlokYBlZXS9jsUWhyiK2WUR8tUgD
 W3Th2XMTMvDG6/vLLi7m4SGP51Oq5zrDgmjPbIec0roC99TD7MmKkQfSU96GsNrLEUTaw6my7
 n4ZC3R2wlyE/9RKyY3R1B7C1+NDFJqaGbFIq+hsq2mrJ3PwnaQEmenUJFSA0npJZzwYvIv8w4
 PaI4xVUEjeLhdmK5nszFaEMQ==
X-Spam-Score: -0.7 (/)
X-Debbugs-Envelope-To: 59862
Cc: 59862 <at> debbugs.gnu.org
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.7 (-)

 > I checked that prev-buffers is nil in both frame and tab cases,
 > so everything is correct here.

It's not correct in the sense that in the tab case the window showing
*info* had a previous buffer - *scratch*.  Think of users working on
some buffer who want to consult Info on something in that buffer with
the intention to turn back to that buffer as soon as they are done.
While consulting *info* they hit C-h e.  Now quitting *info* would
delete the window showing *info* and leave them with a window showing
*Messages* instead.  Is that really the behavior you have in mind?  How
would a user go back to the original buffer?

 > The difference between frame and tab case is that the frame branch
 > calls 'window--delete' that decides whether to delete the frame,
 > or just delete the window.  But in the tab case it either
 > closes the tab, or does nothing.  So in the tab case
 > it should call 'window--delete' as well, that will decide
 > whether to close the tab, or just delete the window.
 >
 > Then 'window--delete' should do something like this:
 >
 >     (unless (and dedicated-only (not (window-dedicated-p window)))
 >       (let ((deletable (window-deletable-p window)))
 >         (cond
 > +       ((eq deletable 'tab)
 > +        (tab-bar-close-tab)
 > +        'tab)
 >          ((eq deletable 'frame)
 >   	(let ((frame (window-frame window)))
 >   	  (cond
 >
 > Then maybe 'seq-count' with (window-parameter w 'quit-restore)
 > should be moved to 'window-deletable-p'.

IIUC when 'display-buffer-record-window' installs a 'quit-restore'
parameter of the 'tab' type, it assumes full responsibility for all
windows on that frame as long as the corresponding tab has not been
closed.  This means that the tab code has to assure a coherent state of
the frame's windows after the tab has been closed.  If you can guarantee
that, feel free to move that check wherever you want.

martin




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#59862; Package emacs. Full text available.

Message received at 59862 <at> debbugs.gnu.org:


Received: (at 59862) by debbugs.gnu.org; 11 Jul 2024 06:57:42 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Thu Jul 11 02:57:42 2024
Received: from localhost ([127.0.0.1]:50782 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1sRnkL-0002Oz-RC
	for submit <at> debbugs.gnu.org; Thu, 11 Jul 2024 02:57:42 -0400
Received: from relay4-d.mail.gandi.net ([217.70.183.196]:46047)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <juri@HIDDEN>) id 1sRnkH-0002Oi-89
 for 59862 <at> debbugs.gnu.org; Thu, 11 Jul 2024 02:57:40 -0400
Received: by mail.gandi.net (Postfix) with ESMTPSA id 8A6ABE0003;
 Thu, 11 Jul 2024 06:57:10 +0000 (UTC)
From: Juri Linkov <juri@HIDDEN>
To: martin rudalics <rudalics@HIDDEN>
Subject: Re: bug#59862: quit-restore per window buffer
In-Reply-To: <61c4f245-3dd8-4e24-9c84-7ddd4cfe3c49@HIDDEN> (martin rudalics's
 message of "Wed, 10 Jul 2024 11:16:24 +0200")
Organization: LINKOV.NET
References: <86fsds8mlm.fsf@HIDDEN> <86ttibq1w1.fsf@HIDDEN>
 <8243325e-ed03-4e9e-b64f-c8225fb6dc60@HIDDEN>
 <18173da7-32e1-4f14-bbea-9a8fa66af7dd@HIDDEN>
 <f9eb9bae-6275-4448-9590-e72a56064220@HIDDEN>
 <86plsxmc6d.fsf@HIDDEN> <86r0d4ezdc.fsf@HIDDEN>
 <0d01a044-d7d6-456a-9ba9-d987faad4332@HIDDEN>
 <86frthjq4y.fsf@HIDDEN>
 <743dc4dd-cf09-4c5e-9209-b63a47480e0b@HIDDEN>
 <86msnne7ut.fsf@HIDDEN>
 <ad0bfe5d-817b-4d11-b82f-90c5a76b4c81@HIDDEN>
 <86plsgrfvu.fsf@HIDDEN>
 <ca1388d2-3481-49c4-8721-42792a399340@HIDDEN>
 <86le2b12ni.fsf@HIDDEN>
 <a972688e-01f6-428e-9dc0-67a45bc9a770@HIDDEN>
 <86y169kafb.fsf@HIDDEN>
 <61c4f245-3dd8-4e24-9c84-7ddd4cfe3c49@HIDDEN>
Date: Thu, 11 Jul 2024 09:47:27 +0300
Message-ID: <86a5ioo269.fsf@HIDDEN>
User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/31.0.50 (x86_64-pc-linux-gnu)
MIME-Version: 1.0
Content-Type: text/plain
X-GND-Sasl: juri@HIDDEN
X-Spam-Score: -0.7 (/)
X-Debbugs-Envelope-To: 59862
Cc: 59862 <at> debbugs.gnu.org
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.7 (-)

>> But there is no *scratch* in the list of previous buffers for 'C-x t t C-h i'
>> (that can be confirmed when tab-line is enabled), so the user won't expect
>> to show *scratch*.  And indeed the frame case doesn't show *scratch*.
>
> 'window--display-buffer' resets that window's previous buffers here
>
>     (when (memq type '(window frame tab))
>       (set-window-prev-buffers window nil))
>
> In the "window" and "frame" case these are actually not needed because
> when making a new window (on the same or a new frame), that window's
> previous buffers are automatically set to nil - by make_window in the
> release version and by the allocation routine with my patch.  I reset
> them just to make sure.  When you show *info* in an already existing
> window, that window's previous buffers are not reset.  So the presence
> of "tab" in the form above is not entirely correct in this regard.

I checked that prev-buffers is nil in both frame and tab cases,
so everything is correct here.

>> I hoped that it would be possible for the tab case to do the same,
>> but I don't know how the frame case is handled to do the right thing.
>
> In 'quit-restore-window' you count the windows with a 'quit-restore'
> parameter.  In the scenario at hand this gives 2 so you don't close the
> tab.  If you told me in detail what this counting is supposed to
> accomplish, I might be able to help you.

'seq-count' with (window-parameter w 'quit-restore) is intended to be
equivalent to (frame-root-window window) in the frame case, and even better.
So the problem is not here.

The difference between frame and tab case is that the frame branch
calls 'window--delete' that decides whether to delete the frame,
or just delete the window.  But in the tab case it either
closes the tab, or does nothing.  So in the tab case
it should call 'window--delete' as well, that will decide
whether to close the tab, or just delete the window.

Then 'window--delete' should do something like this:

   (unless (and dedicated-only (not (window-dedicated-p window)))
     (let ((deletable (window-deletable-p window)))
       (cond
+       ((eq deletable 'tab)
+        (tab-bar-close-tab)
+        'tab)
        ((eq deletable 'frame)
 	(let ((frame (window-frame window)))
 	  (cond

Then maybe 'seq-count' with (window-parameter w 'quit-restore)
should be moved to 'window-deletable-p'.




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#59862; Package emacs. Full text available.

Message received at 59862 <at> debbugs.gnu.org:


Received: (at 59862) by debbugs.gnu.org; 10 Jul 2024 09:16:41 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Wed Jul 10 05:16:41 2024
Received: from localhost ([127.0.0.1]:54873 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1sRTRJ-0006fO-0N
	for submit <at> debbugs.gnu.org; Wed, 10 Jul 2024 05:16:41 -0400
Received: from mout.gmx.net ([212.227.15.15]:54921)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <rudalics@HIDDEN>) id 1sRTRG-0006fA-I4
 for 59862 <at> debbugs.gnu.org; Wed, 10 Jul 2024 05:16:39 -0400
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmx.at;
 s=s31663417; t=1720602985; x=1721207785; i=rudalics@HIDDEN;
 bh=Ru7+jHGMSCmVOt5p+Qc4LU3joUNgqnWrZjVlg8ZDgUI=;
 h=X-UI-Sender-Class:Message-ID:Date:MIME-Version:Subject:To:Cc:
 References:From:In-Reply-To:Content-Type:
 Content-Transfer-Encoding:cc:content-transfer-encoding:
 content-type:date:from:message-id:mime-version:reply-to:subject:
 to;
 b=Pcnqnm0gmU1zSNlpWlGIfIQoo5pJF/SAlILIETv/aQn3jW2v4LSmlYn3iJLjqh7a
 iZHZGU8tr6ZB08e6ujuzISEVODAdc3omjCh9mF08jN/rP1cAhB6YZKWo9IjwEZUk3
 hLVgP+7i86kGxM1Sifr4HOda6xWEGBFNSXeJfPVDqFwi1aL1ozLawBsMbVgdVi44a
 x6fKbftP8u43i5svUQGLqb8yhTPj6wjb/sdJYAuQpv3uDzqbxkhgZcRAxcKiQA8s/
 Dc9m5UUNHZkX6THjYSYrir5vX8aISCJ8/OXpji1PlGMiYnqhJ0HDQAfEIon85DkUC
 SljmnU8cYk0pv0tfQw==
X-UI-Sender-Class: 724b4f7f-cbec-4199-ad4e-598c01a50d3a
Received: from [192.168.31.113] ([212.95.5.5]) by mail.gmx.net (mrgmx005
 [212.227.17.190]) with ESMTPSA (Nemesis) id 1N63Vi-1sKy8H2Cee-010Exo; Wed, 10
 Jul 2024 11:16:25 +0200
Message-ID: <61c4f245-3dd8-4e24-9c84-7ddd4cfe3c49@HIDDEN>
Date: Wed, 10 Jul 2024 11:16:24 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: bug#59862: quit-restore per window buffer
To: Juri Linkov <juri@HIDDEN>
References: <86fsds8mlm.fsf@HIDDEN> <86ttibq1w1.fsf@HIDDEN>
 <8243325e-ed03-4e9e-b64f-c8225fb6dc60@HIDDEN>
 <18173da7-32e1-4f14-bbea-9a8fa66af7dd@HIDDEN>
 <f9eb9bae-6275-4448-9590-e72a56064220@HIDDEN>
 <86plsxmc6d.fsf@HIDDEN> <86r0d4ezdc.fsf@HIDDEN>
 <0d01a044-d7d6-456a-9ba9-d987faad4332@HIDDEN>
 <86frthjq4y.fsf@HIDDEN>
 <743dc4dd-cf09-4c5e-9209-b63a47480e0b@HIDDEN>
 <86msnne7ut.fsf@HIDDEN>
 <ad0bfe5d-817b-4d11-b82f-90c5a76b4c81@HIDDEN>
 <86plsgrfvu.fsf@HIDDEN>
 <ca1388d2-3481-49c4-8721-42792a399340@HIDDEN>
 <86le2b12ni.fsf@HIDDEN>
 <a972688e-01f6-428e-9dc0-67a45bc9a770@HIDDEN>
 <86y169kafb.fsf@HIDDEN>
Content-Language: en-US
From: martin rudalics <rudalics@HIDDEN>
In-Reply-To: <86y169kafb.fsf@HIDDEN>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
X-Provags-ID: V03:K1:w/jfLKvtCZA2UlgZqLNntCEa0gFL8hjJX1p/4/kpfXh/zBpgcEN
 6/bCR+B3V3x+B4rxNyEzLnNNJA5cAm/mYjV2OLKJVf0a7rVPUYCKh7Z9BU2hp+/6b44qG/P
 8z5JK3A9bGT/AofBbuk3GPuR95Lv2LGVLsdZo5AQm47P8JXlUUwA/K/7hOfG+BpYG+iFLiS
 GnyqCC9VxFPdgP3MdRqoA==
X-Spam-Flag: NO
UI-OutboundReport: notjunk:1;M01:P0:z9J2uk1PNhg=;qKsdvLdoAln+vCQwobj8hxFqwOI
 iVGL3JQiRCB4cWb7lRDN2qvUSmtsTu1xRs8u3x+dR+8wRhsMEf0ggvzpQBsVPAOjWT2zJw/qM
 xml6NaznNIY1v288ymYIXGz0h95vkwDDSpYuznE1Q25DGX5HmANOvBhJhzLLZrmuI2w3tQxLz
 kBiBPHagq5UfVVN8Tb3Z6OazKmC3ScYfwT+W4uqM7yOXUlfURUK6CmJalkyW7TNLqn8UkXbA0
 U1T1LbLD3ba4YZNtyYPgfAa1pJcXGX7wtvd6E4SL1vt0ZR6n4w1qnqWw7PIFbc6HtJgYUI6Zr
 bbE0Kg7YpIZwKNhxmeie6C8KKCdmiyIKLjzRTnuXtMt2OO86pZ/LUdfwx8vQpr6Cf/mrRdEsX
 yZniv34M5yd/YvGdNGjWHNTWTGcyguCmp8ChS68KmO+4kDx93vIKlk7CftQybYNYwO+XWYL8w
 lOWZbvrafExs7vMscnIHh6EqIIWUPiDIOIgHDf1PnCuQnWhs97gLhz3HNLSnd6z4Umv4DtkFq
 trLmSgZlPVzz3l+zp4qw+NpxDb+37cNKsEfVWEjAfGuwK6bqtphooV4h656bP6yL1QMV5xWHM
 fGxRA4ikSii3v5yOC8g4svJk8rlDEch4F2BYHTSYYeAx0oaI6oEI5/vm7WSd4oBH877JMFYGy
 hJ10AR4SNgB5e/pGe8uRQeWmNuSi7j6iV4hF2qd/UloPn0KaBvUCT413uO/B5N+B3fmOYcKE+
 WrDzmix1eRk7LUG3VoaJLqpgYsZQsauVWXS1mebuNB1uiOVS6cKq44xUv0lONLv1kTwGyjsxD
 RfY5axM99JYooOJ97DNcQ8+oxc0WBNBZD16cJv2quY0As=
X-Spam-Score: 2.9 (++)
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: > But there is no *scratch* in the list of previous buffers
 for 'C-x t t C-h i' > (that can be confirmed when tab-line is enabled), so
 the user won't expect > to show *scratch*. And indeed the frame [...] 
 Content analysis details:   (2.9 points, 10.0 required)
 pts rule name              description
 ---- ---------------------- --------------------------------------------------
 3.6 RCVD_IN_SBL_CSS        RBL: Received via a relay in Spamhaus SBL-CSS
 [212.95.5.5 listed in zen.spamhaus.org]
 -0.7 RCVD_IN_DNSWL_LOW      RBL: Sender listed at https://www.dnswl.org/,
 low trust [212.227.15.15 listed in list.dnswl.org]
 0.0 RCVD_IN_MSPIKE_H4      RBL: Very Good reputation (+4)
 [212.227.15.15 listed in wl.mailspike.net]
 -0.0 SPF_PASS               SPF: sender matches SPF record
 0.0 FREEMAIL_FROM          Sender email is commonly abused enduser mail
 provider (rudalics[at]gmx.at)
 0.0 SPF_HELO_NONE          SPF: HELO does not publish an SPF Record
 0.0 RCVD_IN_MSPIKE_WL      Mailspike good senders
X-Debbugs-Envelope-To: 59862
Cc: 59862 <at> debbugs.gnu.org
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: 1.9 (+)
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:  > But there is no *scratch* in the list of previous buffers
    for 'C-x t t C-h i' > (that can be confirmed when tab-line is enabled), so
    the user won't expect > to show *scratch*. And indeed the frame [...] 
 
 Content analysis details:   (1.9 points, 10.0 required)
 
  pts rule name              description
 ---- ---------------------- --------------------------------------------------
 -0.7 RCVD_IN_DNSWL_LOW      RBL: Sender listed at https://www.dnswl.org/,
                             low trust
                             [212.227.15.15 listed in list.dnswl.org]
  0.0 RCVD_IN_MSPIKE_H4      RBL: Very Good reputation (+4)
                             [212.227.15.15 listed in wl.mailspike.net]
  3.6 RCVD_IN_SBL_CSS        RBL: Received via a relay in Spamhaus SBL-CSS
                             [212.95.5.5 listed in zen.spamhaus.org]
 -0.0 SPF_PASS               SPF: sender matches SPF record
  0.0 FREEMAIL_FROM          Sender email is commonly abused enduser mail
                             provider (rudalics[at]gmx.at)
  0.0 SPF_HELO_NONE          SPF: HELO does not publish an SPF Record
  0.0 RCVD_IN_MSPIKE_WL      Mailspike good senders
 -1.0 MAILING_LIST_MULTI     Multiple indicators imply a widely-seen list
                             manager

 > But there is no *scratch* in the list of previous buffers for 'C-x t t C-h i'
 > (that can be confirmed when tab-line is enabled), so the user won't expect
 > to show *scratch*.  And indeed the frame case doesn't show *scratch*.

'window--display-buffer' resets that window's previous buffers here

     (when (memq type '(window frame tab))
       (set-window-prev-buffers window nil))

In the "window" and "frame" case these are actually not needed because
when making a new window (on the same or a new frame), that window's
previous buffers are automatically set to nil - by make_window in the
release version and by the allocation routine with my patch.  I reset
them just to make sure.  When you show *info* in an already existing
window, that window's previous buffers are not reset.  So the presence
of "tab" in the form above is not entirely correct in this regard.

 > I hoped that it would be possible for the tab case to do the same,
 > but I don't know how the frame case is handled to do the right thing.

In 'quit-restore-window' you count the windows with a 'quit-restore'
parameter.  In the scenario at hand this gives 2 so you don't close the
tab.  If you told me in detail what this counting is supposed to
accomplish, I might be able to help you.

martin




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#59862; Package emacs. Full text available.

Message received at 59862 <at> debbugs.gnu.org:


Received: (at 59862) by debbugs.gnu.org; 10 Jul 2024 06:54:10 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Wed Jul 10 02:54:09 2024
Received: from localhost ([127.0.0.1]:54721 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1sRRDN-0008TL-Ix
	for submit <at> debbugs.gnu.org; Wed, 10 Jul 2024 02:54:09 -0400
Received: from relay5-d.mail.gandi.net ([217.70.183.197]:51433)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <juri@HIDDEN>) id 1sRRDL-0008Sp-Jl
 for 59862 <at> debbugs.gnu.org; Wed, 10 Jul 2024 02:54:08 -0400
Received: by mail.gandi.net (Postfix) with ESMTPSA id 1D5371C0004;
 Wed, 10 Jul 2024 06:53:31 +0000 (UTC)
From: Juri Linkov <juri@HIDDEN>
To: martin rudalics <rudalics@HIDDEN>
Subject: Re: bug#59862: quit-restore per window buffer
In-Reply-To: <a972688e-01f6-428e-9dc0-67a45bc9a770@HIDDEN> (martin rudalics's
 message of "Tue, 9 Jul 2024 10:52:03 +0200")
Organization: LINKOV.NET
References: <86fsds8mlm.fsf@HIDDEN> <86ttibq1w1.fsf@HIDDEN>
 <8243325e-ed03-4e9e-b64f-c8225fb6dc60@HIDDEN>
 <18173da7-32e1-4f14-bbea-9a8fa66af7dd@HIDDEN>
 <f9eb9bae-6275-4448-9590-e72a56064220@HIDDEN>
 <86plsxmc6d.fsf@HIDDEN> <86r0d4ezdc.fsf@HIDDEN>
 <0d01a044-d7d6-456a-9ba9-d987faad4332@HIDDEN>
 <86frthjq4y.fsf@HIDDEN>
 <743dc4dd-cf09-4c5e-9209-b63a47480e0b@HIDDEN>
 <86msnne7ut.fsf@HIDDEN>
 <ad0bfe5d-817b-4d11-b82f-90c5a76b4c81@HIDDEN>
 <86plsgrfvu.fsf@HIDDEN>
 <ca1388d2-3481-49c4-8721-42792a399340@HIDDEN>
 <86le2b12ni.fsf@HIDDEN>
 <a972688e-01f6-428e-9dc0-67a45bc9a770@HIDDEN>
Date: Wed, 10 Jul 2024 09:50:32 +0300
Message-ID: <86y169kafb.fsf@HIDDEN>
User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/31.0.50 (x86_64-pc-linux-gnu)
MIME-Version: 1.0
Content-Type: text/plain
X-GND-Sasl: juri@HIDDEN
X-Spam-Score: -0.7 (/)
X-Debbugs-Envelope-To: 59862
Cc: 59862 <at> debbugs.gnu.org
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.7 (-)

>> I suppose it will affect only interactive uses of 'kill-buffer'.
>
> Why?  It affects all uses of 'kill-buffer'.

I'm not sure about this, I just had a feeling that killing
a temporary buffer should not affect its window.  But
a test case is needed to see if this is a real problem.

>> PS: I noticed one difference between handling of frames and tabs:
>>
>> C-x 5 5   ;; other-frame-prefix
>> C-h i     ;; info
>> C-h e     ;; view-echo-area-messages
>> q         ;; quit-window
>> This deletes the Info window, and doesn't delete the frame.
>> Everything is correct.
>>
>> C-x t t   ;; other-tab-prefix
>> C-h i     ;; info
>> C-h e     ;; view-echo-area-messages
>> q         ;; quit-window
>> This doesn't close the tab (correct),
>> but doesn't delete the Info window.
>> This differs from the frame case that keeps
>> only the Messages window on the frame.
>
> Suppose you do
>
> C-h i     ;; info
> C-h e     ;; view-echo-area-messages
> q         ;; quit-window
>
> Then the difference is obvious.  The C-h i reuses the one existing
> window showing *scratch*.  'display-buffer-record-window' cannot tell
> this case apart from the one where a user does want to show *scratch*
> again in that window after being done with *info*.

But there is no *scratch* in the list of previous buffers for 'C-x t t C-h i'
(that can be confirmed when tab-line is enabled), so the user won't expect
to show *scratch*.  And indeed the frame case doesn't show *scratch*.
I hoped that it would be possible for the tab case to do the same,
but I don't know how the frame case is handled to do the right thing.




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#59862; Package emacs. Full text available.

Message received at 59862 <at> debbugs.gnu.org:


Received: (at 59862) by debbugs.gnu.org; 9 Jul 2024 08:52:21 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Tue Jul 09 04:52:21 2024
Received: from localhost ([127.0.0.1]:52117 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1sR6aD-0003zU-Gp
	for submit <at> debbugs.gnu.org; Tue, 09 Jul 2024 04:52:21 -0400
Received: from mout.gmx.net ([212.227.17.20]:44043)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <rudalics@HIDDEN>) id 1sR6aB-0003zG-42
 for 59862 <at> debbugs.gnu.org; Tue, 09 Jul 2024 04:52:20 -0400
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmx.at;
 s=s31663417; t=1720515127; x=1721119927; i=rudalics@HIDDEN;
 bh=EHgvQDcOqjrJiPQOpIx77zzL4evUofoAwj3FniKinU4=;
 h=X-UI-Sender-Class:Message-ID:Date:MIME-Version:Subject:To:Cc:
 References:From:In-Reply-To:Content-Type:
 Content-Transfer-Encoding:cc:content-transfer-encoding:
 content-type:date:from:message-id:mime-version:reply-to:subject:
 to;
 b=eMJWD5QkSlFxzcp6/D1fQQRE8LhYtHXZ+rxiJYMJRwGEK5jmhvy/M2GJU88AdvpK
 OzTg9zEqwotdiEIqaESaWfIoZG88TQDPwvJ4uK9IoJ2jcjEpjmaSvThjjf9edPqsu
 dwh9GYxsdSlG+BLcwn82FAGijMImi3jq/qIuMNj3B650bdcDHyGdHIEMXoDM4CqQo
 82RUifmHn/z5e1NqikfYcYhBqjsPtKO/+K3TpGnVQ3ogXI/0csEPGF3xPt69ZkcC5
 +b+FBJy0M/UtH7azkQ+aZ4DWyGc+AN3nZ1KM/WEUBMB2jWNxDIj1w2Fk1g3ZrlNY+
 GiGfD3vidD7pFieqOQ==
X-UI-Sender-Class: 724b4f7f-cbec-4199-ad4e-598c01a50d3a
Received: from [192.168.31.113] ([213.142.97.150]) by mail.gmx.net (mrgmx105
 [212.227.17.168]) with ESMTPSA (Nemesis) id 1MNt0C-1skoFq49Q8-00SHnU; Tue, 09
 Jul 2024 10:52:07 +0200
Message-ID: <a972688e-01f6-428e-9dc0-67a45bc9a770@HIDDEN>
Date: Tue, 9 Jul 2024 10:52:03 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: bug#59862: quit-restore per window buffer
To: Juri Linkov <juri@HIDDEN>
References: <86fsds8mlm.fsf@HIDDEN> <86ttibq1w1.fsf@HIDDEN>
 <8243325e-ed03-4e9e-b64f-c8225fb6dc60@HIDDEN>
 <18173da7-32e1-4f14-bbea-9a8fa66af7dd@HIDDEN>
 <f9eb9bae-6275-4448-9590-e72a56064220@HIDDEN>
 <86plsxmc6d.fsf@HIDDEN> <86r0d4ezdc.fsf@HIDDEN>
 <0d01a044-d7d6-456a-9ba9-d987faad4332@HIDDEN>
 <86frthjq4y.fsf@HIDDEN>
 <743dc4dd-cf09-4c5e-9209-b63a47480e0b@HIDDEN>
 <86msnne7ut.fsf@HIDDEN>
 <ad0bfe5d-817b-4d11-b82f-90c5a76b4c81@HIDDEN>
 <86plsgrfvu.fsf@HIDDEN>
 <ca1388d2-3481-49c4-8721-42792a399340@HIDDEN>
 <86le2b12ni.fsf@HIDDEN>
Content-Language: en-US
From: martin rudalics <rudalics@HIDDEN>
In-Reply-To: <86le2b12ni.fsf@HIDDEN>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
X-Provags-ID: V03:K1:3p17tgocLDQzym3lw6RuAXvyNdu4S8UG8xeMwCCJz4v3TrI3mAi
 XohZPnmZCQb3Lg4aV09nNUaCmsJBueGJTj/QgVsAVjFwYzDWDlDqmr+YZef0zNTIHmXbZLj
 sNsWC55yCQHeV//tmI4I9uawuYfHLro6rHTL7JqfZncU9oShn/qNGij/Qk6FajbxHQV2GuE
 qK3b8laxTULTXmsabIe0A==
X-Spam-Flag: NO
UI-OutboundReport: notjunk:1;M01:P0:twvukzr3B4w=;JHCo683RM02fWgkgLciYfb5HdI/
 DR72UqjDK4H/ikf/al88uBa0SoJ54shetzsk7Xq9d+0fVcqw66rlyN6Tv482q57rLeYBe2g1c
 rRd1UU1JWi/uHrB2Rj8drSVl4MSj8FvHydkaxU1eIy9eVrndxI8KOlW9xr006u/+I7kwDKeJQ
 wO9naWQ1vbVWbYupzw1yazRK6a4Nh8YuB4+i0IpN4n+sRoOrpxHBLQjP21zzzcm3ETE+EaCKN
 BoE9LBRQ8zfUR6/e4bjO4SdyiwQR/9R+qIctSFgQKqhEgMFVyPq7/U9sjzpIb+5KOos9ui5ET
 IDKFnYw4qanNrl7LBXT+Uk57+AGaCTkJGWCMAMUHe9BR9gM0kZyHZq2mNWVoQ0p5TRsKuZ1gA
 WhvB4aWG2KtjyXysyH6cBBVf1GNzY4wFDONMSwdBMhJzzkrzGeJiFRer38S4ad/lynt3esPF5
 RmNYNDfWDAFzWk4nIW2Q9GVB0P8cu91EjVENHj85N3VN01T17uJHEmV5EDwr3teM6sTfXhr0r
 BHKrWq8V7v75oKZ4XF+k/zi1vdudVf8FQz1whMfKj+dO952Vw5W91xwHo1YAMX+NTq/tsuGPT
 2AnFDpr/z1FG3ljKjLQMslTLGRneOCIwd0fB2OLY2ngdAZ7o4B9bkisVGyqnkWlvVm9QoAgZu
 +KqG7ryTSJfjaS5Q0VXmIK0oKu4bhdgMBycSdhEkEu8sZaJj3FznOPhu2r6dFD7JUS7DUX7q2
 3bbmjTr29rxHsFUV5Iywx/bpA/Rk/Prh+PIj2TWnTbH407QFJ1RbYGSOPyH/IzigexJVySZB1
 4dCJfBLbIp2eg+2sfm2qnZbnOjX0CuGul+8HXrsl/Ux3s=
X-Spam-Score: -0.7 (/)
X-Debbugs-Envelope-To: 59862
Cc: 59862 <at> debbugs.gnu.org
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.7 (-)

 > I suppose it will affect only interactive uses of 'kill-buffer'.

Why?  It affects all uses of 'kill-buffer'.

 > PS: I noticed one difference between handling of frames and tabs:
 >
 > C-x 5 5   ;; other-frame-prefix
 > C-h i     ;; info
 > C-h e     ;; view-echo-area-messages
 > q         ;; quit-window
 > This deletes the Info window, and doesn't delete the frame.
 > Everything is correct.
 >
 > C-x t t   ;; other-tab-prefix
 > C-h i     ;; info
 > C-h e     ;; view-echo-area-messages
 > q         ;; quit-window
 > This doesn't close the tab (correct),
 > but doesn't delete the Info window.
 > This differs from the frame case that keeps
 > only the Messages window on the frame.

Suppose you do

C-h i     ;; info
C-h e     ;; view-echo-area-messages
q         ;; quit-window

Then the difference is obvious.  The C-h i reuses the one existing
window showing *scratch*.  'display-buffer-record-window' cannot tell
this case apart from the one where a user does want to show *scratch*
again in that window after being done with *info*.  If we wanted a
behavior that deleted the *info* window in this case (it could do that
only if there is another window on that frame), the caller could add an
alist entry, say 'delete-reused-window-if-possible', and add something
like

     (when (and (eq type 'reuse)
	       (assq 'delete-reused-window-if-possible alist))
       (setq type 'window))

immediately before the

     (display-buffer-record-window type window buffer)

call in 'window--display-buffer'.

But you pass 'tab' as TYPE argument to 'window--display-buffer' and that
would have to be handled in a maybe similar but still different way.

martin




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#59862; Package emacs. Full text available.

Message received at 59862 <at> debbugs.gnu.org:


Received: (at 59862) by debbugs.gnu.org; 9 Jul 2024 06:59:31 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Tue Jul 09 02:59:31 2024
Received: from localhost ([127.0.0.1]:52018 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1sR4p0-000185-KG
	for submit <at> debbugs.gnu.org; Tue, 09 Jul 2024 02:59:31 -0400
Received: from relay4-d.mail.gandi.net ([217.70.183.196]:38985)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <juri@HIDDEN>) id 1sR4oy-00017r-2e
 for 59862 <at> debbugs.gnu.org; Tue, 09 Jul 2024 02:59:29 -0400
Received: by mail.gandi.net (Postfix) with ESMTPSA id B13BEE0007;
 Tue,  9 Jul 2024 06:58:55 +0000 (UTC)
From: Juri Linkov <juri@HIDDEN>
To: martin rudalics <rudalics@HIDDEN>
Subject: Re: bug#59862: quit-restore per window buffer
In-Reply-To: <ca1388d2-3481-49c4-8721-42792a399340@HIDDEN> (martin rudalics's
 message of "Mon, 8 Jul 2024 18:49:52 +0200")
Organization: LINKOV.NET
References: <86fsds8mlm.fsf@HIDDEN> <86ttibq1w1.fsf@HIDDEN>
 <8243325e-ed03-4e9e-b64f-c8225fb6dc60@HIDDEN>
 <18173da7-32e1-4f14-bbea-9a8fa66af7dd@HIDDEN>
 <f9eb9bae-6275-4448-9590-e72a56064220@HIDDEN>
 <86plsxmc6d.fsf@HIDDEN> <86r0d4ezdc.fsf@HIDDEN>
 <0d01a044-d7d6-456a-9ba9-d987faad4332@HIDDEN>
 <86frthjq4y.fsf@HIDDEN>
 <743dc4dd-cf09-4c5e-9209-b63a47480e0b@HIDDEN>
 <86msnne7ut.fsf@HIDDEN>
 <ad0bfe5d-817b-4d11-b82f-90c5a76b4c81@HIDDEN>
 <86plsgrfvu.fsf@HIDDEN>
 <ca1388d2-3481-49c4-8721-42792a399340@HIDDEN>
Date: Tue, 09 Jul 2024 09:58:49 +0300
Message-ID: <86le2b12ni.fsf@HIDDEN>
User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/31.0.50 (x86_64-pc-linux-gnu)
MIME-Version: 1.0
Content-Type: text/plain
X-GND-Sasl: juri@HIDDEN
X-Spam-Score: 0.0 (/)
X-Debbugs-Envelope-To: 59862
Cc: 59862 <at> debbugs.gnu.org
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.7 (-)

> It took me some time to rewrite the code for this since I found a couple
> of leaks in the window handling code which I tried to plug now.  In a
> nutshell, the new patch is supposed to fix the following issues.
>
> - I introduced a new variable called 'kill-buffer-quit-windows'.  If
>   non-nil, it makes killing a buffer call 'quit-restore-window' for each
>   window showing the buffer thus implementing the behavior you want.  If
>   nil, killing a buffer works as before apart from the fixes I added
>   below.

Thanks, I hope it will help to replace such configurations:

  (defun quit-window-kill-buffer ()
    "Quit WINDOW and kill its buffer."
    (interactive)
    (quit-window 1))
  (define-key special-mode-map "q" 'quit-window-kill-buffer)
  (define-key image-mode-map "q" 'quit-window-kill-buffer)
  (define-key global-map "\C-q" 'quit-window-kill-buffer)
  (define-key dired-mode-map "q" 'quit-window-kill-buffer)
  (define-key archive-mode-map "q" 'quit-window-kill-buffer)
  (define-key tar-mode-map "q" 'quit-window-kill-buffer)
  ...

I suppose it will affect only interactive uses of 'kill-buffer'.

> In earlier versions of Emacs, window configurations were mostly used to
> handle window excursions and were consequently rather short-lived.  Your
> tab bar code has changed that.  Hence we should try to avoid any leaks
> introduced by long-lived configurations.

Indeed now window configurations are long-lived, so tab-bar uses
(split-window) followed by (delete-window) to create a new window
different from the window saved in a window configuration.

> Please test the patch intensively and report any problems you see.  I
> used the forms below to test the various features of the patch.

I have used your previous patch for a long time,
and it worked perfectly.  I hope your new patch
will be as good as the old one.

PS: I noticed one difference between handling of frames and tabs:

C-x 5 5   ;; other-frame-prefix
C-h i     ;; info
C-h e     ;; view-echo-area-messages
q         ;; quit-window
This deletes the Info window, and doesn't delete the frame.
Everything is correct.

C-x t t   ;; other-tab-prefix
C-h i     ;; info
C-h e     ;; view-echo-area-messages
q         ;; quit-window
This doesn't close the tab (correct),
but doesn't delete the Info window.
This differs from the frame case that keeps
only the Messages window on the frame.




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#59862; Package emacs. Full text available.

Message received at 59862 <at> debbugs.gnu.org:


Received: (at 59862) by debbugs.gnu.org; 8 Jul 2024 16:50:11 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Mon Jul 08 12:50:11 2024
Received: from localhost ([127.0.0.1]:51377 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1sQrZ3-0001nd-No
	for submit <at> debbugs.gnu.org; Mon, 08 Jul 2024 12:50:11 -0400
Received: from mout.gmx.net ([212.227.17.20]:45199)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <rudalics@HIDDEN>) id 1sQrYz-0001mw-Ug
 for 59862 <at> debbugs.gnu.org; Mon, 08 Jul 2024 12:50:07 -0400
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmx.at;
 s=s31663417; t=1720457393; x=1721062193; i=rudalics@HIDDEN;
 bh=FBNap9ctbV82IG6GZWIU5J5XfgR7r4lTqpm9nE/Ws2A=;
 h=X-UI-Sender-Class:Content-Type:Message-ID:Date:MIME-Version:
 Subject:To:Cc:References:From:In-Reply-To:cc:
 content-transfer-encoding:content-type:date:from:message-id:
 mime-version:reply-to:subject:to;
 b=TGBMcQNqqzCVbhCuQGulfUnaXxm2hDrHwYqBAxPEqUHuyOrF1wLcxEUOsHJEU2nE
 G553CoYgDV01WaqauCrXM5sZd2oEfNMPAtVGeOp3sfth3rujwhQYOl+lR/8SFaXQk
 9OIEkVrIweHTUneeEQnn102xRspnRVZohCX1WV81TcnBKlzHSYjmiVEiexj3rWsel
 lCxFaVns6Qt+X/NeQTYILKL+Jx2VVVvRIFTcdqlso+iis6J63yDjgwcCTtlrv673q
 e1h3VC7tkxDaYedYS64Odj8It0USPSIzKubkIRl7jEPWu9RC5FSEIOM/rweQd7PNh
 9aKgRq2dQvBvtDddiA==
X-UI-Sender-Class: 724b4f7f-cbec-4199-ad4e-598c01a50d3a
Received: from [192.168.31.113] ([213.142.96.136]) by mail.gmx.net (mrgmx105
 [212.227.17.168]) with ESMTPSA (Nemesis) id 1MQv8x-1sme6I2IXX-00T70h; Mon, 08
 Jul 2024 18:49:53 +0200
Content-Type: multipart/mixed; boundary="------------LljYayqEV1Ur0nfWMbfh90n8"
Message-ID: <ca1388d2-3481-49c4-8721-42792a399340@HIDDEN>
Date: Mon, 8 Jul 2024 18:49:52 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: bug#59862: quit-restore per window buffer
To: Juri Linkov <juri@HIDDEN>
References: <86fsds8mlm.fsf@HIDDEN> <86ttibq1w1.fsf@HIDDEN>
 <8243325e-ed03-4e9e-b64f-c8225fb6dc60@HIDDEN>
 <18173da7-32e1-4f14-bbea-9a8fa66af7dd@HIDDEN>
 <f9eb9bae-6275-4448-9590-e72a56064220@HIDDEN>
 <86plsxmc6d.fsf@HIDDEN> <86r0d4ezdc.fsf@HIDDEN>
 <0d01a044-d7d6-456a-9ba9-d987faad4332@HIDDEN>
 <86frthjq4y.fsf@HIDDEN>
 <743dc4dd-cf09-4c5e-9209-b63a47480e0b@HIDDEN>
 <86msnne7ut.fsf@HIDDEN>
 <ad0bfe5d-817b-4d11-b82f-90c5a76b4c81@HIDDEN>
 <86plsgrfvu.fsf@HIDDEN>
Content-Language: en-US
From: martin rudalics <rudalics@HIDDEN>
In-Reply-To: <86plsgrfvu.fsf@HIDDEN>
X-Provags-ID: V03:K1:Vtd2K3RtoMN3dOzca5pGWX/9apTNSZTjBq1FZi9g0BM0xU26Evl
 NpF3ecVxs3F8xEhtZq38FTEzaH0BFjnKxEGulX/cDIuOsFntTn1rsROJWkMbfcJm9rAFUvc
 qlGUqmUPfuV7jsCLD9hTHhZikhnJWRTd6SRweywgohEZ1M3sUdxoq8YRFcVpk0wr6UYarfW
 ONeZYxIzRfW5cTlDdSwgg==
X-Spam-Flag: NO
UI-OutboundReport: notjunk:1;M01:P0:4Eb8diwgEFc=;xa2bCXnvr4d3rw5gQVefMm24ZeG
 MlWW9RnHgLww7KxA08jKS16K/SC0QFJOCrLioD7OLD7PCotk2i0DNaPfPOFXkdiDeVJ0CbaYa
 nhyxttjKO6iPvC5jrvQQDDhKuPqayuiazUpJ5yhaI5GjJnxzo5+gKlXcGVn8NX1LRrMq6KbLE
 1PlDWLAJTa0J/1CYjoXJ27xnNl3Y83sI9lMhUIbbI4XrbFWpD2XU4RUSGpQ3svc8u60iQByg2
 9SreZGJuEx7KZ+eBKrfgQFSXfym3BJlxJD2G1e7HTTo36iijsXz7RG705NdIO4DzV1aap9ezA
 Xj3DMpx4EBl1zSm2GBZyYw6Qkv6uirKy5wpcHZh9rjePamTHlGbEziFWzI3rWxbRA8nLhwL53
 PS1DSmXeZQULEj0Cs+ChOQ8gQrlru825LQIV66zJ4H0p4mp06AHnmFqMwP5B4m+W5upvBGHS7
 DW8KdIpsGHk8jpr3Xg6TNbQ/UyPsNU3XWtfB0IQZwEc8vtEXpQmpduG5sIO6ivcjMEMln/jF4
 DckCk62juYRtc/QxiKom/zy5H7CeZiV5yXRUtP7kB2C7MtzqQz+9yNopqOEOFuMJRXI6Nm9RS
 YD3KjWgGcCDNuASldnCYUBiHHTfocfMAOBPsQVwR6/zf5I147YdEfKJZvQ3aKVsJj+Gyp8w/f
 glqDVrsUis7+xU+NO53j5NbyDm225Pu2wlN+MdvoF2+ywvIFlCadJxmtApXZEopwjr6/i7uER
 C4qCWjsQ1GrRC4yTwPIVVot9pp1RjLQPtPxI4fOPA+NeC75zMJTkIvJznJWaXM+D/RWn9pgfP
 vPkj0Xz+qNexQXeHK56rZMEQje6I1C8Fi345yTb74gikA=
X-Spam-Score: 2.9 (++)
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:  It took me some time to rewrite the code for this since I
 found a couple of leaks in the window handling code which I tried to plug
 now. In a nutshell, the new patch is supposed to fix the following i [...]
 Content analysis details:   (2.9 points, 10.0 required)
 pts rule name              description
 ---- ---------------------- --------------------------------------------------
 3.6 RCVD_IN_SBL_CSS        RBL: Received via a relay in Spamhaus SBL-CSS
 [213.142.96.136 listed in zen.spamhaus.org]
 -0.7 RCVD_IN_DNSWL_LOW      RBL: Sender listed at https://www.dnswl.org/,
 low trust [212.227.17.20 listed in list.dnswl.org]
 -0.0 SPF_PASS               SPF: sender matches SPF record
 0.0 FREEMAIL_FROM          Sender email is commonly abused enduser mail
 provider (rudalics[at]gmx.at)
 0.0 SPF_HELO_NONE          SPF: HELO does not publish an SPF Record
X-Debbugs-Envelope-To: 59862
Cc: 59862 <at> debbugs.gnu.org
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: 1.9 (+)
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:  It took me some time to rewrite the code for this since I
   found a couple of leaks in the window handling code which I tried to plug
   now. In a nutshell, the new patch is supposed to fix the following i [...]
    
 
 Content analysis details:   (1.9 points, 10.0 required)
 
  pts rule name              description
 ---- ---------------------- --------------------------------------------------
 -0.7 RCVD_IN_DNSWL_LOW      RBL: Sender listed at https://www.dnswl.org/,
                             low trust
                             [212.227.17.20 listed in list.dnswl.org]
  3.6 RCVD_IN_SBL_CSS        RBL: Received via a relay in Spamhaus SBL-CSS
                             [213.142.96.136 listed in zen.spamhaus.org]
 -0.0 SPF_PASS               SPF: sender matches SPF record
  0.0 FREEMAIL_FROM          Sender email is commonly abused enduser mail
                             provider (rudalics[at]gmx.at)
  0.0 SPF_HELO_NONE          SPF: HELO does not publish an SPF Record
 -1.0 MAILING_LIST_MULTI     Multiple indicators imply a widely-seen list
                             manager

This is a multi-part message in MIME format.
--------------LljYayqEV1Ur0nfWMbfh90n8
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

It took me some time to rewrite the code for this since I found a couple
of leaks in the window handling code which I tried to plug now.  In a
nutshell, the new patch is supposed to fix the following issues.

- I introduced a new variable called 'kill-buffer-quit-windows'.  If
   non-nil, it makes killing a buffer call 'quit-restore-window' for each
   window showing the buffer thus implementing the behavior you want.  If
   nil, killing a buffer works as before apart from the fixes I added
   below.

- The new window parameter type 'quit-restore-prev' that was already in
   the previous patch handles most scenarios of traversing an entire
   chain of buffer display operations back to the one that initially
   created a window or a frame.  The only thing it does not handle is to
   restore the previously selected window for all but the first and last
   such operation.

- As in the previous patch I remove a buffer from all live windows'
   previous/next buffers and quit-restore(-prev) parameters when killing
   it.  In the present patch I remove it also from dead windows (windows
   presumably stored in window configurations if they survived at least
   one collection cycle after their deletion).  This should eliminate the
   necessity to scan these lists separately in the mark phase of the
   collector.

- The old code erroneously has an internal window share the lists of
   previous/next buffers of a live window whenever that internal window
   is created by splitting the live window.  If the live window is
   subsequently deleted but the internal window persists, these lists
   will continue to exist until the internal window is deleted.  Since
   you cannot switch buffers in internal windows, these lists are
   completely useless while increasing memory overhead.  The patch fixes
   this leak.

Dead windows are kept in a weak hash table, adding a window when it is
deleted and removing it when restoring it from a saved window
configuration.  The collector is supposed to remove all dead windows
whose configurations have died in its finalization phase.  For testing
purposes, this hash table is accessible from Lisp via the variable
'window-dead-windows-table'.

In earlier versions of Emacs, window configurations were mostly used to
handle window excursions and were consequently rather short-lived.  Your
tab bar code has changed that.  Hence we should try to avoid any leaks
introduced by long-lived configurations.

The hash table based code should also work for the incremental (MPS
based) collector once it is capable of handling weak hash tables
correctly.  The present approach to emulate the above mentioned separate
mark steps in Elisp is completely inadequate in this regard since it
cannot identify dead windows.

Please test the patch intensively and report any problems you see.  I
used the forms below to test the various features of the patch.

martin

(display-buffer (get-buffer-create "*foo*"))
(display-buffer (get-buffer-create "*bar*"))

(setq kill-buffer-quit-windows t)

(kill-buffer "*bar*")
(kill-buffer "*foo*")

(setq foo (current-window-configuration))
(set-window-configuration foo)
(setq foo nil) ; To reclaim all dead windows of foo

(garbage-collect)

(hash-table-count window-dead-windows-table)
--------------LljYayqEV1Ur0nfWMbfh90n8
Content-Type: text/x-patch; charset=UTF-8; name="windows-and-buffers.diff"
Content-Disposition: attachment; filename="windows-and-buffers.diff"
Content-Transfer-Encoding: base64

ZGlmZiAtLWdpdCBhL2xpc3Avd2luZG93LmVsIGIvbGlzcC93aW5kb3cuZWwKaW5kZXggOWZj
MmU1ZDY1ZTguLjBhODJhYTk5ODlkIDEwMDY0NAotLS0gYS9saXNwL3dpbmRvdy5lbAorKysg
Yi9saXNwL3dpbmRvdy5lbApAQCAtNDU0MiwxNCArNDU0MiwxOCBAQCByZWNvcmQtd2luZG93
LWJ1ZmZlcgogICAgICAgKHB1c2gtd2luZG93LWJ1ZmZlci1vbnRvLXByZXYgd2luZG93KQog
ICAgICAgKHJ1bi1ob29rcyAnYnVmZmVyLWxpc3QtdXBkYXRlLWhvb2spKSkpCiAKKzs7IEEg
dmVyc2lvbiBpbiBDIHRoYXQgaGFuZGxlcyBkZWFkIHdpbmRvd3MgKHRoYXQgcHJlc3VtYWJs
eSBhcmUgcGFydCBvZgorOzsgYSBzYXZlZCB3aW5kb3cgY29uZmlndXJhdGlvbikgbGl2ZXMg
aW4gd2luZG93LmMgYW5kIGlzIGNhbGxlZAorOzsgd2luZG93X2Rpc2NhcmRfYnVmZmVyX2Zy
b21fZGVhZF93aW5kb3cuICBXZSBjb3VsZCBjYWxsIHRoYXQgZnJvbSBoZXJlCis7OyBidXQg
aXQgc2VlbXMgbW9yZSBwcmFjdGljYWwgdG8gaGFuZGxlIGxpdmUgd2luZG93cyBlbnRpcmVs
eSBpbiBFbGlzcC4KIChkZWZ1biB1bnJlY29yZC13aW5kb3ctYnVmZmVyICgmb3B0aW9uYWwg
d2luZG93IGJ1ZmZlcikKICAgIlVucmVjb3JkIEJVRkZFUiBpbiBXSU5ET1cuCi1XSU5ET1cg
bXVzdCBiZSBhIGxpdmUgd2luZG93IGFuZCBkZWZhdWx0cyB0byB0aGUgc2VsZWN0ZWQgb25l
LgotQlVGRkVSIG11c3QgYmUgYSBsaXZlIGJ1ZmZlciBhbmQgZGVmYXVsdHMgdG8gdGhlIGJ1
ZmZlciBvZgotV0lORE9XLgorV0lORE9XIG11c3QgYmUgYSBsaXZlIHdpbmRvdyBhbmQgZGVm
YXVsdHMgdG8gdGhlIHNlbGVjdGVkIG9uZS4gIEJVRkZFUgorbXVzdCBiZSBhIGxpdmUgYnVm
ZmVyIGFuZCBkZWZhdWx0cyB0byB0aGUgYnVmZmVyIG9mIFdJTkRPVyAoYWx0aG91Z2gKK3Ro
YXQgZGVmYXVsdCBoYXJkbHkgbWFrZXMgYW55IHNlbnNlKS4KIAotTWFrZSBCVUZGRVIgZGlz
YXBwZWFyIGZyb20gYWxsIHZhcmlhYmxlcyBtZW50aW9uZWQgYnkgdGhlIG9iamVjdCBvZgot
V0lORE9XLiAgVGhpcyBpbmNsdWRlcyB0aGUgYnVmZmVycyBwcmV2aW91c2x5IHNod29uIGlu
IFdJTkRPVyBhcyB3ZWxsIGFzCitNYWtlIEJVRkZFUiBkaXNhcHBlYXIgZnJvbSBtb3N0IGNv
bXBvbmVudHMgc3BlY2lmaWVkIGJ5IHRoZSBvYmplY3Qgb2YKK1dJTkRPVy4gIFRoaXMgaW5j
bHVkZXMgdGhlIGJ1ZmZlcnMgcHJldmlvdXNseSBzaG93biBpbiBXSU5ET1cgYXMgd2VsbCBh
cwogYW55IGJ1ZmZlcnMgbWVudGlvbmVkIGJ5IFdJTkRPVydzIGBxdWl0LXJlc3RvcmUnIGFu
ZCBgcXVpdC1yZXN0b3JlLXByZXYnCiBwYXJhbWV0ZXJzLiIKICAgKGxldCogKCh3aW5kb3cg
KHdpbmRvdy1ub3JtYWxpemUtd2luZG93IHdpbmRvdyB0KSkKQEAgLTQ1NjIsNyArNDU2Niwx
MyBAQCB1bnJlY29yZC13aW5kb3ctYnVmZmVyCiAgICAgICAgd2luZG93IChhc3NxLWRlbGV0
ZS1hbGwgYnVmZmVyICh3aW5kb3ctcHJldi1idWZmZXJzIHdpbmRvdykpKQogICAgICAgKHNl
dC13aW5kb3ctbmV4dC1idWZmZXJzCiAgICAgICAgd2luZG93IChkZWxxIGJ1ZmZlciAod2lu
ZG93LW5leHQtYnVmZmVycyB3aW5kb3cpKSkKLQorICAgICAgOzsgSWYgdGhlIGZvdXJ0aCBl
bGVtZW50cyBvZiB0aGUgJ3F1aXQtcmVzdG9yZScgb3IKKyAgICAgIDs7ICdxdWl0LXJlc3Rv
cmUtcHJldicgcGFyYW1ldGVycyBlcXVhbCBCVUZGRVIsIHRoZXNlIHBhcmFtZXRlcnMKKyAg
ICAgIDs7IGJlY29tZSB1c2VsZXNzIC0gaW4gJ3F1aXQtcmVzdG9yZS13aW5kb3cnIHRoZSBm
b3VydGggZWxlbWVudAorICAgICAgOzsgbXVzdCBlcXVhbCB0aGUgYnVmZmVyIG9mIFdJTkRP
VyBpbiBvcmRlciB0byB1c2UgdGhhdCBwYXJhbWV0ZXIuCisgICAgICA7OyBJZiBCVUZGRVIg
aXMgbWVudGlvbmVkIGluIHRoZSBzZWNvbmQgZWxlbWVudCBvZiB0aGUgcGFyYW1ldGVyLAor
ICAgICAgOzsgJ3F1aXQtcmVzdG9yZS13aW5kb3cnIGNhbm5vdCBwb3NzaWJseSBzaG93IEJV
RkZFUiBpbnN0ZWFkOyBzbworICAgICAgOzsgdGhpcyBwYXJhbWV0ZXIgYmVjb21lcyB1c2Vs
ZXNzIHRvby4KICAgICAgICh3aGVuIChvciAoZXEgYnVmZmVyIChudGggMyBxdWl0LXJlc3Rv
cmUtcHJldikpCiAJCShhbmQgKGxpc3RwIChzZXRxIHF1YWQgKG50aCAxIHF1aXQtcmVzdG9y
ZS1wcmV2KSkpCiAJCSAgICAgKGVxIChjYXIgcXVhZCkgYnVmZmVyKSkpCkBAIC00NTcyLDcg
KzQ1ODIsOCBAQCB1bnJlY29yZC13aW5kb3ctYnVmZmVyCiAJCShhbmQgKGxpc3RwIChzZXRx
IHF1YWQgKG50aCAxIHF1aXQtcmVzdG9yZSkpKQogCQkgICAgIChlcSAoY2FyIHF1YWQpIGJ1
ZmZlcikpKQogCShzZXQtd2luZG93LXBhcmFtZXRlcgotCSB3aW5kb3cgJ3F1aXQtcmVzdG9y
ZSAod2luZG93LXBhcmFtZXRlciB3aW5kb3cgJ3F1aXQtcmVzdG9yZS1wcmV2KSkpKSkpCisJ
IHdpbmRvdyAncXVpdC1yZXN0b3JlICh3aW5kb3ctcGFyYW1ldGVyIHdpbmRvdyAncXVpdC1y
ZXN0b3JlLXByZXYpKQorCShzZXQtd2luZG93LXBhcmFtZXRlciB3aW5kb3cgJ3F1aXQtcmVz
dG9yZS1wcmV2IG5pbCkpKSkpCiAKIChkZWZ1biBzZXQtd2luZG93LWJ1ZmZlci1zdGFydC1h
bmQtcG9pbnQgKHdpbmRvdyBidWZmZXIgJm9wdGlvbmFsIHN0YXJ0IHBvaW50KQogICAiU2V0
IFdJTkRPVydzIGJ1ZmZlciB0byBCVUZGRVIuCkBAIC01MDkxLDYgKzUxMDIsMTggQEAgcHJl
dmlvdXMtYnVmZmVyCiAgICAgICAgICAgICAgICAgIChub3QgKG9yIGV4ZWN1dGluZy1rYmQt
bWFjcm8gbm9uaW50ZXJhY3RpdmUpKSkKICAgICAgICAgKHVzZXItZXJyb3IgIk5vIHByZXZp
b3VzIGJ1ZmZlciIpKSkpKSkKIAorKGRlZmN1c3RvbSBraWxsLWJ1ZmZlci1xdWl0LXdpbmRv
d3MgbmlsCisgICJOb24tbmlsIG1lYW5zIGtpbGxpbmcgYnVmZmVycyBzaGFsbCBxdWl0IHdp
bmRvd3MuCitJZiB0aGlzIGlzIG5pbCwga2lsbGluZyBhIGJ1ZmZlciBtYXkgZGVsZXRlIGRl
ZGljYXRlZCB3aW5kb3dzIG9ubHkuICBJZgordGhpcyBpcyBub24tbmlsLCBga2lsbC1idWZm
ZXInIChhbmQgYHJlcGxhY2UtYnVmZmVyLWluLXdpbmRvd3MnIGluCitjb25zZXF1ZW5jZSkg
aGF2ZSBgcXVpdC1yZXN0b3JlLXdpbmRvdycgZGVhbCB3aXRoIGFueSB3aW5kb3cgc2hvd2lu
ZyB0aGUKK2J1ZmZlciB0byBiZSBraWxsZWQgd2hpY2ggbWF5IGRlbGV0ZSB0aGUgd2luZG93
IGlmIGl0J3Mgbm90IGRlZGljYXRlZCB0bworaXRzIGJ1ZmZlci4gIEFsc28sIGBkZWxldGUt
d2luZG93cy1vbicgd2lsbCB1c2UgYHF1aXQtcmVzdG9yZS13aW5kb3cnIGFzCitmYWxsYmFj
ayB3aGVuIGEgd2luZG93IGNhbm5vdCBiZSBkZWxldGVkIG90aGVyd2lzZS4iCisgIDp0eXBl
ICdib29sZWFuCisgIDp2ZXJzaW9uICIzMS4xIgorICA6Z3JvdXAgJ3dpbmRvd3MpCisKIChk
ZWZ1biBkZWxldGUtd2luZG93cy1vbiAoJm9wdGlvbmFsIGJ1ZmZlci1vci1uYW1lIGZyYW1l
KQogICAiRGVsZXRlIGFsbCB3aW5kb3dzIHNob3dpbmcgQlVGRkVSLU9SLU5BTUUuCiBCVUZG
RVItT1ItTkFNRSBtYXkgYmUgYSBidWZmZXIgb3IgdGhlIG5hbWUgb2YgYW4gZXhpc3Rpbmcg
YnVmZmVyCkBAIC01MTI4LDggKzUxNTEsMTAgQEAgZGVsZXRlLXdpbmRvd3Mtb24KIHRlcm1p
bmFsLCBkZWxldGUgdGhhdCBmcmFtZS4gIE90aGVyd2lzZSwgZG8gbm90IGRlbGV0ZSBhIGZy
YW1lJ3Mgcm9vdAogd2luZG93IGlmIGl0IHNob3dzIHRoZSBidWZmZXIgc3BlY2lmaWVkIGJ5
IEJVRkZFUi1PUi1OQU1FIGFuZCBkbyBub3QKIGRlbGV0ZSBhbnkgZnJhbWUncyBtYWluIHdp
bmRvdyBzaG93aW5nIHRoYXQgYnVmZmVyIGVpdGhlci4gIFJhdGhlciwgaW4KLWFueSBzdWNo
IGNhc2UsIGNhbGwgYHF1aXQtcmVzdG9yZS13aW5kb3cnIHRvIHNob3cgYW5vdGhlciBidWZm
ZXIgaW4gdGhhdAotd2luZG93IGFuZCBtYWtlIHN1cmUgdGhlIHdpbmRvdyBpcyBubyBtb3Jl
IGRlZGljYXRlZCB0byBpdHMgYnVmZmVyLgorYW55IHN1Y2ggY2FzZSwgY2FsbCBlaXRoZXIg
YHF1aXQtcmVzdG9yZS13aW5kb3cnIChwcm92aWRlZAorYGtpbGwtYnVmZmVyLXF1aXQtd2lu
ZG93cycgaXMgbm9uLW5pbCkgb3IgYHN3aXRjaC10by1wcmV2LWJ1ZmZlcicgdG8KK3Nob3cg
YW5vdGhlciBidWZmZXIgaW4gdGhhdCB3aW5kb3cgYW5kIG1ha2Ugc3VyZSB0aGUgd2luZG93
IGlzIG5vIG1vcmUKK2RlZGljYXRlZCB0byBpdHMgYnVmZmVyLgogCiBJZiB0aGUgYnVmZmVy
IHNwZWNpZmllZCBieSBCVUZGRVItT1ItTkFNRSBpcyBzaG93biBpbiBhIG1pbmlidWZmZXIK
IHdpbmRvdywgZG8gbm90aGluZyBmb3IgdGhhdCB3aW5kb3cuICBGb3IgYW55IHdpbmRvdyB0
aGF0IGRvZXMgbm90IHNob3cKQEAgLTUxNjYsOSArNTE5MSwxOCBAQCBkZWxldGUtd2luZG93
cy1vbgogCSAgICAgKChlcSBkZWxldGFibGUgdCkKIAkgICAgICA7OyBEZWxldGUgd2luZG93
LgogCSAgICAgIChkZWxldGUtd2luZG93IHdpbmRvdykpCisJICAgICAoa2lsbC1idWZmZXIt
cXVpdC13aW5kb3dzCisJICAgICAgKHF1aXQtcmVzdG9yZS13aW5kb3cgd2luZG93ICdidXJ5
KQorCSAgICAgICh3aGVuICh3aW5kb3ctbGl2ZS1wIHdpbmRvdykKKwkJOzsgVW5yZWNvcmQg
QlVGRkVSIGluIHRoaXMgd2luZG93LgorCQkodW5yZWNvcmQtd2luZG93LWJ1ZmZlciB3aW5k
b3cgYnVmZmVyKSkpCiAJICAgICAodAotCSAgICAgICh3aGVuIChlcSAod2luZG93LWJ1ZmZl
ciB3aW5kb3cpIGJ1ZmZlcikKLQkJKHF1aXQtcmVzdG9yZS13aW5kb3cgd2luZG93ICdidXJ5
KSkKKwkgICAgICA7OyBJbiB3aW5kb3cgc3dpdGNoIHRvIHByZXZpb3VzIGJ1ZmZlci4KKwkg
ICAgICAoc2V0LXdpbmRvdy1kZWRpY2F0ZWQtcCB3aW5kb3cgbmlsKQorCSAgICAgIChzd2l0
Y2gtdG8tcHJldi1idWZmZXIgd2luZG93ICdidXJ5KQorCSAgICAgIDs7IFJlc3RvcmUgdGhl
IGRlZGljYXRlZCAnc2lkZScgZmxhZy4KKwkgICAgICAod2hlbiAoZXEgZGVkaWNhdGVkICdz
aWRlKQorICAgICAgICAgICAgICAgIChzZXQtd2luZG93LWRlZGljYXRlZC1wIHdpbmRvdyAn
c2lkZSkpCiAJICAgICAgKHdoZW4gKHdpbmRvdy1saXZlLXAgd2luZG93KQogCQk7OyBVbnJl
Y29yZCBCVUZGRVIgaW4gdGhpcyB3aW5kb3cuCiAJCSh1bnJlY29yZC13aW5kb3ctYnVmZmVy
IHdpbmRvdyBidWZmZXIpKSkpKQpAQCAtNTE3NywyOSArNTIxMSw0NiBAQCBkZWxldGUtd2lu
ZG93cy1vbgogCiAoZGVmdW4gcmVwbGFjZS1idWZmZXItaW4td2luZG93cyAoJm9wdGlvbmFs
IGJ1ZmZlci1vci1uYW1lKQogICAiUmVwbGFjZSBCVUZGRVItT1ItTkFNRSB3aXRoIHNvbWUg
b3RoZXIgYnVmZmVyIGluIGFsbCB3aW5kb3dzIHNob3dpbmcgaXQuCi1CVUZGRVItT1ItTkFN
RSBtYXkgYmUgYSBidWZmZXIgb3IgdGhlIG5hbWUgb2YgYW4gZXhpc3RpbmcgYnVmZmVyCi1h
bmQgZGVmYXVsdHMgdG8gdGhlIGN1cnJlbnQgYnVmZmVyLiAgTWluaWJ1ZmZlciB3aW5kb3dz
IGFyZSBub3QKLWNvbnNpZGVyZWQuCi0KLVdpdGggdGhlIGV4Y2VwdGlvbiBvZiBzaWRlIHdp
bmRvd3MsIHdoZW4gYSB3aW5kb3cgc2hvd2luZyBCVUZGRVItT1ItTkFNRQotaXMgZGVkaWNh
dGVkLCB0aGF0IHdpbmRvdyBpcyBkZWxldGVkLiAgSWYgdGhhdCB3aW5kb3cgaXMgdGhlIG9u
bHkgd2luZG93Ci1vbiBpdHMgZnJhbWUsIHRoZSBmcmFtZSBpcyBkZWxldGVkIHRvbyB3aGVu
IHRoZXJlIGFyZSBvdGhlciBmcmFtZXMgbGVmdC4KLUlmIHRoZXJlIGFyZSBubyBvdGhlciBm
cmFtZXMgbGVmdCwgc29tZSBvdGhlciBidWZmZXIgaXMgZGlzcGxheWVkIGluIHRoYXQKK0JV
RkZFUi1PUi1OQU1FIG1heSBiZSBhIGJ1ZmZlciBvciB0aGUgbmFtZSBvZiBhbiBleGlzdGlu
ZyBidWZmZXIgYW5kCitkZWZhdWx0cyB0byB0aGUgY3VycmVudCBidWZmZXIuICBNaW5pYnVm
ZmVyIHdpbmRvd3MgYXJlIG5vdCBjb25zaWRlcmVkLgorCitJZiB0aGUgb3B0aW9uIGBraWxs
LWJ1ZmZlci1xdWl0LXdpbmRvd3MnIGlzIG5pbCwgYmVoYXZlIGFzIGZvbGxvd3M6IFdpdGgK
K3RoZSBleGNlcHRpb24gb2Ygc2lkZSB3aW5kb3dzLCB3aGVuIGEgd2luZG93IHNob3dpbmcg
QlVGRkVSLU9SLU5BTUUgaXMKK2RlZGljYXRlZCwgZGVsZXRlIHRoYXQgd2luZG93LiAgSWYg
dGhhdCB3aW5kb3cgaXMgdGhlIG9ubHkgd2luZG93IG9uIGl0cworZnJhbWUsIGRlbGV0ZSBp
dHMgZnJhbWUgd2hlbiB0aGVyZSBhcmUgb3RoZXIgZnJhbWVzIGxlZnQuICBJbiBhbnkgb3Ro
ZXIKK2Nhc2UsIGNhbGwgYHN3aXRjaC10by1wcmV2LWJ1ZmZlcicgdG8gZGlzcGxheSBzb21l
IG90aGVyIGJ1ZmZlciBpbiB0aGF0CiB3aW5kb3cuCiAKLVRoaXMgZnVuY3Rpb24gcmVtb3Zl
cyB0aGUgYnVmZmVyIGRlbm90ZWQgYnkgQlVGRkVSLU9SLU5BTUUgZnJvbSBhbGwKLXdpbmRv
dy1sb2NhbCBidWZmZXIgbGlzdHMgYW5kIHJlbW92ZXMgYW55IGBxdWl0LXJlc3RvcmUnIG9y
Ci1gcXVpdC1yZXN0b3JlLXByZXYnIHBhcmFtZXRlcnMgbWVudGlvbmluZyBpdC4iCitJZiBg
a2lsbC1idWZmZXItcXVpdC13aW5kb3dzJyBpcyBub24tbmlsLCBjYWxsIGBxdWl0LXJlc3Rv
cmUtd2luZG93JyBmb3IKK2FueSB3aW5kb3cgc2hvd2luZyBCVUZGRVItT1ItTkFNRSB3aXRo
IHRoZSBhcmd1bWVudCBCVVJZLU9SLUtJTEwgc2V0IHRvCitga2lsbGluZycgdG8gYXZvaWQg
dGhhdCB0aGUgbGF0dGVyIGtpbGxzIHRoZSBidWZmZXIgcHJlbWF0dXJlbHkuCisKK0luIGVp
dGhlciBjYXNlLCByZW1vdmUgdGhlIGJ1ZmZlciBkZW5vdGVkIGJ5IEJVRkZFUi1PUi1OQU1F
IGZyb20gdGhlCitsaXN0cyBvZiBwcmV2aW91cyBhbmQgbmV4dCBidWZmZXJzIG9mIGFsbCB3
aW5kb3dzIGFuZCByZW1vdmUgYW55CitgcXVpdC1yZXN0b3JlJyBvciBgcXVpdC1yZXN0b3Jl
LXByZXYnIHBhcmFtZXRlcnMgbWVudGlvbmluZyBpdC4KKworVGhpcyBmdW5jdGlvbiBpcyBj
YWxsZWQgYnkgYGtpbGwtYnVmZmVyJyB3aGljaCBraWxscyB0aGUgYnVmZmVyCitzcGVjaWZp
ZWQgYnkgYGJ1ZmZlci1vci1uYW1lJyBhZnRlcndhcmRzLiAgSXQgbmV2ZXIga2lsbHMgYSBi
dWZmZXIgYnkKK2l0c2VsZi4iCiAgIChpbnRlcmFjdGl2ZSAiYkJ1ZmZlciB0byByZXBsYWNl
OiAiKQogICAobGV0ICgoYnVmZmVyICh3aW5kb3ctbm9ybWFsaXplLWJ1ZmZlciBidWZmZXIt
b3ItbmFtZSkpKQotICAgIDs7IFNjYW4gYWxsIHdpbmRvd3MuICBXZSBoYXZlIHRvIHVucmVj
b3JkIEJVRkZFUiBpbiB0aG9zZSBub3QKLSAgICA7OyBzaG93aW5nIGl0LgorICAgIDs7IFNj
YW4gYWxsIHdpbmRvd3MuICBXZSBoYXZlIHRvIHVucmVjb3JkIEJVRkZFUi1PUi1OQU1FIGlu
IHRob3NlCisgICAgOzsgbm90IHNob3dpbmcgaXQuCiAgICAgKGRvbGlzdCAod2luZG93ICh3
aW5kb3ctbGlzdC0xIG5pbCBuaWwgdCkpCiAgICAgICAod2hlbiAoZXEgKHdpbmRvdy1idWZm
ZXIgd2luZG93KSBidWZmZXIpCi0JKHF1aXQtcmVzdG9yZS13aW5kb3cgd2luZG93KSkKLSAg
ICAgICh3aGVuICh3aW5kb3ctbGl2ZS1wIHdpbmRvdykKLQk7OyBVbnJlY29yZCBCVUZGRVIg
aW4gdGhpcyB3aW5kb3cuCi0JKHVucmVjb3JkLXdpbmRvdy1idWZmZXIgd2luZG93IGJ1ZmZl
cikpKSkpCisJKGlmIGtpbGwtYnVmZmVyLXF1aXQtd2luZG93cworCSAgICAocXVpdC1yZXN0
b3JlLXdpbmRvdyB3aW5kb3cgJ2tpbGxpbmcpCisJICAobGV0ICgoZGVkaWNhdGVkLXNpZGUg
KGVxICh3aW5kb3ctZGVkaWNhdGVkLXAgd2luZG93KSAnc2lkZSkpKQorICAgICAgICAgICAg
KHdoZW4gKG9yIGRlZGljYXRlZC1zaWRlIChub3QgKHdpbmRvdy0tZGVsZXRlIHdpbmRvdyB0
ICdraWxsKSkpCisJICAgICAgOzsgU3dpdGNoIHRvIGFub3RoZXIgYnVmZmVyIGluIHRoYXQg
d2luZG93LgorCSAgICAgIChzZXQtd2luZG93LWRlZGljYXRlZC1wIHdpbmRvdyBuaWwpCisJ
ICAgICAgKGlmIChzd2l0Y2gtdG8tcHJldi1idWZmZXIgd2luZG93ICdraWxsKQorICAgICAg
ICAgICAgICAgICAgKGFuZCBkZWRpY2F0ZWQtc2lkZSAoc2V0LXdpbmRvdy1kZWRpY2F0ZWQt
cCB3aW5kb3cgJ3NpZGUpKQorCQkod2luZG93LS1kZWxldGUgd2luZG93IG5pbCAna2lsbCkp
KSkpKQorCisJKHdoZW4gKHdpbmRvdy1saXZlLXAgd2luZG93KQorCSAgOzsgVW5yZWNvcmQg
QlVGRkVSIGluIHRoaXMgd2luZG93LgorCSAgKHVucmVjb3JkLXdpbmRvdy1idWZmZXIgd2lu
ZG93IGJ1ZmZlcikpKSkpCiAKIChkZWZjdXN0b20gcXVpdC13aW5kb3ctaG9vayBuaWwKICAg
Ikhvb2sgcnVuIGJlZm9yZSBwZXJmb3JtaW5nIGFueSBvdGhlciBhY3Rpb25zIGluIHRoZSBg
cXVpdC13aW5kb3cnIGNvbW1hbmQuIgpAQCAtNTI0OSw3ICs1MzAwLDE0IEBAIHF1aXQtcmVz
dG9yZS13aW5kb3cKICAgbW9zdCByZWxpYWJsZSByZW1lZHkgdG8gbm90IGhhdmUgYHN3aXRj
aC10by1wcmV2LWJ1ZmZlcicgc3dpdGNoCiAgIHRvIHRoaXMgYnVmZmVyIGFnYWluIHdpdGhv
dXQga2lsbGluZyB0aGUgYnVmZmVyLgogCi1ga2lsbCcgbWVhbnMgdG8ga2lsbCBXSU5ET1cn
cyBidWZmZXIuIgorYGtpbGwnIG1lYW5zIHRvIGtpbGwgV0lORE9XJ3MgYnVmZmVyLgorCitg
a2lsbGluZycgaXMgbGlrZSBga2lsbCcgYnV0IG1lYW5zIHRoYXQgV0lORE9XJ3MgYnVmZmVy
IHdpbGwgZ2V0IGtpbGxlZAorZWxzZXdoZXJlLiAgVGhpcyB2YWx1ZSBpcyB1c2VkIGJ5IGBy
ZXBsYWNlLWJ1ZmZlci1pbi13aW5kb3dzJyBhbmQKK2BxdWl0LXdpbmRvd3Mtb24nLgorCitg
YnVyeWluZycgaXMgbGlrZSBgYnVyeScgYnV0IG1lYW5zIHRoYXQgV0lORE9XJ3MgYnVmZmVy
IHdpbGwgZ2V0IGJ1cmllZAorZWxzZXdoZXJlLiAgVGhpcyB2YWx1ZSBpcyB1c2VkIGJ5IGBx
dWl0LXdpbmRvd3Mtb24nLiIKICAgKHNldHEgd2luZG93ICh3aW5kb3ctbm9ybWFsaXplLXdp
bmRvdyB3aW5kb3cgdCkpCiAgIChsZXQqICgoYnVmZmVyICh3aW5kb3ctYnVmZmVyIHdpbmRv
dykpCiAJIChxdWl0LXJlc3RvcmUgKHdpbmRvdy1wYXJhbWV0ZXIgd2luZG93ICdxdWl0LXJl
c3RvcmUpKQpAQCAtNTI2NSwzMiArNTMyMywzMCBAQCBxdWl0LXJlc3RvcmUtd2luZG93CiAg
ICAgKGNvbmQKICAgICAgOzsgRmlyc3QgdHJ5IHRvIGRlbGV0ZSBkZWRpY2F0ZWQgd2luZG93
cyB0aGF0IGFyZSBub3Qgc2lkZSB3aW5kb3dzLgogICAgICAoKGFuZCBkZWRpY2F0ZWQgKG5v
dCAoZXEgZGVkaWNhdGVkICdzaWRlKSkKLSAgICAgICAgICAgKHdpbmRvdy0tZGVsZXRlIHdp
bmRvdyAnZGVkaWNhdGVkIChlcSBidXJ5LW9yLWtpbGwgJ2tpbGwpKSkKKyAgICAgICAgICAg
KHdpbmRvdy0tZGVsZXRlCisJICAgIHdpbmRvdyAnZGVkaWNhdGVkIChtZW1xIGJ1cnktb3It
a2lsbCAnKGtpbGwga2lsbGluZykpKSkKICAgICAgIDs7IElmIHRoZSBwcmV2aW91c2x5IHNl
bGVjdGVkIHdpbmRvdyBpcyBzdGlsbCBhbGl2ZSwgc2VsZWN0IGl0LgogICAgICAgKHdpbmRv
dy0tcXVpdC1yZXN0b3JlLXNlbGVjdC13aW5kb3cgcXVpdC1yZXN0b3JlLTIpKQogICAgICAo
KGFuZCAobm90IHByZXYtYnVmZmVyKQogCSAgIChlcSAobnRoIDEgcXVpdC1yZXN0b3JlKSAn
dGFiKQotCSAgIChlcSAobnRoIDMgcXVpdC1yZXN0b3JlKSBidWZmZXIpKQorCSAgIChlcSAo
bnRoIDMgcXVpdC1yZXN0b3JlKSBidWZmZXIpCisJICAgKDwgKHNlcS1jb3VudCAobGFtYmRh
ICh3KSAod2luZG93LXBhcmFtZXRlciB3ICdxdWl0LXJlc3RvcmUpKQorCQkgICAgICAgICAo
d2luZG93LWxpc3QtMSBuaWwgJ25vbWluaSkpCisgICAgICAgICAgICAgIDIpKQogICAgICAg
KHRhYi1iYXItY2xvc2UtdGFiKQogICAgICAgOzsgSWYgdGhlIHByZXZpb3VzbHkgc2VsZWN0
ZWQgd2luZG93IGlzIHN0aWxsIGFsaXZlLCBzZWxlY3QgaXQuCiAgICAgICAod2luZG93LS1x
dWl0LXJlc3RvcmUtc2VsZWN0LXdpbmRvdyBxdWl0LXJlc3RvcmUtMikpCiAgICAgICgoYW5k
IChub3QgcHJldi1idWZmZXIpCi0JICAgKG9yIChhbmQgKG9yIChlcSAobnRoIDEgcXVpdC1y
ZXN0b3JlKSAnZnJhbWUpCi0JCQkoYW5kIChlcSAobnRoIDEgcXVpdC1yZXN0b3JlKSAnd2lu
ZG93KQotCQkJICAgICA7OyBJZiB0aGUgd2luZG93IGhhcyBiZWVuIGNyZWF0ZWQgb24gYW4K
LQkJCSAgICAgOzsgZXhpc3RpbmcgZnJhbWUgYW5kIGVuZGVkIHVwIGFzIHRoZSBzb2xlCi0J
CQkgICAgIDs7IHdpbmRvdyBvbiB0aGF0IGZyYW1lLCBkbyBub3QgZGVsZXRlIGl0Ci0JCQkg
ICAgIDs7IChCdWcjMTI3NjQpLgotCQkJICAgICAobm90IChlcSB3aW5kb3cgKGZyYW1lLXJv
b3Qtd2luZG93IHdpbmRvdykpKSkpCi0JCSAgICAoZXEgKG50aCAzIHF1aXQtcmVzdG9yZSkg
YnVmZmVyKSkKLQkgICAgICAgKGFuZCAob3IgKGVxIChudGggMSBxdWl0LXJlc3RvcmUtcHJl
dikgJ2ZyYW1lKQotCQkJKGFuZCAoZXEgKG50aCAxIHF1aXQtcmVzdG9yZS1wcmV2KSAnd2lu
ZG93KQotCQkJICAgICAobm90IChlcSB3aW5kb3cgKGZyYW1lLXJvb3Qtd2luZG93IHdpbmRv
dykpKSkpCi0JCSAgICAoZXEgKG50aCAzIHF1aXQtcmVzdG9yZS1wcmV2KSBidWZmZXIpCi0J
CSAgICA7OyBVc2Ugc2VsZWN0ZWQgd2luZG93IGZyb20gcXVpdC1yZXN0b3JlLXByZXYuCi0J
CSAgICAoc2V0cSBxdWl0LXJlc3RvcmUtMiBxdWl0LXJlc3RvcmUtcHJldi0yKSkpCisJICAg
KG9yIChlcSAobnRoIDEgcXVpdC1yZXN0b3JlKSAnZnJhbWUpCisJICAgICAgIChhbmQgKGVx
IChudGggMSBxdWl0LXJlc3RvcmUpICd3aW5kb3cpCisJCSAgICA7OyBJZiB0aGUgd2luZG93
IGhhcyBiZWVuIGNyZWF0ZWQgb24gYW4gZXhpc3RpbmcKKwkJICAgIDs7IGZyYW1lIGFuZCBl
bmRlZCB1cCBhcyB0aGUgc29sZSB3aW5kb3cgb24gdGhhdAorCQkgICAgOzsgZnJhbWUsIGRv
IG5vdCBkZWxldGUgaXQgKEJ1ZyMxMjc2NCkuCisJCSAgICAobm90IChlcSB3aW5kb3cgKGZy
YW1lLXJvb3Qtd2luZG93IHdpbmRvdykpKSkpCisJICAgKGVxIChudGggMyBxdWl0LXJlc3Rv
cmUpIGJ1ZmZlcikKIAkgICA7OyBEZWxldGUgV0lORE9XIGlmIHBvc3NpYmxlLgotCSAgICh3
aW5kb3ctLWRlbGV0ZSB3aW5kb3cgbmlsIChlcSBidXJ5LW9yLWtpbGwgJ2tpbGwpKSkKKwkg
ICAod2luZG93LS1kZWxldGUKKwkgICAgd2luZG93IG5pbCAobWVtcSBidXJ5LW9yLWtpbGwg
JyhraWxsIGtpbGxpbmcpKSkpCiAgICAgICA7OyBJZiB0aGUgcHJldmlvdXNseSBzZWxlY3Rl
ZCB3aW5kb3cgaXMgc3RpbGwgYWxpdmUsIHNlbGVjdCBpdC4KICAgICAgICh3aW5kb3ctLXF1
aXQtcmVzdG9yZS1zZWxlY3Qtd2luZG93IHF1aXQtcmVzdG9yZS0yKSkKICAgICAgKChvciAo
YW5kIChsaXN0cCAoc2V0cSBxdWFkIChudGggMSBxdWl0LXJlc3RvcmUtcHJldikpKQpAQCAt
NTMyOCw3ICs1Mzg0LDcgQEAgcXVpdC1yZXN0b3JlLXdpbmRvdwogICAgICAgOzsgRGVhbCB3
aXRoIHRoZSBidWZmZXIgd2UganVzdCByZW1vdmVkIGZyb20gV0lORE9XLgogICAgICAgKHNl
dHEgZW50cnkgKGFuZCAoZXEgYnVyeS1vci1raWxsICdhcHBlbmQpCiAJCSAgICAgICAoYXNz
cSBidWZmZXIgKHdpbmRvdy1wcmV2LWJ1ZmZlcnMgd2luZG93KSkpKQotICAgICAgKHdoZW4g
YnVyeS1vci1raWxsCisgICAgICAod2hlbiAobWVtcSBidXJ5LW9yLWtpbGwgJyhidXJ5IGJ1
cnlpbmcga2lsbCBraWxsaW5nKSkKIAk7OyBSZW1vdmUgYnVmZmVyIGZyb20gV0lORE9XJ3Mg
cHJldmlvdXMgYW5kIG5leHQgYnVmZmVycy4KIAkoc2V0LXdpbmRvdy1wcmV2LWJ1ZmZlcnMK
IAkgd2luZG93IChhc3NxLWRlbGV0ZS1hbGwgYnVmZmVyICh3aW5kb3ctcHJldi1idWZmZXJz
IHdpbmRvdykpKQpAQCAtNTM1OSwxMyArNTQxNSwxNCBAQCBxdWl0LXJlc3RvcmUtd2luZG93
CiAgICAgICAoaWYgKHN3aXRjaC10by1wcmV2LWJ1ZmZlciB3aW5kb3cgYnVyeS1vci1raWxs
KQogICAgICAgICAgICh3aGVuIChlcSBkZWRpY2F0ZWQgJ3NpZGUpCiAgICAgICAgICAgICAo
c2V0LXdpbmRvdy1kZWRpY2F0ZWQtcCB3aW5kb3cgJ3NpZGUpKQotICAgICAgICAod2luZG93
LS1kZWxldGUgd2luZG93IG5pbCAoZXEgYnVyeS1vci1raWxsICdraWxsKSkpKSkKKyAgICAg
ICAgKHdpbmRvdy0tZGVsZXRlCisJIHdpbmRvdyBuaWwgKG1lbXEgYnVyeS1vci1raWxsICco
a2lsbCBraWxsaW5nKSkpKSkpCiAgICAgOzsgRGVhbCB3aXRoIHRoZSBidWZmZXIuCiAgICAg
KGNvbmQKICAgICAgKChub3QgKGJ1ZmZlci1saXZlLXAgYnVmZmVyKSkpCiAgICAgICgoZXEg
YnVyeS1vci1raWxsICdraWxsKQogICAgICAgKGtpbGwtYnVmZmVyIGJ1ZmZlcikpCi0gICAg
IChidXJ5LW9yLWtpbGwKKyAgICAgKChlcSBidXJ5LW9yLWtpbGwgJ2J1cnkpCiAgICAgICAo
YnVyeS1idWZmZXItaW50ZXJuYWwgYnVmZmVyKSkpKSkKIAogKGRlZnVuIHF1aXQtd2luZG93
ICgmb3B0aW9uYWwga2lsbCB3aW5kb3cpCkBAIC01NDA2LDExICs1NDYzLDE4IEBAIHF1aXQt
d2luZG93cy1vbgogCShmcmFtZXMgKGNvbmQgKChub3QgZnJhbWUpIHQpICgoZXEgZnJhbWUg
dCkgbmlsKSAodCBmcmFtZSkpKSkKICAgICAoZG9saXN0ICh3aW5kb3cgKHdpbmRvdy1saXN0
LTEgbmlsIG5pbCBmcmFtZXMpKQogICAgICAgKHdoZW4gKGVxICh3aW5kb3ctYnVmZmVyIHdp
bmRvdykgYnVmZmVyKQotCShxdWl0LXJlc3RvcmUtd2luZG93IHdpbmRvdyBraWxsKSkKKwko
cXVpdC1yZXN0b3JlLXdpbmRvdworCSB3aW5kb3cgKGlmIGtpbGwgJ2tpbGxpbmcgJ2J1cnlp
bmcpKSkKIAogICAgICAgKHdoZW4gKHdpbmRvdy1saXZlLXAgd2luZG93KQogCTs7IFVucmVj
b3JkIEJVRkZFUiBpbiB0aGlzIHdpbmRvdy4KLQkodW5yZWNvcmQtd2luZG93LWJ1ZmZlciB3
aW5kb3cgYnVmZmVyKSkpKSkKKwkodW5yZWNvcmQtd2luZG93LWJ1ZmZlciB3aW5kb3cgYnVm
ZmVyKSkpCisKKyAgICA7OyBEZWFsIHdpdGggQlVGRkVSLU9SLU5BTUUuCisgICAgKGNvbmQK
KyAgICAgKChub3QgKGJ1ZmZlci1saXZlLXAgYnVmZmVyKSkpCisgICAgIChraWxsIChraWxs
LWJ1ZmZlciBidWZmZXIpKQorICAgICAodCAoYnVyeS1idWZmZXItaW50ZXJuYWwgYnVmZmVy
KSkpKSkKIAwKIChkZWZ1biB3aW5kb3ctLWNvbWJpbmF0aW9uLXJlc2l6YWJsZSAocGFyZW50
ICZvcHRpb25hbCBob3Jpem9udGFsKQogICAiUmV0dXJuIG51bWJlciBvZiBwaXhlbHMgcmVj
b3ZlcmFibGUgZnJvbSBoZWlnaHQgb2Ygd2luZG93IFBBUkVOVC4KQEAgLTY3MjMsOSArNjc4
NywxMSBAQCBkaXNwbGF5LWJ1ZmZlci1yZWNvcmQtd2luZG93CiAKIElmIFRZUEUgaXMgYHJl
dXNlJywgQlVGRkVSIGlzIGRpZmZlcmVudCBmcm9tIHRoZSBvbmUgY3VycmVudGx5IGRpc3Bs
YXllZAogaW4gV0lORE9XLCBhbmQgV0lORE9XIGFscmVhZHkgaGFzIGEgYHF1aXQtcmVzdG9y
ZScgcGFyYW1ldGVyLCBpbnN0YWxsIG9yCi11cGRhdGUgYSBgcXVpdC1yZXN0b3JlLXByZXYn
IHBhcmFtZXRlciBmb3IgdGhpcyB3aW5kb3cgdGhhdCBhbGxvd3MgdG8KLXF1aXQgV0lORE9X
IGluIGEgc2ltaWxhciBmYXNoaW9uIGJ1dCByZW1lbWJlcnMgdGhlIHZlcnkgZmlyc3QgaW4g
YQotc2VyaWVzIG9mIGJ1ZmZlciBkaXNwbGF5IG9wZXJhdGlvbnMgZm9yIHRoaXMgd2luZG93
LiIKK3VwZGF0ZSBhIGBxdWl0LXJlc3RvcmUtcHJldicgcGFyYW1ldGVyIGZvciB0aGlzIHdp
bmRvdy4gIFRoaXMgYWxsb3dzIGZvcgorcXVpdHRpbmcgV0lORE9XIGluIGEgc2ltaWxhciBm
YXNoaW9uIGJ1dCBhbHNvIGtlZXBzIHRoZSB2ZXJ5IGZpcnN0CitgcXVpdC1yZXN0b3JlJyBw
YXJhbWV0ZXIgc3RvcmVkIGZvciB0aGlzIHdpbmRvdyBhcm91bmQuICBDb25zZXF1ZW50bHks
CitXSU5ET1cgKG9yIGl0cyBmcmFtZSkgY2FuIGJlIGV2ZW50dWFsbHkgZGVsZXRlZCBieSBg
cXVpdC1yZXN0b3JlLXdpZG93JworaWYgdGhhdCBwYXJhbWV0ZXIncyBmb3VydGggZWxlbWVu
dCBlcXVhbHMgV0lORE9XJ3MgYnVmZmVyLiIKICAgKGNvbmQKICAgICgoZXEgdHlwZSAncmV1
c2UpCiAgICAgKGlmIChlcSAod2luZG93LWJ1ZmZlciB3aW5kb3cpIGJ1ZmZlcikKZGlmZiAt
LWdpdCBhL3NyYy9hbGxvYy5jIGIvc3JjL2FsbG9jLmMKaW5kZXggNjY2Zjc3YmZjZTEuLmI5
NTU2NTFmNWMwIDEwMDY0NAotLS0gYS9zcmMvYWxsb2MuYworKysgYi9zcmMvYWxsb2MuYwpA
QCAtNjk5OCwzMyArNjk5OCw2IEBAIG1hcmtfZmFjZV9jYWNoZSAoc3RydWN0IGZhY2VfY2Fj
aGUgKmMpCiAgICAgfQogfQogCi0vKiBSZW1vdmUga2lsbGVkIGJ1ZmZlcnMgb3IgaXRlbXMg
d2hvc2UgY2FyIGlzIGEga2lsbGVkIGJ1ZmZlciBmcm9tCi0gICBMSVNULCBhbmQgbWFyayBv
dGhlciBpdGVtcy4gIFJldHVybiBjaGFuZ2VkIExJU1QsIHdoaWNoIGlzIG1hcmtlZC4gICov
Ci0KLXN0YXRpYyBMaXNwX09iamVjdAotbWFya19kaXNjYXJkX2tpbGxlZF9idWZmZXJzIChM
aXNwX09iamVjdCBsaXN0KQotewotICBMaXNwX09iamVjdCB0YWlsLCAqcHJldiA9ICZsaXN0
OwotCi0gIGZvciAodGFpbCA9IGxpc3Q7IENPTlNQICh0YWlsKSAmJiAhY29uc19tYXJrZWRf
cCAoWENPTlMgKHRhaWwpKTsKLSAgICAgICB0YWlsID0gWENEUiAodGFpbCkpCi0gICAgewot
ICAgICAgTGlzcF9PYmplY3QgdGVtID0gWENBUiAodGFpbCk7Ci0gICAgICBpZiAoQ09OU1Ag
KHRlbSkpCi0JdGVtID0gWENBUiAodGVtKTsKLSAgICAgIGlmIChCVUZGRVJQICh0ZW0pICYm
ICFCVUZGRVJfTElWRV9QIChYQlVGRkVSICh0ZW0pKSkKLQkqcHJldiA9IFhDRFIgKHRhaWwp
OwotICAgICAgZWxzZQotCXsKLQkgIHNldF9jb25zX21hcmtlZCAoWENPTlMgKHRhaWwpKTsK
LQkgIG1hcmtfb2JqZWN0IChYQ0FSICh0YWlsKSk7Ci0JICBwcmV2ID0geGNkcl9hZGRyICh0
YWlsKTsKLQl9Ci0gICAgfQotICBtYXJrX29iamVjdCAodGFpbCk7Ci0gIHJldHVybiBsaXN0
OwotfQotCiBzdGF0aWMgdm9pZAogbWFya19mcmFtZSAoc3RydWN0IExpc3BfVmVjdG9yICpw
dHIpCiB7CkBAIC03MDc5LDE1ICs3MDUyLDYgQEAgbWFya193aW5kb3cgKHN0cnVjdCBMaXNw
X1ZlY3RvciAqcHRyKQogICAgICAgbWFya19nbHlwaF9tYXRyaXggKHctPmN1cnJlbnRfbWF0
cml4KTsKICAgICAgIG1hcmtfZ2x5cGhfbWF0cml4ICh3LT5kZXNpcmVkX21hdHJpeCk7CiAg
ICAgfQotCi0gIC8qIEZpbHRlciBvdXQga2lsbGVkIGJ1ZmZlcnMgZnJvbSBib3RoIGJ1ZmZl
ciBsaXN0cwotICAgICBpbiBhdHRlbXB0IHRvIGhlbHAgR0MgdG8gcmVjbGFpbSBraWxsZWQg
YnVmZmVycyBmYXN0ZXIuCi0gICAgIFdlIGNhbiBkbyBpdCBlbHNld2hlcmUgZm9yIGxpdmUg
d2luZG93cywgYnV0IHRoaXMgaXMgdGhlCi0gICAgIGJlc3QgcGxhY2UgdG8gZG8gaXQgZm9y
IGRlYWQgd2luZG93cy4gICovCi0gIHdzZXRfcHJldl9idWZmZXJzCi0gICAgKHcsIG1hcmtf
ZGlzY2FyZF9raWxsZWRfYnVmZmVycyAody0+cHJldl9idWZmZXJzKSk7Ci0gIHdzZXRfbmV4
dF9idWZmZXJzCi0gICAgKHcsIG1hcmtfZGlzY2FyZF9raWxsZWRfYnVmZmVycyAody0+bmV4
dF9idWZmZXJzKSk7CiB9CiAKIC8qIEVudHJ5IG9mIHRoZSBtYXJrIHN0YWNrLiAgKi8KZGlm
ZiAtLWdpdCBhL3NyYy9idWZmZXIuYyBiL3NyYy9idWZmZXIuYwppbmRleCA3NDRiMGVmNTU0
OC4uNmVjNDBhZmY2NDYgMTAwNjQ0Ci0tLSBhL3NyYy9idWZmZXIuYworKysgYi9zcmMvYnVm
ZmVyLmMKQEAgLTIwMTIsNiArMjAxMiwxMyBAQCBERUZVTiAoImtpbGwtYnVmZmVyIiwgRmtp
bGxfYnVmZmVyLCBTa2lsbF9idWZmZXIsIDAsIDEsICJiS2lsbCBidWZmZXI6ICIsCiAgICAg
IGJ1ZmZlciAoYnVnIzEwMTE0KS4gICovCiAgIHJlcGxhY2VfYnVmZmVyX2luX3dpbmRvd3Mg
KGJ1ZmZlcik7CiAKKyAgLyogRm9yIGRlYWQgd2luZG93cyB0aGF0IGhhdmUgbm90IGJlZW4g
Y29sbGVjdGVkIHlldCwgcmVtb3ZlIHRoaXMKKyAgICAgYnVmZmVyIGZyb20gdGhvc2Ugd2lu
ZG93cycgbGlzdHMgb2YgcHJldmlvdXNseSBhbmQgbmV4dCBzaG93bgorICAgICBidWZmZXJz
IGFuZCByZW1vdmUgYW55ICdxdWl0LXJlc3RvcmUnIG9yICdxdWl0LXJlc3RvcmUtcHJldicK
KyAgICAgcGFyYW1ldGVycyBtZW50aW9uaW5nIHRoZSBidWZmZXIuICAqLworICBpZiAoWEZJ
WE5VTSAoQlZBUiAoYiwgZGlzcGxheV9jb3VudCkpID4gMCkKKyAgICB3aW5kb3dfZGlzY2Fy
ZF9idWZmZXJfZnJvbV9kZWFkX3dpbmRvd3MgKGJ1ZmZlcik7CisKICAgLyogRXhpdCBpZiBy
ZXBsYWNpbmcgdGhlIGJ1ZmZlciBpbiB3aW5kb3dzIGhhcyBraWxsZWQgb3VyIGJ1ZmZlci4g
ICovCiAgIGlmICghQlVGRkVSX0xJVkVfUCAoYikpCiAgICAgcmV0dXJuIFF0OwpkaWZmIC0t
Z2l0IGEvc3JjL3dpbmRvdy5jIGIvc3JjL3dpbmRvdy5jCmluZGV4IGZmMjhiYWM1MzA2Li5k
ZDBhYmU4NGZkZiAxMDA2NDQKLS0tIGEvc3JjL3dpbmRvdy5jCisrKyBiL3NyYy93aW5kb3cu
YwpAQCAtMzI3Nyw2ICszMjc3LDkwIEBAIHdpbmRvd19waXhlbF90b190b3RhbCAoTGlzcF9P
YmplY3QgZnJhbWUsIExpc3BfT2JqZWN0IGhvcml6b250YWwpCiB9CiAKIAorLyogUmVtb3Zl
IGZpcnN0IG9jY3VycmVuY2Ugb2YgZWxlbWVudCB3aG9zZSBjYXIgaXMgQlVGRkVSIGZyb20g
QUxJU1QuCisgICBSZXR1cm4gY2hhbmdlZCBBTElTVC4gICovCitzdGF0aWMgTGlzcF9PYmpl
Y3QKK3dpbmRvd19kaXNjYXJkX2J1ZmZlcl9mcm9tX2FsaXN0IChMaXNwX09iamVjdCBidWZm
ZXIsIExpc3BfT2JqZWN0IGFsaXN0KQoreworICBMaXNwX09iamVjdCB0YWlsLCAqcHJldiA9
ICZhbGlzdDsKKworICBmb3IgKHRhaWwgPSBhbGlzdDsgQ09OU1AgKHRhaWwpOyB0YWlsID0g
WENEUiAodGFpbCkpCisgICAgeworICAgICAgTGlzcF9PYmplY3QgdGVtID0gWENBUiAodGFp
bCk7CisKKyAgICAgIHRlbSA9IFhDQVIgKHRlbSk7CisKKyAgICAgIGlmIChFUSAodGVtLCBi
dWZmZXIpKQorCXsKKwkgICpwcmV2ID0gWENEUiAodGFpbCk7CisJICBicmVhazsKKwl9Cisg
ICAgICBlbHNlCisJcHJldiA9IHhjZHJfYWRkciAodGFpbCk7CisgICAgfQorCisgIHJldHVy
biBhbGlzdDsKK30KKworLyogUmVtb3ZlIGZpcnN0IG9jY3VycmVuY2Ugb2YgQlVGRkVSIGZy
b20gTElTVC4gIFJldHVybiBjaGFuZ2VkCisgICBMSVNULiAgKi8KK3N0YXRpYyBMaXNwX09i
amVjdAord2luZG93X2Rpc2NhcmRfYnVmZmVyX2Zyb21fbGlzdCAoTGlzcF9PYmplY3QgYnVm
ZmVyLCBMaXNwX09iamVjdCBsaXN0KQoreworICBMaXNwX09iamVjdCB0YWlsLCAqcHJldiA9
ICZsaXN0OworCisgIGZvciAodGFpbCA9IGxpc3Q7IENPTlNQICh0YWlsKTsgdGFpbCA9IFhD
RFIgKHRhaWwpKQorICAgIHsKKyAgICAgIGlmIChFUSAoWENBUiAodGFpbCksIGJ1ZmZlcikp
CisJeworCSAgKnByZXYgPSBYQ0RSICh0YWlsKTsKKwkgIGJyZWFrOworCX0KKyAgICAgIGVs
c2UKKwlwcmV2ID0geGNkcl9hZGRyICh0YWlsKTsKKyAgICB9CisKKyAgcmV0dXJuIGxpc3Q7
Cit9CisKK3N0YXRpYyB2b2lkCit3aW5kb3dfZGlzY2FyZF9idWZmZXJfZnJvbV9kZWFkX3dp
bmRvdyAoTGlzcF9PYmplY3QgYnVmZmVyLCBMaXNwX09iamVjdCB3aW5kb3cpCit7CisgIHN0
cnVjdCB3aW5kb3cgKncgPSBYV0lORE9XICh3aW5kb3cpOworICBMaXNwX09iamVjdCBxdWl0
X3Jlc3RvcmUgPSB3aW5kb3dfcGFyYW1ldGVyICh3LCBRcXVpdF9yZXN0b3JlKTsKKyAgTGlz
cF9PYmplY3QgcXVpdF9yZXN0b3JlX3ByZXYgPSB3aW5kb3dfcGFyYW1ldGVyICh3LCBRcXVp
dF9yZXN0b3JlX3ByZXYpOworICBMaXNwX09iamVjdCBxdWFkOworCisgIHdzZXRfcHJldl9i
dWZmZXJzCisgICAgKHcsIHdpbmRvd19kaXNjYXJkX2J1ZmZlcl9mcm9tX2FsaXN0IChidWZm
ZXIsIHctPnByZXZfYnVmZmVycykpOworICB3c2V0X25leHRfYnVmZmVycworICAgICh3LCB3
aW5kb3dfZGlzY2FyZF9idWZmZXJfZnJvbV9saXN0IChidWZmZXIsIHctPm5leHRfYnVmZmVy
cykpOworCisgIGlmIChFUSAoYnVmZmVyLCBGbnRoIChtYWtlX2ZpeG51bSAoMyksIHF1aXRf
cmVzdG9yZV9wcmV2KSkKKyAgICAgIHx8IChDT05TUCAocXVhZCA9IEZjYXIgKEZjZHIgKHF1
aXRfcmVzdG9yZV9wcmV2KSkpCisJICAmJiBFUSAoRmNhciAocXVhZCksIGJ1ZmZlcikpKQor
ICAgIEZzZXRfd2luZG93X3BhcmFtZXRlciAod2luZG93LCBRcXVpdF9yZXN0b3JlX3ByZXYs
IFFuaWwpOworCisgIGlmIChFUSAoYnVmZmVyLCBGbnRoIChtYWtlX2ZpeG51bSAoMyksIHF1
aXRfcmVzdG9yZSkpCisgICAgICB8fCAoQ09OU1AgKHF1YWQgPSBGY2FyIChGY2RyIChxdWl0
X3Jlc3RvcmUpKSkKKwkgICYmIEVRIChGY2FyIChxdWFkKSwgYnVmZmVyKSkpCisgICAgewor
ICAgICAgRnNldF93aW5kb3dfcGFyYW1ldGVyICh3aW5kb3csIFFxdWl0X3Jlc3RvcmUsCisJ
CQkgICAgIHdpbmRvd19wYXJhbWV0ZXIgKHcsIFFxdWl0X3Jlc3RvcmVfcHJldikpOworICAg
ICAgRnNldF93aW5kb3dfcGFyYW1ldGVyICh3aW5kb3csIFFxdWl0X3Jlc3RvcmVfcHJldiwg
UW5pbCk7CisgICAgfQorfQorCit2b2lkCit3aW5kb3dfZGlzY2FyZF9idWZmZXJfZnJvbV9k
ZWFkX3dpbmRvd3MgKExpc3BfT2JqZWN0IGJ1ZmZlcikKK3sKKyAgc3RydWN0IExpc3BfSGFz
aF9UYWJsZSAqaCA9IFhIQVNIX1RBQkxFICh3aW5kb3dfZGVhZF93aW5kb3dzX3RhYmxlKTsK
KworICBET0hBU0ggKGgsIGssIHYpCisgICAgd2luZG93X2Rpc2NhcmRfYnVmZmVyX2Zyb21f
ZGVhZF93aW5kb3cgKGJ1ZmZlciwgdik7Cit9CisKKwogREVGVU4gKCJkZWxldGUtb3RoZXIt
d2luZG93cy1pbnRlcm5hbCIsIEZkZWxldGVfb3RoZXJfd2luZG93c19pbnRlcm5hbCwKICAg
ICAgICBTZGVsZXRlX290aGVyX3dpbmRvd3NfaW50ZXJuYWwsIDAsIDIsICIiLAogICAgICAg
IGRvYzogLyogTWFrZSBXSU5ET1cgZmlsbCBpdHMgZnJhbWUuCkBAIC00NDAyLDYgKzQ0ODYs
MTAgQEAgbWFrZV9wYXJlbnRfd2luZG93IChMaXNwX09iamVjdCB3aW5kb3csIGJvb2wgaG9y
ZmxhZykKICAgd3NldF9idWZmZXIgKHAsIFFuaWwpOwogICB3c2V0X2NvbWJpbmF0aW9uIChw
LCBob3JmbGFnLCB3aW5kb3cpOwogICB3c2V0X2NvbWJpbmF0aW9uX2xpbWl0IChwLCBRbmls
KTsKKyAgLyogUmVzZXQgYW55IHByZXZpb3VzIGFuZCBuZXh0IGJ1ZmZlcnMgb2YgcCB3aGlj
aCBoYXZlIGJlZW4gaW5zdGFsbGVkCisgICAgIGJ5IHRoZSBtZW1jcHkgYWJvdmUuICAqLwor
ICB3c2V0X3ByZXZfYnVmZmVycyAocCwgUW5pbCk7CisgIHdzZXRfbmV4dF9idWZmZXJzIChw
LCBRbmlsKTsKICAgd3NldF93aW5kb3dfcGFyYW1ldGVycyAocCwgUW5pbCk7CiB9CiAKQEAg
LTQ0MjYsMTAgKzQ1MTQsNiBAQCBtYWtlX3dpbmRvdyAodm9pZCkKICAgd3NldF92ZXJ0aWNh
bF9zY3JvbGxfYmFyX3R5cGUgKHcsIFF0KTsKICAgd3NldF9ob3Jpem9udGFsX3Njcm9sbF9i
YXJfdHlwZSAodywgUXQpOwogICB3c2V0X2N1cnNvcl90eXBlICh3LCBRdCk7Ci0gIC8qIFRo
ZXNlIExpc3AgZmllbGRzIGFyZSBtYXJrZWQgc3BlY2lhbGx5IHNvIHRoZXkncmUgbm90IHNl
dCB0byBuaWwgYnkKLSAgICAgYWxsb2NhdGVfd2luZG93LiAgKi8KLSAgd3NldF9wcmV2X2J1
ZmZlcnMgKHcsIFFuaWwpOwotICB3c2V0X25leHRfYnVmZmVycyAodywgUW5pbCk7CiAKICAg
LyogSW5pdGlhbGl6ZSBub24tTGlzcCBkYXRhLiAgTm90ZSB0aGF0IGFsbG9jYXRlX3dpbmRv
dyB6ZXJvZXMgb3V0IGFsbAogICAgICBub24tTGlzcCBkYXRhLCBzbyBkbyBpdCBvbmx5IGZv
ciBzbG90cyB3aGljaCBzaG91bGQgbm90IGJlIHplcm8uICAqLwpAQCAtNTI1Miw2ICs1MzM2
LDExIEBAIERFRlVOICgiZGVsZXRlLXdpbmRvdy1pbnRlcm5hbCIsIEZkZWxldGVfd2luZG93
X2ludGVybmFsLCBTZGVsZXRlX3dpbmRvd19pbnRlcm5hCiAJICB1bmNoYWluX21hcmtlciAo
WE1BUktFUiAody0+b2xkX3BvaW50bSkpOwogCSAgdW5jaGFpbl9tYXJrZXIgKFhNQVJLRVIg
KHctPnN0YXJ0KSk7CiAJICB3c2V0X2J1ZmZlciAodywgUW5pbCk7CisJICAvKiBBZGQgV0lO
RE9XIHRvIHRhYmxlIG9mIGRlYWQgd2luZG93cyBzbyB3aGVuIGtpbGxpbmcgYSBidWZmZXIK
KwkgICAgIFdJTkRPVyBtZW50aW9ucywgYWxsIHJlZmVyZW5jZXMgdG8gdGhhdCBidWZmZXIg
Y2FuIGJlIHJlbW92ZWQKKwkgICAgIGFuZCB0aGUgYnVmZmVyIGJlIGNvbGxlY3RlZC4gICov
CisJICBGcHV0aGFzaCAobWFrZV9maXhudW0gKHctPnNlcXVlbmNlX251bWJlciksCisJCSAg
ICB3aW5kb3csIHdpbmRvd19kZWFkX3dpbmRvd3NfdGFibGUpOwogCX0KIAogICAgICAgaWYg
KE5JTFAgKHMtPnByZXYpICYmIE5JTFAgKHMtPm5leHQpKQpAQCAtNzM1Niw2ICs3NDQ1LDEw
IEBAIERFRlVOICgic2V0LXdpbmRvdy1jb25maWd1cmF0aW9uIiwgRnNldF93aW5kb3dfY29u
ZmlndXJhdGlvbiwKIAkJfQogCSAgICB9CiAKKwkgIC8qIFJlbW92ZSB3aW5kb3cgZnJvbSB0
aGUgdGFibGUgb2YgZGVhZCB3aW5kb3dzLiAgKi8KKwkgIEZyZW1oYXNoIChtYWtlX2ZpeG51
bSAody0+c2VxdWVuY2VfbnVtYmVyKSwKKwkJICAgIHdpbmRvd19kZWFkX3dpbmRvd3NfdGFi
bGUpOworCiAJICBpZiAoKE5JTFAgKGRvbnRfc2V0X21pbml3aW5kb3cpIHx8ICFNSU5JX1dJ
TkRPV19QICh3KSkKIAkgICAgICAmJiBCVUZGRVJQIChwLT5idWZmZXIpICYmIEJVRkZFUl9M
SVZFX1AgKFhCVUZGRVIgKHAtPmJ1ZmZlcikpKQogCSAgICAvKiBJZiBzYXZlZCBidWZmZXIg
aXMgYWxpdmUsIGluc3RhbGwgaXQsIHVubGVzcyBpdCdzIGEKQEAgLTc1ODUsNiArNzY3OCwx
MSBAQCBkZWxldGVfYWxsX2NoaWxkX3dpbmRvd3MgKExpc3BfT2JqZWN0IHdpbmRvdykKIAkg
cG9zc2libGUgcmVzdXJyZWN0aW9uIGluIEZzZXRfd2luZG93X2NvbmZpZ3VyYXRpb24uICAq
LwogICAgICAgd3NldF9jb21iaW5hdGlvbl9saW1pdCAodywgdy0+Y29udGVudHMpOwogICAg
ICAgd3NldF9idWZmZXIgKHcsIFFuaWwpOworICAgICAgLyogQWRkIFdJTkRPVyB0byB0YWJs
ZSBvZiBkZWFkIHdpbmRvd3Mgc28gd2hlbiBraWxsaW5nIGEgYnVmZmVyCisJIFdJTkRPVyBt
ZW50aW9ucywgYWxsIHJlZmVyZW5jZXMgdG8gdGhhdCBidWZmZXIgY2FuIGJlIHJlbW92ZWQK
KwkgYW5kIHRoZSBidWZmZXIgYmUgY29sbGVjdGVkLiAgKi8KKyAgICAgIEZwdXRoYXNoICht
YWtlX2ZpeG51bSAody0+c2VxdWVuY2VfbnVtYmVyKSwKKwkJd2luZG93LCB3aW5kb3dfZGVh
ZF93aW5kb3dzX3RhYmxlKTsKICAgICB9CiAKICAgVndpbmRvd19saXN0ID0gUW5pbDsKQEAg
LTg1OTQsNiArODY5Miw4IEBAIHN5bXNfb2Zfd2luZG93ICh2b2lkKQogICBERUZTWU0gKFFj
b25maWd1cmF0aW9uLCAiY29uZmlndXJhdGlvbiIpOwogICBERUZTWU0gKFFkZWxldGUsICJk
ZWxldGUiKTsKICAgREVGU1lNIChRZGVkaWNhdGVkLCAiZGVkaWNhdGVkIik7CisgIERFRlNZ
TSAoUXF1aXRfcmVzdG9yZSwgInF1aXQtcmVzdG9yZSIpOworICBERUZTWU0gKFFxdWl0X3Jl
c3RvcmVfcHJldiwgInF1aXQtcmVzdG9yZS1wcmV2Iik7CiAKICAgREVGVkFSX0xJU1AgKCJ0
ZW1wLWJ1ZmZlci1zaG93LWZ1bmN0aW9uIiwgVnRlbXBfYnVmZmVyX3Nob3dfZnVuY3Rpb24s
CiAJICAgICAgIGRvYzogLyogTm9uLW5pbCBtZWFucyBjYWxsIGFzIGZ1bmN0aW9uIHRvIGRp
c3BsYXkgYSBoZWxwIGJ1ZmZlci4KQEAgLTg5MTcsNiArOTAxNywxNyBAQCBzeW1zX29mX3dp
bmRvdyAodm9pZCkKIGRpc3BsYXllZCBhZnRlciBhIHNjcm9sbGluZyBvcGVyYXRpb24gdG8g
YmUgc29tZXdoYXQgaW5hY2N1cmF0ZS4gICovKTsKICAgZmFzdF9idXRfaW1wcmVjaXNlX3Nj
cm9sbGluZyA9IGZhbHNlOwogCisgIERFRlZBUl9MSVNQICgid2luZG93LWRlYWQtd2luZG93
cy10YWJsZSIsIHdpbmRvd19kZWFkX3dpbmRvd3NfdGFibGUsCisgICAgZG9jOiAvKiBIYXNo
IHRhYmxlIG9mIGRlYWQgd2luZG93cy4KK0VhY2ggZW50cnkgaW4gdGhpcyB0YWJsZSBtYXBz
IGEgd2luZG93IG51bWJlciB0byBhIHdpbmRvdyBvYmplY3QuCitFbnRyaWVzIGFyZSBhZGRl
ZCBieSBgZGVsZXRlLXdpbmRvdy1pbnRlcm5hbCcgYW5kIGFyZSByZW1vdmVkIGJ5IHRoZQor
Z2FyYmFnZSBjb2xsZWN0b3IuCisKK1RoaXMgdGFibGUgaXMgbWFpbnRhaW5lZCBieSBjb2Rl
IGluIHdpbmRvdy5jIGFuZCBpcyBtYWRlIHZpc2libGUgaW4KK0VsaXNwIGZvciB0ZXN0aW5n
IHB1cnBvc2VzIG9ubHkuICAqLyk7CisgIHdpbmRvd19kZWFkX3dpbmRvd3NfdGFibGUKKyAg
ICA9IENBTExOIChGbWFrZV9oYXNoX3RhYmxlLCBRQ3dlYWtuZXNzLCBRdCk7CisKICAgZGVm
c3ViciAoJlNzZWxlY3RlZF93aW5kb3cpOwogICBkZWZzdWJyICgmU29sZF9zZWxlY3RlZF93
aW5kb3cpOwogICBkZWZzdWJyICgmU21pbmlidWZmZXJfd2luZG93KTsKZGlmZiAtLWdpdCBh
L3NyYy93aW5kb3cuaCBiL3NyYy93aW5kb3cuaAppbmRleCA4NjkzMjE4MTI1Mi4uMzM1ZTBh
MzQ1M2UgMTAwNjQ0Ci0tLSBhL3NyYy93aW5kb3cuaAorKysgYi9zcmMvd2luZG93LmgKQEAg
LTE0Miw2ICsxNDIsMTIgQEAgI2RlZmluZSBXSU5ET1dfSF9JTkNMVURFRAogICAgICAgIGFz
IHdlbGwuICAqLwogICAgIExpc3BfT2JqZWN0IGNvbnRlbnRzOwogCisgICAgLyogQSBsaXN0
IG9mIDxidWZmZXIsIHdpbmRvdy1zdGFydCwgd2luZG93LXBvaW50PiB0cmlwbGVzIGxpc3Rp
bmcKKyAgICAgICBidWZmZXJzIHByZXZpb3VzbHkgc2hvd24gaW4gdGhpcyB3aW5kb3cuICAq
LworICAgIExpc3BfT2JqZWN0IHByZXZfYnVmZmVyczsKKyAgICAvKiBMaXN0IG9mIGJ1ZmZl
cnMgcmUtc2hvd24gaW4gdGhpcyB3aW5kb3cuICAqLworICAgIExpc3BfT2JqZWN0IG5leHRf
YnVmZmVyczsKKwogICAgIC8qIFRoZSBvbGQgYnVmZmVyIG9mIHRoaXMgd2luZG93LCBzZXQg
dG8gdGhpcyB3aW5kb3cncyBidWZmZXIgYnkKICAgICAgICBydW5fd2luZG93X2NoYW5nZV9m
dW5jdGlvbnMgZXZlcnkgdGltZSBpdCBzZWVzIHRoaXMgd2luZG93LgogICAgICAgIFVudXNl
ZCBmb3IgaW50ZXJuYWwgd2luZG93cy4gICovCkBAIC0yMTgsMTQgKzIyNCw2IEBAICNkZWZp
bmUgV0lORE9XX0hfSU5DTFVERUQKICAgICBzdHJ1Y3QgZ2x5cGhfbWF0cml4ICpjdXJyZW50
X21hdHJpeDsKICAgICBzdHJ1Y3QgZ2x5cGhfbWF0cml4ICpkZXNpcmVkX21hdHJpeDsKIAot
ICAgIC8qIFRoZSB0d28gTGlzcF9PYmplY3QgZmllbGRzIGJlbG93IGFyZSBtYXJrZWQgaW4g
YSBzcGVjaWFsIHdheSwKLSAgICAgICB3aGljaCBpcyB3aHkgdGhleSdyZSBwbGFjZWQgYWZ0
ZXIgYGN1cnJlbnRfbWF0cml4Jy4gICovCi0gICAgLyogQSBsaXN0IG9mIDxidWZmZXIsIHdp
bmRvdy1zdGFydCwgd2luZG93LXBvaW50PiB0cmlwbGVzIGxpc3RpbmcKLSAgICAgICBidWZm
ZXJzIHByZXZpb3VzbHkgc2hvd24gaW4gdGhpcyB3aW5kb3cuICAqLwotICAgIExpc3BfT2Jq
ZWN0IHByZXZfYnVmZmVyczsKLSAgICAvKiBMaXN0IG9mIGJ1ZmZlcnMgcmUtc2hvd24gaW4g
dGhpcyB3aW5kb3cuICAqLwotICAgIExpc3BfT2JqZWN0IG5leHRfYnVmZmVyczsKLQogICAg
IC8qIE51bWJlciBzYXlpbmcgaG93IHJlY2VudGx5IHdpbmRvdyB3YXMgc2VsZWN0ZWQuICAq
LwogICAgIEVNQUNTX0lOVCB1c2VfdGltZTsKIApAQCAtMTIyOCw2ICsxMjI2LDcgQEAgI2Rl
ZmluZSBDSEVDS19MSVZFX1dJTkRPVyhXSU5ET1cpCQkJCVwKIGV4dGVybiB2b2lkIHdzZXRf
YnVmZmVyIChzdHJ1Y3Qgd2luZG93ICosIExpc3BfT2JqZWN0KTsKIGV4dGVybiBib29sIHdp
bmRvd19vdXRkYXRlZCAoc3RydWN0IHdpbmRvdyAqKTsKIGV4dGVybiBwdHJkaWZmX3Qgd2lu
ZG93X3BvaW50IChzdHJ1Y3Qgd2luZG93ICp3KTsKK2V4dGVybiB2b2lkIHdpbmRvd19kaXNj
YXJkX2J1ZmZlcl9mcm9tX2RlYWRfd2luZG93cyAoTGlzcF9PYmplY3QpOwogZXh0ZXJuIHZv
aWQgaW5pdF93aW5kb3dfb25jZSAodm9pZCk7CiBleHRlcm4gdm9pZCBpbml0X3dpbmRvdyAo
dm9pZCk7CiBleHRlcm4gdm9pZCBzeW1zX29mX3dpbmRvdyAodm9pZCk7Cg==

--------------LljYayqEV1Ur0nfWMbfh90n8--




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#59862; Package emacs. Full text available.

Message received at 59862 <at> debbugs.gnu.org:


Received: (at 59862) by debbugs.gnu.org; 17 Jun 2024 14:48:29 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Mon Jun 17 10:48:29 2024
Received: from localhost ([127.0.0.1]:34970 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1sJDen-00088z-Fk
	for submit <at> debbugs.gnu.org; Mon, 17 Jun 2024 10:48:29 -0400
Received: from mout.gmx.net ([212.227.17.22]:45757)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <rudalics@HIDDEN>) id 1sJDel-00088k-L2
 for 59862 <at> debbugs.gnu.org; Mon, 17 Jun 2024 10:48:28 -0400
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmx.at;
 s=s31663417; t=1718635697; x=1719240497; i=rudalics@HIDDEN;
 bh=VvZwhhMaEkBr7O4LoZR0BLe7Mx2Av+JYYpb5mQhA4/c=;
 h=X-UI-Sender-Class:Message-ID:Date:MIME-Version:Subject:To:Cc:
 References:From:In-Reply-To:Content-Type:
 Content-Transfer-Encoding:cc:content-transfer-encoding:
 content-type:date:from:message-id:mime-version:reply-to:subject:
 to;
 b=NvIXMgsjr+N2qH//zfuuhg6V4OctbOMgbsnCA3uQbNIIFOu6KfH1ZURG2iWJtFjD
 d3LMSKuDzXrCmh4xM6RjTCSmR+k8NZlteoB0T2ZOFNOplymg2PPSxa/geeZY35Ypc
 SyuRH5ic8XhcW+q9J1Cg9ZFWPPPOx98HfYummc9fRmFiH0Cj2NIM8lxFlyayAbRqA
 eh2tojVZ2McLYOg0nW+dw4wDzXqCYAFc+uScx4M4BIw9veDyH1clFXjLqu7gfAlM+
 hpW4CmgpcwAyvlHCaTlPk4tboeAcX31ayx5ASCYQHWj1wHcwyqZ+VFpMF41qcl7oF
 +AXdo6wGrKyLP06GBA==
X-UI-Sender-Class: 724b4f7f-cbec-4199-ad4e-598c01a50d3a
Received: from [192.168.31.113] ([212.95.5.42]) by mail.gmx.net (mrgmx105
 [212.227.17.168]) with ESMTPSA (Nemesis) id 1Mwfac-1sZFOt0HIw-010mid; Mon, 17
 Jun 2024 16:48:17 +0200
Message-ID: <3e839dd9-e1fc-445c-9170-5d48add5dfaf@HIDDEN>
Date: Mon, 17 Jun 2024 16:48:16 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: bug#59862: quit-restore per window buffer
To: Juri Linkov <juri@HIDDEN>
References: <86fsds8mlm.fsf@HIDDEN> <86ttibq1w1.fsf@HIDDEN>
 <8243325e-ed03-4e9e-b64f-c8225fb6dc60@HIDDEN>
 <18173da7-32e1-4f14-bbea-9a8fa66af7dd@HIDDEN>
 <f9eb9bae-6275-4448-9590-e72a56064220@HIDDEN>
 <86plsxmc6d.fsf@HIDDEN> <86r0d4ezdc.fsf@HIDDEN>
 <0d01a044-d7d6-456a-9ba9-d987faad4332@HIDDEN>
 <86frthjq4y.fsf@HIDDEN>
 <743dc4dd-cf09-4c5e-9209-b63a47480e0b@HIDDEN>
 <86msnne7ut.fsf@HIDDEN>
 <ad0bfe5d-817b-4d11-b82f-90c5a76b4c81@HIDDEN>
 <86plsgrfvu.fsf@HIDDEN>
Content-Language: en-US
From: martin rudalics <rudalics@HIDDEN>
In-Reply-To: <86plsgrfvu.fsf@HIDDEN>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
X-Provags-ID: V03:K1:YFBfXm29KDK6/ZMrtftVvIXjmIgJ75sR3olLOIpTElQztWZEsEb
 4JYxK9zqW04iadv50hltESJJnaXfG+gp8/awhJxAisPJsDRTDMygIvicIppCNArHDR9FUYg
 KF+coQ4rdTtfnkGZofIRScbSfD2DGTdNkZM5YWk72VzUT3tXU0gb5BqDLDJqcd1D4HJRexh
 vnmlrSvzEYZwUn9vGDKJQ==
X-Spam-Flag: NO
UI-OutboundReport: notjunk:1;M01:P0:Eqh0JJr6YDY=;mviVtWaddLOz58uZBtSN5TboMWX
 52DMK6vakjNi4FNnQoiiFO1Eii3YvFyR3j5Z49ZEwekCxzdatTSujuihDlWf6W1aXxiUvrGJp
 3Ok3uDHDbWq6g2aYhrcBPHU0ddxWpCw7qPp6/6KFwmyRO0inZk91twOcq4w5l7cAtvgaa271X
 zSXyaahP8bm7X6L8uVrq4Vm4O22RKpOlolpSSdisBkfzSEgsHcDoFGXZ4mVdUF0Vz1TAROuh2
 4G0xLmmg6Wph55rj0+TM6fUkT1sQEZJD/AyD/dEP2h1VtVDm3otedceJuPaunQHps5cOIDyzN
 YQfKFsrOaLgmGH1lAb0RVwryJtuTLcOc/mYtHYOTtxuLQ20vx909m43IOqmI8H5xqzCrrtQIj
 /MM9WIMxEudpjAApvIeRXM3qmZfgQaQGtVb+j2xsRMd7mdizJ8v89+jqcGSpTyQrzw7NwfWGL
 i1iq6unh3YvJH43xWlIhEr20RGf0f293HQX6v9TdDqySTqpQeqCM2Em/d+y6TE3tTgnpQ5ASA
 kozZaG4URyxOOU3J44x+M99Lt5n0BdwQflBvXYM7UDncyckEUrN44Tj7TmJ8EVZCffFuz3D7s
 4YJQzSW3Co5ggubI8low3FUloL9yf/IJcYlwE3jzF3KznLDKUwS/KcnHQ6kizxXOVWYsWk9gL
 1j1vrtcQfMrUJjqrjNVeiaadLleGX53YrIPaO52/98/jFqodAeTBx6B9DbCWcHTrI1Uv/BO+o
 tyEvQt5nWbZZsJEd4y13xkk3riOE/otKvZ7Bikk23ElXswmqro6QS9YXliSM3kRACRFP9cGDl
 YLPym0Kza+DMpSciO1st2VJiXDWQOkmbY4RrIDa+WJp9s=
X-Spam-Score: 2.9 (++)
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: > + (< (seq-count (lambda (w) (window-parameter w
 'quit-restore))
 > + (window-list-1 nil 'nomini)) As I said before nil as argument for
 'window-list-1'
 is not correct. 'window--delete' can be called by 'quit-windows-on' which
 has to work for quitting any window on any frame. 
 Content analysis details:   (2.9 points, 10.0 required)
 pts rule name              description
 ---- ---------------------- --------------------------------------------------
 3.6 RCVD_IN_SBL_CSS        RBL: Received via a relay in Spamhaus SBL-CSS
 [212.95.5.42 listed in zen.spamhaus.org]
 0.0 FREEMAIL_FROM          Sender email is commonly abused enduser mail
 provider (rudalics[at]gmx.at)
 -0.0 SPF_PASS               SPF: sender matches SPF record
 0.0 SPF_HELO_NONE          SPF: HELO does not publish an SPF Record
 -0.7 RCVD_IN_DNSWL_LOW      RBL: Sender listed at https://www.dnswl.org/,
 low trust [212.227.17.22 listed in list.dnswl.org]
 0.0 RCVD_IN_MSPIKE_H3      RBL: Good reputation (+3)
 [212.227.17.22 listed in wl.mailspike.net]
 -0.0 T_SCC_BODY_TEXT_LINE   No description available.
 0.0 RCVD_IN_MSPIKE_WL      Mailspike good senders
X-Debbugs-Envelope-To: 59862
Cc: 59862 <at> debbugs.gnu.org
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: 1.9 (+)
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:  > + (< (seq-count (lambda (w) (window-parameter w 'quit-restore))
    > + (window-list-1 nil 'nomini)) As I said before nil as argument for 'window-list-1'
    is not correct. 'window--delete' can be called by 'quit-windows-on' which
    has to work for quitting any window on any frame. 
 
 Content analysis details:   (1.9 points, 10.0 required)
 
  pts rule name              description
 ---- ---------------------- --------------------------------------------------
  3.6 RCVD_IN_SBL_CSS        RBL: Received via a relay in Spamhaus SBL-CSS
                             [212.95.5.42 listed in zen.spamhaus.org]
 -0.7 RCVD_IN_DNSWL_LOW      RBL: Sender listed at https://www.dnswl.org/,
                             low trust
                             [212.227.17.22 listed in list.dnswl.org]
  0.0 RCVD_IN_MSPIKE_H3      RBL: Good reputation (+3)
                             [212.227.17.22 listed in wl.mailspike.net]
  0.0 FREEMAIL_FROM          Sender email is commonly abused enduser mail
                             provider (rudalics[at]gmx.at)
 -0.0 SPF_PASS               SPF: sender matches SPF record
  0.0 SPF_HELO_NONE          SPF: HELO does not publish an SPF Record
 -0.0 T_SCC_BODY_TEXT_LINE   No description available.
  0.0 RCVD_IN_MSPIKE_WL      Mailspike good senders
 -1.0 MAILING_LIST_MULTI     Multiple indicators imply a widely-seen list
                             manager

 > +	   (< (seq-count (lambda (w) (window-parameter w 'quit-restore))
 > +			 (window-list-1 nil 'nomini))

As I said before nil as argument for 'window-list-1' is not correct.
'window--delete' can be called by 'quit-windows-on' which has to work
for quitting any window on any frame.

 >>> +		         (window-list-1 nil 'nomini))
 >>
 >> I suppose that nil is not correct here when WINDOW is not on the
 >> selected frame.  I'd rather use that window instead here.
 >
 > The current code doesn't support non-selected frames
 > as 'tab-bar-close-tab' below shows without a frame argument:

Then we can't use it.  Please have a look at the patch I sent earlier.
The tab-bar code would have to add a function to
'window-deletable-functions' provided some tab-bar option says to do
that.

Thanks, martin




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#59862; Package emacs. Full text available.

Message received at 59862 <at> debbugs.gnu.org:


Received: (at 59862) by debbugs.gnu.org; 16 Jun 2024 16:53:52 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Sun Jun 16 12:53:52 2024
Received: from localhost ([127.0.0.1]:43625 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1sIt8a-0002TS-3h
	for submit <at> debbugs.gnu.org; Sun, 16 Jun 2024 12:53:52 -0400
Received: from relay9-d.mail.gandi.net ([217.70.183.199]:33775)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <juri@HIDDEN>) id 1sIt8Y-0002Su-KN
 for 59862 <at> debbugs.gnu.org; Sun, 16 Jun 2024 12:53:51 -0400
Received: by mail.gandi.net (Postfix) with ESMTPSA id A173EFF802;
 Sun, 16 Jun 2024 16:53:39 +0000 (UTC)
From: Juri Linkov <juri@HIDDEN>
To: martin rudalics <rudalics@HIDDEN>
Subject: Re: bug#59862: quit-restore per window buffer
In-Reply-To: <ad0bfe5d-817b-4d11-b82f-90c5a76b4c81@HIDDEN> (martin rudalics's
 message of "Sat, 15 Jun 2024 10:41:54 +0200")
Organization: LINKOV.NET
References: <86fsds8mlm.fsf@HIDDEN> <86ttibq1w1.fsf@HIDDEN>
 <8243325e-ed03-4e9e-b64f-c8225fb6dc60@HIDDEN>
 <18173da7-32e1-4f14-bbea-9a8fa66af7dd@HIDDEN>
 <f9eb9bae-6275-4448-9590-e72a56064220@HIDDEN>
 <86plsxmc6d.fsf@HIDDEN> <86r0d4ezdc.fsf@HIDDEN>
 <0d01a044-d7d6-456a-9ba9-d987faad4332@HIDDEN>
 <86frthjq4y.fsf@HIDDEN>
 <743dc4dd-cf09-4c5e-9209-b63a47480e0b@HIDDEN>
 <86msnne7ut.fsf@HIDDEN>
 <ad0bfe5d-817b-4d11-b82f-90c5a76b4c81@HIDDEN>
Date: Sun, 16 Jun 2024 19:50:29 +0300
Message-ID: <86plsgrfvu.fsf@HIDDEN>
User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/30.0.50 (x86_64-pc-linux-gnu)
MIME-Version: 1.0
Content-Type: text/plain
X-GND-Sasl: juri@HIDDEN
X-Spam-Score: -0.7 (/)
X-Debbugs-Envelope-To: 59862
Cc: 59862 <at> debbugs.gnu.org
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.7 (-)

>  +	   (< (seq-count (lambda (w) (window-parameter w 'quit-restore))
>
> The entire clause in 'quit-restore-window' governed by
>
> 	   (eq (nth 1 quit-restore) 'tab)
>
> needs a comment on what it is supposed to restore.

So here is a comment:

diff --git a/lisp/window.el b/lisp/window.el
index b7bd59bc813..5b782c93098 100644
--- a/lisp/window.el
+++ b/lisp/window.el
@@ -5241,9 +5246,13 @@ quit-restore-window
            (window--delete window 'dedicated (eq bury-or-kill 'kill)))
       ;; If the previously selected window is still alive, select it.
       (window--quit-restore-select-window quit-restore-2))
+     ;; Close the tab if it doesn't contain more explicitly created windows.
      ((and (not prev-buffer)
 	   (eq (nth 1 quit-restore) 'tab)
-	   (eq (nth 3 quit-restore) buffer))
+	   (eq (nth 3 quit-restore) buffer)
+	   (< (seq-count (lambda (w) (window-parameter w 'quit-restore))
+			 (window-list-1 nil 'nomini))
+	      2))
       (tab-bar-close-tab)
       ;; If the previously selected window is still alive, select it.
       (window--quit-restore-select-window quit-restore-2))

> Basically, you check
> here whether WINDOW is the only window with a 'quit-restore' parameter.
> Is it that what you really want?  If a window has a 'quit-restore'
> parameter whose second element is 'tab' does that mean that all other
> windows on the same frame must also have such a parameter?  What happens
> if there are other windows without a 'quit-restore' parameter?

If there are other windows without a 'quit-restore' parameter,
this means that they were created implicitly without a direct
user action.  So the tab can be closed in this case.  There are
not many commands that create windows without a 'quit-restore'
parameter.  For example, Gnus creates several windows, and
the tab should be closed when the user closes the first window.

> As designed, the 'quit-restore' parameter can cause the deletion of its
> window only if there are other windows on the same frame.  It can cause
> the deletion of its frame only if there is no other window on its frame.
> Are these principles preserved by your patch?

Yes, the patch closes the tab only if there is no other window on the tab
explicitly created by user.

>> +		         (window-list-1 nil 'nomini))
>
> I suppose that nil is not correct here when WINDOW is not on the
> selected frame.  I'd rather use that window instead here.

The current code doesn't support non-selected frames
as 'tab-bar-close-tab' below shows without a frame argument:

>> +              2))
>>         (tab-bar-close-tab)
>>         ;; If the previously selected window is still alive, select it.
>>         (window--quit-restore-select-window quit-restore-2))




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#59862; Package emacs. Full text available.

Message received at 59862 <at> debbugs.gnu.org:


Received: (at 59862) by debbugs.gnu.org; 15 Jun 2024 08:42:08 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Sat Jun 15 04:42:07 2024
Received: from localhost ([127.0.0.1]:54685 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1sIOz9-0005IJ-Jh
	for submit <at> debbugs.gnu.org; Sat, 15 Jun 2024 04:42:07 -0400
Received: from mout.gmx.net ([212.227.17.22]:43285)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <rudalics@HIDDEN>) id 1sIOz7-0005Gj-7O
 for 59862 <at> debbugs.gnu.org; Sat, 15 Jun 2024 04:42:06 -0400
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmx.at;
 s=s31663417; t=1718440915; x=1719045715; i=rudalics@HIDDEN;
 bh=fBRDwDHzR88tBG0X0pnmIKdcyWjOQsM3pUotVEeD2Yk=;
 h=X-UI-Sender-Class:Message-ID:Date:MIME-Version:Subject:To:Cc:
 References:From:In-Reply-To:Content-Type:
 Content-Transfer-Encoding:cc:content-transfer-encoding:
 content-type:date:from:message-id:mime-version:reply-to:subject:
 to;
 b=SnmnSsdDeGsdY63T0gdYzlmHDaht/uNqHBR2KtnQ1ZkHxdPD6GzYrqY1+YPkTgY3
 RGYjvTdRN7QKLx0p6jrUhtoA2HrO2HRuOJJStCfZ5Q55JDnbnPS8925F1pPXLdccV
 baAGJDZp6mkBwZ+ocpWDjm+OgD9GN0/frEnLxmZ0gqR8SEB4JuDCsUiP41ZdXGB/n
 7Wh675HN86hh6xCftl1aCnIyw5AFOrNSmoRCx5ZaEMj5pXZqcJ3hYhhM8gd7P9Uf0
 /e1rWJLuNdwKRUsTDZtTFrAB229zOrcuAM7lqVCjSLWK53Ssv8yR0Z5U+QF5ecyyi
 wuJsyw4JrTGNuFAWTA==
X-UI-Sender-Class: 724b4f7f-cbec-4199-ad4e-598c01a50d3a
Received: from [192.168.31.113] ([212.95.5.155]) by mail.gmx.net (mrgmx104
 [212.227.17.168]) with ESMTPSA (Nemesis) id 1MUowb-1rrh222IPR-00TNtx; Sat, 15
 Jun 2024 10:41:55 +0200
Message-ID: <ad0bfe5d-817b-4d11-b82f-90c5a76b4c81@HIDDEN>
Date: Sat, 15 Jun 2024 10:41:54 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: bug#59862: quit-restore per window buffer
To: Juri Linkov <juri@HIDDEN>
References: <86fsds8mlm.fsf@HIDDEN> <86ttibq1w1.fsf@HIDDEN>
 <8243325e-ed03-4e9e-b64f-c8225fb6dc60@HIDDEN>
 <18173da7-32e1-4f14-bbea-9a8fa66af7dd@HIDDEN>
 <f9eb9bae-6275-4448-9590-e72a56064220@HIDDEN>
 <86plsxmc6d.fsf@HIDDEN> <86r0d4ezdc.fsf@HIDDEN>
 <0d01a044-d7d6-456a-9ba9-d987faad4332@HIDDEN>
 <86frthjq4y.fsf@HIDDEN>
 <743dc4dd-cf09-4c5e-9209-b63a47480e0b@HIDDEN>
 <86msnne7ut.fsf@HIDDEN>
Content-Language: en-US
From: martin rudalics <rudalics@HIDDEN>
In-Reply-To: <86msnne7ut.fsf@HIDDEN>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
X-Provags-ID: V03:K1:UTS+swE3zZIxt3/+2rDzfSZAUgzVI7AMRO/6QgjprYsH96EpdYN
 3av2HA+zD7XmsYt21MYrLMAuPDlaaCfWqZIEZisH1+DQ+YFp2MMx8KB0rkrTGfWHplwHA5J
 czEtKo+XIl8BVAJ8yYoy9l52HscA+MEZGYs2h0z/KVRS22NJhmjbKopu+vw5kdhpNj6IzEY
 fLynPpKr1HN5mBuJvsRjg==
X-Spam-Flag: NO
UI-OutboundReport: notjunk:1;M01:P0:t7px0/0KyE0=;0HvSNCzHWu0IYgJ9jGcZ13wT+QV
 2TJJzJb5zb+BiyKCriLBb91iWQ4n2spzfi1d+Kwc1U8Pr+afe/dzbiLDS+/y1GDd0Sol6nNhy
 GYtKSgOEQ890eV1PNQ3keGFBFWKwBgBavPnnvKTswAJ0eF/Ev4lJTkJX+hPuAmMqERSr23v9s
 QZPuwA4/Ecc2BeIAwi9yGn5fbuVdjzKtDGIHP1wT+fU4bFYJWTe2CvJ9lIF1vtxdiGvcquopY
 hj/JxFyHPCkW8RE1OW4B5DsD1R4TLgD8Ef8CYWHwW+6kWIk38roAQROgaqmb4O0jLwPuWd/H3
 1jfSryAk2szZLCjyGxctcosphswKaQorx3Hf/71QDLxAd3lJowFHY8wjqubPmWRXVSwPPyeE7
 DPfxFiIyV9Wq5UPEj26pb88B2UlTH4xPGsHP8hrPvJWlphvM7hPZD0Q4TFaxlDkF775hnYEW/
 2kw+p1KRs1YcVRDwHbEfoDrDBNuAH0vpG7rXoUMm44h9zvwE7zllLxTadFaT5BYPBx0l2ZYu7
 p7Vdnia+Ms5Fe6bolUFxs9J5rcYmzVftkcKJkKolXLm5bWaqivh5QtvqEfkBhE6oUZUg34dA1
 1vNr98TnIcJALvRagoX9f4ZSfcQuPCqLCHgwpo/vze5U6Y7amB3/aTiNLZfG0B/pDwbJhzo2I
 e82thsgCYT8VcyzAxV0mWttm4fhFpGLfyYIKsTy+ujBI4Hp9nFkEW/dmYA4bLeOlv/dr/2BeP
 LKs0Z2vrQPRuRhBdGRw+u2/9bv/T245ndMVdI9HAP5Hl6N/1gh0zTXZsgT5KkTZeic74lCx3H
 1g+8RNa58VZlE4sbzJ9maE+MjRUtoktzXN3qop2fRTPx0=
X-Spam-Score: 2.9 (++)
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: + (< (seq-count (lambda (w) (window-parameter w
 'quit-restore))
 The entire clause in 'quit-restore-window' governed by (eq (nth 1
 quit-restore) 'tab) 
 Content analysis details:   (2.9 points, 10.0 required)
 pts rule name              description
 ---- ---------------------- --------------------------------------------------
 3.6 RCVD_IN_SBL_CSS        RBL: Received via a relay in Spamhaus SBL-CSS
 [212.95.5.155 listed in zen.spamhaus.org]
 0.0 FREEMAIL_FROM          Sender email is commonly abused enduser mail
 provider (rudalics[at]gmx.at)
 -0.0 SPF_PASS               SPF: sender matches SPF record
 0.0 SPF_HELO_NONE          SPF: HELO does not publish an SPF Record
 -0.7 RCVD_IN_DNSWL_LOW      RBL: Sender listed at https://www.dnswl.org/,
 low trust [212.227.17.22 listed in list.dnswl.org]
 0.0 RCVD_IN_MSPIKE_H3      RBL: Good reputation (+3)
 [212.227.17.22 listed in wl.mailspike.net]
 -0.0 T_SCC_BODY_TEXT_LINE   No description available.
 0.0 RCVD_IN_MSPIKE_WL      Mailspike good senders
X-Debbugs-Envelope-To: 59862
Cc: 59862 <at> debbugs.gnu.org
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: 1.9 (+)
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:  + (< (seq-count (lambda (w) (window-parameter w 'quit-restore))
    The entire clause in 'quit-restore-window' governed by (eq (nth 1 quit-restore)
    'tab) 
 
 Content analysis details:   (1.9 points, 10.0 required)
 
  pts rule name              description
 ---- ---------------------- --------------------------------------------------
  3.6 RCVD_IN_SBL_CSS        RBL: Received via a relay in Spamhaus SBL-CSS
                             [212.95.5.155 listed in zen.spamhaus.org]
 -0.7 RCVD_IN_DNSWL_LOW      RBL: Sender listed at https://www.dnswl.org/,
                             low trust
                             [212.227.17.22 listed in list.dnswl.org]
  0.0 RCVD_IN_MSPIKE_H3      RBL: Good reputation (+3)
                             [212.227.17.22 listed in wl.mailspike.net]
  0.0 FREEMAIL_FROM          Sender email is commonly abused enduser mail
                             provider (rudalics[at]gmx.at)
 -0.0 SPF_PASS               SPF: sender matches SPF record
  0.0 SPF_HELO_NONE          SPF: HELO does not publish an SPF Record
 -0.0 T_SCC_BODY_TEXT_LINE   No description available.
  0.0 RCVD_IN_MSPIKE_WL      Mailspike good senders
 -1.0 MAILING_LIST_MULTI     Multiple indicators imply a widely-seen list
                             manager


  +	   (< (seq-count (lambda (w) (window-parameter w 'quit-restore))

The entire clause in 'quit-restore-window' governed by

	   (eq (nth 1 quit-restore) 'tab)

needs a comment on what it is supposed to restore.  Basically, you check
here whether WINDOW is the only window with a 'quit-restore' parameter.
Is it that what you really want?  If a window has a 'quit-restore'
parameter whose second element is 'tab' does that mean that all other
windows on the same frame must also have such a parameter?  What happens
if there are other windows without a 'quit-restore' parameter?

As designed, the 'quit-restore' parameter can cause the deletion of its
window only if there are other windows on the same frame.  It can cause
the deletion of its frame only if there is no other window on its frame.
Are these principles preserved by your patch?

 > +		         (window-list-1 nil 'nomini))

I suppose that nil is not correct here when WINDOW is not on the
selected frame.  I'd rather use that window instead here.

 > +              2))
 >         (tab-bar-close-tab)
 >         ;; If the previously selected window is still alive, select it.
 >         (window--quit-restore-select-window quit-restore-2))

martin




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#59862; Package emacs. Full text available.

Message received at 59862 <at> debbugs.gnu.org:


Received: (at 59862) by debbugs.gnu.org; 14 Jun 2024 18:04:49 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Fri Jun 14 14:04:49 2024
Received: from localhost ([127.0.0.1]:40891 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1sIBI8-0004cJ-Mp
	for submit <at> debbugs.gnu.org; Fri, 14 Jun 2024 14:04:48 -0400
Received: from relay8-d.mail.gandi.net ([217.70.183.201]:49399)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <juri@HIDDEN>) id 1sIBI3-0004bz-Sq
 for 59862 <at> debbugs.gnu.org; Fri, 14 Jun 2024 14:04:47 -0400
Received: by mail.gandi.net (Postfix) with ESMTPSA id 35BDD1BF203;
 Fri, 14 Jun 2024 18:04:13 +0000 (UTC)
From: Juri Linkov <juri@HIDDEN>
To: martin rudalics <rudalics@HIDDEN>
Subject: Re: bug#59862: quit-restore per window buffer
In-Reply-To: <743dc4dd-cf09-4c5e-9209-b63a47480e0b@HIDDEN> (martin rudalics's
 message of "Thu, 13 Jun 2024 10:21:32 +0200")
Organization: LINKOV.NET
References: <86fsds8mlm.fsf@HIDDEN> <86ttibq1w1.fsf@HIDDEN>
 <8243325e-ed03-4e9e-b64f-c8225fb6dc60@HIDDEN>
 <18173da7-32e1-4f14-bbea-9a8fa66af7dd@HIDDEN>
 <f9eb9bae-6275-4448-9590-e72a56064220@HIDDEN>
 <86plsxmc6d.fsf@HIDDEN> <86r0d4ezdc.fsf@HIDDEN>
 <0d01a044-d7d6-456a-9ba9-d987faad4332@HIDDEN>
 <86frthjq4y.fsf@HIDDEN>
 <743dc4dd-cf09-4c5e-9209-b63a47480e0b@HIDDEN>
Date: Fri, 14 Jun 2024 20:35:30 +0300
Message-ID: <86msnne7ut.fsf@HIDDEN>
User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/30.0.50 (x86_64-pc-linux-gnu)
MIME-Version: 1.0
Content-Type: text/plain
X-GND-Sasl: juri@HIDDEN
X-Spam-Score: -0.7 (/)
X-Debbugs-Envelope-To: 59862
Cc: 59862 <at> debbugs.gnu.org
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.7 (-)

> The check is in 'window-deletable-p' which may return 'frame' iff WINDOW
> is its frame's root window.  Maybe you also want to check whether the
> second element of 'quit-restore' is 'frame' but that I cannot tell.

Ok, so here is the corresponding fix for the case:

  C-x t t   ;; other-tab-prefix
  C-h i     ;; info
  C-h e     ;; view-echo-area-messages
  q         ;; quit-window

diff --git a/lisp/window.el b/lisp/window.el
index b7bd59bc813..f206153e017 100644
--- a/lisp/window.el
+++ b/lisp/window.el
@@ -5243,7 +5258,10 @@ quit-restore-window
       (window--quit-restore-select-window quit-restore-2))
      ((and (not prev-buffer)
 	   (eq (nth 1 quit-restore) 'tab)
-	   (eq (nth 3 quit-restore) buffer))
+	   (eq (nth 3 quit-restore) buffer)
+	   (< (seq-count (lambda (w) (window-parameter w 'quit-restore))
+		         (window-list-1 nil 'nomini))
+              2))
       (tab-bar-close-tab)
       ;; If the previously selected window is still alive, select it.
       (window--quit-restore-select-window quit-restore-2))




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#59862; Package emacs. Full text available.

Message received at 59862 <at> debbugs.gnu.org:


Received: (at 59862) by debbugs.gnu.org; 13 Jun 2024 08:21:42 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Thu Jun 13 04:21:42 2024
Received: from localhost ([127.0.0.1]:33723 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1sHfiI-0006N4-A2
	for submit <at> debbugs.gnu.org; Thu, 13 Jun 2024 04:21:42 -0400
Received: from mout.gmx.net ([212.227.17.21]:42647)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <rudalics@HIDDEN>) id 1sHfiF-0006Mf-NV
 for 59862 <at> debbugs.gnu.org; Thu, 13 Jun 2024 04:21:41 -0400
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmx.at;
 s=s31663417; t=1718266893; x=1718871693; i=rudalics@HIDDEN;
 bh=2Sx3CD79szLSKbii9c4kiPuvypBruMepOkceYeyl5+k=;
 h=X-UI-Sender-Class:Message-ID:Date:MIME-Version:Subject:To:Cc:
 References:From:In-Reply-To:Content-Type:
 Content-Transfer-Encoding:cc:content-transfer-encoding:
 content-type:date:from:message-id:mime-version:reply-to:subject:
 to;
 b=SRTHHBKw2mPon4NRexZl9k7ViXy/OGs/j0ufELhaE8xPFZ0FjQ4k1kT5wb8DJkVM
 C27HaA/clMkR5tZUiW05pMm6dhckuFKHP9Zmgoa+c4DZ6yqCz5wXlKjjr6Q+QzsBq
 bvvWSlMi1kmmVMinZNJA3WteBsJzrP8ThM9N6qjquv0MR/MJwVfBIfHefupTgBp0K
 rGzgIKqxbQTiOVXhGF266xzMjEPRzsDiq2v7tN5/ZnbmcKQsBJA22ocijhwiQU3zo
 4iS+BWFQHluM1JSKxN2Zs/J1WUu2naQSOtGGyN1HkqUeze1lMSp3v4twJ/QNMZZpt
 zF+2I5Wy6IiGrmi0bw==
X-UI-Sender-Class: 724b4f7f-cbec-4199-ad4e-598c01a50d3a
Received: from [192.168.31.113] ([212.95.5.56]) by mail.gmx.net (mrgmx104
 [212.227.17.168]) with ESMTPSA (Nemesis) id 1MG9g4-1sC8sT1kR2-00FGdo; Thu, 13
 Jun 2024 10:21:33 +0200
Message-ID: <743dc4dd-cf09-4c5e-9209-b63a47480e0b@HIDDEN>
Date: Thu, 13 Jun 2024 10:21:32 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: bug#59862: quit-restore per window buffer
To: Juri Linkov <juri@HIDDEN>
References: <86fsds8mlm.fsf@HIDDEN> <86ttibq1w1.fsf@HIDDEN>
 <8243325e-ed03-4e9e-b64f-c8225fb6dc60@HIDDEN>
 <18173da7-32e1-4f14-bbea-9a8fa66af7dd@HIDDEN>
 <f9eb9bae-6275-4448-9590-e72a56064220@HIDDEN>
 <86plsxmc6d.fsf@HIDDEN> <86r0d4ezdc.fsf@HIDDEN>
 <0d01a044-d7d6-456a-9ba9-d987faad4332@HIDDEN>
 <86frthjq4y.fsf@HIDDEN>
Content-Language: en-US
From: martin rudalics <rudalics@HIDDEN>
In-Reply-To: <86frthjq4y.fsf@HIDDEN>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
X-Provags-ID: V03:K1:CkIHOv7ZZiR53yQ9JMBmlYzUJB4zEvWz1X+vPIDrPwIPyMdnVP5
 xaPVE7KqrmG/kp8OJdFGJXbaaR7FS42HFrnvisrGQjtPgAJWqtAJXxIudcELze7pFwyfbW7
 0fLUdPcN6XD1xqke1aTUTT98QnF4wYZ2CTZj2S2Lkr14tmlDJww7F7rumkpenAQBHNwI6Uw
 t/ztiWdkOGmLhTWjwuqFA==
X-Spam-Flag: NO
UI-OutboundReport: notjunk:1;M01:P0:yR7OIn5/FX8=;1vZzJp4n1ivcaHE43HaumQirdEF
 hT3N4S7ucCi26QYdT5qa3Qu21IEgT1YNdY1NzoCavdd39PS682iNc0J456Wo0gtFAZzwc5Y6m
 gXOAil3zeAlFXEFwb3LWvuZQUZNlWT6gulwHZ+zho25bhs7KvdHMPNhQLHAJ9eZqHymHoS9Lk
 ucsNNzMTL2rG8lkbmb9N4ZOr0RRN30HQrgLEGTxWnXcTGo6s9Fgk/BSww9SH4dz9E1IZBDIwy
 YvFqPOwoOs/fZftXjJNJztmFI8tNVJLI3XMTlVjwILdHq6H3F59JwHvrJaVSX9JaoXEOi8eFt
 yZ8yK1Ef2x8vgK01jmYBpqD+dooNcphXhgH7eT2Q2cY2GwBZonluMP26Z0plTecSbtWk8Tr+c
 DbucMLue6bRmIV32ED4bFZgoe9YT99+BxE+dgsb3q+1MgzWvAI0B6rOZL1yKJXTlQmjGccknq
 Q+acdGZw2I9ChPLxXUfy/Xm5dLVAcTPM+8ge+4z47xNGBoVhm2uVe4TfK8pGYDtNXJOXQ/FPk
 jMBHgR36/SyKV2Wnjcs+c6yLvV/ZkBatxsExVppIJeggQPcf+lRsLCRH2wGjM1VJ1JV8Q1829
 Gx5PlSvjy7zVLXLsfyAyB1r4ZLyDY15tFRXJwpPieumCnyrGCpIvZ72phs2P9fdHoJV3sKByb
 jOhB8FO9pCVcF9PjOpJLGUzNHYDEHmN/sVwdnL1BZh9J2ahoP+xNZ5pvecR7a18Na71AbjOqA
 8+CMdcP2106TZ5wjcuKo+3fM1nYYXayMvunFoveubadU5mRtI3l2zXQTu/4O+ohsf6OqaIzo1
 9L9tVXpfvE8yEE29gilXvmAaTn0xUKJAYhVbAOWwqLwNY=
X-Spam-Score: -0.7 (/)
X-Debbugs-Envelope-To: 59862
Cc: 59862 <at> debbugs.gnu.org
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.7 (-)

 > Could you show how the frame function corresponding to 'tab-bar-close-tab'
 > (I suppose it's 'delete-frame'?)

Hardly.  'delete-frame' unconditionally deletes a frame regardless of
how many windows it displays unless it is the last frame, a surrogate
minibuffer frame or some other special condition holds.

 > detects that where are more than 1 window
 > on the frame, then it refuses to delete the frame.  Then same code could be
 > used in 'tab-bar-close-tab'.

The check is in 'window-deletable-p' which may return 'frame' iff WINDOW
is its frame's root window.  Maybe you also want to check whether the
second element of 'quit-restore' is 'frame' but that I cannot tell.

Note in this context that 'window-deletable-p' does not cover all
special cases handled by 'delete-frame' - things like the
'delete-before' parameter or the 'delete-frame-functions' hook.  So far,
this apparently has not caused any problems though.

martin




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#59862; Package emacs. Full text available.

Message received at 59862 <at> debbugs.gnu.org:


Received: (at 59862) by debbugs.gnu.org; 13 Jun 2024 07:13:40 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Thu Jun 13 03:13:40 2024
Received: from localhost ([127.0.0.1]:57865 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1sHeeR-0003We-Rb
	for submit <at> debbugs.gnu.org; Thu, 13 Jun 2024 03:13:40 -0400
Received: from relay3-d.mail.gandi.net ([217.70.183.195]:52213)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <juri@HIDDEN>) id 1sHeeQ-0003W7-GS
 for 59862 <at> debbugs.gnu.org; Thu, 13 Jun 2024 03:13:39 -0400
Received: by mail.gandi.net (Postfix) with ESMTPSA id 4D66660008;
 Thu, 13 Jun 2024 07:13:10 +0000 (UTC)
From: Juri Linkov <juri@HIDDEN>
To: martin rudalics <rudalics@HIDDEN>
Subject: Re: bug#59862: quit-restore per window buffer
In-Reply-To: <0d01a044-d7d6-456a-9ba9-d987faad4332@HIDDEN> (martin rudalics's
 message of "Wed, 12 Jun 2024 10:57:34 +0200")
Organization: LINKOV.NET
References: <86fsds8mlm.fsf@HIDDEN> <86ttibq1w1.fsf@HIDDEN>
 <8243325e-ed03-4e9e-b64f-c8225fb6dc60@HIDDEN>
 <18173da7-32e1-4f14-bbea-9a8fa66af7dd@HIDDEN>
 <f9eb9bae-6275-4448-9590-e72a56064220@HIDDEN>
 <86plsxmc6d.fsf@HIDDEN> <86r0d4ezdc.fsf@HIDDEN>
 <0d01a044-d7d6-456a-9ba9-d987faad4332@HIDDEN>
Date: Thu, 13 Jun 2024 09:47:09 +0300
Message-ID: <86frthjq4y.fsf@HIDDEN>
User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/30.0.50 (x86_64-pc-linux-gnu)
MIME-Version: 1.0
Content-Type: text/plain
X-GND-Sasl: juri@HIDDEN
X-Spam-Score: -0.7 (/)
X-Debbugs-Envelope-To: 59862
Cc: 59862 <at> debbugs.gnu.org
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.7 (-)

>> C-x 5 5   ;; other-frame-prefix
>> C-h i     ;; info
>> q         ;; quit-window
>> This deletes the frame.
>>
>> C-x 5 5   ;; other-frame-prefix
>> C-h i     ;; info
>> C-h e     ;; view-echo-area-messages
>> q         ;; quit-window
>> This doesn't delete the frame because another buffer was used.
>
> Here it doesn't delete the frame because it contains two windows.
> 'quit-window' deletes the *info* window and the *Messages* window
> remains.  When I do C-x o q q instead it first shows the *info* window
> only and then deletes the frame just as I would expect.

The current behavior for frames looks correct.

> BTW 'view-echo-area-messages' has a bug: The 'goto-char' moves point in
> the *Messages* buffer in an undocumented manner.  It should be written
> as:
>
> (defun view-echo-area-messages ()
>   "View the log of recent echo-area messages: the `*Messages*' buffer.
> The number of messages retained in that buffer is specified by
> the variable `message-log-max'."
>   (interactive)
>   (when-let ((win (display-buffer (messages-buffer))))
>     (set-window-point win (point-max))
>     win))

Agreed.

>> So frames are handled correctly.  But not tabs:
>>
>> C-x t t   ;; other-tab-prefix
>> C-h i     ;; info
>> q         ;; quit-window
>> This correctly closes the tab.
>>
>> C-x t t   ;; other-tab-prefix
>> C-h i     ;; info
>> C-h e     ;; view-echo-area-messages
>> q         ;; quit-window
>> But this also closes the tab, this is a destructive operation,
>> because the user has another buffer shown in the tab.
>
> Here I get two windows.  The 'quit-restore' parameter of the *info*
> window is
>
> (tab tab #<window 7 on *info*> #<buffer *info*>)
>
> that of the *Messages* window is
>
> (window window #<window 7 on *info*> #<buffer *Messages*>).
>
> So if I now do q in the *info* window, it will run 'tab-bar-close-tab'.
> It's up to that function to DTRT here.

Could you show how the frame function corresponding to 'tab-bar-close-tab'
(I suppose it's 'delete-frame'?) detects that where are more than 1 window
on the frame, then it refuses to delete the frame.  Then same code could be
used in 'tab-bar-close-tab'.




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#59862; Package emacs. Full text available.

Message received at 59862 <at> debbugs.gnu.org:


Received: (at 59862) by debbugs.gnu.org; 12 Jun 2024 08:57:46 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Wed Jun 12 04:57:46 2024
Received: from localhost ([127.0.0.1]:37522 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1sHJnd-0006PS-NA
	for submit <at> debbugs.gnu.org; Wed, 12 Jun 2024 04:57:45 -0400
Received: from mout.gmx.net ([212.227.17.22]:50695)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <rudalics@HIDDEN>) id 1sHJna-0006PB-MM
 for 59862 <at> debbugs.gnu.org; Wed, 12 Jun 2024 04:57:44 -0400
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmx.at;
 s=s31663417; t=1718182655; x=1718787455; i=rudalics@HIDDEN;
 bh=B2UgbEoqPcQ6bdIvScqnZJS20Kuiq5tCZO5nyKjOpzI=;
 h=X-UI-Sender-Class:Message-ID:Date:MIME-Version:Subject:To:Cc:
 References:From:In-Reply-To:Content-Type:
 Content-Transfer-Encoding:cc:content-transfer-encoding:
 content-type:date:from:message-id:mime-version:reply-to:subject:
 to;
 b=SEoYcNwVmdLMq92xDaG+QoyvbaWnLhyjZ7/CCH40FYqXM5cMsnAc1zcPLGAKNEoV
 54nEP1DglMbldahgLJAFBD06dmETnBsMOEZ14Ew3FuyuiCziN92CWv/DmojxgVTWn
 oNtfao8r+igra1QcBkRZk2t9BkDfQC3A4mZlpJDHW9AlcpWKd1qLxpxoNirFLxmZa
 YsssBrGZz11FPnRrJu7j1RTFcJBFdGZnsDzZC1S4xRVfVRofF+mrDQMvL+24c4tr6
 my2i+U743kN71q05QVZGI3nspTztMCiv5ZQQ3UJAZBow8E4BHDMnnTpnObWizCxm6
 eINVN5v18U60yFKTeQ==
X-UI-Sender-Class: 724b4f7f-cbec-4199-ad4e-598c01a50d3a
Received: from [192.168.31.113] ([46.125.249.118]) by mail.gmx.net (mrgmx104
 [212.227.17.168]) with ESMTPSA (Nemesis) id 1N5VD8-1sSvNl0exG-014L3F; Wed, 12
 Jun 2024 10:57:35 +0200
Message-ID: <0d01a044-d7d6-456a-9ba9-d987faad4332@HIDDEN>
Date: Wed, 12 Jun 2024 10:57:34 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: bug#59862: quit-restore per window buffer
To: Juri Linkov <juri@HIDDEN>
References: <86fsds8mlm.fsf@HIDDEN> <86ttibq1w1.fsf@HIDDEN>
 <8243325e-ed03-4e9e-b64f-c8225fb6dc60@HIDDEN>
 <18173da7-32e1-4f14-bbea-9a8fa66af7dd@HIDDEN>
 <f9eb9bae-6275-4448-9590-e72a56064220@HIDDEN>
 <86plsxmc6d.fsf@HIDDEN> <86r0d4ezdc.fsf@HIDDEN>
Content-Language: en-US
From: martin rudalics <rudalics@HIDDEN>
In-Reply-To: <86r0d4ezdc.fsf@HIDDEN>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
X-Provags-ID: V03:K1:2IYKbBrjWiRJRO3M3f527O9Q4YaWLYOhFIotzxW/aMyhmgoRXUb
 ZbLEnBQxGTR1+MEzVSxyVQftpae80+UGpweoN26+4AHcAwa8EziTZxkPLJus2tC2YzdS358
 ScYth4WnjfCB3W3l+KVgp1bHmfHt68GZbg9qxSYTVtwYhtLg8cM3i1QoPI7DBxLqTWlIROk
 UjSQdtmGXLgUePWilt1tg==
X-Spam-Flag: NO
UI-OutboundReport: notjunk:1;M01:P0:XD+XCXa0mxQ=;K+aT9cvG/XgRVIx62oaHAikKIdw
 Vrcx4gwGJ9coZCZfJgITM5zsFxj7CGkh9sqKndbu11fhrmIn5miH4KXgnFKKuUtArxbEzacpN
 BFE0rZ98tNGsIIPuqhpPzlavMxAqHLTILA+Fx4K91uX1gUPusJWXOFCm6UQlyzFtWh2ciTsL0
 pI18/yFjk5WoNNFEs/EnHfQw33F9XOpXUSij0WvE0bikbQs5514UWrKNVB3521dkkeMJqOLZW
 Bhc5wxp2RY82uNyJeA7qu9C/9Es9KixhDE2GUtamycAaMk/BiUyxSBGIJvopB/rsdoJnnbDOf
 FUttIr3ETNRYsM7Dqx1h3wYsLKe6UxJMtYY1BS1rDuxmfcf/i4EihiV1r+Tz/r3P/C+nL7A8T
 cyKWmEUcue0atA+6b2RZaa8u86pZUcTfgE2xaJ9aUOn5D6MiHnVlTYYYsXeQr1JXAlAclBHbK
 Q+yELFQzfiElgQFhNRsPjWROKOwQsxIPL/P1CXKIZaANlFGoRakddrAXurgyWoocgwNd+ar8S
 9Bs6HnzZA5JMFCaJuCHiFAgBYrACMM7hI8JvtOda4bfgYh1GpiVFWKf49z2KtwgGNPuCJmrZf
 zTi+yottIpUcTBkYPShYAcKtXcwgUip0MvhBPvaEUdsWQY20HktksCje1Dq+62riusiicEGje
 WTzpTi0qCz/2JbQAg1KZnC+pkTkel5FBM1riqnHQkNrt1qHS9MNZxFVpnlnmIGO6Tr0bQQd+y
 HUfBAjH5l9TgZ5nCU/7BFCRxpW7TOiN6WmPUw6Jemu/u61D3RJPBDBaQD2CpZEFwBJK5N9v+q
 ryshxSJUyrsxltv2RFHKpjOrfYC8FghaF0QJamfflci8o=
X-Spam-Score: -0.7 (/)
X-Debbugs-Envelope-To: 59862
Cc: 59862 <at> debbugs.gnu.org
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.7 (-)

 > C-x 5 5   ;; other-frame-prefix
 > C-h i     ;; info
 > q         ;; quit-window
 > This deletes the frame.
 >
 > C-x 5 5   ;; other-frame-prefix
 > C-h i     ;; info
 > C-h e     ;; view-echo-area-messages
 > q         ;; quit-window
 > This doesn't delete the frame because another buffer was used.

Here it doesn't delete the frame because it contains two windows.
'quit-window' deletes the *info* window and the *Messages* window
remains.  When I do C-x o q q instead it first shows the *info* window
only and then deletes the frame just as I would expect.

BTW 'view-echo-area-messages' has a bug: The 'goto-char' moves point in
the *Messages* buffer in an undocumented manner.  It should be written
as:

(defun view-echo-area-messages ()
   "View the log of recent echo-area messages: the `*Messages*' buffer.
The number of messages retained in that buffer is specified by
the variable `message-log-max'."
   (interactive)
   (when-let ((win (display-buffer (messages-buffer))))
     (set-window-point win (point-max))
     win))

 > So frames are handled correctly.  But not tabs:
 >
 > C-x t t   ;; other-tab-prefix
 > C-h i     ;; info
 > q         ;; quit-window
 > This correctly closes the tab.
 >
 > C-x 5 5   ;; other-tab-prefix

I suppose you mean C-x t t here.

 > C-h i     ;; info
 > C-h e     ;; view-echo-area-messages
 > q         ;; quit-window
 > But this also closes the tab, this is a destructive operation,
 > because the user has another buffer shown in the tab.

Here I get two windows.  The 'quit-restore' parameter of the *info*
window is

(tab tab #<window 7 on *info*> #<buffer *info*>)

that of the *Messages* window is

(window window #<window 7 on *info*> #<buffer *Messages*>).

So if I now do q in the *info* window, it will run 'tab-bar-close-tab'.
It's up to that function to DTRT here.

martin




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#59862; Package emacs. Full text available.

Message received at 59862 <at> debbugs.gnu.org:


Received: (at 59862) by debbugs.gnu.org; 11 Jun 2024 15:54:27 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Tue Jun 11 11:54:27 2024
Received: from localhost ([127.0.0.1]:35836 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1sH3pL-0000mB-FO
	for submit <at> debbugs.gnu.org; Tue, 11 Jun 2024 11:54:27 -0400
Received: from mslow1.mail.gandi.net ([217.70.178.240]:43917)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <juri@HIDDEN>) id 1sH3pJ-0000lz-Dz
 for 59862 <at> debbugs.gnu.org; Tue, 11 Jun 2024 11:54:26 -0400
Received: from relay2-d.mail.gandi.net (unknown [IPv6:2001:4b98:dc4:8::222])
 by mslow1.mail.gandi.net (Postfix) with ESMTP id 15773C4DD7
 for <59862 <at> debbugs.gnu.org>; Tue, 11 Jun 2024 07:11:49 +0000 (UTC)
Received: by mail.gandi.net (Postfix) with ESMTPSA id 91E9540008;
 Tue, 11 Jun 2024 07:11:40 +0000 (UTC)
From: Juri Linkov <juri@HIDDEN>
To: martin rudalics <rudalics@HIDDEN>
Subject: Re: bug#59862: quit-restore per window buffer
In-Reply-To: <86plsxmc6d.fsf@HIDDEN> (Juri Linkov's message of "Tue, 
 04 Jun 2024 09:53:14 +0300")
Organization: LINKOV.NET
References: <86fsds8mlm.fsf@HIDDEN> <86ttibq1w1.fsf@HIDDEN>
 <8243325e-ed03-4e9e-b64f-c8225fb6dc60@HIDDEN>
 <18173da7-32e1-4f14-bbea-9a8fa66af7dd@HIDDEN>
 <f9eb9bae-6275-4448-9590-e72a56064220@HIDDEN>
 <86plsxmc6d.fsf@HIDDEN>
Date: Tue, 11 Jun 2024 09:52:07 +0300
Message-ID: <86r0d4ezdc.fsf@HIDDEN>
User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/30.0.50 (x86_64-pc-linux-gnu)
MIME-Version: 1.0
Content-Type: text/plain
X-GND-Sasl: juri@HIDDEN
X-Spam-Score: -0.7 (/)
X-Debbugs-Envelope-To: 59862
Cc: 59862 <at> debbugs.gnu.org
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.7 (-)

>> I revisited it once more and attach my last patch.  It also seems to
>> DTRT with C-x 4 d RET C-h C-t C-h C-n q q q but would still require a
>> longer period of testing.
>
> Thanks, I started testing.

I found one difference between frames and tabs:

C-x 5 5   ;; other-frame-prefix
C-h i     ;; info
q         ;; quit-window
This deletes the frame.

C-x 5 5   ;; other-frame-prefix
C-h i     ;; info
C-h e     ;; view-echo-area-messages
q         ;; quit-window
This doesn't delete the frame because another buffer was used.

So frames are handled correctly.  But not tabs:

C-x t t   ;; other-tab-prefix
C-h i     ;; info
q         ;; quit-window
This correctly closes the tab.

C-x 5 5   ;; other-tab-prefix
C-h i     ;; info
C-h e     ;; view-echo-area-messages
q         ;; quit-window
But this also closes the tab, this is a destructive operation,
because the user has another buffer shown in the tab.




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#59862; Package emacs. Full text available.

Message received at 59862 <at> debbugs.gnu.org:


Received: (at 59862) by debbugs.gnu.org; 5 Jun 2024 17:53:07 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Wed Jun 05 13:53:07 2024
Received: from localhost ([127.0.0.1]:52950 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1sEuot-0007dc-Ey
	for submit <at> debbugs.gnu.org; Wed, 05 Jun 2024 13:53:07 -0400
Received: from mslow1.mail.gandi.net ([217.70.178.240]:52337)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <juri@HIDDEN>) id 1sEuor-0007dE-4J
 for 59862 <at> debbugs.gnu.org; Wed, 05 Jun 2024 13:53:06 -0400
Received: from relay3-d.mail.gandi.net (unknown [IPv6:2001:4b98:dc4:8::223])
 by mslow1.mail.gandi.net (Postfix) with ESMTP id 5E36FC5B66
 for <59862 <at> debbugs.gnu.org>; Wed,  5 Jun 2024 17:12:07 +0000 (UTC)
Received: by mail.gandi.net (Postfix) with ESMTPSA id 3FB8560003;
 Wed,  5 Jun 2024 17:11:45 +0000 (UTC)
From: Juri Linkov <juri@HIDDEN>
To: martin rudalics <rudalics@HIDDEN>
Subject: Re: bug#59862: quit-restore per window buffer
In-Reply-To: <86plsxmc6d.fsf@HIDDEN> (Juri Linkov's message of "Tue, 
 04 Jun 2024 09:53:14 +0300")
Organization: LINKOV.NET
References: <86fsds8mlm.fsf@HIDDEN> <86ttibq1w1.fsf@HIDDEN>
 <8243325e-ed03-4e9e-b64f-c8225fb6dc60@HIDDEN>
 <18173da7-32e1-4f14-bbea-9a8fa66af7dd@HIDDEN>
 <f9eb9bae-6275-4448-9590-e72a56064220@HIDDEN>
 <86plsxmc6d.fsf@HIDDEN>
Date: Wed, 05 Jun 2024 19:56:14 +0300
Message-ID: <86le3jbrs1.fsf@HIDDEN>
User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/30.0.50 (x86_64-pc-linux-gnu)
MIME-Version: 1.0
Content-Type: text/plain
X-GND-Sasl: juri@HIDDEN
X-Spam-Score: -0.7 (/)
X-Debbugs-Envelope-To: 59862
Cc: 59862 <at> debbugs.gnu.org
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.7 (-)

>> I revisited it once more and attach my last patch.  It also seems to
>> DTRT with C-x 4 d RET C-h C-t C-h C-n q q q but would still require a
>> longer period of testing.
>
> Thanks, I started testing.

The testing showed that now quit-restore works much better,
and even supports tabs.  Thank you very much.




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#59862; Package emacs. Full text available.

Message received at 59862 <at> debbugs.gnu.org:


Received: (at 59862) by debbugs.gnu.org; 4 Jun 2024 06:54:45 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Tue Jun 04 02:54:45 2024
Received: from localhost ([127.0.0.1]:56223 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1sEO4C-0008M7-NE
	for submit <at> debbugs.gnu.org; Tue, 04 Jun 2024 02:54:45 -0400
Received: from relay5-d.mail.gandi.net ([217.70.183.197]:37379)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <juri@HIDDEN>) id 1sEO49-0008Ls-M9
 for 59862 <at> debbugs.gnu.org; Tue, 04 Jun 2024 02:54:43 -0400
Received: by mail.gandi.net (Postfix) with ESMTPSA id 737E71C0005;
 Tue,  4 Jun 2024 06:54:01 +0000 (UTC)
From: Juri Linkov <juri@HIDDEN>
To: martin rudalics <rudalics@HIDDEN>
Subject: Re: bug#59862: quit-restore per window buffer
In-Reply-To: <f9eb9bae-6275-4448-9590-e72a56064220@HIDDEN> (martin rudalics's
 message of "Mon, 3 Jun 2024 18:09:52 +0200")
Organization: LINKOV.NET
References: <86fsds8mlm.fsf@HIDDEN> <86ttibq1w1.fsf@HIDDEN>
 <8243325e-ed03-4e9e-b64f-c8225fb6dc60@HIDDEN>
 <18173da7-32e1-4f14-bbea-9a8fa66af7dd@HIDDEN>
 <f9eb9bae-6275-4448-9590-e72a56064220@HIDDEN>
Date: Tue, 04 Jun 2024 09:53:14 +0300
Message-ID: <86plsxmc6d.fsf@HIDDEN>
User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/30.0.50 (x86_64-pc-linux-gnu)
MIME-Version: 1.0
Content-Type: text/plain
X-GND-Sasl: juri@HIDDEN
X-Spam-Score: -0.7 (/)
X-Debbugs-Envelope-To: 59862
Cc: 59862 <at> debbugs.gnu.org
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.7 (-)

> I revisited it once more and attach my last patch.  It also seems to
> DTRT with C-x 4 d RET C-h C-t C-h C-n q q q but would still require a
> longer period of testing.

Thanks, I started testing.




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#59862; Package emacs. Full text available.

Message received at 59862 <at> debbugs.gnu.org:


Received: (at 59862) by debbugs.gnu.org; 3 Jun 2024 16:10:21 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Mon Jun 03 12:10:21 2024
Received: from localhost ([127.0.0.1]:46206 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1sEAGG-0001O0-QU
	for submit <at> debbugs.gnu.org; Mon, 03 Jun 2024 12:10:21 -0400
Received: from mout.gmx.net ([212.227.15.19]:56935)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <rudalics@HIDDEN>) id 1sEAGD-0001NH-I1
 for 59862 <at> debbugs.gnu.org; Mon, 03 Jun 2024 12:10:15 -0400
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmx.at;
 s=s31663417; t=1717430994; x=1718035794; i=rudalics@HIDDEN;
 bh=/RdQP2TzPs3VPreHlsvtQCroeznDfrKeThLsYoikeqs=;
 h=X-UI-Sender-Class:Content-Type:Message-ID:Date:MIME-Version:
 Subject:From:To:References:In-Reply-To:cc:
 content-transfer-encoding:content-type:date:from:message-id:
 mime-version:reply-to:subject:to;
 b=QcVPjjBPnIF01D2tvqx+roU5aSBvpgSNA6eSMdB3mwtN0lAVQLaLqaCeAk3wuigS
 G5oW2dG60eoGupGqj4Das0K+m9QGhoyoAD7dTOMYvvUu16zG6nZhrX8nMp+O0IlP6
 kpTi/nioJNDWQPVpKUCoBeaKbFit9WxtAf0MczPp5LgLB/CwORswgdQSXwl2hrB8N
 SxPRLNTP1TzawR6g1ZQz50BrWRyYbdNanDD0PZdO743ZiHd+9GEbwFjO+zodHirRW
 Cf7/0Ig1sZq2SrDWNxWliHOgSVJtSbSkDi++0F2bQWioiQsNIC8KGB4MB1EkVzIAd
 Wa4cUbfDA7r6ZbXmiQ==
X-UI-Sender-Class: 724b4f7f-cbec-4199-ad4e-598c01a50d3a
Received: from [192.168.31.113] ([213.142.97.31]) by mail.gmx.net (mrgmx005
 [212.227.17.190]) with ESMTPSA (Nemesis) id 1N79yQ-1sWdQ52IW4-017Y0n; Mon, 03
 Jun 2024 18:09:53 +0200
Content-Type: multipart/mixed; boundary="------------xIisI0wIMSyB0RW73pBjpgJU"
Message-ID: <f9eb9bae-6275-4448-9590-e72a56064220@HIDDEN>
Date: Mon, 3 Jun 2024 18:09:52 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: bug#59862: quit-restore per window buffer
From: martin rudalics <rudalics@HIDDEN>
To: Juri Linkov <juri@HIDDEN>, 59862 <at> debbugs.gnu.org
References: <86fsds8mlm.fsf@HIDDEN> <86ttibq1w1.fsf@HIDDEN>
 <8243325e-ed03-4e9e-b64f-c8225fb6dc60@HIDDEN>
 <18173da7-32e1-4f14-bbea-9a8fa66af7dd@HIDDEN>
Content-Language: en-US
In-Reply-To: <18173da7-32e1-4f14-bbea-9a8fa66af7dd@HIDDEN>
X-Provags-ID: V03:K1:3pTaVu3ij+ch9p1LwDs2O7nabtI7OBxMB63/gJ6cXGex3JUtmW0
 Q594xfzZ4haiKpD3Hnji9YItkw9zpe/aPs0tEp7P4euOg4yYchqeEhgvY5/QPSdn72FJ25q
 IqcM8wXRrz+4pxu+H1xjcYq2+XaG2QIB/qBgcYHwLbTurAWNfMv3LMTie/SmqOmggv0+qeR
 zCRU7oT+ZvYET1mHkEYDQ==
X-Spam-Flag: NO
UI-OutboundReport: notjunk:1;M01:P0:FUnA26ER+CU=;vZ1M2glfBAEP19mUDrpPd84vDzk
 fh9lCYPkHkthf67V9qr2lRdcuWCsRnHfW9Pcb/TCZLR5wq0lQ1uCIWK3v86lGP0IJx4wcYcVL
 AkWcnSppsqJ/nnT0yy7cO9xpzuQkpkacpoXRmiVZQBwPkDK/bLob3JoC29Mld8ejIhd/1nfSk
 bbppmjdqfAi1kgpOg4c37dY2TUurvhp0sK/aP7tsg32j5mjWXHFYXDvqWN1GUtdMQDI4hzHy1
 TurxPp5FRda5f6QKyIzQgiQmIxoOU+AUXjlzaE7fwtzm31kcpOrWNrjPW9FEnI22BJjxCkf5V
 if61zjnhopi+iP/+J9ma6v2r5yVIHOG9BLoSC5wX2IouuEW9MHut6pdhgknTHHopNyBuwuuDd
 5xkMuSR7rIupaU8bwjTTLhp25vAS5CGaJ+gtCimjVd5ICc42iKh17MLVEacMlecd5WXC5/w8t
 JpL5JcPlW3boOtpXbztKC1cQseJ6Wc/NJcKWWqYvYVpOGYWPM+6/pXcC5+UT6gY75kqe4r9fC
 bKhocxlDt/xUooDAIKPtnL8Rn0R/0gGegzXS0UKFzZJpiOvSPYdMkmmNmWjEWWIq3IeUVJgH0
 8YYufZCd/koUXkrepyPx8m++sDjsMZ21ircpKDQwpm+52AglhKX23ExdF70/P+gyiVkmnMzZY
 QEooU1smp4/90KGkiLkfQahhKQ1gHdbbDQI7gSMQmS7BMb0ftyyndOHNz8YJoHF/Lx6tqwpIQ
 u0PVpRyT81YVQ5yFZunO2KwKgPNR0EjgMsewVCN2r8pVzbTKtcFdAFCibHKhYUQtjtRM4FuRV
 BoDmGJmFSxfSBWe0BaKx4SfyidOx+UA6A4u1XwpHHHkXY=
X-Spam-Score: 2.9 (++)
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 revisited it once more and attach my last patch. It also
 seems to DTRT with C-x 4 d RET C-h C-t C-h C-n q q q but would still require
 a longer period of testing. martin diff --git a/lisp/window.el
 b/lisp/window.el
 index b014be6a7cf..dcfc578ffd8 100644 --- a/lisp/window.el +++
 b/lisp/window.el
 @@ -4519,13 +4519,33 @@ unrecord-window-buffer "Unrecord BUFFER in W [...]
 Content analysis details:   (2.9 points, 10.0 required)
 pts rule name              description
 ---- ---------------------- --------------------------------------------------
 3.6 RCVD_IN_SBL_CSS        RBL: Received via a relay in Spamhaus SBL-CSS
 [213.142.97.31 listed in zen.spamhaus.org]
 -0.7 RCVD_IN_DNSWL_LOW      RBL: Sender listed at https://www.dnswl.org/,
 low trust [212.227.15.19 listed in list.dnswl.org]
 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 (rudalics[at]gmx.at)
 -0.0 SPF_PASS               SPF: sender matches SPF record
X-Debbugs-Envelope-To: 59862
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: 1.9 (+)
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 revisited it once more and attach my last patch. It also
    seems to DTRT with C-x 4 d RET C-h C-t C-h C-n q q q but would still require
    a longer period of testing. martin diff --git a/lisp/window.el b/lisp/window.el
    index b014be6a7cf..dcfc578ffd8 100644 --- a/lisp/window.el +++ b/lisp/window.el
    @@ -4519,13 +4519,33 @@ unrecord-window-buffer "Unrecord BUFFER in W [...]
    
 
 Content analysis details:   (1.9 points, 10.0 required)
 
  pts rule name              description
 ---- ---------------------- --------------------------------------------------
  3.6 RCVD_IN_SBL_CSS        RBL: Received via a relay in Spamhaus SBL-CSS
                             [213.142.97.31 listed in zen.spamhaus.org]
 -0.7 RCVD_IN_DNSWL_LOW      RBL: Sender listed at https://www.dnswl.org/,
                             low trust
                             [212.227.15.19 listed in list.dnswl.org]
  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 (rudalics[at]gmx.at)
 -0.0 SPF_PASS               SPF: sender matches SPF record
 -1.0 MAILING_LIST_MULTI     Multiple indicators imply a widely-seen list
                             manager

This is a multi-part message in MIME format.
--------------xIisI0wIMSyB0RW73pBjpgJU
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

I revisited it once more and attach my last patch.  It also seems to
DTRT with C-x 4 d RET C-h C-t C-h C-n q q q but would still require a
longer period of testing.

martin
--------------xIisI0wIMSyB0RW73pBjpgJU
Content-Type: text/x-patch; charset=UTF-8; name="quit-restore.diff"
Content-Disposition: attachment; filename="quit-restore.diff"
Content-Transfer-Encoding: base64

ZGlmZiAtLWdpdCBhL2xpc3Avd2luZG93LmVsIGIvbGlzcC93aW5kb3cuZWwKaW5kZXggYjAx
NGJlNmE3Y2YuLmRjZmM1NzhmZmQ4IDEwMDY0NAotLS0gYS9saXNwL3dpbmRvdy5lbAorKysg
Yi9saXNwL3dpbmRvdy5lbApAQCAtNDUxOSwxMyArNDUxOSwzMyBAQCB1bnJlY29yZC13aW5k
b3ctYnVmZmVyCiAgICJVbnJlY29yZCBCVUZGRVIgaW4gV0lORE9XLgogV0lORE9XIG11c3Qg
YmUgYSBsaXZlIHdpbmRvdyBhbmQgZGVmYXVsdHMgdG8gdGhlIHNlbGVjdGVkIG9uZS4KIEJV
RkZFUiBtdXN0IGJlIGEgbGl2ZSBidWZmZXIgYW5kIGRlZmF1bHRzIHRvIHRoZSBidWZmZXIg
b2YKLVdJTkRPVy4iCitXSU5ET1cuCisKK01ha2UgQlVGRkVSIGRpc2FwcGVhciBmcm9tIGFs
bCB2YXJpYWJsZXMgbWVudGlvbmVkIGJ5IHRoZSBvYmplY3Qgb2YKK1dJTkRPVy4gIFRoaXMg
aW5jbHVkZXMgdGhlIGJ1ZmZlcnMgcHJldmlvdXNseSBzaHdvbiBpbiBXSU5ET1cgYXMgd2Vs
bCBhcworYW55IGJ1ZmZlcnMgbWVudGlvbmVkIGJ5IFdJTkRPVydzIGBxdWl0LXJlc3RvcmUn
IGFuZCBgcXVpdC1yZXN0b3JlLXByZXYnCitwYXJhbWV0ZXJzLiIKICAgKGxldCogKCh3aW5k
b3cgKHdpbmRvdy1ub3JtYWxpemUtd2luZG93IHdpbmRvdyB0KSkKLQkgKGJ1ZmZlciAob3Ig
YnVmZmVyICh3aW5kb3ctYnVmZmVyIHdpbmRvdykpKSkKLSAgICAoc2V0LXdpbmRvdy1wcmV2
LWJ1ZmZlcnMKLSAgICAgd2luZG93IChhc3NxLWRlbGV0ZS1hbGwgYnVmZmVyICh3aW5kb3ct
cHJldi1idWZmZXJzIHdpbmRvdykpKQotICAgIChzZXQtd2luZG93LW5leHQtYnVmZmVycwot
ICAgICB3aW5kb3cgKGRlbHEgYnVmZmVyICh3aW5kb3ctbmV4dC1idWZmZXJzIHdpbmRvdykp
KSkpCisJIChidWZmZXIgKG9yIGJ1ZmZlciAod2luZG93LWJ1ZmZlciB3aW5kb3cpKSkKKwkg
KHF1aXQtcmVzdG9yZSAod2luZG93LXBhcmFtZXRlciB3aW5kb3cgJ3F1aXQtcmVzdG9yZSkp
CisJIChxdWl0LXJlc3RvcmUtcHJldiAod2luZG93LXBhcmFtZXRlciB3aW5kb3cgJ3F1aXQt
cmVzdG9yZS1wcmV2KSkKKwkgcXVhZCkKKyAgICAod2hlbiAoYnVmZmVyLWxpdmUtcCBidWZm
ZXIpCisgICAgICAoc2V0LXdpbmRvdy1wcmV2LWJ1ZmZlcnMKKyAgICAgICB3aW5kb3cgKGFz
c3EtZGVsZXRlLWFsbCBidWZmZXIgKHdpbmRvdy1wcmV2LWJ1ZmZlcnMgd2luZG93KSkpCisg
ICAgICAoc2V0LXdpbmRvdy1uZXh0LWJ1ZmZlcnMKKyAgICAgICB3aW5kb3cgKGRlbHEgYnVm
ZmVyICh3aW5kb3ctbmV4dC1idWZmZXJzIHdpbmRvdykpKQorCisgICAgICAod2hlbiAob3Ig
KGVxIGJ1ZmZlciAobnRoIDMgcXVpdC1yZXN0b3JlLXByZXYpKQorCQkoYW5kIChsaXN0cCAo
c2V0cSBxdWFkIChudGggMSBxdWl0LXJlc3RvcmUtcHJldikpKQorCQkgICAgIChlcSAoY2Fy
IHF1YWQpIGJ1ZmZlcikpKQorCShzZXQtd2luZG93LXBhcmFtZXRlciB3aW5kb3cgJ3F1aXQt
cmVzdG9yZS1wcmV2IG5pbCkpCisKKyAgICAgICh3aGVuIChvciAoZXEgYnVmZmVyIChudGgg
MyBxdWl0LXJlc3RvcmUpKQorCQkoYW5kIChsaXN0cCAoc2V0cSBxdWFkIChudGggMSBxdWl0
LXJlc3RvcmUpKSkKKwkJICAgICAoZXEgKGNhciBxdWFkKSBidWZmZXIpKSkKKwkoc2V0LXdp
bmRvdy1wYXJhbWV0ZXIKKwkgd2luZG93ICdxdWl0LXJlc3RvcmUgKHdpbmRvdy1wYXJhbWV0
ZXIgd2luZG93ICdxdWl0LXJlc3RvcmUtcHJldikpKSkpKQogCiAoZGVmdW4gc2V0LXdpbmRv
dy1idWZmZXItc3RhcnQtYW5kLXBvaW50ICh3aW5kb3cgYnVmZmVyICZvcHRpb25hbCBzdGFy
dCBwb2ludCkKICAgIlNldCBXSU5ET1cncyBidWZmZXIgdG8gQlVGRkVSLgpAQCAtNTA3NSwy
MSArNTA5NSwyMCBAQCBkZWxldGUtd2luZG93cy1vbgogdXNlIFxcW3VuaXZlcnNhbC1hcmd1
bWVudF0gMCB0byBzcGVjaWZ5IGFsbCB3aW5kb3dzIG9ubHkgb24KIHRoZSBjdXJyZW50IHRl
cm1pbmFsJ3MgZnJhbWVzLgogCi1JZiBhIGZyYW1lJ3Mgcm9vdCB3aW5kb3cgc2hvd3MgdGhl
IGJ1ZmZlciBzcGVjaWZpZWQgYnkKLUJVRkZFUi1PUi1OQU1FIGFuZCBpcyBkZWRpY2F0ZWQg
dG8gdGhhdCBidWZmZXIgYW5kIHRoYXQgZnJhbWUKLWRvZXMgbm90IGhvc3QgdGhlIGFjdGl2
ZSBtaW5pYnVmZmVyIHdpbmRvdyBhbmQgdGhlcmUgaXMgYXQgbGVhc3QKLW9uZSBvdGhlciBm
cmFtZSBvbiB0aGF0IGZyYW1lJ3MgdGVybWluYWwsIGRlbGV0ZSB0aGF0IGZyYW1lLgotT3Ro
ZXJ3aXNlLCBkbyBub3QgZGVsZXRlIGEgZnJhbWUncyByb290IHdpbmRvdyBpZiBpdCBzaG93
cyB0aGUKLWJ1ZmZlciBzcGVjaWZpZWQgYnkgQlVGRkVSLU9SLU5BTUUgYW5kIGRvIG5vdCBk
ZWxldGUgYW55IGZyYW1lJ3MKLW1haW4gd2luZG93IHNob3dpbmcgdGhhdCBidWZmZXIgZWl0
aGVyLiAgUmF0aGVyLCBpbiBhbnkgc3VjaAotY2FzZSwgY2FsbCBgc3dpdGNoLXRvLXByZXYt
YnVmZmVyJyB0byBzaG93IGFub3RoZXIgYnVmZmVyIGluIHRoYXQKLXdpbmRvdyBhbmQgbWFr
ZSBzdXJlIHRoZSB3aW5kb3cgaXMgbm8gbW9yZSBkZWRpY2F0ZWQgdG8gaXRzCi1idWZmZXIu
Ci0KLUlmIHRoZSBidWZmZXIgc3BlY2lmaWVkIGJ5IEJVRkZFUi1PUi1OQU1FIGlzIHNob3du
IGluIGEKLW1pbmlidWZmZXIgd2luZG93LCBkbyBub3RoaW5nIGZvciB0aGF0IHdpbmRvdy4g
IEZvciBhbnkgd2luZG93Ci10aGF0IGRvZXMgbm90IHNob3cgdGhhdCBidWZmZXIsIHJlbW92
ZSB0aGUgYnVmZmVyIGZyb20gdGhhdAotd2luZG93J3MgbGlzdHMgb2YgcHJldmlvdXMgYW5k
IG5leHQgYnVmZmVycy4iCitJZiBhIGZyYW1lJ3Mgcm9vdCB3aW5kb3cgc2hvd3MgdGhlIGJ1
ZmZlciBzcGVjaWZpZWQgYnkgQlVGRkVSLU9SLU5BTUUKK2FuZCBpcyBkZWRpY2F0ZWQgdG8g
dGhhdCBidWZmZXIgYW5kIHRoYXQgZnJhbWUgZG9lcyBub3QgaG9zdCB0aGUgYWN0aXZlCitt
aW5pYnVmZmVyIHdpbmRvdyBhbmQgdGhlcmUgaXMgYXQgbGVhc3Qgb25lIG90aGVyIGZyYW1l
IG9uIHRoYXQgZnJhbWUncwordGVybWluYWwsIGRlbGV0ZSB0aGF0IGZyYW1lLiAgT3RoZXJ3
aXNlLCBkbyBub3QgZGVsZXRlIGEgZnJhbWUncyByb290Cit3aW5kb3cgaWYgaXQgc2hvd3Mg
dGhlIGJ1ZmZlciBzcGVjaWZpZWQgYnkgQlVGRkVSLU9SLU5BTUUgYW5kIGRvIG5vdAorZGVs
ZXRlIGFueSBmcmFtZSdzIG1haW4gd2luZG93IHNob3dpbmcgdGhhdCBidWZmZXIgZWl0aGVy
LiAgUmF0aGVyLCBpbgorYW55IHN1Y2ggY2FzZSwgY2FsbCBgcXVpdC1yZXN0b3JlLXdpbmRv
dycgdG8gc2hvdyBhbm90aGVyIGJ1ZmZlciBpbiB0aGF0Cit3aW5kb3cgYW5kIG1ha2Ugc3Vy
ZSB0aGUgd2luZG93IGlzIG5vIG1vcmUgZGVkaWNhdGVkIHRvIGl0cyBidWZmZXIuCisKK0lm
IHRoZSBidWZmZXIgc3BlY2lmaWVkIGJ5IEJVRkZFUi1PUi1OQU1FIGlzIHNob3duIGluIGEg
bWluaWJ1ZmZlcgord2luZG93LCBkbyBub3RoaW5nIGZvciB0aGF0IHdpbmRvdy4gIEZvciBh
bnkgd2luZG93IHRoYXQgZG9lcyBub3Qgc2hvdwordGhhdCBidWZmZXIsIHJlbW92ZSB0aGUg
YnVmZmVyIGZyb20gdGhhdCB3aW5kb3cncyBsaXN0cyBvZiBwcmV2aW91cyBhbmQKK25leHQg
YnVmZmVycyBhbmQgcmVtb3ZlIGFueSBgcXVpdC1yZXN0b3JlJyBhbmQgYHF1aXQtcmVzdG9y
ZS1wcmV2JworcGFyYW1ldGVycyBuYW1pbmcgaXQuIgogICAoaW50ZXJhY3RpdmUKICAgIChs
ZXQgKChmcmFtZSAoY29uZAogICAgICAgICAgICAgICAgICAoKGFuZCAobnVtYmVycCBjdXJy
ZW50LXByZWZpeC1hcmcpCkBAIC01MTA3LDkgKzUxMjYsOSBAQCBkZWxldGUtd2luZG93cy1v
bgogICAgICAgICAgICBmcmFtZSkpKQogICAobGV0ICgoYnVmZmVyICh3aW5kb3ctbm9ybWFs
aXplLWJ1ZmZlciBidWZmZXItb3ItbmFtZSkpCiAJOzsgSGFuZGxlIHRoZSAiaW52ZXJ0ZWQi
IG1lYW5pbmcgb2YgdGhlIEZSQU1FIGFyZ3VtZW50IHdydCBvdGhlcgotCTs7IGB3aW5kb3ct
bGlzdC0xJyBiYXNlZCBmdW5jdGlvbi4KLQkoYWxsLWZyYW1lcyAoY29uZCAoKG5vdCBmcmFt
ZSkgdCkgKChlcSBmcmFtZSB0KSBuaWwpICh0IGZyYW1lKSkpKQotICAgIChkb2xpc3QgKHdp
bmRvdyAod2luZG93LWxpc3QtMSBuaWwgbmlsIGFsbC1mcmFtZXMpKQorCTs7IGB3aW5kb3ct
bGlzdC0xJyBiYXNlZCBmdW5jdGlvbnMuCisJKGZyYW1lcyAoY29uZCAoKG5vdCBmcmFtZSkg
dCkgKChlcSBmcmFtZSB0KSBuaWwpICh0IGZyYW1lKSkpKQorICAgIChkb2xpc3QgKHdpbmRv
dyAod2luZG93LWxpc3QtMSBuaWwgJ25vbWluaSBmcmFtZXMpKQogICAgICAgKGlmIChlcSAo
d2luZG93LWJ1ZmZlciB3aW5kb3cpIGJ1ZmZlcikKIAkgIChsZXQgKChkZWxldGFibGUgKHdp
bmRvdy1kZWxldGFibGUtcCB3aW5kb3cpKQogICAgICAgICAgICAgICAgIChkZWRpY2F0ZWQg
KHdpbmRvdy1kZWRpY2F0ZWQtcCB3aW5kb3cpKSkKQEAgLTUxMjEsMTkgKzUxNDAsMTkgQEAg
ZGVsZXRlLXdpbmRvd3Mtb24KIAkgICAgICA7OyBEZWxldGUgd2luZG93LgogCSAgICAgIChk
ZWxldGUtd2luZG93IHdpbmRvdykpCiAJICAgICAodAotCSAgICAgIDs7IEluIHdpbmRvdyBz
d2l0Y2ggdG8gcHJldmlvdXMgYnVmZmVyLgotCSAgICAgIChzZXQtd2luZG93LWRlZGljYXRl
ZC1wIHdpbmRvdyBuaWwpCi0JICAgICAgKHN3aXRjaC10by1wcmV2LWJ1ZmZlciB3aW5kb3cg
J2J1cnkpCi0gICAgICAgICAgICAgIDs7IFJlc3RvcmUgdGhlIGRlZGljYXRlZCAnc2lkZScg
ZmxhZy4KLSAgICAgICAgICAgICAgKHdoZW4gKGVxIGRlZGljYXRlZCAnc2lkZSkKLSAgICAg
ICAgICAgICAgICAoc2V0LXdpbmRvdy1kZWRpY2F0ZWQtcCB3aW5kb3cgJ3NpZGUpKSkpKQor
CSAgICAgICh3aGVuIChlcSAod2luZG93LWJ1ZmZlciB3aW5kb3cpIGJ1ZmZlcikKKwkJKHF1
aXQtcmVzdG9yZS13aW5kb3cgd2luZG93ICdidXJ5KSkKKwkgICAgICAod2hlbiAod2luZG93
LWxpdmUtcCB3aW5kb3cpCisJCTs7IFVucmVjb3JkIEJVRkZFUiBpbiB0aGlzIHdpbmRvdy4K
KwkJKHVucmVjb3JkLXdpbmRvdy1idWZmZXIgd2luZG93IGJ1ZmZlcikpKSkpCiAJOzsgSWYg
YSB3aW5kb3cgZG9lc24ndCBzaG93IEJVRkZFUiwgdW5yZWNvcmQgQlVGRkVSIGluIGl0Lgog
CSh1bnJlY29yZC13aW5kb3ctYnVmZmVyIHdpbmRvdyBidWZmZXIpKSkpKQogCiAoZGVmdW4g
cmVwbGFjZS1idWZmZXItaW4td2luZG93cyAoJm9wdGlvbmFsIGJ1ZmZlci1vci1uYW1lKQog
ICAiUmVwbGFjZSBCVUZGRVItT1ItTkFNRSB3aXRoIHNvbWUgb3RoZXIgYnVmZmVyIGluIGFs
bCB3aW5kb3dzIHNob3dpbmcgaXQuCiBCVUZGRVItT1ItTkFNRSBtYXkgYmUgYSBidWZmZXIg
b3IgdGhlIG5hbWUgb2YgYW4gZXhpc3RpbmcgYnVmZmVyCi1hbmQgZGVmYXVsdHMgdG8gdGhl
IGN1cnJlbnQgYnVmZmVyLgorYW5kIGRlZmF1bHRzIHRvIHRoZSBjdXJyZW50IGJ1ZmZlci4g
IE1pbmlidWZmZXIgd2luZG93cyBhcmUgbm90Citjb25zaWRlcmVkLgogCiBXaXRoIHRoZSBl
eGNlcHRpb24gb2Ygc2lkZSB3aW5kb3dzLCB3aGVuIGEgd2luZG93IHNob3dpbmcgQlVGRkVS
LU9SLU5BTUUKIGlzIGRlZGljYXRlZCwgdGhhdCB3aW5kb3cgaXMgZGVsZXRlZC4gIElmIHRo
YXQgd2luZG93IGlzIHRoZSBvbmx5IHdpbmRvdwpAQCAtNTE0MSwyMSArNTE2MCwxOCBAQCBy
ZXBsYWNlLWJ1ZmZlci1pbi13aW5kb3dzCiBJZiB0aGVyZSBhcmUgbm8gb3RoZXIgZnJhbWVz
IGxlZnQsIHNvbWUgb3RoZXIgYnVmZmVyIGlzIGRpc3BsYXllZCBpbiB0aGF0CiB3aW5kb3cu
CiAKLVRoaXMgZnVuY3Rpb24gcmVtb3ZlcyB0aGUgYnVmZmVyIGRlbm90ZWQgYnkgQlVGRkVS
LU9SLU5BTUUgZnJvbQotYWxsIHdpbmRvdy1sb2NhbCBidWZmZXIgbGlzdHMuIgorVGhpcyBm
dW5jdGlvbiByZW1vdmVzIHRoZSBidWZmZXIgZGVub3RlZCBieSBCVUZGRVItT1ItTkFNRSBm
cm9tIGFsbAord2luZG93LWxvY2FsIGJ1ZmZlciBsaXN0cyBhbmQgcmVtb3ZlcyBhbnkgYHF1
aXQtcmVzdG9yZScgb3IKK2BxdWl0LXJlc3RvcmUtcHJldicgcGFyYW1ldGVycyBtZW50aW9u
aW5nIGl0LiIKICAgKGludGVyYWN0aXZlICJiQnVmZmVyIHRvIHJlcGxhY2U6ICIpCiAgIChs
ZXQgKChidWZmZXIgKHdpbmRvdy1ub3JtYWxpemUtYnVmZmVyIGJ1ZmZlci1vci1uYW1lKSkp
CisgICAgOzsgU2NhbiBhbGwgd2luZG93cy4gIFdlIGhhdmUgdG8gdW5yZWNvcmQgQlVGRkVS
IGluIHRob3NlIG5vdAorICAgIDs7IHNob3dpbmcgaXQuCiAgICAgKGRvbGlzdCAod2luZG93
ICh3aW5kb3ctbGlzdC0xIG5pbCBuaWwgdCkpCi0gICAgICAoaWYgKGVxICh3aW5kb3ctYnVm
ZmVyIHdpbmRvdykgYnVmZmVyKQotICAgICAgICAgIDs7IERlbGV0ZSBhIGRlZGljYXRlZCB3
aW5kb3cgdW5sZXNzIGl0IGlzIGEgc2lkZSB3aW5kb3cuCi0gICAgICAgICAgKGxldCAoKGRl
ZGljYXRlZC1zaWRlIChlcSAod2luZG93LWRlZGljYXRlZC1wIHdpbmRvdykgJ3NpZGUpKSkK
LSAgICAgICAgICAgICh3aGVuIChvciBkZWRpY2F0ZWQtc2lkZSAobm90ICh3aW5kb3ctLWRl
bGV0ZSB3aW5kb3cgdCB0KSkpCi0gICAgICAgICAgICAgIDs7IFN3aXRjaCB0byBhbm90aGVy
IGJ1ZmZlciBpbiB0aGF0IHdpbmRvdy4KLSAgICAgICAgICAgICAgKHNldC13aW5kb3ctZGVk
aWNhdGVkLXAgd2luZG93IG5pbCkKLSAgICAgICAgICAgICAgKGlmIChzd2l0Y2gtdG8tcHJl
di1idWZmZXIgd2luZG93ICdraWxsKQotICAgICAgICAgICAgICAgICAgKGFuZCBkZWRpY2F0
ZWQtc2lkZSAoc2V0LXdpbmRvdy1kZWRpY2F0ZWQtcCB3aW5kb3cgJ3NpZGUpKQotICAgICAg
ICAgICAgICAgICh3aW5kb3ctLWRlbGV0ZSB3aW5kb3cgbmlsICdraWxsKSkpKQotCTs7IFVu
cmVjb3JkIEJVRkZFUiBpbiBXSU5ET1cuCisgICAgICAod2hlbiAoZXEgKHdpbmRvdy1idWZm
ZXIgd2luZG93KSBidWZmZXIpCisJKHF1aXQtcmVzdG9yZS13aW5kb3cgd2luZG93KSkKKyAg
ICAgICh3aGVuICh3aW5kb3ctbGl2ZS1wIHdpbmRvdykKKwk7OyBVbnJlY29yZCBCVUZGRVIg
aW4gdGhpcyB3aW5kb3cuCiAJKHVucmVjb3JkLXdpbmRvdy1idWZmZXIgd2luZG93IGJ1ZmZl
cikpKSkpCiAKIChkZWZjdXN0b20gcXVpdC13aW5kb3ctaG9vayBuaWwKQEAgLTUxNzYsMTMg
KzUxOTIsMTMgQEAgcXVpdC1yZXN0b3JlLXdpbmRvdwogICAiUXVpdCBXSU5ET1cgYW5kIGRl
YWwgd2l0aCBpdHMgYnVmZmVyLgogV0lORE9XIG11c3QgYmUgYSBsaXZlIHdpbmRvdyBhbmQg
ZGVmYXVsdHMgdG8gdGhlIHNlbGVjdGVkIG9uZS4KIAotQWNjb3JkaW5nIHRvIGluZm9ybWF0
aW9uIHN0b3JlZCBpbiBXSU5ET1cncyBgcXVpdC1yZXN0b3JlJyB3aW5kb3cKLXBhcmFtZXRl
ciBlaXRoZXIgKDEpIGRlbGV0ZSBXSU5ET1cgYW5kIGl0cyBmcmFtZSwgKDIpIGRlbGV0ZQot
V0lORE9XIGJ1dCBsZWF2ZSBpdHMgZnJhbWUgYWxvbmUsICgzKSByZXN0b3JlIHRoZSBidWZm
ZXIKLXByZXZpb3VzbHkgc2hvd24gaW4gV0lORE9XLCBvciAoNCkgbWFrZSBXSU5ET1cgZGlz
cGxheSBzb21lIG90aGVyCi1idWZmZXIuICBJZiBXSU5ET1cgaXMgbm90IGRlbGV0ZWQsIHJl
c2V0IGl0cyBgcXVpdC1yZXN0b3JlJwotcGFyYW1ldGVyIHRvIG5pbC4gIFNlZSBJbmZvIG5v
ZGUgYChlbGlzcCkgUXVpdHRpbmcgV2luZG93cycgZm9yCi1tb3JlIGRldGFpbHMuCitBY2Nv
cmRpbmcgdG8gaW5mb3JtYXRpb24gc3RvcmVkIGluIFdJTkRPVydzIGBxdWl0LXJlc3RvcmUn
IGFuZAorYHF1aXQtcmVzdG9yZS1wcmV2JyB3aW5kb3cgcGFyYW1ldGVycyBlaXRoZXIgKDEp
IGRlbGV0ZSBXSU5ET1cgYW5kIGl0cworZnJhbWUsICgyKSBkZWxldGUgV0lORE9XIGJ1dCBs
ZWF2ZSBpdHMgZnJhbWUgYWxvbmUsICgzKSByZXN0b3JlIHRoZQorYnVmZmVyIHByZXZpb3Vz
bHkgc2hvd24gaW4gV0lORE9XLCBvciAoNCkgbWFrZSBXSU5ET1cgZGlzcGxheSBzb21lIG90
aGVyCitidWZmZXIuICBJbiBjYXNlICgzKSBzZXQgYW55IG9mIHRoZXNlIHBhcmFtZXRlcnMg
dG8gbmlsIGlmIGl0IGhhcyBiZWVuCit1c2VkIHRvIHJlc3RvcmUgdGhlIHByZXZpb3VzbHkg
c2hvd24gYnVmZmVyLiAgU2VlIEluZm8gbm9kZSBgKGVsaXNwKQorUXVpdHRpbmcgV2luZG93
cycgZm9yIG1vcmUgZGV0YWlscy4KIAogSWYgV0lORE9XJ3MgZGVkaWNhdGVkIGZsYWcgaXMg
dCwgdHJ5IHRvIGRlbGV0ZSBXSU5ET1cuICBJZiBpdAogZXF1YWxzIHRoZSB2YWx1ZSBgc2lk
ZScsIHJlc3RvcmUgdGhhdCB2YWx1ZSB3aGVuIFdJTkRPVyBpcyBub3QKQEAgLTUyMTAsMTMg
KzUyMjYsMTUgQEAgcXVpdC1yZXN0b3JlLXdpbmRvdwogICAoc2V0cSB3aW5kb3cgKHdpbmRv
dy1ub3JtYWxpemUtd2luZG93IHdpbmRvdyB0KSkKICAgKGxldCogKChidWZmZXIgKHdpbmRv
dy1idWZmZXIgd2luZG93KSkKIAkgKHF1aXQtcmVzdG9yZSAod2luZG93LXBhcmFtZXRlciB3
aW5kb3cgJ3F1aXQtcmVzdG9yZSkpCisJIChxdWl0LXJlc3RvcmUtcHJldiAod2luZG93LXBh
cmFtZXRlciB3aW5kb3cgJ3F1aXQtcmVzdG9yZS1wcmV2KSkKIAkgKHF1aXQtcmVzdG9yZS0y
IChudGggMiBxdWl0LXJlc3RvcmUpKQorCSAocXVpdC1yZXN0b3JlLXByZXYtMiAobnRoIDIg
cXVpdC1yZXN0b3JlLXByZXYpKQogICAgICAgICAgKHByZXYtYnVmZmVyIChjYXRjaCAncHJl
di1idWZmZXIKICAgICAgICAgICAgICAgICAgICAgICAgIChkb2xpc3QgKGJ1ZiAod2luZG93
LXByZXYtYnVmZmVycyB3aW5kb3cpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAodW5s
ZXNzIChlcSAoY2FyIGJ1ZikgYnVmZmVyKQogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICh0aHJvdyAncHJldi1idWZmZXIgKGNhciBidWYpKSkpKSkKICAgICAgICAgIChkZWRpY2F0
ZWQgKHdpbmRvdy1kZWRpY2F0ZWQtcCB3aW5kb3cpKQotCSBxdWFkIGVudHJ5KQorCSBxdWFk
IGVudHJ5IHJlc2V0LXByZXYpCiAgICAgKGNvbmQKICAgICAgOzsgRmlyc3QgdHJ5IHRvIGRl
bGV0ZSBkZWRpY2F0ZWQgd2luZG93cyB0aGF0IGFyZSBub3Qgc2lkZSB3aW5kb3dzLgogICAg
ICAoKGFuZCBkZWRpY2F0ZWQgKG5vdCAoZXEgZGVkaWNhdGVkICdzaWRlKSkKQEAgLTUyMzAs
MjEgKzUyNDgsMzUgQEAgcXVpdC1yZXN0b3JlLXdpbmRvdwogICAgICAgOzsgSWYgdGhlIHBy
ZXZpb3VzbHkgc2VsZWN0ZWQgd2luZG93IGlzIHN0aWxsIGFsaXZlLCBzZWxlY3QgaXQuCiAg
ICAgICAod2luZG93LS1xdWl0LXJlc3RvcmUtc2VsZWN0LXdpbmRvdyBxdWl0LXJlc3RvcmUt
MikpCiAgICAgICgoYW5kIChub3QgcHJldi1idWZmZXIpCi0JICAgKG9yIChlcSAobnRoIDEg
cXVpdC1yZXN0b3JlKSAnZnJhbWUpCi0JICAgICAgIChhbmQgKGVxIChudGggMSBxdWl0LXJl
c3RvcmUpICd3aW5kb3cpCi0JCSAgICA7OyBJZiB0aGUgd2luZG93IGhhcyBiZWVuIGNyZWF0
ZWQgb24gYW4gZXhpc3RpbmcKLQkJICAgIDs7IGZyYW1lIGFuZCBlbmRlZCB1cCBhcyB0aGUg
c29sZSB3aW5kb3cgb24gdGhhdAotCQkgICAgOzsgZnJhbWUsIGRvIG5vdCBkZWxldGUgaXQg
KEJ1ZyMxMjc2NCkuCi0JCSAgICAobm90IChlcSB3aW5kb3cgKGZyYW1lLXJvb3Qtd2luZG93
IHdpbmRvdykpKSkpCi0JICAgKGVxIChudGggMyBxdWl0LXJlc3RvcmUpIGJ1ZmZlcikKKwkg
ICAob3IgKGFuZCAob3IgKGVxIChudGggMSBxdWl0LXJlc3RvcmUpICdmcmFtZSkKKwkJCShh
bmQgKGVxIChudGggMSBxdWl0LXJlc3RvcmUpICd3aW5kb3cpCisJCQkgICAgIDs7IElmIHRo
ZSB3aW5kb3cgaGFzIGJlZW4gY3JlYXRlZCBvbiBhbgorCQkJICAgICA7OyBleGlzdGluZyBm
cmFtZSBhbmQgZW5kZWQgdXAgYXMgdGhlIHNvbGUKKwkJCSAgICAgOzsgd2luZG93IG9uIHRo
YXQgZnJhbWUsIGRvIG5vdCBkZWxldGUgaXQKKwkJCSAgICAgOzsgKEJ1ZyMxMjc2NCkuCisJ
CQkgICAgIChub3QgKGVxIHdpbmRvdyAoZnJhbWUtcm9vdC13aW5kb3cgd2luZG93KSkpKSkK
KwkJICAgIChlcSAobnRoIDMgcXVpdC1yZXN0b3JlKSBidWZmZXIpKQorCSAgICAgICAoYW5k
IChvciAoZXEgKG50aCAxIHF1aXQtcmVzdG9yZS1wcmV2KSAnZnJhbWUpCisJCQkoYW5kIChl
cSAobnRoIDEgcXVpdC1yZXN0b3JlLXByZXYpICd3aW5kb3cpCisJCQkgICAgIChub3QgKGVx
IHdpbmRvdyAoZnJhbWUtcm9vdC13aW5kb3cgd2luZG93KSkpKSkKKwkJICAgIChlcSAobnRo
IDMgcXVpdC1yZXN0b3JlLXByZXYpIGJ1ZmZlcikKKwkJICAgIDs7IFVzZSBzZWxlY3RlZCB3
aW5kb3cgZnJvbSBxdWl0LXJlc3RvcmUtcHJldi4KKwkJICAgIChzZXRxIHF1aXQtcmVzdG9y
ZS0yIHF1aXQtcmVzdG9yZS1wcmV2LTIpKSkKIAkgICA7OyBEZWxldGUgV0lORE9XIGlmIHBv
c3NpYmxlLgogCSAgICh3aW5kb3ctLWRlbGV0ZSB3aW5kb3cgbmlsIChlcSBidXJ5LW9yLWtp
bGwgJ2tpbGwpKSkKICAgICAgIDs7IElmIHRoZSBwcmV2aW91c2x5IHNlbGVjdGVkIHdpbmRv
dyBpcyBzdGlsbCBhbGl2ZSwgc2VsZWN0IGl0LgogICAgICAgKHdpbmRvdy0tcXVpdC1yZXN0
b3JlLXNlbGVjdC13aW5kb3cgcXVpdC1yZXN0b3JlLTIpKQotICAgICAoKGFuZCAobGlzdHAg
KHNldHEgcXVhZCAobnRoIDEgcXVpdC1yZXN0b3JlKSkpCi0JICAgKGJ1ZmZlci1saXZlLXAg
KGNhciBxdWFkKSkKLQkgICAoZXEgKG50aCAzIHF1aXQtcmVzdG9yZSkgYnVmZmVyKSkKLSAg
ICAgIDs7IFNob3cgYW5vdGhlciBidWZmZXIgc3RvcmVkIGluIHF1aXQtcmVzdG9yZSBwYXJh
bWV0ZXIuCisgICAgICgob3IgKGFuZCAobGlzdHAgKHNldHEgcXVhZCAobnRoIDEgcXVpdC1y
ZXN0b3JlLXByZXYpKSkKKwkgICAgICAgKGJ1ZmZlci1saXZlLXAgKGNhciBxdWFkKSkKKwkg
ICAgICAgKGVxIChudGggMyBxdWl0LXJlc3RvcmUtcHJldikgYnVmZmVyKQorCSAgICAgICA7
OyBVc2Ugc2VsZWN0ZWQgd2luZG93IGZyb20gcXVpdC1yZXN0b3JlLXByZXYuCisJICAgICAg
IChzZXRxIHF1aXQtcmVzdG9yZS0yIHF1aXQtcmVzdG9yZS1wcmV2LTIpCisJICAgICAgIDs7
IFdlIHdhbnQgdG8gcmVzZXQgcXVpdC1yZXN0b3JlLXByZXYgb25seS4KKwkgICAgICAgKHNl
dHEgcmVzZXQtcHJldiB0KSkKKwkgIChhbmQgKGxpc3RwIChzZXRxIHF1YWQgKG50aCAxIHF1
aXQtcmVzdG9yZSkpKQorCSAgICAgICAoYnVmZmVyLWxpdmUtcCAoY2FyIHF1YWQpKQorCSAg
ICAgICAoZXEgKG50aCAzIHF1aXQtcmVzdG9yZSkgYnVmZmVyKSkpCisgICAgICA7OyBTaG93
IGFub3RoZXIgYnVmZmVyIHN0b3JlZCBpbiBxdWl0LXJlc3RvcmUoLXByZXYpIHBhcmFtZXRl
ci4KICAgICAgICh3aGVuIChhbmQgKGludGVnZXJwIChudGggMyBxdWFkKSkKIAkJIChpZiAo
d2luZG93LWNvbWJpbmVkLXAgd2luZG93KQogICAgICAgICAgICAgICAgICAgICAgKC89IChu
dGggMyBxdWFkKSAod2luZG93LXRvdGFsLWhlaWdodCB3aW5kb3cpKQpAQCAtNTI4MSwxNSAr
NTMxMywxOCBAQCBxdWl0LXJlc3RvcmUtd2luZG93CiAJOzsgYGRpc3BsYXktYnVmZmVyLWlu
LXByZXZpb3VzLXdpbmRvdycgY2FuIG5ldmVydGhlbGVzcyBmaW5kIGl0LgogCShzZXQtd2lu
ZG93LXByZXYtYnVmZmVycwogCSB3aW5kb3cgKGFwcGVuZCAod2luZG93LXByZXYtYnVmZmVy
cyB3aW5kb3cpIChsaXN0IGVudHJ5KSkpKQotICAgICAgOzsgUmVzZXQgdGhlIHF1aXQtcmVz
dG9yZSBwYXJhbWV0ZXIuCi0gICAgICAoc2V0LXdpbmRvdy1wYXJhbWV0ZXIgd2luZG93ICdx
dWl0LXJlc3RvcmUgbmlsKQorICAgICAgOzsgUmVzZXQgdGhlIHF1aXQtcmVzdG9yZSgtcHJl
dikgcGFyYW1ldGVyLgorICAgICAgKHNldC13aW5kb3ctcGFyYW1ldGVyIHdpbmRvdyAncXVp
dC1yZXN0b3JlLXByZXYgbmlsKQorICAgICAgKHVubGVzcyByZXNldC1wcmV2CisJOzsgSWYg
cXVpdC1yZXN0b3JlLXByZXYgd2FzIG5vdCB1c2VkLCByZXNldCB0aGUgcXVpdC1yZXN0b3Jl
CisJOzsgcGFyYW1ldGVyCisJKHNldC13aW5kb3ctcGFyYW1ldGVyIHdpbmRvdyAncXVpdC1y
ZXN0b3JlIG5pbCkpCiAgICAgICA7OyBTZWxlY3Qgb2xkIHdpbmRvdy4KICAgICAgIDs7IElm
IHRoZSBwcmV2aW91c2x5IHNlbGVjdGVkIHdpbmRvdyBpcyBzdGlsbCBhbGl2ZSwgc2VsZWN0
IGl0LgogICAgICAgKHdpbmRvdy0tcXVpdC1yZXN0b3JlLXNlbGVjdC13aW5kb3cgcXVpdC1y
ZXN0b3JlLTIpKQogICAgICAodAotICAgICAgOzsgU2hvdyBzb21lIG90aGVyIGJ1ZmZlciBp
biBXSU5ET1cgYW5kIHJlc2V0IHRoZSBxdWl0LXJlc3RvcmUKLSAgICAgIDs7IHBhcmFtZXRl
ci4KLSAgICAgIChzZXQtd2luZG93LXBhcmFtZXRlciB3aW5kb3cgJ3F1aXQtcmVzdG9yZSBu
aWwpCisgICAgICA7OyBTaG93IHNvbWUgb3RoZXIgYnVmZmVyIGluIFdJTkRPVyBhbmQgbGVh
dmUgdGhlCisgICAgICA7OyBxdWl0LXJlc3RvcmUoLXByZXYpIHBhcmFtZXRlcnMgYWxvbmUg
KEp1cmkncyBpZGVhKS4KICAgICAgIDs7IE1ha2Ugc3VyZSB0aGF0IFdJTkRPVyBpcyBubyBt
b3JlIGRlZGljYXRlZC4KICAgICAgIChzZXQtd2luZG93LWRlZGljYXRlZC1wIHdpbmRvdyBu
aWwpCiAgICAgICA7OyBUcnkgdG8gc3dpdGNoIHRvIGEgcHJldmlvdXMgYnVmZmVyLiAgRGVs
ZXRlIHRoZSB3aW5kb3cgb25seSBpZgpAQCAtNTI5NywxMCArNTMzMiw3IEBAIHF1aXQtcmVz
dG9yZS13aW5kb3cKICAgICAgIChpZiAoc3dpdGNoLXRvLXByZXYtYnVmZmVyIHdpbmRvdyBi
dXJ5LW9yLWtpbGwpCiAgICAgICAgICAgKHdoZW4gKGVxIGRlZGljYXRlZCAnc2lkZSkKICAg
ICAgICAgICAgIChzZXQtd2luZG93LWRlZGljYXRlZC1wIHdpbmRvdyAnc2lkZSkpCi0gICAg
ICAgICh3aW5kb3ctLWRlbGV0ZSB3aW5kb3cgbmlsIChlcSBidXJ5LW9yLWtpbGwgJ2tpbGwp
KQotICAgICAgOzsgSWYgdGhlIHByZXZpb3VzbHkgc2VsZWN0ZWQgd2luZG93IGlzIHN0aWxs
IGFsaXZlLCBzZWxlY3QgaXQuCi0gICAgICAod2luZG93LS1xdWl0LXJlc3RvcmUtc2VsZWN0
LXdpbmRvdyBxdWl0LXJlc3RvcmUtMikpKSkKLQorICAgICAgICAod2luZG93LS1kZWxldGUg
d2luZG93IG5pbCAoZXEgYnVyeS1vci1raWxsICdraWxsKSkpKSkKICAgICA7OyBEZWFsIHdp
dGggdGhlIGJ1ZmZlci4KICAgICAoY29uZAogICAgICAoKG5vdCAoYnVmZmVyLWxpdmUtcCBi
dWZmZXIpKSkKQEAgLTUzMzYsMTcgKzUzNjgsMjEgQEAgcXVpdC13aW5kb3dzLW9uCiBCVUZG
RVItT1ItTkFNRS4gIE9wdGlvbmFsIGFyZ3VtZW50IEZSQU1FIGlzIGhhbmRsZWQgYXMgYnkK
IGBkZWxldGUtd2luZG93cy1vbicuCiAKLVRoaXMgZnVuY3Rpb24gY2FsbHMgYHF1aXQtd2lu
ZG93JyBvbiBhbGwgY2FuZGlkYXRlIHdpbmRvd3MKLXNob3dpbmcgQlVGRkVSLU9SLU5BTUUu
IgorVGhpcyBmdW5jdGlvbiBjYWxscyBgcXVpdC1yZXN0b3JlLXdpbmRvdycgb24gYWxsIGNh
bmRpZGF0ZSB3aW5kb3dzCitzaG93aW5nIEJVRkZFUi1PUi1OQU1FLiAgSW4gYWRkaXRpb24s
IGl0IHJlbW92ZXMgdGhlIGJ1ZmZlciBkZW5vdGVkIGJ5CitCVUZGRVItT1ItTkFNRSBmcm9t
IGFsbCB3aW5kb3ctbG9jYWwgYnVmZmVyIGxpc3RzIGFuZCByZW1vdmVzIGFueQorYHF1aXQt
cmVzdG9yZScgb3IgYHF1aXQtcmVzdG9yZS1wcmV2JyBwYXJhbWV0ZXJzIG1lbnRpb25pbmcg
aXQuIgogICAoaW50ZXJhY3RpdmUgImJRdWl0IHdpbmRvd3Mgb24gKGJ1ZmZlcik6XG5QIikK
ICAgKGxldCAoKGJ1ZmZlciAod2luZG93LW5vcm1hbGl6ZS1idWZmZXIgYnVmZmVyLW9yLW5h
bWUpKQogCTs7IEhhbmRsZSB0aGUgImludmVydGVkIiBtZWFuaW5nIG9mIHRoZSBGUkFNRSBh
cmd1bWVudCB3cnQgb3RoZXIKLQk7OyBgd2luZG93LWxpc3QtMScgYmFzZWQgZnVuY3Rpb24u
Ci0JKGFsbC1mcmFtZXMgKGNvbmQgKChub3QgZnJhbWUpIHQpICgoZXEgZnJhbWUgdCkgbmls
KSAodCBmcmFtZSkpKSkKLSAgICAoZG9saXN0ICh3aW5kb3cgKHdpbmRvdy1saXN0LTEgbmls
IG5pbCBhbGwtZnJhbWVzKSkKLSAgICAgIChpZiAoZXEgKHdpbmRvdy1idWZmZXIgd2luZG93
KSBidWZmZXIpCi0JICAocXVpdC13aW5kb3cga2lsbCB3aW5kb3cpCi0JOzsgSWYgYSB3aW5k
b3cgZG9lc24ndCBzaG93IEJVRkZFUiwgdW5yZWNvcmQgQlVGRkVSIGluIGl0LgorCTs7IGB3
aW5kb3ctbGlzdCcgYmFzZWQgZnVuY3Rpb24uCisJKGZyYW1lcyAoY29uZCAoKG5vdCBmcmFt
ZSkgdCkgKChlcSBmcmFtZSB0KSBuaWwpICh0IGZyYW1lKSkpKQorICAgIChkb2xpc3QgKHdp
bmRvdyAod2luZG93LWxpc3QtMSBuaWwgbmlsIGZyYW1lcykpCisgICAgICAod2hlbiAoZXEg
KHdpbmRvdy1idWZmZXIgd2luZG93KSBidWZmZXIpCisJKHF1aXQtcmVzdG9yZS13aW5kb3cg
d2luZG93IGtpbGwpKQorCisgICAgICAod2hlbiAod2luZG93LWxpdmUtcCB3aW5kb3cpCisJ
OzsgVW5yZWNvcmQgQlVGRkVSIGluIHRoaXMgd2luZG93LgogCSh1bnJlY29yZC13aW5kb3ct
YnVmZmVyIHdpbmRvdyBidWZmZXIpKSkpKQogDAogKGRlZnVuIHdpbmRvdy0tY29tYmluYXRp
b24tcmVzaXphYmxlIChwYXJlbnQgJm9wdGlvbmFsIGhvcml6b250YWwpCkBAIC02NjU2LDcg
KzY2OTIsMTMgQEAgZGlzcGxheS1idWZmZXItcmVjb3JkLXdpbmRvdwogcHJldmlvdXNseSBz
aG93biBpbiB0aGUgd2luZG93LCB0aGF0IGJ1ZmZlcidzIHdpbmRvdyBzdGFydCBhbmQKIHdp
bmRvdyBwb2ludCwgYW5kIHRoZSB3aW5kb3cncyBoZWlnaHQuICBUaGUgdGhpcmQgZWxlbWVu
dCBpcyB0aGUKIHdpbmRvdyBzZWxlY3RlZCBhdCB0aGUgdGltZSB0aGUgcGFyYW1ldGVyIHdh
cyBjcmVhdGVkLiAgVGhlCi1mb3VydGggZWxlbWVudCBpcyBCVUZGRVIuIgorZm91cnRoIGVs
ZW1lbnQgaXMgQlVGRkVSLgorCitJZiBUWVBFIGlzIGByZXVzZScsIEJVRkZFUiBpcyBkaWZm
ZXJlbnQgZnJvbSB0aGUgb25lIGN1cnJlbnRseSBkaXNwbGF5ZWQKK2luIFdJTkRPVywgYW5k
IFdJTkRPVyBhbHJlYWR5IGhhcyBhIGBxdWl0LXJlc3RvcmUnIHBhcmFtZXRlciwgaW5zdGFs
bCBvcgordXBkYXRlIGEgYHF1aXQtcmVzdG9yZS1wcmV2JyBwYXJhbWV0ZXIgZm9yIHRoaXMg
d2luZG93IHRoYXQgYWxsb3dzIHRvCitxdWl0IFdJTkRPVyBpbiBhIHNpbWlsYXIgZmFzaGlv
biBidXQgcmVtZW1iZXJzIHRoZSB2ZXJ5IGZpcnN0IGluIGEKK3NlcmllcyBvZiBidWZmZXIg
ZGlzcGxheSBvcGVyYXRpb25zIGZvciB0aGlzIHdpbmRvdy4iCiAgIChjb25kCiAgICAoKGVx
IHR5cGUgJ3JldXNlKQogICAgIChpZiAoZXEgKHdpbmRvdy1idWZmZXIgd2luZG93KSBidWZm
ZXIpCkBAIC02NjczLDcgKzY3MTUsNyBAQCBkaXNwbGF5LWJ1ZmZlci1yZWNvcmQtd2luZG93
CiAgICAgICA7OyBXSU5ET1cgc2hvd3MgYW5vdGhlciBidWZmZXIuCiAgICAgICAod2l0aC1j
dXJyZW50LWJ1ZmZlciAod2luZG93LWJ1ZmZlciB3aW5kb3cpCiAJKHNldC13aW5kb3ctcGFy
YW1ldGVyCi0JIHdpbmRvdyAncXVpdC1yZXN0b3JlCisJIHdpbmRvdyAncXVpdC1yZXN0b3Jl
LXByZXYKIAkgKGxpc3QgJ290aGVyCiAJICAgICAgIDs7IEEgcXVhZHJ1cGxlIG9mIFdJTkRP
VydzIGJ1ZmZlciwgc3RhcnQsIHBvaW50IGFuZCBoZWlnaHQuCiAJICAgICAgIChsaXN0IChj
dXJyZW50LWJ1ZmZlcikgKHdpbmRvdy1zdGFydCB3aW5kb3cpCkBAIC05MTAzLDYgKzkxNDUs
OSBAQCBzd2l0Y2gtdG8tYnVmZmVyCiBhcyBwcmVzY3JpYmVkIGJ5IHRoZSBvcHRpb24gYHN3
aXRjaC10by1idWZmZXItcHJlc2VydmUtd2luZG93LXBvaW50Jy4KIE90aGVyd2lzZSwgdGhl
c2UgYXJlIGxlZnQgYWxvbmUuCiAKK0luIGVpdGhlciBjYXNlLCBjYWxsIGBkaXNwbGF5LWJ1
ZmZlci1yZWNvcmQtd2luZG93JyB0byBhdm9pZCBkaXNydXB0aW5nCithIHNlcXVlbmNlIG9m
IGBkaXNwbGF5LWJ1ZmZlcicgb3BlcmF0aW9ucyB1c2luZyB0aGlzIHdpbmRvdy4KKwogUmV0
dXJuIHRoZSBidWZmZXIgc3dpdGNoZWQgdG8uIgogICAoaW50ZXJhY3RpdmUKICAgIChsZXQg
KChmb3JjZS1zYW1lLXdpbmRvdwpAQCAtOTE1OCw2ICs5MjAzLDExIEBAIHN3aXRjaC10by1i
dWZmZXIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJ1ZmZlcikpCiAJ
ICAgICAgIChkaXNwbGF5ZWQgKGFuZCAoZXEgcHJlc2VydmUtd2luLXBvaW50ICdhbHJlYWR5
LWRpc3BsYXllZCkKIAkJCSAgICAgICAoZ2V0LWJ1ZmZlci13aW5kb3cgYnVmZmVyIDApKSkp
CisKKwkgIDs7IE1ha2Ugc3VyZSBxdWl0dGluZyB0aGUgd2luZG93IHdvcmtzLgorCSAgKHVu
bGVzcyBzd2l0Y2gtdG8tYnVmZmVyLW9iZXktZGlzcGxheS1hY3Rpb25zCisJICAgIChkaXNw
bGF5LWJ1ZmZlci1yZWNvcmQtd2luZG93ICdyZXVzZSAoc2VsZWN0ZWQtd2luZG93KSBidWZm
ZXIpKQorCiAJICAoc2V0LXdpbmRvdy1idWZmZXIgbmlsIGJ1ZmZlcikKIAkgICh3aGVuIChh
bmQgZW50cnkgKG9yIChlcSBwcmVzZXJ2ZS13aW4tcG9pbnQgdCkgZGlzcGxheWVkKSkKIAkg
ICAgOzsgVHJ5IHRvIHJlc3RvcmUgc3RhcnQgYW5kIHBvaW50IG9mIGJ1ZmZlciBpbiB0aGUg
c2VsZWN0ZWQK

--------------xIisI0wIMSyB0RW73pBjpgJU--




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#59862; Package emacs. Full text available.

Message received at 59862 <at> debbugs.gnu.org:


Received: (at 59862) by debbugs.gnu.org; 3 Jun 2024 09:54:05 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Mon Jun 03 05:54:05 2024
Received: from localhost ([127.0.0.1]:59030 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1sE4OC-0006hV-HZ
	for submit <at> debbugs.gnu.org; Mon, 03 Jun 2024 05:54:05 -0400
Received: from mout.gmx.net ([212.227.15.19]:34885)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <rudalics@HIDDEN>) id 1sE4O7-0006gz-UM
 for 59862 <at> debbugs.gnu.org; Mon, 03 Jun 2024 05:54:03 -0400
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmx.at;
 s=s31663417; t=1717408420; x=1718013220; i=rudalics@HIDDEN;
 bh=J6RK1wMwEWlVp3K8WQgcImdOTbtpHBXoyYDN2GsswJg=;
 h=X-UI-Sender-Class:Content-Type:Message-ID:Date:MIME-Version:
 Subject:From:To:References:In-Reply-To:cc:
 content-transfer-encoding:content-type:date:from:message-id:
 mime-version:reply-to:subject:to;
 b=StO+6+YaaTtQIuRf/S7Ij5OqkKaEwAkhhEIKOYD6TSFFiVATyksEhED88t0kH3B8
 9gi3YGu19rMzwUFMIFz8+0DEAtBBvsTsyLcn5DjfTCsafin4rvd8KS6Y9as1OFvIw
 okXmzOkV2ZUNlAoqAl/PIJiZzhJkZtn++nQ+B+KoBiHgi9PyKELH+jtm57+hZYuT5
 0VoG1dYZPXQ3ztQM3iSzYQOPxdP40xW7bzewKK7FeVTrpTiTtdt3yBYkEKmVhpgYd
 XwDfbMUVbKDfQjZsF06eiT6ENaI/HNRfQEj0kPBMf+SVDkfYd04no8dbBRsAHA49p
 YuS4ONqFXZ9Ap1bz4Q==
X-UI-Sender-Class: 724b4f7f-cbec-4199-ad4e-598c01a50d3a
Received: from [192.168.31.113] ([212.95.5.29]) by mail.gmx.net (mrgmx004
 [212.227.17.190]) with ESMTPSA (Nemesis) id 1MTAFh-1s2MPr0WWl-00RHjT; Mon, 03
 Jun 2024 11:53:40 +0200
Content-Type: multipart/mixed; boundary="------------tmLxt90jOBkUU93V5IoK7Iy0"
Message-ID: <18173da7-32e1-4f14-bbea-9a8fa66af7dd@HIDDEN>
Date: Mon, 3 Jun 2024 11:53:39 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: bug#59862: quit-restore per window buffer
From: martin rudalics <rudalics@HIDDEN>
To: Juri Linkov <juri@HIDDEN>, 59862 <at> debbugs.gnu.org
References: <86fsds8mlm.fsf@HIDDEN> <86ttibq1w1.fsf@HIDDEN>
 <8243325e-ed03-4e9e-b64f-c8225fb6dc60@HIDDEN>
Content-Language: en-US
In-Reply-To: <8243325e-ed03-4e9e-b64f-c8225fb6dc60@HIDDEN>
X-Provags-ID: V03:K1:mKnE0wEV0VetjjH9QppUk0Ls2IMlOwqLpwbTnB1HWMvIrf7e9cj
 9MU8iJJfihvv748fEErlO3iHFhtJ1iY+B7bmzc3l4BqRw+Q2VPE3BZnF593AS25UuhoBR7v
 0S4+SEFwYvPkUsP4UeQGuH+YFUI83ygtRQL09uCWF729OZZKkLEDNu+ArRAnesUO2LMha1/
 umN/Sx6xY7Jqzkcn7kRvg==
X-Spam-Flag: NO
UI-OutboundReport: notjunk:1;M01:P0:++0FRSCTpME=;GOVC76IGa8escn90+zkfe610i5Y
 UNVeK0zIZgqQM5Pwbyi9KhCfp0lPyDwX0FGfcfiTEMSP5/g19WU4qXTES8WIN/RFpW9nS8lgw
 55JfWKBnkNd7JAL2XPiz07rcXJY8GHTTlyEHiXtbgE3FtrFj4MZxjm42tEHkaoILI5bT/lWgW
 bdo0m4Ud+48yWqWsOxE+AnJoG+oA3Hb1Oepx0QplY0sNVuVuBNb10Jj3oYE/OKCr5wd8QmFPA
 lW8IQJRHcPMe9MJr3cKCnxmsNkbFYJOE8ZTkcxsPc5knEvoDm00McY1/xsiAoqXreF+xInuFh
 MaUurBBZ0C0PgLex7iCXoWNob9pG6ZzL5yyoJx+uHugwhkoR0GJuwBBFBP2worGYHaJlOj7oX
 Ru2o2FD8oQg9g3Uw5fn3rsZWKajMCpnERwhxJp83NooT+8TFJl/PSzBajnBK/aTzLuzBM2ZMc
 f3cuGYiuQfWpQFi+jtimzaNuz+9nowLP1bYvQZckpv67snIHb5NmjabYGDyWvmjJGdcDwNQqE
 d7C+QZI4ytfHxv0RJZLFo1zt+Ay0N52f+T9uo9iXV+GETaRFGMa4xwI/uUXEkwJRmvXV+XxWQ
 2fjZGa0wMkEwm/1dgUFPDKBFrUmz+y5z8s7jEtuCBUSJe3MtMPRzOv8hKPbxEuLY8h7s0BJ3E
 +smtAtVKpHprpQTMNjiVTfCYx/PHmMF5salZ/aECjg41Qh1v0IN3lPeyaSW9cPAFT13P9KCtX
 7AT5Y28Ln2Lb2YrStw/V1/ItpGvgV2n7vMsIbBilH61Ii9cAJkkspAj/lZQEfw8CYquOqdt9A
 HDv/3BuC8kTqhD4RymS6N5scdKw0hWy5DTs8FYM09AtRS9RtwA7wu98o+et2S+WyUk
X-Spam-Score: 2.9 (++)
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:  The patch had an all to obvious bug when killing a buffer.
 Try the one attached here instead. But I have to think for a better solution
 in 'replace-buffer-in-windows'. martin diff --git a/lisp/window.el
 b/lisp/window.el
 index b014be6a7cf..ae30c50cddb 100644 --- a/lisp/window.el +++
 b/lisp/window.el
 @@ -4522,10 +4522,11 @@ unrecord-window-buffer WINDOW." (let* ((wind [...]
 Content analysis details:   (2.9 points, 10.0 required)
 pts rule name              description
 ---- ---------------------- --------------------------------------------------
 3.6 RCVD_IN_SBL_CSS        RBL: Received via a relay in Spamhaus SBL-CSS
 [212.95.5.29 listed in zen.spamhaus.org]
 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 (rudalics[at]gmx.at)
 -0.0 SPF_PASS               SPF: sender matches SPF record
 -0.7 RCVD_IN_DNSWL_LOW      RBL: Sender listed at https://www.dnswl.org/,
 low trust [212.227.15.19 listed in list.dnswl.org]
X-Debbugs-Envelope-To: 59862
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: 1.9 (+)
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:  The patch had an all to obvious bug when killing a buffer.
    Try the one attached here instead. But I have to think for a better solution
    in 'replace-buffer-in-windows'. martin diff --git a/lisp/window.el b/lisp/window.el
    index b014be6a7cf..ae30c50cddb 100644 --- a/lisp/window.el +++ b/lisp/window.el
    @@ -4522,10 +4522,11 @@ unrecord-window-buffer WINDOW." (let* ((wind [...]
    
 
 Content analysis details:   (1.9 points, 10.0 required)
 
  pts rule name              description
 ---- ---------------------- --------------------------------------------------
  3.6 RCVD_IN_SBL_CSS        RBL: Received via a relay in Spamhaus SBL-CSS
                             [212.95.5.29 listed in zen.spamhaus.org]
 -0.7 RCVD_IN_DNSWL_LOW      RBL: Sender listed at https://www.dnswl.org/,
                             low trust
                             [212.227.15.19 listed in list.dnswl.org]
  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 (rudalics[at]gmx.at)
 -0.0 SPF_PASS               SPF: sender matches SPF record
 -1.0 MAILING_LIST_MULTI     Multiple indicators imply a widely-seen list
                             manager

This is a multi-part message in MIME format.
--------------tmLxt90jOBkUU93V5IoK7Iy0
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

The patch had an all to obvious bug when killing a buffer.  Try the one
attached here instead.  But I have to think for a better solution in
'replace-buffer-in-windows'.

martin
--------------tmLxt90jOBkUU93V5IoK7Iy0
Content-Type: text/x-patch; charset=UTF-8; name="quit-restore.diff"
Content-Disposition: attachment; filename="quit-restore.diff"
Content-Transfer-Encoding: base64

ZGlmZiAtLWdpdCBhL2xpc3Avd2luZG93LmVsIGIvbGlzcC93aW5kb3cuZWwKaW5kZXggYjAx
NGJlNmE3Y2YuLmFlMzBjNTBjZGRiIDEwMDY0NAotLS0gYS9saXNwL3dpbmRvdy5lbAorKysg
Yi9saXNwL3dpbmRvdy5lbApAQCAtNDUyMiwxMCArNDUyMiwxMSBAQCB1bnJlY29yZC13aW5k
b3ctYnVmZmVyCiBXSU5ET1cuIgogICAobGV0KiAoKHdpbmRvdyAod2luZG93LW5vcm1hbGl6
ZS13aW5kb3cgd2luZG93IHQpKQogCSAoYnVmZmVyIChvciBidWZmZXIgKHdpbmRvdy1idWZm
ZXIgd2luZG93KSkpKQotICAgIChzZXQtd2luZG93LXByZXYtYnVmZmVycwotICAgICB3aW5k
b3cgKGFzc3EtZGVsZXRlLWFsbCBidWZmZXIgKHdpbmRvdy1wcmV2LWJ1ZmZlcnMgd2luZG93
KSkpCi0gICAgKHNldC13aW5kb3ctbmV4dC1idWZmZXJzCi0gICAgIHdpbmRvdyAoZGVscSBi
dWZmZXIgKHdpbmRvdy1uZXh0LWJ1ZmZlcnMgd2luZG93KSkpKSkKKyAgICAod2hlbiAoYnVm
ZmVyLWxpdmUtcCBidWZmZXIpCisgICAgICAoc2V0LXdpbmRvdy1wcmV2LWJ1ZmZlcnMKKyAg
ICAgICB3aW5kb3cgKGFzc3EtZGVsZXRlLWFsbCBidWZmZXIgKHdpbmRvdy1wcmV2LWJ1ZmZl
cnMgd2luZG93KSkpCisgICAgICAoc2V0LXdpbmRvdy1uZXh0LWJ1ZmZlcnMKKyAgICAgICB3
aW5kb3cgKGRlbHEgYnVmZmVyICh3aW5kb3ctbmV4dC1idWZmZXJzIHdpbmRvdykpKSkpKQog
CiAoZGVmdW4gc2V0LXdpbmRvdy1idWZmZXItc3RhcnQtYW5kLXBvaW50ICh3aW5kb3cgYnVm
ZmVyICZvcHRpb25hbCBzdGFydCBwb2ludCkKICAgIlNldCBXSU5ET1cncyBidWZmZXIgdG8g
QlVGRkVSLgpAQCAtNTEwOCw4ICs1MTA5LDggQEAgZGVsZXRlLXdpbmRvd3Mtb24KICAgKGxl
dCAoKGJ1ZmZlciAod2luZG93LW5vcm1hbGl6ZS1idWZmZXIgYnVmZmVyLW9yLW5hbWUpKQog
CTs7IEhhbmRsZSB0aGUgImludmVydGVkIiBtZWFuaW5nIG9mIHRoZSBGUkFNRSBhcmd1bWVu
dCB3cnQgb3RoZXIKIAk7OyBgd2luZG93LWxpc3QtMScgYmFzZWQgZnVuY3Rpb24uCi0JKGFs
bC1mcmFtZXMgKGNvbmQgKChub3QgZnJhbWUpIHQpICgoZXEgZnJhbWUgdCkgbmlsKSAodCBm
cmFtZSkpKSkKLSAgICAoZG9saXN0ICh3aW5kb3cgKHdpbmRvdy1saXN0LTEgbmlsIG5pbCBh
bGwtZnJhbWVzKSkKKwkoZnJhbWVzIChjb25kICgobm90IGZyYW1lKSB0KSAoKGVxIGZyYW1l
IHQpIG5pbCkgKHQgZnJhbWUpKSkpCisgICAgKGRvbGlzdCAod2luZG93ICh3aW5kb3ctbGlz
dC0xIG5pbCAnbm9taW5pIGZyYW1lcykpCiAgICAgICAoaWYgKGVxICh3aW5kb3ctYnVmZmVy
IHdpbmRvdykgYnVmZmVyKQogCSAgKGxldCAoKGRlbGV0YWJsZSAod2luZG93LWRlbGV0YWJs
ZS1wIHdpbmRvdykpCiAgICAgICAgICAgICAgICAgKGRlZGljYXRlZCAod2luZG93LWRlZGlj
YXRlZC1wIHdpbmRvdykpKQpAQCAtNTEyMSwxMiArNTEyMiwxOCBAQCBkZWxldGUtd2luZG93
cy1vbgogCSAgICAgIDs7IERlbGV0ZSB3aW5kb3cuCiAJICAgICAgKGRlbGV0ZS13aW5kb3cg
d2luZG93KSkKIAkgICAgICh0Ci0JICAgICAgOzsgSW4gd2luZG93IHN3aXRjaCB0byBwcmV2
aW91cyBidWZmZXIuCi0JICAgICAgKHNldC13aW5kb3ctZGVkaWNhdGVkLXAgd2luZG93IG5p
bCkKLQkgICAgICAoc3dpdGNoLXRvLXByZXYtYnVmZmVyIHdpbmRvdyAnYnVyeSkKLSAgICAg
ICAgICAgICAgOzsgUmVzdG9yZSB0aGUgZGVkaWNhdGVkICdzaWRlJyBmbGFnLgotICAgICAg
ICAgICAgICAod2hlbiAoZXEgZGVkaWNhdGVkICdzaWRlKQotICAgICAgICAgICAgICAgIChz
ZXQtd2luZG93LWRlZGljYXRlZC1wIHdpbmRvdyAnc2lkZSkpKSkpCisJICAgICAgKHdoZW4g
KGVxICh3aW5kb3ctYnVmZmVyIHdpbmRvdykgYnVmZmVyKQorCQkocXVpdC1yZXN0b3JlLXdp
bmRvdyB3aW5kb3cpKQorCSAgICAgIDs7IFJlbW92ZSBxdWl0LXJlc3RvcmUoLXByZXYpIGVu
dHJpZXMgdGhhdCBtZW50aW9uIEJVRkZFUi4KKwkgICAgICAobGV0ICgocXVpdC1yZXN0b3Jl
ICh3aW5kb3ctcGFyYW1ldGVyIHdpbmRvdyAncXVpdC1yZXN0b3JlKSkKKwkJICAgIChxdWl0
LXJlc3RvcmUtcHJldiAod2luZG93LXBhcmFtZXRlciB3aW5kb3cgJ3F1aXQtcmVzdG9yZS1w
cmV2KSkpCisJCSh3aGVuIChlcSBidWZmZXIgKG50aCAzIHF1aXQtcmVzdG9yZS1wcmV2KSkK
KwkJICAoc2V0LXdpbmRvdy1wYXJhbWV0ZXIgd2luZG93ICdxdWl0LXJlc3RvcmUtcHJldiBu
aWwpKQorCQkod2hlbiAoZXEgYnVmZmVyIChudGggMyBxdWl0LXJlc3RvcmUpKQorCQkgIChz
ZXQtd2luZG93LXBhcmFtZXRlcgorCQkgICB3aW5kb3cgJ3F1aXQtcmVzdG9yZSAod2luZG93
LXBhcmFtZXRlciB3aW5kb3cgJ3F1aXQtcmVzdG9yZS1wcmV2KSkpKQorCSAgICAgIDs7IFVu
cmVjb3JkIEJVRkZFUiBpbiB0aGlzIHdpbmRvdy4KKwkgICAgICAodW5yZWNvcmQtd2luZG93
LWJ1ZmZlciB3aW5kb3cgYnVmZmVyKSkpKQogCTs7IElmIGEgd2luZG93IGRvZXNuJ3Qgc2hv
dyBCVUZGRVIsIHVucmVjb3JkIEJVRkZFUiBpbiBpdC4KIAkodW5yZWNvcmQtd2luZG93LWJ1
ZmZlciB3aW5kb3cgYnVmZmVyKSkpKSkKIApAQCAtNTE0NiwxNyArNTE1MywxOCBAQCByZXBs
YWNlLWJ1ZmZlci1pbi13aW5kb3dzCiAgIChpbnRlcmFjdGl2ZSAiYkJ1ZmZlciB0byByZXBs
YWNlOiAiKQogICAobGV0ICgoYnVmZmVyICh3aW5kb3ctbm9ybWFsaXplLWJ1ZmZlciBidWZm
ZXItb3ItbmFtZSkpKQogICAgIChkb2xpc3QgKHdpbmRvdyAod2luZG93LWxpc3QtMSBuaWwg
bmlsIHQpKQotICAgICAgKGlmIChlcSAod2luZG93LWJ1ZmZlciB3aW5kb3cpIGJ1ZmZlcikK
LSAgICAgICAgICA7OyBEZWxldGUgYSBkZWRpY2F0ZWQgd2luZG93IHVubGVzcyBpdCBpcyBh
IHNpZGUgd2luZG93LgotICAgICAgICAgIChsZXQgKChkZWRpY2F0ZWQtc2lkZSAoZXEgKHdp
bmRvdy1kZWRpY2F0ZWQtcCB3aW5kb3cpICdzaWRlKSkpCi0gICAgICAgICAgICAod2hlbiAo
b3IgZGVkaWNhdGVkLXNpZGUgKG5vdCAod2luZG93LS1kZWxldGUgd2luZG93IHQgdCkpKQot
ICAgICAgICAgICAgICA7OyBTd2l0Y2ggdG8gYW5vdGhlciBidWZmZXIgaW4gdGhhdCB3aW5k
b3cuCi0gICAgICAgICAgICAgIChzZXQtd2luZG93LWRlZGljYXRlZC1wIHdpbmRvdyBuaWwp
Ci0gICAgICAgICAgICAgIChpZiAoc3dpdGNoLXRvLXByZXYtYnVmZmVyIHdpbmRvdyAna2ls
bCkKLSAgICAgICAgICAgICAgICAgIChhbmQgZGVkaWNhdGVkLXNpZGUgKHNldC13aW5kb3ct
ZGVkaWNhdGVkLXAgd2luZG93ICdzaWRlKSkKLSAgICAgICAgICAgICAgICAod2luZG93LS1k
ZWxldGUgd2luZG93IG5pbCAna2lsbCkpKSkKLQk7OyBVbnJlY29yZCBCVUZGRVIgaW4gV0lO
RE9XLgotCSh1bnJlY29yZC13aW5kb3ctYnVmZmVyIHdpbmRvdyBidWZmZXIpKSkpKQorICAg
ICAgKHdoZW4gKGVxICh3aW5kb3ctYnVmZmVyIHdpbmRvdykgYnVmZmVyKQorCShxdWl0LXJl
c3RvcmUtd2luZG93IHdpbmRvdyAna2lsbCkpCisgICAgICA7OyBSZW1vdmUgcXVpdC1yZXN0
b3JlKC1wcmV2KSBlbnRyaWVzIHRoYXQgbWVudGlvbiBCVUZGRVIuCisgICAgICAobGV0ICgo
cXVpdC1yZXN0b3JlICh3aW5kb3ctcGFyYW1ldGVyIHdpbmRvdyAncXVpdC1yZXN0b3JlKSkK
KwkgICAgKHF1aXQtcmVzdG9yZS1wcmV2ICh3aW5kb3ctcGFyYW1ldGVyIHdpbmRvdyAncXVp
dC1yZXN0b3JlLXByZXYpKSkKKwkod2hlbiAoZXEgYnVmZmVyIChudGggMyBxdWl0LXJlc3Rv
cmUtcHJldikpCisJICAoc2V0LXdpbmRvdy1wYXJhbWV0ZXIgd2luZG93ICdxdWl0LXJlc3Rv
cmUtcHJldiBuaWwpKQorCSh3aGVuIChlcSBidWZmZXIgKG50aCAzIHF1aXQtcmVzdG9yZSkp
CisJICAoc2V0LXdpbmRvdy1wYXJhbWV0ZXIKKwkgICB3aW5kb3cgJ3F1aXQtcmVzdG9yZSAo
d2luZG93LXBhcmFtZXRlciB3aW5kb3cgJ3F1aXQtcmVzdG9yZS1wcmV2KSkpKQorICAgICAg
OzsgVW5yZWNvcmQgQlVGRkVSIGluIHRoaXMgd2luZG93LgorICAgICAgKHVucmVjb3JkLXdp
bmRvdy1idWZmZXIgd2luZG93IGJ1ZmZlcikpKSkKIAogKGRlZmN1c3RvbSBxdWl0LXdpbmRv
dy1ob29rIG5pbAogICAiSG9vayBydW4gYmVmb3JlIHBlcmZvcm1pbmcgYW55IG90aGVyIGFj
dGlvbnMgaW4gdGhlIGBxdWl0LXdpbmRvdycgY29tbWFuZC4iCkBAIC01MjEwLDEzICs1MjE4
LDE1IEBAIHF1aXQtcmVzdG9yZS13aW5kb3cKICAgKHNldHEgd2luZG93ICh3aW5kb3ctbm9y
bWFsaXplLXdpbmRvdyB3aW5kb3cgdCkpCiAgIChsZXQqICgoYnVmZmVyICh3aW5kb3ctYnVm
ZmVyIHdpbmRvdykpCiAJIChxdWl0LXJlc3RvcmUgKHdpbmRvdy1wYXJhbWV0ZXIgd2luZG93
ICdxdWl0LXJlc3RvcmUpKQorCSAocXVpdC1yZXN0b3JlLXByZXYgKHdpbmRvdy1wYXJhbWV0
ZXIgd2luZG93ICdxdWl0LXJlc3RvcmUtcHJldikpCiAJIChxdWl0LXJlc3RvcmUtMiAobnRo
IDIgcXVpdC1yZXN0b3JlKSkKKwkgKHF1aXQtcmVzdG9yZS1wcmV2LTIgKG50aCAyIHF1aXQt
cmVzdG9yZS1wcmV2KSkKICAgICAgICAgIChwcmV2LWJ1ZmZlciAoY2F0Y2ggJ3ByZXYtYnVm
ZmVyCiAgICAgICAgICAgICAgICAgICAgICAgICAoZG9saXN0IChidWYgKHdpbmRvdy1wcmV2
LWJ1ZmZlcnMgd2luZG93KSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgKHVubGVzcyAo
ZXEgKGNhciBidWYpIGJ1ZmZlcikKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodGhy
b3cgJ3ByZXYtYnVmZmVyIChjYXIgYnVmKSkpKSkpCiAgICAgICAgICAoZGVkaWNhdGVkICh3
aW5kb3ctZGVkaWNhdGVkLXAgd2luZG93KSkKLQkgcXVhZCBlbnRyeSkKKwkgcXVhZCBlbnRy
eSByZXNldC1wcmV2KQogICAgIChjb25kCiAgICAgIDs7IEZpcnN0IHRyeSB0byBkZWxldGUg
ZGVkaWNhdGVkIHdpbmRvd3MgdGhhdCBhcmUgbm90IHNpZGUgd2luZG93cy4KICAgICAgKChh
bmQgZGVkaWNhdGVkIChub3QgKGVxIGRlZGljYXRlZCAnc2lkZSkpCkBAIC01MjMwLDIxICs1
MjQwLDM1IEBAIHF1aXQtcmVzdG9yZS13aW5kb3cKICAgICAgIDs7IElmIHRoZSBwcmV2aW91
c2x5IHNlbGVjdGVkIHdpbmRvdyBpcyBzdGlsbCBhbGl2ZSwgc2VsZWN0IGl0LgogICAgICAg
KHdpbmRvdy0tcXVpdC1yZXN0b3JlLXNlbGVjdC13aW5kb3cgcXVpdC1yZXN0b3JlLTIpKQog
ICAgICAoKGFuZCAobm90IHByZXYtYnVmZmVyKQotCSAgIChvciAoZXEgKG50aCAxIHF1aXQt
cmVzdG9yZSkgJ2ZyYW1lKQotCSAgICAgICAoYW5kIChlcSAobnRoIDEgcXVpdC1yZXN0b3Jl
KSAnd2luZG93KQotCQkgICAgOzsgSWYgdGhlIHdpbmRvdyBoYXMgYmVlbiBjcmVhdGVkIG9u
IGFuIGV4aXN0aW5nCi0JCSAgICA7OyBmcmFtZSBhbmQgZW5kZWQgdXAgYXMgdGhlIHNvbGUg
d2luZG93IG9uIHRoYXQKLQkJICAgIDs7IGZyYW1lLCBkbyBub3QgZGVsZXRlIGl0IChCdWcj
MTI3NjQpLgotCQkgICAgKG5vdCAoZXEgd2luZG93IChmcmFtZS1yb290LXdpbmRvdyB3aW5k
b3cpKSkpKQotCSAgIChlcSAobnRoIDMgcXVpdC1yZXN0b3JlKSBidWZmZXIpCisJICAgKG9y
IChhbmQgKG9yIChlcSAobnRoIDEgcXVpdC1yZXN0b3JlKSAnZnJhbWUpCisJCQkoYW5kIChl
cSAobnRoIDEgcXVpdC1yZXN0b3JlKSAnd2luZG93KQorCQkJICAgICA7OyBJZiB0aGUgd2lu
ZG93IGhhcyBiZWVuIGNyZWF0ZWQgb24gYW4KKwkJCSAgICAgOzsgZXhpc3RpbmcgZnJhbWUg
YW5kIGVuZGVkIHVwIGFzIHRoZSBzb2xlCisJCQkgICAgIDs7IHdpbmRvdyBvbiB0aGF0IGZy
YW1lLCBkbyBub3QgZGVsZXRlIGl0CisJCQkgICAgIDs7IChCdWcjMTI3NjQpLgorCQkJICAg
ICAobm90IChlcSB3aW5kb3cgKGZyYW1lLXJvb3Qtd2luZG93IHdpbmRvdykpKSkpCisJCSAg
ICAoZXEgKG50aCAzIHF1aXQtcmVzdG9yZSkgYnVmZmVyKSkKKwkgICAgICAgKGFuZCAob3Ig
KGVxIChudGggMSBxdWl0LXJlc3RvcmUtcHJldikgJ2ZyYW1lKQorCQkJKGFuZCAoZXEgKG50
aCAxIHF1aXQtcmVzdG9yZS1wcmV2KSAnd2luZG93KQorCQkJICAgICAobm90IChlcSB3aW5k
b3cgKGZyYW1lLXJvb3Qtd2luZG93IHdpbmRvdykpKSkpCisJCSAgICAoZXEgKG50aCAzIHF1
aXQtcmVzdG9yZS1wcmV2KSBidWZmZXIpCisJCSAgICA7OyBVc2Ugc2VsZWN0ZWQgd2luZG93
IGZyb20gcXVpdC1yZXN0b3JlLXByZXYuCisJCSAgICAoc2V0cSBxdWl0LXJlc3RvcmUtMiBx
dWl0LXJlc3RvcmUtcHJldi0yKSkpCiAJICAgOzsgRGVsZXRlIFdJTkRPVyBpZiBwb3NzaWJs
ZS4KIAkgICAod2luZG93LS1kZWxldGUgd2luZG93IG5pbCAoZXEgYnVyeS1vci1raWxsICdr
aWxsKSkpCiAgICAgICA7OyBJZiB0aGUgcHJldmlvdXNseSBzZWxlY3RlZCB3aW5kb3cgaXMg
c3RpbGwgYWxpdmUsIHNlbGVjdCBpdC4KICAgICAgICh3aW5kb3ctLXF1aXQtcmVzdG9yZS1z
ZWxlY3Qtd2luZG93IHF1aXQtcmVzdG9yZS0yKSkKLSAgICAgKChhbmQgKGxpc3RwIChzZXRx
IHF1YWQgKG50aCAxIHF1aXQtcmVzdG9yZSkpKQotCSAgIChidWZmZXItbGl2ZS1wIChjYXIg
cXVhZCkpCi0JICAgKGVxIChudGggMyBxdWl0LXJlc3RvcmUpIGJ1ZmZlcikpCi0gICAgICA7
OyBTaG93IGFub3RoZXIgYnVmZmVyIHN0b3JlZCBpbiBxdWl0LXJlc3RvcmUgcGFyYW1ldGVy
LgorICAgICAoKG9yIChhbmQgKGxpc3RwIChzZXRxIHF1YWQgKG50aCAxIHF1aXQtcmVzdG9y
ZSkpKQorCSAgICAgICAoYnVmZmVyLWxpdmUtcCAoY2FyIHF1YWQpKQorCSAgICAgICAoZXEg
KG50aCAzIHF1aXQtcmVzdG9yZSkgYnVmZmVyKSkKKwkgIChhbmQgKGxpc3RwIChzZXRxIHF1
YWQgKG50aCAxIHF1aXQtcmVzdG9yZS1wcmV2KSkpCisJICAgICAgIChidWZmZXItbGl2ZS1w
IChjYXIgcXVhZCkpCisJICAgICAgIChlcSAobnRoIDMgcXVpdC1yZXN0b3JlLXByZXYpIGJ1
ZmZlcikKKwkgICAgICAgOzsgVXNlIHNlbGVjdGVkIHdpbmRvdyBmcm9tIHF1aXQtcmVzdG9y
ZS1wcmV2LgorCSAgICAgICAoc2V0cSBxdWl0LXJlc3RvcmUtMiBxdWl0LXJlc3RvcmUtcHJl
di0yKQorCSAgICAgICA7OyBXZSB3YW50IHRvIHJlc2V0IHF1aXQtcmVzdG9yZS1wcmV2IG9u
bHkuCisJICAgICAgIChzZXRxIHJlc2V0LXByZXYgdCkpKQorICAgICAgOzsgU2hvdyBhbm90
aGVyIGJ1ZmZlciBzdG9yZWQgaW4gcXVpdC1yZXN0b3JlKC1wcmV2KSBwYXJhbWV0ZXIuCiAg
ICAgICAod2hlbiAoYW5kIChpbnRlZ2VycCAobnRoIDMgcXVhZCkpCiAJCSAoaWYgKHdpbmRv
dy1jb21iaW5lZC1wIHdpbmRvdykKICAgICAgICAgICAgICAgICAgICAgICgvPSAobnRoIDMg
cXVhZCkgKHdpbmRvdy10b3RhbC1oZWlnaHQgd2luZG93KSkKQEAgLTUyODEsMTUgKzUzMDUs
MTUgQEAgcXVpdC1yZXN0b3JlLXdpbmRvdwogCTs7IGBkaXNwbGF5LWJ1ZmZlci1pbi1wcmV2
aW91cy13aW5kb3cnIGNhbiBuZXZlcnRoZWxlc3MgZmluZCBpdC4KIAkoc2V0LXdpbmRvdy1w
cmV2LWJ1ZmZlcnMKIAkgd2luZG93IChhcHBlbmQgKHdpbmRvdy1wcmV2LWJ1ZmZlcnMgd2lu
ZG93KSAobGlzdCBlbnRyeSkpKSkKLSAgICAgIDs7IFJlc2V0IHRoZSBxdWl0LXJlc3RvcmUg
cGFyYW1ldGVyLgotICAgICAgKHNldC13aW5kb3ctcGFyYW1ldGVyIHdpbmRvdyAncXVpdC1y
ZXN0b3JlIG5pbCkKKyAgICAgIDs7IFJlc2V0IHRoZSBxdWl0LXJlc3RvcmUoLXByZXYpIHBh
cmFtZXRlci4KKyAgICAgIChzZXQtd2luZG93LXBhcmFtZXRlcgorICAgICAgIHdpbmRvdyAo
aWYgcmVzZXQtcHJldiAncXVpdC1yZXN0b3JlLXByZXYgJ3F1aXQtcmVzdG9yZSkgbmlsKQog
ICAgICAgOzsgU2VsZWN0IG9sZCB3aW5kb3cuCiAgICAgICA7OyBJZiB0aGUgcHJldmlvdXNs
eSBzZWxlY3RlZCB3aW5kb3cgaXMgc3RpbGwgYWxpdmUsIHNlbGVjdCBpdC4KICAgICAgICh3
aW5kb3ctLXF1aXQtcmVzdG9yZS1zZWxlY3Qtd2luZG93IHF1aXQtcmVzdG9yZS0yKSkKICAg
ICAgKHQKLSAgICAgIDs7IFNob3cgc29tZSBvdGhlciBidWZmZXIgaW4gV0lORE9XIGFuZCBy
ZXNldCB0aGUgcXVpdC1yZXN0b3JlCi0gICAgICA7OyBwYXJhbWV0ZXIuCi0gICAgICAoc2V0
LXdpbmRvdy1wYXJhbWV0ZXIgd2luZG93ICdxdWl0LXJlc3RvcmUgbmlsKQorICAgICAgOzsg
U2hvdyBzb21lIG90aGVyIGJ1ZmZlciBpbiBXSU5ET1cgYW5kIGxlYXZlIHRoZQorICAgICAg
OzsgcXVpdC1yZXN0b3JlKC1wcmV2KSBwYXJhbWV0ZXJzIGFsb25lIChKdXJpJ3MgaWRlYSku
CiAgICAgICA7OyBNYWtlIHN1cmUgdGhhdCBXSU5ET1cgaXMgbm8gbW9yZSBkZWRpY2F0ZWQu
CiAgICAgICAoc2V0LXdpbmRvdy1kZWRpY2F0ZWQtcCB3aW5kb3cgbmlsKQogICAgICAgOzsg
VHJ5IHRvIHN3aXRjaCB0byBhIHByZXZpb3VzIGJ1ZmZlci4gIERlbGV0ZSB0aGUgd2luZG93
IG9ubHkgaWYKQEAgLTUyOTcsMTAgKzUzMjEsNyBAQCBxdWl0LXJlc3RvcmUtd2luZG93CiAg
ICAgICAoaWYgKHN3aXRjaC10by1wcmV2LWJ1ZmZlciB3aW5kb3cgYnVyeS1vci1raWxsKQog
ICAgICAgICAgICh3aGVuIChlcSBkZWRpY2F0ZWQgJ3NpZGUpCiAgICAgICAgICAgICAoc2V0
LXdpbmRvdy1kZWRpY2F0ZWQtcCB3aW5kb3cgJ3NpZGUpKQotICAgICAgICAod2luZG93LS1k
ZWxldGUgd2luZG93IG5pbCAoZXEgYnVyeS1vci1raWxsICdraWxsKSkKLSAgICAgIDs7IElm
IHRoZSBwcmV2aW91c2x5IHNlbGVjdGVkIHdpbmRvdyBpcyBzdGlsbCBhbGl2ZSwgc2VsZWN0
IGl0LgotICAgICAgKHdpbmRvdy0tcXVpdC1yZXN0b3JlLXNlbGVjdC13aW5kb3cgcXVpdC1y
ZXN0b3JlLTIpKSkpCi0KKyAgICAgICAgKHdpbmRvdy0tZGVsZXRlIHdpbmRvdyBuaWwgKGVx
IGJ1cnktb3Ita2lsbCAna2lsbCkpKSkpCiAgICAgOzsgRGVhbCB3aXRoIHRoZSBidWZmZXIu
CiAgICAgKGNvbmQKICAgICAgKChub3QgKGJ1ZmZlci1saXZlLXAgYnVmZmVyKSkpCkBAIC01
MzQyLDEyICs1MzYzLDIwIEBAIHF1aXQtd2luZG93cy1vbgogICAobGV0ICgoYnVmZmVyICh3
aW5kb3ctbm9ybWFsaXplLWJ1ZmZlciBidWZmZXItb3ItbmFtZSkpCiAJOzsgSGFuZGxlIHRo
ZSAiaW52ZXJ0ZWQiIG1lYW5pbmcgb2YgdGhlIEZSQU1FIGFyZ3VtZW50IHdydCBvdGhlcgog
CTs7IGB3aW5kb3ctbGlzdC0xJyBiYXNlZCBmdW5jdGlvbi4KLQkoYWxsLWZyYW1lcyAoY29u
ZCAoKG5vdCBmcmFtZSkgdCkgKChlcSBmcmFtZSB0KSBuaWwpICh0IGZyYW1lKSkpKQotICAg
IChkb2xpc3QgKHdpbmRvdyAod2luZG93LWxpc3QtMSBuaWwgbmlsIGFsbC1mcmFtZXMpKQot
ICAgICAgKGlmIChlcSAod2luZG93LWJ1ZmZlciB3aW5kb3cpIGJ1ZmZlcikKLQkgIChxdWl0
LXdpbmRvdyBraWxsIHdpbmRvdykKLQk7OyBJZiBhIHdpbmRvdyBkb2Vzbid0IHNob3cgQlVG
RkVSLCB1bnJlY29yZCBCVUZGRVIgaW4gaXQuCi0JKHVucmVjb3JkLXdpbmRvdy1idWZmZXIg
d2luZG93IGJ1ZmZlcikpKSkpCisJKGZyYW1lcyAoY29uZCAoKG5vdCBmcmFtZSkgdCkgKChl
cSBmcmFtZSB0KSBuaWwpICh0IGZyYW1lKSkpKQorICAgIChkb2xpc3QgKHdpbmRvdyAod2lu
ZG93LWxpc3QtMSBuaWwgbmlsIGZyYW1lcykpCisgICAgICAod2hlbiAoZXEgKHdpbmRvdy1i
dWZmZXIgd2luZG93KSBidWZmZXIpCisJKHF1aXQtcmVzdG9yZS13aW5kb3cgd2luZG93IGtp
bGwpKQorICAgICAgOzsgUmVtb3ZlIHF1aXQtcmVzdG9yZSgtcHJldikgZW50cmllcyB0aGF0
IG1lbnRpb24gQlVGRkVSLgorICAgICAgKGxldCAoKHF1aXQtcmVzdG9yZSAod2luZG93LXBh
cmFtZXRlciB3aW5kb3cgJ3F1aXQtcmVzdG9yZSkpCisJICAgIChxdWl0LXJlc3RvcmUtcHJl
diAod2luZG93LXBhcmFtZXRlciB3aW5kb3cgJ3F1aXQtcmVzdG9yZS1wcmV2KSkpCisJKHdo
ZW4gKGVxIGJ1ZmZlciAobnRoIDMgcXVpdC1yZXN0b3JlLXByZXYpKQorCSAgKHNldC13aW5k
b3ctcGFyYW1ldGVyIHdpbmRvdyAncXVpdC1yZXN0b3JlLXByZXYgbmlsKSkKKwkod2hlbiAo
ZXEgYnVmZmVyIChudGggMyBxdWl0LXJlc3RvcmUpKQorCSAgKHNldC13aW5kb3ctcGFyYW1l
dGVyCisJICAgd2luZG93ICdxdWl0LXJlc3RvcmUgKHdpbmRvdy1wYXJhbWV0ZXIgd2luZG93
ICdxdWl0LXJlc3RvcmUtcHJldikpKSkKKyAgICAgIDs7IFVucmVjb3JkIEJVRkZFUiBpbiB0
aGlzIHdpbmRvdy4KKyAgICAgICh1bnJlY29yZC13aW5kb3ctYnVmZmVyIHdpbmRvdyBidWZm
ZXIpKSkpCiAMCiAoZGVmdW4gd2luZG93LS1jb21iaW5hdGlvbi1yZXNpemFibGUgKHBhcmVu
dCAmb3B0aW9uYWwgaG9yaXpvbnRhbCkKICAgIlJldHVybiBudW1iZXIgb2YgcGl4ZWxzIHJl
Y292ZXJhYmxlIGZyb20gaGVpZ2h0IG9mIHdpbmRvdyBQQVJFTlQuCkBAIC02NjczLDcgKzY3
MDIsNyBAQCBkaXNwbGF5LWJ1ZmZlci1yZWNvcmQtd2luZG93CiAgICAgICA7OyBXSU5ET1cg
c2hvd3MgYW5vdGhlciBidWZmZXIuCiAgICAgICAod2l0aC1jdXJyZW50LWJ1ZmZlciAod2lu
ZG93LWJ1ZmZlciB3aW5kb3cpCiAJKHNldC13aW5kb3ctcGFyYW1ldGVyCi0JIHdpbmRvdyAn
cXVpdC1yZXN0b3JlCisJIHdpbmRvdyAncXVpdC1yZXN0b3JlLXByZXYKIAkgKGxpc3QgJ290
aGVyCiAJICAgICAgIDs7IEEgcXVhZHJ1cGxlIG9mIFdJTkRPVydzIGJ1ZmZlciwgc3RhcnQs
IHBvaW50IGFuZCBoZWlnaHQuCiAJICAgICAgIChsaXN0IChjdXJyZW50LWJ1ZmZlcikgKHdp
bmRvdy1zdGFydCB3aW5kb3cpCg==

--------------tmLxt90jOBkUU93V5IoK7Iy0--




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#59862; Package emacs. Full text available.

Message received at 59862 <at> debbugs.gnu.org:


Received: (at 59862) by debbugs.gnu.org; 3 Jun 2024 09:35:00 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Mon Jun 03 05:34:59 2024
Received: from localhost ([127.0.0.1]:59021 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1sE45i-0006ER-SF
	for submit <at> debbugs.gnu.org; Mon, 03 Jun 2024 05:34:59 -0400
Received: from mout.gmx.net ([212.227.15.15]:35363)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <rudalics@HIDDEN>) id 1sE45e-0006EB-9L
 for 59862 <at> debbugs.gnu.org; Mon, 03 Jun 2024 05:34:57 -0400
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmx.at;
 s=s31663417; t=1717407274; x=1718012074; i=rudalics@HIDDEN;
 bh=x7ngPJncLu2zWSPGzaonAK4KG8Qs1gRxAfZbMMlC9Ww=;
 h=X-UI-Sender-Class:Content-Type:Message-ID:Date:MIME-Version:
 Subject:To:References:From:In-Reply-To:cc:
 content-transfer-encoding:content-type:date:from:message-id:
 mime-version:reply-to:subject:to;
 b=io4ix7JpK3ec/Jm4EecxKDwGinyKl01/G9E9a53NMDY7v0/QSKFKUfdzrObF/ZzV
 Ch0mIzpyBB8duV3Ijg3zgSmgW4EovYXrxxIxEfw/ChpoKcZT43YARTYDs4wsY59nW
 HhmeiDOP52atsGugmYWclgIomZsBd3ncP8DZRI7EccApOpvU+d1V8AK1fThdFifh/
 rCTDIyX2bagEh1A/x8Locs2S4CIHZsinFm6UNRKnIdz7qhRHGvl+wmsvuD61CcD9s
 IWSyOOuOHydO7bnswBlsabRfMBs69X+7YEocJL299A0zEqEsOngms7RLhlYU5OT04
 yd6EGgkb+WvD1I8ALg==
X-UI-Sender-Class: 724b4f7f-cbec-4199-ad4e-598c01a50d3a
Received: from [192.168.31.113] ([212.95.5.29]) by mail.gmx.net (mrgmx004
 [212.227.17.190]) with ESMTPSA (Nemesis) id 1MXGrE-1ryDmm0fr4-00VOJY; Mon, 03
 Jun 2024 11:34:34 +0200
Content-Type: multipart/mixed; boundary="------------IC2I0Uy7drpTFuo2EwzOlvBQ"
Message-ID: <8243325e-ed03-4e9e-b64f-c8225fb6dc60@HIDDEN>
Date: Mon, 3 Jun 2024 11:34:33 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: bug#59862: quit-restore per window buffer
To: Juri Linkov <juri@HIDDEN>, 59862 <at> debbugs.gnu.org
References: <86fsds8mlm.fsf@HIDDEN> <86ttibq1w1.fsf@HIDDEN>
Content-Language: en-US
From: martin rudalics <rudalics@HIDDEN>
In-Reply-To: <86ttibq1w1.fsf@HIDDEN>
X-Provags-ID: V03:K1:grXd230jyaCkhefQ9m5UjFGXaqn4BtRnCTJQNy3OWT2ufg1CkzT
 1A4ybSxmm1W+UzSYXwM8Oi2fc8vzqHi0mgASWuoPdV2jSiCDqKYxK6R3eVDJkggFDl6L83a
 g7u6XSIQ2euL51kbrRhdqB3d+9jPjEA3Zjev1wH5Zoo81Qq9qMtTBj3AgQWUkGDauC2EMqU
 TqayKgV3lV/vd5Me+ymkA==
X-Spam-Flag: NO
UI-OutboundReport: notjunk:1;M01:P0:JBgaVkSZWuY=;UtabX/FBvgBK+tgUdKmFpDcJjNa
 2s0v7FYh8+6DS3593o2+wYJKG/AaTjMoAdEBwavWe1Pt6xlW+oYT07gDsl+5beiOpWijP8Dt9
 tamm5coHSj6QZ393yx9l4wqoOYpzScaqXPHT6HpiKCuI06eSpnxqulSrDivfY6OVz7YcmHeZg
 nVbeMejbPH41Fo2rsDM67JIPUCFwJtGAz4YXgJCgKC4LYLRdHdtOaHW1Hmg+A0CkWsGbWROz1
 HW4OFTIWoRrtTz+gXInFpF2OuBbblNkwKGelfcEccNUSm4C5vi6nVUtlbb6q1cGsWPCa/kXS4
 52bo2QMBGAWMiMMooxd7uk9Hqg4Q73bGSwrhz5p1g8I2L8UMUYr3FozO3nUhvZxD5Dgn4C/bk
 0Uki5ZbZmYc0vb4JgpImKa1FNDZsFURefQRU6kebhqEJ9QC427/kWGNPUZKrJwkM09zO+tpZC
 PTG16OrF2gIhcjxV+P7pbJOh0sG6f1xO38/ZWmEhtuD0vYblQQPOCtQ7k9mpCLPzu/tMMOjaj
 xIXD6/0SStOsnyK29VPFxeFQYMvrpyo1DDa8Qnf7dNMs0UwFegZpXpXcX4+PEb8FanQBV4jJG
 aKjtXtbuVtyMY+Hnz0Q3Cbkq6rTmMhSvejUXG8PQAJk3lLt7APsaCV702MWQNUodahIaOh82s
 hm6QQ0dCzv/ThzveDp5pdT0YgE76v1JSxa3Gr6S0qUPeV6O9gTMaD0GCpdUHjvsGP5Q4mZA9q
 NSim3VoULpVFX4u7tD1RMgWJrIfA2fiSbI5srkLpxuiwfSY49P0KivGiYW2aWQopqI+XjK8Nl
 sfYRuHFqeIs1AoMWifD265cNhKMPwp8ggbZiNdi60GhBU4GJlHNCHl4M1vddmednWy
X-Spam-Score: 2.9 (++)
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:  > Martin, do you agree with this? I tested this patch for
 a long time. > >> 1. C-x 4 d RET C-h C-t q q -- the bottom window is NOT
 deleted >> 2. C-x 4 d RET C-h C-t C-x k RET q -- the bottom window i [...]
 Content analysis details:   (2.9 points, 10.0 required)
 pts rule name              description
 ---- ---------------------- --------------------------------------------------
 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 (rudalics[at]gmx.at)
 -0.0 SPF_PASS               SPF: sender matches SPF record
 3.6 RCVD_IN_SBL_CSS        RBL: Received via a relay in Spamhaus SBL-CSS
 [212.95.5.29 listed in zen.spamhaus.org]
 -0.7 RCVD_IN_DNSWL_LOW      RBL: Sender listed at https://www.dnswl.org/,
 low trust [212.227.15.15 listed in list.dnswl.org]
X-Debbugs-Envelope-To: 59862
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: 1.9 (+)
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:  > Martin, do you agree with this? I tested this patch for
    a long time. > >> 1. C-x 4 d RET C-h C-t q q -- the bottom window is NOT
   deleted >> 2. C-x 4 d RET C-h C-t C-x k RET q -- the bottom window i [...]
    
 
 Content analysis details:   (1.9 points, 10.0 required)
 
  pts rule name              description
 ---- ---------------------- --------------------------------------------------
  3.6 RCVD_IN_SBL_CSS        RBL: Received via a relay in Spamhaus SBL-CSS
                             [212.95.5.29 listed in zen.spamhaus.org]
 -0.7 RCVD_IN_DNSWL_LOW      RBL: Sender listed at https://www.dnswl.org/,
                             low trust
                             [212.227.15.15 listed in list.dnswl.org]
  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 (rudalics[at]gmx.at)
 -0.0 SPF_PASS               SPF: sender matches SPF record
 -1.0 MAILING_LIST_MULTI     Multiple indicators imply a widely-seen list
                             manager

This is a multi-part message in MIME format.
--------------IC2I0Uy7drpTFuo2EwzOlvBQ
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

 > Martin, do you agree with this?  I tested this patch for a long time.
 >
 >> 1. C-x 4 d RET C-h C-t q q         -- the bottom window is NOT deleted
 >> 2. C-x 4 d RET C-h C-t C-x k RET q -- the bottom window is deleted
 >> 3. C-x 4 d RET C-h C-n C-x k RET q -- the bottom window is NOT deleted
 >>
 >> The accidental difference between the last two is that the former uses
 >> `switch-to-buffer' whereas the latter uses `pop-to-buffer-same-window'.

'switch-to-buffer' leaves the 'quit-restore' parameter the way it was
set up by C-x 4 d.  'pop-to-buffer-same-window' changes it to the
'reuse' type.  So one fix is to have 'switch-to-buffer' record the
window when it does not obey display actions and it gets the 'reuse'
type as well.  This way there are no more accidental differences when
quitting the help buffer.

 >> The root of the problem is that displaying a buffer in an existing
 >> window, or quitting a buffer in an existing window overwrites its
 >> window parameter `quit-restore', and thus invalidates the history of
 >> how the first window was displayed.

We could fix the former in 'display-buffer-record-window' by having it
not overwrite an existing 'quit-restore' parameter when it displays
another buffer.  Then 'quit-window' would always delete the window in
the scenarios above instead of showing the dir buffer.  The backside is
that additional information recorded by 'display-buffer-record-window'
like the now selected window or window sizes would no more get recorded.

 >> A partial fix that solves only the first test case above is at least
 >> not to overwrite `quit-restore' on quitting other buffers in the same
 >> window:

You cannot simply fix the third test in 'quit-restore-window' alone
because C-x k leaves the 'quit-restore' parameter of the NEWS buffer
unchanged.  That's arguably a bug: When killing buffers and in some
other cases we should remove the 'quit-restore' parameter.

 >> diff --git a/lisp/window.el b/lisp/window.el
 >> index a11293d372a..e3b057599d5 100644
 >> --- a/lisp/window.el
 >> +++ b/lisp/window.el
 >> @@ -5275,14 +5276,14 @@ quit-restore-window
 >>   	(set-window-prev-buffers
 >>   	 window (append (window-prev-buffers window) (list entry))))
 >>         ;; Reset the quit-restore parameter.
 >> -      (set-window-parameter window 'quit-restore nil)

Why keep it here?  After all, this one has accomplished its mission so
keeping it looks like an UXB to me.

 >>         ;; Select old window.
 >>         ;; If the previously selected window is still alive, select it.
 >>         (window--quit-restore-select-window quit-restore-2))
 >>        (t
 >>         ;; Show some other buffer in WINDOW and reset the quit-restore
 >>         ;; parameter.
 >> -      (set-window-parameter window 'quit-restore nil)

Keeping this one looks OK.  If the buffer shown in the window is not the
one the parameter mentions, chances are that a 'quit-restore-window' can
eventually use it in the future.

 >> But the proper fix for other problems would be to replace the window
 >> parameter `quit-restore' currently shared by all buffers in the same window
 >> by a stack where every window buffer should keep own quit-restore data.
 >> There is already such a stack in `window-prev-buffers', so a possible
 >> solution would be to add quit-restore data to each buffer
 >> in window-prev-buffers.

And how would such a stack handle intertwined 'next-buffer' and
'prev-buffer' calls?  Stacks are one of those things that set apart
computers from human beings.

 >> Alternatively, it would be nice to have an option that would prevent
 >> overwriting the initial value of the window parameter `quit-restore',
 >> thus `quit-restore-window' could delete the window regardless of
 >> how many buffers were displayed in that window, like it does in case
 >> of dedicated windows.

I attach a patch that tries to do that.  Here it handles all scenarios
you describe above.  However, it's by no means trivial and requires at
least _one month_ of testing on your side.  I have not addressed the

  	   (eq (nth 1 quit-restore) 'tab)

case in 'quit-restore-window'.  You have to look into this yourself.
And there might obviously be other cases missing.

martin
--------------IC2I0Uy7drpTFuo2EwzOlvBQ
Content-Type: text/x-patch; charset=UTF-8; name="quit-restore.diff"
Content-Disposition: attachment; filename="quit-restore.diff"
Content-Transfer-Encoding: base64

ZGlmZiAtLWdpdCBhL2xpc3Avd2luZG93LmVsIGIvbGlzcC93aW5kb3cuZWwKaW5kZXggYjAx
NGJlNmE3Y2YuLjhiNzlhODkyNzBiIDEwMDY0NAotLS0gYS9saXNwL3dpbmRvdy5lbAorKysg
Yi9saXNwL3dpbmRvdy5lbApAQCAtNTEwOCw4ICs1MTA4LDggQEAgZGVsZXRlLXdpbmRvd3Mt
b24KICAgKGxldCAoKGJ1ZmZlciAod2luZG93LW5vcm1hbGl6ZS1idWZmZXIgYnVmZmVyLW9y
LW5hbWUpKQogCTs7IEhhbmRsZSB0aGUgImludmVydGVkIiBtZWFuaW5nIG9mIHRoZSBGUkFN
RSBhcmd1bWVudCB3cnQgb3RoZXIKIAk7OyBgd2luZG93LWxpc3QtMScgYmFzZWQgZnVuY3Rp
b24uCi0JKGFsbC1mcmFtZXMgKGNvbmQgKChub3QgZnJhbWUpIHQpICgoZXEgZnJhbWUgdCkg
bmlsKSAodCBmcmFtZSkpKSkKLSAgICAoZG9saXN0ICh3aW5kb3cgKHdpbmRvdy1saXN0LTEg
bmlsIG5pbCBhbGwtZnJhbWVzKSkKKwkoZnJhbWVzIChjb25kICgobm90IGZyYW1lKSB0KSAo
KGVxIGZyYW1lIHQpIG5pbCkgKHQgZnJhbWUpKSkpCisgICAgKGRvbGlzdCAod2luZG93ICh3
aW5kb3ctbGlzdC0xIG5pbCAnbm9taW5pIGZyYW1lcykpCiAgICAgICAoaWYgKGVxICh3aW5k
b3ctYnVmZmVyIHdpbmRvdykgYnVmZmVyKQogCSAgKGxldCAoKGRlbGV0YWJsZSAod2luZG93
LWRlbGV0YWJsZS1wIHdpbmRvdykpCiAgICAgICAgICAgICAgICAgKGRlZGljYXRlZCAod2lu
ZG93LWRlZGljYXRlZC1wIHdpbmRvdykpKQpAQCAtNTEyMSwxMiArNTEyMSwxOCBAQCBkZWxl
dGUtd2luZG93cy1vbgogCSAgICAgIDs7IERlbGV0ZSB3aW5kb3cuCiAJICAgICAgKGRlbGV0
ZS13aW5kb3cgd2luZG93KSkKIAkgICAgICh0Ci0JICAgICAgOzsgSW4gd2luZG93IHN3aXRj
aCB0byBwcmV2aW91cyBidWZmZXIuCi0JICAgICAgKHNldC13aW5kb3ctZGVkaWNhdGVkLXAg
d2luZG93IG5pbCkKLQkgICAgICAoc3dpdGNoLXRvLXByZXYtYnVmZmVyIHdpbmRvdyAnYnVy
eSkKLSAgICAgICAgICAgICAgOzsgUmVzdG9yZSB0aGUgZGVkaWNhdGVkICdzaWRlJyBmbGFn
LgotICAgICAgICAgICAgICAod2hlbiAoZXEgZGVkaWNhdGVkICdzaWRlKQotICAgICAgICAg
ICAgICAgIChzZXQtd2luZG93LWRlZGljYXRlZC1wIHdpbmRvdyAnc2lkZSkpKSkpCisJICAg
ICAgKHdoZW4gKGVxICh3aW5kb3ctYnVmZmVyIHdpbmRvdykgYnVmZmVyKQorCQkocXVpdC1y
ZXN0b3JlLXdpbmRvdyB3aW5kb3cpKQorCSAgICAgIDs7IFJlbW92ZSBxdWl0LXJlc3RvcmUo
LXByZXYpIGVudHJpZXMgdGhhdCBtZW50aW9uIEJVRkZFUi4KKwkgICAgICAobGV0ICgocXVp
dC1yZXN0b3JlICh3aW5kb3ctcGFyYW1ldGVyIHdpbmRvdyAncXVpdC1yZXN0b3JlKSkKKwkJ
ICAgIChxdWl0LXJlc3RvcmUtcHJldiAod2luZG93LXBhcmFtZXRlciB3aW5kb3cgJ3F1aXQt
cmVzdG9yZS1wcmV2KSkpCisJCSh3aGVuIChlcSBidWZmZXIgKG50aCAzIHF1aXQtcmVzdG9y
ZS1wcmV2KSkKKwkJICAoc2V0LXdpbmRvdy1wYXJhbWV0ZXIgd2luZG93ICdxdWl0LXJlc3Rv
cmUtcHJldiBuaWwpKQorCQkod2hlbiAoZXEgYnVmZmVyIChudGggMyBxdWl0LXJlc3RvcmUp
KQorCQkgIChzZXQtd2luZG93LXBhcmFtZXRlcgorCQkgICB3aW5kb3cgJ3F1aXQtcmVzdG9y
ZSAod2luZG93LXBhcmFtZXRlciB3aW5kb3cgJ3F1aXQtcmVzdG9yZS1wcmV2KSkpKQorCSAg
ICAgIDs7IFVucmVjb3JkIEJVRkZFUiBpbiB0aGlzIHdpbmRvdy4KKwkgICAgICAodW5yZWNv
cmQtd2luZG93LWJ1ZmZlciB3aW5kb3cgYnVmZmVyKSkpKQogCTs7IElmIGEgd2luZG93IGRv
ZXNuJ3Qgc2hvdyBCVUZGRVIsIHVucmVjb3JkIEJVRkZFUiBpbiBpdC4KIAkodW5yZWNvcmQt
d2luZG93LWJ1ZmZlciB3aW5kb3cgYnVmZmVyKSkpKSkKIApAQCAtNTE0NiwxNyArNTE1Miwx
OCBAQCByZXBsYWNlLWJ1ZmZlci1pbi13aW5kb3dzCiAgIChpbnRlcmFjdGl2ZSAiYkJ1ZmZl
ciB0byByZXBsYWNlOiAiKQogICAobGV0ICgoYnVmZmVyICh3aW5kb3ctbm9ybWFsaXplLWJ1
ZmZlciBidWZmZXItb3ItbmFtZSkpKQogICAgIChkb2xpc3QgKHdpbmRvdyAod2luZG93LWxp
c3QtMSBuaWwgbmlsIHQpKQotICAgICAgKGlmIChlcSAod2luZG93LWJ1ZmZlciB3aW5kb3cp
IGJ1ZmZlcikKLSAgICAgICAgICA7OyBEZWxldGUgYSBkZWRpY2F0ZWQgd2luZG93IHVubGVz
cyBpdCBpcyBhIHNpZGUgd2luZG93LgotICAgICAgICAgIChsZXQgKChkZWRpY2F0ZWQtc2lk
ZSAoZXEgKHdpbmRvdy1kZWRpY2F0ZWQtcCB3aW5kb3cpICdzaWRlKSkpCi0gICAgICAgICAg
ICAod2hlbiAob3IgZGVkaWNhdGVkLXNpZGUgKG5vdCAod2luZG93LS1kZWxldGUgd2luZG93
IHQgdCkpKQotICAgICAgICAgICAgICA7OyBTd2l0Y2ggdG8gYW5vdGhlciBidWZmZXIgaW4g
dGhhdCB3aW5kb3cuCi0gICAgICAgICAgICAgIChzZXQtd2luZG93LWRlZGljYXRlZC1wIHdp
bmRvdyBuaWwpCi0gICAgICAgICAgICAgIChpZiAoc3dpdGNoLXRvLXByZXYtYnVmZmVyIHdp
bmRvdyAna2lsbCkKLSAgICAgICAgICAgICAgICAgIChhbmQgZGVkaWNhdGVkLXNpZGUgKHNl
dC13aW5kb3ctZGVkaWNhdGVkLXAgd2luZG93ICdzaWRlKSkKLSAgICAgICAgICAgICAgICAo
d2luZG93LS1kZWxldGUgd2luZG93IG5pbCAna2lsbCkpKSkKLQk7OyBVbnJlY29yZCBCVUZG
RVIgaW4gV0lORE9XLgotCSh1bnJlY29yZC13aW5kb3ctYnVmZmVyIHdpbmRvdyBidWZmZXIp
KSkpKQorICAgICAgKHdoZW4gKGVxICh3aW5kb3ctYnVmZmVyIHdpbmRvdykgYnVmZmVyKQor
CShxdWl0LXJlc3RvcmUtd2luZG93IHdpbmRvdyAna2lsbCkpCisgICAgICA7OyBSZW1vdmUg
cXVpdC1yZXN0b3JlKC1wcmV2KSBlbnRyaWVzIHRoYXQgbWVudGlvbiBCVUZGRVIuCisgICAg
ICAobGV0ICgocXVpdC1yZXN0b3JlICh3aW5kb3ctcGFyYW1ldGVyIHdpbmRvdyAncXVpdC1y
ZXN0b3JlKSkKKwkgICAgKHF1aXQtcmVzdG9yZS1wcmV2ICh3aW5kb3ctcGFyYW1ldGVyIHdp
bmRvdyAncXVpdC1yZXN0b3JlLXByZXYpKSkKKwkod2hlbiAoZXEgYnVmZmVyIChudGggMyBx
dWl0LXJlc3RvcmUtcHJldikpCisJICAoc2V0LXdpbmRvdy1wYXJhbWV0ZXIgd2luZG93ICdx
dWl0LXJlc3RvcmUtcHJldiBuaWwpKQorCSh3aGVuIChlcSBidWZmZXIgKG50aCAzIHF1aXQt
cmVzdG9yZSkpCisJICAoc2V0LXdpbmRvdy1wYXJhbWV0ZXIKKwkgICB3aW5kb3cgJ3F1aXQt
cmVzdG9yZSAod2luZG93LXBhcmFtZXRlciB3aW5kb3cgJ3F1aXQtcmVzdG9yZS1wcmV2KSkp
KQorICAgICAgOzsgVW5yZWNvcmQgQlVGRkVSIGluIHRoaXMgd2luZG93LgorICAgICAgKHVu
cmVjb3JkLXdpbmRvdy1idWZmZXIgd2luZG93IGJ1ZmZlcikpKSkKIAogKGRlZmN1c3RvbSBx
dWl0LXdpbmRvdy1ob29rIG5pbAogICAiSG9vayBydW4gYmVmb3JlIHBlcmZvcm1pbmcgYW55
IG90aGVyIGFjdGlvbnMgaW4gdGhlIGBxdWl0LXdpbmRvdycgY29tbWFuZC4iCkBAIC01MjEw
LDEzICs1MjE3LDE1IEBAIHF1aXQtcmVzdG9yZS13aW5kb3cKICAgKHNldHEgd2luZG93ICh3
aW5kb3ctbm9ybWFsaXplLXdpbmRvdyB3aW5kb3cgdCkpCiAgIChsZXQqICgoYnVmZmVyICh3
aW5kb3ctYnVmZmVyIHdpbmRvdykpCiAJIChxdWl0LXJlc3RvcmUgKHdpbmRvdy1wYXJhbWV0
ZXIgd2luZG93ICdxdWl0LXJlc3RvcmUpKQorCSAocXVpdC1yZXN0b3JlLXByZXYgKHdpbmRv
dy1wYXJhbWV0ZXIgd2luZG93ICdxdWl0LXJlc3RvcmUtcHJldikpCiAJIChxdWl0LXJlc3Rv
cmUtMiAobnRoIDIgcXVpdC1yZXN0b3JlKSkKKwkgKHF1aXQtcmVzdG9yZS1wcmV2LTIgKG50
aCAyIHF1aXQtcmVzdG9yZS1wcmV2KSkKICAgICAgICAgIChwcmV2LWJ1ZmZlciAoY2F0Y2gg
J3ByZXYtYnVmZmVyCiAgICAgICAgICAgICAgICAgICAgICAgICAoZG9saXN0IChidWYgKHdp
bmRvdy1wcmV2LWJ1ZmZlcnMgd2luZG93KSkKICAgICAgICAgICAgICAgICAgICAgICAgICAg
KHVubGVzcyAoZXEgKGNhciBidWYpIGJ1ZmZlcikKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAodGhyb3cgJ3ByZXYtYnVmZmVyIChjYXIgYnVmKSkpKSkpCiAgICAgICAgICAoZGVk
aWNhdGVkICh3aW5kb3ctZGVkaWNhdGVkLXAgd2luZG93KSkKLQkgcXVhZCBlbnRyeSkKKwkg
cXVhZCBlbnRyeSByZXNldC1wcmV2KQogICAgIChjb25kCiAgICAgIDs7IEZpcnN0IHRyeSB0
byBkZWxldGUgZGVkaWNhdGVkIHdpbmRvd3MgdGhhdCBhcmUgbm90IHNpZGUgd2luZG93cy4K
ICAgICAgKChhbmQgZGVkaWNhdGVkIChub3QgKGVxIGRlZGljYXRlZCAnc2lkZSkpCkBAIC01
MjMwLDIxICs1MjM5LDM1IEBAIHF1aXQtcmVzdG9yZS13aW5kb3cKICAgICAgIDs7IElmIHRo
ZSBwcmV2aW91c2x5IHNlbGVjdGVkIHdpbmRvdyBpcyBzdGlsbCBhbGl2ZSwgc2VsZWN0IGl0
LgogICAgICAgKHdpbmRvdy0tcXVpdC1yZXN0b3JlLXNlbGVjdC13aW5kb3cgcXVpdC1yZXN0
b3JlLTIpKQogICAgICAoKGFuZCAobm90IHByZXYtYnVmZmVyKQotCSAgIChvciAoZXEgKG50
aCAxIHF1aXQtcmVzdG9yZSkgJ2ZyYW1lKQotCSAgICAgICAoYW5kIChlcSAobnRoIDEgcXVp
dC1yZXN0b3JlKSAnd2luZG93KQotCQkgICAgOzsgSWYgdGhlIHdpbmRvdyBoYXMgYmVlbiBj
cmVhdGVkIG9uIGFuIGV4aXN0aW5nCi0JCSAgICA7OyBmcmFtZSBhbmQgZW5kZWQgdXAgYXMg
dGhlIHNvbGUgd2luZG93IG9uIHRoYXQKLQkJICAgIDs7IGZyYW1lLCBkbyBub3QgZGVsZXRl
IGl0IChCdWcjMTI3NjQpLgotCQkgICAgKG5vdCAoZXEgd2luZG93IChmcmFtZS1yb290LXdp
bmRvdyB3aW5kb3cpKSkpKQotCSAgIChlcSAobnRoIDMgcXVpdC1yZXN0b3JlKSBidWZmZXIp
CisJICAgKG9yIChhbmQgKG9yIChlcSAobnRoIDEgcXVpdC1yZXN0b3JlKSAnZnJhbWUpCisJ
CQkoYW5kIChlcSAobnRoIDEgcXVpdC1yZXN0b3JlKSAnd2luZG93KQorCQkJICAgICA7OyBJ
ZiB0aGUgd2luZG93IGhhcyBiZWVuIGNyZWF0ZWQgb24gYW4KKwkJCSAgICAgOzsgZXhpc3Rp
bmcgZnJhbWUgYW5kIGVuZGVkIHVwIGFzIHRoZSBzb2xlCisJCQkgICAgIDs7IHdpbmRvdyBv
biB0aGF0IGZyYW1lLCBkbyBub3QgZGVsZXRlIGl0CisJCQkgICAgIDs7IChCdWcjMTI3NjQp
LgorCQkJICAgICAobm90IChlcSB3aW5kb3cgKGZyYW1lLXJvb3Qtd2luZG93IHdpbmRvdykp
KSkpCisJCSAgICAoZXEgKG50aCAzIHF1aXQtcmVzdG9yZSkgYnVmZmVyKSkKKwkgICAgICAg
KGFuZCAob3IgKGVxIChudGggMSBxdWl0LXJlc3RvcmUtcHJldikgJ2ZyYW1lKQorCQkJKGFu
ZCAoZXEgKG50aCAxIHF1aXQtcmVzdG9yZS1wcmV2KSAnd2luZG93KQorCQkJICAgICAobm90
IChlcSB3aW5kb3cgKGZyYW1lLXJvb3Qtd2luZG93IHdpbmRvdykpKSkpCisJCSAgICAoZXEg
KG50aCAzIHF1aXQtcmVzdG9yZS1wcmV2KSBidWZmZXIpCisJCSAgICA7OyBVc2Ugc2VsZWN0
ZWQgd2luZG93IGZyb20gcXVpdC1yZXN0b3JlLXByZXYuCisJCSAgICAoc2V0cSBxdWl0LXJl
c3RvcmUtMiBxdWl0LXJlc3RvcmUtcHJldi0yKSkpCiAJICAgOzsgRGVsZXRlIFdJTkRPVyBp
ZiBwb3NzaWJsZS4KIAkgICAod2luZG93LS1kZWxldGUgd2luZG93IG5pbCAoZXEgYnVyeS1v
ci1raWxsICdraWxsKSkpCiAgICAgICA7OyBJZiB0aGUgcHJldmlvdXNseSBzZWxlY3RlZCB3
aW5kb3cgaXMgc3RpbGwgYWxpdmUsIHNlbGVjdCBpdC4KICAgICAgICh3aW5kb3ctLXF1aXQt
cmVzdG9yZS1zZWxlY3Qtd2luZG93IHF1aXQtcmVzdG9yZS0yKSkKLSAgICAgKChhbmQgKGxp
c3RwIChzZXRxIHF1YWQgKG50aCAxIHF1aXQtcmVzdG9yZSkpKQotCSAgIChidWZmZXItbGl2
ZS1wIChjYXIgcXVhZCkpCi0JICAgKGVxIChudGggMyBxdWl0LXJlc3RvcmUpIGJ1ZmZlcikp
Ci0gICAgICA7OyBTaG93IGFub3RoZXIgYnVmZmVyIHN0b3JlZCBpbiBxdWl0LXJlc3RvcmUg
cGFyYW1ldGVyLgorICAgICAoKG9yIChhbmQgKGxpc3RwIChzZXRxIHF1YWQgKG50aCAxIHF1
aXQtcmVzdG9yZSkpKQorCSAgICAgICAoYnVmZmVyLWxpdmUtcCAoY2FyIHF1YWQpKQorCSAg
ICAgICAoZXEgKG50aCAzIHF1aXQtcmVzdG9yZSkgYnVmZmVyKSkKKwkgIChhbmQgKGxpc3Rw
IChzZXRxIHF1YWQgKG50aCAxIHF1aXQtcmVzdG9yZS1wcmV2KSkpCisJICAgICAgIChidWZm
ZXItbGl2ZS1wIChjYXIgcXVhZCkpCisJICAgICAgIChlcSAobnRoIDMgcXVpdC1yZXN0b3Jl
LXByZXYpIGJ1ZmZlcikKKwkgICAgICAgOzsgVXNlIHNlbGVjdGVkIHdpbmRvdyBmcm9tIHF1
aXQtcmVzdG9yZS1wcmV2LgorCSAgICAgICAoc2V0cSBxdWl0LXJlc3RvcmUtMiBxdWl0LXJl
c3RvcmUtcHJldi0yKQorCSAgICAgICA7OyBXZSB3YW50IHRvIHJlc2V0IHF1aXQtcmVzdG9y
ZS1wcmV2IG9ubHkuCisJICAgICAgIChzZXRxIHJlc2V0LXByZXYgdCkpKQorICAgICAgOzsg
U2hvdyBhbm90aGVyIGJ1ZmZlciBzdG9yZWQgaW4gcXVpdC1yZXN0b3JlKC1wcmV2KSBwYXJh
bWV0ZXIuCiAgICAgICAod2hlbiAoYW5kIChpbnRlZ2VycCAobnRoIDMgcXVhZCkpCiAJCSAo
aWYgKHdpbmRvdy1jb21iaW5lZC1wIHdpbmRvdykKICAgICAgICAgICAgICAgICAgICAgICgv
PSAobnRoIDMgcXVhZCkgKHdpbmRvdy10b3RhbC1oZWlnaHQgd2luZG93KSkKQEAgLTUyODEs
MTUgKzUzMDQsMTUgQEAgcXVpdC1yZXN0b3JlLXdpbmRvdwogCTs7IGBkaXNwbGF5LWJ1ZmZl
ci1pbi1wcmV2aW91cy13aW5kb3cnIGNhbiBuZXZlcnRoZWxlc3MgZmluZCBpdC4KIAkoc2V0
LXdpbmRvdy1wcmV2LWJ1ZmZlcnMKIAkgd2luZG93IChhcHBlbmQgKHdpbmRvdy1wcmV2LWJ1
ZmZlcnMgd2luZG93KSAobGlzdCBlbnRyeSkpKSkKLSAgICAgIDs7IFJlc2V0IHRoZSBxdWl0
LXJlc3RvcmUgcGFyYW1ldGVyLgotICAgICAgKHNldC13aW5kb3ctcGFyYW1ldGVyIHdpbmRv
dyAncXVpdC1yZXN0b3JlIG5pbCkKKyAgICAgIDs7IFJlc2V0IHRoZSBxdWl0LXJlc3RvcmUo
LXByZXYpIHBhcmFtZXRlci4KKyAgICAgIChzZXQtd2luZG93LXBhcmFtZXRlcgorICAgICAg
IHdpbmRvdyAoaWYgcmVzZXQtcHJldiAncXVpdC1yZXN0b3JlLXByZXYgJ3F1aXQtcmVzdG9y
ZSkgbmlsKQogICAgICAgOzsgU2VsZWN0IG9sZCB3aW5kb3cuCiAgICAgICA7OyBJZiB0aGUg
cHJldmlvdXNseSBzZWxlY3RlZCB3aW5kb3cgaXMgc3RpbGwgYWxpdmUsIHNlbGVjdCBpdC4K
ICAgICAgICh3aW5kb3ctLXF1aXQtcmVzdG9yZS1zZWxlY3Qtd2luZG93IHF1aXQtcmVzdG9y
ZS0yKSkKICAgICAgKHQKLSAgICAgIDs7IFNob3cgc29tZSBvdGhlciBidWZmZXIgaW4gV0lO
RE9XIGFuZCByZXNldCB0aGUgcXVpdC1yZXN0b3JlCi0gICAgICA7OyBwYXJhbWV0ZXIuCi0g
ICAgICAoc2V0LXdpbmRvdy1wYXJhbWV0ZXIgd2luZG93ICdxdWl0LXJlc3RvcmUgbmlsKQor
ICAgICAgOzsgU2hvdyBzb21lIG90aGVyIGJ1ZmZlciBpbiBXSU5ET1cgYW5kIGxlYXZlIHRo
ZQorICAgICAgOzsgcXVpdC1yZXN0b3JlKC1wcmV2KSBwYXJhbWV0ZXJzIGFsb25lIChKdXJp
J3MgaWRlYSkuCiAgICAgICA7OyBNYWtlIHN1cmUgdGhhdCBXSU5ET1cgaXMgbm8gbW9yZSBk
ZWRpY2F0ZWQuCiAgICAgICAoc2V0LXdpbmRvdy1kZWRpY2F0ZWQtcCB3aW5kb3cgbmlsKQog
ICAgICAgOzsgVHJ5IHRvIHN3aXRjaCB0byBhIHByZXZpb3VzIGJ1ZmZlci4gIERlbGV0ZSB0
aGUgd2luZG93IG9ubHkgaWYKQEAgLTUyOTcsMTAgKzUzMjAsNyBAQCBxdWl0LXJlc3RvcmUt
d2luZG93CiAgICAgICAoaWYgKHN3aXRjaC10by1wcmV2LWJ1ZmZlciB3aW5kb3cgYnVyeS1v
ci1raWxsKQogICAgICAgICAgICh3aGVuIChlcSBkZWRpY2F0ZWQgJ3NpZGUpCiAgICAgICAg
ICAgICAoc2V0LXdpbmRvdy1kZWRpY2F0ZWQtcCB3aW5kb3cgJ3NpZGUpKQotICAgICAgICAo
d2luZG93LS1kZWxldGUgd2luZG93IG5pbCAoZXEgYnVyeS1vci1raWxsICdraWxsKSkKLSAg
ICAgIDs7IElmIHRoZSBwcmV2aW91c2x5IHNlbGVjdGVkIHdpbmRvdyBpcyBzdGlsbCBhbGl2
ZSwgc2VsZWN0IGl0LgotICAgICAgKHdpbmRvdy0tcXVpdC1yZXN0b3JlLXNlbGVjdC13aW5k
b3cgcXVpdC1yZXN0b3JlLTIpKSkpCi0KKyAgICAgICAgKHdpbmRvdy0tZGVsZXRlIHdpbmRv
dyBuaWwgKGVxIGJ1cnktb3Ita2lsbCAna2lsbCkpKSkpCiAgICAgOzsgRGVhbCB3aXRoIHRo
ZSBidWZmZXIuCiAgICAgKGNvbmQKICAgICAgKChub3QgKGJ1ZmZlci1saXZlLXAgYnVmZmVy
KSkpCkBAIC01MzQyLDEyICs1MzYyLDIwIEBAIHF1aXQtd2luZG93cy1vbgogICAobGV0ICgo
YnVmZmVyICh3aW5kb3ctbm9ybWFsaXplLWJ1ZmZlciBidWZmZXItb3ItbmFtZSkpCiAJOzsg
SGFuZGxlIHRoZSAiaW52ZXJ0ZWQiIG1lYW5pbmcgb2YgdGhlIEZSQU1FIGFyZ3VtZW50IHdy
dCBvdGhlcgogCTs7IGB3aW5kb3ctbGlzdC0xJyBiYXNlZCBmdW5jdGlvbi4KLQkoYWxsLWZy
YW1lcyAoY29uZCAoKG5vdCBmcmFtZSkgdCkgKChlcSBmcmFtZSB0KSBuaWwpICh0IGZyYW1l
KSkpKQotICAgIChkb2xpc3QgKHdpbmRvdyAod2luZG93LWxpc3QtMSBuaWwgbmlsIGFsbC1m
cmFtZXMpKQotICAgICAgKGlmIChlcSAod2luZG93LWJ1ZmZlciB3aW5kb3cpIGJ1ZmZlcikK
LQkgIChxdWl0LXdpbmRvdyBraWxsIHdpbmRvdykKLQk7OyBJZiBhIHdpbmRvdyBkb2Vzbid0
IHNob3cgQlVGRkVSLCB1bnJlY29yZCBCVUZGRVIgaW4gaXQuCi0JKHVucmVjb3JkLXdpbmRv
dy1idWZmZXIgd2luZG93IGJ1ZmZlcikpKSkpCisJKGZyYW1lcyAoY29uZCAoKG5vdCBmcmFt
ZSkgdCkgKChlcSBmcmFtZSB0KSBuaWwpICh0IGZyYW1lKSkpKQorICAgIChkb2xpc3QgKHdp
bmRvdyAod2luZG93LWxpc3QtMSBuaWwgbmlsIGZyYW1lcykpCisgICAgICAod2hlbiAoZXEg
KHdpbmRvdy1idWZmZXIgd2luZG93KSBidWZmZXIpCisJKHF1aXQtcmVzdG9yZS13aW5kb3cg
d2luZG93IGtpbGwpKQorICAgICAgOzsgUmVtb3ZlIHF1aXQtcmVzdG9yZSgtcHJldikgZW50
cmllcyB0aGF0IG1lbnRpb24gQlVGRkVSLgorICAgICAgKGxldCAoKHF1aXQtcmVzdG9yZSAo
d2luZG93LXBhcmFtZXRlciB3aW5kb3cgJ3F1aXQtcmVzdG9yZSkpCisJICAgIChxdWl0LXJl
c3RvcmUtcHJldiAod2luZG93LXBhcmFtZXRlciB3aW5kb3cgJ3F1aXQtcmVzdG9yZS1wcmV2
KSkpCisJKHdoZW4gKGVxIGJ1ZmZlciAobnRoIDMgcXVpdC1yZXN0b3JlLXByZXYpKQorCSAg
KHNldC13aW5kb3ctcGFyYW1ldGVyIHdpbmRvdyAncXVpdC1yZXN0b3JlLXByZXYgbmlsKSkK
Kwkod2hlbiAoZXEgYnVmZmVyIChudGggMyBxdWl0LXJlc3RvcmUpKQorCSAgKHNldC13aW5k
b3ctcGFyYW1ldGVyCisJICAgd2luZG93ICdxdWl0LXJlc3RvcmUgKHdpbmRvdy1wYXJhbWV0
ZXIgd2luZG93ICdxdWl0LXJlc3RvcmUtcHJldikpKSkKKyAgICAgIDs7IFVucmVjb3JkIEJV
RkZFUiBpbiB0aGlzIHdpbmRvdy4KKyAgICAgICh1bnJlY29yZC13aW5kb3ctYnVmZmVyIHdp
bmRvdyBidWZmZXIpKSkpCiAMCiAoZGVmdW4gd2luZG93LS1jb21iaW5hdGlvbi1yZXNpemFi
bGUgKHBhcmVudCAmb3B0aW9uYWwgaG9yaXpvbnRhbCkKICAgIlJldHVybiBudW1iZXIgb2Yg
cGl4ZWxzIHJlY292ZXJhYmxlIGZyb20gaGVpZ2h0IG9mIHdpbmRvdyBQQVJFTlQuCkBAIC02
NjczLDcgKzY3MDEsNyBAQCBkaXNwbGF5LWJ1ZmZlci1yZWNvcmQtd2luZG93CiAgICAgICA7
OyBXSU5ET1cgc2hvd3MgYW5vdGhlciBidWZmZXIuCiAgICAgICAod2l0aC1jdXJyZW50LWJ1
ZmZlciAod2luZG93LWJ1ZmZlciB3aW5kb3cpCiAJKHNldC13aW5kb3ctcGFyYW1ldGVyCi0J
IHdpbmRvdyAncXVpdC1yZXN0b3JlCisJIHdpbmRvdyAncXVpdC1yZXN0b3JlLXByZXYKIAkg
KGxpc3QgJ290aGVyCiAJICAgICAgIDs7IEEgcXVhZHJ1cGxlIG9mIFdJTkRPVydzIGJ1ZmZl
ciwgc3RhcnQsIHBvaW50IGFuZCBoZWlnaHQuCiAJICAgICAgIChsaXN0IChjdXJyZW50LWJ1
ZmZlcikgKHdpbmRvdy1zdGFydCB3aW5kb3cpCg==

--------------IC2I0Uy7drpTFuo2EwzOlvBQ--




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#59862; Package emacs. Full text available.

Message received at 59862 <at> debbugs.gnu.org:


Received: (at 59862) by debbugs.gnu.org; 2 Jun 2024 06:51:04 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Sun Jun 02 02:51:03 2024
Received: from localhost ([127.0.0.1]:57712 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1sDf3X-0007v8-GV
	for submit <at> debbugs.gnu.org; Sun, 02 Jun 2024 02:51:03 -0400
Received: from relay7-d.mail.gandi.net ([217.70.183.200]:52351)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <juri@HIDDEN>) id 1sDf3V-0007ua-8C
 for 59862 <at> debbugs.gnu.org; Sun, 02 Jun 2024 02:51:02 -0400
Received: by mail.gandi.net (Postfix) with ESMTPSA id F1B6C20003;
 Sun,  2 Jun 2024 06:50:41 +0000 (UTC)
From: Juri Linkov <juri@HIDDEN>
To: 59862 <at> debbugs.gnu.org
Subject: Re: bug#59862: quit-restore per window buffer
In-Reply-To: <86fsds8mlm.fsf@HIDDEN> (Juri Linkov's message of "Tue, 
 06 Dec 2022 19:32:05 +0200")
Organization: LINKOV.NET
References: <86fsds8mlm.fsf@HIDDEN>
Date: Sun, 02 Jun 2024 09:45:02 +0300
Message-ID: <86ttibq1w1.fsf@HIDDEN>
User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/30.0.50 (x86_64-pc-linux-gnu)
MIME-Version: 1.0
Content-Type: text/plain
X-GND-Sasl: juri@HIDDEN
X-Spam-Score: -0.7 (/)
X-Debbugs-Envelope-To: 59862
Cc: martin rudalics <rudalics@HIDDEN>
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.7 (-)

Martin, do you agree with this?  I tested this patch for a long time.

> 1. C-x 4 d RET C-h C-t q q         -- the bottom window is NOT deleted
> 2. C-x 4 d RET C-h C-t C-x k RET q -- the bottom window is deleted
> 3. C-x 4 d RET C-h C-n C-x k RET q -- the bottom window is NOT deleted
>
> The accidental difference between the last two is that the former uses
> `switch-to-buffer' whereas the latter uses `pop-to-buffer-same-window'.
>
> The root of the problem is that displaying a buffer in an existing
> window, or quitting a buffer in an existing window overwrites its
> window parameter `quit-restore', and thus invalidates the history of
> how the first window was displayed.
>
> A partial fix that solves only the first test case above is at least
> not to overwrite `quit-restore' on quitting other buffers in the same
> window:
>
> diff --git a/lisp/window.el b/lisp/window.el
> index a11293d372a..e3b057599d5 100644
> --- a/lisp/window.el
> +++ b/lisp/window.el
> @@ -5275,14 +5276,14 @@ quit-restore-window
>  	(set-window-prev-buffers
>  	 window (append (window-prev-buffers window) (list entry))))
>        ;; Reset the quit-restore parameter.
> -      (set-window-parameter window 'quit-restore nil)
>        ;; Select old window.
>        ;; If the previously selected window is still alive, select it.
>        (window--quit-restore-select-window quit-restore-2))
>       (t
>        ;; Show some other buffer in WINDOW and reset the quit-restore
>        ;; parameter.
> -      (set-window-parameter window 'quit-restore nil)
>        ;; Make sure that WINDOW is no more dedicated.
>        (set-window-dedicated-p window nil)
>        ;; Try to switch to a previous buffer.  Delete the window only if
>
> But the proper fix for other problems would be to replace the window
> parameter `quit-restore' currently shared by all buffers in the same window
> by a stack where every window buffer should keep own quit-restore data.
> There is already such a stack in `window-prev-buffers', so a possible
> solution would be to add quit-restore data to each buffer
> in window-prev-buffers.
>
> Alternatively, it would be nice to have an option that would prevent
> overwriting the initial value of the window parameter `quit-restore',
> thus `quit-restore-window' could delete the window regardless of
> how many buffers were displayed in that window, like it does in case
> of dedicated windows.




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#59862; Package emacs. Full text available.

Message received at submit <at> debbugs.gnu.org:


Received: (at submit) by debbugs.gnu.org; 6 Dec 2022 17:34:57 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Tue Dec 06 12:34:57 2022
Received: from localhost ([127.0.0.1]:44161 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1p2bqL-00067o-4w
	for submit <at> debbugs.gnu.org; Tue, 06 Dec 2022 12:34:57 -0500
Received: from lists.gnu.org ([209.51.188.17]:49600)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <juri@HIDDEN>) id 1p2bqK-00067i-0W
 for submit <at> debbugs.gnu.org; Tue, 06 Dec 2022 12:34:56 -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 <juri@HIDDEN>) id 1p2bqD-0007nv-Kz
 for bug-gnu-emacs@HIDDEN; Tue, 06 Dec 2022 12:34:55 -0500
Received: from relay7-d.mail.gandi.net ([217.70.183.200])
 by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.90_1) (envelope-from <juri@HIDDEN>) id 1p2bqB-0003Tk-3Z
 for bug-gnu-emacs@HIDDEN; Tue, 06 Dec 2022 12:34:49 -0500
Received: (Authenticated sender: juri@HIDDEN)
 by mail.gandi.net (Postfix) with ESMTPSA id D78822000A
 for <bug-gnu-emacs@HIDDEN>; Tue,  6 Dec 2022 17:34:42 +0000 (UTC)
From: Juri Linkov <juri@HIDDEN>
To: bug-gnu-emacs@HIDDEN
Subject: quit-restore per window buffer
Organization: LINKOV.NET
Date: Tue, 06 Dec 2022 19:32:05 +0200
Message-ID: <86fsds8mlm.fsf@HIDDEN>
User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/30.0.50 (x86_64-pc-linux-gnu)
MIME-Version: 1.0
Content-Type: text/plain
Received-SPF: pass client-ip=217.70.183.200; envelope-from=juri@HIDDEN;
 helo=relay7-d.mail.gandi.net
X-Spam_score_int: -25
X-Spam_score: -2.6
X-Spam_bar: --
X-Spam_report: (-2.6 / 5.0 requ) BAYES_00=-1.9, RCVD_IN_DNSWL_LOW=-0.7,
 RCVD_IN_MSPIKE_H2=-0.001, SPF_HELO_NONE=0.001,
 SPF_PASS=-0.001 autolearn=ham autolearn_force=no
X-Spam_action: no action
X-Spam-Score: -1.6 (-)
X-Debbugs-Envelope-To: submit
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -2.6 (--)

1. C-x 4 d RET C-h C-t q q         -- the bottom window is NOT deleted
2. C-x 4 d RET C-h C-t C-x k RET q -- the bottom window is deleted
3. C-x 4 d RET C-h C-n C-x k RET q -- the bottom window is NOT deleted

The accidental difference between the last two is that the former uses
`switch-to-buffer' whereas the latter uses `pop-to-buffer-same-window'.

The root of the problem is that displaying a buffer in an existing
window, or quitting a buffer in an existing window overwrites its
window parameter `quit-restore', and thus invalidates the history of
how the first window was displayed.

A partial fix that solves only the first test case above is at least
not to overwrite `quit-restore' on quitting other buffers in the same
window:

```
diff --git a/lisp/window.el b/lisp/window.el
index a11293d372a..e3b057599d5 100644
--- a/lisp/window.el
+++ b/lisp/window.el
@@ -5275,14 +5276,14 @@ quit-restore-window
 	(set-window-prev-buffers
 	 window (append (window-prev-buffers window) (list entry))))
       ;; Reset the quit-restore parameter.
-      (set-window-parameter window 'quit-restore nil)
       ;; Select old window.
       ;; If the previously selected window is still alive, select it.
       (window--quit-restore-select-window quit-restore-2))
      (t
       ;; Show some other buffer in WINDOW and reset the quit-restore
       ;; parameter.
-      (set-window-parameter window 'quit-restore nil)
       ;; Make sure that WINDOW is no more dedicated.
       (set-window-dedicated-p window nil)
       ;; Try to switch to a previous buffer.  Delete the window only if
```

But the proper fix for other problems would be to replace the window
parameter `quit-restore' currently shared by all buffers in the same window
by a stack where every window buffer should keep own quit-restore data.
There is already such a stack in `window-prev-buffers', so a possible
solution would be to add quit-restore data to each buffer
in window-prev-buffers.

Alternatively, it would be nice to have an option that would prevent
overwriting the initial value of the window parameter `quit-restore',
thus `quit-restore-window' could delete the window regardless of
how many buffers were displayed in that window, like it does in case
of dedicated windows.




Acknowledgement sent to Juri Linkov <juri@HIDDEN>:
New bug report received and forwarded. Copy sent to bug-gnu-emacs@HIDDEN. Full text available.
Report forwarded to bug-gnu-emacs@HIDDEN:
bug#59862; Package emacs. Full text available.
Please note: This is a static page, with minimal formatting, updated once a day.
Click here to see this page with the latest information and nicer formatting.
Last modified: Sun, 12 Jan 2025 05:45:02 UTC

GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997 nCipher Corporation Ltd, 1994-97 Ian Jackson.