GNU bug report logs - #33827
SRFI 69 weak hash-tables is broken

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: guile; Reported by: Jéssica Milaré <jessymilare@HIDDEN>; dated Fri, 21 Dec 2018 16:23:01 UTC; Maintainer for guile is bug-guile@HIDDEN.

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


Received: (at 33827) by debbugs.gnu.org; 13 Jan 2019 22:53:23 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Sun Jan 13 17:53:23 2019
Received: from localhost ([127.0.0.1]:58172 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1giod8-0001R0-Sw
	for submit <at> debbugs.gnu.org; Sun, 13 Jan 2019 17:53:22 -0500
Received: from mail-io1-f50.google.com ([209.85.166.50]:44985)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <jessymilare@HIDDEN>) id 1giod7-0001Qk-LK
 for 33827 <at> debbugs.gnu.org; Sun, 13 Jan 2019 17:53:21 -0500
Received: by mail-io1-f50.google.com with SMTP id r200so16277477iod.11
 for <33827 <at> debbugs.gnu.org>; Sun, 13 Jan 2019 14:53:21 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025;
 h=mime-version:references:in-reply-to:from:date:message-id:subject:to;
 bh=ppW40DuBYi1PajJYqIFTFHzz1IAKNFo7l4UxOoFzRAA=;
 b=WuLToive7jlEjL5jFP4Czg139VV1DlbZiTBo/OvP7ddOJdFfZzZyfVSuglbvsFxMdZ
 0HmNiJBw4yqvsTTgUAASfoqOsYrxJfddS6QL1tP+ycT3vDV5Hsk6vupTVkyvammWp0AH
 n8Bp4r0vEuIPTZ+0nQbo3x953SQb99IDdzhxHovyq82RJo+yy9L7/9j2lpYurAXXYmQA
 b6LMzttH89ttL/OL4WyX57aUrimKI7InGAOM5SBfrzQltu0Wj2m3SPg8lxpkmjvQWRnl
 u0DhjYlqGtNO/v3MNZsBubfup2XpMPxXDdEYnIgg79W8nJwrXicRP05SLhqTFYUp/xfP
 Y/fQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20161025;
 h=x-gm-message-state:mime-version:references:in-reply-to:from:date
 :message-id:subject:to;
 bh=ppW40DuBYi1PajJYqIFTFHzz1IAKNFo7l4UxOoFzRAA=;
 b=p6Nfi9ylI5lC0ZdmNoQPQjj6JQZlaNrQgDvIYwhI5TCK3uP6NnOcYcXZosFPI/kx3w
 /RK7B3kwjZRSl/+VgS9fm8gobtih+s8Ufyz0j1vGz5olVs2wSKlhLPeBXXIkd4GkwSSm
 KY0bc2j/CuLPXwsPT095MAE/fVMfw9aIDAnIgvUbcJgKxIqSL2CxPLoABLV1JRr6Yif9
 kfoCyphi59UQFqRrCvVQv5d/aG6kezFQvlbRLd0pek4JtC6o1Rfb6O3nGSZGF/nDTPhT
 ojma6pcQvQ0jry1cZKg8+PlAZu3DHuWUGKS9Amqi+vqnW+vAvMT0HXoKc/DqQUW9LKM/
 rzyg==
X-Gm-Message-State: AJcUukd3JDvB7xyax7NTCeJl90xafvOAFmot9pEAmI/IroW9lNhVRht3
 gainhvOIFoA2YyhWgLDn0+zeAqhSlgXSPSZie9fSQA==
X-Google-Smtp-Source: ALg8bN49jHFKwSPPwjknUpVPk+Rj1SArVRfgb0ivnfi5J7x4f3dwWZZ4JvBW0OTvj/V4H41syX4eGZ2Z4PbXocBFosU=
X-Received: by 2002:a6b:156:: with SMTP id 83mr14409641iob.63.1547419995521;
 Sun, 13 Jan 2019 14:53:15 -0800 (PST)
MIME-Version: 1.0
References: <CAGBcF1Z5WmXij2vX+EhxQHvWkmmOkeL-hV+Y-SUSpByH0tZQHw@HIDDEN>
 <CAGBcF1aZrZhBjEk=tvsJHLJnMDc1ERt-ZaCiwOzqMksnfZsP_Q@HIDDEN>
In-Reply-To: <CAGBcF1aZrZhBjEk=tvsJHLJnMDc1ERt-ZaCiwOzqMksnfZsP_Q@HIDDEN>
From: =?UTF-8?B?SsOpc3NpY2EgTWlsYXLDqQ==?= <jessymilare@HIDDEN>
Date: Sun, 13 Jan 2019 20:53:04 -0200
Message-ID: <CAGBcF1a70RQVCgRZA8cYm7mdREz0yT0NsrHn_6e9rnuK3QaZdA@HIDDEN>
Subject: Re: Patches
To: 33827 <at> debbugs.gnu.org
Content-Type: multipart/mixed; boundary="00000000000027132d057f5ecbea"
X-Debbugs-Envelope-To: 33827
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>

--00000000000027132d057f5ecbea
Content-Type: multipart/alternative; boundary="000000000000271327057f5ecbe8"

--000000000000271327057f5ecbe8
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

The rest of the patches are here, implementing SRFI 128 and SRFI 125.

Em ter, 8 de jan de 2019 =C3=A0s 22:21, J=C3=A9ssica Milar=C3=A9 <jessymila=
re@HIDDEN>
escreveu:

> Patch 0001 fixes SRFI-69 bugs as specified. Patches 0002 to 0005 implemen=
t
> the module (ice-9 generic-hash-tables) and then reimplement SRFI-69 and
> (rnrs hashtables) and add an implementation of SRFI 126, all of them usin=
g
> generic-hash-tables (and therefore compatible to each other).
>
> I've called `make check' after each commit and all tests PASS: or XFAIL:,
> except the four tests in linker.test, as reported in Bug 33991[1].
>
> [1] https://debbugs.gnu.org/cgi/bugreport.cgi?bug=3D33991
>

--000000000000271327057f5ecbe8
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr">The rest of the patches are here, implementing SRFI 128 an=
d SRFI 125.</div><br><div class=3D"gmail_quote"><div dir=3D"ltr">Em ter, 8 =
de jan de 2019 =C3=A0s 22:21, J=C3=A9ssica Milar=C3=A9 &lt;<a href=3D"mailt=
o:jessymilare@HIDDEN">jessymilare@HIDDEN</a>&gt; escreveu:<br></div><=
blockquote class=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;border-l=
eft:1px solid rgb(204,204,204);padding-left:1ex"><div dir=3D"ltr"><div dir=
=3D"ltr"><div dir=3D"ltr">Patch 0001 fixes SRFI-69 bugs as specified. Patch=
es 0002 to 0005 implement the module (ice-9 generic-hash-tables) and then r=
eimplement SRFI-69 and (rnrs hashtables) and add an implementation of SRFI =
126, all of them using generic-hash-tables (and therefore compatible to eac=
h other).<div><br></div><div>I&#39;ve called `make check&#39; after each co=
mmit and all tests PASS: or XFAIL:, except the four tests in linker.test, a=
s reported in Bug=C2=A033991[1].</div><div><br></div><div>[1]=C2=A0<a href=
=3D"https://debbugs.gnu.org/cgi/bugreport.cgi?bug=3D33991" target=3D"_blank=
">https://debbugs.gnu.org/cgi/bugreport.cgi?bug=3D33991</a></div></div></di=
v></div>
</blockquote></div>

--000000000000271327057f5ecbe8--

--00000000000027132d057f5ecbea
Content-Type: text/x-patch; charset="US-ASCII"; 
	name="0006-Fix-wrong-year-in-copyright-notices.patch"
Content-Disposition: attachment; 
	filename="0006-Fix-wrong-year-in-copyright-notices.patch"
Content-Transfer-Encoding: base64
Content-ID: <f_jqvhvngx0>
X-Attachment-Id: f_jqvhvngx0

RnJvbSBhMDJmZDA5MTE3MDEzMTU0YzAxMTA3NGI1YTc1ODNhMWJlZDVlY2E0IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiA9P1VURi04P3E/Sj1DMz1BOXNzaWNhPTIwTWlsYXI9QzM9QTk/
PSA8amVzc3ltaWxhcmVAZ21haWwuY29tPgpEYXRlOiBGcmksIDExIEphbiAyMDE5IDE3OjQwOjM4
IC0wMjAwClN1YmplY3Q6IFtQQVRDSCAwNi8xMF0gRml4IHdyb25nIHllYXIgaW4gY29weXJpZ2h0
IG5vdGljZXMuCgotLS0KIG1vZHVsZS9pY2UtOS9nZW5lcmljLWhhc2gtdGFibGVzLnNjbSAgICAg
IHwgMiArLQogbW9kdWxlL3NyZmkvc3JmaS0xMjYuc2NtICAgICAgICAgICAgICAgICAgfCA0ICsr
LS0KIG1vZHVsZS9zcmZpL3NyZmktNjkuc2NtICAgICAgICAgICAgICAgICAgIHwgMiArLQogdGVz
dC1zdWl0ZS90ZXN0cy9nZW5lcmljLWhhc2gtdGFibGVzLnRlc3QgfCA0ICsrLS0KIHRlc3Qtc3Vp
dGUvdGVzdHMvc3JmaS0xMjYudGVzdCAgICAgICAgICAgIHwgNCArKy0tCiB0ZXN0LXN1aXRlL3Rl
c3RzL3NyZmktNjkudGVzdCAgICAgICAgICAgICB8IDIgKy0KIDYgZmlsZXMgY2hhbmdlZCwgOSBp
bnNlcnRpb25zKCspLCA5IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL21vZHVsZS9pY2UtOS9n
ZW5lcmljLWhhc2gtdGFibGVzLnNjbSBiL21vZHVsZS9pY2UtOS9nZW5lcmljLWhhc2gtdGFibGVz
LnNjbQppbmRleCAwMzNjM2VjZGEuLjMxZGVhZDk3YSAxMDA2NDQKLS0tIGEvbW9kdWxlL2ljZS05
L2dlbmVyaWMtaGFzaC10YWJsZXMuc2NtCisrKyBiL21vZHVsZS9pY2UtOS9nZW5lcmljLWhhc2gt
dGFibGVzLnNjbQpAQCAtMSw2ICsxLDYgQEAKIDs7OyBnZW5lcmljLWhhc2gtdGFibGVzLnNjbSAt
LS0gSW50ZXJtZWRpYXRlIGhhc2ggdGFibGVzCiAKLTs7IAlDb3B5cmlnaHQgKEMpIDIwMDcgRnJl
ZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCis7OyAgICBDb3B5cmlnaHQgKEMpIDIwMDcsMjAx
OCBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KIDs7CiA7OyBUaGlzIGxpYnJhcnkgaXMg
ZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiA7OyBtb2RpZnkg
aXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCmRpZmYg
LS1naXQgYS9tb2R1bGUvc3JmaS9zcmZpLTEyNi5zY20gYi9tb2R1bGUvc3JmaS9zcmZpLTEyNi5z
Y20KaW5kZXggN2E2NTk0NDM0Li5lN2ZlZTM1ZDMgMTAwNjQ0Ci0tLSBhL21vZHVsZS9zcmZpL3Ny
ZmktMTI2LnNjbQorKysgYi9tb2R1bGUvc3JmaS9zcmZpLTEyNi5zY20KQEAgLTEsNiArMSw2IEBA
Ci07Ozsgc3JmaS02OS5zY20gLS0tIEJhc2ljIGhhc2ggdGFibGVzCis7Ozsgc3JmaS0xMjYuc2Nt
IC0tLSBSNlJTIGhhc2ggdGFibGVzCiAKLTs7IAlDb3B5cmlnaHQgKEMpIDIwMDcgRnJlZSBTb2Z0
d2FyZSBGb3VuZGF0aW9uLCBJbmMuCis7OyAgICBDb3B5cmlnaHQgKEMpIDIwMTkgRnJlZSBTb2Z0
d2FyZSBGb3VuZGF0aW9uLCBJbmMuCiA7OwogOzsgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdh
cmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogOzsgbW9kaWZ5IGl0IHVuZGVyIHRo
ZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYwpkaWZmIC0tZ2l0IGEvbW9k
dWxlL3NyZmkvc3JmaS02OS5zY20gYi9tb2R1bGUvc3JmaS9zcmZpLTY5LnNjbQppbmRleCBhZTVi
YzdmMDYuLjEzNGJjZDY5NCAxMDA2NDQKLS0tIGEvbW9kdWxlL3NyZmkvc3JmaS02OS5zY20KKysr
IGIvbW9kdWxlL3NyZmkvc3JmaS02OS5zY20KQEAgLTEsNiArMSw2IEBACiA7Ozsgc3JmaS02OS5z
Y20gLS0tIEJhc2ljIGhhc2ggdGFibGVzCiAKLTs7IAlDb3B5cmlnaHQgKEMpIDIwMDcgRnJlZSBT
b2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCis7OyAgICBDb3B5cmlnaHQgKEMpIDIwMDcsMjAxOCBG
cmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KIDs7CiA7OyBUaGlzIGxpYnJhcnkgaXMgZnJl
ZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiA7OyBtb2RpZnkgaXQg
dW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCmRpZmYgLS1n
aXQgYS90ZXN0LXN1aXRlL3Rlc3RzL2dlbmVyaWMtaGFzaC10YWJsZXMudGVzdCBiL3Rlc3Qtc3Vp
dGUvdGVzdHMvZ2VuZXJpYy1oYXNoLXRhYmxlcy50ZXN0CmluZGV4IDQ5NGNiZjcwYS4uZDFlYjJh
YzJkIDEwMDY0NAotLS0gYS90ZXN0LXN1aXRlL3Rlc3RzL2dlbmVyaWMtaGFzaC10YWJsZXMudGVz
dAorKysgYi90ZXN0LXN1aXRlL3Rlc3RzL2dlbmVyaWMtaGFzaC10YWJsZXMudGVzdApAQCAtMSw2
ICsxLDYgQEAKLTs7Ozsgc3JmaS02OS50ZXN0IC0tLSBUZXN0IHN1aXRlIGZvciBTUkZJIDY5IC0q
LSBzY2hlbWUgLSotCis7Ozs7IGdlbmVyaWMtaGFzaC10YWJsZXMudGVzdCAtLS0gVGVzdCBzdWl0
ZSBmb3IgR0VORVJJQy1IQVNILVRBQkxFUyAtKi0gc2NoZW1lIC0qLQogOzs7OwotOzs7OyAJQ29w
eXJpZ2h0IChDKSAyMDA3IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgorOzs7OyAgICBD
b3B5cmlnaHQgKEMpIDIwMDcsMjAxOCBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KIDs7
OzsKIDs7OzsgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmli
dXRlIGl0IGFuZC9vcgogOzs7OyBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUg
TGVzc2VyIEdlbmVyYWwgUHVibGljCmRpZmYgLS1naXQgYS90ZXN0LXN1aXRlL3Rlc3RzL3NyZmkt
MTI2LnRlc3QgYi90ZXN0LXN1aXRlL3Rlc3RzL3NyZmktMTI2LnRlc3QKaW5kZXggZTZhNGU2NmE5
Li45NzA3NzBhNmUgMTAwNjQ0Ci0tLSBhL3Rlc3Qtc3VpdGUvdGVzdHMvc3JmaS0xMjYudGVzdAor
KysgYi90ZXN0LXN1aXRlL3Rlc3RzL3NyZmktMTI2LnRlc3QKQEAgLTEsNiArMSw2IEBACi07Ozs7
IHNyZmktNjkudGVzdCAtLS0gVGVzdCBzdWl0ZSBmb3IgU1JGSSA2OSAtKi0gc2NoZW1lIC0qLQor
Ozs7OyBzcmZpLTEyNi50ZXN0IC0tLSBUZXN0IHN1aXRlIGZvciBTUkZJIDEyNiAtKi0gc2NoZW1l
IC0qLQogOzs7OwotOzs7OyAJQ29weXJpZ2h0IChDKSAyMDA3IEZyZWUgU29mdHdhcmUgRm91bmRh
dGlvbiwgSW5jLgorOzs7OyBDb3B5cmlnaHQgKEMpIDIwMTkgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0
aW9uLCBJbmMuCiA7Ozs7CiA7Ozs7IFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3Ug
Y2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKIDs7OzsgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJt
cyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYwpkaWZmIC0tZ2l0IGEvdGVzdC1zdWl0
ZS90ZXN0cy9zcmZpLTY5LnRlc3QgYi90ZXN0LXN1aXRlL3Rlc3RzL3NyZmktNjkudGVzdAppbmRl
eCBlMTU3OWY3M2EuLjk3NDkxYmE4MyAxMDA2NDQKLS0tIGEvdGVzdC1zdWl0ZS90ZXN0cy9zcmZp
LTY5LnRlc3QKKysrIGIvdGVzdC1zdWl0ZS90ZXN0cy9zcmZpLTY5LnRlc3QKQEAgLTEsNiArMSw2
IEBACiA7Ozs7IHNyZmktNjkudGVzdCAtLS0gVGVzdCBzdWl0ZSBmb3IgU1JGSSA2OSAtKi0gc2No
ZW1lIC0qLQogOzs7OwotOzs7OyAJQ29weXJpZ2h0IChDKSAyMDA3IEZyZWUgU29mdHdhcmUgRm91
bmRhdGlvbiwgSW5jLgorOzs7OyAgICBDb3B5cmlnaHQgKEMpIDIwMDcsMjAxOCBGcmVlIFNvZnR3
YXJlIEZvdW5kYXRpb24sIEluYy4KIDs7OzsKIDs7OzsgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29m
dHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogOzs7OyBtb2RpZnkgaXQgdW5k
ZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCi0tIAoyLjE5LjEK
Cg==
--00000000000027132d057f5ecbea
Content-Type: text/x-patch; charset="UTF-8"; name="0009-Implemented-SRFI-125.patch"
Content-Disposition: attachment; filename="0009-Implemented-SRFI-125.patch"
Content-Transfer-Encoding: base64
Content-ID: <f_jqvhvnoy3>
X-Attachment-Id: f_jqvhvnoy3

RnJvbSAxOGNlMTAyYzI3MGJhYjNjZjUyNDBlN2FjOTMxMjllMTA3YzMzNWRlIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiA9P1VURi04P3E/Sj1DMz1BOXNzaWNhPTIwTWlsYXI9QzM9QTk/
PSA8amVzc3ltaWxhcmVAZ21haWwuY29tPgpEYXRlOiBTdW4sIDEzIEphbiAyMDE5IDEyOjAxOjA4
IC0wMjAwClN1YmplY3Q6IFtQQVRDSCAwOS8xMF0gSW1wbGVtZW50ZWQgU1JGSS0xMjUKCi0tLQog
bW9kdWxlL01ha2VmaWxlLmFtICAgICAgICAgICAgIHwgICAxICsKIG1vZHVsZS9zcmZpL3NyZmkt
MTI1LnNjbSAgICAgICB8IDQ3OSArKysrKysrKysrKysrKysrKysKIHRlc3Qtc3VpdGUvTWFrZWZp
bGUuYW0gICAgICAgICB8ICAgMSArCiB0ZXN0LXN1aXRlL3Rlc3RzL3NyZmktMTI1LnRlc3QgfCA4
NjAgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCiA0IGZpbGVzIGNoYW5nZWQsIDEz
NDEgaW5zZXJ0aW9ucygrKQogY3JlYXRlIG1vZGUgMTAwNjQ0IG1vZHVsZS9zcmZpL3NyZmktMTI1
LnNjbQogY3JlYXRlIG1vZGUgMTAwNjQ0IHRlc3Qtc3VpdGUvdGVzdHMvc3JmaS0xMjUudGVzdAoK
ZGlmZiAtLWdpdCBhL21vZHVsZS9NYWtlZmlsZS5hbSBiL21vZHVsZS9NYWtlZmlsZS5hbQppbmRl
eCA1ZmMzMDEwYzEuLjQxYzFjMjgyNiAxMDA2NDQKLS0tIGEvbW9kdWxlL01ha2VmaWxlLmFtCisr
KyBiL21vZHVsZS9NYWtlZmlsZS5hbQpAQCAtMjk0LDYgKzI5NCw3IEBAIFNPVVJDRVMgPQkJCQkJ
XAogICBzcmZpL3NyZmktODguc2NtCQkJCVwKICAgc3JmaS9zcmZpLTk4LnNjbQkJCQlcCiAgIHNy
Zmkvc3JmaS0xMTEuc2NtCQkJCVwKKyAgc3JmaS9zcmZpLTEyNS5zY20JCQkJXAogICBzcmZpL3Ny
ZmktMTI2LnNjbQkJCQlcCiAgIHNyZmkvc3JmaS0xMjgvZ251LnNjbQkJCQlcCiAgIHNyZmkvc3Jm
aS0xMjguc2NtCQkJCVwKZGlmZiAtLWdpdCBhL21vZHVsZS9zcmZpL3NyZmktMTI1LnNjbSBiL21v
ZHVsZS9zcmZpL3NyZmktMTI1LnNjbQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAuLmYwYTFkZmIwMgotLS0gL2Rldi9udWxsCisrKyBiL21vZHVsZS9zcmZpL3NyZmktMTI1LnNj
bQpAQCAtMCwwICsxLDQ3OSBAQAorOzs7IHNyZmktMTI1LnNjbSAtLS0gSW50ZXJtZWRpYXRlIGhh
c2ggdGFibGVzCisKKzs7ICAgIENvcHlyaWdodCAoQykgMjAxOSBGcmVlIFNvZnR3YXJlIEZvdW5k
YXRpb24sIEluYy4KKzs7Cis7OyBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNh
biByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCis7OyBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9m
IHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCis7OyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBi
eSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKzs7IHZlcnNpb24gMyBvZiB0
aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKzs7Cis7
OyBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJl
IHVzZWZ1bCwKKzs7IGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBp
bXBsaWVkIHdhcnJhbnR5IG9mCis7OyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorOzsgTGVzc2VyIEdlbmVyYWwgUHVibGlj
IExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKzs7Cis7OyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2
ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCis7OyBMaWNlbnNlIGFs
b25nIHdpdGggdGhpcyBsaWJyYXJ5OyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJl
Cis7OyBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLCBC
b3N0b24sIE1BIDAyMTEwLTEzMDEgVVNBCisKKzs7IFRoaXMgZmlsZSBjb250YWlucyBjb2RlIGZy
b20gU1JGSSAxMjggcmVmZXJlbmNlIGltcGxlbWVudGF0aW9uLCBieQorOzsgV2lsbGlhbSBEIENs
aW5nZXIKKworOzs7IENvcHlyaWdodCAyMDE1IFdpbGxpYW0gRCBDbGluZ2VyLgorOzs7Cis7Ozsg
UGVybWlzc2lvbiB0byBjb3B5IHRoaXMgc29mdHdhcmUsIGluIHdob2xlIG9yIGluIHBhcnQsIHRv
IHVzZSB0aGlzCis7Ozsgc29mdHdhcmUgZm9yIGFueSBsYXdmdWwgcHVycG9zZSwgYW5kIHRvIHJl
ZGlzdHJpYnV0ZSB0aGlzIHNvZnR3YXJlCis7OzsgaXMgZ3JhbnRlZCBzdWJqZWN0IHRvIHRoZSBy
ZXN0cmljdGlvbiB0aGF0IGFsbCBjb3BpZXMgbWFkZSBvZiB0aGlzCis7Ozsgc29mdHdhcmUgbXVz
dCBpbmNsdWRlIHRoaXMgY29weXJpZ2h0IGFuZCBwZXJtaXNzaW9uIG5vdGljZSBpbiBmdWxsLgor
Ozs7Cis7OzsgSSBhbHNvIHJlcXVlc3QgdGhhdCB5b3Ugc2VuZCBtZSBhIGNvcHkgb2YgYW55IGlt
cHJvdmVtZW50cyB0aGF0IHlvdQorOzs7IG1ha2UgdG8gdGhpcyBzb2Z0d2FyZSBzbyB0aGF0IHRo
ZXkgbWF5IGJlIGluY29ycG9yYXRlZCB3aXRoaW4gaXQgdG8KKzs7OyB0aGUgYmVuZWZpdCBvZiB0
aGUgU2NoZW1lIGNvbW11bml0eS4KKwwKKworKGRlZmluZS1tb2R1bGUgKHNyZmkgc3JmaS0xMjUp
CisgICM6dXNlLW1vZHVsZSAoc3JmaSBzcmZpLTEpCisgICM6dXNlLW1vZHVsZSAoc3JmaSBzcmZp
LTEyOCkKKyAgIzp1c2UtbW9kdWxlICgocm5ycyBiYXNlKSAjOnNlbGVjdCAoc3ltYm9sPT8pKQor
ICAjOnVzZS1tb2R1bGUgKChpY2UtOSBnZW5lcmljLWhhc2gtdGFibGVzKSAjOnByZWZpeCBnZW46
KQorICAjOmV4cG9ydCAoOzsgVHlwZSBjb25zdHJ1Y3RvcnMgYW5kIHByZWRpY2F0ZQorICAgICAg
ICAgICAgbWFrZS1oYXNoLXRhYmxlCisgICAgICAgICAgICBoYXNoLXRhYmxlIGhhc2gtdGFibGUt
dW5mb2xkIGFsaXN0LT5oYXNoLXRhYmxlCisgICAgICAgICAgICA7OyBQcmVkaWNhdGVzCisgICAg
ICAgICAgICBoYXNoLXRhYmxlPyBoYXNoLXRhYmxlLWNvbnRhaW5zPyBoYXNoLXRhYmxlLWVtcHR5
PyBoYXNoLXRhYmxlPT8KKyAgICAgICAgICAgIGhhc2gtdGFibGUtbXV0YWJsZT8KKyAgICAgICAg
ICAgIDs7IEFjY2Vzc29ycworICAgICAgICAgICAgaGFzaC10YWJsZS1yZWYgaGFzaC10YWJsZS1y
ZWYvZGVmYXVsdAorICAgICAgICAgICAgOzsgTXV0YXRvcnMKKyAgICAgICAgICAgIGhhc2gtdGFi
bGUtc2V0ISBoYXNoLXRhYmxlLWRlbGV0ZSEgaGFzaC10YWJsZS1pbnRlcm4hIGhhc2gtdGFibGUt
dXBkYXRlIQorICAgICAgICAgICAgaGFzaC10YWJsZS11cGRhdGUhL2RlZmF1bHQgaGFzaC10YWJs
ZS1wb3AhIGhhc2gtdGFibGUtY2xlYXIhCisgICAgICAgICAgICA7OyBUaGUgd2hvbGUgaGFzaCB0
YWJsZQorICAgICAgICAgICAgaGFzaC10YWJsZS1zaXplIGhhc2gtdGFibGUta2V5cyBoYXNoLXRh
YmxlLXZhbHVlcyBoYXNoLXRhYmxlLWVudHJpZXMKKyAgICAgICAgICAgIGhhc2gtdGFibGUtZmlu
ZCBoYXNoLXRhYmxlLWNvdW50CisgICAgICAgICAgICA7OyBNYXBwaW5nIGFuZCBmb2xkaW5nCisg
ICAgICAgICAgICBoYXNoLXRhYmxlLW1hcCBoYXNoLXRhYmxlLWZvci1lYWNoIGhhc2gtdGFibGUt
bWFwISBoYXNoLXRhYmxlLW1hcC0+bGlzdAorICAgICAgICAgICAgaGFzaC10YWJsZS1mb2xkIGhh
c2gtdGFibGUtcHJ1bmUhCisgICAgICAgICAgICA7OyBDb3B5aW5nCisgICAgICAgICAgICBoYXNo
LXRhYmxlLWNvcHkgaGFzaC10YWJsZS1lbXB0eS1jb3B5CisgICAgICAgICAgICA7OyBDb252ZXJz
aW9uCisgICAgICAgICAgICBoYXNoLXRhYmxlLT5hbGlzdAorICAgICAgICAgICAgOzsgSGFzaCB0
YWJsZXMgYXMgc2V0cworICAgICAgICAgICAgaGFzaC10YWJsZS11bmlvbiEgaGFzaC10YWJsZS1p
bnRlcnNlY3Rpb24hIGhhc2gtdGFibGUtZGlmZmVyZW5jZSEKKyAgICAgICAgICAgIGhhc2gtdGFi
bGUteG9yIQorICAgICAgICAgICAgOzsgVGhlIGZvbGxvd2luZyBwcm9jZWR1cmVzIGFyZSBkZXBy
ZWNhdGVkIGJ5IFNSRkkgMTI1OgorICAgICAgICAgICAgKGRlcHJlY2F0ZWQ6aGFzaC10YWJsZS1l
eGlzdHM/IC4gaGFzaC10YWJsZS1leGlzdHM/KQorICAgICAgICAgICAgKGRlcHJlY2F0ZWQ6aGFz
aC10YWJsZS13YWxrIC4gaGFzaC10YWJsZS13YWxrKQorICAgICAgICAgICAgKGRlcHJlY2F0ZWQ6
aGFzaC10YWJsZS1tZXJnZSEgLiBoYXNoLXRhYmxlLW1lcmdlISkKKyAgICAgICAgICAgIDs7IEZp
eG1lOiBzaG91bGQgd2UgcmVhbGx5IGRlcHJlY2F0ZSB0aGVzZSBpbiBHdWlsZT8KKyAgICAgICAg
ICAgIChkZXByZWNhdGVkOmhhc2ggLiBoYXNoKQorICAgICAgICAgICAgKGRlcHJlY2F0ZWQ6c3Ry
aW5nLWhhc2ggLiBzdHJpbmctaGFzaCkKKyAgICAgICAgICAgIChkZXByZWNhdGVkOnN0cmluZy1j
aS1oYXNoIC4gc3RyaW5nLWNpLWhhc2gpCisgICAgICAgICAgICAoZGVwcmVjYXRlZDpoYXNoLWJ5
LWlkZW50aXR5IC4gaGFzaC1ieS1pZGVudGl0eSkKKyAgICAgICAgICAgIChkZXByZWNhdGVkOmhh
c2gtdGFibGUtZXF1aXZhbGVuY2UtZnVuY3Rpb24gLiBoYXNoLXRhYmxlLWVxdWl2YWxlbmNlLWZ1
bmN0aW9uKQorICAgICAgICAgICAgKGRlcHJlY2F0ZWQ6aGFzaC10YWJsZS1oYXNoLWZ1bmN0aW9u
IC4gaGFzaC10YWJsZS1oYXNoLWZ1bmN0aW9uKSkKKyAgIzpyZXBsYWNlIChtYWtlLWhhc2gtdGFi
bGUgaGFzaC10YWJsZT8pKQorCisoY29uZC1leHBhbmQtcHJvdmlkZSAoY3VycmVudC1tb2R1bGUp
ICcoc3JmaS0xMjUpKQorCisMCis7OzsgUHJpdmF0ZSBzdHVmZiwgbm90IGV4cG9ydGVkLgorCis7
OyBUZW4gb2YgdGhlIFNSRkkgMTI1IHByb2NlZHVyZXMgYXJlIGRlcHJlY2F0ZWQsIGFuZCBhbm90
aGVyCis7OyB0d28gYWxsb3cgYWx0ZXJuYXRpdmUgYXJndW1lbnRzIHRoYXQgYXJlIGRlcHJlY2F0
ZWQuCisKKyhkZWZpbmUgKGlzc3VlLWRlcHJlY2F0ZWQtd2FybmluZ3M/KSAjdCkKKworKGRlZmlu
ZSAoaXNzdWUtd2FybmluZy1kZXByZWNhdGVkIG5hbWUtb2YtZGVwcmVjYXRlZC1taXNmZWF0dXJl
KQorICAoaWYgKG5vdCAobWVtcSBuYW1lLW9mLWRlcHJlY2F0ZWQtbWlzZmVhdHVyZSBhbHJlYWR5
LXdhcm5lZCkpCisgICAgICAoYmVnaW4KKyAgICAgICAgKHNldCEgYWxyZWFkeS13YXJuZWQKKyAg
ICAgICAgICAoY29ucyBuYW1lLW9mLWRlcHJlY2F0ZWQtbWlzZmVhdHVyZSBhbHJlYWR5LXdhcm5l
ZCkpCisgICAgICAgIChpZiAoaXNzdWUtZGVwcmVjYXRlZC13YXJuaW5ncz8pCisgICAgICAgICAg
ICAobGV0ICgob3V0IChjdXJyZW50LWVycm9yLXBvcnQpKSkKKyAgICAgICAgICAgICAgKGRpc3Bs
YXkgIldBUk5JTkc6ICIgb3V0KQorICAgICAgICAgICAgICAoZGlzcGxheSBuYW1lLW9mLWRlcHJl
Y2F0ZWQtbWlzZmVhdHVyZSBvdXQpCisgICAgICAgICAgICAgIChuZXdsaW5lIG91dCkKKyAgICAg
ICAgICAgICAgKGRpc3BsYXkgIiAgICBpcyBkZXByZWNhdGVkIGJ5IFNSRkkgMTI1LiAgU2VlIiBv
dXQpCisgICAgICAgICAgICAgIChuZXdsaW5lIG91dCkKKyAgICAgICAgICAgICAgKGRpc3BsYXkg
IiAgICAiIG91dCkKKyAgICAgICAgICAgICAgKGRpc3BsYXkgdXJsOmRlcHJlY2F0ZWQgb3V0KQor
ICAgICAgICAgICAgICAobmV3bGluZSBvdXQpKSkpKSkKKworKGRlZmluZSB1cmw6ZGVwcmVjYXRl
ZAorICAiaHR0cDovL3NyZmkuc2NoZW1lcnMub3JnL3NyZmktMTI1L3NyZmktMTI1Lmh0bWwiKQor
Cis7OyBMaXN0IG9mIGRlcHJlY2F0ZWQgZmVhdHVyZXMgZm9yIHdoaWNoIGEgd2FybmluZyBoYXMg
YWxyZWFkeQorOzsgYmVlbiBpc3N1ZWQuCisKKyhkZWZpbmUgYWxyZWFkeS13YXJuZWQgJygpKQor
Cis7OzsgQ29tZW50YXJ5IGZyb20gU1JGSSAxMjUgc3RhbmRhcmQgaW1wbGVtZW50YXRpb24KKzs7
OworOzs7IENvbXBhcmF0b3JzIGNvbnRhaW4gYSB0eXBlIHRlc3QgcHJlZGljYXRlLCB3aGljaCBp
bXBsZW1lbnRhdGlvbnMKKzs7OyBvZiB0aGUgaGFzaC10YWJsZS1zZXQhIHByb2NlZHVyZSBjYW4g
dXNlIHRvIHJlamVjdCBpbnZhbGlkIGtleXMuCis7OzsgVGhhdCdzIGhhcmQgdG8gZG8gd2l0aG91
dCBzYWNyaWZpY2luZyBpbnRlcm9wZXJhYmlsaXR5IHdpdGggUjZSUworOzs7IGFuZC9vciBTUkZJ
IDY5IGFuZC9vciBTUkZJIDEyNiBoYXNoIHRhYmxlcy4KKzs7OworOzs7IEZ1bGwgaW50ZXJvcGVy
YWJpbGl0eSBtZWFucyB0aGUgaGFzaCB0YWJsZXMgaW1wbGVtZW50ZWQgaGVyZSBhcmUKKzs7OyBp
bnRlcmNoYW5nZWFibGUgd2l0aCB0aGUgU1JGSSAxMjYgaGFzaHRhYmxlcyB1c2VkIHRvIGltcGxl
bWVudCB0aGVtLgorOzs7IFNSRkkgNjkgYW5kIFI2UlMgYW5kIFNSRkkgMTI2IGhhc2h0YWJsZXMg
ZG9uJ3QgY29udGFpbiBjb21wYXJhdG9ycywKKzs7OyBzbyBhbnkgYXNzb2NpYXRpb24gYmV0d2Vl
biBhIGhhc2ggdGFibGUgYW5kIGl0cyBjb21wYXJhdG9yIHdvdWxkIGhhdmUKKzs7OyB0byBiZSBt
YWludGFpbmVkIG91dHNpZGUgdGhlIHJlcHJlc2VudGF0aW9uIG9mIGhhc2ggdGFibGVzIHRoZW1z
ZWx2ZXMsCis7Ozsgd2hpY2ggaXMgcHJvYmxlbWF0aWMgdW5sZXNzIHdlYWsgcG9pbnRlcnMgYXJl
IGF2YWlsYWJsZS4KKzs7OworOzs7IE5vdCBhbGwgb2YgdGhlIGhhc2ggdGFibGVzIGltcGxlbWVu
dGVkIGhlcmUgd2lsbCBoYXZlIGNvbXBhcmF0b3JzCis7OzsgYXNzb2NpYXRlZCB3aXRoIHRoZW0g
YW55d2F5LCBiZWNhdXNlIGFuIGVxdWl2YWxlbmNlIHByb2NlZHVyZQorOzs7IGFuZCBoYXNoIGZ1
bmN0aW9uIGNhbiBiZSB1c2VkIHRvIGNyZWF0ZSBhIGhhc2ggdGFibGUgaW5zdGVhZCBvZgorOzs7
IGEgY29tcGFyYXRvciAoYWx0aG91Z2ggdGhhdCB1c2FnZSBpcyBkZXByZWNhdGVkIGJ5IFNSRkkg
MTI1KS4KKzs7OworOzs7IE9uZSB3YXkgdG8gcHJlc2VydmUgaW50ZXJvcGVyYWJpbGl0eSB3aGls
ZSBlbmZvcmNpbmcgYSBjb21wYXJhdG9yJ3MKKzs7OyB0eXBlIHRlc3QgaXMgdG8gaW5jb3Jwb3Jh
dGUgdGhhdCB0ZXN0IGludG8gYSBoYXNoIHRhYmxlJ3MgaGFzaAorOzs7IGZ1bmN0aW9uLiAgVGhl
IGFkdmFudGFnZSBvZiBkb2luZyB0aGF0IHNob3VsZCBiZSB3ZWlnaGVkIGFnYWluc3QKKzs7OyB0
aGVzZSBkaXNhZHZhbnRhZ2VzOgorOzs7Cis7OzsgICAgIElmIHRoZSB0eXBlIHRlc3QgaXMgc2xv
dywgdGhlbiBoYXNoaW5nIHdvdWxkIGFsc28gYmUgc2xvd2VyLgorOzs7Cis7OzsgICAgIFRoZSBS
NlJTLCBTUkZJIDY5LCBhbmQgU1JGSSAxMjYgQVBJcyBhbGxvdyBleHRyYWN0aW9uIG9mCis7Ozsg
ICAgIGEgaGFzaCBmdW5jdGlvbiBmcm9tIHNvbWUgaGFzaCB0YWJsZXMuCis7OzsgICAgIFNvbWUg
cHJvZ3JhbW1lcnMgbWlnaHQgZXhwZWN0IHRoYXQgaGFzaCBmdW5jdGlvbiB0byBiZSB0aGUKKzs7
OyAgICAgaGFzaCBmdW5jdGlvbiBlbmNhcHN1bGF0ZWQgYnkgdGhlIGNvbXBhcmF0b3IgKGluIHRo
ZSBzZW5zZQorOzs7ICAgICBvZiBlcT8sIHBlcmhhcHMpIGV2ZW4gdGhvdWdoIHRoaXMgQVBJIG1h
a2VzIG5vIHN1Y2ggZ3VhcmFudGVlCis7OzsgICAgIChhbmQgZXh0cmFjdGlvbiBvZiB0aGF0IGhh
c2ggZnVuY3Rpb24gZnJvbSBhbiBleGlzdGluZyBoYXNoCis7OzsgICAgIHRhYmxlIGNhbiBvbmx5
IGJlIGRvbmUgYnkgY2FsbGluZyBhIGRlcHJlY2F0ZWQgcHJvY2VkdXJlKS4KKworOzsgSWYgJWVu
Zm9yY2UtY29tcGFyYXRvci10eXBlLXRlc3RzIGlzIHRydWUsIHRoZW4gbWFrZS1oYXNoLXRhYmxl
LAorOzsgd2hlbiBwYXNzZWQgYSBjb21wYXJhdG9yLCB3aWxsIHVzZSBhIGhhc2ggZnVuY3Rpb24g
dGhhdCBlbmZvcmNlcworOzsgdGhlIGNvbXBhcmF0b3IncyB0eXBlIHRlc3QuCisKKyhkZWZpbmUg
JWVuZm9yY2UtY29tcGFyYXRvci10eXBlLXRlc3RzICN0KQorCis7OzsgRG9uJ3QgdXNlIEhBU0gt
RlVOQ1RJT04gaWYgRVFVSVYgaXMgYSAoa25vd24pIHJlZmluZW1lbnQgb2YgRVFVQUw/CisoZGVm
aW5lICglZ2V0LWhhc2gtdGFibGUtaGFzaC1mdW5jdGlvbiBlcXVpdiBoYXNoLWZ1bmN0aW9uKQor
ICAoaWYgKG9yIChlcT8gZXE/IGVxdWl2KQorICAgICAgICAgIChlcT8gZXF2PyBlcXVpdikKKyAg
ICAgICAgICAoZXE/IGVxdWFsPyBlcXVpdikKKyAgICAgICAgICAoZXE/IHN0cmluZz0/IGVxdWl2
KSkKKyAgICAgIDs7IExldCBHRU5FUklDLUhBU0gtVEFCTEVTIGRlY2lkZSBhIGJldHRlciBIQVNI
LUZVTkNUSU9OCisgICAgICAjZgorICAgICAgOzsgTm90IHJlcXVpcmVkIGJ5IHNwZWNpZmljYXRp
b24sIGJ1dCBpbXBsZW1lbnRlZCBieSBzdGFuZGFyZAorICAgICAgOzsgaW1wbGVtZW50YXRpb24K
KyAgICAgIChpZiAoZXE/IHN5bWJvbD0/IGVxdWl2KQorICAgICAgICAgIHN5bWJvbC1oYXNoCisg
ICAgICAgICAgaGFzaC1mdW5jdGlvbikpKQorCis7OzsgR2l2ZW4gYSBjb21wYXJhdG9yLCByZXR1
cm4gaXRzIGhhc2ggZnVuY3Rpb24sIHBvc3NpYmx5IGF1Z21lbnRlZAorOzs7IGJ5IHRoZSBjb21w
YXJhdG9yJ3MgdHlwZSB0ZXN0LgorKGRlZmluZSAoJWNvbXBhcmF0b3ItaGFzaC1mdW5jdGlvbiBj
b21wYXJhdG9yKQorICAobGV0ICgob2theT8gKGNvbXBhcmF0b3ItdHlwZS10ZXN0LXByZWRpY2F0
ZSBjb21wYXJhdG9yKSkKKyAgICAgICAgKGhhc2gtZnVuY3Rpb24gKCVnZXQtaGFzaC10YWJsZS1o
YXNoLWZ1bmN0aW9uCisgICAgICAgICAgICAgICAgICAgICAgICAoY29tcGFyYXRvci1lcXVhbGl0
eS1wcmVkaWNhdGUgY29tcGFyYXRvcikKKyAgICAgICAgICAgICAgICAgICAgICAgIChjb21wYXJh
dG9yLWhhc2gtZnVuY3Rpb24gY29tcGFyYXRvcikpKSkKKyAgICAoYW5kIGhhc2gtZnVuY3Rpb24K
KyAgICAgICAgIChpZiAoYW5kICVlbmZvcmNlLWNvbXBhcmF0b3ItdHlwZS10ZXN0cworICAgICAg
ICAgICAgICAgICAgOzsgVGhlc2UgcHJvY2VkdXJlcyBhbHJlYWR5IHRlc3QgdHlwZQorICAgICAg
ICAgICAgICAgICAgKG5vdCAob3IgKGVxPyBoYXNoLWZ1bmN0aW9uIHN5bWJvbC1oYXNoKQorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgKGVxPyBoYXNoLWZ1bmN0aW9uIHN0cmluZy1jaS1oYXNo
KSkpKQorICAgICAgICAgICAgIChsYW1iZGEgKHgpCisgICAgICAgICAgICAgICAoY29uZCAoKG5v
dCAob2theT8geCkpCisgICAgICAgICAgICAgICAgICAgICAgKGVycm9yICJLZXkgcmVqZWN0ZWQg
YnkgaGFzaC10YWJsZSBjb21wYXJhdG9yIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICB4
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbXBhcmF0b3IpKQorICAgICAgICAgICAg
ICAgICAgICAgKGVsc2UKKyAgICAgICAgICAgICAgICAgICAgICAoaGFzaC1mdW5jdGlvbiB4KSkp
KQorICAgICAgICAgICAgIGhhc2gtZnVuY3Rpb24pKSkpCisKKzs7OyBXZSBsZXQgR0VORVJJQy1I
QVNILVRBQkxFUyBkZWNpZGUgd2hpY2ggd2Vha25lc3NlcyBhcmUgc3VwcG9ydGVkCisoZGVmaW5l
ICglY2hlY2stb3B0aW9uYWwtYXJndW1lbnRzIHByb2NuYW1lIGFyZ3MpCisgIChpZiAobWVtcSAn
dGhyZWFkLXNhZmUgYXJncykKKyAgICAgIChlcnJvciAoc3RyaW5nLWFwcGVuZCAoc3ltYm9sLT5z
dHJpbmcgcHJvY25hbWUpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIjogdW5zdXBwb3J0
ZWQgb3B0aW9uYWwgYXJndW1lbnQocykiKQorICAgICAgICAgICAgIGFyZ3MpKSkKKworKGRlZmlu
ZSAoJWdldC1oYXNoLXRhYmxlLXdlYWtuZXNzIGFyZ3MpCisgIChjb25kCisgICAoKG1lbXEgJ2Vw
aGVtZXJhbC12YWx1ZXMgYXJncykKKyAgICAoaWYgKG9yIChtZW1xICdlcGhlbWVyYWwta2V5cyBh
cmdzKQorICAgICAgICAgICAgKG1lbXEgJ3dlYWsta2V5cyBhcmdzKSkKKyAgICAgICAgJ2VwaGVt
ZXJhbC1rZXktYW5kLXZhbHVlCisgICAgICAgICdlcGhlbWVyYWwtdmFsdWUpKQorICAgKChtZW1x
ICdlcGhlbWVyYWwta2V5cyBhcmdzKQorICAgIChpZiAobWVtcSAnd2Vhay12YWx1ZXMgYXJncykK
KyAgICAgICAgJ2VwaGVtZXJhbC1rZXktYW5kLXZhbHVlCisgICAgICAgICdlcGhlbWVyYWwta2V5
KSkKKyAgICgobWVtcSAnd2Vhay1rZXlzIGFyZ3MpCisgICAgKGlmIChtZW1xICd3ZWFrLXZhbHVl
cyBhcmdzKQorICAgICAgICAnd2Vhay1rZXktYW5kLXZhbHVlCisgICAgICAgICd3ZWFrLWtleSkp
CisgICAoKG1lbXEgJ3dlYWstdmFsdWVzIGFyZ3MpCisgICAgJ3dlYWstdmFsdWUpCisgICAoZWxz
ZSAjZikpKQorCisoZGVmaW5lICglZ2V0LWhhc2gtdGFibGUtY2FwYWNpdHkgYXJncykKKyAgKG9y
IChmaW5kIGludGVnZXI/IGFyZ3MpIDEpKQorCisMCis7OzsgQ29uc3RydWN0b3JzLgorCis7Ozsg
Q29tZW50YXJ5IGZyb20gU1JGSSAxMjUgc3RhbmRhcmQgaW1wbGVtZW50YXRpb24KKzs7OworOzs7
IFRoZSBmaXJzdCBhcmd1bWVudCBjYW4gYmUgYSBjb21wYXJhdG9yIG9yIGFuIGVxdWFsaXR5IHBy
ZWRpY2F0ZS4KKzs7OworOzs7IElmIHRoZSBmaXJzdCBhcmd1bWVudCBpcyBhIGNvbXBhcmF0b3Is
IGFueSByZW1haW5pbmcgYXJndW1lbnRzCis7OzsgYXJlIGltcGxlbWVudGF0aW9uLWRlcGVuZGVu
dCwgYnV0IGEgbm9uLW5lZ2F0aXZlIGV4YWN0IGludGVnZXIKKzs7OyBzaG91bGQgYmUgaW50ZXJw
cmV0ZWQgYXMgYW4gaW5pdGlhbCBjYXBhY2l0eSBhbmQgdGhlIHN5bWJvbHMKKzs7OyB0aHJlYWQt
c2FmZSwgd2Vhay1rZXlzLCBlcGhlbWVyYWwta2V5cywgd2Vhay12YWx1ZXMsIGFuZAorOzs7IGVt
cGhlbWVyYWwtdmFsdWVzIHNob3VsZCBiZSBpbnRlcnByZXRlZCBzcGVjaWFsbHkuICAoVGhlc2UK
Kzs7OyBzcGVjaWFsIHN5bWJvbHMgYXJlIGRpc3RpbmN0IGZyb20gdGhlIGFuYWxvZ291cyBzcGVj
aWFsIHN5bWJvbHMKKzs7OyBpbiBTUkZJIDEyNi4pCis7OzsKKzs7OyBJZiB0aGUgZmlyc3QgYXJn
dW1lbnQgaXMgbm90IGEgY29tcGFyYXRvciwgdGhlbiBpdCBoYWQgYmV0dGVyCis7OzsgYmUgYW4g
ZXF1YWxpdHkgcHJlZGljYXRlICh3aGljaCBpcyBkZXByZWNhdGVkIGJ5IFNSRkkgMTI1KS4KKzs7
OyBJZiBhIHNlY29uZCBhcmd1bWVudCBpcyBwcmVzZW50IGFuZCBpcyBhIHByb2NlZHVyZSwgdGhl
biBpdCdzCis7OzsgYSBoYXNoIGZ1bmN0aW9uICh3aGljaCBpcyBhbGxvd2VkIG9ubHkgZm9yIHRo
ZSBkZXByZWNhdGVkIGNhc2UKKzs7OyBpbiB3aGljaCB0aGUgZmlyc3QgYXJndW1lbnQgaXMgYW4g
ZXF1YWxpdHkgcHJlZGljYXRlKS4gIElmIGEKKzs7OyBzZWNvbmQgYXJndW1lbnQgaXMgbm90IGEg
cHJvY2VkdXJlLCB0aGVuIGl0J3Mgc29tZSBraW5kIG9mCis7OzsgaW1wbGVtZW50YXRpb24tZGVw
ZW5kZW50IG9wdGlvbmFsIGFyZ3VtZW50LCBhcyBhcmUgYWxsIGFyZ3VtZW50cworOzs7IGJleW9u
ZCB0aGUgc2Vjb25kLgorOzs7Cis7OzsgU1JGSSAxMjggZGVmaW5lcyBtYWtlLWVxLWNvbXBhcmF0
b3IsIG1ha2UtZXF2LWNvbXBhcmF0b3IsIGFuZAorOzs7IG1ha2UtZXF1YWwtY29tcGFyYXRvciBw
cm9jZWR1cmVzIHdob3NlIGhhc2ggZnVuY3Rpb24gaXMgdGhlCis7OzsgZGVmYXVsdC1oYXNoIHBy
b2NlZHVyZSBvZiBTUkZJIDEyOCwgd2hpY2ggaXMgaW5hcHByb3ByaWF0ZQorOzs7IGZvciB1c2Ug
d2l0aCBlcT8gYW5kIGVxdj8gdW5sZXNzIHRoZSBvYmplY3QgYmVpbmcgaGFzaGVkIGlzCis7Ozsg
bmV2ZXIgbXV0YXRlZC4gIE5laXRoZXIgU1JGSSAxMjUgbm9yIDEyOCBwcm92aWRlIGFueSB3YXkg
dG8KKzs7OyBkZWZpbmUgYSBjb21wYXJhdG9yIHdob3NlIGhhc2ggZnVuY3Rpb24gaXMgdHJ1bHkg
Y29tcGF0aWJsZQorOzs7IHdpdGggdGhlIHVzZSBvZiBlcT8gb3IgZXF2PyBhcyBhbiBlcXVhbGl0
eSBwcmVkaWNhdGUuCis7OzsKKzs7OyBUaGF0IHdvdWxkIG1ha2UgU1JGSSAxMjUgYWxtb3N0IGFz
IGJhZCBhcyBTUkZJIDY5IGlmIG5vdCBmb3IKKzs7OyB0aGUgZm9sbG93aW5nIHBhcmFncmFwaCBv
ZiBTUkZJIDEyNToKKzs7OworOzs7ICAgICBJbXBsZW1lbnRhdGlvbnMgYXJlIHBlcm1pdHRlZCB0
byBpZ25vcmUgdXNlci1zcGVjaWZpZWQKKzs7OyAgICAgaGFzaCBmdW5jdGlvbnMgaW4gY2VydGFp
biBjaXJjdW1zdGFuY2VzLiBTcGVjaWZpY2FsbHksCis7OzsgICAgIGlmIHRoZSBlcXVhbGl0eSBw
cmVkaWNhdGUsIHdoZXRoZXIgcGFzc2VkIGFzIHBhcnQgb2YgYQorOzs7ICAgICBjb21wYXJhdG9y
IG9yIGV4cGxpY2l0bHksIGlzIG1vcmUgZmluZS1ncmFpbmVkIChpbiB0aGUKKzs7OyAgICAgc2Vu
c2Ugb2YgUjdSUy1zbWFsbCBzZWN0aW9uIDYuMSkgdGhhbiBlcXVhbD8sIHRoZQorOzs7ICAgICBp
bXBsZW1lbnRhdGlvbiBpcyBmcmVlIOKAlCBpbmRlZWQsIGlzIGVuY291cmFnZWQg4oCUIHRvCis7
OzsgICAgIGlnbm9yZSB0aGUgdXNlci1zcGVjaWZpZWQgaGFzaCBmdW5jdGlvbiBhbmQgdXNlIHNv
bWV0aGluZworOzs7ICAgICBpbXBsZW1lbnRhdGlvbi1kZXBlbmRlbnQuIFRoaXMgYWxsb3dzIHRo
ZSB1c2Ugb2YgYWRkcmVzc2VzCis7OzsgICAgIGFzIGhhc2hlcywgaW4gd2hpY2ggY2FzZSB0aGUg
a2V5cyBtdXN0IGJlIHJlaGFzaGVkIGlmCis7OzsgICAgIHRoZXkgYXJlIG1vdmVkIGJ5IHRoZSBn
YXJiYWdlIGNvbGxlY3Rvci4gU3VjaCBhIGhhc2gKKzs7OyAgICAgZnVuY3Rpb24gaXMgdW5zYWZl
IHRvIHVzZSBvdXRzaWRlIHRoZSBjb250ZXh0IG9mCis7OzsgICAgIGltcGxlbWVudGF0aW9uLXBy
b3ZpZGVkIGhhc2ggdGFibGVzLiBJdCBjYW4gb2YgY291cnNlIGJlCis7OzsgICAgIGV4cG9zZWQg
YnkgYW4gaW1wbGVtZW50YXRpb24gYXMgYW4gZXh0ZW5zaW9uLCB3aXRoCis7OzsgICAgIHN1aXRh
YmxlIHdhcm5pbmdzIGFnYWluc3QgaW5hcHByb3ByaWF0ZSB1c2VzLgorOzs7Cis7OzsgVGhhdCBn
aXZlcyBpbXBsZW1lbnRhdGlvbnMgcGVybWlzc2lvbiB0byBkbyBzb21ldGhpbmcgbW9yZQorOzs7
IHVzZWZ1bCwgYnV0IHdoZW4gc2hvdWxkIGltcGxlbWVudGF0aW9ucyB0YWtlIGFkdmFudGFnZSBv
ZgorOzs7IHRoYXQgcGVybWlzc2lvbj8gIFRoaXMgaW1wbGVtZW50YXRpb24gdXNlcyB0aGUgc3Vw
ZXJpb3IKKzs7OyBzb2x1dGlvbiBwcm92aWRlZCBieSBTUkZJIDEyNiB3aGVuZXZlcjoKKzs7Owor
Ozs7ICAgICBBIGNvbXBhcmF0b3IgaXMgcGFzc2VkIGFzIGZpcnN0IGFyZ3VtZW50IGFuZCBpdHMg
ZXF1YWxpdHkKKzs7OyAgICAgcHJlZGljYXRlIGlzIGVxPyBvciBlcXY/LgorOzs7Cis7OzsgICAg
IFRoZSBlcT8gb3IgZXF2PyBwcm9jZWR1cmUgaXMgcGFzc2VkIGFzIGZpcnN0IGFyZ3VtZW50Cis7
OzsgICAgICh3aGljaCBpcyBhIGRlcHJlY2F0ZWQgdXNhZ2UpLgorCisoZGVmaW5lIChtYWtlLWhh
c2gtdGFibGUgY29tcGFyYXRvci9lcXVpdiAuIHJlc3QpCisgIChpZiAoY29tcGFyYXRvcj8gY29t
cGFyYXRvci9lcXVpdikKKyAgICAgIChsZXQgKChlcXVpdiAoY29tcGFyYXRvci1lcXVhbGl0eS1w
cmVkaWNhdGUgY29tcGFyYXRvci9lcXVpdikpCisgICAgICAgICAgICAoaGFzaC1mdW5jdGlvbiAo
JWNvbXBhcmF0b3ItaGFzaC1mdW5jdGlvbiBjb21wYXJhdG9yL2VxdWl2KSkpCisgICAgICAgICgl
bWFrZS1oYXNoLXRhYmxlIGVxdWl2IGhhc2gtZnVuY3Rpb24gcmVzdCkpCisgICAgICAobGV0KiAo
KGVxdWl2IGNvbXBhcmF0b3IvZXF1aXYpCisgICAgICAgICAgICAgKGhhc2gtZnVuY3Rpb24gKGlm
IChhbmQgKG5vdCAobnVsbD8gcmVzdCkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgKHByb2NlZHVyZT8gKGNhciByZXN0KSkpCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIChjYXIgcmVzdCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgI2YpKQor
ICAgICAgICAgICAgIChyZXN0IChpZiBoYXNoLWZ1bmN0aW9uIChjZHIgcmVzdCkgcmVzdCkpKQor
ICAgICAgICAoaXNzdWUtd2FybmluZy1kZXByZWNhdGVkICdzcmZpLTY5LXN0eWxlOm1ha2UtaGFz
aC10YWJsZSkKKyAgICAgICAgKCVtYWtlLWhhc2gtdGFibGUgZXF1aXYgKCVnZXQtaGFzaC10YWJs
ZS1oYXNoLWZ1bmN0aW9uIGVxdWl2IGhhc2gtZnVuY3Rpb24pCisgICAgICAgICAgICAgICAgICAg
ICAgICAgIHJlc3QpKSkpCisKKyhkZWZpbmUgKCVtYWtlLWhhc2gtdGFibGUgZXF1aXYgaGFzaC1m
dW5jdGlvbiBvcHRzKQorICAoJWNoZWNrLW9wdGlvbmFsLWFyZ3VtZW50cyAnbWFrZS1oYXNoLXRh
YmxlIG9wdHMpCisgIChsZXQgKCh3ZWFrbmVzcyAoJWdldC1oYXNoLXRhYmxlLXdlYWtuZXNzIG9w
dHMpKQorICAgICAgICAoY2FwYWNpdHkgKCVnZXQtaGFzaC10YWJsZS1jYXBhY2l0eSBvcHRzKSkp
CisgICAgKGdlbjptYWtlLWhhc2gtdGFibGUgZXF1aXYgaGFzaC1mdW5jdGlvbgorICAgICAgICAg
ICAgICAgICAgICAgICAgICM6Y2FwYWNpdHkgY2FwYWNpdHkgIzp3ZWFrbmVzcyB3ZWFrbmVzcykp
KQorCisoZGVmaW5lIChoYXNoLXRhYmxlIGNvbXBhcmF0b3IgLiBhcmdzKQorICAobGV0ICgoZXF1
aXYgKGNvbXBhcmF0b3ItZXF1YWxpdHktcHJlZGljYXRlIGNvbXBhcmF0b3IpKQorICAgICAgICAo
aGFzaC1mdW5jdGlvbiAoJWNvbXBhcmF0b3ItaGFzaC1mdW5jdGlvbiBjb21wYXJhdG9yKSkpCisg
ICAgKGFwcGx5IGdlbjpoYXNoLXRhYmxlIChpZiBoYXNoLWZ1bmN0aW9uCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAobGlzdCBlcXVpdiBoYXNoLWZ1bmN0aW9uKQorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgZXF1aXYpCisgICAgICAgICAgIGFyZ3MpKSkKKworKGRlZmluZSAo
aGFzaC10YWJsZS11bmZvbGQgc3RvcD8gbWFwcGVyIHN1Y2Nlc3NvciBzZWVkIGNvbXBhcmF0b3Ig
LiByZXN0KQorICAobGV0ICgoZXF1aXYgKGNvbXBhcmF0b3ItZXF1YWxpdHktcHJlZGljYXRlIGNv
bXBhcmF0b3IpKQorICAgICAgICAoaGFzaC1mdW5jdGlvbiAoJWNvbXBhcmF0b3ItaGFzaC1mdW5j
dGlvbiBjb21wYXJhdG9yKSkKKyAgICAgICAgKHdlYWtuZXNzICglZ2V0LWhhc2gtdGFibGUtd2Vh
a25lc3MgcmVzdCkpCisgICAgICAgIChjYXBhY2l0eSAoJWdldC1oYXNoLXRhYmxlLWNhcGFjaXR5
IHJlc3QpKSkKKyAgICAoZ2VuOmhhc2gtdGFibGUtdW5mb2xkIHN0b3A/IG1hcHBlciBzdWNjZXNz
b3Igc2VlZAorICAgICAgICAgICAgICAgICAgICAgICAgICAgZXF1aXYgaGFzaC1mdW5jdGlvbiAj
OndlYWtuZXNzIHdlYWtuZXNzCisgICAgICAgICAgICAgICAgICAgICAgICAgICAjOmNhcGFjaXR5
IGNhcGFjaXR5KSkpCisKKyhkZWZpbmUgKGFsaXN0LT5oYXNoLXRhYmxlIGFsaXN0IGNvbXBhcmF0
b3IvZXF1aXYgLiByZXN0KQorICAoaWYgKHByb2NlZHVyZT8gY29tcGFyYXRvci9lcXVpdikKKyAg
ICAgIChsZXQqICgoZXF1aXYgY29tcGFyYXRvci9lcXVpdikKKyAgICAgICAgICAgICAoaGFzaC1m
dW5jdGlvbiAoYW5kIChwYWlyPyByZXN0KSAocHJvY2VkdXJlPyAoY2FyIHJlc3QpKQorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNhciByZXN0KSkpCisgICAgICAgICAgICAgKHJl
c3QgKGlmIGhhc2gtZnVuY3Rpb24gKGNkciByZXN0KSByZXN0KSkKKyAgICAgICAgICAgICAoaGFz
aC1mdW5jdGlvbiAoJWdldC1oYXNoLXRhYmxlLWhhc2gtZnVuY3Rpb24gZXF1aXYgaGFzaC1mdW5j
dGlvbikpCisgICAgICAgICAgICAgKHdlYWtuZXNzICglZ2V0LWhhc2gtdGFibGUtd2Vha25lc3Mg
cmVzdCkpCisgICAgICAgICAgICAgKGNhcGFjaXR5ICglZ2V0LWhhc2gtdGFibGUtY2FwYWNpdHkg
cmVzdCkpKQorICAgICAgICAoaXNzdWUtd2FybmluZy1kZXByZWNhdGVkICdzcmZpLTY5LXN0eWxl
OmFsaXN0LT5oYXNoLXRhYmxlKQorICAgICAgICAoZ2VuOmFsaXN0LT5oYXNoLXRhYmxlIGFsaXN0
IGVxdWl2IGhhc2gtZnVuY3Rpb24KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjOmNh
cGFjaXR5IGNhcGFjaXR5ICM6d2Vha25lc3Mgd2Vha25lc3MpKQorICAgICAgKGxldCogKChlcXVp
diAoY29tcGFyYXRvci1lcXVhbGl0eS1wcmVkaWNhdGUgY29tcGFyYXRvci9lcXVpdikpCisgICAg
ICAgICAgICAgKGhhc2gtZnVuY3Rpb24gKCVjb21wYXJhdG9yLWhhc2gtZnVuY3Rpb24gY29tcGFy
YXRvci9lcXVpdikpCisgICAgICAgICAgICAgKHdlYWtuZXNzICglZ2V0LWhhc2gtdGFibGUtd2Vh
a25lc3MgcmVzdCkpCisgICAgICAgICAgICAgKGNhcGFjaXR5ICglZ2V0LWhhc2gtdGFibGUtY2Fw
YWNpdHkgcmVzdCkpKQorICAgICAgICAoZ2VuOmFsaXN0LT5oYXNoLXRhYmxlIGFsaXN0IGVxdWl2
IGhhc2gtZnVuY3Rpb24KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjOmNhcGFjaXR5
IGNhcGFjaXR5ICM6d2Vha25lc3Mgd2Vha25lc3MpKSkpCisKKwwKKzs7OzsgQWNjZXNzaW5nIHRh
YmxlIGl0ZW1zCisKKyhkZWZpbmUgaGFzaC10YWJsZS1yZWYgZ2VuOmhhc2gtdGFibGUtcmVmKQor
KGRlZmluZSBoYXNoLXRhYmxlLXJlZi9kZWZhdWx0IGdlbjpoYXNoLXRhYmxlLXJlZi9kZWZhdWx0
KQorCisMCis7OzsgUHJlZGljYXRlcy4KKworKGRlZmluZSBoYXNoLXRhYmxlPyBnZW46aGFzaC10
YWJsZT8pCisoZGVmaW5lIGhhc2gtdGFibGUtZW1wdHk/IGdlbjpoYXNoLXRhYmxlLWVtcHR5PykK
KyhkZWZpbmUgaGFzaC10YWJsZS1jb250YWlucz8gZ2VuOmhhc2gtdGFibGUtY29udGFpbnM/KQor
KGRlZmluZSBoYXNoLXRhYmxlLW11dGFibGU/IGdlbjpoYXNoLXRhYmxlLW11dGFibGU/KQorCiso
ZGVmaW5lIChoYXNoLXRhYmxlPT8gdmFsdWUtY29tcGFyYXRvciBodDEgaHQyKQorICAoZ2VuOmhh
c2gtdGFibGU9PyAoY29tcGFyYXRvci1lcXVhbGl0eS1wcmVkaWNhdGUgdmFsdWUtY29tcGFyYXRv
cikKKyAgICAgICAgICAgICAgICAgICAgaHQxIGh0MikpCisKKwwKKzs7OyBNdXRhdG9ycy4KKwor
KGRlZmluZSBoYXNoLXRhYmxlLXNldCEgZ2VuOmhhc2gtdGFibGUtc2V0ISkKKyhkZWZpbmUgaGFz
aC10YWJsZS1kZWxldGUhIGdlbjpoYXNoLXRhYmxlLWRlbGV0ZSEpCisoZGVmaW5lIGhhc2gtdGFi
bGUtaW50ZXJuISBnZW46aGFzaC10YWJsZS1pbnRlcm4hKQorKGRlZmluZSBoYXNoLXRhYmxlLXVw
ZGF0ZSEgZ2VuOmhhc2gtdGFibGUtdXBkYXRlISkKKyhkZWZpbmUgaGFzaC10YWJsZS11cGRhdGUh
L2RlZmF1bHQgZ2VuOmhhc2gtdGFibGUtdXBkYXRlIS9kZWZhdWx0KQorKGRlZmluZSBoYXNoLXRh
YmxlLXBvcCEgZ2VuOmhhc2gtdGFibGUtcG9wISkKKyhkZWZpbmUgKGhhc2gtdGFibGUtY2xlYXIh
IGh0KSAoZ2VuOmhhc2gtdGFibGUtY2xlYXIhIGh0KSkKKworDAorOzsgVGhlIHdob2xlIGhhc2gg
dGFibGUuCisKKyhkZWZpbmUgaGFzaC10YWJsZS1zaXplIGdlbjpoYXNoLXRhYmxlLXNpemUpCiso
ZGVmaW5lIGhhc2gtdGFibGUta2V5cyBnZW46aGFzaC10YWJsZS1rZXlzKQorKGRlZmluZSBoYXNo
LXRhYmxlLXZhbHVlcyBnZW46aGFzaC10YWJsZS12YWx1ZXMpCisoZGVmaW5lIGhhc2gtdGFibGUt
ZW50cmllcyBnZW46aGFzaC10YWJsZS1lbnRyaWVzKQorKGRlZmluZSBoYXNoLXRhYmxlLWZpbmQg
Z2VuOmhhc2gtdGFibGUtZmluZCkKKyhkZWZpbmUgaGFzaC10YWJsZS1jb3VudCBnZW46aGFzaC10
YWJsZS1jb3VudCkKKworDAorOzs7IE1hcHBpbmcgYW5kIGZvbGRpbmcuCisKKyhkZWZpbmUgaGFz
aC10YWJsZS1tYXAtPmxpc3QgZ2VuOmhhc2gtdGFibGUtbWFwLT5saXN0KQorKGRlZmluZSBoYXNo
LXRhYmxlLWZvci1lYWNoIGdlbjpoYXNoLXRhYmxlLWZvci1lYWNoKQorKGRlZmluZSBoYXNoLXRh
YmxlLXBydW5lISBnZW46aGFzaC10YWJsZS1wcnVuZSEpCisoZGVmaW5lIGhhc2gtdGFibGUtbWFw
ISBnZW46aGFzaC10YWJsZS1tYXAhKQorCisoZGVmaW5lIChoYXNoLXRhYmxlLW1hcCBwcm9jIGNv
bXBhcmF0b3IgaHQpCisgIChsZXQgKChlcXVpdiAoY29tcGFyYXRvci1lcXVhbGl0eS1wcmVkaWNh
dGUgY29tcGFyYXRvcikpCisgICAgICAgIChoYXNoLWZ1bmN0aW9uICglY29tcGFyYXRvci1oYXNo
LWZ1bmN0aW9uIGNvbXBhcmF0b3IpKSkKKyAgICAoZ2VuOmhhc2gtdGFibGUtbWFwIHByb2MgaHQg
ZXF1aXYgaGFzaC1mdW5jdGlvbikpKQorCisoZGVmaW5lIChoYXNoLXRhYmxlLWZvbGQgcHJvYyBp
bml0IGh0KQorICAoaWYgKGhhc2gtdGFibGU/IHByb2MpCisgICAgICAoYmVnaW4gKGlzc3VlLXdh
cm5pbmctZGVwcmVjYXRlZCAnc3JmaS02OS1zdHlsZTpoYXNoLXRhYmxlLWZvbGQpCisgICAgICAg
ICAgICAgKGhhc2gtdGFibGUtZm9sZCBpbml0IGh0IHByb2MpKQorICAgICAgKGdlbjpoYXNoLXRh
YmxlLWZvbGQgcHJvYyBpbml0IGh0KSkpCisKKworDAorOzs7IENvcHlpbmcgYW5kIGNvbnZlcnNp
b24uCisKKyhkZWZpbmUgaGFzaC10YWJsZS0+YWxpc3QgZ2VuOmhhc2gtdGFibGUtPmFsaXN0KQor
CisoZGVmaW5lKiAoaGFzaC10YWJsZS1jb3B5IGh0ICM6b3B0aW9uYWwgbXV0YWJsZSkKKyAgKGdl
bjpoYXNoLXRhYmxlLWNvcHkgaHQgIzptdXRhYmxlIG11dGFibGUpKQorCisoZGVmaW5lIChoYXNo
LXRhYmxlLWVtcHR5LWNvcHkgaHQpCisgIChnZW46aGFzaC10YWJsZS1lbXB0eS1jb3B5IGh0KSkK
KworDAorOzs7IEhhc2ggdGFibGVzIGFzIHNldHMuCisKKyhkZWZpbmUgKGhhc2gtdGFibGUtdW5p
b24hIGh0MSBodDIpCisgICh1bmxlc3MgKGVxPyAoZ2VuOmhhc2gtdGFibGUtZXF1aXZhbGVuY2Ut
ZnVuY3Rpb24gaHQxKQorICAgICAgICAgICAgICAgKGdlbjpoYXNoLXRhYmxlLWVxdWl2YWxlbmNl
LWZ1bmN0aW9uIGh0MikpCisgICAgKGVycm9yICJIYXNoIHRhYmxlcyBoYXZlIGRpZmZlcmVudCBl
cXVpdmFsZW5jZSBmdW5jdGlvbnMiIGh0MSBodDIpKQorICAoZ2VuOmhhc2gtdGFibGUtdW5pb24h
IGh0MSBodDIpKQorCisoZGVmaW5lIChoYXNoLXRhYmxlLWludGVyc2VjdGlvbiEgaHQxIGh0MikK
KyAgKHVubGVzcyAoZXE/IChnZW46aGFzaC10YWJsZS1lcXVpdmFsZW5jZS1mdW5jdGlvbiBodDEp
CisgICAgICAgICAgICAgICAoZ2VuOmhhc2gtdGFibGUtZXF1aXZhbGVuY2UtZnVuY3Rpb24gaHQy
KSkKKyAgICAoZXJyb3IgIkhhc2ggdGFibGVzIGhhdmUgZGlmZmVyZW50IGVxdWl2YWxlbmNlIGZ1
bmN0aW9ucyIgaHQxIGh0MikpCisgIChnZW46aGFzaC10YWJsZS1pbnRlcnNlY3Rpb24hIGh0MSBo
dDIpKQorCisoZGVmaW5lIChoYXNoLXRhYmxlLWRpZmZlcmVuY2UhIGh0MSBodDIpCisgICh1bmxl
c3MgKGVxPyAoZ2VuOmhhc2gtdGFibGUtZXF1aXZhbGVuY2UtZnVuY3Rpb24gaHQxKQorICAgICAg
ICAgICAgICAgKGdlbjpoYXNoLXRhYmxlLWVxdWl2YWxlbmNlLWZ1bmN0aW9uIGh0MikpCisgICAg
KGVycm9yICJIYXNoIHRhYmxlcyBoYXZlIGRpZmZlcmVudCBlcXVpdmFsZW5jZSBmdW5jdGlvbnMi
IGh0MSBodDIpKQorICAoZ2VuOmhhc2gtdGFibGUtZGlmZmVyZW5jZSEgaHQxIGh0MikpCisKKyhk
ZWZpbmUgKGhhc2gtdGFibGUteG9yISBodDEgaHQyKQorICAodW5sZXNzIChlcT8gKGdlbjpoYXNo
LXRhYmxlLWVxdWl2YWxlbmNlLWZ1bmN0aW9uIGh0MSkKKyAgICAgICAgICAgICAgIChnZW46aGFz
aC10YWJsZS1lcXVpdmFsZW5jZS1mdW5jdGlvbiBodDIpKQorICAgIChlcnJvciAiSGFzaCB0YWJs
ZXMgaGF2ZSBkaWZmZXJlbnQgZXF1aXZhbGVuY2UgZnVuY3Rpb25zIiBodDEgaHQyKSkKKyAgKGdl
bjpoYXNoLXRhYmxlLXhvciEgaHQxIGh0MikpCisKKworOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7
Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OworOzs7Cis7OzsgVGhlIGZv
bGxvd2luZyBwcm9jZWR1cmVzIGFyZSBkZXByZWNhdGVkIGJ5IFNSRkkgMTI1LCBidXQgbXVzdAor
Ozs7IGJlIGV4cG9ydGVkIG5vbmV0aGVsZXNzLgorOzs7Cis7OzsgUHJvZ3JhbXMgdGhhdCBpbXBv
cnQgdGhlIChzcmZpIDEyNSkgbGlicmFyeSBtdXN0IHJlbmFtZSB0aGUKKzs7OyBkZXByZWNhdGVk
IHN0cmluZy1oYXNoIGFuZCBzdHJpbmctY2ktaGFzaCBwcm9jZWR1cmVzIHRvIGF2b2lkCis7Ozsg
Y29uZmxpY3Qgd2l0aCB0aGUgc3RyaW5nLWhhc2ggYW5kIHN0cmluZy1jaS1oYXNoIHByb2NlZHVy
ZXMKKzs7OyBleHBvcnRlZCBieSBTUkZJIDEyNiBhbmQgU1JGSSAxMjguCis7OzsKKzs7Ozs7Ozs7
Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OzsK
KworKGRlZmluZSAoZGVwcmVjYXRlZDpoYXNoIG9iaiAuIHJlc3QpCisgIChpc3N1ZS13YXJuaW5n
LWRlcHJlY2F0ZWQgJ2hhc2gpCisgIChhcHBseSBnZW46aGFzaCBvYmogcmVzdCkpCisKKyhkZWZp
bmUgKGRlcHJlY2F0ZWQ6c3RyaW5nLWhhc2ggb2JqIC4gcmVzdCkKKyAgKGlzc3VlLXdhcm5pbmct
ZGVwcmVjYXRlZCAnc3JmaS0xMjU6c3RyaW5nLWhhc2gpCisgIChhcHBseSBzdHJpbmctaGFzaCBv
YmogcmVzdCkpCisKKyhkZWZpbmUgKGRlcHJlY2F0ZWQ6c3RyaW5nLWNpLWhhc2ggb2JqIC4gcmVz
dCkKKyAgKGlzc3VlLXdhcm5pbmctZGVwcmVjYXRlZCAnc3JmaS0xMjU6c3RyaW5nLWNpLWhhc2gp
CisgIChhcHBseSBzdHJpbmctY2ktaGFzaCBvYmogcmVzdCkpCisKKyhkZWZpbmUgKGRlcHJlY2F0
ZWQ6aGFzaC1ieS1pZGVudGl0eSBvYmogLiByZXN0KQorICAoaXNzdWUtd2FybmluZy1kZXByZWNh
dGVkICdoYXNoLWJ5LWlkZW50aXR5KQorICAoYXBwbHkgZ2VuOmhhc2gtYnktaWRlbnRpdHkgb2Jq
IHJlc3QpKQorCisoZGVmaW5lIChkZXByZWNhdGVkOmhhc2gtdGFibGUtZXF1aXZhbGVuY2UtZnVu
Y3Rpb24gaHQpCisgIChpc3N1ZS13YXJuaW5nLWRlcHJlY2F0ZWQgJ2hhc2gtdGFibGUtZXF1aXZh
bGVuY2UtZnVuY3Rpb24pCisgIChnZW46aGFzaC10YWJsZS1lcXVpdmFsZW5jZS1mdW5jdGlvbiBo
dCkpCisKKyhkZWZpbmUgKGRlcHJlY2F0ZWQ6aGFzaC10YWJsZS1oYXNoLWZ1bmN0aW9uIGh0KQor
ICAoaXNzdWUtd2FybmluZy1kZXByZWNhdGVkICdoYXNoLXRhYmxlLWhhc2gtZnVuY3Rpb24pCisg
IChnZW46aGFzaC10YWJsZS1oYXNoLWZ1bmN0aW9uIGh0KSkKKworKGRlZmluZSAoZGVwcmVjYXRl
ZDpoYXNoLXRhYmxlLWV4aXN0cz8gaHQga2V5KQorICAoaXNzdWUtd2FybmluZy1kZXByZWNhdGVk
ICdoYXNoLXRhYmxlLWV4aXN0cz8pCisgIChnZW46aGFzaC10YWJsZS1jb250YWlucz8gaHQga2V5
KSkKKworKGRlZmluZSAoZGVwcmVjYXRlZDpoYXNoLXRhYmxlLXdhbGsgaHQgcHJvYykKKyAgKGlz
c3VlLXdhcm5pbmctZGVwcmVjYXRlZCAnaGFzaC10YWJsZS13YWxrKQorICAoZ2VuOmhhc2gtdGFi
bGUtZm9yLWVhY2ggcHJvYyBodCkpCisKKyhkZWZpbmUgKGRlcHJlY2F0ZWQ6aGFzaC10YWJsZS1t
ZXJnZSEgaHQxIGh0MikKKyAgKGlzc3VlLXdhcm5pbmctZGVwcmVjYXRlZCAnaGFzaC10YWJsZS1t
ZXJnZSEpCisgIChnZW46aGFzaC10YWJsZS11bmlvbiEgaHQxIGh0MikpCisKKzs7IGVvZgpkaWZm
IC0tZ2l0IGEvdGVzdC1zdWl0ZS9NYWtlZmlsZS5hbSBiL3Rlc3Qtc3VpdGUvTWFrZWZpbGUuYW0K
aW5kZXggYTJmNzNiMzI5Li4zODUzN2FhYWMgMTAwNjQ0Ci0tLSBhL3Rlc3Qtc3VpdGUvTWFrZWZp
bGUuYW0KKysrIGIvdGVzdC1zdWl0ZS9NYWtlZmlsZS5hbQpAQCAtMTYyLDYgKzE2Miw3IEBAIFND
TV9URVNUUyA9IHRlc3RzLzAwLWluaXRpYWwtZW52LnRlc3QJCVwKIAkgICAgdGVzdHMvc3JmaS05
OC50ZXN0CQkJXAogCSAgICB0ZXN0cy9zcmZpLTEwNS50ZXN0CQkJXAogCSAgICB0ZXN0cy9zcmZp
LTExMS50ZXN0CQkJXAorCSAgICB0ZXN0cy9zcmZpLTEyNS50ZXN0CQkJXAogCSAgICB0ZXN0cy9z
cmZpLTEyNi50ZXN0CQkJXAogCSAgICB0ZXN0cy9zcmZpLTEyOC50ZXN0CQkJXAogCSAgICB0ZXN0
cy9zcmZpLTQudGVzdAkJCVwKZGlmZiAtLWdpdCBhL3Rlc3Qtc3VpdGUvdGVzdHMvc3JmaS0xMjUu
dGVzdCBiL3Rlc3Qtc3VpdGUvdGVzdHMvc3JmaS0xMjUudGVzdApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAuLmU1YmE5NWVkMwotLS0gL2Rldi9udWxsCisrKyBiL3Rlc3Qtc3Vp
dGUvdGVzdHMvc3JmaS0xMjUudGVzdApAQCAtMCwwICsxLDg2MCBAQAorOzs7OyBzcmZpLTEyNS50
ZXN0IC0tLSBUZXN0IHN1aXRlIGZvciBTUkZJIDEyNSAtKi0gc2NoZW1lIC0qLQorOzs7OworOzs7
OyAJQ29weXJpZ2h0IChDKSAyMDE5IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgorOzs7
OworOzs7OyBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1
dGUgaXQgYW5kL29yCis7Ozs7IG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBM
ZXNzZXIgR2VuZXJhbCBQdWJsaWMKKzs7OzsgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZy
ZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCis7Ozs7IHZlcnNpb24gMyBvZiB0aGUgTGlj
ZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKzs7OzsKKzs7Ozsg
VGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1
c2VmdWwsCis7Ozs7IGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBp
bXBsaWVkIHdhcnJhbnR5IG9mCis7Ozs7IE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCis7Ozs7IExlc3NlciBHZW5lcmFsIFB1
YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCis7Ozs7Cis7Ozs7IFlvdSBzaG91bGQgaGF2
ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKzs7Ozsg
TGljZW5zZSBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJl
ZSBTb2Z0d2FyZQorOzs7OyBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZp
ZnRoIEZsb29yLCBCb3N0b24sIE1BIDAyMTEwLTEzMDEgVVNBCisKKzs7OyBUaGUgZm9sbG93aW5n
IHRlc3RzIGFyZSB0aGUgdGVzdHMgZnJvbSBTUkZJLTEyNSByZWZlcmVuY2UKKzs7OyBpbXBsZW1l
bnRhdGlvbiBwb3J0ZWQgdG8gR3VpbGUgdGVzdCBzdWl0ZS4KKworOzs7IENvcHlyaWdodCAoQykg
V2lsbGlhbSBEIENsaW5nZXIgMjAxNS4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKzs7OworOzs7IFBl
cm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29u
Cis7Ozsgb2J0YWluaW5nIGEgY29weSBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRv
Y3VtZW50YXRpb24KKzs7OyBmaWxlcyAodGhlICJTb2Z0d2FyZSIpLCB0byBkZWFsIGluIHRoZSBT
b2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLAorOzs7IGluY2x1ZGluZyB3aXRob3V0IGxpbWl0
YXRpb24gdGhlIHJpZ2h0cyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsCis7OzsgcHVibGlz
aCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGwgY29waWVzIG9mIHRoZSBTb2Z0
d2FyZSwKKzs7OyBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXMg
ZnVybmlzaGVkIHRvIGRvIHNvLAorOzs7IHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zOgorOzs7Cis7OzsgVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlz
c2lvbiBub3RpY2Ugc2hhbGwgYmUKKzs7OyBpbmNsdWRlZCBpbiBhbGwgY29waWVzIG9yIHN1YnN0
YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS4KKzs7OworOzs7IFRIRSBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELAorOzs7IEVY
UFJFU1MgT1IgSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFO
VElFUyBPRgorOzs7IE1FUkNIQU5UQUJJTElUWSwgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBV
UlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4KKzs7OyBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQVVU
SE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWQorOzs7IENMQUlNLCBE
QU1BR0VTIE9SIE9USEVSIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJB
Q1QsCis7OzsgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSwgT1VUIE9GIE9SIElOIENP
Tk5FQ1RJT04gV0lUSCBUSEUKKzs7OyBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJ
TkdTIElOIFRIRSBTT0ZUV0FSRS4KKworOzs7IENvbWVudGFyeSBmcm9tIHN0YW5kYXJkIFNSRkkg
MTI1IHRlc3RzOgorOzs7Cis7OzsgVGhpcyBpcyBhIHZlcnkgc2hhbGxvdyBzYW5pdHkgdGVzdCBm
b3IgaGFzaCB0YWJsZXMuCis7OzsKKzs7OyBUZXN0cyBtYXJrZWQgYnkgYSAiRklYTUU6IGdsYXNz
LWJveCIgY29tbWVudCB0ZXN0IGJlaGF2aW9yIG9mIHRoZQorOzs7IHJlZmVyZW5jZSBpbXBsZW1l
bnRhdGlvbiB0aGF0IGlzIG5vdCByZXF1aXJlZCBieSB0aGUgc3BlY2lmaWNhdGlvbi4KKworKGRl
ZmluZS1tb2R1bGUgKHRlc3Qtc3JmaS0xMjUpCisgICM6ZHVwbGljYXRlcyAobGFzdCkKKyAgIzp1
c2UtbW9kdWxlICh0ZXN0LXN1aXRlIGxpYikKKyAgIzp1c2UtbW9kdWxlIChzcmZpIHNyZmktMTI4
KQorICAjOnVzZS1tb2R1bGUgKHNyZmkgc3JmaS0xMjUpCisgICM6dXNlLW1vZHVsZSAoc3JmaSBz
cmZpLTEpCisgICM6dXNlLW1vZHVsZSAocm5ycyBieXRldmVjdG9ycykKKyAgIzp1c2UtbW9kdWxl
ICgocm5ycyBiYXNlKSAjOnNlbGVjdCAoc3ltYm9sPT8pKQorICAjOnVzZS1tb2R1bGUgKChybnJz
KSAjOnNlbGVjdCAobGlzdC1zb3J0IGd1YXJkKSkpCisKKyhkZWZpbmUgKGJ5dGV2ZWN0b3IgLiBh
cmdzKQorICAodTgtbGlzdC0+Ynl0ZXZlY3RvciBhcmdzKSkKKworKGRlZmluZSBkZWZhdWx0LWNv
bXBhcmF0b3IgKG1ha2UtZGVmYXVsdC1jb21wYXJhdG9yKSkKKworKGRlZmluZSBudW1iZXItY29t
cGFyYXRvcgorICAobWFrZS1jb21wYXJhdG9yIHJlYWw/ID0gPCAobGFtYmRhICh4KSAoaW5leGFj
dC0+ZXhhY3QgKGFicyAocm91bmQgeCkpKSkpKQorCisoZGVmaW5lIHN0cmluZy1jb21wYXJhdG9y
CisgIChtYWtlLWNvbXBhcmF0b3Igc3RyaW5nPyBzdHJpbmc9PyBzdHJpbmc8PyBzdHJpbmctaGFz
aCkpCisKKyhkZWZpbmUgc3RyaW5nLWNpLWNvbXBhcmF0b3IKKyAgKG1ha2UtY29tcGFyYXRvciBz
dHJpbmc/IHN0cmluZy1jaT0/IHN0cmluZy1jaTw/IHN0cmluZy1jaS1oYXNoKSkKKworKGRlZmlu
ZSBlcS1jb21wYXJhdG9yIChtYWtlLWVxLWNvbXBhcmF0b3IpKQorCisoZGVmaW5lIGVxdi1jb21w
YXJhdG9yIChtYWtlLWVxdi1jb21wYXJhdG9yKSkKKworOzs7IFJldHVybnMgYW4gaW1tdXRhYmxl
IGhhc2ggdGFibGUuCisKKyhkZWZpbmUgKGhhc2gtdGFibGUtdGFidWxhdGUgY29tcGFyYXRvciBu
IHByb2MpCisgIChsZXQgKChodCAobWFrZS1oYXNoLXRhYmxlIGNvbXBhcmF0b3IpKSkKKyAgICAo
ZG8gKChpIDAgKCsgaSAxKSkpCisgICAgICAgICgoPSBpIG4pCisgICAgICAgICAoaGFzaC10YWJs
ZS1jb3B5IGh0KSkKKyAgICAgIChjYWxsLXdpdGgtdmFsdWVzCisgICAgICAgICAgKGxhbWJkYSAo
KQorICAgICAgICAgICAgKHByb2MgaSkpCisgICAgICAgIChsYW1iZGEgKGtleSB2YWwpCisgICAg
ICAgICAgKGhhc2gtdGFibGUtc2V0ISBodCBrZXkgdmFsKSkpKSkpCisKKzs7OyBDb25zdHJ1Y3Rv
cnMuCisKKyhkZWZpbmUgaHQtZGVmYXVsdCAobWFrZS1oYXNoLXRhYmxlIGRlZmF1bHQtY29tcGFy
YXRvcikpCisKKyhkZWZpbmUgaHQtZXEgKG1ha2UtaGFzaC10YWJsZSBlcS1jb21wYXJhdG9yICdy
YW5kb20tYXJndW1lbnQgImFub3RoZXIiKSkKKworKGRlZmluZSBodC1lcXYgKG1ha2UtaGFzaC10
YWJsZSBlcXYtY29tcGFyYXRvcikpCisKKyhkZWZpbmUgaHQtZXEyIChtYWtlLWhhc2gtdGFibGUg
ZXE/KSkKKworKGRlZmluZSBodC1lcXYyIChtYWtlLWhhc2gtdGFibGUgZXF2PykpCisKKyhkZWZp
bmUgaHQtZXF1YWwgKG1ha2UtaGFzaC10YWJsZSBlcXVhbD8pKQorCisoZGVmaW5lIGh0LXN0cmlu
ZyAobWFrZS1oYXNoLXRhYmxlIHN0cmluZz0/KSkKKworKGRlZmluZSBodC1zdHJpbmctY2kgKG1h
a2UtaGFzaC10YWJsZSBzdHJpbmctY2k9PykpCisKKyhkZWZpbmUgaHQtc3ltYm9sIChtYWtlLWhh
c2gtdGFibGUgc3ltYm9sPT8pKSAgICA7IEZJWE1FOiBnbGFzcy1ib3gKKworKGRlZmluZSBodC1m
aXhudW0gKG1ha2UtaGFzaC10YWJsZSA9IGFicykpCisKKzs7IFNwZWMgc2F5cyBIQVNILVRBQkxF
IHJldHVybnMgYW4gaW1tdXRhYmxlIGhhc2ggdGFibGUsIHNvIHdlIHB1dCBhCis7OyBIQVNILVRB
QkxFLUNPUFkgaGVyZQorKGRlZmluZSBodC1kZWZhdWx0MgorICAoaGFzaC10YWJsZS1jb3B5Cisg
ICAoaGFzaC10YWJsZSBkZWZhdWx0LWNvbXBhcmF0b3IgJ2ZvbyAnYmFyIDEwMS4zICJmZXZlciIg
Jyh4IHkgeikgJyMoKSkKKyAgICN0KSkKKworKGRlZmluZSBodC1maXhudW0yCisgIChoYXNoLXRh
YmxlLXRhYnVsYXRlIG51bWJlci1jb21wYXJhdG9yCisgICAgICAgICAgICAgICAgICAgICAgIDEw
CisgICAgICAgICAgICAgICAgICAgICAgIChsYW1iZGEgKGkpICh2YWx1ZXMgKCogaSBpKSBpKSkp
KQorCisoZGVmaW5lIGh0LXN0cmluZzIKKyAgKGhhc2gtdGFibGUtdW5mb2xkIChsYW1iZGEgKHMp
ICg9IDAgKHN0cmluZy1sZW5ndGggcykpKQorICAgICAgICAgICAgICAgICAgICAgKGxhbWJkYSAo
cykgKHZhbHVlcyBzIChzdHJpbmctbGVuZ3RoIHMpKSkKKyAgICAgICAgICAgICAgICAgICAgIChs
YW1iZGEgKHMpIChzdWJzdHJpbmcgcyAwICgtIChzdHJpbmctbGVuZ3RoIHMpIDEpKSkKKyAgICAg
ICAgICAgICAgICAgICAgICJwcmVmaXhlcyIKKyAgICAgICAgICAgICAgICAgICAgIHN0cmluZy1j
b21wYXJhdG9yCisgICAgICAgICAgICAgICAgICAgICAnaWdub3JlZDEgJ2lnbm9yZWQyICJpZ25v
cmVkMyIgJyMoaWdub3JlZCA0IDUpKSkKKworKGRlZmluZSBodC1zdHJpbmctY2kyCisgIChhbGlz
dC0+aGFzaC10YWJsZSAnKCgiIiAuIDApICgiTWFyeSIgLiA0KSAoIlBhdWwiIC4gNCkgKCJQZXRl
ciIgLiA1KSkKKyAgICAgICAgICAgICAgICAgICAgIHN0cmluZy1jaS1jb21wYXJhdG9yCisgICAg
ICAgICAgICAgICAgICAgICAiaWdub3JlZDEiICdpZ25vcmVkMikpCisKKyhkZWZpbmUgaHQtc3lt
Ym9sMgorICAoYWxpc3QtPmhhc2gtdGFibGUgJygobWFyeSAuIHRyYXZlcnMpIChub2VsIC4gc3Rv
b2tleSkgKHBldGVyIC4geWFycm93KSkKKyAgICAgICAgICAgICAgICAgICAgIGVxPykpCisKKyhk
ZWZpbmUgaHQtZXF1YWwyCisgIChhbGlzdC0+aGFzaC10YWJsZSAnKCgoZWR3YXJkKSAuIGFiYmV5
KQorICAgICAgICAgICAgICAgICAgICAgICAoKGRhc2hpZWxsKSAuIGhhbW1ldHQpCisgICAgICAg
ICAgICAgICAgICAgICAgICgoZWR3YXJkKSAuIHRlYWNoKQorICAgICAgICAgICAgICAgICAgICAg
ICAoKG1hcmspIC4gdHdhaW4pKQorICAgICAgICAgICAgICAgICAgICAgZXF1YWw/CisgICAgICAg
ICAgICAgICAgICAgICAoY29tcGFyYXRvci1oYXNoLWZ1bmN0aW9uIGRlZmF1bHQtY29tcGFyYXRv
cikpKQorCisoZGVmaW5lIHRlc3QtdGFibGVzCisgIChsaXN0IGh0LWRlZmF1bHQgICBodC1kZWZh
dWx0MiAgIDsgaW5pdGlhbCBrZXlzOiBmb28sIDEwMS4zLCAoeCB5IHopCisgICAgICAgIGh0LWVx
ICAgICAgICBodC1lcTIgICAgICAgIDsgaW5pdGlhbGx5IGVtcHR5CisgICAgICAgIGh0LWVxdiAg
ICAgICBodC1lcXYyICAgICAgIDsgaW5pdGlhbGx5IGVtcHR5CisgICAgICAgIGh0LWVxdWFsICAg
ICBodC1lcXVhbDIgICAgIDsgaW5pdGlhbCBrZXlzOiAoZWR3YXJkKSwgKGRhc2hpZWxsKSwgKG1h
cmspCisgICAgICAgIGh0LXN0cmluZyAgICBodC1zdHJpbmcyICAgIDsgaW5pdGlhbCBrZXlzOiAi
cCwgInByIiwgLi4uLCAicHJlZml4ZXMiCisgICAgICAgIGh0LXN0cmluZy1jaSBodC1zdHJpbmct
Y2kyIDsgaW5pdGlhbCBrZXlzOiAiIiwgIk1hcnkiLCAiUGF1bCIsICJQZXRlciIKKyAgICAgICAg
aHQtc3ltYm9sICAgIGh0LXN5bWJvbDIgICAgOyBpbml0aWFsIGtleXM6IG1hcnksIG5vZWwsIHBl
dGVyCisgICAgICAgIGh0LWZpeG51bSAgICBodC1maXhudW0yKSkgIDsgaW5pdGlhbCBrZXlzOiAw
LCAxLCA0LCA5LCAuLi4sIDgxCisKKworKHdpdGgtdGVzdC1wcmVmaXggIlNSRkktMTI1IgorCisg
ICh3aXRoLXRlc3QtcHJlZml4ICJwcmVkaWNhdGVzIgorCisgICAgKHBhc3MtaWYtZXF1YWwgImhh
c2gtdGFibGU/IGZ1bmN0aW9ucyBwcm9wZXJseSIKKyAgICAgICAgKGFwcGVuZCAnKCNmICNmKSAo
bWFwIChsYW1iZGEgKHgpICN0KSB0ZXN0LXRhYmxlcykpCisgICAgICAobWFwIGhhc2gtdGFibGU/
CisgICAgICAgICAgIChjb25zICcjKCkKKyAgICAgICAgICAgICAgICAgKGNvbnMgZGVmYXVsdC1j
b21wYXJhdG9yCisgICAgICAgICAgICAgICAgICAgICAgIHRlc3QtdGFibGVzKSkpKQorCisgICAg
KHBhc3MtaWYtZXF1YWwgImhhc2gtdGFibGUtY29udGFpbnM/IGZ1bmN0aW9ucyBwcm9wZXJseSIK
KyAgICAgICAgJygjZiAjdCAjZiAjZiAjZiAjZiAjZiAjdCAjZiAjdCAjZiAjdCAjZiAjdCAjZiAj
dCkKKyAgICAgIChtYXAgaGFzaC10YWJsZS1jb250YWlucz8KKyAgICAgICAgICAgdGVzdC10YWJs
ZXMKKyAgICAgICAgICAgJyhmb28gMTAxLjMKKyAgICAgICAgICAgICAgICAgeCAieSIKKyAgICAg
ICAgICAgICAgICAgKDE0IDE1KSAjXG5ld2xpbmUKKyAgICAgICAgICAgICAgICAgKGVkd2FyZCkg
KG1hcmspCisgICAgICAgICAgICAgICAgICJwIiAicHJlZiIKKyAgICAgICAgICAgICAgICAgIm1p
a2UiICJQQVVMIgorICAgICAgICAgICAgICAgICBqYW5lIG5vZWwKKyAgICAgICAgICAgICAgICAg
MCA0KSkpCisKKyAgICAocGFzcy1pZi1lcXVhbCAiaGFzaC10YWJsZS1jb250YWlucz8gZnVuY3Rp
b25zIHByb3Blcmx5IgorICAgICAgICAobWFwIChsYW1iZGEgKHgpICNmKSB0ZXN0LXRhYmxlcykK
KyAgICAgIChtYXAgaGFzaC10YWJsZS1jb250YWlucz8KKyAgICAgICAgICAgdGVzdC10YWJsZXMK
KyAgICAgICAgICAgYCgsKGJ5dGV2ZWN0b3IpIDQ3LjkKKyAgICAgICAgICAgICAnIygpICcoKQor
ICAgICAgICAgICAgIGZvbyBiYXIKKyAgICAgICAgICAgICAxOSAoaGVucnkpCisgICAgICAgICAg
ICAgInAiICJwZXJwIgorICAgICAgICAgICAgICJtaWtlIiAiTm9lbCIKKyAgICAgICAgICAgICBq
YW5lIHBhdWwKKyAgICAgICAgICAgICAwIDUpKSkKKworICAgIChwYXNzLWlmLWVxdWFsICJoYXNo
LXRhYmxlLWVtcHR5PyBmdW5jdGlvbnMgcHJvcGVybHkiCisgICAgICAgICcoI3QgI2YgI3QgI3Qg
I3QgI3QgI3QgI2YgI3QgI2YgI3QgI2YgI3QgI2YgI3QgI2YpCisgICAgICAobWFwIGhhc2gtdGFi
bGUtZW1wdHk/IHRlc3QtdGFibGVzKSkKKworICAgIChwYXNzLWlmLWVxdWFsICJoYXNoLXRhYmxl
PT8gaXMgcmVmbGVjdGl2ZSIKKyAgICAgICAgKG1hcCAobGFtYmRhICh4KSAjdCkgdGVzdC10YWJs
ZXMpCisgICAgICAobWFwIChsYW1iZGEgKGh0MSBodDIpIChoYXNoLXRhYmxlPT8gZGVmYXVsdC1j
b21wYXJhdG9yIGh0MSBodDIpKQorICAgICAgICAgICB0ZXN0LXRhYmxlcworICAgICAgICAgICB0
ZXN0LXRhYmxlcykpCisKKyAgICAocGFzcy1pZi1lcXVhbCAiaGFzaC10YWJsZT0/IGZ1bmN0aW9u
cyBwcm9wZXJseSIKKyAgICAgICAgJygjZiAjZiAjdCAjdCAjdCAjdCAjZiAjZiAjZiAjZiAjZiAj
ZiAjZiAjZiAjZiAjZikKKyAgICAgIChtYXAgKGxhbWJkYSAoaHQxIGh0MikgKGhhc2gtdGFibGU9
PyBkZWZhdWx0LWNvbXBhcmF0b3IgaHQxIGh0MikpCisgICAgICAgICAgIHRlc3QtdGFibGVzCisg
ICAgICAgICAgIChkbyAoKHRhYmxlcyAocmV2ZXJzZSB0ZXN0LXRhYmxlcykgKGNkZHIgdGFibGVz
KSkKKyAgICAgICAgICAgICAgICAocmV2ICcoKSAoY29ucyAoY2FyIHRhYmxlcykgKGNvbnMgKGNh
ZHIgdGFibGVzKSByZXYpKSkpCisgICAgICAgICAgICAgICAoKG51bGw/IHRhYmxlcykKKyAgICAg
ICAgICAgICAgICByZXYpKSkpCisKKyAgICAocGFzcy1pZi1lcXVhbCAiaGFzaC10YWJsZS1tdXRh
YmxlPyBmdW5jdGlvbnMgcHJvcGVybHkgb24gbXV0YWJsZSBoYXNoIHRhYmxlcyAxIgorICAgICAg
ICAnKCN0ICN0ICN0ICN0ICN0ICN0ICN0ICN0ICN0ICN0ICN0ICN0ICN0ICN0ICN0ICNmKQorICAg
ICAgKG1hcCBoYXNoLXRhYmxlLW11dGFibGU/IHRlc3QtdGFibGVzKSkKKworICAgIChwYXNzLWlm
LWVxdWFsICJoYXNoLXRhYmxlLW11dGFibGU/IGZ1bmN0aW9ucyBwcm9wZXJseSBvbiBpbW11dGFi
bGUgaGFzaCB0YWJsZXMiCisgICAgICAgIChtYXAgKGxhbWJkYSAoeCkgI2YpIHRlc3QtdGFibGVz
KQorICAgICAgKG1hcCBoYXNoLXRhYmxlLW11dGFibGU/IChtYXAgaGFzaC10YWJsZS1jb3B5IHRl
c3QtdGFibGVzKSkpCisKKyAgICAocGFzcy1pZiAiaGFzaC10YWJsZS1tdXRhYmxlPyBmdW5jdGlv
bnMgcHJvcGVybHkgb24gbXV0YWJsZSBoYXNoIHRhYmxlcyAyIgorICAgICAgKGhhc2gtdGFibGUt
bXV0YWJsZT8gKGhhc2gtdGFibGUtY29weSBodC1maXhudW0yICN0KSkpKQorCisgICh3aXRoLXRl
c3QtcHJlZml4ICJhY2Nlc3NvcnMiCisKKyAgICAocGFzcy1pZi1lcXVhbCAiaGFzaC10YWJsZS1y
ZWYgd2hlbiBrZXkgaXMgbm90IGluIHRhYmxlIDEiCisgICAgICAgIChtYXAgKGxhbWJkYSAoaHQp
ICdlcnIpIHRlc3QtdGFibGVzKQorICAgICAgKG1hcCAobGFtYmRhIChodCkKKyAgICAgICAgICAg
ICAoZ3VhcmQgKGV4bgorICAgICAgICAgICAgICAgICAgICAgKGVsc2UgJ2VycikpCisgICAgICAg
ICAgICAgICAoaGFzaC10YWJsZS1yZWYgaHQgJ25vdC1hLWtleSkpKQorICAgICAgICAgICB0ZXN0
LXRhYmxlcykpCisKKyAgICAocGFzcy1pZi1lcXVhbCAiaGFzaC10YWJsZS1yZWYgd2hlbiBrZXkg
aXMgbm90IGluIHRhYmxlIDIiCisgICAgICAgIChtYXAgKGxhbWJkYSAoaHQpICdlcnIpIHRlc3Qt
dGFibGVzKQorICAgICAgKG1hcCAobGFtYmRhIChodCkKKyAgICAgICAgICAgICAoZ3VhcmQgKGV4
bgorICAgICAgICAgICAgICAgICAgICAgKGVsc2UgJ2VycikpCisgICAgICAgICAgICAgICAoaGFz
aC10YWJsZS1yZWYgaHQgJ25vdC1hLWtleSAobGFtYmRhICgpICdlcnIpKSkpCisgICAgICAgICAg
IHRlc3QtdGFibGVzKSkKKworICAgIChwYXNzLWlmLWVxdWFsICJoYXNoLXRhYmxlLXJlZiB3aGVu
IGtleSBpcyBub3QgaW4gdGFibGUgMyIKKyAgICAgICAgKG1hcCAobGFtYmRhIChodCkgJ2Vycikg
dGVzdC10YWJsZXMpCisgICAgICAobWFwIChsYW1iZGEgKGh0KQorICAgICAgICAgICAgIChndWFy
ZCAoZXhuCisgICAgICAgICAgICAgICAgICAgICAoZWxzZSAnZXJyKSkKKyAgICAgICAgICAgICAg
IChoYXNoLXRhYmxlLXJlZiBodCAnbm90LWEta2V5IChsYW1iZGEgKCkgJ2VycikgdmFsdWVzKSkp
CisgICAgICAgICAgIHRlc3QtdGFibGVzKSkKKworICAgIChwYXNzLWlmLWVxdWFsICJoYXNoLXRh
YmxlLXJlZiBmdW5jdGlvbnMgcHJvcGVybHkiCisgICAgICAgICcoZXJyICJmZXZlciIgZXJyIGVy
ciBlcnIgZXJyIGVyciB0d2FpbiBlcnIgNCBlcnIgNCBlcnIgc3Rvb2tleSBlcnIgMikKKyAgICAg
IChtYXAgKGxhbWJkYSAoaHQga2V5KQorICAgICAgICAgICAgIChndWFyZCAoZXhuCisgICAgICAg
ICAgICAgICAgICAgICAoZWxzZSAnZXJyKSkKKyAgICAgICAgICAgICAgIChoYXNoLXRhYmxlLXJl
ZiBodCBrZXkpKSkKKyAgICAgICAgICAgdGVzdC10YWJsZXMKKyAgICAgICAgICAgJyhmb28gMTAx
LjMKKyAgICAgICAgICAgICAgICAgeCAieSIKKyAgICAgICAgICAgICAgICAgKDE0IDE1KSAjXG5l
d2xpbmUKKyAgICAgICAgICAgICAgICAgKGVkd2FyZCkgKG1hcmspCisgICAgICAgICAgICAgICAg
ICJwIiAicHJlZiIKKyAgICAgICAgICAgICAgICAgIm1pa2UiICJQQVVMIgorICAgICAgICAgICAg
ICAgICBqYW5lIG5vZWwKKyAgICAgICAgICAgICAgICAgMCA0KSkpCisKKyAgICAocGFzcy1pZi1l
cXVhbCAiaGFzaC10YWJsZS1yZWYgYWNjZXB0cyBGQUlMVVJFIGFuZCBmdW5jdGlvbnMgcHJvcGVy
bHkiCisgICAgICAgICcoZWggImZldmVyIiBlaCBlaCBlaCBlaCBlaCB0d2FpbiBlaCA0IGVoIDQg
ZWggc3Rvb2tleSBlaCAyKQorICAgICAgKG1hcCAobGFtYmRhIChodCBrZXkpCisgICAgICAgICAg
ICAgKGhhc2gtdGFibGUtcmVmIGh0IGtleSAobGFtYmRhICgpICdlaCkpKQorICAgICAgICAgICB0
ZXN0LXRhYmxlcworICAgICAgICAgICAnKGZvbyAxMDEuMworICAgICAgICAgICAgICAgICB4ICJ5
IgorICAgICAgICAgICAgICAgICAoMTQgMTUpICNcbmV3bGluZQorICAgICAgICAgICAgICAgICAo
ZWR3YXJkKSAobWFyaykKKyAgICAgICAgICAgICAgICAgInAiICJwcmVmIgorICAgICAgICAgICAg
ICAgICAibWlrZSIgIlBBVUwiCisgICAgICAgICAgICAgICAgIGphbmUgbm9lbAorICAgICAgICAg
ICAgICAgICAwIDQpKSkKKworICAgIChwYXNzLWlmLWVxdWFsICJoYXNoLXRhYmxlLXJlZiBhY2Nl
cHRzIEZBSUxVUkUgYW5kIFNVQ0NFU1MgYW5kIGZ1bmN0aW9ucyBwcm9wZXJseSIKKyAgICAgICAg
JyhlaCAoImZldmVyIikgZWggZWggZWggZWggZWggKHR3YWluKSBlaCAoNCkgZWggKDQpIGVoIChz
dG9va2V5KSBlaCAoMikpCisgICAgICAobWFwIChsYW1iZGEgKGh0IGtleSkKKyAgICAgICAgICAg
ICAoZ3VhcmQgKGV4bgorICAgICAgICAgICAgICAgICAgICAgKGVsc2UgJ2VycikpCisgICAgICAg
ICAgICAgICAoaGFzaC10YWJsZS1yZWYgaHQga2V5IChsYW1iZGEgKCkgJ2VoKSBsaXN0KSkpCisg
ICAgICAgICAgIHRlc3QtdGFibGVzCisgICAgICAgICAgICcoZm9vIDEwMS4zCisgICAgICAgICAg
ICAgICAgIHggInkiCisgICAgICAgICAgICAgICAgICgxNCAxNSkgI1xuZXdsaW5lCisgICAgICAg
ICAgICAgICAgIChlZHdhcmQpIChtYXJrKQorICAgICAgICAgICAgICAgICAicCIgInByZWYiCisg
ICAgICAgICAgICAgICAgICJtaWtlIiAiUEFVTCIKKyAgICAgICAgICAgICAgICAgamFuZSBub2Vs
CisgICAgICAgICAgICAgICAgIDAgNCkpKQorCisgICAgKHBhc3MtaWYtZXF1YWwgImhhc2gtdGFi
bGUtcmVmL2RlZmF1bHQgdXNlcyBERUZBVUxUIgorICAgICAgICAobWFwIChsYW1iZGEgKGh0KSAn
ZWgpIHRlc3QtdGFibGVzKQorICAgICAgKG1hcCAobGFtYmRhIChodCkKKyAgICAgICAgICAgICAo
Z3VhcmQgKGV4bgorICAgICAgICAgICAgICAgICAgICAgKGVsc2UgJ2VoKSkKKyAgICAgICAgICAg
ICAgIChoYXNoLXRhYmxlLXJlZi9kZWZhdWx0IGh0ICdub3QtYS1rZXkgJ2VoKSkpCisgICAgICAg
ICAgIHRlc3QtdGFibGVzKSkKKworICAgIChwYXNzLWlmLWVxdWFsICJoYXNoLXRhYmxlLXJlZi9k
ZWZhdWx0IGZ1bmN0aW9ucyBwcm9wZXJseSIKKyAgICAgICAgJyhlaCAiZmV2ZXIiIGVoIGVoIGVo
IGVoIGVoIHR3YWluIGVoIDQgZWggNCBlaCBzdG9va2V5IGVoIDIpCisgICAgICAobWFwIChsYW1i
ZGEgKGh0IGtleSkKKyAgICAgICAgICAgICAoaGFzaC10YWJsZS1yZWYvZGVmYXVsdCBodCBrZXkg
J2VoKSkKKyAgICAgICAgICAgdGVzdC10YWJsZXMKKyAgICAgICAgICAgJyhmb28gMTAxLjMKKyAg
ICAgICAgICAgICAgICAgeCAieSIKKyAgICAgICAgICAgICAgICAgKDE0IDE1KSAjXG5ld2xpbmUK
KyAgICAgICAgICAgICAgICAgKGVkd2FyZCkgKG1hcmspCisgICAgICAgICAgICAgICAgICJwIiAi
cHJlZiIKKyAgICAgICAgICAgICAgICAgIm1pa2UiICJQQVVMIgorICAgICAgICAgICAgICAgICBq
YW5lIG5vZWwKKyAgICAgICAgICAgICAgICAgMCA0KSkpKQorCisgICh3aXRoLXRlc3QtcHJlZml4
ICJtdXRhdG9ycyIKKworICAgIChwYXNzLWlmLWVxdWFsICJoYXNoLXRhYmxlLXNldCEgd2l0aCBu
byBrZXktdmFsdWUgcGFpcnMgZG9lcyBub3RoaW5nIgorICAgICAgICAnKCkKKyAgICAgIChiZWdp
biAoaGFzaC10YWJsZS1zZXQhIGh0LWZpeG51bSkKKyAgICAgICAgICAgICAobGlzdC1zb3J0IDwg
KGhhc2gtdGFibGUta2V5cyBodC1maXhudW0pKSkpCisKKyAgICAocGFzcy1pZi1lcXVhbCAiaGFz
aC10YWJsZS1zZXQhIGZ1bmN0aW9ucyBwcm9wZXJseSAxIgorICAgICAgICAnKDEyMSAxNDQgMTY5
KQorICAgICAgKGJlZ2luIChoYXNoLXRhYmxlLXNldCEgaHQtZml4bnVtIDEyMSAxMSAxNDQgMTIg
MTY5IDEzKQorICAgICAgICAgICAgIChsaXN0LXNvcnQgPCAoaGFzaC10YWJsZS1rZXlzIGh0LWZp
eG51bSkpKSkKKworICAgIChwYXNzLWlmLWVxdWFsICJoYXNoLXRhYmxlLXNldCEgZnVuY3Rpb25z
IHByb3Blcmx5IDIiCisgICAgICAgICcoMCAxIDQgOSAxNiAyNSAzNiA0OSA2NCA4MSAxMjEgMTQ0
IDE2OSkKKyAgICAgIChiZWdpbiAoaGFzaC10YWJsZS1zZXQhIGh0LWZpeG51bQorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgMCAwIDEgMSA0IDIgOSAzIDE2IDQgMjUgNSAzNiA2IDQ5IDcg
NjQgOCA4MSA5KQorICAgICAgICAgICAgIChsaXN0LXNvcnQgPCAoaGFzaC10YWJsZS1rZXlzIGh0
LWZpeG51bSkpKSkKKworICAgIChwYXNzLWlmLWVxdWFsICJoYXNoLXRhYmxlLXNldCEgZnVuY3Rp
b25zIHByb3Blcmx5IDMiCisgICAgICAgICcoMTMgMTIgMTEgMCAxIDIgMyA0IDUgNiA3IDggOSkK
KyAgICAgIChtYXAgKGxhbWJkYSAoaSkgKGhhc2gtdGFibGUtcmVmL2RlZmF1bHQgaHQtZml4bnVt
IGkgJ2Vycm9yKSkKKyAgICAgICAgICAgJygxNjkgMTQ0IDEyMSAwIDEgNCA5IDE2IDI1IDM2IDQ5
IDY0IDgxKSkpCisKKyAgICAocGFzcy1pZi1lcXVhbCAiaGFzaC10YWJsZS1kZWxldGUhIHdpdGgg
bm8ga2V5cyBkb2VzIG5vdGhpbmciCisgICAgICAgICcoMTMgMTIgMTEgMCAxIDIgMyA0IDUgNiA3
IDggOSkKKyAgICAgIChiZWdpbiAoaGFzaC10YWJsZS1kZWxldGUhIGh0LWZpeG51bSkKKyAgICAg
ICAgICAgICAobWFwIChsYW1iZGEgKGkpIChoYXNoLXRhYmxlLXJlZi9kZWZhdWx0IGh0LWZpeG51
bSBpICdlcnJvcikpCisgICAgICAgICAgICAgICAgICAnKDE2OSAxNDQgMTIxIDAgMSA0IDkgMTYg
MjUgMzYgNDkgNjQgODEpKSkpCisKKyAgICAocGFzcy1pZi1lcXVhbCAiaGFzaC10YWJsZS1kZWxl
dGUhIGZ1bmN0aW9ucyBwcm9wZXJseSAxIgorICAgICAgICAnKC0xIDEyIC0xIDAgLTEgMiAtMSA0
IC0xIDYgLTEgOCAtMSkKKyAgICAgIChiZWdpbiAoaGFzaC10YWJsZS1kZWxldGUhIGh0LWZpeG51
bSAxIDkgMjUgNDkgODEgMjAwIDEyMSAxNjkgODEgMSkKKyAgICAgICAgICAgICAobWFwIChsYW1i
ZGEgKGkpIChoYXNoLXRhYmxlLXJlZi9kZWZhdWx0IGh0LWZpeG51bSBpIC0xKSkKKyAgICAgICAg
ICAgICAgICAgICcoMTY5IDE0NCAxMjEgMCAxIDQgOSAxNiAyNSAzNiA0OSA2NCA4MSkpKSkKKwor
ICAgIChwYXNzLWlmLWVxdWFsICJoYXNoLXRhYmxlLWRlbGV0ZSEgZnVuY3Rpb25zIHByb3Blcmx5
IDIiCisgICAgICAgICcoLTEgMTIgLTEgLTEgLTEgMiAtMSA0IC0xIC0xIC0xIDggLTEpCisgICAg
ICAoYmVnaW4gKGhhc2gtdGFibGUtZGVsZXRlISBodC1maXhudW0gMjAwIDEwMCAwIDgxIDM2KQor
ICAgICAgICAgICAgIChtYXAgKGxhbWJkYSAoaSkgKGhhc2gtdGFibGUtcmVmL2RlZmF1bHQgaHQt
Zml4bnVtIGkgLTEpKQorICAgICAgICAgICAgICAgICAgJygxNjkgMTQ0IDEyMSAwIDEgNCA5IDE2
IDI1IDM2IDQ5IDY0IDgxKSkpKQorCisgICAgKHBhc3MtaWYtZXF1YWwgImhhc2gtdGFibGUtaW50
ZXJuISBmdW5jdGlvbnMgcHJvcGVybHkgMSIKKyAgICAgICAgJygxMyAxMiAxMSAwIDEgMiAtMSA0
IC0xIC0xIC0xIDggLTEpCisgICAgICAoYmVnaW4gKGhhc2gtdGFibGUtaW50ZXJuISBodC1maXhu
dW0gMTY5IChsYW1iZGEgKCkgMTMpKQorICAgICAgICAgICAgIChoYXNoLXRhYmxlLWludGVybiEg
aHQtZml4bnVtIDEyMSAobGFtYmRhICgpIDExKSkKKyAgICAgICAgICAgICAoaGFzaC10YWJsZS1p
bnRlcm4hIGh0LWZpeG51bSAgIDAgKGxhbWJkYSAoKSAgMCkpCisgICAgICAgICAgICAgKGhhc2gt
dGFibGUtaW50ZXJuISBodC1maXhudW0gICAxIChsYW1iZGEgKCkgIDEpKQorICAgICAgICAgICAg
IChoYXNoLXRhYmxlLWludGVybiEgaHQtZml4bnVtICAgMSAobGFtYmRhICgpIDk5KSkKKyAgICAg
ICAgICAgICAoaGFzaC10YWJsZS1pbnRlcm4hIGh0LWZpeG51bSAxMjEgKGxhbWJkYSAoKSA2Nikp
CisgICAgICAgICAgICAgKG1hcCAobGFtYmRhIChpKSAoaGFzaC10YWJsZS1yZWYvZGVmYXVsdCBo
dC1maXhudW0gaSAtMSkpCisgICAgICAgICAgICAgICAgICAnKDE2OSAxNDQgMTIxIDAgMSA0IDkg
MTYgMjUgMzYgNDkgNjQgODEpKSkpCisKKyAgICAocGFzcy1pZi1lcXVhbCAiaGFzaC10YWJsZS1t
YXAtPmxpc3QgZnVuY3Rpb25zIHByb3Blcmx5IDEiCisgICAgICAgICcoIygwIDApICMoMSAxKSAj
KDQgMikgIygxNiA0KSAjKDY0IDgpICMoMTIxIDExKSAjKDE0NCAxMikgIygxNjkgMTMpKQorICAg
ICAgKGxpc3Qtc29ydCAobGFtYmRhICh2MSB2MikgKDwgKHZlY3Rvci1yZWYgdjEgMCkgKHZlY3Rv
ci1yZWYgdjIgMCkpKQorICAgICAgICAgICAgICAgICAoaGFzaC10YWJsZS1tYXAtPmxpc3QgdmVj
dG9yIGh0LWZpeG51bSkpKQorCisgICAgKHBhc3MtaWYtZXF1YWwgImhhc2gtdGFibGUtcHJ1bmUh
IGZ1bmN0aW9ucyBwcm9wZXJseSIKKyAgICAgICAgJygoMCAwKSAoMSAxKSAoNCAyKSAoMTYgNCkg
KDY0IDgpICM7KDEyMSAxMSkgKDE0NCAxMikgIzsoMTY5IDEzKSkKKyAgICAgIChiZWdpbiAoaGFz
aC10YWJsZS1wcnVuZSEgKGxhbWJkYSAoa2V5IHZhbCkKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAoYW5kIChvZGQ/IGtleSkgKD4gdmFsIDEwKSkpCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGh0LWZpeG51bSkKKyAgICAgICAgICAgICAobGlzdC1zb3J0IChsYW1i
ZGEgKGwxIGwyKQorICAgICAgICAgICAgICAgICAgICAgICAgICAoPCAoY2FyIGwxKSAoY2FyIGwy
KSkpCisgICAgICAgICAgICAgICAgICAgICAgICAoaGFzaC10YWJsZS1tYXAtPmxpc3QgbGlzdCBo
dC1maXhudW0pKSkpCisKKyAgICAocGFzcy1pZi1lcXVhbCAiaGFzaC10YWJsZS1pbnRlcm4hIGZ1
bmN0aW9ucyBwcm9wZXJseSAyIgorICAgICAgICAnKCgwIDApICgxIDEpICg0IDIpICgxNiA0KSAo
NjQgOCkgKDEyMSAxMSkgKDE0NCAxMikgKDE2OSAxMykpCisgICAgICAoYmVnaW4gKGhhc2gtdGFi
bGUtaW50ZXJuISBodC1maXhudW0gMTY5IChsYW1iZGEgKCkgMTMpKQorICAgICAgICAgICAgICho
YXNoLXRhYmxlLWludGVybiEgaHQtZml4bnVtIDE0NCAobGFtYmRhICgpIDk5OTkpKQorICAgICAg
ICAgICAgIChoYXNoLXRhYmxlLWludGVybiEgaHQtZml4bnVtIDEyMSAobGFtYmRhICgpIDExKSkK
KyAgICAgICAgICAgICAobGlzdC1zb3J0IChsYW1iZGEgKGwxIGwyKQorICAgICAgICAgICAgICAg
ICAgICAgICAgICAoPCAoY2FyIGwxKSAoY2FyIGwyKSkpCisgICAgICAgICAgICAgICAgICAgICAg
ICAoaGFzaC10YWJsZS1tYXAtPmxpc3QgbGlzdCBodC1maXhudW0pKSkpCisKKyAgICAocGFzcy1p
Zi1lcXVhbCAiaGFzaC10YWJsZS11cGRhdGUhIHdpdGggRkFJTFVSRSBmdW5jdGlvbnMgcHJvcGVy
bHkgMSIKKyAgICAgICAgJygxMyAxMiAxMSAwIDEgMiAzIDQgLTEgLTEgLTEgOCAtMSkKKyAgICAg
IChiZWdpbiAoaGFzaC10YWJsZS11cGRhdGUhIGh0LWZpeG51bSA5IGxlbmd0aCAobGFtYmRhICgp
ICcoYSBiIGMpKSkKKyAgICAgICAgICAgICAobWFwIChsYW1iZGEgKGkpIChoYXNoLXRhYmxlLXJl
Zi9kZWZhdWx0IGh0LWZpeG51bSBpIC0xKSkKKyAgICAgICAgICAgICAgICAgICcoMTY5IDE0NCAx
MjEgMCAxIDQgOSAxNiAyNSAzNiA0OSA2NCA4MSkpKSkKKworICAgIChwYXNzLWlmLWVxdWFsICJo
YXNoLXRhYmxlLXVwZGF0ZSEgZnVuY3Rpb25zIHByb3Blcmx5IgorICAgICAgICAnKDEzIDEyIDEx
IDAgMSAyIDMgLTQgLTEgLTEgLTEgOCAtMSkKKyAgICAgIChiZWdpbiAoaGFzaC10YWJsZS11cGRh
dGUhIGh0LWZpeG51bSAxNiAtKQorICAgICAgICAgICAgIChtYXAgKGxhbWJkYSAoaSkgKGhhc2gt
dGFibGUtcmVmL2RlZmF1bHQgaHQtZml4bnVtIGkgLTEpKQorICAgICAgICAgICAgICAgICAgJygx
NjkgMTQ0IDEyMSAwIDEgNCA5IDE2IDI1IDM2IDQ5IDY0IDgxKSkpKQorCisgICAgKHBhc3MtaWYt
ZXF1YWwgImhhc2gtdGFibGUtdXBkYXRlISB3aXRoIEZBSUxVUkUgZnVuY3Rpb25zIHByb3Blcmx5
IDIiCisgICAgICAgICcoMTMgMTIgMTEgMCAxIDIgMyA0IC0xIC0xIC0xIDggLTEpCisgICAgICAo
YmVnaW4gKGhhc2gtdGFibGUtdXBkYXRlISBodC1maXhudW0gMTYgLSBhYnMpCisgICAgICAgICAg
ICAgKG1hcCAobGFtYmRhIChpKSAoaGFzaC10YWJsZS1yZWYvZGVmYXVsdCBodC1maXhudW0gaSAt
MSkpCisgICAgICAgICAgICAgICAgICAnKDE2OSAxNDQgMTIxIDAgMSA0IDkgMTYgMjUgMzYgNDkg
NjQgODEpKSkpCisKKyAgICAocGFzcy1pZi1lcXVhbCAiaGFzaC10YWJsZS11cGRhdGUhL2RlZmF1
bHQgZnVuY3Rpb25zIHByb3Blcmx5IDEiCisgICAgICAgICcoMTMgMTIgMTEgMCAxIDIgMyA0IC01
IC0xIC0xIDggLTEpCisgICAgICAoYmVnaW4gKGhhc2gtdGFibGUtdXBkYXRlIS9kZWZhdWx0IGh0
LWZpeG51bSAyNSAtIDUpCisgICAgICAgICAgICAgKG1hcCAobGFtYmRhIChpKSAoaGFzaC10YWJs
ZS1yZWYvZGVmYXVsdCBodC1maXhudW0gaSAtMSkpCisgICAgICAgICAgICAgICAgICAnKDE2OSAx
NDQgMTIxIDAgMSA0IDkgMTYgMjUgMzYgNDkgNjQgODEpKSkpCisKKyAgICAocGFzcy1pZi1lcXVh
bCAiaGFzaC10YWJsZS11cGRhdGUhL2RlZmF1bHQgZnVuY3Rpb25zIHByb3Blcmx5IDIiCisgICAg
ICAgICcoMTMgMTIgMTEgMCAxIDIgMyA0IDUgLTEgLTEgOCAtMSkKKyAgICAgIChiZWdpbiAoaGFz
aC10YWJsZS11cGRhdGUhL2RlZmF1bHQgaHQtZml4bnVtIDI1IC0gOTk5KQorICAgICAgICAgICAg
IChtYXAgKGxhbWJkYSAoaSkgKGhhc2gtdGFibGUtcmVmL2RlZmF1bHQgaHQtZml4bnVtIGkgLTEp
KQorICAgICAgICAgICAgICAgICAgJygxNjkgMTQ0IDEyMSAwIDEgNCA5IDE2IDI1IDM2IDQ5IDY0
IDgxKSkpKQorCisgICAgKHBhc3MtaWYgImhhc2gtdGFibGUtcG9wISBmdW5jdGlvbnMgcHJvcGVy
bHkiCisgICAgICAobGV0KiAoKG4wIChoYXNoLXRhYmxlLXNpemUgaHQtZml4bnVtKSkKKyAgICAg
ICAgICAgICAoaHQgKGhhc2gtdGFibGUtY29weSBodC1maXhudW0gI3QpKSkKKyAgICAgICAgKGNh
bGwtd2l0aC12YWx1ZXMKKyAgICAgICAgICAgIChsYW1iZGEgKCkgKGhhc2gtdGFibGUtcG9wISBo
dCkpCisgICAgICAgICAgKGxhbWJkYSAoa2V5IHZhbCkKKyAgICAgICAgICAgIChhbmQgKD0ga2V5
ICgqIHZhbCB2YWwpKQorICAgICAgICAgICAgICAgICAoPSAoLSBuMCAxKSAoaGFzaC10YWJsZS1z
aXplIGh0KSkpKSkpKQorCisgICAgKHBhc3MtaWYtZXF1YWwgImhhc2gtdGFibGUtZGVsZXRlISBm
dW5jdGlvbnMgcHJvcGVybHkgMiIKKyAgICAgICAgJygxMyAxMiAxMSAwIDEgMiAzIDQgNSAtMSAt
MSA4IC0xIC0xKQorICAgICAgKGJlZ2luIChoYXNoLXRhYmxlLWRlbGV0ZSEgaHQtZml4bnVtIDc1
KQorICAgICAgICAgICAgIChtYXAgKGxhbWJkYSAoaSkgKGhhc2gtdGFibGUtcmVmL2RlZmF1bHQg
aHQtZml4bnVtIGkgLTEpKQorICAgICAgICAgICAgICAgICAgJygxNjkgMTQ0IDEyMSAwIDEgNCA5
IDE2IDI1IDM2IDQ5IDY0IDc1IDgxKSkpKQorCisgICAgOzsgU3BlYyBzYXlzIEhBU0gtVEFCTEUg
cmV0dXJucyBhbiBpbW11dGFibGUgaGFzaCB0YWJsZSwgc28gd2UgcHV0IGEKKyAgICA7OyBIQVNI
LVRBQkxFLUNPUFkgaGVyZQorICAgIChsZXQgKChodC1lZyAoaGFzaC10YWJsZS1jb3B5CisgICAg
ICAgICAgICAgICAgICAoaGFzaC10YWJsZSBudW1iZXItY29tcGFyYXRvciAxIDEgNCAyIDkgMyAx
NiA0IDI1IDUgNjQgOCkKKyAgICAgICAgICAgICAgICAgICN0KSkpCisgICAgICAocGFzcy1pZi1l
cXVhbCAiaGFzaC10YWJsZS1kZWxldGUhIGZ1bmN0aW9ucyBwcm9wZXJseSAzIgorICAgICAgICAg
IDAKKyAgICAgICAgKGhhc2gtdGFibGUtZGVsZXRlISBodC1lZykpCisgICAgICAocGFzcy1pZi1l
cXVhbCAiaGFzaC10YWJsZS1kZWxldGUhIGZ1bmN0aW9ucyBwcm9wZXJseSA0IgorICAgICAgICAg
IDAKKyAgICAgICAgKGhhc2gtdGFibGUtZGVsZXRlISBodC1lZyAyIDcgMjAwMCkpCisgICAgICAo
cGFzcy1pZi1lcXVhbCAiaGFzaC10YWJsZS1kZWxldGUhIGZ1bmN0aW9ucyBwcm9wZXJseSA1Igor
ICAgICAgICAgIDMKKyAgICAgICAgKGhhc2gtdGFibGUtZGVsZXRlISBodC1lZyAxIDIgNCA3IDY0
IDIwMDApKQorICAgICAgKHBhc3MtaWYgImhhc2gtdGFibGUtZGVsZXRlISBmdW5jdGlvbnMgcHJv
cGVybHkgNiIKKyAgICAgICAgKD0gMyAobGVuZ3RoIChoYXNoLXRhYmxlLWtleXMgaHQtZWcpKSkp
KQorCisgICAgKHBhc3MtaWYtZXF1YWwgImhhc2gtdGFibGUtcmVmL2RlZmF1bHQgZnVuY3Rpb25z
IHByb3Blcmx5IDIiCisgICAgICAgICcoMTMgMTIgMTEgMCAxIDIgMyA0IDUgLTEgLTEgOCAtMSkK
KyAgICAgIChtYXAgKGxhbWJkYSAoaSkgKGhhc2gtdGFibGUtcmVmL2RlZmF1bHQgaHQtZml4bnVt
IGkgLTEpKQorICAgICAgICAgICAnKDE2OSAxNDQgMTIxIDAgMSA0IDkgMTYgMjUgMzYgNDkgNjQg
ODEpKSkKKworICAgIChwYXNzLWlmLWVxdWFsICJoYXNoLXRhYmxlLXNldCEgZnVuY3Rpb25zIHBy
b3Blcmx5IDQiCisgICAgICAgICcoMTMgMTIgMTEgMCAxIDIgMyA0IDUgNiAtMSA4IDkpCisgICAg
ICAoYmVnaW4gKGhhc2gtdGFibGUtc2V0ISBodC1maXhudW0gMzYgNikKKyAgICAgICAgICAgICAo
aGFzaC10YWJsZS1zZXQhIGh0LWZpeG51bSA4MSA5KQorICAgICAgICAgICAgIChtYXAgKGxhbWJk
YSAoaSkgKGhhc2gtdGFibGUtcmVmL2RlZmF1bHQgaHQtZml4bnVtIGkgLTEpKQorICAgICAgICAg
ICAgICAgICAgJygxNjkgMTQ0IDEyMSAwIDEgNCA5IDE2IDI1IDM2IDQ5IDY0IDgxKSkpKQorCisg
ICAgKHBhc3MtaWYtZXF1YWwgImhhc2gtdGFibGUtY2xlYXIhIGNsZWFycyBoYXNoIHRhYmxlIgor
ICAgICAgICAwCisgICAgICAoYmVnaW4gKGhhc2gtdGFibGUtY2xlYXIhIGh0LWVxKQorICAgICAg
ICAgICAgIChoYXNoLXRhYmxlLXNpemUgaHQtZXEpKSkpCisKKyAgKHdpdGgtdGVzdC1wcmVmaXgg
InRoZSB3aG9sZSBoYXNoIHRhYmxlIgorCisgICAgKHBhc3MtaWYtZXF1YWwgImhhc2gtdGFibGUt
c2l6ZSByZXR1cm5zIGNvcnJlY3QgdGFibGUgc2l6ZSIKKyAgICAgICAgMworICAgICAgKGJlZ2lu
IChoYXNoLXRhYmxlLXNldCEgaHQtZXEgJ2ZvbyAxMyAnYmFyIDE0ICdiYXogMTgpCisgICAgICAg
ICAgICAgKGhhc2gtdGFibGUtc2l6ZSBodC1lcSkpKQorCisgICAgKHBhc3MtaWYtZXF1YWwgImhh
c2gtdGFibGUtc2l6ZSByZXR1cm5zIGNvcnJlY3QgdGFibGUgc2l6ZSAyIgorICAgICAgICAnKDAg
MyAjdCkKKyAgICAgIChsZXQqICgoaHQgKGhhc2gtdGFibGUtZW1wdHktY29weSBodC1lcSkpCisg
ICAgICAgICAgICAgKG4wIChoYXNoLXRhYmxlLXNpemUgaHQpKQorICAgICAgICAgICAgIChpZ25v
cmVkIChoYXNoLXRhYmxlLXNldCEgaHQgJ2ZvbyAxMyAnYmFyIDE0ICdiYXogMTgpKQorICAgICAg
ICAgICAgIChuMSAoaGFzaC10YWJsZS1zaXplIGh0KSkpCisgICAgICAgIChsaXN0IG4wIG4xICho
YXNoLXRhYmxlPT8gZGVmYXVsdC1jb21wYXJhdG9yIGh0IGh0LWVxKSkpKQorCisgICAgKHBhc3Mt
aWYtZXF1YWwgImhhc2gtdGFibGUtc2l6ZSByZXR1cm5zIDAgd2l0aCBlbXB0eSBoYXNoIHRhYmxl
IgorICAgICAgICAwCisgICAgICAoYmVnaW4gKGhhc2gtdGFibGUtY2xlYXIhIGh0LWVxKQorICAg
ICAgICAgICAgIChoYXNoLXRhYmxlLXNpemUgaHQtZXEpKSkKKworICAgIChwYXNzLWlmLWVxdWFs
ICJoYXNoLXRhYmxlLWZpbmQgZnVuY3Rpb25zIHByb3Blcmx5IDEiCisgICAgICAgICcoMTQ0IDEy
KQorICAgICAgKGhhc2gtdGFibGUtZmluZCAobGFtYmRhIChrZXkgdmFsKQorICAgICAgICAgICAg
ICAgICAgICAgICAgIChpZiAoPSAxNDQga2V5ICgqIHZhbCB2YWwpKQorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAobGlzdCBrZXkgdmFsKQorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAjZikpCisgICAgICAgICAgICAgICAgICAgICAgIGh0LWZpeG51bQorICAgICAgICAgICAgICAg
ICAgICAgICAobGFtYmRhICgpIDk5KSkpCisKKyAgICAocGFzcy1pZi1lcXVhbCAiaGFzaC10YWJs
ZS1maW5kIGZ1bmN0aW9ucyBwcm9wZXJseSAyIgorICAgICAgICA5OQorICAgICAgKGhhc2gtdGFi
bGUtZmluZCAobGFtYmRhIChrZXkgdmFsKQorICAgICAgICAgICAgICAgICAgICAgICAgIChpZiAo
PSAxNDQga2V5IHZhbCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxpc3Qga2V5IHZh
bCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgI2YpKQorICAgICAgICAgICAgICAgICAg
ICAgICBodC1maXhudW0KKyAgICAgICAgICAgICAgICAgICAgICAgKGxhbWJkYSAoKSA5OSkpKQor
CisgICAgKHBhc3MtaWYtZXF1YWwgImhhc2gtdGFibGUtY291bnQgZnVuY3Rpb25zIHByb3Blcmx5
IgorICAgICAgICAyCisgICAgICAoaGFzaC10YWJsZS1jb3VudCA8PSBodC1maXhudW0pKSkKKwor
ICAod2l0aC10ZXN0LXByZWZpeCAibWFwcGluZyBhbmQgZm9sZGluZyIKKworICAgIChwYXNzLWlm
LWVxdWFsICJoYXNoLXRhYmxlLXJlZi9kZWZhdWx0IGZ1bmN0aW9ucyBwcm9wZXJseSAzIgorICAg
ICAgICAnKDAgMSAyIDMgNCA1IDYgLTEgOCA5IC0xIDExIDEyIDEzIC0xKQorICAgICAgKG1hcCAo
bGFtYmRhIChpKSAoaGFzaC10YWJsZS1yZWYvZGVmYXVsdCBodC1maXhudW0gaSAtMSkpCisgICAg
ICAgICAgICcoMCAxIDQgOSAxNiAyNSAzNiA0OSA2NCA4MSAxMDAgMTIxIDE0NCAxNjkgMTk2KSkp
CisKKyAgICAocGFzcy1pZi1lcXVhbCAiaGFzaC10YWJsZS1tYXAgZnVuY3Rpb25zIHByb3Blcmx5
IgorICAgICAgICAnKDAgMSA0IDkgMTYgMjUgMzYgLTEgNjQgODEgLTEgMTIxIDE0NCAxNjkgLTEp
CisgICAgICAobGV0ICgoaHQgKGhhc2gtdGFibGUtbWFwIChsYW1iZGEgKHZhbCkgKCogdmFsIHZh
bCkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVxdi1jb21wYXJhdG9yCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGh0LWZpeG51bSkpKQorICAgICAgICAobWFwIChs
YW1iZGEgKGkpIChoYXNoLXRhYmxlLXJlZi9kZWZhdWx0IGh0IGkgLTEpKQorICAgICAgICAgICAg
ICcoMCAxIDQgOSAxNiAyNSAzNiA0OSA2NCA4MSAxMDAgMTIxIDE0NCAxNjkgMTk2KSkpKQorCisg
ICAgKHBhc3MtaWYtZXF1YWwgImhhc2gtdGFibGUtZm9yLWVhY2ggZnVuY3Rpb25zIHByb3Blcmx5
IgorICAgICAgICAnKCMoMCAxIDQgOSAxNiAyNSAzNiAtMSA2NCA4MSAtMSAxMjEgMTQ0IDE2OSAt
MSkKKyAgICAgICAgICAjKDAgMSAyIDMgIDQgIDUgIDYgLTEgIDggIDkgLTEgIDExICAxMiAgMTMg
LTEpKQorICAgICAgKGxldCAoKGtleXMgKG1ha2UtdmVjdG9yIDE1IC0xKSkKKyAgICAgICAgICAg
ICh2YWxzIChtYWtlLXZlY3RvciAxNSAtMSkpKQorICAgICAgICAoaGFzaC10YWJsZS1mb3ItZWFj
aCAobGFtYmRhIChrZXkgdmFsKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh2ZWN0
b3Itc2V0ISBrZXlzIHZhbCBrZXkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHZl
Y3Rvci1zZXQhIHZhbHMgdmFsIHZhbCkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGh0
LWZpeG51bSkKKyAgICAgICAgKGxpc3Qga2V5cyB2YWxzKSkpCisKKyAgICAocGFzcy1pZi1lcXVh
bCAiaGFzaC10YWJsZS1tYXAhIGZ1bmN0aW9ucyBwcm9wZXJseSIKKyAgICAgICAgJygwIDEgMiAz
IC00IC01IC02IC0xIC04IC05IC0xIC0xMSAtMTIgLTEzIC0xKQorICAgICAgKGJlZ2luIChoYXNo
LXRhYmxlLW1hcCEgKGxhbWJkYSAoa2V5IHZhbCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgKGlmICg8PSAxMCBrZXkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAoLSB2YWwpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWwpKQorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgaHQtZml4bnVtKQorICAgICAgICAgICAgIChtYXAg
KGxhbWJkYSAoaSkgKGhhc2gtdGFibGUtcmVmL2RlZmF1bHQgaHQtZml4bnVtIGkgLTEpKQorICAg
ICAgICAgICAgICAgICAgJygwIDEgNCA5IDE2IDI1IDM2IDQ5IDY0IDgxIDEwMCAxMjEgMTQ0IDE2
OSAxOTYpKSkpCisKKyAgICAocGFzcy1pZi1lcXVhbCAiaGFzaC10YWJsZS1mb2xkIGZ1bmN0aW9u
cyBwcm9wZXJseSAxIgorICAgICAgICAxMworICAgICAgKGhhc2gtdGFibGUtZm9sZCAobGFtYmRh
IChrZXkgdmFsIGFjYykKKyAgICAgICAgICAgICAgICAgICAgICAgICAoKyB2YWwgYWNjKSkKKyAg
ICAgICAgICAgICAgICAgICAgICAgMAorICAgICAgICAgICAgICAgICAgICAgICBodC1zdHJpbmct
Y2kyKSkKKworICAgIChwYXNzLWlmLWVxdWFsICJoYXNoLXRhYmxlLWZvbGQgZnVuY3Rpb25zIHBy
b3Blcmx5IDIiCisgICAgICAgICcoMCAxIDQgOSAxNiAyNSAzNiA2NCA4MSAxMjEgMTQ0IDE2OSkK
KyAgICAgIChsaXN0LXNvcnQgPCAoaGFzaC10YWJsZS1mb2xkIChsYW1iZGEgKGtleSB2YWwgYWNj
KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY29ucyBrZXkgYWNjKSkK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICcoKQorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgaHQtZml4bnVtKSkpKQorCisgICh3aXRoLXRlc3QtcHJlZml4
ICJjb3B5aW5nIGFuZCBjb252ZXJzaW9uIgorCisgICAgKHBhc3MtaWYgImhhc2gtdGFibGUtY29w
eSBmdW5jdGlvbnMgcHJvcGVybHkgMSIKKyAgICAgIChoYXNoLXRhYmxlPT8gbnVtYmVyLWNvbXBh
cmF0b3IgaHQtZml4bnVtIChoYXNoLXRhYmxlLWNvcHkgaHQtZml4bnVtKSkpCisKKyAgICAocGFz
cy1pZiAiaGFzaC10YWJsZS1jb3B5IGZ1bmN0aW9ucyBwcm9wZXJseSAyIgorICAgICAgKGhhc2gt
dGFibGU9PyBudW1iZXItY29tcGFyYXRvciBodC1maXhudW0gKGhhc2gtdGFibGUtY29weSBodC1m
aXhudW0gI2YpKSkKKworICAgIChwYXNzLWlmICJoYXNoLXRhYmxlLWNvcHkgZnVuY3Rpb25zIHBy
b3Blcmx5IDMiCisgICAgICAoaGFzaC10YWJsZT0/IG51bWJlci1jb21wYXJhdG9yIGh0LWZpeG51
bSAoaGFzaC10YWJsZS1jb3B5IGh0LWZpeG51bSAjdCkpKQorCisgICAgKHBhc3MtaWYgImhhc2gt
dGFibGUtY29weSBmdW5jdGlvbnMgcHJvcGVybHkgNCIKKyAgICAgIChub3QgKGhhc2gtdGFibGUt
bXV0YWJsZT8gKGhhc2gtdGFibGUtY29weSBodC1maXhudW0pKSkpCisKKyAgICAocGFzcy1pZiAi
aGFzaC10YWJsZS1jb3B5IGZ1bmN0aW9ucyBwcm9wZXJseSA1IgorICAgICAgKG5vdCAoaGFzaC10
YWJsZS1tdXRhYmxlPyAoaGFzaC10YWJsZS1jb3B5IGh0LWZpeG51bSAjZikpKSkKKworICAgIChw
YXNzLWlmICJoYXNoLXRhYmxlLWNvcHkgZnVuY3Rpb25zIHByb3Blcmx5IDYiCisgICAgICAoaGFz
aC10YWJsZS1tdXRhYmxlPyAoaGFzaC10YWJsZS1jb3B5IGh0LWZpeG51bSAjdCkpKQorCisgICAg
KHBhc3MtaWYtZXF1YWwgImhhc2gtdGFibGUtPmFsaXN0IGZ1bmN0aW9ucyBwcm9wZXJseSAxIgor
ICAgICAgICAnKCkKKyAgICAgIChoYXNoLXRhYmxlLT5hbGlzdCBodC1lcSkpCisKKyAgICAocGFz
cy1pZi1lcXVhbCAiaGFzaC10YWJsZS0+YWxpc3QgZnVuY3Rpb25zIHByb3Blcmx5IDIiCisgICAg
ICAgICcoKDAgLiAwKQorICAgICAgICAgICgxIC4gMSkKKyAgICAgICAgICAoNCAuIDIpCisgICAg
ICAgICAgKDkgLiAzKQorICAgICAgICAgICgxNiAuIC00KQorICAgICAgICAgICgyNSAuIC01KQor
ICAgICAgICAgICgzNiAuIC02KQorICAgICAgICAgICg2NCAuIC04KQorICAgICAgICAgICg4MSAu
IC05KQorICAgICAgICAgICgxMjEgLiAtMTEpCisgICAgICAgICAgKDE0NCAuIC0xMikKKyAgICAg
ICAgICAoMTY5IC4gLTEzKSkKKyAgICAgIChsaXN0LXNvcnQgKGxhbWJkYSAoeCB5KSAoPCAoY2Fy
IHgpIChjYXIgeSkpKQorICAgICAgICAgICAgICAgICAoaGFzaC10YWJsZS0+YWxpc3QgaHQtZml4
bnVtKSkpKQorCisgICh3aXRoLXRlc3QtcHJlZml4ICJoYXNoIHRhYmxlcyBhcyBzZXRzIgorCisg
ICAgKHBhc3MtaWYtZXF1YWwgImhhc2gtdGFibGUtdW5pb24hIGZ1bmN0aW9ucyBwcm9wZXJseSAx
IgorICAgICAgICAnKCgwIC4gMCkKKyAgICAgICAgICAoMSAuIDEpCisgICAgICAgICAgKDQgLiAy
KQorICAgICAgICAgICg5IC4gMykKKyAgICAgICAgICAoMTYgLiAtNCkKKyAgICAgICAgICAoMjUg
LiAtNSkKKyAgICAgICAgICAoMzYgLiAtNikKKyAgICAgICAgICAoNDkgLiA3KQorICAgICAgICAg
ICg2NCAuIC04KQorICAgICAgICAgICg4MSAuIC05KQorICAgICAgICAgICgxMjEgLiAtMTEpCisg
ICAgICAgICAgKDE0NCAuIC0xMikKKyAgICAgICAgICAoMTY5IC4gLTEzKSkKKyAgICAgIChiZWdp
biAoaGFzaC10YWJsZS11bmlvbiEgaHQtZml4bnVtIGh0LWZpeG51bTIpCisgICAgICAgICAgICAg
KGxpc3Qtc29ydCAobGFtYmRhICh4IHkpICg8IChjYXIgeCkgKGNhciB5KSkpCisgICAgICAgICAg
ICAgICAgICAgICAgICAoaGFzaC10YWJsZS0+YWxpc3QgaHQtZml4bnVtKSkpKQorCisgICAgKHBh
c3MtaWYtZXF1YWwgImhhc2gtdGFibGUtdW5pb24hIGZ1bmN0aW9ucyBwcm9wZXJseSAyIgorICAg
ICAgICAnKCgwIC4gMCkKKyAgICAgICAgICAoMSAuIDEpCisgICAgICAgICAgKDQgLiAyKQorICAg
ICAgICAgICg5IC4gMykKKyAgICAgICAgICAoMTYgLiA0KQorICAgICAgICAgICgyNSAuIDUpCisg
ICAgICAgICAgKDM2IC4gNikKKyAgICAgICAgICAoNDkgLiA3KQorICAgICAgICAgICg2NCAuIDgp
CisgICAgICAgICAgKDgxIC4gOSkKKyAgICAgICAgICAoMTIxIC4gLTExKQorICAgICAgICAgICgx
NDQgLiAtMTIpCisgICAgICAgICAgKDE2OSAuIC0xMykpCisgICAgICAobGV0ICgoaHQgKGhhc2gt
dGFibGUtY29weSBodC1maXhudW0yICN0KSkpCisgICAgICAgIChoYXNoLXRhYmxlLXVuaW9uISBo
dCBodC1maXhudW0pCisgICAgICAgIChsaXN0LXNvcnQgKGxhbWJkYSAoeCB5KSAoPCAoY2FyIHgp
IChjYXIgeSkpKQorICAgICAgICAgICAgICAgICAgIChoYXNoLXRhYmxlLT5hbGlzdCBodCkpKSkK
KworICAgIDs7IFNwZWMgaW4gU3BlY2lmaWNhdGlvbiBzZWN0aW9uIHNheXMgIkl0IGlzIGFuIGVy
cm9yIHRvIHBhc3MgdHdvCisgICAgOzsgaGFzaCB0YWJsZXMgdGhhdCBoYXZlIGRpZmZlcmVudCBj
b21wYXJhdG9ycyBvciBlcXVhbGl0eQorICAgIDs7IHByZWRpY2F0ZXMgdG8gYW55IG9mIHRoZSBw
cm9jZWR1cmVzIG9mIHRoaXMgU1JGSS4iCisgICAgOzsKKyAgICA7OyBTbyB3ZSBjcmVhdGUgYSBu
ZXcgaGFzaCB0YWJsZSB3aXRoIG51bWJlci1jb21wYXJhdG9yIHdpdGggdGhlCisgICAgOzsgY29u
dGVudHMgb2YgaHQtZXF2MgorCisgICAgKGxldCAoKGh0LWZpeG51bTMgKGhhc2gtdGFibGUtbWFw
IGlkZW50aXR5IG51bWJlci1jb21wYXJhdG9yIGh0LWVxdjIpKSkKKyAgICAgIChwYXNzLWlmICJo
YXNoLXRhYmxlLXVuaW9uISBmdW5jdGlvbnMgcHJvcGVybHkgMyIKKyAgICAgICAgKGJlZ2luICho
YXNoLXRhYmxlLXVuaW9uISBodC1maXhudW0zIGh0LWZpeG51bSkKKyAgICAgICAgICAgICAgICho
YXNoLXRhYmxlPT8gbnVtYmVyLWNvbXBhcmF0b3IgaHQtZml4bnVtIGh0LWZpeG51bTMpKSkKKwor
ICAgICAgKHBhc3MtaWYgImhhc2gtdGFibGUtaW50ZXJzZWN0aW9uISBmdW5jdGlvbnMgcHJvcGVy
bHkgMSIKKyAgICAgICAgKGJlZ2luIChoYXNoLXRhYmxlLWludGVyc2VjdGlvbiEgaHQtZml4bnVt
MyBodC1maXhudW0pCisgICAgICAgICAgICAgICAoaGFzaC10YWJsZT0/IG51bWJlci1jb21wYXJh
dG9yIGh0LWZpeG51bSBodC1maXhudW0zKSkpKQorCisgICAgKHBhc3MtaWYgImhhc2gtdGFibGUt
aW50ZXJzZWN0aW9uISBmdW5jdGlvbnMgcHJvcGVybHkgMiIKKyAgICAgIChiZWdpbiAoaGFzaC10
YWJsZS1pbnRlcnNlY3Rpb24hIGh0LWVxdjIgaHQtZXF2KQorICAgICAgICAgICAgIChoYXNoLXRh
YmxlLWVtcHR5PyBodC1lcXYyKSkpCisKKyAgICAocGFzcy1pZi1lcXVhbCAiaGFzaC10YWJsZS1p
bnRlcnNlY3Rpb24hIGZ1bmN0aW9ucyBwcm9wZXJseSAzIgorICAgICAgICAnKCgwIC4gMCkKKyAg
ICAgICAgICAoMSAuIDEpCisgICAgICAgICAgKDQgLiAyKQorICAgICAgICAgICg5IC4gMykKKyAg
ICAgICAgICAoMTYgLiAtNCkKKyAgICAgICAgICAoMjUgLiAtNSkKKyAgICAgICAgICAoMzYgLiAt
NikKKyAgICAgICAgICAoNDkgLiA3KQorICAgICAgICAgICg2NCAuIC04KQorICAgICAgICAgICg4
MSAuIC05KSkKKyAgICAgIChiZWdpbiAoaGFzaC10YWJsZS1pbnRlcnNlY3Rpb24hIGh0LWZpeG51
bSBodC1maXhudW0yKQorICAgICAgICAgICAgIChsaXN0LXNvcnQgKGxhbWJkYSAoeCB5KSAoPCAo
Y2FyIHgpIChjYXIgeSkpKQorICAgICAgICAgICAgICAgICAgICAgICAgKGhhc2gtdGFibGUtPmFs
aXN0IGh0LWZpeG51bSkpKSkKKworICAgIChwYXNzLWlmLWVxdWFsICJoYXNoLXRhYmxlLWludGVy
c2VjdGlvbiEgZnVuY3Rpb25zIHByb3Blcmx5IDQiCisgICAgICAgICcoKDQgLiAyKQorICAgICAg
ICAgICgyNSAuIC01KSkKKyAgICAgIChiZWdpbiAoaGFzaC10YWJsZS1pbnRlcnNlY3Rpb24hCisg
ICAgICAgICAgICAgIGh0LWZpeG51bQorICAgICAgICAgICAgICAoYWxpc3QtPmhhc2gtdGFibGUg
JygoLTEgLiAtMSkgKDQgLiAyMDIpICgyNSAuIDIwNSkgKDEwMCAuIDEwKSkKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIG51bWJlci1jb21wYXJhdG9yKSkKKyAgICAgICAgICAgICAo
bGlzdC1zb3J0IChsYW1iZGEgKHggeSkgKDwgKGNhciB4KSAoY2FyIHkpKSkKKyAgICAgICAgICAg
ICAgICAgICAgICAgIChoYXNoLXRhYmxlLT5hbGlzdCBodC1maXhudW0pKSkpCisKKyAgICAocGFz
cy1pZi1lcXVhbCAiaGFzaC10YWJsZS1kaWZmZXJlbmNlISBmdW5jdGlvbnMgcHJvcGVybHkiCisg
ICAgICAgICcoKDAgLiAwKQorICAgICAgICAgICgxIC4gMSkKKyAgICAgICAgICAoOSAuIDMpCisg
ICAgICAgICAgKDE2IC4gNCkKKyAgICAgICAgICAoMzYgLiA2KQorICAgICAgICAgICg0OSAuIDcp
CisgICAgICAgICAgKDY0IC4gOCkKKyAgICAgICAgICAoODEgLiA5KSkKKyAgICAgIChsZXQgKCho
dCAoaGFzaC10YWJsZS1jb3B5IGh0LWZpeG51bTIgI3QpKSkKKyAgICAgICAgKGhhc2gtdGFibGUt
ZGlmZmVyZW5jZSEKKyAgICAgICAgIGh0CisgICAgICAgICAoYWxpc3QtPmhhc2gtdGFibGUgJygo
LTEgLiAtMSkgKDQgLiAyMDIpICgyNSAuIDIwNSkgKDEwMCAuIDEwKSkKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBudW1iZXItY29tcGFyYXRvcikpCisgICAgICAgIChsaXN0LXNvcnQgKGxh
bWJkYSAoeCB5KSAoPCAoY2FyIHgpIChjYXIgeSkpKQorICAgICAgICAgICAgICAgICAgIChoYXNo
LXRhYmxlLT5hbGlzdCBodCkpKSkKKworICAgIChwYXNzLWlmLWVxdWFsICJoYXNoLXRhYmxlLXhv
ciEgZnVuY3Rpb25zIHByb3Blcmx5IgorICAgICAgICAnKCgtMSAuIC0xKQorICAgICAgICAgICgw
IC4gMCkKKyAgICAgICAgICAoMSAuIDEpCisgICAgICAgICAgKDkgLiAzKQorICAgICAgICAgICgx
NiAuIDQpCisgICAgICAgICAgKDM2IC4gNikKKyAgICAgICAgICAoNDkgLiA3KQorICAgICAgICAg
ICg2NCAuIDgpCisgICAgICAgICAgKDgxIC4gOSkKKyAgICAgICAgICAoMTAwIC4gMTApKQorICAg
ICAgKGxldCAoKGh0IChoYXNoLXRhYmxlLWNvcHkgaHQtZml4bnVtMiAjdCkpKQorICAgICAgICAo
aGFzaC10YWJsZS14b3IhCisgICAgICAgICBodAorICAgICAgICAgKGFsaXN0LT5oYXNoLXRhYmxl
ICcoKC0xIC4gLTEpICg0IC4gMjAyKSAoMjUgLiAyMDUpICgxMDAgLiAxMCkpCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgbnVtYmVyLWNvbXBhcmF0b3IpKQorICAgICAgICAobGlzdC1zb3J0
IChsYW1iZGEgKHggeSkgKDwgKGNhciB4KSAoY2FyIHkpKSkKKyAgICAgICAgICAgICAgICAgICAo
aGFzaC10YWJsZS0+YWxpc3QgaHQpKSkpCisKKyAgICAocGFzcy1pZi1leGNlcHRpb24gImhhc2gt
dGFibGUtcmVmIHNpZ25hbHMgJ2tleSBub3QgZm91bmQnIGVycm9yIChhZ2FpbikiCisgICAgICAg
ICcobWlzYy1lcnJvciAuICJeS2V5IG5vdCBpbiB0YWJsZSIpCisgICAgICAoaGFzaC10YWJsZS1y
ZWYgaHQtZGVmYXVsdCAidGhpcyBrZXkgd29uJ3QgYmUgcHJlc2VudCIpKSkKKworICAod2l0aC10
ZXN0LXByZWZpeCAiZGVwcmVjYXRlZCIKKworICAgIChwYXNzLWlmICJoYXNoIHJldHVybnMgZXhh
Y3QgaW50ZWdlcnMiCisgICAgICAobGV0KiAoKHggKGxpc3QgMSAyIDMpKQorICAgICAgICAgICAg
ICh5IChjb25zIDEgKGNkciB4KSkpCisgICAgICAgICAgICAgKGgxIChoYXNoIHgpKQorICAgICAg
ICAgICAgIChoMiAoaGFzaCB5KSkpCisgICAgICAgIChhbmQgKGV4YWN0LWludGVnZXI/IGgxKQor
ICAgICAgICAgICAgIChleGFjdC1pbnRlZ2VyPyBoMikKKyAgICAgICAgICAgICAoPSBoMSBoMikp
KSkKKworICAgIChwYXNzLWlmICJzdHJpbmctaGFzaCByZXR1cm5zIGV4YWN0IGludGVnZXJzIgor
ICAgICAgKGxldCogKCh4ICJhYmNkIikKKyAgICAgICAgICAgICAoeSAoc3RyaW5nLWFwcGVuZCAi
YWIiICJjZCIpKQorICAgICAgICAgICAgIChoMSAoc3RyaW5nLWhhc2ggeCkpCisgICAgICAgICAg
ICAgKGgyIChzdHJpbmctaGFzaCB5KSkpCisgICAgICAgIChhbmQgKGV4YWN0LWludGVnZXI/IGgx
KQorICAgICAgICAgICAgIChleGFjdC1pbnRlZ2VyPyBoMikKKyAgICAgICAgICAgICAoPSBoMSBo
MikpKSkKKworICAgIChwYXNzLWlmICJzdHJpbmctY2ktaGFzaCByZXR1cm5zIGV4YWN0IGludGVn
ZXJzIgorICAgICAgKGxldCogKCh4ICJIZWxsbyBUaGVyZSEiKQorICAgICAgICAgICAgICh5ICJo
ZWxsbyBUSEVSRSEiKQorICAgICAgICAgICAgIChoMSAoc3RyaW5nLWNpLWhhc2ggeCkpCisgICAg
ICAgICAgICAgKGgyIChzdHJpbmctY2ktaGFzaCB5KSkpCisgICAgICAgIChhbmQgKGV4YWN0LWlu
dGVnZXI/IGgxKQorICAgICAgICAgICAgIChleGFjdC1pbnRlZ2VyPyBoMikKKyAgICAgICAgICAg
ICAoPSBoMSBoMikpKSkKKworICAgIChwYXNzLWlmICJoYXNoLWJ5LWlkZW50aXR5IHJldHVybnMg
ZXhhY3QgaW50ZWdlcnMiCisgICAgICAobGV0KiAoKHggKHZlY3RvciAnYSAiYmNEIiAjXGMgJyhk
IDIuNzE4KSAtNDIgKGJ5dGV2ZWN0b3IpICcjKCkgKGJ5dGV2ZWN0b3IgOSAyMCkpKQorICAgICAg
ICAgICAgICh5IHgpCisgICAgICAgICAgICAgKGgxIChoYXNoLWJ5LWlkZW50aXR5IHgpKQorICAg
ICAgICAgICAgIChoMiAoaGFzaC1ieS1pZGVudGl0eSB5KSkpCisgICAgICAgIChhbmQgKGV4YWN0
LWludGVnZXI/IGgxKQorICAgICAgICAgICAgIChleGFjdC1pbnRlZ2VyPyBoMikKKyAgICAgICAg
ICAgICAoPSBoMSBoMikpKSkKKworICAgIChwYXNzLWlmICJoYXNoIHJldHVybnMgZXhhY3QgaW50
ZWdlcnMgMiIKKyAgICAgIChsZXQqICgoeCAobGlzdCAxIDIgMykpCisgICAgICAgICAgICAgKHkg
KGNvbnMgMSAoY2RyIHgpKSkKKyAgICAgICAgICAgICAoaDEgKGhhc2ggeCA2MCkpCisgICAgICAg
ICAgICAgKGgyIChoYXNoIHkgNjApKSkKKyAgICAgICAgKGFuZCAoZXhhY3QtaW50ZWdlcj8gaDEp
CisgICAgICAgICAgICAgKGV4YWN0LWludGVnZXI/IGgyKQorICAgICAgICAgICAgICg9IGgxIGgy
KSkpKQorCisgICAgKHBhc3MtaWYgInN0cmluZy1oYXNoIHJldHVybnMgZXhhY3QgaW50ZWdlcnMg
MiIKKyAgICAgIChsZXQqICgoeCAiYWJjZCIpCisgICAgICAgICAgICAgKHkgKHN0cmluZy1hcHBl
bmQgImFiIiAiY2QiKSkKKyAgICAgICAgICAgICAoaDEgKHN0cmluZy1oYXNoIHggOTcpKQorICAg
ICAgICAgICAgIChoMiAoc3RyaW5nLWhhc2ggeSA5NykpKQorICAgICAgICAoYW5kIChleGFjdC1p
bnRlZ2VyPyBoMSkKKyAgICAgICAgICAgICAoZXhhY3QtaW50ZWdlcj8gaDIpCisgICAgICAgICAg
ICAgKD0gaDEgaDIpKSkpCisKKyAgICAocGFzcy1pZiAic3RyaW5nLWNpLWhhc2ggcmV0dXJucyBl
eGFjdCBpbnRlZ2VycyAyIgorICAgICAgKGxldCogKCh4ICJIZWxsbyBUaGVyZSEiKQorICAgICAg
ICAgICAgICh5ICJoZWxsbyBUSEVSRSEiKQorICAgICAgICAgICAgIChoMSAoc3RyaW5nLWNpLWhh
c2ggeCAxMDEpKQorICAgICAgICAgICAgIChoMiAoc3RyaW5nLWNpLWhhc2ggeSAxMDEpKSkKKyAg
ICAgICAgKGFuZCAoZXhhY3QtaW50ZWdlcj8gaDEpCisgICAgICAgICAgICAgKGV4YWN0LWludGVn
ZXI/IGgyKQorICAgICAgICAgICAgICg9IGgxIGgyKSkpKQorCisgICAgKHBhc3MtaWYgImhhc2gt
YnktaWRlbnRpdHkgcmV0dXJucyBleGFjdCBpbnRlZ2VycyAyIgorICAgICAgKGxldCogKCh4ICh2
ZWN0b3IgJ2EgImJjRCIgI1xjICcoZCAyLjcxOCkgLTQyIChieXRldmVjdG9yKSAnIygpIChieXRl
dmVjdG9yIDE5IDIwKSkpCisgICAgICAgICAgICAgKHkgeCkKKyAgICAgICAgICAgICAoaDEgKGhh
c2gtYnktaWRlbnRpdHkgeCAxMDIpKQorICAgICAgICAgICAgIChoMiAoaGFzaC1ieS1pZGVudGl0
eSB5IDEwMikpKQorICAgICAgICAoYW5kIChleGFjdC1pbnRlZ2VyPyBoMSkKKyAgICAgICAgICAg
ICAoZXhhY3QtaW50ZWdlcj8gaDIpCisgICAgICAgICAgICAgKD0gaDEgaDIpKSkpCisKKyAgICAo
cGFzcy1pZiAiaGFzaC10YWJsZS1lcXVpdmFsZW5jZS1mdW5jdGlvbiBmdW5jdGlvbnMgcHJvcGVy
bHkiCisgICAgICAobGV0ICgoZiAoaGFzaC10YWJsZS1lcXVpdmFsZW5jZS1mdW5jdGlvbiBodC1m
aXhudW0pKSkKKyAgICAgICAgKGlmIChwcm9jZWR1cmU/IGYpCisgICAgICAgICAgICAoZiAzNCAz
NCkKKyAgICAgICAgICAgICN0KSkpCisKKyAgICAocGFzcy1pZiAiaGFzaC10YWJsZS1oYXNoLWZ1
bmN0aW9uIGZ1bmN0aW9ucyBwcm9wZXJseSIKKyAgICAgIChsZXQgKChmIChoYXNoLXRhYmxlLWhh
c2gtZnVuY3Rpb24gaHQtZml4bnVtKSkpCisgICAgICAgIChpZiAocHJvY2VkdXJlPyBmKQorICAg
ICAgICAgICAgKD0gKGYgMzQpIChmIDM0KSkKKyAgICAgICAgICAgICN0KSkpCisKKyAgICAocGFz
cy1pZi1lcXVhbCAiaGFzaC10YWJsZS1leGlzdHM/IGZ1bmN0aW9ucyBwcm9wZXJseSIKKyAgICAg
ICAgJygjdCAjdCAjZiAjZiAjdCAjZiAjZiAjZiAjZiAjdCAjZikKKyAgICAgIChtYXAgKGxhbWJk
YSAoa2V5KSAoaGFzaC10YWJsZS1leGlzdHM/IGh0LWZpeG51bTIga2V5KSkKKyAgICAgICAgICAg
JygwIDEgMiAzIDQgNSA2IDcgOCA5IDEwKSkpCisKKyAgICAocGFzcy1pZi1lcXVhbCAiaGFzaC10
YWJsZS13YWxrIGZ1bmN0aW9ucyBwcm9wZXJseSIKKyAgICAgICAgKGFwcGx5ICsKKyAgICAgICAg
ICAgICAgIChtYXAgKGxhbWJkYSAoeCkgKCogeCB4KSkKKyAgICAgICAgICAgICAgICAgICAgJygw
IDEgMiAzIDQgNSA2IDcgOCA5KSkpCisgICAgICAobGV0ICgobiAwKSkKKyAgICAgICAgKGhhc2gt
dGFibGUtd2FsayBodC1maXhudW0yCisgICAgICAgICAgICAgICAgICAgICAgICAgKGxhbWJkYSAo
a2V5IHZhbCkgKHNldCEgbiAoKyBuIGtleSkpKSkKKyAgICAgICAgbikpCisKKyAgICAocGFzcy1p
Zi1lcXVhbCAiaGFzaC10YWJsZS1mb2xkIHdpdGggcmV2ZXJzZWQgYXJndW1lbnRzIGZ1bmN0aW9u
cyBwcm9wZXJseSIKKyAgICAgICAgJygwIDEgNCA5IDE2IDI1IDM2IDQ5IDY0IDgxKQorICAgICAg
KGxpc3Qtc29ydCA8IChoYXNoLXRhYmxlLWZvbGQgaHQtZml4bnVtMgorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgKGxhbWJkYSAoa2V5IHZhbCBhY2MpCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIChjb25zIGtleSBhY2MpKQorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgJygpKSkpCisKKyAgICAocGFzcy1pZi1lcXVhbCAiaGFzaC10
YWJsZS1tZXJnZSEgZnVuY3Rpb25zIHByb3Blcmx5IgorICAgICAgICAnKCgwIC4gMCkKKyAgICAg
ICAgICAoLjI1IC4gLjUpCisgICAgICAgICAgKDEgLiAxKQorICAgICAgICAgICg0IC4gMikKKyAg
ICAgICAgICAoOSAuIDMpCisgICAgICAgICAgKDE2IC4gNCkKKyAgICAgICAgICAoMjUgLiA1KQor
ICAgICAgICAgICgzNiAuIDYpCisgICAgICAgICAgKDQ5IC4gNykKKyAgICAgICAgICAoNjQgLiA4
KQorICAgICAgICAgICg4MSAuIDkpCisgICAgICAgICAgKDEyMSAuIC0xMSkKKyAgICAgICAgICAo
MTQ0IC4gLTEyKSkKKyAgICAgIChsZXQgKChodCAoaGFzaC10YWJsZS1jb3B5IGh0LWZpeG51bTIg
I3QpKQorICAgICAgICAgICAgKGh0MiAoaGFzaC10YWJsZSBudW1iZXItY29tcGFyYXRvcgorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAuMjUgLjUgNjQgOTk5OSA4MSA5OTk4IDEyMSAtMTEg
MTQ0IC0xMikpKQorICAgICAgICAoaGFzaC10YWJsZS1tZXJnZSEgaHQgaHQyKQorICAgICAgICAo
bGlzdC1zb3J0IChsYW1iZGEgKHggeSkgKDwgKGNhciB4KSAoY2FyIHkpKSkKKyAgICAgICAgICAg
ICAgICAgICAoaGFzaC10YWJsZS0+YWxpc3QgaHQpKSkpKSkKKworOzsgZW9mCi0tIAoyLjE5LjEK
Cg==
--00000000000027132d057f5ecbea
Content-Type: text/x-patch; charset="US-ASCII"; 
	name="0008-Fix-bugs-in-GENERIC-HASH-TABLES.patch"
Content-Disposition: attachment; 
	filename="0008-Fix-bugs-in-GENERIC-HASH-TABLES.patch"
Content-Transfer-Encoding: base64
Content-ID: <f_jqvhvnow2>
X-Attachment-Id: f_jqvhvnow2

RnJvbSA1NTRiNDQwYzQ4OGE5MGM4ZjZiZDJkOWJmMGFlZTI0MjVkYWI2N2ZmIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiA9P1VURi04P3E/Sj1DMz1BOXNzaWNhPTIwTWlsYXI9QzM9QTk/
PSA8amVzc3ltaWxhcmVAZ21haWwuY29tPgpEYXRlOiBTYXQsIDEyIEphbiAyMDE5IDE4OjE1OjQ0
IC0wMjAwClN1YmplY3Q6IFtQQVRDSCAwOC8xMF0gRml4IGJ1Z3MgaW4gR0VORVJJQy1IQVNILVRB
QkxFUwoKSEFTSC1UQUJMRS1QUlVORSEgZGlkbid0IHVwZGF0ZSBzaXplIGFmdGVyIHJlbW92aW5n
IGtleXMuCkhBU0gtVEFCTEUtREVMRVRFISBhY2Nlc3NlZCBoYXNoIGZ1bmN0aW9uIGFuZCBhc3Nv
Y2lhdG9yCiAgb25jZSBwZXIga2V5LCBpbnN0ZWFkIG9mIGFjY2Vzc2luZyBvbmx5IG9uY2UgcGVy
CiAgcHJvY2VkdXJlIGNhbGwuCgoqIG1vZHVsZS9pY2UtOS9nZW5lcmljLWhhc2gtdGFibGVzLnNj
bSAoaGFzaC10YWJsZS1wcnVuZSEpOgogIE5vdyB1cGRhdGVzIHNpemUgYWZ0ZXIgcmVtb3Zpbmcg
a2V5cyAoYnVnKS4KKiAoaGFzaC10YWJsZS1kZWxldGUhKTogdXNlIFdJVEgtSEFTSFgtVkFMVUVT
IG91dHNpZGUgb2YgbG9vcCwKICBzbyB0aGF0IGhhc2ggZnVuY3Rpb24gYW5kIGFzc29jaWF0b3Ig
YXJlIGFjY2Vzc2VkIG9ubHkgb25jZS4KLS0tCiBtb2R1bGUvaWNlLTkvZ2VuZXJpYy1oYXNoLXRh
Ymxlcy5zY20gfCAyNSArKysrKysrKysrKysrKy0tLS0tLS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwg
MTQgaW5zZXJ0aW9ucygrKSwgMTEgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvbW9kdWxlL2lj
ZS05L2dlbmVyaWMtaGFzaC10YWJsZXMuc2NtIGIvbW9kdWxlL2ljZS05L2dlbmVyaWMtaGFzaC10
YWJsZXMuc2NtCmluZGV4IDMxZGVhZDk3YS4uNjJmZDViYjEzIDEwMDY0NAotLS0gYS9tb2R1bGUv
aWNlLTkvZ2VuZXJpYy1oYXNoLXRhYmxlcy5zY20KKysrIGIvbW9kdWxlL2ljZS05L2dlbmVyaWMt
aGFzaC10YWJsZXMuc2NtCkBAIC01MTcsMTkgKzUxNywyMCBAQCBudW1iZXIgb2Yga2V5cyB0aGF0
IGhhZCBhc3NvY2lhdGlvbnMuIgogICAgICAgICAgIChpZiAoaGFzaC10YWJsZS1kZWxldGUtc2lu
Z2xlISBodCBrZXkxKSAxIDApKQogICAgICAgKGJlZ2luCiAgICAgICAgIChhc3NlcnQtbXV0YWJs
ZSBodCkKLSAgICAgICAgKGxldCogKChjb3VudCAwKQotICAgICAgICAgICAgICAgKGRlbGV0ZS1v
bmUhIChsYW1iZGEgKGtleSkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh3aXRoLWhh
c2h4LXZhbHVlcyAoaCBhIHJlYWwtdGFibGUpIGh0CisgICAgICAgICh3aXRoLWhhc2h4LXZhbHVl
cyAoaCBhIHJlYWwtdGFibGUpIGh0CisgICAgICAgICAgKGxldCogKChjb3VudCAwKQorICAgICAg
ICAgICAgICAgICAoc2l6ZSAoaHQtc2l6ZSBodCkpCisgICAgICAgICAgICAgICAgIChkZWxldGUt
b25lISAobGFtYmRhIChrZXkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh3aGVu
IChub3QgKGVxPyBodC11bnNwZWNpZmllZAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgKGhhc2h4LXJlZiBoIGEgcmVhbC10YWJsZSBrZXkKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaHQtdW5z
cGVjaWZpZWQpKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoc2V0ISBjb3Vu
dCAoKyAxIGNvdW50KSkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaGFzaHgt
cmVtb3ZlISBoIGEgcmVhbC10YWJsZSBrZXkpKSkpKSkKLSAgICAgICAgICAoZGVsZXRlLW9uZSEg
a2V5MSkKLSAgICAgICAgICAoZm9yLWVhY2ggZGVsZXRlLW9uZSEga2V5cykKLSAgICAgICAgICAo
dW5sZXNzIChvciAoaHQtd2Vha25lc3MgaHQpICh6ZXJvPyBjb3VudCkpCi0gICAgICAgICAgICAo
aHQtc2l6ZSEgaHQgKC0gKGh0LXNpemUgaHQpIGNvdW50KSkpCi0gICAgICAgICAgY291bnQpKSkp
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGhhc2h4LXJlbW92ZSEgaCBhIHJl
YWwtdGFibGUga2V5KSkpKSkKKyAgICAgICAgICAgIChkZWxldGUtb25lISBrZXkxKQorICAgICAg
ICAgICAgKGZvci1lYWNoIGRlbGV0ZS1vbmUhIGtleXMpCisgICAgICAgICAgICAodW5sZXNzIChv
ciAoaHQtd2Vha25lc3MgaHQpICh6ZXJvPyBjb3VudCkpCisgICAgICAgICAgICAgIChodC1zaXpl
ISBodCAoLSBzaXplIGNvdW50KSkpCisgICAgICAgICAgICBjb3VudCkpKSkpCiAKIChkZWZpbmUg
KGhhc2gtdGFibGUtaW50ZXJuISBodCBrZXkgZmFpbHVyZSkKICAgIkVmZmVjdGl2ZWx5IGludm9r
ZXMgSEFTSC1UQUJMRS1SRUYgd2l0aCB0aGUgZ2l2ZW4gYXJndW1lbnRzIGFuZApAQCAtODIwLDgg
KzgyMSwxMCBAQCBQUk9DIHJldHVybnMgdHJ1ZS4gUmV0dXJucyBhbiB1bnNwZWNpZmllZCB2YWx1
ZS4iCiAgIChhc3NlcnQtbXV0YWJsZSBodCkKICAgKHdpdGgtaGFzaHgtdmFsdWVzIChoIGEgcmVh
bC10YWJsZSkgaHQKICAgICAoaGFzaC1mb3ItZWFjaCAobGFtYmRhIChrZXkgdmFsKQotICAgICAg
ICAgICAgICAgICAgICAgKGlmIChwcm9jIGtleSB2YWwpCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgKGhhc2h4LXJlbW92ZSEgaCBhIHJlYWwtdGFibGUga2V5KSkpCisgICAgICAgICAgICAgICAg
ICAgICAod2hlbiAocHJvYyBrZXkgdmFsKQorICAgICAgICAgICAgICAgICAgICAgICAodW5sZXNz
IChodC13ZWFrbmVzcyBodCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAoaHQtc2l6ZSEgaHQg
KC0gKGh0LXNpemUgaHQpIDEpKSkKKyAgICAgICAgICAgICAgICAgICAgICAgKGhhc2h4LXJlbW92
ZSEgaCBhIHJlYWwtdGFibGUga2V5KSkpCiAgICAgICAgICAgICAgICAgICAgcmVhbC10YWJsZSkp
KQogCiAMCi0tIAoyLjE5LjEKCg==
--00000000000027132d057f5ecbea
Content-Type: text/x-patch; charset="US-ASCII"; 
	name="0010-Created-a-procedure-that-returns-the-size-of-a-hash-.patch"
Content-Disposition: attachment; 
	filename="0010-Created-a-procedure-that-returns-the-size-of-a-hash-.patch"
Content-Transfer-Encoding: base64
Content-ID: <f_jqvhvnp14>
X-Attachment-Id: f_jqvhvnp14

RnJvbSBlMjc0NTI3NWU4ZWVlYWI1ZDdiOTE3NDZlOTJjMWMwZTc4ZmZjOTNiIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiA9P1VURi04P3E/Sj1DMz1BOXNzaWNhPTIwTWlsYXI9QzM9QTk/
PSA8amVzc3ltaWxhcmVAZ21haWwuY29tPgpEYXRlOiBTdW4sIDEzIEphbiAyMDE5IDIwOjQ0OjE4
IC0wMjAwClN1YmplY3Q6IFtQQVRDSCAxMC8xMF0gQ3JlYXRlZCBhIHByb2NlZHVyZSB0aGF0IHJl
dHVybnMgdGhlIHNpemUgb2YgYSBoYXNoCiB0YWJsZQoKVGhlIG1vZHVsZSAoSUNFLTkgR0VORVJJ
Qy1IQVNILVRBQkxFUykgdXNlZCB0byBrZWVwIHRyYWNrIG9mIGhhc2ggdGFibGUKc2l6ZSBieSBp
dHNlbGYuIE5vdywgYSBwcm9jZWR1cmUgSEFTSC1OLUlURU1TIHdhcyBpbXBsZW1lbnRlZCBpbgon
bGliZ3VpbGUvaGFzaHRhYi5jJyB0byBhY2Nlc3MgdGhlIG5faXRlbXMgZmllbGQgb2YgR3VpbGUg
aGFzaCB0YWJsZQpzdHJ1Y3R1cmUuCgoqIGxpYmd1aWxlL2hhc2h0YWIuYyAoc2NtX2hhc2hfbl9p
dGVtcyk6IGNyZWF0ZWQsIGl0IHJldHVybnMgdGhlIG51bWJlcgogIG9mIGl0ZW1zIHRoYXQgdGhl
IGdpdmVuIGhhc2ggdGFibGUgaGFzLiBJdCB3b3JrcyBmb3Igbm9ybWFsIGFuZCB3ZWFrCiAgaGFz
aCB0YWJsZXMuCiogbW9kdWxlL2ljZS05L2dlbmVyaWMtaGFzaC10YWJsZXMuc2NtOiByZW1vdmVk
ICdzaXplJyBmaWVsZCBvZgogIDxnZW5lcmljLWhhc2gtdGFibGU+IHJlY29yZCB0eXBlLiBObyBw
cm9jZWR1cmVzIG5lZWQgdG8gdXBkYXRlIGl0CiAgYW55bW9yZS4KKGhhc2gtdGFibGUtc2l6ZSk6
IG5vdyBhY2Nlc3NlcyB0aGUgc2l6ZSB1c2luZyBIQVNILU4tSVRFTVMuIFRoYXQKICBndWFyYW50
ZWVzIE8oMSkgcHJvY2VkdXJlIHRpbWUuCi0tLQogbGliZ3VpbGUvaGFzaHRhYi5jICAgICAgICAg
ICAgICAgICAgIHwgIDE5ICsrLQogbGliZ3VpbGUvaGFzaHRhYi5oICAgICAgICAgICAgICAgICAg
IHwgICAxICsKIGxpYmd1aWxlL3dlYWstdGFibGUuYyAgICAgICAgICAgICAgICB8ICAxNCArKwog
bGliZ3VpbGUvd2Vhay10YWJsZS5oICAgICAgICAgICAgICAgIHwgICAzICstCiBtb2R1bGUvaWNl
LTkvZ2VuZXJpYy1oYXNoLXRhYmxlcy5zY20gfCAyMzAgKysrKysrKysrKy0tLS0tLS0tLS0tLS0t
LS0tCiA1IGZpbGVzIGNoYW5nZWQsIDExNyBpbnNlcnRpb25zKCspLCAxNTAgZGVsZXRpb25zKC0p
CgpkaWZmIC0tZ2l0IGEvbGliZ3VpbGUvaGFzaHRhYi5jIGIvbGliZ3VpbGUvaGFzaHRhYi5jCmlu
ZGV4IGI0ZjAwNGMxZC4uZGQwNjU5ZjdjIDEwMDY0NAotLS0gYS9saWJndWlsZS9oYXNodGFiLmMK
KysrIGIvbGliZ3VpbGUvaGFzaHRhYi5jCkBAIC0yMTAsNiArMjEwLDIyIEBAIFNDTV9ERUZJTkUg
KHNjbV9oYXNoX3RhYmxlX3AsICJoYXNoLXRhYmxlPyIsIDEsIDAsIDAsCiB9CiAjdW5kZWYgRlVO
Q19OQU1FCiAKK1NDTV9ERUZJTkUgKHNjbV9oYXNoX25faXRlbXMsICJoYXNoLW4taXRlbXMiLCAx
LCAwLCAwLAorICAgICAgICAgICAgKFNDTSB0YWJsZSksCisgICAgICAgICAgICAiUmV0dXJuIHRo
ZSBudW1iZXIgb2YgZWxlbWVudHMgaW4gdGhlIGdpdmVuIGhhc2ggVEFCTEUuIikKKyNkZWZpbmUg
RlVOQ19OQU1FIHNfc2NtX2hhc2hfbl9pdGVtcworeworICBpZiAoU0NNX1dFQUtfVEFCTEVfUCAo
dGFibGUpKQorICAgIHsKKyAgICAgIHJldHVybiBzY21fd2Vha190YWJsZV9uX2l0ZW1zICh0YWJs
ZSk7CisgICAgfQorCisgIFNDTV9WQUxJREFURV9IQVNIVEFCTEUgKDEsIHRhYmxlKTsKKworICBy
ZXR1cm4gc2NtX2Zyb21fdWxvbmcgKFNDTV9IQVNIVEFCTEVfTl9JVEVNUyAodGFibGUpKTsKK30K
KyN1bmRlZiBGVU5DX05BTUUKKwogCiAMCiAvKiBBY2Nlc3NpbmcgaGFzaCB0YWJsZSBlbnRyaWVz
LiAgKi8KQEAgLTk4Niw4ICsxMDAyLDcgQEAgY291bnRfcHJvYyAodm9pZCAqcHJlZCwgU0NNIGtl
eSwgU0NNIGRhdGEsIFNDTSB2YWx1ZSkKIFNDTV9ERUZJTkUgKHNjbV9oYXNoX2NvdW50LCAiaGFz
aC1jb3VudCIsIDIsIDAsIDAsCiAgICAgICAgICAgICAoU0NNIHByZWQsIFNDTSB0YWJsZSksCiAg
ICAgICAgICAgICAiUmV0dXJuIHRoZSBudW1iZXIgb2YgZWxlbWVudHMgaW4gdGhlIGdpdmVuIGhh
c2ggVEFCTEUgdGhhdFxuIgotICAgICAgICAgICAgImNhdXNlIGAoUFJFRCBLRVkgVkFMVUUpJyB0
byByZXR1cm4gdHJ1ZS4gIFRvIHF1aWNrbHkgZGV0ZXJtaW5lXG4iCi0gICAgICAgICAgICAidGhl
IHRvdGFsIG51bWJlciBvZiBlbGVtZW50cywgdXNlIGAoY29uc3QgI3QpJyBmb3IgUFJFRC4iKQor
ICAgICAgICAgICAgImNhdXNlIGAoUFJFRCBLRVkgVkFMVUUpJyB0byByZXR1cm4gdHJ1ZS4iKQog
I2RlZmluZSBGVU5DX05BTUUgc19zY21faGFzaF9jb3VudAogewogICBTQ00gaW5pdDsKZGlmZiAt
LWdpdCBhL2xpYmd1aWxlL2hhc2h0YWIuaCBiL2xpYmd1aWxlL2hhc2h0YWIuaAppbmRleCA2MWU4
MWIzNDEuLjcwZTlkYWFiYiAxMDA2NDQKLS0tIGEvbGliZ3VpbGUvaGFzaHRhYi5oCisrKyBiL2xp
Ymd1aWxlL2hhc2h0YWIuaApAQCAtNzgsNiArNzgsNyBAQCBTQ01fQVBJIFNDTSBzY21fY19tYWtl
X2hhc2hfdGFibGUgKHVuc2lnbmVkIGxvbmcgayk7CiBTQ01fQVBJIFNDTSBzY21fbWFrZV9oYXNo
X3RhYmxlIChTQ00gbik7CiAKIFNDTV9BUEkgU0NNIHNjbV9oYXNoX3RhYmxlX3AgKFNDTSBoKTsK
K1NDTV9BUEkgU0NNIHNjbV9oYXNoX25faXRlbXMgKFNDTSBoYXNoKTsKIAogU0NNX0lOVEVSTkFM
IHZvaWQgc2NtX2lfcmVoYXNoIChTQ00gdGFibGUsIHNjbV90X2hhc2hfZm4gaGFzaF9mbiwKIAkJ
CQl2b2lkICpjbG9zdXJlLCBjb25zdCBjaGFyICpmdW5jX25hbWUpOwpkaWZmIC0tZ2l0IGEvbGli
Z3VpbGUvd2Vhay10YWJsZS5jIGIvbGliZ3VpbGUvd2Vhay10YWJsZS5jCmluZGV4IDFlNGQ4ZDMw
Mi4uM2Y5NGI0ZmQ5IDEwMDY0NAotLS0gYS9saWJndWlsZS93ZWFrLXRhYmxlLmMKKysrIGIvbGli
Z3VpbGUvd2Vhay10YWJsZS5jCkBAIC01MTUsNiArNTE1LDIwIEBAIHNjbV93ZWFrX3RhYmxlX3Ag
KFNDTSBvYmopCiAgIHJldHVybiBzY21fZnJvbV9ib29sIChTQ01fV0VBS19UQUJMRV9QIChvYmop
KTsKIH0KIAorU0NNCitzY21fd2Vha190YWJsZV9uX2l0ZW1zIChTQ00gdGFibGUpCisjZGVmaW5l
IEZVTkNfTkFNRSAid2Vhay10YWJsZS1uLWl0ZW1zIgoreworICBzY21fdF93ZWFrX3RhYmxlICp0
OworCisgIFNDTV9WQUxJREFURV9XRUFLX1RBQkxFICgxLCB0YWJsZSk7CisKKyAgdCA9IFNDTV9X
RUFLX1RBQkxFICh0YWJsZSk7CisKKyAgcmV0dXJuIHNjbV9mcm9tX3Vsb25nICh0LT5uX2l0ZW1z
KTsKK30KKyN1bmRlZiBGVU5DX05BTUUKKwogU0NNCiBzY21fY193ZWFrX3RhYmxlX3JlZiAoU0NN
IHRhYmxlLCB1bnNpZ25lZCBsb25nIHJhd19oYXNoLAogICAgICAgICAgICAgICAgICAgICAgIHNj
bV90X3RhYmxlX3ByZWRpY2F0ZV9mbiBwcmVkLApkaWZmIC0tZ2l0IGEvbGliZ3VpbGUvd2Vhay10
YWJsZS5oIGIvbGliZ3VpbGUvd2Vhay10YWJsZS5oCmluZGV4IGJjYmM5NGUzZi4uYjMwOWIxMWY5
IDEwMDY0NAotLS0gYS9saWJndWlsZS93ZWFrLXRhYmxlLmgKKysrIGIvbGliZ3VpbGUvd2Vhay10
YWJsZS5oCkBAIC00NSw2ICs0NSw3IEBAIHR5cGVkZWYgU0NNICgqc2NtX3RfdGFibGVfZm9sZF9m
bikgKHZvaWQgKmNsb3N1cmUsIFNDTSBrLCBTQ00gdiwgU0NNIHJlc3VsdCk7CiBTQ01fSU5URVJO
QUwgU0NNIHNjbV9jX21ha2Vfd2Vha190YWJsZSAodW5zaWduZWQgbG9uZyBrLAogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNjbV90X3dlYWtfdGFibGVfa2luZCBraW5k
KTsKIFNDTV9JTlRFUk5BTCBTQ00gc2NtX3dlYWtfdGFibGVfcCAoU0NNIGgpOworU0NNX0lOVEVS
TkFMIFNDTSBzY21fd2Vha190YWJsZV9uX2l0ZW1zIChTQ00gdGFibGUpOwogCiBTQ01fSU5URVJO
QUwgU0NNIHNjbV9jX3dlYWtfdGFibGVfcmVmIChTQ00gdGFibGUsIHVuc2lnbmVkIGxvbmcgcmF3
X2hhc2gsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzY21fdF90YWJs
ZV9wcmVkaWNhdGVfZm4gcHJlZCwKQEAgLTYzLDcgKzY0LDcgQEAgU0NNX0lOVEVSTkFMIHZvaWQg
c2NtX3dlYWtfdGFibGVfcmVtcV94IChTQ00gdGFibGUsIFNDTSBrZXkpOwogU0NNX0lOVEVSTkFM
IHZvaWQgc2NtX3dlYWtfdGFibGVfY2xlYXJfeCAoU0NNIHRhYmxlKTsKIAogU0NNX0lOVEVSTkFM
IFNDTSBzY21fY193ZWFrX3RhYmxlX2ZvbGQgKHNjbV90X3RhYmxlX2ZvbGRfZm4gcHJvYywgdm9p
ZCAqY2xvc3VyZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU0NNIGlu
aXQsIFNDTSB0YWJsZSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
U0NNIGluaXQsIFNDTSB0YWJsZSk7CiBTQ01fSU5URVJOQUwgU0NNIHNjbV93ZWFrX3RhYmxlX2Zv
bGQgKFNDTSBwcm9jLCBTQ00gaW5pdCwgU0NNIHRhYmxlKTsKIFNDTV9JTlRFUk5BTCB2b2lkIHNj
bV93ZWFrX3RhYmxlX2Zvcl9lYWNoIChTQ00gcHJvYywgU0NNIHRhYmxlKTsKIFNDTV9JTlRFUk5B
TCBTQ00gc2NtX3dlYWtfdGFibGVfbWFwX3RvX2xpc3QgKFNDTSBwcm9jLCBTQ00gdGFibGUpOwpk
aWZmIC0tZ2l0IGEvbW9kdWxlL2ljZS05L2dlbmVyaWMtaGFzaC10YWJsZXMuc2NtIGIvbW9kdWxl
L2ljZS05L2dlbmVyaWMtaGFzaC10YWJsZXMuc2NtCmluZGV4IDYyZmQ1YmIxMy4uNDVjZDEzNjRh
IDEwMDY0NAotLS0gYS9tb2R1bGUvaWNlLTkvZ2VuZXJpYy1oYXNoLXRhYmxlcy5zY20KKysrIGIv
bW9kdWxlL2ljZS05L2dlbmVyaWMtaGFzaC10YWJsZXMuc2NtCkBAIC0xODcsMTkgKzE4NywxNiBA
QCBhbGlzdCBrZXlzIHdpdGggRVFVSVYtRlVOQ1RJT04uIgogCiAoZGVmaW5lLXJlY29yZC10eXBl
IGdlbmVyaWMtaGFzaC10YWJsZQogICAobWFrZS1nZW5lcmljLWhhc2gtdGFibGUgcmVhbC10YWJs
ZSBoYXNoLWZ1bmN0aW9uIGFzc29jaWF0b3Igd2Vha25lc3MKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgIG11dGFibGU/IHNpemUgZXF1aXZhbGVuY2UtZnVuY3Rpb24gb3JpZ2luYWwtaGFzaC1m
dW5jdGlvbikKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIG11dGFibGU/IGVxdWl2YWxlbmNl
LWZ1bmN0aW9uIG9yaWdpbmFsLWhhc2gtZnVuY3Rpb24pCiAgIGhhc2gtdGFibGU/CiAgIDs7IFRo
ZXNlIHRocmVlIGFyZSB0aGUgbW9zdCBhY2Nlc3NlZCBmaWVsZHMuCiAgIChyZWFsLXRhYmxlIGh0
LXJlYWwtdGFibGUgaHQtcmVhbC10YWJsZSEpCiAgIChoYXNoLWZ1bmN0aW9uIGh0LWhhc2gtZnVu
Y3Rpb24pCiAgIChhc3NvY2lhdG9yIGh0LWFzc29jaWF0b3IpCi0gIDs7IFdlYWsgaGFzaCB0YWJs
ZXMgZG9uJ3QgdXNlIGhhbmRsZXMgYW5kIGRvbid0IHVwZGF0ZSBodC1zaXplLgorICA7OyBXZWFr
IGhhc2ggdGFibGVzIGRvbid0IHVzZSBoYW5kbGVzLgogICAod2Vha25lc3MgaHQtd2Vha25lc3Mp
CiAgIDs7IFN1cHBvcnRzIGltbXV0YWJpbGl0eS4KICAgKG11dGFibGU/IGhhc2gtdGFibGUtbXV0
YWJsZT8pCi0gIDs7IFNpemUgb2YgaGFzaC10YWJsZSwgYWxsb3dpbmcgTygxKSBoYXNoLXRhYmxl
LXNpemUgZm9yCi0gIDs7IG5vbi13ZWFrIGhhc2ggdGFibGVzLgotICAoc2l6ZSBodC1zaXplIGh0
LXNpemUhKQogICA7OyBUaGVzZSBhcmUgbW9zdGx5IG5lZWRlZCBmb3IgcmVmbGVjdGl2ZSBxdWVy
aWVzCiAgIChlcXVpdmFsZW5jZS1mdW5jdGlvbiBoYXNoLXRhYmxlLWVxdWl2YWxlbmNlLWZ1bmN0
aW9uKQogICAob3JpZ2luYWwtaGFzaC1mdW5jdGlvbiBoYXNoLXRhYmxlLWhhc2gtZnVuY3Rpb24p
KQpAQCAtMjM5LDEwICsyMzYsMTAgQEAgYWxpc3Qga2V5cyB3aXRoIEVRVUlWLUZVTkNUSU9OLiIK
ICAgICAgIChnZXQtaGFzaC1mdW5jdGlvbnMgZXF1aXYtZnVuY3Rpb24gaGFzaC1mdW5jdGlvbikK
ICAgICAobGV0ICgocmVhbC10YWJsZSAoKGd1aWxlLWh0LWN0b3Igd2Vha25lc3MpIGNhcGFjaXR5
KSkpCiAgICAgICA7OyBBcmd1bWVudHM6IHJlYWwtdGFibGUgaGFzaC1mdW5jdGlvbiBhc3NvY2lh
dG9yCi0gICAgICA7OyAgICAgICAgICAgIHdlYWtuZXNzIG11dGFibGU/IHNpemUgZXF1aXZhbGVu
Y2UtZnVuY3Rpb24gb3JpZy1oYXNoLWZ1bmN0aW9uCisgICAgICA7OyAgICAgICAgICAgIHdlYWtu
ZXNzIG11dGFibGU/IGVxdWl2YWxlbmNlLWZ1bmN0aW9uIG9yaWctaGFzaC1mdW5jdGlvbgogICAg
ICAgKG1ha2UtZ2VuZXJpYy1oYXNoLXRhYmxlIHJlYWwtdGFibGUgaW50ZXJuYWwtaGFzaC1mdW5j
dGlvbgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChlcXVpdmFsZW5jZS1wcm9jLT5h
c3NvY2lhdG9yIGVxdWl2LWZ1bmN0aW9uKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHdlYWtuZXNzIChhbmQgbXV0YWJsZSAjdCkgMAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHdlYWtuZXNzIChhbmQgbXV0YWJsZSAjdCkKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBlcXVpdi1mdW5jdGlvbiBoYXNoLWZ1bmN0aW9uKSkpKQogCiA7OyBJZiB0aGUgbGlzdCBv
ZiBhcmd1bWVudHMgaXMgdXBkYXRlZCwgSEFTSC1UQUJMRSwgQUxJU1QtPkhBU0gtVEFCTEUsCkBA
IC0zMjUsOCArMzIyLDcgQEAgaXMgc2lnbmFsZWQuIgogICAgICAgICAgICAgICAgICAgICAgICAg
IChlcnJvciAiVHdvIGVxdWl2YWxlbnQga2V5cyB3ZXJlIHByb3ZpZGVkIgogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAoY2FyIGhhbmRsZSkgKGNhciBrdnMpKSkKICAgICAgICAgICAg
ICAgICAgICAgICAgKHNldC1jZHIhIGhhbmRsZSAoY2FkciBrdnMpKSkKLSAgICAgICAgICAgICAg
ICAgICAgIChsb29wIChjZGRyIGt2cykpKSkKLSAgICAgICAgICAgICAgKGh0LXNpemUhIGh0IGNh
cGFjaXR5KSkpKQorICAgICAgICAgICAgICAgICAgICAgKGxvb3AgKGNkZHIga3ZzKSkpKSkpKQog
ICAgICAgaHQpKSkKIAogKGRlZmluZSogKGhhc2gtdGFibGUtdW5mb2xkIHN0b3A/IG1hcHBlciBz
dWNjZXNzb3Igc2VlZApAQCAtMzQxLDI1ICszMzcsMTIgQEAgdGhlIHByb2NlZHVyZSBTVUNDRVNT
T1IgdG8gU0VFRCwgYW5kIHJlcGVhdCB0aGlzIGFsZ29yaXRobS4iCiAgIChsZXQgKChyZXN1bHQg
KCVtYWtlLWhhc2gtdGFibGUgZXF1aXYtZnVuY3Rpb24gaGFzaC1mdW5jdGlvbgogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIG11dGFibGUgY2FwYWNpdHkgd2Vha25lc3MpKSkKICAg
ICAod2l0aC1oYXNoeC12YWx1ZXMgKGggYSByZWFsLXRhYmxlKSByZXN1bHQKLSAgICAgIChpZiAo
aHQtd2Vha25lc3MgcmVzdWx0KQotICAgICAgICAgIChsZXQgbG9vcCAoKHNlZWQgc2VlZCkpCi0g
ICAgICAgICAgICAoaWYgKHN0b3A/IHNlZWQpCi0gICAgICAgICAgICAgICAgcmVzdWx0Ci0gICAg
ICAgICAgICAgICAgKHJlY2VpdmUgKGtleSB2YWwpIChtYXBwZXIgc2VlZCkKLSAgICAgICAgICAg
ICAgICAgIChoYXNoeC1zZXQhIGggYSByZWFsLXRhYmxlIGtleSB2YWwpCi0gICAgICAgICAgICAg
ICAgICAobG9vcCAoc3VjY2Vzc29yIHNlZWQpKSkpKQotICAgICAgICAgIChsZXQgKChzaXplICho
dC1zaXplIHJlc3VsdCkpKQotICAgICAgICAgICAgKGxldCBsb29wICgoc2VlZCBzZWVkKSkKLSAg
ICAgICAgICAgICAgKGlmIChzdG9wPyBzZWVkKQotICAgICAgICAgICAgICAgICAgcmVzdWx0Ci0g
ICAgICAgICAgICAgICAgICAocmVjZWl2ZSAoa2V5IHZhbCkgKG1hcHBlciBzZWVkKQotICAgICAg
ICAgICAgICAgICAgICAobGV0ICgoaGFuZGxlIChoYXNoeC1jcmVhdGUtaGFuZGxlISBoIGEgcmVh
bC10YWJsZSBrZXkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgaHQtdW5zcGVjaWZpZWQpKSkKLSAgICAgICAgICAgICAgICAgICAgICAoaWYg
KGVxPyBodC11bnNwZWNpZmllZCAoY2RyIGhhbmRsZSkpCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgIChzZXQhIHNpemUgKCsgMSBzaXplKSkpCi0gICAgICAgICAgICAgICAgICAgICAgKHNldC1j
ZHIhIGhhbmRsZSB2YWwpKQotICAgICAgICAgICAgICAgICAgICAobG9vcCAoc3VjY2Vzc29yIHNl
ZWQpKSkpKQotICAgICAgICAgICAgKGh0LXNpemUhIHJlc3VsdCBzaXplKSkpKQorICAgICAgKGxl
dCBsb29wICgoc2VlZCBzZWVkKSkKKyAgICAgICAgKGlmIChzdG9wPyBzZWVkKQorICAgICAgICAg
ICAgcmVzdWx0CisgICAgICAgICAgICAocmVjZWl2ZSAoa2V5IHZhbCkgKG1hcHBlciBzZWVkKQor
ICAgICAgICAgICAgICAoaGFzaHgtc2V0ISBoIGEgcmVhbC10YWJsZSBrZXkgdmFsKQorICAgICAg
ICAgICAgICAobG9vcCAoc3VjY2Vzc29yIHNlZWQpKSkpKSkKICAgICByZXN1bHQpKQogCiAoZGVm
aW5lKiAoYWxpc3QtPmhhc2gtdGFibGUgYWxpc3QgZXF1aXYtZnVuY3Rpb24gaGFzaC1mdW5jdGlv
bgpAQCAtMzcyLDE5ICszNTUsOSBAQCBjb21lIGxhdGVyLiIKICAgKGxldCAoKHJlc3VsdCAoJW1h
a2UtaGFzaC10YWJsZSBlcXVpdi1mdW5jdGlvbiBoYXNoLWZ1bmN0aW9uCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgbXV0YWJsZSBjYXBhY2l0eSB3ZWFrbmVzcykpKQogICAgICh3
aXRoLWhhc2h4LXZhbHVlcyAoaCBhIHJlYWwtdGFibGUpIHJlc3VsdAotICAgICAgKGlmIChodC13
ZWFrbmVzcyByZXN1bHQpCi0gICAgICAgICAgKGZvci1lYWNoIChsYW1iZGEgKHBhaXIpCi0gICAg
ICAgICAgICAgICAgICAgICAgKGhhc2h4LXNldCEgaCBhIHJlYWwtdGFibGUgKGNhciBwYWlyKSAo
Y2RyIHBhaXIpKSkKLSAgICAgICAgICAgICAgICAgICAgKHJldmVyc2UgYWxpc3QpKQotICAgICAg
ICAgIChsZXQgKChzaXplIChodC1zaXplIHJlc3VsdCkpKQotICAgICAgICAgICAgKGZvci1lYWNo
IChsYW1iZGEgKHBhaXIpCi0gICAgICAgICAgICAgICAgICAgICAgICAobGV0ICgoaGFuZGxlICho
YXNoeC1jcmVhdGUtaGFuZGxlIQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgaCBhIHJlYWwtdGFibGUgKGNhciBwYWlyKSBodC11bnNwZWNpZmllZCkpKQotICAgICAgICAg
ICAgICAgICAgICAgICAgICAod2hlbiAoZXE/IGh0LXVuc3BlY2lmaWVkIChjZHIgaGFuZGxlKSkK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAoc2V0ISBzaXplICgrIDEgc2l6ZSkpCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgKHNldC1jZHIhIGhhbmRsZSAoY2RyIHBhaXIpKSkpKQot
ICAgICAgICAgICAgICAgICAgICAgIGFsaXN0KQotICAgICAgICAgICAgKGh0LXNpemUhIHJlc3Vs
dCBzaXplKSkpKQorICAgICAgKGZvci1lYWNoIChsYW1iZGEgKHBhaXIpCisgICAgICAgICAgICAg
ICAgICAoaGFzaHgtc2V0ISBoIGEgcmVhbC10YWJsZSAoY2FyIHBhaXIpIChjZHIgcGFpcikpKQor
ICAgICAgICAgICAgICAgIChyZXZlcnNlIGFsaXN0KSkpCiAgICAgcmVzdWx0KSkKIAogDApAQCAt
NDE1LDEyICszODgsNyBAQCBLRVkgaXNuJ3QgcHJlc2VudC4iCiAKIChkZWZpbmUgKGhhc2gtdGFi
bGUtZW1wdHk/IGh0KQogICAiUmV0dXJucyB3aGV0aGVyIEtFWSBpcyBlbXB0eS4iCi0gIChpZiAo
aHQtd2Vha25lc3MgaHQpCi0gICAgICAoY2FsbC9jYyAobGFtYmRhIChleGl0KQotICAgICAgICAg
ICAgICAgICAoaGFzaC1mb3ItZWFjaCAobGFtYmRhIChrZXkgdmFsKSAoZXhpdCAjZikpCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIChodC1yZWFsLXRhYmxlIGh0KSkKLSAgICAgICAg
ICAgICAgICAgI3QpKQotICAgICAgKHplcm8/IChodC1zaXplIGh0KSkpKQorICAoemVybz8gKGhh
c2gtbi1pdGVtcyAoaHQtcmVhbC10YWJsZSBodCkpKSkKIAogKGRlZmluZSAoaGFzaC10YWJsZS1j
b250YWlucz8gaHQga2V5KQogICAiUmV0dXJuIHdoZXRoZXIgS0VZIGlzIGEga2V5IGluIEhULiIK
QEAgLTQ1MCwxNCArNDE4LDggQEAgYXNzb2NpYXRpb24gaXMgY3JlYXRlZCBiZXR3ZWVuIEtFWSBh
bmQgVkFMLiBJZiB0aGVyZSBpcyBhIHByZXZpb3VzCiBhc3NvY2lhdGlvbiBmb3IgS0VZLCBpdCBp
cyBkZWxldGVkLiIKICAgKGFzc2VydC1tdXRhYmxlIGh0KQogICAod2l0aC1oYXNoeC12YWx1ZXMg
KGggYSByZWFsLXRhYmxlKSBodAotICAgIChpZiAoaHQtd2Vha25lc3MgaHQpCi0gICAgICAgICho
YXNoeC1zZXQhIGggYSByZWFsLXRhYmxlIGtleSB2YWwpCi0gICAgICAgIChsZXQgKChoYW5kbGUg
KGhhc2h4LWNyZWF0ZS1oYW5kbGUhCi0gICAgICAgICAgICAgICAgICAgICAgIGggYSByZWFsLXRh
YmxlIGtleQotICAgICAgICAgICAgICAgICAgICAgICBodC11bnNwZWNpZmllZCkpKQotICAgICAg
ICAgIChpZiAoZXE/IGh0LXVuc3BlY2lmaWVkIChjZHIgaGFuZGxlKSkKLSAgICAgICAgICAgICAg
KGh0LXNpemUhIGh0ICgrIDEgKGh0LXNpemUgaHQpKSkpCi0gICAgICAgICAgKHNldC1jZHIhIGhh
bmRsZSB2YWwpKSkpKQorICAgIChoYXNoeC1zZXQhIGggYSByZWFsLXRhYmxlIGtleSB2YWwpKQor
ICAqdW5zcGVjaWZpZWQqKQogCiAoZGVmaW5lKiAoaGFzaC10YWJsZS1zZXQhIGh0ICM6b3B0aW9u
YWwgKGtleTEgaHQtdW5zcGVjaWZpZWQpICh2YWwxIGh0LXVuc3BlY2lmaWVkKQogICAgICAgICAg
ICAgICAgICAgICAgICAgICAjOnJlc3QgYXJncykKQEAgLTQ3NywyNSArNDM5LDE1IEBAIGRlbGV0
ZWQuIgogICAgICAgKGJlZ2luCiAgICAgICAgIChhc3NlcnQtbXV0YWJsZSBodCkKICAgICAgICAg
KHdpdGgtaGFzaHgtdmFsdWVzIChoIGEgcmVhbC10YWJsZSkgaHQKLSAgICAgICAgICAobGV0ICgo
c2V0LW9uZSEgKGlmIChodC13ZWFrbmVzcyBodCkKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIChsYW1iZGEgKGtleSB2YWwpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICho
YXNoeC1zZXQhIGggYSByZWFsLXRhYmxlIGtleSB2YWwpKQotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgKGxhbWJkYSAoa2V5IHZhbCkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgKGxldCAoKGhhbmRsZSAoaGFzaHgtY3JlYXRlLWhhbmRsZSEKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaCBhIHJlYWwtdGFibGUga2V5Ci0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGh0LXVuc3BlY2lmaWVkKSkp
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGlmIChlcT8gaHQtdW5zcGVjaWZp
ZWQgKGNkciBoYW5kbGUpKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAo
aHQtc2l6ZSEgaHQgKCsgMSAoaHQtc2l6ZSBodCkpKSkKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAoc2V0LWNkciEgaGFuZGxlIHZhbCkpKSkpKQotICAgICAgICAgICAgKHNldC1v
bmUhIGtleTEgdmFsMSkKLSAgICAgICAgICAgIChsZXQgbG9vcCAoKGt2cyBhcmdzKSkKLSAgICAg
ICAgICAgICAgKGNvbmQKLSAgICAgICAgICAgICAgICgobnVsbD8ga3ZzKSAqdW5zcGVjaWZpZWQq
KQotICAgICAgICAgICAgICAgKChudWxsPyAoY2RyIGt2cykpCi0gICAgICAgICAgICAgICAgKGVy
cm9yICJPZGQgbnVtYmVyIG9mIGtleS12YWx1ZSBwYWlycyIKLSAgICAgICAgICAgICAgICAgICAg
ICAgKGNvbnMqIGtleTEgdmFsMSBhcmdzKSkpCi0gICAgICAgICAgICAgICAoZWxzZSAoc2V0LW9u
ZSEgKGNhciBrdnMpIChjYWRyIGt2cykpCi0gICAgICAgICAgICAgICAgICAgICAobG9vcCAoY2Rk
ciBrdnMpKSkpKSkpKSkpCisgICAgICAgICAgKGhhc2h4LXNldCEgaCBhIHJlYWwtdGFibGUga2V5
MSB2YWwxKQorICAgICAgICAgIChsZXQgbG9vcCAoKGt2cyBhcmdzKSkKKyAgICAgICAgICAgIChj
b25kCisgICAgICAgICAgICAgKChudWxsPyBrdnMpICp1bnNwZWNpZmllZCopCisgICAgICAgICAg
ICAgKChudWxsPyAoY2RyIGt2cykpCisgICAgICAgICAgICAgIChlcnJvciAiT2RkIG51bWJlciBv
ZiBrZXktdmFsdWUgcGFpcnMiCisgICAgICAgICAgICAgICAgICAgICAoY29ucyoga2V5MSB2YWwx
IGFyZ3MpKSkKKyAgICAgICAgICAgICAoZWxzZSAoaGFzaHgtc2V0ISBoIGEgcmVhbC10YWJsZSAo
Y2FyIGt2cykgKGNhZHIga3ZzKSkKKyAgICAgICAgICAgICAgICAgICAobG9vcCAoY2RkciBrdnMp
KSkpKSkpKSkKIAogKGRlZmluZSAoaGFzaC10YWJsZS1kZWxldGUtc2luZ2xlISBodCBrZXkpCiAg
ICJEZWxldGVzIEtFWSBhbmQgYXNzb2NpYXRlZCB2YWx1ZSBpbiBoYXNoIHRhYmxlIEhULiBSZXR1
cm5zICN0IGlmIEtFWQpAQCAtNTA1LDcgKzQ1Nyw2IEBAIGhhZCBhbiBhc3NvY2lhdGlvbiBhbmQg
I2Ygb3RoZXJ3aXNlLiIKICAgICAoaWYgKGVxPyBodC11bnNwZWNpZmllZCAoaGFzaHgtcmVmIGgg
YSByZWFsLXRhYmxlIGtleSBodC11bnNwZWNpZmllZCkpCiAgICAgICAgICNmCiAgICAgICAgIChi
ZWdpbiAoaGFzaHgtcmVtb3ZlISBoIGEgcmVhbC10YWJsZSBrZXkpCi0gICAgICAgICAgICAgICAo
aHQtc2l6ZSEgaHQgKC0gKGh0LXNpemUgaHQpIDEpKQogICAgICAgICAgICAgICAgI3QpKSkpCiAK
IChkZWZpbmUqIChoYXNoLXRhYmxlLWRlbGV0ZSEgaHQgIzpvcHRpb25hbCAoa2V5MSBodC11bnNw
ZWNpZmllZCkgIzpyZXN0IGtleXMpCkBAIC01MTksNyArNDcwLDYgQEAgbnVtYmVyIG9mIGtleXMg
dGhhdCBoYWQgYXNzb2NpYXRpb25zLiIKICAgICAgICAgKGFzc2VydC1tdXRhYmxlIGh0KQogICAg
ICAgICAod2l0aC1oYXNoeC12YWx1ZXMgKGggYSByZWFsLXRhYmxlKSBodAogICAgICAgICAgIChs
ZXQqICgoY291bnQgMCkKLSAgICAgICAgICAgICAgICAgKHNpemUgKGh0LXNpemUgaHQpKQogICAg
ICAgICAgICAgICAgICAoZGVsZXRlLW9uZSEgKGxhbWJkYSAoa2V5KQogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAod2hlbiAobm90IChlcT8gaHQtdW5zcGVjaWZpZWQKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChoYXNoeC1yZWYgaCBhIHJl
YWwtdGFibGUga2V5CkBAIC01MjgsOCArNDc4LDYgQEAgbnVtYmVyIG9mIGtleXMgdGhhdCBoYWQg
YXNzb2NpYXRpb25zLiIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaGFzaHgt
cmVtb3ZlISBoIGEgcmVhbC10YWJsZSBrZXkpKSkpKQogICAgICAgICAgICAgKGRlbGV0ZS1vbmUh
IGtleTEpCiAgICAgICAgICAgICAoZm9yLWVhY2ggZGVsZXRlLW9uZSEga2V5cykKLSAgICAgICAg
ICAgICh1bmxlc3MgKG9yIChodC13ZWFrbmVzcyBodCkgKHplcm8/IGNvdW50KSkKLSAgICAgICAg
ICAgICAgKGh0LXNpemUhIGh0ICgtIHNpemUgY291bnQpKSkKICAgICAgICAgICAgIGNvdW50KSkp
KSkKIAogKGRlZmluZSAoaGFzaC10YWJsZS1pbnRlcm4hIGh0IGtleSBmYWlsdXJlKQpAQCAtNTQ2
LDExICs0OTQsOSBAQCBpcyBzZXQgdG8gdGhlIHJlc3VsdCBvZiBjYWxsaW5nIEZBSUxVUkUgYW5k
IHRoZSBuZXcgdmFsdWUgaXMgcmV0dXJuZWQuIgogICAgICAgICAgICAgICAgICAgIChoYXNoeC1z
ZXQhIGggYSByZWFsLXRhYmxlIGtleSB2YWx1ZSkKICAgICAgICAgICAgICAgICAgICB2YWx1ZSkp
CiAgICAgICAgICAgICAgICAgKGVsc2UgdmFsdWUpKSkKLSAgICAgICAgKGxldCAoKGhhbmRsZQot
ICAgICAgICAgICAgICAgKGhhc2h4LWNyZWF0ZS1oYW5kbGUhIGggYSByZWFsLXRhYmxlIGtleSBo
dC11bnNwZWNpZmllZCkpKQorICAgICAgICAobGV0ICgoaGFuZGxlIChoYXNoeC1jcmVhdGUtaGFu
ZGxlISBoIGEgcmVhbC10YWJsZSBrZXkgaHQtdW5zcGVjaWZpZWQpKSkKICAgICAgICAgICAoaWYg
KGVxPyBodC11bnNwZWNpZmllZCAoY2RyIGhhbmRsZSkpCi0gICAgICAgICAgICAgIChiZWdpbiAo
aHQtc2l6ZSEgaHQgKCsgMSAoaHQtc2l6ZSBodCkpKQotICAgICAgICAgICAgICAgICAgICAgKHNl
dC1jZHIhIGhhbmRsZSAoZmFpbHVyZSkpKSkKKyAgICAgICAgICAgICAgKHNldC1jZHIhIGhhbmRs
ZSAoZmFpbHVyZSkpKQogICAgICAgICAgIChjZHIgaGFuZGxlKSkpKSkKIAogKGRlZmluZSAoaGFz
aC10YWJsZS1pbnRlcm4hL2RlZmF1bHQgaHQga2V5IGRlZmF1bHQpCkBAIC01NjYsMTEgKzUxMiw3
IEBAIGlzIHNldCB0byBERUZBVUxUIGFuZCBERUZBVUxUIGlzIHJldHVybmVkLiIKICAgICAgICAg
ICAgICAgICAgKGhhc2h4LXNldCEgaCBhIHJlYWwtdGFibGUga2V5IGRlZmF1bHQpCiAgICAgICAg
ICAgICAgICAgIGRlZmF1bHQpCiAgICAgICAgICAgICAgICAgKGVsc2UgdmFsdWUpKSkKLSAgICAg
ICAgKGxldCAoKGhhbmRsZQotICAgICAgICAgICAgICAgKGhhc2h4LWNyZWF0ZS1oYW5kbGUhIGgg
YSByZWFsLXRhYmxlIGtleSBodC11bnNwZWNpZmllZCkpKQotICAgICAgICAgIChpZiAoZXE/IGh0
LXVuc3BlY2lmaWVkIChjZHIgaGFuZGxlKSkKLSAgICAgICAgICAgICAgKGJlZ2luIChodC1zaXpl
ISBodCAoKyAxIChodC1zaXplIGh0KSkpCi0gICAgICAgICAgICAgICAgICAgICAoc2V0LWNkciEg
aGFuZGxlIGRlZmF1bHQpKSkKKyAgICAgICAgKGxldCAoKGhhbmRsZSAoaGFzaHgtY3JlYXRlLWhh
bmRsZSEgaCBhIHJlYWwtdGFibGUga2V5IGRlZmF1bHQpKSkKICAgICAgICAgICAoY2RyIGhhbmRs
ZSkpKSkpCiAKIChkZWZpbmUqIChoYXNoLXRhYmxlLXVwZGF0ZSEgaHQga2V5IHVwZGF0ZXIgIzpv
cHRpb25hbApAQCAtNjAxLDcgKzU0Myw2IEBAIHByb3ZpZGVkLCBvciBzaWduYWxzIGFuIGVycm9y
IG90aGVyd2lzZS4iCiAgICAgICAgICAgICAgICAgICAgKHNldC1jZHIhIGhhbmRsZSBuZXcpKSkK
ICAgICAgICAgICAgICAgICAoZWxzZQogICAgICAgICAgICAgICAgICAobGV0ICgobmV3ICh1cGRh
dGVyIChmYWlsdXJlKSkpKQotICAgICAgICAgICAgICAgICAgIChodC1zaXplISBodCAoKyAxICho
dC1zaXplIGh0KSkpCiAgICAgICAgICAgICAgICAgICAgKGhhc2h4LXNldCEgaCBhIHJlYWwtdGFi
bGUga2V5IG5ldykpKSkpKSkKICAgKnVuc3BlY2lmaWVkKikKIApAQCAtNjE5LDEyICs1NjAsOCBA
QCBVUERBVEVSLCBhbmQgc2V0dGluZyBpdCB0byB0aGUgcmVzdWx0IHRoZXJlb2YuIgogICAgICAg
ICA7OyBKLk0uIHNlcGFyYXRlIHRoZSBjYXNlIHdoZXJlIGh0IGlzIHdlYWsgLSBkb24ndCB1c2Ug
aGFuZGxlCiAgICAgICAgIChsZXQqICgob2xkIChoYXNoeC1yZWYgaCBhIHJlYWwtdGFibGUga2V5
IGRlZmF1bHQpKSkKICAgICAgICAgICAoaGFzaHgtc2V0ISBoIGEgcmVhbC10YWJsZSBrZXkgKHVw
ZGF0ZXIgb2xkKSkpCi0gICAgICAgIChsZXQgKChoYW5kbGUgKGhhc2h4LWNyZWF0ZS1oYW5kbGUh
IGggYSByZWFsLXRhYmxlIGtleQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBodC11bnNwZWNpZmllZCkpKQotICAgICAgICAgIChpZiAoZXE/IGh0LXVuc3BlY2lm
aWVkIChjZHIgaGFuZGxlKSkKLSAgICAgICAgICAgICAgKGJlZ2luIChodC1zaXplISBodCAoKyAx
IChodC1zaXplIGh0KSkpCi0gICAgICAgICAgICAgICAgICAgICAoc2V0LWNkciEgaGFuZGxlICh1
cGRhdGVyIGRlZmF1bHQpKSkKLSAgICAgICAgICAgICAgKHNldC1jZHIhIGhhbmRsZSAodXBkYXRl
ciAoY2RyIGhhbmRsZSkpKSkpKSkKKyAgICAgICAgKGxldCAoKGhhbmRsZSAoaGFzaHgtY3JlYXRl
LWhhbmRsZSEgaCBhIHJlYWwtdGFibGUga2V5IGRlZmF1bHQpKSkKKyAgICAgICAgICAoc2V0LWNk
ciEgaGFuZGxlICh1cGRhdGVyIChjZHIgaGFuZGxlKSkpKSkpCiAgICp1bnNwZWNpZmllZCopCiAK
IChkZWZpbmUgKGhhc2gtdGFibGUtcG9wISBodCkKQEAgLTYzNyw4ICs1NzQsNiBAQCBhbmQgdmFs
dWUgYXMgdHdvIHZhbHVlcy4iCiAgICAgICh3aXRoLWhhc2h4LXZhbHVlcyAoaCBhIHJlYWwtdGFi
bGUpIGh0CiAgICAgICAgKGhhc2gtZm9yLWVhY2ggKGxhbWJkYSAoa2V5IHZhbHVlKQogICAgICAg
ICAgICAgICAgICAgICAgICAgKGhhc2h4LXJlbW92ZSEgaCBhIHJlYWwtdGFibGUga2V5KQotICAg
ICAgICAgICAgICAgICAgICAgICAgKHVubGVzcyAoaHQtd2Vha25lc3MgaHQpCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgIChodC1zaXplISBodCAoLSAoaHQtc2l6ZSBodCkgMSkpKQogICAgICAg
ICAgICAgICAgICAgICAgICAgKHJldHVybiBrZXkgdmFsdWUpKQogICAgICAgICAgICAgICAgICAg
ICAgIHJlYWwtdGFibGUpKQogICAgICAoZXJyb3IgIkhhc2ggdGFibGUgaXMgZW1wdHkiIGh0KSkp
KQpAQCAtNjQ5LDcgKzU4NCw2IEBAIGFuZCB2YWx1ZSBhcyB0d28gdmFsdWVzLiIKICAgKGlmIGNh
cGFjaXR5CiAgICAgICAoaHQtcmVhbC10YWJsZSEgaHQgKChndWlsZS1odC1jdG9yIChodC13ZWFr
bmVzcyBodCkpIGNhcGFjaXR5KSkKICAgICAgIChoYXNoLWNsZWFyISAoaHQtcmVhbC10YWJsZSBo
dCkpKQotICAoaHQtc2l6ZSEgaHQgMCkKICAgKnVuc3BlY2lmaWVkKikKIAogDApAQCAtNjU4LDEw
ICs1OTIsNyBAQCBhbmQgdmFsdWUgYXMgdHdvIHZhbHVlcy4iCiAoZGVmaW5lIChoYXNoLXRhYmxl
LXNpemUgaHQpCiAgICJSZXR1cm5zIHRoZSBudW1iZXIgb2YgYXNzb2NpYXRpb25zIGluIEhULiBU
aGlzIGlzIGd1YXJhbnRlZWQgTygxKSBmb3IKIHRhYmxlcyB3aGVyZSAjOldFQUtORVNTIGlzICNm
LiIKLSAgKGlmIChodC13ZWFrbmVzcyBodCkKLSAgICAgIChoYXNoLWZvbGQgKGxhbWJkYSAoa2V5
IHZhbCBhbnMpICgrIDEgYW5zKSkKLSAgICAgICAgICAgICAgICAgMCAoaHQtcmVhbC10YWJsZSBo
dCkpCi0gICAgICAoaHQtc2l6ZSBodCkpKQorICAoaGFzaC1uLWl0ZW1zIChodC1yZWFsLXRhYmxl
IGh0KSkpCiAKIChkZWZpbmUgKGhhc2gtdGFibGUta2V5cyBodCkKICAgIlJldHVybnMgYSBsaXN0
IG9mIHRoZSBrZXlzIGluIEhULiIKQEAgLTY4Myw0OCArNjE0LDYwIEBAIHZhbHVlcyBpbiB0aGUg
Y29ycmVzcG9uZGluZyBvcmRlci4iCiAgICAgICAgICAgICAgICAgICAgKGh0LXJlYWwtdGFibGUg
aHQpKQogICAgICh2YWx1ZXMga2V5cyB2YWxzKSkpCiAKLTs7OyBJbiBhIG5vbi13ZWFrIGhhc2gg
dGFibGUsIHdlIGtub3cgdGhlIHNpemUgdGhhdCB0aGUga2V5L3ZhbHVlIHZlY3RvcgotOzs7IHdp
bGwgaGF2ZS4gSW4gYSB3ZWFrIGhhc2ggdGFibGUsIHdlIGhhdmUgdG8gaXRlcmF0ZSB0aHJvdwot
Ozs7IGFzc29jaWF0aW9ucyBvZiB0aGUgaGFzaCB0YWJsZSB0byBjb21wdXRlIGl0cyBzaXplLCBz
byBpdCBpcyBlYXNpZXIKLTs7OyB0byBzaW1wbHkgY2FsbCBIQVNILVRBQkxFLUtFWVMvSEFTSC1U
QUJMRS1WQUxVRVMuCiAoZGVmaW5lIChoYXNoLXRhYmxlLWtleS12ZWN0b3IgaHQpCiAgICJSZXR1
cm5zIGEgdmVjdG9yIG9mIHRoZSBrZXlzIGluIEhULiIKLSAgKGlmIChodC13ZWFrbmVzcyBodCkK
LSAgICAgIChsaXN0LT52ZWN0b3IgKGhhc2gtdGFibGUta2V5cyBodCkpCi0gICAgICAobGV0KiAo
KGxlbiAoaHQtc2l6ZSBodCkpCi0gICAgICAgICAgICAgKGtleXMgKG1ha2UtdmVjdG9yIGxlbikp
KQotICAgICAgICAoaGFzaC1mb2xkIChsYW1iZGEgKGtleSB2YWwgaSkKLSAgICAgICAgICAgICAg
ICAgICAgICh2ZWN0b3Itc2V0ISBrZXlzIGkga2V5KQotICAgICAgICAgICAgICAgICAgICAgKCsg
aSAxKSkKLSAgICAgICAgICAgICAgICAgICAwIChodC1yZWFsLXRhYmxlIGh0KSkKKyAgKGxldCog
KChsZW4gKGhhc2gtdGFibGUtc2l6ZSBodCkpCisgICAgICAgICAoa2V5cyAobWFrZS12ZWN0b3Ig
bGVuKSkKKyAgICAgICAgIDs7IEluIGEgd2VhayBoYXNoIHRhYmxlLCBzb21lIHZhbHVlcyBtaWdo
dCBnZXQgZ2FyZ2FiZQorICAgICAgICAgOzsgY29sbGVjdGVkIHdoaWxlIHRoZSBwcm9jZWR1cmUg
aXMgcnVubmluZywgc28gd2UgZG91YmxlLWNoZWNrCisgICAgICAgICA7OyBpZiB3ZSBjb2xsZWN0
ZWQgdGhlIGV4cGVjdGVkIG51bWJlciBvZiBrZXlzLgorICAgICAgICAgKG5ldy1sZW4gKGhhc2gt
Zm9sZCAobGFtYmRhIChrZXkgdmFsIGkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
KHZlY3Rvci1zZXQhIGtleXMgaSBrZXkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
KCsgaSAxKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMCAoaHQtcmVhbC10YWJsZSBo
dCkpKSkKKyAgICAoaWYgKDwgbmV3LWxlbiBsZW4pCisgICAgICAgIChsZXQgKChuZXcta2V5cyAo
bWFrZS12ZWN0b3IgbmV3LWxlbikpKQorICAgICAgICAgICh2ZWN0b3ItbW92ZS1sZWZ0ISBrZXlz
IDAgbmV3LWxlbiBuZXcta2V5cyAwKQorICAgICAgICAgIG5ldy1rZXlzKQogICAgICAgICBrZXlz
KSkpCiAKIChkZWZpbmUgKGhhc2gtdGFibGUtdmFsdWUtdmVjdG9yIGh0KQogICAiUmV0dXJucyBh
IHZlY3RvciBvZiB0aGUgdmFsdWVzIGluIEhULiIKLSAgKGlmIChodC13ZWFrbmVzcyBodCkKLSAg
ICAgIChsaXN0LT52ZWN0b3IgKGhhc2gtdGFibGUtdmFsdWVzIGh0KSkKLSAgICAgIChsZXQqICgo
bGVuIChodC1zaXplIGh0KSkKLSAgICAgICAgICAgICAodmFscyAobWFrZS12ZWN0b3IgbGVuKSkp
Ci0gICAgICAgIChoYXNoLWZvbGQgKGxhbWJkYSAoa2V5IHZhbCBpKQotICAgICAgICAgICAgICAg
ICAgICAgKHZlY3Rvci1zZXQhIHZhbHMgaSB2YWwpCi0gICAgICAgICAgICAgICAgICAgICAoKyBp
IDEpKQotICAgICAgICAgICAgICAgICAgIDAgKGh0LXJlYWwtdGFibGUgaHQpKQorICAobGV0KiAo
KGxlbiAoaGFzaC10YWJsZS1zaXplIGh0KSkKKyAgICAgICAgICh2YWxzIChtYWtlLXZlY3RvciBs
ZW4pKQorICAgICAgICAgOzsgSW4gYSB3ZWFrIGhhc2ggdGFibGUsIHNvbWUgdmFsdWVzIG1pZ2h0
IGdldCBnYXJnYWJlCisgICAgICAgICA7OyBjb2xsZWN0ZWQgd2hpbGUgdGhlIHByb2NlZHVyZSBp
cyBydW5uaW5nLCBzbyB3ZSBkb3VibGUtY2hlY2sKKyAgICAgICAgIDs7IGlmIHdlIGNvbGxlY3Rl
ZCB0aGUgZXhwZWN0ZWQgbnVtYmVyIG9mIGtleXMuCisgICAgICAgICAobmV3LWxlbiAoaGFzaC1m
b2xkIChsYW1iZGEgKGtleSB2YWwgaSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAo
dmVjdG9yLXNldCEgdmFscyBpIHZhbCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAo
KyBpIDEpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwIChodC1yZWFsLXRhYmxlIGh0
KSkpKQorICAgIChpZiAoPCBuZXctbGVuIGxlbikKKyAgICAgICAgKGxldCAoKG5ldy12YWxzICht
YWtlLXZlY3RvciBuZXctbGVuKSkpCisgICAgICAgICAgKHZlY3Rvci1tb3ZlLWxlZnQhIHZhbHMg
MCBuZXctbGVuIG5ldy12YWxzIDApCisgICAgICAgICAgbmV3LXZhbHMpCiAgICAgICAgIHZhbHMp
KSkKIAogKGRlZmluZSAoaGFzaC10YWJsZS1lbnRyeS12ZWN0b3JzIGh0KQogICAiUmV0dXJucyB0
d28gdmFsdWVzOiBhIHZlY3RvciBvZiB0aGUga2V5cyBhbmQgYSB2ZWN0b3Igb2YgdGhlCiBhc3Nv
Y2lhdGVkIHZhbHVlcyBpbiB0aGUgY29ycmVzcG9uZGluZyBvcmRlci4iCi0gIChpZiAoaHQtd2Vh
a25lc3MgaHQpCi0gICAgICAocmVjZWl2ZSAoa2V5cyB2YWxzKSAoaGFzaC10YWJsZS1lbnRyaWVz
IGh0KQotICAgICAgICAodmFsdWVzIChsaXN0LT52ZWN0b3Iga2V5cykgKGxpc3QtPnZlY3RvciB2
YWxzKSkpCi0gICAgICAobGV0KiAoKGxlbiAoaHQtc2l6ZSBodCkpCi0gICAgICAgICAgICAgKGtl
eXMgKG1ha2UtdmVjdG9yIGxlbikpCi0gICAgICAgICAgICAgKHZhbHMgKG1ha2UtdmVjdG9yIGxl
bikpKQotICAgICAgICAoaGFzaC1mb2xkIChsYW1iZGEgKGtleSB2YWwgaSkKLSAgICAgICAgICAg
ICAgICAgICAgICh2ZWN0b3Itc2V0ISBrZXlzIGkga2V5KQotICAgICAgICAgICAgICAgICAgICAg
KHZlY3Rvci1zZXQhIHZhbHMgaSB2YWwpCi0gICAgICAgICAgICAgICAgICAgICAoKyBpIDEpKQot
ICAgICAgICAgICAgICAgICAgIDAgKGh0LXJlYWwtdGFibGUgaHQpKQorICAobGV0KiAoKGxlbiAo
aGFzaC10YWJsZS1zaXplIGh0KSkKKyAgICAgICAgIChrZXlzIChtYWtlLXZlY3RvciBsZW4pKQor
ICAgICAgICAgKHZhbHMgKG1ha2UtdmVjdG9yIGxlbikpCisgICAgICAgICA7OyBJbiBhIHdlYWsg
aGFzaCB0YWJsZSwgc29tZSB2YWx1ZXMgbWlnaHQgZ2V0IGdhcmdhYmUKKyAgICAgICAgIDs7IGNv
bGxlY3RlZCB3aGlsZSB0aGUgcHJvY2VkdXJlIGlzIHJ1bm5pbmcsIHNvIHdlIGRvdWJsZS1jaGVj
aworICAgICAgICAgOzsgaWYgd2UgY29sbGVjdGVkIHRoZSBleHBlY3RlZCBudW1iZXIgb2Yga2V5
cy4KKyAgICAgICAgIChuZXctbGVuIChoYXNoLWZvbGQgKGxhbWJkYSAoa2V5IHZhbCBpKQorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICh2ZWN0b3Itc2V0ISBrZXlzIGkga2V5KQorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICh2ZWN0b3Itc2V0ISB2YWxzIGkgdmFsKQorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICgrIGkgMSkpCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIDAgKGh0LXJlYWwtdGFibGUgaHQpKSkpCisgICAgKGlmICg8IG5ldy1sZW4gbGVu
KQorICAgICAgICAobGV0ICgobmV3LWtleXMgKG1ha2UtdmVjdG9yIG5ldy1sZW4pKQorICAgICAg
ICAgICAgICAobmV3LXZhbHMgKG1ha2UtdmVjdG9yIG5ldy1sZW4pKSkKKyAgICAgICAgICAodmVj
dG9yLW1vdmUtbGVmdCEga2V5cyAwIG5ldy1sZW4gbmV3LWtleXMgMCkKKyAgICAgICAgICAodmVj
dG9yLW1vdmUtbGVmdCEgdmFscyAwIG5ldy1sZW4gbmV3LXZhbHMgMCkKKyAgICAgICAgICAodmFs
dWVzIG5ldy1rZXlzIG5ldy12YWxzKSkKICAgICAgICAgKHZhbHVlcyBrZXlzIHZhbHMpKSkpCiAK
IChkZWZpbmUgKGhhc2gtdGFibGUtZmluZCBwcm9jIGh0IGZhaWx1cmUpCkBAIC03NTksMTUgKzcw
MiwxMiBAQCBhc3NvY2lhdGlvbiBpbiBoYXNoLXRhYmxlIHdpdGggdGhlIHZhbHVlIG9mIHRoZSBh
c3NvY2lhdGlvbi4gVGhlIGtleSBvZgogdGhlIGFzc29jaWF0aW9uIGFuZCB0aGUgcmVzdWx0IG9m
IGludm9raW5nIFBST0MgYXJlIGVudGVyZWQgaW50byB0aGUgbmV3CiBoYXNoIHRhYmxlLCB3aGlj
aCBpcyB0aGVuIHJldHVybmVkLiIKICAgKGxldCAoKHJlc3VsdCAoJW1ha2UtaGFzaC10YWJsZSBl
cXVpdi1mdW5jdGlvbiBoYXNoLWZ1bmN0aW9uCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgbXV0YWJsZSBjYXBhY2l0eSB3ZWFrbmVzcykpCi0gICAgICAgIChzaXplIDApKQorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG11dGFibGUgY2FwYWNpdHkgd2Vha25lc3Mp
KSkKICAgICAod2l0aC1oYXNoeC12YWx1ZXMgKGggYSByZWFsLXRhYmxlKSByZXN1bHQKICAgICAg
IChoYXNoLWZvci1lYWNoCiAgICAgICAgKGxhbWJkYSAoa2V5IHZhbCkKLSAgICAgICAgIChoYXNo
eC1zZXQhIGggYSByZWFsLXRhYmxlIGtleSAocHJvYyB2YWwpKQotICAgICAgICAgKHNldCEgc2l6
ZSAoKyAxIHNpemUpKSkKKyAgICAgICAgIChoYXNoeC1zZXQhIGggYSByZWFsLXRhYmxlIGtleSAo
cHJvYyB2YWwpKSkKICAgICAgICAoaHQtcmVhbC10YWJsZSBodCkpKQotICAgIChodC1zaXplISBy
ZXN1bHQgc2l6ZSkKICAgICByZXN1bHQpKQogCiAoZGVmaW5lIChoYXNoLXRhYmxlLW1hcC0+bGlz
dCBwcm9jIGh0KQpAQCAtODIyLDggKzc2Miw2IEBAIFBST0MgcmV0dXJucyB0cnVlLiBSZXR1cm5z
IGFuIHVuc3BlY2lmaWVkIHZhbHVlLiIKICAgKHdpdGgtaGFzaHgtdmFsdWVzIChoIGEgcmVhbC10
YWJsZSkgaHQKICAgICAoaGFzaC1mb3ItZWFjaCAobGFtYmRhIChrZXkgdmFsKQogICAgICAgICAg
ICAgICAgICAgICAgKHdoZW4gKHByb2Mga2V5IHZhbCkKLSAgICAgICAgICAgICAgICAgICAgICAg
KHVubGVzcyAoaHQtd2Vha25lc3MgaHQpCi0gICAgICAgICAgICAgICAgICAgICAgICAgKGh0LXNp
emUhIGh0ICgtIChodC1zaXplIGh0KSAxKSkpCiAgICAgICAgICAgICAgICAgICAgICAgIChoYXNo
eC1yZW1vdmUhIGggYSByZWFsLXRhYmxlIGtleSkpKQogICAgICAgICAgICAgICAgICAgIHJlYWwt
dGFibGUpKSkKIApAQCAtODM4LDE1ICs3NzYsMTMgQEAgcHJvcGVydGllcyBhcyBnaXZlbiBieSBr
ZXl3b3JkIGFyZ3VtZW50cywgd2hpY2ggZGVmYXVsdCB0byBIVAogcHJvcGVydGllcy4gSWYgTVVU
QUJMRSBpcyB0cnVlLCB0aGUgbmV3IGhhc2ggdGFibGUgaXMgbXV0YWJsZSwKIG90aGVyd2lzZSwg
aXQgaXMgaW1tdXRhYmxlLiIKICAgKHdpdGgtaGFzaHgtdmFsdWVzIChoIGEgcmVhbC10YWJsZSkg
aHQKLSAgICAobGV0ICgobmV3LXJlYWwtdGFibGUgKChndWlsZS1odC1jdG9yIHdlYWtuZXNzKSBj
YXBhY2l0eSkpCi0gICAgICAgICAgKHNpemUgMCkpCisgICAgKGxldCAoKG5ldy1yZWFsLXRhYmxl
ICgoZ3VpbGUtaHQtY3RvciB3ZWFrbmVzcykgY2FwYWNpdHkpKSkKICAgICAgIChoYXNoLWZvci1l
YWNoIChsYW1iZGEgKGtleSB2YWwpCi0gICAgICAgICAgICAgICAgICAgICAgIChoYXNoeC1zZXQh
IGggYSBuZXctcmVhbC10YWJsZSBrZXkgdmFsKQotICAgICAgICAgICAgICAgICAgICAgICAoc2V0
ISBzaXplICgrIDEgc2l6ZSkpKQorICAgICAgICAgICAgICAgICAgICAgICAoaGFzaHgtc2V0ISBo
IGEgbmV3LXJlYWwtdGFibGUga2V5IHZhbCkpCiAgICAgICAgICAgICAgICAgICAgICByZWFsLXRh
YmxlKQogICAgICAgOzsgQXJndW1lbnRzOiByZWFsLXRhYmxlIGhhc2gtZnVuY3Rpb24gYXNzb2Np
YXRvcgotICAgICAgOzsgICAgICAgICAgICB3ZWFrbmVzcyBtdXRhYmxlPyBzaXplIGVxdWl2YWxl
bmNlLWZ1bmN0aW9uIG9yaWctaGFzaC1mdW5jdGlvbgotICAgICAgKG1ha2UtZ2VuZXJpYy1oYXNo
LXRhYmxlIG5ldy1yZWFsLXRhYmxlIGggYSB3ZWFrbmVzcyAoYW5kIG11dGFibGUgI3QpIHNpemUK
KyAgICAgIDs7ICAgICAgICAgICAgd2Vha25lc3MgbXV0YWJsZT8gZXF1aXZhbGVuY2UtZnVuY3Rp
b24gb3JpZy1oYXNoLWZ1bmN0aW9uCisgICAgICAobWFrZS1nZW5lcmljLWhhc2gtdGFibGUgbmV3
LXJlYWwtdGFibGUgaCBhIHdlYWtuZXNzIChhbmQgbXV0YWJsZSAjdCkKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAoaGFzaC10YWJsZS1lcXVpdmFsZW5jZS1mdW5jdGlvbiBodCkKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaGFzaC10YWJsZS1oYXNoLWZ1bmN0aW9uIGh0
KSkpKSkKIApAQCAtODU4LDggKzc5NCw4IEBAIGFzIEhULCBidXQgd2l0aCBubyBhc3NvY2lhdGlv
bnMuIgogICAod2l0aC1oYXNoeC12YWx1ZXMgKGggYSByZWFsLXRhYmxlKSBodAogICAgIChsZXQg
KChuZXctcmVhbC10YWJsZSAoKGd1aWxlLWh0LWN0b3Igd2Vha25lc3MpIGNhcGFjaXR5KSkpCiAg
ICAgICA7OyBBcmd1bWVudHM6IHJlYWwtdGFibGUgaGFzaC1mdW5jdGlvbiBhc3NvY2lhdG9yCi0g
ICAgICA7OyAgICAgICAgICAgIHdlYWtuZXNzIG11dGFibGU/IHNpemUgZXF1aXZhbGVuY2UtZnVu
Y3Rpb24gb3JpZy1oYXNoLWZ1bmN0aW9uCi0gICAgICAobWFrZS1nZW5lcmljLWhhc2gtdGFibGUg
bmV3LXJlYWwtdGFibGUgaCBhIHdlYWtuZXNzIChhbmQgbXV0YWJsZSAjdCkgMAorICAgICAgOzsg
ICAgICAgICAgICB3ZWFrbmVzcyBtdXRhYmxlPyBlcXVpdmFsZW5jZS1mdW5jdGlvbiBvcmlnLWhh
c2gtZnVuY3Rpb24KKyAgICAgIChtYWtlLWdlbmVyaWMtaGFzaC10YWJsZSBuZXctcmVhbC10YWJs
ZSBoIGEgd2Vha25lc3MgKGFuZCBtdXRhYmxlICN0KQogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIChoYXNoLXRhYmxlLWVxdWl2YWxlbmNlLWZ1bmN0aW9uIGh0KQogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIChoYXNoLXRhYmxlLWhhc2gtZnVuY3Rpb24gaHQpKSkpKQogCi0t
IAoyLjE5LjEKCg==
--00000000000027132d057f5ecbea
Content-Type: text/x-patch; charset="US-ASCII"; name="0007-Implemented-SRFI-128.patch"
Content-Disposition: attachment; filename="0007-Implemented-SRFI-128.patch"
Content-Transfer-Encoding: base64
Content-ID: <f_jqvhvnos1>
X-Attachment-Id: f_jqvhvnos1

RnJvbSAwNTBiNzA1MGUzOGRlYzNiODMwMTM1NjA1MzU4MjUwNWY2Njc3YWZjIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiA9P1VURi04P3E/Sj1DMz1BOXNzaWNhPTIwTWlsYXI9QzM9QTk/
PSA8amVzc3ltaWxhcmVAZ21haWwuY29tPgpEYXRlOiBGcmksIDExIEphbiAyMDE5IDE5OjQxOjIw
IC0wMjAwClN1YmplY3Q6IFtQQVRDSCAwNy8xMF0gSW1wbGVtZW50ZWQgU1JGSS0xMjgKCi0tLQog
bW9kdWxlL01ha2VmaWxlLmFtICAgICAgICAgICAgIHwgICAyICsKIG1vZHVsZS9zcmZpL3NyZmkt
MTI4LnNjbSAgICAgICB8IDU3NyArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKIG1v
ZHVsZS9zcmZpL3NyZmktMTI4L2dudS5zY20gICB8ICAzOCArKysKIHRlc3Qtc3VpdGUvTWFrZWZp
bGUuYW0gICAgICAgICB8ICAgMSArCiB0ZXN0LXN1aXRlL3Rlc3RzL3NyZmktMTI4LnRlc3QgfCAz
NDggKysrKysrKysrKysrKysrKysrKysKIDUgZmlsZXMgY2hhbmdlZCwgOTY2IGluc2VydGlvbnMo
KykKIGNyZWF0ZSBtb2RlIDEwMDY0NCBtb2R1bGUvc3JmaS9zcmZpLTEyOC5zY20KIGNyZWF0ZSBt
b2RlIDEwMDY0NCBtb2R1bGUvc3JmaS9zcmZpLTEyOC9nbnUuc2NtCiBjcmVhdGUgbW9kZSAxMDA2
NDQgdGVzdC1zdWl0ZS90ZXN0cy9zcmZpLTEyOC50ZXN0CgpkaWZmIC0tZ2l0IGEvbW9kdWxlL01h
a2VmaWxlLmFtIGIvbW9kdWxlL01ha2VmaWxlLmFtCmluZGV4IDZlNzM5ZmVkMC4uNWZjMzAxMGMx
IDEwMDY0NAotLS0gYS9tb2R1bGUvTWFrZWZpbGUuYW0KKysrIGIvbW9kdWxlL01ha2VmaWxlLmFt
CkBAIC0yOTUsNiArMjk1LDggQEAgU09VUkNFUyA9CQkJCQlcCiAgIHNyZmkvc3JmaS05OC5zY20J
CQkJXAogICBzcmZpL3NyZmktMTExLnNjbQkJCQlcCiAgIHNyZmkvc3JmaS0xMjYuc2NtCQkJCVwK
KyAgc3JmaS9zcmZpLTEyOC9nbnUuc2NtCQkJCVwKKyAgc3JmaS9zcmZpLTEyOC5zY20JCQkJXAog
CQkJCQkJXAogICBzdGF0cHJvZi5zY20JCQkJCVwKIAkJCQkJCVwKZGlmZiAtLWdpdCBhL21vZHVs
ZS9zcmZpL3NyZmktMTI4LnNjbSBiL21vZHVsZS9zcmZpL3NyZmktMTI4LnNjbQpuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAuLmJkYWNmYjNjMAotLS0gL2Rldi9udWxsCisrKyBi
L21vZHVsZS9zcmZpL3NyZmktMTI4LnNjbQpAQCAtMCwwICsxLDU3NyBAQAorOzs7IHNyZmktMTI4
LnNjbSAtLS0gQ29tcGFyYXRvcnMKKworOzsgICAgQ29weXJpZ2h0IChDKSAyMDE5IEZyZWUgU29m
dHdhcmUgRm91bmRhdGlvbiwgSW5jLgorOzsKKzs7IFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3
YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKzs7IG1vZGlmeSBpdCB1bmRlciB0
aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKzs7IExpY2Vuc2UgYXMg
cHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorOzsgdmVy
c2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJz
aW9uLgorOzsKKzs7IFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0
IGl0IHdpbGwgYmUgdXNlZnVsLAorOzsgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0
IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKzs7IE1FUkNIQU5UQUJJTElUWSBvciBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCis7OyBMZXNzZXIgR2Vu
ZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorOzsKKzs7IFlvdSBzaG91bGQg
aGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKzs7
IExpY2Vuc2UgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZy
ZWUgU29mdHdhcmUKKzs7IEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlm
dGggRmxvb3IsIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSBVU0EKKworOzsgVGhpcyBmaWxlIGNvbnRh
aW5zIGNvZGUgZnJvbSBTUkZJIDEyOCByZWZlcmVuY2UgaW1wbGVtZW50YXRpb24sIGJ5Cis7OyBK
b2huIENvd2FuCisKKzs7OyBDb3B5cmlnaHQgKEMpIEpvaG4gQ293YW4gKDIwMTUpLiBBbGwgUmln
aHRzIFJlc2VydmVkLgorOzs7Cis7OzsgUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJl
ZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24KKzs7OyBvYnRhaW5pbmcgYSBjb3B5IG9mIHRoaXMg
c29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbgorOzs7IGZpbGVzICh0aGUgIlNv
ZnR3YXJlIiksIHRvIGRlYWwgaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQKKzs7OyByZXN0cmljdGlv
biwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzIHRvIHVzZSwKKzs7OyBj
b3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQv
b3IKKzs7OyBzZWxsIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29u
cyB0byB3aG9tIHRoZQorOzs7IFNvZnR3YXJlIGlzIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVj
dCB0byB0aGUgZm9sbG93aW5nCis7OzsgY29uZGl0aW9uczoKKzs7OworOzs7IFRoZSBhYm92ZSBj
b3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlCis7Ozsg
aW5jbHVkZWQgaW4gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29m
dHdhcmUuCis7OzsKKzs7OyBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgIkFTIElTIiwgV0lUSE9V
VCBXQVJSQU5UWSBPRiBBTlkgS0lORCwKKzs7OyBFWFBSRVNTIE9SIElNUExJRUQsIElOQ0xVRElO
RyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMKKzs7OyBPRiBNRVJDSEFOVEFCSUxJ
VFksIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORAorOzs7IE5PTklORlJJTkdF
TUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIEFVVEhPUlMgT1IgQ09QWVJJR0hUCis7OzsgSE9M
REVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUiBMSUFCSUxJVFks
Cis7OzsgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNF
LCBBUklTSU5HCis7OzsgRlJPTSwgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09G
VFdBUkUgT1IgVEhFIFVTRSBPUgorOzs7IE9USEVSIERFQUxJTkdTIElOIFRIRSBTT0ZUV0FSRS4K
KwwKKworKGRlZmluZS1tb2R1bGUgKHNyZmkgc3JmaS0xMjgpCisgICM6dXNlLW1vZHVsZSAoc3Jm
aSBzcmZpLTkpCisgICM6dXNlLW1vZHVsZSAoc3JmaSBzcmZpLTQzKQorICA7OyBIQVNILUJPVU5E
LCBIQVNILVNBTFQgYW5kIFdJVEgtSEFTSC1TQUxUIGFyZSBkZWZpbmVkIGhlcmUgYmVjYXVzZQor
ICA7OyB0aGUgbGF0dGVyIGlzIG5vdCBzdGFuZGFyZAorICAjOnVzZS1tb2R1bGUgKChzcmZpIHNy
ZmktMTI4IGdudSkgIzpzZWxlY3QgKGhhc2gtYm91bmQgaGFzaC1zYWx0KSkKKyAgIzp1c2UtbW9k
dWxlICgocm5ycyB1bmljb2RlKSAjOnNlbGVjdCAoY2hhci1mb2xkY2FzZSkpCisgICM6dXNlLW1v
ZHVsZSAocm5ycyBieXRldmVjdG9ycykKKyAgIzp1c2UtbW9kdWxlICgoaWNlLTkgZ2VuZXJpYy1o
YXNoLXRhYmxlcykKKyAgICAgICAgICAgICAgICAjOnNlbGVjdCAoKGhhc2ggLiBlcXVhbC1oYXNo
KQorICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJpbmctY2ktaGFzaCBoYXNoLWJ5LWlkZW50
aXR5IGhhc2gtYnktdmFsdWUpKQorICAjOmV4cG9ydCAoY29tcGFyYXRvcj8KKyAgICAgICAgICAg
IG1ha2UtY29tcGFyYXRvcgorICAgICAgICAgICAgY29tcGFyYXRvci10eXBlLXRlc3QtcHJlZGlj
YXRlIGNvbXBhcmF0b3ItZXF1YWxpdHktcHJlZGljYXRlCisgICAgICAgICAgICBjb21wYXJhdG9y
LW9yZGVyaW5nLXByZWRpY2F0ZSBjb21wYXJhdG9yLWhhc2gtZnVuY3Rpb24KKyAgICAgICAgICAg
IGNvbXBhcmF0b3Itb3JkZXJlZD8gY29tcGFyYXRvci1oYXNoYWJsZT8KKyAgICAgICAgICAgIGNv
bXBhcmF0b3ItdGVzdC10eXBlIGNvbXBhcmF0b3ItY2hlY2stdHlwZQorICAgICAgICAgICAgY29t
cGFyYXRvci1oYXNoCisgICAgICAgICAgICBtYWtlLXBhaXItY29tcGFyYXRvciBtYWtlLWxpc3Qt
Y29tcGFyYXRvciBtYWtlLXZlY3Rvci1jb21wYXJhdG9yCisgICAgICAgICAgICBtYWtlLWVxLWNv
bXBhcmF0b3IgbWFrZS1lcXYtY29tcGFyYXRvciBtYWtlLWVxdWFsLWNvbXBhcmF0b3IKKyAgICAg
ICAgICAgIGJvb2xlYW4taGFzaCBjaGFyLWhhc2ggY2hhci1jaS1oYXNoIG51bWJlci1oYXNoCisg
ICAgICAgICAgICBtYWtlLWRlZmF1bHQtY29tcGFyYXRvciBkZWZhdWx0LWhhc2gKKyAgICAgICAg
ICAgIGNvbXBhcmF0b3ItcmVnaXN0ZXItZGVmYXVsdCEKKyAgICAgICAgICAgID0/IDw/ID4/IDw9
PyA+PT8KKyAgICAgICAgICAgIGNvbXBhcmF0b3ItaWY8PT4pCisgICM6cmUtZXhwb3J0IChzdHJp
bmctaGFzaCBzdHJpbmctY2ktaGFzaCBzeW1ib2wtaGFzaCBoYXNoLWJvdW5kIGhhc2gtc2FsdCkp
CisKKyhjb25kLWV4cGFuZC1wcm92aWRlIChjdXJyZW50LW1vZHVsZSkgJyhzcmZpLTEyOCkpCisK
KwwKKzs7IEFyaXRobWV0aWMgaWYKKyhkZWZpbmUtc3ludGF4IGNvbXBhcmF0b3ItaWY8PT4KKyAg
KHN5bnRheC1ydWxlcyAoKQorICAgICgoaWY8PT4gYSBiIGxlc3MgZXF1YWwgZ3JlYXRlcikKKyAg
ICAgKGNvbXBhcmF0b3ItaWY8PT4gZGVmYXVsdC1jb21wYXJhdG9yIGEgYiBsZXNzIGVxdWFsIGdy
ZWF0ZXIpKQorICAgICgoY29tcGFyYXRvci1pZjw9PiBjb21wYXJhdG9yIGEgYiBsZXNzIGVxdWFs
IGdyZWF0ZXIpCisgICAgIChjb25kCisgICAgICAoKDw/IGNvbXBhcmF0b3IgYSBiKSBsZXNzKQor
ICAgICAgKCg9PyBjb21wYXJhdG9yIGEgYikgZXF1YWwpCisgICAgICAoZWxzZSBncmVhdGVyKSkp
KSkKKworDAorOzs7IERlZmluaXRpb24gb2YgY29tcGFyYXRvciByZWNvcmRzIHdpdGggYWNjZXNz
b3JzIGFuZCBiYXNpYyBjb21wYXJhdG9yCisKKyhkZWZpbmUtcmVjb3JkLXR5cGUgY29tcGFyYXRv
cgorICAobWFrZS1yYXctY29tcGFyYXRvciB0eXBlLXRlc3QgZXF1YWxpdHkgb3JkZXJpbmcgaGFz
aCBvcmRlcmluZz8gaGFzaD8pCisgIGNvbXBhcmF0b3I/CisgICh0eXBlLXRlc3QgY29tcGFyYXRv
ci10eXBlLXRlc3QtcHJlZGljYXRlKQorICAoZXF1YWxpdHkgY29tcGFyYXRvci1lcXVhbGl0eS1w
cmVkaWNhdGUpCisgIChvcmRlcmluZyBjb21wYXJhdG9yLW9yZGVyaW5nLXByZWRpY2F0ZSkKKyAg
KGhhc2ggY29tcGFyYXRvci1oYXNoLWZ1bmN0aW9uKQorICAob3JkZXJpbmc/IGNvbXBhcmF0b3It
b3JkZXJlZD8pCisgIChoYXNoPyBjb21wYXJhdG9yLWhhc2hhYmxlPykpCisKKyhkZWZpbmUgKGFs
d2F5cy10cnVlIG9iaikgI3QpCisKKzs7IFB1YmxpYyBjb25zdHJ1Y3RvcgorKGRlZmluZSAobWFr
ZS1jb21wYXJhdG9yIHR5cGUtdGVzdCBlcXVhbGl0eSBvcmRlcmluZyBoYXNoKQorICAobWFrZS1y
YXctY29tcGFyYXRvcgorICAgKGlmIChlcT8gdHlwZS10ZXN0ICN0KSBhbHdheXMtdHJ1ZSB0eXBl
LXRlc3QpCisgICAoaWYgKGVxPyBlcXVhbGl0eSAjdCkgKGxhbWJkYSAoeCB5KSAoZXF2PyAob3Jk
ZXJpbmcgeCB5KSAwKSkgZXF1YWxpdHkpCisgICAoaWYgb3JkZXJpbmcgb3JkZXJpbmcgKGxhbWJk
YSAoeCB5KSAoZXJyb3IgIm9yZGVyaW5nIG5vdCBzdXBwb3J0ZWQiKSkpCisgICAoaWYgaGFzaCBo
YXNoIChsYW1iZGEgKHggeSkgKGVycm9yICJoYXNoaW5nIG5vdCBzdXBwb3J0ZWQiKSkpCisgICAo
aWYgb3JkZXJpbmcgI3QgI2YpCisgICAoaWYgaGFzaCAjdCAjZikpKQorCisMCis7OzsgSW52b2tl
cnMKKworOzsgSW52b2tlIHRoZSB0ZXN0IHR5cGUKKyhkZWZpbmUgKGNvbXBhcmF0b3ItdGVzdC10
eXBlIGNvbXBhcmF0b3Igb2JqKQorICAoKGNvbXBhcmF0b3ItdHlwZS10ZXN0LXByZWRpY2F0ZSBj
b21wYXJhdG9yKSBvYmopKQorCis7OyBJbnZva2UgdGhlIHRlc3QgdHlwZSBhbmQgdGhyb3cgYW4g
ZXJyb3IgaWYgaXQgZmFpbHMKKyhkZWZpbmUgKGNvbXBhcmF0b3ItY2hlY2stdHlwZSBjb21wYXJh
dG9yIG9iaikKKyAgKGlmIChjb21wYXJhdG9yLXRlc3QtdHlwZSBjb21wYXJhdG9yIG9iaikKKyAg
ICAgICN0CisgICAgICAoZXJyb3IgIkNvbXBhcmF0b3IgdHlwZSBjaGVjayBmYWlsZWQiIGNvbXBh
cmF0b3Igb2JqKSkpCisKKzs7IEludm9rZSB0aGUgaGFzaCBmdW5jdGlvbgorKGRlZmluZSAoY29t
cGFyYXRvci1oYXNoIGNvbXBhcmF0b3Igb2JqKQorICAoKGNvbXBhcmF0b3ItaGFzaC1mdW5jdGlv
biBjb21wYXJhdG9yKSBvYmopKQorCisMCis7OzsgQ29tcGFyaXNvbiBwcmVkaWNhdGVzCisKKzs7
IEJpbmFyeSB2ZXJzaW9ucyBmb3IgaW50ZXJuYWwgdXNlCisKKyhkZWZpbmUgKGJpbmFyeT0/IGNv
bXBhcmF0b3IgYSBiKQorICAoKGNvbXBhcmF0b3ItZXF1YWxpdHktcHJlZGljYXRlIGNvbXBhcmF0
b3IpIGEgYikpCisKKyhkZWZpbmUgKGJpbmFyeTw/IGNvbXBhcmF0b3IgYSBiKQorICAoKGNvbXBh
cmF0b3Itb3JkZXJpbmctcHJlZGljYXRlIGNvbXBhcmF0b3IpIGEgYikpCisKKyhkZWZpbmUgKGJp
bmFyeT4/IGNvbXBhcmF0b3IgYSBiKQorICAoYmluYXJ5PD8gY29tcGFyYXRvciBiIGEpKQorCiso
ZGVmaW5lIChiaW5hcnk8PT8gY29tcGFyYXRvciBhIGIpCisgIChub3QgKGJpbmFyeT4/IGNvbXBh
cmF0b3IgYSBiKSkpCisKKyhkZWZpbmUgKGJpbmFyeT49PyBjb21wYXJhdG9yIGEgYikKKyAgKG5v
dCAoYmluYXJ5PD8gY29tcGFyYXRvciBhIGIpKSkKKworOzsgR2VuZXJhbCB2ZXJzaW9ucyBmb3Ig
ZXhwb3J0CisKKyhkZWZpbmUgKD0/IGNvbXBhcmF0b3IgYSBiIC4gb2JqcykKKyAgKGxldCBsb29w
ICgoYSBhKSAoYiBiKSAob2JqcyBvYmpzKSkKKyAgICAoYW5kIChiaW5hcnk9PyBjb21wYXJhdG9y
IGEgYikKKwkgKGlmIChudWxsPyBvYmpzKSAjdCAobG9vcCBiIChjYXIgb2JqcykgKGNkciBvYmpz
KSkpKSkpCisKKyhkZWZpbmUgKDw/IGNvbXBhcmF0b3IgYSBiIC4gb2JqcykKKyAgKGxldCBsb29w
ICgoYSBhKSAoYiBiKSAob2JqcyBvYmpzKSkKKyAgICAoYW5kIChiaW5hcnk8PyBjb21wYXJhdG9y
IGEgYikKKwkgKGlmIChudWxsPyBvYmpzKSAjdCAobG9vcCBiIChjYXIgb2JqcykgKGNkciBvYmpz
KSkpKSkpCisKKyhkZWZpbmUgKD4/IGNvbXBhcmF0b3IgYSBiIC4gb2JqcykKKyAgKGxldCBsb29w
ICgoYSBhKSAoYiBiKSAob2JqcyBvYmpzKSkKKyAgICAoYW5kIChiaW5hcnk+PyBjb21wYXJhdG9y
IGEgYikKKwkgKGlmIChudWxsPyBvYmpzKSAjdCAobG9vcCBiIChjYXIgb2JqcykgKGNkciBvYmpz
KSkpKSkpCisKKyhkZWZpbmUgKDw9PyBjb21wYXJhdG9yIGEgYiAuIG9ianMpCisgIChsZXQgbG9v
cCAoKGEgYSkgKGIgYikgKG9ianMgb2JqcykpCisgICAgKGFuZCAoYmluYXJ5PD0/IGNvbXBhcmF0
b3IgYSBiKQorCSAoaWYgKG51bGw/IG9ianMpICN0IChsb29wIGIgKGNhciBvYmpzKSAoY2RyIG9i
anMpKSkpKSkKKworKGRlZmluZSAoPj0/IGNvbXBhcmF0b3IgYSBiIC4gb2JqcykKKyAgKGxldCBs
b29wICgoYSBhKSAoYiBiKSAob2JqcyBvYmpzKSkKKyAgICAoYW5kIChiaW5hcnk+PT8gY29tcGFy
YXRvciBhIGIpCisJIChpZiAobnVsbD8gb2JqcykgI3QgKGxvb3AgYiAoY2FyIG9ianMpIChjZHIg
b2JqcykpKSkpKQorCisMCis7OzsgU2ltcGxlIG9yZGVyaW5nIGFuZCBoYXNoIGZ1bmN0aW9ucwor
CisoZGVmaW5lIGJvb2xlYW4taGFzaCBoYXNoLWJ5LWlkZW50aXR5KQorKGRlZmluZSBjaGFyLWhh
c2ggICAgaGFzaC1ieS1pZGVudGl0eSkKKyhkZWZpbmUgbnVtYmVyLWhhc2ggIGhhc2gtYnktdmFs
dWUpCisKKyhkZWZpbmUqIChjaGFyLWNpLWhhc2ggYyAjOm9wdGlvbmFsIChzaXplIG1vc3QtcG9z
aXRpdmUtZml4bnVtKSkKKyAgKGhhc2hxIChjaGFyLWZvbGRjYXNlIGMpIHNpemUpKQorCis7OyBM
ZXhpY29ncmFwaGljIG9yZGVyaW5nIG9mIGNvbXBsZXggbnVtYmVycworKGRlZmluZSAoY29tcGxl
eDw/IGEgYikKKyAgKG9yICg8IChyZWFsLXBhcnQgYSkgKHJlYWwtcGFydCBiKSkKKyAgICAgIChh
bmQgKD0gKHJlYWwtcGFydCBhKSAocmVhbC1wYXJ0IGIpKQorICAgICAgICAgICAoPCAoaW1hZy1w
YXJ0IGEpIChpbWFnLXBhcnQgYikpKSkpCisKKyhkZWZpbmUgKHN5bWJvbDw/IGEgYikKKyAgOzsg
VmFsaWQgYWNjb3JkaW5nIHRvIHNwZWMuCisgIDs7IEl0J3MgZmFzdGVyIHRvIGhhc2ggdGhhbiB0
byBjb21wYXJlIHN0cmluZ3MuCisgIChsZXQgKChoYSAoaGFzaHEgYSAoaGFzaC1ib3VuZCkpKQor
ICAgICAgICAoaGIgKGhhc2hxIGIgKGhhc2gtYm91bmQpKSkpCisgICAgKG9yICg8IGhhIGhiKQor
ICAgICAgICAoYW5kICg9IGhhIGhiKQorICAgICAgICAgICAgIChub3QgKGVxPyBhIGIpKQorICAg
ICAgICAgICAgIChzdHJpbmc8PyAoc3ltYm9sLT5zdHJpbmcgYSkgKHN5bWJvbC0+c3RyaW5nIGIp
KSkpKSkKKworOzsgU3RpY2sgdG8gZml4bnVtcworKGRlZmluZSBsb3dlci1tYXNrIChhc2ggKGhh
c2gtYm91bmQpIC01KSkgOyAoLyAoaGFzaC1ib3VuZCkgMzIpCisKKzs7IEhhc2ggaGVscGVyCiso
ZGVmaW5lIChtaXggaDEgaDIpCisgIChsb2d4b3IgKCogKGxvZ2FuZCBoMSBsb3dlci1tYXNrKSAz
MSkgaDIpKQorCisKKwwKKzs7OyBQYWlyIGNvbXBhcmF0b3IKKyhkZWZpbmUgKG1ha2UtcGFpci1j
b21wYXJhdG9yIGNhci1jb21wYXJhdG9yIGNkci1jb21wYXJhdG9yKQorICAobWFrZS1jb21wYXJh
dG9yCisgICAobWFrZS1wYWlyLXR5cGUtdGVzdCBjYXItY29tcGFyYXRvciBjZHItY29tcGFyYXRv
cikKKyAgIChtYWtlLXBhaXI9PyBjYXItY29tcGFyYXRvciBjZHItY29tcGFyYXRvcikKKyAgICht
YWtlLXBhaXI8PyBjYXItY29tcGFyYXRvciBjZHItY29tcGFyYXRvcikKKyAgIChtYWtlLXBhaXIt
aGFzaCBjYXItY29tcGFyYXRvciBjZHItY29tcGFyYXRvcikpKQorCisoZGVmaW5lIChtYWtlLXBh
aXItdHlwZS10ZXN0IGNhci1jb21wYXJhdG9yIGNkci1jb21wYXJhdG9yKQorICAobGV0ICgoY2Fy
LXRlc3QgKGNvbXBhcmF0b3ItdHlwZS10ZXN0LXByZWRpY2F0ZSBjYXItY29tcGFyYXRvcikpCisg
ICAgICAgIChjZHItdGVzdCAoY29tcGFyYXRvci10eXBlLXRlc3QtcHJlZGljYXRlIGNkci1jb21w
YXJhdG9yKSkpCisgICAgKGlmIChlcT8gYWx3YXlzLXRydWUgY2FyLXRlc3QgY2RyLXRlc3QpCisg
ICAgICAgIHBhaXI/CisgICAgICAgIChsYW1iZGEgKG9iaikKKyAgICAgICAgICAoYW5kIChwYWly
PyBvYmopCisgICAgICAgICAgICAgICAoY2FyLXRlc3QgKGNhciBvYmopKQorICAgICAgICAgICAg
ICAgKGNkci10ZXN0IChjZHIgb2JqKSkpKSkpKQorCisoZGVmaW5lIChtYWtlLXBhaXI9PyBjYXIt
Y29tcGFyYXRvciBjZHItY29tcGFyYXRvcikKKyAgKGxldCAoKGNhci1lcXVpdiAoY29tcGFyYXRv
ci1lcXVhbGl0eS1wcmVkaWNhdGUgY2FyLWNvbXBhcmF0b3IpKQorICAgICAgICAoY2RyLWVxdWl2
IChjb21wYXJhdG9yLWVxdWFsaXR5LXByZWRpY2F0ZSBjZHItY29tcGFyYXRvcikpKQorICAgIChp
ZiAoZXE/IGVxdWFsPyBjYXItZXF1aXYgY2RyLWVxdWl2KQorICAgICAgICBlcXVhbD8KKyAgICAg
ICAgKGxhbWJkYSAoYSBiKQorICAgICAgICAgIChhbmQgKGNhci1lcXVpdiAoY2FyIGEpIChjYXIg
YikpCisgICAgICAgICAgICAgICAoY2RyLWVxdWl2IChjZHIgYSkgKGNkciBiKSkpKSkpKQorCiso
ZGVmaW5lIChtYWtlLXBhaXI8PyBjYXItY29tcGFyYXRvciBjZHItY29tcGFyYXRvcikKKyAgKGxl
dCAoKGNhci1lcXVpdiAoY29tcGFyYXRvci1lcXVhbGl0eS1wcmVkaWNhdGUgY2FyLWNvbXBhcmF0
b3IpKQorICAgICAgICAoY2FyPD8gKGNvbXBhcmF0b3Itb3JkZXJpbmctcHJlZGljYXRlIGNhci1j
b21wYXJhdG9yKSkKKyAgICAgICAgKGNkcjw/IChjb21wYXJhdG9yLW9yZGVyaW5nLXByZWRpY2F0
ZSBjZHItY29tcGFyYXRvcikpKQorICAgIChsYW1iZGEgKGEgYikKKyAgICAgIChvciAoY2FyPD8g
KGNhciBhKSAoY2FyIGIpKQorICAgICAgICAgIChhbmQgKGNhci1lcXVpdiAoY2FyIGEpIChjYXIg
YikpCisgICAgICAgICAgICAgICAoY2RyPD8gKGNkciBhKSAoY2RyIGIpKSkpKSkpCisKKyhkZWZp
bmUgcGFpci1oYXNoLXNhbHQgKG1peCAoc3ltYm9sLWhhc2ggJ3BhaXIpIChoYXNoLXNhbHQpKSkK
KworKGRlZmluZSAobWFrZS1wYWlyLWhhc2ggY2FyLWNvbXBhcmF0b3IgY2RyLWNvbXBhcmF0b3Ip
CisgIChsZXQgKChjYXItaGFzaCAoY29tcGFyYXRvci1oYXNoLWZ1bmN0aW9uIGNhci1jb21wYXJh
dG9yKSkKKyAgICAgICAgKGNkci1oYXNoIChjb21wYXJhdG9yLWhhc2gtZnVuY3Rpb24gY2RyLWNv
bXBhcmF0b3IpKSkKKyAgICAoaWYgKGVxPyBlcXVhbC1oYXNoIGNhci1oYXNoIGNkci1oYXNoKQor
ICAgICAgICBlcXVhbC1oYXNoCisgICAgICAgIChsYW1iZGEgKG9iaikKKyAgICAgICAgICAobWl4
IChtaXggcGFpci1oYXNoLXNhbHQgKGNhci1oYXNoIChjYXIgb2JqKSkpCisgICAgICAgICAgICAg
ICAoY2RyLWhhc2ggKGNkciBvYmopKSkpKSkpCisKKwwKKzs7OyBMaXN0IGNvbXBhcmF0b3IKKwor
KGRlZmluZSAobWFrZS1saXN0LWNvbXBhcmF0b3IgZWxlbWVudC1jb21wYXJhdG9yIHR5cGUtdGVz
dCBlbXB0eT8gaGVhZCB0YWlsKQorICAobWFrZS1jb21wYXJhdG9yCisgICAobWFrZS1saXN0LXR5
cGUtdGVzdCBlbGVtZW50LWNvbXBhcmF0b3IgdHlwZS10ZXN0IGVtcHR5PyBoZWFkIHRhaWwpCisg
ICAobWFrZS1saXN0PT8gZWxlbWVudC1jb21wYXJhdG9yIHR5cGUtdGVzdCBlbXB0eT8gaGVhZCB0
YWlsKQorICAgKG1ha2UtbGlzdDw/IGVsZW1lbnQtY29tcGFyYXRvciB0eXBlLXRlc3QgZW1wdHk/
IGhlYWQgdGFpbCkKKyAgIChtYWtlLWxpc3QtaGFzaCBlbGVtZW50LWNvbXBhcmF0b3IgdHlwZS10
ZXN0IGVtcHR5PyBoZWFkIHRhaWwpKSkKKworKGRlZmluZSAobWFrZS1saXN0LXR5cGUtdGVzdCBl
bGVtZW50LWNvbXBhcmF0b3IgdHlwZS10ZXN0IGVtcHR5PyBoZWFkIHRhaWwpCisgIChsZXQgKChl
bGVtLXR5cGUtdGVzdCAoY29tcGFyYXRvci10eXBlLXRlc3QtcHJlZGljYXRlIGVsZW1lbnQtY29t
cGFyYXRvcikpKQorICAgIChsYW1iZGEgKG9iaikKKyAgICAgIChhbmQKKyAgICAgICAodHlwZS10
ZXN0IG9iaikKKyAgICAgICAobGV0IGxvb3AgKChvYmogb2JqKSkKKyAgICAgICAgIChjb25kCisg
ICAgICAgICAgKChlbXB0eT8gb2JqKSAjdCkKKyAgICAgICAgICAoKG5vdCAoZWxlbS10eXBlLXRl
c3QgKGhlYWQgb2JqKSkpICNmKQorICAgICAgICAgIChlbHNlIChsb29wICh0YWlsIG9iaikpKSkp
KSkpKQorCisoZGVmaW5lIChtYWtlLWxpc3Q9PyBlbGVtZW50LWNvbXBhcmF0b3IgdHlwZS10ZXN0
IGVtcHR5PyBoZWFkIHRhaWwpCisgIChsZXQgKChlbGVtPT8gKGNvbXBhcmF0b3ItZXF1YWxpdHkt
cHJlZGljYXRlIGVsZW1lbnQtY29tcGFyYXRvcikpKQorICAgIChsYW1iZGEgKGEgYikKKyAgICAg
IChsZXQgbG9vcCAoKGEgYSkgKGIgYikpCisgICAgICAgIChjb25kCisgICAgICAgICAoKGVtcHR5
PyBhKSAoZW1wdHk/IGIpKQorICAgICAgICAgKChlbXB0eT8gYikgI2YpCisgICAgICAgICAoKGVs
ZW09PyAoaGVhZCBhKSAoaGVhZCBiKSkgKGxvb3AgKHRhaWwgYSkgKHRhaWwgYikpKQorICAgICAg
ICAgKGVsc2UgI2YpKSkpKSkKKworKGRlZmluZSAobWFrZS1saXN0PD8gZWxlbWVudC1jb21wYXJh
dG9yIHR5cGUtdGVzdCBlbXB0eT8gaGVhZCB0YWlsKQorICAobGV0ICgoZWxlbT0/IChjb21wYXJh
dG9yLWVxdWFsaXR5LXByZWRpY2F0ZSBlbGVtZW50LWNvbXBhcmF0b3IpKQorICAgICAgICAoZWxl
bTw/IChjb21wYXJhdG9yLW9yZGVyaW5nLXByZWRpY2F0ZSBlbGVtZW50LWNvbXBhcmF0b3IpKSkK
KyAgICAobGFtYmRhIChhIGIpCisgICAgICAobGV0IGxvb3AgKChhIGEpIChiIGIpKQorICAgICAg
ICAoY29uZAorICAgICAgICAgKChlbXB0eT8gYSkgKG5vdCAoZW1wdHk/IGIpKSkKKyAgICAgICAg
ICgoZW1wdHk/IGIpICNmKQorICAgICAgICAgKChlbGVtPD8gKGhlYWQgYSkgKGhlYWQgYikpICN0
KQorICAgICAgICAgKChlbGVtPT8gKGhlYWQgYSkgKGhlYWQgYikpIChsb29wICh0YWlsIGEpICh0
YWlsIGIpKSkKKyAgICAgICAgIChlbHNlICNmKSkpKSkpCisKKyhkZWZpbmUgbGlzdC1oYXNoLXNh
bHQgKG1peCAoc3ltYm9sLWhhc2ggJ2xpc3QpIChoYXNoLXNhbHQpKSkKKworKGRlZmluZSAobWFr
ZS1saXN0LWhhc2ggZWxlbWVudC1jb21wYXJhdG9yIHR5cGUtdGVzdCBlbXB0eT8gaGVhZCB0YWls
KQorICAobGV0ICgoZWxlbS1oYXNoIChjb21wYXJhdG9yLWhhc2gtZnVuY3Rpb24gZWxlbWVudC1j
b21wYXJhdG9yKSkpCisgICAgKGxhbWJkYSAob2JqKQorICAgICAgKGxldCBsb29wICgob2JqIG9i
aikKKyAgICAgICAgICAgICAgICAgKHJlc3VsdCBsaXN0LWhhc2gtc2FsdCkpCisgICAgICAgIChj
b25kCisgICAgICAgICAoKGVtcHR5PyBvYmopIHJlc3VsdCkKKyAgICAgICAgIChlbHNlIChsb29w
ICh0YWlsIG9iaikgKG1peCByZXN1bHQgKGVsZW0taGFzaCAoaGVhZCBvYmopKSkpKSkpKSkpCisK
KwwKKzs7OyBWZWN0b3IgY29tcGFyYXRvcgorCisoZGVmaW5lIChtYWtlLXZlY3Rvci1jb21wYXJh
dG9yIGVsZW1lbnQtY29tcGFyYXRvciB0eXBlLXRlc3QgbGVuZ3RoIHJlZikKKyAgKG1ha2UtY29t
cGFyYXRvcgorICAgKG1ha2UtdmVjdG9yLXR5cGUtdGVzdCBlbGVtZW50LWNvbXBhcmF0b3IgdHlw
ZS10ZXN0IGxlbmd0aCByZWYpCisgICAobWFrZS12ZWN0b3I9PyBlbGVtZW50LWNvbXBhcmF0b3Ig
dHlwZS10ZXN0IGxlbmd0aCByZWYpCisgICAobWFrZS12ZWN0b3I8PyBlbGVtZW50LWNvbXBhcmF0
b3IgdHlwZS10ZXN0IGxlbmd0aCByZWYpCisgICAobWFrZS12ZWN0b3ItaGFzaCBlbGVtZW50LWNv
bXBhcmF0b3IgdHlwZS10ZXN0IGxlbmd0aCByZWYpKSkKKworKGRlZmluZSAobWFrZS12ZWN0b3It
dHlwZS10ZXN0IGVsZW1lbnQtY29tcGFyYXRvciB0eXBlLXRlc3QgbGVuZ3RoIHJlZikKKyAgKGxl
dCAoKGVsZW0tdHlwZS10ZXN0IChjb21wYXJhdG9yLXR5cGUtdGVzdC1wcmVkaWNhdGUgZWxlbWVu
dC1jb21wYXJhdG9yKSkpCisgICAgKGxhbWJkYSAob2JqKQorICAgICAgKGFuZAorICAgICAgICh0
eXBlLXRlc3Qgb2JqKQorICAgICAgIChsZXQgKChsZW4gKGxlbmd0aCBvYmopKSkKKyAgICAgICAg
IChsZXQgbG9vcCAoKG4gMCkpCisgICAgICAgICAgIChjb25kCisgICAgICAgICAgICAoKD0gbiBs
ZW4pICN0KQorICAgICAgICAgICAgKChub3QgKGVsZW0tdHlwZS10ZXN0IChyZWYgb2JqIG4pKSkg
I2YpCisgICAgICAgICAgICAoZWxzZSAobG9vcCAoKyBuIDEpKSkpKSkpKSkpCisKKyhkZWZpbmUg
KG1ha2UtdmVjdG9yPT8gZWxlbWVudC1jb21wYXJhdG9yIHR5cGUtdGVzdCBsZW5ndGggcmVmKQor
ICAobGV0ICgoZWxlbT0/IChjb21wYXJhdG9yLWVxdWFsaXR5LXByZWRpY2F0ZSBlbGVtZW50LWNv
bXBhcmF0b3IpKSkKKyAgICAobGFtYmRhIChhIGIpCisgICAgICAobGV0ICgobGVuIChsZW5ndGgg
YikpKQorICAgICAgICAoYW5kCisgICAgICAgICAoPSAobGVuZ3RoIGEpIGxlbikKKyAgICAgICAg
IChsZXQgbG9vcCAoKG4gMCkpCisgICAgICAgICAgIChjb25kCisgICAgICAgICAgICAoKD0gbiBs
ZW4pICN0KQorICAgICAgICAgICAgKChlbGVtPT8gKHJlZiBhIG4pIChyZWYgYiBuKSkgKGxvb3Ag
KCsgbiAxKSkpCisgICAgICAgICAgICAoZWxzZSAjZikpKSkpKSkpCisKKyhkZWZpbmUgKG1ha2Ut
dmVjdG9yPD8gZWxlbWVudC1jb21wYXJhdG9yIHR5cGUtdGVzdCBsZW5ndGggcmVmKQorICAobGV0
ICgoZWxlbT0/IChjb21wYXJhdG9yLWVxdWFsaXR5LXByZWRpY2F0ZSBlbGVtZW50LWNvbXBhcmF0
b3IpKQorICAgICAgICAoZWxlbTw/IChjb21wYXJhdG9yLW9yZGVyaW5nLXByZWRpY2F0ZSBlbGVt
ZW50LWNvbXBhcmF0b3IpKSkKKyAgICAobGFtYmRhIChhIGIpCisgICAgICAobGV0ICgobGVuYSAo
bGVuZ3RoIGEpKQorICAgICAgICAgICAgKGxlbmIgKGxlbmd0aCBiKSkpCisgICAgICAgIChjb25k
CisgICAgICAgICAoKDwgbGVuYSBsZW5iKSAjdCkKKyAgICAgICAgICgoPiBsZW5hIGxlbmIpICNm
KQorICAgICAgICAgKGVsc2UKKyAgICAgICAgICAobGV0IGxvb3AgKChuIDApKQorICAgICAgICAg
ICAgKGNvbmQKKyAgICAgICAgICAgICAoKD0gbiBsZW5hKSAjZikKKyAgICAgICAgICAgICAoKGVs
ZW08PyAocmVmIGEgbikgKHJlZiBiIG4pKSAjdCkKKyAgICAgICAgICAgICAoKGVsZW09PyAocmVm
IGEgbikgKHJlZiBiIG4pKSAobG9vcCAoKyBuIDEpKSkKKyAgICAgICAgICAgICAoZWxzZSAjZikp
KSkpKSkpKQorCisoZGVmaW5lIHZlY3Rvci1oYXNoLXNhbHQgKG1peCAoc3ltYm9sLWhhc2ggJ3Zl
Y3RvcikgKGhhc2gtc2FsdCkpKQorCisoZGVmaW5lIChtYWtlLXZlY3Rvci1oYXNoIGVsZW1lbnQt
Y29tcGFyYXRvciB0eXBlLXRlc3QgbGVuZ3RoIHJlZikKKyAgKGxldCAoKGVsZW0taGFzaCAoY29t
cGFyYXRvci1oYXNoLWZ1bmN0aW9uIGVsZW1lbnQtY29tcGFyYXRvcikpKQorICAgIChsYW1iZGEg
KG9iaikKKyAgICAgIChsZXQgKChsZW4gKGxlbmd0aCBvYmopKSkKKyAgICAgICAgKGxldCBsb29w
ICgobiAwKSAocmVzdWx0IHZlY3Rvci1oYXNoLXNhbHQpKQorICAgICAgICAgIChjb25kCisgICAg
ICAgICAgICgoPSBuIGxlbikgcmVzdWx0KQorICAgICAgICAgICAoZWxzZSAobG9vcCAoKyBuIDEp
IChtaXggcmVzdWx0IChlbGVtLWhhc2ggKHJlZiBvYmogbikpKSkpKSkpKSkpCisKKwwKKzs7OyBU
aGUgZGVmYXVsdCBjb21wYXJhdG9yCisKKzs7OyBTdGFuZGFyZCBjb21wYXJhdG9ycyBhbmQgdGhl
aXIgZnVuY3Rpb25zCisKKzs7IFRoZSB1bmtub3duLW9iamVjdCBjb21wYXJhdG9yLCB1c2VkIGFz
IGEgZmFsbGJhY2sgdG8gZXZlcnl0aGluZyBlbHNlCis7OyBFdmVyeXRoaW5nIGNvbXBhcmVzIGV4
YWN0bHkgdGhlIHNhbWUgYW5kIGhhc2hlcyB0byAwCisoZGVmaW5lIHVua25vd24tb2JqZWN0LWNv
bXBhcmF0b3IKKyAgKG1ha2UtY29tcGFyYXRvcgorICAgYWx3YXlzLXRydWUKKyAgIChsYW1iZGEg
KGEgYikgI3QpCisgICAobGFtYmRhIChhIGIpICNmKQorICAgKGxhbWJkYSAob2JqKSAwKSkpCisK
Kzs7IE5leHQgaW5kZXggZm9yIGFkZGVkIGNvbXBhcmF0b3IKKworKGRlZmluZSAqbmV4dC1jb21w
YXJhdG9yLWluZGV4KiAwKQorKGRlZmluZSAqcmVnaXN0ZXJlZC1jb21wYXJhdG9ycyogKG1ha2Ut
dmVjdG9yIDggdW5rbm93bi1vYmplY3QtY29tcGFyYXRvcikpCisKKzs7IFJlZ2lzdGVyIGEgbmV3
IGNvbXBhcmF0b3IgZm9yIHVzZSBieSB0aGUgZGVmYXVsdCBjb21wYXJhdG9yLgorKGRlZmluZSAo
Y29tcGFyYXRvci1yZWdpc3Rlci1kZWZhdWx0ISBjb21wYXJhdG9yKQorICAobGV0ICgobGVuICh2
ZWN0b3ItbGVuZ3RoICpyZWdpc3RlcmVkLWNvbXBhcmF0b3JzKikpKQorICAgIChpZiAoPSAqbmV4
dC1jb21wYXJhdG9yLWluZGV4KiAoLSBsZW4gMSkpCisgICAgICAgIChzZXQhICpyZWdpc3RlcmVk
LWNvbXBhcmF0b3JzKgorICAgICAgICAgICh2ZWN0b3ItY29weSAqcmVnaXN0ZXJlZC1jb21wYXJh
dG9ycyogMCAoKiAyIGxlbikgdW5rbm93bi1vYmplY3QtY29tcGFyYXRvcikpKSkKKyAgKHZlY3Rv
ci1zZXQhICpyZWdpc3RlcmVkLWNvbXBhcmF0b3JzKiAqbmV4dC1jb21wYXJhdG9yLWluZGV4KiBj
b21wYXJhdG9yKQorICAoc2V0ISAqbmV4dC1jb21wYXJhdG9yLWluZGV4KiAoKyAxICpuZXh0LWNv
bXBhcmF0b3ItaW5kZXgqKSkpCisKKzs7IFJldHVybiBvcmRpbmFsIGZvciBvYmplY3QgdHlwZXM6
IG51bGwgc29ydHMgYmVmb3JlIGJvb2xlYW5zLCB3aGljaCBzb3J0Cis7OyBiZWZvcmUgbnVtYmVy
cywgZXRjLiAgSW1wbGVtZW50YXRpb25zIGNhbiBleHRlbmQgdGhpcy4KKzs7IFBlb3BsZSB3aG8g
Y2FsbCBjb21wYXJhdG9yLXJlZ2lzdGVyLWRlZmF1bHQhIGVmZmVjdGl2ZWx5IGRvIGV4dGVuZCBp
dC4KKyhkZWZpbmUgKGludGVybmFsLW9iamVjdC10eXBlIG9iaikKKyAgKGNvbmQKKyAgICgobnVs
bD8gb2JqKSAwKQorICAgKChib29sZWFuPyBvYmopIDEpCisgICAoKG51bWJlcj8gb2JqKSAyKQor
ICAgKChjaGFyPyBvYmopIDMpCisgICAoKHN0cmluZz8gb2JqKSA0KQorICAgKChzeW1ib2w/IG9i
aikgNSkKKyAgICgoYnl0ZXZlY3Rvcj8gb2JqKSA2KQorICAgKCh2ZWN0b3I/IG9iaikgNykKKyAg
ICgocGFpcj8gb2JqKSA4KQorICAgKCh1bnNwZWNpZmllZD8gb2JqKSA5KQorICAgKChlb2Ytb2Jq
ZWN0PyBvYmopIDEwKQorICAgOzsgQWRkIG1vcmUgaGVyZSBpZiB5b3Ugd2FudAorICAgKGVsc2Ug
I2YpKSkKKworKGRlZmluZSAoZXh0ZXJuYWwtb2JqZWN0LXR5cGUgb2JqKQorICAocmVnaXN0ZXJl
ZC1pbmRleCBvYmopKQorCis7OyBSZXR1cm4gdGhlIGluZGV4IGZvciB0aGUgcmVnaXN0ZXJlZCB0
eXBlIG9mIG9iai4KKyhkZWZpbmUgKHJlZ2lzdGVyZWQtaW5kZXggb2JqKQorICAodmVjdG9yLWlu
ZGV4IChsYW1iZGEgKGNvbXBhcmF0b3IpCisgICAgICAgICAgICAgICAgICAoY29tcGFyYXRvci10
ZXN0LXR5cGUgY29tcGFyYXRvciBvYmopKQorICAgICAgICAgICAgICAgICpyZWdpc3RlcmVkLWNv
bXBhcmF0b3JzKikpCisKKyhkZWZpbmUgKGV4dGVybmFsLW9iamVjdC1jb21wYXJhdG9yIG9iaikK
KyAgKHZlY3Rvci1hbnkgKGxhbWJkYSAoY29tcGFyYXRvcikKKyAgICAgICAgICAgICAgICAoYW5k
IChjb21wYXJhdG9yLXRlc3QtdHlwZSBjb21wYXJhdG9yIG9iaikKKyAgICAgICAgICAgICAgICAg
ICAgIGNvbXBhcmF0b3IpKQorICAgICAgICAgICAgICAqcmVnaXN0ZXJlZC1jb21wYXJhdG9ycyop
KQorCis7OyBHaXZlbiBhbiBpbmRleCwgcmV0cmlldmUgYSByZWdpc3RlcmVkIGNvbmR1Y3Rvci4K
KyhkZWZpbmUgKHJlZ2lzdGVyZWQtY29tcGFyYXRvciBpKQorICAodmVjdG9yLXJlZiAqcmVnaXN0
ZXJlZC1jb21wYXJhdG9ycyogaSkpCisKKyhkZWZpbmUgKGludGVybmFsLWRpc3BhdGNoLWVxdWFs
aXR5IHR5cGUgYSBiKQorICA7OyBFUVVBTD8gYWxyZWFkeSByZXR1cm5zICN0IGZvciBtYW55IGlu
dGVybmFsIHR5cGVzCisgIChjYXNlIHR5cGUKKyAgICA7OyAoKDApICN0KSA7IEFsbCBlbXB0eSBs
aXN0cyBhcmUgZXF1YWwKKyAgICA7OyAoKDEpIChpZiBhIChhbmQgYiAjdCkgKG5vdCBiKSkpCisg
ICAgOzsgKCgyKSAoPSBhIGIpKQorICAgIDs7ICgoMykgKGNoYXI9PyBhIGIpKQorICAgIDs7ICgo
NCkgKHN0cmluZz0/IGEgYikpCisgICAgOzsgKCg1KSAoZXE/IGEgYikpCisgICAgOzsgKCg2KSAo
ZGVmYXVsdC1ieXRldmVjdG9yPT8gYSBiKSkKKyAgICAoKDcpIChkZWZhdWx0LXZlY3Rvcj0/IGEg
YikpCisgICAgKCg4KSAoZGVmYXVsdC1wYWlyPT8gYSBiKSkKKyAgICA7OyAoKDkgMTApICN0KQor
ICAgIDs7IEFkZCBtb3JlIGhlcmUKKyAgICAoZWxzZSAjZikpKQorCisoZGVmaW5lIChleHRlcm5h
bC1kaXNwYXRjaC1lcXVhbGl0eSB0eXBlIGEgYikKKyAgKGJpbmFyeT0/IChyZWdpc3RlcmVkLWNv
bXBhcmF0b3IgdHlwZSkgYSBiKSkKKworKGRlZmluZSAoaW50ZXJuYWwtZGlzcGF0Y2gtb3JkZXJp
bmcgdHlwZSBhIGIpCisgIDs7IEVRVUFMPyBhbHJlYWR5IGVsaW1pbmF0ZXMgc29tZSBpbnRlcm5h
bCB0eXBlcworICAoY2FzZSB0eXBlCisgICAgOzsgKCgwKSAjZikgOyBBbGwgZW1wdHkgbGlzdHMg
YXJlIGVxdWFsCisgICAgKCgxKSAoYW5kIChub3QgYSkgYikpIDsgI2YgPCAjdCBidXQgbm90IG90
aGVyd2lzZQorICAgICgoMikgKGNvbXBsZXg8PyBhIGIpKQorICAgICgoMykgKGNoYXI8PyBhIGIp
KQorICAgICgoNCkgKHN0cmluZzw/IGEgYikpCisgICAgKCg1KSAoc3ltYm9sPD8gYSBiKSkKKyAg
ICAoKDYpIChkZWZhdWx0LWJ5dGV2ZWN0b3I8PyBhIGIpKQorICAgICgoNykgKGRlZmF1bHQtdmVj
dG9yPD8gYSBiKSkKKyAgICAoKDgpIChkZWZhdWx0LXBhaXI8PyBhIGIpKQorICAgIDs7ICgoOSAx
MCkgI2YpCisgICAgOzsgQWRkIG1vcmUgaGVyZQorICAgICkpCisKKyhkZWZpbmUgKGV4dGVybmFs
LWRpc3BhdGNoLW9yZGVyaW5nIHR5cGUgYSBiKQorICAoYmluYXJ5PD8gKHJlZ2lzdGVyZWQtY29t
cGFyYXRvciB0eXBlKSBhIGIpKQorCis7OyBFUVVBTC1IQVNIIHJldHVybnMgdGhlIHNhbWUgYXMg
SEFTSC1CWS1WQUxVRSBvbiBudW1iZXJzIGFuZAorOzsgSEFTSC1CWS1JREVOVElUWSBvbiBib29s
ZWFucywgY2hhcnMgYW5kIHN5bWJvbHMuCisKKyhkZWZpbmUgKGRlZmF1bHQtaGFzaCBvYmopCisg
IChsZXQgKCh0eXBlIChpbnRlcm5hbC1vYmplY3QtdHlwZSBvYmopKSkKKyAgICAoaWYgdHlwZQor
ICAgICAgICAoaWYgKG9yICg8PSB0eXBlIDYpICg+PSB0eXBlIDkpKQorICAgICAgICAgICAgKGVx
dWFsLWhhc2ggb2JqKQorICAgICAgICAgICAgKGNhc2UgdHlwZQorICAgICAgICAgICAgICAoKDcp
IChkZWZhdWx0LXZlY3Rvci1oYXNoIG9iaikpCisgICAgICAgICAgICAgICgoOCkgKGRlZmF1bHQt
cGFpci1oYXNoIG9iaikpCisgICAgICAgICAgICAgIDs7IEFkZCBtb3JlIGhlcmUKKyAgICAgICAg
ICAgICAgKSkKKyAgICAgICAgKGxldCAoKGNvbXBhcmF0b3IgKGV4dGVybmFsLW9iamVjdC1jb21w
YXJhdG9yIG9iaikpKQorICAgICAgICAgIChjb21wYXJhdG9yLWhhc2ggY29tcGFyYXRvciBvYmop
KSkpKQorCisoZGVmaW5lIChkZWZhdWx0LW9yZGVyaW5nIGEgYikKKyAgKGFuZCAobm90IChlcXVh
bD8gYSBiKSkgOyBzaG91bGQgYmUgbXVjaCBmYXN0ZXIgdGhhbiB0aGlzIHByb2NlZHVyZQorICAg
ICAgIChsZXQgKChhLWl0eXBlIChpbnRlcm5hbC1vYmplY3QtdHlwZSBhKSkKKyAgICAgICAgICAg
ICAoYi1pdHlwZSAoaW50ZXJuYWwtb2JqZWN0LXR5cGUgYikpKQorICAgICAgICAgKGNvbmQKKyAg
ICAgICAgICAoKG5vdCBiLWl0eXBlKQorICAgICAgICAgICAob3IgYS1pdHlwZQorICAgICAgICAg
ICAgICAgOzsgTmVpdGhlciBhIG5vciBiIGFyZSBvZiBpbnRlcm5hbCB0eXBlOgorICAgICAgICAg
ICAgICAgOzsgZGlzcGF0Y2ggb3JkZXJpbmcgb24gZXh0ZXJuYWwgdHlwZQorICAgICAgICAgICAg
ICAgKGxldCAoKGEtZXR5cGUgKGV4dGVybmFsLW9iamVjdC10eXBlIGEpKQorICAgICAgICAgICAg
ICAgICAgICAgKGItZXR5cGUgKGV4dGVybmFsLW9iamVjdC10eXBlIGIpKSkKKyAgICAgICAgICAg
ICAgICAgKGNvbmQKKyAgICAgICAgICAgICAgICAgICgoPCBhLWV0eXBlIGItZXR5cGUpICN0KQor
ICAgICAgICAgICAgICAgICAgKCg+IGEtZXR5cGUgYi1ldHlwZSkgI2YpCisgICAgICAgICAgICAg
ICAgICAoZWxzZSAoZXh0ZXJuYWwtZGlzcGF0Y2gtb3JkZXJpbmcgYS1ldHlwZSBhIGIpKSkpKSkK
KyAgICAgICAgICAoKG5vdCBhLWl0eXBlKSAjZikKKyAgICAgICAgICA7OyBCb3RoIGEgYW5kIGIg
YXJlIG9mIGludGVybmFsIHR5cGUKKyAgICAgICAgICAoKDwgYS1pdHlwZSBiLWl0eXBlKSAjdCkK
KyAgICAgICAgICAoKD4gYS1pdHlwZSBiLWl0eXBlKSAjZikKKyAgICAgICAgICAoZWxzZSAoaW50
ZXJuYWwtZGlzcGF0Y2gtb3JkZXJpbmcgYS1pdHlwZSBhIGIpKSkpKSkKKworKGRlZmluZSAoZGVm
YXVsdC1lcXVhbGl0eSBhIGIpCisgIChvciAoZXF1YWw/IGEgYikgOyBzaG91bGQgYmUgbXVjaCBm
YXN0ZXIgdGhhbiB0aGlzIHByb2NlZHVyZQorICAgICAgKGxldCAoKGEtaXR5cGUgKGludGVybmFs
LW9iamVjdC10eXBlIGEpKQorICAgICAgICAgICAgKGItaXR5cGUgKGludGVybmFsLW9iamVjdC10
eXBlIGIpKSkKKyAgICAgICAgKGFuZCAoZXF2PyBhLWl0eXBlIGItaXR5cGUpCisgICAgICAgICAg
ICAgKGlmIGEtaXR5cGUKKyAgICAgICAgICAgICAgICAgKGludGVybmFsLWRpc3BhdGNoLWVxdWFs
aXR5IGEtaXR5cGUgYSBiKQorICAgICAgICAgICAgICAgICAobGV0ICgoYS1jb21wIChleHRlcm5h
bC1vYmplY3QtY29tcGFyYXRvciBhKSkKKyAgICAgICAgICAgICAgICAgICAgICAgKGItY29tcCAo
ZXh0ZXJuYWwtb2JqZWN0LWNvbXBhcmF0b3IgYikpKQorICAgICAgICAgICAgICAgICAgIChhbmQg
KGVxPyBhLWNvbXAgYi1jb21wKSAoYmluYXJ5PT8gYS1jb21wIGEgYikpKSkpKSkpCisKKzs7IE5v
dGU6IGNvbXBhcmF0b3JzIGFyZSBpbW11dGFibGUsIG5vIHJlYXNvbiB0byBhbGxvY2F0ZSBhIG5l
dyBvbmUKKyhkZWZpbmUgZGVmYXVsdC1jb21wYXJhdG9yIChtYWtlLWNvbXBhcmF0b3IgYWx3YXlz
LXRydWUgZGVmYXVsdC1lcXVhbGl0eQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBkZWZhdWx0LW9yZGVyaW5nIGRlZmF1bHQtaGFzaCkpCisKKyhkZWZpbmUgKG1h
a2UtZGVmYXVsdC1jb21wYXJhdG9yKSBkZWZhdWx0LWNvbXBhcmF0b3IpCisKKyhkZWZpbmUgZGVm
YXVsdC1wYWlyLWNvbXBhcmF0b3IKKyAgKG1ha2UtcGFpci1jb21wYXJhdG9yIGRlZmF1bHQtY29t
cGFyYXRvciBkZWZhdWx0LWNvbXBhcmF0b3IpKQorCisoZGVmaW5lIGRlZmF1bHQtcGFpcj0/Cisg
IChjb21wYXJhdG9yLWVxdWFsaXR5LXByZWRpY2F0ZSBkZWZhdWx0LXBhaXItY29tcGFyYXRvcikp
CisoZGVmaW5lIGRlZmF1bHQtcGFpcjw/CisgIChjb21wYXJhdG9yLW9yZGVyaW5nLXByZWRpY2F0
ZSBkZWZhdWx0LXBhaXItY29tcGFyYXRvcikpCisoZGVmaW5lIGRlZmF1bHQtcGFpci1oYXNoCisg
IChjb21wYXJhdG9yLWhhc2gtZnVuY3Rpb24gZGVmYXVsdC1wYWlyLWNvbXBhcmF0b3IpKQorCiso
ZGVmaW5lIGRlZmF1bHQtdmVjdG9yLWNvbXBhcmF0b3IKKyAgKG1ha2UtdmVjdG9yLWNvbXBhcmF0
b3IgZGVmYXVsdC1jb21wYXJhdG9yIHZlY3Rvcj8KKyAgICAgICAgICAgICAgICAgICAgICAgICAg
dmVjdG9yLWxlbmd0aCB2ZWN0b3ItcmVmKSkKKworKGRlZmluZSBkZWZhdWx0LXZlY3Rvcj0/Cisg
IChjb21wYXJhdG9yLWVxdWFsaXR5LXByZWRpY2F0ZSBkZWZhdWx0LXZlY3Rvci1jb21wYXJhdG9y
KSkKKyhkZWZpbmUgZGVmYXVsdC12ZWN0b3I8PworICAoY29tcGFyYXRvci1vcmRlcmluZy1wcmVk
aWNhdGUgZGVmYXVsdC12ZWN0b3ItY29tcGFyYXRvcikpCisoZGVmaW5lIGRlZmF1bHQtdmVjdG9y
LWhhc2gKKyAgKGNvbXBhcmF0b3ItaGFzaC1mdW5jdGlvbiBkZWZhdWx0LXZlY3Rvci1jb21wYXJh
dG9yKSkKKworKGRlZmluZSBkZWZhdWx0LWJ5dGV2ZWN0b3ItY29tcGFyYXRvcgorICAobWFrZS12
ZWN0b3ItY29tcGFyYXRvciBkZWZhdWx0LWNvbXBhcmF0b3IgYnl0ZXZlY3Rvcj8KKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgYnl0ZXZlY3Rvci1sZW5ndGggYnl0ZXZlY3Rvci11OC1yZWYpKQor
CisoZGVmaW5lIGRlZmF1bHQtYnl0ZXZlY3Rvcj0/CisgIChjb21wYXJhdG9yLWVxdWFsaXR5LXBy
ZWRpY2F0ZSBkZWZhdWx0LWJ5dGV2ZWN0b3ItY29tcGFyYXRvcikpCisoZGVmaW5lIGRlZmF1bHQt
Ynl0ZXZlY3Rvcjw/CisgIChjb21wYXJhdG9yLW9yZGVyaW5nLXByZWRpY2F0ZSBkZWZhdWx0LWJ5
dGV2ZWN0b3ItY29tcGFyYXRvcikpCisoZGVmaW5lIGRlZmF1bHQtYnl0ZXZlY3Rvci1oYXNoCisg
IChjb21wYXJhdG9yLWhhc2gtZnVuY3Rpb24gZGVmYXVsdC1ieXRldmVjdG9yLWNvbXBhcmF0b3Ip
KQorCis7OzsgV3JhcHBlZCBlcXVhbGl0eSBwcmVkaWNhdGVzCis7OzsgVGhlc2UgY29tcGFyYXRv
cnMgZG9uJ3QgaGF2ZSBvcmRlcmluZyBmdW5jdGlvbnMuCisKKzs7IE5vdGU6IGNvbXBhcmF0b3Jz
IGFyZSBpbW11dGFibGUsIG5vIHJlYXNvbiB0byBhbGxvY2F0ZSBhIG5ldyBvbmUKKyhkZWZpbmUg
ZXEtY29tcGFyYXRvciAobWFrZS1jb21wYXJhdG9yICN0IGVxPyAjZiBkZWZhdWx0LWhhc2gpKQor
KGRlZmluZSAobWFrZS1lcS1jb21wYXJhdG9yKSBlcS1jb21wYXJhdG9yKQorCisoZGVmaW5lIGVx
di1jb21wYXJhdG9yIChtYWtlLWNvbXBhcmF0b3IgI3QgZXF2PyAjZiBkZWZhdWx0LWhhc2gpKQor
KGRlZmluZSAobWFrZS1lcXYtY29tcGFyYXRvcikgZXF2LWNvbXBhcmF0b3IpCisKKyhkZWZpbmUg
ZXF1YWwtY29tcGFyYXRvciAobWFrZS1jb21wYXJhdG9yICN0IGVxdWFsPyAjZiBkZWZhdWx0LWhh
c2gpKQorKGRlZmluZSAobWFrZS1lcXVhbC1jb21wYXJhdG9yKSBlcXVhbC1jb21wYXJhdG9yKQor
Cis7OyBlb2YKZGlmZiAtLWdpdCBhL21vZHVsZS9zcmZpL3NyZmktMTI4L2dudS5zY20gYi9tb2R1
bGUvc3JmaS9zcmZpLTEyOC9nbnUuc2NtCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMC4uODlmZDQzNGFhCi0tLSAvZGV2L251bGwKKysrIGIvbW9kdWxlL3NyZmkvc3JmaS0xMjgv
Z251LnNjbQpAQCAtMCwwICsxLDM4IEBACis7OzsgRXh0ZW5zaW9ucyB0byBTUkZJLTEyOAorCis7
OyAgICBDb3B5cmlnaHQgKEMpIDIwMTkgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCis7
OworOzsgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRl
IGl0IGFuZC9vcgorOzsgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3Nl
ciBHZW5lcmFsIFB1YmxpYworOzsgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29m
dHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCis7OyB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9y
IChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCis7OworOzsgVGhpcyBsaWJyYXJ5
IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCis7OyBi
dXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50
eSBvZgorOzsgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQ
T1NFLiAgU2VlIHRoZSBHTlUKKzs7IExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBt
b3JlIGRldGFpbHMuCis7OworOzsgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0
aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworOzsgTGljZW5zZSBhbG9uZyB3aXRoIHRoaXMg
bGlicmFyeTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQorOzsgRm91bmRhdGlv
biwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwgQm9zdG9uLCBNQSAwMjEx
MC0xMzAxIFVTQQorCisoZGVmaW5lLW1vZHVsZSAoc3JmaSBzcmZpLTEyOCBnbnUpCisgICM6ZXhw
b3J0IChoYXNoLWJvdW5kIGhhc2gtc2FsdCB3aXRoLWhhc2gtc2FsdCkpCisKKyhkZWZpbmUtc3lu
dGF4IGhhc2gtYm91bmQKKyAgKHN5bnRheC1ydWxlcyAoKQorICAgICgoaGFzaC1ib3VuZCkgbW9z
dC1wb3NpdGl2ZS1maXhudW0pKSkKKworKGRlZmluZSAlc2FsdCUgKG1ha2UtcGFyYW1ldGVyIChy
YW5kb20gKGhhc2gtYm91bmQpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAoc2VlZC0+cmFuZG9tLXN0YXRlIChjdXJyZW50LXRpbWUpKSkpKQorCisoZGVmaW5lLXN5bnRh
eCBoYXNoLXNhbHQKKyAgKHN5bnRheC1ydWxlcyAoKQorICAgICgoaGFzaC1zYWx0KSAoJXNhbHQl
KSkpKQorCisoZGVmaW5lLXN5bnRheCB3aXRoLWhhc2gtc2FsdAorICAoc3ludGF4LXJ1bGVzICgp
CisgICAgKCh3aXRoLWhhc2gtc2FsdCBuZXctc2FsdCBoYXNoLWZ1bmMgb2JqKQorICAgICAocGFy
YW1ldGVyaXplICgoJXNhbHQlIG5ldy1zYWx0KSkgKGhhc2gtZnVuYyBvYmopKSkpKQorCis7OyBl
b2YKZGlmZiAtLWdpdCBhL3Rlc3Qtc3VpdGUvTWFrZWZpbGUuYW0gYi90ZXN0LXN1aXRlL01ha2Vm
aWxlLmFtCmluZGV4IGYwYWQ4YmI5MS4uYTJmNzNiMzI5IDEwMDY0NAotLS0gYS90ZXN0LXN1aXRl
L01ha2VmaWxlLmFtCisrKyBiL3Rlc3Qtc3VpdGUvTWFrZWZpbGUuYW0KQEAgLTE2Myw2ICsxNjMs
NyBAQCBTQ01fVEVTVFMgPSB0ZXN0cy8wMC1pbml0aWFsLWVudi50ZXN0CQlcCiAJICAgIHRlc3Rz
L3NyZmktMTA1LnRlc3QJCQlcCiAJICAgIHRlc3RzL3NyZmktMTExLnRlc3QJCQlcCiAJICAgIHRl
c3RzL3NyZmktMTI2LnRlc3QJCQlcCisJICAgIHRlc3RzL3NyZmktMTI4LnRlc3QJCQlcCiAJICAg
IHRlc3RzL3NyZmktNC50ZXN0CQkJXAogCSAgICB0ZXN0cy9zcmZpLTkudGVzdAkJCVwKIAkgICAg
dGVzdHMvc3RhdHByb2YudGVzdAkJCVwKZGlmZiAtLWdpdCBhL3Rlc3Qtc3VpdGUvdGVzdHMvc3Jm
aS0xMjgudGVzdCBiL3Rlc3Qtc3VpdGUvdGVzdHMvc3JmaS0xMjgudGVzdApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAuLjAyYTUzOGUyMgotLS0gL2Rldi9udWxsCisrKyBiL3Rl
c3Qtc3VpdGUvdGVzdHMvc3JmaS0xMjgudGVzdApAQCAtMCwwICsxLDM0OCBAQAorOzs7OyBzcmZp
LTEyOC50ZXN0IC0tLSBUZXN0IHN1aXRlIGZvciBTUkZJIDEyOCAtKi0gc2NoZW1lIC0qLQorOzs7
OworOzs7OyAJQ29weXJpZ2h0IChDKSAyMDE5IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5j
LgorOzs7OworOzs7OyBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRp
c3RyaWJ1dGUgaXQgYW5kL29yCis7Ozs7IG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhl
IEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKzs7OzsgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkg
dGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCis7Ozs7IHZlcnNpb24gMyBvZiB0
aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKzs7OzsK
Kzs7OzsgVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2ls
bCBiZSB1c2VmdWwsCis7Ozs7IGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVu
IHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCis7Ozs7IE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCis7Ozs7IExlc3NlciBHZW5l
cmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCis7Ozs7Cis7Ozs7IFlvdSBzaG91
bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMK
Kzs7OzsgTGljZW5zZSBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgaWYgbm90LCB3cml0ZSB0byB0
aGUgRnJlZSBTb2Z0d2FyZQorOzs7OyBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJl
ZXQsIEZpZnRoIEZsb29yLCBCb3N0b24sIE1BIDAyMTEwLTEzMDEgVVNBCisKKzs7OyBUaGUgZm9s
bG93aW5nIHRlc3RzIGFyZSB0aGUgdGVzdHMgZnJvbSBTUkZJLTEyNiByZWZlcmVuY2UKKzs7OyBp
bXBsZW1lbnRhdGlvbiBwb3J0ZWQgdG8gR3VpbGUgdGVzdCBzdWl0ZS4KKworOzsgVGhpcyBmaWxl
IGNvbnRhaW5zIGNvZGUgZnJvbSBTUkZJIDEyOCByZWZlcmVuY2UgaW1wbGVtZW50YXRpb24sIGJ5
Cis7OyBKb2huIENvd2FuCisKKzs7OyBDb3B5cmlnaHQgKEMpIEpvaG4gQ293YW4gKDIwMTUpLiBB
bGwgUmlnaHRzIFJlc2VydmVkLgorOzs7Cis7OzsgUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRl
ZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24KKzs7OyBvYnRhaW5pbmcgYSBjb3B5IG9m
IHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbgorOzs7IGZpbGVzICh0
aGUgIlNvZnR3YXJlIiksIHRvIGRlYWwgaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQKKzs7OyByZXN0
cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzIHRvIHVzZSwK
Kzs7OyBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNl
LCBhbmQvb3IKKzs7OyBzZWxsIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQg
cGVyc29ucyB0byB3aG9tIHRoZQorOzs7IFNvZnR3YXJlIGlzIGZ1cm5pc2hlZCB0byBkbyBzbywg
c3ViamVjdCB0byB0aGUgZm9sbG93aW5nCis7OzsgY29uZGl0aW9uczoKKzs7OworOzs7IFRoZSBh
Ym92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJl
Cis7OzsgaW5jbHVkZWQgaW4gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0
aGUgU29mdHdhcmUuCis7OzsKKzs7OyBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgIkFTIElTIiwg
V0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwKKzs7OyBFWFBSRVNTIE9SIElNUExJRUQsIElO
Q0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMKKzs7OyBPRiBNRVJDSEFO
VEFCSUxJVFksIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORAorOzs7IE5PTklO
RlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIEFVVEhPUlMgT1IgQ09QWVJJR0hUCis7
OzsgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUiBMSUFC
SUxJVFksCis7OzsgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RI
RVJXSVNFLCBBUklTSU5HCis7OzsgRlJPTSwgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBU
SEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUgorOzs7IE9USEVSIERFQUxJTkdTIElOIFRIRSBTT0ZU
V0FSRS4KKworKGRlZmluZS1tb2R1bGUgKHRlc3Qtc3JmaS0xMjgpCisgICM6dXNlLW1vZHVsZSAo
dGVzdC1zdWl0ZSBsaWIpCisgICM6dXNlLW1vZHVsZSAoc3JmaSBzcmZpLTEyOCkKKyAgIzp1c2Ut
bW9kdWxlIChzcmZpIHNyZmktMSkKKyAgIzp1c2UtbW9kdWxlIChzcmZpIHNyZmktMikKKyAgIzp1
c2UtbW9kdWxlIChzcmZpIHNyZmktOCkKKyAgIzp1c2UtbW9kdWxlIChybnJzIGJ5dGV2ZWN0b3Jz
KSkKKworKGRlZmluZSAodmVjdG9yLWNkciB2ZWMpCisgIChsZXQqICgobGVuICh2ZWN0b3ItbGVu
Z3RoIHZlYykpCisgICAgICAgICAocmVzdWx0IChtYWtlLXZlY3RvciAoLSBsZW4gMSkpKSkKKyAg
ICAobGV0IGxvb3AgKChuIDEpKQorICAgICAgKGNvbmQKKyAgICAgICAoKD0gbiBsZW4pIHJlc3Vs
dCkKKyAgICAgICAoZWxzZSAodmVjdG9yLXNldCEgcmVzdWx0ICgtIG4gMSkgKHZlY3Rvci1yZWYg
dmVjIG4pKQorICAgICAgICAgICAgIChsb29wICgrIG4gMSkpKSkpKSkKKworKGRlZmluZSBkZWZh
dWx0LWNvbXBhcmF0b3IgKG1ha2UtZGVmYXVsdC1jb21wYXJhdG9yKSkKKworKGRlZmluZSByZWFs
LWNvbXBhcmF0b3IgKG1ha2UtY29tcGFyYXRvciByZWFsPyA9IDwgbnVtYmVyLWhhc2gpKQorCiso
ZGVmaW5lIGRlZ2VuZXJhdGUtY29tcGFyYXRvciAobWFrZS1jb21wYXJhdG9yIChsYW1iZGEgKHgp
ICN0KSBlcXVhbD8gI2YgI2YpKQorCisoZGVmaW5lIGJvb2xlYW4tY29tcGFyYXRvcgorICAobWFr
ZS1jb21wYXJhdG9yIGJvb2xlYW4/IGVxPyAobGFtYmRhICh4IHkpIChhbmQgKG5vdCB4KSB5KSkg
Ym9vbGVhbi1oYXNoKSkKKworKGRlZmluZSBib29sLXBhaXItY29tcGFyYXRvcgorICAobWFrZS1w
YWlyLWNvbXBhcmF0b3IgYm9vbGVhbi1jb21wYXJhdG9yIGJvb2xlYW4tY29tcGFyYXRvcikpCisK
KyhkZWZpbmUgbnVtLWxpc3QtY29tcGFyYXRvcgorICAobWFrZS1saXN0LWNvbXBhcmF0b3IgcmVh
bC1jb21wYXJhdG9yIGxpc3Q/IG51bGw/IGNhciBjZHIpKQorCisoZGVmaW5lIG51bS12ZWN0b3It
Y29tcGFyYXRvcgorICAobWFrZS12ZWN0b3ItY29tcGFyYXRvciByZWFsLWNvbXBhcmF0b3IgdmVj
dG9yPyB2ZWN0b3ItbGVuZ3RoIHZlY3Rvci1yZWYpKQorCisoZGVmaW5lIHZlY3Rvci1xdWEtbGlz
dC1jb21wYXJhdG9yCisgIChtYWtlLWxpc3QtY29tcGFyYXRvcgorICAgcmVhbC1jb21wYXJhdG9y
CisgICB2ZWN0b3I/CisgICAobGFtYmRhICh2ZWMpICg9IDAgKHZlY3Rvci1sZW5ndGggdmVjKSkp
CisgICAobGFtYmRhICh2ZWMpICh2ZWN0b3ItcmVmIHZlYyAwKSkKKyAgIHZlY3Rvci1jZHIpKQor
CisoZGVmaW5lIGxpc3QtcXVhLXZlY3Rvci1jb21wYXJhdG9yCisgIChtYWtlLXZlY3Rvci1jb21w
YXJhdG9yIGRlZmF1bHQtY29tcGFyYXRvciBsaXN0PyBsZW5ndGggbGlzdC1yZWYpKQorCisoZGVm
aW5lIGVxLWNvbXBhcmF0b3IgKG1ha2UtZXEtY29tcGFyYXRvcikpCisKKyhkZWZpbmUgZXF2LWNv
bXBhcmF0b3IgKG1ha2UtZXF2LWNvbXBhcmF0b3IpKQorCisoZGVmaW5lIGVxdWFsLWNvbXBhcmF0
b3IgKG1ha2UtZXF1YWwtY29tcGFyYXRvcikpCisKKyhkZWZpbmUgc3ltYm9sLWNvbXBhcmF0b3IK
KyAgKG1ha2UtY29tcGFyYXRvcgorICAgc3ltYm9sPworICAgZXE/CisgICAobGFtYmRhIChhIGIp
IChzdHJpbmc8PyAoc3ltYm9sLT5zdHJpbmcgYSkgKHN5bWJvbC0+c3RyaW5nIGIpKSkKKyAgIHN5
bWJvbC1oYXNoKSkKKworCisod2l0aC10ZXN0LXByZWZpeCAiU1JGSS0xMjgiCisKKyAgKHBhc3Mt
aWYtZXF1YWwgJyMoMiAzIDQpICh2ZWN0b3ItY2RyICcjKDEgMiAzIDQpKSkKKyAgKHBhc3MtaWYt
ZXF1YWwgJyMoKSAodmVjdG9yLWNkciAnIygxKSkpCisKKyAgKHdpdGgtdGVzdC1wcmVmaXggImNv
bXBhcmF0b3JzL3ByZWRpY2F0ZXMiCisgICAgKHBhc3MtaWYgKGNvbXBhcmF0b3I/IHJlYWwtY29t
cGFyYXRvcikpCisgICAgKHBhc3MtaWYgKG5vdCAoY29tcGFyYXRvcj8gPSkpKQorICAgIChwYXNz
LWlmIChjb21wYXJhdG9yLW9yZGVyZWQ/IHJlYWwtY29tcGFyYXRvcikpCisgICAgKHBhc3MtaWYg
KGNvbXBhcmF0b3ItaGFzaGFibGU/IHJlYWwtY29tcGFyYXRvcikpCisgICAgKHBhc3MtaWYgKG5v
dCAoY29tcGFyYXRvci1vcmRlcmVkPyBkZWdlbmVyYXRlLWNvbXBhcmF0b3IpKSkKKyAgICAocGFz
cy1pZiAobm90IChjb21wYXJhdG9yLWhhc2hhYmxlPyBkZWdlbmVyYXRlLWNvbXBhcmF0b3IpKSkK
KyAgICApIDsgZW5kIGNvbXBhcmF0b3JzL3ByZWRpY2F0ZXMKKworICAod2l0aC10ZXN0LXByZWZp
eCAiY29tcGFyYXRvcnMvY29uc3RydWN0b3JzIgorICAgIChwYXNzLWlmICg9PyBib29sZWFuLWNv
bXBhcmF0b3IgI3QgI3QpKQorICAgIChwYXNzLWlmIChub3QgKD0/IGJvb2xlYW4tY29tcGFyYXRv
ciAjdCAjZikpKQorICAgIChwYXNzLWlmICg8PyBib29sZWFuLWNvbXBhcmF0b3IgI2YgI3QpKQor
ICAgIChwYXNzLWlmIChub3QgKDw/IGJvb2xlYW4tY29tcGFyYXRvciAjdCAjdCkpKQorICAgIChw
YXNzLWlmIChub3QgKDw/IGJvb2xlYW4tY29tcGFyYXRvciAjdCAjZikpKQorCisgICAgKHBhc3Mt
aWYgKGNvbXBhcmF0b3ItdGVzdC10eXBlIGJvb2wtcGFpci1jb21wYXJhdG9yICcoI3QgLiAjZikp
KQorICAgIChwYXNzLWlmIChub3QgKGNvbXBhcmF0b3ItdGVzdC10eXBlIGJvb2wtcGFpci1jb21w
YXJhdG9yIDMyKSkpCisgICAgKHBhc3MtaWYgKG5vdCAoY29tcGFyYXRvci10ZXN0LXR5cGUgYm9v
bC1wYWlyLWNvbXBhcmF0b3IgJygzMiAuICNmKSkpKQorICAgIChwYXNzLWlmIChub3QgKGNvbXBh
cmF0b3ItdGVzdC10eXBlIGJvb2wtcGFpci1jb21wYXJhdG9yICcoI3QgLiAzMikpKSkKKyAgICAo
cGFzcy1pZiAobm90IChjb21wYXJhdG9yLXRlc3QtdHlwZSBib29sLXBhaXItY29tcGFyYXRvciAn
KDMyIC4gMzQpKSkpCisgICAgKHBhc3MtaWYgKD0/IGJvb2wtcGFpci1jb21wYXJhdG9yICcoI3Qg
LiAjdCkgJygjdCAuICN0KSkpCisgICAgKHBhc3MtaWYgKG5vdCAoPT8gYm9vbC1wYWlyLWNvbXBh
cmF0b3IgJygjdCAuICN0KSAnKCNmIC4gI3QpKSkpCisgICAgKHBhc3MtaWYgKG5vdCAoPT8gYm9v
bC1wYWlyLWNvbXBhcmF0b3IgJygjdCAuICN0KSAnKCN0IC4gI2YpKSkpCisgICAgKHBhc3MtaWYg
KDw/IGJvb2wtcGFpci1jb21wYXJhdG9yICcoI2YgLiAjdCkgJygjdCAuICN0KSkpCisgICAgKHBh
c3MtaWYgKDw/IGJvb2wtcGFpci1jb21wYXJhdG9yICcoI3QgLiAjZikgJygjdCAuICN0KSkpCisg
ICAgKHBhc3MtaWYgKG5vdCAoPD8gYm9vbC1wYWlyLWNvbXBhcmF0b3IgJygjdCAuICN0KSAnKCN0
IC4gI3QpKSkpCisgICAgKHBhc3MtaWYgKG5vdCAoPD8gYm9vbC1wYWlyLWNvbXBhcmF0b3IgJygj
dCAuICN0KSAnKCNmIC4gI3QpKSkpCisgICAgKHBhc3MtaWYgKG5vdCAoPD8gYm9vbC1wYWlyLWNv
bXBhcmF0b3IgJygjZiAuICN0KSAnKCNmIC4gI2YpKSkpCisKKyAgICAocGFzcy1pZiAoY29tcGFy
YXRvci10ZXN0LXR5cGUgbnVtLXZlY3Rvci1jb21wYXJhdG9yICcjKDEgMiAzKSkpCisgICAgKHBh
c3MtaWYgKGNvbXBhcmF0b3ItdGVzdC10eXBlIG51bS12ZWN0b3ItY29tcGFyYXRvciAnIygpKSkK
KyAgICAocGFzcy1pZiAobm90IChjb21wYXJhdG9yLXRlc3QtdHlwZSBudW0tdmVjdG9yLWNvbXBh
cmF0b3IgMSkpKQorICAgIChwYXNzLWlmIChub3QgKGNvbXBhcmF0b3ItdGVzdC10eXBlIG51bS12
ZWN0b3ItY29tcGFyYXRvciAnIyhhIDIgMykpKSkKKyAgICAocGFzcy1pZiAobm90IChjb21wYXJh
dG9yLXRlc3QtdHlwZSBudW0tdmVjdG9yLWNvbXBhcmF0b3IgJyMoMSBiIDMpKSkpCisgICAgKHBh
c3MtaWYgKG5vdCAoY29tcGFyYXRvci10ZXN0LXR5cGUgbnVtLXZlY3Rvci1jb21wYXJhdG9yICcj
KDEgMiBjKSkpKQorICAgIChwYXNzLWlmICg9PyBudW0tdmVjdG9yLWNvbXBhcmF0b3IgJyMoMSAy
IDMpICcjKDEgMiAzKSkpCisgICAgKHBhc3MtaWYgKG5vdCAoPT8gbnVtLXZlY3Rvci1jb21wYXJh
dG9yICcjKDEgMiAzKSAnIyg0IDUgNikpKSkKKyAgICAocGFzcy1pZiAobm90ICg9PyBudW0tdmVj
dG9yLWNvbXBhcmF0b3IgJyMoMSAyIDMpICcjKDEgNSA2KSkpKQorICAgIChwYXNzLWlmIChub3Qg
KD0/IG51bS12ZWN0b3ItY29tcGFyYXRvciAnIygxIDIgMykgJyMoMSAyIDYpKSkpCisgICAgKHBh
c3MtaWYgKDw/IG51bS12ZWN0b3ItY29tcGFyYXRvciAnIygxIDIpICcjKDEgMiAzKSkpCisgICAg
KHBhc3MtaWYgKDw/IG51bS12ZWN0b3ItY29tcGFyYXRvciAnIygxIDIgMykgJyMoMiAzIDQpKSkK
KyAgICAocGFzcy1pZiAoPD8gbnVtLXZlY3Rvci1jb21wYXJhdG9yICcjKDEgMiAzKSAnIygxIDMg
NCkpKQorICAgIChwYXNzLWlmICg8PyBudW0tdmVjdG9yLWNvbXBhcmF0b3IgJyMoMSAyIDMpICcj
KDEgMiA0KSkpCisgICAgKHBhc3MtaWYgKDw/IG51bS12ZWN0b3ItY29tcGFyYXRvciAnIygzIDQp
ICcjKDEgMiAzKSkpCisgICAgKHBhc3MtaWYgKG5vdCAoPD8gbnVtLXZlY3Rvci1jb21wYXJhdG9y
ICcjKDEgMiAzKSAnIygxIDIgMykpKSkKKyAgICAocGFzcy1pZiAobm90ICg8PyBudW0tdmVjdG9y
LWNvbXBhcmF0b3IgJyMoMSAyIDMpICcjKDEgMikpKSkKKyAgICAocGFzcy1pZiAobm90ICg8PyBu
dW0tdmVjdG9yLWNvbXBhcmF0b3IgJyMoMSAyIDMpICcjKDAgMiAzKSkpKQorICAgIChwYXNzLWlm
IChub3QgKDw/IG51bS12ZWN0b3ItY29tcGFyYXRvciAnIygxIDIgMykgJyMoMSAxIDMpKSkpCisK
KyAgICAocGFzcy1pZiAobm90ICg8PyB2ZWN0b3ItcXVhLWxpc3QtY29tcGFyYXRvciAnIygzIDQp
ICcjKDEgMiAzKSkpKQorICAgIChwYXNzLWlmICg8PyBsaXN0LXF1YS12ZWN0b3ItY29tcGFyYXRv
ciAnKDMgNCkgJygxIDIgMykpKQorCisgICAgKGxldCAoKGJvb2wtcGFpciAoY29ucyAjdCAjZikp
CisgICAgICAgICAgKGJvb2wtcGFpci0yIChjb25zICN0ICNmKSkKKyAgICAgICAgICAocmV2ZXJz
ZS1ib29sLXBhaXIgKGNvbnMgI2YgI3QpKSkKKyAgICAgIChwYXNzLWlmICg9PyBlcS1jb21wYXJh
dG9yICN0ICN0KSkKKyAgICAgIChwYXNzLWlmIChub3QgKD0/IGVxLWNvbXBhcmF0b3IgI2YgI3Qp
KSkKKyAgICAgIChwYXNzLWlmICg9PyBlcXYtY29tcGFyYXRvciBib29sLXBhaXIgYm9vbC1wYWly
KSkKKyAgICAgIChwYXNzLWlmIChub3QgKD0/IGVxdi1jb21wYXJhdG9yIGJvb2wtcGFpciBib29s
LXBhaXItMikpKQorICAgICAgKHBhc3MtaWYgKD0/IGVxdWFsLWNvbXBhcmF0b3IgYm9vbC1wYWly
IGJvb2wtcGFpci0yKSkKKyAgICAgIChwYXNzLWlmIChub3QgKD0/IGVxdWFsLWNvbXBhcmF0b3Ig
Ym9vbC1wYWlyIHJldmVyc2UtYm9vbC1wYWlyKSkpKQorICAgICkgOyBlbmQgY29tcGFyYXRvcnMv
Y29uc3RydWN0b3JzCisKKyAgKHdpdGgtdGVzdC1wcmVmaXggImNvbXBhcmF0b3JzL2hhc2giCisg
ICAgKHBhc3MtaWYgKGV4YWN0LWludGVnZXI/IChib29sZWFuLWhhc2ggI2YpKSkKKyAgICAocGFz
cy1pZiAobm90IChuZWdhdGl2ZT8gKGJvb2xlYW4taGFzaCAjdCkpKSkKKyAgICAocGFzcy1pZiAo
ZXhhY3QtaW50ZWdlcj8gKGNoYXItaGFzaCAjXGEpKSkKKyAgICAocGFzcy1pZiAobm90IChuZWdh
dGl2ZT8gKGNoYXItaGFzaCAjXGIpKSkpCisgICAgKHBhc3MtaWYgKGV4YWN0LWludGVnZXI/IChj
aGFyLWNpLWhhc2ggI1xhKSkpCisgICAgKHBhc3MtaWYgKG5vdCAobmVnYXRpdmU/IChjaGFyLWNp
LWhhc2ggI1xiKSkpKQorICAgIChwYXNzLWlmICg9IChjaGFyLWNpLWhhc2ggI1xhKSAoY2hhci1j
aS1oYXNoICNcQSkpKQorICAgIChwYXNzLWlmIChleGFjdC1pbnRlZ2VyPyAoc3RyaW5nLWhhc2gg
ImYiKSkpCisgICAgKHBhc3MtaWYgKG5vdCAobmVnYXRpdmU/IChzdHJpbmctaGFzaCAiZyIpKSkp
CisgICAgKHBhc3MtaWYgKGV4YWN0LWludGVnZXI/IChzdHJpbmctY2ktaGFzaCAiZiIpKSkKKyAg
ICAocGFzcy1pZiAobm90IChuZWdhdGl2ZT8gKHN0cmluZy1jaS1oYXNoICJnIikpKSkKKyAgICAo
cGFzcy1pZiAoPSAoc3RyaW5nLWNpLWhhc2ggImYiKSAoc3RyaW5nLWNpLWhhc2ggIkYiKSkpCisg
ICAgKHBhc3MtaWYgKGV4YWN0LWludGVnZXI/IChzeW1ib2wtaGFzaCAnZikpKQorICAgIChwYXNz
LWlmIChub3QgKG5lZ2F0aXZlPyAoc3ltYm9sLWhhc2ggJ3QpKSkpCisgICAgKHBhc3MtaWYgKGV4
YWN0LWludGVnZXI/IChudW1iZXItaGFzaCAzKSkpCisgICAgKHBhc3MtaWYgKG5vdCAobmVnYXRp
dmU/IChudW1iZXItaGFzaCAzKSkpKQorICAgIChwYXNzLWlmIChleGFjdC1pbnRlZ2VyPyAobnVt
YmVyLWhhc2ggLTMpKSkKKyAgICAocGFzcy1pZiAobm90IChuZWdhdGl2ZT8gKG51bWJlci1oYXNo
IC0zKSkpKQorICAgIChwYXNzLWlmIChleGFjdC1pbnRlZ2VyPyAobnVtYmVyLWhhc2ggMy4wKSkp
CisgICAgKHBhc3MtaWYgKG5vdCAobmVnYXRpdmU/IChudW1iZXItaGFzaCAzLjApKSkpCisgICAg
KHBhc3MtaWYgKGV4YWN0LWludGVnZXI/IChudW1iZXItaGFzaCAzLjQ3KSkpCisgICAgKHBhc3Mt
aWYgKG5vdCAobmVnYXRpdmU/IChudW1iZXItaGFzaCAzLjQ3KSkpKQorICAgIChwYXNzLWlmIChl
eGFjdC1pbnRlZ2VyPyAoZGVmYXVsdC1oYXNoICcoKSkpKQorICAgIChwYXNzLWlmIChub3QgKG5l
Z2F0aXZlPyAoZGVmYXVsdC1oYXNoICcoKSkpKSkKKyAgICAocGFzcy1pZiAoZXhhY3QtaW50ZWdl
cj8gKGRlZmF1bHQtaGFzaCAnKGEgImIiICNcYyAjKGRlZSkgMi43MTgpKSkpCisgICAgKHBhc3Mt
aWYgKG5vdCAobmVnYXRpdmU/IChkZWZhdWx0LWhhc2ggJyhhICJiIiAjXGMgIyhkZWUpIDIuNzE4
KSkpKSkKKyAgICAocGFzcy1pZiAoZXhhY3QtaW50ZWdlcj8gKGRlZmF1bHQtaGFzaCAnI3U4KCkp
KSkKKyAgICAocGFzcy1pZiAobm90IChuZWdhdGl2ZT8gKGRlZmF1bHQtaGFzaCAnI3U4KCkpKSkp
CisgICAgKHBhc3MtaWYgKGV4YWN0LWludGVnZXI/IChkZWZhdWx0LWhhc2ggJyN1OCg4IDYgMykp
KSkKKyAgICAocGFzcy1pZiAobm90IChuZWdhdGl2ZT8gKGRlZmF1bHQtaGFzaCAnI3U4KDggNiAz
KSkpKSkKKyAgICAocGFzcy1pZiAoZXhhY3QtaW50ZWdlcj8gKGRlZmF1bHQtaGFzaCAnIygpKSkp
CisgICAgKHBhc3MtaWYgKG5vdCAobmVnYXRpdmU/IChkZWZhdWx0LWhhc2ggJyMoKSkpKSkKKyAg
ICAocGFzcy1pZiAoZXhhY3QtaW50ZWdlcj8gKGRlZmF1bHQtaGFzaCAnIyhhICJiIiAjXGMgIyhk
ZWUpIDIuNzE4KSkpKQorICAgIChwYXNzLWlmIChub3QgKG5lZ2F0aXZlPyAoZGVmYXVsdC1oYXNo
ICcjKGEgImIiICNcYyAjKGRlZSkgMi43MTgpKSkpKQorCisgICAgKSA7IGVuZCBjb21wYXJhdG9y
cy9oYXNoCisKKyAgKHdpdGgtdGVzdC1wcmVmaXggImNvbXBhcmF0b3JzL2RlZmF1bHQiCisgICAg
KHBhc3MtaWYgKDw/IGRlZmF1bHQtY29tcGFyYXRvciAnKCkgJyhhKSkpCisgICAgKHBhc3MtaWYg
KG5vdCAoPT8gZGVmYXVsdC1jb21wYXJhdG9yICcoKSAnKGEpKSkpCisgICAgKHBhc3MtaWYgKD0/
IGRlZmF1bHQtY29tcGFyYXRvciAjdCAjdCkpCisgICAgKHBhc3MtaWYgKG5vdCAoPT8gZGVmYXVs
dC1jb21wYXJhdG9yICN0ICNmKSkpCisgICAgKHBhc3MtaWYgKDw/IGRlZmF1bHQtY29tcGFyYXRv
ciAjZiAjdCkpCisgICAgKHBhc3MtaWYgKG5vdCAoPD8gZGVmYXVsdC1jb21wYXJhdG9yICN0ICN0
KSkpCisgICAgKHBhc3MtaWYgKD0/IGRlZmF1bHQtY29tcGFyYXRvciAjXGEgI1xhKSkKKyAgICAo
cGFzcy1pZiAoPD8gZGVmYXVsdC1jb21wYXJhdG9yICNcYSAjXGIpKQorCisgICAgKHBhc3MtaWYg
KGNvbXBhcmF0b3ItdGVzdC10eXBlIGRlZmF1bHQtY29tcGFyYXRvciAnKCkpKQorICAgIChwYXNz
LWlmIChjb21wYXJhdG9yLXRlc3QtdHlwZSBkZWZhdWx0LWNvbXBhcmF0b3IgI3QpKQorICAgIChw
YXNzLWlmIChjb21wYXJhdG9yLXRlc3QtdHlwZSBkZWZhdWx0LWNvbXBhcmF0b3IgI1x0KSkKKyAg
ICAocGFzcy1pZiAoY29tcGFyYXRvci10ZXN0LXR5cGUgZGVmYXVsdC1jb21wYXJhdG9yICcoYSkp
KQorICAgIChwYXNzLWlmIChjb21wYXJhdG9yLXRlc3QtdHlwZSBkZWZhdWx0LWNvbXBhcmF0b3Ig
J2EpKQorICAgIChwYXNzLWlmIChjb21wYXJhdG9yLXRlc3QtdHlwZSBkZWZhdWx0LWNvbXBhcmF0
b3IgKG1ha2UtYnl0ZXZlY3RvciAxMCkpKQorICAgIChwYXNzLWlmIChjb21wYXJhdG9yLXRlc3Qt
dHlwZSBkZWZhdWx0LWNvbXBhcmF0b3IgMTApKQorICAgIChwYXNzLWlmIChjb21wYXJhdG9yLXRl
c3QtdHlwZSBkZWZhdWx0LWNvbXBhcmF0b3IgMTAuMCkpCisgICAgKHBhc3MtaWYgKGNvbXBhcmF0
b3ItdGVzdC10eXBlIGRlZmF1bHQtY29tcGFyYXRvciAiMTAuMCIpKQorICAgIChwYXNzLWlmIChj
b21wYXJhdG9yLXRlc3QtdHlwZSBkZWZhdWx0LWNvbXBhcmF0b3IgJyMoMTApKSkKKworICAgIChw
YXNzLWlmICg9PyBkZWZhdWx0LWNvbXBhcmF0b3IgJygjdCAuICN0KSAnKCN0IC4gI3QpKSkKKyAg
ICAocGFzcy1pZiAobm90ICg9PyBkZWZhdWx0LWNvbXBhcmF0b3IgJygjdCAuICN0KSAnKCNmIC4g
I3QpKSkpCisgICAgKHBhc3MtaWYgKG5vdCAoPT8gZGVmYXVsdC1jb21wYXJhdG9yICcoI3QgLiAj
dCkgJygjdCAuICNmKSkpKQorICAgIChwYXNzLWlmICg8PyBkZWZhdWx0LWNvbXBhcmF0b3IgJygj
ZiAuICN0KSAnKCN0IC4gI3QpKSkKKyAgICAocGFzcy1pZiAoPD8gZGVmYXVsdC1jb21wYXJhdG9y
ICcoI3QgLiAjZikgJygjdCAuICN0KSkpCisgICAgKHBhc3MtaWYgKG5vdCAoPD8gZGVmYXVsdC1j
b21wYXJhdG9yICcoI3QgLiAjdCkgJygjdCAuICN0KSkpKQorICAgIChwYXNzLWlmIChub3QgKDw/
IGRlZmF1bHQtY29tcGFyYXRvciAnKCN0IC4gI3QpICcoI2YgLiAjdCkpKSkKKyAgICAocGFzcy1p
ZiAobm90ICg8PyBkZWZhdWx0LWNvbXBhcmF0b3IgJyMoI2YgI3QpICcjKCNmICNmKSkpKQorCisg
ICAgKHBhc3MtaWYgKD0/IGRlZmF1bHQtY29tcGFyYXRvciAnIygjdCAjdCkgJyMoI3QgI3QpKSkK
KyAgICAocGFzcy1pZiAobm90ICg9PyBkZWZhdWx0LWNvbXBhcmF0b3IgJyMoI3QgI3QpICcjKCNm
ICN0KSkpKQorICAgIChwYXNzLWlmIChub3QgKD0/IGRlZmF1bHQtY29tcGFyYXRvciAnIygjdCAj
dCkgJyMoI3QgI2YpKSkpCisgICAgKHBhc3MtaWYgKDw/IGRlZmF1bHQtY29tcGFyYXRvciAnIygj
ZiAjdCkgJyMoI3QgI3QpKSkKKyAgICAocGFzcy1pZiAoPD8gZGVmYXVsdC1jb21wYXJhdG9yICcj
KCN0ICNmKSAnIygjdCAjdCkpKQorICAgIChwYXNzLWlmIChub3QgKDw/IGRlZmF1bHQtY29tcGFy
YXRvciAnIygjdCAjdCkgJyMoI3QgI3QpKSkpCisgICAgKHBhc3MtaWYgKG5vdCAoPD8gZGVmYXVs
dC1jb21wYXJhdG9yICcjKCN0ICN0KSAnIygjZiAjdCkpKSkKKyAgICAocGFzcy1pZiAobm90ICg8
PyBkZWZhdWx0LWNvbXBhcmF0b3IgJyMoI2YgI3QpICcjKCNmICNmKSkpKQorCisgICAgKHBhc3Mt
aWYgKD0gKGNvbXBhcmF0b3ItaGFzaCBkZWZhdWx0LWNvbXBhcmF0b3IgI3QpIChib29sZWFuLWhh
c2ggI3QpKSkKKyAgICAocGFzcy1pZiAoPSAoY29tcGFyYXRvci1oYXNoIGRlZmF1bHQtY29tcGFy
YXRvciAjXHQpIChjaGFyLWhhc2ggI1x0KSkpCisgICAgKHBhc3MtaWYgKD0gKGNvbXBhcmF0b3It
aGFzaCBkZWZhdWx0LWNvbXBhcmF0b3IgInQiKSAoc3RyaW5nLWhhc2ggInQiKSkpCisgICAgKHBh
c3MtaWYgKD0gKGNvbXBhcmF0b3ItaGFzaCBkZWZhdWx0LWNvbXBhcmF0b3IgJ3QpIChzeW1ib2wt
aGFzaCAndCkpKQorICAgIChwYXNzLWlmICg9IChjb21wYXJhdG9yLWhhc2ggZGVmYXVsdC1jb21w
YXJhdG9yIDEwKSAobnVtYmVyLWhhc2ggMTApKSkKKyAgICAocGFzcy1pZiAoPSAoY29tcGFyYXRv
ci1oYXNoIGRlZmF1bHQtY29tcGFyYXRvciAxMC4wKSAobnVtYmVyLWhhc2ggMTAuMCkpKQorCisg
ICAgKGNvbXBhcmF0b3ItcmVnaXN0ZXItZGVmYXVsdCEKKyAgICAgKG1ha2UtY29tcGFyYXRvciBw
cm9jZWR1cmU/IChsYW1iZGEgKGEgYikgI3QpIChsYW1iZGEgKGEgYikgI2YpIChsYW1iZGEgKG9i
aikgMjAwKSkpCisgICAgKHBhc3MtaWYgKD0/IGRlZmF1bHQtY29tcGFyYXRvciAobGFtYmRhICgp
ICN0KSAobGFtYmRhICgpICNmKSkpCisgICAgKHBhc3MtaWYgKG5vdCAoPD8gZGVmYXVsdC1jb21w
YXJhdG9yIChsYW1iZGEgKCkgI3QpIChsYW1iZGEgKCkgI2YpKSkpCisgICAgKHBhc3MtaWYtZXF1
YWwgMjAwIChjb21wYXJhdG9yLWhhc2ggZGVmYXVsdC1jb21wYXJhdG9yIChsYW1iZGEgKCkgI3Qp
KSkKKworICAgICkgOyBlbmQgY29tcGFyYXRvcnMvZGVmYXVsdAorCisgIDs7IFNSRkkgMTI4IGRv
ZXMgbm90IGFjdHVhbGx5IHJlcXVpcmUgYSBjb21wYXJhdG9yJ3MgZm91ciBwcm9jZWR1cmVzCisg
IDs7IHRvIGJlIGVxPyB0byB0aGUgcHJvY2VkdXJlcyBvcmlnaW5hbGx5IHBhc3NlZCB0byBtYWtl
LWNvbXBhcmF0b3IuCisgIDs7IEZvciBpbnRlcm9wZXJhYmlsaXR5L2ludGVyY2hhbmdlYWJpbGl0
eSBiZXR3ZWVuIHRoZSBjb21wYXJhdG9ycworICA7OyBvZiBTUkZJIDExNCBhbmQgU1JGSSAxMjgs
IHNvbWUgb2YgdGhlIHByb2NlZHVyZXMgcGFzc2VkIHRvCisgIDs7IG1ha2UtY29tcGFyYXRvciBt
YXkgbmVlZCB0byBiZSB3cmFwcGVkIGluc2lkZSBhbm90aGVyIGxhbWJkYQorICA7OyBleHByZXNz
aW9uIGJlZm9yZSB0aGV5J3JlIHJldHVybmVkIGJ5IHRoZSBjb3JyZXNwb25kaW5nIGFjY2Vzc29y
LgorICA7OworICA7OyBTbyB0aGlzIG5leHQgZ3JvdXAgb2YgdGVzdHMgaXMgaW5jb3JyZWN0LCBo
ZW5jZSBjb21tZW50ZWQgb3V0CisgIDs7IGFuZCByZXBsYWNlZCBieSBhIHNsaWdodGx5IGxlc3Mg
bmFpdmUgZ3JvdXAgb2YgdGVzdHMuCisKKyAgIzsKKyAgKHdpdGgtdGVzdC1wcmVmaXggImNvbXBh
cmF0b3JzL2FjY2Vzc29ycyIKKyAgKGRlZmluZSB0dHAgKGxhbWJkYSAoeCkgI3QpKQorICAoZGVm
aW5lIGVxcCAobGFtYmRhICh4IHkpICN0KSkKKyAgKGRlZmluZSBvcnAgKGxhbWJkYSAoeCB5KSAj
dCkpCisgIChkZWZpbmUgaGYgKGxhbWJkYSAoeCkgMCkpCisgIChkZWZpbmUgY29tcCAobWFrZS1j
b21wYXJhdG9yIHR0cCBlcXAgb3JwIGhmKSkKKyAgKHBhc3MtaWYtZXF1YWwgdHRwIChjb21wYXJh
dG9yLXR5cGUtdGVzdC1wcmVkaWNhdGUgY29tcCkpCisgIChwYXNzLWlmLWVxdWFsIGVxcCAoY29t
cGFyYXRvci1lcXVhbGl0eS1wcmVkaWNhdGUgY29tcCkpCisgIChwYXNzLWlmLWVxdWFsIG9ycCAo
Y29tcGFyYXRvci1vcmRlcmluZy1wcmVkaWNhdGUgY29tcCkpCisgIChwYXNzLWlmLWVxdWFsIGhm
IChjb21wYXJhdG9yLWhhc2gtZnVuY3Rpb24gY29tcCkpCisgICkgOyBlbmQgY29tcGFyYXRvcnMv
YWNjZXNzb3JzCisKKyAgKHdpdGgtdGVzdC1wcmVmaXggImNvbXBhcmF0b3JzL2FjY2Vzc29ycyIK
KyAgICAobGV0KiAoKHgxIDApCisgICAgICAgICAgICh4MiAwKQorICAgICAgICAgICAoeDMgMCkK
KyAgICAgICAgICAgKHg0IDApCisgICAgICAgICAgICh0dHAgKGxhbWJkYSAoeCkgKHNldCEgeDEg
MTExKSAjdCkpCisgICAgICAgICAgIChlcXAgKGxhbWJkYSAoeCB5KSAoc2V0ISB4MiAyMjIpICN0
KSkKKyAgICAgICAgICAgKG9ycCAobGFtYmRhICh4IHkpIChzZXQhIHgzIDMzMykgI3QpKQorICAg
ICAgICAgICAoaGYgKGxhbWJkYSAoeCkgKHNldCEgeDQgNDQ0KSAwKSkKKyAgICAgICAgICAgKGNv
bXAgKG1ha2UtY29tcGFyYXRvciB0dHAgZXFwIG9ycCBoZikpKQorICAgICAgKHBhc3MtaWYtZXF1
YWwgI3QgKGFuZCAoKGNvbXBhcmF0b3ItdHlwZS10ZXN0LXByZWRpY2F0ZSBjb21wKSB4MSkgICAo
PSB4MSAxMTEpKSkKKyAgICAgIChwYXNzLWlmLWVxdWFsICN0IChhbmQgKChjb21wYXJhdG9yLWVx
dWFsaXR5LXByZWRpY2F0ZSBjb21wKSB4MSB4MikgKD0geDIgMjIyKSkpCisgICAgICAocGFzcy1p
Zi1lcXVhbCAjdCAoYW5kICgoY29tcGFyYXRvci1vcmRlcmluZy1wcmVkaWNhdGUgY29tcCkgeDEg
eDMpICg9IHgzIDMzMykpKQorICAgICAgKHBhc3MtaWYtZXF1YWwgI3QgKGFuZCAoemVybz8gKChj
b21wYXJhdG9yLWhhc2gtZnVuY3Rpb24gY29tcCkgeDEpKSAoPSB4NCA0NDQpKSkpCisgICAgKSA7
IGVuZCBjb21wYXJhdG9ycy9hY2Nlc3NvcnMKKworICAod2l0aC10ZXN0LXByZWZpeCAiY29tcGFy
YXRvcnMvaW52b2tlcnMiCisgICAgKHBhc3MtaWYgKGNvbXBhcmF0b3ItdGVzdC10eXBlIHJlYWwt
Y29tcGFyYXRvciAzKSkKKyAgICAocGFzcy1pZiAoY29tcGFyYXRvci10ZXN0LXR5cGUgcmVhbC1j
b21wYXJhdG9yIDMuMCkpCisgICAgKHBhc3MtaWYgKG5vdCAoY29tcGFyYXRvci10ZXN0LXR5cGUg
cmVhbC1jb21wYXJhdG9yICIzLjAiKSkpCisgICAgKHBhc3MtaWYgKGNvbXBhcmF0b3ItY2hlY2st
dHlwZSBib29sZWFuLWNvbXBhcmF0b3IgI3QpKQorICAgIChwYXNzLWlmLWV4Y2VwdGlvbiAiY2hl
Y2stdHlwZSIKKyAgICAgICAgJyhtaXNjLWVycm9yIC4gIl5Db21wYXJhdG9yIHR5cGUgY2hlY2sg
ZmFpbGVkIikKKyAgICAgIChjb21wYXJhdG9yLWNoZWNrLXR5cGUgYm9vbGVhbi1jb21wYXJhdG9y
ICd0KSkKKyAgICApIDsgZW5kIGNvbXBhcmF0b3JzL2ludm9rZXJzCisKKyAgKHdpdGgtdGVzdC1w
cmVmaXggImNvbXBhcmF0b3JzL2NvbXBhcmlzb24iCisgICAgKHBhc3MtaWYgKD0/IHJlYWwtY29t
cGFyYXRvciAyIDIuMCAyKSkKKyAgICAocGFzcy1pZiAoPD8gcmVhbC1jb21wYXJhdG9yIDIgMy4w
IDQpKQorICAgIChwYXNzLWlmICg+PyByZWFsLWNvbXBhcmF0b3IgNC4wIDMuMCAyKSkKKyAgICAo
cGFzcy1pZiAoPD0/IHJlYWwtY29tcGFyYXRvciAyLjAgMiAzLjApKQorICAgIChwYXNzLWlmICg+
PT8gcmVhbC1jb21wYXJhdG9yIDMgMy4wIDIpKQorICAgIChwYXNzLWlmIChub3QgKD0/IHJlYWwt
Y29tcGFyYXRvciAxIDIgMykpKQorICAgIChwYXNzLWlmIChub3QgKDw/IHJlYWwtY29tcGFyYXRv
ciAzIDEgMikpKQorICAgIChwYXNzLWlmIChub3QgKD4/IHJlYWwtY29tcGFyYXRvciAxIDIgMykp
KQorICAgIChwYXNzLWlmIChub3QgKDw9PyByZWFsLWNvbXBhcmF0b3IgNCAzIDMpKSkKKyAgICAo
cGFzcy1pZiAobm90ICg+PT8gcmVhbC1jb21wYXJhdG9yIDMgNCA0LjApKSkKKworICAgICkgOyBl
bmQgY29tcGFyYXRvcnMvY29tcGFyaXNvbgorCisgICh3aXRoLXRlc3QtcHJlZml4ICJjb21wYXJh
dG9ycy9zeW50YXgiCisgICAgKHBhc3MtaWYtZXF1YWwgJ2xlc3MgKGNvbXBhcmF0b3ItaWY8PT4g
cmVhbC1jb21wYXJhdG9yIDEgMiAnbGVzcyAnZXF1YWwgJ2dyZWF0ZXIpKQorICAgIChwYXNzLWlm
LWVxdWFsICdlcXVhbCAoY29tcGFyYXRvci1pZjw9PiByZWFsLWNvbXBhcmF0b3IgMSAxICdsZXNz
ICdlcXVhbCAnZ3JlYXRlcikpCisgICAgKHBhc3MtaWYtZXF1YWwgJ2dyZWF0ZXIgKGNvbXBhcmF0
b3ItaWY8PT4gcmVhbC1jb21wYXJhdG9yIDIgMSAnbGVzcyAnZXF1YWwgJ2dyZWF0ZXIpKQorICAg
IChwYXNzLWlmLWVxdWFsICdsZXNzIChjb21wYXJhdG9yLWlmPD0+ICIxIiAiMiIgJ2xlc3MgJ2Vx
dWFsICdncmVhdGVyKSkKKyAgICAocGFzcy1pZi1lcXVhbCAnZXF1YWwgKGNvbXBhcmF0b3ItaWY8
PT4gIjEiICIxIiAnbGVzcyAnZXF1YWwgJ2dyZWF0ZXIpKQorICAgIChwYXNzLWlmLWVxdWFsICdn
cmVhdGVyIChjb21wYXJhdG9yLWlmPD0+ICIyIiAiMSIgJ2xlc3MgJ2VxdWFsICdncmVhdGVyKSkK
KworICAgICkgOyBlbmQgY29tcGFyYXRvcnMvc3ludGF4CisKKyAgKHdpdGgtdGVzdC1wcmVmaXgg
ImNvbXBhcmF0b3JzL2JvdW5kLXNhbHQiCisgICAgKHBhc3MtaWYgKGV4YWN0LWludGVnZXI/ICho
YXNoLWJvdW5kKSkpCisgICAgKHBhc3MtaWYgKGV4YWN0LWludGVnZXI/IChoYXNoLXNhbHQpKSkK
KyAgICAocGFzcy1pZiAoPCAoaGFzaC1zYWx0KSAoaGFzaC1ib3VuZCkpKQorICAgICM7ICAocGFz
cy1pZi1lcXVhbCAoaGFzaC1zYWx0KSAoZmFrZS1zYWx0LWhhc2ggI3QpKSAgOyBubyBzdWNoIHRo
aW5nIGFzIGZha2Utc2FsdC1oYXNoCisgICAgKSA7IGVuZCBjb21wYXJhdG9ycy9ib3VuZC1zYWx0
CisgICkKLS0gCjIuMTkuMQoK
--00000000000027132d057f5ecbea--




Information forwarded to bug-guile@HIDDEN:
bug#33827; Package guile. Full text available.

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


Received: (at 33827) by debbugs.gnu.org; 9 Jan 2019 00:21:24 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Tue Jan 08 19:21:24 2019
Received: from localhost ([127.0.0.1]:50659 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1gh1ca-0001BC-BX
	for submit <at> debbugs.gnu.org; Tue, 08 Jan 2019 19:21:24 -0500
Received: from mail-io1-f46.google.com ([209.85.166.46]:36210)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <jessymilare@HIDDEN>) id 1gh1cY-0001Az-Cy
 for 33827 <at> debbugs.gnu.org; Tue, 08 Jan 2019 19:21:22 -0500
Received: by mail-io1-f46.google.com with SMTP id m19so4670880ioh.3
 for <33827 <at> debbugs.gnu.org>; Tue, 08 Jan 2019 16:21:22 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025;
 h=mime-version:references:in-reply-to:from:date:message-id:subject:to;
 bh=hPKnBztstyAL426C2WIwSz5LV+xsm3dsuY3t6JHnAso=;
 b=NL//hpDbAMiwhkko4+/sp7eVvq+ZuLD1HS3eVVjUQk4mXi+r9VBcpiACXOiE1vtWuR
 +kiHfV4hbR9oezSucw0xAIFtPNHG5Fhay+htKSCe534wJop6Ix1fUcrRkvYP5eQX3/me
 njAww2Nej9vjwmJdfVU1ct7q0vMUHdOgZKubnCu05MwuJYB+PXtKWzV2ZIM7G5b8p3Xn
 nQV8wNX/5+hh1u7aRTNNdIuJV0RMohpCJKArQdQNcHjUs7wqUA2pRFHB9Bh8bPMiEN0B
 noS/wjmAo3HgOvSxAJ4Lvpw0XnW/fVBJSTORX50y5xO76VI+wRQmifzyUF2KxVKETsJf
 Dp6g==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20161025;
 h=x-gm-message-state:mime-version:references:in-reply-to:from:date
 :message-id:subject:to;
 bh=hPKnBztstyAL426C2WIwSz5LV+xsm3dsuY3t6JHnAso=;
 b=WuSM/7LfpqbS2/xVH23XBDqdpnSZmnANCDjD7TtPtR3c9iWP2De82trH7P9T8coczd
 wCHpzBrxdEnl9zMJgBoXLNFX7jspZeglUw6N/bB1KUgnacpwXS4Eelprn+se9KpCouih
 hsIwSwrmLmXBhESxn+72gGZ5tdSe8IG//RyyIEyttmAxdV585Dd0Cl805wLxIqN580Tj
 vaNQRXa2HPkHikzymjS1ATQAHmE+WZ9oowylPQcT4W6DGWyzibfukg0exmYomGGurckd
 QivgLSYMU1vkREdfokp2xaeEZnwv6gSwKYveLUllrlyde4yQ1BgUJz4Lt66m0UQjpIuN
 +W2Q==
X-Gm-Message-State: AJcUukfYEzRdp43BotxlwFlXMw1NKeNR3dmPpjNLQYxyAv7fgcNAJsak
 EfXevIEWAh3aOGYu4DMRoq9PdLhl9oOkNFe2p60yCgkX
X-Google-Smtp-Source: ALg8bN7ihvv9V9CukS3mjcnYDlYQNnloZO8y7cVJUx5tVqNpRf2Owzl7Psni3r7GUdNZyUAZJFttf0UVQQ96GsGbqr0=
X-Received: by 2002:a6b:da10:: with SMTP id x16mr2494069iob.101.1546993276398; 
 Tue, 08 Jan 2019 16:21:16 -0800 (PST)
MIME-Version: 1.0
References: <CAGBcF1Z5WmXij2vX+EhxQHvWkmmOkeL-hV+Y-SUSpByH0tZQHw@HIDDEN>
In-Reply-To: <CAGBcF1Z5WmXij2vX+EhxQHvWkmmOkeL-hV+Y-SUSpByH0tZQHw@HIDDEN>
From: =?UTF-8?B?SsOpc3NpY2EgTWlsYXLDqQ==?= <jessymilare@HIDDEN>
Date: Tue, 8 Jan 2019 22:21:04 -0200
Message-ID: <CAGBcF1aZrZhBjEk=tvsJHLJnMDc1ERt-ZaCiwOzqMksnfZsP_Q@HIDDEN>
Subject: Patches
To: 33827 <at> debbugs.gnu.org
Content-Type: multipart/mixed; boundary="000000000000b6a39d057efb700b"
X-Debbugs-Envelope-To: 33827
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>

--000000000000b6a39d057efb700b
Content-Type: multipart/alternative; boundary="000000000000b6a39a057efb7009"

--000000000000b6a39a057efb7009
Content-Type: text/plain; charset="UTF-8"

Patch 0001 fixes SRFI-69 bugs as specified. Patches 0002 to 0005 implement
the module (ice-9 generic-hash-tables) and then reimplement SRFI-69 and
(rnrs hashtables) and add an implementation of SRFI 126, all of them using
generic-hash-tables (and therefore compatible to each other).

I've called `make check' after each commit and all tests PASS: or XFAIL:,
except the four tests in linker.test, as reported in Bug 33991[1].

[1] https://debbugs.gnu.org/cgi/bugreport.cgi?bug=33991

--000000000000b6a39a057efb7009
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr"><div dir=3D"ltr"><div dir=3D"ltr">Patch 0001 fixes SRFI-69=
 bugs as specified. Patches 0002 to 0005 implement the module (ice-9 generi=
c-hash-tables) and then reimplement SRFI-69 and (rnrs hashtables) and add a=
n implementation of SRFI 126, all of them using generic-hash-tables (and th=
erefore compatible to each other).<div><br></div><div>I&#39;ve called `make=
 check&#39; after each commit and all tests PASS: or XFAIL:, except the fou=
r tests in linker.test, as reported in Bug=C2=A033991[1].</div><div><br></d=
iv><div>[1]=C2=A0<a href=3D"https://debbugs.gnu.org/cgi/bugreport.cgi?bug=
=3D33991">https://debbugs.gnu.org/cgi/bugreport.cgi?bug=3D33991</a></div></=
div></div></div>

--000000000000b6a39a057efb7009--

--000000000000b6a39d057efb700b
Content-Type: text/x-patch; charset="US-ASCII"; 
	name="0003-Reimplemented-SRFI-69-using-GENERIC-HASH-TABLES.patch"
Content-Disposition: attachment; 
	filename="0003-Reimplemented-SRFI-69-using-GENERIC-HASH-TABLES.patch"
Content-Transfer-Encoding: base64
Content-ID: <f_jqofmio12>
X-Attachment-Id: f_jqofmio12

RnJvbSBhODM5NDZmMGNkOGFiYjY0YjliODkwNjY4OTM4Njc1OTU1ODE1OTE4IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiA9P1VURi04P3E/Sj1DMz1BOXNzaWNhPTIwTWlsYXI9QzM9QTk/
PSA8amVzc3ltaWxhcmVAZ21haWwuY29tPgpEYXRlOiBUdWUsIDggSmFuIDIwMTkgMjI6MDI6MjUg
LTAyMDAKU3ViamVjdDogW1BBVENIIDMvNV0gUmVpbXBsZW1lbnRlZCBTUkZJLTY5IHVzaW5nIEdF
TkVSSUMtSEFTSC1UQUJMRVMKCi0tLQogbW9kdWxlL3JucnMvaGFzaHRhYmxlcy5zY20gICAgfCAg
MjkgKystLQogbW9kdWxlL3NyZmkvc3JmaS02OS5zY20gICAgICAgfCAzMTggKysrKysrKystLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogdGVzdC1zdWl0ZS90ZXN0cy9zcmZpLTY5LnRlc3QgfCAg
IDMgKy0KIDMgZmlsZXMgY2hhbmdlZCwgOTMgaW5zZXJ0aW9ucygrKSwgMjU3IGRlbGV0aW9ucygt
KQoKZGlmZiAtLWdpdCBhL21vZHVsZS9ybnJzL2hhc2h0YWJsZXMuc2NtIGIvbW9kdWxlL3JucnMv
aGFzaHRhYmxlcy5zY20KaW5kZXggMjJiYWU3ZjA5Li40ODY0NTJhMmEgMTAwNjQ0Ci0tLSBhL21v
ZHVsZS9ybnJzL2hhc2h0YWJsZXMuc2NtCisrKyBiL21vZHVsZS9ybnJzL2hhc2h0YWJsZXMuc2Nt
CkBAIC02Nyw2ICs2Nyw3IEBACiAJCQkJICAgaGFzaC10YWJsZS1mb2xkKQogCQkgIChoYXNoIGVx
dWFsLWhhc2gpCiAJCSAgKGhhc2gtYnktaWRlbnRpdHkgc3ltYm9sLWhhc2gpKQorICAgICAgICAg
IChvbmx5IChpY2UtOSBnZW5lcmljLWhhc2gtdGFibGVzKSBoYXNoLWJ5LXZhbHVlKQogCSAgKHJu
cnMgYmFzZSAoNikpCiAJICAocm5ycyByZWNvcmRzIHByb2NlZHVyYWwgKDYpKSkKICAgCkBAIC05
MCw5ICs5MSw5IEBACiAKICAgKGRlZmluZSBoYXNodGFibGUtbXV0YWJsZT8gcjZyczpoYXNodGFi
bGUtbXV0YWJsZT8pCiAKLSAgKGRlZmluZSBoYXNoLWJ5LXZhbHVlICgoQEAgKHNyZmkgc3JmaS02
OSkgY2FsbGVyLXdpdGgtZGVmYXVsdC1zaXplKSBoYXNodikpCi0gIChkZWZpbmUgKHdyYXAtaGFz
aC1mdW5jdGlvbiBwcm9jKSAKLSAgICAobGFtYmRhIChrZXkgY2FwYWNpdHkpIChtb2R1bG8gKHBy
b2Mga2V5KSBjYXBhY2l0eSkpKQorICA7OyAoZGVmaW5lIGhhc2gtYnktdmFsdWUgKChAQCAoc3Jm
aSBzcmZpLTY5KSBjYWxsZXItd2l0aC1kZWZhdWx0LXNpemUpIGhhc2h2KSkKKyAgOzsgKGRlZmlu
ZSAod3JhcC1oYXNoLWZ1bmN0aW9uIHByb2MpCisgIDs7ICAgKGxhbWJkYSAoa2V5IGNhcGFjaXR5
KSAobW9kdWxvIChwcm9jIGtleSkgY2FwYWNpdHkpKSkKIAogICAoZGVmaW5lKiAobWFrZS1lcS1o
YXNodGFibGUgIzpvcHRpb25hbCBrKQogICAgIChtYWtlLXI2cnMtaGFzaHRhYmxlIApAQCAtMTA5
LDE0ICsxMTAsMTMgQEAKICAgICAgJ2VxdikpCiAKICAgKGRlZmluZSogKG1ha2UtaGFzaHRhYmxl
IGhhc2gtZnVuY3Rpb24gZXF1aXYgIzpvcHRpb25hbCBrKQotICAgIChsZXQgKCh3cmFwcGVkLWhh
c2gtZnVuY3Rpb24gKHdyYXAtaGFzaC1mdW5jdGlvbiBoYXNoLWZ1bmN0aW9uKSkpCi0gICAgICAo
bWFrZS1yNnJzLWhhc2h0YWJsZQotICAgICAgIChpZiBrIAotCSAgIChtYWtlLWhhc2gtdGFibGUg
ZXF1aXYgd3JhcHBlZC1oYXNoLWZ1bmN0aW9uIGspCi0JICAgKG1ha2UtaGFzaC10YWJsZSBlcXVp
diB3cmFwcGVkLWhhc2gtZnVuY3Rpb24pKQotICAgICAgIGhhc2gtZnVuY3Rpb24KLSAgICAgICAj
dAotICAgICAgICdjdXN0b20pKSkKKyAgICAobWFrZS1yNnJzLWhhc2h0YWJsZQorICAgICAoaWYg
aworICAgICAgICAgKG1ha2UtaGFzaC10YWJsZSBlcXVpdiBoYXNoLWZ1bmN0aW9uIGspCisgICAg
ICAgICAobWFrZS1oYXNoLXRhYmxlIGVxdWl2IGhhc2gtZnVuY3Rpb24pKQorICAgICBoYXNoLWZ1
bmN0aW9uCisgICAgICN0CisgICAgICdjdXN0b20pKQogIAogICAoZGVmaW5lIChoYXNodGFibGUt
c2l6ZSBoYXNodGFibGUpCiAgICAgKGhhc2gtdGFibGUtc2l6ZSAocjZyczpoYXNodGFibGUtd3Jh
cHBlZC10YWJsZSBoYXNodGFibGUpKSkKQEAgLTE1NiwxMyArMTU2LDEyIEBACiAgICAgKGlmIChy
NnJzOmhhc2h0YWJsZS1tdXRhYmxlPyBoYXNodGFibGUpCiAJKGxldCogKChodCAocjZyczpoYXNo
dGFibGUtd3JhcHBlZC10YWJsZSBoYXNodGFibGUpKQogCSAgICAgICAoZXF1aXYgKGhhc2gtdGFi
bGUtZXF1aXZhbGVuY2UtZnVuY3Rpb24gaHQpKQotCSAgICAgICAoaGFzaC1mdW5jdGlvbiAocjZy
czpoYXNodGFibGUtb3JpZy1oYXNoLWZ1bmN0aW9uIGhhc2h0YWJsZSkpCi0JICAgICAgICh3cmFw
cGVkLWhhc2gtZnVuY3Rpb24gKHdyYXAtaGFzaC1mdW5jdGlvbiBoYXNoLWZ1bmN0aW9uKSkpCisJ
ICAgICAgIChoYXNoLWZ1bmN0aW9uIChyNnJzOmhhc2h0YWJsZS1vcmlnLWhhc2gtZnVuY3Rpb24g
aGFzaHRhYmxlKSkpCiAJICAocjZyczpoYXNodGFibGUtc2V0LXdyYXBwZWQtdGFibGUhCiAJICAg
aGFzaHRhYmxlCiAJICAgKGlmIGsgCi0JICAgICAgIChtYWtlLWhhc2gtdGFibGUgZXF1aXYgd3Jh
cHBlZC1oYXNoLWZ1bmN0aW9uIGspCi0JICAgICAgIChtYWtlLWhhc2gtdGFibGUgZXF1aXYgd3Jh
cHBlZC1oYXNoLWZ1bmN0aW9uKSkpKSkKKwkgICAgICAgKG1ha2UtaGFzaC10YWJsZSBlcXVpdiBo
YXNoLWZ1bmN0aW9uIGspCisJICAgICAgIChtYWtlLWhhc2gtdGFibGUgZXF1aXYgaGFzaC1mdW5j
dGlvbikpKSkpCiAgICAgKnVuc3BlY2lmaWVkKikKIAogICAoZGVmaW5lIChoYXNodGFibGUta2V5
cyBoYXNodGFibGUpCmRpZmYgLS1naXQgYS9tb2R1bGUvc3JmaS9zcmZpLTY5LnNjbSBiL21vZHVs
ZS9zcmZpL3NyZmktNjkuc2NtCmluZGV4IDJiN2ZiOWE3Zi4uYWU1YmM3ZjA2IDEwMDY0NAotLS0g
YS9tb2R1bGUvc3JmaS9zcmZpLTY5LnNjbQorKysgYi9tb2R1bGUvc3JmaS9zcmZpLTY5LnNjbQpA
QCAtMTYsNyArMTYsOCBAQAogOzsgTGljZW5zZSBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgaWYg
bm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQogOzsgRm91bmRhdGlvbiwgSW5jLiwgNTEg
RnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwgQm9zdG9uLCBNQSAwMjExMC0xMzAxIFVTQQog
DAotOzs7OyBDb21tZW50YXJ5OgorCis7Ozs7IE9yaWdpbmFsIChzdGFsZSkgU1JGSS02OSBjb21t
ZW50YXJ5OgogCiA7OyBNeSBgaGFzaCcgaXMgY29tcGF0aWJsZSB3aXRoIGNvcmUgYGhhc2gnLCBz
byBJIHJlcGxhY2UgaXQuCiA7OyBIb3dldmVyLCBteSBgaGFzaC10YWJsZT8nIGFuZCBgbWFrZS1o
YXNoLXRhYmxlJyBhcmUgZGlmZmVyZW50LCBzbwpAQCAtNjUsOCArNjYsNyBAQAogCiA7Ozs7IENv
bW1lbnRhcnkgYnkgSmVzc2ljYSBNaWxhcmUgMjAxOAogCi07OyBNYWtlIGJ1ZyBmaXhlcyBmb3Ig
d2VhayBoYXNoLXRhYmxlcywgc2luY2UgaGFuZGxlcyBkb24ndCB3b3JrIGFueW1vcmUsCi07OyBh
bmQgYWxzbyBzb21lIG9wdGltaXphdGlvbnMuCis7OyBOb3cgaW1wbGVtZW50ZWQgdXNpbmcgbW9k
dWxlIChpY2UtOSBnZW5lcmljLWhhc2gtdGFibGVzKQogOzsKIDs7IE15IHBlcnNvbmFsIGNvbW1l
bnRzIGFyZSBtYXJrZWQgYnkgSi5NLgogCkBAIC03NSwzMDAgKzc1LDEzNiBAQAogOzs7OyBNb2R1
bGUgZGVmaW5pdGlvbiAmIGV4cG9ydHMKIAogKGRlZmluZS1tb2R1bGUgKHNyZmkgc3JmaS02OSkK
LSAgIzp1c2UtbW9kdWxlIChzcmZpIHNyZmktMSkJO2FsaXN0LWNvbnMsc2Vjb25kJmMsYXNzb2MK
LSAgIzp1c2UtbW9kdWxlIChzcmZpIHNyZmktOSkKLSAgIzp1c2UtbW9kdWxlIChzcmZpIHNyZmkt
MTMpCTtzdHJpbmctaGFzaCxzdHJpbmctaGFzaC1jaQotICAjOnVzZS1tb2R1bGUgKGljZS05IG9w
dGFyZ3MpCi0gICM6ZXhwb3J0ICg7OyBUeXBlIGNvbnN0cnVjdG9ycyAmIHByZWRpY2F0ZQotCSAg
ICBtYWtlLWhhc2gtdGFibGUgaGFzaC10YWJsZT8gYWxpc3QtPmhhc2gtdGFibGUKKyAgIzp1c2Ut
bW9kdWxlIChzcmZpIHNyZmktMSkKKyAgIzp1c2UtbW9kdWxlICgoaWNlLTkgZ2VuZXJpYy1oYXNo
LXRhYmxlcykgIzpwcmVmaXggZ2VuOikKKyAgIzpyZXBsYWNlIChtYWtlLWhhc2gtdGFibGUgaGFz
aC10YWJsZT8gaGFzaCkKKyAgIzpleHBvcnQgKDs7IFR5cGUgY29uc3RydWN0b3JzCisgICAgICAg
ICAgICBtYWtlLWhhc2gtdGFibGUKKyAgICAgICAgICAgIGhhc2gtdGFibGU/IGFsaXN0LT5oYXNo
LXRhYmxlCiAgICAgICAgICAgICA7OyBSZWZsZWN0aXZlIHF1ZXJpZXMKICAgICAgICAgICAgIGhh
c2gtdGFibGUtZXF1aXZhbGVuY2UtZnVuY3Rpb24gaGFzaC10YWJsZS1oYXNoLWZ1bmN0aW9uCiAg
ICAgICAgICAgICA7OyBEZWFsaW5nIHdpdGggc2luZ2xlIGVsZW1lbnRzCiAgICAgICAgICAgICBo
YXNoLXRhYmxlLXJlZiBoYXNoLXRhYmxlLXJlZi9kZWZhdWx0IGhhc2gtdGFibGUtc2V0IQotICAg
ICAgICAgICAgaGFzaC10YWJsZS1kZWxldGUhIGhhc2gtdGFibGUtZXhpc3RzPyBoYXNoLXRhYmxl
LXVwZGF0ZSEKKyAgICAgICAgICAgIGhhc2gtdGFibGUtZGVsZXRlISBoYXNoLXRhYmxlLXVwZGF0
ZSEKICAgICAgICAgICAgIGhhc2gtdGFibGUtdXBkYXRlIS9kZWZhdWx0CisgICAgICAgICAgICBo
YXNoLXRhYmxlLWV4aXN0cz8KICAgICAgICAgICAgIDs7IERlYWxpbmcgd2l0aCB0aGUgd2hvbGUg
Y29udGVudHMKICAgICAgICAgICAgIGhhc2gtdGFibGUtc2l6ZSBoYXNoLXRhYmxlLWtleXMgaGFz
aC10YWJsZS12YWx1ZXMKLSAgICAgICAgICAgIGhhc2gtdGFibGUtd2FsayBoYXNoLXRhYmxlLWZv
bGQgaGFzaC10YWJsZS0+YWxpc3QKLSAgICAgICAgICAgIGhhc2gtdGFibGUtY29weSBoYXNoLXRh
YmxlLW1lcmdlIQorICAgICAgICAgICAgaGFzaC10YWJsZS0+YWxpc3QgaGFzaC10YWJsZS1mb2xk
CisgICAgICAgICAgICBoYXNoLXRhYmxlLXdhbGsgaGFzaC10YWJsZS1tZXJnZSEKKyAgICAgICAg
ICAgIGhhc2gtdGFibGUtY29weQogICAgICAgICAgICAgOzsgSGFzaGluZwotICAgICAgICAgICAg
c3RyaW5nLWNpLWhhc2ggaGFzaC1ieS1pZGVudGl0eSkKLSAgIzpyZS1leHBvcnQgKHN0cmluZy1o
YXNoKQotICAjOnJlcGxhY2UgKGhhc2ggbWFrZS1oYXNoLXRhYmxlIGhhc2gtdGFibGU/KSkKKyAg
ICAgICAgICAgIHN0cmluZy1jaS1oYXNoIGhhc2gtYnktaWRlbnRpdHkgaGFzaCkKKyAgIzpyZS1l
eHBvcnQgKHN0cmluZy1oYXNoKSkKIAogKGNvbmQtZXhwYW5kLXByb3ZpZGUgKGN1cnJlbnQtbW9k
dWxlKSAnKHNyZmktNjkpKQotDAotOzs7OyBJbnRlcm5hbCBoZWxwZXIgbWFjcm9zCi0KLTs7IERl
ZmluZSB0aGVzZSBmaXJzdCwgc28gdGhlIGNvbXBpbGVyIHdpbGwgcGljayB0aGVtIHVwLgotCi07
OyBJIGFtIGEgbWFjcm8gb25seSBmb3IgZWZmaWNpZW5jeSwgdG8gYXZvaWQgdmFyYXJncy9hcHBs
eS4KLShkZWZpbmUtbWFjcm8gKGhhc2h4LWludm9rZSBoYXNoeC1wcm9jIGh0LXZhciAuIGFyZ3Mp
Ci0gICJJbnZva2UgSEFTSFgtUFJPQywgYSBgaGFzaHgtKicgcHJvY2VkdXJlIHRha2luZyBhIGhh
c2gtZnVuY3Rpb24sCi1hc3NvYy1mdW5jdGlvbiwgYW5kIHRoZSBoYXNoLXRhYmxlIGFzIGZpcnN0
IGFyZ3MuIgotICBgKCxoYXNoeC1wcm9jIChoYXNoLXRhYmxlLWhhc2gtZnVuY3Rpb24gLGh0LXZh
cikKLQkJKGh0LWFzc29jaWF0b3IgLGh0LXZhcikKLQkJKGh0LXJlYWwtdGFibGUgLGh0LXZhcikK
LQkJLiAsYXJncykpCiAKLShkZWZpbmUtbWFjcm8gKHdpdGgtaGFzaHgtdmFsdWVzIGJpbmRpbmdz
IGh0LXZhciAuIGJvZHktZm9ybXMpCi0gICJCaW5kIEJJTkRJTkdTIHRvIHRoZSBoYXNoLWZ1bmN0
aW9uLCBhc3NvY2lhdG9yLCBhbmQgcmVhbC10YWJsZSBvZgotSFQtVkFSLCB3aGlsZSBldmFsdWF0
aW5nIEJPRFktRk9STVMuIgotICBgKGxldCAoKCwoZmlyc3QgYmluZGluZ3MpIChoYXNoLXRhYmxl
LWhhc2gtZnVuY3Rpb24gLGh0LXZhcikpCi0JICgsKHNlY29uZCBiaW5kaW5ncykgKGh0LWFzc29j
aWF0b3IgLGh0LXZhcikpCi0JICgsKHRoaXJkIGJpbmRpbmdzKSAoaHQtcmVhbC10YWJsZSAsaHQt
dmFyKSkpCi0gICAgIC4gLGJvZHktZm9ybXMpKQotCi0MCiA7Ozs7IEhhc2hpbmcKLQotOzs7IFRo
ZSBsYXJnZXN0IGZpeG51bSBpcyBpbiBgbW9zdC1wb3NpdGl2ZS1maXhudW0nIGluIG1vZHVsZSAo
Z3VpbGUpLAotOzs7IHRob3VnaCBub3QgZG9jdW1lbnRlZCBhbnl3aGVyZSBidXQgbGliZ3VpbGUv
bnVtYmVycy5jLgotCi0oZGVmaW5lIChjYWxsZXItd2l0aC1kZWZhdWx0LXNpemUgaGFzaC1mbikK
LSAgIkFuc3dlciBhIGZ1bmN0aW9uIHRoYXQgbWFrZXMgYG1vc3QtcG9zaXRpdmUtZml4bnVtJyB0
aGUgZGVmYXVsdAotc2Vjb25kIGFyZ3VtZW50IHRvIEhBU0gtRk4sIGEgMi1hcmcgcHJvY2VkdXJl
LiIKLSAgKGxhbWJkYSogKG9iaiAjOm9wdGlvbmFsIChzaXplIG1vc3QtcG9zaXRpdmUtZml4bnVt
KSkKLSAgICAoaGFzaC1mbiBvYmogc2l6ZSkpKQotCi0oZGVmaW5lIGhhc2ggKGNhbGxlci13aXRo
LWRlZmF1bHQtc2l6ZSAoQCAoZ3VpbGUpIGhhc2gpKSkKLQogKGRlZmluZSBzdHJpbmctY2ktaGFz
aCBzdHJpbmctaGFzaC1jaSkKKyhkZWZpbmUgaGFzaCBnZW46aGFzaCkKKyhkZWZpbmUgaGFzaC1i
eS1pZGVudGl0eSBnZW46aGFzaC1ieS1pZGVudGl0eSkKIAotKGRlZmluZSBoYXNoLWJ5LWlkZW50
aXR5IChjYWxsZXItd2l0aC1kZWZhdWx0LXNpemUgaGFzaHEpKQogDAogOzs7OyBSZWZsZWN0aXZl
IHF1ZXJpZXMsIGNvbnN0cnVjdGlvbiwgcHJlZGljYXRlCiAKLShkZWZpbmUtcmVjb3JkLXR5cGUg
c3JmaS02OTpoYXNoLXRhYmxlCi0gIChtYWtlLXNyZmktNjktaGFzaC10YWJsZSByZWFsLXRhYmxl
IGFzc29jaWF0b3Igc2l6ZSB3ZWFrbmVzcwotCQkJICAgZXF1aXZhbGVuY2UtZnVuY3Rpb24gaGFz
aC1mdW5jdGlvbikKLSAgaGFzaC10YWJsZT8KLSAgKHJlYWwtdGFibGUgaHQtcmVhbC10YWJsZSkK
LSAgKGFzc29jaWF0b3IgaHQtYXNzb2NpYXRvcikKLSAgOzsgcmVxdWlyZWQgZm9yIE8oMSkgYnkg
U1JGSS02OS4gIEl0IHJlYWxseSBtYWtlcyBhIG1lc3Mgb2YgdGhpbmdzLAotICA7OyBhbmQgSSdk
IGxpa2UgdG8gY29tcHV0ZSBpdCBpbiBPKG4pIGFuZCBtZW1vaXplIGl0IGJlY2F1c2UgaXQKLSAg
OzsgZG9lc24ndCBzZWVtIHRlcnJpYmx5IHVzZWZ1bCwgYnV0IFNSRkktNjkgaXMgZmluYWwuCi0g
IChzaXplIGh0LXNpemUgaHQtc2l6ZSEpCi0gIDs7IHJlcXVpcmVkIGZvciBgaGFzaC10YWJsZS1j
b3B5JwotICAod2Vha25lc3MgaHQtd2Vha25lc3MpCi0gIDs7IHVzZWQgb25seSB0byBpbXBsZW1l
bnQgaGFzaC10YWJsZS1lcXVpdmFsZW5jZS1mdW5jdGlvbjsgSSBkb24ndAotICA7OyB1c2UgaXQg
aW50ZXJuYWxseSBvdGhlciB0aGFuIGZvciBgaHQtYXNzb2NpYXRvcicuCi0gIChlcXVpdmFsZW5j
ZS1mdW5jdGlvbiBoYXNoLXRhYmxlLWVxdWl2YWxlbmNlLWZ1bmN0aW9uKQotICAoaGFzaC1mdW5j
dGlvbiBoYXNoLXRhYmxlLWhhc2gtZnVuY3Rpb24pKQorKGRlZmluZSBoYXNoLXRhYmxlPyBnZW46
aGFzaC10YWJsZT8pCiAKIChkZWZpbmUgKGd1ZXNzLWhhc2gtZnVuY3Rpb24gZXF1YWwtcHJvYykK
ICAgIkd1ZXNzIGEgaGFzaCBmdW5jdGlvbiBmb3IgRVFVQUwtUFJPQywgZmFsbGluZyBiYWNrIG9u
IGBoYXNoJywgYXMKIHNwZWNpZmllZCBpbiBTUkZJLTY5IGZvciBgbWFrZS1oYXNoLXRhYmxlJy4i
Ci0gIChjb25kICgoZXE/IGVxdWFsPyBlcXVhbC1wcm9jKSAoQCAoZ3VpbGUpIGhhc2gpKSA7c2hv
cnRjdXQgbW9zdCBjb21tb24gY2FzZQotCSgoZXE/IGVxPyBlcXVhbC1wcm9jKSBoYXNocSkKLQko
KGVxPyBlcXY/IGVxdWFsLXByb2MpIGhhc2h2KQotCSgoZXE/IHN0cmluZz0/IGVxdWFsLXByb2Mp
IHN0cmluZy1oYXNoKQotCSgoZXE/IHN0cmluZy1jaT0/IGVxdWFsLXByb2MpIHN0cmluZy1jaS1o
YXNoKQotCShlbHNlIChAIChndWlsZSkgaGFzaCkpKSkKLQotKGRlZmluZSAod2l0aG91dC1rZXl3
b3JkLWFyZ3MgcmVzdC1saXN0KQotICAiQW5zd2VyIFJFU1QtTElTVCB3aXRoIGFsbCBrZXl3b3Jk
cyByZW1vdmVkIGFsb25nIHdpdGggaXRlbXMgdGhhdAotZm9sbG93IHRoZW0uIgotICAobGV0IGxw
ICgoYWNjICcoKSkgKHJlc3QtbGlzdCByZXN0LWxpc3QpKQotICAgIChjb25kICgobnVsbD8gcmVz
dC1saXN0KSAocmV2ZXJzZSEgYWNjKSkKLQkgICgoa2V5d29yZD8gKGZpcnN0IHJlc3QtbGlzdCkp
Ci0JICAgKGxwIGFjYyAoY2RkciByZXN0LWxpc3QpKSkKLQkgIChlbHNlIChscCAoY29ucyAoZmly
c3QgcmVzdC1saXN0KSBhY2MpIChjZHIgcmVzdC1saXN0KSkpKSkpCi0KLShkZWZpbmUgKGd1aWxl
LWh0LWN0b3Igd2Vha25lc3MpCi0gICJBbnN3ZXIgdGhlIEd1aWxlIEhUIGNvbnN0cnVjdG9yIGZv
ciB0aGUgZ2l2ZW4gV0VBS05FU1MuIgotICAoY2FzZSB3ZWFrbmVzcwotICAgICgoI2YpIChAIChn
dWlsZSkgbWFrZS1oYXNoLXRhYmxlKSkKLSAgICAoKGtleSkgbWFrZS13ZWFrLWtleS1oYXNoLXRh
YmxlKQotICAgICgodmFsdWUpIG1ha2Utd2Vhay12YWx1ZS1oYXNoLXRhYmxlKQotICAgICgoa2V5
LW9yLXZhbHVlKSBtYWtlLWRvdWJseS13ZWFrLWhhc2gtdGFibGUpCi0gICAgKGVsc2UgKGVycm9y
ICJJbnZhbGlkIHdlYWsgaGFzaCB0YWJsZSB0eXBlIiB3ZWFrbmVzcykpKSkKLQotKGRlZmluZSAo
ZXF1aXZhbGVuY2UtcHJvYy0+YXNzb2NpYXRvciBlcXVhbC1wcm9jKQotICAiQW5zd2VyIGFuIGBh
c3NvYyctbGlrZSBwcm9jZWR1cmUgdGhhdCBjb21wYXJlcyB0aGUgYXJndW1lbnQga2V5IHRvCi1h
bGlzdCBrZXlzIHdpdGggRVFVQUwtUFJPQy4iCi0gIChjb25kICgob3IgKGVxPyBlcXVhbD8gZXF1
YWwtcHJvYykKLQkgICAgIChlcT8gc3RyaW5nPT8gZXF1YWwtcHJvYykpIChAIChndWlsZSkgYXNz
b2MpKQotCSgoZXE/IGVxPyBlcXVhbC1wcm9jKSBhc3NxKQotCSgoZXE/IGVxdj8gZXF1YWwtcHJv
YykgYXNzdikKLQkoZWxzZSAobGFtYmRhIChpdGVtIGFsaXN0KQotCQkoYXNzb2MgaXRlbSBhbGlz
dCBlcXVhbC1wcm9jKSkpKSkKLQotKGRlZmluZSogKG1ha2UtaGFzaC10YWJsZQotCSAgIzpvcHRp
b25hbCAoZXF1YWwtcHJvYyBlcXVhbD8pCi0JICAoaGFzaC1wcm9jIChndWVzcy1oYXNoLWZ1bmN0
aW9uIGVxdWFsLXByb2MpKQotCSAgIzprZXkgKHdlYWsgI2YpICM6cmVzdCBndWlsZS1vcHRzKQor
ICAoY29uZCAoKGVxPyBlcXVhbD8gZXF1YWwtcHJvYykgZ2VuOmhhc2gpIDtzaG9ydGN1dCBtb3N0
IGNvbW1vbiBjYXNlCisJKChlcT8gZXE/IGVxdWFsLXByb2MpIGdlbjpoYXNoLWJ5LWlkZW50aXR5
KQorCSgoZXE/IGVxdj8gZXF1YWwtcHJvYykgZ2VuOmhhc2gtYnktdmFsdWUpCisJKChlcT8gc3Ry
aW5nPT8gZXF1YWwtcHJvYykgZ2VuOnN0cmluZy1oYXNoKQorCSgoZXE/IHN0cmluZy1jaT0/IGVx
dWFsLXByb2MpIGdlbjpzdHJpbmctY2ktaGFzaCkKKwkoZWxzZSBnZW46aGFzaCkpKQorCisoZGVm
aW5lIChub3JtYWxpemUtd2Vha25lc3Mgd2VhaykKKyAgIk5vcm1hbGl6ZXMgU1JGSS02OSBzdGFu
ZGFyZCAjOndlYWsgdG8gU1JGSS0xMjYgd2Vha25lc3MgYXJndW1lbnQuIgorICAoY2FzZSB3ZWFr
CisgICAgKCgjZikgI2YpCisgICAgKChrZXkpICd3ZWFrLWtleSkKKyAgICAoKHZhbHVlKSAnd2Vh
ay12YWx1ZSkKKyAgICAoKGtleS1vci12YWx1ZSkgJ3dlYWsta2V5LWFuZC12YWx1ZSkKKyAgICAo
ZWxzZSAoZXJyb3IgIkludmFsaWQgd2VhayBoYXNoIHRhYmxlIHR5cGUiIHdlYWspKSkpCisKKyhk
ZWZpbmUqIChtYWtlLWhhc2gtdGFibGUgIzpvcHRpb25hbCAoZXF1YWwtcHJvYyBlcXVhbD8pCisg
ICAgICAgICAgICAgICAgICAgICAgICAgIChoYXNoLXByb2MgKGd1ZXNzLWhhc2gtZnVuY3Rpb24g
ZXF1YWwtcHJvYykpCisgICAgICAgICAgICAgICAgICAgICAgICAgICM6a2V5ICh3ZWFrICNmKSAj
OnJlc3QgYXJncykKICAgIkFuc3dlciBhIG5ldyBoYXNoIHRhYmxlIHVzaW5nIEVRVUFMLVBST0Mg
YXMgdGhlIGNvbXBhcmlzb24KIGZ1bmN0aW9uLCBhbmQgSEFTSC1QUk9DIGFzIHRoZSBoYXNoIGZ1
bmN0aW9uLiAgU2VlIHRoZSByZWZlcmVuY2UKIG1hbnVhbCBmb3Igc3BlY2lmaWNzLCBvZiB3aGlj
aCB0aGVyZSBhcmUgbWFueS4iCi0gIChtYWtlLXNyZmktNjktaGFzaC10YWJsZQotICAgKGFwcGx5
IChndWlsZS1odC1jdG9yIHdlYWspICh3aXRob3V0LWtleXdvcmQtYXJncyBndWlsZS1vcHRzKSkK
LSAgIChlcXVpdmFsZW5jZS1wcm9jLT5hc3NvY2lhdG9yIGVxdWFsLXByb2MpCi0gICAwIHdlYWsg
ZXF1YWwtcHJvYyBoYXNoLXByb2MpKQorICAobGV0ICgoY2FwYWNpdHkgKGZpbmQgaW50ZWdlcj8g
YXJncykpKQorICAgIChnZW46bWFrZS1oYXNoLXRhYmxlIGVxdWFsLXByb2MgaGFzaC1wcm9jCisg
ICAgICAgICAgICAgICAgICAgICAgICAgIzp3ZWFrbmVzcyAobm9ybWFsaXplLXdlYWtuZXNzIHdl
YWspCisgICAgICAgICAgICAgICAgICAgICAgICAgIzpjYXBhY2l0eSAob3IgY2FwYWNpdHkgMSkp
KSkKKworKGRlZmluZSBoYXNoLXRhYmxlLWVxdWl2YWxlbmNlLWZ1bmN0aW9uIGdlbjpoYXNoLXRh
YmxlLWVxdWl2YWxlbmNlLWZ1bmN0aW9uKQorKGRlZmluZSBoYXNoLXRhYmxlLWhhc2gtZnVuY3Rp
b24gZ2VuOmhhc2gtdGFibGUtaGFzaC1mdW5jdGlvbikKKyhkZWZpbmUqIChhbGlzdC0+aGFzaC10
YWJsZSBhbGlzdCAjOm9wdGlvbmFsIChlcXVhbC1wcm9jIGVxdWFsPykKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAoaGFzaC1wcm9jIChndWVzcy1oYXNoLWZ1bmN0aW9uIGVxdWFsLXByb2Mp
KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICM6a2V5ICh3ZWFrICNmKSAjOnJlc3QgYXJn
cykKKyAgKGxldCAoKGNhcGFjaXR5IChmaW5kIGludGVnZXI/IGFyZ3MpKSkKKyAgICAoZ2VuOmFs
aXN0LT5oYXNoLXRhYmxlIGFsaXN0IGVxdWFsLXByb2MgaGFzaC1wcm9jCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAjOndlYWtuZXNzIChub3JtYWxpemUtd2Vha25lc3Mgd2VhaykKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICM6Y2FwYWNpdHkgKG9yIGNhcGFjaXR5IDEpKSkpCiAKLShk
ZWZpbmUgKGFsaXN0LT5oYXNoLXRhYmxlIGFsaXN0IC4gbWh0LWFyZ3MpCi0gICJDb252ZXJ0IEFM
SVNUIHRvIGEgaGFzaCB0YWJsZSBjcmVhdGVkIHdpdGggTUhULUFSR1MuIgotICAobGV0KiAoKHJl
c3VsdCAoYXBwbHkgbWFrZS1oYXNoLXRhYmxlIG1odC1hcmdzKSkKLQkgKHNpemUgKGh0LXNpemUg
cmVzdWx0KSkpCi0gICAgKHdpdGgtaGFzaHgtdmFsdWVzIChoYXNoLXByb2MgYXNzb2NpYXRvciBy
ZWFsLXRhYmxlKSByZXN1bHQKLSAgICAgIChmb3ItZWFjaCAobGFtYmRhIChwYWlyKQotICAgICAg
ICAgICAgICAgICAgKGxldCAoKHZhbHVlIChoYXNoeC1yZWYgaGFzaC1wcm9jIGFzc29jaWF0b3IK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlYWwtdGFibGUgKGNh
ciBwYWlyKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaHQtdW5z
cGVjaWZpZWQpKSkKLSAgICAgICAgICAgICAgICAgICAgKGNvbmQgKChlcT8gaHQtdW5zcGVjaWZp
ZWQgdmFsdWUpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAoc2V0ISBzaXplICgxKyBzaXpl
KSkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIChoYXNoeC1zZXQhIGhhc2gtcHJvYyBhc3Nv
Y2lhdG9yIHJlYWwtdGFibGUKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IChjYXIgcGFpcikgKGNkciBwYWlyKSkpKSkpCi0gICAgICAgICAgICAgICAgYWxpc3QpKQotICAg
IChodC1zaXplISByZXN1bHQgc2l6ZSkKLSAgICByZXN1bHQpKQogDAotOzs7OyBBY2Nlc3Npbmcg
dGFibGUgaXRlbXMKLQotOzsgV2UgdXNlIHRoaXMgdG8gZGVub3RlIG1pc3Npbmcgb3IgdW5zcGVj
aWZpZWQgdmFsdWVzIHRvIGF2b2lkCi0KLTs7IHBvc3NpYmxlIGNvbGxpc2lvbiB3aXRoICp1bnNw
ZWNpZmllZCouCi0oZGVmaW5lIGh0LXVuc3BlY2lmaWVkIChjb25zICp1bnNwZWNpZmllZCogImh0
LXZhbHVlIikpCis7OyBEZWFsaW5nIHdpdGggc2luZ2xlIGVsZW1lbnRzCiAKLShkZWZpbmUqICho
YXNoLXRhYmxlLXJlZiBodCBrZXkgICM6b3B0aW9uYWwgKGRlZmF1bHQtdGh1bmsgaHQtdW5zcGVj
aWZpZWQpKQorKGRlZmluZSogKGhhc2gtdGFibGUtcmVmIGh0IGtleSAjOm9wdGlvbmFsIGZhaWx1
cmUpCiAgICJMb29rdXAgS0VZIGluIEhUIGFuZCBhbnN3ZXIgdGhlIHZhbHVlLCBpbnZva2UgREVG
QVVMVC1USFVOSyBpZiBLRVkKIGlzbid0IHByZXNlbnQsIG9yIHNpZ25hbCBhbiBlcnJvciBpZiBE
RUZBVUxULVRIVU5LIGlzbid0IHByb3ZpZGVkLiIKLSAgKGxldCAoKHJlc3VsdCAoaGFzaHgtaW52
b2tlIGhhc2h4LXJlZiBodCBrZXkgaHQtdW5zcGVjaWZpZWQpKSkKLSAgICAoaWYgKGVxPyBodC11
bnNwZWNpZmllZCByZXN1bHQpCi0JKGlmIChlcT8gaHQtdW5zcGVjaWZpZWQgZGVmYXVsdC10aHVu
aykKLQkgICAgKGVycm9yICJLZXkgbm90IGluIHRhYmxlIiBrZXkgaHQpCi0JICAgIChkZWZhdWx0
LXRodW5rKSkKLQlyZXN1bHQpKSkKLQotKGRlZmluZSAoaGFzaC10YWJsZS1yZWYvZGVmYXVsdCBo
dCBrZXkgZGVmYXVsdCkKLSAgIkxvb2t1cCBLRVkgaW4gSFQgYW5kIGFuc3dlciB0aGUgdmFsdWUu
ICBBbnN3ZXIgREVGQVVMVCBpZiBLRVkgaXNuJ3QKLXByZXNlbnQuIgotICAoaGFzaHgtaW52b2tl
IGhhc2h4LXJlZiBodCBrZXkgZGVmYXVsdCkpCi0KLShkZWZpbmUgKGhhc2gtdGFibGUtc2V0ISBo
dCBrZXkgbmV3LXZhbHVlKQotICAiU2V0IEtFWSB0byBORVctVkFMVUUgaW4gSFQuIgotICAoaWYg
KGh0LXdlYWtuZXNzIGh0KQotICAgICAgOzsgSi5NLiBzZXBhcmF0ZSB0aGUgY2FzZSB3aGVyZSBo
dCBpcyB3ZWFrIC0gZG9uJ3QgdXNlIGhhbmRsZQotICAgICAgOzsgSi5NLiBkb24ndCBuZWVkIHRv
IHVwZGF0ZSBzaXplIGZvciB3ZWFrIGhhc2gtdGFibGVzCi0gICAgICAoaGFzaHgtaW52b2tlIGhh
c2h4LXNldCEgaHQga2V5IG5ldy12YWx1ZSkKLSAgICAgIChsZXQgKChoYW5kbGUgKGhhc2h4LWlu
dm9rZSBoYXNoeC1jcmVhdGUtaGFuZGxlISBodCBrZXkKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBodC11bnNwZWNpZmllZCkpKQotICAgICAgICAoaWYgKGVxPyBodC11bnNwZWNp
ZmllZCAoY2RyIGhhbmRsZSkpCi0gICAgICAgICAgICAoaHQtc2l6ZSEgaHQgKDErIChodC1zaXpl
IGh0KSkpKQotICAgICAgICAoc2V0LWNkciEgaGFuZGxlIG5ldy12YWx1ZSkpKQotICAqdW5zcGVj
aWZpZWQqKQorICAoaWYgZmFpbHVyZQorICAgICAgKGdlbjpoYXNoLXRhYmxlLXJlZiBodCBrZXkg
ZmFpbHVyZSkKKyAgICAgIChnZW46aGFzaC10YWJsZS1yZWYgaHQga2V5KSkpCiAKKyhkZWZpbmUg
aGFzaC10YWJsZS1yZWYvZGVmYXVsdCBnZW46aGFzaC10YWJsZS1yZWYvZGVmYXVsdCkKKyhkZWZp
bmUgaGFzaC10YWJsZS1leGlzdHM/IGdlbjpoYXNoLXRhYmxlLWNvbnRhaW5zPykKKyhkZWZpbmUg
aGFzaC10YWJsZS1zZXQhIGdlbjpoYXNoLXRhYmxlLXNldC1zaW5nbGUhKQogKGRlZmluZSAoaGFz
aC10YWJsZS1kZWxldGUhIGh0IGtleSkKLSAgIlJlbW92ZSBLRVkncyBhc3NvY2lhdGlvbiBpbiBI
VC4iCi0gICh3aXRoLWhhc2h4LXZhbHVlcyAoaCBhIHJlYWwtaHQpIGh0Ci0gICAgKGlmIChub3Qg
KGVxPyBodC11bnNwZWNpZmllZCAoaGFzaHgtcmVmIGggYSByZWFsLWh0IGtleSBodC11bnNwZWNp
ZmllZCkpKQotICAgICAgICAoYmVnaW4KLSAgICAgICAgICAoaHQtc2l6ZSEgaHQgKDEtIChodC1z
aXplIGh0KSkpCi0gICAgICAgICAgKGhhc2h4LXJlbW92ZSEgaCBhIHJlYWwtaHQga2V5KSkpKQor
ICAoZ2VuOmhhc2gtdGFibGUtZGVsZXRlLXNpbmdsZSEgaHQga2V5KQogICAqdW5zcGVjaWZpZWQq
KQogCi0oZGVmaW5lIChoYXNoLXRhYmxlLWV4aXN0cz8gaHQga2V5KQotICAiUmV0dXJuIHdoZXRo
ZXIgS0VZIGlzIGEga2V5IGluIEhULiIKLSAgKG5vdCAoZXE/IGh0LXVuc3BlY2lmaWVkIChoYXNo
eC1pbnZva2UgaGFzaHgtcmVmIGh0IGtleSBodC11bnNwZWNpZmllZCkpKSkKLQotOzs7IGBoYXNo
LXRhYmxlLXVwZGF0ZSEnIG5vbi1sb2NhbGx5LgotKGRlZmluZSogKGhhc2gtdGFibGUtdXBkYXRl
ISBodCBrZXkgbW9kaWZpZXIKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIzpvcHRpb25h
bCAoZGVmYXVsdC10aHVuayBodC11bnNwZWNpZmllZCkpCisoZGVmaW5lKiAoaGFzaC10YWJsZS11
cGRhdGUhIGh0IGtleSBtb2RpZmllciAjOm9wdGlvbmFsIGRlZmF1bHQtdGh1bmspCiAgICJNb2Rp
ZnkgSFQncyB2YWx1ZSBhdCBLRVkgYnkgcGFzc2luZyBpdHMgdmFsdWUgdG8gTU9ESUZJRVIgYW5k
CiBzZXR0aW5nIGl0IHRvIHRoZSByZXN1bHQgdGhlcmVvZi4gIEludm9rZSBERUZBVUxULVRIVU5L
IGZvciB0aGUgb2xkCiB2YWx1ZSBpZiBLRVkgaXNuJ3QgaW4gSFQsIG9yIHNpZ25hbCBhbiBlcnJv
ciBpZiBERUZBVUxULVRIVU5LIGlzIG5vdAogcHJvdmlkZWQuIgotICAod2l0aC1oYXNoeC12YWx1
ZXMgKGhhc2gtcHJvYyBhc3NvY2lhdG9yIHJlYWwtdGFibGUpIGh0Ci0gICAgKGlmIChodC13ZWFr
bmVzcyBodCkKLSAgICAgICAgOzsgSi5NLiBzZXBhcmF0ZSB0aGUgY2FzZSB3aGVyZSBodCBpcyB3
ZWFrIC0gZG9uJ3QgdXNlIGhhbmRsZQotICAgICAgICAobGV0KiAoKG9sZCAoaGFzaHgtcmVmIGhh
c2gtcHJvYyBhc3NvY2lhdG9yIHJlYWwtdGFibGUga2V5Ci0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgaHQtdW5zcGVjaWZpZWQpKSkKLSAgICAgICAgICAoY29uZCAoKGVxPyBodC11bnNw
ZWNpZmllZCBvbGQpCi0gICAgICAgICAgICAgICAgIChpZiAoZXE/IGh0LXVuc3BlY2lmaWVkIGRl
ZmF1bHQtdGh1bmspCi0gICAgICAgICAgICAgICAgICAgICAoZXJyb3IgIktleSBub3QgaW4gdGFi
bGUiIGtleSBodCkKLSAgICAgICAgICAgICAgICAgICAgIChoYXNoeC1zZXQhIGhhc2gtcHJvYyBh
c3NvY2lhdG9yIHJlYWwtdGFibGUga2V5Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAobW9kaWZpZXIgKGRlZmF1bHQtdGh1bmspKSkpKQotICAgICAgICAgICAgICAgIChlbHNlCi0g
ICAgICAgICAgICAgICAgIChoYXNoeC1zZXQhIGhhc2gtcHJvYyBhc3NvY2lhdG9yIHJlYWwtdGFi
bGUga2V5Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb2RpZmllciBvbGQpKSkpKQot
ICAgICAgICAobGV0ICgoaGFuZGxlIChoYXNoeC1nZXQtaGFuZGxlIGhhc2gtcHJvYyBhc3NvY2lh
dG9yIHJlYWwtdGFibGUga2V5KSkpCi0gICAgICAgICAgKGNvbmQgKGhhbmRsZSAoaWYgKGVxPyBo
dC11bnNwZWNpZmllZCAoY2RyIGhhbmRsZSkpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
KGJlZ2luIChodC1zaXplISBodCAoMSsgKGh0LXNpemUgaHQpKSkKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgKHNldC1jZHIhIGhhbmRsZSAobW9kaWZpZXIgKGRlZmF1bHQtdGh1
bmspKSkpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgKHNldC1jZHIhIGhhbmRsZSAobW9k
aWZpZXIgKGNkciBoYW5kbGUpKSkpKQotICAgICAgICAgICAgICAgIChlbHNlIChpZiAoZXE/IGh0
LXVuc3BlY2lmaWVkIGRlZmF1bHQtdGh1bmspCi0gICAgICAgICAgICAgICAgICAgICAgICAgIChl
cnJvciAiS2V5IG5vdCBpbiB0YWJsZSIga2V5IGh0KQotICAgICAgICAgICAgICAgICAgICAgICAg
ICAobGV0ICgoZGVmYXVsdCAoZGVmYXVsdC10aHVuaykpKQotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIChodC1zaXplISBodCAoMSsgKGh0LXNpemUgaHQpKSkKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAoaGFzaHgtc2V0ISBoYXNoLXByb2MgYXNzb2NpYXRvciByZWFsLXRhYmxlIGtl
eQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb2RpZmllciBkZWZh
dWx0KSkpKSkpKSkpCi0gICp1bnNwZWNpZmllZCopCisgIChpZiBkZWZhdWx0LXRodW5rCisgICAg
ICAoZ2VuOmhhc2gtdGFibGUtdXBkYXRlISBodCBrZXkgbW9kaWZpZXIgZGVmYXVsdC10aHVuaykK
KyAgICAgIChnZW46aGFzaC10YWJsZS11cGRhdGUhIGh0IGtleSBtb2RpZmllcikpKQorCisoZGVm
aW5lIGhhc2gtdGFibGUtdXBkYXRlIS9kZWZhdWx0IGdlbjpoYXNoLXRhYmxlLXVwZGF0ZSEvZGVm
YXVsdCkKIAotOzs7IEouTS4gQ3VzdG9tIGltcGxlbWVudGF0aW9uIGluc3RlYWQgb2YgdXNpbmcg
aGFzaC10YWJsZS11cGRhdGUhCi0oZGVmaW5lIChoYXNoLXRhYmxlLXVwZGF0ZSEvZGVmYXVsdCBo
dCBrZXkgbW9kaWZpZXIgZGVmYXVsdCkKLSAgIk1vZGlmeSBIVCdzIHZhbHVlIGF0IEtFWSBieSBw
YXNzaW5nIGl0cyBvbGQgdmFsdWUsIG9yIERFRkFVTFQgaWYgaXQKLWRvZXNuJ3QgaGF2ZSBvbmUs
IHRvIE1PRElGSUVSLCBhbmQgc2V0dGluZyBpdCB0byB0aGUgcmVzdWx0IHRoZXJlb2YuIgotICAo
d2l0aC1oYXNoeC12YWx1ZXMgKGhhc2gtcHJvYyBhc3NvY2lhdG9yIHJlYWwtdGFibGUpIGh0Ci0g
ICAgKGlmIChodC13ZWFrbmVzcyBodCkKLSAgICAgICAgOzsgSi5NLiBzZXBhcmF0ZSB0aGUgY2Fz
ZSB3aGVyZSBodCBpcyB3ZWFrIC0gZG9uJ3QgdXNlIGhhbmRsZQotICAgICAgICAobGV0KiAoKG9s
ZCAoaGFzaHgtcmVmIGhhc2gtcHJvYyBhc3NvY2lhdG9yIHJlYWwtdGFibGUga2V5IGRlZmF1bHQp
KSkKLSAgICAgICAgICAoaGFzaHgtc2V0ISBoYXNoLXByb2MgYXNzb2NpYXRvciByZWFsLXRhYmxl
IGtleSAobW9kaWZpZXIgb2xkKSkpCi0gICAgICAgIChsZXQgKChoYW5kbGUgKGhhc2h4LWNyZWF0
ZS1oYW5kbGUhIGhhc2gtcHJvYyBhc3NvY2lhdG9yIHJlYWwtdGFibGUga2V5Ci0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGh0LXVuc3BlY2lmaWVkKSkpCi0gICAg
ICAgICAgKGlmIChlcT8gaHQtdW5zcGVjaWZpZWQgKGNkciBoYW5kbGUpKQotICAgICAgICAgICAg
ICAoYmVnaW4gKGh0LXNpemUhIGh0ICgxKyAoaHQtc2l6ZSBodCkpKQotICAgICAgICAgICAgICAg
ICAgICAgKHNldC1jZHIhIGhhbmRsZSAobW9kaWZpZXIgZGVmYXVsdCkpKQotICAgICAgICAgICAg
ICAoc2V0LWNkciEgaGFuZGxlIChtb2RpZmllciAoY2RyIGhhbmRsZSkpKSkpKSkpCiAMCiA7Ozs7
IEFjY2Vzc2luZyB3aG9sZSB0YWJsZXMKIAotKGRlZmluZSAoaGFzaC10YWJsZS1zaXplIGh0KQot
ICAiUmV0dXJuIHRoZSBudW1iZXIgb2YgYXNzb2NpYXRpb25zIGluIEhULiAgVGhpcyBpcyBndWFy
YW50ZWVkIE8oMSkKLWZvciB0YWJsZXMgd2hlcmUgIzp3ZWFrIHdhcyAjZiBvciBub3Qgc3BlY2lm
aWVkIGF0IGNyZWF0aW9uIHRpbWUuIgotICAoaWYgKGh0LXdlYWtuZXNzIGh0KQotICAgICAgKGxl
dCAoKHNpemUgKGhhc2gtdGFibGUtZm9sZCBodCAobGFtYmRhIChrIHYgYW5zKSAoMSsgYW5zKSkg
MCkpKQotICAgICAgICAoaHQtc2l6ZSEgaHQgc2l6ZSkKLSAgICAgICAgc2l6ZSkKLSAgICAgICho
dC1zaXplIGh0KSkpCi0KLShkZWZpbmUgKGhhc2gtdGFibGUta2V5cyBodCkKLSAgIlJldHVybiBh
IGxpc3Qgb2YgdGhlIGtleXMgaW4gSFQuIgotICAoaGFzaC10YWJsZS1mb2xkIGh0IChsYW1iZGEg
KGsgdiBsc3QpIChjb25zIGsgbHN0KSkgJygpKSkKLQotKGRlZmluZSAoaGFzaC10YWJsZS12YWx1
ZXMgaHQpCi0gICJSZXR1cm4gYSBsaXN0IG9mIHRoZSB2YWx1ZXMgaW4gSFQuIgotICAoaGFzaC10
YWJsZS1mb2xkIGh0IChsYW1iZGEgKGsgdiBsc3QpIChjb25zIHYgbHN0KSkgJygpKSkKKyhkZWZp
bmUgaGFzaC10YWJsZS1zaXplIGdlbjpoYXNoLXRhYmxlLXNpemUpCisoZGVmaW5lIGhhc2gtdGFi
bGUta2V5cyBnZW46aGFzaC10YWJsZS1rZXlzKQorKGRlZmluZSBoYXNoLXRhYmxlLXZhbHVlcyBn
ZW46aGFzaC10YWJsZS12YWx1ZXMpCisoZGVmaW5lIGhhc2gtdGFibGUtPmFsaXN0IGdlbjpoYXNo
LXRhYmxlLT5hbGlzdCkKIAogKGRlZmluZSAoaGFzaC10YWJsZS13YWxrIGh0IHByb2MpCiAgICJD
YWxsIFBST0Mgd2l0aCBlYWNoIGtleSBhbmQgdmFsdWUgYXMgdHdvIGFyZ3VtZW50cy4iCi0gICho
YXNoLWZvci1lYWNoIHByb2MgKGh0LXJlYWwtdGFibGUgaHQpKSkKKyAgKGdlbjpoYXNoLXRhYmxl
LWZvci1lYWNoIHByb2MgaHQpKQogCiAoZGVmaW5lIChoYXNoLXRhYmxlLWZvbGQgaHQgZiBrbmls
KQogICAiSW52b2tlIChGIEtFWSBWQUwgUFJFVikgZm9yIGVhY2ggS0VZIGFuZCBWQUwgaW4gSFQs
IHdoZXJlIFBSRVYgaXMKIHRoZSByZXN1bHQgb2YgdGhlIHByZXZpb3VzIGludm9jYXRpb24sIHVz
aW5nIEtOSUwgYXMgdGhlIGZpcnN0IFBSRVYuCiBBbnN3ZXIgdGhlIGZpbmFsIEYgcmVzdWx0LiIK
LSAgKGhhc2gtZm9sZCBmIGtuaWwgKGh0LXJlYWwtdGFibGUgaHQpKSkKLQotKGRlZmluZSAoaGFz
aC10YWJsZS0+YWxpc3QgaHQpCi0gICJSZXR1cm4gYW4gYWxpc3QgZm9yIEhULiIKLSAgKGhhc2gt
bWFwLT5saXN0IGNvbnMgKGh0LXJlYWwtdGFibGUgaHQpKSkKKyAgKGdlbjpoYXNoLXRhYmxlLWZv
bGQgZiBrbmlsIGh0KSkKIAogKGRlZmluZSAoaGFzaC10YWJsZS1jb3B5IGh0KQogICAiQW5zd2Vy
IGEgY29weSBvZiBIVC4iCi0gICh3aXRoLWhhc2h4LXZhbHVlcyAoaCBhIHJlYWwtaHQpIGh0Ci0g
ICAgKGxldCogKChzaXplIChoYXNoLXRhYmxlLXNpemUgaHQpKSAod2VhayAoaHQtd2Vha25lc3Mg
aHQpKQotCSAgIChuZXctcmVhbC1odCAoKGd1aWxlLWh0LWN0b3Igd2Vhaykgc2l6ZSkpKQotICAg
ICAgKGhhc2gtZm9yLWVhY2ggKGxhbWJkYSAoayB2KSAoaGFzaHgtc2V0ISBoIGEgbmV3LXJlYWwt
aHQgayB2KSkKLSAgICAgICAgICAgICAgICAgICAgIHJlYWwtaHQpCi0gICAgICAobWFrZS1zcmZp
LTY5LWhhc2gtdGFibGUJCTtyZWFsLGFzc29jLHNpemUsd2VhayxlcXVpdixoCi0gICAgICAgbmV3
LXJlYWwtaHQgYSBzaXplIHdlYWsKLSAgICAgICAoaGFzaC10YWJsZS1lcXVpdmFsZW5jZS1mdW5j
dGlvbiBodCkgaCkpKSkKKyAgKGdlbjpoYXNoLXRhYmxlLWNvcHkgaHQpKQogCiAoZGVmaW5lICho
YXNoLXRhYmxlLW1lcmdlISBodCBvdGhlci1odCkKICAgIkFkZCBhbGwga2V5L3ZhbHVlIHBhaXJz
IGZyb20gT1RIRVItSFQgdG8gSFQsIG92ZXJyaWRpbmcgSFQncwogbWFwcGluZ3Mgd2hlcmUgcHJl
c2VudC4gIFJldHVybiBIVC4iCi0gIChoYXNoLWZvci1lYWNoIChsYW1iZGEgKGsgdikgKGhhc2gt
dGFibGUtc2V0ISBodCBrIHYpKQotICAgICAgICAgICAgICAgICAoaHQtcmVhbC10YWJsZSBvdGhl
ci1odCkpCisgIDs7IEhBU0gtVEFCTEUtU0VUISB0ZXN0cyBpZiBIVCBpcyBtdXRhYmxlLgorICAo
Z2VuOmhhc2gtdGFibGUtZm9yLWVhY2ggKGxhbWJkYSAoayB2KSAoaGFzaC10YWJsZS1zZXQhIGh0
IGsgdikpCisgICAgICAgICAgICAgICAgICAgICAgICAgICBvdGhlci1odCkKICAgaHQpCiAKIDs7
OyBzcmZpLTY5LnNjbSBlbmRzIGhlcmUKZGlmZiAtLWdpdCBhL3Rlc3Qtc3VpdGUvdGVzdHMvc3Jm
aS02OS50ZXN0IGIvdGVzdC1zdWl0ZS90ZXN0cy9zcmZpLTY5LnRlc3QKaW5kZXggYzJhNTU0ZGIz
Li5lMTU3OWY3M2EgMTAwNjQ0Ci0tLSBhL3Rlc3Qtc3VpdGUvdGVzdHMvc3JmaS02OS50ZXN0Cisr
KyBiL3Rlc3Qtc3VpdGUvdGVzdHMvc3JmaS02OS50ZXN0CkBAIC0xNDEsNiArMTQxLDcgQEAgY2Fz
ZS1pbnNlbnNpdGl2ZSBzdHJpbmdzIHRvIGBlcXVhbD8nLXRlc3RlZCB2YWx1ZXMuIgogICAgICAg
ICAgICAgIChsc2V0PSBlcXVhbD8gJygoYiAuIDMpIChjIC4gNCkpIChoYXNoLXRhYmxlLT5hbGlz
dCBodDIpKSkpKSkKIAogICAocGFzcy1pZiAiY2FuIHVzZSBhbGwgYXJndW1lbnRzLCBpbmNsdWRp
bmcgc2l6ZSIKLSAgICAoaGFzaC10YWJsZT8gKG1ha2UtaGFzaC10YWJsZSBlcXVhbD8gaGFzaCAj
OndlYWsgJ2tleSAzMSkpKQorICAgIChsZXQgKChodCAobWFrZS1oYXNoLXRhYmxlIGVxdWFsPyBo
YXNoICM6d2VhayAna2V5IDMxKSkpCisgICAgICAoaGFzaC10YWJsZT8gaHQpKSkKIAogICApCi0t
IAoyLjE5LjEKCg==
--000000000000b6a39d057efb700b
Content-Type: text/x-patch; charset="UTF-8"; 
	name="0001-Fix-SRFI-69-don-t-use-handles-with-weak-tables.patch"
Content-Disposition: attachment; 
	filename="0001-Fix-SRFI-69-don-t-use-handles-with-weak-tables.patch"
Content-Transfer-Encoding: base64
Content-ID: <f_jqofminb0>
X-Attachment-Id: f_jqofminb0

RnJvbSBjZTEwOTk0ZmQ3Y2Q3NTQ2Yjc3MDdhNDA3MTJlYzk2MDNlNzQwMTA3IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiA9P1VURi04P3E/Sj1DMz1BOXNzaWNhPTIwTWlsYXI9QzM9QTk/
PSA8amVzc3ltaWxhcmVAZ21haWwuY29tPgpEYXRlOiBUdWUsIDggSmFuIDIwMTkgMjE6NTU6NDAg
LTAyMDAKU3ViamVjdDogW1BBVENIIDEvNV0gRml4OiBTUkZJLTY5IGRvbid0IHVzZSBoYW5kbGVz
IHdpdGggd2VhayB0YWJsZXMgIGFueW1vcmUuCgpNYW55IHByb2NlZHVyZXMgdXNlZCBoYXNoeC1n
ZXQtaGFuZGxlIGFuZCBoYXNoeC1jcmVhdGUtaGFuZGxlISB3aXRob3V0CmNoZWNraW5nIHdoZXRo
ZXIgcmVhbC1oYXNoLXRhYmxlIHdhcyB3ZWFrLiBOb3cgdGhhdCBpc24ndCB0aGUgY2FzZQphbnlt
b3JlIChCdWcgMzM4MjcpLiBBIGJ1ZyB3YXMgZml4ZWQgaW4gaGFzaC10YWJsZS1tZXJnZSEgYW5k
IGEgdGVzdCBjYXNlCndhcyBhZGRlZC4gQSBmZXcgb3RoZXIgb3B0aW1pemF0aW9ucyB3ZXJlIG1h
ZGUuCgoqIG1vZHVsZS9zcmZpL3NyZmktNjkuc2NtIChhbGlzdC0+aGFzaC10YWJsZSk6CihoYXNo
LXRhYmxlLWRlbGV0ZSEpOgooaGFzaC10YWJsZS1leGlzdHM/KToKKGhhc2gtdGFibGUtcmVmKTog
RG9uJ3QgdXNlIGhhc2h4LWdldC1oYW5kbGUuCihoYXNoLXRhYmxlLXNldCEpOiBJZiB3ZWFrbmVz
cyBpcyBzZXQsIGRvbid0IHVzZSBoYXNoeC1jcmVhdGUtaGFuZGxlIQphbmQgZG9uJ3QgdXBkYXRl
IHNpemUuCihoYXNoLXRhYmxlLXVwZGF0ZSEpOiBJZiB3ZWFrbmVzcyBpcyBzZXQsIGRvbid0IHVz
ZSBoYXNoeC1nZXQtaGFuZGxlCmFuZCBkb24ndCB1cGRhdGUgc2l6ZS4KKGhhc2gtdGFibGUtdXBk
YXRlIS9kZWZhdWx0KTogQWRkZWQgYW4gaW1wbGVtZW50YXRpb24gdGhhdCBkb2Vzbid0IGNhbGwK
aGFzaC10YWJsZS11cGRhdGUhLCBhdm9pZGluZyBhbGxvY2F0aW5nIGEgcHJvY2VkdXJlLgooaGFz
aC10YWJsZS1zaXplKTogU2V0IGh0LXNpemUgZm9yIHdlYWsgaGFzaC10YWJsZXMuCihoYXNoLXRh
YmxlLXdhbGspOgooaGFzaC10YWJsZS1jb3B5KTogVXNlIG5hdGl2ZSBoYXNoLWZvci1lYWNoIGlu
c3RlYWQgb2YgaGFzaC10YWJsZS1mb2xkLgooaGFzaC10YWJsZS0+YWxpc3QpOiBVc2UgbmF0aXZl
IGhhc2gtbWFwLT5saXN0IGluc3RlYWQgb2YgaGFzaC10YWJsZS1mb2xkLgooaGFzaC10YWJsZS1t
ZXJnZSEpOiBVc2UgbmF0aXZlIGhhc2gtZm9yLWVhY2ggaW5zdGVhZCBvZiBoYXNoLXRhYmxlLWZv
bGQuCldhbGtzIG92ZXIgb3RoZXItaHQgcmF0aGVyIHRoYW4gd2Fsa2luZyBodCAoYW5kIGRvaW5n
IG5vdGhpbmcpLgoqIHRlc3Qtc3VpdGUvdGVzdHMvc3JmaS02OS50ZXN0OiBhbGwgYXBwcm9wcmlh
dGUgdGVzdCBhcmUgcmVwbGljYXRlZCBmb3IKYWxsIHBvc3NpYmxlICM6d2VhayBhcmd1bWVudHMu
IEFkZGVkIGEgdGVzdCBmb3IgaGFzaC10YWJsZS1tZXJnZSEuCi0tLQogVEhBTktTICAgICAgICAg
ICAgICAgICAgICAgICAgfCAgIDEgKwogbW9kdWxlL3NyZmkvc3JmaS02OS5zY20gICAgICAgfCAx
NDggKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0KIHRlc3Qtc3VpdGUvdGVzdHMvc3JmaS02
OS50ZXN0IHwgMTczICsrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0KIDMgZmlsZXMg
Y2hhbmdlZCwgMjAwIGluc2VydGlvbnMoKyksIDEyMiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQg
YS9USEFOS1MgYi9USEFOS1MKaW5kZXggNjE2ZDNiMDRiLi45MDU2YTc5NWMgMTAwNjQ0Ci0tLSBh
L1RIQU5LUworKysgYi9USEFOS1MKQEAgLTIwLDYgKzIwLDcgQEAgQ29udHJpYnV0b3JzIHNpbmNl
IHRoZSBsYXN0IHJlbGVhc2U6CiAgICAgICAgICAgIE5vYWggTGF2aW5lCiAgICAgICAgICBEYW5p
ZWwgTGxvcmVucwogICAgICAgICBHcmVnb3J5IE1hcnRvbgorICAgICAgICBKw6lzc2ljYSBNaWxh
csOpCiAgICAgICBUaGllbi1UaGkgTmd1eWVuCiAgICAgICAgIEhhbi1XZW4gTmllbmh1eXMKICAg
ICAgICAgICAgIEphbiBOaWV1d2VuaHVpemVuCmRpZmYgLS1naXQgYS9tb2R1bGUvc3JmaS9zcmZp
LTY5LnNjbSBiL21vZHVsZS9zcmZpL3NyZmktNjkuc2NtCmluZGV4IGI5NDg2YzQ2NS4uMmI3ZmI5
YTdmIDEwMDY0NAotLS0gYS9tb2R1bGUvc3JmaS9zcmZpLTY5LnNjbQorKysgYi9tb2R1bGUvc3Jm
aS9zcmZpLTY5LnNjbQpAQCAtNjIsNiArNjIsMTQgQEAKIDs7IGltcGxlbWVudGF0aW9uLCBib3Ro
IGFuc3dlciAoInhZIikuICBIb3dldmVyLCBJIGRvbid0IGd1YXJhbnRlZSB0aGF0CiA7OyB0aGlz
IHdvbid0IGNoYW5nZSBpbiB0aGUgZnV0dXJlLgogCisKKzs7OzsgQ29tbWVudGFyeSBieSBKZXNz
aWNhIE1pbGFyZSAyMDE4CisKKzs7IE1ha2UgYnVnIGZpeGVzIGZvciB3ZWFrIGhhc2gtdGFibGVz
LCBzaW5jZSBoYW5kbGVzIGRvbid0IHdvcmsgYW55bW9yZSwKKzs7IGFuZCBhbHNvIHNvbWUgb3B0
aW1pemF0aW9ucy4KKzs7Cis7OyBNeSBwZXJzb25hbCBjb21tZW50cyBhcmUgbWFya2VkIGJ5IEou
TS4KKwogOzs7IENvZGU6CiAMCiA7Ozs7IE1vZHVsZSBkZWZpbml0aW9uICYgZXhwb3J0cwpAQCAt
NzMsMTggKzgxLDE4IEBACiAgICM6dXNlLW1vZHVsZSAoaWNlLTkgb3B0YXJncykKICAgIzpleHBv
cnQgKDs7IFR5cGUgY29uc3RydWN0b3JzICYgcHJlZGljYXRlCiAJICAgIG1ha2UtaGFzaC10YWJs
ZSBoYXNoLXRhYmxlPyBhbGlzdC0+aGFzaC10YWJsZQotCSAgICA7OyBSZWZsZWN0aXZlIHF1ZXJp
ZXMKLQkgICAgaGFzaC10YWJsZS1lcXVpdmFsZW5jZS1mdW5jdGlvbiBoYXNoLXRhYmxlLWhhc2gt
ZnVuY3Rpb24KLQkgICAgOzsgRGVhbGluZyB3aXRoIHNpbmdsZSBlbGVtZW50cwotCSAgICBoYXNo
LXRhYmxlLXJlZiBoYXNoLXRhYmxlLXJlZi9kZWZhdWx0IGhhc2gtdGFibGUtc2V0IQotCSAgICBo
YXNoLXRhYmxlLWRlbGV0ZSEgaGFzaC10YWJsZS1leGlzdHM/IGhhc2gtdGFibGUtdXBkYXRlIQot
CSAgICBoYXNoLXRhYmxlLXVwZGF0ZSEvZGVmYXVsdAotCSAgICA7OyBEZWFsaW5nIHdpdGggdGhl
IHdob2xlIGNvbnRlbnRzCi0JICAgIGhhc2gtdGFibGUtc2l6ZSBoYXNoLXRhYmxlLWtleXMgaGFz
aC10YWJsZS12YWx1ZXMKLQkgICAgaGFzaC10YWJsZS13YWxrIGhhc2gtdGFibGUtZm9sZCBoYXNo
LXRhYmxlLT5hbGlzdAotCSAgICBoYXNoLXRhYmxlLWNvcHkgaGFzaC10YWJsZS1tZXJnZSEKLQkg
ICAgOzsgSGFzaGluZwotCSAgICBzdHJpbmctY2ktaGFzaCBoYXNoLWJ5LWlkZW50aXR5KQorICAg
ICAgICAgICAgOzsgUmVmbGVjdGl2ZSBxdWVyaWVzCisgICAgICAgICAgICBoYXNoLXRhYmxlLWVx
dWl2YWxlbmNlLWZ1bmN0aW9uIGhhc2gtdGFibGUtaGFzaC1mdW5jdGlvbgorICAgICAgICAgICAg
OzsgRGVhbGluZyB3aXRoIHNpbmdsZSBlbGVtZW50cworICAgICAgICAgICAgaGFzaC10YWJsZS1y
ZWYgaGFzaC10YWJsZS1yZWYvZGVmYXVsdCBoYXNoLXRhYmxlLXNldCEKKyAgICAgICAgICAgIGhh
c2gtdGFibGUtZGVsZXRlISBoYXNoLXRhYmxlLWV4aXN0cz8gaGFzaC10YWJsZS11cGRhdGUhCisg
ICAgICAgICAgICBoYXNoLXRhYmxlLXVwZGF0ZSEvZGVmYXVsdAorICAgICAgICAgICAgOzsgRGVh
bGluZyB3aXRoIHRoZSB3aG9sZSBjb250ZW50cworICAgICAgICAgICAgaGFzaC10YWJsZS1zaXpl
IGhhc2gtdGFibGUta2V5cyBoYXNoLXRhYmxlLXZhbHVlcworICAgICAgICAgICAgaGFzaC10YWJs
ZS13YWxrIGhhc2gtdGFibGUtZm9sZCBoYXNoLXRhYmxlLT5hbGlzdAorICAgICAgICAgICAgaGFz
aC10YWJsZS1jb3B5IGhhc2gtdGFibGUtbWVyZ2UhCisgICAgICAgICAgICA7OyBIYXNoaW5nCisg
ICAgICAgICAgICBzdHJpbmctY2ktaGFzaCBoYXNoLWJ5LWlkZW50aXR5KQogICAjOnJlLWV4cG9y
dCAoc3RyaW5nLWhhc2gpCiAgICM6cmVwbGFjZSAoaGFzaCBtYWtlLWhhc2gtdGFibGUgaGFzaC10
YWJsZT8pKQogCkBAIC0yMDQsMzAgKzIxMiwzMiBAQCBtYW51YWwgZm9yIHNwZWNpZmljcywgb2Yg
d2hpY2ggdGhlcmUgYXJlIG1hbnkuIgogCSAoc2l6ZSAoaHQtc2l6ZSByZXN1bHQpKSkKICAgICAo
d2l0aC1oYXNoeC12YWx1ZXMgKGhhc2gtcHJvYyBhc3NvY2lhdG9yIHJlYWwtdGFibGUpIHJlc3Vs
dAogICAgICAgKGZvci1lYWNoIChsYW1iZGEgKHBhaXIpCi0JCSAgKGxldCAoKGhhbmRsZSAoaGFz
aHgtZ2V0LWhhbmRsZSBoYXNoLXByb2MgYXNzb2NpYXRvcgotCQkJCQkJICByZWFsLXRhYmxlIChj
YXIgcGFpcikpKSkKLQkJICAgIChjb25kICgobm90IGhhbmRsZSkKLQkJCSAgIChzZXQhIHNpemUg
KDErIHNpemUpKQotCQkJICAgKGhhc2h4LXNldCEgaGFzaC1wcm9jIGFzc29jaWF0b3IgcmVhbC10
YWJsZQotCQkJCSAgICAgICAoY2FyIHBhaXIpIChjZHIgcGFpcikpKSkpKQotCQlhbGlzdCkpCisg
ICAgICAgICAgICAgICAgICAobGV0ICgodmFsdWUgKGhhc2h4LXJlZiBoYXNoLXByb2MgYXNzb2Np
YXRvcgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVhbC10YWJs
ZSAoY2FyIHBhaXIpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBo
dC11bnNwZWNpZmllZCkpKQorICAgICAgICAgICAgICAgICAgICAoY29uZCAoKGVxPyBodC11bnNw
ZWNpZmllZCB2YWx1ZSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIChzZXQhIHNpemUgKDEr
IHNpemUpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgKGhhc2h4LXNldCEgaGFzaC1wcm9j
IGFzc29jaWF0b3IgcmVhbC10YWJsZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgKGNhciBwYWlyKSAoY2RyIHBhaXIpKSkpKSkKKyAgICAgICAgICAgICAgICBhbGlzdCkp
CiAgICAgKGh0LXNpemUhIHJlc3VsdCBzaXplKQogICAgIHJlc3VsdCkpCiAMCiA7Ozs7IEFjY2Vz
c2luZyB0YWJsZSBpdGVtcwogCiA7OyBXZSB1c2UgdGhpcyB0byBkZW5vdGUgbWlzc2luZyBvciB1
bnNwZWNpZmllZCB2YWx1ZXMgdG8gYXZvaWQKKwogOzsgcG9zc2libGUgY29sbGlzaW9uIHdpdGgg
KnVuc3BlY2lmaWVkKi4KIChkZWZpbmUgaHQtdW5zcGVjaWZpZWQgKGNvbnMgKnVuc3BlY2lmaWVk
KiAiaHQtdmFsdWUiKSkKIAotKGRlZmluZSAoaGFzaC10YWJsZS1yZWYgaHQga2V5IC4gZGVmYXVs
dC10aHVuay1sc3QpCisoZGVmaW5lKiAoaGFzaC10YWJsZS1yZWYgaHQga2V5ICAjOm9wdGlvbmFs
IChkZWZhdWx0LXRodW5rIGh0LXVuc3BlY2lmaWVkKSkKICAgIkxvb2t1cCBLRVkgaW4gSFQgYW5k
IGFuc3dlciB0aGUgdmFsdWUsIGludm9rZSBERUZBVUxULVRIVU5LIGlmIEtFWQogaXNuJ3QgcHJl
c2VudCwgb3Igc2lnbmFsIGFuIGVycm9yIGlmIERFRkFVTFQtVEhVTksgaXNuJ3QgcHJvdmlkZWQu
IgogICAobGV0ICgocmVzdWx0IChoYXNoeC1pbnZva2UgaGFzaHgtcmVmIGh0IGtleSBodC11bnNw
ZWNpZmllZCkpKQogICAgIChpZiAoZXE/IGh0LXVuc3BlY2lmaWVkIHJlc3VsdCkKLQkoaWYgKHBh
aXI/IGRlZmF1bHQtdGh1bmstbHN0KQotCSAgICAoKGZpcnN0IGRlZmF1bHQtdGh1bmstbHN0KSkK
LQkgICAgKGVycm9yICJLZXkgbm90IGluIHRhYmxlIiBrZXkgaHQpKQorCShpZiAoZXE/IGh0LXVu
c3BlY2lmaWVkIGRlZmF1bHQtdGh1bmspCisJICAgIChlcnJvciAiS2V5IG5vdCBpbiB0YWJsZSIg
a2V5IGh0KQorCSAgICAoZGVmYXVsdC10aHVuaykpCiAJcmVzdWx0KSkpCiAKIChkZWZpbmUgKGhh
c2gtdGFibGUtcmVmL2RlZmF1bHQgaHQga2V5IGRlZmF1bHQpCkBAIC0yMzcsNDkgKzI0Nyw3OCBA
QCBwcmVzZW50LiIKIAogKGRlZmluZSAoaGFzaC10YWJsZS1zZXQhIGh0IGtleSBuZXctdmFsdWUp
CiAgICJTZXQgS0VZIHRvIE5FVy1WQUxVRSBpbiBIVC4iCi0gIChsZXQgKChoYW5kbGUgKGhhc2h4
LWludm9rZSBoYXNoeC1jcmVhdGUtaGFuZGxlISBodCBrZXkgaHQtdW5zcGVjaWZpZWQpKSkKLSAg
ICAoaWYgKGVxPyBodC11bnNwZWNpZmllZCAoY2RyIGhhbmRsZSkpCi0JKGh0LXNpemUhIGh0ICgx
KyAoaHQtc2l6ZSBodCkpKSkKLSAgICAoc2V0LWNkciEgaGFuZGxlIG5ldy12YWx1ZSkpCisgIChp
ZiAoaHQtd2Vha25lc3MgaHQpCisgICAgICA7OyBKLk0uIHNlcGFyYXRlIHRoZSBjYXNlIHdoZXJl
IGh0IGlzIHdlYWsgLSBkb24ndCB1c2UgaGFuZGxlCisgICAgICA7OyBKLk0uIGRvbid0IG5lZWQg
dG8gdXBkYXRlIHNpemUgZm9yIHdlYWsgaGFzaC10YWJsZXMKKyAgICAgIChoYXNoeC1pbnZva2Ug
aGFzaHgtc2V0ISBodCBrZXkgbmV3LXZhbHVlKQorICAgICAgKGxldCAoKGhhbmRsZSAoaGFzaHgt
aW52b2tlIGhhc2h4LWNyZWF0ZS1oYW5kbGUhIGh0IGtleQorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGh0LXVuc3BlY2lmaWVkKSkpCisgICAgICAgIChpZiAoZXE/IGh0LXVuc3Bl
Y2lmaWVkIChjZHIgaGFuZGxlKSkKKyAgICAgICAgICAgIChodC1zaXplISBodCAoMSsgKGh0LXNp
emUgaHQpKSkpCisgICAgICAgIChzZXQtY2RyISBoYW5kbGUgbmV3LXZhbHVlKSkpCiAgICp1bnNw
ZWNpZmllZCopCiAKIChkZWZpbmUgKGhhc2gtdGFibGUtZGVsZXRlISBodCBrZXkpCiAgICJSZW1v
dmUgS0VZJ3MgYXNzb2NpYXRpb24gaW4gSFQuIgogICAod2l0aC1oYXNoeC12YWx1ZXMgKGggYSBy
ZWFsLWh0KSBodAotICAgIChpZiAoaGFzaHgtZ2V0LWhhbmRsZSBoIGEgcmVhbC1odCBrZXkpCi0J
KGJlZ2luCi0JICAoaHQtc2l6ZSEgaHQgKDEtIChodC1zaXplIGh0KSkpCi0JICAoaGFzaHgtcmVt
b3ZlISBoIGEgcmVhbC1odCBrZXkpKSkpCisgICAgKGlmIChub3QgKGVxPyBodC11bnNwZWNpZmll
ZCAoaGFzaHgtcmVmIGggYSByZWFsLWh0IGtleSBodC11bnNwZWNpZmllZCkpKQorICAgICAgICAo
YmVnaW4KKyAgICAgICAgICAoaHQtc2l6ZSEgaHQgKDEtIChodC1zaXplIGh0KSkpCisgICAgICAg
ICAgKGhhc2h4LXJlbW92ZSEgaCBhIHJlYWwtaHQga2V5KSkpKQogICAqdW5zcGVjaWZpZWQqKQog
CiAoZGVmaW5lIChoYXNoLXRhYmxlLWV4aXN0cz8gaHQga2V5KQogICAiUmV0dXJuIHdoZXRoZXIg
S0VZIGlzIGEga2V5IGluIEhULiIKLSAgKGFuZCAoaGFzaHgtaW52b2tlIGhhc2h4LWdldC1oYW5k
bGUgaHQga2V5KSAjdCkpCisgIChub3QgKGVxPyBodC11bnNwZWNpZmllZCAoaGFzaHgtaW52b2tl
IGhhc2h4LXJlZiBodCBrZXkgaHQtdW5zcGVjaWZpZWQpKSkpCiAKLTs7OyBgaGFzaHgtc2V0IScg
ZHVwbGljYXRlcyB0aGUgaGFzaCBsb29rdXAsIGJ1dCB3ZSB1c2UgaXQgYW55d2F5IHRvCi07Ozsg
YXZvaWQgY3JlYXRpbmcgYSBoYW5kbGUgaW4gY2FzZSBERUZBVUxULVRIVU5LIGV4aXRzCiA7Ozsg
YGhhc2gtdGFibGUtdXBkYXRlIScgbm9uLWxvY2FsbHkuCi0oZGVmaW5lIChoYXNoLXRhYmxlLXVw
ZGF0ZSEgaHQga2V5IG1vZGlmaWVyIC4gZGVmYXVsdC10aHVuay1sc3QpCisoZGVmaW5lKiAoaGFz
aC10YWJsZS11cGRhdGUhIGh0IGtleSBtb2RpZmllcgorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAjOm9wdGlvbmFsIChkZWZhdWx0LXRodW5rIGh0LXVuc3BlY2lmaWVkKSkKICAgIk1vZGlm
eSBIVCdzIHZhbHVlIGF0IEtFWSBieSBwYXNzaW5nIGl0cyB2YWx1ZSB0byBNT0RJRklFUiBhbmQK
IHNldHRpbmcgaXQgdG8gdGhlIHJlc3VsdCB0aGVyZW9mLiAgSW52b2tlIERFRkFVTFQtVEhVTksg
Zm9yIHRoZSBvbGQKIHZhbHVlIGlmIEtFWSBpc24ndCBpbiBIVCwgb3Igc2lnbmFsIGFuIGVycm9y
IGlmIERFRkFVTFQtVEhVTksgaXMgbm90CiBwcm92aWRlZC4iCiAgICh3aXRoLWhhc2h4LXZhbHVl
cyAoaGFzaC1wcm9jIGFzc29jaWF0b3IgcmVhbC10YWJsZSkgaHQKLSAgICAobGV0ICgoaGFuZGxl
IChoYXNoeC1nZXQtaGFuZGxlIGhhc2gtcHJvYyBhc3NvY2lhdG9yIHJlYWwtdGFibGUga2V5KSkp
Ci0gICAgICAoY29uZCAoaGFuZGxlCi0JICAgICAoc2V0LWNkciEgaGFuZGxlIChtb2RpZmllciAo
Y2RyIGhhbmRsZSkpKSkKLQkgICAgKGVsc2UKLQkgICAgIChoYXNoeC1zZXQhIGhhc2gtcHJvYyBh
c3NvY2lhdG9yIHJlYWwtdGFibGUga2V5Ci0JCQkgKGlmIChwYWlyPyBkZWZhdWx0LXRodW5rLWxz
dCkKLQkJCSAgICAgKG1vZGlmaWVyICgoY2FyIGRlZmF1bHQtdGh1bmstbHN0KSkpCi0JCQkgICAg
IChlcnJvciAiS2V5IG5vdCBpbiB0YWJsZSIga2V5IGh0KSkpCi0JICAgICAoaHQtc2l6ZSEgaHQg
KDErIChodC1zaXplIGh0KSkpKSkpKQorICAgIChpZiAoaHQtd2Vha25lc3MgaHQpCisgICAgICAg
IDs7IEouTS4gc2VwYXJhdGUgdGhlIGNhc2Ugd2hlcmUgaHQgaXMgd2VhayAtIGRvbid0IHVzZSBo
YW5kbGUKKyAgICAgICAgKGxldCogKChvbGQgKGhhc2h4LXJlZiBoYXNoLXByb2MgYXNzb2NpYXRv
ciByZWFsLXRhYmxlIGtleQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGh0LXVuc3Bl
Y2lmaWVkKSkpCisgICAgICAgICAgKGNvbmQgKChlcT8gaHQtdW5zcGVjaWZpZWQgb2xkKQorICAg
ICAgICAgICAgICAgICAoaWYgKGVxPyBodC11bnNwZWNpZmllZCBkZWZhdWx0LXRodW5rKQorICAg
ICAgICAgICAgICAgICAgICAgKGVycm9yICJLZXkgbm90IGluIHRhYmxlIiBrZXkgaHQpCisgICAg
ICAgICAgICAgICAgICAgICAoaGFzaHgtc2V0ISBoYXNoLXByb2MgYXNzb2NpYXRvciByZWFsLXRh
YmxlIGtleQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vZGlmaWVyIChkZWZh
dWx0LXRodW5rKSkpKSkKKyAgICAgICAgICAgICAgICAoZWxzZQorICAgICAgICAgICAgICAgICAo
aGFzaHgtc2V0ISBoYXNoLXByb2MgYXNzb2NpYXRvciByZWFsLXRhYmxlIGtleQorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAobW9kaWZpZXIgb2xkKSkpKSkKKyAgICAgICAgKGxldCAoKGhh
bmRsZSAoaGFzaHgtZ2V0LWhhbmRsZSBoYXNoLXByb2MgYXNzb2NpYXRvciByZWFsLXRhYmxlIGtl
eSkpKQorICAgICAgICAgIChjb25kIChoYW5kbGUgKGlmIChlcT8gaHQtdW5zcGVjaWZpZWQgKGNk
ciBoYW5kbGUpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIChiZWdpbiAoaHQtc2l6ZSEg
aHQgKDErIChodC1zaXplIGh0KSkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IChzZXQtY2RyISBoYW5kbGUgKG1vZGlmaWVyIChkZWZhdWx0LXRodW5rKSkpKQorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIChzZXQtY2RyISBoYW5kbGUgKG1vZGlmaWVyIChjZHIgaGFuZGxl
KSkpKSkKKyAgICAgICAgICAgICAgICAoZWxzZSAoaWYgKGVxPyBodC11bnNwZWNpZmllZCBkZWZh
dWx0LXRodW5rKQorICAgICAgICAgICAgICAgICAgICAgICAgICAoZXJyb3IgIktleSBub3QgaW4g
dGFibGUiIGtleSBodCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgKGxldCAoKGRlZmF1bHQg
KGRlZmF1bHQtdGh1bmspKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaHQtc2l6ZSEg
aHQgKDErIChodC1zaXplIGh0KSkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGhhc2h4
LXNldCEgaGFzaC1wcm9jIGFzc29jaWF0b3IgcmVhbC10YWJsZSBrZXkKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAobW9kaWZpZXIgZGVmYXVsdCkpKSkpKSkpKQogICAq
dW5zcGVjaWZpZWQqKQogCis7OzsgSi5NLiBDdXN0b20gaW1wbGVtZW50YXRpb24gaW5zdGVhZCBv
ZiB1c2luZyBoYXNoLXRhYmxlLXVwZGF0ZSEKIChkZWZpbmUgKGhhc2gtdGFibGUtdXBkYXRlIS9k
ZWZhdWx0IGh0IGtleSBtb2RpZmllciBkZWZhdWx0KQogICAiTW9kaWZ5IEhUJ3MgdmFsdWUgYXQg
S0VZIGJ5IHBhc3NpbmcgaXRzIG9sZCB2YWx1ZSwgb3IgREVGQVVMVCBpZiBpdAogZG9lc24ndCBo
YXZlIG9uZSwgdG8gTU9ESUZJRVIsIGFuZCBzZXR0aW5nIGl0IHRvIHRoZSByZXN1bHQgdGhlcmVv
Zi4iCi0gIChoYXNoLXRhYmxlLXVwZGF0ZSEgaHQga2V5IG1vZGlmaWVyIChsYW1iZGEgKCkgZGVm
YXVsdCkpKQorICAod2l0aC1oYXNoeC12YWx1ZXMgKGhhc2gtcHJvYyBhc3NvY2lhdG9yIHJlYWwt
dGFibGUpIGh0CisgICAgKGlmIChodC13ZWFrbmVzcyBodCkKKyAgICAgICAgOzsgSi5NLiBzZXBh
cmF0ZSB0aGUgY2FzZSB3aGVyZSBodCBpcyB3ZWFrIC0gZG9uJ3QgdXNlIGhhbmRsZQorICAgICAg
ICAobGV0KiAoKG9sZCAoaGFzaHgtcmVmIGhhc2gtcHJvYyBhc3NvY2lhdG9yIHJlYWwtdGFibGUg
a2V5IGRlZmF1bHQpKSkKKyAgICAgICAgICAoaGFzaHgtc2V0ISBoYXNoLXByb2MgYXNzb2NpYXRv
ciByZWFsLXRhYmxlIGtleSAobW9kaWZpZXIgb2xkKSkpCisgICAgICAgIChsZXQgKChoYW5kbGUg
KGhhc2h4LWNyZWF0ZS1oYW5kbGUhIGhhc2gtcHJvYyBhc3NvY2lhdG9yIHJlYWwtdGFibGUga2V5
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGh0LXVuc3BlY2lm
aWVkKSkpCisgICAgICAgICAgKGlmIChlcT8gaHQtdW5zcGVjaWZpZWQgKGNkciBoYW5kbGUpKQor
ICAgICAgICAgICAgICAoYmVnaW4gKGh0LXNpemUhIGh0ICgxKyAoaHQtc2l6ZSBodCkpKQorICAg
ICAgICAgICAgICAgICAgICAgKHNldC1jZHIhIGhhbmRsZSAobW9kaWZpZXIgZGVmYXVsdCkpKQor
ICAgICAgICAgICAgICAoc2V0LWNkciEgaGFuZGxlIChtb2RpZmllciAoY2RyIGhhbmRsZSkpKSkp
KSkpCiAMCiA7Ozs7IEFjY2Vzc2luZyB3aG9sZSB0YWJsZXMKIApAQCAtMjg3LDcgKzMyNiw5IEBA
IGRvZXNuJ3QgaGF2ZSBvbmUsIHRvIE1PRElGSUVSLCBhbmQgc2V0dGluZyBpdCB0byB0aGUgcmVz
dWx0IHRoZXJlb2YuIgogICAiUmV0dXJuIHRoZSBudW1iZXIgb2YgYXNzb2NpYXRpb25zIGluIEhU
LiAgVGhpcyBpcyBndWFyYW50ZWVkIE8oMSkKIGZvciB0YWJsZXMgd2hlcmUgIzp3ZWFrIHdhcyAj
ZiBvciBub3Qgc3BlY2lmaWVkIGF0IGNyZWF0aW9uIHRpbWUuIgogICAoaWYgKGh0LXdlYWtuZXNz
IGh0KQotICAgICAgKGhhc2gtdGFibGUtZm9sZCBodCAobGFtYmRhIChrIHYgYW5zKSAoMSsgYW5z
KSkgMCkKKyAgICAgIChsZXQgKChzaXplIChoYXNoLXRhYmxlLWZvbGQgaHQgKGxhbWJkYSAoayB2
IGFucykgKDErIGFucykpIDApKSkKKyAgICAgICAgKGh0LXNpemUhIGh0IHNpemUpCisgICAgICAg
IHNpemUpCiAgICAgICAoaHQtc2l6ZSBodCkpKQogCiAoZGVmaW5lIChoYXNoLXRhYmxlLWtleXMg
aHQpCkBAIC0zMDAsMTAgKzM0MSw3IEBAIGZvciB0YWJsZXMgd2hlcmUgIzp3ZWFrIHdhcyAjZiBv
ciBub3Qgc3BlY2lmaWVkIGF0IGNyZWF0aW9uIHRpbWUuIgogCiAoZGVmaW5lIChoYXNoLXRhYmxl
LXdhbGsgaHQgcHJvYykKICAgIkNhbGwgUFJPQyB3aXRoIGVhY2gga2V5IGFuZCB2YWx1ZSBhcyB0
d28gYXJndW1lbnRzLiIKLSAgKGhhc2gtdGFibGUtZm9sZCBodCAobGFtYmRhIChrIHYgdW5zcGVj
KQotICAgICAgICAgICAgICAgICAgICAgICAgKGNhbGwtd2l0aC12YWx1ZXMgKGxhbWJkYSAoKSAo
cHJvYyBrIHYpKQotICAgICAgICAgICAgICAgICAgICAgICAgICAobGFtYmRhIHZhbHMgdW5zcGVj
KSkpCi0JCSAgICp1bnNwZWNpZmllZCopKQorICAoaGFzaC1mb3ItZWFjaCBwcm9jIChodC1yZWFs
LXRhYmxlIGh0KSkpCiAKIChkZWZpbmUgKGhhc2gtdGFibGUtZm9sZCBodCBmIGtuaWwpCiAgICJJ
bnZva2UgKEYgS0VZIFZBTCBQUkVWKSBmb3IgZWFjaCBLRVkgYW5kIFZBTCBpbiBIVCwgd2hlcmUg
UFJFViBpcwpAQCAtMzEzLDE1ICszNTEsMTUgQEAgQW5zd2VyIHRoZSBmaW5hbCBGIHJlc3VsdC4i
CiAKIChkZWZpbmUgKGhhc2gtdGFibGUtPmFsaXN0IGh0KQogICAiUmV0dXJuIGFuIGFsaXN0IGZv
ciBIVC4iCi0gIChoYXNoLXRhYmxlLWZvbGQgaHQgYWxpc3QtY29ucyAnKCkpKQorICAoaGFzaC1t
YXAtPmxpc3QgY29ucyAoaHQtcmVhbC10YWJsZSBodCkpKQogCiAoZGVmaW5lIChoYXNoLXRhYmxl
LWNvcHkgaHQpCiAgICJBbnN3ZXIgYSBjb3B5IG9mIEhULiIKICAgKHdpdGgtaGFzaHgtdmFsdWVz
IChoIGEgcmVhbC1odCkgaHQKICAgICAobGV0KiAoKHNpemUgKGhhc2gtdGFibGUtc2l6ZSBodCkp
ICh3ZWFrIChodC13ZWFrbmVzcyBodCkpCiAJICAgKG5ldy1yZWFsLWh0ICgoZ3VpbGUtaHQtY3Rv
ciB3ZWFrKSBzaXplKSkpCi0gICAgICAoaGFzaC1mb2xkIChsYW1iZGEgKGsgdiBpZ24pIChoYXNo
eC1zZXQhIGggYSBuZXctcmVhbC1odCBrIHYpKQotCQkgI2YgcmVhbC1odCkKKyAgICAgIChoYXNo
LWZvci1lYWNoIChsYW1iZGEgKGsgdikgKGhhc2h4LXNldCEgaCBhIG5ldy1yZWFsLWh0IGsgdikp
CisgICAgICAgICAgICAgICAgICAgICByZWFsLWh0KQogICAgICAgKG1ha2Utc3JmaS02OS1oYXNo
LXRhYmxlCQk7cmVhbCxhc3NvYyxzaXplLHdlYWssZXF1aXYsaAogICAgICAgIG5ldy1yZWFsLWh0
IGEgc2l6ZSB3ZWFrCiAgICAgICAgKGhhc2gtdGFibGUtZXF1aXZhbGVuY2UtZnVuY3Rpb24gaHQp
IGgpKSkpCkBAIC0zMjksOCArMzY3LDggQEAgQW5zd2VyIHRoZSBmaW5hbCBGIHJlc3VsdC4iCiAo
ZGVmaW5lIChoYXNoLXRhYmxlLW1lcmdlISBodCBvdGhlci1odCkKICAgIkFkZCBhbGwga2V5L3Zh
bHVlIHBhaXJzIGZyb20gT1RIRVItSFQgdG8gSFQsIG92ZXJyaWRpbmcgSFQncwogbWFwcGluZ3Mg
d2hlcmUgcHJlc2VudC4gIFJldHVybiBIVC4iCi0gIChoYXNoLXRhYmxlLWZvbGQKLSAgIGh0IChs
YW1iZGEgKGsgdiBpZ24pIChoYXNoLXRhYmxlLXNldCEgaHQgayB2KSkgI2YpCisgIChoYXNoLWZv
ci1lYWNoIChsYW1iZGEgKGsgdikgKGhhc2gtdGFibGUtc2V0ISBodCBrIHYpKQorICAgICAgICAg
ICAgICAgICAoaHQtcmVhbC10YWJsZSBvdGhlci1odCkpCiAgIGh0KQogCiA7Ozsgc3JmaS02OS5z
Y20gZW5kcyBoZXJlCmRpZmYgLS1naXQgYS90ZXN0LXN1aXRlL3Rlc3RzL3NyZmktNjkudGVzdCBi
L3Rlc3Qtc3VpdGUvdGVzdHMvc3JmaS02OS50ZXN0CmluZGV4IGU5OWI3NmM2ZC4uYzJhNTU0ZGIz
IDEwMDY0NAotLS0gYS90ZXN0LXN1aXRlL3Rlc3RzL3NyZmktNjkudGVzdAorKysgYi90ZXN0LXN1
aXRlL3Rlc3RzL3NyZmktNjkudGVzdApAQCAtMjgsODAgKzI4LDExOSBAQCBjYXNlLWluc2Vuc2l0
aXZlIHN0cmluZ3MgdG8gYGVxdWFsPyctdGVzdGVkIHZhbHVlcy4iCiAgIChhbmQgKHN0cmluZy1j
aT0/IChjYXIgbGVmdCkgKGNhciByaWdodCkpCiAgICAgICAgKGVxdWFsPyAoY2RyIGxlZnQpIChj
ZHIgcmlnaHQpKSkpCiAKKyhkZWZpbmUtc3ludGF4IHdpdGgtd2Vha25lc3MtbGlzdAorICAoc3lu
dGF4LXJ1bGVzICgpCisgICAgKCh3aXRoLXdlYWtuZXNzLWxpc3Qgd2Vha25lc3Mgd2Vha25lc3Mt
bGlzdCBleHByIC4uLikKKyAgICAgKGxldCBsb29wICgod2Vha25lc3MtbGlzdCogd2Vha25lc3Mt
bGlzdCkpCisgICAgICAgKG9yIChudWxsPyB3ZWFrbmVzcy1saXN0KikKKyAgICAgICAgICAgKGFu
ZCAobGV0ICgod2Vha25lc3MgKGNhciB3ZWFrbmVzcy1saXN0KikpKQorICAgICAgICAgICAgICAg
ICAgZXhwciAuLi4pCisgICAgICAgICAgICAgICAgKGxvb3AgKGNkciB3ZWFrbmVzcy1saXN0Kikp
KSkpKSkpCisKKyhkZWZpbmUgKHRlc3Qtc3RyLXdlYWtuZXNzIHN0ciB3ZWFrbmVzcykKKyAgKGlm
IChub3Qgd2Vha25lc3MpIHN0ciAoZm9ybWF0ICNmICJ+YSAod2VhazogfmEpIiBzdHIgd2Vha25l
c3MpKSkKKwogKHdpdGgtdGVzdC1wcmVmaXggIlNSRkktNjkiCiAKLSAgKHBhc3MtaWYgInNtYWxs
IGFsaXN0PC0+aGFzaCB0YWJsZXMgcm91bmQtdHJpcCIKLSAgICAobGV0KiAoKHN0YXJ0LWFsaXN0
ICcoKGEgLiAxKSAoYiAuIDIpIChjIC4gMykgKGEgLiA0MikpKQotCSAgIChodCAoYWxpc3QtPmhh
c2gtdGFibGUgc3RhcnQtYWxpc3QgZXE/KSkKLQkgICAoZW5kLWFsaXN0IChoYXNoLXRhYmxlLT5h
bGlzdCBodCkpKQotICAgICAgKGFuZCAoPSAzIChoYXNoLXRhYmxlLXNpemUgaHQpKQotCSAgIChs
c2V0PSBlcXVhbD8gZW5kLWFsaXN0ICh0YWtlIHN0YXJ0LWFsaXN0IDMpKQotCSAgICg9IDEgKGhh
c2gtdGFibGUtcmVmIGh0ICdhKSkKLQkgICAoPSAyIChoYXNoLXRhYmxlLXJlZiBodCAnYikpCi0J
ICAgKD0gMyAoaGFzaC10YWJsZS1yZWYgaHQgJ2MpKSkpKQotCi0gIChwYXNzLWlmICJzdHJpbmct
Y2k9PyB0YWJsZXMgd29yayBieSBkZWZhdWx0IgotICAgIChsZXQgKChodCAoYWxpc3QtPmhhc2gt
dGFibGUgJygoInhZIiAuIDIpICgiYWJjIiAuIDU0KSkgc3RyaW5nLWNpPT8pKSkKLSAgICAgICho
YXNoLXRhYmxlLXNldCEgaHQgIlhZIiA0MikKLSAgICAgIChoYXNoLXRhYmxlLXNldCEgaHQgInFx
cSIgMTAwKQotICAgICAgKGFuZCAoPSA1NCAoaGFzaC10YWJsZS1yZWYgaHQgIkFCYyIpKQotCSAg
ICg9IDQyIChoYXNoLXRhYmxlLXJlZiBodCAieHkiKSkKLQkgICAoPSAzIChoYXNoLXRhYmxlLXNp
emUgaHQpKQotCSAgIChsc2V0PSBzdHJpbmctY2ktYXNzb2MtZXF1YWw/Ci0JCSAgJygoInh5IiAu
IDQyKSAoImFiYyIgLiA1NCkgKCJxcXEiIC4gMTAwKSkKLQkJICAoaGFzaC10YWJsZS0+YWxpc3Qg
aHQpKSkpKQorICAod2l0aC13ZWFrbmVzcy1saXN0IHdlYWtuZXNzIChsaXN0ICNmICdrZXkgJ3Zh
bHVlICdrZXktb3ItdmFsdWUpCisgICAgKHBhc3MtaWYgKHRlc3Qtc3RyLXdlYWtuZXNzICJzbWFs
bCBhbGlzdDwtPmhhc2ggdGFibGVzIHJvdW5kLXRyaXAiIHdlYWtuZXNzKQorICAgICAgKGxldCog
KChzdGFydC1hbGlzdCAnKChhIC4gMSkgKGIgLiAyKSAoYyAuIDMpIChhIC4gNDIpKSkKKyAgICAg
ICAgICAgICAoaHQgKGFsaXN0LT5oYXNoLXRhYmxlIHN0YXJ0LWFsaXN0IGVxPyAjOndlYWsgd2Vh
a25lc3MpKQorICAgICAgICAgICAgIChlbmQtYWxpc3QgKGhhc2gtdGFibGUtPmFsaXN0IGh0KSkp
CisgICAgICAgIChhbmQgKD0gMyAoaGFzaC10YWJsZS1zaXplIGh0KSkKKyAgICAgICAgICAgICAo
bHNldD0gZXF1YWw/IGVuZC1hbGlzdCAodGFrZSBzdGFydC1hbGlzdCAzKSkKKyAgICAgICAgICAg
ICAoPSAxIChoYXNoLXRhYmxlLXJlZiBodCAnYSkpCisgICAgICAgICAgICAgKD0gMiAoaGFzaC10
YWJsZS1yZWYgaHQgJ2IpKQorICAgICAgICAgICAgICg9IDMgKGhhc2gtdGFibGUtcmVmIGh0ICdj
KSkpKSkpCisKKyAgKHdpdGgtd2Vha25lc3MtbGlzdCB3ZWFrbmVzcyAobGlzdCAjZiAna2V5ICd2
YWx1ZSAna2V5LW9yLXZhbHVlKQorICAgIChwYXNzLWlmICh0ZXN0LXN0ci13ZWFrbmVzcyAic3Ry
aW5nLWNpPT8gdGFibGVzIHdvcmsgYnkgZGVmYXVsdCIgd2Vha25lc3MpCisgICAgICAobGV0ICgo
aHQgKGFsaXN0LT5oYXNoLXRhYmxlICcoKCJ4WSIgLiAyKSAoImFiYyIgLiA1NCkpIHN0cmluZy1j
aT0/CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICM6d2VhayB3ZWFrbmVzcykp
KQorICAgICAgICAoaGFzaC10YWJsZS1zZXQhIGh0ICJYWSIgNDIpCisgICAgICAgIChoYXNoLXRh
YmxlLXNldCEgaHQgInFxcSIgMTAwKQorICAgICAgICAoYW5kICg9IDU0IChoYXNoLXRhYmxlLXJl
ZiBodCAiQUJjIikpCisgICAgICAgICAgICAgKD0gNDIgKGhhc2gtdGFibGUtcmVmIGh0ICJ4eSIp
KQorICAgICAgICAgICAgICg9IDMgKGhhc2gtdGFibGUtc2l6ZSBodCkpCisgICAgICAgICAgICAg
KGxzZXQ9IHN0cmluZy1jaS1hc3NvYy1lcXVhbD8KKyAgICAgICAgICAgICAgICAgICAgJygoInh5
IiAuIDQyKSAoImFiYyIgLiA1NCkgKCJxcXEiIC4gMTAwKSkKKyAgICAgICAgICAgICAgICAgICAg
KGhhc2gtdGFibGUtPmFsaXN0IGh0KSkpKSkpCiAKICAgKHBhc3MtaWYtZXhjZXB0aW9uICJCYWQg
d2Vha25lc3MgYXJnIHRvIG1odCBzaWduYWxzIGFuIGVycm9yIgotCQkgICAgICcobWlzYy1lcnJv
ciAuICJeSW52YWxpZCB3ZWFrIGhhc2ggdGFibGUgdHlwZSIpCisgICAgICAnKG1pc2MtZXJyb3Ig
LiAiXkludmFsaWQgd2VhayBoYXNoIHRhYmxlIHR5cGUiKQogICAgIChtYWtlLWhhc2gtdGFibGUg
ZXF1YWw/IGhhc2ggIzp3ZWFrICdrZXktYW5kLXZhbHVlKSkKIAotICAocGFzcy1pZiAiZW1wdHkg
aGFzaCB0YWJsZXMgYXJlIGVtcHR5IgotICAgIChudWxsPyAoaGFzaC10YWJsZS0+YWxpc3QgKG1h
a2UtaGFzaC10YWJsZSBlcT8pKSkpCi0KLSAgKHBhc3MtaWYgImhhc2gtdGFibGUtcmVmIHVzZXMg
ZGVmYXVsdCIKLSAgICAoZXF1YWw/ICcoNCkKLQkgICAgKGhhc2gtdGFibGUtcmVmIChhbGlzdC0+
aGFzaC10YWJsZSAnKChhIC4gMSkpIGVxPykKLQkJCSAgICAnYiAoY3V0IGxpc3QgKCsgMiAyKSkp
KSkKLQotICAocGFzcy1pZiAiaGFzaC10YWJsZS1kZWxldGUhIGRlbGV0ZXMgcHJlc2VudCBhc3Nv
Y3MsIGlnbm9yZXMgb3RoZXJzIgotICAgIChsZXQgKChodCAoYWxpc3QtPmhhc2gtdGFibGUgJygo
YSAuIDEpIChiIC4gMikpIGVxPykpKQotICAgICAgKGhhc2gtdGFibGUtZGVsZXRlISBodCAnYykK
LSAgICAgIChhbmQgKD0gMiAoaGFzaC10YWJsZS1zaXplIGh0KSkKLQkgICAoYmVnaW4KLQkgICAg
IChoYXNoLXRhYmxlLWRlbGV0ZSEgaHQgJ2EpCi0JICAgICAoPSAxIChoYXNoLXRhYmxlLXNpemUg
aHQpKSkKLQkgICAobHNldD0gZXF1YWw/ICcoKGIgLiAyKSkgKGhhc2gtdGFibGUtPmFsaXN0IGh0
KSkpKSkKLQotICAocGFzcy1pZiAiYWxpc3QtPmhhc2gtdGFibGUgZG9lcyBub3QgcmVxdWlyZSBs
aW5lYXIgc3RhY2sgc3BhY2UiCi0gICAgKGVxdj8gOTk5OTkKLQkgIChoYXNoLXRhYmxlLXJlZiAo
YWxpc3QtPmhhc2gtdGFibGUKLQkJCSAgICh1bmZvbGQtcmlnaHQgKGN1dCA+PSA8PiAxMDAwMDAp
Ci0JCQkJCSAobGFtYmRhIChzKSBgKHggLiAscykpIDErIDApCi0JCQkgICBlcT8pCi0JCQkgICd4
KSkpCi0KLSAgKHBhc3MtaWYgImhhc2gtdGFibGUtd2FsayBpZ25vcmVzIHJldHVybiB2YWx1ZXMi
Ci0gICAgKGxldCAoKGh0IChhbGlzdC0+aGFzaC10YWJsZSAnKChhIC4gMSkgKGIgLiAyKSAoYyAu
IDMpKSBlcT8pKSkKLSAgICAgIChmb3ItZWFjaCAoY3V0IGhhc2gtdGFibGUtd2FsayBodCA8PikK
LQkJKGxpc3QgKGxhbWJkYSAoayB2KSAodmFsdWVzKSkKLQkJICAgICAgKGxhbWJkYSAoayB2KSAo
dmFsdWVzIDEgMiAzKSkpKQotICAgICAgI3QpKQotCi0gIChwYXNzLWlmICJoYXNoLXRhYmxlLXVw
ZGF0ZSEgbW9kaWZpZXMgZXhpc3RpbmcgYmluZGluZyIKLSAgICAobGV0ICgoaHQgKGFsaXN0LT5o
YXNoLXRhYmxlICcoKGEgLiAxKSkgZXE/KSkpCi0gICAgICAoaGFzaC10YWJsZS11cGRhdGUhIGh0
ICdhIDErKQotICAgICAgKGhhc2gtdGFibGUtdXBkYXRlISBodCAnYSAoY3V0ICsgNCA8PikgKGxh
bWJkYSAoKSA0MikpCi0gICAgICAoYW5kICg9IDEgKGhhc2gtdGFibGUtc2l6ZSBodCkpCi0JICAg
KGxzZXQ9IGVxdWFsPyAnKChhIC4gNikpIChoYXNoLXRhYmxlLT5hbGlzdCBodCkpKSkpCi0KLSAg
KHBhc3MtaWYgImhhc2gtdGFibGUtdXBkYXRlISBjcmVhdGVzIG5ldyBiaW5kaW5nIHdoZW4gYXBw
cm9wcmlhdGUiCi0gICAgKGxldCAoKGh0IChtYWtlLWhhc2gtdGFibGUgZXE/KSkpCi0gICAgICAo
aGFzaC10YWJsZS11cGRhdGUhIGh0ICdiIDErIChsYW1iZGEgKCkgNDIpKQotICAgICAgKGhhc2gt
dGFibGUtdXBkYXRlISBodCAnYiAoY3V0ICsgMTAgPD4pKQotICAgICAgKGFuZCAoPSAxIChoYXNo
LXRhYmxlLXNpemUgaHQpKQotCSAgIChsc2V0PSBlcXVhbD8gJygoYiAuIDUzKSkgKGhhc2gtdGFi
bGUtPmFsaXN0IGh0KSkpKSkKKyAgKHdpdGgtd2Vha25lc3MtbGlzdCB3ZWFrbmVzcyAobGlzdCAj
ZiAna2V5ICd2YWx1ZSAna2V5LW9yLXZhbHVlKQorICAgIChwYXNzLWlmICh0ZXN0LXN0ci13ZWFr
bmVzcyAiZW1wdHkgaGFzaCB0YWJsZXMgYXJlIGVtcHR5IiB3ZWFrbmVzcykKKyAgICAgIChudWxs
PyAoaGFzaC10YWJsZS0+YWxpc3QgKG1ha2UtaGFzaC10YWJsZSBlcT8gIzp3ZWFrIHdlYWtuZXNz
KSkpKSkKKworICAod2l0aC13ZWFrbmVzcy1saXN0IHdlYWtuZXNzIChsaXN0ICNmICdrZXkgJ3Zh
bHVlICdrZXktb3ItdmFsdWUpCisgICAgKHBhc3MtaWYgKHRlc3Qtc3RyLXdlYWtuZXNzICJoYXNo
LXRhYmxlLXJlZiB1c2VzIGRlZmF1bHQiIHdlYWtuZXNzKQorICAgICAgKGVxdWFsPyAnKDQpCisg
ICAgICAgICAgICAgIChoYXNoLXRhYmxlLXJlZiAoYWxpc3QtPmhhc2gtdGFibGUgJygoYSAuIDEp
KSBlcT8gIzp3ZWFrIHdlYWtuZXNzKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2Ig
KGN1dCBsaXN0ICgrIDIgMikpKSkpKQorCisgICh3aXRoLXdlYWtuZXNzLWxpc3Qgd2Vha25lc3Mg
KGxpc3QgI2YgJ2tleSAndmFsdWUgJ2tleS1vci12YWx1ZSkKKyAgICAocGFzcy1pZiAodGVzdC1z
dHItd2Vha25lc3MgImhhc2gtdGFibGUtZGVsZXRlISBkZWxldGVzIHByZXNlbnQgYXNzb2NzLCBp
Z25vcmVzIG90aGVycyIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2Vha25lc3Mp
CisgICAgICAobGV0ICgoaHQgKGFsaXN0LT5oYXNoLXRhYmxlICcoKGEgLiAxKSAoYiAuIDIpKSBl
cT8gIzp3ZWFrIHdlYWtuZXNzKSkpCisgICAgICAgIChoYXNoLXRhYmxlLWRlbGV0ZSEgaHQgJ2Mp
CisgICAgICAgIChhbmQgKD0gMiAoaGFzaC10YWJsZS1zaXplIGh0KSkKKyAgICAgICAgICAgICAo
YmVnaW4KKyAgICAgICAgICAgICAgIChoYXNoLXRhYmxlLWRlbGV0ZSEgaHQgJ2EpCisgICAgICAg
ICAgICAgICAoPSAxIChoYXNoLXRhYmxlLXNpemUgaHQpKSkKKyAgICAgICAgICAgICAobHNldD0g
ZXF1YWw/ICcoKGIgLiAyKSkgKGhhc2gtdGFibGUtPmFsaXN0IGh0KSkpKSkpCisKKyAgKHdpdGgt
d2Vha25lc3MtbGlzdCB3ZWFrbmVzcyAobGlzdCAjZiAna2V5ICd2YWx1ZSAna2V5LW9yLXZhbHVl
KQorICAgIChwYXNzLWlmICh0ZXN0LXN0ci13ZWFrbmVzcyAiYWxpc3QtPmhhc2gtdGFibGUgZG9l
cyBub3QgcmVxdWlyZSBsaW5lYXIgc3RhY2sgc3BhY2UiCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHdlYWtuZXNzKQorICAgICAgKGVxdj8gOTk5OTkKKyAgICAgICAgICAgIChoYXNo
LXRhYmxlLXJlZiAoYWxpc3QtPmhhc2gtdGFibGUKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgKHVuZm9sZC1yaWdodCAoY3V0ID49IDw+IDEwMDAwMCkKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAobGFtYmRhIChzKSBgKHggLiAscykpIDErIDApCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGVxPworICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAjOndlYWsgd2Vha25lc3MpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3gpKSkpCisK
KyAgKHdpdGgtd2Vha25lc3MtbGlzdCB3ZWFrbmVzcyAobGlzdCAjZiAna2V5ICd2YWx1ZSAna2V5
LW9yLXZhbHVlKQorICAgIChwYXNzLWlmICh0ZXN0LXN0ci13ZWFrbmVzcyAiaGFzaC10YWJsZS13
YWxrIGlnbm9yZXMgcmV0dXJuIHZhbHVlcyIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgd2Vha25lc3MpCisgICAgICAobGV0ICgoaHQgKGFsaXN0LT5oYXNoLXRhYmxlICcoKGEgLiAx
KSAoYiAuIDIpIChjIC4gMykpIGVxPykpKQorICAgICAgICAoZm9yLWVhY2ggKGN1dCBoYXNoLXRh
YmxlLXdhbGsgaHQgPD4pCisgICAgICAgICAgICAgICAgICAobGlzdCAobGFtYmRhIChrIHYpICh2
YWx1ZXMpKQorICAgICAgICAgICAgICAgICAgICAgICAgKGxhbWJkYSAoayB2KSAodmFsdWVzIDEg
MiAzKSkpKQorICAgICAgICAjdCkpKQorCisgICh3aXRoLXdlYWtuZXNzLWxpc3Qgd2Vha25lc3Mg
KGxpc3QgI2YgJ2tleSAndmFsdWUgJ2tleS1vci12YWx1ZSkKKyAgICAocGFzcy1pZiAodGVzdC1z
dHItd2Vha25lc3MgImhhc2gtdGFibGUtdXBkYXRlISBtb2RpZmllcyBleGlzdGluZyBiaW5kaW5n
IgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3ZWFrbmVzcykKKyAgICAgIChsZXQg
KChodCAoYWxpc3QtPmhhc2gtdGFibGUgJygoYSAuIDEpKSBlcT8gIzp3ZWFrIHdlYWtuZXNzKSkp
CisgICAgICAgIChoYXNoLXRhYmxlLXVwZGF0ZSEgaHQgJ2EgMSspCisgICAgICAgIChoYXNoLXRh
YmxlLXVwZGF0ZSEgaHQgJ2EgKGN1dCArIDQgPD4pIChsYW1iZGEgKCkgNDIpKQorICAgICAgICAo
YW5kICg9IDEgKGhhc2gtdGFibGUtc2l6ZSBodCkpCisgICAgICAgICAgICAgKGxzZXQ9IGVxdWFs
PyAnKChhIC4gNikpIChoYXNoLXRhYmxlLT5hbGlzdCBodCkpKSkpKQorCisgICh3aXRoLXdlYWtu
ZXNzLWxpc3Qgd2Vha25lc3MgKGxpc3QgI2YgJ2tleSAndmFsdWUgJ2tleS1vci12YWx1ZSkKKyAg
ICAocGFzcy1pZiAodGVzdC1zdHItd2Vha25lc3MgImhhc2gtdGFibGUtdXBkYXRlISBjcmVhdGVz
IG5ldyBiaW5kaW5nIHdoZW4gYXBwcm9wcmlhdGUiCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHdlYWtuZXNzKQorICAgICAgKGxldCAoKGh0IChtYWtlLWhhc2gtdGFibGUgZXE/ICM6
d2VhayB3ZWFrbmVzcykpKQorICAgICAgICAoaGFzaC10YWJsZS11cGRhdGUhIGh0ICdiIDErIChs
YW1iZGEgKCkgNDIpKQorICAgICAgICAoaGFzaC10YWJsZS11cGRhdGUhIGh0ICdiIChjdXQgKyAx
MCA8PikpCisgICAgICAgIChhbmQgKD0gMSAoaGFzaC10YWJsZS1zaXplIGh0KSkKKyAgICAgICAg
ICAgICAobHNldD0gZXF1YWw/ICcoKGIgLiA1MykpIChoYXNoLXRhYmxlLT5hbGlzdCBodCkpKSkp
KQorCisgICh3aXRoLXdlYWtuZXNzLWxpc3Qgd2Vha25lc3MgKGxpc3QgI2YgJ2tleSAndmFsdWUg
J2tleS1vci12YWx1ZSkKKyAgICAocGFzcy1pZiAodGVzdC1zdHItd2Vha25lc3MgImhhc2gtdGFi
bGUtbWVyZ2UhIGZ1bmN0aW9ucyBwcm9wZXJseSIKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgd2Vha25lc3MpCisgICAgICAobGV0KiAoKGh0MSAoYWxpc3QtPmhhc2gtdGFibGUgJygo
YSAuIDEpIChiIC4gMikpIGVxPyAjOndlYWsgd2Vha25lc3MpKQorICAgICAgICAgICAgIChodDIg
KGFsaXN0LT5oYXNoLXRhYmxlICcoKGIgLiAzKSAoYyAuIDQpKSBlcT8gIzp3ZWFrIHdlYWtuZXNz
KSkpCisgICAgICAgIChzZXQhIGh0MSAoaGFzaC10YWJsZS1tZXJnZSEgaHQxIGh0MikpCisgICAg
ICAgIChhbmQgKD0gMyAoaGFzaC10YWJsZS1zaXplIGh0MSkpCisgICAgICAgICAgICAgKD0gMiAo
aGFzaC10YWJsZS1zaXplIGh0MikpCisgICAgICAgICAgICAgKGxzZXQ9IGVxdWFsPyAnKChhIC4g
MSkgKGIgLiAzKSAoYyAuIDQpKSAoaGFzaC10YWJsZS0+YWxpc3QgaHQxKSkKKyAgICAgICAgICAg
ICAobHNldD0gZXF1YWw/ICcoKGIgLiAzKSAoYyAuIDQpKSAoaGFzaC10YWJsZS0+YWxpc3QgaHQy
KSkpKSkpCiAKICAgKHBhc3MtaWYgImNhbiB1c2UgYWxsIGFyZ3VtZW50cywgaW5jbHVkaW5nIHNp
emUiCiAgICAgKGhhc2gtdGFibGU/IChtYWtlLWhhc2gtdGFibGUgZXF1YWw/IGhhc2ggIzp3ZWFr
ICdrZXkgMzEpKSkKIAotKQorICApCi0tIAoyLjE5LjEKCg==
--000000000000b6a39d057efb700b
Content-Type: text/x-patch; charset="US-ASCII"; 
	name="0004-Reimplemented-RNRS-HASHTABLES-using-GENERIC-HASH-TAB.patch"
Content-Disposition: attachment; 
	filename="0004-Reimplemented-RNRS-HASHTABLES-using-GENERIC-HASH-TAB.patch"
Content-Transfer-Encoding: base64
Content-ID: <f_jqofmioc3>
X-Attachment-Id: f_jqofmioc3

RnJvbSBiOWU0ZWJmZWViOGQ5YjE2YTExZWZmYmU0OWY0YTdlODI2ODQ0ZGI4IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiA9P1VURi04P3E/Sj1DMz1BOXNzaWNhPTIwTWlsYXI9QzM9QTk/
PSA8amVzc3ltaWxhcmVAZ21haWwuY29tPgpEYXRlOiBUdWUsIDggSmFuIDIwMTkgMjI6MDY6MTAg
LTAyMDAKU3ViamVjdDogW1BBVENIIDQvNV0gUmVpbXBsZW1lbnRlZCAoUk5SUyBIQVNIVEFCTEVT
KSB1c2luZyBHRU5FUklDLUhBU0gtVEFCTEVTCgotLS0KIG1vZHVsZS9ybnJzL2hhc2h0YWJsZXMu
c2NtIHwgMjEyICsrKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIDEgZmlsZSBj
aGFuZ2VkLCA3NSBpbnNlcnRpb25zKCspLCAxMzcgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEv
bW9kdWxlL3JucnMvaGFzaHRhYmxlcy5zY20gYi9tb2R1bGUvcm5ycy9oYXNodGFibGVzLnNjbQpp
bmRleCA0ODY0NTJhMmEuLmZkMjdjNTRjNiAxMDA2NDQKLS0tIGEvbW9kdWxlL3JucnMvaGFzaHRh
Ymxlcy5zY20KKysrIGIvbW9kdWxlL3JucnMvaGFzaHRhYmxlcy5zY20KQEAgLTQzLDE0NyArNDMs
ODUgQEAKIAkgIHN0cmluZy1jaS1oYXNoCiAJICBzeW1ib2wtaGFzaCkKICAgKGltcG9ydCAocmVu
YW1lIChvbmx5IChndWlsZSkgc3RyaW5nLWhhc2gtY2kgCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHN0cmluZy1oYXNoIAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBo
YXNocSAKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFzaHYKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgbW9kdWxvCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICp1bnNwZWNpZmllZCoKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQEApCisg
ICAgICAgICAgICAgICAgICAgICAgICBzdHJpbmctaGFzaAorICAgICAgICAgICAgICAgICAgICAg
ICAgaGFzaHEKKyAgICAgICAgICAgICAgICAgICAgICAgIGhhc2h2CisgICAgICAgICAgICAgICAg
ICAgICAgICBtb2R1bG8KKyAgICAgICAgICAgICAgICAgICAgICAgICp1bnNwZWNpZmllZCopCiAJ
CSAgKHN0cmluZy1oYXNoLWNpIHN0cmluZy1jaS1oYXNoKSkKIAkgIChvbmx5IChpY2UtOSBvcHRh
cmdzKSBkZWZpbmUqKQotCSAgKHJlbmFtZSAob25seSAoc3JmaSA6NjkpIG1ha2UtaGFzaC10YWJs
ZQotCQkJICAgICAgICAgICBoYXNoCi0JCQkJICAgaGFzaC1ieS1pZGVudGl0eQotCQkJICAgICAg
ICAgICBoYXNoLXRhYmxlLXNpemUKLQkJCQkgICBoYXNoLXRhYmxlLXJlZi9kZWZhdWx0Ci0JCQkJ
ICAgaGFzaC10YWJsZS1zZXQhCi0JCQkJICAgaGFzaC10YWJsZS1kZWxldGUhCi0JCQkJICAgaGFz
aC10YWJsZS1leGlzdHM/Ci0JCQkJICAgaGFzaC10YWJsZS11cGRhdGUhL2RlZmF1bHQKLQkJCQkg
ICBoYXNoLXRhYmxlLWNvcHkKLQkJCQkgICBoYXNoLXRhYmxlLWVxdWl2YWxlbmNlLWZ1bmN0aW9u
Ci0JCQkJICAgaGFzaC10YWJsZS1oYXNoLWZ1bmN0aW9uCi0JCQkJICAgaGFzaC10YWJsZS1rZXlz
Ci0JCQkJICAgaGFzaC10YWJsZS1mb2xkKQotCQkgIChoYXNoIGVxdWFsLWhhc2gpCi0JCSAgKGhh
c2gtYnktaWRlbnRpdHkgc3ltYm9sLWhhc2gpKQotICAgICAgICAgIChvbmx5IChpY2UtOSBnZW5l
cmljLWhhc2gtdGFibGVzKSBoYXNoLWJ5LXZhbHVlKQorCSAgKHJlbmFtZSAob25seSAoaWNlLTkg
Z2VuZXJpYy1oYXNoLXRhYmxlcykKKyAgICAgICAgICAgICAgICAgICAgICAgIG1ha2UtaGFzaC10
YWJsZQorICAgICAgICAgICAgICAgICAgICAgICAgaGFzaC10YWJsZT8KKyAgICAgICAgICAgICAg
ICAgICAgICAgIGhhc2gtdGFibGUtbXV0YWJsZT8KKyAgICAgICAgICAgICAgICAgICAgICAgIGhh
c2gKKyAgICAgICAgICAgICAgICAgICAgICAgIGhhc2gtYnktaWRlbnRpdHkKKyAgICAgICAgICAg
ICAgICAgICAgICAgIGhhc2gtYnktdmFsdWUKKyAgICAgICAgICAgICAgICAgICAgICAgIGhhc2gt
dGFibGUtc2l6ZQorICAgICAgICAgICAgICAgICAgICAgICAgaGFzaC10YWJsZS1yZWYvZGVmYXVs
dAorICAgICAgICAgICAgICAgICAgICAgICAgaGFzaC10YWJsZS1zZXQtc2luZ2xlIQorICAgICAg
ICAgICAgICAgICAgICAgICAgaGFzaC10YWJsZS1kZWxldGUtc2luZ2xlIQorICAgICAgICAgICAg
ICAgICAgICAgICAgaGFzaC10YWJsZS1jb250YWlucz8KKyAgICAgICAgICAgICAgICAgICAgICAg
IGhhc2gtdGFibGUtdXBkYXRlIS9kZWZhdWx0CisgICAgICAgICAgICAgICAgICAgICAgICBoYXNo
LXRhYmxlLWNsZWFyIQorICAgICAgICAgICAgICAgICAgICAgICAgaGFzaC10YWJsZS1jb3B5Cisg
ICAgICAgICAgICAgICAgICAgICAgICBoYXNoLXRhYmxlLWVudHJ5LXZlY3RvcnMKKyAgICAgICAg
ICAgICAgICAgICAgICAgIGhhc2gtdGFibGUtZXF1aXZhbGVuY2UtZnVuY3Rpb24KKyAgICAgICAg
ICAgICAgICAgICAgICAgIGhhc2gtdGFibGUtaGFzaC1mdW5jdGlvbgorICAgICAgICAgICAgICAg
ICAgICAgICAgaGFzaC10YWJsZS1rZXktdmVjdG9yKQorICAgICAgICAgICAgICAgICAgKG1ha2Ut
aGFzaC10YWJsZSBnZW46bWFrZS1oYXNoLXRhYmxlKQorCQkgIChoYXNoIGVxdWFsLWhhc2gpKQor
ICAgICAgICAgIChvbmx5IChzcmZpIHNyZmktNjkpIGhhc2gtdGFibGUtc2V0ISBoYXNoLXRhYmxl
LWRlbGV0ZSEpCiAJICAocm5ycyBiYXNlICg2KSkKIAkgIChybnJzIHJlY29yZHMgcHJvY2VkdXJh
bCAoNikpKQorCisgIChkZWZpbmUgaGFzaHRhYmxlPyBoYXNoLXRhYmxlPykKKworICAoZGVmaW5l
IGhhc2h0YWJsZS1tdXRhYmxlPyBoYXNoLXRhYmxlLW11dGFibGU/KQorCisgIChkZWZpbmUgc3lt
Ym9sLWhhc2ggaGFzaC1ieS1pZGVudGl0eSkKKworICAoZGVmaW5lKiAobWFrZS1lcS1oYXNodGFi
bGUgIzpvcHRpb25hbCBjYXBhY2l0eSkKKyAgICAoaWYgY2FwYWNpdHkKKyAgICAgICAgKGdlbjpt
YWtlLWhhc2gtdGFibGUgZXE/ICNmICM6Y2FwYWNpdHkgY2FwYWNpdHkpCisgICAgICAgIChnZW46
bWFrZS1oYXNoLXRhYmxlIGVxPyAjZikpKQorCisgIChkZWZpbmUqIChtYWtlLWVxdi1oYXNodGFi
bGUgIzpvcHRpb25hbCBjYXBhY2l0eSkKKyAgICAoaWYgY2FwYWNpdHkKKyAgICAgICAgKGdlbjpt
YWtlLWhhc2gtdGFibGUgZXF2PyAjZiAjOmNhcGFjaXR5IGNhcGFjaXR5KQorICAgICAgICAoZ2Vu
Om1ha2UtaGFzaC10YWJsZSBlcXY/ICNmKSkpCisKKyAgKGRlZmluZSogKG1ha2UtaGFzaHRhYmxl
IGhhc2gtZnVuY3Rpb24gZXF1aXYgIzpvcHRpb25hbCBjYXBhY2l0eSkKKyAgICAoaWYgY2FwYWNp
dHkKKyAgICAgICAgKGdlbjptYWtlLWhhc2gtdGFibGUgZXF1aXYgaGFzaC1mdW5jdGlvbiAjOmNh
cGFjaXR5IGNhcGFjaXR5KQorICAgICAgICAoZ2VuOm1ha2UtaGFzaC10YWJsZSBlcXVpdiBoYXNo
LWZ1bmN0aW9uKSkpCiAgIAotICAoZGVmaW5lIHI2cnM6aGFzaHRhYmxlIAotICAgIChtYWtlLXJl
Y29yZC10eXBlLWRlc2NyaXB0b3IgCi0gICAgICdyNnJzOmhhc2h0YWJsZSAjZiAjZiAjdCAjdCAK
LSAgICAgJyMoKG11dGFibGUgd3JhcHBlZC10YWJsZSkKLSAgICAgICAgKGltbXV0YWJsZSBvcmln
LWhhc2gtZnVuY3Rpb24pCi0gICAgICAgIChpbW11dGFibGUgbXV0YWJsZSkKLSAgICAgICAgKGlt
bXV0YWJsZSB0eXBlKSkpKQotCi0gIChkZWZpbmUgaGFzaHRhYmxlPyAocmVjb3JkLXByZWRpY2F0
ZSByNnJzOmhhc2h0YWJsZSkpCi0gIChkZWZpbmUgbWFrZS1yNnJzLWhhc2h0YWJsZSAKLSAgICAo
cmVjb3JkLWNvbnN0cnVjdG9yIChtYWtlLXJlY29yZC1jb25zdHJ1Y3Rvci1kZXNjcmlwdG9yIAot
CQkJIHI2cnM6aGFzaHRhYmxlICNmICNmKSkpCi0gIChkZWZpbmUgcjZyczpoYXNodGFibGUtd3Jh
cHBlZC10YWJsZSAocmVjb3JkLWFjY2Vzc29yIHI2cnM6aGFzaHRhYmxlIDApKQotICAoZGVmaW5l
IHI2cnM6aGFzaHRhYmxlLXNldC13cmFwcGVkLXRhYmxlISAocmVjb3JkLW11dGF0b3IgcjZyczpo
YXNodGFibGUgMCkpCi0gIChkZWZpbmUgcjZyczpoYXNodGFibGUtb3JpZy1oYXNoLWZ1bmN0aW9u
IChyZWNvcmQtYWNjZXNzb3IgcjZyczpoYXNodGFibGUgMSkpCi0gIChkZWZpbmUgcjZyczpoYXNo
dGFibGUtbXV0YWJsZT8gKHJlY29yZC1hY2Nlc3NvciByNnJzOmhhc2h0YWJsZSAyKSkKLSAgKGRl
ZmluZSByNnJzOmhhc2h0YWJsZS10eXBlIChyZWNvcmQtYWNjZXNzb3IgcjZyczpoYXNodGFibGUg
MykpCi0KLSAgKGRlZmluZSBoYXNodGFibGUtbXV0YWJsZT8gcjZyczpoYXNodGFibGUtbXV0YWJs
ZT8pCi0KLSAgOzsgKGRlZmluZSBoYXNoLWJ5LXZhbHVlICgoQEAgKHNyZmkgc3JmaS02OSkgY2Fs
bGVyLXdpdGgtZGVmYXVsdC1zaXplKSBoYXNodikpCi0gIDs7IChkZWZpbmUgKHdyYXAtaGFzaC1m
dW5jdGlvbiBwcm9jKQotICA7OyAgIChsYW1iZGEgKGtleSBjYXBhY2l0eSkgKG1vZHVsbyAocHJv
YyBrZXkpIGNhcGFjaXR5KSkpCi0KLSAgKGRlZmluZSogKG1ha2UtZXEtaGFzaHRhYmxlICM6b3B0
aW9uYWwgaykKLSAgICAobWFrZS1yNnJzLWhhc2h0YWJsZSAKLSAgICAgKGlmIGsgKG1ha2UtaGFz
aC10YWJsZSBlcT8gaGFzaHEgaykgKG1ha2UtaGFzaC10YWJsZSBlcT8gc3ltYm9sLWhhc2gpKQot
ICAgICBzeW1ib2wtaGFzaAotICAgICAjdAotICAgICAnZXEpKQotCi0gIChkZWZpbmUqIChtYWtl
LWVxdi1oYXNodGFibGUgIzpvcHRpb25hbCBrKQotICAgIChtYWtlLXI2cnMtaGFzaHRhYmxlIAot
ICAgICAoaWYgayAobWFrZS1oYXNoLXRhYmxlIGVxdj8gaGFzaHYgaykgKG1ha2UtaGFzaC10YWJs
ZSBlcXY/IGhhc2gtYnktdmFsdWUpKQotICAgICBoYXNoLWJ5LXZhbHVlCi0gICAgICN0Ci0gICAg
ICdlcXYpKQotCi0gIChkZWZpbmUqIChtYWtlLWhhc2h0YWJsZSBoYXNoLWZ1bmN0aW9uIGVxdWl2
ICM6b3B0aW9uYWwgaykKLSAgICAobWFrZS1yNnJzLWhhc2h0YWJsZQotICAgICAoaWYgawotICAg
ICAgICAgKG1ha2UtaGFzaC10YWJsZSBlcXVpdiBoYXNoLWZ1bmN0aW9uIGspCi0gICAgICAgICAo
bWFrZS1oYXNoLXRhYmxlIGVxdWl2IGhhc2gtZnVuY3Rpb24pKQotICAgICBoYXNoLWZ1bmN0aW9u
Ci0gICAgICN0Ci0gICAgICdjdXN0b20pKQotIAotICAoZGVmaW5lIChoYXNodGFibGUtc2l6ZSBo
YXNodGFibGUpCi0gICAgKGhhc2gtdGFibGUtc2l6ZSAocjZyczpoYXNodGFibGUtd3JhcHBlZC10
YWJsZSBoYXNodGFibGUpKSkKLQotICAoZGVmaW5lIChoYXNodGFibGUtcmVmIGhhc2h0YWJsZSBr
ZXkgZGVmYXVsdCkKLSAgICAoaGFzaC10YWJsZS1yZWYvZGVmYXVsdCAKLSAgICAgKHI2cnM6aGFz
aHRhYmxlLXdyYXBwZWQtdGFibGUgaGFzaHRhYmxlKSBrZXkgZGVmYXVsdCkpCi0KLSAgKGRlZmlu
ZSAoaGFzaHRhYmxlLXNldCEgaGFzaHRhYmxlIGtleSBvYmopCi0gICAgKGlmIChyNnJzOmhhc2h0
YWJsZS1tdXRhYmxlPyBoYXNodGFibGUpCi0gICAgICAgIChoYXNoLXRhYmxlLXNldCEgKHI2cnM6
aGFzaHRhYmxlLXdyYXBwZWQtdGFibGUgaGFzaHRhYmxlKSBrZXkgb2JqKQotICAgICAgICAoYXNz
ZXJ0aW9uLXZpb2xhdGlvbgotICAgICAgICAgJ2hhc2h0YWJsZS1zZXQhICJIYXNodGFibGUgaXMg
aW1tdXRhYmxlLiIgaGFzaHRhYmxlKSkpCi0KLSAgKGRlZmluZSAoaGFzaHRhYmxlLWRlbGV0ZSEg
aGFzaHRhYmxlIGtleSkKLSAgICAoaWYgKHI2cnM6aGFzaHRhYmxlLW11dGFibGU/IGhhc2h0YWJs
ZSkKLQkoaGFzaC10YWJsZS1kZWxldGUhIChyNnJzOmhhc2h0YWJsZS13cmFwcGVkLXRhYmxlIGhh
c2h0YWJsZSkga2V5KSkKLSAgICAqdW5zcGVjaWZpZWQqKQotCi0gIChkZWZpbmUgKGhhc2h0YWJs
ZS1jb250YWlucz8gaGFzaHRhYmxlIGtleSkKLSAgICAoaGFzaC10YWJsZS1leGlzdHM/IChyNnJz
Omhhc2h0YWJsZS13cmFwcGVkLXRhYmxlIGhhc2h0YWJsZSkga2V5KSkKLQotICAoZGVmaW5lICho
YXNodGFibGUtdXBkYXRlISBoYXNodGFibGUga2V5IHByb2MgZGVmYXVsdCkKLSAgICAoaWYgKHI2
cnM6aGFzaHRhYmxlLW11dGFibGU/IGhhc2h0YWJsZSkKLQkoaGFzaC10YWJsZS11cGRhdGUhL2Rl
ZmF1bHQgCi0JIChyNnJzOmhhc2h0YWJsZS13cmFwcGVkLXRhYmxlIGhhc2h0YWJsZSkga2V5IHBy
b2MgZGVmYXVsdCkpCi0gICAgKnVuc3BlY2lmaWVkKikKLQotICAoZGVmaW5lKiAoaGFzaHRhYmxl
LWNvcHkgaGFzaHRhYmxlICM6b3B0aW9uYWwgbXV0YWJsZSkKLSAgICAobWFrZS1yNnJzLWhhc2h0
YWJsZSAKLSAgICAgKGhhc2gtdGFibGUtY29weSAocjZyczpoYXNodGFibGUtd3JhcHBlZC10YWJs
ZSBoYXNodGFibGUpKQotICAgICAocjZyczpoYXNodGFibGUtb3JpZy1oYXNoLWZ1bmN0aW9uIGhh
c2h0YWJsZSkKLSAgICAgKGFuZCBtdXRhYmxlICN0KQotICAgICAocjZyczpoYXNodGFibGUtdHlw
ZSBoYXNodGFibGUpKSkKLQotICAoZGVmaW5lKiAoaGFzaHRhYmxlLWNsZWFyISBoYXNodGFibGUg
IzpvcHRpb25hbCBrKQotICAgIChpZiAocjZyczpoYXNodGFibGUtbXV0YWJsZT8gaGFzaHRhYmxl
KQotCShsZXQqICgoaHQgKHI2cnM6aGFzaHRhYmxlLXdyYXBwZWQtdGFibGUgaGFzaHRhYmxlKSkK
LQkgICAgICAgKGVxdWl2IChoYXNoLXRhYmxlLWVxdWl2YWxlbmNlLWZ1bmN0aW9uIGh0KSkKLQkg
ICAgICAgKGhhc2gtZnVuY3Rpb24gKHI2cnM6aGFzaHRhYmxlLW9yaWctaGFzaC1mdW5jdGlvbiBo
YXNodGFibGUpKSkKLQkgIChyNnJzOmhhc2h0YWJsZS1zZXQtd3JhcHBlZC10YWJsZSEKLQkgICBo
YXNodGFibGUKLQkgICAoaWYgayAKLQkgICAgICAgKG1ha2UtaGFzaC10YWJsZSBlcXVpdiBoYXNo
LWZ1bmN0aW9uIGspCi0JICAgICAgIChtYWtlLWhhc2gtdGFibGUgZXF1aXYgaGFzaC1mdW5jdGlv
bikpKSkpCi0gICAgKnVuc3BlY2lmaWVkKikKLQotICAoZGVmaW5lIChoYXNodGFibGUta2V5cyBo
YXNodGFibGUpCi0gICAgKGxpc3QtPnZlY3RvciAoaGFzaC10YWJsZS1rZXlzIChyNnJzOmhhc2h0
YWJsZS13cmFwcGVkLXRhYmxlIGhhc2h0YWJsZSkpKSkKLQotICAoZGVmaW5lIChoYXNodGFibGUt
ZW50cmllcyBoYXNodGFibGUpCi0gICAgKGxldCogKChodCAocjZyczpoYXNodGFibGUtd3JhcHBl
ZC10YWJsZSBoYXNodGFibGUpKQotCSAgIChzaXplIChoYXNoLXRhYmxlLXNpemUgaHQpKQotCSAg
IChrZXlzIChtYWtlLXZlY3RvciBzaXplKSkKLQkgICAodmFscyAobWFrZS12ZWN0b3Igc2l6ZSkp
KQotICAgICAgKGhhc2gtdGFibGUtZm9sZCAocjZyczpoYXNodGFibGUtd3JhcHBlZC10YWJsZSBo
YXNodGFibGUpCi0JCSAgICAgICAobGFtYmRhIChrIHYgaSkKLQkJCSAodmVjdG9yLXNldCEga2V5
cyBpIGspCi0JCQkgKHZlY3Rvci1zZXQhIHZhbHMgaSB2KQotCQkJICgrIGkgMSkpCi0JCSAgICAg
ICAwKQotICAgICAgKHZhbHVlcyBrZXlzIHZhbHMpKSkKLQotICAoZGVmaW5lIChoYXNodGFibGUt
ZXF1aXZhbGVuY2UtZnVuY3Rpb24gaGFzaHRhYmxlKQotICAgIChoYXNoLXRhYmxlLWVxdWl2YWxl
bmNlLWZ1bmN0aW9uIChyNnJzOmhhc2h0YWJsZS13cmFwcGVkLXRhYmxlIGhhc2h0YWJsZSkpKQor
ICAoZGVmaW5lIGhhc2h0YWJsZS1zaXplIGhhc2gtdGFibGUtc2l6ZSkKKworICAoZGVmaW5lIGhh
c2h0YWJsZS1yZWYgaGFzaC10YWJsZS1yZWYvZGVmYXVsdCkKKworICAoZGVmaW5lIGhhc2h0YWJs
ZS1zZXQhIGhhc2gtdGFibGUtc2V0ISkKKworICAoZGVmaW5lIGhhc2h0YWJsZS1kZWxldGUhIGhh
c2gtdGFibGUtZGVsZXRlISkKKworICAoZGVmaW5lIGhhc2h0YWJsZS1jb250YWlucz8gaGFzaC10
YWJsZS1jb250YWlucz8pCisKKyAgKGRlZmluZSBoYXNodGFibGUtdXBkYXRlISBoYXNoLXRhYmxl
LXVwZGF0ZSEvZGVmYXVsdCkKKworICAoZGVmaW5lKiAoaGFzaHRhYmxlLWNvcHkgaHQgIzpvcHRp
b25hbCBtdXRhYmxlKQorICAgIChoYXNoLXRhYmxlLWNvcHkgaHQgIzptdXRhYmxlIG11dGFibGUp
KQorCisgIChkZWZpbmUgaGFzaHRhYmxlLWNsZWFyISBoYXNoLXRhYmxlLWNsZWFyISkKKworICAo
ZGVmaW5lIGhhc2h0YWJsZS1rZXlzIGhhc2gtdGFibGUta2V5LXZlY3RvcikKKworICAoZGVmaW5l
IGhhc2h0YWJsZS1lbnRyaWVzIGhhc2gtdGFibGUtZW50cnktdmVjdG9ycykKKworICAoZGVmaW5l
IGhhc2h0YWJsZS1lcXVpdmFsZW5jZS1mdW5jdGlvbiBoYXNoLXRhYmxlLWVxdWl2YWxlbmNlLWZ1
bmN0aW9uKQogCiAgIChkZWZpbmUgKGhhc2h0YWJsZS1oYXNoLWZ1bmN0aW9uIGhhc2h0YWJsZSkK
LSAgICAoY2FzZSAocjZyczpoYXNodGFibGUtdHlwZSBoYXNodGFibGUpCi0gICAgICAoKGVxIGVx
dikgI2YpCi0gICAgICAoZWxzZSAocjZyczpoYXNodGFibGUtb3JpZy1oYXNoLWZ1bmN0aW9uIGhh
c2h0YWJsZSkpKSkpCisgICAgKGxldCAoKGhhc2gtZnVuY3Rpb24gKGhhc2gtdGFibGUtaGFzaC1m
dW5jdGlvbiBoYXNodGFibGUpKSkKKyAgICAgIChjb25kICgob3IgKGVxPyBoYXNoLWJ5LWlkZW50
aXR5IGhhc2gtZnVuY3Rpb24pCisgICAgICAgICAgICAgICAgIChlcT8gaGFzaC1ieS12YWx1ZSAg
ICBoYXNoLWZ1bmN0aW9uKSkKKyAgICAgICAgICAgICAjZikKKyAgICAgICAgICAgIChlbHNlIGhh
c2gtZnVuY3Rpb24pKSkpKQotLSAKMi4xOS4xCgo=
--000000000000b6a39d057efb700b
Content-Type: text/x-patch; charset="US-ASCII"; 
	name="0005-Implemented-SRFI-126-using-GENERIC-HASH-TABLES.patch"
Content-Disposition: attachment; 
	filename="0005-Implemented-SRFI-126-using-GENERIC-HASH-TABLES.patch"
Content-Transfer-Encoding: base64
Content-ID: <f_jqofmiol4>
X-Attachment-Id: f_jqofmiol4

RnJvbSA1NzVhMzMxNjkxNmZkZGRiYzMwYTQwNGYxOTAyNzdlMWI1YzBlNzFhIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiA9P1VURi04P3E/Sj1DMz1BOXNzaWNhPTIwTWlsYXI9QzM9QTk/
PSA8amVzc3ltaWxhcmVAZ21haWwuY29tPgpEYXRlOiBUdWUsIDggSmFuIDIwMTkgMjI6MDc6MDIg
LTAyMDAKU3ViamVjdDogW1BBVENIIDUvNV0gSW1wbGVtZW50ZWQgU1JGSS0xMjYgdXNpbmcgR0VO
RVJJQy1IQVNILVRBQkxFUwoKLS0tCiBtb2R1bGUvTWFrZWZpbGUuYW0gICAgICAgICAgICAgfCAg
IDEgKwogbW9kdWxlL3NyZmkvc3JmaS0xMjYuc2NtICAgICAgIHwgMjE1ICsrKysrKysrKysrKysr
KysrKysrKwogdGVzdC1zdWl0ZS9NYWtlZmlsZS5hbSAgICAgICAgIHwgICAxICsKIHRlc3Qtc3Vp
dGUvdGVzdHMvc3JmaS0xMjYudGVzdCB8IDM0NCArKysrKysrKysrKysrKysrKysrKysrKysrKysr
KysrKysKIDQgZmlsZXMgY2hhbmdlZCwgNTYxIGluc2VydGlvbnMoKykKIGNyZWF0ZSBtb2RlIDEw
MDY0NCBtb2R1bGUvc3JmaS9zcmZpLTEyNi5zY20KIGNyZWF0ZSBtb2RlIDEwMDY0NCB0ZXN0LXN1
aXRlL3Rlc3RzL3NyZmktMTI2LnRlc3QKCmRpZmYgLS1naXQgYS9tb2R1bGUvTWFrZWZpbGUuYW0g
Yi9tb2R1bGUvTWFrZWZpbGUuYW0KaW5kZXggNmRiYTg3Y2U4Li42ZTczOWZlZDAgMTAwNjQ0Ci0t
LSBhL21vZHVsZS9NYWtlZmlsZS5hbQorKysgYi9tb2R1bGUvTWFrZWZpbGUuYW0KQEAgLTI5NCw2
ICsyOTQsNyBAQCBTT1VSQ0VTID0JCQkJCVwKICAgc3JmaS9zcmZpLTg4LnNjbQkJCQlcCiAgIHNy
Zmkvc3JmaS05OC5zY20JCQkJXAogICBzcmZpL3NyZmktMTExLnNjbQkJCQlcCisgIHNyZmkvc3Jm
aS0xMjYuc2NtCQkJCVwKIAkJCQkJCVwKICAgc3RhdHByb2Yuc2NtCQkJCQlcCiAJCQkJCQlcCmRp
ZmYgLS1naXQgYS9tb2R1bGUvc3JmaS9zcmZpLTEyNi5zY20gYi9tb2R1bGUvc3JmaS9zcmZpLTEy
Ni5zY20KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwLi43YTY1OTQ0MzQKLS0t
IC9kZXYvbnVsbAorKysgYi9tb2R1bGUvc3JmaS9zcmZpLTEyNi5zY20KQEAgLTAsMCArMSwyMTUg
QEAKKzs7OyBzcmZpLTY5LnNjbSAtLS0gQmFzaWMgaGFzaCB0YWJsZXMKKworOzsgCUNvcHlyaWdo
dCAoQykgMjAwNyBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KKzs7Cis7OyBUaGlzIGxp
YnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCis7
OyBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVi
bGljCis7OyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0
aW9uOyBlaXRoZXIKKzs7IHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0
aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKzs7Cis7OyBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0
ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKzs7IGJ1dCBXSVRIT1VUIEFO
WSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCis7OyBNRVJD
SEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhl
IEdOVQorOzsgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4K
Kzs7Cis7OyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2Vy
IEdlbmVyYWwgUHVibGljCis7OyBMaWNlbnNlIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBpZiBu
b3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCis7OyBGb3VuZGF0aW9uLCBJbmMuLCA1MSBG
cmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLCBCb3N0b24sIE1BIDAyMTEwLTEzMDEgVVNBCisM
CisKKyhkZWZpbmUtbW9kdWxlIChzcmZpIHNyZmktMTI2KQorICAjOnVzZS1tb2R1bGUgKHNyZmkg
c3JmaS0xKQorICAjOnVzZS1tb2R1bGUgKChpY2UtOSBnZW5lcmljLWhhc2gtdGFibGVzKSAjOnBy
ZWZpeCBnZW46KQorICAjOnVzZS1tb2R1bGUgKChybnJzIGhhc2h0YWJsZXMpCisgICAgICAgICAg
ICAgICAgIzpzZWxlY3QgKGhhc2h0YWJsZT8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgaGFz
aHRhYmxlLWNvbnRhaW5zPyBoYXNodGFibGUtbXV0YWJsZT8KKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgaGFzaHRhYmxlLXNldCEgaGFzaHRhYmxlLWRlbGV0ZSEgaGFzaHRhYmxlLWNsZWFyIQor
ICAgICAgICAgICAgICAgICAgICAgICAgICBoYXNodGFibGUtc2l6ZQorICAgICAgICAgICAgICAg
ICAgICAgICAgICBoYXNodGFibGUta2V5cyBoYXNodGFibGUtZW50cmllcworICAgICAgICAgICAg
ICAgICAgICAgICAgICBoYXNodGFibGUtZXF1aXZhbGVuY2UtZnVuY3Rpb24KKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgaGFzaHRhYmxlLWhhc2gtZnVuY3Rpb24KKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgZXF1YWwtaGFzaCBzeW1ib2wtaGFzaAorICAgICAgICAgICAgICAgICAgICAgICAg
ICBzdHJpbmctaGFzaCBzdHJpbmctY2ktaGFzaCkpCisgICM6cmUtZXhwb3J0IChoYXNodGFibGU/
CisgICAgICAgICAgICAgICBoYXNodGFibGUtY29udGFpbnM/IGhhc2h0YWJsZS1tdXRhYmxlPwor
ICAgICAgICAgICAgICAgaGFzaHRhYmxlLXNldCEgaGFzaHRhYmxlLWRlbGV0ZSEgaGFzaHRhYmxl
LWNsZWFyIQorICAgICAgICAgICAgICAgaGFzaHRhYmxlLXNpemUKKyAgICAgICAgICAgICAgIGhh
c2h0YWJsZS1rZXlzIGhhc2h0YWJsZS1lbnRyaWVzCisgICAgICAgICAgICAgICBoYXNodGFibGUt
ZXF1aXZhbGVuY2UtZnVuY3Rpb24KKyAgICAgICAgICAgICAgIGhhc2h0YWJsZS1oYXNoLWZ1bmN0
aW9uCisgICAgICAgICAgICAgICBlcXVhbC1oYXNoIHN5bWJvbC1oYXNoCisgICAgICAgICAgICAg
ICBzdHJpbmctaGFzaCBzdHJpbmctY2ktaGFzaCkKKyAgIzpleHBvcnQgKG1ha2UtZXEtaGFzaHRh
YmxlCisgICAgICAgICAgICBtYWtlLWVxdi1oYXNodGFibGUgbWFrZS1oYXNodGFibGUKKyAgICAg
ICAgICAgIGFsaXN0LT5lcS1oYXNodGFibGUgYWxpc3QtPmVxdi1oYXNodGFibGUgYWxpc3QtPmhh
c2h0YWJsZQorICAgICAgICAgICAgaGFzaHRhYmxlLXdlYWtuZXNzCisgICAgICAgICAgICBoYXNo
dGFibGUtcmVmIGhhc2h0YWJsZS1sb29rdXAKKyAgICAgICAgICAgIGhhc2h0YWJsZS11cGRhdGUh
IGhhc2h0YWJsZS1pbnRlcm4hCisgICAgICAgICAgICBoYXNodGFibGUtY29weSBoYXNodGFibGUt
ZW1wdHktY29weQorICAgICAgICAgICAgaGFzaHRhYmxlLXZhbHVlcworICAgICAgICAgICAgaGFz
aHRhYmxlLWtleS1saXN0IGhhc2h0YWJsZS12YWx1ZS1saXN0IGhhc2h0YWJsZS1lbnRyeS1saXN0
cworICAgICAgICAgICAgaGFzaHRhYmxlLXdhbGsgaGFzaHRhYmxlLXVwZGF0ZS1hbGwhCisgICAg
ICAgICAgICBoYXNodGFibGUtcHJ1bmUhIGhhc2h0YWJsZS1tZXJnZSEgaGFzaHRhYmxlLXN1bQor
ICAgICAgICAgICAgaGFzaHRhYmxlLW1hcC0+bHNldAorICAgICAgICAgICAgaGFzaHRhYmxlLWZp
bmQgaGFzaHRhYmxlLWVtcHR5PworICAgICAgICAgICAgaGFzaHRhYmxlLXBvcCEKKyAgICAgICAg
ICAgIGhhc2h0YWJsZS1pbmMhIGhhc2h0YWJsZS1kZWMhCisgICAgICAgICAgICBoYXNoLXNhbHQp
KQorCisoY29uZC1leHBhbmQtcHJvdmlkZSAoY3VycmVudC1tb2R1bGUpICcoc3JmaS0xMjYpKQor
CisoZGVmaW5lIGhhc2h0YWJsZT8gZ2VuOmhhc2gtdGFibGU/KQorCisoZGVmaW5lKiAobWFrZS1o
YXNodGFibGUgaGFzaC1mdW5jdGlvbiBlcXVpdi1mdW5jdGlvbgorICAgICAgICAgICAgICAgICAg
ICAgICAgICM6b3B0aW9uYWwgY2FwYWNpdHkgd2Vha25lc3MpCisgICJDcmVhdGVzIGEgbmV3IGhh
c2ggdGFibGUuIEVRVUlWLUZVTkNUSU9OIGlzIHVzZWQgYXMgdGhlIGNvbXBhcmlzb24KK2Z1bmN0
aW9uIGFuZCBIQVNILUZVTkNUSU9OLCBpZiBwcm92aWRlZCBhbmQgbm90IGZhbHNlLCBpcyB1c2Vk
IGFzIHRoZQoraGFzaCBmdW5jdGlvbiwgb3RoZXJ3aXNlIGEgc3VpdGFibGUgaGFzaC1mdW5jdGlv
biBmb3IgdGhlIGhhc2ggdGFibGUgaXMKK2d1ZXNzZWQgb3IsIGlmIG9uZSBjYW4ndCBiZSBndWVz
c2VkLCBhbiBlcnJvciBpcyBzaWduYWxlZC4gV0VBS05FU1MKK3Nob3VsZCBiZSBlaXRoZXIgI2Ys
IFdFQUstS0VZLCBXRUFLLVZBTFVFIG9yIFdFQUstS0VZLUFORC1WQUxVRS4KK0NBUEFDSVRZIGlz
IHRoZSBtaW5pbWFsIG51bWJlciBvZiBidWNrZXRzIG9mIHRoZSBoYXNoIHRhYmxlLiIKKyAgKGdl
bjptYWtlLWhhc2gtdGFibGUgZXF1aXYtZnVuY3Rpb24gKGlmIChwYWlyPyBoYXNoLWZ1bmN0aW9u
KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNhciBoYXNoLWZ1
bmN0aW9uKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFzaC1m
dW5jdGlvbikKKyAgICAgICAgICAgICAgICAgICAgICAgIzpjYXBhY2l0eSAob3IgY2FwYWNpdHkg
MSkKKyAgICAgICAgICAgICAgICAgICAgICAgIzp3ZWFrbmVzcyB3ZWFrbmVzcykpCisKKyhkZWZp
bmUqIChtYWtlLWVxLWhhc2h0YWJsZSAjOm9wdGlvbmFsIGNhcGFjaXR5IHdlYWtuZXNzKQorICAo
Z2VuOm1ha2UtaGFzaC10YWJsZSBlcT8gZ2VuOmhhc2gtYnktaWRlbnRpdHkKKyAgICAgICAgICAg
ICAgICAgICAgICAgIzpjYXBhY2l0eSAob3IgY2FwYWNpdHkgMSkKKyAgICAgICAgICAgICAgICAg
ICAgICAgIzp3ZWFrbmVzcyB3ZWFrbmVzcykpCisKKyhkZWZpbmUqIChtYWtlLWVxdi1oYXNodGFi
bGUgIzpvcHRpb25hbCBjYXBhY2l0eSB3ZWFrbmVzcykKKyAgKGdlbjptYWtlLWhhc2gtdGFibGUg
ZXF2PyBnZW46aGFzaC1ieS12YWx1ZQorICAgICAgICAgICAgICAgICAgICAgICAjOmNhcGFjaXR5
IChvciBjYXBhY2l0eSAxKQorICAgICAgICAgICAgICAgICAgICAgICAjOndlYWtuZXNzIHdlYWtu
ZXNzKSkKKworKGRlZmluZSBhbGlzdC0+aGFzaHRhYmxlCisgIChjYXNlLWxhbWJkYQorICAgICgo
aGFzaC1mdW5jdGlvbiBlcXVpdi1mdW5jdGlvbiBhbGlzdCkKKyAgICAgKGdlbjphbGlzdC0+aGFz
aC10YWJsZSBhbGlzdCBlcXVpdi1mdW5jdGlvbgorICAgICAgICAgICAgICAgICAgICAgICAgICAg
IChpZiAocGFpcj8gaGFzaC1mdW5jdGlvbikKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgKGNhciBoYXNoLWZ1bmN0aW9uKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBo
YXNoLWZ1bmN0aW9uKSkpCisgICAgKChoYXNoLWZ1bmN0aW9uIGVxdWl2LWZ1bmN0aW9uIGNhcGFj
aXR5IGFsaXN0KQorICAgICAoZ2VuOmFsaXN0LT5oYXNoLXRhYmxlIGFsaXN0IGVxdWl2LWZ1bmN0
aW9uCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGlmIChwYWlyPyBoYXNoLWZ1bmN0aW9u
KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2FyIGhhc2gtZnVuY3Rpb24pCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhc2gtZnVuY3Rpb24pCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIzpjYXBhY2l0eSAob3IgY2FwYWNpdHkgMSkpKQorICAgICgoaGFz
aC1mdW5jdGlvbiBlcXVpdi1mdW5jdGlvbiBjYXBhY2l0eSB3ZWFrbmVzcyBhbGlzdCkKKyAgICAg
KGdlbjphbGlzdC0+aGFzaC10YWJsZSBhbGlzdCBlcXVpdi1mdW5jdGlvbgorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIChpZiAocGFpcj8gaGFzaC1mdW5jdGlvbikKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgKGNhciBoYXNoLWZ1bmN0aW9uKQorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBoYXNoLWZ1bmN0aW9uKQorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICM6Y2FwYWNpdHkgKG9yIGNhcGFjaXR5IDEpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
Izp3ZWFrbmVzcyB3ZWFrbmVzcykpKSkKKworKGRlZmluZSAoYWxpc3QtPmVxLWhhc2h0YWJsZSAu
IGFyZ3MpCisgIChhcHBseSBhbGlzdC0+aGFzaHRhYmxlICNmIGVxPyBhcmdzKSkKKworKGRlZmlu
ZSAoYWxpc3QtPmVxdi1oYXNodGFibGUgLiBhcmdzKQorICAoYXBwbHkgYWxpc3QtPmhhc2h0YWJs
ZSAjZiBlcXY/IGFyZ3MpKQorCisoZGVmaW5lKiAoaGFzaHRhYmxlLXJlZiBodCBrZXkgIzpvcHRp
b25hbCBkZWZhdWx0KQorICAoaWYgZGVmYXVsdAorICAgICAgKGdlbjpoYXNoLXRhYmxlLXJlZi9k
ZWZhdWx0IGh0IGtleSBkZWZhdWx0KQorICAgICAgKGdlbjpoYXNoLXRhYmxlLXJlZiBodCBrZXkp
KSkKKworOzsgKGRlZmluZSBoYXNodGFibGUtY29udGFpbnM/IHJucnM6aGFzaHRhYmxlLWNvbnRh
aW5zPykKKzs7IChkZWZpbmUgaGFzaHRhYmxlLXNldCEgcm5yczpoYXNodGFibGUtc2V0ISkKKzs7
IChkZWZpbmUgaGFzaHRhYmxlLWRlbGV0ZSEgcm5yczpoYXNodGFibGUtZGVsZXRlISkKKworKGRl
ZmluZSAoaGFzaHRhYmxlLWxvb2t1cCBoYXNodGFibGUga2V5KQorICAobGV0KiAoKGZvdW5kPyAj
dCkKKyAgICAgICAgICh2YWx1ZSAoZ2VuOmhhc2gtdGFibGUtcmVmIGhhc2h0YWJsZSBrZXkKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsYW1iZGEgKCkgKHNldCEgZm91bmQ/
ICNmKSAjZikpKSkKKyAgICAodmFsdWVzIHZhbHVlIGZvdW5kPykpKQorCisoZGVmaW5lKiAoaGFz
aHRhYmxlLXVwZGF0ZSEgaHQga2V5IG1vZGlmaWVyICM6b3B0aW9uYWwgZGVmYXVsdCkKKyAgKGlm
IGRlZmF1bHQKKyAgICAgIChnZW46aGFzaC10YWJsZS11cGRhdGUhL2RlZmF1bHQgaHQga2V5IG1v
ZGlmaWVyIGRlZmF1bHQpCisgICAgICAoZ2VuOmhhc2gtdGFibGUtdXBkYXRlISBodCBrZXkgbW9k
aWZpZXIpKSkKKworKGRlZmluZSBoYXNodGFibGUtaW50ZXJuISBnZW46aGFzaC10YWJsZS1pbnRl
cm4hKQorCisoZGVmaW5lKiAoaGFzaHRhYmxlLWNvcHkgaGFzaHRhYmxlICM6b3B0aW9uYWwgbXV0
YWJsZQorICAgICAgICAgICAgICAgICAgICAgICAgICh3ZWFrbmVzcyAoaGFzaHRhYmxlLXdlYWtu
ZXNzIGhhc2h0YWJsZSkpKQorICAoZ2VuOmhhc2gtdGFibGUtY29weSBoYXNodGFibGUgIzptdXRh
YmxlIG11dGFibGUgIzp3ZWFrbmVzcyB3ZWFrbmVzcykpCisKKzs7IChkZWZpbmUgaGFzaHRhYmxl
LWNsZWFyISBybnJzOmhhc2h0YWJsZS1jbGVhciEpCisKKyhkZWZpbmUqIChoYXNodGFibGUtZW1w
dHktY29weSBoYXNodGFibGUgIzpvcHRpb25hbCBjYXBhY2l0eQorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICh3ZWFrbmVzcyAoaGFzaHRhYmxlLXdlYWtuZXNzIGhhc2h0YWJsZSkpKQor
ICAobGV0ICgoY2FwYWNpdHkgKGNhc2UgY2FwYWNpdHkKKyAgICAgICAgICAgICAgICAgICAgKCgj
ZikgMSkKKyAgICAgICAgICAgICAgICAgICAgKCgjdCkgKGhhc2h0YWJsZS1zaXplIGhhc2h0YWJs
ZSkpCisgICAgICAgICAgICAgICAgICAgIChlbHNlIGNhcGFjaXR5KSkpKQorICAgIChnZW46aGFz
aC10YWJsZS1lbXB0eS1jb3B5IGhhc2h0YWJsZSAjOmNhcGFjaXR5IGNhcGFjaXR5ICM6d2Vha25l
c3Mgd2Vha25lc3MpKSkKKworDAorOzs7OyBBY2Nlc3Npbmcgd2hvbGUgdGFibGVzCisKKzs7IChk
ZWZpbmUgaGFzaHRhYmxlLXNpemUgcm5yczpoYXNodGFibGUtc2l6ZSkKKzs7IChkZWZpbmUgaGFz
aHRhYmxlLWtleXMgZ2VuOmhhc2gtdGFibGUta2V5LXZlY3RvcikKKyhkZWZpbmUgaGFzaHRhYmxl
LXZhbHVlcyBnZW46aGFzaC10YWJsZS12YWx1ZS12ZWN0b3IpCis7OyAoZGVmaW5lIGhhc2h0YWJs
ZS1lbnRyaWVzIHJucnM6aGFzaHRhYmxlLWVudHJpZXMpCisoZGVmaW5lIGhhc2h0YWJsZS1rZXkt
bGlzdCBnZW46aGFzaC10YWJsZS1rZXlzKQorKGRlZmluZSBoYXNodGFibGUtdmFsdWUtbGlzdCBn
ZW46aGFzaC10YWJsZS12YWx1ZXMpCisoZGVmaW5lIGhhc2h0YWJsZS1lbnRyeS1saXN0cyBnZW46
aGFzaC10YWJsZS1lbnRyaWVzKQorKGRlZmluZSBoYXNodGFibGUtPmFsaXN0IGdlbjpoYXNoLXRh
YmxlLT5hbGlzdCkKKworKGRlZmluZSAoaGFzaHRhYmxlLXdhbGsgaGFzaHRhYmxlIHByb2MpCisg
IChnZW46aGFzaC10YWJsZS1mb3ItZWFjaCBwcm9jIGhhc2h0YWJsZSkpCisKKyhkZWZpbmUgKGhh
c2h0YWJsZS11cGRhdGUtYWxsISBoYXNodGFibGUgcHJvYykKKyAgKGdlbjpoYXNoLXRhYmxlLW1h
cCEgcHJvYyBoYXNodGFibGUpKQorCisoZGVmaW5lIChoYXNodGFibGUtcHJ1bmUhIGhhc2h0YWJs
ZSBwcm9jKQorICAoZ2VuOmhhc2gtdGFibGUtcHJ1bmUhIHByb2MgaGFzaHRhYmxlKSkKKworKGRl
ZmluZSAoaGFzaHRhYmxlLXN1bSBoYXNodGFibGUgaW5pdCBwcm9jKQorICAoZ2VuOmhhc2gtdGFi
bGUtZm9sZCBwcm9jIGluaXQgaGFzaHRhYmxlKSkKKworKGRlZmluZSAoaGFzaHRhYmxlLW1lcmdl
ISBodCBvdGhlci1odCkKKyAgKGdlbjpoYXNoLXRhYmxlLWZvci1lYWNoIChsYW1iZGEgKGsgdikg
KGhhc2h0YWJsZS1zZXQhIGh0IGsgdikpCisgICAgICAgICAgICAgICAgICAgICAgICAgICBvdGhl
ci1odCkKKyAgaHQpCisKKyhkZWZpbmUgKGhhc2h0YWJsZS1tYXAtPmxzZXQgaGFzaHRhYmxlIHBy
b2MpCisgIChnZW46aGFzaC10YWJsZS1tYXAtPmxpc3QgcHJvYyBoYXNodGFibGUpKQorCisoZGVm
aW5lIChoYXNodGFibGUtZmluZCBoYXNodGFibGUgcHJvYykKKyAgKGNhbGwvY2MgKGxhbWJkYSAo
cmV0dXJuKQorICAgICAgICAgICAgIChnZW46aGFzaC10YWJsZS1mb3ItZWFjaCAobGFtYmRhIChr
IHYpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHdoZW4gKHByb2Mg
ayB2KSAocmV0dXJuIGsgdiAjdCkpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBoYXNodGFibGUpCisgICAgICAgICAgICAgKHZhbHVlcyAqdW5zcGVjaWZpZWQqICp1bnNw
ZWNpZmllZCogI2YpKSkpCisKKyhkZWZpbmUgaGFzaHRhYmxlLWVtcHR5PyBnZW46aGFzaC10YWJs
ZS1lbXB0eT8pCisoZGVmaW5lIGhhc2h0YWJsZS1wb3AhIGdlbjpoYXNoLXRhYmxlLXBvcCEpCisK
KyhkZWZpbmUqIChoYXNodGFibGUtaW5jISBoYXNodGFibGUga2V5ICM6b3B0aW9uYWwgKG51bWJl
ciAxKSkKKyAgKGhhc2h0YWJsZS11cGRhdGUhIGhhc2h0YWJsZSBrZXkgKGxhbWJkYSAodikgKCsg
diBudW1iZXIpKSAwKSkKKworKGRlZmluZSogKGhhc2h0YWJsZS1kZWMhIGhhc2h0YWJsZSBrZXkg
IzpvcHRpb25hbCAobnVtYmVyIDEpKQorICAoaGFzaHRhYmxlLXVwZGF0ZSEgaGFzaHRhYmxlIGtl
eSAobGFtYmRhICh2KSAoLSB2IG51bWJlcikpIDApKQorCisoZGVmaW5lIGhhc2h0YWJsZS13ZWFr
bmVzcyBnZW46aGFzaC10YWJsZS13ZWFrbmVzcykKKzs7IChkZWZpbmUgaGFzaHRhYmxlLW11dGFi
bGU/IHJucnM6aGFzaHRhYmxlLW11dGFibGU/KQorOzsgKGRlZmluZSBoYXNodGFibGUtZXF1aXZh
bGVuY2UtZnVuY3Rpb24gcm5yczpoYXNodGFibGUtZXF1aXZhbGVuY2UtZnVuY3Rpb24pCis7OyAo
ZGVmaW5lIGhhc2h0YWJsZS1oYXNoLWZ1bmN0aW9uIHJucnM6aGFzaHRhYmxlLWhhc2gtZnVuY3Rp
b24pCis7OyAoZGVmaW5lIGVxdWFsLWhhc2ggcm5yczplcXVhbC1oYXNoKQorOzsgKGRlZmluZSBz
dHJpbmctaGFzaCBybnJzOnN0cmluZy1oYXNoKQorOzsgKGRlZmluZSBzdHJpbmctY2ktaGFzaCBy
bnJzOnN0cmluZy1jaS1oYXNoKQorOzsgKGRlZmluZSBzeW1ib2wtaGFzaCBybnJzOnN5bWJvbC1o
YXNoKQorCisoZGVmaW5lICpoYXNoLXNhbHQqCisgIChsZXQgKChzZWVkIChnZXRlbnYgIlNSRklf
MTI2X0hBU0hfU0VFRCIpKSkKKyAgICAoaWYgKG9yIChub3Qgc2VlZCkgKHN0cmluZz0/IHNlZWQg
IiIpKQorICAgICAgICAocmFuZG9tIG1vc3QtcG9zaXRpdmUtZml4bnVtKQorICAgICAgICAobW9k
dWxvIChzdHJpbmctaGFzaCBzZWVkKSBtb3N0LXBvc2l0aXZlLWZpeG51bSkpKSkKKworKGRlZmlu
ZSAoaGFzaC1zYWx0KSAqaGFzaC1zYWx0KikKKworOzsgZW9mCmRpZmYgLS1naXQgYS90ZXN0LXN1
aXRlL01ha2VmaWxlLmFtIGIvdGVzdC1zdWl0ZS9NYWtlZmlsZS5hbQppbmRleCBlMTU0NjAyYTcu
LmYwYWQ4YmI5MSAxMDA2NDQKLS0tIGEvdGVzdC1zdWl0ZS9NYWtlZmlsZS5hbQorKysgYi90ZXN0
LXN1aXRlL01ha2VmaWxlLmFtCkBAIC0xNjIsNiArMTYyLDcgQEAgU0NNX1RFU1RTID0gdGVzdHMv
MDAtaW5pdGlhbC1lbnYudGVzdAkJXAogCSAgICB0ZXN0cy9zcmZpLTk4LnRlc3QJCQlcCiAJICAg
IHRlc3RzL3NyZmktMTA1LnRlc3QJCQlcCiAJICAgIHRlc3RzL3NyZmktMTExLnRlc3QJCQlcCisJ
ICAgIHRlc3RzL3NyZmktMTI2LnRlc3QJCQlcCiAJICAgIHRlc3RzL3NyZmktNC50ZXN0CQkJXAog
CSAgICB0ZXN0cy9zcmZpLTkudGVzdAkJCVwKIAkgICAgdGVzdHMvc3RhdHByb2YudGVzdAkJCVwK
ZGlmZiAtLWdpdCBhL3Rlc3Qtc3VpdGUvdGVzdHMvc3JmaS0xMjYudGVzdCBiL3Rlc3Qtc3VpdGUv
dGVzdHMvc3JmaS0xMjYudGVzdApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAu
LmU2YTRlNjZhOQotLS0gL2Rldi9udWxsCisrKyBiL3Rlc3Qtc3VpdGUvdGVzdHMvc3JmaS0xMjYu
dGVzdApAQCAtMCwwICsxLDM0NCBAQAorOzs7OyBzcmZpLTY5LnRlc3QgLS0tIFRlc3Qgc3VpdGUg
Zm9yIFNSRkkgNjkgLSotIHNjaGVtZSAtKi0KKzs7OzsKKzs7OzsgCUNvcHlyaWdodCAoQykgMjAw
NyBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KKzs7OzsKKzs7OzsgVGhpcyBsaWJyYXJ5
IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorOzs7OyBt
b2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGlj
Cis7Ozs7IExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRp
b247IGVpdGhlcgorOzs7OyB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9w
dGlvbikgYW55IGxhdGVyIHZlcnNpb24uCis7Ozs7Cis7Ozs7IFRoaXMgbGlicmFyeSBpcyBkaXN0
cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorOzs7OyBidXQgV0lU
SE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgor
Ozs7OyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0Uu
ICBTZWUgdGhlIEdOVQorOzs7OyBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9y
ZSBkZXRhaWxzLgorOzs7OworOzs7OyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9m
IHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCis7Ozs7IExpY2Vuc2UgYWxvbmcgd2l0aCB0
aGlzIGxpYnJhcnk7IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKKzs7OzsgRm91
bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwgQm9zdG9uLCBN
QSAwMjExMC0xMzAxIFVTQQorCis7OzsgVGhlIGZvbGxvd2luZyB0ZXN0cyBhcmUgdGhlIHRlc3Rz
IGZyb20gU1JGSS0xMjYgcmVmZXJlbmNlCis7OzsgaW1wbGVtZW50YXRpb24gcG9ydGVkIHRvIEd1
aWxlIHRlc3Qgc3VpdGUuCisKKyhkZWZpbmUtbW9kdWxlICh0ZXN0LXNyZmktMTI2KQorICAjOnVz
ZS1tb2R1bGUgKHRlc3Qtc3VpdGUgbGliKQorICAjOnVzZS1tb2R1bGUgKHNyZmkgc3JmaS0xMjYp
CisgICM6dXNlLW1vZHVsZSAoc3JmaSBzcmZpLTEpCisgICM6dXNlLW1vZHVsZSAoc3JmaSBzcmZp
LTIpCisgICM6dXNlLW1vZHVsZSAoc3JmaSBzcmZpLTgpKQorCisoZGVmaW5lLXN5bnRheCB3aXRo
LWVsdC1pbi1saXN0CisgIChzeW50YXgtcnVsZXMgKCkKKyAgICAoKHdpdGgtZWx0LWluLWxpc3Qg
YXJnIGFyZy1saXN0IGV4cHIgLi4uKQorICAgICAobGV0IGxvb3AgKChhcmctbGlzdCogYXJnLWxp
c3QpKQorICAgICAgIChvciAobnVsbD8gYXJnLWxpc3QqKQorICAgICAgICAgICAoYW5kIChsZXQg
KChhcmcgKGNhciBhcmctbGlzdCopKSkKKyAgICAgICAgICAgICAgICAgIGV4cHIgLi4uKQorICAg
ICAgICAgICAgICAgIChsb29wIChjZHIgYXJnLWxpc3QqKSkpKSkpKSkKKworKGRlZmluZSAoZXhh
Y3QtaW50ZWdlcj8gb2JqKQorICAoYW5kIChpbnRlZ2VyPyBvYmopIChleGFjdD8gb2JqKSkpCisK
KyhkZWZpbmUgKHRlc3Qtc3RyLXdlYWtuZXNzIHN0ciB3ZWFrbmVzcykKKyAgKGlmIChub3Qgd2Vh
a25lc3MpIHN0ciAoZm9ybWF0ICNmICJ+YSAod2Vha25lc3M6IH5hKSIgc3RyIHdlYWtuZXNzKSkp
CisKKworCisod2l0aC10ZXN0LXByZWZpeCAiU1JGSS0xMjYiCisKKyAgOzsgVGhlIGZvbGxvd2lu
ZyB0ZXN0cyBhcmUgZG9uZSBvbmNlIHdpdGggZWFjaCBraW5kIG9mIHdlYWtuZXNzCisgICh3aXRo
LWVsdC1pbi1saXN0IHdlYWtuZXNzIChsaXN0ICNmICd3ZWFrLWtleSAnd2Vhay12YWx1ZSAnd2Vh
ay1rZXktYW5kLXZhbHVlKQorCisgICAgKHdpdGgtdGVzdC1wcmVmaXggImVxIgorICAgICAgKGxl
dCAoKHRhYmxlcyAobGlzdCAoYW5kIChub3Qgd2Vha25lc3MpCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgKG1ha2UtZXEtaGFzaHRhYmxlKSkKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgKG1ha2UtZXEtaGFzaHRhYmxlIDEwIHdlYWtuZXNzKQorICAgICAgICAgICAgICAgICAgICAg
ICAgICAobWFrZS1lcS1oYXNodGFibGUgI2Ygd2Vha25lc3MpCisgICAgICAgICAgICAgICAgICAg
ICAgICAgIChtYWtlLWhhc2h0YWJsZSAjZiBlcT8gI2Ygd2Vha25lc3MpCisgICAgICAgICAgICAg
ICAgICAgICAgICAgIChhbmQgKG5vdCB3ZWFrbmVzcykKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAoYWxpc3QtPmVxLWhhc2h0YWJsZSAnKChhIC4gYikgKGMgLiBkKSkpKQorICAgICAg
ICAgICAgICAgICAgICAgICAgICAoYWxpc3QtPmVxLWhhc2h0YWJsZSAxMCB3ZWFrbmVzcyAnKChh
IC4gYikgKGMgLiBkKSkpCisgICAgICAgICAgICAgICAgICAgICAgICAgIChhbGlzdC0+ZXEtaGFz
aHRhYmxlICNmIHdlYWtuZXNzICcoKGEgLiBiKSAoYyAuIGQpKSkpKSkKKyAgICAgICAgKGRvICgo
dGFibGVzIHRhYmxlcyAoY2RyIHRhYmxlcykpCisgICAgICAgICAgICAgKGkgMCAoKyBpIDEpKSkK
KyAgICAgICAgICAgICgobnVsbD8gdGFibGVzKSkKKyAgICAgICAgICAoYW5kLWxldCogKCh0YWJs
ZSAoY2FyIHRhYmxlcykpKQorICAgICAgICAgICAgKHdpdGgtdGVzdC1wcmVmaXggKHRlc3Qtc3Ry
LXdlYWtuZXNzIChmb3JtYXQgI2YgInRhYmxlIH5hIiBpKSB3ZWFrbmVzcykKKyAgICAgICAgICAg
ICAgKHBhc3MtaWYgKGhhc2h0YWJsZT8gdGFibGUpKQorICAgICAgICAgICAgICAocGFzcy1pZi1l
cXVhbCAjZiAoaGFzaHRhYmxlLWhhc2gtZnVuY3Rpb24gdGFibGUpKQorICAgICAgICAgICAgICAo
cGFzcy1pZi1lcXVhbCBlcT8gKGhhc2h0YWJsZS1lcXVpdmFsZW5jZS1mdW5jdGlvbiB0YWJsZSkp
CisgICAgICAgICAgICAgIChwYXNzLWlmLWVxdWFsIHdlYWtuZXNzIChoYXNodGFibGUtd2Vha25l
c3MgdGFibGUpKQorICAgICAgICAgICAgICAocGFzcy1pZiAoaGFzaHRhYmxlLW11dGFibGU/IHRh
YmxlKSkpKSkpKQorCisgICAgKHdpdGgtdGVzdC1wcmVmaXggImVxdiIKKyAgICAgIChsZXQgKCh0
YWJsZXMgKGxpc3QgKGFuZCAobm90IHdlYWtuZXNzKQorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIChtYWtlLWVxdi1oYXNodGFibGUpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAo
bWFrZS1lcXYtaGFzaHRhYmxlIDEwIHdlYWtuZXNzKQorICAgICAgICAgICAgICAgICAgICAgICAg
ICAobWFrZS1lcXYtaGFzaHRhYmxlICNmIHdlYWtuZXNzKQorICAgICAgICAgICAgICAgICAgICAg
ICAgICAobWFrZS1oYXNodGFibGUgI2YgZXF2PyAjZiB3ZWFrbmVzcykKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgKGFuZCAobm90IHdlYWtuZXNzKQorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIChhbGlzdC0+ZXF2LWhhc2h0YWJsZSAnKChhIC4gYikgKGMgLiBkKSkpKQorICAgICAg
ICAgICAgICAgICAgICAgICAgICAoYWxpc3QtPmVxdi1oYXNodGFibGUgMTAgd2Vha25lc3MgJygo
YSAuIGIpIChjIC4gZCkpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAoYWxpc3QtPmVxdi1o
YXNodGFibGUgI2Ygd2Vha25lc3MgJygoYSAuIGIpIChjIC4gZCkpKSkpKQorICAgICAgICAoZG8g
KCh0YWJsZXMgdGFibGVzIChjZHIgdGFibGVzKSkKKyAgICAgICAgICAgICAoaSAwICgrIGkgMSkp
KQorICAgICAgICAgICAgKChudWxsPyB0YWJsZXMpKQorICAgICAgICAgIChhbmQtbGV0KiAoKHRh
YmxlIChjYXIgdGFibGVzKSkpCisgICAgICAgICAgICAod2l0aC10ZXN0LXByZWZpeCAodGVzdC1z
dHItd2Vha25lc3MgKGZvcm1hdCAjZiAidGFibGUgfmEiIGkpIHdlYWtuZXNzKQorICAgICAgICAg
ICAgICAocGFzcy1pZiAoaGFzaHRhYmxlPyB0YWJsZSkpCisgICAgICAgICAgICAgIChwYXNzLWlm
LWVxdWFsICNmIChoYXNodGFibGUtaGFzaC1mdW5jdGlvbiB0YWJsZSkpCisgICAgICAgICAgICAg
IChwYXNzLWlmLWVxdWFsIGVxdj8gKGhhc2h0YWJsZS1lcXVpdmFsZW5jZS1mdW5jdGlvbiB0YWJs
ZSkpCisgICAgICAgICAgICAgIChwYXNzLWlmLWVxdWFsIHdlYWtuZXNzIChoYXNodGFibGUtd2Vh
a25lc3MgdGFibGUpKQorICAgICAgICAgICAgICAocGFzcy1pZiAoaGFzaHRhYmxlLW11dGFibGU/
IHRhYmxlKSkpKSkpKQorCisgICAgKHdpdGgtdGVzdC1wcmVmaXggImVxdWFsIgorICAgICAgKGxl
dCAoKHRhYmxlcyAobGlzdCAoYW5kIChub3Qgd2Vha25lc3MpCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgKG1ha2UtaGFzaHRhYmxlIGVxdWFsLWhhc2ggZXF1YWw/KSkKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgKG1ha2UtaGFzaHRhYmxlIGVxdWFsLWhhc2ggZXF1YWw/IDEwIHdl
YWtuZXNzKQorICAgICAgICAgICAgICAgICAgICAgICAgICAobWFrZS1oYXNodGFibGUgZXF1YWwt
aGFzaCBlcXVhbD8gI2Ygd2Vha25lc3MpCisgICAgICAgICAgICAgICAgICAgICAgICAgIChhbmQg
KG5vdCB3ZWFrbmVzcykKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoYWxpc3QtPmhh
c2h0YWJsZSBlcXVhbC1oYXNoIGVxdWFsPyAnKChhIC4gYikgKGMgLiBkKSkpKQorICAgICAgICAg
ICAgICAgICAgICAgICAgICAoYWxpc3QtPmhhc2h0YWJsZSBlcXVhbC1oYXNoIGVxdWFsPyAxMCB3
ZWFrbmVzcworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnKChh
IC4gYikgKGMgLiBkKSkpCisgICAgICAgICAgICAgICAgICAgICAgICAgIChhbGlzdC0+aGFzaHRh
YmxlIGVxdWFsLWhhc2ggZXF1YWw/ICNmIHdlYWtuZXNzCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICcoKGEgLiBiKSAoYyAuIGQpKSkKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgKGFuZCAobm90IHdlYWtuZXNzKQorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIChtYWtlLWhhc2h0YWJsZSAoY29ucyBlcXVhbC1oYXNoIGVxdWFsLWhhc2gpIGVxdWFs
PykpKSkpCisgICAgICAgIChkbyAoKHRhYmxlcyB0YWJsZXMgKGNkciB0YWJsZXMpKQorICAgICAg
ICAgICAgIChpIDAgKCsgaSAxKSkpCisgICAgICAgICAgICAoKG51bGw/IHRhYmxlcykpCisgICAg
ICAgICAgKGFuZC1sZXQqICgodGFibGUgKGNhciB0YWJsZXMpKSkKKyAgICAgICAgICAgICh3aXRo
LXRlc3QtcHJlZml4ICh0ZXN0LXN0ci13ZWFrbmVzcyAoZm9ybWF0ICNmICJ0YWJsZSB+YSIgaSkg
d2Vha25lc3MpCisgICAgICAgICAgICAgIChwYXNzLWlmIChoYXNodGFibGU/IHRhYmxlKSkKKyAg
ICAgICAgICAgICAgKHBhc3MtaWYtZXF1YWwgZXF1YWwtaGFzaCAoaGFzaHRhYmxlLWhhc2gtZnVu
Y3Rpb24gdGFibGUpKQorICAgICAgICAgICAgICAocGFzcy1pZi1lcXVhbCBlcXVhbD8gKGhhc2h0
YWJsZS1lcXVpdmFsZW5jZS1mdW5jdGlvbiB0YWJsZSkpCisgICAgICAgICAgICAgIChwYXNzLWlm
LWVxdWFsIHdlYWtuZXNzIChoYXNodGFibGUtd2Vha25lc3MgdGFibGUpKQorICAgICAgICAgICAg
ICAocGFzcy1pZiAoaGFzaHRhYmxlLW11dGFibGU/IHRhYmxlKSkpKSkpKQorCisgICAgKHdpdGgt
dGVzdC1wcmVmaXggImFsaXN0IgorICAgICAgKGxldCAoKHRhYmxlcyAobGlzdCAoYW5kIChub3Qg
d2Vha25lc3MpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGFsaXN0LT5lcS1oYXNo
dGFibGUgJygoYSAuIGIpIChhIC4gYykpKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgKGFu
ZCAobm90IHdlYWtuZXNzKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChhbGlzdC0+
ZXF2LWhhc2h0YWJsZSAnKChhIC4gYikgKGEgLiBjKSkpKQorICAgICAgICAgICAgICAgICAgICAg
ICAgICAoYW5kIChub3Qgd2Vha25lc3MpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
KGFsaXN0LT5oYXNodGFibGUgZXF1YWwtaGFzaCBlcXVhbD8KKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnKChhIC4gYikgKGEgLiBjKSkpKQorICAgICAg
ICAgICAgICAgICAgICAgICAgICAoYWxpc3QtPmVxLWhhc2h0YWJsZSAjZiB3ZWFrbmVzcyAnKChh
IC4gYikgKGEgLiBjKSkpCisgICAgICAgICAgICAgICAgICAgICAgICAgIChhbGlzdC0+ZXF2LWhh
c2h0YWJsZSAjZiB3ZWFrbmVzcyAnKChhIC4gYikgKGEgLiBjKSkpCisgICAgICAgICAgICAgICAg
ICAgICAgICAgIChhbGlzdC0+aGFzaHRhYmxlIGVxdWFsLWhhc2ggZXF1YWw/ICNmIHdlYWtuZXNz
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICcoKGEgLiBiKSAo
YSAuIGMpKSkpKSkKKyAgICAgICAgKGRvICgodGFibGVzIHRhYmxlcyAoY2RyIHRhYmxlcykpCisg
ICAgICAgICAgICAgKGkgMCAoKyBpIDEpKSkKKyAgICAgICAgICAgICgobnVsbD8gdGFibGVzKSkK
KyAgICAgICAgICAoYW5kLWxldCogKCh0YWJsZSAoY2FyIHRhYmxlcykpKQorICAgICAgICAgICAg
KHdpdGgtdGVzdC1wcmVmaXggKHRlc3Qtc3RyLXdlYWtuZXNzIChmb3JtYXQgI2YgInRhYmxlIH5h
IiBpKSB3ZWFrbmVzcykKKyAgICAgICAgICAgICAgKHBhc3MtaWYtZXF1YWwgJ2IgKGhhc2h0YWJs
ZS1yZWYgdGFibGUgJ2EpKSkpKSkpCisKKyAgICAod2l0aC10ZXN0LXByZWZpeCAicHJvY2VkdXJl
cyIKKyAgICAgICh3aXRoLXRlc3QtcHJlZml4ICJiYXNpY3MiCisgICAgICAgIChsZXQgKCh0YWJs
ZSAobWFrZS1lcS1oYXNodGFibGUgI2Ygd2Vha25lc3MpKSkKKyAgICAgICAgICAod2l0aC10ZXN0
LXByZWZpeCAicmVmIgorICAgICAgICAgICAgKHBhc3MtaWYtZXhjZXB0aW9uICJrZXkgbm90IGZv
dW5kIgorICAgICAgICAgICAgICAgICcobWlzYy1lcnJvciAuICJeS2V5IG5vdCBpbiB0YWJsZSIp
CisgICAgICAgICAgICAgIChoYXNodGFibGUtcmVmIHRhYmxlICdhKSkKKyAgICAgICAgICAgIChw
YXNzLWlmLWVxdWFsICdiIChoYXNodGFibGUtcmVmIHRhYmxlICdhICdiKSkKKyAgICAgICAgICAg
IChwYXNzLWlmIChub3QgKGhhc2h0YWJsZS1jb250YWlucz8gdGFibGUgJ2EpKSkKKyAgICAgICAg
ICAgIChwYXNzLWlmLWVxdWFsIDAgKGhhc2h0YWJsZS1zaXplIHRhYmxlKSkpCisgICAgICAgICAg
KHdpdGgtdGVzdC1wcmVmaXggInNldCIKKyAgICAgICAgICAgIChoYXNodGFibGUtc2V0ISB0YWJs
ZSAnYSAnYykKKyAgICAgICAgICAgIChwYXNzLWlmLWVxdWFsICdjIChoYXNodGFibGUtcmVmIHRh
YmxlICdhKSkKKyAgICAgICAgICAgIChwYXNzLWlmLWVxdWFsICdjIChoYXNodGFibGUtcmVmIHRh
YmxlICdhICdiKSkKKyAgICAgICAgICAgIChwYXNzLWlmIChoYXNodGFibGUtY29udGFpbnM/IHRh
YmxlICdhKSkKKyAgICAgICAgICAgIChwYXNzLWlmLWVxdWFsIDEgKGhhc2h0YWJsZS1zaXplIHRh
YmxlKSkpCisgICAgICAgICAgKHdpdGgtdGVzdC1wcmVmaXggImRlbGV0ZSIKKyAgICAgICAgICAg
IChoYXNodGFibGUtZGVsZXRlISB0YWJsZSAnYSkKKyAgICAgICAgICAgIChwYXNzLWlmLWV4Y2Vw
dGlvbiAia2V5IG5vdCBmb3VuZCIKKyAgICAgICAgICAgICAgICAnKG1pc2MtZXJyb3IgLiAiXktl
eSBub3QgaW4gdGFibGUiKQorICAgICAgICAgICAgICAoaGFzaHRhYmxlLXJlZiB0YWJsZSAnYSkp
CisgICAgICAgICAgICAocGFzcy1pZi1lcXVhbCAnYiAoaGFzaHRhYmxlLXJlZiB0YWJsZSAnYSAn
YikpCisgICAgICAgICAgICAocGFzcy1pZiAobm90IChoYXNodGFibGUtY29udGFpbnM/IHRhYmxl
ICdhKSkpCisgICAgICAgICAgICAocGFzcy1pZi1lcXVhbCAwIChoYXNodGFibGUtc2l6ZSB0YWJs
ZSkpKSkpKQorCisgICAgKHdpdGgtdGVzdC1wcmVmaXggImFkdmFuY2VkIgorICAgICAgKGxldCAo
KHRhYmxlIChtYWtlLWVxLWhhc2h0YWJsZSkpKQorICAgICAgICAod2l0aC10ZXN0LXByZWZpeCAi
bG9va3VwIgorICAgICAgICAgIChyZWNlaXZlICh4IGZvdW5kPykgKGhhc2h0YWJsZS1sb29rdXAg
dGFibGUgJ2EpCisgICAgICAgICAgICAocGFzcy1pZiAobm90IGZvdW5kPykpKSkKKyAgICAgICAg
KHdpdGgtdGVzdC1wcmVmaXggInVwZGF0ZSIKKyAgICAgICAgICAocGFzcy1pZi1leGNlcHRpb24g
ImtleSBub3QgZm91bmQiCisgICAgICAgICAgICAgICcobWlzYy1lcnJvciAuICJeS2V5IG5vdCBp
biB0YWJsZSIpCisgICAgICAgICAgICAoaGFzaHRhYmxlLXVwZGF0ZSEgdGFibGUgJ2EgKGxhbWJk
YSAoeCkgKCsgeCAxKSkpKQorICAgICAgICAgIChoYXNodGFibGUtdXBkYXRlISB0YWJsZSAnYSAo
bGFtYmRhICh4KSAoKyB4IDEpKSAwKQorICAgICAgICAgIChyZWNlaXZlICh4IGZvdW5kPykgKGhh
c2h0YWJsZS1sb29rdXAgdGFibGUgJ2EpCisgICAgICAgICAgICAocGFzcy1pZi1lcXVhbCAxIHgp
CisgICAgICAgICAgICAocGFzcy1pZiBmb3VuZD8pKQorICAgICAgICAgIChoYXNodGFibGUtdXBk
YXRlISB0YWJsZSAnYSAobGFtYmRhICh4KSAoKyB4IDEpKSkKKyAgICAgICAgICAocmVjZWl2ZSAo
eCBmb3VuZD8pIChoYXNodGFibGUtbG9va3VwIHRhYmxlICdhKQorICAgICAgICAgICAgKHBhc3Mt
aWYtZXF1YWwgeCAyKQorICAgICAgICAgICAgKHBhc3MtaWYgZm91bmQ/KSkKKyAgICAgICAgICAo
aGFzaHRhYmxlLXVwZGF0ZSEgdGFibGUgJ2EgKGxhbWJkYSAoeCkgKCsgeCAxKSkgMCkKKyAgICAg
ICAgICAocmVjZWl2ZSAoeCBmb3VuZD8pIChoYXNodGFibGUtbG9va3VwIHRhYmxlICdhKQorICAg
ICAgICAgICAgKHBhc3MtaWYtZXF1YWwgeCAzKQorICAgICAgICAgICAgKHBhc3MtaWYgZm91bmQ/
KSkpCisgICAgICAgICh3aXRoLXRlc3QtcHJlZml4ICJpbnRlcm4iCisgICAgICAgICAgKHBhc3Mt
aWYtZXF1YWwgMCAoaGFzaHRhYmxlLWludGVybiEgdGFibGUgJ2IgKGxhbWJkYSAoKSAwKSkpCisg
ICAgICAgICAgKHBhc3MtaWYtZXF1YWwgMCAoaGFzaHRhYmxlLWludGVybiEgdGFibGUgJ2IgKGxh
bWJkYSAoKSAxKSkpKSkpCisKKyAgICAod2l0aC10ZXN0LXByZWZpeCAiY29weS9jbGVhciIKKyAg
ICAgIChsZXQgKCh0YWJsZSAoYWxpc3QtPmhhc2h0YWJsZSBlcXVhbC1oYXNoIGVxdWFsPyAjZiB3
ZWFrbmVzcyAnKChhIC4gYikpKSkpCisgICAgICAgICh3aXRoLXRlc3QtcHJlZml4ICJjb3B5Igor
ICAgICAgICAgIChsZXQgKCh0YWJsZTIgKGhhc2h0YWJsZS1jb3B5IHRhYmxlKSkpCisgICAgICAg
ICAgICAocGFzcy1pZi1lcXVhbCBlcXVhbC1oYXNoIChoYXNodGFibGUtaGFzaC1mdW5jdGlvbiB0
YWJsZTIpKQorICAgICAgICAgICAgKHBhc3MtaWYtZXF1YWwgZXF1YWw/IChoYXNodGFibGUtZXF1
aXZhbGVuY2UtZnVuY3Rpb24gdGFibGUyKSkKKyAgICAgICAgICAgIChwYXNzLWlmLWVxdWFsICdi
IChoYXNodGFibGUtcmVmIHRhYmxlMiAnYSkpCisgICAgICAgICAgICAocGFzcy1pZi1lcXVhbCB3
ZWFrbmVzcyAoaGFzaHRhYmxlLXdlYWtuZXNzIHRhYmxlMikpCisgICAgICAgICAgICAocGFzcy1p
Zi1leGNlcHRpb24gInNldCEgaW1tdXRhYmxlIHRhYmxlIgorICAgICAgICAgICAgICAgICcobWlz
Yy1lcnJvciAuICJeSGFzaCB0YWJsZSBpcyBub3QgbXV0YWJsZSIpCisgICAgICAgICAgICAgICho
YXNodGFibGUtc2V0ISB0YWJsZTIgJ2EgJ2MpKSkKKyAgICAgICAgICAobGV0ICgodGFibGUyICho
YXNodGFibGUtY29weSB0YWJsZSAjZikpKQorICAgICAgICAgICAgKHBhc3MtaWYtZXF1YWwgZXF1
YWwtaGFzaCAoaGFzaHRhYmxlLWhhc2gtZnVuY3Rpb24gdGFibGUyKSkKKyAgICAgICAgICAgIChw
YXNzLWlmLWVxdWFsIGVxdWFsPyAoaGFzaHRhYmxlLWVxdWl2YWxlbmNlLWZ1bmN0aW9uIHRhYmxl
MikpCisgICAgICAgICAgICAocGFzcy1pZi1lcXVhbCAnYiAoaGFzaHRhYmxlLXJlZiB0YWJsZTIg
J2EpKQorICAgICAgICAgICAgKHBhc3MtaWYtZXF1YWwgd2Vha25lc3MgKGhhc2h0YWJsZS13ZWFr
bmVzcyB0YWJsZTIpKQorICAgICAgICAgICAgKHBhc3MtaWYtZXhjZXB0aW9uICJzZXQhIGltbXV0
YWJsZSB0YWJsZSIKKyAgICAgICAgICAgICAgICAnKG1pc2MtZXJyb3IgLiAiXkhhc2ggdGFibGUg
aXMgbm90IG11dGFibGUiKQorICAgICAgICAgICAgICAoaGFzaHRhYmxlLXNldCEgdGFibGUyICdh
ICdjKSkpCisgICAgICAgICAgKGxldCAoKHRhYmxlMiAoaGFzaHRhYmxlLWNvcHkgdGFibGUgI3Qp
KSkKKyAgICAgICAgICAgIChwYXNzLWlmLWVxdWFsIGVxdWFsLWhhc2ggKGhhc2h0YWJsZS1oYXNo
LWZ1bmN0aW9uIHRhYmxlMikpCisgICAgICAgICAgICAocGFzcy1pZi1lcXVhbCBlcXVhbD8gKGhh
c2h0YWJsZS1lcXVpdmFsZW5jZS1mdW5jdGlvbiB0YWJsZTIpKQorICAgICAgICAgICAgKHBhc3Mt
aWYtZXF1YWwgJ2IgKGhhc2h0YWJsZS1yZWYgdGFibGUyICdhKSkKKyAgICAgICAgICAgIChwYXNz
LWlmLWVxdWFsIHdlYWtuZXNzIChoYXNodGFibGUtd2Vha25lc3MgdGFibGUyKSkKKyAgICAgICAg
ICAgIChoYXNodGFibGUtc2V0ISB0YWJsZTIgJ2EgJ2MpCisgICAgICAgICAgICAocGFzcy1pZi1l
cXVhbCAnYyAoaGFzaHRhYmxlLXJlZiB0YWJsZTIgJ2EpKSkKKyAgICAgICAgICAobGV0ICgodGFi
bGUyIChoYXNodGFibGUtY29weSB0YWJsZSAjZiAjZikpKQorICAgICAgICAgICAgKHBhc3MtaWYt
ZXF1YWwgZXF1YWwtaGFzaCAoaGFzaHRhYmxlLWhhc2gtZnVuY3Rpb24gdGFibGUyKSkKKyAgICAg
ICAgICAgIChwYXNzLWlmLWVxdWFsIGVxdWFsPyAoaGFzaHRhYmxlLWVxdWl2YWxlbmNlLWZ1bmN0
aW9uIHRhYmxlMikpCisgICAgICAgICAgICAocGFzcy1pZi1lcXVhbCAjZiAoaGFzaHRhYmxlLXdl
YWtuZXNzIHRhYmxlMikpKSkKKworICAgICAgICAod2l0aC10ZXN0LXByZWZpeCAiY2xlYXIiCisg
ICAgICAgICAgKGxldCAoKHRhYmxlMiAoaGFzaHRhYmxlLWNvcHkgdGFibGUgI3QpKSkKKyAgICAg
ICAgICAgIChoYXNodGFibGUtY2xlYXIhIHRhYmxlMikKKyAgICAgICAgICAgIChwYXNzLWlmLWVx
dWFsIDAgKGhhc2h0YWJsZS1zaXplIHRhYmxlMikpKQorICAgICAgICAgIChsZXQgKCh0YWJsZTIg
KGhhc2h0YWJsZS1jb3B5IHRhYmxlICN0KSkpCisgICAgICAgICAgICAoaGFzaHRhYmxlLWNsZWFy
ISB0YWJsZTIgMTApCisgICAgICAgICAgICAocGFzcy1pZi1lcXVhbCAwIChoYXNodGFibGUtc2l6
ZSB0YWJsZTIpKSkpCisKKyAgICAgICAgKHdpdGgtdGVzdC1wcmVmaXggImVtcHR5LWNvcHkiCisg
ICAgICAgICAgKGxldCAoKHRhYmxlMiAoaGFzaHRhYmxlLWVtcHR5LWNvcHkgdGFibGUpKSkKKyAg
ICAgICAgICAgIChwYXNzLWlmLWVxdWFsIGVxdWFsLWhhc2ggKGhhc2h0YWJsZS1oYXNoLWZ1bmN0
aW9uIHRhYmxlMikpCisgICAgICAgICAgICAocGFzcy1pZi1lcXVhbCBlcXVhbD8gKGhhc2h0YWJs
ZS1lcXVpdmFsZW5jZS1mdW5jdGlvbiB0YWJsZTIpKQorICAgICAgICAgICAgKHBhc3MtaWYtZXF1
YWwgMCAoaGFzaHRhYmxlLXNpemUgdGFibGUyKSkpCisgICAgICAgICAgKGxldCAoKHRhYmxlMiAo
aGFzaHRhYmxlLWVtcHR5LWNvcHkgdGFibGUgMTApKSkKKyAgICAgICAgICAgIChwYXNzLWlmLWVx
dWFsIGVxdWFsLWhhc2ggKGhhc2h0YWJsZS1oYXNoLWZ1bmN0aW9uIHRhYmxlMikpCisgICAgICAg
ICAgICAocGFzcy1pZi1lcXVhbCBlcXVhbD8gKGhhc2h0YWJsZS1lcXVpdmFsZW5jZS1mdW5jdGlv
biB0YWJsZTIpKQorICAgICAgICAgICAgKHBhc3MtaWYtZXF1YWwgMCAoaGFzaHRhYmxlLXNpemUg
dGFibGUyKSkpKSkpCisKKyAgICAod2l0aC10ZXN0LXByZWZpeCAia2V5cy92YWx1ZXMiCisgICAg
ICAobGV0ICgodGFibGUgKGFsaXN0LT5lcS1oYXNodGFibGUgJygoYSAuIGIpIChjIC4gZCkpKSkp
CisgICAgICAgIChwYXNzLWlmIChsc2V0PSBlcT8gJyhhIGMpICh2ZWN0b3ItPmxpc3QgKGhhc2h0
YWJsZS1rZXlzIHRhYmxlKSkpKQorICAgICAgICAocGFzcy1pZiAobHNldD0gZXE/ICcoYiBkKSAo
dmVjdG9yLT5saXN0IChoYXNodGFibGUtdmFsdWVzIHRhYmxlKSkpKQorICAgICAgICAocmVjZWl2
ZSAoa2V5cyB2YWx1ZXMpIChoYXNodGFibGUtZW50cmllcyB0YWJsZSkKKyAgICAgICAgICAocGFz
cy1pZiAobHNldD0gZXE/ICcoYSBjKSAodmVjdG9yLT5saXN0IGtleXMpKSkKKyAgICAgICAgICAo
cGFzcy1pZiAobHNldD0gZXE/ICcoYiBkKSAodmVjdG9yLT5saXN0IHZhbHVlcykpKSkKKyAgICAg
ICAgKHBhc3MtaWYgKGxzZXQ9IGVxPyAnKGEgYykgKGhhc2h0YWJsZS1rZXktbGlzdCB0YWJsZSkp
KQorICAgICAgICAocGFzcy1pZiAobHNldD0gZXE/ICcoYiBkKSAoaGFzaHRhYmxlLXZhbHVlLWxp
c3QgdGFibGUpKSkKKyAgICAgICAgKHJlY2VpdmUgKGtleXMgdmFsdWVzKSAoaGFzaHRhYmxlLWVu
dHJ5LWxpc3RzIHRhYmxlKQorICAgICAgICAgIChwYXNzLWlmIChsc2V0PSBlcT8gJyhhIGMpIGtl
eXMpKQorICAgICAgICAgIChwYXNzLWlmIChsc2V0PSBlcT8gJyhiIGQpIHZhbHVlcykpKSkpCisK
KyAgICAod2l0aC10ZXN0LXByZWZpeCAiaXRlcmF0aW9uIgorICAgICAgKHdpdGgtdGVzdC1wcmVm
aXggIndhbGsiCisgICAgICAgIChsZXQgKChrZXlzICcoKSkKKyAgICAgICAgICAgICAgKHZhbHVl
cyAnKCkpKQorICAgICAgICAgIChoYXNodGFibGUtd2FsayAoYWxpc3QtPmVxLWhhc2h0YWJsZSAn
KChhIC4gYikgKGMgLiBkKSkpCisgICAgICAgICAgICAobGFtYmRhIChrIHYpCisgICAgICAgICAg
ICAgIChzZXQhIGtleXMgKGNvbnMgayBrZXlzKSkKKyAgICAgICAgICAgICAgKHNldCEgdmFsdWVz
IChjb25zIHYgdmFsdWVzKSkpKQorICAgICAgICAgIChwYXNzLWlmIChsc2V0PSBlcT8gJyhhIGMp
IGtleXMpKQorICAgICAgICAgIChwYXNzLWlmIChsc2V0PSBlcT8gJyhiIGQpIHZhbHVlcykpKSkK
KworICAgICAgKHdpdGgtdGVzdC1wcmVmaXggInVwZGF0ZS1hbGwiCisgICAgICAgIChsZXQgKCh0
YWJsZSAoYWxpc3QtPmVxLWhhc2h0YWJsZSAnKChhIC4gYikgKGMgLiBkKSkpKSkKKyAgICAgICAg
ICAoaGFzaHRhYmxlLXVwZGF0ZS1hbGwhIHRhYmxlCisgICAgICAgICAgICAobGFtYmRhIChrIHYp
CisgICAgICAgICAgICAgIChzdHJpbmctPnN5bWJvbCAoc3RyaW5nLWFwcGVuZCAoc3ltYm9sLT5z
dHJpbmcgdikgIngiKSkpKQorICAgICAgICAgIChwYXNzLWlmIChsc2V0PSBlcT8gJyhhIGMpICho
YXNodGFibGUta2V5LWxpc3QgdGFibGUpKSkKKyAgICAgICAgICAocGFzcy1pZiAobHNldD0gZXE/
ICcoYnggZHgpIChoYXNodGFibGUtdmFsdWUtbGlzdCB0YWJsZSkpKSkpCisKKyAgICAgICh3aXRo
LXRlc3QtcHJlZml4ICJwcnVuZSIKKyAgICAgICAgKGxldCAoKHRhYmxlIChhbGlzdC0+ZXEtaGFz
aHRhYmxlICcoKGEgLiBiKSAoYyAuIGQpKSkpKQorICAgICAgICAgIChoYXNodGFibGUtcHJ1bmUh
IHRhYmxlIChsYW1iZGEgKGsgdikgKGVxPyBrICdhKSkpCisgICAgICAgICAgKHBhc3MtaWYgKG5v
dCAoaGFzaHRhYmxlLWNvbnRhaW5zPyB0YWJsZSAnYSkpKQorICAgICAgICAgIChwYXNzLWlmICho
YXNodGFibGUtY29udGFpbnM/IHRhYmxlICdjKSkpKQorCisgICAgICAod2l0aC10ZXN0LXByZWZp
eCAibWVyZ2UiCisgICAgICAgIChsZXQgKCh0YWJsZSAoYWxpc3QtPmVxLWhhc2h0YWJsZSAnKChh
IC4gYikgKGMgLiBkKSkpKQorICAgICAgICAgICAgICAodGFibGUyIChhbGlzdC0+ZXEtaGFzaHRh
YmxlICcoKGEgLiB4KSAoZSAuIGYpKSkpKQorICAgICAgICAgIChoYXNodGFibGUtbWVyZ2UhIHRh
YmxlIHRhYmxlMikKKyAgICAgICAgICAocGFzcy1pZiAobHNldD0gZXE/ICcoYSBjIGUpIChoYXNo
dGFibGUta2V5LWxpc3QgdGFibGUpKSkKKyAgICAgICAgICAocGFzcy1pZiAobHNldD0gZXE/ICco
eCBkIGYpIChoYXNodGFibGUtdmFsdWUtbGlzdCB0YWJsZSkpKSkpCisKKyAgICAgICh3aXRoLXRl
c3QtcHJlZml4ICJzdW0iCisgICAgICAgIChsZXQgKCh0YWJsZSAoYWxpc3QtPmVxLWhhc2h0YWJs
ZSAnKChhIC4gYikgKGMgLiBkKSkpKSkKKyAgICAgICAgICAocGFzcy1pZiAobHNldD0gZXE/ICco
YSBiIGMgZCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgKGhhc2h0YWJsZS1zdW0gdGFibGUg
JygpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxhbWJkYSAoayB2IGFjYykKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIChsc2V0LWFkam9pbiBlcT8gYWNjIGsgdikpKSkpKSkK
KworICAgICAgKHdpdGgtdGVzdC1wcmVmaXggIm1hcC0+bHNldCIKKyAgICAgICAgKGxldCAoKHRh
YmxlIChhbGlzdC0+ZXEtaGFzaHRhYmxlICcoKGEgLiBiKSAoYyAuIGQpKSkpKQorICAgICAgICAg
IChwYXNzLWlmIChsc2V0PSBlcXVhbD8gJygoYSAuIGIpIChjIC4gZCkpCisgICAgICAgICAgICAg
ICAgICAgICAgICAgIChoYXNodGFibGUtbWFwLT5sc2V0IHRhYmxlIGNvbnMpKSkpKQorCisgICAg
ICAod2l0aC10ZXN0LXByZWZpeCAiZmluZCIKKyAgICAgICAgKGxldCAoKHRhYmxlIChhbGlzdC0+
ZXEtaGFzaHRhYmxlICcoKGEgLiBiKSAoYyAuIGQpKSkpKQorICAgICAgICAgIChyZWNlaXZlIChr
IHYgZj8pIChoYXNodGFibGUtZmluZCB0YWJsZQorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgKGxhbWJkYSAoayB2KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZXE/IGsg
J2EpKSkKKyAgICAgICAgICAgIChwYXNzLWlmIChhbmQgZj8gKGVxPyBrICdhKSAoZXE/IHYgJ2Ip
KSkpCisgICAgICAgICAgKHJlY2VpdmUgKGsgdiBmPykgKGhhc2h0YWJsZS1maW5kIHRhYmxlIChs
YW1iZGEgKGsgdikgI2YpKQorICAgICAgICAgICAgKHBhc3MtaWYgKG5vdCBmPykpKSkpCisKKyAg
ICAgICh3aXRoLXRlc3QtcHJlZml4ICJtaXNjIgorCisgICAgICAgICh3aXRoLXRlc3QtcHJlZml4
ICJlbXB0eT8iCisgICAgICAgICAgKHBhc3MtaWYgKGhhc2h0YWJsZS1lbXB0eT8gKGFsaXN0LT5l
cS1oYXNodGFibGUgJygpKSkpCisgICAgICAgICAgKHBhc3MtaWYgKG5vdCAoaGFzaHRhYmxlLWVt
cHR5PyAoYWxpc3QtPmVxLWhhc2h0YWJsZSAnKChhIC4gYikpKSkpKSkKKworICAgICAgICAod2l0
aC10ZXN0LXByZWZpeCAicG9wISIKKyAgICAgICAgICAocGFzcy1pZi1leGNlcHRpb24gIiIKKyAg
ICAgICAgICAgICAgJyhtaXNjLWVycm9yIC4gIl5IYXNoIHRhYmxlIGlzIGVtcHR5IikKKyAgICAg
ICAgICAgIChoYXNodGFibGUtcG9wISAobWFrZS1lcS1oYXNodGFibGUpKSkKKyAgICAgICAgICAo
bGV0ICgodGFibGUgKGFsaXN0LT5lcS1oYXNodGFibGUgJygoYSAuIGIpKSkpKQorICAgICAgICAg
ICAgKHJlY2VpdmUgKGsgdikgKGhhc2h0YWJsZS1wb3AhIHRhYmxlKQorICAgICAgICAgICAgICAo
cGFzcy1pZi1lcXVhbCAnYSBrKQorICAgICAgICAgICAgICAocGFzcy1pZi1lcXVhbCAnYiB2KQor
ICAgICAgICAgICAgICAocGFzcy1pZiAoaGFzaHRhYmxlLWVtcHR5PyB0YWJsZSkpKSkpCisKKyAg
ICAgICAgKHdpdGgtdGVzdC1wcmVmaXggImluYyEiCisgICAgICAgICAgKGxldCAoKHRhYmxlIChh
bGlzdC0+ZXEtaGFzaHRhYmxlICcoKGEgLiAwKSkpKSkKKyAgICAgICAgICAgIChoYXNodGFibGUt
aW5jISB0YWJsZSAnYSkKKyAgICAgICAgICAgIChwYXNzLWlmLWVxdWFsIDEgKGhhc2h0YWJsZS1y
ZWYgdGFibGUgJ2EpKQorICAgICAgICAgICAgKGhhc2h0YWJsZS1pbmMhIHRhYmxlICdhIDIpCisg
ICAgICAgICAgICAocGFzcy1pZi1lcXVhbCAzIChoYXNodGFibGUtcmVmIHRhYmxlICdhKSkpKQor
CisgICAgICAgICh3aXRoLXRlc3QtcHJlZml4ICJkZWMhIgorICAgICAgICAgIChsZXQgKCh0YWJs
ZSAoYWxpc3QtPmVxLWhhc2h0YWJsZSAnKChhIC4gMCkpKSkpCisgICAgICAgICAgICAoaGFzaHRh
YmxlLWRlYyEgdGFibGUgJ2EpCisgICAgICAgICAgICAocGFzcy1pZi1lcXVhbCAtMSAoaGFzaHRh
YmxlLXJlZiB0YWJsZSAnYSkpCisgICAgICAgICAgICAoaGFzaHRhYmxlLWRlYyEgdGFibGUgJ2Eg
MikKKyAgICAgICAgICAgIChwYXNzLWlmLWVxdWFsIC0zIChoYXNodGFibGUtcmVmIHRhYmxlICdh
KSkpKSkpCisKKyAgICAod2l0aC10ZXN0LXByZWZpeCAiaGFzaGluZyIKKyAgICAgIChwYXNzLWlm
IChleGFjdC1pbnRlZ2VyPyAoaGFzaC1zYWx0KSkpCisgICAgICAocGFzcy1pZiAobm90IChuZWdh
dGl2ZT8gKGhhc2gtc2FsdCkpKSkKKyAgICAgIChwYXNzLWlmICg9IChoYXNoLXNhbHQpIChoYXNo
LXNhbHQpKSkKKyAgICAgIChwYXNzLWlmICg9IChlcXVhbC1oYXNoIChsaXN0ICJmb28iICdiYXIg
NDIpKQorICAgICAgICAgICAgICAgICAgKGVxdWFsLWhhc2ggKGxpc3QgImZvbyIgJ2JhciA0Mikp
KSkKKyAgICAgIChwYXNzLWlmICg9IChzdHJpbmctaGFzaCAoc3RyaW5nLWNvcHkgImZvbyIpKQor
ICAgICAgICAgICAgICAgICAgKHN0cmluZy1oYXNoIChzdHJpbmctY29weSAiZm9vIikpKSkKKyAg
ICAgIChwYXNzLWlmICg9IChzdHJpbmctY2ktaGFzaCAoc3RyaW5nLWNvcHkgImZvbyIpKQorICAg
ICAgICAgICAgICAgICAgKHN0cmluZy1jaS1oYXNoIChzdHJpbmctY29weSAiRk9PIikpKSkKKyAg
ICAgIChwYXNzLWlmICg9IChzeW1ib2wtaGFzaCAoc3RyaW5nLT5zeW1ib2wgImZvbyIpKQorICAg
ICAgICAgICAgICAgICAgKHN5bWJvbC1oYXNoIChzdHJpbmctPnN5bWJvbCAiZm9vIikpKSkpCisg
ICAgKQorICApCi0tIAoyLjE5LjEKCg==
--000000000000b6a39d057efb700b
Content-Type: text/x-patch; charset="US-ASCII"; 
	name="0002-Implemented-GENERIC-HASH-TABLES-module.patch"
Content-Disposition: attachment; 
	filename="0002-Implemented-GENERIC-HASH-TABLES-module.patch"
Content-Transfer-Encoding: base64
Content-ID: <f_jqofminu1>
X-Attachment-Id: f_jqofminu1

RnJvbSA0NzI1NmMwY2JmZjliMWNhNmUyNjhkNWQ0NDA3NjcxODA3ZWRjMjAyIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiA9P1VURi04P3E/Sj1DMz1BOXNzaWNhPTIwTWlsYXI9QzM9QTk/
PSA8amVzc3ltaWxhcmVAZ21haWwuY29tPgpEYXRlOiBUdWUsIDggSmFuIDIwMTkgMjE6NTg6Mzcg
LTAyMDAKU3ViamVjdDogW1BBVENIIDIvNV0gSW1wbGVtZW50ZWQgR0VORVJJQy1IQVNILVRBQkxF
UyBtb2R1bGUuCgpUaGlzIG1vZHVsZSBpbXBsZW1lbnRzIGFuIGludGVyZmFjZSB0byBpbnRlcm1l
ZGlhdGUgaGFzaCB0YWJsZXMgYW5kIGNhbgpiZSB1c2VkIHRvIGltcGxlbWVudCBTUkZJLTY5LCBT
UkZJLTEyNSwgU1JGSS0xMjYgYW5kIFI2UlMgaGFzaCB0YWJsZQpsaWJyYXJpZXMuIFRoYXQgd2F5
LCB3ZSBhdm9pZCBkdXBsaWNhdGlvbiBvZiBjb2RlLCBtaXNzaW5nIGZlYXR1cmVzIGFuZAppbmNv
bXBhdGliaWxpdGllcy4gSXQgcmV1c2VzIGN1cnJlbnQgU1JGSS02OSBjb2RlIGFuZCBpdHMgcHJv
Y2VkdXJlcyBhcmUKbW9zdGx5IGJhc2VkIG9uIFNSRkktMTI1IHNwZWNpZmljYXRpb25zIHdpdGgg
c29tZSBjaGFuZ2VzLiBJdCBkb2VzIG5vdApkZXBlbmQgb24gU1JGSS0xMjg6IGluc3RlYWQgb2Yg
dXNpbmcgY29tcGFyYXRvcnMsIHRoZSBwcm9jZWR1cmVzIGFjY2VwdAp0aGUgc2FtZSBhcmd1bWVu
dHMgdGhhdCBhcmUgYWNjZXB0ZWQgYnkgTUFLRS1IQVNILVRBQkxFLiBUaGUgd2Vha25lc3MKYXJn
dW1lbnQgaXMgYXMgc3BlY2lmaWVkIGJ5IFNSRkkgMTI2LgotLS0KIG1vZHVsZS9NYWtlZmlsZS5h
bSAgICAgICAgICAgICAgICAgICAgICAgIHwgICAxICsKIG1vZHVsZS9pY2UtOS9nZW5lcmljLWhh
c2gtdGFibGVzLnNjbSAgICAgIHwgOTE1ICsrKysrKysrKysrKysrKysrKysrKysKIHRlc3Qtc3Vp
dGUvTWFrZWZpbGUuYW0gICAgICAgICAgICAgICAgICAgIHwgICAxICsKIHRlc3Qtc3VpdGUvdGVz
dHMvZ2VuZXJpYy1oYXNoLXRhYmxlcy50ZXN0IHwgNDE1ICsrKysrKysrKysKIDQgZmlsZXMgY2hh
bmdlZCwgMTMzMiBpbnNlcnRpb25zKCspCiBjcmVhdGUgbW9kZSAxMDA2NDQgbW9kdWxlL2ljZS05
L2dlbmVyaWMtaGFzaC10YWJsZXMuc2NtCiBjcmVhdGUgbW9kZSAxMDA2NDQgdGVzdC1zdWl0ZS90
ZXN0cy9nZW5lcmljLWhhc2gtdGFibGVzLnRlc3QKCmRpZmYgLS1naXQgYS9tb2R1bGUvTWFrZWZp
bGUuYW0gYi9tb2R1bGUvTWFrZWZpbGUuYW0KaW5kZXggYzcyZmI5MjI4Li42ZGJhODdjZTggMTAw
NjQ0Ci0tLSBhL21vZHVsZS9NYWtlZmlsZS5hbQorKysgYi9tb2R1bGUvTWFrZWZpbGUuYW0KQEAg
LTY2LDYgKzY2LDcgQEAgU09VUkNFUyA9CQkJCQlcCiAgIGljZS05L2Z1dHVyZXMuc2NtCQkJCVwK
ICAgaWNlLTkvZ2FwLWJ1ZmZlci5zY20JCQkJXAogICBpY2UtOS9nZXRvcHQtbG9uZy5zY20JCQkJ
XAorICBpY2UtOS9nZW5lcmljLWhhc2gtdGFibGVzLnNjbSAgICAgICAgICAgICAgICAgXAogICBp
Y2UtOS9oYXNoLXRhYmxlLnNjbQkJCQlcCiAgIGljZS05L2hjb25zLnNjbQkJCQlcCiAgIGljZS05
L2hpc3Rvcnkuc2NtCQkJCVwKZGlmZiAtLWdpdCBhL21vZHVsZS9pY2UtOS9nZW5lcmljLWhhc2gt
dGFibGVzLnNjbSBiL21vZHVsZS9pY2UtOS9nZW5lcmljLWhhc2gtdGFibGVzLnNjbQpuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAuLjAzM2MzZWNkYQotLS0gL2Rldi9udWxsCisr
KyBiL21vZHVsZS9pY2UtOS9nZW5lcmljLWhhc2gtdGFibGVzLnNjbQpAQCAtMCwwICsxLDkxNSBA
QAorOzs7IGdlbmVyaWMtaGFzaC10YWJsZXMuc2NtIC0tLSBJbnRlcm1lZGlhdGUgaGFzaCB0YWJs
ZXMKKworOzsgCUNvcHlyaWdodCAoQykgMjAwNyBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIElu
Yy4KKzs7Cis7OyBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3Ry
aWJ1dGUgaXQgYW5kL29yCis7OyBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUg
TGVzc2VyIEdlbmVyYWwgUHVibGljCis7OyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJl
ZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKzs7IHZlcnNpb24gMyBvZiB0aGUgTGljZW5z
ZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKzs7Cis7OyBUaGlzIGxp
YnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwK
Kzs7IGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdh
cnJhbnR5IG9mCis7OyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
IFBVUlBPU0UuICBTZWUgdGhlIEdOVQorOzsgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2Ug
Zm9yIG1vcmUgZGV0YWlscy4KKzs7Cis7OyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5
IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCis7OyBMaWNlbnNlIGFsb25nIHdpdGgg
dGhpcyBsaWJyYXJ5OyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCis7OyBGb3Vu
ZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLCBCb3N0b24sIE1B
IDAyMTEwLTEzMDEgVVNBCisMCisKKzs7OzsgQ29tbWVudGFyeSBieSBKZXNzaWNhIE1pbGFyZSAy
MDE4CisKKzs7IFRoaXMgaW1wbGVtZW50YXRpb24gd2FzIGNyZWF0ZWQgb24gdG9wIG9mIFNSRkkt
NjkgKG9sZCkgR3VpbGUgY29kZSwKKzs7IGV4dGVuZGluZyBpdCB0byBzdXBwb3J0IFNSRkktMTI1
IHNwZWNpZmljYXRpb25zIGFuZCBpbnRlbmRlZCB0byBiZQorOzsgdXNlZCBieSBTUkZJLTY5LCBT
UkZJLTEyNSwgU1JGSS0xMjYgYW5kIFI2UlMuIE9uZSBzaW5nbGUgaGFzaCB0YWJsZXMKKzs7IGlt
cGxlbWVudGF0aW9uIGNvdWxkIGJlIGV4cG9ydGVkIHRvIGFsbCBvZiB0aGVzZSBsaWJyYXJpZXMs
IGF2b2lkaW5nCis7OyBkdXBsaWNhdGlvbiBvZiBjb2RlLCBtaXNzaW5nIGZlYXR1cmVzIGFuZCBp
bmNvbXBhdGliaWxpdGllcy4KKzs7Cis7OyBIYXNoIHRhYmxlcyBoZXJlIGhhdmUgMiBoYXNoIGZ1
bmN0aW9ucywgb25lIGludGVybmFsICh0aGF0IGlzIHVzZWQgYnkKKzs7IEd1aWxlKSBhbmQgb25l
IGV4dGVybmFsICh0aGF0IGlzIHJldHVybmVkIGJ5IGhhc2gtdGFibGUtaGFzaC1mdW5jdGlvbiku
Cis7OyBJbnRlcm5hbCBoYXNoIGZ1bmN0aW9ucyBhY2NlcHRzIHR3byBhcmd1bWVudHMsIHdoaWxl
IGV4dGVybmFsIGZ1bmN0aW9ucworOzsgYWNjZXB0IG9uZSBhcmd1bWVudCAoYW5kIHBvc3NpYmx5
IG1vcmUgb3B0aW9uYWwgYXJndW1lbnRzKS4KKworOzs7IENvZGU6CisMCis7Ozs7IE1vZHVsZSBk
ZWZpbml0aW9uICYgZXhwb3J0cworCisoZGVmaW5lLW1vZHVsZSAoaWNlLTkgZ2VuZXJpYy1oYXNo
LXRhYmxlcykKKyAgIzp1c2UtbW9kdWxlIChzcmZpIHNyZmktMSkJO2FsaXN0LWNvbnMsc2Vjb25k
JmMsYXNzb2MKKyAgIzp1c2UtbW9kdWxlIChzcmZpIHNyZmktOCkgICAgO3JlY2VpdmUKKyAgIzp1
c2UtbW9kdWxlIChzcmZpIHNyZmktOSkKKyAgIzp1c2UtbW9kdWxlIChzcmZpIHNyZmktOSBnbnUp
CisgICM6dXNlLW1vZHVsZSAoaWNlLTkgZm9ybWF0KQorICAjOmV4cG9ydCAoOzsgVHlwZSBjb25z
dHJ1Y3RvcnMgJiBwcmVkaWNhdGUKKwkgICAgbWFrZS1oYXNoLXRhYmxlCisgICAgICAgICAgICBo
YXNoLXRhYmxlPyBoYXNoLXRhYmxlIGhhc2gtdGFibGUtdW5mb2xkIGFsaXN0LT5oYXNoLXRhYmxl
CisgICAgICAgICAgICA7OyBSZWZsZWN0aXZlIHF1ZXJpZXMKKyAgICAgICAgICAgIGhhc2gtdGFi
bGUtZXF1aXZhbGVuY2UtZnVuY3Rpb24gaGFzaC10YWJsZS1oYXNoLWZ1bmN0aW9uCisgICAgICAg
ICAgICBoYXNoLXRhYmxlLXdlYWtuZXNzIGhhc2gtdGFibGUta2V5LXdlYWtuZXNzIGhhc2gtdGFi
bGUtdmFsdWUtd2Vha25lc3MKKyAgICAgICAgICAgIDs7IFByZWRpY2F0ZXMKKyAgICAgICAgICAg
IGhhc2gtdGFibGUtbXV0YWJsZT8gaGFzaC10YWJsZS1jb250YWlucz8KKyAgICAgICAgICAgIGhh
c2gtdGFibGUtZW1wdHk/IGhhc2gtdGFibGU9PworICAgICAgICAgICAgOzsgQWNjZXNzb3JzCisg
ICAgICAgICAgICBoYXNoLXRhYmxlLXJlZiBoYXNoLXRhYmxlLXJlZi9kZWZhdWx0CisgICAgICAg
ICAgICA7OyBNdXRhdG9ycworICAgICAgICAgICAgaGFzaC10YWJsZS1zZXQhIGhhc2gtdGFibGUt
c2V0LXNpbmdsZSEKKyAgICAgICAgICAgIGhhc2gtdGFibGUtZGVsZXRlISBoYXNoLXRhYmxlLWRl
bGV0ZS1zaW5nbGUhCisgICAgICAgICAgICBoYXNoLXRhYmxlLWludGVybiEgaGFzaC10YWJsZS1p
bnRlcm4hL2RlZmF1bHQKKyAgICAgICAgICAgIGhhc2gtdGFibGUtdXBkYXRlISBoYXNoLXRhYmxl
LXVwZGF0ZSEvZGVmYXVsdAorICAgICAgICAgICAgaGFzaC10YWJsZS1wb3AhIGhhc2gtdGFibGUt
Y2xlYXIhCisgICAgICAgICAgICA7OyBUaGUgd2hvbGUgaGFzaCB0YWJsZQorICAgICAgICAgICAg
aGFzaC10YWJsZS1zaXplIGhhc2gtdGFibGUtZmluZCBoYXNoLXRhYmxlLWNvdW50CisgICAgICAg
ICAgICBoYXNoLXRhYmxlLWtleXMgaGFzaC10YWJsZS12YWx1ZXMgaGFzaC10YWJsZS1lbnRyaWVz
CisgICAgICAgICAgICBoYXNoLXRhYmxlLWtleS12ZWN0b3IgaGFzaC10YWJsZS12YWx1ZS12ZWN0
b3IgaGFzaC10YWJsZS1lbnRyeS12ZWN0b3JzCisgICAgICAgICAgICA7OyBNYXBwaW5nIGFuZCBm
b2xkaW5nCisgICAgICAgICAgICBoYXNoLXRhYmxlLW1hcCBoYXNoLXRhYmxlLWZvci1lYWNoIGhh
c2gtdGFibGUtbWFwISBoYXNoLXRhYmxlLW1hcC0+bGlzdAorICAgICAgICAgICAgaGFzaC10YWJs
ZS1mb2xkIGhhc2gtdGFibGUtcHJ1bmUhCisgICAgICAgICAgICA7OyBDb3B5aW5nCisgICAgICAg
ICAgICBoYXNoLXRhYmxlLWNvcHkgaGFzaC10YWJsZS1lbXB0eS1jb3B5CisgICAgICAgICAgICA7
OyBDb252ZXJzaW9uCisgICAgICAgICAgICBoYXNoLXRhYmxlLT5hbGlzdAorICAgICAgICAgICAg
OzsgSGFzaCB0YWJsZXMgYXMgc2V0cworICAgICAgICAgICAgaGFzaC10YWJsZS11bmlvbiEgaGFz
aC10YWJsZS1pbnRlcnNlY3Rpb24hIGhhc2gtdGFibGUtZGlmZmVyZW5jZSEKKyAgICAgICAgICAg
IGhhc2gtdGFibGUteG9yIQorICAgICAgICAgICAgOzsgSGFzaGluZworICAgICAgICAgICAgc3Ry
aW5nLWNpLWhhc2ggaGFzaC1ieS1pZGVudGl0eSBoYXNoLWJ5LXZhbHVlIGhhc2gpCisgICM6cmUt
ZXhwb3J0IChzdHJpbmctaGFzaCkKKyAgIzpyZXBsYWNlIChoYXNoIG1ha2UtaGFzaC10YWJsZSBo
YXNoLXRhYmxlPykpCisKKwwKKzs7OzsgSW50ZXJuYWwgaGVscGVyIG1hY3JvcworCis7OyBEZWZp
bmUgdGhlc2UgZmlyc3QsIHNvIHRoZSBjb21waWxlciB3aWxsIHBpY2sgdGhlbSB1cC4KKworOzsg
SSBhbSBhIG1hY3JvIG9ubHkgZm9yIGVmZmljaWVuY3ksIHRvIGF2b2lkIHZhcmFyZ3MvYXBwbHku
CisoZGVmaW5lLW1hY3JvIChoYXNoeC1pbnZva2UgaGFzaHgtcHJvYyBodC12YXIgLiBhcmdzKQor
ICAiSW52b2tlIEhBU0hYLVBST0MsIGEgYGhhc2h4LSonIHByb2NlZHVyZSB0YWtpbmcgYSBoYXNo
LWZ1bmN0aW9uLAorYXNzb2MtZnVuY3Rpb24sIGFuZCB0aGUgaGFzaC10YWJsZSBhcyBmaXJzdCBh
cmdzLiIKKyAgYCgsaGFzaHgtcHJvYyAoaHQtaGFzaC1mdW5jdGlvbiAsaHQtdmFyKQorCQkoaHQt
YXNzb2NpYXRvciAsaHQtdmFyKQorCQkoaHQtcmVhbC10YWJsZSAsaHQtdmFyKQorCQkuICxhcmdz
KSkKKworKGRlZmluZS1tYWNybyAod2l0aC1oYXNoeC12YWx1ZXMgYmluZGluZ3MgaHQtdmFyIC4g
Ym9keS1mb3JtcykKKyAgIkJpbmQgQklORElOR1MgdG8gdGhlIGhhc2gtZnVuY3Rpb24sIGFzc29j
aWF0b3IsIGFuZCByZWFsLXRhYmxlIG9mCitIVC1WQVIsIHdoaWxlIGV2YWx1YXRpbmcgQk9EWS1G
T1JNUy4iCisgIGAobGV0ICgoLCh0aGlyZCBiaW5kaW5ncykgKGh0LXJlYWwtdGFibGUgLGh0LXZh
cikpCisgICAgICAgICAoLChmaXJzdCBiaW5kaW5ncykgKGh0LWhhc2gtZnVuY3Rpb24gLGh0LXZh
cikpCisJICgsKHNlY29uZCBiaW5kaW5ncykgKGh0LWFzc29jaWF0b3IgLGh0LXZhcikpKQorICAg
ICAuICxib2R5LWZvcm1zKSkKKworKGRlZmluZS1zeW50YXggYXNzZXJ0LW11dGFibGUKKyAgKHN5
bnRheC1ydWxlcyAoKQorICAgICgoYXNzZXJ0LW11dGFibGUgaHQpCisgICAgIChvciAoaGFzaC10
YWJsZS1tdXRhYmxlPyBodCkKKyAgICAgICAgIChlcnJvciAiSGFzaCB0YWJsZSBpcyBub3QgbXV0
YWJsZSIgaHQpKSkpKQorCisMCis7Ozs7IEhhc2hpbmcKKworOzs7IFNSRkktMTI1IGFuZCBSNlJT
IGhhc2ggZnVuY3Rpb25zIGFyZSBzdXBwb3NlZCB0byBhY2NlcHQgb25seSBvbmUKKzs7OyBhcmd1
bWVudCwgYnV0IEd1aWxlIHN0YW5kYXJkIGhhc2ggdGFibGVzIG5lZWRzIHR3byBhcmdzLgorOzs7
IFRoZXJlZm9yZSwgdGhlIGhhc2ggZnVuY3Rpb25zIGluc2lkZSB0aGUgaGFzaCB0YWJsZSBhbHdh
eXMgYWNjZXB0cworOzs7IG9uZSAocmVxdWlyZWQpIGFyZ3VtZW50IGFuZCBhdCBsZWFzdCBvbmUg
cG9zc2libGUgYXJndW1lbnQsIHdoaWNoCis7OzsgbXVzdCBiZSBhIGZpeG51bS4KKworOzs7IFRo
ZSBsYXJnZXN0IGZpeG51bSBpcyBpbiBgbW9zdC1wb3NpdGl2ZS1maXhudW0nIGluIG1vZHVsZSAo
Z3VpbGUpLAorOzs7IHRob3VnaCBub3QgZG9jdW1lbnRlZCBhbnl3aGVyZSBidXQgbGliZ3VpbGUv
bnVtYmVycy5jLgorCisoZGVmaW5lIChjYWxsZXItd2l0aC1kZWZhdWx0LXNpemUgaGFzaC1mbikK
KyAgIkFuc3dlciBhIGZ1bmN0aW9uIHRoYXQgbWFrZXMgYG1vc3QtcG9zaXRpdmUtZml4bnVtJyB0
aGUgZGVmYXVsdAorc2Vjb25kIGFyZ3VtZW50IHRvIEhBU0gtRk4sIGEgMi1hcmcgcHJvY2VkdXJl
LiIKKyAgKGxhbWJkYSogKG9iaiAjOm9wdGlvbmFsIChzaXplIG1vc3QtcG9zaXRpdmUtZml4bnVt
KSkKKyAgICAoaGFzaC1mbiBvYmogc2l6ZSkpKQorCisoZGVmaW5lIGhhc2ggKGNhbGxlci13aXRo
LWRlZmF1bHQtc2l6ZSAoQCAoZ3VpbGUpIGhhc2gpKSkKKworKGRlZmluZSBzdHJpbmctY2ktaGFz
aCBzdHJpbmctaGFzaC1jaSkKKworKGRlZmluZSBoYXNoLWJ5LWlkZW50aXR5IChjYWxsZXItd2l0
aC1kZWZhdWx0LXNpemUgaGFzaHEpKQorKGRlZmluZSBoYXNoLWJ5LXZhbHVlICAgIChjYWxsZXIt
d2l0aC1kZWZhdWx0LXNpemUgaGFzaHYpKQorCisoZGVmaW5lICh3cmFwLWhhc2gtZnVuY3Rpb24g
aGFzaC1mdW5jdGlvbikKKyAgKGxhbWJkYSogKG9iaiBzaXplKQorICAgIChtb2R1bG8gKGhhc2gt
ZnVuY3Rpb24gb2JqKSBzaXplKSkpCisKKwwKKzs7OzsgUmVmbGVjdGl2ZSBxdWVyaWVzLCBjb25z
dHJ1Y3Rpb24sIHByZWRpY2F0ZQorCisoZGVmaW5lIChnZXQtaGFzaC1mdW5jdGlvbnMgZXF1aXYt
ZnVuY3Rpb24gaGFzaC1mdW5jdGlvbikKKyAgIlJldHVybnMgYW4gaW50ZXJuYWwgYW5kIGFuIGV4
dGVybmFsIGhhc2ggZnVuY3Rpb24uIgorICAoY29uZAorICAgKGhhc2gtZnVuY3Rpb24gKGNvbmQK
KyAgICAgICAgICAgICAgICAgICA7OyBTUkZJLTY5IHNob3VsZCBnaXZlIEhBU0ggYXMgZGVmYXVs
dCBoYXNoLWZ1bmN0aW9uLgorICAgICAgICAgICAgICAgICAgICgob3IgKGVxPyAoQCAoZ3VpbGUp
IGhhc2gpIGhhc2gtZnVuY3Rpb24pCisgICAgICAgICAgICAgICAgICAgICAgICAoZXE/IGhhc2gg
aGFzaC1mdW5jdGlvbikpCisgICAgICAgICAgICAgICAgICAgICh2YWx1ZXMgKEAgKGd1aWxlKSBo
YXNoKSBoYXNoLWZ1bmN0aW9uKSkKKyAgICAgICAgICAgICAgICAgICA7OyBUaGVzZSBwcm9jZWR1
cmVzIGRvbid0IG5lZWQgdG8gYmUgd3JhcHBlZC4KKyAgICAgICAgICAgICAgICAgICAoKG9yIChl
cT8gc3RyaW5nLWhhc2ggaGFzaC1mdW5jdGlvbikKKyAgICAgICAgICAgICAgICAgICAgICAgIChl
cT8gc3RyaW5nLWNpLWhhc2ggaGFzaC1mdW5jdGlvbikpCisgICAgICAgICAgICAgICAgICAgICh2
YWx1ZXMgaGFzaC1mdW5jdGlvbiBoYXNoLWZ1bmN0aW9uKSkKKyAgICAgICAgICAgICAgICAgICAo
KG9yIChlcT8gaGFzaHEgaGFzaC1mdW5jdGlvbikKKyAgICAgICAgICAgICAgICAgICAgICAgIChl
cT8gaGFzaC1ieS1pZGVudGl0eSBoYXNoLWZ1bmN0aW9uKSkKKyAgICAgICAgICAgICAgICAgICAg
KHZhbHVlcyBoYXNocSBoYXNoLWZ1bmN0aW9uKSkKKyAgICAgICAgICAgICAgICAgICAoKG9yIChl
cT8gaGFzaHYgaGFzaC1mdW5jdGlvbikKKyAgICAgICAgICAgICAgICAgICAgICAgIChlcT8gaGFz
aC1ieS12YWx1ZSBoYXNoLWZ1bmN0aW9uKSkKKyAgICAgICAgICAgICAgICAgICAgKHZhbHVlcyBo
YXNodiBoYXNoLWZ1bmN0aW9uKSkKKyAgICAgICAgICAgICAgICAgICA7OyBPdGhlcndpc2UsIHdy
YXAgdGhlIGdpdmVuIGZ1bmN0aW9uLgorICAgICAgICAgICAgICAgICAgIChlbHNlICh2YWx1ZXMg
KHdyYXAtaGFzaC1mdW5jdGlvbiBoYXNoLWZ1bmN0aW9uKSBoYXNoLWZ1bmN0aW9uKSkpKQorICAg
KChlcT8gZXF1YWw/IGVxdWl2LWZ1bmN0aW9uKSAodmFsdWVzIChAIChndWlsZSkgaGFzaCkgaGFz
aCkpCisgICAoKGVxPyBlcT8gZXF1aXYtZnVuY3Rpb24pICh2YWx1ZXMgaGFzaHEgaGFzaC1ieS1p
ZGVudGl0eSkpCisgICAoKGVxPyBlcXY/IGVxdWl2LWZ1bmN0aW9uKSAodmFsdWVzIGhhc2h2IGhh
c2gtYnktdmFsdWUpKQorICAgKChlcT8gc3RyaW5nPT8gZXF1aXYtZnVuY3Rpb24pICh2YWx1ZXMg
c3RyaW5nLWhhc2ggc3RyaW5nLWhhc2gpKQorICAgKChlcT8gc3RyaW5nLWNpPT8gZXF1aXYtZnVu
Y3Rpb24pICh2YWx1ZXMgc3RyaW5nLWNpLWhhc2ggc3RyaW5nLWNpLWhhc2gpKQorICAgKGVsc2Ug
KGVycm9yICJBIHN1aXRhYmxlIGhhc2ggZnVuY3Rpb24gY291bGQgbm90IGJlIGRldGVybWluZWQi
IGVxdWl2LWZ1bmN0aW9uKSkpKQorCisoZGVmaW5lIChndWlsZS1odC1jdG9yIHdlYWtuZXNzKQor
ICAiQW5zd2VyIHRoZSBHdWlsZSBIVCBjb25zdHJ1Y3RvciBmb3IgdGhlIGdpdmVuIFdFQUtORVNT
LCB3aGVyZQorV0VBS05FU1MgaXMgYXMgc3BlY2lmaWVkIGJ5IFNSRkktMTI2LiIKKyAgKGNhc2Ug
d2Vha25lc3MKKyAgICAoKCNmKSAoQCAoZ3VpbGUpIG1ha2UtaGFzaC10YWJsZSkpCisgICAgKCh3
ZWFrLWtleSkgbWFrZS13ZWFrLWtleS1oYXNoLXRhYmxlKQorICAgICgod2Vhay12YWx1ZSkgbWFr
ZS13ZWFrLXZhbHVlLWhhc2gtdGFibGUpCisgICAgKCh3ZWFrLWtleS1hbmQtdmFsdWUpIG1ha2Ut
ZG91Ymx5LXdlYWstaGFzaC10YWJsZSkKKyAgICAoKGVwaGVtZXJhbC1rZXkgZXBoZW1lcmFsLXZh
bHVlIGVwaGVtZXJhbC1rZXktYW5kLXZhbHVlKQorICAgICAoZXJyb3IgIlVuc3VwcG9ydGVkIGhh
c2ggdGFibGUgd2Vha25lc3MiIHdlYWtuZXNzKSkKKyAgICAoZWxzZSAoZXJyb3IgIkludmFsaWQg
aGFzaCB0YWJsZSB3ZWFrbmVzcyIgd2Vha25lc3MpKSkpCisKKyhkZWZpbmUgKGVxdWl2YWxlbmNl
LXByb2MtPmFzc29jaWF0b3IgZXF1aXYtZnVuY3Rpb24pCisgICJBbnN3ZXIgYW4gYGFzc29jJy1s
aWtlIHByb2NlZHVyZSB0aGF0IGNvbXBhcmVzIHRoZSBhcmd1bWVudCBrZXkgdG8KK2FsaXN0IGtl
eXMgd2l0aCBFUVVJVi1GVU5DVElPTi4iCisgIChjb25kICgob3IgKGVxPyBlcXVhbD8gZXF1aXYt
ZnVuY3Rpb24pCisJICAgICAoZXE/IHN0cmluZz0/IGVxdWl2LWZ1bmN0aW9uKSkgKEAgKGd1aWxl
KSBhc3NvYykpCisJKChlcT8gZXE/IGVxdWl2LWZ1bmN0aW9uKSBhc3NxKQorCSgoZXE/IGVxdj8g
ZXF1aXYtZnVuY3Rpb24pIGFzc3YpCisJKGVsc2UgKGxhbWJkYSAoaXRlbSBhbGlzdCkKKwkJKGFz
c29jIGl0ZW0gYWxpc3QgZXF1aXYtZnVuY3Rpb24pKSkpKQorCisoZGVmaW5lLXJlY29yZC10eXBl
IGdlbmVyaWMtaGFzaC10YWJsZQorICAobWFrZS1nZW5lcmljLWhhc2gtdGFibGUgcmVhbC10YWJs
ZSBoYXNoLWZ1bmN0aW9uIGFzc29jaWF0b3Igd2Vha25lc3MKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgIG11dGFibGU/IHNpemUgZXF1aXZhbGVuY2UtZnVuY3Rpb24gb3JpZ2luYWwtaGFzaC1m
dW5jdGlvbikKKyAgaGFzaC10YWJsZT8KKyAgOzsgVGhlc2UgdGhyZWUgYXJlIHRoZSBtb3N0IGFj
Y2Vzc2VkIGZpZWxkcy4KKyAgKHJlYWwtdGFibGUgaHQtcmVhbC10YWJsZSBodC1yZWFsLXRhYmxl
ISkKKyAgKGhhc2gtZnVuY3Rpb24gaHQtaGFzaC1mdW5jdGlvbikKKyAgKGFzc29jaWF0b3IgaHQt
YXNzb2NpYXRvcikKKyAgOzsgV2VhayBoYXNoIHRhYmxlcyBkb24ndCB1c2UgaGFuZGxlcyBhbmQg
ZG9uJ3QgdXBkYXRlIGh0LXNpemUuCisgICh3ZWFrbmVzcyBodC13ZWFrbmVzcykKKyAgOzsgU3Vw
cG9ydHMgaW1tdXRhYmlsaXR5LgorICAobXV0YWJsZT8gaGFzaC10YWJsZS1tdXRhYmxlPykKKyAg
OzsgU2l6ZSBvZiBoYXNoLXRhYmxlLCBhbGxvd2luZyBPKDEpIGhhc2gtdGFibGUtc2l6ZSBmb3IK
KyAgOzsgbm9uLXdlYWsgaGFzaCB0YWJsZXMuCisgIChzaXplIGh0LXNpemUgaHQtc2l6ZSEpCisg
IDs7IFRoZXNlIGFyZSBtb3N0bHkgbmVlZGVkIGZvciByZWZsZWN0aXZlIHF1ZXJpZXMKKyAgKGVx
dWl2YWxlbmNlLWZ1bmN0aW9uIGhhc2gtdGFibGUtZXF1aXZhbGVuY2UtZnVuY3Rpb24pCisgIChv
cmlnaW5hbC1oYXNoLWZ1bmN0aW9uIGhhc2gtdGFibGUtaGFzaC1mdW5jdGlvbikpCisKKzs7IFNo
b3cgc29tZSBpbmZvcm1hdGlvbnMuCisoZGVmaW5lIChwcmludC1oYXNoLXRhYmxlIGh0IHBvcnQp
CisgIChsZXQgKChlcXVpdi1uYW1lIChwcm9jZWR1cmUtbmFtZSAoaGFzaC10YWJsZS1lcXVpdmFs
ZW5jZS1mdW5jdGlvbiBodCkpKSkKKyAgICAoZm9ybWF0IHBvcnQgIiM8Z2VuZXJpYy1oYXNoLXRh
YmxlIH5AW35hIH5dfkBbfmEgfl1zaXplOiB+YSBtdXRhYmxlPyB+YT4iCisgICAgICAgICAgICBl
cXVpdi1uYW1lIChodC13ZWFrbmVzcyBodCkKKyAgICAgICAgICAgIChoYXNoLXRhYmxlLXNpemUg
aHQpIChoYXNoLXRhYmxlLW11dGFibGU/IGh0KSkpKQorCisoc2V0LXJlY29yZC10eXBlLXByaW50
ZXIhIGdlbmVyaWMtaGFzaC10YWJsZSBwcmludC1oYXNoLXRhYmxlKQorCisoZGVmaW5lIChoYXNo
LXRhYmxlLWtleS13ZWFrbmVzcyBodCkKKyAgIlJldHVybnMgV0VBSy1LRVlTIGlmIEhUIGhhcyB3
ZWFrIGtleXMsIG9yICNmIG90aGVyd2lzZS4iCisgIDs7IElmIEd1aWxlIGV2ZXIgc3VwcG9ydHMg
ZXBoZW1lcmFsIGtleXMsIHRoaXMgcHJvY2VkdXJlIHNob3VsZAorICA7OyByZXR1cm4gRVBIRU1F
UkFMLUtFWVMgaWYgdGhlIEhUIGtleXMgYXJlIGVwaGVtZXJhbC4KKyAgKGNhc2UgKGh0LXdlYWtu
ZXNzIGh0KQorICAgICgoI2Ygd2Vhay12YWx1ZSkgI2YpCisgICAgKCh3ZWFrLWtleSB3ZWFrLWtl
eS1hbmQtdmFsdWUpICd3ZWFrLWtleXMpKSkKKworKGRlZmluZSAoaGFzaC10YWJsZS12YWx1ZS13
ZWFrbmVzcyBodCkKKyAgIlJldHVybnMgV0VBSy1WQUxVRVMgaWYgSFQgaGFzIHdlYWsgdmFsdWVz
LCBvciAjZiBvdGhlcndpc2UuIgorICA7OyBJZiBHdWlsZSBldmVyIHN1cHBvcnRzIGVwaGVtZXJh
bCB2YWx1ZXMsIHRoaXMgcHJvY2VkdXJlIHNob3VsZAorICA7OyByZXR1cm4gRVBIRU1FUkFMLVZB
TFVFUyBpZiB0aGUgSFQgdmFsdWVzIGFyZSBlcGhlbWVyYWwuCisgIChjYXNlIChodC13ZWFrbmVz
cyBodCkKKyAgICAoKCNmIHdlYWsta2V5KSAjZikKKyAgICAoKHdlYWstdmFsdWUgd2Vhay1rZXkt
YW5kLXZhbHVlKSAnd2Vhay12YWx1ZXMpKSkKKworKGRlZmluZSAoaGFzaC10YWJsZS13ZWFrbmVz
cyBodCkKKyAgIlJldHVybiB0aGUgd2Vha25lc3Mgb2YgSFQgYWNjb3JkaW5nIHRvIFNSRkktMTI2
IHNwZWMuIgorICAoaHQtd2Vha25lc3MgaHQpKQorCis7OyBUaGlzIGludGVybmFsIGZ1bmN0aW9u
IGFsbG93cyB1cyB0byBjcmVhdGUgaW1tdXRhYmxlIGhhc2ggdGFibGVzCisoZGVmaW5lICglbWFr
ZS1oYXNoLXRhYmxlIGVxdWl2LWZ1bmN0aW9uIGhhc2gtZnVuY3Rpb24gbXV0YWJsZSBjYXBhY2l0
eSB3ZWFrbmVzcykKKyAgKHJlY2VpdmUgKGludGVybmFsLWhhc2gtZnVuY3Rpb24gaGFzaC1mdW5j
dGlvbikKKyAgICAgIChnZXQtaGFzaC1mdW5jdGlvbnMgZXF1aXYtZnVuY3Rpb24gaGFzaC1mdW5j
dGlvbikKKyAgICAobGV0ICgocmVhbC10YWJsZSAoKGd1aWxlLWh0LWN0b3Igd2Vha25lc3MpIGNh
cGFjaXR5KSkpCisgICAgICA7OyBBcmd1bWVudHM6IHJlYWwtdGFibGUgaGFzaC1mdW5jdGlvbiBh
c3NvY2lhdG9yCisgICAgICA7OyAgICAgICAgICAgIHdlYWtuZXNzIG11dGFibGU/IHNpemUgZXF1
aXZhbGVuY2UtZnVuY3Rpb24gb3JpZy1oYXNoLWZ1bmN0aW9uCisgICAgICAobWFrZS1nZW5lcmlj
LWhhc2gtdGFibGUgcmVhbC10YWJsZSBpbnRlcm5hbC1oYXNoLWZ1bmN0aW9uCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgKGVxdWl2YWxlbmNlLXByb2MtPmFzc29jaWF0b3IgZXF1aXYt
ZnVuY3Rpb24pCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2Vha25lc3MgKGFuZCBt
dXRhYmxlICN0KSAwCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXF1aXYtZnVuY3Rp
b24gaGFzaC1mdW5jdGlvbikpKSkKKworOzsgSWYgdGhlIGxpc3Qgb2YgYXJndW1lbnRzIGlzIHVw
ZGF0ZWQsIEhBU0gtVEFCTEUsIEFMSVNULT5IQVNILVRBQkxFLAorOzsgSEFTSC1UQUJMRS1VTkZP
TEQgYW5kIEhBU0gtVEFCTEUtTUFQIHNob3VsZCBiZSB1cGRhdGVkIGFzIHdlbGwuCisoZGVmaW5l
KiAobWFrZS1oYXNoLXRhYmxlIGVxdWl2LWZ1bmN0aW9uIGhhc2gtZnVuY3Rpb24KKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgIzprZXkgKGNhcGFjaXR5IDEpICh3ZWFrbmVzcyAjZikgIzpyZXN0
IGFyZ3MpCisgICJDcmVhdGVzIGEgbmV3IGhhc2ggdGFibGUuIEVRVUlWLUZVTkNUSU9OIGlzIHVz
ZWQgYXMgdGhlIGNvbXBhcmlzb24KK2Z1bmN0aW9uIGFuZCBIQVNILUZVTkNUSU9OLCBpZiBub3Qg
ZmFsc2UsIGlzIHVzZWQgYXMgdGhlIGhhc2ggZnVuY3Rpb24sCitvdGhlcndpc2UgYSBzdWl0YWJs
ZSBoYXNoLWZ1bmN0aW9uIGZvciB0aGUgaGFzaCB0YWJsZSBpcyBndWVzc2VkIG9yLCBpZgorb25l
IGNhbid0IGJlIGd1ZXNzZWQsIGFuIGVycm9yIGlzIHNpZ25hbGVkLiAjOldFQUtORVNTIHNob3Vs
ZCBiZSBlaXRoZXIKKyNmLCBXRUFLLUtFWSwgV0VBSy1WQUxVRSBvciBXRUFLLUtFWS1BTkQtVkFM
VUUsIGFzIHNwZWNpZmllZCBieQorU1JGSS0xMjYuICM6Q0FQQUNJVFkgaXMgdGhlIG1pbmltYWwg
bnVtYmVyIG9mIGJ1Y2tldHMgb2YgdGhlIGhhc2ggdGFibGUuCisKK0FSR1MgaXMgaWdub3JlZCBh
bmQgcmVzZXJ2ZWQgZm9yIGZ1dHVyZSBleHRlbnNpb25zLiIKKyAgKCVtYWtlLWhhc2gtdGFibGUg
ZXF1aXYtZnVuY3Rpb24gaGFzaC1mdW5jdGlvbiAjdCBjYXBhY2l0eSB3ZWFrbmVzcykpCisKKzs7
IFdlIHVzZSB0aGlzIHRvIGRlbm90ZSBtaXNzaW5nIG9yIHVuc3BlY2lmaWVkIHZhbHVlcyB0byBh
dm9pZAorOzsgcG9zc2libGUgY29sbGlzaW9uIHdpdGggKnVuc3BlY2lmaWVkKi4KKworKGRlZmlu
ZSBodC11bnNwZWNpZmllZCAoY29ucyAqdW5zcGVjaWZpZWQqICJodC12YWx1ZSIpKQorCisoZGVm
aW5lKiAoaGFzaC10YWJsZSBlcXVpdi1mdW5jdGlvbi1vci1taHQtYXJncyAuIGFyZ3MpCisgICJD
cmVhdGVzIGEgbmV3IGltbXV0YWJsZSBoYXNoIHRhYmxlIHdpdGggdGhlIGFzc29jaWF0aW9ucyBn
aXZlbiBieQorQVJHUy4gSWYgRVFVSVYtRlVOQ1RJT04tT1ItTUhULUFSR1MgaXMgYSBsaXN0LCB0
aGUgbmV3IGhhc2ggdGFibGUgaXMKK2NyZWF0ZWQgYnkgKEFQUExZIE1BS0UtSEFTSC1UQUJMRSBF
UVVJVi1GVU5DVElPTi1PUi1NSFQtQVJHUyksIG90aGVyd2lzZQoraXQgaXMgY3JlYXRlZCBieSAo
TUFLRS1IQVNILVRBQkxFIEVRVUlWLUZVTkNUSU9OLU9SLU1IVC1BUkdTKSB3aXRoIHRoZQoraW5p
dGlhbCBjYXBhY2l0eSBzZXQgdG8gdGhlIG51bWJlciBvZiBhc3NvY2lhdGlvbnMgaW4gYXJncy4K
KworVGhlIEFSR1MgYWx0ZXJuYXRlIGJldHdlZW4ga2V5cyBhbmQgdmFsdWVzLiBJZiB0aGUgc2Ft
ZSBrZXkgKGluIHRoZQorc2Vuc2Ugb2YgdGhlIGVxdWFsaXR5IHByb2NlZHVyZSkgaXMgc3BlY2lm
aWVkIG1vcmUgdGhlbiBvbmNlLCBhbiBlcnJvcgoraXMgc2lnbmFsZWQuIgorICAobGV0ICgobGVu
IChsZW5ndGggYXJncykpKQorICAgICh1bmxlc3MgKGV2ZW4/IGxlbikKKyAgICAgIChlcnJvciAi
T2RkIG51bWJlciBvZiBrZXktdmFsdWUgcGFpcnMiIGFyZ3MpKQorICAgIChsZXQqICgoY2FwYWNp
dHkgKHF1b3RpZW50IGxlbiAyKSkKKyAgICAgICAgICAgKGh0IChpZiAocGFpcj8gZXF1aXYtZnVu
Y3Rpb24tb3ItbWh0LWFyZ3MpCisgICAgICAgICAgICAgICAgICAgKGNvbmQgKChudWxsPyBlcXVp
di1mdW5jdGlvbi1vci1taHQtYXJncykKKyAgICAgICAgICAgICAgICAgICAgICAgICAgOzsgU1JG
SS0xMjUgU3BlYyBzYXlzIHRoaXMgc2hvdWxkIHJldHVybiBhbiBpbW11dGFibGUgaGFzaCB0YWJs
ZQorICAgICAgICAgICAgICAgICAgICAgICAgICAoJW1ha2UtaGFzaC10YWJsZSBlcXVhbD8gI2Yg
I2YgY2FwYWNpdHkgI2YpKQorICAgICAgICAgICAgICAgICAgICAgICAgICgobnVsbD8gKGNkciBl
cXVpdi1mdW5jdGlvbi1vci1taHQtYXJncykpCisgICAgICAgICAgICAgICAgICAgICAgICAgICgl
bWFrZS1oYXNoLXRhYmxlIChjYXIgZXF1aXYtZnVuY3Rpb24tb3ItbWh0LWFyZ3MpICNmCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICNmIGNhcGFjaXR5ICNmKSkK
KyAgICAgICAgICAgICAgICAgICAgICAgICAoKG51bGw/IChjZGRyIGVxdWl2LWZ1bmN0aW9uLW9y
LW1odC1hcmdzKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgKCVtYWtlLWhhc2gtdGFibGUg
KGNhciBlcXVpdi1mdW5jdGlvbi1vci1taHQtYXJncykKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgKGNhZHIgZXF1aXYtZnVuY3Rpb24tb3ItbWh0LWFyZ3MpCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICNmIGNhcGFjaXR5ICNm
KSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAoZWxzZQorICAgICAgICAgICAgICAgICAgICAg
ICAgICAoYXBwbHkgKGxhbWJkYSogKGVxdWl2LWZ1bmN0aW9uCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgaGFzaC1mdW5jdGlvbgorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICM6a2V5IChtdXRhYmxlICNmKQorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjYXBhY2l0eSBjYXBhY2l0eSkKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAod2Vha25lc3MgI2YpCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIzpyZXN0IGFyZ3MpCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICglbWFrZS1oYXNoLXRhYmxlIGVxdWl2LWZ1
bmN0aW9uIGhhc2gtZnVuY3Rpb24KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgbXV0YWJsZSBjYXBhY2l0eSB3ZWFrbmVzcykpCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAoY2FyIGVxdWl2LWZ1bmN0aW9uLW9yLW1odC1hcmdzKQor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNhZHIgZXF1aXYtZnVuY3Rpb24tb3It
bWh0LWFyZ3MpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjOmNhcGFjaXR5IGNh
cGFjaXR5CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2RkciBlcXVpdi1mdW5j
dGlvbi1vci1taHQtYXJncykpKSkKKyAgICAgICAgICAgICAgICAgICAoJW1ha2UtaGFzaC10YWJs
ZSBlcXVpdi1mdW5jdGlvbi1vci1taHQtYXJncyAjZiAjZiBjYXBhY2l0eSAjZikpKSkKKyAgICAg
ICh3aXRoLWhhc2h4LXZhbHVlcyAoaCBhIHJlYWwtdGFibGUpIGh0CisgICAgICAgIChpZiAoaHQt
d2Vha25lc3MgaHQpCisgICAgICAgICAgICAobGV0IGxvb3AgKChrdnMgYXJncykpCisgICAgICAg
ICAgICAgIChjb25kCisgICAgICAgICAgICAgICAoKG51bGw/IGt2cykgI2YpCisgICAgICAgICAg
ICAgICAoKG5vdCAoZXE/IGh0LXVuc3BlY2lmaWVkCisgICAgICAgICAgICAgICAgICAgICAgICAg
IChoYXNoeC1yZWYgaCBhIHJlYWwtdGFibGUgKGNhciBrdnMpIGh0LXVuc3BlY2lmaWVkKSkpCisg
ICAgICAgICAgICAgICAgKGVycm9yICJUd28gZXF1aXZhbGVudCBrZXlzIHdlcmUgcHJvdmlkZWQi
CisgICAgICAgICAgICAgICAgICAgICAgIChjYXIgKG1lbWJlciAoY2FyIGt2cykgKGhhc2gtdGFi
bGUta2V5cyBodCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChoYXNoLXRh
YmxlLWVxdWl2YWxlbmNlLWZ1bmN0aW9uIGh0KSkpCisgICAgICAgICAgICAgICAgICAgICAgIChj
YXIga3ZzKSkpCisgICAgICAgICAgICAgICAoZWxzZSAoaGFzaHgtc2V0ISBoIGEgcmVhbC10YWJs
ZSAoY2FyIGt2cykgKGNhZHIga3ZzKSkKKyAgICAgICAgICAgICAgICAgICAgIChsb29wIChjZGRy
IGt2cykpKSkpCisgICAgICAgICAgICAobGV0IGxvb3AgKChrdnMgYXJncykpCisgICAgICAgICAg
ICAgIChjb25kCisgICAgICAgICAgICAgICAoKG51bGw/IGt2cykgI2YpCisgICAgICAgICAgICAg
ICAoZWxzZSAobGV0ICgoaGFuZGxlIChoYXNoeC1jcmVhdGUtaGFuZGxlISBoIGEgcmVhbC10YWJs
ZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgKGNhciBrdnMpIGh0LXVuc3BlY2lmaWVkKSkpCisgICAgICAgICAgICAgICAgICAgICAgICh1
bmxlc3MgKGVxPyBodC11bnNwZWNpZmllZCAoY2RyIGhhbmRsZSkpCisgICAgICAgICAgICAgICAg
ICAgICAgICAgKGVycm9yICJUd28gZXF1aXZhbGVudCBrZXlzIHdlcmUgcHJvdmlkZWQiCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjYXIgaGFuZGxlKSAoY2FyIGt2cykpKQorICAg
ICAgICAgICAgICAgICAgICAgICAoc2V0LWNkciEgaGFuZGxlIChjYWRyIGt2cykpKQorICAgICAg
ICAgICAgICAgICAgICAgKGxvb3AgKGNkZHIga3ZzKSkpKQorICAgICAgICAgICAgICAoaHQtc2l6
ZSEgaHQgY2FwYWNpdHkpKSkpCisgICAgICBodCkpKQorCisoZGVmaW5lKiAoaGFzaC10YWJsZS11
bmZvbGQgc3RvcD8gbWFwcGVyIHN1Y2Nlc3NvciBzZWVkCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgZXF1aXYtZnVuY3Rpb24gaGFzaC1mdW5jdGlvbgorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICM6a2V5IChtdXRhYmxlICN0KSAod2Vha25lc3MgI2YpIChjYXBhY2l0eSAxKSAjOnJl
c3QgYXJncykKKyAgIlJldHVybnMgYSBuZXcgaGFzaCB0YWJsZSBjcmVhdGVkIGJ5IE1BS0UtSEFT
SC1UQUJMRSB3aXRoIHRoZSBnaXZlbgorYXJndW1lbnRzLiBJZiB0aGUgcmVzdWx0IG9mIGFwcGx5
aW5nIHRoZSBwcmVkaWNhdGUgU1RPUD8gdG8gU0VFRCBpcwordHJ1ZSwgcmV0dXJucyB0aGUgaGFz
aCB0YWJsZS4gT3RoZXJ3aXNlLCBhcHBseSB0aGUgcHJvY2VkdXJlIE1BUFBFUiB0bworU0VFRC4g
TUFQUEVSIHJldHVybnMgdHdvIHZhbHVlcywgd2hpY2ggYXJlIGluc2VydGVkIGludG8gdGhlIGhh
c2ggdGFibGUKK2FzIHRoZSBrZXkgYW5kIHRoZSB2YWx1ZSByZXNwZWN0aXZlbHkuIFRoZW4gZ2V0
IGEgbmV3IHNlZWQgYnkgYXBwbHlpbmcKK3RoZSBwcm9jZWR1cmUgU1VDQ0VTU09SIHRvIFNFRUQs
IGFuZCByZXBlYXQgdGhpcyBhbGdvcml0aG0uIgorICAobGV0ICgocmVzdWx0ICglbWFrZS1oYXNo
LXRhYmxlIGVxdWl2LWZ1bmN0aW9uIGhhc2gtZnVuY3Rpb24KKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBtdXRhYmxlIGNhcGFjaXR5IHdlYWtuZXNzKSkpCisgICAgKHdpdGgtaGFz
aHgtdmFsdWVzIChoIGEgcmVhbC10YWJsZSkgcmVzdWx0CisgICAgICAoaWYgKGh0LXdlYWtuZXNz
IHJlc3VsdCkKKyAgICAgICAgICAobGV0IGxvb3AgKChzZWVkIHNlZWQpKQorICAgICAgICAgICAg
KGlmIChzdG9wPyBzZWVkKQorICAgICAgICAgICAgICAgIHJlc3VsdAorICAgICAgICAgICAgICAg
IChyZWNlaXZlIChrZXkgdmFsKSAobWFwcGVyIHNlZWQpCisgICAgICAgICAgICAgICAgICAoaGFz
aHgtc2V0ISBoIGEgcmVhbC10YWJsZSBrZXkgdmFsKQorICAgICAgICAgICAgICAgICAgKGxvb3Ag
KHN1Y2Nlc3NvciBzZWVkKSkpKSkKKyAgICAgICAgICAobGV0ICgoc2l6ZSAoaHQtc2l6ZSByZXN1
bHQpKSkKKyAgICAgICAgICAgIChsZXQgbG9vcCAoKHNlZWQgc2VlZCkpCisgICAgICAgICAgICAg
IChpZiAoc3RvcD8gc2VlZCkKKyAgICAgICAgICAgICAgICAgIHJlc3VsdAorICAgICAgICAgICAg
ICAgICAgKHJlY2VpdmUgKGtleSB2YWwpIChtYXBwZXIgc2VlZCkKKyAgICAgICAgICAgICAgICAg
ICAgKGxldCAoKGhhbmRsZSAoaGFzaHgtY3JlYXRlLWhhbmRsZSEgaCBhIHJlYWwtdGFibGUga2V5
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGh0LXVuc3BlY2lmaWVkKSkpCisgICAgICAgICAgICAgICAgICAgICAgKGlmIChlcT8gaHQtdW5z
cGVjaWZpZWQgKGNkciBoYW5kbGUpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAoc2V0ISBz
aXplICgrIDEgc2l6ZSkpKQorICAgICAgICAgICAgICAgICAgICAgIChzZXQtY2RyISBoYW5kbGUg
dmFsKSkKKyAgICAgICAgICAgICAgICAgICAgKGxvb3AgKHN1Y2Nlc3NvciBzZWVkKSkpKSkKKyAg
ICAgICAgICAgIChodC1zaXplISByZXN1bHQgc2l6ZSkpKSkKKyAgICByZXN1bHQpKQorCisoZGVm
aW5lKiAoYWxpc3QtPmhhc2gtdGFibGUgYWxpc3QgZXF1aXYtZnVuY3Rpb24gaGFzaC1mdW5jdGlv
bgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICM6a2V5IChtdXRhYmxlICN0KSAoY2FwYWNp
dHkgKGxlbmd0aCBhbGlzdCkpICh3ZWFrbmVzcyAjZikKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAjOnJlc3QgYXJncykKKyAgIlJldHVybnMgYSBuZXcgaGFzaC10YWJsZSBjcmVhdGVkIGJ5
IE1BS0UtSEFTSC1UQUJMRSB3aXRoIHRoZSBnaXZlbgorYXJndW1lbnRzLiBJdCBpcyBpbml0aWFs
aXplZCBmcm9tIHRoZSBhc3NvY2lhdGlvbnMgb2YgYWxpc3QuCitBc3NvY2lhdGlvbnMgZWFybGll
ciBpbiB0aGUgbGlzdCB0YWtlIHByZWNlZGVuY2Ugb3ZlciB0aG9zZSB0aGF0Citjb21lIGxhdGVy
LiIKKyAgKGxldCAoKHJlc3VsdCAoJW1ha2UtaGFzaC10YWJsZSBlcXVpdi1mdW5jdGlvbiBoYXNo
LWZ1bmN0aW9uCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbXV0YWJsZSBjYXBh
Y2l0eSB3ZWFrbmVzcykpKQorICAgICh3aXRoLWhhc2h4LXZhbHVlcyAoaCBhIHJlYWwtdGFibGUp
IHJlc3VsdAorICAgICAgKGlmIChodC13ZWFrbmVzcyByZXN1bHQpCisgICAgICAgICAgKGZvci1l
YWNoIChsYW1iZGEgKHBhaXIpCisgICAgICAgICAgICAgICAgICAgICAgKGhhc2h4LXNldCEgaCBh
IHJlYWwtdGFibGUgKGNhciBwYWlyKSAoY2RyIHBhaXIpKSkKKyAgICAgICAgICAgICAgICAgICAg
KHJldmVyc2UgYWxpc3QpKQorICAgICAgICAgIChsZXQgKChzaXplIChodC1zaXplIHJlc3VsdCkp
KQorICAgICAgICAgICAgKGZvci1lYWNoIChsYW1iZGEgKHBhaXIpCisgICAgICAgICAgICAgICAg
ICAgICAgICAobGV0ICgoaGFuZGxlIChoYXNoeC1jcmVhdGUtaGFuZGxlIQorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgaCBhIHJlYWwtdGFibGUgKGNhciBwYWlyKSBodC11
bnNwZWNpZmllZCkpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAod2hlbiAoZXE/IGh0LXVu
c3BlY2lmaWVkIChjZHIgaGFuZGxlKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAoc2V0
ISBzaXplICgrIDEgc2l6ZSkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHNldC1jZHIh
IGhhbmRsZSAoY2RyIHBhaXIpKSkpKQorICAgICAgICAgICAgICAgICAgICAgIGFsaXN0KQorICAg
ICAgICAgICAgKGh0LXNpemUhIHJlc3VsdCBzaXplKSkpKQorICAgIHJlc3VsdCkpCisKKwwKKzs7
OzsgQWNjZXNzaW5nIHRhYmxlIGl0ZW1zCisKKyhkZWZpbmUqIChoYXNoLXRhYmxlLXJlZiBodCBr
ZXkgIzpvcHRpb25hbAorICAgICAgICAgICAgICAgICAgICAgICAgIChmYWlsdXJlIChsYW1iZGEg
KCkgKGVycm9yICJLZXkgbm90IGluIHRhYmxlIiBrZXkgaHQpKSkKKyAgICAgICAgICAgICAgICAg
ICAgICAgICBzdWNjZXNzKQorICAiRXh0cmFjdHMgdGhlIHZhbHVlIGFzc29jaWF0ZWQgdG8gS0VZ
IGluIEhULCBpbnZva2VzIHRoZSBwcm9jZWR1cmUKK1NVQ0NFU1Mgb24gaXQsIGFuZCByZXR1cm5z
IGl0cyByZXN1bHQ7IGlmIFNVQ0NFU1MgaXMgbm90IHByb3ZpZGVkLCB0aGVuCit0aGUgdmFsdWUg
aXRzZWxmIGlzIHJldHVybmVkLiBJZiBrZXkgaXMgbm90IGNvbnRhaW5lZCBpbiBoYXNoLXRhYmxl
IGFuZAorRkFJTFVSRSBpcyBzdXBwbGllZCwgdGhlbiBGQUlMVVJFIGlzIGludm9rZWQgb24gbm8g
YXJndW1lbnRzIGFuZCBpdHMKK3Jlc3VsdCBpcyByZXR1cm5lZC4gT3RoZXJ3aXNlLCBhbiBlcnJv
ciBpcyBzaWduYWxlZC4iCisgIChsZXQgKChyZXN1bHQgKGhhc2h4LWludm9rZSBoYXNoeC1yZWYg
aHQga2V5IGh0LXVuc3BlY2lmaWVkKSkpCisgICAgKGlmIChlcT8gaHQtdW5zcGVjaWZpZWQgcmVz
dWx0KQorICAgICAgICAoZmFpbHVyZSkKKyAgICAgICAgKGlmIHN1Y2Nlc3MgKHN1Y2Nlc3MgcmVz
dWx0KSByZXN1bHQpKSkpCisKKyhkZWZpbmUgKGhhc2gtdGFibGUtcmVmL2RlZmF1bHQgaHQga2V5
IGRlZmF1bHQpCisgICJMb29rdXBzIEtFWSBpbiBIVCBhbmQgcmV0dXJucyB0aGUgYXNzb2NpYXRl
ZCB2YWx1ZS4gUmV0dXJucyBERUZBVUxUIGlmCitLRVkgaXNuJ3QgcHJlc2VudC4iCisgIChoYXNo
eC1pbnZva2UgaGFzaHgtcmVmIGh0IGtleSBkZWZhdWx0KSkKKworDAorOzs7IFByZWRpY2F0ZXMu
CisKKzs7IChkZWZpbmUgKGhhc2gtdGFibGU/IG9iaikpCisKKyhkZWZpbmUgKGhhc2gtdGFibGUt
ZW1wdHk/IGh0KQorICAiUmV0dXJucyB3aGV0aGVyIEtFWSBpcyBlbXB0eS4iCisgIChpZiAoaHQt
d2Vha25lc3MgaHQpCisgICAgICAoY2FsbC9jYyAobGFtYmRhIChleGl0KQorICAgICAgICAgICAg
ICAgICAoaGFzaC1mb3ItZWFjaCAobGFtYmRhIChrZXkgdmFsKSAoZXhpdCAjZikpCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIChodC1yZWFsLXRhYmxlIGh0KSkKKyAgICAgICAgICAg
ICAgICAgI3QpKQorICAgICAgKHplcm8/IChodC1zaXplIGh0KSkpKQorCisoZGVmaW5lIChoYXNo
LXRhYmxlLWNvbnRhaW5zPyBodCBrZXkpCisgICJSZXR1cm4gd2hldGhlciBLRVkgaXMgYSBrZXkg
aW4gSFQuIgorICAobm90IChlcT8gaHQtdW5zcGVjaWZpZWQgKGhhc2h4LWludm9rZSBoYXNoeC1y
ZWYgaHQga2V5IGh0LXVuc3BlY2lmaWVkKSkpKQorCisoZGVmaW5lIChoYXNoLXRhYmxlPT8gdmFs
PT8gaHQxIGh0MikKKyAgIlJldHVybnMgI3QgaWYgdGhlIGhhc2ggdGFibGVzIEhUMSBhbmQgSFQy
IGhhdmUgdGhlIHNhbWUga2V5cyAoaW4gdGhlCitzZW5zZSBvZiB0aGVpciBjb21tb24gZXF1YWxp
dHkgcHJlZGljYXRlKSBhbmQgZWFjaCBrZXkgaGFzIHRoZSBzYW1lCit2YWx1ZSAoaW4gdGhlIHNl
bnNlIG9mIFZBTD0/KSwgYW5kICNmIG90aGVyd2lzZS4iCisgIChsZXQgKChuMSAoaGFzaC10YWJs
ZS1zaXplIGh0MSkpCisgICAgICAgIChuMiAoaGFzaC10YWJsZS1zaXplIGh0MikpKQorICAgIChh
bmQgKD0gbjEgbjIpCisgICAgICAgICAoZXE/IChoYXNoLXRhYmxlLWVxdWl2YWxlbmNlLWZ1bmN0
aW9uIGh0MSkKKyAgICAgICAgICAgICAgKGhhc2gtdGFibGUtZXF1aXZhbGVuY2UtZnVuY3Rpb24g
aHQyKSkKKyAgICAgICAgIChyZWNlaXZlIChrZXlzIHZhbHMpIChoYXNoLXRhYmxlLWVudHJpZXMg
aHQxKQorICAgICAgICAgICAoZXZlcnkgKGxhbWJkYSAoa2V5IHZhbDEpCisgICAgICAgICAgICAg
ICAgICAgIChhbmQgKGhhc2gtdGFibGUtY29udGFpbnM/IGh0MiBrZXkpCisgICAgICAgICAgICAg
ICAgICAgICAgICAgKHZhbD0/IHZhbDEgKGhhc2gtdGFibGUtcmVmIGh0MiBrZXkpKSkpCisgICAg
ICAgICAgICAgICAgICBrZXlzIHZhbHMpKSkpKQorCisMCis7OzsgTXV0YXRvcnMuCisKKyhkZWZp
bmUgKGhhc2gtdGFibGUtc2V0LXNpbmdsZSEgaHQga2V5IHZhbCkKKyAgIklmIEhUIGlzIGltbXV0
YWJsZSwgYW4gZXJyb3IgaXMgc2lnbmFsZWQuIE90aGVyd2lzZSwgYSBuZXcKK2Fzc29jaWF0aW9u
IGlzIGNyZWF0ZWQgYmV0d2VlbiBLRVkgYW5kIFZBTC4gSWYgdGhlcmUgaXMgYSBwcmV2aW91cwor
YXNzb2NpYXRpb24gZm9yIEtFWSwgaXQgaXMgZGVsZXRlZC4iCisgIChhc3NlcnQtbXV0YWJsZSBo
dCkKKyAgKHdpdGgtaGFzaHgtdmFsdWVzIChoIGEgcmVhbC10YWJsZSkgaHQKKyAgICAoaWYgKGh0
LXdlYWtuZXNzIGh0KQorICAgICAgICAoaGFzaHgtc2V0ISBoIGEgcmVhbC10YWJsZSBrZXkgdmFs
KQorICAgICAgICAobGV0ICgoaGFuZGxlIChoYXNoeC1jcmVhdGUtaGFuZGxlIQorICAgICAgICAg
ICAgICAgICAgICAgICBoIGEgcmVhbC10YWJsZSBrZXkKKyAgICAgICAgICAgICAgICAgICAgICAg
aHQtdW5zcGVjaWZpZWQpKSkKKyAgICAgICAgICAoaWYgKGVxPyBodC11bnNwZWNpZmllZCAoY2Ry
IGhhbmRsZSkpCisgICAgICAgICAgICAgIChodC1zaXplISBodCAoKyAxIChodC1zaXplIGh0KSkp
KQorICAgICAgICAgIChzZXQtY2RyISBoYW5kbGUgdmFsKSkpKSkKKworKGRlZmluZSogKGhhc2gt
dGFibGUtc2V0ISBodCAjOm9wdGlvbmFsIChrZXkxIGh0LXVuc3BlY2lmaWVkKSAodmFsMSBodC11
bnNwZWNpZmllZCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIzpyZXN0IGFyZ3MpCisgICJJ
ZiBIVCBpcyBpbW11dGFibGUsIGFuIGVycm9yIGlzIHNpZ25hbGVkLiBPdGhlcndpc2UsIHJlcGVh
dGVkbHkKK211dGF0ZXMgdGhlIGhhc2ggdGFibGUgSFQsIGNyZWF0aW5nIG5ldyBhc3NvY2lhdGlv
bnMgaW4gaXQgYnkgcHJvY2Vzc2luZwordGhlIGFyZ3VtZW50cyBmcm9tIGxlZnQgdG8gcmlnaHQu
IFRoZSBBUkdTIGFsdGVybmF0ZSBiZXR3ZWVuIGtleXMgYW5kCit2YWx1ZXMuIFdoZW5ldmVyIHRo
ZXJlIGlzIGEgcHJldmlvdXMgYXNzb2NpYXRpb24gZm9yIGEga2V5LCBpdCBpcworZGVsZXRlZC4i
CisgIChpZiAobnVsbD8gYXJncykKKyAgICAgIChpZiAoZXE/IHZhbDEgaHQtdW5zcGVjaWZpZWQp
CisgICAgICAgICAgKGlmIChlcT8ga2V5MSBodC11bnNwZWNpZmllZCkKKyAgICAgICAgICAgICAg
OzsgSWYgb25lIGNhbGxzIChoYXNoLXRhYmxlLXNldCEgaHQpIHdpdGggYW4KKyAgICAgICAgICAg
ICAgOzsgaW1tdXRhYmxlIGhhc2ggdGFibGUsIHNvbWV0aGluZyBpcyByZWFsbHkgd3JvbmcuCisg
ICAgICAgICAgICAgIChhc3NlcnQtbXV0YWJsZSBodCkKKyAgICAgICAgICAgICAgKGVycm9yICJO
byB2YWx1ZSBwcm92aWRlZCBmb3Iga2V5IiBrZXkxKSkKKyAgICAgICAgICAoaGFzaC10YWJsZS1z
ZXQtc2luZ2xlISBodCBrZXkxIHZhbDEpKQorICAgICAgKGJlZ2luCisgICAgICAgIChhc3NlcnQt
bXV0YWJsZSBodCkKKyAgICAgICAgKHdpdGgtaGFzaHgtdmFsdWVzIChoIGEgcmVhbC10YWJsZSkg
aHQKKyAgICAgICAgICAobGV0ICgoc2V0LW9uZSEgKGlmIChodC13ZWFrbmVzcyBodCkKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIChsYW1iZGEgKGtleSB2YWwpCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIChoYXNoeC1zZXQhIGggYSByZWFsLXRhYmxlIGtleSB2YWwpKQor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxhbWJkYSAoa2V5IHZhbCkKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgKGxldCAoKGhhbmRsZSAoaGFzaHgtY3JlYXRlLWhhbmRs
ZSEKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaCBhIHJl
YWwtdGFibGUga2V5CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGh0LXVuc3BlY2lmaWVkKSkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
KGlmIChlcT8gaHQtdW5zcGVjaWZpZWQgKGNkciBoYW5kbGUpKQorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAoaHQtc2l6ZSEgaHQgKCsgMSAoaHQtc2l6ZSBodCkpKSkKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoc2V0LWNkciEgaGFuZGxlIHZhbCkpKSkp
KQorICAgICAgICAgICAgKHNldC1vbmUhIGtleTEgdmFsMSkKKyAgICAgICAgICAgIChsZXQgbG9v
cCAoKGt2cyBhcmdzKSkKKyAgICAgICAgICAgICAgKGNvbmQKKyAgICAgICAgICAgICAgICgobnVs
bD8ga3ZzKSAqdW5zcGVjaWZpZWQqKQorICAgICAgICAgICAgICAgKChudWxsPyAoY2RyIGt2cykp
CisgICAgICAgICAgICAgICAgKGVycm9yICJPZGQgbnVtYmVyIG9mIGtleS12YWx1ZSBwYWlycyIK
KyAgICAgICAgICAgICAgICAgICAgICAgKGNvbnMqIGtleTEgdmFsMSBhcmdzKSkpCisgICAgICAg
ICAgICAgICAoZWxzZSAoc2V0LW9uZSEgKGNhciBrdnMpIChjYWRyIGt2cykpCisgICAgICAgICAg
ICAgICAgICAgICAobG9vcCAoY2RkciBrdnMpKSkpKSkpKSkpCisKKyhkZWZpbmUgKGhhc2gtdGFi
bGUtZGVsZXRlLXNpbmdsZSEgaHQga2V5KQorICAiRGVsZXRlcyBLRVkgYW5kIGFzc29jaWF0ZWQg
dmFsdWUgaW4gaGFzaCB0YWJsZSBIVC4gUmV0dXJucyAjdCBpZiBLRVkKK2hhZCBhbiBhc3NvY2lh
dGlvbiBhbmQgI2Ygb3RoZXJ3aXNlLiIKKyAgKGFzc2VydC1tdXRhYmxlIGh0KQorICAod2l0aC1o
YXNoeC12YWx1ZXMgKGggYSByZWFsLXRhYmxlKSBodAorICAgIChpZiAoZXE/IGh0LXVuc3BlY2lm
aWVkIChoYXNoeC1yZWYgaCBhIHJlYWwtdGFibGUga2V5IGh0LXVuc3BlY2lmaWVkKSkKKyAgICAg
ICAgI2YKKyAgICAgICAgKGJlZ2luIChoYXNoeC1yZW1vdmUhIGggYSByZWFsLXRhYmxlIGtleSkK
KyAgICAgICAgICAgICAgIChodC1zaXplISBodCAoLSAoaHQtc2l6ZSBodCkgMSkpCisgICAgICAg
ICAgICAgICAjdCkpKSkKKworKGRlZmluZSogKGhhc2gtdGFibGUtZGVsZXRlISBodCAjOm9wdGlv
bmFsIChrZXkxIGh0LXVuc3BlY2lmaWVkKSAjOnJlc3Qga2V5cykKKyAgIkRlbGV0ZXMgYW55IGFz
c29jaWF0aW9uIHRvIGVhY2gga2V5IGluIGhhc2ggdGFibGUgSFQgYW5kIHJldHVybnMgdGhlCitu
dW1iZXIgb2Yga2V5cyB0aGF0IGhhZCBhc3NvY2lhdGlvbnMuIgorICAoaWYgKG51bGw/IGtleXMp
CisgICAgICAoaWYgKGVxPyBodC11bnNwZWNpZmllZCBrZXkxKQorICAgICAgICAgIChiZWdpbiAo
YXNzZXJ0LW11dGFibGUgaHQpIDApCisgICAgICAgICAgKGlmIChoYXNoLXRhYmxlLWRlbGV0ZS1z
aW5nbGUhIGh0IGtleTEpIDEgMCkpCisgICAgICAoYmVnaW4KKyAgICAgICAgKGFzc2VydC1tdXRh
YmxlIGh0KQorICAgICAgICAobGV0KiAoKGNvdW50IDApCisgICAgICAgICAgICAgICAoZGVsZXRl
LW9uZSEgKGxhbWJkYSAoa2V5KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHdpdGgt
aGFzaHgtdmFsdWVzIChoIGEgcmVhbC10YWJsZSkgaHQKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgKHdoZW4gKG5vdCAoZXE/IGh0LXVuc3BlY2lmaWVkCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaGFzaHgtcmVmIGggYSByZWFsLXRhYmxl
IGtleQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBodC11bnNwZWNpZmllZCkpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIChzZXQhIGNvdW50ICgrIDEgY291bnQpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIChoYXNoeC1yZW1vdmUhIGggYSByZWFsLXRhYmxlIGtleSkpKSkpKQorICAgICAgICAg
IChkZWxldGUtb25lISBrZXkxKQorICAgICAgICAgIChmb3ItZWFjaCBkZWxldGUtb25lISBrZXlz
KQorICAgICAgICAgICh1bmxlc3MgKG9yIChodC13ZWFrbmVzcyBodCkgKHplcm8/IGNvdW50KSkK
KyAgICAgICAgICAgIChodC1zaXplISBodCAoLSAoaHQtc2l6ZSBodCkgY291bnQpKSkKKyAgICAg
ICAgICBjb3VudCkpKSkKKworKGRlZmluZSAoaGFzaC10YWJsZS1pbnRlcm4hIGh0IGtleSBmYWls
dXJlKQorICAiRWZmZWN0aXZlbHkgaW52b2tlcyBIQVNILVRBQkxFLVJFRiB3aXRoIHRoZSBnaXZl
biBhcmd1bWVudHMgYW5kCityZXR1cm5zIHdoYXQgaXQgcmV0dXJucy4gSWYgS0VZIHdhcyBub3Qg
Zm91bmQgaW4gaGFzaC10YWJsZSwgaXRzIHZhbHVlCitpcyBzZXQgdG8gdGhlIHJlc3VsdCBvZiBj
YWxsaW5nIEZBSUxVUkUgYW5kIHRoZSBuZXcgdmFsdWUgaXMgcmV0dXJuZWQuIgorICAoYXNzZXJ0
LW11dGFibGUgaHQpCisgICh3aXRoLWhhc2h4LXZhbHVlcyAoaCBhIHJlYWwtdGFibGUpIGh0Cisg
ICAgKGlmIChodC13ZWFrbmVzcyBodCkKKyAgICAgICAgOzsgU2VwYXJhdGUgdGhlIGNhc2Ugd2hl
cmUgaHQgaXMgd2VhayAtIGRvbid0IHVzZSBoYW5kbGUKKyAgICAgICAgKGxldCogKCh2YWx1ZSAo
aGFzaHgtcmVmIGggYSByZWFsLXRhYmxlIGtleSBodC11bnNwZWNpZmllZCkpKQorICAgICAgICAg
IChjb25kICgoZXE/IGh0LXVuc3BlY2lmaWVkIHZhbHVlKQorICAgICAgICAgICAgICAgICAobGV0
ICgodmFsdWUgKGZhaWx1cmUpKSkKKyAgICAgICAgICAgICAgICAgICAoaGFzaHgtc2V0ISBoIGEg
cmVhbC10YWJsZSBrZXkgdmFsdWUpCisgICAgICAgICAgICAgICAgICAgdmFsdWUpKQorICAgICAg
ICAgICAgICAgIChlbHNlIHZhbHVlKSkpCisgICAgICAgIChsZXQgKChoYW5kbGUKKyAgICAgICAg
ICAgICAgIChoYXNoeC1jcmVhdGUtaGFuZGxlISBoIGEgcmVhbC10YWJsZSBrZXkgaHQtdW5zcGVj
aWZpZWQpKSkKKyAgICAgICAgICAoaWYgKGVxPyBodC11bnNwZWNpZmllZCAoY2RyIGhhbmRsZSkp
CisgICAgICAgICAgICAgIChiZWdpbiAoaHQtc2l6ZSEgaHQgKCsgMSAoaHQtc2l6ZSBodCkpKQor
ICAgICAgICAgICAgICAgICAgICAgKHNldC1jZHIhIGhhbmRsZSAoZmFpbHVyZSkpKSkKKyAgICAg
ICAgICAoY2RyIGhhbmRsZSkpKSkpCisKKyhkZWZpbmUgKGhhc2gtdGFibGUtaW50ZXJuIS9kZWZh
dWx0IGh0IGtleSBkZWZhdWx0KQorICAiRWZmZWN0aXZlbHkgaW52b2tlcyBIQVNILVRBQkxFLVJF
RiB3aXRoIHRoZSBnaXZlbiBhcmd1bWVudHMgYW5kCityZXR1cm5zIHdoYXQgaXQgcmV0dXJucy4g
SWYgS0VZIHdhcyBub3QgZm91bmQgaW4gaGFzaC10YWJsZSwgaXRzIHZhbHVlCitpcyBzZXQgdG8g
REVGQVVMVCBhbmQgREVGQVVMVCBpcyByZXR1cm5lZC4iCisgIChhc3NlcnQtbXV0YWJsZSBodCkK
KyAgKHdpdGgtaGFzaHgtdmFsdWVzIChoIGEgcmVhbC10YWJsZSkgaHQKKyAgICAoaWYgKGh0LXdl
YWtuZXNzIGh0KQorICAgICAgICA7OyBTZXBhcmF0ZSB0aGUgY2FzZSB3aGVyZSBodCBpcyB3ZWFr
IC0gZG9uJ3QgdXNlIGhhbmRsZQorICAgICAgICAobGV0KiAoKHZhbHVlIChoYXNoeC1yZWYgaCBh
IHJlYWwtdGFibGUga2V5IGh0LXVuc3BlY2lmaWVkKSkpCisgICAgICAgICAgKGNvbmQgKChlcT8g
aHQtdW5zcGVjaWZpZWQgdmFsdWUpCisgICAgICAgICAgICAgICAgIChoYXNoeC1zZXQhIGggYSBy
ZWFsLXRhYmxlIGtleSBkZWZhdWx0KQorICAgICAgICAgICAgICAgICBkZWZhdWx0KQorICAgICAg
ICAgICAgICAgIChlbHNlIHZhbHVlKSkpCisgICAgICAgIChsZXQgKChoYW5kbGUKKyAgICAgICAg
ICAgICAgIChoYXNoeC1jcmVhdGUtaGFuZGxlISBoIGEgcmVhbC10YWJsZSBrZXkgaHQtdW5zcGVj
aWZpZWQpKSkKKyAgICAgICAgICAoaWYgKGVxPyBodC11bnNwZWNpZmllZCAoY2RyIGhhbmRsZSkp
CisgICAgICAgICAgICAgIChiZWdpbiAoaHQtc2l6ZSEgaHQgKCsgMSAoaHQtc2l6ZSBodCkpKQor
ICAgICAgICAgICAgICAgICAgICAgKHNldC1jZHIhIGhhbmRsZSBkZWZhdWx0KSkpCisgICAgICAg
ICAgKGNkciBoYW5kbGUpKSkpKQorCisoZGVmaW5lKiAoaGFzaC10YWJsZS11cGRhdGUhIGh0IGtl
eSB1cGRhdGVyICM6b3B0aW9uYWwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZhaWx1
cmUgKGxhbWJkYSAoKSAoZXJyb3IgIktleSBub3QgaW4gdGFibGUiIGtleSBodCkpKQorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBzdWNjZXNzKQorICAiU2VtYW50aWNhbGx5IGVxdWl2YWxl
bnQgdG8sIGJ1dCBtYXkgYmUgbW9yZSBlZmZpY2llbnQgdGhhbiwgdGhlCisgZm9sbG93aW5nIGNv
ZGU6CisgKEhBU0gtVEFCTEUtU0VUISBIVCBLRVkgKFVQREFURVIgKEhBU0gtVEFCTEUtUkVGIEhU
IEtFWSBbRkFJTFVSRSBbU1VDQ0VTU11dKSkpCisKK1NpZ25hbHMgYW4gZXJyb3IgaWYgSFQgaXMg
aW1tdXRhYmxlLiBPdGhlcndpc2UsIGlmIEtFWSBpcyBmb3VuZCBpbiBoYXNoCit0YWJsZSBIVCwg
aXRzIGFzc29jaWF0ZWQgVkFMVUUgaXMgc2V0IHRvIChVUERBVEVSIChTVUNDRVNTIFZBTFVFKSks
CitvciAoVVBEQVRFUiBWQUxVRSkgaWYgU1VDQ0VTUyBpc24ndCBwcm92aWRlZC4gSWYgS0VZIGlz
IG5vdCBmb3VuZCwgc2V0cwordGhlIG5ldyB2YWx1ZSB0byB0aGUgcmVzdWx0IG9mIChVUERBVEVS
IChGQUlMVVJFKSkgaWYgRkFJTFVSRSBpcworcHJvdmlkZWQsIG9yIHNpZ25hbHMgYW4gZXJyb3Ig
b3RoZXJ3aXNlLiIKKyAgKGFzc2VydC1tdXRhYmxlIGh0KQorICAod2l0aC1oYXNoeC12YWx1ZXMg
KGggYSByZWFsLXRhYmxlKSBodAorICAgIChpZiAoaHQtd2Vha25lc3MgaHQpCisgICAgICAgIDs7
IFNlcGFyYXRlIHRoZSBjYXNlIHdoZXJlIGh0IGlzIHdlYWsgLSBkb24ndCB1c2UgaGFuZGxlCisg
ICAgICAgIChsZXQqICgob2xkIChoYXNoeC1yZWYgaCBhIHJlYWwtdGFibGUga2V5IGh0LXVuc3Bl
Y2lmaWVkKSkKKyAgICAgICAgICAgICAgIChuZXcgKHVwZGF0ZXIgKGlmIChlcT8gb2xkIGh0LXVu
c3BlY2lmaWVkKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZhaWx1cmUpCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaWYgc3VjY2VzcyAoc3VjY2VzcyBvbGQp
IG9sZCkpKSkpCisgICAgICAgICAgKGhhc2h4LXNldCEgaCBhIHJlYWwtdGFibGUga2V5IG5ldykp
CisgICAgICAgIChsZXQgKChoYW5kbGUgKGhhc2h4LWdldC1oYW5kbGUgaCBhIHJlYWwtdGFibGUg
a2V5KSkpCisgICAgICAgICAgKGNvbmQgKGhhbmRsZQorICAgICAgICAgICAgICAgICAobGV0KiAo
KG9sZCAoY2RyIGhhbmRsZSkpCisgICAgICAgICAgICAgICAgICAgICAgICAobmV3ICh1cGRhdGVy
IChpZiBzdWNjZXNzIChzdWNjZXNzIG9sZCkgb2xkKSkpKQorICAgICAgICAgICAgICAgICAgIChz
ZXQtY2RyISBoYW5kbGUgbmV3KSkpCisgICAgICAgICAgICAgICAgKGVsc2UKKyAgICAgICAgICAg
ICAgICAgKGxldCAoKG5ldyAodXBkYXRlciAoZmFpbHVyZSkpKSkKKyAgICAgICAgICAgICAgICAg
ICAoaHQtc2l6ZSEgaHQgKCsgMSAoaHQtc2l6ZSBodCkpKQorICAgICAgICAgICAgICAgICAgICho
YXNoeC1zZXQhIGggYSByZWFsLXRhYmxlIGtleSBuZXcpKSkpKSkpCisgICp1bnNwZWNpZmllZCop
CisKKyhkZWZpbmUgKGhhc2gtdGFibGUtdXBkYXRlIS9kZWZhdWx0IGh0IGtleSB1cGRhdGVyIGRl
ZmF1bHQpCisgICJTZW1hbnRpY2FsbHkgZXF1aXZhbGVudCB0bywgYnV0IG1heSBiZSBtb3JlIGVm
ZmljaWVudCB0aGFuLCB0aGUKK2ZvbGxvd2luZyBjb2RlOgorIChIQVNILVRBQkxFLVNFVCEgSFQg
S0VZIChVUERBVEVSIChIQVNILVRBQkxFLVJFRi9ERUZBVUxUIEhUIEtFWSBERUZBVUxUKSkpCisK
K1NpZ25hbHMgYW4gZXJyb3IgaWYgSFQgaXMgaW1tdXRhYmxlLiBPdGhlcndpc2UsIG1vZGlmaWVz
IEhUJ3MgdmFsdWUgYXQKK0tFWSBieSBwYXNzaW5nIGl0cyBvbGQgdmFsdWUsIG9yIERFRkFVTFQg
aWYgaXQgZG9lc24ndCBoYXZlIG9uZSwgdG8KK1VQREFURVIsIGFuZCBzZXR0aW5nIGl0IHRvIHRo
ZSByZXN1bHQgdGhlcmVvZi4iCisgIChhc3NlcnQtbXV0YWJsZSBodCkKKyAgKHdpdGgtaGFzaHgt
dmFsdWVzIChoIGEgcmVhbC10YWJsZSkgaHQKKyAgICAoaWYgKGh0LXdlYWtuZXNzIGh0KQorICAg
ICAgICA7OyBKLk0uIHNlcGFyYXRlIHRoZSBjYXNlIHdoZXJlIGh0IGlzIHdlYWsgLSBkb24ndCB1
c2UgaGFuZGxlCisgICAgICAgIChsZXQqICgob2xkIChoYXNoeC1yZWYgaCBhIHJlYWwtdGFibGUg
a2V5IGRlZmF1bHQpKSkKKyAgICAgICAgICAoaGFzaHgtc2V0ISBoIGEgcmVhbC10YWJsZSBrZXkg
KHVwZGF0ZXIgb2xkKSkpCisgICAgICAgIChsZXQgKChoYW5kbGUgKGhhc2h4LWNyZWF0ZS1oYW5k
bGUhIGggYSByZWFsLXRhYmxlIGtleQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBodC11bnNwZWNpZmllZCkpKQorICAgICAgICAgIChpZiAoZXE/IGh0LXVuc3Bl
Y2lmaWVkIChjZHIgaGFuZGxlKSkKKyAgICAgICAgICAgICAgKGJlZ2luIChodC1zaXplISBodCAo
KyAxIChodC1zaXplIGh0KSkpCisgICAgICAgICAgICAgICAgICAgICAoc2V0LWNkciEgaGFuZGxl
ICh1cGRhdGVyIGRlZmF1bHQpKSkKKyAgICAgICAgICAgICAgKHNldC1jZHIhIGhhbmRsZSAodXBk
YXRlciAoY2RyIGhhbmRsZSkpKSkpKSkKKyAgKnVuc3BlY2lmaWVkKikKKworKGRlZmluZSAoaGFz
aC10YWJsZS1wb3AhIGh0KQorICAiU2lnbmFscyBhbiBlcnJvciBpZiBIVCBpcyBpbW11dGFibGUg
b3IgZW1wdHkuIE90aGVyd2lzZSwgY2hvb3NlcyBhbgorYXJiaXRyYXJ5IGFzc29jaWF0aW9uIGZy
b20gaGFzaC10YWJsZSBhbmQgcmVtb3ZlcyBpdCwgcmV0dXJuaW5nIHRoZSBrZXkKK2FuZCB2YWx1
ZSBhcyB0d28gdmFsdWVzLiIKKyAgKGFzc2VydC1tdXRhYmxlIGh0KQorICAoY2FsbC9jYworICAg
KGxhbWJkYSAocmV0dXJuKQorICAgICAod2l0aC1oYXNoeC12YWx1ZXMgKGggYSByZWFsLXRhYmxl
KSBodAorICAgICAgIChoYXNoLWZvci1lYWNoIChsYW1iZGEgKGtleSB2YWx1ZSkKKyAgICAgICAg
ICAgICAgICAgICAgICAgIChoYXNoeC1yZW1vdmUhIGggYSByZWFsLXRhYmxlIGtleSkKKyAgICAg
ICAgICAgICAgICAgICAgICAgICh1bmxlc3MgKGh0LXdlYWtuZXNzIGh0KQorICAgICAgICAgICAg
ICAgICAgICAgICAgICAoaHQtc2l6ZSEgaHQgKC0gKGh0LXNpemUgaHQpIDEpKSkKKyAgICAgICAg
ICAgICAgICAgICAgICAgIChyZXR1cm4ga2V5IHZhbHVlKSkKKyAgICAgICAgICAgICAgICAgICAg
ICByZWFsLXRhYmxlKSkKKyAgICAgKGVycm9yICJIYXNoIHRhYmxlIGlzIGVtcHR5IiBodCkpKSkK
KworKGRlZmluZSogKGhhc2gtdGFibGUtY2xlYXIhIGh0ICM6b3B0aW9uYWwgY2FwYWNpdHkpCisg
ICJEZWxldGVzIGFsbCBhc3NvY2lhdGlvbnMgZnJvbSBIVC4iCisgIChhc3NlcnQtbXV0YWJsZSBo
dCkKKyAgKGlmIGNhcGFjaXR5CisgICAgICAoaHQtcmVhbC10YWJsZSEgaHQgKChndWlsZS1odC1j
dG9yIChodC13ZWFrbmVzcyBodCkpIGNhcGFjaXR5KSkKKyAgICAgIChoYXNoLWNsZWFyISAoaHQt
cmVhbC10YWJsZSBodCkpKQorICAoaHQtc2l6ZSEgaHQgMCkKKyAgKnVuc3BlY2lmaWVkKikKKwor
DAorOzsgVGhlIHdob2xlIGhhc2ggdGFibGUuCisKKyhkZWZpbmUgKGhhc2gtdGFibGUtc2l6ZSBo
dCkKKyAgIlJldHVybnMgdGhlIG51bWJlciBvZiBhc3NvY2lhdGlvbnMgaW4gSFQuIFRoaXMgaXMg
Z3VhcmFudGVlZCBPKDEpIGZvcgordGFibGVzIHdoZXJlICM6V0VBS05FU1MgaXMgI2YuIgorICAo
aWYgKGh0LXdlYWtuZXNzIGh0KQorICAgICAgKGhhc2gtZm9sZCAobGFtYmRhIChrZXkgdmFsIGFu
cykgKCsgMSBhbnMpKQorICAgICAgICAgICAgICAgICAwIChodC1yZWFsLXRhYmxlIGh0KSkKKyAg
ICAgIChodC1zaXplIGh0KSkpCisKKyhkZWZpbmUgKGhhc2gtdGFibGUta2V5cyBodCkKKyAgIlJl
dHVybnMgYSBsaXN0IG9mIHRoZSBrZXlzIGluIEhULiIKKyAgKGhhc2gtZm9sZCAobGFtYmRhIChr
ZXkgdmFsIGxzdCkgKGNvbnMga2V5IGxzdCkpCisgICAgICAgICAgICAgJygpIChodC1yZWFsLXRh
YmxlIGh0KSkpCisKKyhkZWZpbmUgKGhhc2gtdGFibGUtdmFsdWVzIGh0KQorICAiUmV0dXJucyBh
IGxpc3Qgb2YgdGhlIHZhbHVlcyBpbiBIVC4iCisgIChoYXNoLWZvbGQgKGxhbWJkYSAoa2V5IHZh
bCBsc3QpIChjb25zIHZhbCBsc3QpKQorICAgICAgICAgICAgICcoKSAoaHQtcmVhbC10YWJsZSBo
dCkpKQorCisoZGVmaW5lIChoYXNoLXRhYmxlLWVudHJpZXMgaHQpCisgICJSZXR1cm5zIHR3byB2
YWx1ZXM6IGEgbGlzdCBvZiB0aGUga2V5cyBhbmQgYSBsaXN0IG9mIHRoZSBhc3NvY2lhdGVkCit2
YWx1ZXMgaW4gdGhlIGNvcnJlc3BvbmRpbmcgb3JkZXIuIgorICAobGV0ICgoa2V5cyAnKCkpICh2
YWxzICcoKSkpCisgICAgKGhhc2gtZm9yLWVhY2ggKGxhbWJkYSAoa2V5IHZhbCkKKyAgICAgICAg
ICAgICAgICAgICAgIChzZXQhIGtleXMgKGNvbnMga2V5IGtleXMpKQorICAgICAgICAgICAgICAg
ICAgICAgKHNldCEgdmFscyAoY29ucyB2YWwgdmFscykpKQorICAgICAgICAgICAgICAgICAgICho
dC1yZWFsLXRhYmxlIGh0KSkKKyAgICAodmFsdWVzIGtleXMgdmFscykpKQorCis7OzsgSW4gYSBu
b24td2VhayBoYXNoIHRhYmxlLCB3ZSBrbm93IHRoZSBzaXplIHRoYXQgdGhlIGtleS92YWx1ZSB2
ZWN0b3IKKzs7OyB3aWxsIGhhdmUuIEluIGEgd2VhayBoYXNoIHRhYmxlLCB3ZSBoYXZlIHRvIGl0
ZXJhdGUgdGhyb3cKKzs7OyBhc3NvY2lhdGlvbnMgb2YgdGhlIGhhc2ggdGFibGUgdG8gY29tcHV0
ZSBpdHMgc2l6ZSwgc28gaXQgaXMgZWFzaWVyCis7OzsgdG8gc2ltcGx5IGNhbGwgSEFTSC1UQUJM
RS1LRVlTL0hBU0gtVEFCTEUtVkFMVUVTLgorKGRlZmluZSAoaGFzaC10YWJsZS1rZXktdmVjdG9y
IGh0KQorICAiUmV0dXJucyBhIHZlY3RvciBvZiB0aGUga2V5cyBpbiBIVC4iCisgIChpZiAoaHQt
d2Vha25lc3MgaHQpCisgICAgICAobGlzdC0+dmVjdG9yIChoYXNoLXRhYmxlLWtleXMgaHQpKQor
ICAgICAgKGxldCogKChsZW4gKGh0LXNpemUgaHQpKQorICAgICAgICAgICAgIChrZXlzIChtYWtl
LXZlY3RvciBsZW4pKSkKKyAgICAgICAgKGhhc2gtZm9sZCAobGFtYmRhIChrZXkgdmFsIGkpCisg
ICAgICAgICAgICAgICAgICAgICAodmVjdG9yLXNldCEga2V5cyBpIGtleSkKKyAgICAgICAgICAg
ICAgICAgICAgICgrIGkgMSkpCisgICAgICAgICAgICAgICAgICAgMCAoaHQtcmVhbC10YWJsZSBo
dCkpCisgICAgICAgIGtleXMpKSkKKworKGRlZmluZSAoaGFzaC10YWJsZS12YWx1ZS12ZWN0b3Ig
aHQpCisgICJSZXR1cm5zIGEgdmVjdG9yIG9mIHRoZSB2YWx1ZXMgaW4gSFQuIgorICAoaWYgKGh0
LXdlYWtuZXNzIGh0KQorICAgICAgKGxpc3QtPnZlY3RvciAoaGFzaC10YWJsZS12YWx1ZXMgaHQp
KQorICAgICAgKGxldCogKChsZW4gKGh0LXNpemUgaHQpKQorICAgICAgICAgICAgICh2YWxzICht
YWtlLXZlY3RvciBsZW4pKSkKKyAgICAgICAgKGhhc2gtZm9sZCAobGFtYmRhIChrZXkgdmFsIGkp
CisgICAgICAgICAgICAgICAgICAgICAodmVjdG9yLXNldCEgdmFscyBpIHZhbCkKKyAgICAgICAg
ICAgICAgICAgICAgICgrIGkgMSkpCisgICAgICAgICAgICAgICAgICAgMCAoaHQtcmVhbC10YWJs
ZSBodCkpCisgICAgICAgIHZhbHMpKSkKKworKGRlZmluZSAoaGFzaC10YWJsZS1lbnRyeS12ZWN0
b3JzIGh0KQorICAiUmV0dXJucyB0d28gdmFsdWVzOiBhIHZlY3RvciBvZiB0aGUga2V5cyBhbmQg
YSB2ZWN0b3Igb2YgdGhlCithc3NvY2lhdGVkIHZhbHVlcyBpbiB0aGUgY29ycmVzcG9uZGluZyBv
cmRlci4iCisgIChpZiAoaHQtd2Vha25lc3MgaHQpCisgICAgICAocmVjZWl2ZSAoa2V5cyB2YWxz
KSAoaGFzaC10YWJsZS1lbnRyaWVzIGh0KQorICAgICAgICAodmFsdWVzIChsaXN0LT52ZWN0b3Ig
a2V5cykgKGxpc3QtPnZlY3RvciB2YWxzKSkpCisgICAgICAobGV0KiAoKGxlbiAoaHQtc2l6ZSBo
dCkpCisgICAgICAgICAgICAgKGtleXMgKG1ha2UtdmVjdG9yIGxlbikpCisgICAgICAgICAgICAg
KHZhbHMgKG1ha2UtdmVjdG9yIGxlbikpKQorICAgICAgICAoaGFzaC1mb2xkIChsYW1iZGEgKGtl
eSB2YWwgaSkKKyAgICAgICAgICAgICAgICAgICAgICh2ZWN0b3Itc2V0ISBrZXlzIGkga2V5KQor
ICAgICAgICAgICAgICAgICAgICAgKHZlY3Rvci1zZXQhIHZhbHMgaSB2YWwpCisgICAgICAgICAg
ICAgICAgICAgICAoKyBpIDEpKQorICAgICAgICAgICAgICAgICAgIDAgKGh0LXJlYWwtdGFibGUg
aHQpKQorICAgICAgICAodmFsdWVzIGtleXMgdmFscykpKSkKKworKGRlZmluZSAoaGFzaC10YWJs
ZS1maW5kIHByb2MgaHQgZmFpbHVyZSkKKyAgIkZvciBlYWNoIGFzc29jaWF0aW9uIG9mIHRoZSBo
YXNoIHRhYmxlIEhULCBpbnZva2UgUFJPQyBvbiBpdHMga2V5IGFuZAordmFsdWUuIElmIFBST0Mg
cmV0dXJucyB0cnVlLCB0aGVuIEhBU0gtVEFCTEUtRklORCByZXR1cm5zIHdoYXQgUFJPQworcmV0
dXJucy4gSWYgYWxsIHRoZSBjYWxscyB0byBQUk9DIHJldHVybiAjZiwgcmV0dXJucyB0aGUgcmVz
dWx0IG9mCitpbnZva2luZyB0aGUgdGh1bmsgRkFJTFVSRS4iCisgIChjYWxsL2NjIChsYW1iZGEg
KHJldHVybikKKyAgICAgICAgICAgICAoaGFzaC1mb3ItZWFjaCAobGFtYmRhIChrZXkgdmFsKQor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxldCAoKHggKHByb2Mga2V5IHZhbCkpKQor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaWYgeCAocmV0dXJuIHgpKSkpCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgKGh0LXJlYWwtdGFibGUgaHQpKQorICAgICAgICAgICAg
IChmYWlsdXJlKSkpKQorCisoZGVmaW5lIChoYXNoLXRhYmxlLWNvdW50IHByZWQgaHQpCisgICJG
b3IgZWFjaCBhc3NvY2lhdGlvbiBvZiBIVCwgaW52b2tlIFBSRUQgb24gaXRzIGtleSBhbmQgdmFs
dWUuIFJldHVybgordGhlIG51bWJlciBvZiBjYWxscyB0byBQUkVEIHdoaWNoIHJldHVybmVkIHRy
dWUuIgorICAoaGFzaC1mb2xkIChsYW1iZGEgKGtleSB2YWwgbikKKyAgICAgICAgICAgICAgIChp
ZiAocHJlZCBrZXkgdmFsKSAoKyAxIG4pIG4pKQorICAgICAgICAgICAgIDAgKGh0LXJlYWwtdGFi
bGUgaHQpKSkKKworDAorOzs7IE1hcHBpbmcgYW5kIGZvbGRpbmcuCisKKyhkZWZpbmUqIChoYXNo
LXRhYmxlLW1hcCBwcm9jIGh0IGVxdWl2LWZ1bmN0aW9uIGhhc2gtZnVuY3Rpb24KKyAgICAgICAg
ICAgICAgICAgICAgICAgICAjOmtleSAobXV0YWJsZSAjdCkgKGNhcGFjaXR5IChoYXNoLXRhYmxl
LXNpemUgaHQpKQorICAgICAgICAgICAgICAgICAgICAgICAgICh3ZWFrbmVzcyAjZikKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAjOnJlc3QgYXJncykKKyAgIkNyZWF0ZXMgYSBuZXcgaGFzaCB0
YWJsZSBieSBjYWxsaW5nIE1BS0UtSEFTSC1UQUJMRSB3aXRoIHRoZSBnaXZlbgorYXJndW1lbnRz
LiBBZnRlciBjcmVhdGlvbiwgSEFTSC1UQUJMRS1NQVAgY2FsbHMgUFJPQyBmb3IgZXZlcnkKK2Fz
c29jaWF0aW9uIGluIGhhc2gtdGFibGUgd2l0aCB0aGUgdmFsdWUgb2YgdGhlIGFzc29jaWF0aW9u
LiBUaGUga2V5IG9mCit0aGUgYXNzb2NpYXRpb24gYW5kIHRoZSByZXN1bHQgb2YgaW52b2tpbmcg
UFJPQyBhcmUgZW50ZXJlZCBpbnRvIHRoZSBuZXcKK2hhc2ggdGFibGUsIHdoaWNoIGlzIHRoZW4g
cmV0dXJuZWQuIgorICAobGV0ICgocmVzdWx0ICglbWFrZS1oYXNoLXRhYmxlIGVxdWl2LWZ1bmN0
aW9uIGhhc2gtZnVuY3Rpb24KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtdXRh
YmxlIGNhcGFjaXR5IHdlYWtuZXNzKSkKKyAgICAgICAgKHNpemUgMCkpCisgICAgKHdpdGgtaGFz
aHgtdmFsdWVzIChoIGEgcmVhbC10YWJsZSkgcmVzdWx0CisgICAgICAoaGFzaC1mb3ItZWFjaAor
ICAgICAgIChsYW1iZGEgKGtleSB2YWwpCisgICAgICAgICAoaGFzaHgtc2V0ISBoIGEgcmVhbC10
YWJsZSBrZXkgKHByb2MgdmFsKSkKKyAgICAgICAgIChzZXQhIHNpemUgKCsgMSBzaXplKSkpCisg
ICAgICAgKGh0LXJlYWwtdGFibGUgaHQpKSkKKyAgICAoaHQtc2l6ZSEgcmVzdWx0IHNpemUpCisg
ICAgcmVzdWx0KSkKKworKGRlZmluZSAoaGFzaC10YWJsZS1tYXAtPmxpc3QgcHJvYyBodCkKKyAg
IkNhbGxzIFBST0MgZm9yIGV2ZXJ5IGFzc29jaWF0aW9uIGluIEhUIHdpdGggdHdvIGFyZ3VtZW50
czoKK3RoZSBrZXkgb2YgdGhlIGFzc29jaWF0aW9uIGFuZCB0aGUgdmFsdWUgb2YgdGhlIGFzc29j
aWF0aW9uLiBUaGUgdmFsdWVzCityZXR1cm5lZCBieSB0aGUgaW52b2NhdGlvbnMgb2YgUFJPQyBh
cmUgYWNjdW11bGF0ZWQgaW50byBhIGxpc3QsIHdoaWNoCitpcyByZXR1cm5lZC4iCisgIChoYXNo
LW1hcC0+bGlzdCBwcm9jIChodC1yZWFsLXRhYmxlIGh0KSkpCisKKzs7OyBXaXRoIHRoaXMgcGFy
dGljdWxhciBpbXBsZW1lbnRhdGlvbiwgdGhlIHByb2MgY2FuIHNhZmVseSBtdXRhdGUgaHQuCis7
OzsgVGhhdCBwcm9wZXJ0eSBpcyBub3QgZ3VhcmFudGVlZCBieSB0aGUgc3BlY2lmaWNhdGlvbiwg
YnV0IGNhbiBiZQorOzs7IHJlbGllZCB1cG9uIGJ5IHByb2NlZHVyZXMgZGVmaW5lZCBpbiB0aGlz
IGZpbGUuCisKKyhkZWZpbmUgKGhhc2gtdGFibGUtZm9yLWVhY2ggcHJvYyBodCkKKyAgIkNhbGxz
IFBST0Mgd2l0aCBlYWNoIGtleSBhbmQgdmFsdWUgYXMgdHdvIGFyZ3VtZW50cy4gUmV0dXJucyBh
bgordW5zcGVjaWZpZWQgdmFsdWUuIgorICAoaGFzaC1mb3ItZWFjaCBwcm9jIChodC1yZWFsLXRh
YmxlIGh0KSkpCisKKyhkZWZpbmUgKGhhc2gtdGFibGUtbWFwISBwcm9jIGh0KQorICAiU2lnbmFs
cyBhbiBlcnJvciBpZiBIVCBpcyBpbW11dGFibGUuIE90aGVyd2lzZSwgY2FsbHMgUFJPQyBmb3Ig
ZXZlcnkKK2Fzc29jaWF0aW9uIGluIEhUIHdpdGggdHdvIGFyZ3VtZW50czogdGhlIGtleSBvZiB0
aGUgYXNzb2NpYXRpb24gYW5kIHRoZQordmFsdWUgb2YgdGhlIGFzc29jaWF0aW9uLiBUaGUgdmFs
dWUgcmV0dXJuZWQgYnkgUFJPQyBpcyB1c2VkIHRvIHVwZGF0ZQordGhlIHZhbHVlIG9mIHRoZSBh
c3NvY2lhdGlvbi4gUmV0dXJuIGFuIHVuc3BlY2lmaWVkIHZhbHVlLiIKKyAgKGFzc2VydC1tdXRh
YmxlIGh0KQorICAoaWYgKGh0LXdlYWtuZXNzIGh0KQorICAgICAgKHdpdGgtaGFzaHgtdmFsdWVz
IChoIGEgcmVhbC10YWJsZSkgaHQKKyAgICAgICAgKGhhc2gtZm9yLWVhY2ggKGxhbWJkYSAoa2V5
IHZhbCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAoaGFzaHgtc2V0ISBoIGEgcmVhbC10YWJs
ZSBrZXkgKHByb2Mga2V5IHZhbCkpKQorICAgICAgICAgICAgICAgICAgICAgICByZWFsLXRhYmxl
KSkKKyAgICAgIChsZXQgKChyZWFsLXRhYmxlIChodC1yZWFsLXRhYmxlIGh0KSkpCisgICAgICAg
IChoYXNoLWZvci1lYWNoLWhhbmRsZSAobGFtYmRhIChoYW5kbGUpCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIChsZXQgKChrZXkgKGNhciBoYW5kbGUpKQorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAodmFsIChjZHIgaGFuZGxlKSkpCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgKHNldC1jZHIhIGhhbmRsZSAocHJvYyBrZXkgdmFsKSkpKQor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVhbC10YWJsZSkpKSkKKworKGRlZmluZSAo
aGFzaC10YWJsZS1mb2xkIHByb2MgaW5pdCBodCkKKyAgIkNhbGxzIFBST0MgZm9yIGV2ZXJ5IGFz
c29jaWF0aW9uIGluIEhUIHdpdGggdGhyZWUgYXJndW1lbnRzOiB0aGUga2V5CitvZiB0aGUgYXNz
b2NpYXRpb24sIHRoZSB2YWx1ZSBvZiB0aGUgYXNzb2NpYXRpb24sIGFuZCBhbiBhY2N1bXVsYXRl
ZAordmFsdWUgVkFMLiBWQUwgaXMgU0VFRCBmb3IgdGhlIGZpcnN0IGludm9jYXRpb24gb2YgcHJv
Y2VkdXJlLCBhbmQgZm9yCitzdWJzZXF1ZW50IGludm9jYXRpb25zIG9mIFBST0MsIHRoZSByZXR1
cm5lZCB2YWx1ZSBvZiB0aGUgcHJldmlvdXMKK2ludm9jYXRpb24uIFRoZSB2YWx1ZSByZXR1cm5l
ZCBieSBIQVNILVRBQkxFLUZPTEQgaXMgdGhlIHJldHVybiB2YWx1ZSBvZgordGhlIGxhc3QgaW52
b2NhdGlvbiBvZiBQUk9DLiIKKyAgKGhhc2gtZm9sZCBwcm9jIGluaXQgKGh0LXJlYWwtdGFibGUg
aHQpKSkKKworKGRlZmluZSAoaGFzaC10YWJsZS1wcnVuZSEgcHJvYyBodCkKKyAgIklmIEhUIGlz
IGltbXV0YWJsZSwgc2lnbmFscyBhbiBlcnJvci4gT3RoZXJ3aXNlLCBjYWxscyBQUk9DIGZvciBl
dmVyeQorYXNzb2NpYXRpb24gaW4gaGFzaC10YWJsZSB3aXRoIHR3byBhcmd1bWVudHMsIHRoZSBr
ZXkgYW5kIHRoZSB2YWx1ZSBvZgordGhlIGFzc29jaWF0aW9uLCBhbmQgcmVtb3ZlcyBhbGwgYXNz
b2NpYXRpb25zIGZyb20gaGFzaC10YWJsZSBmb3Igd2hpY2gKK1BST0MgcmV0dXJucyB0cnVlLiBS
ZXR1cm5zIGFuIHVuc3BlY2lmaWVkIHZhbHVlLiIKKyAgKGFzc2VydC1tdXRhYmxlIGh0KQorICAo
d2l0aC1oYXNoeC12YWx1ZXMgKGggYSByZWFsLXRhYmxlKSBodAorICAgIChoYXNoLWZvci1lYWNo
IChsYW1iZGEgKGtleSB2YWwpCisgICAgICAgICAgICAgICAgICAgICAoaWYgKHByb2Mga2V5IHZh
bCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAoaGFzaHgtcmVtb3ZlISBoIGEgcmVhbC10YWJs
ZSBrZXkpKSkKKyAgICAgICAgICAgICAgICAgICByZWFsLXRhYmxlKSkpCisKKwwKKzs7OyBDb3B5
aW5nIGFuZCBjb252ZXJzaW9uLgorCisoZGVmaW5lKiAoaGFzaC10YWJsZS1jb3B5IGh0ICM6a2V5
IChtdXRhYmxlIChoYXNoLXRhYmxlLW11dGFibGU/IGh0KSkKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgKGNhcGFjaXR5IChoYXNoLXRhYmxlLXNpemUgaHQpKQorICAgICAgICAgICAgICAgICAg
ICAgICAgICAod2Vha25lc3MgKGhhc2gtdGFibGUtd2Vha25lc3MgaHQpKSkKKyAgIlJldHVybnMg
YSBuZXdseSBhbGxvY2F0ZWQgaGFzaCB0YWJsZSB3aXRoIHRoZSBhc3NvY2lhdGlvbnMgYXMgSFQg
YW5kCitwcm9wZXJ0aWVzIGFzIGdpdmVuIGJ5IGtleXdvcmQgYXJndW1lbnRzLCB3aGljaCBkZWZh
dWx0IHRvIEhUCitwcm9wZXJ0aWVzLiBJZiBNVVRBQkxFIGlzIHRydWUsIHRoZSBuZXcgaGFzaCB0
YWJsZSBpcyBtdXRhYmxlLAorb3RoZXJ3aXNlLCBpdCBpcyBpbW11dGFibGUuIgorICAod2l0aC1o
YXNoeC12YWx1ZXMgKGggYSByZWFsLXRhYmxlKSBodAorICAgIChsZXQgKChuZXctcmVhbC10YWJs
ZSAoKGd1aWxlLWh0LWN0b3Igd2Vha25lc3MpIGNhcGFjaXR5KSkKKyAgICAgICAgICAoc2l6ZSAw
KSkKKyAgICAgIChoYXNoLWZvci1lYWNoIChsYW1iZGEgKGtleSB2YWwpCisgICAgICAgICAgICAg
ICAgICAgICAgIChoYXNoeC1zZXQhIGggYSBuZXctcmVhbC10YWJsZSBrZXkgdmFsKQorICAgICAg
ICAgICAgICAgICAgICAgICAoc2V0ISBzaXplICgrIDEgc2l6ZSkpKQorICAgICAgICAgICAgICAg
ICAgICAgcmVhbC10YWJsZSkKKyAgICAgIDs7IEFyZ3VtZW50czogcmVhbC10YWJsZSBoYXNoLWZ1
bmN0aW9uIGFzc29jaWF0b3IKKyAgICAgIDs7ICAgICAgICAgICAgd2Vha25lc3MgbXV0YWJsZT8g
c2l6ZSBlcXVpdmFsZW5jZS1mdW5jdGlvbiBvcmlnLWhhc2gtZnVuY3Rpb24KKyAgICAgIChtYWtl
LWdlbmVyaWMtaGFzaC10YWJsZSBuZXctcmVhbC10YWJsZSBoIGEgd2Vha25lc3MgKGFuZCBtdXRh
YmxlICN0KSBzaXplCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGhhc2gtdGFibGUt
ZXF1aXZhbGVuY2UtZnVuY3Rpb24gaHQpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
KGhhc2gtdGFibGUtaGFzaC1mdW5jdGlvbiBodCkpKSkpCisKKyhkZWZpbmUqIChoYXNoLXRhYmxl
LWVtcHR5LWNvcHkgaHQgIzprZXkgKG11dGFibGUgI3QpCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIChjYXBhY2l0eSAxKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAo
d2Vha25lc3MgKGhhc2gtdGFibGUtd2Vha25lc3MgaHQpKSkKKyAgIlJldHVybnMgYSBuZXdseSBh
bGxvY2F0ZWQgbXV0YWJsZSBoYXNoIHRhYmxlIHdpdGggdGhlIHNhbWUgcHJvcGVydGllcworYXMg
SFQsIGJ1dCB3aXRoIG5vIGFzc29jaWF0aW9ucy4iCisgICh3aXRoLWhhc2h4LXZhbHVlcyAoaCBh
IHJlYWwtdGFibGUpIGh0CisgICAgKGxldCAoKG5ldy1yZWFsLXRhYmxlICgoZ3VpbGUtaHQtY3Rv
ciB3ZWFrbmVzcykgY2FwYWNpdHkpKSkKKyAgICAgIDs7IEFyZ3VtZW50czogcmVhbC10YWJsZSBo
YXNoLWZ1bmN0aW9uIGFzc29jaWF0b3IKKyAgICAgIDs7ICAgICAgICAgICAgd2Vha25lc3MgbXV0
YWJsZT8gc2l6ZSBlcXVpdmFsZW5jZS1mdW5jdGlvbiBvcmlnLWhhc2gtZnVuY3Rpb24KKyAgICAg
IChtYWtlLWdlbmVyaWMtaGFzaC10YWJsZSBuZXctcmVhbC10YWJsZSBoIGEgd2Vha25lc3MgKGFu
ZCBtdXRhYmxlICN0KSAwCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGhhc2gtdGFi
bGUtZXF1aXZhbGVuY2UtZnVuY3Rpb24gaHQpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgKGhhc2gtdGFibGUtaGFzaC1mdW5jdGlvbiBodCkpKSkpCisKKyhkZWZpbmUgKGhhc2gtdGFi
bGUtPmFsaXN0IGh0KQorICAiUmV0dXJucyBhbiBhbGlzdCB3aXRoIHRoZSBzYW1lIGFzc29jaWF0
aW9ucyBhcyBoYXNoLXRhYmxlIGluIGFuCit1bnNwZWNpZmllZCBvcmRlci4iCisgIChoYXNoLW1h
cC0+bGlzdCBjb25zIChodC1yZWFsLXRhYmxlIGh0KSkpCisKKwwKKzs7OyBIYXNoIHRhYmxlcyBh
cyBzZXRzLgorCisoZGVmaW5lIChoYXNoLXRhYmxlLXVuaW9uISBodDEgaHQyKQorICAiSWYgSFQx
IGlzIGltbXV0YWJsZSwgc2lnbmFscyBhbiBlcnJvci4gT3RoZXJ3aXNlLCBhZGRzIHRoZSBhc3Nv
Y2lhdGlvbnMKK29mIEhUMiB0byBIVDEgYW5kIHJldHVybiBIVDEuIElmIGEga2V5IGFwcGVhcnMg
aW4gYm90aCBoYXNoIHRhYmxlcywgaXRzCit2YWx1ZSBpcyBzZXQgdG8gdGhlIHZhbHVlIGFwcGVh
cmluZyBpbiBIVDEuIgorICAoYXNzZXJ0LW11dGFibGUgaHQxKQorICAoaGFzaC1mb3ItZWFjaCAo
bGFtYmRhIChrZXkyIHZhbDIpCisgICAgICAgICAgICAgICAgICAgKGhhc2gtdGFibGUtaW50ZXJu
IS9kZWZhdWx0IGh0MSBrZXkyIHZhbDIpKQorICAgICAgICAgICAgICAgICAoaHQtcmVhbC10YWJs
ZSBodDIpKQorICBodDEpCisKKyhkZWZpbmUgKGhhc2gtdGFibGUtaW50ZXJzZWN0aW9uISBodDEg
aHQyKQorICAiSWYgSFQxIGlzIGltbXV0YWJsZSwgc2lnbmFscyBhbiBlcnJvci4gT3RoZXJ3aXNl
LCBkZWxldGVzIHRoZQorYXNzb2NpYXRpb25zIGZyb20gSFQgd2hvc2Uga2V5cyBkb24ndCBhbHNv
IGFwcGVhciBpbiBIVDIgYW5kIHJldHVybnMKK0hUMS4iCisgIChhc3NlcnQtbXV0YWJsZSBodDEp
CisgIChoYXNoLWZvci1lYWNoIChsYW1iZGEgKGtleTEgdmFsMSkKKyAgICAgICAgICAgICAgICAg
ICAoaWYgKG5vdCAoaGFzaC10YWJsZS1jb250YWlucz8gaHQyIGtleTEpKQorICAgICAgICAgICAg
ICAgICAgICAgICAoaGFzaC10YWJsZS1kZWxldGUhIGh0MSBrZXkxKSkpCisgICAgICAgICAgICAg
ICAgIChodC1yZWFsLXRhYmxlIGh0MSkpCisgIGh0MSkKKworKGRlZmluZSAoaGFzaC10YWJsZS1k
aWZmZXJlbmNlISBodDEgaHQyKQorICAiSWYgSFQxIGlzIGltbXV0YWJsZSwgc2lnbmFscyBhbiBl
cnJvci4gT3RoZXJ3aXNlLCBkZWxldGVzIHRoZQorYXNzb2NpYXRpb25zIG9mIEhUMSB3aG9zZSBr
ZXlzIGFyZSBhbHNvIHByZXNlbnQgaW4gSFQyIGFuZCByZXR1cm5zIEhUMS4iCisgIChhc3NlcnQt
bXV0YWJsZSBodDEpCisgIChoYXNoLWZvci1lYWNoIChsYW1iZGEgKGtleTEgdmFsMSkKKyAgICAg
ICAgICAgICAgICAgICAoaWYgKGhhc2gtdGFibGUtY29udGFpbnM/IGh0MiBrZXkxKQorICAgICAg
ICAgICAgICAgICAgICAgICAoaGFzaC10YWJsZS1kZWxldGUhIGh0MSBrZXkxKSkpCisgICAgICAg
ICAgICAgICAgIChodC1yZWFsLXRhYmxlIGh0MSkpCisgIGh0MSkKKworKGRlZmluZSAoaGFzaC10
YWJsZS14b3IhIGh0MSBodDIpCisgICJJZiBIVDEgaXMgaW1tdXRhYmxlLCBzaWduYWxzIGFuIGVy
cm9yLiBPdGhlcndpc2UsIGRlbGV0ZXMgdGhlCithc3NvY2lhdGlvbnMgb2YgSFQxIHdob3NlIGtl
eXMgYXJlIGFsc28gcHJlc2VudCBpbiBIVDIsIGFuZCB0aGVuIGFkZHMKK3RoZSBhc3NvY2lhdGlv
bnMgb2YgSFQyIHdob3NlIGtleXMgYXJlIG5vdCBwcmVzZW50IGluIEhUMSB0bworSFQxLiBSZXR1
cm5zIEhUMS4iCisgIChhc3NlcnQtbXV0YWJsZSBodDEpCisgIChoYXNoLWZvci1lYWNoIChsYW1i
ZGEgKGtleTIgdmFsMikKKyAgICAgICAgICAgICAgICAgICAoaWYgKGhhc2gtdGFibGUtY29udGFp
bnM/IGh0MSBrZXkyKQorICAgICAgICAgICAgICAgICAgICAgICAoaGFzaC10YWJsZS1kZWxldGUh
IGh0MSBrZXkyKQorICAgICAgICAgICAgICAgICAgICAgICAoaGFzaC10YWJsZS1zZXQhIGh0MSBr
ZXkyIHZhbDIpKSkKKyAgICAgICAgICAgICAgICAgKGh0LXJlYWwtdGFibGUgaHQyKSkKKyAgaHQx
KQorCis7OyBlb2YKZGlmZiAtLWdpdCBhL3Rlc3Qtc3VpdGUvTWFrZWZpbGUuYW0gYi90ZXN0LXN1
aXRlL01ha2VmaWxlLmFtCmluZGV4IDA5MzRkYmIzNC4uZTE1NDYwMmE3IDEwMDY0NAotLS0gYS90
ZXN0LXN1aXRlL01ha2VmaWxlLmFtCisrKyBiL3Rlc3Qtc3VpdGUvTWFrZWZpbGUuYW0KQEAgLTYz
LDYgKzYzLDcgQEAgU0NNX1RFU1RTID0gdGVzdHMvMDAtaW5pdGlhbC1lbnYudGVzdAkJXAogCSAg
ICB0ZXN0cy9mdHcudGVzdAkJCVwKIAkgICAgdGVzdHMvZnV0dXJlLnRlc3QJCQlcCiAJICAgIHRl
c3RzL2djLnRlc3QJCQlcCisgICAgICAgICAgICB0ZXN0cy9nZW5lcmljLWhhc2gtdGFibGVzLnRl
c3QgICAgICBcCiAJICAgIHRlc3RzL2dldG9wdC1sb25nLnRlc3QJCVwKIAkgICAgdGVzdHMvZ29v
cHMudGVzdAkJCVwKIAkgICAgdGVzdHMvZ3VhcmRpYW5zLnRlc3QJCVwKZGlmZiAtLWdpdCBhL3Rl
c3Qtc3VpdGUvdGVzdHMvZ2VuZXJpYy1oYXNoLXRhYmxlcy50ZXN0IGIvdGVzdC1zdWl0ZS90ZXN0
cy9nZW5lcmljLWhhc2gtdGFibGVzLnRlc3QKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwLi40OTRjYmY3MGEKLS0tIC9kZXYvbnVsbAorKysgYi90ZXN0LXN1aXRlL3Rlc3RzL2dl
bmVyaWMtaGFzaC10YWJsZXMudGVzdApAQCAtMCwwICsxLDQxNSBAQAorOzs7OyBzcmZpLTY5LnRl
c3QgLS0tIFRlc3Qgc3VpdGUgZm9yIFNSRkkgNjkgLSotIHNjaGVtZSAtKi0KKzs7OzsKKzs7Ozsg
CUNvcHlyaWdodCAoQykgMjAwNyBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KKzs7OzsK
Kzs7OzsgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRl
IGl0IGFuZC9vcgorOzs7OyBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVz
c2VyIEdlbmVyYWwgUHVibGljCis7Ozs7IExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVl
IFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorOzs7OyB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vu
c2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCis7Ozs7Cis7Ozs7IFRo
aXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNl
ZnVsLAorOzs7OyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1w
bGllZCB3YXJyYW50eSBvZgorOzs7OyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorOzs7OyBMZXNzZXIgR2VuZXJhbCBQdWJs
aWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorOzs7OworOzs7OyBZb3Ugc2hvdWxkIGhhdmUg
cmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCis7Ozs7IExp
Y2Vuc2UgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUg
U29mdHdhcmUKKzs7OzsgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0
aCBGbG9vciwgQm9zdG9uLCBNQSAwMjExMC0xMzAxIFVTQQorCisoZGVmaW5lLW1vZHVsZSAodGVz
dC1nZW5lcmljLWhhc2gtdGFibGVzKQorICAjOnVzZS1tb2R1bGUgKHRlc3Qtc3VpdGUgbGliKQor
ICAjOnVzZS1tb2R1bGUgKGljZS05IGdlbmVyaWMtaGFzaC10YWJsZXMpCisgICM6dXNlLW1vZHVs
ZSAoc3JmaSBzcmZpLTEpCisgICM6dXNlLW1vZHVsZSAoc3JmaSBzcmZpLTgpCisgICM6dXNlLW1v
ZHVsZSAoc3JmaSBzcmZpLTI2KSkKKworKGRlZmluZSAoc3RyaW5nLWNpLWFzc29jLWVxdWFsPyBs
ZWZ0IHJpZ2h0KQorICAiQW5zd2VyIHdoZXRoZXIgTEVGVCBhbmQgUklHSFQgYXJlIGVxdWFsLCBi
ZWluZyBhc3NvY2lhdGlvbnMgb2YKK2Nhc2UtaW5zZW5zaXRpdmUgc3RyaW5ncyB0byBgZXF1YWw/
Jy10ZXN0ZWQgdmFsdWVzLiIKKyAgKGFuZCAoc3RyaW5nLWNpPT8gKGNhciBsZWZ0KSAoY2FyIHJp
Z2h0KSkKKyAgICAgICAoZXF1YWw/IChjZHIgbGVmdCkgKGNkciByaWdodCkpKSkKKworKGRlZmlu
ZS1zeW50YXggd2l0aC1lbHQtaW4tbGlzdAorICAoc3ludGF4LXJ1bGVzICgpCisgICAgKCh3aXRo
LWVsdC1pbi1saXN0IGFyZyBhcmctbGlzdCBleHByIC4uLikKKyAgICAgKGxldCBsb29wICgoYXJn
LWxpc3QqIGFyZy1saXN0KSkKKyAgICAgICAob3IgKG51bGw/IGFyZy1saXN0KikKKyAgICAgICAg
ICAgKGFuZCAobGV0ICgoYXJnIChjYXIgYXJnLWxpc3QqKSkpCisgICAgICAgICAgICAgICAgICBl
eHByIC4uLikKKyAgICAgICAgICAgICAgICAobG9vcCAoY2RyIGFyZy1saXN0KikpKSkpKSkpCisK
KyhkZWZpbmUgKHRlc3Qtc3RyLXdlYWtuZXNzIHN0ciB3ZWFrbmVzcykKKyAgKGlmIChub3Qgd2Vh
a25lc3MpIHN0ciAoZm9ybWF0ICNmICJ+YSAod2Vha25lc3M6IH5hKSIgc3RyIHdlYWtuZXNzKSkp
CisKKyh3aXRoLXRlc3QtcHJlZml4ICJnZW5lcmljLWhhc2gtdGFibGVzIgorCisgIChwYXNzLWlm
LWV4Y2VwdGlvbiAiYmFkIHdlYWtuZXNzIGFyZyB0byBtaHQgc2lnbmFscyBhbiBlcnJvciIKKyAg
ICAgICcobWlzYy1lcnJvciAuICJeSW52YWxpZCBoYXNoIHRhYmxlIHdlYWtuZXNzIikKKyAgICAo
bWFrZS1oYXNoLXRhYmxlIGVxdWFsPyBoYXNoICM6d2Vha25lc3MgJ3dlYWsta2V5LW9yLXZhbHVl
KSkKKworICAocGFzcy1pZi1leGNlcHRpb24gInVuc3VwcG9ydGVkIHdlYWtuZXNzIGFyZyB0byBt
aHQgc2lnbmFscyBhbiBlcnJvciIKKyAgICAgICcobWlzYy1lcnJvciAuICJeVW5zdXBwb3J0ZWQg
aGFzaCB0YWJsZSB3ZWFrbmVzcyIpCisgICAgKG1ha2UtaGFzaC10YWJsZSBlcXVhbD8gaGFzaCAj
OndlYWtuZXNzICdlcGhlbWVyYWwta2V5KSkKKworICAocGFzcy1pZiAiY2FuIHVzZSBhbGwgYXJn
dW1lbnRzLCBpbmNsdWRpbmcgc2l6ZSIKKyAgICAoaGFzaC10YWJsZT8gKG1ha2UtaGFzaC10YWJs
ZSBlcXVhbD8gaGFzaCAjOndlYWtuZXNzICd3ZWFrLWtleSAzMSkpKQorCisgIDs7IFRoZSBmb2xs
b3dpbmcgdGVzdHMgYXJlIGRvbmUgb25jZSB3aXRoIGVhY2gga2luZCBvZiB3ZWFrbmVzcworICAo
d2l0aC1lbHQtaW4tbGlzdCB3ZWFrbmVzcyAobGlzdCAjZiAnd2Vhay1rZXkgJ3dlYWstdmFsdWUg
J3dlYWsta2V5LWFuZC12YWx1ZSkKKyAgICAocGFzcy1pZiAodGVzdC1zdHItd2Vha25lc3MgInJl
ZmxlY3RpdmUgcXVlcmllcyBmdW5jdGlvbiBwcm9wZXJseSIgd2Vha25lc3MpCisgICAgICAobGV0
ICgoaHQgKG1ha2UtaGFzaC10YWJsZSBlcXY/ICNmICM6d2Vha25lc3Mgd2Vha25lc3MpKSkKKyAg
ICAgICAgKGFuZCAoaGFzaC10YWJsZS1tdXRhYmxlPyBodCkKKyAgICAgICAgICAgICAoZXE/IGVx
dj8gKGhhc2gtdGFibGUtZXF1aXZhbGVuY2UtZnVuY3Rpb24gaHQpKQorICAgICAgICAgICAgIChl
cT8gaGFzaC1ieS12YWx1ZSAoaGFzaC10YWJsZS1oYXNoLWZ1bmN0aW9uIGh0KSkKKyAgICAgICAg
ICAgICAoZXE/IHdlYWtuZXNzIChoYXNoLXRhYmxlLXdlYWtuZXNzIGh0KSkKKyAgICAgICAgICAg
ICAoZXF1YWw/IChsaXN0IChoYXNoLXRhYmxlLWtleS13ZWFrbmVzcyBodCkKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgIChoYXNoLXRhYmxlLXZhbHVlLXdlYWtuZXNzIGh0KSkKKyAgICAgICAg
ICAgICAgICAgICAgIChjYXNlIHdlYWtuZXNzCisgICAgICAgICAgICAgICAgICAgICAgICgoI2Yp
ICcoI2YgI2YpKQorICAgICAgICAgICAgICAgICAgICAgICAoKHdlYWsta2V5KSAnKHdlYWsta2V5
cyAjZikpCisgICAgICAgICAgICAgICAgICAgICAgICgod2Vhay12YWx1ZSkgJygjZiB3ZWFrLXZh
bHVlcykpCisgICAgICAgICAgICAgICAgICAgICAgICgod2Vhay1rZXktYW5kLXZhbHVlKSAnKHdl
YWsta2V5cyB3ZWFrLXZhbHVlcykpKSkpKSkKKworICAgIChwYXNzLWlmICh0ZXN0LXN0ci13ZWFr
bmVzcyAiaGFzaC10YWJsZS1jb250YWlucz8gZnVuY3Rpb25zIHByb3Blcmx5IiB3ZWFrbmVzcykK
KyAgICAgIChsZXQgKChodCAobWFrZS1oYXNoLXRhYmxlIGVxPyAjZiAjOndlYWtuZXNzIHdlYWtu
ZXNzKSkpCisgICAgICAgIChoYXNoLXRhYmxlLXNldC1zaW5nbGUhIGh0ICdhIDEpCisgICAgICAg
IChhbmQgKGhhc2gtdGFibGUtY29udGFpbnM/IGh0ICdhKQorICAgICAgICAgICAgIChub3QgKGhh
c2gtdGFibGUtY29udGFpbnM/IGh0ICdiKSkKKyAgICAgICAgICAgICAoYmVnaW4gKGhhc2gtdGFi
bGUtc2V0LXNpbmdsZSEgaHQgJ2IgMSkKKyAgICAgICAgICAgICAgICAgICAgKGhhc2gtdGFibGUt
Y29udGFpbnM/IGh0ICdiKSkKKyAgICAgICAgICAgICAoYmVnaW4gKGhhc2gtdGFibGUtZGVsZXRl
LXNpbmdsZSEgaHQgJ2EpCisgICAgICAgICAgICAgICAgICAgIChub3QgKGhhc2gtdGFibGUtY29u
dGFpbnM/IGh0ICdhKSkpKSkpCisKKyAgICAocGFzcy1pZiAodGVzdC1zdHItd2Vha25lc3MgInNt
YWxsIGFsaXN0PC0+aGFzaCB0YWJsZXMgcm91bmQtdHJpcCIgd2Vha25lc3MpCisgICAgICAobGV0
KiAoKHN0YXJ0LWFsaXN0ICcoKGEgLiAxKSAoYiAuIDIpIChjIC4gMykgKGEgLiA0MikpKQorICAg
ICAgICAgICAgIChodCAoYWxpc3QtPmhhc2gtdGFibGUgc3RhcnQtYWxpc3QgZXE/ICNmICM6d2Vh
a25lc3Mgd2Vha25lc3MpKQorICAgICAgICAgICAgIChlbmQtYWxpc3QgKGhhc2gtdGFibGUtPmFs
aXN0IGh0KSkpCisgICAgICAgIChhbmQgKD0gMyAoaGFzaC10YWJsZS1zaXplIGh0KSkKKyAgICAg
ICAgICAgICAobHNldD0gZXF1YWw/IGVuZC1hbGlzdCAodGFrZSBzdGFydC1hbGlzdCAzKSkKKyAg
ICAgICAgICAgICAoPSAxIChoYXNoLXRhYmxlLXJlZiBodCAnYSkpCisgICAgICAgICAgICAgKD0g
MiAoaGFzaC10YWJsZS1yZWYgaHQgJ2IpKQorICAgICAgICAgICAgICg9IDMgKGhhc2gtdGFibGUt
cmVmIGh0ICdjKSkpKSkKKworICAgIChwYXNzLWlmICh0ZXN0LXN0ci13ZWFrbmVzcyAic3RyaW5n
LWNpPT8gdGFibGVzIHdvcmsgYnkgZGVmYXVsdCIgd2Vha25lc3MpCisgICAgICAobGV0ICgoaHQg
KGFsaXN0LT5oYXNoLXRhYmxlICcoKCJ4WSIgLiAyKSAoImFiYyIgLiA1NCkpIHN0cmluZy1jaT0/
ICNmCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICM6d2Vha25lc3Mgd2Vha25l
c3MpKSkKKyAgICAgICAgKGhhc2gtdGFibGUtc2V0ISBodCAiWFkiIDQyICJxcXEiIDEwMCkKKyAg
ICAgICAgKGFuZCAoPSA1NCAoaGFzaC10YWJsZS1yZWYgaHQgIkFCYyIpKQorICAgICAgICAgICAg
ICg9IDQyIChoYXNoLXRhYmxlLXJlZiBodCAieHkiKSkKKyAgICAgICAgICAgICAoPSAzIChoYXNo
LXRhYmxlLXNpemUgaHQpKQorICAgICAgICAgICAgIChsc2V0PSBzdHJpbmctY2ktYXNzb2MtZXF1
YWw/CisgICAgICAgICAgICAgICAgICAgICcoKCJ4eSIgLiA0MikgKCJhYmMiIC4gNTQpICgicXFx
IiAuIDEwMCkpCisgICAgICAgICAgICAgICAgICAgIChoYXNoLXRhYmxlLT5hbGlzdCBodCkpKSkp
CisKKyAgICAocGFzcy1pZiAodGVzdC1zdHItd2Vha25lc3MgImVtcHR5IGhhc2ggdGFibGVzIGFy
ZSBlbXB0eSIgd2Vha25lc3MpCisgICAgICAobGV0ICgoaHQgKG1ha2UtaGFzaC10YWJsZSBlcT8g
I2YgIzp3ZWFrbmVzcyB3ZWFrbmVzcykpKQorICAgICAgICAoYW5kICg9IDAgKGhhc2gtdGFibGUt
c2l6ZSBodCkpCisgICAgICAgICAgICAgKGhhc2gtdGFibGUtZW1wdHk/IGh0KQorICAgICAgICAg
ICAgIChudWxsPyAoaGFzaC10YWJsZS0+YWxpc3QgaHQpKSkpKQorCisgICAgKHBhc3MtaWYgKHRl
c3Qtc3RyLXdlYWtuZXNzICJoYXNoLXRhYmxlIGZ1bmN0aW9ucyBwcm9wZXJseSIgd2Vha25lc3Mp
CisgICAgICAobGV0ICgoaHQgKGhhc2gtdGFibGUgKGxpc3QgZXE/ICNmICM6d2Vha25lc3Mgd2Vh
a25lc3MpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2EgMSAnYiAyICdjIDMpKSkKKyAg
ICAgICAgKGFuZCAoPSAzIChoYXNoLXRhYmxlLXNpemUgaHQpKQorICAgICAgICAgICAgIChsc2V0
PSBlcXVhbD8gJygoYSAuIDEpIChiIC4gMikgKGMgLiAzKSkgKGhhc2gtdGFibGUtPmFsaXN0IGh0
KSkKKyAgICAgICAgICAgICAoZXE/IHdlYWtuZXNzIChoYXNoLXRhYmxlLXdlYWtuZXNzIGh0KSkK
KyAgICAgICAgICAgICAobm90IChoYXNoLXRhYmxlLW11dGFibGU/IGh0KSkpKSkKKworICAgIChw
YXNzLWlmLWV4Y2VwdGlvbgorICAgICAgICAodGVzdC1zdHItd2Vha25lc3MgImhhc2gtdGFibGUg
d2l0aCBlcXVpdmFsZW50IGtleXMgc2lnbmFscyBhbiBlcnJvciIgd2Vha25lc3MpCisgICAgICAg
ICcobWlzYy1lcnJvciAuICJeVHdvIGVxdWl2YWxlbnQga2V5cyB3ZXJlIHByb3ZpZGVkIikKKyAg
ICAgIChoYXNoLXRhYmxlIChsaXN0IHN0cmluZz0/ICNmICM6d2Vha25lc3Mgd2Vha25lc3MpCisg
ICAgICAgICAgICAgICAgICAiYSIgMSAiYiIgMiAiYyIgMyAiYSIgNCkpCisKKyAgICAocGFzcy1p
ZiAodGVzdC1zdHItd2Vha25lc3MgImhhc2gtdGFibGUtdW5mb2xkIGZ1bmN0aW9ucyBwcm9wZXJs
eSIgd2Vha25lc3MpCisgICAgICAobGV0ICgoaHQgKGhhc2gtdGFibGUtdW5mb2xkIChsYW1iZGEg
KGkpICg+PSBpIDUpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobGFtYmRh
IChpKSAodmFsdWVzIGkgKCogaSAxMCkpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAxKyAwCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVxdj8gI2YgIzp3
ZWFrbmVzcyB3ZWFrbmVzcykpKQorICAgICAgICAoYW5kICg9IDUgKGhhc2gtdGFibGUtc2l6ZSBo
dCkpCisgICAgICAgICAgICAgKGVxPyB3ZWFrbmVzcyAoaGFzaC10YWJsZS13ZWFrbmVzcyBodCkp
CisgICAgICAgICAgICAgKGxzZXQ9IGVxdWFsPyAnKCgwIC4gMCkgKDEgLiAxMCkgKDIgLiAyMCkg
KDMgLiAzMCkgKDQgLiA0MCkpCisgICAgICAgICAgICAgICAgICAgIChoYXNoLXRhYmxlLT5hbGlz
dCBodCkpKSkpCisKKyAgICAocGFzcy1pZiAodGVzdC1zdHItd2Vha25lc3MgImhhc2gtdGFibGU9
PyBmdW5jdGlvbnMgcHJvcGVybHkiIHdlYWtuZXNzKQorICAgICAgKGxldCAoKGh0MSAoaGFzaC10
YWJsZS11bmZvbGQgKGxhbWJkYSAoaSkgKD49IGkgNSkpCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAobGFtYmRhIChpKSAodmFsdWVzIGkgKCogaSAxMCkpKQorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgMSsgMAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgZXF2PyAjZiAjOndlYWtuZXNzIHdlYWtuZXNzKSkKKyAgICAgICAgICAgICho
dDIgKGFsaXN0LT5oYXNoLXRhYmxlICcoKDAgLiAwKSAoMSAuIDEwKSAoMiAuIDIwKSAoMyAuIDMw
KSAoNCAuIDQwKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVxdj8gI2Yg
Izp3ZWFrbmVzcyB3ZWFrbmVzcykpCisgICAgICAgICAgICAoaHQzIChhbGlzdC0+aGFzaC10YWJs
ZSAnKCgwIC4gMCkgKDEgLiAxMCkgKDIgLiAyMCkgKDMgLiAzMCkgKDQgLiA0MCkpCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlcXVhbD8gI2YgIzp3ZWFrbmVzcyB3ZWFrbmVz
cykpCisgICAgICAgICAgICAoaHQ0IChhbGlzdC0+aGFzaC10YWJsZSAnKCgwIC4gMTApICgxIC4g
MTApICgyIC4gMjApICgzIC4gMzApICg0IC4gNDApKQorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgZXF2PyAjZiAjOndlYWtuZXNzIHdlYWtuZXNzKSkpCisgICAgICAgIChhbmQg
KGhhc2gtdGFibGU9PyBlcXY/IGh0MSBodDIpCisgICAgICAgICAgICAgKG5vdCAoaGFzaC10YWJs
ZT0/IGVxdj8gaHQxIGh0MykpCisgICAgICAgICAgICAgKG5vdCAoaGFzaC10YWJsZT0/IGVxdj8g
aHQxIGh0NCkpCisgICAgICAgICAgICAgKGxzZXQ9IGVxdWFsPyAnKCgwIC4gMCkgKDEgLiAxMCkg
KDIgLiAyMCkgKDMgLiAzMCkgKDQgLiA0MCkpCisgICAgICAgICAgICAgICAgICAgIChoYXNoLXRh
YmxlLT5hbGlzdCBodDMpKSkpKQorCisgICAgKHBhc3MtaWYgKHRlc3Qtc3RyLXdlYWtuZXNzICJo
YXNoLXRhYmxlLXJlZiB1c2VzIGRlZmF1bHQiIHdlYWtuZXNzKQorICAgICAgKGVxdWFsPyAnKDQp
CisgICAgICAgICAgICAgIChoYXNoLXRhYmxlLXJlZiAoYWxpc3QtPmhhc2gtdGFibGUgJygoYSAu
IDEpKSBlcT8gI2YKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAjOndlYWtuZXNzIHdlYWtuZXNzKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
J2IgKGN1dCBsaXN0ICgrIDIgMikpKSkpCisKKyAgICAocGFzcy1pZiAodGVzdC1zdHItd2Vha25l
c3MgImhhc2gtdGFibGUtcmVmL2RlZmF1bHQgdXNlcyBkZWZhdWx0IiB3ZWFrbmVzcykKKyAgICAg
IChlcXVhbD8gJ2ZvbworICAgICAgICAgICAgICAoaGFzaC10YWJsZS1yZWYvZGVmYXVsdCAoYWxp
c3QtPmhhc2gtdGFibGUgJygoYSAuIDEpKSBlcT8gI2YKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICM6d2Vha25lc3Mgd2Vha25lc3MpCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdiICdmb28pKSkKKworICAgIChw
YXNzLWlmICh0ZXN0LXN0ci13ZWFrbmVzcyAiaGFzaC10YWJsZS1kZWxldGUhIGRlbGV0ZXMgcHJl
c2VudCBhc3NvY3MsIGlnbm9yZXMgb3RoZXJzIgorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICB3ZWFrbmVzcykKKyAgICAgIChsZXQgKChodCAoYWxpc3QtPmhhc2gtdGFibGUgJygoYSAu
IDEpIChiIC4gMikpIGVxPyAjZiAjOndlYWtuZXNzIHdlYWtuZXNzKSkpCisgICAgICAgIChhbmQg
KD0gMCAoaGFzaC10YWJsZS1kZWxldGUhIGh0ICdjKSkKKyAgICAgICAgICAgICAoPSAyIChoYXNo
LXRhYmxlLXNpemUgaHQpKQorICAgICAgICAgICAgICg9IDEgKGhhc2gtdGFibGUtZGVsZXRlISBo
dCAnYSkpCisgICAgICAgICAgICAgKD0gMSAoaGFzaC10YWJsZS1zaXplIGh0KSkKKyAgICAgICAg
ICAgICAobHNldD0gZXF1YWw/ICcoKGIgLiAyKSkgKGhhc2gtdGFibGUtPmFsaXN0IGh0KSkpKSkK
KworICAgIChwYXNzLWlmICh0ZXN0LXN0ci13ZWFrbmVzcyAiaGFzaC10YWJsZS1kZWxldGUhIGRl
bGV0ZXMgc2V2ZXJhbCBrZXlzIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3ZWFr
bmVzcykKKyAgICAgIChsZXQgKChodCAoYWxpc3QtPmhhc2gtdGFibGUgJygoYSAuIDEpIChiIC4g
MikgKGQgLiA0KSAoZSAuIDUpKSBlcT8gI2YKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIzp3ZWFrbmVzcyB3ZWFrbmVzcykpKQorICAgICAgICAoYW5kICg9IDQgKGhhc2gtdGFi
bGUtc2l6ZSBodCkpCisgICAgICAgICAgICAgKD0gMyAoaGFzaC10YWJsZS1kZWxldGUhIGh0ICdh
ICdiICdjICdlKSkKKyAgICAgICAgICAgICAoPSAxIChoYXNoLXRhYmxlLXNpemUgaHQpKQorICAg
ICAgICAgICAgIChsc2V0PSBlcXVhbD8gJygoZCAuIDQpKSAoaGFzaC10YWJsZS0+YWxpc3QgaHQp
KSkpKQorCisgICAgKHBhc3MtaWYgKHRlc3Qtc3RyLXdlYWtuZXNzICJhbGlzdC0+aGFzaC10YWJs
ZSBkb2VzIG5vdCByZXF1aXJlIGxpbmVhciBzdGFjayBzcGFjZSIKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgd2Vha25lc3MpCisgICAgICAoZXF2PyA5OTk5OQorICAgICAgICAgICAg
KGhhc2gtdGFibGUtcmVmCisgICAgICAgICAgICAgKGFsaXN0LT5oYXNoLXRhYmxlICh1bmZvbGQt
cmlnaHQgKGN1dCA+PSA8PiAxMDAwMDApCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgKGxhbWJkYSAocykgYCh4IC4gLHMpKSAxKyAwKQorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBlcT8gI2YKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIzp3ZWFrbmVzcyB3ZWFrbmVzcykKKyAgICAgICAgICAgICAneCkpKQorCisgICAgKHBhc3Mt
aWYgKHRlc3Qtc3RyLXdlYWtuZXNzICJoYXNoLXRhYmxlLXVwZGF0ZSEgbW9kaWZpZXMgZXhpc3Rp
bmcgYmluZGluZyIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2Vha25lc3MpCisg
ICAgICAobGV0ICgoaHQgKGFsaXN0LT5oYXNoLXRhYmxlICcoKGEgLiAxKSkgZXE/ICNmICM6d2Vh
a25lc3Mgd2Vha25lc3MpKSkKKyAgICAgICAgKGhhc2gtdGFibGUtdXBkYXRlISBodCAnYSAxKykK
KyAgICAgICAgKGhhc2gtdGFibGUtdXBkYXRlISBodCAnYSAoY3V0ICsgNCA8PikgKGxhbWJkYSAo
KSA0MikpCisgICAgICAgIChhbmQgKD0gMSAoaGFzaC10YWJsZS1zaXplIGh0KSkKKyAgICAgICAg
ICAgICAobHNldD0gZXF1YWw/ICcoKGEgLiA2KSkgKGhhc2gtdGFibGUtPmFsaXN0IGh0KSkpKSkK
KworICAgIChwYXNzLWlmICh0ZXN0LXN0ci13ZWFrbmVzcyAiaGFzaC10YWJsZS11cGRhdGUhIGNy
ZWF0ZXMgbmV3IGJpbmRpbmcgd2hlbiBhcHByb3ByaWF0ZSIKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgd2Vha25lc3MpCisgICAgICAobGV0ICgoaHQgKG1ha2UtaGFzaC10YWJsZSBl
cT8gI2YgIzp3ZWFrbmVzcyB3ZWFrbmVzcykpKQorICAgICAgICAoaGFzaC10YWJsZS11cGRhdGUh
IGh0ICdiIDErIChsYW1iZGEgKCkgNDIpKQorICAgICAgICAoaGFzaC10YWJsZS11cGRhdGUhIGh0
ICdiIChjdXQgKyAxMCA8PikpCisgICAgICAgIChhbmQgKD0gMSAoaGFzaC10YWJsZS1zaXplIGh0
KSkKKyAgICAgICAgICAgICAobHNldD0gZXF1YWw/ICcoKGIgLiA1MykpIChoYXNoLXRhYmxlLT5h
bGlzdCBodCkpKSkpCisKKyAgICAocGFzcy1pZiAodGVzdC1zdHItd2Vha25lc3MgImhhc2gtdGFi
bGUtaW50ZXJuISBjcmVhdGVzIG5ldyBiaW5kaW5nIgorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICB3ZWFrbmVzcykKKyAgICAgIChsZXQgKChodCAobWFrZS1oYXNoLXRhYmxlIGVxPyAj
ZiAjOndlYWtuZXNzIHdlYWtuZXNzKSkpCisgICAgICAgIChhbmQgKD0gMSAoaGFzaC10YWJsZS1p
bnRlcm4hIGh0ICdiIChjb25zdCAxKSkpCisgICAgICAgICAgICAgKD0gMSAoaGFzaC10YWJsZS1z
aXplIGh0KSkKKyAgICAgICAgICAgICAobHNldD0gZXF1YWw/ICcoKGIgLiAxKSkgKGhhc2gtdGFi
bGUtPmFsaXN0IGh0KSkpKSkKKworICAgIChwYXNzLWlmICh0ZXN0LXN0ci13ZWFrbmVzcyAiaGFz
aC10YWJsZS1pbnRlcm4hIGRvZXNuJ3QgbW9kaWZ5IGV4aXN0aW5nIGJpbmRpbmciCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHdlYWtuZXNzKQorICAgICAgKGxldCAoKGh0IChhbGlz
dC0+aGFzaC10YWJsZSAnKChhIC4gMSkpIGVxPyAjZiAjOndlYWtuZXNzIHdlYWtuZXNzKSkpCisg
ICAgICAgIChhbmQgKD0gMSAoaGFzaC10YWJsZS1pbnRlcm4hIGh0ICdhIChjb25zdCAyKSkpCisg
ICAgICAgICAgICAgKD0gMSAoaGFzaC10YWJsZS1zaXplIGh0KSkKKyAgICAgICAgICAgICAobHNl
dD0gZXF1YWw/ICcoKGEgLiAxKSkgKGhhc2gtdGFibGUtPmFsaXN0IGh0KSkpKSkKKworICAgIChw
YXNzLWlmICh0ZXN0LXN0ci13ZWFrbmVzcyAiaGFzaC10YWJsZS1wb3AhIGZ1bmN0aW9ucyBwcm9w
ZXJseSIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2Vha25lc3MpCisgICAgICAo
bGV0KiAoKGh0IChhbGlzdC0+aGFzaC10YWJsZSAnKChhIC4gMSkgKGIgLiAyKSkgZXE/ICNmICM6
d2Vha25lc3Mgd2Vha25lc3MpKQorICAgICAgICAgICAgIChwb3BwZWQgKHJlY2VpdmUgKGtleSB2
YWwpIChoYXNoLXRhYmxlLXBvcCEgaHQpIChsaXN0IGtleSB2YWwpKSkpCisgICAgICAgIChvciAo
YW5kIChlcXVhbD8gJyhhIDEpIHBvcHBlZCkKKyAgICAgICAgICAgICAgICAgKGVxdWFsPyAnKChi
IC4gMikpIChoYXNoLXRhYmxlLT5hbGlzdCBodCkpKQorICAgICAgICAgICAgKGFuZCAoZXF1YWw/
ICcoYiAyKSBwb3BwZWQpCisgICAgICAgICAgICAgICAgIChlcXVhbD8gJygoYSAuIDEpKSAoaGFz
aC10YWJsZS0+YWxpc3QgaHQpKSkpKSkKKworICAgIChwYXNzLWlmLWV4Y2VwdGlvbgorICAgICAg
ICAodGVzdC1zdHItd2Vha25lc3MgImhhc2gtdGFibGUtcG9wISB3aXRoIGVtcHR5IGhhc2ggdGFi
bGUgc2lnbmFscyBhbiBlcnJvciIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIHdlYWtuZXNz
KQorICAgICAgICAnKG1pc2MtZXJyb3IgLiAiXkhhc2ggdGFibGUgaXMgZW1wdHkiKQorICAgICAg
KGhhc2gtdGFibGUtcG9wISAobWFrZS1oYXNoLXRhYmxlIGVxPyAjZiAjOndlYWtuZXNzIHdlYWtu
ZXNzKSkpCisKKyAgICAocGFzcy1pZiAodGVzdC1zdHItd2Vha25lc3MgImhhc2gtdGFibGUtY2xl
YXIhIGZ1bmN0aW9ucyBwcm9wZXJseSIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
d2Vha25lc3MpCisgICAgICAobGV0ICgoaHQgKGFsaXN0LT5oYXNoLXRhYmxlICcoKGEgLiAxKSAo
YiAuIDIpKSBlcT8gI2YgIzp3ZWFrbmVzcyB3ZWFrbmVzcykpKQorICAgICAgICAoaGFzaC10YWJs
ZS1jbGVhciEgaHQpCisgICAgICAgIChhbmQgKD0gMCAoaGFzaC10YWJsZS1zaXplIGh0KSkKKyAg
ICAgICAgICAgICAoaGFzaC10YWJsZS1lbXB0eT8gaHQpCisgICAgICAgICAgICAgKG51bGw/ICho
YXNoLXRhYmxlLT5hbGlzdCBodCkpKSkpCisKKyAgICAocGFzcy1pZiAodGVzdC1zdHItd2Vha25l
c3MgImhhc2gtdGFibGUtZmluZCBmdW5jdGlvbnMgcHJvcGVybHkiIHdlYWtuZXNzKQorICAgICAg
KGxldCAoKGh0IChhbGlzdC0+aGFzaC10YWJsZSAnKChhIC4gMSkgKGIgLiAyKSAoYyAuIDMpKSBl
cT8gI2YKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIzp3ZWFrbmVzcyB3ZWFr
bmVzcykpKQorICAgICAgICAoYW5kIChlcT8gJ2IgKGhhc2gtdGFibGUtZmluZCAobGFtYmRhIChr
ZXkgdmFsKSAoYW5kIChldmVuPyB2YWwpIGtleSkpIGh0CisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIChsYW1iZGEgKCkgI2YpKSkKKyAgICAgICAgICAgICAobm90IChoYXNo
LXRhYmxlLWZpbmQgKGxhbWJkYSAoa2V5IHZhbCkgKD0gdmFsIDQpKSBodAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAobGFtYmRhICgpICNmKSkpKSkpCisKKyAgICAocGFzcy1p
ZiAodGVzdC1zdHItd2Vha25lc3MgImhhc2gtdGFibGUtY291bnQgZnVuY3Rpb25zIHByb3Blcmx5
IiB3ZWFrbmVzcykKKyAgICAgIChsZXQgKChodCAoYWxpc3QtPmhhc2gtdGFibGUgJygoYSAuIDEp
IChiIC4gMikgKGMgLiAzKSAoZCAuIDQpKSBlcT8gI2YKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIzp3ZWFrbmVzcyB3ZWFrbmVzcykpKQorICAgICAgICAoYW5kICg9IDIgKGhh
c2gtdGFibGUtY291bnQgKGxhbWJkYSAoa2V5IHZhbCkgKGV2ZW4/IHZhbCkpIGh0KSkKKyAgICAg
ICAgICAgICAoPSAxIChoYXNoLXRhYmxlLWNvdW50IChsYW1iZGEgKGtleSB2YWwpICg9IHZhbCA0
KSkgaHQpKQorICAgICAgICAgICAgICg9IDAgKGhhc2gtdGFibGUtY291bnQgKGxhbWJkYSAoa2V5
IHZhbCkgKD0gdmFsIDUpKSBodCkpKSkpCisKKyAgICAocGFzcy1pZiAodGVzdC1zdHItd2Vha25l
c3MgImhhc2ggdGFibGUga2V5cyBhbmQgdmFsdWVzIGFyZSBjb3JyZWN0IiB3ZWFrbmVzcykKKyAg
ICAgIChsZXQgKChodCAoYWxpc3QtPmhhc2gtdGFibGUgJygoYSAuIDEpIChiIC4gMikgKGMgLiAz
KSAoZCAuIDQpKSBlcT8gI2YKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIzp3
ZWFrbmVzcyB3ZWFrbmVzcykpKQorICAgICAgICAoYW5kIChsc2V0PSBlcT8gJyhhIGIgYyBkKSAo
aGFzaC10YWJsZS1rZXlzIGh0KSkKKyAgICAgICAgICAgICAobHNldD0gPSAgICcoMSAyIDMgNCkg
KGhhc2gtdGFibGUtdmFsdWVzIGh0KSkKKyAgICAgICAgICAgICAocmVjZWl2ZSAoa2V5cyB2YWxz
KSAoaGFzaC10YWJsZS1lbnRyaWVzIGh0KQorICAgICAgICAgICAgICAgKGFuZCAobHNldD0gZXE/
ICcoYSBiIGMgZCkga2V5cykKKyAgICAgICAgICAgICAgICAgICAgKGxzZXQ9ID0gICAnKDEgMiAz
IDQpIHZhbHMpKSkpKSkKKworICAgIChwYXNzLWlmICh0ZXN0LXN0ci13ZWFrbmVzcyAiaGFzaCB0
YWJsZSBrZXkgYW5kIHZhbHVlIHZlY3RvcnMgYXJlIGNvcnJlY3QiIHdlYWtuZXNzKQorICAgICAg
KGxldCAoKGh0IChhbGlzdC0+aGFzaC10YWJsZSAnKChhIC4gMSkgKGIgLiAyKSAoYyAuIDMpIChk
IC4gNCkpIGVxPyAjZgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjOndlYWtu
ZXNzIHdlYWtuZXNzKSkpCisgICAgICAgIChhbmQgKGxzZXQ9IGVxPyAnKGEgYiBjIGQpICh2ZWN0
b3ItPmxpc3QgKGhhc2gtdGFibGUta2V5LXZlY3RvciBodCkpKQorICAgICAgICAgICAgIChsc2V0
PSA9ICAgJygxIDIgMyA0KSAodmVjdG9yLT5saXN0IChoYXNoLXRhYmxlLXZhbHVlLXZlY3RvciBo
dCkpKQorICAgICAgICAgICAgIChyZWNlaXZlIChrZXlzIHZhbHMpIChoYXNoLXRhYmxlLWVudHJ5
LXZlY3RvcnMgaHQpCisgICAgICAgICAgICAgICAoYW5kIChsc2V0PSBlcT8gJyhhIGIgYyBkKSAo
dmVjdG9yLT5saXN0IGtleXMpKQorICAgICAgICAgICAgICAgICAgICAobHNldD0gPSAgICcoMSAy
IDMgNCkgKHZlY3Rvci0+bGlzdCB2YWxzKSkpKSkpKQorCisgICAgKHBhc3MtaWYgKHRlc3Qtc3Ry
LXdlYWtuZXNzICJoYXNoLXRhYmxlLW1hcCBmdW5jdGlvbnMgcHJvcGVybHkiIHdlYWtuZXNzKQor
ICAgICAgKGxldCogKChodDEgKGFsaXN0LT5oYXNoLXRhYmxlICcoKGEgLiAxKSAoYiAuIDIpKSBl
cT8gI2YKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjOndlYWtuZXNzIHdl
YWtuZXNzKSkKKyAgICAgICAgICAgICAoaHQyIChoYXNoLXRhYmxlLW1hcCAxKyBodDEgZXE/ICNm
KSkpCisgICAgICAgIChhbmQgKD0gMiAoaGFzaC10YWJsZS1zaXplIGh0MikpCisgICAgICAgICAg
ICAgKGxzZXQ9IGVxdWFsPyAnKChhIC4gMikgKGIgLiAzKSkgKGhhc2gtdGFibGUtPmFsaXN0IGh0
MikpKSkpCisKKyAgICAocGFzcy1pZiAodGVzdC1zdHItd2Vha25lc3MgImhhc2gtdGFibGUtbWFw
ISBmdW5jdGlvbnMgcHJvcGVybHkiIHdlYWtuZXNzKQorICAgICAgKGxldCAoKGh0IChhbGlzdC0+
aGFzaC10YWJsZSAnKChhIC4gMSkgKGIgLiAyKSkgZXE/ICNmCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICM6d2Vha25lc3Mgd2Vha25lc3MpKSkKKyAgICAgICAgKGhhc2gtdGFi
bGUtbWFwISAobGFtYmRhIChrZXkgdmFsKSAoKyB2YWwgMSkpIGh0KQorICAgICAgICAoYW5kICg9
IDIgKGhhc2gtdGFibGUtc2l6ZSBodCkpCisgICAgICAgICAgICAgKGxzZXQ9IGVxdWFsPyAnKChh
IC4gMikgKGIgLiAzKSkgKGhhc2gtdGFibGUtPmFsaXN0IGh0KSkpKSkKKworICAgIChwYXNzLWlm
ICh0ZXN0LXN0ci13ZWFrbmVzcyAiaGFzaC10YWJsZS1mb3ItZWFjaCBpZ25vcmVzIHJldHVybiB2
YWx1ZXMiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdlYWtuZXNzKQorICAgICAg
KGxldCAoKGh0IChhbGlzdC0+aGFzaC10YWJsZSAnKChhIC4gMSkgKGIgLiAyKSAoYyAuIDMpKSBl
cT8gI2YKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIzp3ZWFrbmVzcyB3ZWFr
bmVzcykpKQorICAgICAgICAoZm9yLWVhY2ggKGN1dCBoYXNoLXRhYmxlLWZvci1lYWNoIDw+IGh0
KQorICAgICAgICAgICAgICAgICAgKGxpc3QgKGxhbWJkYSAoayB2KSAodmFsdWVzKSkKKyAgICAg
ICAgICAgICAgICAgICAgICAgIChsYW1iZGEgKGsgdikgKHZhbHVlcyAxIDIgMykpKSkKKyAgICAg
ICAgI3QpKQorCisgICAgKHBhc3MtaWYgKHRlc3Qtc3RyLXdlYWtuZXNzICJoYXNoLXRhYmxlLW1h
cC0+bGlzdCBmdW5jdGlvbnMgcHJvcGVybHkiIHdlYWtuZXNzKQorICAgICAgKGxldCAoKGh0IChh
bGlzdC0+aGFzaC10YWJsZSAnKChhIC4gMSkgKGIgLiAyKSkgZXE/ICNmCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICM6d2Vha25lc3Mgd2Vha25lc3MpKSkKKyAgICAgICAgKGFu
ZCAobHNldD0gZXE/ICcoYSBiKSAoaGFzaC10YWJsZS1tYXAtPmxpc3QgKGxhbWJkYSAoa2V5IHZh
bCkga2V5KSBodCkpCisgICAgICAgICAgICAgKGxzZXQ9ID0gJygxIDIpIChoYXNoLXRhYmxlLW1h
cC0+bGlzdCAobGFtYmRhIChrZXkgdmFsKSB2YWwpIGh0KSkpKSkKKworICAgIChwYXNzLWlmICh0
ZXN0LXN0ci13ZWFrbmVzcyAiaGFzaC10YWJsZS1mb2xkIGZ1bmN0aW9ucyBwcm9wZXJseSIgd2Vh
a25lc3MpCisgICAgICAobGV0ICgoaHQgKGFsaXN0LT5oYXNoLXRhYmxlICcoKGEgLiAxKSAoYiAu
IDIpKSBlcT8gI2YKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIzp3ZWFrbmVz
cyB3ZWFrbmVzcykpKQorICAgICAgICAoPSAzIChoYXNoLXRhYmxlLWZvbGQgKGxhbWJkYSAoa2V5
IHZhbCBhY2MpICgrIHZhbCBhY2MpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMCBo
dCkpKSkKKworICAgIChwYXNzLWlmICh0ZXN0LXN0ci13ZWFrbmVzcyAiaGFzaC10YWJsZS1wcnVu
ZSEgZnVuY3Rpb25zIHByb3Blcmx5IiB3ZWFrbmVzcykKKyAgICAgIChsZXQgKChodCAoYWxpc3Qt
Pmhhc2gtdGFibGUgJygoYSAuIDEpIChiIC4gMikgKGMgLiAzKSAoZCAuIDQpKSBlcT8gI2YKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIzp3ZWFrbmVzcyB3ZWFrbmVzcykpKQor
ICAgICAgICAoaGFzaC10YWJsZS1wcnVuZSEgKGxhbWJkYSAoa2V5IHZhbCkgKGV2ZW4/IHZhbCkp
IGh0KQorICAgICAgICAobHNldD0gZXF1YWw/ICcoKGEgLiAxKSAoYyAuIDMpKSAoaGFzaC10YWJs
ZS0+YWxpc3QgaHQpKSkpCisKKyAgICAocGFzcy1pZiAodGVzdC1zdHItd2Vha25lc3MgImhhc2gt
dGFibGUtY29weSBmdW5jdGlvbnMgcHJvcGVybHkiIHdlYWtuZXNzKQorICAgICAgKGxldCAoKGh0
IChoYXNoLXRhYmxlLWNvcHkgKGFsaXN0LT5oYXNoLXRhYmxlICcoKGEgLiAxKSAoYiAuIDIpKSBl
cT8gI2YKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAjOndlYWtuZXNzIHdlYWtuZXNzKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IzptdXRhYmxlICN0KSkpCisgICAgICAgIChhbmQgKD0gMiAoaGFzaC10YWJsZS1zaXplIGh0KSkK
KyAgICAgICAgICAgICAobHNldD0gZXF1YWw/ICcoKGEgLiAxKSAoYiAuIDIpKSAoaGFzaC10YWJs
ZS0+YWxpc3QgaHQpKQorICAgICAgICAgICAgIChoYXNoLXRhYmxlLW11dGFibGU/IGh0KSkpKQor
CisgICAgKHBhc3MtaWYgKHRlc3Qtc3RyLXdlYWtuZXNzICJoYXNoLXRhYmxlLXVuaW9uISBmdW5j
dGlvbnMgcHJvcGVybHkiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdlYWtuZXNz
KQorICAgICAgKGxldCogKChodDEgKGFsaXN0LT5oYXNoLXRhYmxlICcoKGEgLiAxKSAoYiAuIDIp
KSBlcT8gI2YgIzp3ZWFrbmVzcyB3ZWFrbmVzcykpCisgICAgICAgICAgICAgKGh0MiAoYWxpc3Qt
Pmhhc2gtdGFibGUgJygoYiAuIDMpIChjIC4gNCkpIGVxPyAjZiAjOndlYWtuZXNzIHdlYWtuZXNz
KSkpCisgICAgICAgIChzZXQhIGh0MSAoaGFzaC10YWJsZS11bmlvbiEgaHQxIGh0MikpCisgICAg
ICAgIChhbmQgKD0gMyAoaGFzaC10YWJsZS1zaXplIGh0MSkpCisgICAgICAgICAgICAgKD0gMiAo
aGFzaC10YWJsZS1zaXplIGh0MikpCisgICAgICAgICAgICAgKGxzZXQ9IGVxdWFsPyAnKChhIC4g
MSkgKGIgLiAyKSAoYyAuIDQpKSAoaGFzaC10YWJsZS0+YWxpc3QgaHQxKSkKKyAgICAgICAgICAg
ICAobHNldD0gZXF1YWw/ICcoKGIgLiAzKSAoYyAuIDQpKSAoaGFzaC10YWJsZS0+YWxpc3QgaHQy
KSkpKSkKKworICAgIChwYXNzLWlmICh0ZXN0LXN0ci13ZWFrbmVzcyAiaGFzaC10YWJsZS1pbnRl
cnNlY3Rpb24hIGZ1bmN0aW9ucyBwcm9wZXJseSIKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgd2Vha25lc3MpCisgICAgICAobGV0KiAoKGh0MSAoYWxpc3QtPmhhc2gtdGFibGUgJygo
YSAuIDEpIChiIC4gMikpIGVxPyAjZiAjOndlYWtuZXNzIHdlYWtuZXNzKSkKKyAgICAgICAgICAg
ICAoaHQyIChhbGlzdC0+aGFzaC10YWJsZSAnKChiIC4gMykgKGMgLiA0KSkgZXE/ICNmICM6d2Vh
a25lc3Mgd2Vha25lc3MpKSkKKyAgICAgICAgKHNldCEgaHQxIChoYXNoLXRhYmxlLWludGVyc2Vj
dGlvbiEgaHQxIGh0MikpCisgICAgICAgIChhbmQgKD0gMSAoaGFzaC10YWJsZS1zaXplIGh0MSkp
CisgICAgICAgICAgICAgKD0gMiAoaGFzaC10YWJsZS1zaXplIGh0MikpCisgICAgICAgICAgICAg
KGxzZXQ9IGVxdWFsPyAnKChiIC4gMikpIChoYXNoLXRhYmxlLT5hbGlzdCBodDEpKQorICAgICAg
ICAgICAgIChsc2V0PSBlcXVhbD8gJygoYiAuIDMpIChjIC4gNCkpIChoYXNoLXRhYmxlLT5hbGlz
dCBodDIpKSkpKQorCisgICAgKHBhc3MtaWYgKHRlc3Qtc3RyLXdlYWtuZXNzICJoYXNoLXRhYmxl
LWRpZmZlcmVuY2UhIGZ1bmN0aW9ucyBwcm9wZXJseSIKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgd2Vha25lc3MpCisgICAgICAobGV0KiAoKGh0MSAoYWxpc3QtPmhhc2gtdGFibGUg
JygoYSAuIDEpIChiIC4gMikpIGVxPyAjZiAjOndlYWtuZXNzIHdlYWtuZXNzKSkKKyAgICAgICAg
ICAgICAoaHQyIChhbGlzdC0+aGFzaC10YWJsZSAnKChiIC4gMykgKGMgLiA0KSkgZXE/ICNmICM6
d2Vha25lc3Mgd2Vha25lc3MpKSkKKyAgICAgICAgKHNldCEgaHQxIChoYXNoLXRhYmxlLWRpZmZl
cmVuY2UhIGh0MSBodDIpKQorICAgICAgICAoYW5kICg9IDEgKGhhc2gtdGFibGUtc2l6ZSBodDEp
KQorICAgICAgICAgICAgICg9IDIgKGhhc2gtdGFibGUtc2l6ZSBodDIpKQorICAgICAgICAgICAg
IChsc2V0PSBlcXVhbD8gJygoYSAuIDEpKSAoaGFzaC10YWJsZS0+YWxpc3QgaHQxKSkKKyAgICAg
ICAgICAgICAobHNldD0gZXF1YWw/ICcoKGIgLiAzKSAoYyAuIDQpKSAoaGFzaC10YWJsZS0+YWxp
c3QgaHQyKSkpKSkKKworICAgIChwYXNzLWlmICh0ZXN0LXN0ci13ZWFrbmVzcyAiaGFzaC10YWJs
ZS14b3IhIGZ1bmN0aW9ucyBwcm9wZXJseSIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgd2Vha25lc3MpCisgICAgICAobGV0KiAoKGh0MSAoYWxpc3QtPmhhc2gtdGFibGUgJygoYSAu
IDEpIChiIC4gMikpIGVxPyAjZiAjOndlYWtuZXNzIHdlYWtuZXNzKSkKKyAgICAgICAgICAgICAo
aHQyIChhbGlzdC0+aGFzaC10YWJsZSAnKChiIC4gMykgKGMgLiA0KSkgZXE/ICNmICM6d2Vha25l
c3Mgd2Vha25lc3MpKSkKKyAgICAgICAgKHNldCEgaHQxIChoYXNoLXRhYmxlLXhvciEgaHQxIGh0
MikpCisgICAgICAgIChhbmQgKD0gMiAoaGFzaC10YWJsZS1zaXplIGh0MSkpCisgICAgICAgICAg
ICAgKD0gMiAoaGFzaC10YWJsZS1zaXplIGh0MikpCisgICAgICAgICAgICAgKGxzZXQ9IGVxdWFs
PyAnKChhIC4gMSkgKGMgLiA0KSkgKGhhc2gtdGFibGUtPmFsaXN0IGh0MSkpCisgICAgICAgICAg
ICAgKGxzZXQ9IGVxdWFsPyAnKChiIC4gMykgKGMgLiA0KSkgKGhhc2gtdGFibGUtPmFsaXN0IGh0
MikpKSkpCisKKyAgICAocGFzcy1pZiAodGVzdC1zdHItd2Vha25lc3MgImltbXV0YWJsZSBoYXNo
IHRhYmxlcyBhcmUgaW1tdXRhYmxlIiB3ZWFrbmVzcykKKyAgICAgIChsZXQgKChodCAoaGFzaC10
YWJsZS1jb3B5IChhbGlzdC0+aGFzaC10YWJsZSAnKChhIC4gMSkgKGIgLiAyKSkgZXE/ICNmCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIzp3ZWFr
bmVzcyB3ZWFrbmVzcykKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICM6bXV0YWJs
ZSAjZikpKQorICAgICAgICAoYW5kICg9IDIgKGhhc2gtdGFibGUtc2l6ZSBodCkpCisgICAgICAg
ICAgICAgKG5vdCAoaGFzaC10YWJsZS1tdXRhYmxlPyBodCkpKSkpCisKKyAgICA7OyBUZXN0cyB3
aGV0aGVyIGVhY2ggb2YgdGhlIGZvbGxvd2luZyBwcm9jZWR1cmUgc2lnbmFscyBhbiBlcnJvciBv
bgorICAgIDs7IGltbXV0YWJsZSBoYXNoIHRhYmxlcworICAgICh3aXRoLWVsdC1pbi1saXN0IHN5
bStwcm9jCisgICAgICAgIChsaXN0CisgICAgICAgICAoY29ucyAnaGFzaC10YWJsZS1zZXQhCisg
ICAgICAgICAgICAgICAobGFtYmRhIChodCkgKGhhc2gtdGFibGUtc2V0ISBodCAnYSAyICdiIDMp
KSkKKyAgICAgICAgIChjb25zICdoYXNoLXRhYmxlLXNldC1zaW5nbGUhCisgICAgICAgICAgICAg
ICAobGFtYmRhIChodCkgKGhhc2gtdGFibGUtc2V0LXNpbmdsZSEgaHQgJ2EgMikpKQorICAgICAg
ICAgKGNvbnMgJ2hhc2gtdGFibGUtZGVsZXRlIQorICAgICAgICAgICAgICAgKGxhbWJkYSAoaHQp
IChoYXNoLXRhYmxlLWRlbGV0ZSEgaHQgJ2EgJ2IpKSkKKyAgICAgICAgIChjb25zICdoYXNoLXRh
YmxlLWRlbGV0ZS1zaW5nbGUhCisgICAgICAgICAgICAgICAobGFtYmRhIChodCkgKGhhc2gtdGFi
bGUtZGVsZXRlLXNpbmdsZSEgaHQgJ2EpKSkKKyAgICAgICAgIChjb25zICdoYXNoLXRhYmxlLWlu
dGVybiEKKyAgICAgICAgICAgICAgIChsYW1iZGEgKGh0KSAoaGFzaC10YWJsZS1pbnRlcm4hIGh0
ICdhIChjb25zdCAyKSkpKQorICAgICAgICAgKGNvbnMgJ2hhc2gtdGFibGUtdXBkYXRlIQorICAg
ICAgICAgICAgICAgKGxhbWJkYSAoaHQpIChoYXNoLXRhYmxlLXVwZGF0ZSEgaHQgJ2EgMSspKSkK
KyAgICAgICAgIChjb25zICdoYXNoLXRhYmxlLXVwZGF0ZSEvZGVmYXVsdAorICAgICAgICAgICAg
ICAgKGxhbWJkYSAoaHQpIChoYXNoLXRhYmxlLXVwZGF0ZSEvZGVmYXVsdCBodCAnYSAxKyAwKSkp
CisgICAgICAgICAoY29ucyAnaGFzaC10YWJsZS1wb3AhCisgICAgICAgICAgICAgICAobGFtYmRh
IChodCkgKGhhc2gtdGFibGUtcG9wISBodCkpKQorICAgICAgICAgKGNvbnMgJ2hhc2gtdGFibGUt
Y2xlYXIhCisgICAgICAgICAgICAgICAobGFtYmRhIChodCkgKGhhc2gtdGFibGUtY2xlYXIhIGh0
KSkpCisgICAgICAgICAoY29ucyAnaGFzaC10YWJsZS1wcnVuZSEKKyAgICAgICAgICAgICAgIChs
YW1iZGEgKGh0KSAoaGFzaC10YWJsZS1wcnVuZSEgKGxhbWJkYSAoa2V5IHZhbCkgI3QpIGh0KSkp
CisgICAgICAgICAoY29ucyAnaGFzaC10YWJsZS11bmlvbiEKKyAgICAgICAgICAgICAgIChsYW1i
ZGEgKGh0KSAoaGFzaC10YWJsZS11bmlvbiEgaHQgaHQpKSkKKyAgICAgICAgIChjb25zICdoYXNo
LXRhYmxlLWludGVyc2VjdGlvbiEKKyAgICAgICAgICAgICAgIChsYW1iZGEgKGh0KSAoaGFzaC10
YWJsZS1pbnRlcnNlY3Rpb24hIGh0IGh0KSkpCisgICAgICAgICAoY29ucyAnaGFzaC10YWJsZS1k
aWZmZXJlbmNlIQorICAgICAgICAgICAgICAgKGxhbWJkYSAoaHQpIChoYXNoLXRhYmxlLWRpZmZl
cmVuY2UhIGh0IGh0KSkpCisgICAgICAgICAoY29ucyAnaGFzaC10YWJsZS14b3IhCisgICAgICAg
ICAgICAgICAobGFtYmRhIChodCkgKGhhc2gtdGFibGUteG9yISBodCBodCkpKSkKKyAgICAgIChw
YXNzLWlmLWV4Y2VwdGlvbgorICAgICAgICAgICh0ZXN0LXN0ci13ZWFrbmVzcworICAgICAgICAg
ICAoZm9ybWF0ICNmICJ+YSB3aXRoIGltbXV0YWJsZSBoYXNoIHRhYmxlIHNpZ25hbHMgYW4gZXJy
b3IiIChjYXIgc3ltK3Byb2MpKQorICAgICAgICAgICB3ZWFrbmVzcykKKyAgICAgICAgICAnKG1p
c2MtZXJyb3IgLiAiXkhhc2ggdGFibGUgaXMgbm90IG11dGFibGUiKQorICAgICAgICAobGV0ICgo
aHQgKGhhc2gtdGFibGUtY29weSAoYWxpc3QtPmhhc2gtdGFibGUgJygoYSAuIDEpIChiIC4gMikp
IGVxPyAjZgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIzp3ZWFrbmVzcyB3ZWFrbmVzcykKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIzptdXRhYmxlICNmKSkpCisgICAgICAgICAgKChjZHIgc3ltK3Byb2MpIGh0KSkpKQor
ICAgICkKKyAgKQotLSAKMi4xOS4xCgo=
--000000000000b6a39d057efb700b--




Information forwarded to bug-guile@HIDDEN:
bug#33827; Package guile. Full text available.

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


Received: (at 33827) by debbugs.gnu.org; 23 Dec 2018 17:09:42 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Sun Dec 23 12:09:42 2018
Received: from localhost ([127.0.0.1]:33966 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1gb7G1-0005th-Ia
	for submit <at> debbugs.gnu.org; Sun, 23 Dec 2018 12:09:42 -0500
Received: from mail-io1-f47.google.com ([209.85.166.47]:43217)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <jessymilare@HIDDEN>) id 1gb7Fz-0005tU-A2
 for 33827 <at> debbugs.gnu.org; Sun, 23 Dec 2018 12:09:40 -0500
Received: by mail-io1-f47.google.com with SMTP id q17so4151119ior.10
 for <33827 <at> debbugs.gnu.org>; Sun, 23 Dec 2018 09:09:39 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025;
 h=mime-version:from:date:message-id:subject:to;
 bh=gPxRgx/PXSiUvuxxbLLlD7TRxE9/gR3n6MpbGVuzHGs=;
 b=nV6BldKApEzuHtIR+P9O0inLtyaK6Vs1JlBsr+1yvpLM7sH/YcqPE101MNDK2YFIHU
 4V/AI2AoseP1nWXEgB900NHmJuyIQxbwrVzDXUxlgykZ+MSSkyHUTRcxt/go5NYM+cem
 7eELVrvpoaFzdW+t7fVzEABeeTnfv5uBs7KXFE8g+kg5//7decjmYBIbPMPMKTj7/seQ
 qxya20PR9f7m3P/49T1Cknv5xZY4XVmHOAV81SyNA1pAy0uPzd2k1lEx6POepRC6bfSf
 rhAKelXPCRE5PqkKZzbWJzBezTZMt1EZ1jrYI4flxHNZ9mFBh+Honkc1r6iOkUzdUhhv
 w2dQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20161025;
 h=x-gm-message-state:mime-version:from:date:message-id:subject:to;
 bh=gPxRgx/PXSiUvuxxbLLlD7TRxE9/gR3n6MpbGVuzHGs=;
 b=k1OXwsdTmkJ0nSmrcvl0DlQiC8FK2AKE+Aaw8OGc56I+Hjz0IhE4Q8to3XHr/r7oQA
 KEibkUUmEMRgyOlKIPnp0Pj1QzGqPE821rvmKgX0U+isA2HobQWj2se1UziJ6wIW5e8A
 lQd7r71jtVpWdP7x1d9ycfVDUWsa0JDflQLUXMGBAFwcJ+iQlZAmx0BJcbseA1myT0Kw
 gHeomQv0tMyihFlD2gbH/imwuf9MTPshs7OhRYR+0qPXBljn4EAJXVRwbpONh7itWMuB
 yWF6Cv4dspkwzZdRZdqAqFhyLq1pnzII3dbaEi5OfAhTWGrk5fgCgjYGzzS2ayRKjkD4
 cIjg==
X-Gm-Message-State: AJcUukcA05edCyoh6/+sL7z1KlaxF+HIgRueI+8xJIG6jmPMYUaJ8GWz
 Fb2eAbn7Q3UFPAMy8Yl4wBaxFpUi9aEoD1sFc8awWQ==
X-Google-Smtp-Source: ALg8bN5B1ZrQ3bVVjPhIcFf9A3pX4ejXKy/bsQY/r+Fb9Mp5HAI8VJw8wLDnx5tZobD0NXnBQP2C4Ow1DI0hRkcTmMU=
X-Received: by 2002:a6b:600b:: with SMTP id r11mr7537125iog.259.1545584973273; 
 Sun, 23 Dec 2018 09:09:33 -0800 (PST)
MIME-Version: 1.0
From: =?UTF-8?B?SsOpc3NpY2EgTWlsYXLDqQ==?= <jessymilare@HIDDEN>
Date: Sun, 23 Dec 2018 15:09:22 -0200
Message-ID: <CAGBcF1Z5WmXij2vX+EhxQHvWkmmOkeL-hV+Y-SUSpByH0tZQHw@HIDDEN>
Subject: Patch
To: 33827 <at> debbugs.gnu.org
Content-Type: multipart/mixed; boundary="0000000000004d8042057db38bed"
X-Spam-Score: 0.1 (/)
X-Debbugs-Envelope-To: 33827
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.9 (/)

--0000000000004d8042057db38bed
Content-Type: multipart/alternative; boundary="0000000000004d8040057db38beb"

--0000000000004d8040057db38beb
Content-Type: text/plain; charset="UTF-8"



--0000000000004d8040057db38beb
Content-Type: text/html; charset="UTF-8"

<div dir="ltr"><br></div>

--0000000000004d8040057db38beb--

--0000000000004d8042057db38bed
Content-Type: text/x-patch; charset="UTF-8"; 
	name="0001-Fix-SRFI-69-don-t-use-handles-with-weak-tables-anymo.patch"
Content-Disposition: attachment; 
	filename="0001-Fix-SRFI-69-don-t-use-handles-with-weak-tables-anymo.patch"
Content-Transfer-Encoding: base64
Content-ID: <f_jq15dexw0>
X-Attachment-Id: f_jq15dexw0

RnJvbSA4N2ZmNTE5YjkyODhkZWRjYzYyYTJmZDFiMmMwM2VjY2JmNjMxZTU2IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiA9P1VURi04P3E/Sj1DMz1BOXNzaWNhPTIwTWlsYXI9QzM9QTk/
PSA8amVzc3ltaWxhcmVAZ21haWwuY29tPgpEYXRlOiBTdW4sIDIzIERlYyAyMDE4IDE1OjA3OjMy
IC0wMjAwClN1YmplY3Q6IFtQQVRDSF0gRml4OiAoU1JGSSA6NjkpIGRvbid0IHVzZSBoYW5kbGVz
IHdpdGggd2VhayB0YWJsZXMgYW55bW9yZS4KCk1hbnkgcHJvY2VkdXJlcyB1c2VkIGhhc2h4LWdl
dC1oYW5kbGUgYW5kIGhhc2h4LWNyZWF0ZS1oYW5kbGUhIHdpdGhvdXQKY2hlY2tpbmcgd2hldGhl
ciByZWFsLWhhc2gtdGFibGUgd2FzIHdlYWsuIE5vdyB0aGF0IGlzbid0IHRoZSBjYXNlCmFueW1v
cmUgKEJ1ZyAzMzgyNykuIEEgYnVnIHdhcyBmaXhlZCBpbiBoYXNoLXRhYmxlLW1lcmdlISBhbmQg
YSB0ZXN0IGNhc2UKd2FzIGFkZGVkLiBBIGZldyBvdGhlciBvcHRpbWl6YXRpb25zIHdlcmUgbWFk
ZS4KCiogbW9kdWxlL3NyZmkvc3JmaS02OS5zY20gKGFsaXN0LT5oYXNoLXRhYmxlKToKKGhhc2gt
dGFibGUtZGVsZXRlISk6CihoYXNoLXRhYmxlLWV4aXN0cz8pOgooaGFzaC10YWJsZS1yZWYpOiBE
b24ndCB1c2UgaGFzaHgtZ2V0LWhhbmRsZS4KKGhhc2gtdGFibGUtc2V0ISk6IElmIHdlYWtuZXNz
IGlzIHNldCwgZG9uJ3QgdXNlIGhhc2h4LWNyZWF0ZS1oYW5kbGUhCmFuZCBkb24ndCB1cGRhdGUg
c2l6ZS4KKGhhc2gtdGFibGUtdXBkYXRlISk6IElmIHdlYWtuZXNzIGlzIHNldCwgZG9uJ3QgdXNl
IGhhc2h4LWdldC1oYW5kbGUKYW5kIGRvbid0IHVwZGF0ZSBzaXplLiBPdGhlcndpc2UsIGNoZWNr
IHdoZXRoZXIgZGVmYXVsdC10aHVuayBpcyBnaXZlbgphbmQsIGlmIHNvLCB1c2UgaGFzaHgtY3Jl
YXRlLWhhbmRsZSEgdG8gYXZvaWQgZG91YmxlIGxvb2t1cC4KKGhhc2gtdGFibGUtdXBkYXRlIS9k
ZWZhdWx0KTogQWRkZWQgYW4gaW1wbGVtZW50YXRpb24gdGhhdCBkb2Vzbid0IGNhbGwKaGFzaC10
YWJsZS11cGRhdGUhLCBhdm9pZGluZyBhbGxvY2F0aW5nIGEgcHJvY2VkdXJlLgooaGFzaC10YWJs
ZS1zaXplKTogU2V0IGh0LXNpemUgZm9yIHdlYWsgaGFzaC10YWJsZXMuCihoYXNoLXRhYmxlLXdh
bGspOgooaGFzaC10YWJsZS1jb3B5KTogVXNlIG5hdGl2ZSBoYXNoLWZvci1lYWNoIGluc3RlYWQg
b2YgaGFzaC10YWJsZS1mb2xkLgooaGFzaC10YWJsZS0+YWxpc3QpOiBVc2UgbmF0aXZlIGhhc2gt
bWFwLT5saXN0IGluc3RlYWQgb2YgaGFzaC10YWJsZS1mb2xkLgooaGFzaC10YWJsZS1tZXJnZSEp
OiBVc2UgbmF0aXZlIGhhc2gtZm9yLWVhY2ggaW5zdGVhZCBvZiBoYXNoLXRhYmxlLWZvbGQuCldh
bGtzIG92ZXIgb3RoZXItaHQgcmF0aGVyIHRoYW4gd2Fsa2luZyBodCAoYW5kIGRvaW5nIG5vdGhp
bmcpLgoqIHRlc3Qtc3VpdGUvdGVzdHMvc3JmaS02OS50ZXN0OiBhbGwgYXBwcm9wcmlhdGUgdGVz
dCBhcmUgcmVwbGljYXRlZCBmb3IKYWxsIHBvc3NpYmxlIHdlYWs6IGFyZ3VtZW50cy4gQWRkZWQg
YSB0ZXN0IGZvciBoYXNoLXRhYmxlLW1lcmdlIS4KLS0tCiBUSEFOS1MgICAgICAgICAgICAgICAg
ICAgICAgICB8ICAgMSArCiBtb2R1bGUvc3JmaS9zcmZpLTY5LnNjbSAgICAgICB8IDE0OSArKysr
KysrKysrKysrKysrKy0tLS0tLS0tLS0tCiB0ZXN0LXN1aXRlL3Rlc3RzL3NyZmktNjkudGVzdCB8
IDE3NyArKysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tCiAzIGZpbGVzIGNoYW5nZWQs
IDIwNSBpbnNlcnRpb25zKCspLCAxMjIgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvVEhBTktT
IGIvVEhBTktTCmluZGV4IDYxNmQzYjA0Yi4uOTA1NmE3OTVjIDEwMDY0NAotLS0gYS9USEFOS1MK
KysrIGIvVEhBTktTCkBAIC0yMCw2ICsyMCw3IEBAIENvbnRyaWJ1dG9ycyBzaW5jZSB0aGUgbGFz
dCByZWxlYXNlOgogICAgICAgICAgICBOb2FoIExhdmluZQogICAgICAgICAgRGFuaWVsIExsb3Jl
bnMKICAgICAgICAgR3JlZ29yeSBNYXJ0b24KKyAgICAgICAgSsOpc3NpY2EgTWlsYXLDqQogICAg
ICAgVGhpZW4tVGhpIE5ndXllbgogICAgICAgICBIYW4tV2VuIE5pZW5odXlzCiAgICAgICAgICAg
ICBKYW4gTmlldXdlbmh1aXplbgpkaWZmIC0tZ2l0IGEvbW9kdWxlL3NyZmkvc3JmaS02OS5zY20g
Yi9tb2R1bGUvc3JmaS9zcmZpLTY5LnNjbQppbmRleCBiOTQ4NmM0NjUuLmEwNWVjNjFlYSAxMDA2
NDQKLS0tIGEvbW9kdWxlL3NyZmkvc3JmaS02OS5zY20KKysrIGIvbW9kdWxlL3NyZmkvc3JmaS02
OS5zY20KQEAgLTYyLDYgKzYyLDE0IEBACiA7OyBpbXBsZW1lbnRhdGlvbiwgYm90aCBhbnN3ZXIg
KCJ4WSIpLiAgSG93ZXZlciwgSSBkb24ndCBndWFyYW50ZWUgdGhhdAogOzsgdGhpcyB3b24ndCBj
aGFuZ2UgaW4gdGhlIGZ1dHVyZS4KIAorCis7Ozs7IENvbW1lbnRhcnkgYnkgSmVzc2ljYSBNaWxh
cmUgMjAxOAorCis7OyBNYWtlIGJ1ZyBmaXhlcyBmb3Igd2VhayBoYXNoLXRhYmxlcywgc2luY2Ug
aGFuZGxlcyBkb24ndCB3b3JrIGFueW1vcmUsCis7OyBhbmQgYWxzbyBzb21lIG9wdGltaXphdGlv
bnMuCis7OworOzsgTXkgcGVyc29uYWwgY29tbWVudHMgYXJlIG1hcmtlZCBieSBKLk0uCisKIDs7
OyBDb2RlOgogDAogOzs7OyBNb2R1bGUgZGVmaW5pdGlvbiAmIGV4cG9ydHMKQEAgLTczLDE4ICs4
MSwxOCBAQAogICAjOnVzZS1tb2R1bGUgKGljZS05IG9wdGFyZ3MpCiAgICM6ZXhwb3J0ICg7OyBU
eXBlIGNvbnN0cnVjdG9ycyAmIHByZWRpY2F0ZQogCSAgICBtYWtlLWhhc2gtdGFibGUgaGFzaC10
YWJsZT8gYWxpc3QtPmhhc2gtdGFibGUKLQkgICAgOzsgUmVmbGVjdGl2ZSBxdWVyaWVzCi0JICAg
IGhhc2gtdGFibGUtZXF1aXZhbGVuY2UtZnVuY3Rpb24gaGFzaC10YWJsZS1oYXNoLWZ1bmN0aW9u
Ci0JICAgIDs7IERlYWxpbmcgd2l0aCBzaW5nbGUgZWxlbWVudHMKLQkgICAgaGFzaC10YWJsZS1y
ZWYgaGFzaC10YWJsZS1yZWYvZGVmYXVsdCBoYXNoLXRhYmxlLXNldCEKLQkgICAgaGFzaC10YWJs
ZS1kZWxldGUhIGhhc2gtdGFibGUtZXhpc3RzPyBoYXNoLXRhYmxlLXVwZGF0ZSEKLQkgICAgaGFz
aC10YWJsZS11cGRhdGUhL2RlZmF1bHQKLQkgICAgOzsgRGVhbGluZyB3aXRoIHRoZSB3aG9sZSBj
b250ZW50cwotCSAgICBoYXNoLXRhYmxlLXNpemUgaGFzaC10YWJsZS1rZXlzIGhhc2gtdGFibGUt
dmFsdWVzCi0JICAgIGhhc2gtdGFibGUtd2FsayBoYXNoLXRhYmxlLWZvbGQgaGFzaC10YWJsZS0+
YWxpc3QKLQkgICAgaGFzaC10YWJsZS1jb3B5IGhhc2gtdGFibGUtbWVyZ2UhCi0JICAgIDs7IEhh
c2hpbmcKLQkgICAgc3RyaW5nLWNpLWhhc2ggaGFzaC1ieS1pZGVudGl0eSkKKyAgICAgICAgICAg
IDs7IFJlZmxlY3RpdmUgcXVlcmllcworICAgICAgICAgICAgaGFzaC10YWJsZS1lcXVpdmFsZW5j
ZS1mdW5jdGlvbiBoYXNoLXRhYmxlLWhhc2gtZnVuY3Rpb24KKyAgICAgICAgICAgIDs7IERlYWxp
bmcgd2l0aCBzaW5nbGUgZWxlbWVudHMKKyAgICAgICAgICAgIGhhc2gtdGFibGUtcmVmIGhhc2gt
dGFibGUtcmVmL2RlZmF1bHQgaGFzaC10YWJsZS1zZXQhCisgICAgICAgICAgICBoYXNoLXRhYmxl
LWRlbGV0ZSEgaGFzaC10YWJsZS1leGlzdHM/IGhhc2gtdGFibGUtdXBkYXRlIQorICAgICAgICAg
ICAgaGFzaC10YWJsZS11cGRhdGUhL2RlZmF1bHQKKyAgICAgICAgICAgIDs7IERlYWxpbmcgd2l0
aCB0aGUgd2hvbGUgY29udGVudHMKKyAgICAgICAgICAgIGhhc2gtdGFibGUtc2l6ZSBoYXNoLXRh
YmxlLWtleXMgaGFzaC10YWJsZS12YWx1ZXMKKyAgICAgICAgICAgIGhhc2gtdGFibGUtd2FsayBo
YXNoLXRhYmxlLWZvbGQgaGFzaC10YWJsZS0+YWxpc3QKKyAgICAgICAgICAgIGhhc2gtdGFibGUt
Y29weSBoYXNoLXRhYmxlLW1lcmdlIQorICAgICAgICAgICAgOzsgSGFzaGluZworICAgICAgICAg
ICAgc3RyaW5nLWNpLWhhc2ggaGFzaC1ieS1pZGVudGl0eSkKICAgIzpyZS1leHBvcnQgKHN0cmlu
Zy1oYXNoKQogICAjOnJlcGxhY2UgKGhhc2ggbWFrZS1oYXNoLXRhYmxlIGhhc2gtdGFibGU/KSkK
IApAQCAtMjA0LDMwICsyMTIsMzIgQEAgbWFudWFsIGZvciBzcGVjaWZpY3MsIG9mIHdoaWNoIHRo
ZXJlIGFyZSBtYW55LiIKIAkgKHNpemUgKGh0LXNpemUgcmVzdWx0KSkpCiAgICAgKHdpdGgtaGFz
aHgtdmFsdWVzIChoYXNoLXByb2MgYXNzb2NpYXRvciByZWFsLXRhYmxlKSByZXN1bHQKICAgICAg
IChmb3ItZWFjaCAobGFtYmRhIChwYWlyKQotCQkgIChsZXQgKChoYW5kbGUgKGhhc2h4LWdldC1o
YW5kbGUgaGFzaC1wcm9jIGFzc29jaWF0b3IKLQkJCQkJCSAgcmVhbC10YWJsZSAoY2FyIHBhaXIp
KSkpCi0JCSAgICAoY29uZCAoKG5vdCBoYW5kbGUpCi0JCQkgICAoc2V0ISBzaXplICgxKyBzaXpl
KSkKLQkJCSAgIChoYXNoeC1zZXQhIGhhc2gtcHJvYyBhc3NvY2lhdG9yIHJlYWwtdGFibGUKLQkJ
CQkgICAgICAgKGNhciBwYWlyKSAoY2RyIHBhaXIpKSkpKSkKLQkJYWxpc3QpKQorICAgICAgICAg
ICAgICAgICAgKGxldCAoKHZhbHVlIChoYXNoeC1yZWYgaGFzaC1wcm9jIGFzc29jaWF0b3IKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlYWwtdGFibGUgKGNhciBw
YWlyKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaHQtdW5zcGVj
aWZpZWQpKSkKKyAgICAgICAgICAgICAgICAgICAgKGNvbmQgKChlcT8gaHQtdW5zcGVjaWZpZWQg
dmFsdWUpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAoc2V0ISBzaXplICgxKyBzaXplKSkK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgIChoYXNoeC1zZXQhIGhhc2gtcHJvYyBhc3NvY2lh
dG9yIHJlYWwtdGFibGUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChj
YXIgcGFpcikgKGNkciBwYWlyKSkpKSkpCisgICAgICAgICAgICAgICAgYWxpc3QpKQogICAgICho
dC1zaXplISByZXN1bHQgc2l6ZSkKICAgICByZXN1bHQpKQogDAogOzs7OyBBY2Nlc3NpbmcgdGFi
bGUgaXRlbXMKIAogOzsgV2UgdXNlIHRoaXMgdG8gZGVub3RlIG1pc3Npbmcgb3IgdW5zcGVjaWZp
ZWQgdmFsdWVzIHRvIGF2b2lkCisKIDs7IHBvc3NpYmxlIGNvbGxpc2lvbiB3aXRoICp1bnNwZWNp
ZmllZCouCiAoZGVmaW5lIGh0LXVuc3BlY2lmaWVkIChjb25zICp1bnNwZWNpZmllZCogImh0LXZh
bHVlIikpCiAKLShkZWZpbmUgKGhhc2gtdGFibGUtcmVmIGh0IGtleSAuIGRlZmF1bHQtdGh1bmst
bHN0KQorKGRlZmluZSogKGhhc2gtdGFibGUtcmVmIGh0IGtleSAgIzpvcHRpb25hbCAoZGVmYXVs
dC10aHVuayBodC11bnNwZWNpZmllZCkpCiAgICJMb29rdXAgS0VZIGluIEhUIGFuZCBhbnN3ZXIg
dGhlIHZhbHVlLCBpbnZva2UgREVGQVVMVC1USFVOSyBpZiBLRVkKIGlzbid0IHByZXNlbnQsIG9y
IHNpZ25hbCBhbiBlcnJvciBpZiBERUZBVUxULVRIVU5LIGlzbid0IHByb3ZpZGVkLiIKICAgKGxl
dCAoKHJlc3VsdCAoaGFzaHgtaW52b2tlIGhhc2h4LXJlZiBodCBrZXkgaHQtdW5zcGVjaWZpZWQp
KSkKICAgICAoaWYgKGVxPyBodC11bnNwZWNpZmllZCByZXN1bHQpCi0JKGlmIChwYWlyPyBkZWZh
dWx0LXRodW5rLWxzdCkKLQkgICAgKChmaXJzdCBkZWZhdWx0LXRodW5rLWxzdCkpCi0JICAgIChl
cnJvciAiS2V5IG5vdCBpbiB0YWJsZSIga2V5IGh0KSkKKwkoaWYgKGVxPyBodC11bnNwZWNpZmll
ZCBkZWZhdWx0LXRodW5rKQorCSAgICAoZXJyb3IgIktleSBub3QgaW4gdGFibGUiIGtleSBodCkK
KwkgICAgKGRlZmF1bHQtdGh1bmspKQogCXJlc3VsdCkpKQogCiAoZGVmaW5lIChoYXNoLXRhYmxl
LXJlZi9kZWZhdWx0IGh0IGtleSBkZWZhdWx0KQpAQCAtMjM3LDQ5ICsyNDcsNzkgQEAgcHJlc2Vu
dC4iCiAKIChkZWZpbmUgKGhhc2gtdGFibGUtc2V0ISBodCBrZXkgbmV3LXZhbHVlKQogICAiU2V0
IEtFWSB0byBORVctVkFMVUUgaW4gSFQuIgotICAobGV0ICgoaGFuZGxlIChoYXNoeC1pbnZva2Ug
aGFzaHgtY3JlYXRlLWhhbmRsZSEgaHQga2V5IGh0LXVuc3BlY2lmaWVkKSkpCi0gICAgKGlmIChl
cT8gaHQtdW5zcGVjaWZpZWQgKGNkciBoYW5kbGUpKQotCShodC1zaXplISBodCAoMSsgKGh0LXNp
emUgaHQpKSkpCi0gICAgKHNldC1jZHIhIGhhbmRsZSBuZXctdmFsdWUpKQorICAoaWYgKGh0LXdl
YWtuZXNzIGh0KQorICAgICAgOzsgSi5NLiBzZXBhcmF0ZSB0aGUgY2FzZSB3aGVyZSBodCBpcyB3
ZWFrIC0gZG9uJ3QgdXNlIGhhbmRsZQorICAgICAgOzsgSi5NLiBkb24ndCBuZWVkIHRvIHVwZGF0
ZSBzaXplIGZvciB3ZWFrIGhhc2gtdGFibGVzCisgICAgICAoaGFzaHgtaW52b2tlIGhhc2h4LXNl
dCEgaHQga2V5IG5ldy12YWx1ZSkKKyAgICAgIChsZXQgKChoYW5kbGUgKGhhc2h4LWludm9rZSBo
YXNoeC1jcmVhdGUtaGFuZGxlISBodCBrZXkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBodC11bnNwZWNpZmllZCkpKQorICAgICAgICAoaWYgKGVxPyBodC11bnNwZWNpZmllZCAo
Y2RyIGhhbmRsZSkpCisgICAgICAgICAgICAoaHQtc2l6ZSEgaHQgKDErIChodC1zaXplIGh0KSkp
KQorICAgICAgICAoc2V0LWNkciEgaGFuZGxlIG5ldy12YWx1ZSkpKQogICAqdW5zcGVjaWZpZWQq
KQogCiAoZGVmaW5lIChoYXNoLXRhYmxlLWRlbGV0ZSEgaHQga2V5KQogICAiUmVtb3ZlIEtFWSdz
IGFzc29jaWF0aW9uIGluIEhULiIKICAgKHdpdGgtaGFzaHgtdmFsdWVzIChoIGEgcmVhbC1odCkg
aHQKLSAgICAoaWYgKGhhc2h4LWdldC1oYW5kbGUgaCBhIHJlYWwtaHQga2V5KQotCShiZWdpbgot
CSAgKGh0LXNpemUhIGh0ICgxLSAoaHQtc2l6ZSBodCkpKQotCSAgKGhhc2h4LXJlbW92ZSEgaCBh
IHJlYWwtaHQga2V5KSkpKQorICAgIChpZiAobm90IChlcT8gaHQtdW5zcGVjaWZpZWQgKGhhc2h4
LXJlZiBoIGEgcmVhbC1odCBrZXkgaHQtdW5zcGVjaWZpZWQpKSkKKyAgICAgICAgKGJlZ2luCisg
ICAgICAgICAgKGh0LXNpemUhIGh0ICgxLSAoaHQtc2l6ZSBodCkpKQorICAgICAgICAgIChoYXNo
eC1yZW1vdmUhIGggYSByZWFsLWh0IGtleSkpKSkKICAgKnVuc3BlY2lmaWVkKikKIAogKGRlZmlu
ZSAoaGFzaC10YWJsZS1leGlzdHM/IGh0IGtleSkKICAgIlJldHVybiB3aGV0aGVyIEtFWSBpcyBh
IGtleSBpbiBIVC4iCi0gIChhbmQgKGhhc2h4LWludm9rZSBoYXNoeC1nZXQtaGFuZGxlIGh0IGtl
eSkgI3QpKQorICAobm90IChlcT8gaHQtdW5zcGVjaWZpZWQgKGhhc2h4LWludm9rZSBoYXNoeC1y
ZWYgaHQga2V5IGh0LXVuc3BlY2lmaWVkKSkpKQogCi07OzsgYGhhc2h4LXNldCEnIGR1cGxpY2F0
ZXMgdGhlIGhhc2ggbG9va3VwLCBidXQgd2UgdXNlIGl0IGFueXdheSB0bwotOzs7IGF2b2lkIGNy
ZWF0aW5nIGEgaGFuZGxlIGluIGNhc2UgREVGQVVMVC1USFVOSyBleGl0cwogOzs7IGBoYXNoLXRh
YmxlLXVwZGF0ZSEnIG5vbi1sb2NhbGx5LgotKGRlZmluZSAoaGFzaC10YWJsZS11cGRhdGUhIGh0
IGtleSBtb2RpZmllciAuIGRlZmF1bHQtdGh1bmstbHN0KQorKGRlZmluZSogKGhhc2gtdGFibGUt
dXBkYXRlISBodCBrZXkgbW9kaWZpZXIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIzpv
cHRpb25hbCAoZGVmYXVsdC10aHVuayBodC11bnNwZWNpZmllZCkpCiAgICJNb2RpZnkgSFQncyB2
YWx1ZSBhdCBLRVkgYnkgcGFzc2luZyBpdHMgdmFsdWUgdG8gTU9ESUZJRVIgYW5kCiBzZXR0aW5n
IGl0IHRvIHRoZSByZXN1bHQgdGhlcmVvZi4gIEludm9rZSBERUZBVUxULVRIVU5LIGZvciB0aGUg
b2xkCiB2YWx1ZSBpZiBLRVkgaXNuJ3QgaW4gSFQsIG9yIHNpZ25hbCBhbiBlcnJvciBpZiBERUZB
VUxULVRIVU5LIGlzIG5vdAogcHJvdmlkZWQuIgogICAod2l0aC1oYXNoeC12YWx1ZXMgKGhhc2gt
cHJvYyBhc3NvY2lhdG9yIHJlYWwtdGFibGUpIGh0Ci0gICAgKGxldCAoKGhhbmRsZSAoaGFzaHgt
Z2V0LWhhbmRsZSBoYXNoLXByb2MgYXNzb2NpYXRvciByZWFsLXRhYmxlIGtleSkpKQotICAgICAg
KGNvbmQgKGhhbmRsZQotCSAgICAgKHNldC1jZHIhIGhhbmRsZSAobW9kaWZpZXIgKGNkciBoYW5k
bGUpKSkpCi0JICAgIChlbHNlCi0JICAgICAoaGFzaHgtc2V0ISBoYXNoLXByb2MgYXNzb2NpYXRv
ciByZWFsLXRhYmxlIGtleQotCQkJIChpZiAocGFpcj8gZGVmYXVsdC10aHVuay1sc3QpCi0JCQkg
ICAgIChtb2RpZmllciAoKGNhciBkZWZhdWx0LXRodW5rLWxzdCkpKQotCQkJICAgICAoZXJyb3Ig
IktleSBub3QgaW4gdGFibGUiIGtleSBodCkpKQotCSAgICAgKGh0LXNpemUhIGh0ICgxKyAoaHQt
c2l6ZSBodCkpKSkpKSkKKyAgICAoaWYgKGh0LXdlYWtuZXNzIGh0KQorICAgICAgICA7OyBKLk0u
IHNlcGFyYXRlIHRoZSBjYXNlIHdoZXJlIGh0IGlzIHdlYWsgLSBkb24ndCB1c2UgaGFuZGxlCisg
ICAgICAgIChsZXQqICgob2xkIChoYXNoeC1yZWYgaGFzaC1wcm9jIGFzc29jaWF0b3IgcmVhbC10
YWJsZSBrZXkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBodC11bnNwZWNpZmllZCkp
KQorICAgICAgICAgIChjb25kICgoZXE/IGh0LXVuc3BlY2lmaWVkIG9sZCkKKyAgICAgICAgICAg
ICAgICAgKGlmIChlcT8gaHQtdW5zcGVjaWZpZWQgZGVmYXVsdC10aHVuaykKKyAgICAgICAgICAg
ICAgICAgICAgIChlcnJvciAiS2V5IG5vdCBpbiB0YWJsZSIga2V5IGh0KQorICAgICAgICAgICAg
ICAgICAgICAgKGhhc2h4LXNldCEgaGFzaC1wcm9jIGFzc29jaWF0b3IgcmVhbC10YWJsZSBrZXkK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb2RpZmllciAoZGVmYXVsdC10aHVu
aykpKSkpCisgICAgICAgICAgICAgICAgKGVsc2UKKyAgICAgICAgICAgICAgICAgKGhhc2h4LXNl
dCEgaGFzaC1wcm9jIGFzc29jaWF0b3IgcmVhbC10YWJsZSBrZXkKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgKG1vZGlmaWVyIG9sZCkpKSkpCisgICAgICAgIChsZXQgKChoYW5kbGUKKyAg
ICAgICAgICAgICAgIChpZiAoZXE/IGh0LXVuc3BlY2lmaWVkIGRlZmF1bHQtdGh1bmspCisgICAg
ICAgICAgICAgICAgICAgKGhhc2h4LWdldC1oYW5kbGUgaGFzaC1wcm9jIGFzc29jaWF0b3IgcmVh
bC10YWJsZSBrZXkpCisgICAgICAgICAgICAgICAgICAgKGhhc2h4LWNyZWF0ZS1oYW5kbGUhIGhh
c2gtcHJvYyBhc3NvY2lhdG9yIHJlYWwtdGFibGUga2V5CisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGh0LXVuc3BlY2lmaWVkKSkpKQorICAgICAgICAgIChjb25kICho
YW5kbGUKKyAgICAgICAgICAgICAgICAgKGlmIChlcT8gaHQtdW5zcGVjaWZpZWQgKGNkciBoYW5k
bGUpKQorICAgICAgICAgICAgICAgICAgICAgKGJlZ2luIChodC1zaXplISBodCAoMSsgKGh0LXNp
emUgaHQpKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAoc2V0LWNkciEgaGFuZGxlICht
b2RpZmllciAoZGVmYXVsdC10aHVuaykpKSkKKyAgICAgICAgICAgICAgICAgICAgIChzZXQtY2Ry
ISBoYW5kbGUgKG1vZGlmaWVyIChjZHIgaGFuZGxlKSkpKSkKKyAgICAgICAgICAgICAgICAoZWxz
ZQorICAgICAgICAgICAgICAgICAoZXJyb3IgIktleSBub3QgaW4gdGFibGUiIGtleSBodCkpKSkp
KQogICAqdW5zcGVjaWZpZWQqKQogCis7OzsgSi5NLiBDdXN0b20gaW1wbGVtZW50YXRpb24gaW5z
dGVhZCBvZiB1c2luZyBoYXNoLXRhYmxlLXVwZGF0ZSEKIChkZWZpbmUgKGhhc2gtdGFibGUtdXBk
YXRlIS9kZWZhdWx0IGh0IGtleSBtb2RpZmllciBkZWZhdWx0KQogICAiTW9kaWZ5IEhUJ3MgdmFs
dWUgYXQgS0VZIGJ5IHBhc3NpbmcgaXRzIG9sZCB2YWx1ZSwgb3IgREVGQVVMVCBpZiBpdAogZG9l
c24ndCBoYXZlIG9uZSwgdG8gTU9ESUZJRVIsIGFuZCBzZXR0aW5nIGl0IHRvIHRoZSByZXN1bHQg
dGhlcmVvZi4iCi0gIChoYXNoLXRhYmxlLXVwZGF0ZSEgaHQga2V5IG1vZGlmaWVyIChsYW1iZGEg
KCkgZGVmYXVsdCkpKQorICAod2l0aC1oYXNoeC12YWx1ZXMgKGhhc2gtcHJvYyBhc3NvY2lhdG9y
IHJlYWwtdGFibGUpIGh0CisgICAgKGlmIChodC13ZWFrbmVzcyBodCkKKyAgICAgICAgOzsgSi5N
LiBzZXBhcmF0ZSB0aGUgY2FzZSB3aGVyZSBodCBpcyB3ZWFrIC0gZG9uJ3QgdXNlIGhhbmRsZQor
ICAgICAgICAobGV0KiAoKG9sZCAoaGFzaHgtcmVmIGhhc2gtcHJvYyBhc3NvY2lhdG9yIHJlYWwt
dGFibGUga2V5IGRlZmF1bHQpKSkKKyAgICAgICAgICAoaGFzaHgtc2V0ISBoYXNoLXByb2MgYXNz
b2NpYXRvciByZWFsLXRhYmxlIGtleSAobW9kaWZpZXIgb2xkKSkpCisgICAgICAgIChsZXQgKCho
YW5kbGUgKGhhc2h4LWNyZWF0ZS1oYW5kbGUhIGhhc2gtcHJvYyBhc3NvY2lhdG9yIHJlYWwtdGFi
bGUga2V5CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGh0LXVu
c3BlY2lmaWVkKSkpCisgICAgICAgICAgKGlmIChlcT8gaHQtdW5zcGVjaWZpZWQgKGNkciBoYW5k
bGUpKQorICAgICAgICAgICAgICAoYmVnaW4gKGh0LXNpemUhIGh0ICgxKyAoaHQtc2l6ZSBodCkp
KQorICAgICAgICAgICAgICAgICAgICAgKHNldC1jZHIhIGhhbmRsZSAobW9kaWZpZXIgZGVmYXVs
dCkpKQorICAgICAgICAgICAgICAoc2V0LWNkciEgaGFuZGxlIChtb2RpZmllciAoY2RyIGhhbmRs
ZSkpKSkpKSkpCiAMCiA7Ozs7IEFjY2Vzc2luZyB3aG9sZSB0YWJsZXMKIApAQCAtMjg3LDcgKzMy
Nyw5IEBAIGRvZXNuJ3QgaGF2ZSBvbmUsIHRvIE1PRElGSUVSLCBhbmQgc2V0dGluZyBpdCB0byB0
aGUgcmVzdWx0IHRoZXJlb2YuIgogICAiUmV0dXJuIHRoZSBudW1iZXIgb2YgYXNzb2NpYXRpb25z
IGluIEhULiAgVGhpcyBpcyBndWFyYW50ZWVkIE8oMSkKIGZvciB0YWJsZXMgd2hlcmUgIzp3ZWFr
IHdhcyAjZiBvciBub3Qgc3BlY2lmaWVkIGF0IGNyZWF0aW9uIHRpbWUuIgogICAoaWYgKGh0LXdl
YWtuZXNzIGh0KQotICAgICAgKGhhc2gtdGFibGUtZm9sZCBodCAobGFtYmRhIChrIHYgYW5zKSAo
MSsgYW5zKSkgMCkKKyAgICAgIChsZXQgKChzaXplIChoYXNoLXRhYmxlLWZvbGQgaHQgKGxhbWJk
YSAoayB2IGFucykgKDErIGFucykpIDApKSkKKyAgICAgICAgKGh0LXNpemUhIGh0IHNpemUpCisg
ICAgICAgIHNpemUpCiAgICAgICAoaHQtc2l6ZSBodCkpKQogCiAoZGVmaW5lIChoYXNoLXRhYmxl
LWtleXMgaHQpCkBAIC0zMDAsMTAgKzM0Miw3IEBAIGZvciB0YWJsZXMgd2hlcmUgIzp3ZWFrIHdh
cyAjZiBvciBub3Qgc3BlY2lmaWVkIGF0IGNyZWF0aW9uIHRpbWUuIgogCiAoZGVmaW5lIChoYXNo
LXRhYmxlLXdhbGsgaHQgcHJvYykKICAgIkNhbGwgUFJPQyB3aXRoIGVhY2gga2V5IGFuZCB2YWx1
ZSBhcyB0d28gYXJndW1lbnRzLiIKLSAgKGhhc2gtdGFibGUtZm9sZCBodCAobGFtYmRhIChrIHYg
dW5zcGVjKQotICAgICAgICAgICAgICAgICAgICAgICAgKGNhbGwtd2l0aC12YWx1ZXMgKGxhbWJk
YSAoKSAocHJvYyBrIHYpKQotICAgICAgICAgICAgICAgICAgICAgICAgICAobGFtYmRhIHZhbHMg
dW5zcGVjKSkpCi0JCSAgICp1bnNwZWNpZmllZCopKQorICAoaGFzaC1mb3ItZWFjaCBwcm9jICho
dC1yZWFsLXRhYmxlIGh0KSkpCiAKIChkZWZpbmUgKGhhc2gtdGFibGUtZm9sZCBodCBmIGtuaWwp
CiAgICJJbnZva2UgKEYgS0VZIFZBTCBQUkVWKSBmb3IgZWFjaCBLRVkgYW5kIFZBTCBpbiBIVCwg
d2hlcmUgUFJFViBpcwpAQCAtMzEzLDE1ICszNTIsMTUgQEAgQW5zd2VyIHRoZSBmaW5hbCBGIHJl
c3VsdC4iCiAKIChkZWZpbmUgKGhhc2gtdGFibGUtPmFsaXN0IGh0KQogICAiUmV0dXJuIGFuIGFs
aXN0IGZvciBIVC4iCi0gIChoYXNoLXRhYmxlLWZvbGQgaHQgYWxpc3QtY29ucyAnKCkpKQorICAo
aGFzaC1tYXAtPmxpc3QgY29ucyAoaHQtcmVhbC10YWJsZSBodCkpKQogCiAoZGVmaW5lIChoYXNo
LXRhYmxlLWNvcHkgaHQpCiAgICJBbnN3ZXIgYSBjb3B5IG9mIEhULiIKICAgKHdpdGgtaGFzaHgt
dmFsdWVzIChoIGEgcmVhbC1odCkgaHQKICAgICAobGV0KiAoKHNpemUgKGhhc2gtdGFibGUtc2l6
ZSBodCkpICh3ZWFrIChodC13ZWFrbmVzcyBodCkpCiAJICAgKG5ldy1yZWFsLWh0ICgoZ3VpbGUt
aHQtY3RvciB3ZWFrKSBzaXplKSkpCi0gICAgICAoaGFzaC1mb2xkIChsYW1iZGEgKGsgdiBpZ24p
IChoYXNoeC1zZXQhIGggYSBuZXctcmVhbC1odCBrIHYpKQotCQkgI2YgcmVhbC1odCkKKyAgICAg
IChoYXNoLWZvci1lYWNoIChsYW1iZGEgKGsgdikgKGhhc2h4LXNldCEgaCBhIG5ldy1yZWFsLWh0
IGsgdikpCisgICAgICAgICAgICAgICAgICAgICByZWFsLWh0KQogICAgICAgKG1ha2Utc3JmaS02
OS1oYXNoLXRhYmxlCQk7cmVhbCxhc3NvYyxzaXplLHdlYWssZXF1aXYsaAogICAgICAgIG5ldy1y
ZWFsLWh0IGEgc2l6ZSB3ZWFrCiAgICAgICAgKGhhc2gtdGFibGUtZXF1aXZhbGVuY2UtZnVuY3Rp
b24gaHQpIGgpKSkpCkBAIC0zMjksOCArMzY4LDggQEAgQW5zd2VyIHRoZSBmaW5hbCBGIHJlc3Vs
dC4iCiAoZGVmaW5lIChoYXNoLXRhYmxlLW1lcmdlISBodCBvdGhlci1odCkKICAgIkFkZCBhbGwg
a2V5L3ZhbHVlIHBhaXJzIGZyb20gT1RIRVItSFQgdG8gSFQsIG92ZXJyaWRpbmcgSFQncwogbWFw
cGluZ3Mgd2hlcmUgcHJlc2VudC4gIFJldHVybiBIVC4iCi0gIChoYXNoLXRhYmxlLWZvbGQKLSAg
IGh0IChsYW1iZGEgKGsgdiBpZ24pIChoYXNoLXRhYmxlLXNldCEgaHQgayB2KSkgI2YpCisgICho
YXNoLWZvci1lYWNoIChsYW1iZGEgKGsgdikgKGhhc2gtdGFibGUtc2V0ISBodCBrIHYpKQorICAg
ICAgICAgICAgICAgICAoaHQtcmVhbC10YWJsZSBvdGhlci1odCkpCiAgIGh0KQogCiA7Ozsgc3Jm
aS02OS5zY20gZW5kcyBoZXJlCmRpZmYgLS1naXQgYS90ZXN0LXN1aXRlL3Rlc3RzL3NyZmktNjku
dGVzdCBiL3Rlc3Qtc3VpdGUvdGVzdHMvc3JmaS02OS50ZXN0CmluZGV4IGU5OWI3NmM2ZC4uMTA1
YWUzNzU5IDEwMDY0NAotLS0gYS90ZXN0LXN1aXRlL3Rlc3RzL3NyZmktNjkudGVzdAorKysgYi90
ZXN0LXN1aXRlL3Rlc3RzL3NyZmktNjkudGVzdApAQCAtMjgsODAgKzI4LDEyMyBAQCBjYXNlLWlu
c2Vuc2l0aXZlIHN0cmluZ3MgdG8gYGVxdWFsPyctdGVzdGVkIHZhbHVlcy4iCiAgIChhbmQgKHN0
cmluZy1jaT0/IChjYXIgbGVmdCkgKGNhciByaWdodCkpCiAgICAgICAgKGVxdWFsPyAoY2RyIGxl
ZnQpIChjZHIgcmlnaHQpKSkpCiAKKyhkZWZpbmUtc3ludGF4IHdpdGgtd2Vha25lc3MtbGlzdAor
ICAoc3ludGF4LXJ1bGVzICgpCisgICAgKCh3aXRoLXdlYWtuZXNzLWxpc3Qgd2Vha25lc3Mgd2Vh
a25lc3MtbGlzdCBleHByIC4uLikKKyAgICAgKGxldCBsb29wICgod2Vha25lc3MtbGlzdCogd2Vh
a25lc3MtbGlzdCkpCisgICAgICAgKG9yIChudWxsPyB3ZWFrbmVzcy1saXN0KikKKyAgICAgICAg
ICAgKGFuZCAobGV0ICgod2Vha25lc3MgKGNhciB3ZWFrbmVzcy1saXN0KikpKQorICAgICAgICAg
ICAgICAgICAgZXhwciAuLi4pCisgICAgICAgICAgICAgICAgKGxvb3AgKGNkciB3ZWFrbmVzcy1s
aXN0KikpKSkpKSkpCisKKyhkZWZpbmUgKHRlc3Qtc3RyLXdlYWtuZXNzIHN0ciB3ZWFrbmVzcykK
KyAgKGlmIChub3Qgd2Vha25lc3MpIHN0ciAoZm9ybWF0ICNmICJ+YSAod2VhazogfmEpIiBzdHIg
d2Vha25lc3MpKSkKKwogKHdpdGgtdGVzdC1wcmVmaXggIlNSRkktNjkiCiAKLSAgKHBhc3MtaWYg
InNtYWxsIGFsaXN0PC0+aGFzaCB0YWJsZXMgcm91bmQtdHJpcCIKLSAgICAobGV0KiAoKHN0YXJ0
LWFsaXN0ICcoKGEgLiAxKSAoYiAuIDIpIChjIC4gMykgKGEgLiA0MikpKQotCSAgIChodCAoYWxp
c3QtPmhhc2gtdGFibGUgc3RhcnQtYWxpc3QgZXE/KSkKLQkgICAoZW5kLWFsaXN0IChoYXNoLXRh
YmxlLT5hbGlzdCBodCkpKQotICAgICAgKGFuZCAoPSAzIChoYXNoLXRhYmxlLXNpemUgaHQpKQot
CSAgIChsc2V0PSBlcXVhbD8gZW5kLWFsaXN0ICh0YWtlIHN0YXJ0LWFsaXN0IDMpKQotCSAgICg9
IDEgKGhhc2gtdGFibGUtcmVmIGh0ICdhKSkKLQkgICAoPSAyIChoYXNoLXRhYmxlLXJlZiBodCAn
YikpCi0JICAgKD0gMyAoaGFzaC10YWJsZS1yZWYgaHQgJ2MpKSkpKQotCi0gIChwYXNzLWlmICJz
dHJpbmctY2k9PyB0YWJsZXMgd29yayBieSBkZWZhdWx0IgotICAgIChsZXQgKChodCAoYWxpc3Qt
Pmhhc2gtdGFibGUgJygoInhZIiAuIDIpICgiYWJjIiAuIDU0KSkgc3RyaW5nLWNpPT8pKSkKLSAg
ICAgIChoYXNoLXRhYmxlLXNldCEgaHQgIlhZIiA0MikKLSAgICAgIChoYXNoLXRhYmxlLXNldCEg
aHQgInFxcSIgMTAwKQotICAgICAgKGFuZCAoPSA1NCAoaGFzaC10YWJsZS1yZWYgaHQgIkFCYyIp
KQotCSAgICg9IDQyIChoYXNoLXRhYmxlLXJlZiBodCAieHkiKSkKLQkgICAoPSAzIChoYXNoLXRh
YmxlLXNpemUgaHQpKQotCSAgIChsc2V0PSBzdHJpbmctY2ktYXNzb2MtZXF1YWw/Ci0JCSAgJygo
Inh5IiAuIDQyKSAoImFiYyIgLiA1NCkgKCJxcXEiIC4gMTAwKSkKLQkJICAoaGFzaC10YWJsZS0+
YWxpc3QgaHQpKSkpKQorICAod2l0aC13ZWFrbmVzcy1saXN0IHdlYWtuZXNzIChsaXN0ICNmICdr
ZXkgJ3ZhbHVlICdrZXktb3ItdmFsdWUpCisgICAgKHBhc3MtaWYgKHRlc3Qtc3RyLXdlYWtuZXNz
ICJzbWFsbCBhbGlzdDwtPmhhc2ggdGFibGVzIHJvdW5kLXRyaXAiIHdlYWtuZXNzKQorICAgICAg
KGxldCogKChzdGFydC1hbGlzdCAnKChhIC4gMSkgKGIgLiAyKSAoYyAuIDMpIChhIC4gNDIpKSkK
KyAgICAgICAgICAgICAoaHQgKGFsaXN0LT5oYXNoLXRhYmxlIHN0YXJ0LWFsaXN0IGVxPykpCisg
ICAgICAgICAgICAgKGVuZC1hbGlzdCAoaGFzaC10YWJsZS0+YWxpc3QgaHQpKSkKKyAgICAgICAg
KGFuZCAoPSAzIChoYXNoLXRhYmxlLXNpemUgaHQpKQorICAgICAgICAgICAgIChsc2V0PSBlcXVh
bD8gZW5kLWFsaXN0ICh0YWtlIHN0YXJ0LWFsaXN0IDMpKQorICAgICAgICAgICAgICg9IDEgKGhh
c2gtdGFibGUtcmVmIGh0ICdhKSkKKyAgICAgICAgICAgICAoPSAyIChoYXNoLXRhYmxlLXJlZiBo
dCAnYikpCisgICAgICAgICAgICAgKD0gMyAoaGFzaC10YWJsZS1yZWYgaHQgJ2MpKSkpKSkKKwor
ICAod2l0aC13ZWFrbmVzcy1saXN0IHdlYWtuZXNzIChsaXN0ICNmICdrZXkgJ3ZhbHVlICdrZXkt
b3ItdmFsdWUpCisgICAgKHBhc3MtaWYgKHRlc3Qtc3RyLXdlYWtuZXNzICJzdHJpbmctY2k9PyB0
YWJsZXMgd29yayBieSBkZWZhdWx0IiB3ZWFrbmVzcykKKyAgICAgIChsZXQgKChodCAoYWxpc3Qt
Pmhhc2gtdGFibGUgJygoInhZIiAuIDIpICgiYWJjIiAuIDU0KSkgc3RyaW5nLWNpPT8KKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIzp3ZWFrIHdlYWtuZXNzKSkpCisgICAgICAg
IChoYXNoLXRhYmxlLXNldCEgaHQgIlhZIiA0MikKKyAgICAgICAgKGhhc2gtdGFibGUtc2V0ISBo
dCAicXFxIiAxMDApCisgICAgICAgIChhbmQgKD0gNTQgKGhhc2gtdGFibGUtcmVmIGh0ICJBQmMi
KSkKKyAgICAgICAgICAgICAoPSA0MiAoaGFzaC10YWJsZS1yZWYgaHQgInh5IikpCisgICAgICAg
ICAgICAgKD0gMyAoaGFzaC10YWJsZS1zaXplIGh0KSkKKyAgICAgICAgICAgICAobHNldD0gc3Ry
aW5nLWNpLWFzc29jLWVxdWFsPworICAgICAgICAgICAgICAgICAgICAnKCgieHkiIC4gNDIpICgi
YWJjIiAuIDU0KSAoInFxcSIgLiAxMDApKQorICAgICAgICAgICAgICAgICAgICAoaGFzaC10YWJs
ZS0+YWxpc3QgaHQpKSkpKSkKIAogICAocGFzcy1pZi1leGNlcHRpb24gIkJhZCB3ZWFrbmVzcyBh
cmcgdG8gbWh0IHNpZ25hbHMgYW4gZXJyb3IiCi0JCSAgICAgJyhtaXNjLWVycm9yIC4gIl5JbnZh
bGlkIHdlYWsgaGFzaCB0YWJsZSB0eXBlIikKKyAgICAgICAgICAgICAgICAgICAgICcobWlzYy1l
cnJvciAuICJeSW52YWxpZCB3ZWFrIGhhc2ggdGFibGUgdHlwZSIpCiAgICAgKG1ha2UtaGFzaC10
YWJsZSBlcXVhbD8gaGFzaCAjOndlYWsgJ2tleS1hbmQtdmFsdWUpKQogCi0gIChwYXNzLWlmICJl
bXB0eSBoYXNoIHRhYmxlcyBhcmUgZW1wdHkiCi0gICAgKG51bGw/IChoYXNoLXRhYmxlLT5hbGlz
dCAobWFrZS1oYXNoLXRhYmxlIGVxPykpKSkKLQotICAocGFzcy1pZiAiaGFzaC10YWJsZS1yZWYg
dXNlcyBkZWZhdWx0IgotICAgIChlcXVhbD8gJyg0KQotCSAgICAoaGFzaC10YWJsZS1yZWYgKGFs
aXN0LT5oYXNoLXRhYmxlICcoKGEgLiAxKSkgZXE/KQotCQkJICAgICdiIChjdXQgbGlzdCAoKyAy
IDIpKSkpKQotCi0gIChwYXNzLWlmICJoYXNoLXRhYmxlLWRlbGV0ZSEgZGVsZXRlcyBwcmVzZW50
IGFzc29jcywgaWdub3JlcyBvdGhlcnMiCi0gICAgKGxldCAoKGh0IChhbGlzdC0+aGFzaC10YWJs
ZSAnKChhIC4gMSkgKGIgLiAyKSkgZXE/KSkpCi0gICAgICAoaGFzaC10YWJsZS1kZWxldGUhIGh0
ICdjKQotICAgICAgKGFuZCAoPSAyIChoYXNoLXRhYmxlLXNpemUgaHQpKQotCSAgIChiZWdpbgot
CSAgICAgKGhhc2gtdGFibGUtZGVsZXRlISBodCAnYSkKLQkgICAgICg9IDEgKGhhc2gtdGFibGUt
c2l6ZSBodCkpKQotCSAgIChsc2V0PSBlcXVhbD8gJygoYiAuIDIpKSAoaGFzaC10YWJsZS0+YWxp
c3QgaHQpKSkpKQotCi0gIChwYXNzLWlmICJhbGlzdC0+aGFzaC10YWJsZSBkb2VzIG5vdCByZXF1
aXJlIGxpbmVhciBzdGFjayBzcGFjZSIKLSAgICAoZXF2PyA5OTk5OQotCSAgKGhhc2gtdGFibGUt
cmVmIChhbGlzdC0+aGFzaC10YWJsZQotCQkJICAgKHVuZm9sZC1yaWdodCAoY3V0ID49IDw+IDEw
MDAwMCkKLQkJCQkJIChsYW1iZGEgKHMpIGAoeCAuICxzKSkgMSsgMCkKLQkJCSAgIGVxPykKLQkJ
CSAgJ3gpKSkKLQotICAocGFzcy1pZiAiaGFzaC10YWJsZS13YWxrIGlnbm9yZXMgcmV0dXJuIHZh
bHVlcyIKLSAgICAobGV0ICgoaHQgKGFsaXN0LT5oYXNoLXRhYmxlICcoKGEgLiAxKSAoYiAuIDIp
IChjIC4gMykpIGVxPykpKQotICAgICAgKGZvci1lYWNoIChjdXQgaGFzaC10YWJsZS13YWxrIGh0
IDw+KQotCQkobGlzdCAobGFtYmRhIChrIHYpICh2YWx1ZXMpKQotCQkgICAgICAobGFtYmRhIChr
IHYpICh2YWx1ZXMgMSAyIDMpKSkpCi0gICAgICAjdCkpCi0KLSAgKHBhc3MtaWYgImhhc2gtdGFi
bGUtdXBkYXRlISBtb2RpZmllcyBleGlzdGluZyBiaW5kaW5nIgotICAgIChsZXQgKChodCAoYWxp
c3QtPmhhc2gtdGFibGUgJygoYSAuIDEpKSBlcT8pKSkKLSAgICAgIChoYXNoLXRhYmxlLXVwZGF0
ZSEgaHQgJ2EgMSspCi0gICAgICAoaGFzaC10YWJsZS11cGRhdGUhIGh0ICdhIChjdXQgKyA0IDw+
KSAobGFtYmRhICgpIDQyKSkKLSAgICAgIChhbmQgKD0gMSAoaGFzaC10YWJsZS1zaXplIGh0KSkK
LQkgICAobHNldD0gZXF1YWw/ICcoKGEgLiA2KSkgKGhhc2gtdGFibGUtPmFsaXN0IGh0KSkpKSkK
LQotICAocGFzcy1pZiAiaGFzaC10YWJsZS11cGRhdGUhIGNyZWF0ZXMgbmV3IGJpbmRpbmcgd2hl
biBhcHByb3ByaWF0ZSIKLSAgICAobGV0ICgoaHQgKG1ha2UtaGFzaC10YWJsZSBlcT8pKSkKLSAg
ICAgIChoYXNoLXRhYmxlLXVwZGF0ZSEgaHQgJ2IgMSsgKGxhbWJkYSAoKSA0MikpCi0gICAgICAo
aGFzaC10YWJsZS11cGRhdGUhIGh0ICdiIChjdXQgKyAxMCA8PikpCi0gICAgICAoYW5kICg9IDEg
KGhhc2gtdGFibGUtc2l6ZSBodCkpCi0JICAgKGxzZXQ9IGVxdWFsPyAnKChiIC4gNTMpKSAoaGFz
aC10YWJsZS0+YWxpc3QgaHQpKSkpKQorICAod2l0aC13ZWFrbmVzcy1saXN0IHdlYWtuZXNzIChs
aXN0ICNmICdrZXkgJ3ZhbHVlICdrZXktb3ItdmFsdWUpCisgICAgKHBhc3MtaWYgKHRlc3Qtc3Ry
LXdlYWtuZXNzICJlbXB0eSBoYXNoIHRhYmxlcyBhcmUgZW1wdHkiIHdlYWtuZXNzKQorICAgICAg
KGxldCBsb29wICgod2Vha25lc3MtbGlzdCAobGlzdCAjZiAna2V5ICd2YWx1ZSAna2V5LW9yLXZh
bHVlKSkpCisgICAgICAgIChvciAobnVsbD8gd2Vha25lc3MtbGlzdCkKKyAgICAgICAgICAgIChs
ZXQgKCh3ZWFrbmVzcyAoY2FyIHdlYWtuZXNzLWxpc3QpKSkKKyAgICAgICAgICAgICAgKGFuZCAo
bnVsbD8gKGhhc2gtdGFibGUtPmFsaXN0IChtYWtlLWhhc2gtdGFibGUgZXE/ICM6d2VhayB3ZWFr
bmVzcykpKQorICAgICAgICAgICAgICAgICAgIChsb29wIChjZHIgd2Vha25lc3MtbGlzdCkpKSkp
KSkpCisKKyAgKHdpdGgtd2Vha25lc3MtbGlzdCB3ZWFrbmVzcyAobGlzdCAjZiAna2V5ICd2YWx1
ZSAna2V5LW9yLXZhbHVlKQorICAgIChwYXNzLWlmICh0ZXN0LXN0ci13ZWFrbmVzcyAiaGFzaC10
YWJsZS1yZWYgdXNlcyBkZWZhdWx0IiB3ZWFrbmVzcykKKyAgICAgIChlcXVhbD8gJyg0KQorICAg
ICAgICAgICAgICAoaGFzaC10YWJsZS1yZWYgKGFsaXN0LT5oYXNoLXRhYmxlICcoKGEgLiAxKSkg
ZXE/ICM6d2VhayB3ZWFrbmVzcykKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdiIChj
dXQgbGlzdCAoKyAyIDIpKSkpKSkKKworICAod2l0aC13ZWFrbmVzcy1saXN0IHdlYWtuZXNzIChs
aXN0ICNmICdrZXkgJ3ZhbHVlICdrZXktb3ItdmFsdWUpCisgICAgKHBhc3MtaWYgKHRlc3Qtc3Ry
LXdlYWtuZXNzICJoYXNoLXRhYmxlLWRlbGV0ZSEgZGVsZXRlcyBwcmVzZW50IGFzc29jcywgaWdu
b3JlcyBvdGhlcnMiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdlYWtuZXNzKQor
ICAgICAgKGxldCAoKGh0IChhbGlzdC0+aGFzaC10YWJsZSAnKChhIC4gMSkgKGIgLiAyKSkgZXE/
ICM6d2VhayB3ZWFrbmVzcykpKQorICAgICAgICAoaGFzaC10YWJsZS1kZWxldGUhIGh0ICdjKQor
ICAgICAgICAoYW5kICg9IDIgKGhhc2gtdGFibGUtc2l6ZSBodCkpCisgICAgICAgICAgICAgKGJl
Z2luCisgICAgICAgICAgICAgICAoaGFzaC10YWJsZS1kZWxldGUhIGh0ICdhKQorICAgICAgICAg
ICAgICAgKD0gMSAoaGFzaC10YWJsZS1zaXplIGh0KSkpCisgICAgICAgICAgICAgKGxzZXQ9IGVx
dWFsPyAnKChiIC4gMikpIChoYXNoLXRhYmxlLT5hbGlzdCBodCkpKSkpKQorCisgICh3aXRoLXdl
YWtuZXNzLWxpc3Qgd2Vha25lc3MgKGxpc3QgI2YgJ2tleSAndmFsdWUgJ2tleS1vci12YWx1ZSkK
KyAgICAocGFzcy1pZiAodGVzdC1zdHItd2Vha25lc3MgImFsaXN0LT5oYXNoLXRhYmxlIGRvZXMg
bm90IHJlcXVpcmUgbGluZWFyIHN0YWNrIHNwYWNlIgorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICB3ZWFrbmVzcykKKyAgICAgIChlcXY/IDk5OTk5CisgICAgICAgICAgICAoaGFzaC10
YWJsZS1yZWYgKGFsaXN0LT5oYXNoLXRhYmxlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICh1bmZvbGQtcmlnaHQgKGN1dCA+PSA8PiAxMDAwMDApCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgKGxhbWJkYSAocykgYCh4IC4gLHMpKSAxKyAwKQorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBlcT8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
Izp3ZWFrIHdlYWtuZXNzKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICd4KSkpKQorCisg
ICh3aXRoLXdlYWtuZXNzLWxpc3Qgd2Vha25lc3MgKGxpc3QgI2YgJ2tleSAndmFsdWUgJ2tleS1v
ci12YWx1ZSkKKyAgICAocGFzcy1pZiAodGVzdC1zdHItd2Vha25lc3MgImhhc2gtdGFibGUtd2Fs
ayBpZ25vcmVzIHJldHVybiB2YWx1ZXMiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHdlYWtuZXNzKQorICAgICAgKGxldCAoKGh0IChhbGlzdC0+aGFzaC10YWJsZSAnKChhIC4gMSkg
KGIgLiAyKSAoYyAuIDMpKSBlcT8pKSkKKyAgICAgICAgKGZvci1lYWNoIChjdXQgaGFzaC10YWJs
ZS13YWxrIGh0IDw+KQorICAgICAgICAgICAgICAgICAgKGxpc3QgKGxhbWJkYSAoayB2KSAodmFs
dWVzKSkKKyAgICAgICAgICAgICAgICAgICAgICAgIChsYW1iZGEgKGsgdikgKHZhbHVlcyAxIDIg
MykpKSkKKyAgICAgICAgI3QpKSkKKworICAod2l0aC13ZWFrbmVzcy1saXN0IHdlYWtuZXNzIChs
aXN0ICNmICdrZXkgJ3ZhbHVlICdrZXktb3ItdmFsdWUpCisgICAgKHBhc3MtaWYgKHRlc3Qtc3Ry
LXdlYWtuZXNzICJoYXNoLXRhYmxlLXVwZGF0ZSEgbW9kaWZpZXMgZXhpc3RpbmcgYmluZGluZyIK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2Vha25lc3MpCisgICAgICAobGV0ICgo
aHQgKGFsaXN0LT5oYXNoLXRhYmxlICcoKGEgLiAxKSkgZXE/ICM6d2VhayB3ZWFrbmVzcykpKQor
ICAgICAgICAoaGFzaC10YWJsZS11cGRhdGUhIGh0ICdhIDErKQorICAgICAgICAoaGFzaC10YWJs
ZS11cGRhdGUhIGh0ICdhIChjdXQgKyA0IDw+KSAobGFtYmRhICgpIDQyKSkKKyAgICAgICAgKGFu
ZCAoPSAxIChoYXNoLXRhYmxlLXNpemUgaHQpKQorICAgICAgICAgICAgIChsc2V0PSBlcXVhbD8g
JygoYSAuIDYpKSAoaGFzaC10YWJsZS0+YWxpc3QgaHQpKSkpKSkKKworICAod2l0aC13ZWFrbmVz
cy1saXN0IHdlYWtuZXNzIChsaXN0ICNmICdrZXkgJ3ZhbHVlICdrZXktb3ItdmFsdWUpCisgICAg
KHBhc3MtaWYgKHRlc3Qtc3RyLXdlYWtuZXNzICJoYXNoLXRhYmxlLXVwZGF0ZSEgY3JlYXRlcyBu
ZXcgYmluZGluZyB3aGVuIGFwcHJvcHJpYXRlIgorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICB3ZWFrbmVzcykKKyAgICAgIChsZXQgKChodCAobWFrZS1oYXNoLXRhYmxlIGVxPyAjOndl
YWsgd2Vha25lc3MpKSkKKyAgICAgICAgKGhhc2gtdGFibGUtdXBkYXRlISBodCAnYiAxKyAobGFt
YmRhICgpIDQyKSkKKyAgICAgICAgKGhhc2gtdGFibGUtdXBkYXRlISBodCAnYiAoY3V0ICsgMTAg
PD4pKQorICAgICAgICAoYW5kICg9IDEgKGhhc2gtdGFibGUtc2l6ZSBodCkpCisgICAgICAgICAg
ICAgKGxzZXQ9IGVxdWFsPyAnKChiIC4gNTMpKSAoaGFzaC10YWJsZS0+YWxpc3QgaHQpKSkpKSkK
KworICAod2l0aC13ZWFrbmVzcy1saXN0IHdlYWtuZXNzIChsaXN0ICNmICdrZXkgJ3ZhbHVlICdr
ZXktb3ItdmFsdWUpCisgICAgKHBhc3MtaWYgKHRlc3Qtc3RyLXdlYWtuZXNzICJoYXNoLXRhYmxl
LW1lcmdlISBmdW5jdGlvbnMgcHJvcGVybHkiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHdlYWtuZXNzKQorICAgICAgKGxldCogKChodDEgKGFsaXN0LT5oYXNoLXRhYmxlICcoKGEg
LiAxKSAoYiAuIDIpKSBlcT8gIzp3ZWFrIHdlYWtuZXNzKSkKKyAgICAgICAgICAgICAoaHQyIChh
bGlzdC0+aGFzaC10YWJsZSAnKChiIC4gMykgKGMgLiA0KSkgZXE/ICM6d2VhayB3ZWFrbmVzcykp
KQorICAgICAgICAoc2V0ISBodDEgKGhhc2gtdGFibGUtbWVyZ2UhIGh0MSBodDIpKQorICAgICAg
ICAoYW5kICg9IDMgKGhhc2gtdGFibGUtc2l6ZSBodDEpKQorICAgICAgICAgICAgICg9IDIgKGhh
c2gtdGFibGUtc2l6ZSBodDIpKQorICAgICAgICAgICAgIChsc2V0PSBlcXVhbD8gJygoYSAuIDEp
IChiIC4gMykgKGMgLiA0KSkgKGhhc2gtdGFibGUtPmFsaXN0IGh0MSkpCisgICAgICAgICAgICAg
KGxzZXQ9IGVxdWFsPyAnKChiIC4gMykgKGMgLiA0KSkgKGhhc2gtdGFibGUtPmFsaXN0IGh0Mikp
KSkpKQogCiAgIChwYXNzLWlmICJjYW4gdXNlIGFsbCBhcmd1bWVudHMsIGluY2x1ZGluZyBzaXpl
IgogICAgIChoYXNoLXRhYmxlPyAobWFrZS1oYXNoLXRhYmxlIGVxdWFsPyBoYXNoICM6d2VhayAn
a2V5IDMxKSkpCiAKLSkKKyAgKQotLSAKMi4xOS4xCgo=
--0000000000004d8042057db38bed--




Information forwarded to bug-guile@HIDDEN:
bug#33827; Package guile. Full text available.

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


Received: (at 33827) by debbugs.gnu.org; 22 Dec 2018 17:45:04 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Sat Dec 22 12:45:04 2018
Received: from localhost ([127.0.0.1]:60201 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1galKh-0005LO-Nq
	for submit <at> debbugs.gnu.org; Sat, 22 Dec 2018 12:45:03 -0500
Received: from mail-io1-f51.google.com ([209.85.166.51]:46874)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <jessymilare@HIDDEN>) id 1galKf-0005Kc-PL
 for 33827 <at> debbugs.gnu.org; Sat, 22 Dec 2018 12:45:02 -0500
Received: by mail-io1-f51.google.com with SMTP id v10so6216110ios.13
 for <33827 <at> debbugs.gnu.org>; Sat, 22 Dec 2018 09:45:01 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025;
 h=mime-version:from:date:message-id:subject:to;
 bh=HoyMrOlzoXi0NvLyzRanSvWmKeA2kYKGV6cb+7sYV2Y=;
 b=MYPlJOHd0BgOEVu4uJ9OJDXzE2Xz0cPnR9v0zumEJI8d6hqK519PPsBu1/dw/3WHEf
 8YKpEiayCGqqwIuxonZYg5gtYil2lhqFPZIq/MNa0i5A73SQwfa5PxcpKVu5PmkNh2AS
 nRR/0AQ6HXg7uObetMvWwPpxv3Dp3A63YVSXdS8A3FNN9PdQ5AbXCvwfBjp1x4wejkB0
 u1iBNy7j9LjeqYtgRBdvBTF2JfhELi/MFWDj+Q4H1M5o8ymaMmXe+pZLZG8gxoWDBXUx
 8BQyOhAjOn69+kMGCIVSgigFZBoJjdxbTSTvSChQMAkYT9pmjbgfmWXhnxWnWMudUcfv
 QiiQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20161025;
 h=x-gm-message-state:mime-version:from:date:message-id:subject:to;
 bh=HoyMrOlzoXi0NvLyzRanSvWmKeA2kYKGV6cb+7sYV2Y=;
 b=Ja/vZG8dHpF1nLuuYUVHMp2iKU0lGha/nTR3C3y/v/GrtZPQJ9HWTmIc4PGwBMayaR
 yaXs5oLXHLzjWQW52M6s0WQq9hmzVVY6pXuLePEdgLkKUzI6RQLG1NBEqe1zIfiGcSpn
 GTDZF6b+UtsMmrCl2DcQh5UiVttMUYHpKUl661TCgy58AF/YM5CE10WGGBhqzgp3l4Gv
 T8bVfZ6Lwq4kqQbN5Kqcb1uZ84yP4oRGkoI7GYoo/sChrNujbt613YIbcsIsRStSyxYq
 X2NIknW8jLBI5ztLqJijihw1qV2cJCrRqp1yK9Cfv8ybElMFq6y3lsmIUWvJPAUERDKU
 4CGA==
X-Gm-Message-State: AJcUukfi7o4c6mxny+/uXwq+SMYrsL/71SoaxgwGhXKCLKxdFyQYlQqo
 w2k1N3Y/BF/zjkRPG982FGvwWWoUc6PU4zR5LjxN4Q==
X-Google-Smtp-Source: ALg8bN5a2KJ+XJsvyMBt2vIGwUOKcYw+HtGeobbYqQR8fHTJIHAwgE4xzNUPOUkg1zOFeR2wzCiEkSdLA8VhaIVdX94=
X-Received: by 2002:a6b:156:: with SMTP id 83mr4743257iob.63.1545500695595;
 Sat, 22 Dec 2018 09:44:55 -0800 (PST)
MIME-Version: 1.0
From: =?UTF-8?B?SsOpc3NpY2EgTWlsYXLDqQ==?= <jessymilare@HIDDEN>
Date: Sat, 22 Dec 2018 15:44:44 -0200
Message-ID: <CAGBcF1YqKUqkNzSW_=hNVVE86WU2Hdh6RGBW3KD7AU7dj_iQRA@HIDDEN>
Subject: Attempt to fix
To: 33827 <at> debbugs.gnu.org
Content-Type: multipart/alternative; boundary="000000000000f60eab057d9febc3"
X-Spam-Score: 0.1 (/)
X-Debbugs-Envelope-To: 33827
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.9 (/)

--000000000000f60eab057d9febc3
Content-Type: text/plain; charset="UTF-8"

I'll try to fix this bug and create some tests, then I send a format-patch
here. I'll need to do that anyway.

--000000000000f60eab057d9febc3
Content-Type: text/html; charset="UTF-8"

<div dir="ltr">I&#39;ll try to fix this bug and create some tests, then I send a format-patch here. I&#39;ll need to do that anyway.</div>

--000000000000f60eab057d9febc3--




Information forwarded to bug-guile@HIDDEN:
bug#33827; Package guile. Full text available.

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


Received: (at submit) by debbugs.gnu.org; 21 Dec 2018 16:22:11 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Fri Dec 21 11:22:10 2018
Received: from localhost ([127.0.0.1]:58702 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1gaNYw-00085J-Mw
	for submit <at> debbugs.gnu.org; Fri, 21 Dec 2018 11:22:10 -0500
Received: from eggs.gnu.org ([208.118.235.92]:38466)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <jessymilare@HIDDEN>) id 1gaIl3-0004l1-FX
 for submit <at> debbugs.gnu.org; Fri, 21 Dec 2018 06:14:21 -0500
Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71)
 (envelope-from <jessymilare@HIDDEN>) id 1gaIkw-0002XP-2b
 for submit <at> debbugs.gnu.org; Fri, 21 Dec 2018 06:14:15 -0500
X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org
X-Spam-Level: 
X-Spam-Status: No, score=1.0 required=5.0 tests=BAYES_40,FREEMAIL_FROM,
 FROM_EXCESS_BASE64,HTML_MESSAGE autolearn=disabled version=3.3.2
Received: from lists.gnu.org ([2001:4830:134:3::11]:47113)
 by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
 (Exim 4.71) (envelope-from <jessymilare@HIDDEN>)
 id 1gaIks-0002VH-Vj
 for submit <at> debbugs.gnu.org; Fri, 21 Dec 2018 06:14:12 -0500
Received: from eggs.gnu.org ([2001:4830:134:3::10]:48052)
 by lists.gnu.org with esmtp (Exim 4.71)
 (envelope-from <jessymilare@HIDDEN>) id 1gaIks-0000H5-6C
 for bug-guile@HIDDEN; Fri, 21 Dec 2018 06:14:10 -0500
Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71)
 (envelope-from <jessymilare@HIDDEN>) id 1gaIkq-0002TZ-7l
 for bug-guile@HIDDEN; Fri, 21 Dec 2018 06:14:10 -0500
Received: from mail-it1-x132.google.com ([2607:f8b0:4864:20::132]:50343)
 by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16)
 (Exim 4.71) (envelope-from <jessymilare@HIDDEN>)
 id 1gaIko-0002O5-4I
 for bug-guile@HIDDEN; Fri, 21 Dec 2018 06:14:08 -0500
Received: by mail-it1-x132.google.com with SMTP id z7so6299507iti.0
 for <bug-guile@HIDDEN>; Fri, 21 Dec 2018 03:14:02 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025;
 h=mime-version:from:date:message-id:subject:to;
 bh=tQuJtSolxmnboASWju1QdWd1dlujOQQsBsIbcgLjK3E=;
 b=IJ0Rh4Bmd2+63UsLz8WcNjzV2udlMK1UvNmEe2Ufgy3R/ds0mas8G9PrgzqbYL44QW
 6geH1Jy7a9ZKz1UnZpmsIyieLlJtXy3ZFgELV5S5h+38cFy8CGus/G4KcZZEi9W7RNTf
 ID+GW/u7Q/3rQntS2xVAxK0ZC4vfXlRQiKXHmp+og6shl1Z++gQ2PUr3gCq2eQpXPIUK
 D/3+mj6SRswGTVbq94J/rnBVTX37dP0wdy4dS+18BTnAfofq1DxhWk+sQ5ugJWYrntkE
 PpbYcV7pCl8nqGHGbvu4UeOWV3FAMJjVL3B/4C9NZnu+GOpGkk0D6BDKogSay8kK0Ksv
 QAeg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20161025;
 h=x-gm-message-state:mime-version:from:date:message-id:subject:to;
 bh=tQuJtSolxmnboASWju1QdWd1dlujOQQsBsIbcgLjK3E=;
 b=aTLw4ayikTBGQqq5s6lh4LRHa4kms4aTbR92Tc37KsFwiVSwrydhU4C/0iBiaal2M4
 Q/jF3l+53Rg5CDBsNXrwkYt7evU+WtLXMIrjrn2uqi9bDcs8f8N8JlJkq3P/HGlIAvTB
 J6ExWNGJsOa6zzDlEwqq/Xmgy3vSF5fDW1YPkPGWc71wUMyvXQFr27jH2iZITN4huhaK
 qXnwOSb1bk8F1MclJQXWobEobCtXUSCx9/O3Tx45GODZ7XqktKabBBJKx3cqzWwsVdMg
 djDf25r2wIpWdK9ygnfz5PtKsmkfMsRHvm2g5ml0k5KPc+sbTrMmN4ggq9M+Kjpe58jK
 nEow==
X-Gm-Message-State: AA+aEWY6b2GbAnGFd9kLBHA7zshFhx5tI4gCRDRssHMUgyo1F8NfasAF
 LksYZywGFHVje1RQ2y9fQ0RdMyXQil/OsTya13UussCI
X-Google-Smtp-Source: AFSGD/U5zkF7HlRvCRPqgsS4pyUGY9biT/Nn9KOO+Sh7IqoIyKVT9VBLyHrnO26oYWb5C3h/DBuKNaMDiADpU9GR8sg=
X-Received: by 2002:a24:6c12:: with SMTP id w18mr1822384itb.14.1545390841804; 
 Fri, 21 Dec 2018 03:14:01 -0800 (PST)
MIME-Version: 1.0
From: =?UTF-8?B?SsOpc3NpY2EgTWlsYXLDqQ==?= <jessymilare@HIDDEN>
Date: Fri, 21 Dec 2018 09:13:50 -0200
Message-ID: <CAGBcF1bqdT0nDnQZvc_tUJjhcu-RHAPsWNGUPGgYLf0mYVL_1w@HIDDEN>
Subject: SRFI 69 weak hash-tables is broken
To: bug-guile@HIDDEN
Content-Type: multipart/alternative; boundary="0000000000002a3f90057d865886"
X-detected-operating-system: by eggs.gnu.org: Genre and OS details not
 recognized.
X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6.x
X-Received-From: 2001:4830:134:3::11
X-Spam-Score: -3.9 (---)
X-Debbugs-Envelope-To: submit
X-Mailman-Approved-At: Fri, 21 Dec 2018 11:22:09 -0500
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: -4.9 (----)

--0000000000002a3f90057d865886
Content-Type: text/plain; charset="UTF-8"

The srfi-69 implementation that comes with Guile doesn't function properly
when some non-false #:weak argument is provided. The problems seems to be
that it tries to use handles, which are only available for non-weak
hash-tables.

scheme@(guile-user)> (import (srfi :69))
scheme@(guile-user)> (define ht (make-hash-table eq? hashq #:weak 'key))
scheme@(guile-user)> (hash-table-set! ht 10 10)
ERROR: In procedure hashx-create-handle!:
In procedure scm_hash_fn_create_handle_x: Wrong type argument in position 1
(expecting hash-table): #<weak-table 0/31>

Entering a new prompt.  Type `,bt' for a backtrace or `,q' to continue.
scheme@(guile-user) [1]>


Regards,
Jessica

--0000000000002a3f90057d865886
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr"><div dir=3D"ltr"><div dir=3D"ltr"><div dir=3D"ltr">The srf=
i-69 implementation that comes with Guile doesn&#39;t function properly whe=
n some non-false #:weak argument is provided. The problems seems to be that=
 it tries to use handles, which are only available for non-weak hash-tables=
.<div><br></div></div></div></div><blockquote style=3D"margin:0 0 0 40px;bo=
rder:none;padding:0px"><div><div><div><div><div><font face=3D"monospace, mo=
nospace">scheme@(guile-user)&gt; (import (srfi :69))</font></div></div></di=
v></div></div><div><div><div><div><div><font face=3D"monospace, monospace">=
scheme@(guile-user)&gt; (define ht (make-hash-table eq? hashq #:weak &#39;k=
ey))</font></div></div></div></div></div><div><div><div><div><div><font fac=
e=3D"monospace, monospace">scheme@(guile-user)&gt; (hash-table-set! ht 10 1=
0)</font></div></div></div></div></div><div><div><div><div><div><font face=
=3D"monospace, monospace">ERROR: In procedure hashx-create-handle!:</font><=
/div></div></div></div></div><div><div><div><div><div><font face=3D"monospa=
ce, monospace">In procedure scm_hash_fn_create_handle_x: Wrong type argumen=
t in position 1 (expecting hash-table): #&lt;weak-table 0/31&gt;</font></di=
v></div></div></div></div><div><div><div><div><div><font face=3D"monospace,=
 monospace"><br></font></div></div></div></div></div><div><div><div><div><d=
iv><font face=3D"monospace, monospace">Entering a new prompt.=C2=A0 Type `,=
bt&#39; for a backtrace or `,q&#39; to continue.</font></div></div></div></=
div></div><div><div><div><div><div><font face=3D"monospace, monospace">sche=
me@(guile-user) [1]&gt;</font></div></div></div></div></div></blockquote><d=
iv dir=3D"ltr"><div dir=3D"ltr"><div dir=3D"ltr"><div><br></div><div>Regard=
s,</div><div>Jessica</div></div></div></div></div>

--0000000000002a3f90057d865886--




Acknowledgement sent to Jéssica Milaré <jessymilare@HIDDEN>:
New bug report received and forwarded. Copy sent to bug-guile@HIDDEN. Full text available.
Report forwarded to bug-guile@HIDDEN:
bug#33827; Package guile. 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: Mon, 25 Nov 2019 12:00:02 UTC

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