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: Sat, 18 Nov 2023 21:25:42 -0800
Message-ID: <381836df-c16f-b3e7-d0c4-473290e165de@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>
Mime-Version: 1.0
Content-Type: multipart/mixed; boundary="------------XQdsTGiwCBg1kuAdtZ080FQu"
Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214";
	logging-data="6320"; 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 Sun Nov 19 06:26:26 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 1r4aKA-0001Sm-CP
	for geb-bug-gnu-emacs@m.gmane-mx.org; Sun, 19 Nov 2023 06:26:26 +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 1r4aJn-0006fr-EH; Sun, 19 Nov 2023 00:26:03 -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 1r4aJl-0006fY-9B
 for bug-gnu-emacs@gnu.org; Sun, 19 Nov 2023 00:26:01 -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 1r4aJk-0006Ya-VX
 for bug-gnu-emacs@gnu.org; Sun, 19 Nov 2023 00:26:01 -0500
Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2)
 (envelope-from <Debian-debbugs@debbugs.gnu.org>) id 1r4aJl-0000py-Ov
 for bug-gnu-emacs@gnu.org; Sun, 19 Nov 2023 00:26:01 -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: Sun, 19 Nov 2023 05:26:01 +0000
Resent-Message-ID: <handler.66756.B66756.17003715573207@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.17003715573207
 (code B ref 66756); Sun, 19 Nov 2023 05:26:01 +0000
Original-Received: (at 66756) by debbugs.gnu.org; 19 Nov 2023 05:25:57 +0000
Original-Received: from localhost ([127.0.0.1]:49752 helo=debbugs.gnu.org)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <debbugs-submit-bounces@debbugs.gnu.org>)
 id 1r4aJg-0000pe-RM
 for submit@debbugs.gnu.org; Sun, 19 Nov 2023 00:25:57 -0500
Original-Received: from mail-oo1-xc2d.google.com ([2607:f8b0:4864:20::c2d]:57609)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <jporterbugs@gmail.com>) id 1r4aJa-0000pJ-7V
 for 66756@debbugs.gnu.org; Sun, 19 Nov 2023 00:25:55 -0500
Original-Received: by mail-oo1-xc2d.google.com with SMTP id
 006d021491bc7-58786e23d38so2100021eaf.3
 for <66756@debbugs.gnu.org>; Sat, 18 Nov 2023 21:25:48 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=gmail.com; s=20230601; t=1700371543; x=1700976343; darn=debbugs.gnu.org;
 h=in-reply-to:from:references:cc:to:content-language:subject
 :mime-version:date:message-id:from:to:cc:subject:date:message-id
 :reply-to; bh=DJHwToCv8+OIkkeHFm5DIUnjG/WHnnYnaRsXwmURpjE=;
 b=WFeBiMtUDGughp/nSv+qkHXS1gAGSEgMG7dqBvW3cm6BPx2UTFbiAnsdrmYaa4dMt8
 HwYabYcckMnTpSHn+KLlaB2LCa5rFinMViJR5WODjg9RCqizGJpkbH2lPfjIdKYNfZXt
 hiUx3mjhlwYCUYgxfmxB7aMw6vKJZdGemVp24l+CWRLfZf6jiVtSRO+F8xKyXC6MDiyd
 IzTL0FiWv93PthT9R+YPAQaHCpA4981ySxFc+b9KJ/BI3AGCIMGxiZ2ikQJYNFyIP9/N
 XvpuOUcW7DMTPaH65XQ+5MW1zF1rMtMtclpaJ2NDBH9cdP3RwpGy6BGUHd6pQPTkeQ83
 U46g==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20230601; t=1700371543; x=1700976343;
 h=in-reply-to:from:references:cc:to:content-language:subject
 :mime-version:date:message-id:x-gm-message-state:from:to:cc:subject
 :date:message-id:reply-to;
 bh=DJHwToCv8+OIkkeHFm5DIUnjG/WHnnYnaRsXwmURpjE=;
 b=ZlbhaRuS+08LMVwMtNkJvMpf+dDAGd8KwBhsjm68AtWLrW7aeZAS/C6FWNx5rgOmEL
 G14O2gaS8N96BAjO/1trztXisRuMfm0k4GfJ4TIphSXzJkuoV3HVxMISRj64IWil5efv
 aJnVSuHEUgWfQUI3DbRWFb55FK3uHTMMdkGMZ92n1ZSGnyRTZVl6GHseXk0EDkdl61Rk
 7mlKu6rh0802tTqRA+xX79aYXsrA5il30K3GY7pWiYDGKGB2TWsqtUGpunkRq6ZBI+Av
 uq/eon30tiSF1ddSsXlTef6X+eNgdu97ATob43O4eaGkpOEWESKnVIfx5ZkMEk4PWfeH
 m4ww==
X-Gm-Message-State: AOJu0Yw7lh4BWzcVisSml83VLvKcQS9QiFna4RAGdlwYGP3TK0Ngm6EP
 OYpJrj0Gh9ZTD6LueOta328=
X-Google-Smtp-Source: AGHT+IEHUEXPFbyqQXbvQ+YFObbwCR0F0MGh67A70C7qDih21MCTOKnM88tkac3up8p+on6l+FnBFg==
X-Received: by 2002:a05:6358:709:b0:168:e7ab:6877 with SMTP id
 e9-20020a056358070900b00168e7ab6877mr4540099rwj.6.1700371543049; 
 Sat, 18 Nov 2023 21:25:43 -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
 p18-20020a63fe12000000b0058988954686sm3783753pgh.90.2023.11.18.21.25.42
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Sat, 18 Nov 2023 21:25:42 -0800 (PST)
Content-Language: en-US
In-Reply-To: <E1r4YeF-0001fe-Ex@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:274583
Archived-At: <http://permalink.gmane.org/gmane.emacs.bugs/274583>

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

On 11/18/2023 7:39 PM, Richard Stallman wrote:
>    > +parts a ``scope'').  For historical reasons, Emacs Lisp uses a form of
>    > +variable binding called ``dynamic binding'' by default.  However, in
>    > +this manual, we discuss the preferred form of binding, called
>    > +``lexical binding'' (if you have programmed in other languages before,
>    > +you're likely already familiar with how lexical binding behaves).  In
>    > +order to use lexical binding in a program, you should add this to the
>    > +first line of your Emacs Lisp file:
>    > +
>    > +@example
>    > +;;; -*- lexical-binding: t -*-
>    > +@end example
>    > +
>    > +For more information about this, @pxref{Selecting Lisp Dialect, , ,
>    > +elisp, The Emacs Lisp Reference Manual}.
> 
> Do we want to change the default some day to lexical binding:?  If so,
> we should say so somewhere in this manual -- perhaps here, perhaps
> elsewhere,

I believe that's the goal, yes. I've added a note that the maintainers 
eventually plan on making lexical binding the default.

>    > +If we instead change @code{lexical-binding} to have a value of
>    > +@code{nil}, we will get a different result here.
> 
> "Get a different result" is vague -- it would be clearer if it said
> concretely what will happen.
> 
> I suggest you show the dynamci situation in the same way you show the lexical
> situation.  That will help people compare the two.

Done. I've also expanded the prose explanation at the end in order to 
re-emphasize the differences between the two.
--------------XQdsTGiwCBg1kuAdtZ080FQu
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

RnJvbSBmODA1ZWJmNjVkYzIxOGM3YWU2MzI1MWEzNTdhNGRlYWFmNDVkNzUyIE1vbiBTZXAg
MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBKaW0gUG9ydGVyIDxqcG9ydGVyYnVnc0BnbWFpbC5j
b20+CkRhdGU6IFdlZCwgMjUgT2N0IDIwMjMgMjA6NDM6NTcgLTA3MDAKU3ViamVjdDogW1BB
VENIXSBJbnRyb2R1Y2UgJ2xldCcgdXNpbmcgbGV4aWNhbCBiaW5kaW5nIGluIHRoZSBMaXNw
CiBJbnRyb2R1Y3Rpb24KCkJ1ZyM2Njc1Ni4KCiogZG9jL2xpc3BpbnRyby9lbWFjcy1saXNw
LWludHJvLnRleGkgKFByZXZlbnQgY29uZnVzaW9uKTogUmV3b3JrIHRoZQpleHBsYW5hdGlv
biB0byBkaXNjdXNzIGhvdyB0aGluZ3Mgd29yayB1bmRlciBsZXhpY2FsIGJpbmRpbmcuCihI
b3cgbGV0IEJpbmRzIFZhcmlhYmxlcyk6IERlc2NyaWJlIHRoZSBkaWZmZXJlbmNlcyBiZXR3
ZWVuIGxleGljYWwKYW5kIGR5bmFtaWMgYmluZGluZyAoaW5jbHVkaW5nIGhvdyB0byBjb25m
aWd1cmUgaXQpLgotLS0KIGRvYy9saXNwaW50cm8vZW1hY3MtbGlzcC1pbnRyby50ZXhpIHwg
MTE1ICsrKysrKysrKysrKysrKysrKysrKysrKy0tLS0KIDEgZmlsZSBjaGFuZ2VkLCA5OCBp
bnNlcnRpb25zKCspLCAxNyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kb2MvbGlzcGlu
dHJvL2VtYWNzLWxpc3AtaW50cm8udGV4aSBiL2RvYy9saXNwaW50cm8vZW1hY3MtbGlzcC1p
bnRyby50ZXhpCmluZGV4IGM1YjMzYWM1ZWFhLi41NTRiYTRhNzU2MCAxMDA2NDQKLS0tIGEv
ZG9jL2xpc3BpbnRyby9lbWFjcy1saXNwLWludHJvLnRleGkKKysrIGIvZG9jL2xpc3BpbnRy
by9lbWFjcy1saXNwLWludHJvLnRleGkKQEAgLTM1OTEsNiArMzU5MSw3IEBAIGxldAogKiBQ
YXJ0cyBvZiBsZXQgRXhwcmVzc2lvbjo6CiAqIFNhbXBsZSBsZXQgRXhwcmVzc2lvbjo6CiAq
IFVuaW5pdGlhbGl6ZWQgbGV0IFZhcmlhYmxlczo6CisqIEhvdyBsZXQgQmluZHMgVmFyaWFi
bGVzOjoKIEBlbmQgbWVudQogCiBAaWZub3R0ZXgKQEAgLTM2MDEsMjUgKzM2MDIsMjIgQEAg
UHJldmVudCBjb25mdXNpb24KIEBjaW5kZXggQHNhbXB7bG9jYWwgdmFyaWFibGV9IGRlZmlu
ZWQKIEBjaW5kZXggQHNhbXB7dmFyaWFibGUsIGxvY2FsfSwgZGVmaW5lZAogVGhlIEBjb2Rl
e2xldH0gc3BlY2lhbCBmb3JtIHByZXZlbnRzIGNvbmZ1c2lvbi4gIEBjb2Rle2xldH0gY3Jl
YXRlcyBhCi1uYW1lIGZvciBhIEBkZm57bG9jYWwgdmFyaWFibGV9IHRoYXQgb3ZlcnNoYWRv
d3MgYW55IHVzZSBvZiB0aGUgc2FtZQotbmFtZSBvdXRzaWRlIHRoZSBAY29kZXtsZXR9IGV4
cHJlc3Npb24uICBUaGlzIGlzIGxpa2UgdW5kZXJzdGFuZGluZwotdGhhdCB3aGVuZXZlciB5
b3VyIGhvc3QgcmVmZXJzIHRvIGBgdGhlIGhvdXNlJycsIGhlIG1lYW5zIGhpcyBob3VzZSwg
bm90Ci15b3Vycy4gIChTeW1ib2xzIHVzZWQgaW4gYXJndW1lbnQgbGlzdHMgd29yayB0aGUg
c2FtZSB3YXkuCituYW1lIGZvciBhIEBkZm57bG9jYWwgdmFyaWFibGV9IHRoYXQgb3ZlcnJp
ZGVzIGFueSB1c2Ugb2YgdGhlIHNhbWUKK25hbWUgb3V0c2lkZSB0aGUgQGNvZGV7bGV0fSBl
eHByZXNzaW9uIChpbiBjb21wdXRlciBzY2llbmNlIGphcmdvbiwgd2UKK2NhbGwgdGhpcyBg
YGJpbmRpbmcnJyB0aGUgdmFyaWFibGUpLiAgVGhpcyBpcyBsaWtlIHVuZGVyc3RhbmRpbmcg
dGhhdAoraW4geW91ciBob3N0J3MgaG9tZSwgd2hlbmV2ZXIgaGUgcmVmZXJzIHRvIGBgdGhl
IGhvdXNlJycsIGhlIG1lYW5zIGhpcworaG91c2UsIG5vdCB5b3Vycy4gIChTeW1ib2xzIHVz
ZWQgaW4gYXJndW1lbnQgbGlzdHMgd29yayB0aGUgc2FtZSB3YXkuCiBAeHJlZntkZWZ1biwg
LCBUaGUgQGNvZGV7ZGVmdW59IE1hY3JvfS4pCiAKLUxvY2FsIHZhcmlhYmxlcyBjcmVhdGVk
IGJ5IGEgQGNvZGV7bGV0fSBleHByZXNzaW9uIHJldGFpbiB0aGVpciB2YWx1ZQotQGVtcGh7
b25seX0gd2l0aGluIHRoZSBAY29kZXtsZXR9IGV4cHJlc3Npb24gaXRzZWxmIChhbmQgd2l0
aGluCi1leHByZXNzaW9ucyBjYWxsZWQgd2l0aGluIHRoZSBAY29kZXtsZXR9IGV4cHJlc3Np
b24pOyB0aGUgbG9jYWwKLXZhcmlhYmxlcyBoYXZlIG5vIGVmZmVjdCBvdXRzaWRlIHRoZSBA
Y29kZXtsZXR9IGV4cHJlc3Npb24uCi0KLUFub3RoZXIgd2F5IHRvIHRoaW5rIGFib3V0IEBj
b2Rle2xldH0gaXMgdGhhdCBpdCBpcyBsaWtlIGEgQGNvZGV7c2V0cX0KLXRoYXQgaXMgdGVt
cG9yYXJ5IGFuZCBsb2NhbC4gIFRoZSB2YWx1ZXMgc2V0IGJ5IEBjb2Rle2xldH0gYXJlCi1h
dXRvbWF0aWNhbGx5IHVuZG9uZSB3aGVuIHRoZSBAY29kZXtsZXR9IGlzIGZpbmlzaGVkLiAg
VGhlIHNldHRpbmcKLW9ubHkgYWZmZWN0cyBleHByZXNzaW9ucyB0aGF0IGFyZSBpbnNpZGUg
dGhlIGJvdW5kcyBvZiB0aGUgQGNvZGV7bGV0fQotZXhwcmVzc2lvbi4gIEluIGNvbXB1dGVy
IHNjaWVuY2UgamFyZ29uLCB3ZSB3b3VsZCBzYXkgdGhlIGJpbmRpbmcgb2YKLWEgc3ltYm9s
IGlzIHZpc2libGUgb25seSBpbiBmdW5jdGlvbnMgY2FsbGVkIGluIHRoZSBAY29kZXtsZXR9
IGZvcm07Ci1pbiBFbWFjcyBMaXNwLCB0aGUgZGVmYXVsdCBzY29waW5nIGlzIGR5bmFtaWMs
IG5vdCBsZXhpY2FsLiAgKFRoZQotbm9uLWRlZmF1bHQgbGV4aWNhbCBiaW5kaW5nIGlzIG5v
dCBkaXNjdXNzZWQgaW4gdGhpcyBtYW51YWwuKQorQW5vdGhlciB3YXkgdG8gdGhpbmsgYWJv
dXQgQGNvZGV7bGV0fSBpcyB0aGF0IGl0IGRlZmluZXMgYSBwbGFjZSBpbgoreW91ciBjb2Rl
IHdoZXJlIHRoZSB2YXJpYWJsZXMgeW91IG5hbWVkIGhhdmUgdGhlaXIgb3duIGxvY2FsIG1l
YW5pbmcuCitPdXRzaWRlIG9mIHRoZSBAY29kZXtsZXR9IGJvZHksIHRoZXkgaGF2ZSBhbm90
aGVyIG1lYW5pbmcgKG9yIHRoZXkgbWF5Citub3QgYmUgZGVmaW5lZCBhdCBhbGwpLiAgVGhp
cyBtZWFucyB0aGF0IGluc2lkZSB0aGUgQGNvZGV7bGV0fSBib2R5LAorY2FsbGluZyBAY29k
ZXtzZXRxfSBmb3IgYSB2YXJpYWJsZSBuYW1lZCBieSB0aGUgQGNvZGV7bGV0fSBleHByZXNz
aW9uCit3aWxsIHNldCB0aGUgdmFsdWUgb2YgdGhlIEBlbXBoe2xvY2FsfSB2YXJpYWJsZSBv
ZiB0aGF0IG5hbWUuICBUaGlzCithbHNvIG1lYW5zIHRoYXQgb3V0c2lkZSBvZiB0aGUgQGNv
ZGV7bGV0fSBib2R5LCBjYWxsaW5nIEBjb2Rle3NldHF9Citmb3IgYSB2YXJpYWJsZSBuYW1l
ZCBieSB0aGUgQGNvZGV7bGV0fSBleHByZXNzaW9uIHdpbGwgQGVtcGh7bm90fQorYWZmZWN0
IHRoYXQgbG9jYWwgdmFyaWFibGUuCiAKIEBjb2Rle2xldH0gY2FuIGNyZWF0ZSBtb3JlIHRo
YW4gb25lIHZhcmlhYmxlIGF0IG9uY2UuICBBbHNvLAogQGNvZGV7bGV0fSBnaXZlcyBlYWNo
IHZhcmlhYmxlIGl0IGNyZWF0ZXMgYW4gaW5pdGlhbCB2YWx1ZSwgZWl0aGVyIGEKQEAgLTM3
NzksNiArMzc3Nyw4OSBAQCBVbmluaXRpYWxpemVkIGxldCBWYXJpYWJsZXMKIEBzYW1weyVz
fS4pICBUaGUgZm91ciB2YXJpYWJsZXMgYXMgYSBncm91cCBhcmUgcHV0IGludG8gYSBsaXN0
IHRvCiBkZWxpbWl0IHRoZW0gZnJvbSB0aGUgYm9keSBvZiB0aGUgQGNvZGV7bGV0fS4KIAor
QG5vZGUgSG93IGxldCBCaW5kcyBWYXJpYWJsZXMKK0BzdWJzZWN0aW9uIEhvdyBAY29kZXts
ZXR9IEJpbmRzIFZhcmlhYmxlcworQGNpbmRleCBMZXhpY2FsIGJpbmRpbmcKK0BjaW5kZXgg
QmluZGluZywgbGV4aWNhbAorQGNpbmRleCBEeW5hbWljIGJpbmRpbmcKK0BjaW5kZXggQmlu
ZGluZywgZHluYW1pYworCitFbWFjcyBMaXNwIHN1cHBvcnRzIHR3byBkaWZmZXJlbnQgd2F5
cyBvZiBiaW5kaW5nIHZhcmlhYmxlIG5hbWVzIHRvCit0aGVpciB2YWx1ZXMuICBUaGVzZSB3
YXlzIGFmZmVjdCB0aGUgcGFydHMgb2YgeW91ciBwcm9ncmFtIHdoZXJlIGEKK3BhcnRpY3Vs
YXIgYmluZGluZyBpcyB2YWxpZCAoaW4gY29tcHV0ZXIgc2NpZW5jZSBqYXJnb24sIHdlIGNh
bGwgdGhlc2UKK3BhcnRzIGEgYGBzY29wZScnKS4gIEZvciBoaXN0b3JpY2FsIHJlYXNvbnMs
IEVtYWNzIExpc3AgdXNlcyBhIGZvcm0gb2YKK3ZhcmlhYmxlIGJpbmRpbmcgY2FsbGVkIGBg
ZHluYW1pYyBiaW5kaW5nJycgYnkgZGVmYXVsdC4gIEhvd2V2ZXIsIGluCit0aGlzIG1hbnVh
bCwgd2UgcHJpbWFyaWx5IGRpc2N1c3MgdGhlIHByZWZlcnJlZCBmb3JtIG9mIGJpbmRpbmcs
CitjYWxsZWQgYGBsZXhpY2FsIGJpbmRpbmcnJyB1bmxlc3Mgb3RoZXJ3aXNlIG5vdGVkIChp
biB0aGUgZnV0dXJlLCB0aGUKK0VtYWNzIG1haW50YWluZXJzIHBsYW4gdG8gY2hhbmdlIHRo
ZSBkZWZhdWx0IHRvIGxleGljYWwgYmluZGluZykuICBJZgoreW91IGhhdmUgcHJvZ3JhbW1l
ZCBpbiBvdGhlciBsYW5ndWFnZXMgYmVmb3JlLCB5b3UncmUgbGlrZWx5IGFscmVhZHkKK2Zh
bWlsaWFyIHdpdGggaG93IGxleGljYWwgYmluZGluZyBiZWhhdmVzLgorCitJbiBvcmRlciB0
byB1c2UgbGV4aWNhbCBiaW5kaW5nIGluIGEgcHJvZ3JhbSwgeW91IHNob3VsZCBhZGQgdGhp
cyB0bwordGhlIGZpcnN0IGxpbmUgb2YgeW91ciBFbWFjcyBMaXNwIGZpbGU6CisKK0BleGFt
cGxlCis7OzsgLSotIGxleGljYWwtYmluZGluZzogdCAtKi0KK0BlbmQgZXhhbXBsZQorCitG
b3IgbW9yZSBpbmZvcm1hdGlvbiBhYm91dCB0aGlzLCBAcHhyZWZ7U2VsZWN0aW5nIExpc3Ag
RGlhbGVjdCwgLCAsCitlbGlzcCwgVGhlIEVtYWNzIExpc3AgUmVmZXJlbmNlIE1hbnVhbH0u
CisKK0FzIHdlIGRpc2N1c3NlZCBiZWZvcmUsIHVuZGVyIGxleGljYWwgYmluZGluZywgQGNv
ZGV7bGV0fSBkZWZpbmVzIGEKK0BlbXBoe3BsYWNlfSBpbiB5b3VyIGNvZGUgd2hlcmUgdGhl
IHZhcmlhYmxlcyBoYXZlIHRoZWlyIG93biBsb2NhbAorbWVhbmluZy4gIFVuZGVyIGR5bmFt
aWMgYmluZGluZywgdGhlIHJ1bGVzIGFyZSBkaWZmZXJlbnQ6IGluc3RlYWQsIHlvdQorYXJl
IGRlZmluaW5nIGEgQGVtcGh7dGltZX0gaW4geW91ciBjb2RlIHdoZW4gdGhlIHZhcmlhYmxl
cyBoYXZlIHRoZWlyCitvd24gbG9jYWwgbWVhbmluZy4KKworQW5vdGhlciB3YXkgdG8gdGhp
bmsgYWJvdXQgQGNvZGV7bGV0fSB3aGVuIHVzaW5nIGR5bmFtaWMgYmluZGluZyBpcwordGhh
dCBpdCBpcyBsaWtlIGEgQGNvZGV7c2V0cX0gdGhhdCBpcyB0ZW1wb3JhcnkgYW5kIGxvY2Fs
LiAgVGhlIHZhbHVlcworc2V0IGJ5IEBjb2Rle2xldH0gYXJlIGF1dG9tYXRpY2FsbHkgdW5k
b25lIHdoZW4gdGhlIEBjb2Rle2xldH0gaXMKK2ZpbmlzaGVkLiAgVGhlIHNldHRpbmcgb25s
eSBhZmZlY3RzIGV4cHJlc3Npb25zIHRoYXQgYXJlIGluc2lkZSB0aGUKK2JvdW5kcyBvZiB0
aGUgQGNvZGV7bGV0fSBleHByZXNzaW9uLgorCitJbiBzb21lIGNhc2VzLCBib3RoIGxleGlj
YWwgYW5kIGR5bmFtaWMgYmluZGluZyBiZWhhdmUgaWRlbnRpY2FsbHkuCitIb3dldmVyLCBp
biBvdGhlciBjYXNlcywgdGhleSBjYW4gY2hhbmdlIHRoZSBtZWFuaW5nIG9mIHlvdXIgcHJv
Z3JhbS4KK0ZvciBleGFtcGxlLCB1bmRlciBsZXhpY2FsIGJpbmRpbmcsIGlmIHlvdSBjYWxs
IGEgZnVuY3Rpb24gaW5zaWRlIG9mIGEKK0Bjb2Rle2xldH0gYm9keSwgdGhhdCBmdW5jdGlv
bidzIGJvZHkgd291bGQgYmUgdW5hYmxlIHRvIGBgc2VlJycgKG9yCittb2RpZnkpIHRoZSB2
YWx1ZSBvZiBhIGxvY2FsIHZhcmlhYmxlIGZyb20gdGhlIEBjb2Rle2xldH0gZXhwcmVzc2lv
bjoKKworQGV4YW1wbGUKKzs7OyAtKi0gbGV4aWNhbC1iaW5kaW5nOiB0IC0qLQorCisoc2V0
cSB4IDEpCisKKyhkZWZ1biBnZXR4ICgpCisgIHgpCisKKyhsZXQgKCh4IDIpKQorICAoZ2V0
eCkpCisgICAgIEByZXN1bHR7fSAxCitAZW5kIGV4YW1wbGUKKworQG5vaW5kZW50CitJZiB3
ZSB1c2UgZHluYW1pYyBiaW5kaW5nIGluc3RlYWQsIHRoZSBiZWhhdmlvciBpcyBkaWZmZXJl
bnQ6CisKK0BleGFtcGxlCis7OzsgLSotIGxleGljYWwtYmluZGluZzogbmlsIC0qLQorCiso
c2V0cSB4IDEpCisKKyhkZWZ1biBnZXR4ICgpCisgIHgpCisKKyhsZXQgKCh4IDIpKQorICAo
Z2V0eCkpCisgICAgIEByZXN1bHR7fSAyCitAZW5kIGV4YW1wbGUKKworTm93LCB0aGUgcmVz
dWx0IG9mIEBzYW1weyhnZXR4KX0gaXMgQHNhbXB7Mn0hICBUaGF0J3MgYmVjYXVzZSB1bmRl
cgorZHluYW1pYyBiaW5kaW5nLCB3aGVuIEBjb2Rle2dldHh9IGxvb2tzIGZvciB0aGUgdmFs
dWUgb2YgQGNvZGV7eH0sIGl0CitzZWVzIHRoZSB2YWx1ZSB3ZSBzZXQgaW4gb3VyIEBjb2Rl
e2xldH0gZXhwcmVzc2lvbi4gIEluIG90aGVyIHdvcmRzLAordGhlIGNhbGwgdG8gQGNvZGV7
Z2V0eH0gaGFwcGVucyBkdXJpbmcgdGhlIEBlbXBoe3RpbWV9IHdoZW4gb3VyCitAY29kZXts
ZXR9IGV4cHJlc3Npb24gaXMgYWN0aXZlLiAgVW5kZXIgbGV4aWNhbCBiaW5kaW5nLCBAY29k
ZXtnZXR4fQorZG9lc24ndCBzZWUgdGhlIHZhbHVlIGZyb20gb3VyIEBjb2Rle2xldH0gZXhw
cmVzc2lvbi4gIFRoYXQncyBiZWNhdXNlCitpdCBoYXBwZW5zIGluIGEgZGlmZmVyZW50IEBl
bXBoe3BsYWNlfSB0aGFuIHRoZSBAY29kZXtsZXR9IGJvZHkuCisKIEBub2RlIGlmCiBAc2Vj
dGlvbiBUaGUgQGNvZGV7aWZ9IFNwZWNpYWwgRm9ybQogQGZpbmRleCBpZgotLSAKMi4yNS4x
Cgo=

--------------XQdsTGiwCBg1kuAdtZ080FQu--