From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: =?UTF-8?Q?Linus_Bj=C3=B6rnstam?= Newsgroups: gmane.lisp.guile.devel Subject: Add internal definitions to derived forms Date: Wed, 09 Nov 2022 16:32:29 +0100 Message-ID: <2f38c5ea-0cb6-494e-b680-70b39c3291fb@app.fastmail.com> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary=2604252a6fad4866a6de77c0893fad53 Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="6191"; mail-complaints-to="usenet@ciao.gmane.io" User-Agent: Cyrus-JMAP/3.7.0-alpha0-1115-g8b801eadce-fm-20221102.001-g8b801ead To: guile-devel@gnu.org Original-X-From: guile-devel-bounces+guile-devel=m.gmane-mx.org@gnu.org Wed Nov 09 16:33:34 2022 Return-path: Envelope-to: guile-devel@m.gmane-mx.org Original-Received: from lists.gnu.org ([209.51.188.17]) by ciao.gmane.io with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1osn52-0001KU-Kn for guile-devel@m.gmane-mx.org; Wed, 09 Nov 2022 16:33:34 +0100 Original-Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1osn4r-0007wm-DG; Wed, 09 Nov 2022 10:33:21 -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 ) id 1osn4T-00077s-OS for guile-devel@gnu.org; Wed, 09 Nov 2022 10:33:01 -0500 Original-Received: from out2-smtp.messagingengine.com ([66.111.4.26]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1osn4R-0001j5-LT for guile-devel@gnu.org; Wed, 09 Nov 2022 10:32:57 -0500 Original-Received: from compute4.internal (compute4.nyi.internal [10.202.2.44]) by mailout.nyi.internal (Postfix) with ESMTP id 534C45C0085 for ; Wed, 9 Nov 2022 10:32:50 -0500 (EST) Original-Received: from imap51 ([10.202.2.101]) by compute4.internal (MEProxy); Wed, 09 Nov 2022 10:32:50 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=veryfast.biz; h= cc:content-type:date:date:from:from:in-reply-to:message-id :mime-version:reply-to:sender:subject:subject:to:to; s=fm3; t= 1668007970; x=1668094370; bh=ADfPfB94WSS8C1e+5BOJD5IbOVbPbyzv8b2 zt9FiS6c=; b=kTTmZ1QZPBWZsIlLGFU04PaqEp9gfEUPtYhVAEhOH52iBpfA9Ad RgwtLPPwd0QadG0NKI7yuNgtdOSRHCC3mqqYa2ByCfu+SHcijvxYO20oAhC2TjTf 2eH2QIeDgnCLmLaqo4hD6mSUKpaeLeRxq70HM9nyY3K8ayw02XpqnrTUQ64+2c66 LjQ5EHc05coiV/HRyMeJYvd3A/OEgD3oRM3F//7DV7l9SI5Vg7X078/df157jbQK LqtlFaTOitE5ARbn1R/xRGR1R3mg/JSkHE+XrXnDnAWpoX/WSSKp5TuMW66pZ0l8 gRg/+b1Nc1J58NL3XaxVngoE3FcXhij5sqw== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:content-type:date:date:feedback-id :feedback-id:from:from:in-reply-to:message-id:mime-version :reply-to:sender:subject:subject:to:to:x-me-proxy:x-me-proxy :x-me-sender:x-me-sender:x-sasl-enc; s=fm1; t=1668007970; x= 1668094370; bh=ADfPfB94WSS8C1e+5BOJD5IbOVbPbyzv8b2zt9FiS6c=; b=w pTiW0RrY6eIwnL0RuNgaOEtsVx6sUfBD4E4vVpj4tsEbeDM8hyYcmFtv8Q9UvO/y agLqthfwaJ7OWKmlB35cM06BeIWMjtn4V4aWwnXTARD5KTLBqHL2plOhJSU6ARhq CkNU0YNhk4hw1oUW33JrZz1AWBe3ZrCvTo9POK2uv/PO/yp5BbHQ1U/bOvuu7DCt rVyjkoSpRFSDq8WnKNUQLUJCnZGs9Wt3zvbKcix6NcEgvH3FaKO4PJoMWDATPabI 9MH9AEcCG1IVluvApT06vfv0IHbdvrdZ30Vexw7ABMXJGAmlwH5jSaHaUx3iGuo8 RHEM1tNd7u+w3fO2urM1g== X-ME-Sender: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedvgedrfedvgdejjecutefuodetggdotefrodftvf curfhrohhfihhlvgemucfhrghsthforghilhdpqfgfvfdpuffrtefokffrpgfnqfghnecu uegrihhlohhuthemuceftddtnecunecujfgurhepofgfggfkfffhvffutgesmhdtreerre erjeenucfhrhhomhepnfhinhhushcuuehjnphrnhhsthgrmhcuoehlihhnuhhsrdgsjhho rhhnshhtrghmsehvvghrhihfrghsthdrsghiiieqnecuggftrfgrthhtvghrnhephedvve ehvdeuuddugffgkedvgefggeejtdehtdefieelkeetgedttdfhtdeuvdehnecuvehluhhs thgvrhfuihiivgeptdenucfrrghrrghmpehmrghilhhfrhhomheplhhinhhushdrsghjoh hrnhhsthgrmhesvhgvrhihfhgrshhtrdgsihii X-ME-Proxy: Feedback-ID: i51694465:Fastmail Original-Received: by mailuser.nyi.internal (Postfix, from userid 501) id 228F7B60086; Wed, 9 Nov 2022 10:32:50 -0500 (EST) X-Mailer: MessagingEngine.com Webmail Interface Received-SPF: pass client-ip=66.111.4.26; envelope-from=linus.bjornstam@veryfast.biz; helo=out2-smtp.messagingengine.com 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_PASS=-0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: guile-devel@gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "Developers list for Guile, the GNU extensibility library" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guile-devel-bounces+guile-devel=m.gmane-mx.org@gnu.org Original-Sender: guile-devel-bounces+guile-devel=m.gmane-mx.org@gnu.org Xref: news.gmane.io gmane.lisp.guile.devel:21468 Archived-At: --2604252a6fad4866a6de77c0893fad53 Content-Type: text/plain;charset=utf-8 Content-Transfer-Encoding: quoted-printable Hi there! This commit adds internal definitions to derived conditional forms, with= -fluids and and-let*. This means the bodies of when, unless and with-flu= ids, and the clause bodies of case and cond behave like a lambda body.=20 There is no performance hit since guile optimizes a (let () ...) without= internal definitions to a begin (i.e: no new lexical context is created= ). best regards Linus Bj=C3=B6rnstam --2604252a6fad4866a6de77c0893fad53 Content-Disposition: attachment;filename="0001-Add-internal-definitions-to-derived-forms.patch" Content-Type: text/x-patch; name="0001-Add-internal-definitions-to-derived-forms.patch" Content-Transfer-Encoding: BASE64 RnJvbSA3ZWViOTFiODIyMzM0YjE1MWM1YjRhMTVjZTk1MjhhMmE2NTVkOTE0IE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBMaW51cyA8Ympvcm5zdGFtLmxpbnVzQGZhc3RtYWls LnNlPgpEYXRlOiBXZWQsIDkgTm92IDIwMjIgMTY6MTU6MTggKzAxMDAKU3ViamVjdDogW1BB VENIXSBBZGQgaW50ZXJuYWwgZGVmaW5pdGlvbnMgdG8gZGVyaXZlZCBmb3JtcwoKVGhpcyBj b21taXQgYWRkcyBpbnRlcm5hbCBkZWZpbml0aW9ucyB0byB0aGUgZm9sbG93aW5nIGRlcml2 ZWQKZm9ybXM6IHdoZW4sIHVubGVzcywgY29uZCwgY2FzZSwgd2l0aC1mbHVpZHMsIGFuZCBh bmQtbGV0Ki4KCiAqIGRvYy9yZWYvYXBpLWNvbnRyb2wudGV4aSAoQ29uZGl0aW9uYWxzKTog VXBkYXRlIHRoZSBzeW50YXggYW5kIGRvY3MKICAgb2Ygd2hlbiwgdW5sZXNzLCBjb25kLCBh bmQgY2FzZS4KICogbW9kdWxlL2ljZS05L2FuZC1sZXQtc3Rhci5zY20gKGFuZC1sZXQqKTog Q2hhbmdlZCBiZWdpbnMgdG8gbGV0LgogKiBtb2R1bGUvaWNlLTkvYm9vdC05LnNjbSAoY29u ZCwgY2FzZSwgd2hlbiwgdW5sZXNzLCB3aXRoLWZsdWlkcyk6CiAgIENoYW5nZWQgYmVnaW5z IHRvIGxldC4KLS0tCiBkb2MvcmVmL2FwaS1jb250cm9sLnRleGkgICAgICB8IDI1ICsrKysr KysrKysrKystLS0tLS0tLS0tLS0KIG1vZHVsZS9pY2UtOS9hbmQtbGV0LXN0YXIuc2NtIHwg IDYgKysrLS0tCiBtb2R1bGUvaWNlLTkvYm9vdC05LnNjbSAgICAgICB8IDEyICsrKysrKy0t LS0tLQogMyBmaWxlcyBjaGFuZ2VkLCAyMiBpbnNlcnRpb25zKCspLCAyMSBkZWxldGlvbnMo LSkKCmRpZmYgLS1naXQgYS9kb2MvcmVmL2FwaS1jb250cm9sLnRleGkgYi9kb2MvcmVmL2Fw aS1jb250cm9sLnRleGkKaW5kZXggMDg3ZTc5NS4uZWNlNmE2MCAxMDA2NDQKLS0tIGEvZG9j L3JlZi9hcGktY29udHJvbC50ZXhpCisrKyBiL2RvYy9yZWYvYXBpLWNvbnRyb2wudGV4aQpA QCAtMTUyLDEwICsxNTIsMTAgQEAgZG9jdW1lbnRhdGlvbjoKIAogQGV4YW1wbGUKIChkZWZp bmUtc3ludGF4LXJ1bGUgKHdoZW4gdGVzdCBzdG10IHN0bXQqIC4uLikKLSAgKGlmIHRlc3Qg KGJlZ2luIHN0bXQgc3RtdCogLi4uKSkpCisgIChpZiB0ZXN0IChsZXQgKCkgc3RtdCBzdG10 KiAuLi4pKSkKIAogKGRlZmluZS1zeW50YXgtcnVsZSAodW5sZXNzIHRlc3Qgc3RtdCBzdG10 KiAuLi4pCi0gIChpZiAobm90IHRlc3QpIChiZWdpbiBzdG10IHN0bXQqIC4uLikpKQorICAo aWYgKG5vdCB0ZXN0KSAobGV0ICgpIHN0bXQgc3RtdCogLi4uKSkpCiBAZW5kIGV4YW1wbGUK IAogVGhhdCBpcyB0byBzYXksIEBjb2Rle3doZW59IGV2YWx1YXRlcyBpdHMgY29uc2VxdWVu dCBzdGF0ZW1lbnRzIGluIG9yZGVyCkBAIC0xNjcsMTEgKzE2NywxMSBAQCBzdGF0ZW1lbnRz IGlmIEB2YXJ7dGVzdH0gaXMgZmFsc2UuCiBFYWNoIEBjb2Rle2NvbmR9LWNsYXVzZSBtdXN0 IGxvb2sgbGlrZSB0aGlzOgogCiBAbGlzcAotKEB2YXJ7dGVzdH0gQHZhcntleHByZXNzaW9u fSBAZG90c3t9KQorKEB2YXJ7dGVzdH0gQHZhcntib2R5fSBAZG90c3t9KQogQGVuZCBsaXNw CiAKLXdoZXJlIEB2YXJ7dGVzdH0gYW5kIEB2YXJ7ZXhwcmVzc2lvbn0gYXJlIGFyYml0cmFy eSBleHByZXNzaW9ucywgb3IgbGlrZQotdGhpcword2hlcmUgQHZhcnt0ZXN0fSBpcyBhbiBh cmJpdHJhcnkgZXhwcmVzc2lvbiBhbmQgQHZhcntib2R5fSBpcyBhCitsYW1iZGEtbGlrZSBi b2R5LCBvciBsaWtlIHRoaXMKIAogQGxpc3AKIChAdmFye3Rlc3R9ID0+IEB2YXJ7ZXhwcmVz c2lvbn0pCkBAIC0yMTcsNyArMjE3LDcgQEAgcmVzdWx0IG9mIHRoZSBAY29kZXtjb25kfS1l eHByZXNzaW9uLgogQHZhcntrZXl9IG1heSBiZSBhbnkgZXhwcmVzc2lvbiwgYW5kIHRoZSBA dmFye2NsYXVzZX1zIG11c3QgaGF2ZSB0aGUgZm9ybQogCiBAbGlzcAotKChAdmFye2RhdHVt MX0gQGRvdHN7fSkgQHZhcntleHByMX0gQHZhcntleHByMn0gQGRvdHN7fSkKKygoQHZhcntk YXR1bTF9IEBkb3Rze30pIEB2YXJ7Ym9keX0gQGRvdHN7fSkKIEBlbmQgbGlzcAogCiBvcgpA QCAtMjI5LDcgKzIyOSw3IEBAIG9yCiBhbmQgdGhlIGxhc3QgQHZhcntjbGF1c2V9IG1heSBo YXZlIHRoZSBmb3JtCiAKIEBsaXNwCi0oZWxzZSBAdmFye2V4cHIxfSBAdmFye2V4cHIyfSBA ZG90c3t9KQorKGVsc2UgQHZhcntleHByMX0gQHZhcntib2R5fSBAZG90c3t9KQogQGVuZCBs aXNwCiAKIG9yCkBAIC0yMzksMTMgKzIzOSwxNCBAQCBvcgogQGVuZCBsaXNwCiAKIEFsbCBA dmFye2RhdHVtfXMgbXVzdCBiZSBkaXN0aW5jdC4gIEZpcnN0LCBAdmFye2tleX0gaXMgZXZh bHVhdGVkLiAgVGhlCi1yZXN1bHQgb2YgdGhpcyBldmFsdWF0aW9uIGlzIGNvbXBhcmVkIGFn YWluc3QgYWxsIEB2YXJ7ZGF0dW19IHZhbHVlcyB1c2luZwotQGNvZGV7ZXF2P30uICBXaGVu IHRoaXMgY29tcGFyaXNvbiBzdWNjZWVkcywgdGhlIGV4cHJlc3Npb24ocykgZm9sbG93aW5n Ci10aGUgQHZhcntkYXR1bX0gYXJlIGV2YWx1YXRlZCBmcm9tIGxlZnQgdG8gcmlnaHQsIHJl dHVybmluZyB0aGUgdmFsdWUgb2YKLXRoZSBsYXN0IGV4cHJlc3Npb24gYXMgdGhlIHJlc3Vs dCBvZiB0aGUgQGNvZGV7Y2FzZX0gZXhwcmVzc2lvbi4KK3Jlc3VsdCBvZiB0aGlzIGV2YWx1 YXRpb24gaXMgY29tcGFyZWQgYWdhaW5zdCBhbGwgQHZhcntkYXR1bX0gdmFsdWVzCit1c2lu ZyBAY29kZXtlcXY/fS4gIFdoZW4gdGhpcyBjb21wYXJpc29uIHN1Y2NlZWRzLCB0aGUgQHZh cntib2R5fQorZm9sbG93aW5nIHRoZSBAdmFye2RhdHVtfSBpcyBldmFsdWF0ZWQgbGlrZSB0 aGUgYm9keSBvZiBhIGxhbWJkYSwKK3JldHVybmluZyB0aGUgdmFsdWUgb2YgdGhlIGxhc3Qg ZXhwcmVzc2lvbiBhcyB0aGUgcmVzdWx0IG9mIHRoZQorQGNvZGV7Y2FzZX0gZXhwcmVzc2lv bi4KIAogSWYgdGhlIEB2YXJ7a2V5fSBtYXRjaGVzIG5vIEB2YXJ7ZGF0dW19IGFuZCB0aGVy ZSBpcyBhbgotQGNvZGV7ZWxzZX0tY2xhdXNlLCB0aGUgZXhwcmVzc2lvbnMgZm9sbG93aW5n IHRoZSBAY29kZXtlbHNlfSBhcmUKK0Bjb2Rle2Vsc2V9LWNsYXVzZSwgdGhlIEB2YXJ7Ym9k eX0gZm9sbG93aW5nIHRoZSBAY29kZXtlbHNlfSBpcwogZXZhbHVhdGVkLiAgSWYgdGhlcmUg aXMgbm8gc3VjaCBjbGF1c2UsIHRoZSByZXN1bHQgb2YgdGhlIGV4cHJlc3Npb24gaXMKIHVu c3BlY2lmaWVkLgogCmRpZmYgLS1naXQgYS9tb2R1bGUvaWNlLTkvYW5kLWxldC1zdGFyLnNj bSBiL21vZHVsZS9pY2UtOS9hbmQtbGV0LXN0YXIuc2NtCmluZGV4IDJkNTNmZjMuLjk0Mjdj MTcgMTAwNjQ0Ci0tLSBhL21vZHVsZS9pY2UtOS9hbmQtbGV0LXN0YXIuc2NtCisrKyBiL21v ZHVsZS9pY2UtOS9hbmQtbGV0LXN0YXIuc2NtCkBAIC01MywxMiArNTMsMTIgQEAKICAgICAg ICgoXyBvcmlnLWZvcm0gKCh2YXIgZXhwcikpIC4gYm9keSkKICAgICAgICAoaWRlbnRpZmll cj8gIyd2YXIpCiAgICAgICAgIycobGV0ICgodmFyIGV4cHIpKQotICAgICAgICAgICAoYW5k IHZhciAoYmVnaW4gLiBib2R5KSkpKQorICAgICAgICAgICAoYW5kIHZhciAobGV0ICgpIC4g Ym9keSkpKSkKICAgICAgICgoXyBvcmlnLWZvcm0gKChleHByKSkgLiBib2R5KQotICAgICAg ICMnKGFuZCBleHByIChiZWdpbiAuIGJvZHkpKSkKKyAgICAgICAjJyhhbmQgZXhwciAobGV0 ICgpIC4gYm9keSkpKQogICAgICAgKChfIG9yaWctZm9ybSAodmFyKSAuIGJvZHkpCiAgICAg ICAgKGlkZW50aWZpZXI/ICMndmFyKQotICAgICAgICMnKGFuZCB2YXIgKGJlZ2luIC4gYm9k eSkpKQorICAgICAgICMnKGFuZCB2YXIgKGxldCAoKSAuIGJvZHkpKSkKIAogICAgICAgOzsg SGFuZGxlIGJhZCBjbGF1c2VzLgogICAgICAgKChfIG9yaWctZm9ybSAoYmFkLWNsYXVzZSAu IHJlc3QpIC4gYm9keSkKZGlmZiAtLWdpdCBhL21vZHVsZS9pY2UtOS9ib290LTkuc2NtIGIv bW9kdWxlL2ljZS05L2Jvb3QtOS5zY20KaW5kZXggYTQ2MTQ1ZS4uZGMzNTM3MCAxMDA2NDQK LS0tIGEvbW9kdWxlL2ljZS05L2Jvb3QtOS5zY20KKysrIGIvbW9kdWxlL2ljZS05L2Jvb3Qt OS5zY20KQEAgLTQxNywxMCArNDE3LDEwIEBAIElmIHJldHVybmluZyBlYXJseSwgcmV0dXJu IHRoZSByZXR1cm4gdmFsdWUgb2YgRi4iCiAoaW5jbHVkZS1mcm9tLXBhdGggImljZS05L3F1 YXNpc3ludGF4IikKIAogKGRlZmluZS1zeW50YXgtcnVsZSAod2hlbiB0ZXN0IHN0bXQgc3Rt dCogLi4uKQotICAoaWYgdGVzdCAoYmVnaW4gc3RtdCBzdG10KiAuLi4pKSkKKyAgKGlmIHRl c3QgKGxldCAoKSBzdG10IHN0bXQqIC4uLikpKQogCiAoZGVmaW5lLXN5bnRheC1ydWxlICh1 bmxlc3MgdGVzdCBzdG10IHN0bXQqIC4uLikKLSAgKGlmIChub3QgdGVzdCkgKGJlZ2luIHN0 bXQgc3RtdCogLi4uKSkpCisgIChpZiAobm90IHRlc3QpIChsZXQgKCkgc3RtdCBzdG10KiAu Li4pKSkKIAogKGRlZmluZS1zeW50YXggZWxzZQogICAobGFtYmRhICh4KQpAQCAtNDYxLDcg KzQ2MSw3IEBAIElmIHJldHVybmluZyBlYXJseSwgcmV0dXJuIHRoZSByZXR1cm4gdmFsdWUg b2YgRi4iCiAgICAgICAgICAgICAgICAgICAgICAgICAgKChlbHNlIGUgZSogLi4uKQogICAg ICAgICAgICAgICAgICAgICAgICAgICAobGFtYmRhICh0YWlsKQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgIChpZiAobnVsbD8gdGFpbCkKLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIycoKGJlZ2luIGUgZSogLi4uKSkKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIycoKGxldCAoKSBlIGUqIC4uLikpCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIChiYWQtY2xhdXNlICJlbHNlIG11c3QgYmUgdGhlIGxhc3QgY2xhdXNlIikp KSkKICAgICAgICAgICAgICAgICAgICAgICAgICAoKGVsc2UgLiBfKSAoYmFkLWNsYXVzZSkp CiAgICAgICAgICAgICAgICAgICAgICAgICAgKCh0ZXN0ID0+IHJlY2VpdmVyKQpAQCAtNDg4 LDcgKzQ4OCw3IEBAIElmIHJldHVybmluZyBlYXJseSwgcmV0dXJuIHRoZSByZXR1cm4gdmFs dWUgb2YgRi4iCiAgICAgICAgICAgICAgICAgICAgICAgICAgKCh0ZXN0IGUgZSogLi4uKQog ICAgICAgICAgICAgICAgICAgICAgICAgICAobGFtYmRhICh0YWlsKQogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICNgKChpZiB0ZXN0Ci0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIChiZWdpbiBlIGUqIC4uLikKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgKGxldCAoKSBlIGUqIC4uLikKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIyxAdGFpbCkpKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAoXyAoYmFk LWNsYXVzZSkpKSkKICAgICAgICAgICAgICAgICAgICAgICMnKGNsYXVzZSBjbGF1c2VzIC4u LikpKSkpKSkpCkBAIC01MzQsNyArNTM0LDcgQEAgSWYgcmV0dXJuaW5nIGVhcmx5LCByZXR1 cm4gdGhlIHJldHVybiB2YWx1ZSBvZiBGLiIKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAoKD0+IHJlY2VpdmVyIC4uLikKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgKGJhZC1jbGF1c2UKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ3cm9u ZyBudW1iZXIgb2YgcmVjZWl2ZXIgZXhwcmVzc2lvbnMiKSkKLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAoKGUgZSogLi4uKSAjJyhiZWdpbiBlIGUqIC4uLikpCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgKChlIGUqIC4uLikgIycobGV0ICgpIGUgZSogLi4u KSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoXyAoYmFkLWNsYXVzZSkpKSkp CiAgICAgICAgICAgICAgICAgICAgICAgICAgKHN5bnRheC1jYXNlICMndGVzdCAoZWxzZSkK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICgoZGF0dW1zIC4uLikKQEAgLTY3NCw3ICs2 NzQsNyBAQCBJZiByZXR1cm5pbmcgZWFybHksIHJldHVybiB0aGUgcmV0dXJuIHZhbHVlIG9m IEYuIgogICAgICAgICAgI2AobGV0ICgoZmx1aWQtdG1wIGZsdWlkKSAuLi4pCiAgICAgICAg ICAgICAgKGxldCAoKHZhbC10bXAgdmFsKSAuLi4pCiAgICAgICAgICAgICAgICAjLChlbWl0 LXdpdGgtZmx1aWRzICMnKChmbHVpZC10bXAgdmFsLXRtcCkgLi4uKQotICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAjJyhiZWdpbiBleHAgZXhwKiAuLi4pKSkpKSkpKSkK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIycobGV0ICgpIGV4cCBleHAq IC4uLikpKSkpKSkpKQogCiAoZGVmaW5lLXN5bnRheCBjdXJyZW50LXNvdXJjZS1sb2NhdGlv bgogICAobGFtYmRhICh4KQotLSAKMi4yNS4xCgo= --2604252a6fad4866a6de77c0893fad53--