From mboxrd@z Thu Jan  1 00:00:00 1970
Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail
From: Jim Porter <jporterbugs@gmail.com>
Newsgroups: gmane.emacs.bugs
Subject: bug#66756: 30.0.50;
 [PATCH] Improve discussion of 'let' in Elisp Introduction manual
Date: Thu, 23 Nov 2023 13:04:01 -0800
Message-ID: <9239b6bd-b476-b6c1-aef9-245e439aee42@gmail.com>
References: <a9812c1d-71e4-5f3f-83a4-a2923e649f3a@gmail.com>
 <a5120e2f-b008-1b74-1ad9-3fe7d861b13c@gmail.com>
 <E1qx8nq-0007DY-HV@fencepost.gnu.org>
 <3ade119d-0f0d-e60e-1bdc-9c7e02c1559c@gmail.com>
 <E1r4YeF-0001fe-Ex@fencepost.gnu.org>
 <381836df-c16f-b3e7-d0c4-473290e165de@gmail.com>
 <f44cca7f-13bb-a41a-c9ce-55f1b736c52b@gmail.com>
 <E1r5zuY-00041H-Bl@fencepost.gnu.org>
Mime-Version: 1.0
Content-Type: multipart/mixed; boundary="------------kuo0BZ5UmJ4lqgUpf01c05tQ"
Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214";
	logging-data="33498"; mail-complaints-to="usenet@ciao.gmane.io"
Cc: eliz@gnu.org, 66756@debbugs.gnu.org
To: rms@gnu.org
Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Thu Nov 23 22:05:25 2023
Return-path: <bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org>
Envelope-to: geb-bug-gnu-emacs@m.gmane-mx.org
Original-Received: from lists.gnu.org ([209.51.188.17])
	by ciao.gmane.io with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
	(Exim 4.92)
	(envelope-from <bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org>)
	id 1r6Gt1-0008Wr-K7
	for geb-bug-gnu-emacs@m.gmane-mx.org; Thu, 23 Nov 2023 22:05:23 +0100
Original-Received: from localhost ([::1] helo=lists1p.gnu.org)
	by lists.gnu.org with esmtp (Exim 4.90_1)
	(envelope-from <bug-gnu-emacs-bounces@gnu.org>)
	id 1r6Gse-0006UP-Fw; Thu, 23 Nov 2023 16:05:00 -0500
Original-Received: from eggs.gnu.org ([2001:470:142:3::10])
 by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.90_1) (envelope-from <Debian-debbugs@debbugs.gnu.org>)
 id 1r6Gsc-0006U2-Bo
 for bug-gnu-emacs@gnu.org; Thu, 23 Nov 2023 16:04:58 -0500
Original-Received: from debbugs.gnu.org ([2001:470:142:5::43])
 by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128)
 (Exim 4.90_1) (envelope-from <Debian-debbugs@debbugs.gnu.org>)
 id 1r6Gsc-0004K8-4G
 for bug-gnu-emacs@gnu.org; Thu, 23 Nov 2023 16:04:58 -0500
Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2)
 (envelope-from <Debian-debbugs@debbugs.gnu.org>) id 1r6Gsg-0000DB-53
 for bug-gnu-emacs@gnu.org; Thu, 23 Nov 2023 16:05:02 -0500
X-Loop: help-debbugs@gnu.org
Resent-From: Jim Porter <jporterbugs@gmail.com>
Original-Sender: "Debbugs-submit" <debbugs-submit-bounces@debbugs.gnu.org>
Resent-CC: bug-gnu-emacs@gnu.org
Resent-Date: Thu, 23 Nov 2023 21:05:02 +0000
Resent-Message-ID: <handler.66756.B66756.1700773455740@debbugs.gnu.org>
Resent-Sender: help-debbugs@gnu.org
X-GNU-PR-Message: followup 66756
X-GNU-PR-Package: emacs
X-GNU-PR-Keywords: patch
Original-Received: via spool by 66756-submit@debbugs.gnu.org id=B66756.1700773455740
 (code B ref 66756); Thu, 23 Nov 2023 21:05:02 +0000
Original-Received: (at 66756) by debbugs.gnu.org; 23 Nov 2023 21:04:15 +0000
Original-Received: from localhost ([127.0.0.1]:35226 helo=debbugs.gnu.org)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <debbugs-submit-bounces@debbugs.gnu.org>)
 id 1r6Gru-0000Bs-70
 for submit@debbugs.gnu.org; Thu, 23 Nov 2023 16:04:14 -0500
Original-Received: from mail-pl1-x62a.google.com ([2607:f8b0:4864:20::62a]:51480)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <jporterbugs@gmail.com>) id 1r6Grs-0000BW-4Z
 for 66756@debbugs.gnu.org; Thu, 23 Nov 2023 16:04:12 -0500
Original-Received: by mail-pl1-x62a.google.com with SMTP id
 d9443c01a7336-1cf98f961e9so4291565ad.3
 for <66756@debbugs.gnu.org>; Thu, 23 Nov 2023 13:04:07 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=gmail.com; s=20230601; t=1700773442; x=1701378242; darn=debbugs.gnu.org;
 h=in-reply-to:from:content-language:references:cc:to:subject
 :mime-version:date:message-id:from:to:cc:subject:date:message-id
 :reply-to; bh=sCaSlL3HVSC7s/l9nwmdxyHZAV9CNt0duaIAR8Ae59g=;
 b=VXGF8egtYv003E0/th76+cjnSarPaJEA63F3Se1/lluOGSSHabIu2lIG2O39w//i5W
 qY2eY3lE8rPFu/XxR4nNSN+Jac3WvkB7J0tee07nAOZEw2NfsqUL2abZCpTfSMUuYL0D
 uTdnjSwpsxXQ/l+0Qm7faY4cODL5CUvuQ6Bfnfr934nQeYEn2WJupCixytPv/JG+njME
 Q9ia9CBt9j4u+TvLMYm81ElfcqDbGf0hm/ILcmnOAG4G2uS5uYdgaE9QtHW0+KWyrZOO
 kKhNlvSahnzWPHDQBjCG2ZJyrIbeAmuehxm84pt+iyQlS2vYZSvjB6Ed4Mty2yxLM6FK
 uLSQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20230601; t=1700773442; x=1701378242;
 h=in-reply-to:from:content-language:references:cc:to:subject
 :mime-version:date:message-id:x-gm-message-state:from:to:cc:subject
 :date:message-id:reply-to;
 bh=sCaSlL3HVSC7s/l9nwmdxyHZAV9CNt0duaIAR8Ae59g=;
 b=GqPP/bPHhB0NvQZvMM+gOPQH3ws4b7vzt0G/crfwFsYNDHKfPCqoAUgE/fA2fLEM6Z
 q3TQW/VEvEw9mHGM8qpWxmnQxUOJiJDUMPzGILqTcfDcVYtqBGBpDaSjdqfGuBTbJM11
 Od2YcREijOoHjWbWxAdj+VPZ4ZlShCrnNv2N0XNzdjsRaMnuxBxxpcwphk3h+0vDrIXg
 dv2QJU2RF/y0kkA4EyJ5XoKA3H73kgUTyzXpqgXZwuSKUjgCHoT5nAYvUnNG88D329WC
 tJ06vkVeulnWSu10NoxuVYPjD7GcsOAX46O4j0vrD4ANlJldSOv5se67E1R+n2jFLSUY
 GO2w==
X-Gm-Message-State: AOJu0YyhDg1fIgOnngK0fC5XV9Igf0pmbO7+8gpmKc5p6OQrBt9j19mN
 /6gEEoZxw2Ng87eAnK0xQPc=
X-Google-Smtp-Source: AGHT+IGZJAnoQCK5m/OuOhaConP3ohn34UdRRwaTsOvL9OuVGXdmMSqxf1uf55xjAWlNHR8mm/hv3Q==
X-Received: by 2002:a17:903:2596:b0:1cf:8a98:3ae with SMTP id
 jb22-20020a170903259600b001cf8a9803aemr483709plb.68.1700773441997; 
 Thu, 23 Nov 2023 13:04:01 -0800 (PST)
Original-Received: from [192.168.1.2] (cpe-76-168-148-233.socal.res.rr.com.
 [76.168.148.233]) by smtp.googlemail.com with ESMTPSA id
 t15-20020a1709027fcf00b001c898328289sm1817712plb.158.2023.11.23.13.04.00
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 23 Nov 2023 13:04:01 -0800 (PST)
Content-Language: en-US
In-Reply-To: <E1r5zuY-00041H-Bl@fencepost.gnu.org>
X-BeenThere: debbugs-submit@debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
X-BeenThere: bug-gnu-emacs@gnu.org
List-Id: "Bug reports for GNU Emacs,
 the Swiss army knife of text editors" <bug-gnu-emacs.gnu.org>
List-Unsubscribe: <https://lists.gnu.org/mailman/options/bug-gnu-emacs>,
 <mailto:bug-gnu-emacs-request@gnu.org?subject=unsubscribe>
List-Archive: <https://lists.gnu.org/archive/html/bug-gnu-emacs>
List-Post: <mailto:bug-gnu-emacs@gnu.org>
List-Help: <mailto:bug-gnu-emacs-request@gnu.org?subject=help>
List-Subscribe: <https://lists.gnu.org/mailman/listinfo/bug-gnu-emacs>,
 <mailto:bug-gnu-emacs-request@gnu.org?subject=subscribe>
Errors-To: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org
Original-Sender: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org
Xref: news.gmane.io gmane.emacs.bugs:274830
Archived-At: <http://permalink.gmane.org/gmane.emacs.bugs/274830>

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

On 11/22/2023 6:57 PM, Richard Stallman wrote:
> it could be good to add the following:
[snip]
> to show that `getx' accesses the current value of the global binding,
> not the value that the global binding had when getx was defined.

How about this? Instead of adding further examples, I made the existing 
ones just a bit more complex (I added another 'setq' after defining the 
function 'getx' to both examples). Then I explained specifically that in 
the lexical binding example, "... 'getx' sees the current global value 
of 'x'."

Hopefully this strikes the right balance between being explicit and 
detailed about what's happening without adding too many twists and turns 
to the section. I wanted to stick with just two blocks of code in this 
section so that a reader who was skimming (or just reading quickly) 
could easily pick them out to compare and contrast with each other. 
Additional code blocks made this harder to do when I tried it.
--------------kuo0BZ5UmJ4lqgUpf01c05tQ
Content-Type: text/plain; charset=UTF-8;
 name="0001-Introduce-let-using-lexical-binding-in-the-Lisp-Intr.patch"
Content-Disposition: attachment;
 filename*0="0001-Introduce-let-using-lexical-binding-in-the-Lisp-Intr.pa";
 filename*1="tch"
Content-Transfer-Encoding: base64

RnJvbSBmZGZhZTIxOWJlYzgyNTVlMTczZThlZjQ0OGYzYjQ5ZGU2ZmNjNzUzIE1vbiBTZXAg
MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBKaW0gUG9ydGVyIDxqcG9ydGVyYnVnc0BnbWFpbC5j
b20+CkRhdGU6IFdlZCwgMjUgT2N0IDIwMjMgMjA6NDM6NTcgLTA3MDAKU3ViamVjdDogW1BB
VENIXSBJbnRyb2R1Y2UgJ2xldCcgdXNpbmcgbGV4aWNhbCBiaW5kaW5nIGluIHRoZSBMaXNw
CiBJbnRyb2R1Y3Rpb24KCiogZG9jL2xpc3BpbnRyby9lbWFjcy1saXNwLWludHJvLnRleGkg
KFByZXZlbnQgY29uZnVzaW9uKTogUmV3b3JrIHRoZQpleHBsYW5hdGlvbiB0byBkaXNjdXNz
IGhvdyB0aGluZ3Mgd29yayB1bmRlciBsZXhpY2FsIGJpbmRpbmcuCihIb3cgbGV0IEJpbmRz
IFZhcmlhYmxlcyk6IERlc2NyaWJlIHRoZSBkaWZmZXJlbmNlcyBiZXR3ZWVuIGxleGljYWwK
YW5kIGR5bmFtaWMgYmluZGluZyAoaW5jbHVkaW5nIGhvdyB0byBjb25maWd1cmUgaXQpLgoo
ZGVmdmFyKTogTWVudGlvbiB0aGF0ICdkZWZ2YXInIGRlY2xhcmVzIHZhcmlhYmxlcyBhcyBh
bHdheXMKZHluYW1pY2FsbHktYm91bmQgKGJ1ZyM2Njc1NikuCi0tLQogZG9jL2xpc3BpbnRy
by9lbWFjcy1saXNwLWludHJvLnRleGkgfCAxNDIgKysrKysrKysrKysrKysrKysrKysrKyst
LS0tLQogMSBmaWxlIGNoYW5nZWQsIDExOSBpbnNlcnRpb25zKCspLCAyMyBkZWxldGlvbnMo
LSkKCmRpZmYgLS1naXQgYS9kb2MvbGlzcGludHJvL2VtYWNzLWxpc3AtaW50cm8udGV4aSBi
L2RvYy9saXNwaW50cm8vZW1hY3MtbGlzcC1pbnRyby50ZXhpCmluZGV4IGM1YjMzYWM1ZWFh
Li45MjI4N2E0MTEwYyAxMDA2NDQKLS0tIGEvZG9jL2xpc3BpbnRyby9lbWFjcy1saXNwLWlu
dHJvLnRleGkKKysrIGIvZG9jL2xpc3BpbnRyby9lbWFjcy1saXNwLWludHJvLnRleGkKQEAg
LTM1OTEsNiArMzU5MSw3IEBAIGxldAogKiBQYXJ0cyBvZiBsZXQgRXhwcmVzc2lvbjo6CiAq
IFNhbXBsZSBsZXQgRXhwcmVzc2lvbjo6CiAqIFVuaW5pdGlhbGl6ZWQgbGV0IFZhcmlhYmxl
czo6CisqIEhvdyBsZXQgQmluZHMgVmFyaWFibGVzOjoKIEBlbmQgbWVudQogCiBAaWZub3R0
ZXgKQEAgLTM2MDEsMjUgKzM2MDIsMjIgQEAgUHJldmVudCBjb25mdXNpb24KIEBjaW5kZXgg
QHNhbXB7bG9jYWwgdmFyaWFibGV9IGRlZmluZWQKIEBjaW5kZXggQHNhbXB7dmFyaWFibGUs
IGxvY2FsfSwgZGVmaW5lZAogVGhlIEBjb2Rle2xldH0gc3BlY2lhbCBmb3JtIHByZXZlbnRz
IGNvbmZ1c2lvbi4gIEBjb2Rle2xldH0gY3JlYXRlcyBhCi1uYW1lIGZvciBhIEBkZm57bG9j
YWwgdmFyaWFibGV9IHRoYXQgb3ZlcnNoYWRvd3MgYW55IHVzZSBvZiB0aGUgc2FtZQotbmFt
ZSBvdXRzaWRlIHRoZSBAY29kZXtsZXR9IGV4cHJlc3Npb24uICBUaGlzIGlzIGxpa2UgdW5k
ZXJzdGFuZGluZwotdGhhdCB3aGVuZXZlciB5b3VyIGhvc3QgcmVmZXJzIHRvIGBgdGhlIGhv
dXNlJycsIGhlIG1lYW5zIGhpcyBob3VzZSwgbm90Ci15b3Vycy4gIChTeW1ib2xzIHVzZWQg
aW4gYXJndW1lbnQgbGlzdHMgd29yayB0aGUgc2FtZSB3YXkuCituYW1lIGZvciBhIEBkZm57
bG9jYWwgdmFyaWFibGV9IHRoYXQgb3ZlcnJpZGVzIGFueSB1c2Ugb2YgdGhlIHNhbWUKK25h
bWUgb3V0c2lkZSB0aGUgQGNvZGV7bGV0fSBleHByZXNzaW9uIChpbiBjb21wdXRlciBzY2ll
bmNlIGphcmdvbiwgd2UKK2NhbGwgdGhpcyBgYGJpbmRpbmcnJyB0aGUgdmFyaWFibGUpLiAg
VGhpcyBpcyBsaWtlIHVuZGVyc3RhbmRpbmcgdGhhdAoraW4geW91ciBob3N0J3MgaG9tZSwg
d2hlbmV2ZXIgaGUgcmVmZXJzIHRvIGBgdGhlIGhvdXNlJycsIGhlIG1lYW5zIGhpcworaG91
c2UsIG5vdCB5b3Vycy4gIChTeW1ib2xzIHVzZWQgaW4gYXJndW1lbnQgbGlzdHMgd29yayB0
aGUgc2FtZSB3YXkuCiBAeHJlZntkZWZ1biwgLCBUaGUgQGNvZGV7ZGVmdW59IE1hY3JvfS4p
CiAKLUxvY2FsIHZhcmlhYmxlcyBjcmVhdGVkIGJ5IGEgQGNvZGV7bGV0fSBleHByZXNzaW9u
IHJldGFpbiB0aGVpciB2YWx1ZQotQGVtcGh7b25seX0gd2l0aGluIHRoZSBAY29kZXtsZXR9
IGV4cHJlc3Npb24gaXRzZWxmIChhbmQgd2l0aGluCi1leHByZXNzaW9ucyBjYWxsZWQgd2l0
aGluIHRoZSBAY29kZXtsZXR9IGV4cHJlc3Npb24pOyB0aGUgbG9jYWwKLXZhcmlhYmxlcyBo
YXZlIG5vIGVmZmVjdCBvdXRzaWRlIHRoZSBAY29kZXtsZXR9IGV4cHJlc3Npb24uCi0KLUFu
b3RoZXIgd2F5IHRvIHRoaW5rIGFib3V0IEBjb2Rle2xldH0gaXMgdGhhdCBpdCBpcyBsaWtl
IGEgQGNvZGV7c2V0cX0KLXRoYXQgaXMgdGVtcG9yYXJ5IGFuZCBsb2NhbC4gIFRoZSB2YWx1
ZXMgc2V0IGJ5IEBjb2Rle2xldH0gYXJlCi1hdXRvbWF0aWNhbGx5IHVuZG9uZSB3aGVuIHRo
ZSBAY29kZXtsZXR9IGlzIGZpbmlzaGVkLiAgVGhlIHNldHRpbmcKLW9ubHkgYWZmZWN0cyBl
eHByZXNzaW9ucyB0aGF0IGFyZSBpbnNpZGUgdGhlIGJvdW5kcyBvZiB0aGUgQGNvZGV7bGV0
fQotZXhwcmVzc2lvbi4gIEluIGNvbXB1dGVyIHNjaWVuY2UgamFyZ29uLCB3ZSB3b3VsZCBz
YXkgdGhlIGJpbmRpbmcgb2YKLWEgc3ltYm9sIGlzIHZpc2libGUgb25seSBpbiBmdW5jdGlv
bnMgY2FsbGVkIGluIHRoZSBAY29kZXtsZXR9IGZvcm07Ci1pbiBFbWFjcyBMaXNwLCB0aGUg
ZGVmYXVsdCBzY29waW5nIGlzIGR5bmFtaWMsIG5vdCBsZXhpY2FsLiAgKFRoZQotbm9uLWRl
ZmF1bHQgbGV4aWNhbCBiaW5kaW5nIGlzIG5vdCBkaXNjdXNzZWQgaW4gdGhpcyBtYW51YWwu
KQorQW5vdGhlciB3YXkgdG8gdGhpbmsgYWJvdXQgQGNvZGV7bGV0fSBpcyB0aGF0IGl0IGRl
ZmluZXMgYSBwbGFjZSBpbgoreW91ciBjb2RlIHdoZXJlIHRoZSB2YXJpYWJsZXMgeW91IG5h
bWVkIGhhdmUgdGhlaXIgb3duIGxvY2FsIG1lYW5pbmcuCitPdXRzaWRlIG9mIHRoZSBAY29k
ZXtsZXR9IGJvZHksIHRoZXkgaGF2ZSBhbm90aGVyIG1lYW5pbmcgKG9yIHRoZXkgbWF5Citu
b3QgYmUgZGVmaW5lZCBhdCBhbGwpLiAgVGhpcyBtZWFucyB0aGF0IGluc2lkZSB0aGUgQGNv
ZGV7bGV0fSBib2R5LAorY2FsbGluZyBAY29kZXtzZXRxfSBmb3IgYSB2YXJpYWJsZSBuYW1l
ZCBieSB0aGUgQGNvZGV7bGV0fSBleHByZXNzaW9uCit3aWxsIHNldCB0aGUgdmFsdWUgb2Yg
dGhlIEBlbXBoe2xvY2FsfSB2YXJpYWJsZSBvZiB0aGF0IG5hbWUuICBUaGlzCithbHNvIG1l
YW5zIHRoYXQgb3V0c2lkZSBvZiB0aGUgQGNvZGV7bGV0fSBib2R5LCBjYWxsaW5nIEBjb2Rl
e3NldHF9Citmb3IgYSB2YXJpYWJsZSBuYW1lZCBieSB0aGUgQGNvZGV7bGV0fSBleHByZXNz
aW9uIHdpbGwgQGVtcGh7bm90fQorYWZmZWN0IHRoYXQgbG9jYWwgdmFyaWFibGUuCiAKIEBj
b2Rle2xldH0gY2FuIGNyZWF0ZSBtb3JlIHRoYW4gb25lIHZhcmlhYmxlIGF0IG9uY2UuICBB
bHNvLAogQGNvZGV7bGV0fSBnaXZlcyBlYWNoIHZhcmlhYmxlIGl0IGNyZWF0ZXMgYW4gaW5p
dGlhbCB2YWx1ZSwgZWl0aGVyIGEKQEAgLTM3NzksNiArMzc3NywxMDIgQEAgVW5pbml0aWFs
aXplZCBsZXQgVmFyaWFibGVzCiBAc2FtcHslc30uKSAgVGhlIGZvdXIgdmFyaWFibGVzIGFz
IGEgZ3JvdXAgYXJlIHB1dCBpbnRvIGEgbGlzdCB0bwogZGVsaW1pdCB0aGVtIGZyb20gdGhl
IGJvZHkgb2YgdGhlIEBjb2Rle2xldH0uCiAKK0Bub2RlIEhvdyBsZXQgQmluZHMgVmFyaWFi
bGVzCitAc3Vic2VjdGlvbiBIb3cgQGNvZGV7bGV0fSBCaW5kcyBWYXJpYWJsZXMKK0BjaW5k
ZXggTGV4aWNhbCBiaW5kaW5nCitAY2luZGV4IEJpbmRpbmcsIGxleGljYWwKK0BjaW5kZXgg
RHluYW1pYyBiaW5kaW5nCitAY2luZGV4IEJpbmRpbmcsIGR5bmFtaWMKKworRW1hY3MgTGlz
cCBzdXBwb3J0cyB0d28gZGlmZmVyZW50IHdheXMgb2YgYmluZGluZyB2YXJpYWJsZSBuYW1l
cyB0bwordGhlaXIgdmFsdWVzLiAgVGhlc2Ugd2F5cyBhZmZlY3QgdGhlIHBhcnRzIG9mIHlv
dXIgcHJvZ3JhbSB3aGVyZSBhCitwYXJ0aWN1bGFyIGJpbmRpbmcgaXMgdmFsaWQgKGluIGNv
bXB1dGVyIHNjaWVuY2UgamFyZ29uLCB3ZSBjYWxsIHRoZXNlCitwYXJ0cyBhIGBgc2NvcGUn
JykuICBGb3IgaGlzdG9yaWNhbCByZWFzb25zLCBFbWFjcyBMaXNwIHVzZXMgYSBmb3JtIG9m
Cit2YXJpYWJsZSBiaW5kaW5nIGNhbGxlZCBgYGR5bmFtaWMgYmluZGluZycnIGJ5IGRlZmF1
bHQuICBIb3dldmVyLCBpbgordGhpcyBtYW51YWwgd2UgZGlzY3VzcyB0aGUgcHJlZmVycmVk
IGZvcm0gb2YgYmluZGluZywgY2FsbGVkIGBgbGV4aWNhbAorYmluZGluZycnLCB1bmxlc3Mg
b3RoZXJ3aXNlIG5vdGVkIChpbiB0aGUgZnV0dXJlLCB0aGUgRW1hY3MKK21haW50YWluZXJz
IHBsYW4gdG8gY2hhbmdlIHRoZSBkZWZhdWx0IHRvIGxleGljYWwgYmluZGluZykuICBJZiB5
b3UKK2hhdmUgcHJvZ3JhbW1lZCBpbiBvdGhlciBsYW5ndWFnZXMgYmVmb3JlLCB5b3UncmUg
bGlrZWx5IGFscmVhZHkKK2ZhbWlsaWFyIHdpdGggaG93IGxleGljYWwgYmluZGluZyBiZWhh
dmVzLgorCitJbiBvcmRlciB0byB1c2UgbGV4aWNhbCBiaW5kaW5nIGluIGEgcHJvZ3JhbSwg
eW91IHNob3VsZCBhZGQgdGhpcyB0bwordGhlIGZpcnN0IGxpbmUgb2YgeW91ciBFbWFjcyBM
aXNwIGZpbGU6CisKK0BleGFtcGxlCis7OzsgLSotIGxleGljYWwtYmluZGluZzogdCAtKi0K
K0BlbmQgZXhhbXBsZQorCitGb3IgbW9yZSBpbmZvcm1hdGlvbiBhYm91dCB0aGlzLCBAcHhy
ZWZ7U2VsZWN0aW5nIExpc3AgRGlhbGVjdCwgLCAsCitlbGlzcCwgVGhlIEVtYWNzIExpc3Ag
UmVmZXJlbmNlIE1hbnVhbH0uCisKK0FzIHdlIGRpc2N1c3NlZCBiZWZvcmUsIHVuZGVyIGxl
eGljYWwgYmluZGluZywgQGNvZGV7bGV0fSBkZWZpbmVzIGEKK0BlbXBoe3BsYWNlfSBpbiB5
b3VyIGNvZGUgd2hlcmUgdGhlIHZhcmlhYmxlcyBoYXZlIHRoZWlyIG93biBsb2NhbAorbWVh
bmluZy4gIFVuZGVyIGR5bmFtaWMgYmluZGluZywgdGhlIHJ1bGVzIGFyZSBkaWZmZXJlbnQ6
IGluc3RlYWQsIHlvdQorYXJlIGRlZmluaW5nIGEgQGVtcGh7dGltZX0gaW4geW91ciBjb2Rl
IHdoZW4gdGhlIHZhcmlhYmxlcyBoYXZlIHRoZWlyCitvd24gbG9jYWwgbWVhbmluZy4KKwor
QW5vdGhlciB3YXkgdG8gdGhpbmsgYWJvdXQgQGNvZGV7bGV0fSB3aGVuIHVzaW5nIGR5bmFt
aWMgYmluZGluZyBpcwordGhhdCBpdCBpcyBsaWtlIGEgQGNvZGV7c2V0cX0gdGhhdCBpcyB0
ZW1wb3JhcnkgYW5kIGxvY2FsLiAgVGhlIHZhbHVlcworc2V0IGJ5IEBjb2Rle2xldH0gYXJl
IGF1dG9tYXRpY2FsbHkgdW5kb25lIHdoZW4gdGhlIEBjb2Rle2xldH0gaXMKK2ZpbmlzaGVk
LiAgVGhlIHNldHRpbmcgb25seSBhZmZlY3RzIGV4cHJlc3Npb25zIHRoYXQgYXJlIGluc2lk
ZSB0aGUKK2JvdW5kcyBvZiB0aGUgQGNvZGV7bGV0fSBleHByZXNzaW9uLgorCitJbiBzb21l
IGNhc2VzLCBib3RoIGxleGljYWwgYW5kIGR5bmFtaWMgYmluZGluZyBiZWhhdmUgaWRlbnRp
Y2FsbHkuCitIb3dldmVyLCBpbiBvdGhlciBjYXNlcywgdGhleSBjYW4gY2hhbmdlIHRoZSBt
ZWFuaW5nIG9mIHlvdXIgcHJvZ3JhbS4KK0ZvciBleGFtcGxlLCB1bmRlciBsZXhpY2FsIGJp
bmRpbmcsIGlmIHlvdSBjYWxsIGEgZnVuY3Rpb24gaW5zaWRlIG9mIGEKK0Bjb2Rle2xldH0g
Ym9keSwgdGhhdCBmdW5jdGlvbidzIGJvZHkgd291bGQgYmUgdW5hYmxlIHRvIGBgc2VlJycg
KG9yCittb2RpZnkpIHRoZSB2YWx1ZSBvZiBhIGxvY2FsIHZhcmlhYmxlIGZyb20gdGhlIEBj
b2Rle2xldH0gZXhwcmVzc2lvbjoKKworQGV4YW1wbGUKKzs7OyAtKi0gbGV4aWNhbC1iaW5k
aW5nOiB0IC0qLQorCisoc2V0cSB4IDApCisKKyhkZWZ1biBnZXR4ICgpCisgIHgpCisKKyhz
ZXRxIHggMSkKKworKGxldCAoKHggMikpCisgIChnZXR4KSkKKyAgICAgQHJlc3VsdHt9IDEK
K0BlbmQgZXhhbXBsZQorCitAbm9pbmRlbnQKK0hlcmUsIHRoZSByZXN1bHQgb2YgQGNvZGV7
KGdldHgpfSBpcyBAY29kZXsxfS4gIFVuZGVyIGxleGljYWwgYmluZGluZywKK0Bjb2Rle2dl
dHh9IGRvZXNuJ3Qgc2VlIHRoZSB2YWx1ZSBmcm9tIG91ciBAY29kZXtsZXR9IGV4cHJlc3Np
b24uCitUaGF0J3MgYmVjYXVzZSBpdCBoYXBwZW5zIGluIGEgZGlmZmVyZW50IEBlbXBoe3Bs
YWNlfSB0aGFuIHRoZQorQGNvZGV7bGV0fSBib2R5LiAgSW5zdGVhZCwgQGNvZGV7Z2V0eH0g
c2VlcyB0aGUgY3VycmVudCBnbG9iYWwgdmFsdWUKK29mIEBjb2Rle3h9LgorCitJZiB3ZSB1
c2UgZHluYW1pYyBiaW5kaW5nIGluc3RlYWQsIHRoZSBiZWhhdmlvciBpcyBkaWZmZXJlbnQ6
CisKK0BleGFtcGxlCis7OzsgLSotIGxleGljYWwtYmluZGluZzogbmlsIC0qLQorCisoc2V0
cSB4IDApCisKKyhkZWZ1biBnZXR4ICgpCisgIHgpCisKKyhzZXRxIHggMSkKKworKGxldCAo
KHggMikpCisgIChnZXR4KSkKKyAgICAgQHJlc3VsdHt9IDIKK0BlbmQgZXhhbXBsZQorCitA
bm9pZGVudAorTm93LCB0aGUgcmVzdWx0IG9mIEBjb2RleyhnZXR4KX0gaXMgQGNvZGV7Mn0h
ICBUaGF0J3MgYmVjYXVzZSB1bmRlcgorZHluYW1pYyBiaW5kaW5nLCB3aGVuIEBjb2Rle2dl
dHh9IGxvb2tzIGZvciB0aGUgdmFsdWUgb2YgQGNvZGV7eH0sIGl0CitzZWVzIHRoZSB2YWx1
ZSB3ZSBzZXQgaW4gb3VyIEBjb2Rle2xldH0gZXhwcmVzc2lvbi4gIEluIG90aGVyIHdvcmRz
LAordGhlIGNhbGwgdG8gQGNvZGV7Z2V0eH0gaGFwcGVucyBkdXJpbmcgdGhlIEBlbXBoe3Rp
bWV9IHdoZW4gb3VyCitAY29kZXtsZXR9IGV4cHJlc3Npb24gaXMgYWN0aXZlLgorCisoU29t
ZSB2YXJpYWJsZXMgYXJlIGFsc28gYGBzcGVjaWFsJycsIGFuZCB0aGV5IGFyZSBhbHdheXMg
ZHluYW1pY2FsbHkKK2JvdW5kIGV2ZW4gd2hlbiBAY29kZXtsZXhpY2FsLWJpbmRpbmd9IGlz
IEBjb2Rle3R9LiAgQHhyZWZ7ZGVmdmFyLCAsCitJbml0aWFsaXppbmcgYSBWYXJpYWJsZSB3
aXRoIEBjb2Rle2RlZnZhcn19LikKKwogQG5vZGUgaWYKIEBzZWN0aW9uIFRoZSBAY29kZXtp
Zn0gU3BlY2lhbCBGb3JtCiBAZmluZGV4IGlmCkBAIC05MTMwLDEyICs5MjI0LDE0IEBAIGRl
ZnZhcgogZ2l2ZW4gYW4gaW5pdGlhbCB2YWx1ZSBieSB1c2luZyB0aGUgQGNvZGV7ZGVmdmFy
fSBzcGVjaWFsIGZvcm0uICBUaGUKIG5hbWUgY29tZXMgZnJvbSBgYGRlZmluZSB2YXJpYWJs
ZScnLgogCi1UaGUgQGNvZGV7ZGVmdmFyfSBzcGVjaWFsIGZvcm0gaXMgc2ltaWxhciB0byBA
Y29kZXtzZXRxfSBpbiB0aGF0IGl0IHNldHMKLXRoZSB2YWx1ZSBvZiBhIHZhcmlhYmxlLiAg
SXQgaXMgdW5saWtlIEBjb2Rle3NldHF9IGluIHR3byB3YXlzOiBmaXJzdCwKLWl0IG9ubHkg
c2V0cyB0aGUgdmFsdWUgb2YgdGhlIHZhcmlhYmxlIGlmIHRoZSB2YXJpYWJsZSBkb2VzIG5v
dCBhbHJlYWR5Ci1oYXZlIGEgdmFsdWUuICBJZiB0aGUgdmFyaWFibGUgYWxyZWFkeSBoYXMg
YSB2YWx1ZSwgQGNvZGV7ZGVmdmFyfSBkb2VzCi1ub3Qgb3ZlcnJpZGUgdGhlIGV4aXN0aW5n
IHZhbHVlLiAgU2Vjb25kLCBAY29kZXtkZWZ2YXJ9IGhhcyBhCi1kb2N1bWVudGF0aW9uIHN0
cmluZy4KK1RoZSBAY29kZXtkZWZ2YXJ9IHNwZWNpYWwgZm9ybSBpcyBzaW1pbGFyIHRvIEBj
b2Rle3NldHF9IGluIHRoYXQgaXQKK3NldHMgdGhlIHZhbHVlIG9mIGEgdmFyaWFibGUuICBJ
dCBpcyB1bmxpa2UgQGNvZGV7c2V0cX0gaW4gdGhyZWUgd2F5czoKK2ZpcnN0LCBpdCBvbmx5
IHNldHMgdGhlIHZhbHVlIG9mIHRoZSB2YXJpYWJsZSBpZiB0aGUgdmFyaWFibGUgZG9lcyBu
b3QKK2FscmVhZHkgaGF2ZSBhIHZhbHVlLiAgSWYgdGhlIHZhcmlhYmxlIGFscmVhZHkgaGFz
IGEgdmFsdWUsCitAY29kZXtkZWZ2YXJ9IGRvZXMgbm90IG92ZXJyaWRlIHRoZSBleGlzdGlu
ZyB2YWx1ZS4gIFNlY29uZCwgaXQgbWFya3MKK3RoZSB2YXJpYWJsZSBhcyBgYHNwZWNpYWwn
JyBzbyB0aGF0IGl0IGlzIGFsd2F5cyBkeW5hbWljYWxseSBib3VuZCwKK2V2ZW4gd2hlbiBA
Y29kZXtsZXhpY2FsLWJpbmRpbmd9IGlzIEBjb2Rle3R9IChAcHhyZWZ7SG93IGxldCBCaW5k
cworVmFyaWFibGVzfSkuICBUaGlyZCwgQGNvZGV7ZGVmdmFyfSBoYXMgYSBkb2N1bWVudGF0
aW9uIHN0cmluZy4KIAogKFRoZXJlIGlzIGEgcmVsYXRlZCBtYWNybywgQGNvZGV7ZGVmY3Vz
dG9tfSwgZGVzaWduZWQgZm9yIHZhcmlhYmxlcwogdGhhdCBwZW9wbGUgY3VzdG9taXplLiAg
SXQgaGFzIG1vcmUgZmVhdHVyZXMgdGhhbiBAY29kZXtkZWZ2YXJ9LgotLSAKMi4yNS4xCgo=


--------------kuo0BZ5UmJ4lqgUpf01c05tQ--