GNU bug report logs - #80740
31.0.50; Improve 'markdown-ts-mode'

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

Package: emacs; Reported by: Rahul Martim Juliato <rahuljuliato@HIDDEN>; Keywords: patch; merged with #80555; dated Sat, 4 Apr 2026 03:08:03 UTC; Maintainer for emacs is bug-gnu-emacs@HIDDEN.
Merged 80555 80740. Request was from Eli Zaretskii <eliz@HIDDEN> to control <at> debbugs.gnu.org. Full text available.

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


Received: (at 80740) by debbugs.gnu.org; 9 Apr 2026 20:06:48 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Thu Apr 09 16:06:48 2026
Received: from localhost ([127.0.0.1]:43116 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1wAveK-0001sR-Dx
	for submit <at> debbugs.gnu.org; Thu, 09 Apr 2026 16:06:48 -0400
Received: from mail-dy1-x1331.google.com ([2607:f8b0:4864:20::1331]:43410)
 by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128)
 (Exim 4.84_2) (envelope-from <rahuljuliato@HIDDEN>)
 id 1wAveH-0001sD-PD
 for 80740 <at> debbugs.gnu.org; Thu, 09 Apr 2026 16:06:46 -0400
Received: by mail-dy1-x1331.google.com with SMTP id
 5a478bee46e88-2d17b8fbedaso555448eec.1
 for <80740 <at> debbugs.gnu.org>; Thu, 09 Apr 2026 13:06:45 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=gmail.com; s=20251104; t=1775765204; x=1776370004; darn=debbugs.gnu.org;
 h=mime-version:user-agent:message-id:date:face:references:in-reply-to
 :subject:cc:to:from:from:to:cc:subject:date:message-id:reply-to;
 bh=E3b4TmEmxRV04/Y4IXeiCtHWbYYoB5GZB5Dss8NHxmY=;
 b=h7Hs0XAmm/KT5YIWD0H7CKU7YF0/4c1rXohEbpqMfCjL815aoxgfPn3E49QW76kxlK
 hQ0kna+XUmkvVoR0CLtJMcPE8SLu6jvPo8279zgCXYroTf82Tray2DTC9aXnQ0Cv/UuB
 s9K2BAHzzoviFE9E7/QZNeTAwCaKx/vXQEzpTe94eFORCiaAUubqKNhTl/Qw46ptMOiN
 FqLgoJ72VdbpkbV6wXqpyqoy8nrl1lrNT7LhirHTcfjAU5x+dBCzvvU1sT1T8y61GxSZ
 9KOvHU1OBNfA/Ij/mNeRE6GvCbVnG6Ai8Ve34VlrE4j3kOtYxwyhor+jLOq8cWvcreb9
 sOxQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20251104; t=1775765204; x=1776370004;
 h=mime-version:user-agent:message-id:date:face:references:in-reply-to
 :subject:cc:to:from:x-gm-gg:x-gm-message-state:from:to:cc:subject
 :date:message-id:reply-to;
 bh=E3b4TmEmxRV04/Y4IXeiCtHWbYYoB5GZB5Dss8NHxmY=;
 b=FJ2PuBVq7a7Lkekii3l5kBr9WoE2djHA50bklOfZy5cTQKMnBNR9GPXsm+oWKkMEfK
 E2hLxaEFlMDMHWB8TTsTwIKqW7JouphQiwSpmEpms5oPPv+MXDpNPuz95UxWpkxicTRM
 3q4eO9aeSg6kgdcXJTHnyf91tuiYR60FOQUYUu6j42rIjatI7HYy7n7+C0k5frje8WfQ
 b7ce0TGxAAhFWrhEA8RTj+xxDT8cnk75xLZB/S4TWsJlLOlsvOmUwbDAtdTRQnZdx3zw
 IETBEnMiidPls8UtLu3+JDxWtIYUON7V4bmR0yF72GxpDl92bQsSuU9g6T/BL1aoCV7h
 SGmg==
X-Forwarded-Encrypted: i=1;
 AJvYcCULoGFCWMc/7mZ+SUbVas/ymhZOGhNPB97vLckCr4fp+Z27p7oBHcuqKqLn5R3tZXqK04s+qg==@debbugs.gnu.org
X-Gm-Message-State: AOJu0Yw4fnH5n0EROVddKoORlYYuXHRt/cEnRL2+xMhVD1GsNyjdTbe9
 koUYDrLyFVTyg/7Jei5ex0z9oTe2CQwdibwKIwp9veAe1EuEQClKeocypnGHOOYhTqORPg==
X-Gm-Gg: AeBDietGbmHXHkwgxcEahjy4L6f6dVJAR1qcZ4TDAP/f7KrN4UbueT9XfDOdicNDJ+J
 jQRyvgS6KRUkmcLQhwRrbpcNnLqelc62hEivL64InuKujqFKEYLrsozPtqZJMeEqA8ktr6unpue
 raqhkK/mQHRgq+aPsgeX+TFB+HzWMhNcP+dKjjM4IYPVUR+vEworTZml7VpM2ou6QAptnnrK+bB
 /flwv202zEiMYp/ghOzKHv6QKDmaDZZCowfxwTDskZ4T1NFbiZmIF0E0Pqoj3bU8FFTwSan+uWP
 7ehpPC0QkIQbULK+O80ByAUo4q0du/teCUc50zQNKJG1hF4HjRT9wuq/oUtwpNJ11pqA5PKITFV
 zkgfn9ngncF7NQHpHJnXD0kn+ZFbvsLt4xNen+NS99NoETOLEBdnV4kSLDkNcx7DCzaBdk+Z4oH
 Vs/r0k+FCRm2DGauG5CIp2Jpoq4Iv55XRIWFJLT8i7b5VRDumcWqjvKgc+B3wZLViO8Bobsanwr
 CEM1/sKGF8z
X-Received: by 2002:a05:7300:4316:b0:2c1:82c2:bc31 with SMTP id
 5a478bee46e88-2d40fce76c1mr2322082eec.10.1775765203925; 
 Thu, 09 Apr 2026 13:06:43 -0700 (PDT)
Received: from MacBook-Pro.local ([185.153.176.105])
 by smtp.gmail.com with ESMTPSA id
 5a478bee46e88-2d55faa586bsm1401116eec.11.2026.04.09.13.06.40
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 09 Apr 2026 13:06:42 -0700 (PDT)
From: Rahul Martim Juliato <rahuljuliato@HIDDEN>
X-Google-Original-From: Rahul Martim Juliato <rahul.juliato@HIDDEN>
To: Eli Zaretskii <eliz@HIDDEN>
Subject: Re: bug#80740: 31.0.50; Improve 'markdown-ts-mode'
In-Reply-To: <86v7e0v8kj.fsf@HIDDEN>
References: <m2zf3jzamy.fsf@HIDDEN>
 <CAN+1HbrPGi5BY1EJ0B8Hgzbru_Q9TACCQGmkT63mXet_ouT0Ug@HIDDEN>
 <m25x61f1ch.fsf@HIDDEN> <86v7e0v8kj.fsf@HIDDEN>
Face: iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAMAAABg3Am1AAAAAXNSR0IB2cksfwAAAARnQU1BAACxjwv8YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAABhQTFRFDxIfFR9FMD+RM2CBkZPbZKPEn+Xt////lKVMgwAAAAFiS0dEAIgFHUgAAAAJcEhZcwAALiMAAC4jAXilP3YAAAAHdElNRQfqAhsDFwcfcr7WAAACY0lEQVRIx7VVWbLbMAwzBZG6/41LcJHXpl/Vm/G8OADBBWKOo44c//mM2yeoH7go/kqQG3zlucDxgwTzkwz9XVl+K8Z8igL5p4KYKbApCHDC5aGXn7EcD1KCkUl9154EtSJUJWwWIIJbZyLVIIgTguGdCobxQ4nLI3gRLECO9axcwgNYQi81yH5KhGXZ1oU7XSH3YUnQ488YsesOCWrwxYOAgAtW1ZCEZKxoNR4TCILXGnPbjJ65v8ZrbB4fbI02pUaelSjuDKboCS1LifMEg1HwaOpRvV/2Ylja5ekjafyFYU2AnGOTMagh5Qbrs6OngFxTkhFPxUYUZePl3iQnSB7Y+3gcvQocDSYeWOuDYorXZagzhioeqWVSH3ivfvS54/EcW8LvB2eTSJDtbtkJXeGTD/1FwCbMNI/pnC0CjYi3ej2HhDvOD121dGzGFyHgM+5DUnhLNc0lKm0OYptQsWPTJKPMMuil0rhU6+E51th4obJqinOMntOBM59pzlg0wmICoRc3ML5tgpzpODRdk02MQmaEL8YIhdEElJniQbvDRSh7DicV9qjmQFeFHA3mosS8EU6+8g2jV8dzc3jpTK0ZFwWObITvpXZv1MRJXDSOs6WskFcxVKqIlKPMJpzxp9I+udrjLx3tKfB9unHslNi/Wj9AZt8+mGEnnTmPIzMYM5ZENgp1XVghv+uN4/ZE7sf4gXJV9yvHJp1/7EvJlTlz
 pUspOFJt723pVYz9c2cpgHYfKSMXVz72TvL/rJqxL92+D2cGuelri9Nkc5wX6Hjf6cqEsoPptle/Vtllqb3eEPkHU2QXL+sLC8kAAAAASUVORK5CYII=
X-PGP-Key: https://www.rahuljuliato.com/rahul_pub_key.asc
Date: Thu, 09 Apr 2026 17:06:39 -0300
Message-ID: <m2ldevgapc.fsf@HIDDEN>
User-Agent: Gnus/5.13 (Gnus v5.13)
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary="=-=-="
X-Debbugs-Envelope-To: 80740
Cc: casouri@HIDDEN, Rahul Martim Juliato <rahuljuliato@HIDDEN>,
 80740 <at> debbugs.gnu.org, shipmints@HIDDEN
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>

--=-=-=
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

Eli Zaretskii <eliz@HIDDEN> writes:

>> Cc: Yuan Fu <casouri@HIDDEN>, Rahul Martim Juliato <rahuljuliato@gmai=
l.com>,
>>  80740 <at> debbugs.gnu.org
>> From: Rahul Martim Juliato <rahuljuliato@HIDDEN>
>> Date: Wed, 08 Apr 2026 21:01:50 -0300
>
> These non-ASCII characters should not be used without checking if they
> can be displayed (see char-displayable-p).  This is especially
> important on TTY frames.  Bonus points for designing ASCII
> replacements for when these non-ASCII symbols cannot be displayed.
>

Agreed.

I changed those to be cons cells in the form of (rich-form . ansi-form)
or nil. :safe is used to ensure both elements have the same type. If
nil, it means nothing will be rendered when markup is hidden.

I also added a resolver 'markdown-ts--resolve-display-value', to select
and check the symbols.

>> +(defcustom markdown-ts-hard-line-break-space
>> +  (lambda (n) (make-string n ?=C2=B6))
>
> Why is ?=C2=B6 hard-coded, instead of using
> markdown-ts-hard-line-break-backslash?
>


It shouldn't be this way, you're right.

'markdown-ts-hard-line-break-space' now uses
'markdown-ts-hard-line-break-backslash' as the default character.


>> +(defface markdown-ts-emphasis '((t (:inherit italic)))
>> +  "Face for Markdown emphasis (italic) text.")
>> +
>> +(defface markdown-ts-bold '((t (:inherit bold)))
>> +  "Face for Markdown strong emphasis (bold) text.")
>> +
>> +(defface markdown-ts-strikethrough '((t (:strike-through t)))
>> +  "Face for Markdown strikethrough text.")
>>=20=20
>>  (defface markdown-ts-block-quote '((t (:inherit italic)))
>>    "Face for Markdown block quotes.")
>>=20=20
>> +(defface markdown-ts-link '((t (:inherit link)))
>> +  "Face for Markdown link text and image descriptions.")
>
> Is it justified to have separate faces here?  Why would users want to
> have something other than 'bold' for showing the bold face in MD
> buffers?
>
> Also, faces can (and I think should in this case) have the :version
> tag.
>

Good question. About 'markdown-ts-strikethrough', there is no generic
strikethrough face (that I could find) in Emacs to inherit from, so it
has to exist.

For the others, the motivation is the same as in org-mode ('org-italic',
'org-bold', 'org-link') and rst-mode. The default inherits from the base
face so things look right out of the box, but users get a mode-specific
handle to customize without touching global faces. That alone is worth
it, but there is a second angle: it makes theming more controlled.

When 'markdown-ts-hide-markup' is enabled, all markup characters
disappear and what remains is just the rendered text. A theme that wants
to give a subtle visual hint about the underlying markup, such as a
faint background on emphasis or a different tint on links, can do so by
targeting 'markdown-ts-emphasis' or 'markdown-ts-link' specifically,
without affecting every italic or linked piece of text in every other
buffer.

Added :version tag to all faces.

>> +(defun markdown-ts--code-block-language-mode (lang)
>> +  "Compute and cache a mode symbol from LANG, a symbol.
>> +Consult the `markdown-ts-code-block-map' cache, or probe mode names.
>> +Return a valid mode symbol or nil."
>> +  (if-let* ((mapped-mode (alist-get lang markdown-ts-code-block-modes)))
>> +      mapped-mode
>> +    (let ((lang-string (symbol-name lang)))
>> +      (catch :mode
>> +        (dolist (mode
>> +                 (list
>> +                  ;; Try a treesit mode using the raw string.
>> +                  (concat lang-string "-ts-mode")
>> +                  ;; Try a conventional mode using the raw string.
>> +                  (concat lang-string "-mode")
>> +                  ;; Try a treesit mode using the downcased string.
>> +                  (concat (downcase lang-string) "-ts-mode")
>> +                  ;; Try a conventional mode using the downcased string.
>> +                  (concat (downcase lang-string) "-mode")))
>> +          (setq mode (intern mode))
>> +          (when (fboundp mode)
>> +            (push (cons lang mode) markdown-ts-code-block-modes)
>> +            (throw :mode mode)))))))
>
> I think this should use treesit-major-mode-remap-alist and
> major-mode-remap-alist, at least before falling back on the above
> hard-coded conventional modes, if not instead that.  This will allow
> users to customize these remappings only once.
>

Done. It now also checks both 'treesit-major-mode-remap-alist' and
'major-mode-remap-alist'.

>> +(define-minor-mode markdown-ts-code-block-mode
>> +  "Mode enabled if point is within a fenced code block."
>> +  :interactive nil)
>
> Does this mean this mode is enabled automatically?
>
> Thanks.


Yes, it is enabled automatically. 'markdown-ts-mode' adds
'markdown-ts--enable-code-block-mode' to 'post-command-hook'
(buffer-local), which calls '(markdown-ts-code-block-mode 1)' when point
enters a fenced code block and '(markdown-ts-code-block-mode -1)' when
it leaves. The ':interactive nil' just keeps it out of 'M-x' completion,
it is not meant to be toggled by hand.

Its main purpose is to activate 'markdown-ts-code-block-mode-map', a
keymap that routes common editing commands (indentation, comment, etc.)
through the language mode of whichever code block point is currently in.



Please find attached an updated patch.

Thanks

--=20
Rahul Martim Juliato


--=-=-=
Content-Type: application/octet-stream; charset=utf-8
Content-Disposition: attachment;
 filename=0001-Improve-markdown-ts-mode.patch
Content-Transfer-Encoding: base64

RnJvbSAxNTM2MzQ3Mjc0YThjZTg3NDk0NTU5OGViYjQ0N2MyMzkwNmM3NTdhIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBSYWh1bCBNYXJ0aW0gSnVsaWF0byA8cmFodWwuanVsaWF0b0Bn
bWFpbC5jb20+CkRhdGU6IEZyaSwgMyBBcHIgMjAyNiAyMzo0MTo0NyAtMDMwMApTdWJqZWN0OiBb
UEFUQ0hdIEltcHJvdmUgJ21hcmtkb3duLXRzLW1vZGUnCk1JTUUtVmVyc2lvbjogMS4wCkNvbnRl
bnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD1VVEYtOApDb250ZW50LVRyYW5zZmVyLUVuY29k
aW5nOiA4Yml0CgpPdmVyaGF1bCAnbWFya2Rvd24tdHMtbW9kZScgd2l0aCBjb21wcmVoZW5zaXZl
IGZvbnRpZmljYXRpb24sCmNvZGUgYmxvY2sgaGFuZGxpbmcsIGVkaXRpbmcgY29tbWFuZHMsIGZp
bGwtcGFyYWdyYXBoIHN1cHBvcnQsCmlubGluZSBpbWFnZSBwcmV2aWV3cywgYW5kIGEgbW9kZSBt
ZW51LgoKKiBsaXNwL3RleHRtb2Rlcy9tYXJrZG93bi10cy1tb2RlLmVsOiBBZGQgVmVyc2lvbiwK
UGFja2FnZS1SZXF1aXJlcywgYW5kIEtleXdvcmRzIGhlYWRlciBmaWVsZHMuICBFeHBhbmQgQ29t
bWVudGFyeQp3aXRoIGRvY3VtZW50YXRpb24gZm9yIGNvZGUgYmxvY2sgbGFuZ3VhZ2UgbW9kZXMs
IGNvZGUgYmxvY2sKY29tbWFuZHMsIGJpZGlyZWN0aW9uYWwgdGV4dCwgYW5kIGtub3duIHRyZWUt
c2l0dGVyIGdyYW1tYXIKYnVncy4KKHJlcXVpcmUgJ2dvdG8tYWRkciwgeHJlZik6IE5ldyByZXF1
aXJlbWVudHMuCihtYXJrZG93bi10cyk6IE5ldyBjdXN0b21pemF0aW9uIGdyb3VwIHdpdGggOnZl
cnNpb24gYW5kCjpwYWNrYWdlLXZlcnNpb24gdGFncy4KKG1hcmtkb3duLXRzLWhpZGUtbWFya3Vw
KTogQWRkIDp2ZXJzaW9uIGFuZCA6cGFja2FnZS12ZXJzaW9uLgoobWFya2Rvd24tdHMtZWxsaXBz
aXMpOiBOZXcgb3B0aW9uIGZvciBmb2xkZWQgaGVhZGluZyBlbGxpcHNpcy4KKG1hcmtkb3duLXRz
LW1lbnUtYmFyLXNob3cpOiBOZXcgb3B0aW9uIHRvIHRvZ2dsZSBtb2RlIG1lbnUuCihtYXJrZG93
bi10cy1kZWZhdWx0LWZvbGRpbmcpOiBOZXcgb3B0aW9uIGZvciBkZWZhdWx0IGZvbGQKbGV2ZWwu
CihtYXJrZG93bi10cy1pbmxpbmUtaW1hZ2VzKTogTmV3IG9wdGlvbiB0byBkaXNwbGF5IGlubGlu
ZQppbWFnZXMuCihtYXJrZG93bi10cy1pbWFnZS1tYXgtd2lkdGgpOiBOZXcgb3B0aW9uIGZvciBp
bWFnZSBtYXggd2lkdGguCihtYXJrZG93bi10cy1kaXNwbGF5LXJlbW90ZS1pbmxpbmUtaW1hZ2Vz
KTogTmV3IG9wdGlvbiBmb3IKcmVtb3RlIGltYWdlIGhhbmRsaW5nLgoobWFya2Rvd24tdHMtLXJl
c29sdmUtZGlzcGxheS12YWx1ZSk6IE5ldyBoZWxwZXIgdG8gcmVzb2x2ZQpkaXNwbGF5IHZhbHVl
cyB1c2luZyBjaGFyLWRpc3BsYXlhYmxlLXAuCihtYXJrZG93bi10cy1jaGVja2VkLWNoZWNrYm94
KTogTmV3IG9wdGlvbiBmb3IgY2hlY2tlZCBjaGVja2JveApkaXNwbGF5IHN0cmluZy4KKG1hcmtk
b3duLXRzLXVuY2hlY2tlZC1jaGVja2JveCk6IE5ldyBvcHRpb24gZm9yIHVuY2hlY2tlZApjaGVj
a2JveCBkaXNwbGF5IHN0cmluZy4KKG1hcmtkb3duLXRzLXRoZW1hdGljLWJyZWFrLWNoYXJhY3Rl
cik6IE5ldyBvcHRpb24gZm9yIHRoZW1hdGljCmJyZWFrIGRpc3BsYXkgY2hhcmFjdGVyLgoobWFy
a2Rvd24tdHMtaGFyZC1saW5lLWJyZWFrLWJhY2tzbGFzaCk6IE5ldyBvcHRpb24gZm9yIHRoZQpn
bHlwaCBzaG93biBpbiBwbGFjZSBvZiBhIHRyYWlsaW5nLWJhY2tzbGFzaCBoYXJkIGxpbmUgYnJl
YWsKd2hlbiBtYXJrdXAgaXMgaGlkZGVuLgoobWFya2Rvd24tdHMtaGFyZC1saW5lLWJyZWFrLXNw
YWNlKTogTmV3IG9wdGlvbiBmb3IgdGhlIGdseXBoCnNob3duIGluIHBsYWNlIG9mIGEgdHJhaWxp
bmctc3BhY2VzIGhhcmQgbGluZSBicmVhayB3aGVuIG1hcmt1cAppcyBoaWRkZW4uCihtYXJrZG93
bi10cy1lbXBoYXNpcywgbWFya2Rvd24tdHMtYm9sZCkKKG1hcmtkb3duLXRzLXN0cmlrZXRocm91
Z2gsIG1hcmtkb3duLXRzLWxpbmspCihtYXJrZG93bi10cy1saW5rLWRlc3RpbmF0aW9uLCBtYXJr
ZG93bi10cy1jb2RlLXNwYW4pCihtYXJrZG93bi10cy1jb2RlLWJsb2NrLCBtYXJrZG93bi10cy1j
b2RlLWJsb2NrLW1hcmt1cC1oaWRkZW4pCihtYXJrZG93bi10cy1pbmRlbnRlZC1jb2RlLWJsb2Nr
LCBtYXJrZG93bi10cy1odG1sLXRhZykKKG1hcmtkb3duLXRzLWh0bWwtYmxvY2ssIG1hcmtkb3du
LXRzLXRoZW1hdGljLWJyZWFrKQoobWFya2Rvd24tdHMtZW50aXR5LXJlZmVyZW5jZSkKKG1hcmtk
b3duLXRzLW51bWVyaWMtY2hhcmFjdGVyLXJlZmVyZW5jZSwgbWFya2Rvd24tdHMtbGF0ZXgpCiht
YXJrZG93bi10cy10YWJsZS1oZWFkZXIsIG1hcmtkb3duLXRzLXRhYmxlLWNlbGwpCihtYXJrZG93
bi10cy10YWJsZS1kZWxpbWl0ZXItY2VsbCwgbWFya2Rvd24tdHMtdGFzay11bmNoZWNrZWQpCiht
YXJrZG93bi10cy10YXNrLWNoZWNrZWQpOiBOZXcgZmFjZXMuCihtYXJrZG93bi10cy1oYXJkLWxp
bmUtYnJlYWstYmFja3NsYXNoKQoobWFya2Rvd24tdHMtaGFyZC1saW5lLWJyZWFrLWJhY2tzbGFz
aC1oaWRkZW4pCihtYXJrZG93bi10cy1oYXJkLWxpbmUtYnJlYWstc3BhY2UpCihtYXJrZG93bi10
cy1oYXJkLWxpbmUtYnJlYWstc3BhY2UtaGlkZGVuKTogTmV3IGZhY2VzIGZvciB0aGUKdHdvIGhh
cmQtbGluZS1icmVhayB2YXJpYW50cywgd2l0aCBkaXN0aW5jdCBzaG93bi9oaWRkZW4KYXBwZWFy
YW5jZXMuCihtYXJrZG93bi10cy0tc2V0LXVwLWlubGluZSk6IE5ldyB2YXJpYWJsZSBmb3IgbGln
aHR3ZWlnaHQgc2V0dXAKaW4gZW1iZWRkZWQgaW5saW5lIG1hcmtkb3duLXRzLW1vZGUgYnVmZmVy
cyB1c2VkIGJ5IGNvZGUgYmxvY2sKY29tbWFuZHMuCihtYXJrZG93bi10cy1kZWZhdWx0LWNvZGUt
YmxvY2stbW9kZSk6IE5ldyB2YXJpYWJsZSB0byBkZWZpbmUKZGVmYXVsdCBtb2RlIGZvciBhbm9u
eW1vdXMgY29kZSBibG9ja3MuCihtYXJrZG93bi10cy1jb2RlLWJsb2NrLW1vZGVzKTogTmV3IHZh
cmlhYmxlIHJlcGxhY2luZwptYXJrZG93bi10cy0tY29kZS1ibG9jay1sYW5ndWFnZS1tYXAgYW5k
Cm1hcmtkb3duLXRzLWNvZGUtYmxvY2stc291cmNlLW1vZGUtbWFwIHdpdGggdW5pZmllZCBsYW5n
dWFnZSB0bwptb2RlIG1hcHBpbmcgaW5jbHVkaW5nIGhldXJpc3RpYyBsb29rdXAuCihtYXJrZG93
bi10cy1jb2RlLWJsb2NrLWZvcmNlLWNvbnZlbnRpb25hbC1tb2Rlcyk6IE5ldyB2YXJpYWJsZQps
aXN0aW5nIHRyZWUtc2l0dGVyIG1vZGVzIHdob3NlIGZvbnRpZmljYXRpb24gb2YgY29kZSBibG9j
awpjb250ZW50IHNob3VsZCBiZSBoYXJ2ZXN0ZWQgdmlhIGEgdGVtcG9yYXJ5IGJ1ZmZlci4KKG1h
cmtkb3duLXRzLS1tYWtlLWxpbmstYnV0dG9uKTogTmV3IGZ1bmN0aW9uIHRvIGNyZWF0ZQpjbGlj
a2FibGUgbGluayBidXR0b25zIHdpdGggbWFpbHRvLCBicm93c2UtdXJsLCBhbmQgZmluZC1maWxl
CmRpc3BhdGNoLgoobWFya2Rvd24tdHMtLWZvbnRpZnktbGluay1kZXN0aW5hdGlvbik6IE5ldyBm
b250aWZpZXIgdGhhdApoaWRlcyBsaW5rIGRlc3RpbmF0aW9ucyB3aGVuIG1hcmt1cCBpcyBoaWRk
ZW4uCihtYXJrZG93bi10cy0tbGluay1yZWYtY2FjaGUsIG1hcmtkb3duLXRzLS1saW5rLXJlZi1j
YWNoZS10aWNrKQoobWFya2Rvd24tdHMtLWxpbmstcmVmLWRlZmluaXRpb25zKQoobWFya2Rvd24t
dHMtLXJlc29sdmUtbGluay1yZWYpOiBOZXcgbGluayByZWZlcmVuY2UgZGVmaW5pdGlvbgpjYWNo
ZSB3aXRoIGNhc2UtaW5zZW5zaXRpdmUgbWF0Y2hpbmcgcGVyIENvbW1vbk1hcmsgc3BlYy4KKG1h
cmtkb3duLXRzLS1mb250aWZ5LWxpbmstbm9kZSk6IE5ldyBmb250aWZpZXIgZm9yIGlubGluZSwK
cmVmZXJlbmNlLCBzaG9ydGN1dCwgYW5kIGNvbGxhcHNlZCBsaW5rcyBhcyBjbGlja2FibGUgYnV0
dG9ucy4KKG1hcmtkb3duLXRzLS1mb250aWZ5LWF1dG9saW5rKTogTmV3IGZvbnRpZmllciBmb3Ig
VVJJIGFuZCBlbWFpbAphdXRvbGlua3Mgd2l0aCBhbmdsZSBicmFja2V0IGhpZGluZy4KKG1hcmtk
b3duLXRzLS1mb250aWZ5LWxpbmstcmVmLWxhYmVsKQoobWFya2Rvd24tdHMtLWZvbnRpZnktbGlu
ay1yZWYtZGVzdGluYXRpb24pOiBOZXcgZm9udGlmaWVycyBmb3IKbGluayByZWZlcmVuY2UgZGVm
aW5pdGlvbnMuCihtYXJrZG93bi10cy0tc2x1Zy1naXRodWItc3RyaXAtcmUsIG1hcmtkb3duLXRz
LS1zbHVnLWdpdGh1YikKKG1hcmtkb3duLXRzLS1zbHVnLXBhbmRvYywgbWFya2Rvd24tdHMtLWV4
cGxpY2l0LWlkLXJlKQoobWFya2Rvd24tdHMtLWhlYWRpbmctdGV4dC1hbmQtaWQpOihtYXJrZG93
bi10cy0taGVhZGluZy1pZC1jYWNoZSwKbWFya2Rvd24tdHMtLWhlYWRpbmctaWQtY2FjaGUtdGlj
aykKKG1hcmtkb3duLXRzLS1idWlsZC1oZWFkaW5nLWlkcywgbWFya2Rvd24tdHMtLWhlYWRpbmct
aWRzKQoobWFya2Rvd24tdHMtLWZvbGxvdy1mcmFnbWVudCk6IE5ldyBmcmFnbWVudCBsaW5rIHN1
cHBvcnQgd2l0aApHaXRIdWIgYW5kIFBhbmRvYyBzbHVnIGFsZ29yaXRobXMuCihtYXJrZG93bi10
cy0tbGF0ZXgtYmxvY2stdmFsaWQtcCkKKG1hcmtkb3duLXRzLS1mb250aWZ5LWxhdGV4LWJsb2Nr
KTogTmV3IExhVGVYL21hdGggZm9udGlmaWVyCndpdGggY3Jvc3MtcGFyYWdyYXBoIHZhbGlkYXRp
b24uCihtYXJrZG93bi10cy0tZm9udGlmeS1iYWNrc2xhc2gtZXNjYXBlKTogTmV3IGZvbnRpZmll
ciB0aGF0CmhpZGVzIGJhY2tzbGFzaCBpbiBlc2NhcGVzIGV4Y2VwdCBpbnNpZGUgTGFUZVggYmxv
Y2tzLgoobWFya2Rvd24tdHMtLWRlY29kZS1lbnRpdHksIG1hcmtkb3duLXRzLS1mb250aWZ5LWVu
dGl0eSk6IE5ldwpIVE1MIGVudGl0eSBkZWNvZGVyIGFuZCBmb250aWZpZXIgdXNpbmcgb3JnLWVu
dGl0aWVzIGFuZApzZ21sLWNoYXItbmFtZXMgd2l0aCBkaXNwbGF5IHByb3BlcnR5IGZvciBkZWNv
ZGVkIHZhbHVlcy4KKG1hcmtkb3duLXRzLS1mb250aWZ5LWNoZWNrYm94KTogTmV3IGZvbnRpZmll
ciBzaG93aW5nIFVuaWNvZGUKY2hlY2tib3ggc3ltYm9scyB3aGVuIG1hcmt1cCBpcyBoaWRkZW4u
CihtYXJrZG93bi10cy0tZm9udGlmeS1oYXJkLWxpbmUtYnJlYWspOiBOZXcgZm9udGlmaWVyIGZv
cgpgaGFyZF9saW5lX2JyZWFrJyBub2Rlcy4KKG1hcmtkb3duLXRzLS1mb250aWZ5LWhlYWRpbmcp
OiBOZXcgZm9udGlmaWVyIGZvciBBVFggYW5kIFNldGV4dApoZWFkaW5ncy4KKG1hcmtkb3duLXRz
LS1mb250aWZ5LXRoZW1hdGljLWJyZWFrKTogTmV3IGZvbnRpZmllciBzaG93aW5nCmhvcml6b250
YWwgbGluZSB3aGVuIG1hcmt1cCBpcyBoaWRkZW4uCihtYXJrZG93bi10cy0tZm9udGlmeS1jb2Rl
LWJsb2NrKTogTmV3IGZvbnRpZmllciBhcHBseWluZwpiYWNrZ3JvdW5kIG92ZXJsYXkgdG8gY29k
ZSBibG9ja3Mgd2l0aCBsYW5ndWFnZSBhbmQgbW9kZQpwcm9wZXJ0aWVzLgoobWFya2Rvd24tdHMt
Y29kZS1ibG9jay1hdC1wLCBtYXJrZG93bi10cy1jb2RlLWJsb2NrLWxhbmd1YWdlLWF0KQoobWFy
a2Rvd24tdHMtY29kZS1ibG9jay1tb2RlLWF0KTogTmV3IGFjY2Vzc29ycyBmb3IgY29kZSBibG9j
awpvdmVybGF5IHByb3BlcnRpZXMuCihtYXJrZG93bi10cy0taW1lbnUtY29kZS1ibG9jay1ub2Rl
LXApOiBOZXcgaGVscGVyIGZvciBpbWVudQpjb2RlIGJsb2NrIGRldGVjdGlvbi4KKG1hcmtkb3du
LXRzLS1pbWFnZS1hbG9uZS1vbi1saW5lLXAsIG1hcmtkb3duLXRzLS1mb250aWZ5LWltYWdlKToK
TmV3IGlubGluZSBpbWFnZSBkaXNwbGF5IHdpdGggc3RhbmRhbG9uZSBhbmQgaW5saW5lIHBvc2l0
aW9uaW5nLgoobWFya2Rvd24tdHMtLWJhcmUtdXJsLXJlZ2V4cCkKKG1hcmtkb3duLXRzLS1iYXJl
LWVtYWlsLXVyaS1yZWdleHApCihtYXJrZG93bi10cy0tZm9udGlmeS1iYXJlLXVyaSk6IE5ldyBi
YXJlIFVSTC9lbWFpbApmb250aWZpY2F0aW9uIHZpYSBqaXQtbG9jayB1c2luZyBnb3RvLWFkZHIg
cmVnZXhwcy4KKG1hcmtkb3duLXRzLS10cmVlc2l0LXNldHRpbmdzKTogUmV3cml0ZSB3aXRoIGRl
ZGljYXRlZCBmYWNlcywKY3VzdG9tIGZvbnRpZmllcnMsIGFuZCBuZXcgZm9udC1sb2NrIGZlYXR1
cmVzIGZvciBhbGwgaW5saW5lIGFuZApibG9jayBlbGVtZW50cy4KKG1hcmtkb3duLXRzLS1jb2Rl
LWJsb2NrLWxhbmd1YWdlcykKKG1hcmtkb3duLXRzLS1jb2RlLWJsb2NrLW5vbi10cy1tb2Rlcyk6
IE5ldyBidWZmZXItbG9jYWwgYWxpc3RzCmZvciBjb2RlIGJsb2NrIGxhbmd1YWdlIHRyYWNraW5n
LgoobWFya2Rvd24tdHMtLWhhcnZlc3QtbW9kZS10cmVlc2l0LWNvbmZpZ3VyYXRpb24pOiBSZW5h
bWVkIGZyb20KbWFya2Rvd24tdHMtLWhhcnZlc3QtdHJlZXNpdC1jb25maWdzIHdpdGggZGVsYXkt
bW9kZS1ob29rcy4KKG1hcmtkb3duLXRzLS1jb25maWd1cmUtY3VycmVudC1idWZmZXIpOiBSZW5h
bWVkIGZyb20KbWFya2Rvd24tdHMtLWFkZC1jb25maWctZm9yLW1vZGUuCihtYXJrZG93bi10cy0t
bGFuZ3VhZ2UtYXQtbm9kZSk6IE5ldyBoZWxwZXIgZXh0cmFjdGluZyBsYW5ndWFnZQpzeW1ib2wg
ZnJvbSBjb2RlX2ZlbmNlX2NvbnRlbnQgbm9kZS4KKG1hcmtkb3duLXRzLS1ub24tdHMtZm9udGlm
eS1jYWNoZSk6IE5ldyBidWZmZXItbG9jYWwgaGFzaCB0YWJsZQpjYWNoaW5nIGZvbnRpZmljYXRp
b24gcmVzdWx0cyBmb3Igbm9uLXRyZWUtc2l0dGVyIGNvZGUgYmxvY2tzLgoobWFya2Rvd24tdHMt
LWZvbnRpZnktbm9uLXRzLWNvbGxlY3QtZmFjZXMpOiBOZXcgZnVuY3Rpb24KaGFydmVzdGluZyBm
YWNlIHByb3BlcnRpZXMgZnJvbSBhIG1vZGUgaW4gYW4gaW5kaXJlY3Qgb3IKdGVtcG9yYXJ5IGJ1
ZmZlci4KKG1hcmtkb3duLXRzLS1mb250aWZ5LW5vbi10cy1jb2RlLWJsb2NrKTogTmV3IGZvbnRp
ZmllciBmb3IKbm9uLXRyZWUtc2l0dGVyIG1vZGVzIHZpYSB0ZW1wb3JhcnkgYnVmZmVyIGZvbnQt
bG9jay4KKG1hcmtkb3duLXRzLS1jb2RlLWJsb2NrLWxhbmd1YWdlLW1vZGUpOiBOZXcgZnVuY3Rp
b24gd2l0aApoZXVyaXN0aWMgbW9kZSBuYW1lIHByb2JpbmcuCihtYXJrZG93bi10cy0tY29kZS1i
bG9jay10cy1sYW5ndWFnZSk6IFJlbmFtZWQgZnJvbQptYXJrZG93bi10cy0tY29udmVydC1jb2Rl
LWJsb2NrLWxhbmd1YWdlIHdpdGggc3VwcG9ydCBmb3Igbm9uLXRzCm1vZGVzIGFuZCByZWN1cnNp
dmUgbWFya2Rvd24gaGFuZGxpbmcuCihtYXJrZG93bi10cy1jb2RlLWJsb2NrLWNvbW1hbmRzKQoo
bWFya2Rvd24tdHMtY29kZS1ibG9jay10aGluZy1jb21tYW5kcykKKG1hcmtkb3duLXRzLWNvZGUt
YmxvY2stcmVnaW9uLWNvbW1hbmRzKTogTmV3IGNvbW1hbmQgbGlzdHMgZm9yCmNvZGUtYmxvY2sg
Y29udGV4dCBleGVjdXRpb24uCihtYXJrZG93bi10cy0tZW5hYmxlLWNvZGUtYmxvY2stbW9kZSkK
KG1hcmtkb3duLXRzLS1tYXliZS1ydW4tY29tbWFuZC1pbi1jb2RlLWJsb2NrKQoobWFya2Rvd24t
dHMtLWNvZGUtYmxvY2steHJlZi1maW5kLWRlZmluaXRpb25zKQoobWFya2Rvd24tdHMtLXJ1bi1j
b21tYW5kLWluLWNvZGUtYmxvY2spOiBOZXcgY29kZSBibG9jayBtaW5vcgptb2RlIHdpdGggaW5k
aXJlY3QgYnVmZmVyIGNvbW1hbmQgZGlzcGF0Y2guCihtYXJrZG93bi10cy0tY29kZS1ibG9jay1u
ZXdsaW5lKTogTmV3IGNvbW1hbmQgZm9yIG5ld2xpbmUKaW5zaWRlIGNvZGUgYmxvY2tzLCBkaXNw
YXRjaGluZyB0byB0aGUgYmxvY2sncyBtb2RlLgoobWFya2Rvd24tdHMtLXJhbmdlLXNldHRpbmdz
KTogVXBkYXRlIHJhbmdlIGNvbmZpZ3VyYXRpb247CnJlbW92ZSA6cmFuZ2UtZm4gdHJlZXNpdC1y
YW5nZS1mbi1leGNsdWRlLWNoaWxkcmVuLgoobWFya2Rvd24tdHMtLXJlbW92ZS1pbWFnZS1vdmVy
bGF5cykKKG1hcmtkb3duLXRzLS1vdXRsaW5lLXZpZXctY2hhbmdlKTogTmV3IGhlbHBlcnMgZm9y
IGltYWdlCm92ZXJsYXkgbWFuYWdlbWVudCBkdXJpbmcgb3V0bGluZSBmb2xkL3VuZm9sZC4KKG1h
cmtkb3duLXRzLS1vdXRsaW5lLWludmlzaWJsZS1wKTogTmV3IGhlbHBlciB0ZXN0aW5nIHdoZXRo
ZXIgYQpwb3NpdGlvbiBpcyBpbnNpZGUgYW4gb3V0bGluZS1mb2xkZWQgcmVnaW9uLgoobWFya2Rv
d24tdHMtLXNldC1oaWRlLW1hcmt1cCk6IENsZWFyIGltYWdlIG92ZXJsYXlzIHdoZW4KdG9nZ2xp
bmcgbWFya3VwIHZpc2liaWxpdHkuCihtYXJrZG93bi10cy0tc2V0LWlubGluZS1pbWFnZXMpCiht
YXJrZG93bi10cy10b2dnbGUtaW5saW5lLWltYWdlcyk6IE5ldyBmdW5jdGlvbnMgZm9yIHRvZ2ds
aW5nCmlubGluZSBpbWFnZSBkaXNwbGF5LgoobWFya2Rvd24tdHMtLXBhcnNlci1oZWFkaW5nLW1h
eC1sZXZlbCk6IE5ldyBjb25zdGFudC4KKG1hcmtkb3duLXRzLS1oZWFkaW5nLWF0LXBvaW50LCBt
YXJrZG93bi10cy0taGVhZGluZy1sZXZlbCkKKG1hcmtkb3duLXRzLS1zZWN0aW9uLWF0LXBvaW50
KTogTmV3IGhlYWRpbmcgbmF2aWdhdGlvbiBoZWxwZXJzLgoobWFya2Rvd24tdHMtcHJvbW90ZSwg
bWFya2Rvd24tdHMtZGVtb3RlKTogTmV3IGNvbW1hbmRzIGZvcgpoZWFkaW5nIGFuZCBsaXN0IGl0
ZW0gcHJvbW90aW9uL2RlbW90aW9uIHdpdGggcmVnaW9uIHN1cHBvcnQuCihtYXJrZG93bi10cy0t
cHJvbW90ZS1vci1kZW1vdGUpCihtYXJrZG93bi10cy0tcHJvbW90ZS1vci1kZW1vdGUtcmVnaW9u
KTogTmV3IGhlYWRpbmcgbGV2ZWwKYWRqdXN0bWVudCBmdW5jdGlvbnMuCihtYXJrZG93bi10cy1t
b3ZlLXN1YnRyZWUtdXAsIG1hcmtkb3duLXRzLW1vdmUtc3VidHJlZS1kb3duKToKTmV3IGNvbW1h
bmRzIGZvciBtb3Zpbmcgc2VjdGlvbnMgYW5kIGxpc3QgaXRlbXMuCihtYXJrZG93bi10cy0tc2Vj
dGlvbi1mb2xkZWQtcCkKKG1hcmtkb3duLXRzLS1tb3ZlLXN1YnRyZWUtdXAtb3ItZG93bik6IE5l
dyBzdWJ0cmVlIG1vdmUgd2l0aApmb2xkaW5nIHN0YXRlIHByZXNlcnZhdGlvbi4KKG1hcmtkb3du
LXRzLXRvZ2dsZS1jaGVja2JveCk6IE5ldyBjb21tYW5kIHRvIHRvZ2dsZSB0YXNrIGxpc3QKY2hl
Y2tib3hlcy4KKG1hcmtkb3duLXRzLS1saXN0LWl0ZW0tYXQtcG9pbnQpOiBOZXcgaGVscGVyIHdp
dGggYmxvY2sgcXVvdGUKbWFya2VyIGhhbmRsaW5nLgoobWFya2Rvd24tdHMtLWxpc3QtbWFya2Vy
LXdpZHRoLCBtYXJrZG93bi10cy0tbGlzdC1pdGVtLXJlZ2lvbikKKG1hcmtkb3duLXRzLS1saXN0
LW9yZGVyZWQtaXRlbS1wKTogTmV3IGxpc3QgaXRlbSBoZWxwZXJzLgoobWFya2Rvd24tdHMtLWxp
c3QtcHJvbW90ZS1vci1kZW1vdGUpOiBOZXcgZnVuY3Rpb24gd2l0aCBvcmRlcmVkCmxpc3QgbmVz
dGluZyBndWFyZC4KKG1hcmtkb3duLXRzLS1saXN0LW5vZGUtYm9sLCBtYXJrZG93bi10cy0tbGlz
dC1tb3ZlKTogTmV3IGxpc3QKaXRlbSBtb3ZlbWVudCBmdW5jdGlvbnMuCihtYXJrZG93bi10cy1y
ZW51bWJlci1saXN0KTogTmV3IGNvbW1hbmQgZm9yIHNlcXVlbnRpYWwgbGlzdApyZW51bWJlcmlu
ZyB3aXRoIHByZWZpeCBhcmd1bWVudCBzdXBwb3J0LgoobWFya2Rvd24tdHMtLWxpc3QtaXRlbS1u
ZXctbWFya2VyKQoobWFya2Rvd24tdHMtLW5ldy1tYXJrZXItZm9yLWxpbmUpOiBOZXcgbWFya2Vy
IHN0cmluZyBnZW5lcmF0b3JzCmZvciBsaXN0IGl0ZW0gaW5zZXJ0aW9uLgoobWFya2Rvd24tdHMt
LWxpbmUtYmxvY2stcXVvdGUtZGVwdGgpOiBOZXcgaGVscGVyIGNvdW50aW5nIGJsb2NrCnF1b3Rl
IGRlcHRoLgoobWFya2Rvd24tdHMtbmV3bGluZSk6IE5ldyBSRVQgY29tbWFuZCBmb3IgY29udGV4
dC1hd2FyZQpuZXdsaW5lLgoobWFya2Rvd24tdHMtaW5zZXJ0LWxpc3QtaXRlbSk6IE5ldyBNLVJF
VCBjb21tYW5kIHRoYXQgY3JlYXRlcyBhCm5ldyBsaXN0IGl0ZW0uCihtYXJrZG93bi10cy0tZmls
bC11bmZpbGxhYmxlLWJsb2NrLXF1ZXJ5KTogTmV3IHRyZWUtc2l0dGVyCnF1ZXJ5IGZvciB1bmZp
bGxhYmxlIGJsb2Nrcy4KKG1hcmtkb3duLXRzLS1saXN0LWl0ZW0tdGV4dC1jb2x1bW4pOiBOZXcg
aGVscGVyIGZvciBsaXN0IGl0ZW0KdGV4dCBhbGlnbm1lbnQuCihtYXJrZG93bi10cy0tZmlsbC1s
aXN0LWl0ZW0pOiBOZXcgZnVuY3Rpb24gZmlsbGluZyB3aXRoaW4gbGlzdAppdGVtcyB3aXRob3V0
IG1lcmdpbmcgYWRqYWNlbnQgaXRlbXMuCihtYXJrZG93bi10cy0tYWRhcHRpdmUtZmlsbCk6IE5l
dyBhZGFwdGl2ZSBmaWxsIGZ1bmN0aW9uIGZvcgpsaXN0IGl0ZW0gY29udGludWF0aW9uLgoobWFy
a2Rvd24tdHMtLWZpbGwtZm9yd2FyZC1wYXJhZ3JhcGgpOiBOZXcgcGFyYWdyYXBoIG1vdGlvbgpy
ZXNwZWN0aW5nIGxpc3QgaXRlbXMgYW5kIHVuZmlsbGFibGUgYmxvY2tzLgoobWFya2Rvd24tdHMt
ZmlsbC1wYXJhZ3JhcGgpOiBOZXcgZmlsbC1wYXJhZ3JhcGgtZnVuY3Rpb24gd2l0aApjb25kKiBk
aXNwYXRjaCBmb3IgbGlzdHMsIGJsb2NrIHF1b3RlcywgSFRNTCBjb21tZW50cywgYW5kCnVuZmls
bGFibGUgYmxvY2tzLgoobWFya2Rvd24tdHMtLWZpbGwtaHRtbC1jb21tZW50KTogTmV3IEhUTUwg
Y29tbWVudCBmaWxsZXIgd2l0aApjb250aW51YXRpb24gYWxpZ25tZW50LgoobWFya2Rvd24tdHMt
LWJsb2NrLXF1b3RlLXByZWZpeCk6IE5ldyBoZWxwZXIgcHJlc2VydmluZwpleGlzdGluZyBibG9j
ayBxdW90ZSBtYXJrZXIgc3R5bGUuCihtYXJrZG93bi10cy0tZmlsbC1ibG9jay1xdW90ZSk6IE5l
dyBibG9jayBxdW90ZSBmaWxsZXIgd2l0aApsaXN0IGl0ZW0gdGV4dCBjb2x1bW4gYWxpZ25tZW50
LgoobWFya2Rvd24tdHMtZW1waGFzaXMtYWxpc3QpOiBOZXcgYWxpc3Qgb2YgZW1waGFzaXMgbWFy
a2Vycy4KKG1hcmtkb3duLXRzLS1lbXBoYXNpcy1ub2RlLWF0LXBvaW50KTogTmV3IHRyZWUtc2l0
dGVyIGJhc2VkCmVtcGhhc2lzIGRldGVjdGlvbi4KKG1hcmtkb3duLXRzLXJlbW92ZS1lbXBoYXNp
cyk6IE5ldyBjb21tYW5kIHJlbW92aW5nIGVtcGhhc2lzIGF0CnBvaW50IG9yIHJlZ2lvbi4KKG1h
cmtkb3duLXRzLWVtcGhhc2l6ZSk6IE5ldyBpbnRlcmFjdGl2ZSBlbXBoYXNpcyBpbnNlcnRpb24g
d2l0aApyZWdpb24gd3JhcHBpbmcgYW5kIHdvcmQtYXQtcG9pbnQgc3VwcG9ydC4KKG1hcmtkb3du
LXRzLWluc2VydC1zdHJ1Y3R1cmUpOiBOZXcgY29tbWFuZCBmb3IgaW5zZXJ0aW5nIGNvZGUKYmxv
Y2tzLCBibG9jayBxdW90ZXMsIGFuZCBkaXZpZGVycy4KKG1hcmtkb3duLXRzLS1pbnNlcnQtY29k
ZS1ibG9jayk6IE5ldyBmdW5jdGlvbiB3aXRoIGxhbmd1YWdlCmNvbXBsZXRpb24gZnJvbSBrbm93
biBtb2Rlcy4KKG1hcmtkb3duLXRzLS1pbnNlcnQtYmxvY2stcXVvdGUpOiBOZXcgZnVuY3Rpb24g
d2l0aCByZWdpb24Kd3JhcHBpbmcuCihtYXJrZG93bi10cy0taW5zZXJ0LWRpdmlkZXIpOiBOZXcg
ZnVuY3Rpb24gZm9yIGhvcml6b250YWwKcnVsZXMuCihtYXJrZG93bi10cy0tYXBwbHktZWxsaXBz
aXMpOiBOZXcgZnVuY3Rpb24gYXBwbHlpbmcgY3VzdG9tCmVsbGlwc2lzIHZpYSBkaXNwbGF5IHRh
YmxlLgoobWFya2Rvd24tdHMtLXNldC11cCk6IFJlbmFtZWQgZnJvbSBtYXJrZG93bi10cy1zZXR1
cC4KKG1hcmtkb3duLXRzLW91dGxpbmUtY3ljbGUpOiBOZXcgVEFCIGNvbW1hbmQgY3ljbGluZyBv
dXRsaW5lCnZpc2liaWxpdHkgb24gaGVhZGluZ3MuCihtYXJrZG93bi10cy1tb2RlLW1hcCk6IE5l
dyBrZXltYXAgZm9yIGNvZGUgYmxvY2sgbmF2aWdhdGlvbiwKYmluZGluZ3MgZm9yIGhlYWRpbmcg
bmF2aWdhdGlvbiwgc3RydWN0dXJlIGVkaXRpbmcsIGVtcGhhc2lzLAphbmQgbGlzdCBvcGVyYXRp
b25zLgoobWFya2Rvd24tdHMtY29kZS1ibG9jay1tb2RlLW1hcCk6IE5ldyBrZXltYXAgZm9yIGNv
ZGUgYmxvY2sKY29udGV4dC4KKG1hcmtkb3duLXRzLW1vZGUtbWVudSk6IE5ldyBtZW51IGJhciB3
aXRoIFNob3cvSGlkZSwgTmF2aWdhdGUKSGVhZGluZ3MsIEVkaXQgU3RydWN0dXJlLCBhbmQgRWRp
dGluZyBzZWN0aW9ucy4KKG1hcmtkb3duLXRzLW1vZGUpOiBBZGQgb3V0bGluZS1taW5vci1tb2Rl
LCBlbGxpcHNpcywgZm9sZGluZywKZmlsbC1wYXJhZ3JhcGggaW50ZWdyYXRpb24sIGNvZGUtYmxv
Y2stbW9kZSBob29rcywgY29tbWVudApzZXR0aW5ncywgYW5kIG91dGxpbmUtdmlldy1jaGFuZ2Ut
aG9vay4gIFVzZSBtYXJrZG93bi10cy1tb2RlCmRpcmVjdGx5IGluIGF1dG8tbW9kZS1hbGlzdCBp
bnN0ZWFkIG9mIG1hcmtkb3duLXRzLW1vZGUtbWF5YmUuCihtYXJrZG93bi10cy1tb2RlLWluc3Rh
bGwtcGFyc2Vycyk6IE5ldyBjb21tYW5kIGZvciBpbnN0YWxsaW5nCnJlcXVpcmVkIGFuZCBvcHRp
b25hbCB0cmVlLXNpdHRlciBsYW5ndWFnZSBncmFtbWFycy4KKG1hcmtkb3duLXRzLWNvZGUtYmxv
Y2stbW9kZSk6IE5ldyBtaW5vciBtb2RlIGZvciBjb2RlIGJsb2NrCmNvbnRleHQuCihtYXJrZG93
bi10cy0tZmluZC1jb2RlLWJsb2NrLWRlbGltaXRlcikKKG1hcmtkb3duLXRzLS1maW5kLW5leHQt
Y29kZS1ibG9jay1kZWxpbWl0ZXIpOiBOZXcgaGVscGVycyBmb3IKbG9jYXRpbmcgZmVuY2VkIGNv
ZGUgYmxvY2sgZGVsaW1pdGVyIG5vZGVzLgoobWFya2Rvd24tdHMtbW92ZS10by1uZXh0LWNvZGUt
YmxvY2spCihtYXJrZG93bi10cy1tb3ZlLXRvLXByZXZpb3VzLWNvZGUtYmxvY2spOiBOZXcgY29t
bWFuZHMgZm9yCm5hdmlnYXRpbmcgYmV0d2VlbiBmZW5jZWQgY29kZSBibG9ja3MuCihtYXJrZG93
bi10cy1tb2RlLW1heWJlKTogUmVtb3ZlOyBhdXRvLW1vZGUtYWxpc3Qgbm93IHVzZXMKbWFya2Rv
d24tdHMtbW9kZSBkaXJlY3RseS4KQXV0by1tb2RlLWFsaXN0OiBBZGQgLm1hcmtkb3duIGFuZCAu
bWR4IGV4dGVuc2lvbnMuCkluY2x1ZGVzIGZpeGVzIGZvcjogKGJ1ZyM4MDYxMykgKGJ1ZyM4MDYy
NSkgKGJ1ZyM4MDY5MCkKCkNvLWF1dGhvcmVkLWJ5OiBTdMOpcGhhbmUgTWFya3MgPHNoaXBtaW50
c0BnbWFpbC5jb20+Ci0tLQogbGlzcC90ZXh0bW9kZXMvbWFya2Rvd24tdHMtbW9kZS5lbCB8IDM0
NDggKysrKysrKysrKysrKysrKysrKysrKysrKy0tLQogMSBmaWxlIGNoYW5nZWQsIDMxNjYgaW5z
ZXJ0aW9ucygrKSwgMjgyIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2xpc3AvdGV4dG1vZGVz
L21hcmtkb3duLXRzLW1vZGUuZWwgYi9saXNwL3RleHRtb2Rlcy9tYXJrZG93bi10cy1tb2RlLmVs
CmluZGV4IDY1N2Q2YmM0NjZkLi40N2MxOTcwMTY1NyAxMDA2NDQKLS0tIGEvbGlzcC90ZXh0bW9k
ZXMvbWFya2Rvd24tdHMtbW9kZS5lbAorKysgYi9saXNwL3RleHRtb2Rlcy9tYXJrZG93bi10cy1t
b2RlLmVsCkBAIC0xLDExICsxLDEzIEBACi07OzsgbWFya2Rvd24tdHMtbW9kZS5lbCAtLS0gdHJl
ZSBzaXR0ZXIgc3VwcG9ydCBmb3IgTWFya2Rvd24gIC0qLSBsZXhpY2FsLWJpbmRpbmc6IHQ7IC0q
LQorOzs7IG1hcmtkb3duLXRzLW1vZGUuZWwgLS0tIHRyZWUgc2l0dGVyIHN1cHBvcnQgZm9yIE1h
cmtkb3duIC0qLSBsZXhpY2FsLWJpbmRpbmc6IHQ7IC0qLQogCiA7OyBDb3B5cmlnaHQgKEMpIDIw
MjQtMjAyNiBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KIAotOzsgQXV0aG9yICAgICA6
IFJhaHVsIE1hcnRpbSBKdWxpYXRvIDxyYWh1bC5qdWxpYXRvQGdtYWlsLmNvbT4KLTs7IE1haW50
YWluZXIgOiBSYWh1bCBNYXJ0aW0gSnVsaWF0byA8cmFodWwuanVsaWF0b0BnbWFpbC5jb20+Ci07
OyBDcmVhdGVkICAgIDogQXByaWwgMjAyNAotOzsgS2V5d29yZHMgICA6IG1hcmtkb3duIG1kIGxh
bmd1YWdlcyB0cmVlLXNpdHRlcgorOzsgQXV0aG9yICAgICAgICAgICA6IFJhaHVsIE1hcnRpbSBK
dWxpYXRvIDxyYWh1bC5qdWxpYXRvQGdtYWlsLmNvbT4KKzs7IE1haW50YWluZXIgICAgICAgOiBS
YWh1bCBNYXJ0aW0gSnVsaWF0byA8cmFodWwuanVsaWF0b0BnbWFpbC5jb20+Cis7OyBDcmVhdGVk
ICAgICAgICAgIDogQXByaWwgMjAyNAorOzsgVmVyc2lvbiAgICAgICAgICA6ICAxLjAKKzs7IFBh
Y2thZ2UtUmVxdWlyZXMgOiAoKGVtYWNzICIzMS4xIikpCis7OyBLZXl3b3JkcyAgICAgICAgIDog
bWFya2Rvd24gbWQgdGV4dCBlZGl0IGxhbmd1YWdlcyB0cmVlLXNpdHRlcgogCiA7OyBUaGlzIGZp
bGUgaXMgcGFydCBvZiBHTlUgRW1hY3MuCiAKQEAgLTIyLDEzOCArMjQsNDgzIEBACiA7OyBZb3Ug
c2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGlj
ZW5zZQogOzsgYWxvbmcgd2l0aCBHTlUgRW1hY3MuICBJZiBub3QsIHNlZSA8aHR0cHM6Ly93d3cu
Z251Lm9yZy9saWNlbnNlcy8+LgogCi07OzsgVHJlZS1zaXR0ZXIgbGFuZ3VhZ2UgdmVyc2lvbnMK
Kzs7OyBDb21tZW50YXJ5OgorCis7OyBUcmVlLXNpdHRlciBMYW5ndWFnZSBWZXJzaW9ucwogOzsK
IDs7IG1hcmtkb3duLXRzLW1vZGUgaGFzIGJlZW4gdGVzdGVkIHdpdGggdGhlIGZvbGxvd2luZyBn
cmFtbWFycyBhbmQgdmVyc2lvbjoKIDs7IC0gdHJlZS1zaXR0ZXItbWFya2Rvd246IHYwLjQuMQog
OzsgLSB0cmVlLXNpdHRlci1tYXJrZG93bi1pbmxpbmU6IHYwLjQuMQogOzsKLTs7IFdlIHRyeSBv
dXIgYmVzdCB0byBtYWtlIGJ1aWx0aW4gbW9kZXMgd29yayB3aXRoIGxhdGVzdCBncmFtbWFyCi07
OyB2ZXJzaW9ucywgc28gYSBtb3JlIHJlY2VudCBncmFtbWFyIGhhcyBhIGdvb2QgY2hhbmNlIHRv
IHdvcmsgdG9vLgotOzsgU2VuZCB1cyBhIGJ1ZyByZXBvcnQgaWYgaXQgZG9lc24ndC4KLQotOzs7
IENvbW1lbnRhcnk6Cis7OyBXZSB0cnkgb3VyIGJlc3QgdG8gbWFrZSBidWlsdC1pbiBtb2RlcyB3
b3JrIHdpdGggbGF0ZXN0IGdyYW1tYXIKKzs7IHZlcnNpb25zLCBzbyBhIG1vcmUgcmVjZW50IGdy
YW1tYXIgaGFzIGEgZ29vZCBjaGFuY2UgdG8gd29yay4gIFNlbmQKKzs7IHVzIGEgYnVnIHJlcG9y
dCBpZiBpdCBkb2Vzbid0LgorOzsKKzs7IEJpZGlyZWN0aW9uYWwgVGV4dCBDb25zaWRlcmF0aW9u
cworOzsKKzs7IFRleHQgd2l0aCBtYXJrdXAgbWF5IG5lZWQgYW4gZXh0cmEgbmV3bGluZSBiZWZv
cmUgYmlkaXJlY3Rpb25hbCB0ZXh0Cis7OyBmb3IgaXQgdG8gc2hvdyBjb3JyZWN0bHkuICBUaGlz
IGlzIGEgbGltaXRhdGlvbiBpbiB0aGUgRW1hY3MgZGlzcGxheQorOzsgZW5naW5lLgorOzsKKzs7
IENvZGUgQmxvY2sgTGFuZ3VhZ2UgTW9kZSBDb25zaWRlcmF0aW9ucworOzsKKzs7IEZlbmNlZCBj
b2RlIGJsb2NrIGxhbmd1YWdlIG1vZGVzIGFyZSBkZXJpdmVkIGZyb20gdGhlIHRhYmxlCis7OyBg
bWFya2Rvd24tdHMtY29kZS1ibG9jay1tb2RlcycgYW5kIGhldXJpc3RpY3MgYWRkaW5nICItdHMt
bW9kZSIgYW5kCis7OyAiLW1vZGUiIHRvIHRoZSBsYW5ndWFnZSBuYW1lLiAgSWYgeW91ciBsYW5n
dWFnZSdzIG1vZGUgaXMgbm90Cis7OyBwcm9wZXJseSByZWNvZ25pemVkLCBhZGQgaXQgdG8gYG1h
cmtkb3duLXRzLWNvZGUtYmxvY2stbW9kZXMnLCB3aGljaAorOzsgc2VlLgorOzsKKzs7IEVhY2gg
bGFuZ3VhZ2UncyBtYWpvciBtb2RlIGlzIGVuYWJsZWQgb25jZSBwZXIgYG1hcmtkb3duLXRzLW1v
ZGUnCis7OyBidWZmZXIgaW4gYSB0ZW1wb3JhcnkgYnVmZmVyIHRvIGV4dHJhY3QgaXRzIGRlZmF1
bHQgZm9udC1sb2NrIGFuZAorOzsgdHJlZS1zaXR0ZXIgc2V0dGluZ3MuICBJbiBjb252ZW50aW9u
YWwgbm9uLXRyZWVzaXQgY29kZSBibG9ja3MsIHRoZQorOzsgbWFqb3IgbW9kZSBpcyBlbmFibGVk
IGVhY2ggdGltZSB0aGUgYmxvY2sgaXMgZm9udGlmaWVkLgorOzsKKzs7IE5PVEU6IE1ham9yIG1v
ZGUgaG9va3MgYXJlIG5vdCBydW4gYW5kIGZvbnQtbG9jaywgdHJlZXNpdCwgaW5kZW50LAorOzsg
Y29tbWVudCByZWNvZ25pdGlvbiwgZXRjLiBjdXN0b21pemF0aW9ucyB5b3UgbWlnaHQgaGF2ZSBp
biB5b3VyIGhvb2tzCis7OyBhcmUgbm90IGFwcGxpZWQuICBBcyBhIHJlc3VsdCwgeW91ciBjb2Rl
IGJsb2NrcyBtaWdodCBhcHBlYXIKKzs7IGRpZmZlcmVudCBpbiBgbWFya2Rvd24tdHMtbW9kZScg
bW9kZSB0aGFuIGluIG5hdGl2ZSBsYW5ndWFnZSBtYWpvcgorOzsgbW9kZSBidWZmZXJzLiAgTm90
IHJ1bm5pbmcgaG9va3MgYXZvaWRzIHRoZSBjb3N0IG9mIGVhY2ggbW9kZSBob29rCis7OyBhbmQg
YXZvaWRzIGNlcnRhaW4gcmVjdXJzaXZlIHRyZWVzaXQgY2FsbGJhY2sgaXNzdWVzLgogOzsKKzs7
IENvZGUgQmxvY2sgQ29tbWFuZHMKKzs7Cis7OyBTb21lIGNvbW1vbiBjb21tYW5kcyB3aWxsIG9w
ZXJhdGUgd2l0aGluIGEgY29kZSBibG9jayBhbmQgaW4gaXRzCis7OyBtb2RlLiAgVGhpcyBpcyBp
bXBsZW1lbnRlZCB1c2luZyBhbiBpbmRpcmVjdCBidWZmZXIgYW5kIHNvbWUgY29tbWFuZHMKKzs7
IG1heSBvcGVyYXRlIHNsaWdodGx5IGRpZmZlcmVudGx5IHRvIHRoZSBzYW1lIGNvbW1hbmRzIGlu
dm9rZWQgaW4gYQorOzsgbmF0aXZlIG1vZGUgYnVmZmVyLgorOzsKKzs7IFRyZWUgU2l0dGVyIEJ1
Z3MKKzs7Cis7OyBgbWFya2Rvd24tdHMtbW9kZScgcmVsaWVzIG9uIHRoZSB1bmRlcmx5aW5nIHRy
ZWUtc2l0dGVyIGxpYnJhcnkgaW4KKzs7IEVtYWNzIChjaG9zZW4gYXQgaXRzIGJ1aWxkIHRpbWUp
LCBhbmQgbGFuZ3VhZ2UgZ3JhbW1hcnMgeW91IGhhdmUKKzs7IGluc3RhbGxlZC4gIFRoZXJlIGFy
ZSBrbm93biBhbmQgcmVwb3J0ZWQgYnVncyB3aGljaCBuZWdhdGl2ZWx5IGFmZmVjdAorOzsgY2Vy
dGFpbiBmZWF0dXJlcy4gIFRoaXMgbW9kZSBzaG91bGQgYmVuZWZpdCBhcyB0aGVzZSBidWdzIGFy
ZSBmaXhlZAorOzsgb3Igd29ya2VkIGFyb3VuZC4KKzs7Cis7OyAtIFRoZSBNYXJrZG93biBncmFt
bWFyIGluc2VydHMgYmxvY2tfY29udGludWF0aW9uIG5vZGVzIGFzIGNoaWxkcmVuCis7OyAgIG9m
IGNvZGVfZmVuY2VfY29udGVudCwgd2hpY2ggY29uZnVzZXMgYm90aCB0aGUgaW5zcGVjdG9yIGFu
ZCB0aGUKKzs7ICAgZW1iZWRkZWQgcGFyc2VyLiAgVGhpcyBhZmZlY3RzIGNvZGUgYmxvY2tzIGlu
c2lkZSBibG9jayBxdW90ZXMuCis7OworOzsgLSBIVE1MIGJsb2NrIHR5cGUgNCAoYDwhJyBmb2xs
b3dlZCBieSBhbiB1cHBlcmNhc2UgbGV0dGVyLCBlLmcuLAorOzsgICBgPCFET0NUWVBFIGh0bWw+
JykgY2F1c2VzIHRoZSBwYXJzZXIgdG8gY29uc3VtZSBhbGwgc3Vic2VxdWVudAorOzsgICBjb250
ZW50LiAgTG93ZXJjYXNlIGA8IWRvY3R5cGUgaHRtbD4nIHdvcmtzIGFzIGEgd29ya2Fyb3VuZC4K
Kzs7ICAgU2VlIDxodHRwczovL2dpdGh1Yi5jb20vdHJlZS1zaXR0ZXItZ3JhbW1hcnMvdHJlZS1z
aXR0ZXItbWFya2Rvd24vaXNzdWVzLzIzMz4uCis7OworOzsgLSBTdXBlcnNjcmlwdCAoYF50ZXh0
XicpIGFuZCBzdWJzY3JpcHQgKGB+dGV4dH4nKSBzeW50YXggaXMgbm90Cis7OyAgIHN1cHBvcnRl
ZCBieSB0aGUgZ3JhbW1hci4gIE5vIEVYVEVOU0lPTl8gYnVpbGQgZmxhZyBleGlzdHMgZm9yCis7
OyAgIHRoaXMuICBUaGlzIGlzIFBhbmRvYyAvIFBIUCBNYXJrZG93biBFeHRyYSBzeW50YXgsIG5v
dCBDb21tb25NYXJrCis7OyAgIG9yIEdGTS4KKzs7Cis7OyAtIE9yZGVyZWQgKG51bWJlcmVkKSBs
aXN0cyBkbyBub3QgbmVzdCBieSBpbmRlbnRhdGlvbi4gIEluZGVudGluZworOzsgICBhIGAxLicg
aXRlbSB1bmRlciBhbm90aGVyIG9yZGVyZWQgaXRlbSBkb2VzIG5vdCBwcm9kdWNlIGEgbmVzdGVk
Cis7OyAgIGxpc3Qgbm9kZTsgdGhlIHBhcnNlciBlaXRoZXIgdHJlYXRzIGl0IGFzIGEgZmxhdCBz
aWJsaW5nIG9yCis7OyAgIGFic29yYnMgaXQgaW50byB0aGUgcGFyZW50IGl0ZW0ncyBwYXJhZ3Jh
cGggYXMgYQorOzsgICBibG9ja19jb250aW51YXRpb24uICBVbm9yZGVyZWQgKGAtJywgYConLCBg
KycpIGxpc3RzIG5lc3QKKzs7ICAgY29ycmVjdGx5LiAgRGVtb3RlL3Byb21vdGUgb2Ygb3JkZXJl
ZCBsaXN0IGl0ZW1zIGlzIHRoZXJlZm9yZQorOzsgICBkaXNhYmxlZC4KKzs7Cis7OyAtIFJlbnVt
YmVyaW5nIG9yZGVyZWQgbGlzdHMgKGBtYXJrZG93bi10cy1yZW51bWJlci1saXN0JykgbWF5IG9u
bHkKKzs7ICAgYWZmZWN0IGl0ZW1zIGZyb20gcG9pbnQgZG93bndhcmQgaWYgdGhlIHBhcnNlciBz
cGxpdHMgYSBzaW5nbGUKKzs7ICAgbGlzdCBpbnRvIHNlcGFyYXRlIGBsaXN0JyBub2Rlcywgb3Ig
bWF5IGNvbnRpbnVlIG51bWJlcmluZyBhY3Jvc3MKKzs7ICAgdHdvIHNlcGFyYXRlIGxpc3RzIGlm
IHRoZSBwYXJzZXIgbWVyZ2VzIHRoZW0gaW50byBvbmUgbm9kZS4KKzs7Cis7OyAtIEVtcHR5IGxp
bmVzIGZvbGxvd2luZyBhbiBgaW5kZW50ZWRfY29kZV9ibG9jaycgbWF5IGJlIGNsYWltZWQgYnkK
Kzs7ICAgdGhlIHBhcnNlciBhcyBjb250aW51YXRpb24gbGluZXMgb2YgdGhhdCBibG9jaywgcmF0
aGVyIHRoYW4gYmVpbmcKKzs7ICAgdHJlYXRlZCBhcyBibGFuayBzZXBhcmF0b3JzLgogCiA7Ozsg
Q29kZToKIAogKHJlcXVpcmUgJ3RyZWVzaXQpCiAocmVxdWlyZSAnc3Vici14KQotKHJlcXVpcmUg
J291dGxpbmUpCiAocmVxdWlyZSAnc2VxKQorKHJlcXVpcmUgJ291dGxpbmUpCisocmVxdWlyZSAn
Z290by1hZGRyKQorKHJlcXVpcmUgJ3hyZWYpCiAKLSh0cmVlc2l0LWRlY2xhcmUtdW5hdmFpbGFi
bGUtZnVuY3Rpb25zKQotCi0oYWRkLXRvLWxpc3QKLSAndHJlZXNpdC1sYW5ndWFnZS1zb3VyY2Ut
YWxpc3QKLSAnKG1hcmtkb3duCi0gICAiaHR0cHM6Ly9naXRodWIuY29tL3RyZWUtc2l0dGVyLWdy
YW1tYXJzL3RyZWUtc2l0dGVyLW1hcmtkb3duIgotICAgOmNvbW1pdCAiNDEzMjg1MjMxY2U4ZmE4
YjExZTcwNzRiYmUyNjViNDhhYTcyNzdmOSIKLSAgIDpzb3VyY2UtZGlyICJ0cmVlLXNpdHRlci1t
YXJrZG93bi9zcmMiKQotIHQpCi0oYWRkLXRvLWxpc3QKLSAndHJlZXNpdC1sYW5ndWFnZS1zb3Vy
Y2UtYWxpc3QKLSAnKG1hcmtkb3duLWlubGluZQotICAgImh0dHBzOi8vZ2l0aHViLmNvbS90cmVl
LXNpdHRlci1ncmFtbWFycy90cmVlLXNpdHRlci1tYXJrZG93biIKLSAgIDpjb21taXQgIjQxMzI4
NTIzMWNlOGZhOGIxMWU3MDc0YmJlMjY1YjQ4YWE3Mjc3ZjkiCi0gICA6c291cmNlLWRpciAidHJl
ZS1zaXR0ZXItbWFya2Rvd24taW5saW5lL3NyYyIpCi0gdCkKLQotOzs7IEhlbHBlciBmdW5jdGlv
bnMKLQotKGRlZnZhciBtYXJrZG93bi10cy0tY29kZS1ibG9jay1sYW5ndWFnZS1tYXAKLSAgJygo
ImMrKyIgLiBjcHApCi0gICAgKCJjIyIgLiBjLXNoYXJwKQotICAgICgic2giIC4gYmFzaCkpCi0g
ICJBbGlzdCBtYXBwaW5nIGNvZGUgYmxvY2sgbGFuZ3VhZ2UgbmFtZXMgdG8gdHJlZS1zaXR0ZXIg
bGFuZ3VhZ2VzLgotCi1LZXlzIHNob3VsZCBiZSBzdHJpbmdzLCBhbmQgdmFsdWVzIHNob3VsZCBi
ZSBsYW5ndWFnZSBzeW1ib2xzLgotCi1Gb3IgZXhhbXBsZSwgXCJjKytcIiBpbgotCi0gICAgYGBg
YysrCi0gICAgaW50IG1haW4oKSB7Ci0gICAgICAgIHJldHVybiAwOwotICAgIH0KLSAgICBgYGAK
LQotbWFwcyB0byB0cmVlLXNpdHRlciBsYW5ndWFnZSBgY3BwJy4iKQorOzs7IEN1c3RvbWl6YXRp
b25zOgogCi0oZGVmdmFyIG1hcmtkb3duLXRzLWNvZGUtYmxvY2stc291cmNlLW1vZGUtbWFwCi0g
ICcoKGJhc2ggLiBiYXNoLXRzLW1vZGUpCi0gICAgKGMgLiBjLXRzLW1vZGUpCi0gICAgKGMtc2hh
cnAgLiBjc2hhcnAtdHMtbW9kZSkKLSAgICAoY21ha2UgLiBjbWFrZS10cy1tb2RlKQotICAgIChj
cHAgLiBjKystdHMtbW9kZSkKLSAgICAoY3NzIC4gY3NzLXRzLW1vZGUpCi0gICAgKGRvY2tlcmZp
bGUgLiBkb2NrZXJmaWxlLXRzLW1vZGUpCi0gICAgKGVsaXhpciAuIGVsaXhpci10cy1tb2RlKQot
ICAgIChnbyAuIGdvLXRzLW1vZGUpCi0gICAgKGdvbW9kIC4gZ28tbW9kLXRzLW1vZGUpCi0gICAg
KGdvd29yayAuIGdvLXdvcmstdHMtbW9kZSkKLSAgICAoaGVleCAuIGhlZXgtdHMtbW9kZSkKLSAg
ICAoaHRtbCAuIGh0bWwtdHMtbW9kZSkKLSAgICAoamF2YSAuIGphdmEtdHMtbW9kZSkKLSAgICAo
amF2YXNjcmlwdCAuIGpzLXRzLW1vZGUpCi0gICAgKGpzb24gLiBqc29uLXRzLW1vZGUpCi0gICAg
KGx1YSAuIGx1YS10cy1tb2RlKQotICAgIChwaHAgLiBwaHAtdHMtbW9kZSkKLSAgICAocHl0aG9u
IC4gcHl0aG9uLXRzLW1vZGUpCi0gICAgKHJ1YnkgLiBydWJ5LXRzLW1vZGUpCi0gICAgKHJ1c3Qg
LiBydXN0LXRzLW1vZGUpCi0gICAgKHRvbWwgLiB0b21sLXRzLW1vZGUpCi0gICAgKHRzeCAuIHRz
eC10cy1tb2RlKQotICAgICh0eXBlc2NyaXB0IC4gdHlwZXNjcmlwdC10cy1tb2RlKQotICAgICh5
YW1sIC4geWFtbC10cy1tb2RlKSkKLSAgIkFuIGFsaXN0IG9mIHN1cHBvcnRlZCBjb2RlIGJsb2Nr
IGxhbmd1YWdlcyBhbmQgdGhlaXIgbWFqb3IgbW9kZS4iKQorKGRlZmdyb3VwIG1hcmtkb3duLXRz
IG5pbAorICAiTWFqb3IgbW9kZSBmb3Igdmlld2luZyBhbmQgZWRpdGluZyBNYXJrZG93biBidWZm
ZXJzLiIKKyAgOnByZWZpeCAibWFya2Rvd24tdHMtIgorICA6Z3JvdXAgJ3RleHQKKyAgOmdyb3Vw
ICdlZGl0aW5nCisgIDp2ZXJzaW9uICIzMS4xIikKIAogKGRlZmN1c3RvbSBtYXJrZG93bi10cy1o
aWRlLW1hcmt1cCBuaWwKICAgIk5vbi1uaWwgbWVhbnMgaGlkZSBNYXJrZG93biBtYXJrdXAgZGVs
aW1pdGVycyBpbiB0aGlzIGJ1ZmZlci4iCiAgIDp0eXBlICdib29sZWFuCiAgIDpzYWZlICMnYm9v
bGVhbnAKLSAgOmdyb3VwICdtYXJrZG93bi10cykKLQotOzs7IEZhY2VzCisgIDp2ZXJzaW9uICIz
MS4xIgorICA6cGFja2FnZS12ZXJzaW9uICIxLjAiKQorCisoZGVmY3VzdG9tIG1hcmtkb3duLXRz
LWVsbGlwc2lzIG5pbAorICAiVGhlIGVsbGlwc2lzIHRvIHVzZSBpbiBmb2xkZWQgaGVhZGluZ3Mu
CitXaGVuIG5pbCwgdXNlIHRoZSBzdGFuZGFyZCB0aHJlZSBkb3RzLiAgV2hlbiBhIG5vbi1lbXB0
eSBzdHJpbmcsCit1c2UgdGhhdCBzdHJpbmcgaW5zdGVhZC4iCisgIDp0eXBlICcoY2hvaWNlIChj
b25zdCAgOnRhZyAiRGVmYXVsdCAoLi4uKSIgbmlsKQorICAgICAgICAgICAgICAgICAoc3RyaW5n
IDp0YWcgIlN0cmluZyIgOnZhbHVlICIg4oyEIikpCisgIDpzYWZlICMnc3RyaW5nLW9yLW51bGwt
cAorICA6dmVyc2lvbiAiMzEuMSIKKyAgOnBhY2thZ2UtdmVyc2lvbiAiMS4wIikKKworKGRlZmN1
c3RvbSBtYXJrZG93bi10cy1tZW51LWJhci1zaG93IHQKKyAgIk5vbi1uaWwgbWVhbnMgc2hvdyB0
aGUgTWFya2Rvd24gbWVudSBpbiB0aGUgbWVudSBiYXIuIgorICA6dHlwZSAnYm9vbGVhbgorICA6
c2FmZSAjJ2Jvb2xlYW5wCisgIDp2ZXJzaW9uICIzMS4xIgorICA6cGFja2FnZS12ZXJzaW9uICIx
LjAiKQorCisoZGVmY3VzdG9tIG1hcmtkb3duLXRzLWRlZmF1bHQtZm9sZGluZyAnc2hvdy1hbGwK
KyAgIkRlZmF1bHQgaGVhZGluZyBmb2xkaW5nIGxldmVsLiIKKyAgOnR5cGUgJyhjaG9pY2UKKyAg
ICAgICAgICAoY29uc3QgOnRhZyAiU2hvdyBldmVyeXRoaW5nIiBzaG93LWFsbCkKKyAgICAgICAg
ICAoY29uc3QgOnRhZyAiRm9sZCBldmVyeXRoaW5nLCBzaG93aW5nIHRvcC1sZXZlbCBoZWFkaW5n
cyIgZm9sZC1hbGwpCisgICAgICAgICAgKGNvbnN0IDp0YWcgIkZvbGQgaGVhZGluZ3MsIHNob3dp
bmcgYWxsIGhlYWRpbmcgbGV2ZWxzIiBmb2xkLWhlYWRpbmdzKSkKKyAgOnNhZmUgIydzeW1ib2xw
CisgIDp2ZXJzaW9uICIzMS4xIgorICA6cGFja2FnZS12ZXJzaW9uICIxLjAiKQorCisoZGVmY3Vz
dG9tIG1hcmtkb3duLXRzLWlubGluZS1pbWFnZXMgbmlsCisgICJOb24tbmlsIG1lYW5zIGRpc3Bs
YXkgaW5saW5lIGltYWdlcyBiZWxvdyBpbWFnZSBsaW5rcy4iCisgIDp0eXBlICdib29sZWFuCisg
IDpzYWZlICMnYm9vbGVhbnAKKyAgOnZlcnNpb24gIjMxLjEiCisgIDpwYWNrYWdlLXZlcnNpb24g
IjEuMCIpCisKKyhkZWZjdXN0b20gbWFya2Rvd24tdHMtaW1hZ2UtbWF4LXdpZHRoICd3aW5kb3cK
KyAgIk1heGltdW0gd2lkdGggb2YgaW5saW5lIGltYWdlcyBpbiBwaXhlbHMuCitXaGVuIGB3aW5k
b3cnLCB1c2UgdGhlIHdpbmRvdyBib2R5IHdpZHRoLiAgV2hlbiBhIG51bWJlciwgdXNlCit0aGF0
IGFzIHRoZSBtYXhpbXVtIHBpeGVsIHdpZHRoLiIKKyAgOnR5cGUgJyhjaG9pY2UgKGNvbnN0ICA6
dGFnICJXaW5kb3cgd2lkdGgiIHdpbmRvdykKKyAgICAgICAgICAgICAgICAgKG5hdG51bSA6dGFn
ICJQaXhlbCB3aWR0aCIpKQorICA6c2FmZSAobGFtYmRhICh2KSAob3IgKGVxIHYgJ3dpbmRvdykg
KG5hdG51bXAgdikpKQorICA6dmVyc2lvbiAiMzEuMSIKKyAgOnBhY2thZ2UtdmVyc2lvbiAiMS4w
IikKKworKGRlZmN1c3RvbSBtYXJrZG93bi10cy1kaXNwbGF5LXJlbW90ZS1pbmxpbmUtaW1hZ2Vz
IG5pbAorICAiSG93IHRvIGRpc3BsYXkgcmVtb3RlIGlubGluZSBpbWFnZXMuCitXaGVuIG5pbCwg
ZG8gbm90IGRpc3BsYXkgcmVtb3RlIGltYWdlcy4gIFdoZW4gYGRvd25sb2FkJywgZmV0Y2ggdGhl
CitpbWFnZSBpbnRvIGEgdGVtcG9yYXJ5IGJ1ZmZlciBhbmQgZGlzcGxheSBpdC4KKworUmVtb3Rl
IGltYWdlcyBhcmUgc2tpcHBlZCBieSBkZWZhdWx0IGZvciBzZWN1cml0eS4iCisgIDp0eXBlICco
Y2hvaWNlIChjb25zdCA6dGFnICJTa2lwIHJlbW90ZSBpbWFnZXMiIG5pbCkKKyAgICAgICAgICAg
ICAgICAgKGNvbnN0IDp0YWcgIkRvd25sb2FkIHJlbW90ZSBpbWFnZXMiIGRvd25sb2FkKSkKKyAg
OnNhZmUgIydzeW1ib2xwCisgIDp2ZXJzaW9uICIzMS4xIgorICA6cGFja2FnZS12ZXJzaW9uICIx
LjAiKQorCisoZGVmY3VzdG9tIG1hcmtkb3duLXRzLWNoZWNrZWQtY2hlY2tib3ggJygi4piRIiAu
ICIrIikKKyAgIklmIG1hcmt1cCBpcyBoaWRkZW4sIGRpc3BsYXkgdGhpcyBmb3IgYSBjaGVja2Vk
IHRhc2sgbGlzdCBtYXJrZXIuCitUaGUgdmFsdWUgaXMgYSBjb25zIChQUkVGRVJSRUQgLiBGQUxM
QkFDSyk6IFBSRUZFUlJFRCBpcyB1c2VkIGlmIGl0cyBmaXJzdAorY2hhcmFjdGVyIHBhc3NlcyBg
Y2hhci1kaXNwbGF5YWJsZS1wJywgb3RoZXJ3aXNlIEZBTExCQUNLIGlzIHVzZWQuCituaWwgZGlz
cGxheXMgdGhlIHJhdyBtYXJrdXAuIgorICA6dHlwZSAnKGNob2ljZSAoY29ucyAoc3RyaW5nIDp0
YWcgIlByZWZlcnJlZCAoR1VJKSIpCisgICAgICAgICAgICAgICAgICAgICAgIChzdHJpbmcgOnRh
ZyAiRmFsbGJhY2sgKFRUWSkiKSkKKyAgICAgICAgICAgICAgICAgKGNvbnN0IDp0YWcgIkRpc3Bs
YXkgb3JpZ2luYWwgbWFya3VwIiBuaWwpKQorICA6c2FmZSAobGFtYmRhICh2KSAob3IgKG51bGwg
dikKKyAgICAgICAgICAgICAgICAgICAgICAgIChhbmQgKGNvbnNwIHYpIChzdHJpbmdwIChjYXIg
dikpIChzdHJpbmdwIChjZHIgdikpKSkpCisgIDp2ZXJzaW9uICIzMS4xIgorICA6cGFja2FnZS12
ZXJzaW9uICIxLjAiKQorCisoZGVmY3VzdG9tIG1hcmtkb3duLXRzLXVuY2hlY2tlZC1jaGVja2Jv
eCAnKCLimJAiIC4gIi0iKQorICAiSWYgbWFya3VwIGlzIGhpZGRlbiwgZGlzcGxheSB0aGlzIGZv
ciBhbiB1bmNoZWNrZWQgdGFzayBsaXN0IG1hcmtlci4KK1RoZSB2YWx1ZSBpcyBhIGNvbnMgKFBS
RUZFUlJFRCAuIEZBTExCQUNLKTogUFJFRkVSUkVEIGlzIHVzZWQgaWYgaXRzIGZpcnN0CitjaGFy
YWN0ZXIgcGFzc2VzIGBjaGFyLWRpc3BsYXlhYmxlLXAnLCBvdGhlcndpc2UgRkFMTEJBQ0sgaXMg
dXNlZC4KK25pbCBkaXNwbGF5cyB0aGUgcmF3IG1hcmt1cC4iCisgIDp0eXBlICcoY2hvaWNlIChj
b25zIChzdHJpbmcgOnRhZyAiUHJlZmVycmVkIChHVUkpIikKKyAgICAgICAgICAgICAgICAgICAg
ICAgKHN0cmluZyA6dGFnICJGYWxsYmFjayAoVFRZKSIpKQorICAgICAgICAgICAgICAgICAoY29u
c3QgOnRhZyAiRGlzcGxheSBvcmlnaW5hbCBtYXJrdXAiIG5pbCkpCisgIDpzYWZlIChsYW1iZGEg
KHYpIChvciAobnVsbCB2KQorICAgICAgICAgICAgICAgICAgICAgICAgKGFuZCAoY29uc3Agdikg
KHN0cmluZ3AgKGNhciB2KSkgKHN0cmluZ3AgKGNkciB2KSkpKSkKKyAgOnZlcnNpb24gIjMxLjEi
CisgIDpwYWNrYWdlLXZlcnNpb24gIjEuMCIpCisKKyhkZWZjdXN0b20gbWFya2Rvd24tdHMtdGhl
bWF0aWMtYnJlYWstY2hhcmFjdGVyICcoP+KUgCAuID8tKQorICAiSWYgbWFya3VwIGlzIGhpZGRl
biwgZGlzcGxheSB0aGlzIGNoYXJhY3RlciBmb3IgdGhlbWF0aWMgYnJlYWtzLgorSXQgaXMgcmVw
ZWF0ZWQgdG8gZmlsbCB0aGUgd2luZG93IHdpZHRoLgorVGhlIHZhbHVlIGlzIGEgY29ucyAoUFJF
RkVSUkVEIC4gRkFMTEJBQ0spOiBQUkVGRVJSRUQgaXMgdXNlZCBpZiBpdCBwYXNzZXMKK2BjaGFy
LWRpc3BsYXlhYmxlLXAnLCBvdGhlcndpc2UgRkFMTEJBQ0sgaXMgdXNlZC4KK25pbCBkaXNwbGF5
cyB0aGUgcmF3IG1hcmt1cC4iCisgIDp0eXBlICcoY2hvaWNlIChjb25zIChjaGFyYWN0ZXIgOnRh
ZyAiUHJlZmVycmVkIChHVUkpIikKKyAgICAgICAgICAgICAgICAgICAgICAgKGNoYXJhY3RlciA6
dGFnICJGYWxsYmFjayAoVFRZKSIpKQorICAgICAgICAgICAgICAgICAoY29uc3QgOnRhZyAiRGlz
cGxheSBvcmlnaW5hbCBtYXJrdXAiIG5pbCkpCisgIDpzYWZlIChsYW1iZGEgKHYpIChvciAobnVs
bCB2KQorICAgICAgICAgICAgICAgICAgICAgICAgKGFuZCAoY29uc3AgdikgKGNoYXJhY3RlcnAg
KGNhciB2KSkgKGNoYXJhY3RlcnAgKGNkciB2KSkpKSkKKyAgOnZlcnNpb24gIjMxLjEiCisgIDpw
YWNrYWdlLXZlcnNpb24gIjEuMCIpCisKKyhkZWZjdXN0b20gbWFya2Rvd24tdHMtaGFyZC1saW5l
LWJyZWFrLWJhY2tzbGFzaCAnKD/CtiAuID98KQorICAiSWYgbWFya3VwIGlzIGhpZGRlbiwgZGlz
cGxheSB0aGlzIGNoYXJhY3RlciBmb3IgYSBiYWNrc2xhc2ggaGFyZCBsaW5lIGJyZWFrLgorVGhl
IHZhbHVlIGlzIGEgY29ucyAoUFJFRkVSUkVEIC4gRkFMTEJBQ0spOiBQUkVGRVJSRUQgaXMgdXNl
ZCBpZiBpdCBwYXNzZXMKK2BjaGFyLWRpc3BsYXlhYmxlLXAnLCBvdGhlcndpc2UgRkFMTEJBQ0sg
aXMgdXNlZC4KK25pbCBrZWVwcyB0aGUgcmF3IG1hcmt1cC4iCisgIDp0eXBlICcoY2hvaWNlIChj
b25zIChjaGFyYWN0ZXIgOnRhZyAiUHJlZmVycmVkIChHVUkpIikKKyAgICAgICAgICAgICAgICAg
ICAgICAgKGNoYXJhY3RlciA6dGFnICJGYWxsYmFjayAoVFRZKSIpKQorICAgICAgICAgICAgICAg
ICAoY29uc3QgOnRhZyAiRGlzcGxheSBvcmlnaW5hbCBtYXJrdXAiIG5pbCkpCisgIDpzYWZlIChs
YW1iZGEgKHYpIChvciAobnVsbCBuaWwpCisgICAgICAgICAgICAgICAgICAgICAgICAoYW5kIChj
b25zcCB2KSAoY2hhcmFjdGVycCAoY2FyIHYpKSAoY2hhcmFjdGVycCAoY2RyIHYpKSkpKQorICA6
dmVyc2lvbiAiMzEuMSIKKyAgOnBhY2thZ2UtdmVyc2lvbiAiMS4wIikKKworKGRlZmN1c3RvbSBt
YXJrZG93bi10cy1oYXJkLWxpbmUtYnJlYWstc3BhY2UKKyAgKGxhbWJkYSAobikKKyAgICAobGV0
KiAoKHZhbCAobWFya2Rvd24tdHMtLXJlc29sdmUtZGlzcGxheS12YWx1ZQorICAgICAgICAgICAg
ICAgICBtYXJrZG93bi10cy1oYXJkLWxpbmUtYnJlYWstYmFja3NsYXNoKSkKKyAgICAgICAgICAg
KGNoIChpZiAoY2hhcmFjdGVycCB2YWwpIHZhbCA/fCkpKQorICAgICAgKG1ha2Utc3RyaW5nIG4g
Y2gpKSkKKyAgIklmIG1hcmt1cCBpcyBoaWRkZW4sIGRpc3BsYXkgdGhpcyBmb3IgYSB0cmFpbGlu
Zy1zcGFjZXMgaGFyZCBsaW5lIGJyZWFrLgorVGhlIHZhbHVlIGNhbiBiZToKKy0gYSBjaGFyYWN0
ZXIgb3Igc3RyaW5nOiBzaG93biBvbmNlIGF0IHRoZSBzdGFydCBvZiB0aGUgdHJhaWxpbmcgc3Bh
Y2VzLAorICB3aXRoIG5vIHJlcGV0aXRpb24gKHRoZSByZW1haW5pbmcgc3BhY2VzIHN0YXkgaW52
aXNpYmxlKTsKKy0gYSBmdW5jdGlvbjogY2FsbGVkIHdpdGggb25lIGFyZ3VtZW50LCB0aGUgbnVt
YmVyIG9mIHRyYWlsaW5nIHNwYWNlcywKKyAgYW5kIG11c3QgcmV0dXJuIHRoZSBzdHJpbmcgdG8g
ZGlzcGxheSBpbiBwbGFjZSBvZiB0aGUgcnVuOworLSBuaWw6IGtlZXAgdGhlIHJhdyBtYXJrdXAu
IgorICA6dHlwZSAnKGNob2ljZSAoY2hhcmFjdGVyIDp0YWcgIkRpc3BsYXkgc3BlY2lmaWVkIGNo
YXJhY3RlciAobm8gcmVwZXRpdGlvbikiKQorICAgICAgICAgICAgICAgICAoc3RyaW5nIDp0YWcg
IkRpc3BsYXkgc3BlY2lmaWVkIHN0cmluZyAobm8gcmVwZXRpdGlvbikiKQorICAgICAgICAgICAg
ICAgICAoZnVuY3Rpb24gOnRhZyAiRnVuY3Rpb24gZnJvbSBjb3VudCB0byBkaXNwbGF5IHN0cmlu
ZyIpCisgICAgICAgICAgICAgICAgIChjb25zdCA6dGFnICJEaXNwbGF5IG9yaWdpbmFsIG1hcmt1
cCIgbmlsKSkKKyAgOnZlcnNpb24gIjMxLjEiCisgIDpwYWNrYWdlLXZlcnNpb24gIjEuMCIpCisK
KyhkZWZjdXN0b20gbWFya2Rvd24tdHMtZGVmYXVsdC1jb2RlLWJsb2NrLW1vZGUgJ3RleHQtbW9k
ZQorICAiRGVmYXVsdCBtb2RlIGZvciBhbm9ueW1vdXMgY29kZSBibG9ja3MuIgorICA6dHlwZSAn
KGNob2ljZQorICAgICAgICAgIChjb25zdCAgOnRhZyAiVGV4dCBtb2RlIiB0ZXh0LW1vZGUpCisg
ICAgICAgICAgKGNvbnN0ICA6dGFnICJGdW5kYW1lbnRhbCBtb2RlIiBmdW5kYW1lbnRhbC1tb2Rl
KQorICAgICAgICAgIChzeW1ib2wgOnRhZyAiT3RoZXIgbW9kZSBzeW1ib2wiCisgICAgICAgICAg
ICAgICAgICA6dmFsaWRhdGUgKGxhbWJkYSAod2lkKQorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgKGxldCAoKHZhbCAod2lkZ2V0LXZhbHVlIHdpZCkpKQorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAodW5sZXNzIChhbmQgdmFsIChlcSAnc3ltYm9sICh0eXBlLW9mIHZhbCkp
KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh3aWRnZXQtcHV0IHdpZCA6ZXJy
b3IgIk11c3QgYmUgYSBub24tbmlsIHN5bWJvbCIpCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgd2lkKSkpKSkKKyAgOnNhZmUgIydzeW1ib2xwCisgIDp2ZXJzaW9uICIzMS4xIgor
ICA6cGFja2FnZS12ZXJzaW9uICIxLjAiKQorCis7OzsgRmFjZXM6CiAKIChkZWZncm91cCBtYXJr
ZG93bi10cy1mYWNlcyBuaWwKLSAgIkZhY2VzIHVzZWQgaW4gTWFya2Rvd24gVFMgTW9kZS4iCisg
ICJGYWNlcyB1c2VkIGJ5IE1hcmtkb3duLVRTLiIKICAgOmdyb3VwICdtYXJrZG93bi10cy1mYWNl
cwogICA6Z3JvdXAgJ2ZhY2VzKQogCiAoZGVmZmFjZSBtYXJrZG93bi10cy1kZWxpbWl0ZXIgJygo
dCAoOmluaGVyaXQgc2hhZG93KSkpCi0gICJGYWNlIGZvciB0aGUgIyBiZWZvcmUgTWFya2Rvd24g
aGVhZGluZ3MuIikKKyAgIkZhY2UgZm9yIHRoZSAjIGJlZm9yZSBNYXJrZG93biBoZWFkaW5ncy4i
CisgIDp2ZXJzaW9uICIzMS4xIikKIAogKGRlZmZhY2UgbWFya2Rvd24tdHMtaGVhZGluZy0xICco
KHQgKDppbmhlcml0IG91dGxpbmUtMSkpKQotICAiRmFjZSBmb3IgZmlyc3QgbGV2ZWwgTWFya2Rv
d24gaGVhZGluZ3MuIikKKyAgIkZhY2UgZm9yIGZpcnN0IGxldmVsIE1hcmtkb3duIGhlYWRpbmdz
LiIKKyAgOnZlcnNpb24gIjMxLjEiKQogCiAoZGVmZmFjZSBtYXJrZG93bi10cy1zZXRleHQtaGVh
ZGluZyAnKCh0ICg6aW5oZXJpdCBtYXJrZG93bi10cy1oZWFkaW5nLTEpKSkKLSAgIkZhY2UgZm9y
IHNldGV4dCBNYXJrZG93biBoZWFkaW5ncyAoaGVhZGluZ3MgdW5kZXJsaW5lZCBieSA9PT0gb3Ig
LS0tKS4iKQorICAiRmFjZSBmb3Igc2V0ZXh0IE1hcmtkb3duIGhlYWRpbmdzIChoZWFkaW5ncyB1
bmRlcmxpbmVkIGJ5ID09PSBvciAtLS0pLiIKKyAgOnZlcnNpb24gIjMxLjEiKQogCiAoZGVmZmFj
ZSBtYXJrZG93bi10cy1oZWFkaW5nLTIgJygodCAoOmluaGVyaXQgb3V0bGluZS0yKSkpCi0gICJG
YWNlIGZvciBzZWNvbmQgbGV2ZWwgTWFya2Rvd24gaGVhZGluZ3MuIikKKyAgIkZhY2UgZm9yIHNl
Y29uZCBsZXZlbCBNYXJrZG93biBoZWFkaW5ncy4iCisgIDp2ZXJzaW9uICIzMS4xIikKIAogKGRl
ZmZhY2UgbWFya2Rvd24tdHMtaGVhZGluZy0zICcoKHQgKDppbmhlcml0IG91dGxpbmUtMykpKQot
ICAiRmFjZSBmb3IgdGhpcmQgbGV2ZWwgTWFya2Rvd24gaGVhZGluZ3MuIikKKyAgIkZhY2UgZm9y
IHRoaXJkIGxldmVsIE1hcmtkb3duIGhlYWRpbmdzLiIKKyAgOnZlcnNpb24gIjMxLjEiKQogCiAo
ZGVmZmFjZSBtYXJrZG93bi10cy1oZWFkaW5nLTQgJygodCAoOmluaGVyaXQgb3V0bGluZS00KSkp
Ci0gICJGYWNlIGZvciBmb3VydGggbGV2ZWwgTWFya2Rvd24gaGVhZGluZ3MuIikKKyAgIkZhY2Ug
Zm9yIGZvdXJ0aCBsZXZlbCBNYXJrZG93biBoZWFkaW5ncy4iCisgIDp2ZXJzaW9uICIzMS4xIikK
IAogKGRlZmZhY2UgbWFya2Rvd24tdHMtaGVhZGluZy01ICcoKHQgKDppbmhlcml0IG91dGxpbmUt
NSkpKQotICAiRmFjZSBmb3IgZmlmdGggbGV2ZWwgTWFya2Rvd24gaGVhZGluZ3MuIikKKyAgIkZh
Y2UgZm9yIGZpZnRoIGxldmVsIE1hcmtkb3duIGhlYWRpbmdzLiIKKyAgOnZlcnNpb24gIjMxLjEi
KQogCiAoZGVmZmFjZSBtYXJrZG93bi10cy1oZWFkaW5nLTYgJygodCAoOmluaGVyaXQgb3V0bGlu
ZS02KSkpCi0gICJGYWNlIGZvciBzaXh0aCBsZXZlbCBNYXJrZG93biBoZWFkaW5ncy4iKQorICAi
RmFjZSBmb3Igc2l4dGggbGV2ZWwgTWFya2Rvd24gaGVhZGluZ3MuIgorICA6dmVyc2lvbiAiMzEu
MSIpCiAKLShkZWZmYWNlIG1hcmtkb3duLXRzLWxpc3QtbWFya2VyICcoKHQgKDppbmhlcml0IHNo
YWRvdykpKQotICAiRmFjZSBmb3IgTWFya2Rvd24gbGlzdCBtYXJrZXJzIGxpa2UgLSBhbmQgKi4i
KQorKGRlZmZhY2UgbWFya2Rvd24tdHMtZW1waGFzaXMgJygodCAoOmluaGVyaXQgaXRhbGljKSkp
CisgICJGYWNlIGZvciBNYXJrZG93biBlbXBoYXNpcyAoaXRhbGljKSB0ZXh0LiIKKyAgOnZlcnNp
b24gIjMxLjEiKQorCisoZGVmZmFjZSBtYXJrZG93bi10cy1ib2xkICcoKHQgKDppbmhlcml0IGJv
bGQpKSkKKyAgIkZhY2UgZm9yIE1hcmtkb3duIHN0cm9uZyBlbXBoYXNpcyAoYm9sZCkgdGV4dC4i
CisgIDp2ZXJzaW9uICIzMS4xIikKKworKGRlZmZhY2UgbWFya2Rvd24tdHMtc3RyaWtldGhyb3Vn
aCAnKCh0ICg6c3RyaWtlLXRocm91Z2ggdCkpKQorICAiRmFjZSBmb3IgTWFya2Rvd24gc3RyaWtl
dGhyb3VnaCB0ZXh0LiIKKyAgOnZlcnNpb24gIjMxLjEiKQogCiAoZGVmZmFjZSBtYXJrZG93bi10
cy1ibG9jay1xdW90ZSAnKCh0ICg6aW5oZXJpdCBpdGFsaWMpKSkKLSAgIkZhY2UgZm9yIE1hcmtk
b3duIGJsb2NrIHF1b3Rlcy4iKQorICAiRmFjZSBmb3IgTWFya2Rvd24gYmxvY2sgcXVvdGVzLiIK
KyAgOnZlcnNpb24gIjMxLjEiKQorCisoZGVmZmFjZSBtYXJrZG93bi10cy1saW5rICcoKHQgKDpp
bmhlcml0IGxpbmspKSkKKyAgIkZhY2UgZm9yIE1hcmtkb3duIGxpbmsgdGV4dCBhbmQgaW1hZ2Ug
ZGVzY3JpcHRpb25zLiIKKyAgOnZlcnNpb24gIjMxLjEiKQorCisoZGVmZmFjZSBtYXJrZG93bi10
cy1saW5rLWRlc3RpbmF0aW9uICcoKHQgKDppbmhlcml0IGZvbnQtbG9jay1zdHJpbmctZmFjZSkp
KQorICAiRmFjZSBmb3IgTWFya2Rvd24gbGluayBkZXN0aW5hdGlvbnMgKFVSTHMpLiIKKyAgOnZl
cnNpb24gIjMxLjEiKQorCisoZGVmZmFjZSBtYXJrZG93bi10cy1jb2RlLXNwYW4gJygodCAoOmlu
aGVyaXQgZm9udC1sb2NrLXN0cmluZy1mYWNlKSkpCisgICJGYWNlIGZvciBNYXJrZG93biBpbmxp
bmUgY29kZSBzcGFucy4iCisgIDp2ZXJzaW9uICIzMS4xIikKKworKGRlZmZhY2UgbWFya2Rvd24t
dHMtY29kZS1ibG9jayAnKCh0ICg6ZXh0ZW5kIHQpKSkKKyAgIkZhY2UgZm9yIE1hcmtkb3duIGZl
bmNlZCBjb2RlIGJsb2NrIGNvbnRlbnQuCitBbHRlciB0aGlzIGZhY2UgdG8gYWRkIGEgYDpiYWNr
Z3JvdW5kJyBmb3IgYSB2aXN1YWxseSBkaXN0aW5jdAorY29kZSBibG9jayByZWdpb24sIGUuZy46
CisgIChzZXQtZmFjZS1hdHRyaWJ1dGUgXFw9J21hcmtkb3duLXRzLWNvZGUtYmxvY2sgbmlsIDpi
YWNrZ3JvdW5kIFwiZ3JheTk1XCIpIgorICA6dmVyc2lvbiAiMzEuMSIpCisKKyhkZWZmYWNlIG1h
cmtkb3duLXRzLWNvZGUtYmxvY2stbWFya3VwLWhpZGRlbgorICAnKCgoKGJhY2tncm91bmQgbGln
aHQpKSAoOmJhY2tncm91bmQgImdyYXk5NSIgOmV4dGVuZCB0KSkKKyAgICAoKChiYWNrZ3JvdW5k
IGRhcmspKSAgKDpiYWNrZ3JvdW5kICJncmF5MTUiIDpleHRlbmQgdCkpKQorICAiRmFjZSBmb3Ig
TWFya2Rvd24gZmVuY2VkIGNvZGUgYmxvY2sgY29udGVudCB3aGVuIG1hcmt1cCBpcyBoaWRkZW4u
CitVc2VkIGluc3RlYWQgb2YgYG1hcmtkb3duLXRzLWNvZGUtYmxvY2snIHdoZW4gYG1hcmtkb3du
LXRzLWhpZGUtbWFya3VwJworaXMgbm9uLW5pbC4iCisgIDp2ZXJzaW9uICIzMS4xIikKKworKGRl
ZmZhY2UgbWFya2Rvd24tdHMtaW5kZW50ZWQtY29kZS1ibG9jayAnKCh0ICg6aW5oZXJpdCBmb250
LWxvY2stc3RyaW5nLWZhY2UpKSkKKyAgIkZhY2UgZm9yIE1hcmtkb3duIGluZGVudGVkIGNvZGUg
YmxvY2tzLiIKKyAgOnZlcnNpb24gIjMxLjEiKQorCisoZGVmZmFjZSBtYXJrZG93bi10cy1odG1s
LXRhZyAnKCh0ICg6aW5oZXJpdCBmb250LWxvY2stZG9jLW1hcmt1cC1mYWNlKSkpCisgICJGYWNl
IGZvciBpbmxpbmUgSFRNTCB0YWdzIGluIE1hcmtkb3duLiIKKyAgOnZlcnNpb24gIjMxLjEiKQor
CisoZGVmZmFjZSBtYXJrZG93bi10cy1odG1sLWJsb2NrICcoKHQgKDppbmhlcml0IGZvbnQtbG9j
ay1kb2MtbWFya3VwLWZhY2UpKSkKKyAgIkZhY2UgZm9yIEhUTUwgYmxvY2tzIGluIE1hcmtkb3du
LiIKKyAgOnZlcnNpb24gIjMxLjEiKQorCisoZGVmZmFjZSBtYXJrZG93bi10cy10aGVtYXRpYy1i
cmVhayAnKCh0ICg6aW5oZXJpdCBzaGFkb3cgOmV4dGVuZCB0KSkpCisgICJGYWNlIGZvciBNYXJr
ZG93biB0aGVtYXRpYyBicmVha3MgKGhvcml6b250YWwgcnVsZXMpLgorQ3VzdG9taXplIHRoaXMg
ZmFjZSB0byBhZGQgYSA6YmFja2dyb3VuZCBmb3IgYSBmdWxsLXdpZHRoIHZpc3VhbCBydWxlLiIK
KyAgOnZlcnNpb24gIjMxLjEiKQorCisoZGVmZmFjZSBtYXJrZG93bi10cy1lbnRpdHktcmVmZXJl
bmNlICcoKHQgKDppbmhlcml0IGZvbnQtbG9jay1idWlsdGluLWZhY2UpKSkKKyAgIkZhY2UgZm9y
IG5hbWVkIEhUTUwgZW50aXR5IHJlZmVyZW5jZXMgbGlrZSAmYW1wOyBhbmQgJmNvcHk7LiIKKyAg
OnZlcnNpb24gIjMxLjEiKQorCisoZGVmZmFjZSBtYXJrZG93bi10cy1udW1lcmljLWNoYXJhY3Rl
ci1yZWZlcmVuY2UKKyAgJygodCAoOmluaGVyaXQgZm9udC1sb2NrLWVzY2FwZS1mYWNlKSkpCisg
ICJGYWNlIGZvciBudW1lcmljIGNoYXJhY3RlciByZWZlcmVuY2VzIGxpa2UgJiM2NTsgYW5kICYj
eDQxOy4iCisgIDp2ZXJzaW9uICIzMS4xIikKKworKGRlZmZhY2UgbWFya2Rvd24tdHMtbGF0ZXgg
JygodCAoOmluaGVyaXQgZm9udC1sb2NrLXN0cmluZy1mYWNlKSkpCisgICJGYWNlIGZvciBMYVRl
WCAvIG1hdGggY29udGVudCBpbiBNYXJrZG93biAoJC4uLiQgYW5kICQkLi4uJCQpLiIKKyAgOnZl
cnNpb24gIjMxLjEiKQorCisoZGVmZmFjZSBtYXJrZG93bi10cy10YWJsZS1oZWFkZXIgJygodCAo
OmluaGVyaXQgKGJvbGQgZm9udC1sb2NrLWRvYy1mYWNlKSkpKQorICAiRmFjZSBmb3IgTWFya2Rv
d24gcGlwZSB0YWJsZSBoZWFkZXIgY2VsbHMuIgorICA6dmVyc2lvbiAiMzEuMSIpCisKKyhkZWZm
YWNlIG1hcmtkb3duLXRzLXRhYmxlLWNlbGwgJygodCAoOmluaGVyaXQgZGVmYXVsdCkpKQorICAi
RmFjZSBmb3IgTWFya2Rvd24gcGlwZSB0YWJsZSBkYXRhIGNlbGxzLiIKKyAgOnZlcnNpb24gIjMx
LjEiKQorCisoZGVmZmFjZSBtYXJrZG93bi10cy10YWJsZS1kZWxpbWl0ZXItY2VsbCAnKCh0ICg6
aW5oZXJpdCBmb250LWxvY2stZG9jLWZhY2UpKSkKKyAgIkZhY2UgZm9yIE1hcmtkb3duIHBpcGUg
dGFibGUgZGVsaW1pdGVyIGNlbGxzICgtLS0gc2VwYXJhdG9ycykuIgorICA6dmVyc2lvbiAiMzEu
MSIpCiAKIChkZWZmYWNlIG1hcmtkb3duLXRzLWxhbmd1YWdlLWtleXdvcmQgJygodCAoOmluaGVy
aXQgZm9udC1sb2NrLWtleXdvcmQtZmFjZSkpKQotICAiRmFjZSBmb3IgdGhlIGxhbmd1YWdlIGtl
eXdvcmQgZm9yIE1hcmtkb3duIGNvZGUgYmxvY2tzLiIpCisgICJGYWNlIGZvciB0aGUgbGFuZ3Vh
Z2Uga2V5d29yZCBmb3IgTWFya2Rvd24gY29kZSBibG9ja3MuIgorICA6dmVyc2lvbiAiMzEuMSIp
CisKKyhkZWZmYWNlIG1hcmtkb3duLXRzLWxpc3QtbWFya2VyICcoKHQgKDppbmhlcml0IHNoYWRv
dykpKQorICAiRmFjZSBmb3IgTWFya2Rvd24gbGlzdCBtYXJrZXJzIGxpa2UgLSBhbmQgKi4iCisg
IDp2ZXJzaW9uICIzMS4xIikKKworKGRlZmZhY2UgbWFya2Rvd24tdHMtaGFyZC1saW5lLWJyZWFr
LWJhY2tzbGFzaAorICAnKCh0ICg6aW5oZXJpdCBvdXRsaW5lLTQgOndlaWdodCBib2xkKSkpCisg
ICJGYWNlIGZvciBNYXJrZG93biBoYXJkIGxpbmUgYnJlYWtzIGludHJvZHVjZWQgYnkgYSB0cmFp
bGluZyBiYWNrc2xhc2guIgorICA6dmVyc2lvbiAiMzEuMSIpCisKKyhkZWZmYWNlIG1hcmtkb3du
LXRzLWhhcmQtbGluZS1icmVhay1iYWNrc2xhc2gtaGlkZGVuCisgICcoKHQgKDppbmhlcml0IG91
dGxpbmUtNCA6d2VpZ2h0IGJvbGQpKSkKKyAgIkZhY2UgZm9yIHRyYWlsaW5nLWJhY2tzbGFzaCBo
YXJkIGxpbmUgYnJlYWsgd2hlbiBtYXJrdXAgaXMgaGlkZGVuLiIKKyAgOnZlcnNpb24gIjMxLjEi
KQorCisoZGVmZmFjZSBtYXJrZG93bi10cy1oYXJkLWxpbmUtYnJlYWstc3BhY2UKKyAgJygoKChi
YWNrZ3JvdW5kIGxpZ2h0KSkgKDpiYWNrZ3JvdW5kICJncmF5NzAiIDp3ZWlnaHQgYm9sZCkpCisg
ICAgKCgoYmFja2dyb3VuZCBkYXJrKSkgICg6YmFja2dyb3VuZCAiZ3JheTQwIiA6d2VpZ2h0IGJv
bGQpKSkKKyAgIkZhY2UgZm9yIE1hcmtkb3duIGhhcmQgbGluZSBicmVha3MgaW50cm9kdWNlZCBi
eSB0d28gdHJhaWxpbmcgc3BhY2VzLgorVGhlIHRyYWlsaW5nIHNwYWNlcyBhcmUgb3RoZXJ3aXNl
IGludmlzaWJsZSwgc28gdGhleSBhcmUgc2hvd24gYXMgYQorc2hhZG93LWNvbG9yZWQgYmxvY2su
IgorICA6dmVyc2lvbiAiMzEuMSIpCisKKyhkZWZmYWNlIG1hcmtkb3duLXRzLWhhcmQtbGluZS1i
cmVhay1zcGFjZS1oaWRkZW4KKyAgJygodCAoOmluaGVyaXQgb3V0bGluZS00IDp3ZWlnaHQgYm9s
ZCkpKQorICAiRmFjZSBmb3IgdHJhaWxpbmctc3BhY2VzIGhhcmQgbGluZSBicmVhayB3aGVuIG1h
cmt1cCBpcyBoaWRkZW4uIgorICA6dmVyc2lvbiAiMzEuMSIpCisKKyhkZWZmYWNlIG1hcmtkb3du
LXRzLXRhc2stdW5jaGVja2VkICcoKHQgKDppbmhlcml0IG1hcmtkb3duLXRzLWxpc3QtbWFya2Vy
KSkpCisgICJGYWNlIGZvciBNYXJrZG93biB1bmNoZWNrZWQgdGFzayBsaXN0IG1hcmtlcnMuIgor
ICA6dmVyc2lvbiAiMzEuMSIpCisKKyhkZWZmYWNlIG1hcmtkb3duLXRzLXRhc2stY2hlY2tlZCAn
KCh0ICg6aW5oZXJpdCBtYXJrZG93bi10cy1saXN0LW1hcmtlcikpKQorICAiRmFjZSBmb3IgTWFy
a2Rvd24gY2hlY2tlZCB0YXNrIGxpc3QgbWFya2Vycy4iCisgIDp2ZXJzaW9uICIzMS4xIikKKwor
KHRyZWVzaXQtZGVjbGFyZS11bmF2YWlsYWJsZS1mdW5jdGlvbnMpCisKKyhhZGQtdG8tbGlzdAor
ICd0cmVlc2l0LWxhbmd1YWdlLXNvdXJjZS1hbGlzdAorICcobWFya2Rvd24KKyAgICJodHRwczov
L2dpdGh1Yi5jb20vdHJlZS1zaXR0ZXItZ3JhbW1hcnMvdHJlZS1zaXR0ZXItbWFya2Rvd24iCisg
ICA6Y29tbWl0ICI0MTMyODUyMzFjZThmYThiMTFlNzA3NGJiZTI2NWI0OGFhNzI3N2Y5IgorICAg
OnNvdXJjZS1kaXIgInRyZWUtc2l0dGVyLW1hcmtkb3duL3NyYyIpCisgdCkKKworKGFkZC10by1s
aXN0CisgJ3RyZWVzaXQtbGFuZ3VhZ2Utc291cmNlLWFsaXN0CisgJyhtYXJrZG93bi1pbmxpbmUK
KyAgICJodHRwczovL2dpdGh1Yi5jb20vdHJlZS1zaXR0ZXItZ3JhbW1hcnMvdHJlZS1zaXR0ZXIt
bWFya2Rvd24iCisgICA6Y29tbWl0ICI0MTMyODUyMzFjZThmYThiMTFlNzA3NGJiZTI2NWI0OGFh
NzI3N2Y5IgorICAgOnNvdXJjZS1kaXIgInRyZWUtc2l0dGVyLW1hcmtkb3duLWlubGluZS9zcmMi
KQorIHQpCisKKzs7OyBWYXJpYWJsZXM6CisKKyhkZWZ2YXIgbWFya2Rvd24tdHMtLXNldC11cC1p
bmxpbmUgbmlsCisgICJMZXQgYmluZCB0aGlzIHRvIG5vbi1uaWwgZm9yIGlubGluZSBgbWFya2Rv
d24tdHMtbW9kZScgYnVmZmVycy4iKQogCi07OzsgRm9udC1sb2NrCisoZGVmdmFyIG1hcmtkb3du
LXRzLWNvZGUtYmxvY2stbW9kZXMKKyAgYCgoc2ggLiBiYXNoLXRzLW1vZGUpCisgICAgKHNoZWxs
IC4gYmFzaC10cy1tb2RlKQorICAgICgsKGludGVybiAiYyMiKSAuIGMtc2hhcnApCisgICAgKGNw
cCAuIGMrKy10cy1tb2RlKQorICAgIChlbCAuIGVtYWNzLWxpc3AtbW9kZSkKKyAgICAoZWxpc3Ag
LiBlbWFjcy1saXNwLW1vZGUpCisgICAgKGdvbGFuZyAuIGdvLXRzLW1vZGUpCisgICAgKGdvbW9k
IC4gZ28tbW9kLXRzLW1vZGUpCisgICAgKGdvd29yayAuIGdvLXdvcmstdHMtbW9kZSkKKyAgICAo
amF2YXNjcmlwdCAuIGpzLXRzLW1vZGUpCisgICAgKG1kIC4gbWFya2Rvd24tdHMtbW9kZSkKKyAg
ICAocHkgLiBweXRob24tdHMtbW9kZSkKKyAgICAocmIgLiBydWJ5LXRzLW1vZGUpCisgICAgKHJz
IC4gcnVzdC10cy1tb2RlKQorICAgICh0ZXggLiBsYXRleC1tb2RlKQorICAgICh0cyAuIHR5cGVz
Y3JpcHQtdHMtbW9kZSkKKyAgICAoeW1sIC4geWFtbC10cy1tb2RlKSkKKyAgIkFsaXN0IG1hcHBp
bmcgY29kZSBibG9jayBsYW5ndWFnZXMgdG8gdGhlaXIgbWFqb3IgbW9kZS4KK1RoZSBhbGlzdCBp
cyBvZiB0aGUgZm9ybSAoTEFOR1VBR0UgLiBNQUpPUi1NT0RFKS4KK01BSk9SLU1PREUgY2FuIGJl
IGEgdHJlZS1zaXR0ZXIgb3IgYSBjb252ZW50aW9uYWwgbW9kZS4KK0lmIHlvdSBwcmVmZXIgYSBj
b252ZW50aW9uYWwgbW9kZSBvdmVyIGl0cyB0cmVlLXNpdHRlciB2YXJpYW50LCBhZGQgb3IgcmVw
bGFjZQorcmVsZXZhbnQgZW50cmllcy4gIEZvciBleGFtcGxlOgorICAgIChhZGQtdG8tbGlzdCBc
XD0nbWFya2Rvd24tdHMtY29kZS1ibG9jay1tb2RlcworICAgICAgXFw9JyhweXRob24gLiBweXRo
b24tbW9kZSkpCisgICAgKHNldGYgKGFsaXN0LWdldCBcXD0ncHkgbWFya2Rvd24tdHMtY29kZS1i
bG9jay1tb2RlcykKKyAgICAgICAgICBcXD0ncHl0aG9uLW1vZGUpCitDb2RlIGJsb2NrcyBmb3Ig
dGhhdCBub24gdHJlZS1zaXR0ZXIgbW9kZXMgd2lsbCBiZSBmb250aWZpZWQgdXNpbmcgdGhlCitt
b2RlJ3MgY29udmVudGlvbmFsIGZvbnQtbG9jayBydWxlcy4iKQorCisoZGVmdmFyIG1hcmtkb3du
LXRzLWNvZGUtYmxvY2stZm9yY2UtY29udmVudGlvbmFsLW1vZGVzCisgICcobWFya2Rvd24tdHMt
bW9kZQorICAgIHBocC10cy1tb2RlKQorICAiVHJlYXQgdGhlc2UgY29kZSBibG9jayB0cmVlLXNp
dHRlciBtb2RlcyBhcyBjb252ZW50aW9uYWwuCitTb21lIG1vZGVzIHRoYXQgZW1iZWQgbXVsdGlw
bGUgYHRyZWVzaXQnIHBhcnNlcnMgbmVlZCB0byBiZSB0cmVhdGVkIHdpdGgKK2NvbnZlbnRpb25h
bCBmb250LWxvY2suICBgbWFya2Rvd24tdHMtbW9kZScgaXRzZWxmIGlzIG9uZSBvZiB0aGVtLiIp
CisKKzs7OyBGb250LWxvY2s6CiAKIChkZWZ1biBtYXJrZG93bi10cy0tZm9udGlmeS1kZWxpbWl0
ZXIgKG5vZGUgb3ZlcnJpZGUgc3RhcnQgZW5kICZyZXN0IF8pCiAgICJGb250aWZ5IGRlbGltaXRl
ciBOT0RFIGFuZCBvcHRpb25hbGx5IGhpZGUgaXRzIG1hcmt1cC4KQEAgLTE2OCwyMyArNTE1LDc5
MiBAQCBtYXJrZG93bi10cy0tZm9udGlmeS1kZWxpbWl0ZXIKICAgICAocHV0LXRleHQtcHJvcGVy
dHkgKHRyZWVzaXQtbm9kZS1zdGFydCBub2RlKSAodHJlZXNpdC1ub2RlLWVuZCBub2RlKQogICAg
ICAgICAgICAgICAgICAgICAgICAnaW52aXNpYmxlICdtYXJrZG93bi10cy0tbWFya3VwKSkpCiAK
KyhkZWZ2YXIgdXJsLW1haWwtY29tbWFuZCkgOyB1cmwvdXJsLXZhcnMuZWwKKworKGRlZnVuIG1h
cmtkb3duLXRzLS1tYWtlLWxpbmstYnV0dG9uIChiZWcgZW5kIHVybCkKKyAgIk1ha2UgdGhlIHJl
Z2lvbiBmcm9tIEJFRyB0byBFTkQgYSBjbGlja2FibGUgYnV0dG9uIGZvciBVUkwuCitGb3IgbWFp
bHRvOiBVUklzLCB1c2UgYHVybC1tYWlsLWNvbW1hbmQnLiAgRm9yIG90aGVyIHNjaGVtZXMKK1wo
ZS5nLiwgaHR0cCwgZnRwKSwgb3BlbiB3aXRoIGBicm93c2UtdXJsJy4gIE90aGVyd2lzZSwgdHJl
YXQgYXMKK2EgcmVsYXRpdmUgZmlsZSBwYXRoIGFuZCBvcGVuIHdpdGggYGZpbmQtZmlsZScuCisK
K0RvIG5vdCBwYXNzIGBmYWNlJyB0byBgbWFrZS10ZXh0LWJ1dHRvbic6IHRoZSBsaW5rIGZhY2Ug
aXMgYWxyZWFkeQorYXBwbGllZCBieSBgbWFya2Rvd24tdHMtLWZvbnRpZnktbGluay1ub2RlJyB2
aWEKK2B0cmVlc2l0LWZvbnRpZnktd2l0aC1vdmVycmlkZScgKHdpdGggYDpvdmVycmlkZSBhcHBl
bmQnKSwgYW5kCitgYWRkLXRleHQtcHJvcGVydGllcycgd291bGQgb3RoZXJ3aXNlIHJlcGxhY2Ug
dGhlIGFwcGVuZGVkIGZhY2UKK2xpc3Qgd2l0aCBhIHNpbmdsZSBgbWFya2Rvd24tdHMtbGluaycs
IGNsb2JiZXJpbmcgYW4gZW5jbG9zaW5nCitoZWFkaW5nIGZhY2UuIgorICA7OyBOT1RFOiBVUkkg
c2NoZW1lIGFuZCBob3N0IG5hbWUgYXJlIGNhc2UtaW5zZW5zaXRpdmUgcGVyIFJGQyAzOTg2Cisg
IDs7IGFuZCBSRkMgNzIzMC4KKyAgKGxldCAoKGNhc2UtZm9sZC1zZWFyY2ggbmlsKSkKKyAgICAo
bWFrZS10ZXh0LWJ1dHRvbiBiZWcgZW5kCisgICAgICAgICAgICAgICAgICAgICAgJ2FjdGlvbiAo
bGFtYmRhIChfYnV0dG9uKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY29uZAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKChzdHJpbmctcHJlZml4LXAgIiMiIHVy
bCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWFya2Rvd24tdHMtLWZvbGxv
dy1mcmFnbWVudAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoc3Vic3RyaW5n
IHVybCAxKSkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKHN0cmluZy1tYXRj
aC1wICJcXGBtYWlsdG86IiB1cmwpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
KGZ1bmNhbGwgdXJsLW1haWwtY29tbWFuZAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIChyZXBsYWNlLXJlZ2V4cC1pbi1zdHJpbmcKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIlxcYG1haWx0bzoiICIiIHVybCkpKQorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgKChzdHJpbmctbWF0Y2gtcCAiXFxgW2Etel0rOiIg
dXJsKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChicm93c2UtdXJsIHVybCkp
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodCAoZmluZC1maWxlIHVybCkpKSkK
KyAgICAgICAgICAgICAgICAgICAgICAnaGVscC1lY2hvIHVybCkpKQorCisoZGVmdW4gbWFya2Rv
d24tdHMtLWZvbnRpZnktbGluay1kZXN0aW5hdGlvbiAobm9kZSBvdmVycmlkZSBzdGFydCBlbmQg
JnJlc3QgXykKKyAgIkZvbnRpZnkgbGluayBkZXN0aW5hdGlvbiBOT0RFIGFuZCBoaWRlIGl0IHdo
ZW4gbWFya3VwIGlzIGhpZGRlbi4KK09WRVJSSURFLCBTVEFSVCwgYW5kIEVORCBhcmUgcGFzc2Vk
IHRocm91Z2ggdG8KK2B0cmVlc2l0LWZvbnRpZnktd2l0aC1vdmVycmlkZScuIgorICAodHJlZXNp
dC1mb250aWZ5LXdpdGgtb3ZlcnJpZGUKKyAgICh0cmVlc2l0LW5vZGUtc3RhcnQgbm9kZSkgKHRy
ZWVzaXQtbm9kZS1lbmQgbm9kZSkKKyAgICdtYXJrZG93bi10cy1saW5rLWRlc3RpbmF0aW9uIG92
ZXJyaWRlIHN0YXJ0IGVuZCkKKyAgKHdoZW4gbWFya2Rvd24tdHMtaGlkZS1tYXJrdXAKKyAgICAo
cHV0LXRleHQtcHJvcGVydHkgKHRyZWVzaXQtbm9kZS1zdGFydCBub2RlKSAodHJlZXNpdC1ub2Rl
LWVuZCBub2RlKQorICAgICAgICAgICAgICAgICAgICAgICAnaW52aXNpYmxlICdtYXJrZG93bi10
cy0tbWFya3VwKSkpCisKKyhkZWZ2YXItbG9jYWwgbWFya2Rvd24tdHMtLWxpbmstcmVmLWNhY2hl
IG5pbAorICAiQ2FjaGVkIGFsaXN0IG9mIChMQUJFTCAuIFVSTCkgZnJvbSBsaW5rIHJlZmVyZW5j
ZSBkZWZpbml0aW9ucy4KK0VhY2ggZW50cnkgaXMgYSBjb25zIGNlbGwgbWFwcGluZyBhIGRvd25j
YXNlZCBsYWJlbCBzdHJpbmcgdG8gaXRzCitkZXN0aW5hdGlvbiBVUkwuIikKKworKGRlZnZhci1s
b2NhbCBtYXJrZG93bi10cy0tbGluay1yZWYtY2FjaGUtdGljayBuaWwKKyAgIlZhbHVlIG9mIGBi
dWZmZXItY2hhcnMtbW9kaWZpZWQtdGljaycgd2hlbiB0aGUgY2FjaGUgd2FzIGJ1aWx0LiIpCisK
KyhkZWZ1biBtYXJrZG93bi10cy0tbGluay1yZWYtZGVmaW5pdGlvbnMgKCkKKyAgIlJldHVybiBh
biBhbGlzdCBvZiAoTEFCRUwgLiBVUkwpIGZyb20gbGluayByZWZlcmVuY2UgZGVmaW5pdGlvbnMu
CitMQUJFTCBpcyBkb3duY2FzZWQgZm9yIGNhc2UtaW5zZW5zaXRpdmUgbWF0Y2hpbmcuICBSZXN1
bHRzIGFyZQorY2FjaGVkIGFuZCByZWJ1aWx0IG9ubHkgd2hlbiB0aGUgYnVmZmVyIGNoYW5nZXMu
IgorICAobGV0ICgodGljayAoYnVmZmVyLWNoYXJzLW1vZGlmaWVkLXRpY2spKSkKKyAgICAodW5s
ZXNzIChlcSB0aWNrIG1hcmtkb3duLXRzLS1saW5rLXJlZi1jYWNoZS10aWNrKQorICAgICAgKGxl
dCogKChyb290ICh0cmVlc2l0LWJ1ZmZlci1yb290LW5vZGUgJ21hcmtkb3duKSkKKyAgICAgICAg
ICAgICAobWF0Y2hlcyAodHJlZXNpdC1xdWVyeS1jYXB0dXJlCisgICAgICAgICAgICAgICAgICAg
ICAgIHJvb3QKKyAgICAgICAgICAgICAgICAgICAgICAgJygobGlua19yZWZlcmVuY2VfZGVmaW5p
dGlvbgorICAgICAgICAgICAgICAgICAgICAgICAgICAobGlua19sYWJlbCkgQGxhYmVsCisgICAg
ICAgICAgICAgICAgICAgICAgICAgIChsaW5rX2Rlc3RpbmF0aW9uKSBAZGVzdCkpKSkKKyAgICAg
ICAgICAgICBkZWZzKQorICAgICAgICAod2hpbGUgbWF0Y2hlcworICAgICAgICAgIChsZXQqICgo
bGFiZWwtcGFpciAocG9wIG1hdGNoZXMpKQorICAgICAgICAgICAgICAgICAoZGVzdC1wYWlyIChw
b3AgbWF0Y2hlcykpCisgICAgICAgICAgICAgICAgIChsYmwtdGV4dCAoc3RyaW5nLXRyaW0gKHRy
ZWVzaXQtbm9kZS10ZXh0IChjZHIgbGFiZWwtcGFpcikgdCkKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAiXFxbIiAiXFxdIikpKQorICAgICAgICAgICAgKHB1c2ggKGNv
bnMgKGRvd25jYXNlIGxibC10ZXh0KQorICAgICAgICAgICAgICAgICAgICAgICAgKHRyZWVzaXQt
bm9kZS10ZXh0IChjZHIgZGVzdC1wYWlyKSB0KSkKKyAgICAgICAgICAgICAgICAgIGRlZnMpKSkK
KyAgICAgICAgKHNldHEgbWFya2Rvd24tdHMtLWxpbmstcmVmLWNhY2hlIChucmV2ZXJzZSBkZWZz
KQorICAgICAgICAgICAgICBtYXJrZG93bi10cy0tbGluay1yZWYtY2FjaGUtdGljayB0aWNrKSkp
CisgICAgbWFya2Rvd24tdHMtLWxpbmstcmVmLWNhY2hlKSkKKworKGRlZnVuIG1hcmtkb3duLXRz
LS1yZXNvbHZlLWxpbmstcmVmIChsYWJlbCkKKyAgIlJlc29sdmUgTEFCRUwgdG8gYSBVUkwgdmlh
IGxpbmsgcmVmZXJlbmNlIGRlZmluaXRpb25zLgorTEFCRUwgc2hvdWxkIGJlIHRoZSB0ZXh0IHdp
dGhvdXQgYnJhY2tldHMuICBNYXRjaGluZyBpcworY2FzZS1pbnNlbnNpdGl2ZSBwZXIgQ29tbW9u
TWFyayBzcGVjIHNlY3Rpb24gNC43LiIKKyAgKGFsaXN0LWdldCAoZG93bmNhc2UgbGFiZWwpICht
YXJrZG93bi10cy0tbGluay1yZWYtZGVmaW5pdGlvbnMpCisgICAgICAgICAgICAgbmlsIG5pbCAj
J2VxdWFsKSkKKworOzs7IEZyYWdtZW50IGxpbmtzOgorCisoZGVmY29uc3QgbWFya2Rvd24tdHMt
LXNsdWctZ2l0aHViLXN0cmlwLXJlCisgICJbXVshXCIjJCUmJygpKissLi86Ozw9Pj9AXFxeYHt8
fX5dIgorICAiUHVuY3R1YXRpb24gc3RyaXBwZWQgYnkgR2l0SHViJ3MgZ2gtc2x1Z2dlciBiZWZv
cmUgaHlwaGVuYXRpb24uIikKKworKGRlZnVuIG1hcmtkb3duLXRzLS1zbHVnLWdpdGh1YiAodGV4
dCkKKyAgIlJldHVybiB0aGUgR2l0SHViLWZsYXZvciBzbHVnIGZvciBoZWFkaW5nIFRFWFQuCitN
aXJyb3JzIHRoZSBnaC1zbHVnZ2VyIGFsZ29yaXRobTogbG93ZXJjYXNlLCBzdHJpcCBhIGZpeGVk
CitwdW5jdHVhdGlvbiBzZXQsIHJlcGxhY2Ugc3BhY2VzIHdpdGggaHlwaGVucy4iCisgIChsZXQq
ICgobGMgKGRvd25jYXNlIHRleHQpKQorICAgICAgICAgKHN0cmlwcGVkIChyZXBsYWNlLXJlZ2V4
cC1pbi1zdHJpbmcKKyAgICAgICAgICAgICAgICAgICAgbWFya2Rvd24tdHMtLXNsdWctZ2l0aHVi
LXN0cmlwLXJlICIiIGxjKSkpCisgICAgKHJlcGxhY2UtcmVnZXhwLWluLXN0cmluZyAiW1s6Ymxh
bms6XV0iICItIiBzdHJpcHBlZCkpKQorCisoZGVmdW4gbWFya2Rvd24tdHMtLXNsdWctcGFuZG9j
ICh0ZXh0KQorICAiUmV0dXJuIHRoZSBQYW5kb2MtZmxhdm9yIGF1dG8taWQgc2x1ZyBmb3IgaGVh
ZGluZyBURVhULgorTWlycm9ycyBQYW5kb2MncyBhbGdvcml0aG06IGRyb3AgZXZlcnl0aGluZyBi
ZWZvcmUgdGhlIGZpcnN0CitsZXR0ZXIsIGtlZXAgYWxwaGFudW1lcmljcyBhbmQgYF8tLicsIGNv
bGxhcHNlIHdoaXRlc3BhY2UgcnVucyB0bworaHlwaGVucywgbG93ZXJjYXNlLiAgRmFsbHMgYmFj
ayB0byBcInNlY3Rpb25cIiBpZiBlbXB0eS4iCisgIChsZXQqICgobGMgKGRvd25jYXNlIHRleHQp
KQorICAgICAgICAgKGZyb20tbGV0dGVyIChpZiAoc3RyaW5nLW1hdGNoICJbWzphbHBoYTpdXSIg
bGMpCisgICAgICAgICAgICAgICAgICAgICAgICAgIChzdWJzdHJpbmcgbGMgKG1hdGNoLWJlZ2lu
bmluZyAwKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICIiKSkKKyAgICAgICAgIChrZXB0IChy
ZXBsYWNlLXJlZ2V4cC1pbi1zdHJpbmcKKyAgICAgICAgICAgICAgICAiW15bOmFsbnVtOl1fLlxu
XHRbOmJsYW5rOl0tXSIgIiIgZnJvbS1sZXR0ZXIpKQorICAgICAgICAgKGh5cGhlbmF0ZWQgKHJl
cGxhY2UtcmVnZXhwLWluLXN0cmluZyAiW1s6Ymxhbms6XVx0XG5dKyIgIi0iIGtlcHQpKQorICAg
ICAgICAgKHRyaW1tZWQgKHJlcGxhY2UtcmVnZXhwLWluLXN0cmluZyAiLStcXCciICIiIGh5cGhl
bmF0ZWQpKSkKKyAgICAoaWYgKHN0cmluZy1lbXB0eS1wIHRyaW1tZWQpICJzZWN0aW9uIiB0cmlt
bWVkKSkpCisKKyhkZWZjb25zdCBtYXJrZG93bi10cy0tZXhwbGljaXQtaWQtcmUKKyAgIlsgXHRd
KntbIFx0XSojXFwoW159IFx0XStcXClbIFx0XSp9WyBcdF0qXFwnIgorICAiTWF0Y2ggYSBQYW5k
b2Mtc3R5bGUgdHJhaWxpbmcgYHsjaWR9JyBvbiBhIGhlYWRpbmcgbGluZS4KK0NhcHR1cmUgZ3Jv
dXAgMSBpcyB0aGUgZXhwbGljaXQgaWQuIikKKworKGRlZnVuIG1hcmtkb3duLXRzLS1oZWFkaW5n
LXRleHQtYW5kLWlkIChyYXcpCisgICJTcGxpdCBSQVcgaGVhZGluZyB0ZXh0IGludG8gKFZJU0lC
TEUgLiBFWFBMSUNJVC1JRCkuCitFWFBMSUNJVC1JRCBpcyBub24tbmlsIGlmIFJBVyBlbmRzIHdp
dGggYSBQYW5kb2Mtc3R5bGUgYHsjaWR9JywKK2luIHdoaWNoIGNhc2UgVklTSUJMRSBpcyBSQVcg
d2l0aCB0aGF0IHN1ZmZpeCByZW1vdmVkLiIKKyAgKGlmIChzdHJpbmctbWF0Y2ggbWFya2Rvd24t
dHMtLWV4cGxpY2l0LWlkLXJlIHJhdykKKyAgICAgIChjb25zIChzdWJzdHJpbmcgcmF3IDAgKG1h
dGNoLWJlZ2lubmluZyAwKSkKKyAgICAgICAgICAgIChtYXRjaC1zdHJpbmcgMSByYXcpKQorICAg
IChjb25zIHJhdyBuaWwpKSkKKworKGRlZnZhci1sb2NhbCBtYXJrZG93bi10cy0taGVhZGluZy1p
ZC1jYWNoZSBuaWwKKyAgIkNhY2hlZCBoYXNoIHRhYmxlIG1hcHBpbmcgaGVhZGluZyBzbHVnIHN0
cmluZ3MgdG8gYnVmZmVyIHBvc2l0aW9ucy4KK0VhY2ggdmFsdWUgaXMgdGhlIGJ1ZmZlciBwb3Np
dGlvbiBvZiB0aGUgc3RhcnQgb2YgdGhlIG1hdGNoaW5nCitgYXR4X2hlYWRpbmcnIG9yIGBzZXRl
eHRfaGVhZGluZycgbm9kZS4gIEJ1aWx0IGxhemlseSBieQorYG1hcmtkb3duLXRzLS1oZWFkaW5n
LWlkcycsIGludmFsaWRhdGVkIGJ5IGJ1ZmZlci10aWNrIGNoYW5nZS4iKQorCisoZGVmdmFyLWxv
Y2FsIG1hcmtkb3duLXRzLS1oZWFkaW5nLWlkLWNhY2hlLXRpY2sgbmlsCisgICJWYWx1ZSBvZiBg
YnVmZmVyLWNoYXJzLW1vZGlmaWVkLXRpY2snIHdoZW4gdGhlIGhlYWRpbmctaWQgY2FjaGUgd2Fz
IGJ1aWx0LiIpCisKKyhkZWZ1biBtYXJrZG93bi10cy0tYnVpbGQtaGVhZGluZy1pZHMgKCkKKyAg
IldhbGsgYWxsIGhlYWRpbmdzIGluIHRoZSBidWZmZXIgYW5kIHJldHVybiBhIGhhc2ggdGFibGUu
CitXaGljaCBtYXBzIGVhY2ggc2x1ZyB0byB0aGUgYnVmZmVyIHBvc2l0aW9uIG9mIGl0cyBoZWFk
aW5nLiAgRWFjaAoraGVhZGluZyBjb250cmlidXRlcyBpdHMgR2l0SHViIHNsdWcsIGl0cyBQYW5k
b2Mgc2x1ZywgYW5kIGl0cyBleHBsaWNpdAorYHsjaWR9JyBpZiBwcmVzZW50LiAgQm90aCBzbHVn
IGFsZ29yaXRobXMgYXJlIHN0b3JlZCBpbiB0aGUgc2FtZSBidWZmZXIKK2JlY2F1c2UgYSBtYXJr
ZG93biBmaWxlIGlzIG9mdGVuIHByZXZpZXdlZCBieSBzZXZlcmFsIHJlbmRlcmVycyAoR2l0SHVi
Cit3ZWIgVUksIFBhbmRvYywgbWRCb29rLCBIdWdvLCBhbmQgc28gb24pIGFuZCB0aGUgc2FtZSBz
b3VyY2Ugc2hvdWxkCityZXNvbHZlIHJlZ2FyZGxlc3Mgb2Ygd2hpY2ggb25lIHRoZSBhdXRob3Ig
d3JvdGUgdGhlIGxpbmsgZm9yLiAgRm9yIG1vc3QKK2hlYWRpbmdzIHRoZSB0d28gYWxnb3JpdGht
cyBwcm9kdWNlIHRoZSBzYW1lIHNsdWcgYW55d2F5LgorRHVwbGljYXRlIHNsdWdzICh3aXRoaW4g
b25lIGFsZ29yaXRobSkgYXJlIGRpc2FtYmlndWF0ZWQgYnkgYXBwZW5kaW5nCitgLTEnLCBgLTIn
LCBhbmQgc28gb24sIGluIGRvY3VtZW50IG9yZGVyLCBtYXRjaGluZyBHaXRIdWIncyBiZWhhdmlv
ci4KK1doZW4gdHdvIGRpc3RpbmN0IGhlYWRpbmdzIHdvdWxkIG90aGVyd2lzZSBzaGFyZSBhIHNs
dWcsIHRoZSBmaXJzdAorb2NjdXJyZW5jZSBpbiBkb2N1bWVudCBvcmRlciB3aW5zLiIKKyAgKGxl
dCAoKHRhYmxlIChtYWtlLWhhc2gtdGFibGUgOnRlc3QgIydlcXVhbCkpCisgICAgICAgIDs7IFBl
ci1hbGdvcml0aG0gZGVkdXBlIGNvdW50ZXJzOiBob3cgbWFueSB0aW1lcyB0aGlzIGJhc2Ugc2x1
ZworICAgICAgICA7OyBoYXMgYmVlbiBzZWVuIHNvIGZhciBpbiBkb2N1bWVudCBvcmRlci4KKyAg
ICAgICAgKGdoLWNvdW50cyAobWFrZS1oYXNoLXRhYmxlIDp0ZXN0ICMnZXF1YWwpKQorICAgICAg
ICAocGQtY291bnRzIChtYWtlLWhhc2gtdGFibGUgOnRlc3QgIydlcXVhbCkpCisgICAgICAgIChy
b290ICh0cmVlc2l0LWJ1ZmZlci1yb290LW5vZGUgJ21hcmtkb3duKSkpCisgICAgKGRvbGlzdCAo
Y2FwICh0cmVlc2l0LXF1ZXJ5LWNhcHR1cmUKKyAgICAgICAgICAgICAgICAgIHJvb3QKKyAgICAg
ICAgICAgICAgICAgICcoKChhdHhfaGVhZGluZykgQGgpCisgICAgICAgICAgICAgICAgICAgICgo
c2V0ZXh0X2hlYWRpbmcpIEBoKSkpKQorICAgICAgKGxldCogKChub2RlIChjZHIgY2FwKSkKKyAg
ICAgICAgICAgICAocG9zICh0cmVlc2l0LW5vZGUtc3RhcnQgbm9kZSkpCisgICAgICAgICAgICAg
KHJhdyAoc3RyaW5nLXRyaW0gKHRyZWVzaXQtbm9kZS10ZXh0IG5vZGUgdCkpKQorICAgICAgICAg
ICAgIDs7IFN0cmlwIHRoZSBsZWFkaW5nIG1hcmtlciAoIyMjIG9yID09PT0vLS0tLSkuCisgICAg
ICAgICAgICAgOzsgRm9yIGF0eCwgZHJvcCBsZWFkaW5nICMncyBhbmQgZm9sbG93aW5nIHNwYWNl
LgorICAgICAgICAgICAgIDs7IEZvciBzZXRleHQsIGRyb3AgdGhlIHRyYWlsaW5nIHVuZGVybGlu
ZSBsaW5lLgorICAgICAgICAgICAgICh0ZXh0IChjb25kCisgICAgICAgICAgICAgICAgICAgICgo
c3RyaW5nLW1hdGNoICJcXGAjK1sgXHRdKlxcKC4qP1xcKVsgXHRdKiMqWyBcdF0qXFwnIiByYXcp
CisgICAgICAgICAgICAgICAgICAgICAobWF0Y2gtc3RyaW5nIDEgcmF3KSkKKyAgICAgICAgICAg
ICAgICAgICAgKChzdHJpbmctbWF0Y2ggIlxcYFxcKC4qP1xcKVxuWz0tXStbIFx0XSpcXCciIHJh
dykKKyAgICAgICAgICAgICAgICAgICAgIChtYXRjaC1zdHJpbmcgMSByYXcpKQorICAgICAgICAg
ICAgICAgICAgICAodCByYXcpKSkKKyAgICAgICAgICAgICAoc3BsaXQgKG1hcmtkb3duLXRzLS1o
ZWFkaW5nLXRleHQtYW5kLWlkIHRleHQpKQorICAgICAgICAgICAgICh2aXNpYmxlIChjYXIgc3Bs
aXQpKQorICAgICAgICAgICAgIChleHBsaWNpdCAoY2RyIHNwbGl0KSkpCisgICAgICAgIDs7IEV4
cGxpY2l0IHsjaWR9IHdpbnMgb3V0cmlnaHQ7IGZpcnN0IG9jY3VycmVuY2Uga2VlcHMgaXQuCisg
ICAgICAgICh3aGVuIChhbmQgZXhwbGljaXQgKG5vdCAoZ2V0aGFzaCBleHBsaWNpdCB0YWJsZSkp
KQorICAgICAgICAgIChwdXRoYXNoIGV4cGxpY2l0IHBvcyB0YWJsZSkpCisgICAgICAgIDs7IEF1
dG8gc2x1Z3MgKEdpdEh1YiArIFBhbmRvYyksIGRlZHVwZWQgcGVyIGFsZ29yaXRobS4KKyAgICAg
ICAgKGxldCogKChnaC1iYXNlIChtYXJrZG93bi10cy0tc2x1Zy1naXRodWIgdmlzaWJsZSkpCisg
ICAgICAgICAgICAgICAocGQtYmFzZSAobWFya2Rvd24tdHMtLXNsdWctcGFuZG9jIHZpc2libGUp
KQorICAgICAgICAgICAgICAgKGdoLW4gKGdldGhhc2ggZ2gtYmFzZSBnaC1jb3VudHMgMCkpCisg
ICAgICAgICAgICAgICAocGQtbiAoZ2V0aGFzaCBwZC1iYXNlIHBkLWNvdW50cyAwKSkKKyAgICAg
ICAgICAgICAgIChnaC1pZCAoaWYgKHplcm9wIGdoLW4pIGdoLWJhc2UKKyAgICAgICAgICAgICAg
ICAgICAgICAgIChmb3JtYXQgIiVzLSVkIiBnaC1iYXNlIGdoLW4pKSkKKyAgICAgICAgICAgICAg
IChwZC1pZCAoaWYgKHplcm9wIHBkLW4pIHBkLWJhc2UKKyAgICAgICAgICAgICAgICAgICAgICAg
IChmb3JtYXQgIiVzLSVkIiBwZC1iYXNlIHBkLW4pKSkpCisgICAgICAgICAgKHB1dGhhc2ggZ2gt
YmFzZSAoMSsgZ2gtbikgZ2gtY291bnRzKQorICAgICAgICAgIChwdXRoYXNoIHBkLWJhc2UgKDEr
IHBkLW4pIHBkLWNvdW50cykKKyAgICAgICAgICA7OyBGaXJzdC13cml0ZXItd2lucyBzbyBkb2N1
bWVudCBvcmRlciB0aWVicmVha3MgY29sbGlzaW9ucy4KKyAgICAgICAgICAodW5sZXNzIChnZXRo
YXNoIGdoLWlkIHRhYmxlKSAocHV0aGFzaCBnaC1pZCBwb3MgdGFibGUpKQorICAgICAgICAgICh1
bmxlc3MgKGdldGhhc2ggcGQtaWQgdGFibGUpIChwdXRoYXNoIHBkLWlkIHBvcyB0YWJsZSkpKSkp
CisgICAgdGFibGUpKQorCisoZGVmdW4gbWFya2Rvd24tdHMtLWhlYWRpbmctaWRzICgpCisgICJS
ZXR1cm4gdGhlIGhlYWRpbmctaWQgaGFzaCB0YWJsZSBmb3IgdGhlIGN1cnJlbnQgYnVmZmVyLgor
Q2FjaGUgaXMgcmVidWlsdCBvbmx5IHdoZW4gYGJ1ZmZlci1jaGFycy1tb2RpZmllZC10aWNrJyBo
YXMgYWR2YW5jZWQKK3NpbmNlIHRoZSBsYXN0IGNhbGwgKG1pcnJvcnMgYG1hcmtkb3duLXRzLS1s
aW5rLXJlZi1jYWNoZScpLiIKKyAgKGxldCAoKHRpY2sgKGJ1ZmZlci1jaGFycy1tb2RpZmllZC10
aWNrKSkpCisgICAgKHVubGVzcyAoZXEgdGljayBtYXJrZG93bi10cy0taGVhZGluZy1pZC1jYWNo
ZS10aWNrKQorICAgICAgKHNldHEgbWFya2Rvd24tdHMtLWhlYWRpbmctaWQtY2FjaGUgKG1hcmtk
b3duLXRzLS1idWlsZC1oZWFkaW5nLWlkcykKKyAgICAgICAgICAgIG1hcmtkb3duLXRzLS1oZWFk
aW5nLWlkLWNhY2hlLXRpY2sgdGljaykpCisgICAgbWFya2Rvd24tdHMtLWhlYWRpbmctaWQtY2Fj
aGUpKQorCisoZGVmdW4gbWFya2Rvd24tdHMtLWZvbGxvdy1mcmFnbWVudCAoaWQpCisgICJKdW1w
IHRvIHRoZSBoZWFkaW5nIHdob3NlIHNsdWcgbWF0Y2hlcyBJRCAod2l0aG91dCBsZWFkaW5nIGAj
JykuCitQdXNoZXMgdGhlIG1hcmsgYmVmb3JlIG1vdmluZyBzbyBgQy11IEMtU1BDJyByZXR1cm5z
LiAgU2lnbmFscworYHVzZXItZXJyb3InIGlmIG5vIGhlYWRpbmcgbWF0Y2hlcy4iCisgIChpZi1s
ZXQqICgocG9zIChnZXRoYXNoIGlkIChtYXJrZG93bi10cy0taGVhZGluZy1pZHMpKSkpCisgICAg
ICAocHJvZ24KKyAgICAgICAgKHB1c2gtbWFyaykKKyAgICAgICAgKGdvdG8tY2hhciBwb3MpCisg
ICAgICAgIChyZWNlbnRlcikpCisgICAgKHVzZXItZXJyb3IgIk5vIGhlYWRpbmcgZm9yIGZyYWdt
ZW50OiAjJXMiIGlkKSkpCisKKyhkZWZ1biBtYXJrZG93bi10cy0tZm9udGlmeS1oZWFkaW5nIChu
b2RlIF9vdmVycmlkZSBfc3RhcnQgX2VuZCAmcmVzdCBfKQorICAiQXBwbHkgdGhlIGhlYWRpbmcg
ZmFjZSB0byBOT0RFJ3MgZnVsbCBleHRlbnQuCitVc2UgYGZvbnQtbG9jay1hcHBlbmQtdGV4dC1w
cm9wZXJ0eScgZGlyZWN0bHkgc28gdGhlIGZhY2UgaXMgYXBwbGllZAorYWNyb3NzIHRoZSBlbnRp
cmUgaGVhZGluZyBldmVuIHdoZW4gY2hpbGQgc3ViLW5vZGVzIChlLmcuIGFuIGlubGluZQorbGlu
aykgd291bGQgb3RoZXJ3aXNlIHByZXZlbnQgdGhlIHJlZ3VsYXIgdHJlZS1zaXR0ZXIgZmFjZSBy
dWxlIGZyb20KK2NvdmVyaW5nIHRoZW0uCisKK0ZvciBBVFggaGVhZGluZ3MsIGFsc28gZm9udGlm
eSBhbnkgb3B0aW9uYWwgdHJhaWxpbmcgY2xvc2luZy1gIycKK3NlcXVlbmNlIGFzIGEgZGVsaW1p
dGVyLiAgVGhlIHRyZWUtc2l0dGVyIGdyYW1tYXIgZG9lcyBub3QgcHJvZHVjZSBhCitzZXBhcmF0
ZSBub2RlIGZvciB0aGVzZTsgcGVyIENvbW1vbk1hcmsgdGhleSBhcmUgZGVjb3JhdGl2ZSBhbmQK
K211c3QgYmUgcHJlY2VkZWQgYnkgYSBzcGFjZSBvciB0YWIuIgorICAobGV0KiAoKHR5cGUgKHRy
ZWVzaXQtbm9kZS10eXBlIG5vZGUpKQorICAgICAgICAgKG4tc3RhcnQgKHRyZWVzaXQtbm9kZS1z
dGFydCBub2RlKSkKKyAgICAgICAgIChuLWVuZCAgICh0cmVlc2l0LW5vZGUtZW5kIG5vZGUpKQor
ICAgICAgICAgKGZhY2UgKGNvbmQKKyAgICAgICAgICAgICAgICAoKGVxdWFsIHR5cGUgInNldGV4
dF9oZWFkaW5nIikKKyAgICAgICAgICAgICAgICAgJ21hcmtkb3duLXRzLXNldGV4dC1oZWFkaW5n
KQorICAgICAgICAgICAgICAgICh0CisgICAgICAgICAgICAgICAgIChsZXQgKChtYXJrZXIgKHRy
ZWVzaXQtbm9kZS1jaGlsZCBub2RlIDApKSkKKyAgICAgICAgICAgICAgICAgICAoaW50ZXJuIChm
b3JtYXQgIm1hcmtkb3duLXRzLWhlYWRpbmctJWQiCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIChsZW5ndGggKHRyZWVzaXQtbm9kZS10ZXh0IG1hcmtlciB0KSkpKSkpKSkpCisg
ICAgKGZvbnQtbG9jay1hcHBlbmQtdGV4dC1wcm9wZXJ0eSBuLXN0YXJ0IG4tZW5kICdmYWNlIGZh
Y2UpCisgICAgKHdoZW4gKHN0cmluZy1wcmVmaXgtcCAiYXR4XyIgdHlwZSkKKyAgICAgIChzYXZl
LWV4Y3Vyc2lvbgorICAgICAgICAoZ290by1jaGFyIG4tZW5kKQorICAgICAgICAoc2tpcC1jaGFy
cy1iYWNrd2FyZCAiIFx0XG4iIG4tc3RhcnQpCisgICAgICAgIChsZXQgKChsaW5lLWVuZCAocG9p
bnQpKSkKKyAgICAgICAgICAoc2tpcC1jaGFycy1iYWNrd2FyZCAiIFx0IiBuLXN0YXJ0KQorICAg
ICAgICAgIChsZXQgKCh0cmFpbGluZy1lbmQgKHBvaW50KSkpCisgICAgICAgICAgICAoc2tpcC1j
aGFycy1iYWNrd2FyZCAiIyIgbi1zdGFydCkKKyAgICAgICAgICAgIChsZXQgKCh0cmFpbGluZy1z
dGFydCAocG9pbnQpKSkKKyAgICAgICAgICAgICAgKHdoZW4gKGFuZCAoPCB0cmFpbGluZy1zdGFy
dCB0cmFpbGluZy1lbmQpCisgICAgICAgICAgICAgICAgICAgICAgICAgKD4gdHJhaWxpbmctc3Rh
cnQgbi1zdGFydCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAobWVtcSAoY2hhci1iZWZvcmUg
dHJhaWxpbmctc3RhcnQpICcoP1xzID9cdCkpKQorICAgICAgICAgICAgICAgIChmb250LWxvY2st
cHJlcGVuZC10ZXh0LXByb3BlcnR5CisgICAgICAgICAgICAgICAgIHRyYWlsaW5nLXN0YXJ0IHRy
YWlsaW5nLWVuZAorICAgICAgICAgICAgICAgICAnZmFjZSAnbWFya2Rvd24tdHMtZGVsaW1pdGVy
KQorICAgICAgICAgICAgICAgICh3aGVuIG1hcmtkb3duLXRzLWhpZGUtbWFya3VwCisgICAgICAg
ICAgICAgICAgICA7OyBBbHNvIGhpZGUgdGhlIHNwYWNlKHMpIHByZWNlZGluZyB0aGUgY2xvc2Vy
IGFuZCBhbnkKKyAgICAgICAgICAgICAgICAgIDs7IHRyYWlsaW5nIHdoaXRlc3BhY2UsIHNvIHRo
ZSBoZWFkaW5nIGxvb2tzIGNsZWFuLgorICAgICAgICAgICAgICAgICAgKGxldCAoKGhpZGUtc3Rh
cnQgKHNhdmUtZXhjdXJzaW9uCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IChnb3RvLWNoYXIgdHJhaWxpbmctc3RhcnQpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIChza2lwLWNoYXJzLWJhY2t3YXJkICIgXHQiIG4tc3RhcnQpCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIChwb2ludCkpKSkKKyAgICAgICAgICAgICAgICAg
ICAgKHB1dC10ZXh0LXByb3BlcnR5IGhpZGUtc3RhcnQgbGluZS1lbmQKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICdpbnZpc2libGUKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICdtYXJrZG93bi10cy0tbWFya3VwKSkpKSkpKSkpKSkKKworKGRl
ZnVuIG1hcmtkb3duLXRzLS1mb250aWZ5LWxpbmstbm9kZSAobm9kZSBvdmVycmlkZSBzdGFydCBl
bmQgJnJlc3QgXykKKyAgIkZvbnRpZnkgbGluayBvciBpbWFnZSB0ZXh0IE5PREUgYXMgYSBjbGlj
a2FibGUgYnV0dG9uLgorV29ya3MgZm9yIGlubGluZSBsaW5rcywgcmVmZXJlbmNlIGxpbmtzLCBz
aG9ydGN1dCBsaW5rcywgYW5kCitpbWFnZSBkZXNjcmlwdGlvbnMuICBUaGUgVVJMIGlzIHRha2Vu
IGZyb20gYSBzaWJsaW5nCitgbGlua19kZXN0aW5hdGlvbicgbm9kZSB3aGVuIHByZXNlbnQsIG9y
IHJlc29sdmVkIGZyb20gYQorbGluayByZWZlcmVuY2UgZGVmaW5pdGlvbiwgb3IgdGhlIG5vZGUg
dGV4dCBpdHNlbGYgaXMgdXNlZCBhcworZmFsbGJhY2suICBPVkVSUklERSwgU1RBUlQsIGFuZCBF
TkQgYXJlIHBhc3NlZCB0aHJvdWdoIHRvCitgdHJlZXNpdC1mb250aWZ5LXdpdGgtb3ZlcnJpZGUn
LiIKKyAgKGxldCAoKHBhcmVudCAodHJlZXNpdC1ub2RlLXBhcmVudCBub2RlKSkpCisgICAgOzsg
V2hlbiBOT0RFIGlzIGEgbGlua19sYWJlbCBpbnNpZGUgYSBmdWxsX3JlZmVyZW5jZV9saW5rIHRo
YXQKKyAgICA7OyBhbHNvIGhhcyBhIGxpbmtfdGV4dCwgc2tpcCBpdCwgbGlua190ZXh0IGhhbmRs
ZXMgdGhhdCBsaW5rLgorICAgICh1bmxlc3MgKGFuZCAoc3RyaW5nPSAodHJlZXNpdC1ub2RlLXR5
cGUgbm9kZSkgImxpbmtfbGFiZWwiKQorICAgICAgICAgICAgICAgICAodHJlZXNpdC1zZWFyY2gt
c3VidHJlZSBwYXJlbnQgIlxcYGxpbmtfdGV4dFxcJyIpKQorICAgICAgKHRyZWVzaXQtZm9udGlm
eS13aXRoLW92ZXJyaWRlCisgICAgICAgKHRyZWVzaXQtbm9kZS1zdGFydCBub2RlKSAodHJlZXNp
dC1ub2RlLWVuZCBub2RlKQorICAgICAgICdtYXJrZG93bi10cy1saW5rIG92ZXJyaWRlIHN0YXJ0
IGVuZCkKKyAgICAgIChsZXQqICgoZGVzdCAodHJlZXNpdC1zZWFyY2gtc3VidHJlZSBwYXJlbnQg
IlxcYGxpbmtfZGVzdGluYXRpb25cXCciKSkKKyAgICAgICAgICAgICAodXJsIChpZiBkZXN0Cisg
ICAgICAgICAgICAgICAgICAgICAgKHRyZWVzaXQtbm9kZS10ZXh0IGRlc3QgdCkKKyAgICAgICAg
ICAgICAgICAgICAgOzsgUmVmZXJlbmNlIGxpbmtzOiByZXNvbHZlIHZpYSBsaW5rX2xhYmVsIG9y
IGxpbmtfdGV4dC4KKyAgICAgICAgICAgICAgICAgICAgKGxldCogKChsYWJlbC1ub2RlICh0cmVl
c2l0LXNlYXJjaC1zdWJ0cmVlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgcGFyZW50ICJcXGBsaW5rX2xhYmVsXFwnIikpCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAobGFiZWwgKGlmIGxhYmVsLW5vZGUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgKHN0cmluZy10cmltICh0cmVlc2l0LW5vZGUtdGV4dAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsLW5vZGUgdCkKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJcXFsiICJcXF0iKQor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHRyZWVzaXQtbm9kZS10ZXh0IG5v
ZGUgdCkpKSkKKyAgICAgICAgICAgICAgICAgICAgICAob3IgKG1hcmtkb3duLXRzLS1yZXNvbHZl
LWxpbmstcmVmIGxhYmVsKQorICAgICAgICAgICAgICAgICAgICAgICAgICBsYWJlbCkpKSkpCisg
ICAgICAgIChtYXJrZG93bi10cy0tbWFrZS1saW5rLWJ1dHRvbgorICAgICAgICAgKHRyZWVzaXQt
bm9kZS1zdGFydCBub2RlKSAodHJlZXNpdC1ub2RlLWVuZCBub2RlKSB1cmwpKSkpKQorCisoZGVm
dW4gbWFya2Rvd24tdHMtLWZvbnRpZnktYXV0b2xpbmsgKG5vZGUgb3ZlcnJpZGUgc3RhcnQgZW5k
ICZyZXN0IF8pCisgICJGb250aWZ5IGF1dG9saW5rIE5PREUgKFVSSSBvciBlbWFpbCkgYXMgYSBj
bGlja2FibGUgYnV0dG9uLgorRm9yIGVtYWlsIGF1dG9saW5rcywgdGhlIFVSTCBpcyBwcmVmaXhl
ZCB3aXRoIFwibWFpbHRvOlwiLgorQW5nbGUgYnJhY2tldCBkZWxpbWl0ZXJzIGFyZSBoaWRkZW4g
d2hlbiBtYXJrdXAgaXMgaGlkZGVuLgorT1ZFUlJJREUsIFNUQVJULCBhbmQgRU5EIGFyZSBwYXNz
ZWQgdGhyb3VnaCB0bworYHRyZWVzaXQtZm9udGlmeS13aXRoLW92ZXJyaWRlJy4iCisgIChsZXQq
ICgobm9kZS1zdGFydCAodHJlZXNpdC1ub2RlLXN0YXJ0IG5vZGUpKQorICAgICAgICAgKG5vZGUt
ZW5kICh0cmVlc2l0LW5vZGUtZW5kIG5vZGUpKQorICAgICAgICAgKGlubmVyIChidWZmZXItc3Vi
c3RyaW5nLW5vLXByb3BlcnRpZXMKKyAgICAgICAgICAgICAgICAgKDErIG5vZGUtc3RhcnQpICgx
LSBub2RlLWVuZCkpKQorICAgICAgICAgKHVybCAoaWYgKHN0cmluZz0gKHRyZWVzaXQtbm9kZS10
eXBlIG5vZGUpICJlbWFpbF9hdXRvbGluayIpCisgICAgICAgICAgICAgICAgICAoY29uY2F0ICJt
YWlsdG86IiBpbm5lcikKKyAgICAgICAgICAgICAgICBpbm5lcikpKQorICAgICh0cmVlc2l0LWZv
bnRpZnktd2l0aC1vdmVycmlkZQorICAgICBub2RlLXN0YXJ0IG5vZGUtZW5kICdtYXJrZG93bi10
cy1saW5rIG92ZXJyaWRlIHN0YXJ0IGVuZCkKKyAgICAobWFya2Rvd24tdHMtLW1ha2UtbGluay1i
dXR0b24gbm9kZS1zdGFydCBub2RlLWVuZCB1cmwpCisgICAgKHdoZW4gbWFya2Rvd24tdHMtaGlk
ZS1tYXJrdXAKKyAgICAgIChwdXQtdGV4dC1wcm9wZXJ0eSBub2RlLXN0YXJ0ICgxKyBub2RlLXN0
YXJ0KQorICAgICAgICAgICAgICAgICAgICAgICAgICdpbnZpc2libGUgJ21hcmtkb3duLXRzLS1t
YXJrdXApCisgICAgICAocHV0LXRleHQtcHJvcGVydHkgKDEtIG5vZGUtZW5kKSBub2RlLWVuZAor
ICAgICAgICAgICAgICAgICAgICAgICAgICdpbnZpc2libGUgJ21hcmtkb3duLXRzLS1tYXJrdXAp
KSkpCisKKyhkZWZ1biBtYXJrZG93bi10cy0tZm9udGlmeS1saW5rLXJlZi1sYWJlbCAobm9kZSBv
dmVycmlkZSBzdGFydCBlbmQgJnJlc3QgXykKKyAgIkZvbnRpZnkgbGluayByZWZlcmVuY2UgZGVm
aW5pdGlvbiBsYWJlbCBOT0RFIGFzIGEgY2xpY2thYmxlIGJ1dHRvbi4KK1RoZSBicmFja2V0cyBh
bmQgY29sb24gYXJlIGhpZGRlbiB3aGVuIG1hcmt1cCBpcyBoaWRkZW4uCitPVkVSUklERSwgU1RB
UlQsIGFuZCBFTkQgYXJlIHBhc3NlZCB0aHJvdWdoIHRvCitgdHJlZXNpdC1mb250aWZ5LXdpdGgt
b3ZlcnJpZGUnLiIKKyAgKGxldCogKChub2RlLXN0YXJ0ICh0cmVlc2l0LW5vZGUtc3RhcnQgbm9k
ZSkpCisgICAgICAgICAobm9kZS1lbmQgKHRyZWVzaXQtbm9kZS1lbmQgbm9kZSkpCisgICAgICAg
ICAocGFyZW50ICh0cmVlc2l0LW5vZGUtcGFyZW50IG5vZGUpKQorICAgICAgICAgKGRlc3Qtbm9k
ZSAodHJlZXNpdC1zZWFyY2gtc3VidHJlZSBwYXJlbnQgIlxcYGxpbmtfZGVzdGluYXRpb25cXCci
KSkKKyAgICAgICAgICh1cmwgKHdoZW4gZGVzdC1ub2RlICh0cmVlc2l0LW5vZGUtdGV4dCBkZXN0
LW5vZGUgdCkpKSkKKyAgICA7OyBGb250aWZ5IHRoZSBsYWJlbCB0ZXh0IChpbnNpZGUgYnJhY2tl
dHMpLgorICAgICh0cmVlc2l0LWZvbnRpZnktd2l0aC1vdmVycmlkZQorICAgICAoMSsgbm9kZS1z
dGFydCkgKDEtIG5vZGUtZW5kKQorICAgICAnbWFya2Rvd24tdHMtbGluayBvdmVycmlkZSBzdGFy
dCBlbmQpCisgICAgOzsgTWFrZSBpdCBhIGNsaWNrYWJsZSBidXR0b24uCisgICAgKHdoZW4gdXJs
CisgICAgICAobWFya2Rvd24tdHMtLW1ha2UtbGluay1idXR0b24gKDErIG5vZGUtc3RhcnQpICgx
LSBub2RlLWVuZCkgdXJsKSkKKyAgICA7OyBIaWRlICJbIiBiZWZvcmUgbGFiZWwgYW5kICJdOiAi
IGJldHdlZW4gbGFiZWwgYW5kIGRlc3RpbmF0aW9uLgorICAgICh3aGVuIG1hcmtkb3duLXRzLWhp
ZGUtbWFya3VwCisgICAgICAocHV0LXRleHQtcHJvcGVydHkgbm9kZS1zdGFydCAoMSsgbm9kZS1z
dGFydCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAnaW52aXNpYmxlICdtYXJrZG93bi10cy0t
bWFya3VwKQorICAgICAgKGxldCAoKGNvbG9uLWVuZCAoaWYgZGVzdC1ub2RlICh0cmVlc2l0LW5v
ZGUtc3RhcnQgZGVzdC1ub2RlKQorICAgICAgICAgICAgICAgICAgICAgICAgICgxKyBub2RlLWVu
ZCkpKSkKKyAgICAgICAgKHB1dC10ZXh0LXByb3BlcnR5ICgxLSBub2RlLWVuZCkgY29sb24tZW5k
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAnaW52aXNpYmxlICdtYXJrZG93bi10cy0tbWFy
a3VwKSkpKSkKKworKGRlZnVuIG1hcmtkb3duLXRzLS1mb250aWZ5LWxpbmstcmVmLWRlc3RpbmF0
aW9uIChub2RlIG92ZXJyaWRlIHN0YXJ0IGVuZAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICZyZXN0IF8pCisgICJGb250aWZ5IGxpbmsgcmVm
ZXJlbmNlIGRlZmluaXRpb24gZGVzdGluYXRpb24gTk9ERSBhbmQgaGlkZSB3aGVuIG1hcmt1cCBo
aWRkZW4uCitPVkVSUklERSwgU1RBUlQsIGFuZCBFTkQgYXJlIHBhc3NlZCB0aHJvdWdoIHRvCitg
dHJlZXNpdC1mb250aWZ5LXdpdGgtb3ZlcnJpZGUnLiIKKyAgKHRyZWVzaXQtZm9udGlmeS13aXRo
LW92ZXJyaWRlCisgICAodHJlZXNpdC1ub2RlLXN0YXJ0IG5vZGUpICh0cmVlc2l0LW5vZGUtZW5k
IG5vZGUpCisgICAnbWFya2Rvd24tdHMtbGluay1kZXN0aW5hdGlvbiBvdmVycmlkZSBzdGFydCBl
bmQpCisgICh3aGVuIG1hcmtkb3duLXRzLWhpZGUtbWFya3VwCisgICAgKHB1dC10ZXh0LXByb3Bl
cnR5ICh0cmVlc2l0LW5vZGUtc3RhcnQgbm9kZSkgKHRyZWVzaXQtbm9kZS1lbmQgbm9kZSkKKyAg
ICAgICAgICAgICAgICAgICAgICAgJ2ludmlzaWJsZSAnbWFya2Rvd24tdHMtLW1hcmt1cCkpKQor
CisoZGVmdW4gbWFya2Rvd24tdHMtLWxhdGV4LWJsb2NrLXZhbGlkLXAgKG5vZGUpCisgICJSZXR1
cm4gbm9uLW5pbCBpZiBsYXRleCBibG9jayBOT0RFIGlzIHdpdGhpbiBhIHNpbmdsZSBpbmxpbmUg
c2NvcGUuCitUaGUgZ2xvYmFsIGlubGluZSBwYXJzZXIgY2FuIGNyZWF0ZSBmYWxzZSBgbGF0ZXhf
YmxvY2snIG1hdGNoZXMKK3NwYW5uaW5nIGFjcm9zcyBwYXJhZ3JhcGggYm91bmRhcmllcy4gIENo
ZWNrIHRoYXQgdGhlIG9wZW5pbmcgYW5kCitjbG9zaW5nIGRlbGltaXRlcnMgc2hhcmUgdGhlIHNh
bWUgbWFya2Rvd24gYGlubGluZScgYW5jZXN0b3IuIgorICAobGV0ICgobm9kZS1zdGFydCAodHJl
ZXNpdC1ub2RlLXN0YXJ0IG5vZGUpKQorICAgICAgICAobm9kZS1lbmQgKDEtICh0cmVlc2l0LW5v
ZGUtZW5kIG5vZGUpKSkpCisgICAgKHdoZW4tbGV0KiAoKG1kLXN0YXJ0ICh0cmVlc2l0LW5vZGUt
YXQgbm9kZS1zdGFydCAnbWFya2Rvd24pKQorICAgICAgICAgICAgICAgIChtZC1lbmQgKHRyZWVz
aXQtbm9kZS1hdCBub2RlLWVuZCAnbWFya2Rvd24pKQorICAgICAgICAgICAgICAgIChpbmxpbmUt
c3RhcnQgKHRyZWVzaXQtcGFyZW50LXVudGlsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgbWQtc3RhcnQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobGFtYmRhIChuKQor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGVxdWFsICh0cmVlc2l0LW5vZGUtdHlw
ZSBuKSAiaW5saW5lIikpKSkKKyAgICAgICAgICAgICAgICAoaW5saW5lLWVuZCAodHJlZXNpdC1w
YXJlbnQtdW50aWwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWQtZW5kCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIChsYW1iZGEgKG4pCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgKGVxdWFsICh0cmVlc2l0LW5vZGUtdHlwZSBuKSAiaW5saW5lIikpKSkpCisgICAg
ICAoZXF1YWwgKHRyZWVzaXQtbm9kZS1zdGFydCBpbmxpbmUtc3RhcnQpCisgICAgICAgICAgICAg
KHRyZWVzaXQtbm9kZS1zdGFydCBpbmxpbmUtZW5kKSkpKSkKKworKGRlZnVuIG1hcmtkb3duLXRz
LS1mb250aWZ5LWxhdGV4LWJsb2NrIChub2RlIG92ZXJyaWRlIHN0YXJ0IGVuZCAmcmVzdCBfKQor
ICAiRm9udGlmeSBsYXRleCBibG9jayBOT0RFIGFuZCBoaWRlIGl0cyBkZWxpbWl0ZXJzIHdoZW4g
bWFya3VwIGlzIGhpZGRlbi4KK1NraXAgZm9udGlmaWNhdGlvbiBmb3IgZmFsc2UgbWF0Y2hlcyB0
aGF0IHNwYW4gYWNyb3NzIHBhcmFncmFwaCBib3VuZGFyaWVzLgorT1ZFUlJJREUsIFNUQVJULCBh
bmQgRU5EIGFyZSBwYXNzZWQgdGhyb3VnaCB0bworYHRyZWVzaXQtZm9udGlmeS13aXRoLW92ZXJy
aWRlJy4iCisgICh3aGVuIChtYXJrZG93bi10cy0tbGF0ZXgtYmxvY2stdmFsaWQtcCBub2RlKQor
ICAgICh0cmVlc2l0LWZvbnRpZnktd2l0aC1vdmVycmlkZQorICAgICAodHJlZXNpdC1ub2RlLXN0
YXJ0IG5vZGUpICh0cmVlc2l0LW5vZGUtZW5kIG5vZGUpCisgICAgICdtYXJrZG93bi10cy1sYXRl
eCBvdmVycmlkZSBzdGFydCBlbmQpCisgICAgKHdoZW4gbWFya2Rvd24tdHMtaGlkZS1tYXJrdXAK
KyAgICAgIChkb3RpbWVzIChpICh0cmVlc2l0LW5vZGUtY2hpbGQtY291bnQgbm9kZSkpCisgICAg
ICAgIChsZXQgKChjaGlsZCAodHJlZXNpdC1ub2RlLWNoaWxkIG5vZGUgaSkpKQorICAgICAgICAg
ICh3aGVuIChlcXVhbCAodHJlZXNpdC1ub2RlLXR5cGUgY2hpbGQpICJsYXRleF9zcGFuX2RlbGlt
aXRlciIpCisgICAgICAgICAgICAocHV0LXRleHQtcHJvcGVydHkgKHRyZWVzaXQtbm9kZS1zdGFy
dCBjaGlsZCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodHJlZXNpdC1ub2RlLWVu
ZCBjaGlsZCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnaW52aXNpYmxlICdtYXJr
ZG93bi10cy0tbWFya3VwKSkpKSkpKQorCisoZGVmdW4gbWFya2Rvd24tdHMtLWZvbnRpZnktYmFj
a3NsYXNoLWVzY2FwZSAobm9kZSBvdmVycmlkZSBzdGFydCBlbmQgJnJlc3QgXykKKyAgIkZvbnRp
ZnkgYmFja3NsYXNoIGVzY2FwZSBOT0RFLCBoaWRpbmcgdGhlIGJhY2tzbGFzaCB3aGVuIG1hcmt1
cCBpcyBoaWRkZW4uCitTa2lwIGhpZGluZyBpbnNpZGUgYGxhdGV4X2Jsb2NrJyB3aGVyZSBiYWNr
c2xhc2hlcyBhcmUgTGFUZVggc3ludGF4LgorT1ZFUlJJREUsIFNUQVJULCBhbmQgRU5EIGFyZSBw
YXNzZWQgdGhyb3VnaCB0bworYHRyZWVzaXQtZm9udGlmeS13aXRoLW92ZXJyaWRlJy4iCisgIChs
ZXQgKChub2RlLXN0YXJ0ICh0cmVlc2l0LW5vZGUtc3RhcnQgbm9kZSkpCisgICAgICAgIChpbi1s
YXRleCAoZXF1YWwgKHRyZWVzaXQtbm9kZS10eXBlICh0cmVlc2l0LW5vZGUtcGFyZW50IG5vZGUp
KQorICAgICAgICAgICAgICAgICAgICAgICAgICJsYXRleF9ibG9jayIpKSkKKyAgICAodHJlZXNp
dC1mb250aWZ5LXdpdGgtb3ZlcnJpZGUKKyAgICAgbm9kZS1zdGFydCAoMSsgbm9kZS1zdGFydCkK
KyAgICAgJ21hcmtkb3duLXRzLWRlbGltaXRlciBvdmVycmlkZSBzdGFydCBlbmQpCisgICAgKHdo
ZW4gKGFuZCBtYXJrZG93bi10cy1oaWRlLW1hcmt1cCAobm90IGluLWxhdGV4KSkKKyAgICAgIChw
dXQtdGV4dC1wcm9wZXJ0eSBub2RlLXN0YXJ0ICgxKyBub2RlLXN0YXJ0KQorICAgICAgICAgICAg
ICAgICAgICAgICAgICdpbnZpc2libGUgJ21hcmtkb3duLXRzLS1tYXJrdXApKSkpCisKKyhkZWZ2
YXIgc2dtbC1jaGFyLW5hbWVzKQorKGRlY2xhcmUtZnVuY3Rpb24gb3JnLWVudGl0eS1nZXQgIm9y
Zy9vcmctZW50aXRpZXMuZWwiKQorCisoZGVmdW4gbWFya2Rvd24tdHMtLWRlY29kZS1lbnRpdHkg
KHRleHQpCisgICJEZWNvZGUgSFRNTCBlbnRpdHkgVEVYVCAoZS5nLiwgXCImYW1wO1wiKSB0byBp
dHMgY2hhcmFjdGVyIHN0cmluZy4KK1JldHVybiB0aGUgZGVjb2RlZCBzdHJpbmcsIG9yIG5pbCBp
ZiB0aGUgZW50aXR5IGlzIHVua25vd24uIgorICAoY29uZAorICAgOzsgTnVtZXJpYyBoZXggJiN4
MUY0QTk7CisgICAoKHN0cmluZy1tYXRjaCAiXFxgJiN4XFwoW1s6eGRpZ2l0Ol1dK1xcKTtcXCci
IHRleHQpCisgICAgKGNoYXItdG8tc3RyaW5nIChzdHJpbmctdG8tbnVtYmVyIChtYXRjaC1zdHJp
bmcgMSB0ZXh0KSAxNikpKQorICAgOzsgTnVtZXJpYyBkZWNpbWFsICYjMTIzOworICAgKChzdHJp
bmctbWF0Y2ggIlxcYCYjXFwoW1s6ZGlnaXQ6XV0rXFwpO1xcJyIgdGV4dCkKKyAgICAoY2hhci10
by1zdHJpbmcgKHN0cmluZy10by1udW1iZXIgKG1hdGNoLXN0cmluZyAxIHRleHQpKSkpCisgICA7
OyBOYW1lZCAmYW1wOyAmY29weTsgdmlhIG9yZy1lbnRpdGllcywgZmFsbCBiYWNrIHRvIHNnbWwt
Y2hhci1uYW1lcworICAgKChzdHJpbmctbWF0Y2ggIlxcYCZcXChbWzphbG51bTpdXStcXCk7XFwn
IiB0ZXh0KQorICAgIChsZXQgKChuYW1lIChtYXRjaC1zdHJpbmcgMSB0ZXh0KSkpCisgICAgICAo
cmVxdWlyZSAnb3JnLWVudGl0aWVzKQorICAgICAgKGlmLWxldCogKChlbnRyeSAob3JnLWVudGl0
eS1nZXQgbmFtZSkpCisgICAgICAgICAgICAgICAgKHV0ZjggKG50aCA2IGVudHJ5KSkpCisgICAg
ICAgICAgdXRmOAorICAgICAgICAocmVxdWlyZSAnc2dtbC1tb2RlKQorICAgICAgICAod2hlbi1s
ZXQqICgoY29kZSAoc2VxLXBvc2l0aW9uIHNnbWwtY2hhci1uYW1lcyBuYW1lICMnZXF1YWwpKSkK
KyAgICAgICAgICAoY2hhci10by1zdHJpbmcgY29kZSkpKSkpKSkKKworKGRlZnVuIG1hcmtkb3du
LXRzLS1mb250aWZ5LWVudGl0eSAobm9kZSBvdmVycmlkZSBzdGFydCBlbmQgJnJlc3QgXykKKyAg
IkZvbnRpZnkgZW50aXR5IE5PREUgYW5kIHNob3cgaXRzIGRlY29kZWQgdmFsdWUgd2hlbiBtYXJr
dXAgaXMgaGlkZGVuLgorT1ZFUlJJREUsIFNUQVJULCBhbmQgRU5EIGFyZSBwYXNzZWQgdGhyb3Vn
aCB0bworYHRyZWVzaXQtZm9udGlmeS13aXRoLW92ZXJyaWRlJy4iCisgIChsZXQgKChub2RlLXN0
YXJ0ICh0cmVlc2l0LW5vZGUtc3RhcnQgbm9kZSkpCisgICAgICAgIChub2RlLWVuZCAodHJlZXNp
dC1ub2RlLWVuZCBub2RlKSkKKyAgICAgICAgKGZhY2UgKGlmIChlcXVhbCAodHJlZXNpdC1ub2Rl
LXR5cGUgbm9kZSkgImVudGl0eV9yZWZlcmVuY2UiKQorICAgICAgICAgICAgICAgICAgJ21hcmtk
b3duLXRzLWVudGl0eS1yZWZlcmVuY2UKKyAgICAgICAgICAgICAgICAnbWFya2Rvd24tdHMtbnVt
ZXJpYy1jaGFyYWN0ZXItcmVmZXJlbmNlKSkpCisgICAgKHRyZWVzaXQtZm9udGlmeS13aXRoLW92
ZXJyaWRlIG5vZGUtc3RhcnQgbm9kZS1lbmQgZmFjZQorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBvdmVycmlkZSBzdGFydCBlbmQpCisgICAgKGlmIG1hcmtkb3duLXRzLWhpZGUt
bWFya3VwCisgICAgICAgICh3aGVuLWxldCogKChkZWNvZGVkIChtYXJrZG93bi10cy0tZGVjb2Rl
LWVudGl0eQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHRyZWVzaXQtbm9kZS10ZXh0
IG5vZGUgdCkpKQorICAgICAgICAgICAgICAgICAgICAoKGNoYXItZGlzcGxheWFibGUtcCAoYXJl
ZiBkZWNvZGVkIDApKSkpCisgICAgICAgICAgKHB1dC10ZXh0LXByb3BlcnR5IG5vZGUtc3RhcnQg
bm9kZS1lbmQgJ2Rpc3BsYXkgZGVjb2RlZCkpCisgICAgICAocmVtb3ZlLXRleHQtcHJvcGVydGll
cyBub2RlLXN0YXJ0IG5vZGUtZW5kICcoZGlzcGxheSBuaWwpKSkpKQorCisoZGVmdW4gbWFya2Rv
d24tdHMtLXJlc29sdmUtZGlzcGxheS12YWx1ZSAodmFsKQorICAiUmVzb2x2ZSBWQUwsIGEgY29u
cyAoUFJFRkVSUkVEIC4gRkFMTEJBQ0spLCB0byBhIGRpc3BsYXlhYmxlIHZhbHVlLgorUmV0dXJu
IFBSRUZFUlJFRCBpZiBpdHMgZmlyc3QgY2hhcmFjdGVyIHBhc3NlcyBgY2hhci1kaXNwbGF5YWJs
ZS1wJywKK290aGVyd2lzZSByZXR1cm4gRkFMTEJBQ0suICBSZXR1cm4gbmlsIGlmIFZBTCBpcyBu
aWwuIgorICAod2hlbiB2YWwKKyAgICAobGV0KiAoKHByZWZlcnJlZCAoY2FyIHZhbCkpCisgICAg
ICAgICAgIChjaCAoaWYgKGNoYXJhY3RlcnAgcHJlZmVycmVkKSBwcmVmZXJyZWQgKGFyZWYgcHJl
ZmVycmVkIDApKSkpCisgICAgICAoaWYgKGNoYXItZGlzcGxheWFibGUtcCBjaCkgKGNhciB2YWwp
IChjZHIgdmFsKSkpKSkKKworKGRlZnVuIG1hcmtkb3duLXRzLS1mb250aWZ5LWNoZWNrYm94IChu
b2RlIG92ZXJyaWRlIHN0YXJ0IGVuZCAmcmVzdCBfKQorICAiRm9udGlmeSB0YXNrIGxpc3QgY2hl
Y2tib3ggTk9ERSwgc2hvdyBhIFVuaWNvZGUgc3ltYm9sIHdoZW4gbWFya3VwIGlzIGhpZGRlbi4K
K09WRVJSSURFLCBTVEFSVCwgYW5kIEVORCBhcmUgcGFzc2VkIHRocm91Z2ggdG8KK2B0cmVlc2l0
LWZvbnRpZnktd2l0aC1vdmVycmlkZScuIgorICAobGV0KiAoKG5vZGUtc3RhcnQgKHRyZWVzaXQt
bm9kZS1zdGFydCBub2RlKSkKKyAgICAgICAgIChub2RlLWVuZCAodHJlZXNpdC1ub2RlLWVuZCBu
b2RlKSkKKyAgICAgICAgIChjaGVja2VkIChlcXVhbCAodHJlZXNpdC1ub2RlLXR5cGUgbm9kZSkg
InRhc2tfbGlzdF9tYXJrZXJfY2hlY2tlZCIpKQorICAgICAgICAgKGZhY2UgKGlmIGNoZWNrZWQg
J21hcmtkb3duLXRzLXRhc2stY2hlY2tlZAorICAgICAgICAgICAgICAgICAnbWFya2Rvd24tdHMt
dGFzay11bmNoZWNrZWQpKQorICAgICAgICAgKHJlcGxhY2VtZW50IChtYXJrZG93bi10cy0tcmVz
b2x2ZS1kaXNwbGF5LXZhbHVlCisgICAgICAgICAgICAgICAgICAgICAgIChpZiBjaGVja2VkCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICBtYXJrZG93bi10cy1jaGVja2VkLWNoZWNrYm94Cisg
ICAgICAgICAgICAgICAgICAgICAgICAgbWFya2Rvd24tdHMtdW5jaGVja2VkLWNoZWNrYm94KSkp
KQorICAgICh0cmVlc2l0LWZvbnRpZnktd2l0aC1vdmVycmlkZSBub2RlLXN0YXJ0IG5vZGUtZW5k
IGZhY2UKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3ZlcnJpZGUgc3RhcnQg
ZW5kKQorICAgIChpZiAoYW5kIG1hcmtkb3duLXRzLWhpZGUtbWFya3VwIHJlcGxhY2VtZW50Cisg
ICAgICAgICAgICAgKGNoYXItZGlzcGxheWFibGUtcCAoYXJlZiByZXBsYWNlbWVudCAwKSkpCisg
ICAgICAgIChwdXQtdGV4dC1wcm9wZXJ0eSBub2RlLXN0YXJ0IG5vZGUtZW5kICdkaXNwbGF5IHJl
cGxhY2VtZW50KQorICAgICAgKHJlbW92ZS10ZXh0LXByb3BlcnRpZXMgbm9kZS1zdGFydCBub2Rl
LWVuZCAnKGRpc3BsYXkgbmlsKSkpKSkKKworKGRlZnVuIG1hcmtkb3duLXRzLS1mb250aWZ5LWhh
cmQtbGluZS1icmVhayAobm9kZSBvdmVycmlkZSBzdGFydCBlbmQgJnJlc3QgXykKKyAgIkZvbnRp
ZnkgaGFyZCBsaW5lIGJyZWFrIE5PREU7IHNob3cgYSBVbmljb2RlIHN5bWJvbCB3aGVuIG1hcmt1
cCBpcyBoaWRkZW4uCitBIGJhY2tzbGFzaCBicmVhayBnZXRzIGBtYXJrZG93bi10cy1oYXJkLWxp
bmUtYnJlYWstYmFja3NsYXNoJyAob3IgaXRzCitgLWhpZGRlbicgdmFyaWFudCB3aGVuIG1hcmt1
cCBpcyBoaWRkZW4pOyBhIHRyYWlsaW5nLXNwYWNlcyBicmVhayBnZXRzCitgbWFya2Rvd24tdHMt
aGFyZC1saW5lLWJyZWFrLXNwYWNlJyAob3IgYC1oaWRkZW4nKS4gIFdoZW4gaGlkZGVuLCBhCiti
YWNrc2xhc2ggYnJlYWsgaXMgcmVwbGFjZWQgYnkgYSBzaW5nbGUgYG1hcmtkb3duLXRzLWhhcmQt
bGluZS1icmVhaycKK2dseXBoOyBhIHRyYWlsaW5nLXNwYWNlcyBicmVhayByZXBsYWNlcyBlYWNo
IHNwYWNlIHdpdGggdGhlIGdseXBoLCBzbyB0aGUgcnVuCitvZiBwaWxjcm93cyBmaWxscyB0aGUg
bGluZSB1cCB0byB0aGUgbmV3bGluZS4KK09WRVJSSURFLCBTVEFSVCwgYW5kIEVORCBhcmUgcGFz
c2VkIHRocm91Z2ggdG8KK2B0cmVlc2l0LWZvbnRpZnktd2l0aC1vdmVycmlkZScuIgorICAobGV0
KiAoKG5vZGUtc3RhcnQgKHRyZWVzaXQtbm9kZS1zdGFydCBub2RlKSkKKyAgICAgICAgIChub2Rl
LWVuZCAgICh0cmVlc2l0LW5vZGUtZW5kIG5vZGUpKQorICAgICAgICAgKHRleHQgICAgICAgKHRy
ZWVzaXQtbm9kZS10ZXh0IG5vZGUgdCkpCisgICAgICAgICAoYmFja3NsYXNoICAoYW5kICg+IChs
ZW5ndGggdGV4dCkgMCkgKGVxIChhcmVmIHRleHQgMCkgP1xcKSkpCisgICAgICAgICA7OyBEZXRl
cm1pbmUgdGhlIGFjdHVhbCByYW5nZSB0byBmb250aWZ5IGFuZCByZXBsYWNlLiAgVGhlCisgICAg
ICAgICA7OyBoYXJkX2xpbmVfYnJlYWsgbm9kZSBtYXkgbm90IGNvdmVyIHRoZSBmdWxsIHJ1biBv
ZiB0cmFpbGluZworICAgICAgICAgOzsgc3BhY2VzLCBzbyB3YWxrIGJhY2sgZnJvbSBlbmQtb2Yt
bGluZSBvdXJzZWx2ZXMgZm9yIHRoZQorICAgICAgICAgOzsgc3BhY2VzIHZhcmlhbnQuCisgICAg
ICAgICAocmVnaW9uICAgICAoaWYgYmFja3NsYXNoCisgICAgICAgICAgICAgICAgICAgICAgICAg
KGNvbnMgbm9kZS1zdGFydAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpZiAoYW5k
ICg+IG5vZGUtZW5kIG5vZGUtc3RhcnQpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgKGVxIChjaGFyLWJlZm9yZSBub2RlLWVuZCkgP1xuKSkKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgKDEtIG5vZGUtZW5kKQorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgbm9kZS1lbmQpKQorICAgICAgICAgICAgICAgICAgICAgICAoc2F2ZS1leGN1
cnNpb24KKyAgICAgICAgICAgICAgICAgICAgICAgICAoZ290by1jaGFyIG5vZGUtc3RhcnQpCisg
ICAgICAgICAgICAgICAgICAgICAgICAgKGxldCAoKGVvbCAobGluZS1lbmQtcG9zaXRpb24pKSkK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgIChjb25zIChzYXZlLWV4Y3Vyc2lvbgorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZ290by1jaGFyIGVvbCkKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgKHNraXAtY2hhcnMtYmFja3dhcmQKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICIgIiAobGluZS1iZWdpbm5pbmctcG9zaXRpb24pKQor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAocG9pbnQpKQorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgZW9sKSkpKSkKKyAgICAgICAgIChyZWdpb24tc3RhcnQgKGNh
ciByZWdpb24pKQorICAgICAgICAgKHJlZ2lvbi1lbmQgICAoY2RyIHJlZ2lvbikpCisgICAgICAg
ICAoZmFjZSAgICAgICAoY29uZAorICAgICAgICAgICAgICAgICAgICAgICgoYW5kIGJhY2tzbGFz
aCBtYXJrZG93bi10cy1oaWRlLW1hcmt1cCkKKyAgICAgICAgICAgICAgICAgICAgICAgJ21hcmtk
b3duLXRzLWhhcmQtbGluZS1icmVhay1iYWNrc2xhc2gtaGlkZGVuKQorICAgICAgICAgICAgICAg
ICAgICAgIChiYWNrc2xhc2ggJ21hcmtkb3duLXRzLWhhcmQtbGluZS1icmVhay1iYWNrc2xhc2gp
CisgICAgICAgICAgICAgICAgICAgICAgKG1hcmtkb3duLXRzLWhpZGUtbWFya3VwCisgICAgICAg
ICAgICAgICAgICAgICAgICdtYXJrZG93bi10cy1oYXJkLWxpbmUtYnJlYWstc3BhY2UtaGlkZGVu
KQorICAgICAgICAgICAgICAgICAgICAgICh0ICdtYXJrZG93bi10cy1oYXJkLWxpbmUtYnJlYWst
c3BhY2UpKSkpCisgICAgKHRyZWVzaXQtZm9udGlmeS13aXRoLW92ZXJyaWRlIHJlZ2lvbi1zdGFy
dCByZWdpb24tZW5kIGZhY2UKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3Zl
cnJpZGUgc3RhcnQgZW5kKQorICAgIDs7IEFsd2F5cyBzdGFydCBieSBjbGVhcmluZyBhbnkgc3Rh
bGUgYGRpc3BsYXknIHByb3BlcnR5LiAgV2UgbmV2ZXIKKyAgICA7OyBzcGFuIHRoZSB0cmFpbGlu
ZyBuZXdsaW5lIHdpdGggYGRpc3BsYXknIChpdCBjb25mdXNlcworICAgIDs7IHJlZGlzcGxheSdz
IGN1cnNvciBwbGFjZW1lbnQpLCBhbmQgd2Ugb25seSBwYWludCBhIHNpbmdsZQorICAgIDs7IGNv
bWJpbmVkIHN0cmluZyBvbnRvIHRoZSBmaXJzdCBjaGFyYWN0ZXIgb2YgdGhlIHJ1biwgbGVhdmlu
ZworICAgIDs7IHRoZSByZXN0IG9mIHRoZSBtYXJrdXAgYWxvbmUuCisgICAgKHJlbW92ZS10ZXh0
LXByb3BlcnRpZXMgcmVnaW9uLXN0YXJ0IHJlZ2lvbi1lbmQgJyhkaXNwbGF5IG5pbCkpCisgICAg
KHdoZW4gbWFya2Rvd24tdHMtaGlkZS1tYXJrdXAKKyAgICAgIChsZXQqICgoc3BlYyAoaWYgYmFj
a3NsYXNoCisgICAgICAgICAgICAgICAgICAgICAgIChtYXJrZG93bi10cy0tcmVzb2x2ZS1kaXNw
bGF5LXZhbHVlCisgICAgICAgICAgICAgICAgICAgICAgICBtYXJrZG93bi10cy1oYXJkLWxpbmUt
YnJlYWstYmFja3NsYXNoKQorICAgICAgICAgICAgICAgICAgICAgbWFya2Rvd24tdHMtaGFyZC1s
aW5lLWJyZWFrLXNwYWNlKSkKKyAgICAgICAgICAgICAoc3RyIChjb25kCisgICAgICAgICAgICAg
ICAgICAgKChudWxsIHNwZWMpIG5pbCkKKyAgICAgICAgICAgICAgICAgICAoKGNoYXJhY3RlcnAg
c3BlYykgKGNoYXItdG8tc3RyaW5nIHNwZWMpKQorICAgICAgICAgICAgICAgICAgICgoc3RyaW5n
cCBzcGVjKSBzcGVjKQorICAgICAgICAgICAgICAgICAgICgoZnVuY3Rpb25wIHNwZWMpCisgICAg
ICAgICAgICAgICAgICAgIChmdW5jYWxsIHNwZWMgKC0gcmVnaW9uLWVuZCByZWdpb24tc3RhcnQp
KSkpKSkKKyAgICAgICAgKHdoZW4gKGFuZCAoc3RyaW5ncCBzdHIpCisgICAgICAgICAgICAgICAg
ICAgKD4gKGxlbmd0aCBzdHIpIDApCisgICAgICAgICAgICAgICAgICAgKGNoYXItZGlzcGxheWFi
bGUtcCAoYXJlZiBzdHIgMCkpKQorICAgICAgICAgIChwdXQtdGV4dC1wcm9wZXJ0eSByZWdpb24t
c3RhcnQgKDErIHJlZ2lvbi1zdGFydCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2Rp
c3BsYXkgc3RyKQorICAgICAgICAgIDs7IEZvciB0aGUgdHJhaWxpbmctc3BhY2VzIHZhcmlhbnQs
IGhpZGUgdGhlIHJlbWFpbmluZworICAgICAgICAgIDs7IHNwYWNlcyBpbiB0aGUgcnVuIHNvIHRo
ZSBsaW5lIGRvZXNuJ3QgZW5kIHdpdGggbGVmdG92ZXIKKyAgICAgICAgICA7OyB3aGl0ZXNwYWNl
IGFmdGVyIHRoZSBzdWJzdGl0dXRlZCBnbHlwaC4gIEVhY2ggcG9zaXRpb24KKyAgICAgICAgICA7
OyBnZXRzIGl0cyBvd24gZW1wdHktc3RyaW5nIGBkaXNwbGF5JyBzbyBjdXJzb3IgcGxhY2VtZW50
CisgICAgICAgICAgOzsgc3RheXMgdW5hbWJpZ3VvdXMuCisgICAgICAgICAgKHVubGVzcyBiYWNr
c2xhc2gKKyAgICAgICAgICAgIChsZXQgKChpICgxKyByZWdpb24tc3RhcnQpKSkKKyAgICAgICAg
ICAgICAgKHdoaWxlICg8IGkgcmVnaW9uLWVuZCkKKyAgICAgICAgICAgICAgICAocHV0LXRleHQt
cHJvcGVydHkgaSAoMSsgaSkgJ2Rpc3BsYXkgIiIpCisgICAgICAgICAgICAgICAgKHNldHEgaSAo
MSsgaSkpKSkpKSkpKSkKKworKGRlZnVuIG1hcmtkb3duLXRzLS1mb250aWZ5LXRoZW1hdGljLWJy
ZWFrIChub2RlIG92ZXJyaWRlIHN0YXJ0IGVuZCAmcmVzdCBfKQorICAiRm9udGlmeSB0aGVtYXRp
YyBicmVhayBOT0RFIGFuZCBzaG93IGEgbGluZSB3aGVuIG1hcmt1cCBpcyBoaWRkZW4uCitPVkVS
UklERSwgU1RBUlQsIGFuZCBFTkQgYXJlIHBhc3NlZCB0aHJvdWdoIHRvCitgdHJlZXNpdC1mb250
aWZ5LXdpdGgtb3ZlcnJpZGUnLiIKKyAgKGxldCAoKG5vZGUtc3RhcnQgKHRyZWVzaXQtbm9kZS1z
dGFydCBub2RlKSkKKyAgICAgICAgKG5vZGUtZW5kICh0cmVlc2l0LW5vZGUtZW5kIG5vZGUpKSkK
KyAgICAodHJlZXNpdC1mb250aWZ5LXdpdGgtb3ZlcnJpZGUgbm9kZS1zdGFydCBub2RlLWVuZAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnbWFya2Rvd24tdHMtdGhlbWF0aWMt
YnJlYWsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3ZlcnJpZGUgc3RhcnQg
ZW5kKQorICAgIChsZXQgKChjaGFyIChtYXJrZG93bi10cy0tcmVzb2x2ZS1kaXNwbGF5LXZhbHVl
CisgICAgICAgICAgICAgICAgIG1hcmtkb3duLXRzLXRoZW1hdGljLWJyZWFrLWNoYXJhY3Rlcikp
KQorICAgICAgKGlmIChhbmQgbWFya2Rvd24tdHMtaGlkZS1tYXJrdXAgY2hhciAoY2hhci1kaXNw
bGF5YWJsZS1wIGNoYXIpKQorICAgICAgICAgIChsZXQqICgoY29sIChzYXZlLWV4Y3Vyc2lvbiAo
Z290by1jaGFyIG5vZGUtc3RhcnQpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIChjdXJyZW50LWNvbHVtbikpKQorICAgICAgICAgICAgICAgICA7OyBTcGFuIGlmIHRoZSBm
YWNlIGhhcyBub24tbmlsIDpleHRlbmQuCisgICAgICAgICAgICAgICAgIChzcGFuLWxlbmd0aCAo
aWYgKGZhY2UtYXR0cmlidXRlICdtYXJrZG93bi10cy10aGVtYXRpYy1icmVhaworICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6ZXh0ZW5kIG5pbCAnZGVm
YXVsdCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoLSAod2luZG93LWJvZHkt
d2lkdGgpIGNvbCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMTIpKSkKKyAgICAg
ICAgICAgIChwdXQtdGV4dC1wcm9wZXJ0eSBub2RlLXN0YXJ0IG5vZGUtZW5kCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgJ2Rpc3BsYXkKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAoY29uY2F0CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYWtlLXN0cmlu
ZyBzcGFuLWxlbmd0aCBjaGFyKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiXG4i
KSkpCisgICAgICAgIChyZW1vdmUtdGV4dC1wcm9wZXJ0aWVzIG5vZGUtc3RhcnQgbm9kZS1lbmQg
JyhkaXNwbGF5IG5pbCkpKSkpKQorCisoZGVmdW4gbWFya2Rvd24tdHMtLWZvbnRpZnktY29kZS1i
bG9jayAobm9kZSBfb3ZlcnJpZGUgX3N0YXJ0IF9lbmQgJnJlc3QgXykKKyAgIkZvbnRpZnkgY29k
ZSBibG9jayBjb250ZW50IE5PREUgd2l0aCBhIGJhY2tncm91bmQgb3ZlcmxheS4KK1VzZSBgbWFy
a2Rvd24tdHMtY29kZS1ibG9jay1tYXJrdXAtaGlkZGVuJyB3aGVuIG1hcmt1cCBpcyBoaWRkZW4s
CitgbWFya2Rvd24tdHMtY29kZS1ibG9jaycgb3RoZXJ3aXNlLiAgVXNlIGFuIG92ZXJsYXkgc28g
dGhlCitiYWNrZ3JvdW5kIGxheWVycyBpdHNlbGYgYmVoaW5kIGxhbmd1YWdlLXNwZWNpZmljIGZv
bnRpZmljYXRpb24uCitUaGUgb3ZlcmxheSBhbHNvIHN0b3JlcyB0aGUgY29kZSBibG9jayBsYW5n
dWFnZSBhbmQgbW9kZSBhcworcHJvcGVydGllcyBgbWFya2Rvd24tdHMtY29kZS1ibG9jay1sYW5n
dWFnZScgYW5kCitgbWFya2Rvd24tdHMtY29kZS1ibG9jay1tb2RlJywgYWNjZXNzaWJsZSB2aWEK
K2BtYXJrZG93bi10cy1jb2RlLWJsb2NrLWxhbmd1YWdlLWF0Jy4iCisgIChsZXQqICgobm9kZS1z
dGFydCAoc2F2ZS1leGN1cnNpb24KKyAgICAgICAgICAgICAgICAgICAgICAgKGdvdG8tY2hhciAo
dHJlZXNpdC1ub2RlLXN0YXJ0IG5vZGUpKQorICAgICAgICAgICAgICAgICAgICAgICAobGluZS1i
ZWdpbm5pbmctcG9zaXRpb24pKSkKKyAgICAgICAgIChub2RlLWVuZCAoc2F2ZS1leGN1cnNpb24K
KyAgICAgICAgICAgICAgICAgICAgIChnb3RvLWNoYXIgKHRyZWVzaXQtbm9kZS1lbmQgbm9kZSkp
CisgICAgICAgICAgICAgICAgICAgICAoc2tpcC1jaGFycy1iYWNrd2FyZCAiIFx0IikKKyAgICAg
ICAgICAgICAgICAgICAgIChwb2ludCkpKQorICAgICAgICAgKGZhY2UgKGlmIG1hcmtkb3duLXRz
LWhpZGUtbWFya3VwCisgICAgICAgICAgICAgICAgICAgJ21hcmtkb3duLXRzLWNvZGUtYmxvY2st
bWFya3VwLWhpZGRlbgorICAgICAgICAgICAgICAgICAnbWFya2Rvd24tdHMtY29kZS1ibG9jaykp
CisgICAgICAgICAobGFuZyAobWFya2Rvd24tdHMtLWxhbmd1YWdlLWF0LW5vZGUgbm9kZSkpCisg
ICAgICAgICAobW9kZSAod2hlbiBsYW5nCisgICAgICAgICAgICAgICAgIChtYXJrZG93bi10cy0t
Y29kZS1ibG9jay1sYW5ndWFnZS1tb2RlIGxhbmcpKSkKKyAgICAgICAgIChleGlzdGluZyAoc2Vx
LWZpbmQgKGxhbWJkYSAob3YpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG92ZXJs
YXktZ2V0IG92ICdtYXJrZG93bi10cy1jb2RlLWJsb2NrKSkKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgKG92ZXJsYXlzLWF0IG5vZGUtc3RhcnQpKSkpCisgICAgKGlmIGV4aXN0aW5nCisg
ICAgICAgIChwcm9nbgorICAgICAgICAgIChtb3ZlLW92ZXJsYXkgZXhpc3Rpbmcgbm9kZS1zdGFy
dCBub2RlLWVuZCkKKyAgICAgICAgICAob3ZlcmxheS1wdXQgZXhpc3RpbmcgJ2ZhY2UgZmFjZSkK
KyAgICAgICAgICAob3ZlcmxheS1wdXQgZXhpc3RpbmcgJ21hcmtkb3duLXRzLWNvZGUtYmxvY2st
bGFuZ3VhZ2UgbGFuZykKKyAgICAgICAgICAob3ZlcmxheS1wdXQgZXhpc3RpbmcgJ21hcmtkb3du
LXRzLWNvZGUtYmxvY2stbW9kZSBtb2RlKSkKKyAgICAgIChsZXQgKChvdiAobWFrZS1vdmVybGF5
IG5vZGUtc3RhcnQgbm9kZS1lbmQgbmlsIHQgbmlsKSkpCisgICAgICAgIDs7IE1hcmtlcnMgbmVl
ZCB0byBiZSBzZXQgb25seSBvbmNlLgorICAgICAgICAob3ZlcmxheS1wdXQgb3YgJ21hcmtkb3du
LXRzLWNvZGUtYmVnLW1hcmtlciAoc2V0LW1hcmtlciAobWFrZS1tYXJrZXIpCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5v
ZGUtc3RhcnQpKQorICAgICAgICAob3ZlcmxheS1wdXQgb3YgJ21hcmtkb3duLXRzLWNvZGUtZW5k
LW1hcmtlciAoc2V0LW1hcmtlciAobWFrZS1tYXJrZXIpCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vZGUtZW5kKSkKKyAg
ICAgICAgKG92ZXJsYXktcHV0IG92ICdtYXJrZG93bi10cy1jb2RlLWJsb2NrIHQpCisgICAgICAg
IChvdmVybGF5LXB1dCBvdiAnZmFjZSBmYWNlKQorICAgICAgICAob3ZlcmxheS1wdXQgb3YgJ21h
cmtkb3duLXRzLWNvZGUtYmxvY2stbGFuZ3VhZ2UgbGFuZykKKyAgICAgICAgKG92ZXJsYXktcHV0
IG92ICdtYXJrZG93bi10cy1jb2RlLWJsb2NrLW1vZGUgbW9kZSkKKyAgICAgICAgKG92ZXJsYXkt
cHV0IG92ICdldmFwb3JhdGUgdCkpKSkpCisKKyhkZWZ1biBtYXJrZG93bi10cy1jb2RlLWJsb2Nr
LWF0LXAgKCZvcHRpb25hbCBwb3MpCisgICJSZXR1cm4gbm9uIG5pbCBpZiBwb2ludCBpcyBpbiBh
IGNvZGUgYmxvY2suCitJZiBQT1MgaXMgbmlsLCB1c2UgcG9pbnQuIgorICAoZ2V0LWNoYXItcHJv
cGVydHkgKG9yIHBvcyAocG9pbnQpKSAnbWFya2Rvd24tdHMtY29kZS1ibG9jaykpCisKKyhkZWZ1
biBtYXJrZG93bi10cy1jb2RlLWJsb2NrLWxhbmd1YWdlLWF0ICgmb3B0aW9uYWwgcG9zKQorICAi
UmV0dXJuIHRoZSBsYW5ndWFnZSBzeW1ib2wgb2YgdGhlIGNvZGUgYmxvY2sgYXQgUE9TLgorSWYg
UE9TIGlzIG5pbCwgdXNlIHBvaW50LiAgUmV0dXJucyBuaWwgaWYgUE9TIGlzIG5vdCBpbnNpZGUg
YSBmZW5jZWQKK2NvZGUgYmxvY2suICBUaGlzIHdvcmtzIHJlZ2FyZGxlc3Mgb2Ygd2hldGhlciBh
IGd1ZXN0IHRyZWUtc2l0dGVyIHBhcnNlcgoraXMgYWN0aXZlLCBzaW5jZSB0aGUgbGFuZ3VhZ2Ug
aXMgc3RvcmVkIG9uIHRoZSBjb2RlIGJsb2NrIG92ZXJsYXkgYnkgdGhlCitob3N0IHBhcnNlcidz
IGZvbnRpZmljYXRpb24uIgorICAoZ2V0LWNoYXItcHJvcGVydHkgKG9yIHBvcyAocG9pbnQpKSAn
bWFya2Rvd24tdHMtY29kZS1ibG9jay1sYW5ndWFnZSkpCisKKyhkZWZ1biBtYXJrZG93bi10cy1j
b2RlLWJsb2NrLW1vZGUtYXQgKCZvcHRpb25hbCBwb3MpCisgICJSZXR1cm4gdGhlIG1ham9yIG1v
ZGUgZm9yIHRoZSBjb2RlIGJsb2NrIGF0IFBPUy4KK0lmIFBPUyBpcyBuaWwsIHVzZSBwb2ludC4g
IFJldHVybnMgbmlsIGlmIFBPUyBpcyBub3QgaW5zaWRlIGEgZmVuY2VkCitjb2RlIGJsb2NrIG9y
IGlmIHRoZSBsYW5ndWFnZSBoYXMgbm8gcmVjb2duaXplZCBtb2RlLiIKKyAgKHdoZW4gKG1hcmtk
b3duLXRzLWNvZGUtYmxvY2stYXQtcCBwb3MpCisgICAgKG9yIChnZXQtY2hhci1wcm9wZXJ0eSAo
b3IgcG9zIChwb2ludCkpICdtYXJrZG93bi10cy1jb2RlLWJsb2NrLW1vZGUpCisgICAgICAgIG1h
cmtkb3duLXRzLWRlZmF1bHQtY29kZS1ibG9jay1tb2RlKSkpCisKKzs7OyBJbWFnZSBoYW5kbGlu
ZzoKKworKGRlZnVuIG1hcmtkb3duLXRzLS1pbWFnZS1hbG9uZS1vbi1saW5lLXAgKG5vZGUpCisg
ICJSZXR1cm4gbm9uLW5pbCBpZiBpbWFnZSBOT0RFIGlzIHRoZSBvbmx5IGNvbnRlbnQgb24gaXRz
IGxpbmUuCitXaGl0ZXNwYWNlLCBibG9jayBxdW90ZSBtYXJrZXJzIChgPicpLCBhbmQgbGlzdCBt
YXJrZXJzCitcKGAtJywgYConLCBgKycsIGAxLicpIGJlZm9yZSB0aGUgaW1hZ2UgYXJlIGlnbm9y
ZWQuIgorICAobGV0ICgobm9kZS1zdGFydCAodHJlZXNpdC1ub2RlLXN0YXJ0IG5vZGUpKQorICAg
ICAgICAobm9kZS1lbmQgKHRyZWVzaXQtbm9kZS1lbmQgbm9kZSkpKQorICAgIChzYXZlLWV4Y3Vy
c2lvbgorICAgICAgKGdvdG8tY2hhciBub2RlLXN0YXJ0KQorICAgICAgKGxldCAoKGJvbCAobGlu
ZS1iZWdpbm5pbmctcG9zaXRpb24pKQorICAgICAgICAgICAgKGVvbCAobGluZS1lbmQtcG9zaXRp
b24pKSkKKyAgICAgICAgOzsgQmVmb3JlIHRoZSBpbWFnZTogb25seSBibG9jayBxdW90ZSBtYXJr
ZXJzLCB3aGl0ZXNwYWNlLAorICAgICAgICA7OyBhbmQgYW4gb3B0aW9uYWwgbGlzdCBtYXJrZXIg
YXJlIGFsbG93ZWQuCisgICAgICAgIChhbmQgKHN0cmluZy1tYXRjaC1wCisgICAgICAgICAgICAg
IChyeCBib3MKKyAgICAgICAgICAgICAgICAgICh6ZXJvLW9yLW1vcmUgKGFueSAiPiBcdCIpKQor
ICAgICAgICAgICAgICAgICAgKG9wdGlvbmFsIChvciAoc2VxIChhbnkgIi0qKyIpICIgIikKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHNlcSAob25lLW9yLW1vcmUgZGlnaXQpIChh
bnkgIi4pIiApICIgIikpKQorICAgICAgICAgICAgICAgICAgZW9zKQorICAgICAgICAgICAgICAo
YnVmZmVyLXN1YnN0cmluZy1uby1wcm9wZXJ0aWVzIGJvbCBub2RlLXN0YXJ0KSkKKyAgICAgICAg
ICAgICA7OyBBZnRlciB0aGUgaW1hZ2U6IG9ubHkgdHJhaWxpbmcgd2hpdGVzcGFjZSBhbGxvd2Vk
LgorICAgICAgICAgICAgIChzdHJpbmctbWF0Y2gtcAorICAgICAgICAgICAgICAocnggYm9zICh6
ZXJvLW9yLW1vcmUgKGFueSAiIFx0IikpIGVvcykKKyAgICAgICAgICAgICAgKGJ1ZmZlci1zdWJz
dHJpbmctbm8tcHJvcGVydGllcyBub2RlLWVuZCBlb2wpKSkpKSkpCisKKyhkZWZ1biBtYXJrZG93
bi10cy0tZm9udGlmeS1pbWFnZSAobm9kZSBfb3ZlcnJpZGUgX3N0YXJ0IF9lbmQgJnJlc3QgXykK
KyAgIlNob3cgYW4gaW5saW5lIGltYWdlIGF0IE5PREUuCitXaGVuIGBtYXJrZG93bi10cy1pbmxp
bmUtaW1hZ2VzJyBpcyBub24tbmlsLCBkaXNwbGF5IHRoZSBpbWFnZS4KK0lmIHRoZSBpbWFnZSBs
aW5rIGlzIHRoZSBvbmx5IGNvbnRlbnQgb24gaXRzIGxpbmUsIGRpc3BsYXkgdGhlCitpbWFnZSBi
ZWxvdyB0aGUgbGluay4gIElmIHRoZSBpbWFnZSBpcyBpbmxpbmUgd2l0aGluIGEgcGFyYWdyYXBo
LAorZGlzcGxheSBpdCByaWdodCBhZnRlciB0aGUgbGluayB0ZXh0LgorUmVtb3RlIGltYWdlcyBh
cmUgY29udHJvbGxlZCBieQorYG1hcmtkb3duLXRzLWRpc3BsYXktcmVtb3RlLWlubGluZS1pbWFn
ZXMnLiIKKyAgKGxldCogKChub2RlLXN0YXJ0ICh0cmVlc2l0LW5vZGUtc3RhcnQgbm9kZSkpCisg
ICAgICAgICAobm9kZS1lbmQgKHRyZWVzaXQtbm9kZS1lbmQgbm9kZSkpCisgICAgICAgICAoZW9s
IChzYXZlLWV4Y3Vyc2lvbiAoZ290by1jaGFyIG5vZGUtZW5kKQorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgKGxpbmUtZW5kLXBvc2l0aW9uKSkpCisgICAgICAgICAoc2VhcmNoLWVuZCAo
bWluICgxKyBlb2wpIChwb2ludC1tYXgpKSkpCisgICAgOzsgQWx3YXlzIGNsZWFyIHN0YWxlIG92
ZXJsYXlzIGZvciB0aGlzIG5vZGUncyByYW5nZS4KKyAgICAoZG9saXN0IChvdiAob3ZlcmxheXMt
aW4gbm9kZS1zdGFydCBzZWFyY2gtZW5kKSkKKyAgICAgICh3aGVuIChhbmQgKG92ZXJsYXktZ2V0
IG92ICdtYXJrZG93bi10cy1pbWFnZSkKKyAgICAgICAgICAgICAgICAgKD49IChvdmVybGF5LXN0
YXJ0IG92KSBub2RlLXN0YXJ0KQorICAgICAgICAgICAgICAgICAoPD0gKG92ZXJsYXktZW5kIG92
KSBzZWFyY2gtZW5kKSkKKyAgICAgICAgKGRlbGV0ZS1vdmVybGF5IG92KSkpCisgICAgKHdoZW4g
KGFuZCBtYXJrZG93bi10cy1pbmxpbmUtaW1hZ2VzCisgICAgICAgICAgICAgICA7OyBEb24ndCBj
cmVhdGUgaW1hZ2Ugb3ZlcmxheXMgZm9yIG5vZGVzIGluc2lkZQorICAgICAgICAgICAgICAgOzsg
Zm9sZGVkIChvdXRsaW5lLWludmlzaWJsZSkgaGVhZGluZ3MsIHNpbmNlIHRoZQorICAgICAgICAg
ICAgICAgOzsgaW1hZ2VzIHdvdWxkbid0IGJlIHZpc2libGUgYW5kIGNvdWxkIGludGVyZmVyZQor
ICAgICAgICAgICAgICAgOzsgd2l0aCB0aGUgZm9sZGVkIGRpc3BsYXkuCisgICAgICAgICAgICAg
ICAobm90IChtYXJrZG93bi10cy0tb3V0bGluZS1pbnZpc2libGUtcCBub2RlLXN0YXJ0KSkpCisg
ICAgICAobGV0KiAoKGRlc3QgKHRyZWVzaXQtc2VhcmNoLXN1YnRyZWUgbm9kZSAiXFxgbGlua19k
ZXN0aW5hdGlvblxcJyIpKQorICAgICAgICAgICAgICh1cmwgKGFuZCBkZXN0ICh0cmVlc2l0LW5v
ZGUtdGV4dCBkZXN0IHQpKSkKKyAgICAgICAgICAgICAocmVtb3RlcCAoYW5kIHVybCAoc3RyaW5n
LW1hdGNoLXAgIlxcYGh0dHBzPzovLyIgdXJsKSkpCisgICAgICAgICAgICAgKGRpc3BsYXlhYmxl
CisgICAgICAgICAgICAgICh3aGVuIHVybAorICAgICAgICAgICAgICAgIChpZiByZW1vdGVwCisg
ICAgICAgICAgICAgICAgICAgICh3aGVuIChlcSBtYXJrZG93bi10cy1kaXNwbGF5LXJlbW90ZS1p
bmxpbmUtaW1hZ2VzCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZG93bmxvYWQpCisg
ICAgICAgICAgICAgICAgICAgICAgKGlnbm9yZS1lcnJvcnMKKyAgICAgICAgICAgICAgICAgICAg
ICAgIChyZXF1aXJlICd1cmwtaGFuZGxlcnMpCisgICAgICAgICAgICAgICAgICAgICAgICAod2l0
aC10ZW1wLWJ1ZmZlcgorICAgICAgICAgICAgICAgICAgICAgICAgICAoc2V0LWJ1ZmZlci1tdWx0
aWJ5dGUgbmlsKQorICAgICAgICAgICAgICAgICAgICAgICAgICAodXJsLWluc2VydC1maWxlLWNv
bnRlbnRzIHVybCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgKGJ1ZmZlci1zdHJpbmcpKSkp
CisgICAgICAgICAgICAgICAgICAobGV0ICgoZmlsZSAoZXhwYW5kLWZpbGUtbmFtZSB1cmwpKSkK
KyAgICAgICAgICAgICAgICAgICAgKGFuZCAobm90IChmaWxlLXJlbW90ZS1wIGZpbGUpKQorICAg
ICAgICAgICAgICAgICAgICAgICAgIChmaWxlLWV4aXN0cy1wIGZpbGUpCisgICAgICAgICAgICAg
ICAgICAgICAgICAgKGltYWdlLXN1cHBvcnRlZC1maWxlLXAgZmlsZSkKKyAgICAgICAgICAgICAg
ICAgICAgICAgICBmaWxlKSkpKSkKKyAgICAgICAgICAgICAobWF4LXcgKGFuZCBkaXNwbGF5YWJs
ZQorICAgICAgICAgICAgICAgICAgICAgICAgIChpZiAoZXEgbWFya2Rvd24tdHMtaW1hZ2UtbWF4
LXdpZHRoICd3aW5kb3cpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh3aW5kb3ctYm9k
eS13aWR0aCBuaWwgdCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hcmtkb3duLXRzLWlt
YWdlLW1heC13aWR0aCkpKQorICAgICAgICAgICAgIChpbWcgKGFuZCBtYXgtdworICAgICAgICAg
ICAgICAgICAgICAgICAoY3JlYXRlLWltYWdlIGRpc3BsYXlhYmxlIG5pbCByZW1vdGVwCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOm1heC13aWR0aCBtYXgtdworICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDpzY2FsZSAxKSkpKQorICAgICAgICAod2hl
biBpbWcKKyAgICAgICAgICAobGV0KiAoKGFsb25lIChtYXJrZG93bi10cy0taW1hZ2UtYWxvbmUt
b24tbGluZS1wIG5vZGUpKQorICAgICAgICAgICAgICAgICAoc3RyIChpZiBhbG9uZQorICAgICAg
ICAgICAgICAgICAgICAgICAgICAoY29uY2F0ICJcbiIgKHByb3BlcnRpemUgIiAiICdkaXNwbGF5
IGltZykpCisgICAgICAgICAgICAgICAgICAgICAgICAocHJvcGVydGl6ZSAiICIgJ2Rpc3BsYXkg
aW1nKSkpCisgICAgICAgICAgICAgICAgIChvdiAobWFrZS1vdmVybGF5ICgxLSBub2RlLWVuZCkg
bm9kZS1lbmQgbmlsIHQgbmlsKSkpCisgICAgICAgICAgICAob3ZlcmxheS1wdXQgb3YgJ21hcmtk
b3duLXRzLWltYWdlIHQpCisgICAgICAgICAgICAob3ZlcmxheS1wdXQgb3YgJ2FmdGVyLXN0cmlu
ZyBzdHIpCisgICAgICAgICAgICAob3ZlcmxheS1wdXQgb3YgJ2V2YXBvcmF0ZSB0KSkpKSkpKQor
Cis7OzsgVVJML1VSSSBoYW5kbGluZzoKKworKGRlZnZhciBtYXJrZG93bi10cy0tYmFyZS11cmwt
cmVnZXhwIGdvdG8tYWRkcmVzcy11cmwtcmVnZXhwCisgICJSZWdleHAgbWF0Y2hpbmcgYmFyZSBV
UkxzIG5vdCB3cmFwcGVkIGluIGFuZ2xlIGJyYWNrZXRzIG9yIGxpbmsgc3ludGF4LiIpCisKKyhk
ZWZ2YXIgbWFya2Rvd24tdHMtLWJhcmUtZW1haWwtdXJpLXJlZ2V4cCBnb3RvLWFkZHJlc3MtbWFp
bC1yZWdleHAKKyAgIlJlZ2V4cCBtYXRjaGluZyBiYXJlIGVtYWlsIGFkZHJlc3NlcyBub3Qgd3Jh
cHBlZCBpbiBhbmdsZSBicmFja2V0cy4iKQorCisoZGVmdW4gbWFya2Rvd24tdHMtLWZvbnRpZnkt
YmFyZS11cmkgKHN0YXJ0IGVuZCkKKyAgIkZvbnRpZnkgYmFyZSBVUkwgb3IgZW1haWwgVVJJIGJl
dHdlZW4gU1RBUlQgYW5kIEVORC4KK1NraXAgbWF0Y2hlcyBhbHJlYWR5IGluc2lkZSB0cmVlLXNp
dHRlciBsaW5rIG9yIGF1dG9saW5rIG5vZGVzLiIKKyAgKGRvbGlzdCAocmUgKGxpc3QgbWFya2Rv
d24tdHMtLWJhcmUtdXJsLXJlZ2V4cAorICAgICAgICAgICAgICAgICAgICBtYXJrZG93bi10cy0t
YmFyZS1lbWFpbC11cmktcmVnZXhwKSkKKyAgICAoZ290by1jaGFyIHN0YXJ0KQorICAgICh3aGls
ZSAocmUtc2VhcmNoLWZvcndhcmQgcmUgZW5kIHQpCisgICAgICAobGV0KiAoKHVyaS1zdGFydCAo
bWF0Y2gtYmVnaW5uaW5nIDApKQorICAgICAgICAgICAgICh1cmktZW5kIChtYXRjaC1lbmQgMCkp
CisgICAgICAgICAgICAgKHVyaSAobWF0Y2gtc3RyaW5nIDApKQorICAgICAgICAgICAgIChub2Rl
ICh0cmVlc2l0LW5vZGUtYXQgdXJpLXN0YXJ0ICdtYXJrZG93bi1pbmxpbmUpKQorICAgICAgICAg
ICAgIChwYXJlbnQgKGFuZCBub2RlICh0cmVlc2l0LW5vZGUtcGFyZW50IG5vZGUpKSkKKyAgICAg
ICAgICAgICAocGFyZW50LXR5cGUgKGFuZCBwYXJlbnQgKHRyZWVzaXQtbm9kZS10eXBlIHBhcmVu
dCkpKSkKKyAgICAgICAgKHVubGVzcyAob3IgKG1lbWJlciBwYXJlbnQtdHlwZQorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICcoImlubGluZV9saW5rIiAiZnVsbF9yZWZlcmVuY2VfbGluayIK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJjb2xsYXBzZWRfcmVmZXJlbmNlX2xpbmsi
ICJzaG9ydGN1dF9saW5rIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImltYWdlIiAi
dXJpX2F1dG9saW5rIiAiZW1haWxfYXV0b2xpbmsiCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAibGlua19kZXN0aW5hdGlvbiIpKQorICAgICAgICAgICAgICAgICAgICAobWVtYmVyIChh
bmQgbm9kZSAodHJlZXNpdC1ub2RlLXR5cGUgbm9kZSkpCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgJygidXJpX2F1dG9saW5rIiAiZW1haWxfYXV0b2xpbmsiCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAibGlua19kZXN0aW5hdGlvbiIgImNvZGVfc3BhbiIKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICJjb2RlX2ZlbmNlX2NvbnRlbnQiICJpbmZvX3N0cmluZyIpKQor
ICAgICAgICAgICAgICAgICAgICAoZ2V0LXRleHQtcHJvcGVydHkgdXJpLXN0YXJ0ICdidXR0b24p
KQorICAgICAgICAgIChtYXJrZG93bi10cy0tbWFrZS1saW5rLWJ1dHRvbgorICAgICAgICAgICB1
cmktc3RhcnQgdXJpLWVuZAorICAgICAgICAgICAoaWYgKGVxIHVyaS1zdGFydCAwKQorICAgICAg
ICAgICAgICAgdXJpCisgICAgICAgICAgICAgKGNvbmNhdCAibWFpbHRvOiIgdXJpKSkpKSkpKSkK
KworOzs7IHRyZWVzaXQgc2V0dGluZ3M6CisKIChkZWZ2YXIgbWFya2Rvd24tdHMtLXRyZWVzaXQt
c2V0dGluZ3MKICAgKHRyZWVzaXQtZm9udC1sb2NrLXJ1bGVzCiAgICA6bGFuZ3VhZ2UgJ21hcmtk
b3duLWlubGluZQogICAgOm92ZXJyaWRlIHQKICAgIDpmZWF0dXJlICdkZWxpbWl0ZXIKLSAgICco
KGlubGluZV9saW5rIFsgIlsiICJdIiAiKCIgIikiIF0gQHNoYWRvdykKLSAgICAgKGltYWdlIFsg
IiEiICJbIiAiXSIgIigiICIpIiBdIEBzaGFkb3cpKQorICAgJygoaW5saW5lX2xpbmsgWyAiWyIg
Il0iICIoIiAiKSIgXSBAbWFya2Rvd24tdHMtLWZvbnRpZnktZGVsaW1pdGVyKQorICAgICAoZnVs
bF9yZWZlcmVuY2VfbGluayBbICJbIiAiXSIgXSBAbWFya2Rvd24tdHMtLWZvbnRpZnktZGVsaW1p
dGVyKQorICAgICAoY29sbGFwc2VkX3JlZmVyZW5jZV9saW5rIFsgIlsiICJdIiBdIEBtYXJrZG93
bi10cy0tZm9udGlmeS1kZWxpbWl0ZXIpCisgICAgIChzaG9ydGN1dF9saW5rIFsgIlsiICJdIiBd
IEBtYXJrZG93bi10cy0tZm9udGlmeS1kZWxpbWl0ZXIpCisgICAgIChpbWFnZSBbICIhIiAiWyIg
Il0iICIoIiAiKSIgXSBAbWFya2Rvd24tdHMtLWZvbnRpZnktZGVsaW1pdGVyKSkKIAogICAgOmxh
bmd1YWdlICdtYXJrZG93bgogICAgOmZlYXR1cmUgJ2hlYWRpbmcKLSAgICcoKGF0eF9oZWFkaW5n
IChhdHhfaDFfbWFya2VyKSkgQG1hcmtkb3duLXRzLWhlYWRpbmctMQotICAgICAoYXR4X2hlYWRp
bmcgKGF0eF9oMl9tYXJrZXIpKSBAbWFya2Rvd24tdHMtaGVhZGluZy0yCi0gICAgIChhdHhfaGVh
ZGluZyAoYXR4X2gzX21hcmtlcikpIEBtYXJrZG93bi10cy1oZWFkaW5nLTMKLSAgICAgKGF0eF9o
ZWFkaW5nIChhdHhfaDRfbWFya2VyKSkgQG1hcmtkb3duLXRzLWhlYWRpbmctNAotICAgICAoYXR4
X2hlYWRpbmcgKGF0eF9oNV9tYXJrZXIpKSBAbWFya2Rvd24tdHMtaGVhZGluZy01Ci0gICAgIChh
dHhfaGVhZGluZyAoYXR4X2g2X21hcmtlcikpIEBtYXJrZG93bi10cy1oZWFkaW5nLTYKLSAgICAg
KHNldGV4dF9oZWFkaW5nKSBAbWFya2Rvd24tdHMtc2V0ZXh0LWhlYWRpbmcpCisgICAnKCgoYXR4
X2hlYWRpbmcpICAgIEBtYXJrZG93bi10cy0tZm9udGlmeS1oZWFkaW5nKQorICAgICAoKHNldGV4
dF9oZWFkaW5nKSBAbWFya2Rvd24tdHMtLWZvbnRpZnktaGVhZGluZykpCiAKICAgIDpsYW5ndWFn
ZSAnbWFya2Rvd24KICAgIDpmZWF0dXJlICdoZWFkaW5nCkBAIC0xOTQsMTYgKzEzMTAsMzQgQEAg
bWFya2Rvd24tdHMtLXRyZWVzaXQtc2V0dGluZ3MKICAgICAgKGF0eF9oM19tYXJrZXIpIEBtYXJr
ZG93bi10cy0tZm9udGlmeS1kZWxpbWl0ZXIKICAgICAgKGF0eF9oNF9tYXJrZXIpIEBtYXJrZG93
bi10cy0tZm9udGlmeS1kZWxpbWl0ZXIKICAgICAgKGF0eF9oNV9tYXJrZXIpIEBtYXJrZG93bi10
cy0tZm9udGlmeS1kZWxpbWl0ZXIKLSAgICAgKGF0eF9oNl9tYXJrZXIpIEBtYXJrZG93bi10cy0t
Zm9udGlmeS1kZWxpbWl0ZXIpCisgICAgIChhdHhfaDZfbWFya2VyKSBAbWFya2Rvd24tdHMtLWZv
bnRpZnktZGVsaW1pdGVyCisgICAgIChzZXRleHRfaDFfdW5kZXJsaW5lKSBAbWFya2Rvd24tdHMt
LWZvbnRpZnktZGVsaW1pdGVyCisgICAgIChzZXRleHRfaDJfdW5kZXJsaW5lKSBAbWFya2Rvd24t
dHMtLWZvbnRpZnktZGVsaW1pdGVyKQogCiAgICA6bGFuZ3VhZ2UgJ21hcmtkb3duCiAgICA6ZmVh
dHVyZSAncGFyYWdyYXBoCi0gICAnKCgodGhlbWF0aWNfYnJlYWspIEBtYXJrZG93bi10cy1kZWxp
bWl0ZXIpCi0gICAgICgoaW5kZW50ZWRfY29kZV9ibG9jaykgQGZvbnQtbG9jay1zdHJpbmctZmFj
ZSkKKyAgICcoKCh0aGVtYXRpY19icmVhaykgQG1hcmtkb3duLXRzLS1mb250aWZ5LXRoZW1hdGlj
LWJyZWFrKQorICAgICAoKGh0bWxfYmxvY2spIEBtYXJrZG93bi10cy1odG1sLWJsb2NrKQorICAg
ICAoKGluZGVudGVkX2NvZGVfYmxvY2spIEBtYXJrZG93bi10cy1pbmRlbnRlZC1jb2RlLWJsb2Nr
KQogICAgICAobGlzdF9pdGVtIChsaXN0X21hcmtlcl9zdGFyKSBAbWFya2Rvd24tdHMtbGlzdC1t
YXJrZXIpCiAgICAgIChsaXN0X2l0ZW0gKGxpc3RfbWFya2VyX3BsdXMpIEBtYXJrZG93bi10cy1s
aXN0LW1hcmtlcikKICAgICAgKGxpc3RfaXRlbSAobGlzdF9tYXJrZXJfbWludXMpIEBtYXJrZG93
bi10cy1saXN0LW1hcmtlcikKLSAgICAgKGxpc3RfaXRlbSAobGlzdF9tYXJrZXJfZG90KSBAbWFy
a2Rvd24tdHMtbGlzdC1tYXJrZXIpKQorICAgICAobGlzdF9pdGVtIChsaXN0X21hcmtlcl9kb3Qp
IEBtYXJrZG93bi10cy1saXN0LW1hcmtlcikKKyAgICAgKGxpc3RfaXRlbSAobGlzdF9tYXJrZXJf
cGFyZW50aGVzaXMpIEBtYXJrZG93bi10cy1saXN0LW1hcmtlcikKKyAgICAgKGxpc3RfaXRlbSAo
dGFza19saXN0X21hcmtlcl91bmNoZWNrZWQpIEBtYXJrZG93bi10cy0tZm9udGlmeS1jaGVja2Jv
eCkKKyAgICAgKGxpc3RfaXRlbSAodGFza19saXN0X21hcmtlcl9jaGVja2VkKSBAbWFya2Rvd24t
dHMtLWZvbnRpZnktY2hlY2tib3gpCisgICAgIChwaXBlX3RhYmxlX2hlYWRlciAifCIgQG1hcmtk
b3duLXRzLXRhYmxlLWhlYWRlcikKKyAgICAgKHBpcGVfdGFibGVfaGVhZGVyIChwaXBlX3RhYmxl
X2NlbGwpIEBtYXJrZG93bi10cy10YWJsZS1oZWFkZXIpCisgICAgIChwaXBlX3RhYmxlX3JvdyAi
fCIgQG1hcmtkb3duLXRzLXRhYmxlLWRlbGltaXRlci1jZWxsKQorICAgICAocGlwZV90YWJsZV9y
b3cgKHBpcGVfdGFibGVfY2VsbCkgQG1hcmtkb3duLXRzLXRhYmxlLWNlbGwpCisgICAgIChwaXBl
X3RhYmxlX2RlbGltaXRlcl9yb3cgInwiIEBtYXJrZG93bi10cy10YWJsZS1kZWxpbWl0ZXItY2Vs
bCkKKyAgICAgKGxpbmtfcmVmZXJlbmNlX2RlZmluaXRpb24KKyAgICAgIChsaW5rX2xhYmVsKSBA
bWFya2Rvd24tdHMtLWZvbnRpZnktbGluay1yZWYtbGFiZWwpCisgICAgIChsaW5rX3JlZmVyZW5j
ZV9kZWZpbml0aW9uCisgICAgICAobGlua19kZXN0aW5hdGlvbikgQG1hcmtkb3duLXRzLS1mb250
aWZ5LWxpbmstcmVmLWRlc3RpbmF0aW9uKQorICAgICAobGlua19yZWZlcmVuY2VfZGVmaW5pdGlv
bgorICAgICAgKGxpbmtfdGl0bGUpIEBtYXJrZG93bi10cy1saW5rLWRlc3RpbmF0aW9uKQorICAg
ICAocGlwZV90YWJsZV9kZWxpbWl0ZXJfcm93IChwaXBlX3RhYmxlX2RlbGltaXRlcl9jZWxsKSBA
bWFya2Rvd24tdHMtdGFibGUtZGVsaW1pdGVyLWNlbGwpKQogCiAgICA6bGFuZ3VhZ2UgJ21hcmtk
b3duCiAgICA6ZmVhdHVyZSAncGFyYWdyYXBoCkBAIC0yMTcsODQgKzEzNTEsOTkyIEBAIG1hcmtk
b3duLXRzLS10cmVlc2l0LXNldHRpbmdzCiAgICAgICAoYmxvY2tfcXVvdGVfbWFya2VyKSBAbWFy
a2Rvd24tdHMtLWZvbnRpZnktZGVsaW1pdGVyCiAgICAgICAocGFyYWdyYXBoIChpbmxpbmUgKGJs
b2NrX2NvbnRpbnVhdGlvbikgQG1hcmtkb3duLXRzLS1mb250aWZ5LWRlbGltaXRlcikpKSkKIAor
ICAgOmxhbmd1YWdlICdtYXJrZG93bgorICAgOmZlYXR1cmUgJ3BhcmFncmFwaAorICAgOm92ZXJy
aWRlICdhcHBlbmQKKyAgICcoKGZlbmNlZF9jb2RlX2Jsb2NrCisgICAgICAoaW5mb19zdHJpbmcg
KGxhbmd1YWdlKSkKKyAgICAgIChjb2RlX2ZlbmNlX2NvbnRlbnQpIEBtYXJrZG93bi10cy0tZm9u
dGlmeS1ub24tdHMtY29kZS1ibG9jaykpCisKKyAgIDpsYW5ndWFnZSAnbWFya2Rvd24KKyAgIDpm
ZWF0dXJlICdwYXJhZ3JhcGgKKyAgIDpvdmVycmlkZSAnYXBwZW5kCisgICAnKChmZW5jZWRfY29k
ZV9ibG9jayAoY29kZV9mZW5jZV9jb250ZW50KSBAbWFya2Rvd24tdHMtLWZvbnRpZnktY29kZS1i
bG9jaykpCisKICAgIDpsYW5ndWFnZSAnbWFya2Rvd24taW5saW5lCiAgICA6b3ZlcnJpZGUgJ2Fw
cGVuZAogICAgOmZlYXR1cmUgJ3BhcmFncmFwaC1pbmxpbmUKLSAgICcoKChpbWFnZV9kZXNjcmlw
dGlvbikgQGxpbmspCi0gICAgICgobGlua19kZXN0aW5hdGlvbikgQGZvbnQtbG9jay1zdHJpbmct
ZmFjZSkKLSAgICAgKChjb2RlX3NwYW4pIEBmb250LWxvY2stc3RyaW5nLWZhY2UpCisgICAnKCgo
bGlua19kZXN0aW5hdGlvbikgQG1hcmtkb3duLXRzLS1mb250aWZ5LWxpbmstZGVzdGluYXRpb24p
CisgICAgICgoY29kZV9zcGFuKSBAbWFya2Rvd24tdHMtY29kZS1zcGFuKQogICAgICAoKGNvZGVf
c3Bhbl9kZWxpbWl0ZXIpIEBtYXJrZG93bi10cy0tZm9udGlmeS1kZWxpbWl0ZXIpCi0gICAgICgo
ZW1waGFzaXMpIEBpdGFsaWMpCi0gICAgICgoc3Ryb25nX2VtcGhhc2lzKSBAYm9sZCkKLSAgICAg
KGlubGluZV9saW5rIChsaW5rX3RleHQpIEBsaW5rKQotICAgICAoaW5saW5lX2xpbmsgKGxpbmtf
ZGVzdGluYXRpb24pIEBmb250LWxvY2stc3RyaW5nLWZhY2UpCi0gICAgIChzaG9ydGN1dF9saW5r
IChsaW5rX3RleHQpIEBsaW5rKSkKKyAgICAgKChlbXBoYXNpcykgQG1hcmtkb3duLXRzLWVtcGhh
c2lzKQorICAgICAoKHN0cm9uZ19lbXBoYXNpcykgQG1hcmtkb3duLXRzLWJvbGQpCisgICAgICgo
c3RyaWtldGhyb3VnaCkgQG1hcmtkb3duLXRzLXN0cmlrZXRocm91Z2gpCisgICAgIChpbmxpbmVf
bGluayAobGlua190ZXh0KSBAbWFya2Rvd24tdHMtLWZvbnRpZnktbGluay1ub2RlKQorICAgICAo
ZnVsbF9yZWZlcmVuY2VfbGluayAobGlua190ZXh0KSBAbWFya2Rvd24tdHMtLWZvbnRpZnktbGlu
ay1ub2RlKQorICAgICAoZnVsbF9yZWZlcmVuY2VfbGluayAobGlua19sYWJlbCkgQG1hcmtkb3du
LXRzLS1mb250aWZ5LWxpbmstbm9kZSkKKyAgICAgKGNvbGxhcHNlZF9yZWZlcmVuY2VfbGluayAo
bGlua190ZXh0KSBAbWFya2Rvd24tdHMtLWZvbnRpZnktbGluay1ub2RlKQorICAgICAoc2hvcnRj
dXRfbGluayAobGlua190ZXh0KSBAbWFya2Rvd24tdHMtLWZvbnRpZnktbGluay1ub2RlKQorICAg
ICAoaW1hZ2UgKGltYWdlX2Rlc2NyaXB0aW9uKSBAbWFya2Rvd24tdHMtLWZvbnRpZnktbGluay1u
b2RlKQorICAgICAoKHVyaV9hdXRvbGluaykgQG1hcmtkb3duLXRzLS1mb250aWZ5LWF1dG9saW5r
KQorICAgICAoKGVtYWlsX2F1dG9saW5rKSBAbWFya2Rvd24tdHMtLWZvbnRpZnktYXV0b2xpbmsp
CisgICAgIChpbmxpbmVfbGluayAobGlua190aXRsZSkgQG1hcmtkb3duLXRzLWxpbmstZGVzdGlu
YXRpb24pCisgICAgICgoYmFja3NsYXNoX2VzY2FwZSkgQG1hcmtkb3duLXRzLS1mb250aWZ5LWJh
Y2tzbGFzaC1lc2NhcGUpCisgICAgICgoZW50aXR5X3JlZmVyZW5jZSkgQG1hcmtkb3duLXRzLS1m
b250aWZ5LWVudGl0eSkKKyAgICAgKChudW1lcmljX2NoYXJhY3Rlcl9yZWZlcmVuY2UpIEBtYXJr
ZG93bi10cy0tZm9udGlmeS1lbnRpdHkpCisgICAgICgoaHRtbF90YWcpIEBtYXJrZG93bi10cy1o
dG1sLXRhZykKKyAgICAgKChoYXJkX2xpbmVfYnJlYWspIEBtYXJrZG93bi10cy0tZm9udGlmeS1o
YXJkLWxpbmUtYnJlYWspCisgICAgICgobGF0ZXhfYmxvY2spIEBtYXJrZG93bi10cy0tZm9udGlm
eS1sYXRleC1ibG9jaykpCiAKICAgIDpsYW5ndWFnZSAnbWFya2Rvd24taW5saW5lCiAgICA6ZmVh
dHVyZSAncGFyYWdyYXBoLWlubGluZQogICAgOm92ZXJyaWRlICdhcHBlbmQKICAgICcoKGVtcGhh
c2lzX2RlbGltaXRlcikgQG1hcmtkb3duLXRzLS1mb250aWZ5LWRlbGltaXRlcikKLSAgICkpCiAK
LTs7OyBJbWVudQorICAgOmxhbmd1YWdlICdtYXJrZG93bi1pbmxpbmUKKyAgIDpmZWF0dXJlICdp
bWFnZS1wcmV2aWV3CisgICA6b3ZlcnJpZGUgJ2FwcGVuZAorICAgJygoaW1hZ2UpIEBtYXJrZG93
bi10cy0tZm9udGlmeS1pbWFnZSkpKQorCis7OzsgSW1lbnU6CiAKLShkZWZ1biBtYXJrZG93bi10
cy1pbWVudS1ub2RlLXAgKG5vZGUpCisoZGVmdW4gbWFya2Rvd24tdHMtLWltZW51LWhlYWRpbmct
bm9kZS1wIChub2RlKQogICAiQ2hlY2sgaWYgTk9ERSBpcyBhIHZhbGlkIGVudHJ5IHRvIGltZW51
LiIKLSAgKGVxdWFsICh0cmVlc2l0LW5vZGUtdHlwZSAodHJlZXNpdC1ub2RlLXBhcmVudCBub2Rl
KSkKLSAgICAgICAgICJhdHhfaGVhZGluZyIpKQorICAoYW5kIChlcXVhbCAodHJlZXNpdC1ub2Rl
LXR5cGUgbm9kZSkgImlubGluZSIpCisgICAgICAgKGVxdWFsICh0cmVlc2l0LW5vZGUtdHlwZSAo
dHJlZXNpdC1ub2RlLXBhcmVudCBub2RlKSkKKyAgICAgICAgICAgICAgImF0eF9oZWFkaW5nIikp
KQogCi0oZGVmdW4gbWFya2Rvd24tdHMtaW1lbnUtbmFtZS1mdW5jdGlvbiAobm9kZSkKKyhkZWZ1
biBtYXJrZG93bi10cy0taW1lbnUtaGVhZGluZy1uYW1lLWZ1bmN0aW9uIChub2RlKQogICAiUmV0
dXJuIGFuIGltZW51IGVudHJ5IGlmIE5PREUgaXMgYSB2YWxpZCBoZWFkZXIuIgogICAobGV0ICgo
bmFtZSAodHJlZXNpdC1ub2RlLXRleHQgbm9kZSkpKQotICAgIChpZiAobWFya2Rvd24tdHMtaW1l
bnUtbm9kZS1wIG5vZGUpCi0JKHRocmVhZC1maXJzdCAodHJlZXNpdC1ub2RlLXBhcmVudCBub2Rl
KSAodHJlZXNpdC1ub2RlLXRleHQpKQorICAgIChpZiAobWFya2Rvd24tdHMtLWltZW51LWhlYWRp
bmctbm9kZS1wIG5vZGUpCisgICAgICAgIChjYXIgKHNwbGl0LXN0cmluZyAodHJlZXNpdC1ub2Rl
LXRleHQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICh0cmVlc2l0LW5vZGUtcGFyZW50IG5v
ZGUpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAiXG4iIHQgIiAiKSkKICAgICAgIG5hbWUp
KSkKIAotKGRlZnVuIG1hcmtkb3duLXRzLW91dGxpbmUtcHJlZGljYXRlIChub2RlKQotICAiTWF0
Y2ggYSBoaWVyYXJjaGljYWwgc2VjdGlvbiB0aGF0IGhhcyBhIGhlYWRpbmcuIgorKGRlZnVuIG1h
cmtkb3duLXRzLS1pbWVudS1jb2RlLWJsb2NrLW5vZGUtcCAobm9kZSkKKyAgIkNoZWNrIGlmIE5P
REUgaXMgYW4gaW5mb19zdHJpbmcgd2l0aCBkZXNjcmlwdGl2ZSB0ZXh0IGFmdGVyIHRoZSBsYW5n
dWFnZS4iCisgIChhbmQgKGVxdWFsICh0cmVlc2l0LW5vZGUtdHlwZSBub2RlKSAiaW5mb19zdHJp
bmciKQorICAgICAgICh3aGVuLWxldCogKChsYW5nLW5vZGUgKHRyZWVzaXQtc2VhcmNoLXN1YnRy
ZWUgbm9kZSAibGFuZ3VhZ2UiKSkKKyAgICAgICAgICAgICAgICAgICAoKDwgKHRyZWVzaXQtbm9k
ZS1lbmQgbGFuZy1ub2RlKQorICAgICAgICAgICAgICAgICAgICAgICAodHJlZXNpdC1ub2RlLWVu
ZCBub2RlKSkpKQorICAgICAgICAgKG5vdCAoc3RyaW5nLWJsYW5rLXAKKyAgICAgICAgICAgICAg
IChidWZmZXItc3Vic3RyaW5nLW5vLXByb3BlcnRpZXMKKyAgICAgICAgICAgICAgICAodHJlZXNp
dC1ub2RlLWVuZCBsYW5nLW5vZGUpCisgICAgICAgICAgICAgICAgKHRyZWVzaXQtbm9kZS1lbmQg
bm9kZSkpKSkpKSkKKworKGRlZnVuIG1hcmtkb3duLXRzLS1pbWVudS1jb2RlLWJsb2NrLW5hbWUt
ZnVuY3Rpb24gKG5vZGUpCisgICJSZXR1cm4gYW4gaW1lbnUgZW50cnkgbmFtZSBmb3IgYSBjb2Rl
IGJsb2NrIGluZm9fc3RyaW5nIE5PREUuCitVc2VzIHRoZSBkZXNjcmlwdGl2ZSB0ZXh0IGFmdGVy
IHRoZSBsYW5ndWFnZSBuYW1lLiIKKyAgKHdoZW4tbGV0KiAoKGxhbmctbm9kZSAodHJlZXNpdC1z
ZWFyY2gtc3VidHJlZSBub2RlICJsYW5ndWFnZSIpKQorICAgICAgICAgICAgICAoZGVzYyAoc3Ry
aW5nLXRyaW0KKyAgICAgICAgICAgICAgICAgICAgIChidWZmZXItc3Vic3RyaW5nLW5vLXByb3Bl
cnRpZXMKKyAgICAgICAgICAgICAgICAgICAgICAodHJlZXNpdC1ub2RlLWVuZCBsYW5nLW5vZGUp
CisgICAgICAgICAgICAgICAgICAgICAgKHRyZWVzaXQtbm9kZS1lbmQgbm9kZSkpKSkpCisgICAg
KGZvcm1hdCAiJXM6ICVzIiAodHJlZXNpdC1ub2RlLXRleHQgbGFuZy1ub2RlKSBkZXNjKSkpCisK
KyhkZWZ1biBtYXJrZG93bi10cy0tb3V0bGluZS1wcmVkaWNhdGUgKG5vZGUpCisgICJNYXRjaCBO
T0RFIGlmIGl0IGlzIGEgaGllcmFyY2hpY2FsIHNlY3Rpb24gdGhhdCBoYXMgYSBoZWFkaW5nLiIK
ICAgKGFuZCAoZXF1YWwgKHRyZWVzaXQtbm9kZS10eXBlIG5vZGUpICJzZWN0aW9uIikKICAgICAg
ICAod2hlbi1sZXQqICgoY2hpbGQgKHRyZWVzaXQtbm9kZS1jaGlsZCBub2RlIDApKSkKICAgICAg
ICAgIChlcXVhbCAodHJlZXNpdC1ub2RlLXR5cGUgY2hpbGQpICJhdHhfaGVhZGluZyIpKSkpCiAK
LTs7OyBDb2RlIGJsb2NrcwotCi0oZGVmdmFyLWxvY2FsIG1hcmtkb3duLXRzLS1jb25maWd1cmVk
LWxhbmd1YWdlcyBuaWwKLSAgIkEgbGlzdCBvZiBsYW5ndWFnZXMgdGhhdCBoYXZlIGJlZW4gc2V0
dXAgaW4gdGhpcyBidWZmZXIuCi0KLVdoZW4gYSBjb2RlIGJsb2NrIG9mIGEgbGFuZ3VhZ2UgYXBw
ZWFycywgYG1hcmtkb3duLXRzLW1vZGUnIGxvYWRzCi1sYW5ndWFnZSBzZXR1cHMgbGlrZSBmb250
LWxvY2sgYW5kIGluZGVudGF0aW9uIGZvciB0aGF0IGxhbmd1YWdlLCBhbmQKLWFkZHMgdGhhdCBs
YW5ndWFnZSB0byB0aGlzIGxpc3QuIikKKzs7OyBIZWFkaW5nIG1hbmlwdWxhdGlvbjoKKworKGRl
ZmNvbnN0IG1hcmtkb3duLXRzLS1wYXJzZXItaGVhZGluZy1tYXgtbGV2ZWwgNgorICAiTWF4aW11
bSBBVFggaGVhZGluZyBsZXZlbCBpbiBNYXJrZG93biAoaDEtaDYpLgorRGVmaW5lZCBieSB0aGUg
Q29tbW9uTWFyayBzcGVjIGFuZCB0aGUgdHJlZS1zaXR0ZXIgZ3JhbW1hci4iKQorCisoZGVmdW4g
bWFya2Rvd24tdHMtLWhlYWRpbmctYXQtcG9pbnQgKCkKKyAgIlJldHVybiB0aGUgYXR4X2hlYWRp
bmcgbm9kZSBhdCBvciBiZWZvcmUgcG9pbnQsIG9yIG5pbC4iCisgICh3aGVuLWxldCogKChub2Rl
ICh0cmVlc2l0LW5vZGUtYXQgKHBvaW50KSAnbWFya2Rvd24pKSkKKyAgICAoaWYgKGVxdWFsICh0
cmVlc2l0LW5vZGUtdHlwZSBub2RlKSAiYXR4X2hlYWRpbmciKQorICAgICAgICBub2RlCisgICAg
ICAodHJlZXNpdC1wYXJlbnQtdW50aWwKKyAgICAgICBub2RlIChsYW1iZGEgKG4pIChlcXVhbCAo
dHJlZXNpdC1ub2RlLXR5cGUgbikgImF0eF9oZWFkaW5nIikpKSkpKQorCisoZGVmdW4gbWFya2Rv
d24tdHMtLWhlYWRpbmctbGV2ZWwgKGhlYWRpbmcpCisgICJSZXR1cm4gdGhlIGxldmVsIG9mIEhF
QURJTkcgbm9kZSAoMSB0byBgbWFya2Rvd24tdHMtLXBhcnNlci1oZWFkaW5nLW1heC1sZXZlbCcp
LiIKKyAgKGxldCAoKG1hcmtlciAodHJlZXNpdC1ub2RlLWNoaWxkIGhlYWRpbmcgMCkpKQorICAg
IChsZW5ndGggKHRyZWVzaXQtbm9kZS10ZXh0IG1hcmtlciB0KSkpKQorCisoZGVmdW4gbWFya2Rv
d24tdHMtLXNlY3Rpb24tYXQtcG9pbnQgKCkKKyAgIlJldHVybiB0aGUgc2VjdGlvbiBub2RlIGNv
bnRhaW5pbmcgcG9pbnQuIgorICAod2hlbi1sZXQqICgobm9kZSAodHJlZXNpdC1ub2RlLWF0IChw
b2ludCkgJ21hcmtkb3duKSkpCisgICAgKHRyZWVzaXQtcGFyZW50LXVudGlsCisgICAgIG5vZGUg
KGxhbWJkYSAobikgKGVxdWFsICh0cmVlc2l0LW5vZGUtdHlwZSBuKSAic2VjdGlvbiIpKSkpKQor
CisoZGVmdW4gbWFya2Rvd24tdHMtcHJvbW90ZSAoKQorICAiUHJvbW90ZSB0aGUgaGVhZGluZyBv
ciBsaXN0IGl0ZW0gYXQgcG9pbnQuCitGb3IgaGVhZGluZ3MsIGRlY3JlYXNlIHRoZSBsZXZlbCAo
ZS5nLiwgIyMgdG8gIykuCitGb3IgbGlzdCBpdGVtcywgZGVjcmVhc2UgbmVzdGluZyAoZGVkZW50
KS4KK1dpdGggYHRyYW5zaWVudC1tYXJrLW1vZGUnIG9uIGFuZCBtYXJrIGFjdGl2ZSwgcHJvbW90
ZSBhbGwKK2hlYWRpbmdzIGluIHRoZSByZWdpb24uIgorICAoaW50ZXJhY3RpdmUpCisgIChjb25k
CisgICAoKGFuZCB0cmFuc2llbnQtbWFyay1tb2RlIG1hcmstYWN0aXZlKQorICAgIChtYXJrZG93
bi10cy0tcHJvbW90ZS1vci1kZW1vdGUtcmVnaW9uIC0xKSkKKyAgICgobWFya2Rvd24tdHMtLWxp
c3QtaXRlbS1hdC1wb2ludCkKKyAgICAobWFya2Rvd24tdHMtLWxpc3QtcHJvbW90ZS1vci1kZW1v
dGUgbmlsKSkKKyAgICh0IChtYXJrZG93bi10cy0tcHJvbW90ZS1vci1kZW1vdGUgLTEpKSkpCisK
KyhkZWZ1biBtYXJrZG93bi10cy1kZW1vdGUgKCkKKyAgIkRlbW90ZSB0aGUgaGVhZGluZyBvciBs
aXN0IGl0ZW0gYXQgcG9pbnQuCitGb3IgaGVhZGluZ3MsIGluY3JlYXNlIHRoZSBsZXZlbCAoZS5n
LiwgIyB0byAjIykuCitGb3IgbGlzdCBpdGVtcywgaW5jcmVhc2UgbmVzdGluZyAoaW5kZW50KS4K
K1dpdGggYHRyYW5zaWVudC1tYXJrLW1vZGUnIG9uIGFuZCBtYXJrIGFjdGl2ZSwgZGVtb3RlIGFs
bCBoZWFkaW5ncworaW4gdGhlIHJlZ2lvbi4iCisgIChpbnRlcmFjdGl2ZSkKKyAgKGNvbmQKKyAg
ICgoYW5kIHRyYW5zaWVudC1tYXJrLW1vZGUgbWFyay1hY3RpdmUpCisgICAgKG1hcmtkb3duLXRz
LS1wcm9tb3RlLW9yLWRlbW90ZS1yZWdpb24gMSkpCisgICAoKG1hcmtkb3duLXRzLS1saXN0LWl0
ZW0tYXQtcG9pbnQpCisgICAgKG1hcmtkb3duLXRzLS1saXN0LXByb21vdGUtb3ItZGVtb3RlIHQp
KQorICAgKHQgKG1hcmtkb3duLXRzLS1wcm9tb3RlLW9yLWRlbW90ZSAxKSkpKQorCisoZGVmdW4g
bWFya2Rvd24tdHMtLXByb21vdGUtb3ItZGVtb3RlIChkZWx0YSkKKyAgIkNoYW5nZSB0aGUgaGVh
ZGluZyBhdCBwb2ludCBieSBERUxUQSBsZXZlbHMuCitOZWdhdGl2ZSBERUxUQSBwcm9tb3RlcyAo
ZmV3ZXIgIyksIHBvc2l0aXZlIGRlbW90ZXMgKG1vcmUgIykuCitJZiB0aGUgaGVhZGluZyBoYXMg
YW4gb3B0aW9uYWwgdHJhaWxpbmcgY2xvc2luZy1gIycgc2VxdWVuY2UsIHRoYXQKK3NlcXVlbmNl
IGlzIHJlc2l6ZWQgdG8gbWF0Y2ggdGhlIG5ldyBsZXZlbC4iCisgICh3aGVuLWxldCogKChoZWFk
aW5nIChtYXJrZG93bi10cy0taGVhZGluZy1hdC1wb2ludCkpCisgICAgICAgICAgICAgIChtYXJr
ZXIgKHRyZWVzaXQtbm9kZS1jaGlsZCBoZWFkaW5nIDApKQorICAgICAgICAgICAgICAobGV2ZWwg
KGxlbmd0aCAodHJlZXNpdC1ub2RlLXRleHQgbWFya2VyIHQpKSkKKyAgICAgICAgICAgICAgKG5l
dy1sZXZlbCAoKyBsZXZlbCBkZWx0YSkpKQorICAgICh3aGVuIChhbmQgKD49IG5ldy1sZXZlbCAx
KQorICAgICAgICAgICAgICAgKDw9IG5ldy1sZXZlbCBtYXJrZG93bi10cy0tcGFyc2VyLWhlYWRp
bmctbWF4LWxldmVsKSkKKyAgICAgIChsZXQqICgob3BlbmVyLWJlZyAodHJlZXNpdC1ub2RlLXN0
YXJ0IG1hcmtlcikpCisgICAgICAgICAgICAgKG9wZW5lci1lbmQgKHRyZWVzaXQtbm9kZS1lbmQg
bWFya2VyKSkKKyAgICAgICAgICAgICAobGluZS1lbmQgKHNhdmUtZXhjdXJzaW9uCisgICAgICAg
ICAgICAgICAgICAgICAgICAgKGdvdG8tY2hhciBvcGVuZXItZW5kKQorICAgICAgICAgICAgICAg
ICAgICAgICAgIChsaW5lLWVuZC1wb3NpdGlvbikpKQorICAgICAgICAgICAgIDs7IERldGVjdCBh
IENvbW1vbk1hcmsgY2xvc2luZy1gIycgc2VxdWVuY2U6IG9wdGlvbmFsCisgICAgICAgICAgICAg
OzsgdHJhaWxpbmcgd2hpdGVzcGFjZSwgYSBydW4gb2YgYCMnLCBhbmQgYXQgbGVhc3Qgb25lCisg
ICAgICAgICAgICAgOzsgc3BhY2UvdGFiIGJldHdlZW4gaXQgYW5kIHRoZSBoZWFkaW5nIHRleHQu
CisgICAgICAgICAgICAgKGNsb3NlciAoc2F2ZS1leGN1cnNpb24KKyAgICAgICAgICAgICAgICAg
ICAgICAgKGdvdG8tY2hhciBsaW5lLWVuZCkKKyAgICAgICAgICAgICAgICAgICAgICAgKHNraXAt
Y2hhcnMtYmFja3dhcmQgIiBcdCIgb3BlbmVyLWVuZCkKKyAgICAgICAgICAgICAgICAgICAgICAg
KGxldCAoKGVuZCAocG9pbnQpKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAoc2tpcC1jaGFy
cy1iYWNrd2FyZCAiIyIgb3BlbmVyLWVuZCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAobGV0
ICgoYmVnIChwb2ludCkpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgKHdoZW4gKGFuZCAo
PCBiZWcgZW5kKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoPiBiZWcg
b3BlbmVyLWVuZCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1lbXEg
KGNoYXItYmVmb3JlIGJlZykKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgJyg/XHMgP1x0KSkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjb25zIGJl
ZyBlbmQpKSkpKSkpCisgICAgICAgIChzYXZlLWV4Y3Vyc2lvbgorICAgICAgICAgIDs7IFJlc2l6
ZSB0aGUgY2xvc2VyIGZpcnN0IHNvIGl0IGRvZXNuJ3Qgc2hpZnQgdGhlIG9wZW5lci4KKyAgICAg
ICAgICAod2hlbiBjbG9zZXIKKyAgICAgICAgICAgIChkZWxldGUtcmVnaW9uIChjYXIgY2xvc2Vy
KSAoY2RyIGNsb3NlcikpCisgICAgICAgICAgICAoZ290by1jaGFyIChjYXIgY2xvc2VyKSkKKyAg
ICAgICAgICAgIChpbnNlcnQgKG1ha2Utc3RyaW5nIG5ldy1sZXZlbCA/IykpKQorICAgICAgICAg
IChkZWxldGUtcmVnaW9uIG9wZW5lci1iZWcgb3BlbmVyLWVuZCkKKyAgICAgICAgICAoZ290by1j
aGFyIG9wZW5lci1iZWcpCisgICAgICAgICAgKGluc2VydCAobWFrZS1zdHJpbmcgbmV3LWxldmVs
ID8jKSkpKSkpKQorCisoZGVmdW4gbWFya2Rvd24tdHMtLXByb21vdGUtb3ItZGVtb3RlLXJlZ2lv
biAoZGVsdGEpCisgICJDaGFuZ2UgYWxsIGhlYWRpbmdzIGluIHRoZSBhY3RpdmUgcmVnaW9uIGJ5
IERFTFRBIGxldmVscy4KK05lZ2F0aXZlIERFTFRBIHByb21vdGVzIChmZXdlciAjKSwgcG9zaXRp
dmUgZGVtb3RlcyAobW9yZSAjKS4iCisgIChsZXQgKChiZWcgKHJlZ2lvbi1iZWdpbm5pbmcpKQor
ICAgICAgICAoZW5kIChyZWdpb24tZW5kKSkpCisgICAgKHNhdmUtZXhjdXJzaW9uCisgICAgICAo
Z290by1jaGFyIGJlZykKKyAgICAgICh3aGlsZSAoPCAocG9pbnQpIGVuZCkKKyAgICAgICAgKHdo
ZW4gKG1hcmtkb3duLXRzLS1oZWFkaW5nLWF0LXBvaW50KQorICAgICAgICAgIChtYXJrZG93bi10
cy0tcHJvbW90ZS1vci1kZW1vdGUgZGVsdGEpKQorICAgICAgICAoZm9yd2FyZC1saW5lIDEpKSkp
KQorCisoZGVmdW4gbWFya2Rvd24tdHMtbW92ZS1zdWJ0cmVlLXVwICgpCisgICJNb3ZlIHRoZSBj
dXJyZW50IHNlY3Rpb24gb3IgbGlzdCBpdGVtIHVwIHBhc3QgdGhlIHByZXZpb3VzIHNpYmxpbmcu
IgorICAoaW50ZXJhY3RpdmUpCisgIChpZiAobWFya2Rvd24tdHMtLWxpc3QtaXRlbS1hdC1wb2lu
dCkKKyAgICAgIChtYXJrZG93bi10cy0tbGlzdC1tb3ZlIHQpCisgICAgKG1hcmtkb3duLXRzLS1t
b3ZlLXN1YnRyZWUtdXAtb3ItZG93biB0KSkpCiAKLShkZWZ1biBtYXJrZG93bi10cy0taGFydmVz
dC10cmVlc2l0LWNvbmZpZ3MgKG1vZGUpCi0gICJIYXJ2ZXN0IHRyZWUtc2l0dGVyIGNvbmZpZ3Mg
ZnJvbSBNT0RFLgotUmV0dXJuIGEgcGxpc3Qgd2l0aCB0aGUgZm9sbG93aW5nIGtleXMgYW5kIHZh
bHVlOgorKGRlZnVuIG1hcmtkb3duLXRzLW1vdmUtc3VidHJlZS1kb3duICgpCisgICJNb3ZlIHRo
ZSBjdXJyZW50IHNlY3Rpb24gb3IgbGlzdCBpdGVtIGRvd24gcGFzdCB0aGUgbmV4dCBzaWJsaW5n
LiIKKyAgKGludGVyYWN0aXZlKQorICAoaWYgKG1hcmtkb3duLXRzLS1saXN0LWl0ZW0tYXQtcG9p
bnQpCisgICAgICAobWFya2Rvd24tdHMtLWxpc3QtbW92ZSBuaWwpCisgICAgKG1hcmtkb3duLXRz
LS1tb3ZlLXN1YnRyZWUtdXAtb3ItZG93biBuaWwpKSkKKworKGRlZnVuIG1hcmtkb3duLXRzLS1z
ZWN0aW9uLWZvbGRlZC1wIChzZWN0aW9uKQorICAiUmV0dXJuIG5vbi1uaWwgaWYgU0VDVElPTidz
IGhlYWRpbmcgaXMgZm9sZGVkLgorQ2hlY2tzIHdoZXRoZXIgdGhlIGVuZCBvZiB0aGUgaGVhZGlu
ZyBsaW5lIGhhcyBhbiBvdXRsaW5lCitpbnZpc2libGUgb3ZlcmxheS4iCisgIChsZXQgKChoZWFk
aW5nICh0cmVlc2l0LW5vZGUtY2hpbGQgc2VjdGlvbiAwKSkpCisgICAgKHdoZW4gKGFuZCBoZWFk
aW5nCisgICAgICAgICAgICAgICAoZXF1YWwgKHRyZWVzaXQtbm9kZS10eXBlIGhlYWRpbmcpICJh
dHhfaGVhZGluZyIpKQorICAgICAgKHNhdmUtZXhjdXJzaW9uCisgICAgICAgIChnb3RvLWNoYXIg
KHRyZWVzaXQtbm9kZS1zdGFydCBoZWFkaW5nKSkKKyAgICAgICAgKG91dGxpbmUtaW52aXNpYmxl
LXAgKHBvcy1lb2wpKSkpKSkKKworKGRlZnVuIG1hcmtkb3duLXRzLS1tb3ZlLXN1YnRyZWUtdXAt
b3ItZG93biAodXApCisgICJNb3ZlIHRoZSBjdXJyZW50IHNlY3Rpb24gc3VidHJlZS4KK0lmIFVQ
IGlzIG5vbi1uaWwsIG1vdmUgcGFzdCB0aGUgcHJldmlvdXMgc2libGluZzsgb3RoZXJ3aXNlIG1v
dmUgZG93bi4KK1ByZXNlcnZlcyB0aGUgZm9sZGluZyBzdGF0ZSBvZiBib3RoIHNlY3Rpb25zLiIK
KyAgKHdoZW4tbGV0KiAoKHNlY3Rpb24gKG1hcmtkb3duLXRzLS1zZWN0aW9uLWF0LXBvaW50KSkK
KyAgICAgICAgICAgICAgKHNpYmxpbmcgKGlmIHVwCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAodHJlZXNpdC1ub2RlLXByZXYtc2libGluZyBzZWN0aW9uKQorICAgICAgICAgICAgICAgICAg
ICAgICAgICh0cmVlc2l0LW5vZGUtbmV4dC1zaWJsaW5nIHNlY3Rpb24pKSkpCisgICAgKHdoZW4g
KGVxdWFsICh0cmVlc2l0LW5vZGUtdHlwZSBzaWJsaW5nKSAic2VjdGlvbiIpCisgICAgICAobGV0
KiAoKGZpcnN0IChpZiB1cCBzaWJsaW5nIHNlY3Rpb24pKQorICAgICAgICAgICAgIChzZWNvbmQg
KGlmIHVwIHNlY3Rpb24gc2libGluZykpCisgICAgICAgICAgICAgKGZpcnN0LWZvbGRlZCAobWFy
a2Rvd24tdHMtLXNlY3Rpb24tZm9sZGVkLXAgZmlyc3QpKQorICAgICAgICAgICAgIChzZWNvbmQt
Zm9sZGVkIChtYXJrZG93bi10cy0tc2VjdGlvbi1mb2xkZWQtcCBzZWNvbmQpKQorICAgICAgICAg
ICAgIChmaXJzdC1zdGFydCAodHJlZXNpdC1ub2RlLXN0YXJ0IGZpcnN0KSkKKyAgICAgICAgICAg
ICAoc2Vjb25kLXN0YXJ0ICh0cmVlc2l0LW5vZGUtc3RhcnQgc2Vjb25kKSkKKyAgICAgICAgICAg
ICAoc2Vjb25kLWVuZCAodHJlZXNpdC1ub2RlLWVuZCBzZWNvbmQpKQorICAgICAgICAgICAgIDs7
IEV4dHJhY3Qgc2VwYXJhdG9yIGJldHdlZW4gaXRlbXMgYW5kIHRyYWlsaW5nIHdoaXRlc3BhY2Uu
CisgICAgICAgICAgICAgKGZpcnN0LXJhdyAoYnVmZmVyLXN1YnN0cmluZyBmaXJzdC1zdGFydCBz
ZWNvbmQtc3RhcnQpKQorICAgICAgICAgICAgIChmaXJzdC10ZXh0IChzdHJpbmctdHJpbS1yaWdo
dCBmaXJzdC1yYXcpKQorICAgICAgICAgICAgIChzZXBhcmF0b3IgKHN1YnN0cmluZyBmaXJzdC1y
YXcgKGxlbmd0aCBmaXJzdC10ZXh0KSkpCisgICAgICAgICAgICAgKHNlY29uZC1yYXcgKGJ1ZmZl
ci1zdWJzdHJpbmcgc2Vjb25kLXN0YXJ0IHNlY29uZC1lbmQpKQorICAgICAgICAgICAgIChzZWNv
bmQtdGV4dCAoc3RyaW5nLXRyaW0tcmlnaHQgc2Vjb25kLXJhdykpCisgICAgICAgICAgICAgKHRy
YWlsaW5nIChzdWJzdHJpbmcgc2Vjb25kLXJhdyAobGVuZ3RoIHNlY29uZC10ZXh0KSkpCisgICAg
ICAgICAgICAgKGNvbCAoY3VycmVudC1jb2x1bW4pKQorICAgICAgICAgICAgIChsaW5lLW9mZnNl
dCAoLSAobGluZS1udW1iZXItYXQtcG9zIChwb2ludCkpCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIChsaW5lLW51bWJlci1hdC1wb3MgKHRyZWVzaXQtbm9kZS1zdGFydCBzZWN0aW9uKSkp
KSkKKyAgICAgICAgKGRlbGV0ZS1yZWdpb24gZmlyc3Qtc3RhcnQgc2Vjb25kLWVuZCkKKyAgICAg
ICAgKGdvdG8tY2hhciBmaXJzdC1zdGFydCkKKyAgICAgICAgKGluc2VydCBzZWNvbmQtdGV4dCBz
ZXBhcmF0b3IgZmlyc3QtdGV4dCB0cmFpbGluZykKKyAgICAgICAgOzsgUmVzdG9yZSBmb2xkaW5n
IHN0YXRlCisgICAgICAgIChzYXZlLWV4Y3Vyc2lvbgorICAgICAgICAgIChnb3RvLWNoYXIgZmly
c3Qtc3RhcnQpCisgICAgICAgICAgKHdoZW4gKG91dGxpbmUtb24taGVhZGluZy1wKQorICAgICAg
ICAgICAgKGlmIHNlY29uZC1mb2xkZWQKKyAgICAgICAgICAgICAgICAob3V0bGluZS1oaWRlLXN1
YnRyZWUpCisgICAgICAgICAgICAgIChvdXRsaW5lLXNob3ctc3VidHJlZSkpKQorICAgICAgICAg
IChvdXRsaW5lLW5leHQtaGVhZGluZykKKyAgICAgICAgICAod2hlbiAob3V0bGluZS1vbi1oZWFk
aW5nLXApCisgICAgICAgICAgICAoaWYgZmlyc3QtZm9sZGVkCisgICAgICAgICAgICAgICAgKG91
dGxpbmUtaGlkZS1zdWJ0cmVlKQorICAgICAgICAgICAgICAob3V0bGluZS1zaG93LXN1YnRyZWUp
KSkpCisgICAgICAgIChnb3RvLWNoYXIgKGlmIHVwCisgICAgICAgICAgICAgICAgICAgICAgIGZp
cnN0LXN0YXJ0CisgICAgICAgICAgICAgICAgICAgICAoKyBmaXJzdC1zdGFydCAobGVuZ3RoIHNl
Y29uZC10ZXh0KQorICAgICAgICAgICAgICAgICAgICAgICAgKGxlbmd0aCBzZXBhcmF0b3IpKSkp
CisgICAgICAgIChmb3J3YXJkLWxpbmUgbGluZS1vZmZzZXQpCisgICAgICAgIChtb3ZlLXRvLWNv
bHVtbiBjb2wpKSkpKQorCis7OzsgTGlzdCBtYW5pcHVsYXRpb246CisKKyhkZWZ1biBtYXJrZG93
bi10cy10b2dnbGUtY2hlY2tib3ggKCkKKyAgIlRvZ2dsZSB0aGUgdGFzayBsaXN0IGNoZWNrYm94
IG9uIHRoZSBjdXJyZW50IGxpbmUuCitTd2l0Y2hlcyBiZXR3ZWVuIGBbIF0nIGFuZCBgW3hdJy4i
CisgIChpbnRlcmFjdGl2ZSkKKyAgKHdoZW4tbGV0KiAoKHBvcyAoc2F2ZS1leGN1cnNpb24gKGJh
Y2stdG8taW5kZW50YXRpb24pIChwb2ludCkpKQorICAgICAgICAgICAgICAobm9kZSAodHJlZXNp
dC1ub2RlLWF0IHBvcyAnbWFya2Rvd24pKQorICAgICAgICAgICAgICAoaXRlbSAodHJlZXNpdC1w
YXJlbnQtdW50aWwKKyAgICAgICAgICAgICAgICAgICAgIG5vZGUgKGxhbWJkYSAobikKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAoZXF1YWwgKHRyZWVzaXQtbm9kZS10eXBlIG4pICJsaXN0
X2l0ZW0iKSkpKSkKKyAgICAod2hlbi1sZXQqICgobWFya2VyIChzZXEtZmluZAorICAgICAgICAg
ICAgICAgICAgICAgICAgIChsYW1iZGEgKGNoaWxkKQorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgKG1lbWJlciAodHJlZXNpdC1ub2RlLXR5cGUgY2hpbGQpCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICcoInRhc2tfbGlzdF9tYXJrZXJfY2hlY2tlZCIKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAidGFza19saXN0X21hcmtlcl91bmNoZWNrZWQiKSkp
CisgICAgICAgICAgICAgICAgICAgICAgICAgKHRyZWVzaXQtbm9kZS1jaGlsZHJlbiBpdGVtKSkp
KQorICAgICAgKGxldCAoKGJlZyAodHJlZXNpdC1ub2RlLXN0YXJ0IG1hcmtlcikpCisgICAgICAg
ICAgICAoZW5kICh0cmVlc2l0LW5vZGUtZW5kIG1hcmtlcikpCisgICAgICAgICAgICAoY2hlY2tl
ZCAoZXF1YWwgKHRyZWVzaXQtbm9kZS10eXBlIG1hcmtlcikKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAidGFza19saXN0X21hcmtlcl9jaGVja2VkIikpKQorICAgICAgICAoc2F2ZS1leGN1
cnNpb24KKyAgICAgICAgICAoZ290by1jaGFyIGJlZykKKyAgICAgICAgICAoZGVsZXRlLXJlZ2lv
biBiZWcgZW5kKQorICAgICAgICAgIChpbnNlcnQgKGlmIGNoZWNrZWQgIlsgXSIgIlt4XSIpKSkp
KSkpCisKKyhkZWZ1biBtYXJrZG93bi10cy0tbGlzdC1pdGVtLWF0LXBvaW50ICgpCisgICJSZXR1
cm4gdGhlIGlubmVybW9zdCBsaXN0X2l0ZW0gbm9kZSBjb250YWluaW5nIHBvaW50LCBvciBuaWwu
CitVc2VzIHRoZSBwb3NpdGlvbiBhZnRlciBgYmFjay10by1pbmRlbnRhdGlvbicgc28gdGhhdCBw
b2ludCBpbgorYSBsaW5lJ3MgbGVhZGluZyB3aGl0ZXNwYWNlIHJlc29sdmVzIHRvIHRoZSBpdGVt
IG9uIHRoYXQgbGluZSwKK25vdCB0byBhIHByZWNlZGluZyBpdGVtIHdob3NlIG5vZGUgc3BhbnMg
dGhlIHdoaXRlc3BhY2UuCitJbnNpZGUgYmxvY2sgcXVvdGVzLCBhbHNvIHRyeSBmcm9tIHRoZSBj
b250ZW50IHBvc2l0aW9uIHBhc3QKK3RoZSBgPicgbWFya2Vycy4iCisgICh3aGVuLWxldCogKChw
b3MgKHNhdmUtZXhjdXJzaW9uIChiYWNrLXRvLWluZGVudGF0aW9uKSAocG9pbnQpKSkKKyAgICAg
ICAgICAgICAgKG5vZGUgKHRyZWVzaXQtbm9kZS1hdCBwb3MgJ21hcmtkb3duKSkKKyAgICAgICAg
ICAgICAgKGJvbCAobGluZS1iZWdpbm5pbmctcG9zaXRpb24pKQorICAgICAgICAgICAgICAoZW9s
IChsaW5lLWVuZC1wb3NpdGlvbikpKQorICAgIChvciAobGV0ICgoaXRlbSAodHJlZXNpdC1wYXJl
bnQtdW50aWwKKyAgICAgICAgICAgICAgICAgICAgIG5vZGUgKGxhbWJkYSAobikKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAoZXF1YWwgKHRyZWVzaXQtbm9kZS10eXBlIG4pICJsaXN0X2l0
ZW0iKSkpKSkKKyAgICAgICAgICA7OyBWZXJpZnkgdGhlIGN1cnJlbnQgbGluZSBpcyB3aXRoaW4g
dGhlIGl0ZW0ncyByYW5nZS4KKyAgICAgICAgICA7OyBgdHJlZXNpdC1ub2RlLWF0JyBjYW4gcmV0
dXJuIGEgbm9kZSBpbnNpZGUgYSBsaXN0X2l0ZW0KKyAgICAgICAgICA7OyBldmVuIHdoZW4gcG9p
bnQgaXMgb24gYSBwcmVjZWRpbmcgbGluZS4KKyAgICAgICAgICAod2hlbiAoYW5kIGl0ZW0KKyAg
ICAgICAgICAgICAgICAgICAgICg8PSAodHJlZXNpdC1ub2RlLXN0YXJ0IGl0ZW0pIGVvbCkKKyAg
ICAgICAgICAgICAgICAgICAgICg+PSAodHJlZXNpdC1ub2RlLWVuZCBpdGVtKSBib2wpKQorICAg
ICAgICAgICAgaXRlbSkpCisgICAgICAgIDs7IFdoZW4gYmFjay10by1pbmRlbnRhdGlvbiBsYW5k
cyBvbiBibG9jayBxdW90ZSBtYXJrZXJzLAorICAgICAgICA7OyBza2lwIHBhc3QgdGhlbSBhbmQg
dHJ5IGZyb20gdGhlIGNvbnRlbnQgcG9zaXRpb24uCisgICAgICAgIChsZXQgKChjb250ZW50LXBv
cyAoc2F2ZS1leGN1cnNpb24KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGJlZ2lubmlu
Zy1vZi1saW5lKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoc2tpcC1jaGFycy1mb3J3
YXJkICI+IFx0IikKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHBvaW50KSkpKQorICAg
ICAgICAgICh3aGVuICg+IGNvbnRlbnQtcG9zIHBvcykKKyAgICAgICAgICAgICh3aGVuLWxldCog
KChjbm9kZSAodHJlZXNpdC1ub2RlLWF0IGNvbnRlbnQtcG9zICdtYXJrZG93bikpKQorICAgICAg
ICAgICAgICAobGV0ICgoaXRlbSAodHJlZXNpdC1wYXJlbnQtdW50aWwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGNub2RlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAobGFtYmRhIChu
KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZXF1YWwgKHRyZWVzaXQtbm9kZS10eXBl
IG4pICJsaXN0X2l0ZW0iKSkpKSkKKyAgICAgICAgICAgICAgICAod2hlbiAoYW5kIGl0ZW0KKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICg8PSAodHJlZXNpdC1ub2RlLXN0YXJ0IGl0ZW0pIGVv
bCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICg+PSAodHJlZXNpdC1ub2RlLWVuZCBpdGVt
KSBib2wpKQorICAgICAgICAgICAgICAgICAgaXRlbSkpKSkpKSkpCisKKyhkZWZ1biBtYXJrZG93
bi10cy0tbGlzdC1tYXJrZXItd2lkdGggKGl0ZW0pCisgICJSZXR1cm4gdGhlIHdpZHRoIG9mIElU
RU0ncyBsaXN0IG1hcmtlciBpbmNsdWRpbmcgdHJhaWxpbmcgc3BhY2UuIgorICAobGV0ICgobWFy
a2VyICh0cmVlc2l0LW5vZGUtY2hpbGQgaXRlbSAwKSkpCisgICAgKC0gKHRyZWVzaXQtbm9kZS1l
bmQgbWFya2VyKSAodHJlZXNpdC1ub2RlLXN0YXJ0IG1hcmtlcikpKSkKKworKGRlZnVuIG1hcmtk
b3duLXRzLS1saXN0LWl0ZW0tcmVnaW9uIChpdGVtKQorICAiUmV0dXJuIHRoZSAoQkVHIC4gRU5E
KSByZWdpb24gZm9yIElURU0sIGNsYW1wZWQgdG8gZnVsbCBsaW5lcy4KK0JFRyBzdGFydHMgYXQg
dGhlIGJlZ2lubmluZyBvZiB0aGUgbGluZSBjb250YWluaW5nIHRoZSBpdGVtLgorRU5EIGlzIGNs
YW1wZWQgc28gaXQgZG9lcyBub3QgZXh0ZW5kIGludG8gdGhlIG5leHQgbGluZSdzCitpbmRlbnRh
dGlvbiwgd2hpY2ggdHJlZS1zaXR0ZXIgbWF5IGluY2x1ZGUgaW4gdGhlIG5vZGUuIgorICAobGV0
ICgoYmVnIChzYXZlLWV4Y3Vyc2lvbgorICAgICAgICAgICAgICAgKGdvdG8tY2hhciAodHJlZXNp
dC1ub2RlLXN0YXJ0IGl0ZW0pKQorICAgICAgICAgICAgICAgKGxpbmUtYmVnaW5uaW5nLXBvc2l0
aW9uKSkpCisgICAgICAgIChlbmQgKHNhdmUtZXhjdXJzaW9uCisgICAgICAgICAgICAgICAoZ290
by1jaGFyICh0cmVlc2l0LW5vZGUtZW5kIGl0ZW0pKQorICAgICAgICAgICAgICAgKGlmIChib2xw
KSAocG9pbnQpIChsaW5lLWJlZ2lubmluZy1wb3NpdGlvbikpKSkpCisgICAgKGNvbnMgYmVnIGVu
ZCkpKQorCisoZGVmdW4gbWFya2Rvd24tdHMtLWxpc3Qtb3JkZXJlZC1pdGVtLXAgKGl0ZW0pCisg
ICJSZXR1cm4gbm9uLW5pbCBpZiBJVEVNIGlzIGFuIG9yZGVyZWQgKG51bWJlcmVkKSBsaXN0IGl0
ZW0uIgorICAobGV0ICgobWFya2VyICh0cmVlc2l0LW5vZGUtY2hpbGQgaXRlbSAwKSkpCisgICAg
KGVxdWFsICh0cmVlc2l0LW5vZGUtdHlwZSBtYXJrZXIpICJsaXN0X21hcmtlcl9kb3QiKSkpCisK
KyhkZWZ1biBtYXJrZG93bi10cy0tbGlzdC1wcm9tb3RlLW9yLWRlbW90ZSAoZGVtb3RlKQorICAi
Q2hhbmdlIG5lc3Rpbmcgb2YgdGhlIGxpc3QgaXRlbSBhdCBwb2ludC4KK0lmIERFTU9URSBpcyBu
b24tbmlsLCBkZW1vdGUgKGluZGVudCk7IG90aGVyd2lzZSBwcm9tb3RlIChkZWRlbnQpLgorT3Jk
ZXJlZCAobnVtYmVyZWQpIGxpc3QgaXRlbXMgYXJlIHNraXBwZWQgYmVjYXVzZSB0aGUgZ3JhbW1h
ciBkb2VzCitub3Qgc3VwcG9ydCBuZXN0aW5nIHRoZW0gYnkgaW5kZW50YXRpb24uIgorICAod2hl
bi1sZXQqICgoaXRlbSAobWFya2Rvd24tdHMtLWxpc3QtaXRlbS1hdC1wb2ludCkpCisgICAgICAg
ICAgICAgIChyZWdpb24gKG1hcmtkb3duLXRzLS1saXN0LWl0ZW0tcmVnaW9uIGl0ZW0pKQorICAg
ICAgICAgICAgICAoYmVnIChjYXIgcmVnaW9uKSkKKyAgICAgICAgICAgICAgKGVuZCAoY2RyIHJl
Z2lvbikpKQorICAgICh3aGVuIChtYXJrZG93bi10cy0tbGlzdC1vcmRlcmVkLWl0ZW0tcCBpdGVt
KQorICAgICAgKHVzZXItZXJyb3IgIk9yZGVyZWQgbGlzdCBpdGVtcyBjYW5ub3QgYmUgbmVzdGVk
IChncmFtbWFyIGxpbWl0YXRpb24pIikpCisgICAgKGlmIGRlbW90ZQorICAgICAgICA7OyBEZW1v
dGU6IGluZGVudCBieSBtYXJrZXIgd2lkdGgsIG9ubHkgaWYgdGhlcmUgaXMgYSBwcmV2aW91cwor
ICAgICAgICA7OyBzaWJsaW5nIHRvIG5lc3QgdW5kZXIgKGxpa2Ugb3JnLW1vZGUpLgorICAgICAg
ICAod2hlbiAodHJlZXNpdC1ub2RlLXByZXYtc2libGluZyBpdGVtKQorICAgICAgICAgIChpbmRl
bnQtcmlnaWRseSBiZWcgZW5kIChtYXJrZG93bi10cy0tbGlzdC1tYXJrZXItd2lkdGggaXRlbSkp
KQorICAgICAgOzsgUHJvbW90ZTogZGVkZW50IHRvIGdyYW5kcGFyZW50IGxldmVsLgorICAgICAg
KGxldCogKChwYXJlbnQtbGlzdCAodHJlZXNpdC1ub2RlLXBhcmVudCBpdGVtKSkKKyAgICAgICAg
ICAgICAoZ3JhbmRwYXJlbnQgKGFuZCBwYXJlbnQtbGlzdCAodHJlZXNpdC1ub2RlLXBhcmVudCBw
YXJlbnQtbGlzdCkpKQorICAgICAgICAgICAgIChpdGVtLWNvbCAoc2F2ZS1leGN1cnNpb24KKyAg
ICAgICAgICAgICAgICAgICAgICAgICAoZ290by1jaGFyIGJlZykgKGN1cnJlbnQtaW5kZW50YXRp
b24pKSkpCisgICAgICAgICh3aGVuIChhbmQgZ3JhbmRwYXJlbnQKKyAgICAgICAgICAgICAgICAg
ICAoZXF1YWwgKHRyZWVzaXQtbm9kZS10eXBlIGdyYW5kcGFyZW50KSAibGlzdF9pdGVtIikKKyAg
ICAgICAgICAgICAgICAgICAoPiBpdGVtLWNvbCAwKSkKKyAgICAgICAgICAobGV0ICgoZ3AtY29s
IChzYXZlLWV4Y3Vyc2lvbgorICAgICAgICAgICAgICAgICAgICAgICAgICAoZ290by1jaGFyICh0
cmVlc2l0LW5vZGUtc3RhcnQgZ3JhbmRwYXJlbnQpKQorICAgICAgICAgICAgICAgICAgICAgICAg
ICAoY3VycmVudC1pbmRlbnRhdGlvbikpKSkKKyAgICAgICAgICAgIChpbmRlbnQtcmlnaWRseSBi
ZWcgZW5kICgtIGdwLWNvbCBpdGVtLWNvbCkpKSkpKSkpCisKKyhkZWZ1biBtYXJrZG93bi10cy0t
bGlzdC1ub2RlLWJvbCAobm9kZSkKKyAgIlJldHVybiB0aGUgYmVnaW5uaW5nIG9mIHRoZSBsaW5l
IGNvbnRhaW5pbmcgTk9ERSdzIHN0YXJ0LiIKKyAgKHNhdmUtZXhjdXJzaW9uCisgICAgKGdvdG8t
Y2hhciAodHJlZXNpdC1ub2RlLXN0YXJ0IG5vZGUpKQorICAgIChsaW5lLWJlZ2lubmluZy1wb3Np
dGlvbikpKQorCisoZGVmdW4gbWFya2Rvd24tdHMtLWxpc3QtbW92ZSAodXApCisgICJNb3ZlIHRo
ZSBsaXN0IGl0ZW0gYXQgcG9pbnQuCitJZiBVUCBpcyBub24tbmlsLCBtb3ZlIHBhc3QgdGhlIHBy
ZXZpb3VzIHNpYmxpbmc7IG90aGVyd2lzZSBtb3ZlIGRvd24uIgorICAod2hlbi1sZXQqICgoaXRl
bSAobWFya2Rvd24tdHMtLWxpc3QtaXRlbS1hdC1wb2ludCkpCisgICAgICAgICAgICAgIChzaWJs
aW5nIChpZiB1cAorICAgICAgICAgICAgICAgICAgICAgICAgICAgKHRyZWVzaXQtbm9kZS1wcmV2
LXNpYmxpbmcgaXRlbSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAodHJlZXNpdC1ub2RlLW5l
eHQtc2libGluZyBpdGVtKSkpKQorICAgICh3aGVuIChlcXVhbCAodHJlZXNpdC1ub2RlLXR5cGUg
c2libGluZykgImxpc3RfaXRlbSIpCisgICAgICAobGV0KiAoKGZpcnN0IChpZiB1cCBzaWJsaW5n
IGl0ZW0pKQorICAgICAgICAgICAgIChzZWNvbmQgKGlmIHVwIGl0ZW0gc2libGluZykpCisgICAg
ICAgICAgICAgKGZpcnN0LXN0YXJ0IChtYXJrZG93bi10cy0tbGlzdC1ub2RlLWJvbCBmaXJzdCkp
CisgICAgICAgICAgICAgKHNlY29uZC1zdGFydCAobWFya2Rvd24tdHMtLWxpc3Qtbm9kZS1ib2wg
c2Vjb25kKSkKKyAgICAgICAgICAgICAoc2Vjb25kLWVuZCAodHJlZXNpdC1ub2RlLWVuZCBzZWNv
bmQpKQorICAgICAgICAgICAgIDs7IEV4dHJhY3Qgc2VwYXJhdG9yIGJldHdlZW4gaXRlbXMgYW5k
IHRyYWlsaW5nIHdoaXRlc3BhY2UuCisgICAgICAgICAgICAgKGZpcnN0LXJhdyAoYnVmZmVyLXN1
YnN0cmluZyBmaXJzdC1zdGFydCBzZWNvbmQtc3RhcnQpKQorICAgICAgICAgICAgIChmaXJzdC10
ZXh0IChzdHJpbmctdHJpbS1yaWdodCBmaXJzdC1yYXcpKQorICAgICAgICAgICAgIChzZXBhcmF0
b3IgKHN1YnN0cmluZyBmaXJzdC1yYXcgKGxlbmd0aCBmaXJzdC10ZXh0KSkpCisgICAgICAgICAg
ICAgKHNlY29uZC1yYXcgKGJ1ZmZlci1zdWJzdHJpbmcgc2Vjb25kLXN0YXJ0IHNlY29uZC1lbmQp
KQorICAgICAgICAgICAgIChzZWNvbmQtdGV4dCAoc3RyaW5nLXRyaW0tcmlnaHQgc2Vjb25kLXJh
dykpCisgICAgICAgICAgICAgKHRyYWlsaW5nIChzdWJzdHJpbmcgc2Vjb25kLXJhdyAobGVuZ3Ro
IHNlY29uZC10ZXh0KSkpCisgICAgICAgICAgICAgKGNvbCAoY3VycmVudC1jb2x1bW4pKQorICAg
ICAgICAgICAgIChsaW5lLW9mZnNldCAoLSAobGluZS1udW1iZXItYXQtcG9zIChwb2ludCkpCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsaW5lLW51bWJlci1hdC1wb3MKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICh0cmVlc2l0LW5vZGUtc3RhcnQgaXRlbSkpKSkpCisgICAg
ICAgIChkZWxldGUtcmVnaW9uIGZpcnN0LXN0YXJ0IHNlY29uZC1lbmQpCisgICAgICAgIChnb3Rv
LWNoYXIgZmlyc3Qtc3RhcnQpCisgICAgICAgIChpbnNlcnQgc2Vjb25kLXRleHQgc2VwYXJhdG9y
IGZpcnN0LXRleHQgdHJhaWxpbmcpCisgICAgICAgIChnb3RvLWNoYXIgKGlmIHVwCisgICAgICAg
ICAgICAgICAgICAgICAgIGZpcnN0LXN0YXJ0CisgICAgICAgICAgICAgICAgICAgICAoKyBmaXJz
dC1zdGFydCAobGVuZ3RoIHNlY29uZC10ZXh0KQorICAgICAgICAgICAgICAgICAgICAgICAgKGxl
bmd0aCBzZXBhcmF0b3IpKSkpCisgICAgICAgIChmb3J3YXJkLWxpbmUgbGluZS1vZmZzZXQpCisg
ICAgICAgIChtb3ZlLXRvLWNvbHVtbiBjb2wpKSkpKQorCisoZGVmdW4gbWFya2Rvd24tdHMtcmVu
dW1iZXItbGlzdCAoJm9wdGlvbmFsIHN0YXJ0KQorICAiUmVudW1iZXIgdGhlIG9yZGVyZWQgbGlz
dCBhdCBwb2ludC4KK051bWJlcnMgYXJlIGFzc2lnbmVkIHNlcXVlbnRpYWxseSBzdGFydGluZyBm
cm9tIHRoZSBmaXJzdCBpdGVtJ3MKK251bWJlci4gIFdpdGggYSBwcmVmaXggYXJndW1lbnQgU1RB
UlQsIHN0YXJ0IG51bWJlcmluZyBmcm9tIHRoYXQKK3ZhbHVlIGluc3RlYWQuICBEb2VzIG5vdGhp
bmcgZm9yIHVub3JkZXJlZCBsaXN0cy4iCisgIChpbnRlcmFjdGl2ZSAiUCIpCisgICh3aGVuLWxl
dCogKChpdGVtIChtYXJrZG93bi10cy0tbGlzdC1pdGVtLWF0LXBvaW50KSkKKyAgICAgICAgICAg
ICAgKGxpc3Qtbm9kZSAodHJlZXNpdC1ub2RlLXBhcmVudCBpdGVtKSkpCisgICAgKHdoZW4gKGVx
dWFsICh0cmVlc2l0LW5vZGUtdHlwZSBsaXN0LW5vZGUpICJsaXN0IikKKyAgICAgIChsZXQqICgo
Y2hpbGRyZW4gKHRyZWVzaXQtbm9kZS1jaGlsZHJlbiBsaXN0LW5vZGUpKQorICAgICAgICAgICAg
IChpdGVtcyAoc2VxLWZpbHRlciAobGFtYmRhIChuKQorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIChlcXVhbCAodHJlZXNpdC1ub2RlLXR5cGUgbikgImxpc3RfaXRlbSIpKQorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGlsZHJlbikpCisgICAgICAgICAgICAgKGZp
cnN0LW1hcmtlciAodHJlZXNpdC1ub2RlLWNoaWxkIChjYXIgaXRlbXMpIDApKQorICAgICAgICAg
ICAgIChtYXJrZXItdHlwZSAodHJlZXNpdC1ub2RlLXR5cGUgZmlyc3QtbWFya2VyKSkpCisgICAg
ICAgICh3aGVuIChtZW1iZXIgbWFya2VyLXR5cGUgJygibGlzdF9tYXJrZXJfZG90IiAibGlzdF9t
YXJrZXJfcGFyZW50aGVzaXMiKSkKKyAgICAgICAgICAobGV0KiAoKGJhc2UgKGlmIHN0YXJ0Cisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAocHJlZml4LW51bWVyaWMtdmFsdWUgc3RhcnQpCisg
ICAgICAgICAgICAgICAgICAgICAgICAgKHN0cmluZy10by1udW1iZXIKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgKHRyZWVzaXQtbm9kZS10ZXh0IGZpcnN0LW1hcmtlciB0KSkpKQorICAgICAg
ICAgICAgICAgICAoY291bnQgKGxlbmd0aCBpdGVtcykpCisgICAgICAgICAgICAgICAgIDs7IFN0
YXJ0IGZyb20gdGhlIGxhc3QgbnVtYmVyIGFuZCB3b3JrIGJhY2t3YXJkcyBzbworICAgICAgICAg
ICAgICAgICA7OyB0aGF0IGVhcmxpZXIgYnVmZmVyIHBvc2l0aW9ucyByZW1haW4gdmFsaWQuCisg
ICAgICAgICAgICAgICAgIChudW0gKCsgYmFzZSBjb3VudCAtMSkpKQorICAgICAgICAgICAgKGRv
bGlzdCAoaXQgKHJldmVyc2UgaXRlbXMpKQorICAgICAgICAgICAgICAobGV0KiAoKG1hcmtlciAo
dHJlZXNpdC1ub2RlLWNoaWxkIGl0IDApKQorICAgICAgICAgICAgICAgICAgICAgKG1hcmtlci1l
bmQgKHRyZWVzaXQtbm9kZS1lbmQgbWFya2VyKSkKKyAgICAgICAgICAgICAgICAgICAgIChib2wg
KHNhdmUtZXhjdXJzaW9uCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGdvdG8tY2hhciAo
dHJlZXNpdC1ub2RlLXN0YXJ0IG1hcmtlcikpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
KGxpbmUtYmVnaW5uaW5nLXBvc2l0aW9uKSkpCisgICAgICAgICAgICAgICAgICAgICA7OyBGdWxs
IHRleHQgZnJvbSBib2wgdG8gZW5kIG9mIG1hcmtlciBpbmNsdWRlcworICAgICAgICAgICAgICAg
ICAgICAgOzsgYW55IGxlYWRpbmcgd2hpdGVzcGFjZSwgdGhlIG51bWJlciwgYW5kIHRoZQorICAg
ICAgICAgICAgICAgICAgICAgOzsgc2VwYXJhdG9yIChlLmcuLCAiLiAiIG9yICIuXHQiKS4KKyAg
ICAgICAgICAgICAgICAgICAgIChmdWxsLXRleHQgKGJ1ZmZlci1zdWJzdHJpbmctbm8tcHJvcGVy
dGllcworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9sIG1hcmtlci1lbmQpKQor
ICAgICAgICAgICAgICAgICAgICAgKGluZGVudC1zdHIKKyAgICAgICAgICAgICAgICAgICAgICAo
aWYgKHN0cmluZy1tYXRjaAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIlxcYFxcKFtbOmJs
YW5rOl1dKlxcKVswLTldIiBmdWxsLXRleHQpCisgICAgICAgICAgICAgICAgICAgICAgICAgICht
YXRjaC1zdHJpbmcgMSBmdWxsLXRleHQpCisgICAgICAgICAgICAgICAgICAgICAgICAiIikpCisg
ICAgICAgICAgICAgICAgICAgICAoc3VmZml4LXN0cgorICAgICAgICAgICAgICAgICAgICAgIChp
ZiAoc3RyaW5nLW1hdGNoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAiXFxgW1s6Ymxhbms6
XV0qWzAtOV0rXFwoLipcXClcXCciIGZ1bGwtdGV4dCkKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgKG1hdGNoLXN0cmluZyAxIGZ1bGwtdGV4dCkKKyAgICAgICAgICAgICAgICAgICAgICAgICIu
ICIpKQorICAgICAgICAgICAgICAgICAgICAgKG5ldy10ZXh0IChjb25jYXQgaW5kZW50LXN0cgor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG51bWJlci10by1zdHJpbmcg
bnVtKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3VmZml4LXN0cikp
KQorICAgICAgICAgICAgICAgIChzYXZlLWV4Y3Vyc2lvbgorICAgICAgICAgICAgICAgICAgKGRl
bGV0ZS1yZWdpb24gYm9sIG1hcmtlci1lbmQpCisgICAgICAgICAgICAgICAgICAoZ290by1jaGFy
IGJvbCkKKyAgICAgICAgICAgICAgICAgIChpbnNlcnQgbmV3LXRleHQpKSkKKyAgICAgICAgICAg
ICAgKGNsLWRlY2YgbnVtKSkKKyAgICAgICAgICAgIChtZXNzYWdlICJSZW51bWJlcmVkICVkIGl0
ZW1zIiBjb3VudCkpKSkpKSkKKworKGRlZnVuIG1hcmtkb3duLXRzLS1saXN0LWl0ZW0tbmV3LW1h
cmtlciAoaXRlbSkKKyAgIlJldHVybiB0aGUgbWFya2VyIHN0cmluZyBmb3IgYSBuZXcgaXRlbSBm
b2xsb3dpbmcgSVRFTS4KK0ZvciB1bm9yZGVyZWQgaXRlbXMsIHJldXNlIHRoZSBzYW1lIG1hcmtl
ciBjaGFyYWN0ZXIuCitGb3Igb3JkZXJlZCBpdGVtcywgaW5jcmVtZW50IHRoZSBudW1iZXIuIgor
ICAobGV0KiAoKG1hcmtlciAodHJlZXNpdC1ub2RlLWNoaWxkIGl0ZW0gMCkpCisgICAgICAgICAo
dHlwZSAodHJlZXNpdC1ub2RlLXR5cGUgbWFya2VyKSkKKyAgICAgICAgIChpbmRlbnQgKHNhdmUt
ZXhjdXJzaW9uCisgICAgICAgICAgICAgICAgICAgKGdvdG8tY2hhciAodHJlZXNpdC1ub2RlLXN0
YXJ0IGl0ZW0pKQorICAgICAgICAgICAgICAgICAgIChjdXJyZW50LWluZGVudGF0aW9uKSkpCisg
ICAgICAgICAocHJlZml4IChtYWtlLXN0cmluZyBpbmRlbnQgP1xzKSkpCisgICAgKHBjYXNlIHR5
cGUKKyAgICAgICgibGlzdF9tYXJrZXJfbWludXMiIChjb25jYXQgcHJlZml4ICItICIpKQorICAg
ICAgKCJsaXN0X21hcmtlcl9wbHVzIiAgKGNvbmNhdCBwcmVmaXggIisgIikpCisgICAgICAoImxp
c3RfbWFya2VyX3N0YXIiICAoY29uY2F0IHByZWZpeCAiKiAiKSkKKyAgICAgICgibGlzdF9tYXJr
ZXJfZG90IgorICAgICAgIChsZXQgKChudW0gKHN0cmluZy10by1udW1iZXIgKHRyZWVzaXQtbm9k
ZS10ZXh0IG1hcmtlciB0KSkpKQorICAgICAgICAgKGNvbmNhdCBwcmVmaXggKG51bWJlci10by1z
dHJpbmcgKDErIG51bSkpICIuICIpKSkKKyAgICAgICgibGlzdF9tYXJrZXJfcGFyZW50aGVzaXMi
CisgICAgICAgKGxldCAoKG51bSAoc3RyaW5nLXRvLW51bWJlciAodHJlZXNpdC1ub2RlLXRleHQg
bWFya2VyIHQpKSkpCisgICAgICAgICAoY29uY2F0IHByZWZpeCAobnVtYmVyLXRvLXN0cmluZyAo
MSsgbnVtKSkgIikgIikpKQorICAgICAgKF8gKGNvbmNhdCBwcmVmaXggIi0gIikpKSkpCisKKyhk
ZWZ1biBtYXJrZG93bi10cy0tbmV3LW1hcmtlci1mb3ItbGluZSAoaXRlbSkKKyAgIlJldHVybiB0
aGUgbWFya2VyIHN0cmluZyBmb3IgYSBuZXcgaXRlbSBmb2xsb3dpbmcgSVRFTS4KK1doZW4gdGhl
IGN1cnJlbnQgbGluZSBoYXMgYSBsaXN0IG1hcmtlciBwYXR0ZXJuIGF0IGEgZGlmZmVyZW50Citp
bmRlbnRhdGlvbiB0aGFuIElURU0gKGUuZy4sIGEgbmVzdGVkIG1hcmtlciB0aGF0IHRoZSBncmFt
bWFyIGRpZAorbm90IHJlY29nbml6ZSBhcyBhIGxpc3RfaXRlbSksIHVzZSB0aGUgY3VycmVudCBs
aW5lJ3MgbWFya2VyLgorT3RoZXJ3aXNlLCBmYWxsIGJhY2sgdG8gYG1hcmtkb3duLXRzLS1saXN0
LWl0ZW0tbmV3LW1hcmtlcicuIgorICAobGV0ICgobWFya2VyLW5vZGUgKHRyZWVzaXQtbm9kZS1j
aGlsZCBpdGVtIDApKSkKKyAgICAoaWYgKD0gKGxpbmUtbnVtYmVyLWF0LXBvcykKKyAgICAgICAg
ICAgIChsaW5lLW51bWJlci1hdC1wb3MgKHRyZWVzaXQtbm9kZS1zdGFydCBtYXJrZXItbm9kZSkp
KQorICAgICAgICA7OyBJdGVtJ3MgbWFya2VyIGlzIG9uIHRoZSBjdXJyZW50IGxpbmU6IHVzZSBp
dCBub3JtYWxseS4KKyAgICAgICAgKG1hcmtkb3duLXRzLS1saXN0LWl0ZW0tbmV3LW1hcmtlciBp
dGVtKQorICAgICAgOzsgSXRlbSdzIG1hcmtlciBpcyBvbiBhIGRpZmZlcmVudCBsaW5lLiAgVGhl
IHBhcnNlciBtYXkgaGF2ZQorICAgICAgOzsgZmFpbGVkIHRvIHJlY29nbml6ZSBhIG5lc3RlZCBt
YXJrZXIgKGUuZy4sIGEgbG9uZSBgICAtICcKKyAgICAgIDs7IHBhcnNlZCBhcyBhIHNldGV4dCBo
ZWFkaW5nKS4gIFJlYWQgdGhlIGN1cnJlbnQgbGluZS4KKyAgICAgIChsZXQgKChsaW5lIChidWZm
ZXItc3Vic3RyaW5nLW5vLXByb3BlcnRpZXMKKyAgICAgICAgICAgICAgICAgICAobGluZS1iZWdp
bm5pbmctcG9zaXRpb24pIChsaW5lLWVuZC1wb3NpdGlvbikpKSkKKyAgICAgICAgKGlmIChzdHJp
bmctbWF0Y2gKKyAgICAgICAgICAgICAiXFxgXFwoW1s6Ymxhbms6XV0qXFwpXFwoWy0qK10gXFx8
XFwoWzAtOV0rXFwpXFwoWy4pXSBcXClcXCkiCisgICAgICAgICAgICAgbGluZSkKKyAgICAgICAg
ICAgIChsZXQgKChpbmRlbnQgKG1hdGNoLXN0cmluZyAxIGxpbmUpKQorICAgICAgICAgICAgICAg
ICAgKG51bSAobWF0Y2gtc3RyaW5nIDMgbGluZSkpCisgICAgICAgICAgICAgICAgICAoc3VmZml4
IChtYXRjaC1zdHJpbmcgNCBsaW5lKSkKKyAgICAgICAgICAgICAgICAgICh1bm9yZGVyZWQgKG1h
dGNoLXN0cmluZyAyIGxpbmUpKSkKKyAgICAgICAgICAgICAgKGlmIG51bQorICAgICAgICAgICAg
ICAgICAgKGNvbmNhdCBpbmRlbnQgKG51bWJlci10by1zdHJpbmcKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAoMSsgKHN0cmluZy10by1udW1iZXIgbnVtKSkpCisgICAgICAgICAg
ICAgICAgICAgICAgICAgIHN1ZmZpeCkKKyAgICAgICAgICAgICAgICAoY29uY2F0IGluZGVudCB1
bm9yZGVyZWQpKSkKKyAgICAgICAgICA7OyBObyBtYXJrZXIgcGF0dGVybiBvbiBjdXJyZW50IGxp
bmU6IHVzZSBpdGVtJ3MgbWFya2VyLgorICAgICAgICAgIChtYXJrZG93bi10cy0tbGlzdC1pdGVt
LW5ldy1tYXJrZXIgaXRlbSkpKSkpKQorCisoZGVmdW4gbWFya2Rvd24tdHMtLWxpbmUtYmxvY2st
cXVvdGUtZGVwdGggKCZvcHRpb25hbCBwb3MpCisgICJDb3VudCB0aGUgbnVtYmVyIG9mIGA+JyBi
bG9jayBxdW90ZSBtYXJrZXJzIG9uIHRoZSBsaW5lIGF0IFBPUy4iCisgIChzYXZlLWV4Y3Vyc2lv
bgorICAgICh3aGVuIHBvcyAoZ290by1jaGFyIHBvcykpCisgICAgKGJlZ2lubmluZy1vZi1saW5l
KQorICAgIChsZXQgKChjb3VudCAwKSkKKyAgICAgICh3aGlsZSAoYW5kIChub3QgKGVvbHApKQor
ICAgICAgICAgICAgICAgICAgKG1lbXEgKGNoYXItYWZ0ZXIpICcoPz4gP1xzID9cdCkpKQorICAg
ICAgICAod2hlbiAoZXEgKGNoYXItYWZ0ZXIpID8+KQorICAgICAgICAgIChzZXRxIGNvdW50ICgx
KyBjb3VudCkpKQorICAgICAgICAoZm9yd2FyZC1jaGFyIDEpKQorICAgICAgY291bnQpKSkKKwor
KGRlZnVuIG1hcmtkb3duLXRzLW5ld2xpbmUgKCkKKyAgIkluc2VydCBhIG5ld2xpbmUsIGNvbnRp
bnVpbmcgdGhlIGN1cnJlbnQgY29udGV4dC4KK0luc2lkZSBhIGxpc3QgaXRlbSwgdGhlIG5ldyBs
aW5lIGlzIGluZGVudGVkIHRvIHRoZSBpdGVtJ3MgdGV4dAorY29sdW1uIHNvIHRoZSBwYXJhZ3Jh
cGggY29udGludWVzLiAgQSBzZWNvbmQgUkVUIG9uIGEgYmxhbmsKK2NvbnRpbnVhdGlvbiBsaW5l
IHJlbW92ZXMgdGhlIGluZGVudGF0aW9uLCBkcm9wcGluZyBwb2ludCB0bworY29sdW1uIDAgc28g
dGhlIHRyZWUtc2l0dGVyIGdyYW1tYXIgZW5kcyB0aGUgbGlzdC4KK0luc2lkZSBhIGJsb2NrIHF1
b3RlLCB0aGUgbmV3IGxpbmUgaW5jbHVkZXMgdGhlIHF1b3RlIHByZWZpeC4KK090aGVyd2lzZSwg
aW5zZXJ0IGEgcGxhaW4gbmV3bGluZS4iCisgIChpbnRlcmFjdGl2ZSkKKyAgKGxldCogKChub2Rl
ICh0cmVlc2l0LW5vZGUtYXQKKyAgICAgICAgICAgICAgICAoc2F2ZS1leGN1cnNpb24gKGJhY2st
dG8taW5kZW50YXRpb24pIChwb2ludCkpCisgICAgICAgICAgICAgICAgJ21hcmtkb3duKSkKKyAg
ICAgICAgIDs7IFRyZWUtc2l0dGVyIG1heSByZXBvcnQgYSBub2RlIGluc2lkZSBhIGJsb2NrX3F1
b3RlIGV2ZW4KKyAgICAgICAgIDs7IHdoZW4gcG9pbnQgaXMgb24gYSBibGFuayBsaW5lIHBhc3Qg
dGhlIHF1b3RlICh0aGUgbm9kZQorICAgICAgICAgOzsgc3BhbiBjYW4gZXh0ZW5kIGJleW9uZCB0
aGUgYD4nIGxpbmVzKS4gIE9ubHkgdHJlYXQgdGhlCisgICAgICAgICA7OyBsaW5lIGFzIGluc2lk
ZSBhIGJsb2NrIHF1b3RlIGlmIGl0IGFjdHVhbGx5IHN0YXJ0cyB3aXRoCisgICAgICAgICA7OyBh
IGA+JyBtYXJrZXIuCisgICAgICAgICAoaW4tYnEgKGFuZCAodHJlZXNpdC1wYXJlbnQtdW50aWwg
bm9kZSAiXFxgYmxvY2tfcXVvdGVcXCciKQorICAgICAgICAgICAgICAgICAgICAgKHNhdmUtZXhj
dXJzaW9uCisgICAgICAgICAgICAgICAgICAgICAgIChiZWdpbm5pbmctb2YtbGluZSkKKyAgICAg
ICAgICAgICAgICAgICAgICAgKGxvb2tpbmctYXQtcCAiWyBcdF0qPiIpKSkpCisgICAgICAgICAo
aXRlbSAobWFya2Rvd24tdHMtLWxpc3QtaXRlbS1hdC1wb2ludCkpKQorICAgIChjb25kCisgICAg
IChpdGVtCisgICAgICAobGV0KiAoKGNvbCAobWFya2Rvd24tdHMtLWxpc3QtaXRlbS10ZXh0LWNv
bHVtbiBpdGVtKSkKKyAgICAgICAgICAgICAoYnEtcHJlZml4ICh3aGVuIGluLWJxIChtYXJrZG93
bi10cy0tYmxvY2stcXVvdGUtcHJlZml4KSkpCisgICAgICAgICAgICAgOzsgYGNvbCcgaXMgdGhl
IGFic29sdXRlIGNvbHVtbiBvZiB0aGUgaXRlbSdzIHRleHQsCisgICAgICAgICAgICAgOzsgd2hp
Y2ggaW5zaWRlIGEgYmxvY2sgcXVvdGUgaW5jbHVkZXMgdGhlICI+ICIgcHJlZml4CisgICAgICAg
ICAgICAgOzsgd2lkdGguICBTaW5jZSB3ZSBpbnNlcnQgYGJxLXByZWZpeCcgc2VwYXJhdGVseSwg
d2UKKyAgICAgICAgICAgICA7OyBtdXN0IHN1YnRyYWN0IGl0cyBsZW5ndGggdG8gYXZvaWQgZG91
YmxpbmcgaXQuCisgICAgICAgICAgICAgKGluZGVudCAoLSBjb2wgKGxlbmd0aCAob3IgYnEtcHJl
Zml4ICIiKSkpKQorICAgICAgICAgICAgIDs7IFRoZSBjdXJyZW50IGxpbmUgaXMgImJsYW5rIiBp
ZiBpdCBjb250YWlucyBvbmx5CisgICAgICAgICAgICAgOzsgd2hpdGVzcGFjZSAob3IgcXVvdGUg
cHJlZml4ICsgd2hpdGVzcGFjZSkgYW5kIG5vCisgICAgICAgICAgICAgOzsgYWN0dWFsIHRleHQg
ZnJvbSBhIHByZXZpb3VzIFJFVCdzIGNvbnRpbnVhdGlvbiBpbmRlbnQuCisgICAgICAgICAgICAg
KGJsYW5rLWxpbmUtcCAoc2F2ZS1leGN1cnNpb24KKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgKGJlZ2lubmluZy1vZi1saW5lKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9v
a2luZy1hdC1wCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiXls+IFx0XSokIikpKQor
ICAgICAgICAgICAgIDs7IFBvaW50IGlzIGJlZm9yZSB0aGUgaXRlbSdzIHRleHQgKGF0IG9yIGJl
Zm9yZSB0aGUKKyAgICAgICAgICAgICA7OyBtYXJrZXIpLiAgQSBwbGFpbiBuZXdsaW5lIGlzIGFw
cHJvcHJpYXRlIGhlcmUsIGFkZGluZworICAgICAgICAgICAgIDs7IGNvbnRpbnVhdGlvbiBpbmRl
bnQgd291bGQgc2hpZnQgdGhlIGV4aXN0aW5nIGNvbnRlbnQKKyAgICAgICAgICAgICA7OyB0byB0
aGUgcmlnaHQuCisgICAgICAgICAgICAgKGJlZm9yZS10ZXh0LXAgKDw9IChjdXJyZW50LWNvbHVt
bikgY29sKSkpCisgICAgICAgIChjb25kCisgICAgICAgICAoYmxhbmstbGluZS1wCisgICAgICAg
ICAgOzsgVGhlIHVzZXIgcHJlc3NlZCBSRVQgb24gYW4gYWxyZWFkeS1ibGFuayBjb250aW51YXRp
b24KKyAgICAgICAgICA7OyBsaW5lLiAgSW5zdGVhZCBvZiBhZGRpbmcgeWV0IGFub3RoZXIgaW5k
ZW50ZWQgYmxhbmsKKyAgICAgICAgICA7OyBsaW5lLCByZW1vdmUgdGhlIGluZGVudGF0aW9uIGFu
ZCBpbnNlcnQgYSBwbGFpbgorICAgICAgICAgIDs7IG5ld2xpbmUuICBUaGlzIGRyb3BzIHBvaW50
IHRvIGNvbHVtbiAwLCB3aGljaCBpcyB0aGUKKyAgICAgICAgICA7OyBvbmx5IHdheSB0aGUgdHJl
ZS1zaXR0ZXIgbWFya2Rvd24gZ3JhbW1hciBlbmRzIGEgbGlzdDoKKyAgICAgICAgICA7OyBibGFu
ayBsaW5lcyBhbG9uZSBkbyBOT1QgZW5kIGEgbGlzdCwgb25seQorICAgICAgICAgIDs7IG5vbi1p
bmRlbnRlZCBjb250ZW50IGRvZXMuICBTbyB0aGlzIGdpdmVzIHRoZSB1c2VyIGEKKyAgICAgICAg
ICA7OyBuYXR1cmFsICJSRVQgUkVUIHRvIGV4aXQgdGhlIGxpc3QiIHdvcmtmbG93LgorICAgICAg
ICAgIChkZWxldGUtcmVnaW9uIChsaW5lLWJlZ2lubmluZy1wb3NpdGlvbikgKGxpbmUtZW5kLXBv
c2l0aW9uKSkKKyAgICAgICAgICAobmV3bGluZSkpCisgICAgICAgICAoYmVmb3JlLXRleHQtcAor
ICAgICAgICAgIDs7IFBvaW50IGlzIG9uIG9yIGJlZm9yZSB0aGUgbGlzdCBtYXJrZXI7IGp1c3Qg
aW5zZXJ0IGEKKyAgICAgICAgICA7OyBwbGFpbiBuZXdsaW5lIHNvIHRoZSBpdGVtIGlzIHB1c2hl
ZCBkb3duIHVuY2hhbmdlZC4KKyAgICAgICAgICAobmV3bGluZSkpCisgICAgICAgICAodAorICAg
ICAgICAgIChkZWxldGUtaG9yaXpvbnRhbC1zcGFjZSkKKyAgICAgICAgICAobmV3bGluZSkKKyAg
ICAgICAgICAod2hlbiBicS1wcmVmaXggKGluc2VydCBicS1wcmVmaXgpKQorICAgICAgICAgIChp
bnNlcnQgKG1ha2Utc3RyaW5nIGluZGVudCA/XHMpKSkpKSkKKyAgICAgKGluLWJxCisgICAgICAo
bGV0ICgoYnEtcHJlZml4IChtYXJrZG93bi10cy0tYmxvY2stcXVvdGUtcHJlZml4KSkKKyAgICAg
ICAgICAgIDs7IEEgbGluZSB3aXRoIG9ubHkgcXVvdGUgbWFya2VycyBhbmQgd2hpdGVzcGFjZSAo
ZS5nLiwKKyAgICAgICAgICAgIDs7ICI+ICIpIGlzICJibGFuayIgaW5zaWRlIHRoZSBxdW90ZS4g
IFJFVCBoZXJlIGV4aXRzIHRoZQorICAgICAgICAgICAgOzsgcXVvdGUsIHNhbWUgYXMgUkVUIG9u
IGEgYmxhbmsgY29udGludWF0aW9uIGxpbmUgZXhpdHMgYQorICAgICAgICAgICAgOzsgbGlzdDog
cmVtb3ZlIHRoZSBwcmVmaXggYW5kIGRyb3AgdG8gY29sdW1uIDAuCisgICAgICAgICAgICAoYmxh
bmstbGluZS1wIChzYXZlLWV4Y3Vyc2lvbgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIChi
ZWdpbm5pbmctb2YtbGluZSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9va2luZy1h
dC1wICJeWz4gXHRdKiQiKSkpKQorICAgICAgICAoaWYgYmxhbmstbGluZS1wCisgICAgICAgICAg
ICAocHJvZ24KKyAgICAgICAgICAgICAgKGRlbGV0ZS1yZWdpb24gKGxpbmUtYmVnaW5uaW5nLXBv
c2l0aW9uKSAobGluZS1lbmQtcG9zaXRpb24pKQorICAgICAgICAgICAgICAobmV3bGluZSkpCisg
ICAgICAgICAgKGRlbGV0ZS1ob3Jpem9udGFsLXNwYWNlKQorICAgICAgICAgIChuZXdsaW5lKQor
ICAgICAgICAgIChpbnNlcnQgYnEtcHJlZml4KSkpKQorICAgICA7OyBEZWZhdWx0OiBwbGFpbiBu
ZXdsaW5lLiAgVGhpcyBhbHNvIGhhbmRsZXMgZW1wdHkgbGlzdCBtYXJrZXJzCisgICAgIDs7IChl
LmcuLCAiLSAiIHdpdGggbm8gdGV4dCkgdGhhdCB0aGUgZ3JhbW1hciBwYXJzZXMgYXMgRVJST1IK
KyAgICAgOzsgbm9kZXMgcmF0aGVyIHRoYW4gbGlzdF9pdGVtIG5vZGVzLgorICAgICA7OworICAg
ICA7OyBXaGVuIHRoZSBjdXJyZW50IGxpbmUgaXMgYmxhbmsgKHdoaXRlc3BhY2Ugb25seSksIGl0
IGlzIGEKKyAgICAgOzsgY29udGludWF0aW9uLWluZGVudCBsaW5lIGxlZnQgYnkgYSBwcmV2aW91
cyBSRVQgdGhhdAorICAgICA7OyB0cmVlLXNpdHRlciBubyBsb25nZXIgY29uc2lkZXJzIHBhcnQg
b2YgYSBsaXN0X2l0ZW0uICBDbGVhcgorICAgICA7OyB0aGUgd2hpdGVzcGFjZSBzbyBubyB0cmFp
bGluZyBzcGFjZXMgcmVtYWluLCBhbmQgaW5zZXJ0IGEKKyAgICAgOzsgcGxhaW4gbmV3bGluZSBh
dCBjb2x1bW4gMCB0byBleGl0IHRoZSBsaXN0IGNvbnRleHQuCisgICAgICh0CisgICAgICAod2hl
biAoc2F2ZS1leGN1cnNpb24KKyAgICAgICAgICAgICAgKGJlZ2lubmluZy1vZi1saW5lKQorICAg
ICAgICAgICAgICAobG9va2luZy1hdC1wICJeWyBcdF0rJCIpKQorICAgICAgICAoZGVsZXRlLXJl
Z2lvbiAobGluZS1iZWdpbm5pbmctcG9zaXRpb24pIChsaW5lLWVuZC1wb3NpdGlvbikpKQorICAg
ICAgKG5ld2xpbmUpKSkpKQorCisoZGVmdW4gbWFya2Rvd24tdHMtaW5zZXJ0LWxpc3QtaXRlbSAo
KQorICAiSW5zZXJ0IGEgbmV3IGxpc3QgaXRlbSwgc3BsaXR0aW5nIHRleHQgYXQgcG9pbnQuCitU
ZXh0IGFmdGVyIHBvaW50IG1vdmVzIHRvIHRoZSBuZXcgaXRlbS4gIEF0IHRoZSBiZWdpbm5pbmcg
b2YgYSBsaW5lLAorYW4gZW1wdHkgaXRlbSBpcyBpbnNlcnRlZCBhYm92ZSBhbmQgdGhlIGN1cnJl
bnQgY29udGVudCBpcyBwdXNoZWQgZG93bi4KK0luc2lkZSBhIGJsb2NrIHF1b3RlLCB0aGUgbmV3
IGxpbmUgaW5jbHVkZXMgdGhlIHF1b3RlIHByZWZpeC4KK0ZvciBvcmRlcmVkIGxpc3RzLCB0aGUg
bnVtYmVyIGlzIGluY3JlbWVudGVkLgorV2hlbiBub3QgaW5zaWRlIGEgbGlzdCwgZmFsbCBiYWNr
IHRvIGBtYXJrZG93bi10cy1uZXdsaW5lJy4iCisgIChpbnRlcmFjdGl2ZSkKKyAgKGxldCogKChu
b2RlICh0cmVlc2l0LW5vZGUtYXQKKyAgICAgICAgICAgICAgICAoc2F2ZS1leGN1cnNpb24gKGJh
Y2stdG8taW5kZW50YXRpb24pIChwb2ludCkpCisgICAgICAgICAgICAgICAgJ21hcmtkb3duKSkK
KyAgICAgICAgIChpbi1icSAoYW5kICh0cmVlc2l0LXBhcmVudC11bnRpbCBub2RlICJcXGBibG9j
a19xdW90ZVxcJyIpCisgICAgICAgICAgICAgICAgICAgICAoc2F2ZS1leGN1cnNpb24KKyAgICAg
ICAgICAgICAgICAgICAgICAgKGJlZ2lubmluZy1vZi1saW5lKQorICAgICAgICAgICAgICAgICAg
ICAgICAobG9va2luZy1hdC1wICJbIFx0XSo+IikpKSkKKyAgICAgICAgIChicS1wcmVmaXggKHdo
ZW4gaW4tYnEgKG1hcmtkb3duLXRzLS1ibG9jay1xdW90ZS1wcmVmaXgpKSkKKyAgICAgICAgIChp
dGVtIChtYXJrZG93bi10cy0tbGlzdC1pdGVtLWF0LXBvaW50KSkpCisgICAgKGNvbmQKKyAgICAg
KChhbmQgaXRlbQorICAgICAgICAgICAob3IgKG5vdCBpbi1icSkKKyAgICAgICAgICAgICAgICg+
PSAobWFya2Rvd24tdHMtLWxpbmUtYmxvY2stcXVvdGUtZGVwdGgpCisgICAgICAgICAgICAgICAg
ICAgKG1hcmtkb3duLXRzLS1saW5lLWJsb2NrLXF1b3RlLWRlcHRoCisgICAgICAgICAgICAgICAg
ICAgICh0cmVlc2l0LW5vZGUtc3RhcnQgKHRyZWVzaXQtbm9kZS1jaGlsZCBpdGVtIDApKSkpKSkK
KyAgICAgIChsZXQqICgobmV3LW1hcmtlciAobWFya2Rvd24tdHMtLW5ldy1tYXJrZXItZm9yLWxp
bmUgaXRlbSkpCisgICAgICAgICAgICAgKGF0LWJvbCAoPD0gKGN1cnJlbnQtY29sdW1uKQorICAg
ICAgICAgICAgICAgICAgICAgICAgIChzYXZlLWV4Y3Vyc2lvbgorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgKGJhY2stdG8taW5kZW50YXRpb24pCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAoY3VycmVudC1jb2x1bW4pKSkpCisgICAgICAgICAgICAgKHRhaWwgKHdoZW4gKGFuZCAobm90
IGF0LWJvbCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChub3QgKGxvb2tpbmctYXQt
cCAiWyBcdF0qJCIpKSkKKyAgICAgICAgICAgICAgICAgICAgIChkZWxldGUtYW5kLWV4dHJhY3Qt
cmVnaW9uCisgICAgICAgICAgICAgICAgICAgICAgKHBvaW50KSAobGluZS1lbmQtcG9zaXRpb24p
KSkpKQorICAgICAgICAoaWYgYXQtYm9sCisgICAgICAgICAgICA7OyBBdCBCT0w6IGluc2VydCBl
bXB0eSBpdGVtIGFib3ZlLCBwdXNoIGN1cnJlbnQgbGluZSBkb3duLgorICAgICAgICAgICAgKHBy
b2duCisgICAgICAgICAgICAgIChiZWdpbm5pbmctb2YtbGluZSkKKyAgICAgICAgICAgICAgKHdo
ZW4gYnEtcHJlZml4IChpbnNlcnQgYnEtcHJlZml4KSkKKyAgICAgICAgICAgICAgKGluc2VydCBu
ZXctbWFya2VyICJcbiIpCisgICAgICAgICAgICAgIChiYWNrLXRvLWluZGVudGF0aW9uKSkKKyAg
ICAgICAgICA7OyBNaWQtbGluZSBvciBFT0w6IG5ldyBpdGVtIGJlbG93IHdpdGggdGFpbCB0ZXh0
LgorICAgICAgICAgIChkZWxldGUtaG9yaXpvbnRhbC1zcGFjZSkKKyAgICAgICAgICAobmV3bGlu
ZSkKKyAgICAgICAgICAod2hlbiBicS1wcmVmaXggKGluc2VydCBicS1wcmVmaXgpKQorICAgICAg
ICAgIChpbnNlcnQgbmV3LW1hcmtlcikKKyAgICAgICAgICAod2hlbiB0YWlsIChzYXZlLWV4Y3Vy
c2lvbiAoaW5zZXJ0IChzdHJpbmctdHJpbS1sZWZ0IHRhaWwpKSkpKSkpCisKKyAgICAgOzsgTm90
IGluIGEgbGlzdDogZmFsbCBiYWNrIHRvIG5ld2xpbmUgYmVoYXZpb3IuCisgICAgICh0IChtYXJr
ZG93bi10cy1uZXdsaW5lKSkpKSkKKworOzs7IEZpbGxpbmc6CisKKyhkZWZjb25zdCBtYXJrZG93
bi10cy0tZmlsbC11bmZpbGxhYmxlLWJsb2NrLXF1ZXJ5CisgICcoWyhmZW5jZWRfY29kZV9ibG9j
aykgKGluZGVudGVkX2NvZGVfYmxvY2spIChwaXBlX3RhYmxlKV0gQGJsb2NrKQorICAiVHJlZS1z
aXR0ZXIgcXVlcnkgbWF0Y2hpbmcgYmxvY2tzIHdoZXJlIGZpbGxpbmcgaXMgaW5oaWJpdGVkLiIp
CisKKyhkZWZ1biBtYXJrZG93bi10cy0tbGlzdC1pdGVtLXRleHQtY29sdW1uIChpdGVtKQorICAi
UmV0dXJuIHRoZSBjb2x1bW4gd2hlcmUgdGhlIHRleHQgb2YgbGlzdCBJVEVNIHN0YXJ0cy4KK1Ro
aXMgaXMgdGhlIGNvbHVtbiBvZiB0aGUgZmlyc3QgcGFyYWdyYXBoIG5vZGUgaW5zaWRlIElURU0s
IG9yCit0aGUgd2lkdGggb2YgdGhlIGxpc3QgbWFya2VyIGlmIG5vIHBhcmFncmFwaCBpcyBmb3Vu
ZC4iCisgIChsZXQgKChwYXJhZ3JhcGggKHRyZWVzaXQtc2VhcmNoLXN1YnRyZWUgaXRlbSAiXFxg
cGFyYWdyYXBoXFwnIikpKQorICAgIChpZiBwYXJhZ3JhcGgKKyAgICAgICAgKHNhdmUtZXhjdXJz
aW9uCisgICAgICAgICAgKGdvdG8tY2hhciAodHJlZXNpdC1ub2RlLXN0YXJ0IHBhcmFncmFwaCkp
CisgICAgICAgICAgKGN1cnJlbnQtY29sdW1uKSkKKyAgICAgIChsZXQgKChtYXJrZXIgKHRyZWVz
aXQtbm9kZS1jaGlsZCBpdGVtIDApKSkKKyAgICAgICAgKC0gKHRyZWVzaXQtbm9kZS1lbmQgbWFy
a2VyKQorICAgICAgICAgICAodHJlZXNpdC1ub2RlLXN0YXJ0IG1hcmtlcikpKSkpKQorCisoZGVm
dW4gbWFya2Rvd24tdHMtLWZpbGwtbGlzdC1pdGVtIChpdGVtIGp1c3RpZnkpCisgICJGaWxsIHRo
ZSBjb250ZW50cyBvZiBsaXN0IElURU0sIHByZXNlcnZpbmcgaXRzIGluZGVudGF0aW9uLgorTmFy
cm93cyB0byBJVEVNJ3Mgb3duIHBhcmFncmFwaCBjb250ZW50IChleGNsdWRpbmcgbmVzdGVkIGxp
c3RzKQorYW5kIHNldHMgYGZpbGwtcHJlZml4JyB0byBhbGlnbiBjb250aW51YXRpb24gbGluZXMg
d2l0aCB0aGUgc3RhcnQKK29mIHRoZSBpdGVtJ3MgdGV4dC4gIEpVU1RJRlkgaXMgYXMgaW4gYGZp
bGwtcGFyYWdyYXBoJy4iCisgIChsZXQqICgoZmlsbC1wcmVmaXggKG1ha2Utc3RyaW5nIChtYXJr
ZG93bi10cy0tbGlzdC1pdGVtLXRleHQtY29sdW1uIGl0ZW0pCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgID9ccykpCisgICAgICAgICA7OyBGaW5kIHRoZSBpdGVtJ3Mgb3duIHBh
cmFncmFwaCAoZmlyc3QgcGFyYWdyYXBoIGNoaWxkKS4KKyAgICAgICAgIDs7IElmIHRoZSBpdGVt
IGhhcyBuZXN0ZWQgbGlzdHMsIG5hcnJvdyB0byBqdXN0IHRoZQorICAgICAgICAgOzsgcGFyYWdy
YXBoIHNvIHdlIGRvbid0IG1lcmdlIG5lc3RlZCBpdGVtcy4KKyAgICAgICAgIChwYXJhICh0cmVl
c2l0LXNlYXJjaC1zdWJ0cmVlIGl0ZW0gIlxcYHBhcmFncmFwaFxcJyIgbmlsIG5pbCAxKSkKKyAg
ICAgICAgIChiZWcgKHRyZWVzaXQtbm9kZS1zdGFydCBpdGVtKSkKKyAgICAgICAgIChlbmQgKGlm
IHBhcmEKKyAgICAgICAgICAgICAgICAgICh0cmVlc2l0LW5vZGUtZW5kIHBhcmEpCisgICAgICAg
ICAgICAgICAgKHRyZWVzaXQtbm9kZS1lbmQgaXRlbSkpKQorICAgICAgICAgOzsgVXNlIGRlZmF1
bHQgcGFyYWdyYXBoIG1vdGlvbiBpbnNpZGUgdGhlIG5hcnJvd2VkIHJlZ2lvbgorICAgICAgICAg
Ozsgc28gdGhhdCB0aGUgaW5uZXIgYGZpbGwtcGFyYWdyYXBoJyBkb2VzIG5vdCByZS1lbnRlciBv
dXIKKyAgICAgICAgIDs7IGN1c3RvbSBwYXJhZ3JhcGgtZmluZGluZyBsb2dpYy4KKyAgICAgICAg
IChmaWxsLWZvcndhcmQtcGFyYWdyYXBoLWZ1bmN0aW9uICMnZm9yd2FyZC1wYXJhZ3JhcGgpKQor
ICAgIChzYXZlLXJlc3RyaWN0aW9uCisgICAgICAobmFycm93LXRvLXJlZ2lvbiBiZWcgZW5kKQor
ICAgICAgKGZpbGwtcGFyYWdyYXBoIGp1c3RpZnkpKQorICAgIDs7IFJldHVybiBub24tbmlsIHRv
IHNpZ25hbCB0aGF0IGZpbGxpbmcgaGFzIGJlZW4gaGFuZGxlZCwKKyAgICA7OyBhcyBwZXIgdGhl
IGNvbnRyYWN0IG9mIGBmaWxsLXBhcmFncmFwaC1mdW5jdGlvbicuCisgICAgdCkpCisKKyhkZWZ1
biBtYXJrZG93bi10cy0tYWRhcHRpdmUtZmlsbCAoKQorICAiUmV0dXJuIHRoZSBmaWxsIHByZWZp
eCBmb3IgdGhlIGN1cnJlbnQgbGluZSBpbiBNYXJrZG93bi4KK1doZW4gaW5zaWRlIGEgbGlzdCBp
dGVtLCByZXR1cm4gc3BhY2VzIG1hdGNoaW5nIHRoZSBjb2x1bW4gd2hlcmUKK3RoZSBpdGVtJ3Mg
dGV4dCBzdGFydHMuIgorICAoYW5kLWxldCogKChub2RlICh0cmVlc2l0LW5vZGUtYXQKKyAgICAg
ICAgICAgICAgICAgICAgKHNhdmUtZXhjdXJzaW9uIChiYWNrLXRvLWluZGVudGF0aW9uKSAocG9p
bnQpKQorICAgICAgICAgICAgICAgICAgICAnbWFya2Rvd24pKQorICAgICAgICAgICAgIChpdGVt
ICh0cmVlc2l0LXBhcmVudC11bnRpbCBub2RlICJcXGBsaXN0X2l0ZW1cXCciKSkpCisgICAgKG1h
a2Utc3RyaW5nIChtYXJrZG93bi10cy0tbGlzdC1pdGVtLXRleHQtY29sdW1uIGl0ZW0pID9ccykp
KQorCisoZGVmdW4gbWFya2Rvd24tdHMtLWZpbGwtZm9yd2FyZC1wYXJhZ3JhcGggKGFyZykKKyAg
Ik1vdmUgZm9yd2FyZCBieSBBUkcgcGFyYWdyYXBocywgcmVzcGVjdGluZyBNYXJrZG93biBzdHJ1
Y3R1cmUuCitMaXN0IGl0ZW1zIGFyZSB0cmVhdGVkIGFzIGluZGl2aWR1YWwgcGFyYWdyYXBocy4g
IEJsb2NrcyBtYXRjaGVkCitieSBgbWFya2Rvd24tdHMtLWZpbGwtdW5maWxsYWJsZS1ibG9jay1x
dWVyeScgYXJlIHNraXBwZWQ6IGJvdGgKK2ZvcndhcmQgYW5kIGJhY2t3YXJkIG1vdGlvbiBtb3Zl
IHRvIHRoZSBlbmQgb2YgdGhlIGJsb2NrLCBzbworYGZpbGwtcmVnaW9uJyBzZWVzIGEgemVyby1s
ZW5ndGggcmVnaW9uIGFuZCBsZWF2ZXMgdGhlIGJsb2NrCit1bmZpbGxlZC4iCisgIChsZXQgKChk
aXJlY3Rpb24gKGlmICg+IGFyZyAwKSAxIC0xKSkKKyAgICAgICAgKGNvdW50IChhYnMgYXJnKSkK
KyAgICAgICAgKG1vdmVkIDApKQorICAgIChkb3RpbWVzIChfIGNvdW50KQorICAgICAgOzsgRm9y
IGJhY2t3YXJkIG1vdGlvbiwgc2tpcCBiYWNrIG92ZXIgd2hpdGVzcGFjZSB0byBmaW5kCisgICAg
ICA7OyB0aGUgaXRlbSB3ZSBhcmUgbGVhdmluZywgbm90IHRoZSBuZXh0IG9uZS4KKyAgICAgIChs
ZXQqICgocG9zIChpZiAoPCBkaXJlY3Rpb24gMCkKKyAgICAgICAgICAgICAgICAgICAgICAoc2F2
ZS1leGN1cnNpb24KKyAgICAgICAgICAgICAgICAgICAgICAgIChza2lwLWNoYXJzLWJhY2t3YXJk
ICIgXHRcbiIpCisgICAgICAgICAgICAgICAgICAgICAgICAobWF4IChwb2ludC1taW4pICgxLSAo
cG9pbnQpKSkpCisgICAgICAgICAgICAgICAgICAgIChwb2ludCkpKQorICAgICAgICAgICAgIChi
bG9jayAoY2FyICh0cmVlc2l0LXF1ZXJ5LWNhcHR1cmUKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgKHRyZWVzaXQtYnVmZmVyLXJvb3Qtbm9kZSAnbWFya2Rvd24pCisgICAgICAgICAgICAgICAg
ICAgICAgICAgIG1hcmtkb3duLXRzLS1maWxsLXVuZmlsbGFibGUtYmxvY2stcXVlcnkKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgcG9zICgxKyBwb3MpKSkpCisgICAgICAgICAgICAgKGluZGVu
dGVkLXBvcyAoc2F2ZS1leGN1cnNpb24KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGdv
dG8tY2hhciBwb3MpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChiYWNrLXRvLWluZGVu
dGF0aW9uKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAocG9pbnQpKSkKKyAgICAgICAg
ICAgICAobm9kZSAodHJlZXNpdC1ub2RlLWF0IGluZGVudGVkLXBvcyAnbWFya2Rvd24pKQorICAg
ICAgICAgICAgIChpdGVtICh0cmVlc2l0LXBhcmVudC11bnRpbCBub2RlICJcXGBsaXN0X2l0ZW1c
XCciKSkpCisgICAgICAgIDs7IFdoZW4gbW92aW5nIGZvcndhcmQgZnJvbSB3aGl0ZXNwYWNlIGJl
dHdlZW4gbGlzdCBpdGVtcywKKyAgICAgICAgOzsgc2tpcCB0byB0aGUgbmV4dCBub24tYmxhbmsg
cG9zaXRpb24gYW5kIGNoZWNrIGFnYWluLgorICAgICAgICAod2hlbiAoYW5kIChub3QgaXRlbSkg
KG5vdCBibG9jaykgKD4gZGlyZWN0aW9uIDApKQorICAgICAgICAgIChsZXQgKChuZXh0LXBvcyAo
c2F2ZS1leGN1cnNpb24KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAoc2tpcC1jaGFycy1m
b3J3YXJkICIgXHRcbiIpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHBvaW50KSkpKQor
ICAgICAgICAgICAgKHNldHEgbm9kZSAodHJlZXNpdC1ub2RlLWF0IG5leHQtcG9zICdtYXJrZG93
bikpCisgICAgICAgICAgICAoc2V0cSBpdGVtICh0cmVlc2l0LXBhcmVudC11bnRpbCBub2RlICJc
XGBsaXN0X2l0ZW1cXCciKSkpKQorICAgICAgICAoY29uZAorICAgICAgICAgOzsgSW5zaWRlIGFu
IHVuZmlsbGFibGUgYmxvY2s6IHNraXAgb3ZlciBpdCBlbnRpcmVseS4KKyAgICAgICAgIChibG9j
aworICAgICAgICAgIChnb3RvLWNoYXIgKHRyZWVzaXQtbm9kZS1lbmQgKGNkciBibG9jaykpKQor
ICAgICAgICAgIChzZXRxIG1vdmVkICgxKyBtb3ZlZCkpKQorICAgICAgICAgOzsgSW5zaWRlIGEg
bGlzdCBpdGVtOiB0cmVhdCBhcyBwYXJhZ3JhcGggYm91bmRhcnkuCisgICAgICAgICAoaXRlbQor
ICAgICAgICAgIChpZiAoPiBkaXJlY3Rpb24gMCkKKyAgICAgICAgICAgICAgKGdvdG8tY2hhciAo
dHJlZXNpdC1ub2RlLWVuZCBpdGVtKSkKKyAgICAgICAgICAgIChnb3RvLWNoYXIgKHRyZWVzaXQt
bm9kZS1zdGFydCBpdGVtKSkpCisgICAgICAgICAgKHNldHEgbW92ZWQgKDErIG1vdmVkKSkpCisg
ICAgICAgICA7OyBEZWZhdWx0OiB1c2Ugc3RhbmRhcmQgcGFyYWdyYXBoIG1vdGlvbi4KKyAgICAg
ICAgICh0CisgICAgICAgICAgKGZvcndhcmQtcGFyYWdyYXBoIGRpcmVjdGlvbikKKyAgICAgICAg
ICAoc2V0cSBtb3ZlZCAoMSsgbW92ZWQpKSkpKSkKKyAgICA7OyBSZXR1cm4gdGhlIG51bWJlciBv
ZiBwYXJhZ3JhcGhzIGxlZnQgdG8gbW92ZSAoMCA9IGFsbCBkb25lKS4KKyAgICAoLSBjb3VudCBt
b3ZlZCkpKQorCisoZGVmdW4gbWFya2Rvd24tdHMtLWZpbGwtcGFyYWdyYXBoICgmb3B0aW9uYWwg
anVzdGlmeSkKKyAgIkZpbGwgdGhlIGN1cnJlbnQgcGFyYWdyYXBoLCByZXNwZWN0aW5nIE1hcmtk
b3duIGJsb2NrIHN0cnVjdHVyZS4KK1RoaXMgZnVuY3Rpb24gcHJldmVudHMgZmlsbGluZyBpbnNp
ZGUgYmxvY2tzIG1hdGNoZWQgYnkKK2BtYXJrZG93bi10cy0tZmlsbC11bmZpbGxhYmxlLWJsb2Nr
LXF1ZXJ5JywgYW5kIGZpbGxzIHdpdGhpbiBsaXN0CitpdGVtcyB3aXRob3V0IG1lcmdpbmcgYWRq
YWNlbnQgaXRlbXMuICBKVVNUSUZZIGlzIGFzIGluCitgZmlsbC1wYXJhZ3JhcGgnLiIKKyAgKGNv
bmQqCisgICA7OyBEb24ndCBmaWxsIGluc2lkZSB1bmZpbGxhYmxlIGJsb2Nrcy4gIFVzZSBhIHF1
ZXJ5IGFnYWluc3QgdGhlCisgICA7OyByb290IG5vZGUgYmVjYXVzZSBgdHJlZXNpdC1ub2RlLWF0
JyBtYXkgbm90IHJldHVybiBhIG5vZGUKKyAgIDs7IGluc2lkZSB0aGUgYmxvY2sgd2hlbiBwb2lu
dCBpcyBvbiBhbm9ueW1vdXMgKHVubmFtZWQpIHRleHQuCisgICAoKHRyZWVzaXQtcXVlcnktY2Fw
dHVyZQorICAgICAodHJlZXNpdC1idWZmZXItcm9vdC1ub2RlICdtYXJrZG93bikKKyAgICAgbWFy
a2Rvd24tdHMtLWZpbGwtdW5maWxsYWJsZS1ibG9jay1xdWVyeQorICAgICAocG9pbnQpIChtaW4g
KDErIChwb2ludCkpIChwb2ludC1tYXgpKSkKKyAgICB0KQorICAgOzsgRmlsbCB3aXRoaW4gdGhl
IGVuY2xvc2luZyBsaXN0IGl0ZW0uICBVc2UKKyAgIDs7IGBtYXJrZG93bi10cy0tbGlzdC1pdGVt
LWF0LXBvaW50JyB3aGljaCBoYW5kbGVzIGJsb2NrIHF1b3RlCisgICA7OyBtYXJrZXJzLiAgV2hl
biB0aGUgbGlzdCBpdGVtIGlzIGluc2lkZSBhIGJsb2NrIHF1b3RlLCBkZWxlZ2F0ZQorICAgOzsg
dG8gdGhlIGJsb2NrIHF1b3RlIGZpbGxlciB3aGljaCBoYW5kbGVzIGA+ICcgcHJlZml4ZXMgY29y
cmVjdGx5LgorICAgKChiaW5kLWFuZCogKGl0ZW0gKG1hcmtkb3duLXRzLS1saXN0LWl0ZW0tYXQt
cG9pbnQpKSkKKyAgICAoaWYgKHRyZWVzaXQtcGFyZW50LXVudGlsIGl0ZW0gIlxcYGJsb2NrX3F1
b3RlXFwnIikKKyAgICAgICAgKG1hcmtkb3duLXRzLS1maWxsLWJsb2NrLXF1b3RlIGp1c3RpZnkp
CisgICAgICAobWFya2Rvd24tdHMtLWZpbGwtbGlzdC1pdGVtIGl0ZW0ganVzdGlmeSkpKQorICAg
OzsgUG9pbnQgaXMgb24gYSBibGFuayBsaW5lIGJlZm9yZSBhIGxpc3QuICBJZiB0aGUgbmV4dAor
ICAgOzsgbm9uLXdoaXRlc3BhY2UgcG9zaXRpb24gZmFsbHMgaW5zaWRlIGEgbGlzdCBpdGVtLCBm
aWxsIHRoYXQgaXRlbS4KKyAgICgoc2F2ZS1leGN1cnNpb24KKyAgICAgIChiZWdpbm5pbmctb2Yt
bGluZSkKKyAgICAgIChsb29raW5nLWF0LXAgIlsgXHRdKiQiKSkKKyAgICAoYW5kLWxldCogKChu
ZXh0LXBvcyAoc2F2ZS1leGN1cnNpb24KKyAgICAgICAgICAgICAgICAgICAgICAgICAgIChza2lw
LWNoYXJzLWZvcndhcmQgIiBcdFxuIikKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIChwb2lu
dCkpKQorICAgICAgICAgICAgICAgKG5leHQtbm9kZSAodHJlZXNpdC1ub2RlLWF0IG5leHQtcG9z
ICdtYXJrZG93bikpCisgICAgICAgICAgICAgICAoaXRlbSAodHJlZXNpdC1wYXJlbnQtdW50aWwK
KyAgICAgICAgICAgICAgICAgICAgICBuZXh0LW5vZGUgIlxcYGxpc3RfaXRlbVxcJyIpKSkKKyAg
ICAgIChtYXJrZG93bi10cy0tZmlsbC1saXN0LWl0ZW0gaXRlbSBqdXN0aWZ5KSkpCisgICA7OyBG
aWxsIHdpdGhpbiBhIGJsb2NrIHF1b3RlLiAgTmFycm93IHRvIHRoZSBwYXJhZ3JhcGggbm9kZSBh
dAorICAgOzsgcG9pbnQncyBuZXN0aW5nIGxldmVsIHNvIGxpbmVzIHdpdGggZGlmZmVyZW50IGA+
ICcgZGVwdGhzCisgICA7OyBhcmUgbm90IG1lcmdlZC4KKyAgICgodHJlZXNpdC1wYXJlbnQtdW50
aWwKKyAgICAgKHRyZWVzaXQtbm9kZS1hdAorICAgICAgKHNhdmUtZXhjdXJzaW9uIChiYWNrLXRv
LWluZGVudGF0aW9uKSAocG9pbnQpKQorICAgICAgJ21hcmtkb3duKQorICAgICAiXFxgYmxvY2tf
cXVvdGVcXCciKQorICAgIChtYXJrZG93bi10cy0tZmlsbC1ibG9jay1xdW90ZSBqdXN0aWZ5KSkK
KyAgIDs7IEZpbGwgd2l0aGluIGFuIEhUTUwgY29tbWVudC4gIFRoZSBub2RlIHR5cGUgaXMgImh0
bWxfYmxvY2siCisgICA7OyBpbiBncmFtbWFyIHYwLjQueCBhbmQgImNvbW1lbnQiIGluIHNvbWUg
b3RoZXIgdmVyc2lvbnMuCisgICAoKGJpbmQtYW5kKiAoYmxvY2sgKGxldCAoKG4gKHRyZWVzaXQt
bm9kZS1hdCAocG9pbnQpICdtYXJrZG93bikpKQorICAgICAgICAgICAgICAgICAgICAgICAgKG9y
ICh0cmVlc2l0LXBhcmVudC11bnRpbAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuICJc
XGBcXCg/Omh0bWxfYmxvY2tcXHxjb21tZW50XFwpXFwnIikKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAoYW5kIChtZW1iZXIgKHRyZWVzaXQtbm9kZS10eXBlIG4pCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICcoImh0bWxfYmxvY2siICJjb21tZW50IikpCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuKSkpKSkKKyAgICAobWFya2Rvd24tdHMt
LWZpbGwtaHRtbC1jb21tZW50IGJsb2NrIGp1c3RpZnkpKQorICAgOzsgRGVmYXVsdDogbGV0IGZp
bGwtcGFyYWdyYXBoIGhhbmRsZSBpdC4KKyAgICh0IG5pbCkpKQorCisoZGVmdW4gbWFya2Rvd24t
dHMtLWZpbGwtaHRtbC1jb21tZW50IChub2RlIGp1c3RpZnkpCisgICJGaWxsIEhUTUwgY29tbWVu
dCBOT0RFLCBhbGlnbmluZyBjb250aW51YXRpb24gbGluZXMuCitSZXR1cm4gdCBpZiBOT0RFIGlz
IGEgY29tbWVudCBhbmQgd2FzIGZpbGxlZCwgbmlsIG90aGVyd2lzZS4KK0pVU1RJRlkgaXMgYXMg
aW4gYGZpbGwtcGFyYWdyYXBoJy4iCisgICh3aGVuIChzYXZlLWV4Y3Vyc2lvbgorICAgICAgICAg
IChnb3RvLWNoYXIgKHRyZWVzaXQtbm9kZS1zdGFydCBub2RlKSkKKyAgICAgICAgICAobG9va2lu
Zy1hdC1wICI8IS0tIikpCisgICAgKGxldCAoKGZpbGwtcHJlZml4IChzYXZlLWV4Y3Vyc2lvbgor
ICAgICAgICAgICAgICAgICAgICAgICAgIChnb3RvLWNoYXIgKHRyZWVzaXQtbm9kZS1zdGFydCBu
b2RlKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAobWFrZS1zdHJpbmcgKCsgKGN1cnJlbnQt
Y29sdW1uKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobGVuZ3Ro
ICI8IS0tICIpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/XHMpKSkK
KyAgICAgICAgICAoYWRhcHRpdmUtZmlsbC1mdW5jdGlvbiBuaWwpCisgICAgICAgICAgKGZpbGwt
Zm9yd2FyZC1wYXJhZ3JhcGgtZnVuY3Rpb24gIydmb3J3YXJkLXBhcmFncmFwaCkKKyAgICAgICAg
ICAoZmlsbC1wYXJhZ3JhcGgtZnVuY3Rpb24gbmlsKSkKKyAgICAgIChzYXZlLXJlc3RyaWN0aW9u
CisgICAgICAgIChuYXJyb3ctdG8tcmVnaW9uICh0cmVlc2l0LW5vZGUtc3RhcnQgbm9kZSkKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgKHRyZWVzaXQtbm9kZS1lbmQgbm9kZSkpCisgICAgICAg
IChmaWxsLXBhcmFncmFwaCBqdXN0aWZ5KSkKKyAgICAgIHQpKSkKKworKGRlZnVuIG1hcmtkb3du
LXRzLS1ibG9jay1xdW90ZS1wcmVmaXggKCkKKyAgIlJldHVybiB0aGUgYmxvY2sgcXVvdGUgcHJl
Zml4IHN0cmluZyBmcm9tIHRoZSBjdXJyZW50IGxpbmUuCitSZWFkIHRoZSBhY3R1YWwgYD4nIG1h
cmtlcnMgKHdpdGggd2hhdGV2ZXIgc3BhY2luZyB0aGUgdXNlciB3cm90ZSkKK2Zyb20gdGhlIGJl
Z2lubmluZyBvZiB0aGUgbGluZSBzbyB0aGF0IGZpbGwgcHJlc2VydmVzIHRoZSBleGlzdGluZwor
c3R5bGUgKGUuZy4sIGA+Pj4gJyBzdGF5cyBgPj4+ICcsIGA+ID4gPiAnIHN0YXlzIGA+ID4gPiAn
KS4iCisgIChzYXZlLWV4Y3Vyc2lvbgorICAgIChiZWdpbm5pbmctb2YtbGluZSkKKyAgICAoaWYg
KGxvb2tpbmctYXQgIlxcKFs+IFx0XSo+XFwpWyBcdF0qIikKKyAgICAgICAgKGNvbmNhdCAobWF0
Y2gtc3RyaW5nIDApKQorICAgICAgIj4gIikpKQorCisoZGVmdW4gbWFya2Rvd24tdHMtLWZpbGwt
YmxvY2stcXVvdGUgKGp1c3RpZnkpCisgICJGaWxsIHRoZSBwYXJhZ3JhcGggYXQgcG9pbnQgaW5z
aWRlIGEgYmxvY2sgcXVvdGUuCitGaW5kIHRoZSBwYXJhZ3JhcGggbm9kZSBhdCBwb2ludCB3aXRo
aW4gdGhlIGJsb2NrIHF1b3RlIGFuZCBmaWxsCitvbmx5IHRoYXQgcGFyYWdyYXBoLCBwcmVzZXJ2
aW5nIHRoZSBgPiAnIHByZWZpeC4gIFdoZW4gdGhlCitwYXJhZ3JhcGggaXMgaW5zaWRlIGEgbGlz
dCBpdGVtLCBhbGlnbiBjb250aW51YXRpb24gbGluZXMgd2l0aAordGhlIGl0ZW0ncyB0ZXh0IGNv
bHVtbi4gIEpVU1RJRlkgaXMgYXMgaW4gYGZpbGwtcGFyYWdyYXBoJy4iCisgIDs7IFNraXAgcGFz
dCBgPiAnIG1hcmtlcnMgYW5kIGFueSBsaXN0IG1hcmtlciB0byBsYW5kIGluc2lkZSB0aGUKKyAg
OzsgY29udGVudCwgd2hlcmUgdGhlIHBhcmFncmFwaCBub2RlIGxpdmVzLgorICAobGV0KiAoKGNv
bnRlbnQtcG9zIChzYXZlLWV4Y3Vyc2lvbgorICAgICAgICAgICAgICAgICAgICAgICAgKGJlZ2lu
bmluZy1vZi1saW5lKQorICAgICAgICAgICAgICAgICAgICAgICAgKHNraXAtY2hhcnMtZm9yd2Fy
ZCAiPiBcdCIpCisgICAgICAgICAgICAgICAgICAgICAgICA7OyBJZiB3ZSBsYW5kIG9uIGEgbGlz
dCBtYXJrZXIsIHNraXAgcGFzdCBpdC4KKyAgICAgICAgICAgICAgICAgICAgICAgICh3aGVuIChs
b29raW5nLWF0ICJbLSorXSBcXHxbMC05XStbLildXHMiKQorICAgICAgICAgICAgICAgICAgICAg
ICAgICAoZ290by1jaGFyIChtYXRjaC1lbmQgMCkpKQorICAgICAgICAgICAgICAgICAgICAgICAg
KG1pbiAoMSsgKHBvaW50KSkgKHBvaW50LW1heCkpKSkKKyAgICAgICAgIChub2RlICh0cmVlc2l0
LW5vZGUtYXQgY29udGVudC1wb3MgJ21hcmtkb3duKSkKKyAgICAgICAgIChwYXJhICh0cmVlc2l0
LXBhcmVudC11bnRpbAorICAgICAgICAgICAgICAgIG5vZGUgKGxhbWJkYSAobikKKyAgICAgICAg
ICAgICAgICAgICAgICAgKGVxdWFsICh0cmVlc2l0LW5vZGUtdHlwZSBuKSAicGFyYWdyYXBoIikp
KSkpCisgICAgKHdoZW4gcGFyYQorICAgICAgOzsgVGhlIGdyYW1tYXIgbWF5IGluY2x1ZGUgdHJh
aWxpbmcgYmxvY2tfY29udGludWF0aW9uIG5vZGVzCisgICAgICA7OyAoYmxhbmsgYD4gPicgbGlu
ZXMpIGFzIGNoaWxkcmVuIG9mIHRoZSBwYXJhZ3JhcGguICBVc2UgdGhlCisgICAgICA7OyBlbmQg
b2YgdGhlIGxhc3QgaW5saW5lIGNoaWxkIHNvIGZpbGwgZG9lcyBub3QgbWVyZ2UgYWNyb3NzCisg
ICAgICA7OyB3aGF0IHNob3VsZCBiZSBhIHBhcmFncmFwaCBib3VuZGFyeS4KKyAgICAgIChsZXQq
ICgobGFzdC1pbmxpbmUKKyAgICAgICAgICAgICAgKHNlcS1maW5kIChsYW1iZGEgKGNoaWxkKQor
ICAgICAgICAgICAgICAgICAgICAgICAgICAoZXF1YWwgKHRyZWVzaXQtbm9kZS10eXBlIGNoaWxk
KSAiaW5saW5lIikpCisgICAgICAgICAgICAgICAgICAgICAgICAocmV2ZXJzZSAodHJlZXNpdC1u
b2RlLWNoaWxkcmVuIHBhcmEpKSkpCisgICAgICAgICAgICAgKHBhcmEtZW5kIChpZiBsYXN0LWlu
bGluZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgKHRyZWVzaXQtbm9kZS1lbmQgbGFzdC1p
bmxpbmUpCisgICAgICAgICAgICAgICAgICAgICAgICAgKHRyZWVzaXQtbm9kZS1lbmQgcGFyYSkp
KQorICAgICAgICAgICAgIChicS1wcmVmaXggKG1hcmtkb3duLXRzLS1ibG9jay1xdW90ZS1wcmVm
aXgpKQorICAgICAgICAgICAgIDs7IFdoZW4gaW5zaWRlIGEgbGlzdCBpdGVtLCBleHRlbmQgdGhl
IHByZWZpeCB3aXRoIHNwYWNlcworICAgICAgICAgICAgIDs7IHNvIGNvbnRpbnVhdGlvbiBsaW5l
cyBhbGlnbiB3aXRoIHRoZSBpdGVtJ3MgdGV4dC4KKyAgICAgICAgICAgICAobGlzdC1pdGVtICh0
cmVlc2l0LXBhcmVudC11bnRpbCBwYXJhICJcXGBsaXN0X2l0ZW1cXCciKSkKKyAgICAgICAgICAg
ICAocHJlZml4IChpZiBsaXN0LWl0ZW0KKyAgICAgICAgICAgICAgICAgICAgICAgICAobGV0KiAo
KHRleHQtY29sIChtYXJrZG93bi10cy0tbGlzdC1pdGVtLXRleHQtY29sdW1uCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlzdC1pdGVtKSkKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgKGV4dHJhIChtYXggMCAoLSB0ZXh0LWNvbCAobGVuZ3RoIGJx
LXByZWZpeCkpKSkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAoY29uY2F0IGJxLXByZWZp
eCAobWFrZS1zdHJpbmcgZXh0cmEgP1xzKSkpCisgICAgICAgICAgICAgICAgICAgICAgIGJxLXBy
ZWZpeCkpCisgICAgICAgICAgICAgKGFkYXB0aXZlLWZpbGwtZnVuY3Rpb24gbmlsKQorICAgICAg
ICAgICAgIChmaWxsLWZvcndhcmQtcGFyYWdyYXBoLWZ1bmN0aW9uICMnZm9yd2FyZC1wYXJhZ3Jh
cGgpCisgICAgICAgICAgICAgKGZpbGwtcGFyYWdyYXBoLWZ1bmN0aW9uIG5pbCkpCisgICAgICAg
IChzYXZlLXJlc3RyaWN0aW9uCisgICAgICAgICAgOzsgTmFycm93IHRvIHRoZSBmdWxsIGxpbmVz
IG9mIHRoZSBwYXJhZ3JhcGggc28gdGhhdCB0aGUKKyAgICAgICAgICA7OyBgPiAnIG1hcmtlcnMg
YXJlIGluY2x1ZGVkIGluIHRoZSBmaWxsIHJlZ2lvbi4KKyAgICAgICAgICAobmFycm93LXRvLXJl
Z2lvbgorICAgICAgICAgICAoc2F2ZS1leGN1cnNpb24KKyAgICAgICAgICAgICAoZ290by1jaGFy
ICh0cmVlc2l0LW5vZGUtc3RhcnQgcGFyYSkpCisgICAgICAgICAgICAgKGJlZ2lubmluZy1vZi1s
aW5lKQorICAgICAgICAgICAgIChwb2ludCkpCisgICAgICAgICAgIHBhcmEtZW5kKQorICAgICAg
ICAgIChsZXQgKChmaWxsLXByZWZpeCBwcmVmaXgpKQorICAgICAgICAgICAgKGZpbGwtcGFyYWdy
YXBoIGp1c3RpZnkpKSkpKSkKKyAgdCkKKworOzs7IENvZGUgYmxvY2tzOgorCisoZGVmdmFyLWxv
Y2FsIG1hcmtkb3duLXRzLS1jb2RlLWJsb2NrLWxhbmd1YWdlcyBuaWwKKyAgIkFsaXN0IG1hcHBp
bmcgbGFuZ3VhZ2Ugbm9kZSBuYW1lcyB0byB0cyBsYW5ndWFnZS4KK0lmIGEgbGFuZ3VhZ2UgaXMg
bm90IGEgdHMgbGFuZ3VhZ2Ugb3IgaXMgbm90IG1hcHBlZCB0byBvbmUsIGl0IHdpbGwgYmUKK2lu
IGBtYXJrZG93bi10cy0tY29kZS1ibG9jay1ub24tdHMtbW9kZXMnLiIpCisKKyhkZWZ2YXItbG9j
YWwgbWFya2Rvd24tdHMtLWNvZGUtYmxvY2stbm9uLXRzLW1vZGVzIG5pbAorICAiQWxpc3QgbWFw
cGluZyBsYW5ndWFnZXMgdG8gbm9uLXRyZWUtc2l0dGVyIG1vZGVzIGZvciBjb2RlIGJsb2Nrcy4K
K1BvcHVsYXRlZCBieSBgbWFya2Rvd24tdHMtLWNvZGUtYmxvY2stdHMtbGFuZ3VhZ2UnIHRvIGlk
ZW50aWZ5IGEKK2NvZGUtYmxvY2sgbGFuZ3VhZ2UgbW9kZSB3aGljaCBpcyBub3QgYSB0cmVlLXNp
dHRlciBtb2RlIG9yIGZvciB3aGljaAordGhlIHRyZWUtc2l0dGVyIGdyYW1tYXIgaXMgdW5hdmFp
bGFibGUuIikKKworKGRlZnVuIG1hcmtkb3duLXRzLS1oYXJ2ZXN0LW1vZGUtdHJlZXNpdC1jb25m
aWd1cmF0aW9uIChtb2RlKQorICAiSGFydmVzdCB0cmVlLXNpdHRlciBjb25maWd1cmF0aW9uIGZy
b20gTU9ERS4KK1JldHVybiBhIHBsaXN0IHdpdGggdGhlIGZvbGxvd2luZyBrZXlzIGFuZCB2YWx1
ZXM6CiAKICAgICA6Zm9udC1sb2NrIChmcm9tIGB0cmVlc2l0LWZvbnQtbG9jay1zZXR0aW5ncycp
CiAgICAgOnNpbXBsZS1pbmRlbnQgKGZyb20gYHRyZWVzaXQtc2ltcGxlLWluZGVudC1ydWxlcycp
CiAgICAgOnJhbmdlIChmcm9tIGB0cmVlc2l0LXJhbmdlLXNldHRpbmdzJykiCiAgICh3aXRoLXRl
bXAtYnVmZmVyCi0gICAgKGZ1bmNhbGwgbW9kZSkKLSAgICAobGlzdCA6Zm9udC1sb2NrIHRyZWVz
aXQtZm9udC1sb2NrLXNldHRpbmdzCisgICAgKGRlbGF5LW1vZGUtaG9va3MgKGZ1bmNhbGwgbW9k
ZSkpCisgICAgKGxpc3QgOmxhbmd1YWdlICh0cmVlc2l0LWxhbmd1YWdlLWF0IChwb2ludC1taW4p
KQorICAgICAgICAgIDpmb250LWxvY2sgdHJlZXNpdC1mb250LWxvY2stc2V0dGluZ3MKICAgICAg
ICAgICA6c2ltcGxlLWluZGVudCB0cmVlc2l0LXNpbXBsZS1pbmRlbnQtcnVsZXMKICAgICAgICAg
ICA6cmFuZ2UgdHJlZXNpdC1yYW5nZS1zZXR0aW5ncykpKQogCi0oZGVmdW4gbWFya2Rvd24tdHMt
LWFkZC1jb25maWctZm9yLW1vZGUgKGxhbmd1YWdlIG1vZGUpCi0gICJBZGQgY29uZmlndXJhdGlv
bnMgZm9yIExBTkdVQUdFIGZyb20gTU9ERSB0byBjdXJyZW50IGJ1ZmZlci4KLQotQ29uZmlndXJh
dGlvbiBpbmNsdWRlcyBmb250LWxvY2sgYW5kIGluZGVudC4gIEZvciBmb250LWxvY2sgcnVsZXMs
IHVzZQotdGhlIHNhbWUgZmVhdHVyZXMgZW5hYmxlZCBpbiBNT0RFLiIKLSAgKGxldCAoKGNvbmZp
Z3MgKG1hcmtkb3duLXRzLS1oYXJ2ZXN0LXRyZWVzaXQtY29uZmlncyBtb2RlKSkpCi0gICAgKGln
bm9yZSBsYW5ndWFnZSkgOyBXZSBtaWdodCBtYWtlIHVzZSBvZiB0aGlzIGxhdGVyLgotICAgIChz
ZXRxIHRyZWVzaXQtZm9udC1sb2NrLXNldHRpbmdzCi0gICAgICAgICAgKGFwcGVuZCB0cmVlc2l0
LWZvbnQtbG9jay1zZXR0aW5ncwotICAgICAgICAgICAgICAgICAgOzsgR2V0IGFsbCB0aGUgZm9u
dC1sb2NrIHNldHRpbmdzLCBpbmNsdWRpbmcgb25lcyB0aGF0Ci0gICAgICAgICAgICAgICAgICA7
OyBkb24ndCBwZXJ0YWluIHRvIExBTkdVQUdFLiAgVGhpcyB3YXkgd2UgZ2V0IGpzZG9jCi0gICAg
ICAgICAgICAgICAgICA7OyBmcm9tIGpzLXRzLW1vZGUsIGZvciBleGFtcGxlLgotICAgICAgICAg
ICAgICAgICAgKHBsaXN0LWdldCBjb25maWdzIDpmb250LWxvY2spKSkKLSAgICAoc2V0cSB0cmVl
c2l0LXNpbXBsZS1pbmRlbnQtcnVsZXMKLSAgICAgICAgICAoYXBwZW5kIHRyZWVzaXQtc2ltcGxl
LWluZGVudC1ydWxlcwotICAgICAgICAgICAgICAgICAgOzsgU2ltaWxhcmx5LCBnZXQgYWxsIGlu
ZGVudCBydWxlcy4KLSAgICAgICAgICAgICAgICAgIChwbGlzdC1nZXQgY29uZmlncyA6c2ltcGxl
LWluZGVudCkpKQorKGRlZnVuIG1hcmtkb3duLXRzLS1jb25maWd1cmUtY3VycmVudC1idWZmZXIg
KGNvbmZpZ3VyYXRpb24pCisgICJBZGQgQ09ORklHVVJBVElPTiB0byB0aGUgY3VycmVudCBidWZm
ZXIuCitDT05GSUdVUkFUSU9OIGluY2x1ZGVzIGZvbnQtbG9jayBhbmQgaW5kZW50IHJ1bGVzLiAg
Rm9yIGZvbnQtbG9jayBydWxlcywKK3VzZSB0aGUgc2FtZSBmZWF0dXJlcyBlbmFibGVkIGluIE1P
REUuIgorICAoc2V0cSB0cmVlc2l0LWZvbnQtbG9jay1zZXR0aW5ncworICAgICAgICAoYXBwZW5k
IHRyZWVzaXQtZm9udC1sb2NrLXNldHRpbmdzCisgICAgICAgICAgICAgICAgOzsgR2V0IGFsbCB0
aGUgZm9udC1sb2NrIHNldHRpbmdzLCBpbmNsdWRpbmcgb25lcyB0aGF0CisgICAgICAgICAgICAg
ICAgOzsgZG9uJ3QgcGVydGFpbiB0byBNT0RFLiAgVGhpcyB3YXksIHdlIGdldCBqc2RvYworICAg
ICAgICAgICAgICAgIDs7IGZyb20ganMtdHMtbW9kZSwgZm9yIGV4YW1wbGUuCisgICAgICAgICAg
ICAgICAgKHBsaXN0LWdldCBjb25maWd1cmF0aW9uIDpmb250LWxvY2spKSkKKyAgKHNldHEgdHJl
ZXNpdC1zaW1wbGUtaW5kZW50LXJ1bGVzCisgICAgICAgIChhcHBlbmQgdHJlZXNpdC1zaW1wbGUt
aW5kZW50LXJ1bGVzCisgICAgICAgICAgICAgICAgOzsgU2ltaWxhcmx5LCBnZXQgYWxsIGluZGVu
dCBydWxlcy4KKyAgICAgICAgICAgICAgICAocGxpc3QtZ2V0IGNvbmZpZ3VyYXRpb24gOnNpbXBs
ZS1pbmRlbnQpKSkKICAgICAoc2V0cSB0cmVlc2l0LXJhbmdlLXNldHRpbmdzCiAgICAgICAgICAg
KGFwcGVuZCB0cmVlc2l0LXJhbmdlLXNldHRpbmdzCiAgICAgICAgICAgICAgICAgICA7OyBGaWx0
ZXIgb3V0IGZ1bmN0aW9uIHF1ZXJpZXMsIGJlY2F1c2UgdGhleSBhcmUKQEAgLTMwMiw1MiArMjM0
NCw0ODYgQEAgbWFya2Rvd24tdHMtLWFkZC1jb25maWctZm9yLW1vZGUKICAgICAgICAgICAgICAg
ICAgIDs7IENhc2UgaW4gcG9pbnQ6IGMtdHMtbW9kZSdzIHJhbmdlIHNldHRpbmcuCiAgICAgICAg
ICAgICAgICAgICAoc2VxLWZpbHRlciAobGFtYmRhIChzZXR0aW5nKQogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAobm90IChmdW5jdGlvbnAgKGNhciBzZXR0aW5nKSkpKQotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgKHBsaXN0LWdldCBjb25maWdzIDpyYW5nZSkpKSkKLSAg
ICAoc2V0cS1sb2NhbCBpbmRlbnQtbGluZS1mdW5jdGlvbiAjJ3RyZWVzaXQtaW5kZW50KQotICAg
IChzZXRxLWxvY2FsIGluZGVudC1yZWdpb24tZnVuY3Rpb24gIyd0cmVlc2l0LWluZGVudC1yZWdp
b24pKSkKLQotKGRlZnVuIG1hcmtkb3duLXRzLS1jb252ZXJ0LWNvZGUtYmxvY2stbGFuZ3VhZ2Ug
KG5vZGUpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAocGxpc3QtZ2V0IGNvbmZpZ3Vy
YXRpb24gOnJhbmdlKSkpKQorICAoc2V0cS1sb2NhbCBpbmRlbnQtbGluZS1mdW5jdGlvbiAjJ3Ry
ZWVzaXQtaW5kZW50KQorICAoc2V0cS1sb2NhbCBpbmRlbnQtcmVnaW9uLWZ1bmN0aW9uICMndHJl
ZXNpdC1pbmRlbnQtcmVnaW9uKSkKKworKGRlZnVuIG1hcmtkb3duLXRzLS1sYW5ndWFnZS1hdC1u
b2RlIChub2RlKQorICAiUmV0dXJuIHRoZSBsYW5ndWFnZSBzeW1ib2wgZm9yIGNvZGVfZmVuY2Vf
Y29udGVudCBOT0RFLiIKKyAgKHdoZW4tbGV0KiAoKHBhcmVudCAodHJlZXNpdC1ub2RlLXBhcmVu
dCBub2RlKSkKKyAgICAgICAgICAgICAgKGxhbmctbm9kZSAod2hlbiBwYXJlbnQKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICh0cmVlc2l0LXNlYXJjaC1zdWJ0cmVlIHBhcmVudCAiXFxgbGFu
Z3VhZ2VcXCciKSkpKQorICAgIChpbnRlcm4gKHRyZWVzaXQtbm9kZS10ZXh0IGxhbmctbm9kZSB0
KSkpKQorCisoZGVmdmFyLWxvY2FsIG1hcmtkb3duLXRzLS1ub24tdHMtZm9udGlmeS1jYWNoZSAo
bWFrZS1oYXNoLXRhYmxlIDp0ZXN0ICMnZXF1YWwpCisgICJDYWNoZSBmb3Igbm9uLXRyZWUtc2l0
dGVyIGNvZGUgYmxvY2sgZm9udGlmaWNhdGlvbi4KK0tleXMgYXJlIChMQU5HIC4gQ09OVEVOVC1I
QVNIKSBjb25zIGNlbGxzLCB2YWx1ZXMgYXJlIGxpc3RzIG9mCitcKE9GRlNFVC1TVEFSVCBPRkZT
RVQtRU5EIEZBQ0UpIHRyaXBsZXMuIikKKworKGRlZnZhci1sb2NhbCBtYXJrZG93bi10cy0tbm9u
LXRzLWZvbnRpZnktY2FjaGUtdGljayBuaWwKKyAgIkZvciBibHVudCBgYnVmZmVyLWNoYXJzLW1v
ZGlmaWVkLXRpY2snIGNhY2hlIGludmFsaWRhdGlvbi4iKQorCisoZGVmdW4gbWFya2Rvd24tdHMt
LWZvbnRpZnktbm9uLXRzLWNvZGUtYmxvY2sgKG5vZGUgb3ZlcnJpZGUgc3RhcnQgZW5kICZyZXN0
IF8pCisgICJGb250aWZ5IGNvZGVfZmVuY2VfY29udGVudCBOT0RFIHVzaW5nIGEgbm9uLXRyZWUt
c2l0dGVyIG1vZGUuCitBcHBseSB0aGUgY29kZS1ibG9jayBtb2RlJ3MgY29udmVudGlvbmFsIGZv
bnQtbG9jayBpbiBhIHRlbXBvcmFyeQorYnVmZmVyLiAgT1ZFUlJJREUsIFNUQVJULCBhbmQgRU5E
IGFyZSBwYXNzZWQgdGhyb3VnaCB0bworYHRyZWVzaXQtZm9udGlmeS13aXRoLW92ZXJyaWRlJy4K
KworQ2FjaGUgcmVzdWx0cyB0byBhdm9pZCBmb250aWZpY2F0aW9uIG9mIHVuY2hhbmdlZCBjb2Rl
IGJsb2Nrcy4KKworTk9ERSBzaG91bGQgYWxyZWFkeSBoYXZlIHBhc3NlZCB0aHJvdWdoCitgbWFy
a2Rvd24tdHMtLWNvZGUtYmxvY2stdHMtbGFuZ3VhZ2UnIHdoaWNoIG1heSBoYXZlIGNsYXNzaWZp
ZWQgdGhpcworbm9kZSBhcyBhIG5vbi10cyBtb2RlLiIKKyAgKHdoZW4tbGV0KiAoKGxhbmcgKG1h
cmtkb3duLXRzLS1sYW5ndWFnZS1hdC1ub2RlIG5vZGUpKQorICAgICAgICAgICAgICAobW9kZSAo
YWxpc3QtZ2V0IGxhbmcgbWFya2Rvd24tdHMtLWNvZGUtYmxvY2stbm9uLXRzLW1vZGVzKSkKKyAg
ICAgICAgICAgICAgKHRpY2sgKGJ1ZmZlci1jaGFycy1tb2RpZmllZC10aWNrKSkKKyAgICAgICAg
ICAgICAgKGJsb2NrLXN0YXJ0ICh0cmVlc2l0LW5vZGUtc3RhcnQgbm9kZSkpCisgICAgICAgICAg
ICAgIDs7IENhbm5vdCB1c2UgbWFya2VycyAnbWFya2Rvd24tdHMtY29kZS1iZWctbWFya2VyCisg
ICAgICAgICAgICAgIDs7ICdtYXJrZG93bi10cy1jb2RlLWVuZC1tYXJrZXIgdGhleSBhcmUgc2V0
IGFmdGVyIHRoaXMKKyAgICAgICAgICAgICAgOzsgZnVuY3Rpb24gcnVucy4KKyAgICAgICAgICAg
ICAgKG5vZGUtc3RhcnQgKHNhdmUtZXhjdXJzaW9uCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgKGdvdG8tY2hhciAodHJlZXNpdC1ub2RlLXN0YXJ0IG5vZGUpKQorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIChsaW5lLWJlZ2lubmluZy1wb3NpdGlvbikpKQorICAgICAgICAgICAgICAo
bm9kZS1lbmQgKHNhdmUtZXhjdXJzaW9uCisgICAgICAgICAgICAgICAgICAgICAgICAgIChnb3Rv
LWNoYXIgKHRyZWVzaXQtbm9kZS1lbmQgbm9kZSkpCisgICAgICAgICAgICAgICAgICAgICAgICAg
IChza2lwLWNoYXJzLWJhY2t3YXJkICIgXHQiKQorICAgICAgICAgICAgICAgICAgICAgICAgICAo
cG9pbnQpKSkpCisgICAgKHdoZW4gKD4gbm9kZS1lbmQgbm9kZS1zdGFydCkKKyAgICAgICh1bmxl
c3MgKGVxIHRpY2sgbWFya2Rvd24tdHMtLW5vbi10cy1mb250aWZ5LWNhY2hlLXRpY2spCisgICAg
ICAgIChjbHJoYXNoIG1hcmtkb3duLXRzLS1ub24tdHMtZm9udGlmeS1jYWNoZSkpCisgICAgICAo
bGV0KiAoKGNhY2hlLWtleSAoY29ucyBsYW5nIChzZWN1cmUtaGFzaAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgJ3NoYTI1NgorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgKGN1cnJlbnQtYnVmZmVyKSBub2RlLXN0YXJ0IG5vZGUtZW5kKSkpCisgICAgICAg
ICAgICAgKHByb3BzCisgICAgICAgICAgICAgIChvciAoZ2V0aGFzaCBjYWNoZS1rZXkKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgIG1hcmtkb3duLXRzLS1ub24tdHMtZm9udGlmeS1jYWNoZSkK
KyAgICAgICAgICAgICAgICAgIChsZXQgKChyZXN1bHQKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAobWFya2Rvd24tdHMtLWZvbnRpZnktbm9uLXRzLWNvbGxlY3QtZmFjZXMKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgbW9kZSBub2RlLXN0YXJ0IG5vZGUtZW5kKSkpCisgICAgICAgICAgICAg
ICAgICAgIChwdXRoYXNoIGNhY2hlLWtleSByZXN1bHQKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgbWFya2Rvd24tdHMtLW5vbi10cy1mb250aWZ5LWNhY2hlKQorICAgICAgICAgICAgICAg
ICAgICAoc2V0cSBtYXJrZG93bi10cy0tbm9uLXRzLWZvbnRpZnktY2FjaGUtdGljayB0aWNrKQor
ICAgICAgICAgICAgICAgICAgICByZXN1bHQpKSkpCisgICAgICAgIChkb2xpc3QgKHJhbmdlIHBy
b3BzKQorICAgICAgICAgICh0cmVlc2l0LWZvbnRpZnktd2l0aC1vdmVycmlkZQorICAgICAgICAg
ICAobnRoIDAgcmFuZ2UpCisgICAgICAgICAgIChudGggMSByYW5nZSkKKyAgICAgICAgICAgKG50
aCAyIHJhbmdlKQorICAgICAgICAgICBvdmVycmlkZSBzdGFydCBlbmQpKSkpKSkKKworKGRlZnVu
IG1hcmtkb3duLXRzLS1mb250aWZ5LW5vbi10cy1jb2xsZWN0LWZhY2VzIChtb2RlIGJlZyBlbmQp
CisgICJSdW4gTU9ERSBvbiB0aGUgQkVHLi5FTkQgcmVnaW9uJ3MgdGV4dCBhbmQgaGFydmVzdCBm
YWNlIHByb3BlcnRpZXMuCitSZXR1cm4gYSBsaXN0IG9mIChCVUYtQkVHIEJVRi1FTkQgRkFDRSkg
dHJpcGxlcyBpbiBiYXNlLWJ1ZmZlcgorY29vcmRpbmF0ZXMuCisKK0ZvciBub24tdHJlZS1zaXR0
ZXIgbW9kZXMgdXNlIGFuIGluZGlyZWN0IGJ1ZmZlciBuYXJyb3dlZCB0byBCRUcuLkVORDoKK3Jl
Z2V4L3N5bnRhY3RpYyBmb250LWxvY2sgaG9ub3JzIG5hcnJvd2luZyBhbmQgdGhlIGluZGlyZWN0
IGJ1ZmZlcgorc2hhcmVzIHRleHQgd2l0aCB0aGUgYmFzZSwgc28gdGhpcyBpcyBsZXNzIGV4cGVu
c2l2ZSBhbmQgY29weS1mcmVlLgorCitGb3IgdHMgbW9kZXMgaW4gYG1hcmtkb3duLXRzLWNvZGUt
YmxvY2stZm9yY2UtY29udmVudGlvbmFsLW1vZGVzJywgZmFsbAorYmFjayB0byBhIHRlbXAgYnVm
ZmVyLiAgVHJlZS1zaXR0ZXIgcGFyc2VycyBpZ25vcmUgaW5kaXJlY3QtYnVmZmVyCituYXJyb3dp
bmcgYW5kIHBhcnNlIHRoZSBmdWxsIGJhc2UtYnVmZmVyIHRleHQ7IHRoZSBpbm5lciBjb250ZW50
IG9mIGEKK2ZlbmNlZCBjb2RlIGJsb2NrIGlzIGp1c3Qgb3BhcXVlIHRleHQgaW5zaWRlIGEgYGNv
ZGVfZmVuY2VfY29udGVudCcKK25vZGUsIG5ldmVyIHJlLXBhcnNlZCBhcyBhIGZyZXNoIGRvY3Vt
ZW50LiAgQSB0ZW1wIGJ1ZmZlciB3aXRoIGEgZnJlc2gKK3BhcnNlciBzZWVzIHRoZSBpbm5lciBj
b250ZW50IGFzIGEgc3RhbmRhbG9uZSBtYXJrZG93biBkb2N1bWVudCwgd2hpY2gKK2lzIHdoYXQg
d2Ugd2FudC4iCisgIChjb25kICgobWVtcSBtb2RlIG1hcmtkb3duLXRzLWNvZGUtYmxvY2stZm9y
Y2UtY29udmVudGlvbmFsLW1vZGVzKQorICAgICAgICAgKGxldCAoKGNvbnRlbnQgKGJ1ZmZlci1z
dWJzdHJpbmctbm8tcHJvcGVydGllcyBiZWcgZW5kKSkKKyAgICAgICAgICAgICAgIHJlcykKKyAg
ICAgICAgICAgKHdpdGgtdGVtcC1idWZmZXIKKyAgICAgICAgICAgICAoaW5zZXJ0IGNvbnRlbnQp
CisgICAgICAgICAgICAgKGRlbGF5LW1vZGUtaG9va3MKKyAgICAgICAgICAgICAgIChsZXQgKCht
YXJrZG93bi10cy0tc2V0LXVwLWlubGluZSB0KSkKKyAgICAgICAgICAgICAgICAgKG1hcmtkb3du
LXRzLW1vZGUpKSkKKyAgICAgICAgICAgICAoZm9udC1sb2NrLWVuc3VyZSkKKyAgICAgICAgICAg
ICAobGV0ICgocG9zIChwb2ludC1taW4pKSkKKyAgICAgICAgICAgICAgICh3aGlsZSAoPCBwb3Mg
KHBvaW50LW1heCkpCisgICAgICAgICAgICAgICAgIChsZXQgKChuZXh0IChuZXh0LXNpbmdsZS1w
cm9wZXJ0eS1jaGFuZ2UKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvcyAnZmFjZSBu
aWwgKHBvaW50LW1heCkpKQorICAgICAgICAgICAgICAgICAgICAgICAoZmFjZSAoZ2V0LXRleHQt
cHJvcGVydHkgcG9zICdmYWNlKSkpCisgICAgICAgICAgICAgICAgICAgKHdoZW4gZmFjZQorICAg
ICAgICAgICAgICAgICAgICAgOzsgVHJhbnNsYXRlIHRlbXAtYnVmZmVyIG9mZnNldHMgYmFjayB0
byBiYXNlLWJ1ZmZlcgorICAgICAgICAgICAgICAgICAgICAgOzsgcG9zaXRpb25zOiB0ZW1wIGBw
b2ludC1taW4nIGNvcnJlc3BvbmRzIHRvIEJFRy4KKyAgICAgICAgICAgICAgICAgICAgIChwdXNo
IChsaXN0ICgrIGJlZyAoMS0gcG9zKSkgKCsgYmVnICgxLSBuZXh0KSkgZmFjZSkKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHJlcykpCisgICAgICAgICAgICAgICAgICAgKHNldHEgcG9zIG5l
eHQpKSkpKQorICAgICAgICAgICAobnJldmVyc2UgcmVzKSkpCisgICAgICAgICh0CisgICAgICAg
ICAobGV0ICgoaW5kaXJlY3QtYnVmZmVyIChtYWtlLWluZGlyZWN0LWJ1ZmZlcgorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgKGN1cnJlbnQtYnVmZmVyKQorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgKGdlbmVyYXRlLW5ldy1idWZmZXItbmFtZSAoYnVmZmVyLW5hbWUp
KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmlsICdpbmhpYml0LWJ1ZmZlci1o
b29rcykpCisgICAgICAgICAgICAgICByZXMpCisgICAgICAgICAgICh1bndpbmQtcHJvdGVjdAor
ICAgICAgICAgICAgICAgKHdpdGgtY3VycmVudC1idWZmZXIgaW5kaXJlY3QtYnVmZmVyCisgICAg
ICAgICAgICAgICAgIChkZWxheS1tb2RlLWhvb2tzIChmdW5jYWxsIG1vZGUpKQorICAgICAgICAg
ICAgICAgICAobmFycm93LXRvLXJlZ2lvbiBiZWcgZW5kKQorICAgICAgICAgICAgICAgICAoZm9u
dC1sb2NrLWVuc3VyZSkKKyAgICAgICAgICAgICAgICAgKGxldCAoKHBvcyAocG9pbnQtbWluKSkp
CisgICAgICAgICAgICAgICAgICAgKHdoaWxlICg8IHBvcyAocG9pbnQtbWF4KSkKKyAgICAgICAg
ICAgICAgICAgICAgIChsZXQgKChuZXh0IChuZXh0LXNpbmdsZS1wcm9wZXJ0eS1jaGFuZ2UKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwb3MgJ2ZhY2UgbmlsIChwb2ludC1tYXgp
KSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIChmYWNlIChnZXQtdGV4dC1wcm9wZXJ0eSBw
b3MgJ2ZhY2UpKSkKKyAgICAgICAgICAgICAgICAgICAgICAgKHdoZW4gZmFjZQorICAgICAgICAg
ICAgICAgICAgICAgICAgIChwdXNoIChsaXN0IHBvcyBuZXh0IGZhY2UpIHJlcykpCisgICAgICAg
ICAgICAgICAgICAgICAgIChzZXRxIHBvcyBuZXh0KSkpKSkKKyAgICAgICAgICAgICAoa2lsbC1i
dWZmZXIgaW5kaXJlY3QtYnVmZmVyKSkKKyAgICAgICAgICAgKG5yZXZlcnNlIHJlcykpKSkpCisK
KyhkZWZ1biBtYXJrZG93bi10cy0tY29kZS1ibG9jay1sYW5ndWFnZS1tb2RlIChsYW5nKQorICAi
Q29tcHV0ZSBhbmQgY2FjaGUgYSBtb2RlIHN5bWJvbCBmcm9tIExBTkcsIGEgc3ltYm9sLgorQ29u
c3VsdCB0aGUgYG1hcmtkb3duLXRzLWNvZGUtYmxvY2stbWFwJyBjYWNoZSwgb3IgY29uc3VsdAor
YHRyZWVzaXQtbWFqb3ItbW9kZS1yZW1hcC1hbGlzdCcgYW5kIGBtYWpvci1tb2RlLXJlbWFwLWFs
aXN0Jywgb3IgYnJ1dGUKK2ZvcmNlIG1vZGUgcHJvYmUuICBSZXR1cm4gYSB2YWxpZCBtb2RlIHN5
bWJvbCBvciBuaWwuIgorICAoaWYtbGV0KiAoKG1hcHBlZC1tb2RlIChhbGlzdC1nZXQgbGFuZyBt
YXJrZG93bi10cy1jb2RlLWJsb2NrLW1vZGVzKSkpCisgICAgICBtYXBwZWQtbW9kZQorICAgIChs
ZXQqICgobGFuZy1zdHJpbmcgKHN5bWJvbC1uYW1lIGxhbmcpKQorICAgICAgICAgICAobGFuZy1t
b2RlIChjb25jYXQgbGFuZy1zdHJpbmcgIi1tb2RlIikpCisgICAgICAgICAgIChtb2RlKSkKKyAg
ICAgIChpZiAoc2V0cSBtb2RlIChhbGlzdC1nZXQgbGFuZy1tb2RlIHRyZWVzaXQtbWFqb3ItbW9k
ZS1yZW1hcC1hbGlzdCkpCisgICAgICAgICAgbW9kZQorICAgICAgICAoaWYgKHNldHEgbW9kZSAo
YWxpc3QtZ2V0IGxhbmctbW9kZSBtYWpvci1tb2RlLXJlbWFwLWFsaXN0KSkKKyAgICAgICAgICAg
IG1vZGUKKyAgICAgICAgICAoY2F0Y2ggOm1vZGUKKyAgICAgICAgICAgIChkb2xpc3QgKG1vZGUK
KyAgICAgICAgICAgICAgICAgICAgIChsaXN0CisgICAgICAgICAgICAgICAgICAgICAgOzsgVHJ5
IGEgdHJlZXNpdCBtb2RlIHVzaW5nIHRoZSByYXcgc3RyaW5nLgorICAgICAgICAgICAgICAgICAg
ICAgIChjb25jYXQgbGFuZy1zdHJpbmcgIi10cy1tb2RlIikKKyAgICAgICAgICAgICAgICAgICAg
ICA7OyBUcnkgYSBjb252ZW50aW9uYWwgbW9kZSB1c2luZyB0aGUgcmF3IHN0cmluZy4KKyAgICAg
ICAgICAgICAgICAgICAgICBsYW5nLW1vZGUKKyAgICAgICAgICAgICAgICAgICAgICA7OyBUcnkg
YSB0cmVlc2l0IG1vZGUgdXNpbmcgdGhlIGRvd25jYXNlZCBzdHJpbmcuCisgICAgICAgICAgICAg
ICAgICAgICAgKGNvbmNhdCAoZG93bmNhc2UgbGFuZy1zdHJpbmcpICItdHMtbW9kZSIpCisgICAg
ICAgICAgICAgICAgICAgICAgOzsgVHJ5IGEgY29udmVudGlvbmFsIG1vZGUgdXNpbmcgdGhlIGRv
d25jYXNlZCBzdHJpbmcuCisgICAgICAgICAgICAgICAgICAgICAgKGNvbmNhdCAoZG93bmNhc2Ug
bGFuZy1zdHJpbmcpICItbW9kZSIpKSkKKyAgICAgICAgICAgICAgKHNldHEgbW9kZSAoaW50ZXJu
IG1vZGUpKQorICAgICAgICAgICAgICAod2hlbiAoZmJvdW5kcCBtb2RlKQorICAgICAgICAgICAg
ICAgIChwdXNoIChjb25zIGxhbmcgbW9kZSkgbWFya2Rvd24tdHMtY29kZS1ibG9jay1tb2RlcykK
KyAgICAgICAgICAgICAgICAodGhyb3cgOm1vZGUgbW9kZSkpKSkpKSkpKQorCisoZGVmdW4gbWFy
a2Rvd24tdHMtLWNvZGUtYmxvY2stdHMtbGFuZ3VhZ2UgKG5vZGUpCiAgICJDb252ZXJ0IE5PREUg
dG8gYSBsYW5ndWFnZSBmb3IgdGhlIGNvZGUgYmxvY2suIgotICAobGV0KiAoKGxhbmctc3RyaW5n
IChhbGlzdC1nZXQgKHRyZWVzaXQtbm9kZS10ZXh0IG5vZGUpCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBtYXJrZG93bi10cy0tY29kZS1ibG9jay1sYW5ndWFnZS1tYXAKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICh0cmVlc2l0LW5vZGUtdGV4dCBub2RlKSBuaWwg
IydlcXVhbCkpCi0gICAgICAgICAobGFuZyAoaWYgKHN5bWJvbHAgbGFuZy1zdHJpbmcpCi0gICAg
ICAgICAgICAgICAgICAgbGFuZy1zdHJpbmcKLSAgICAgICAgICAgICAgICAgKGludGVybiAoZG93
bmNhc2UgbGFuZy1zdHJpbmcpKSkpKQotICAgIDs7IEZJWE1FOiBLaW5kIG9mIGEgaGFjayBoZXJl
OiB3ZSB1c2UgdGhpcyBmdW5jdGlvbiBhcyBhIGhvb2sgZm9yCi0gICAgOzsgbG9hZGluZyB1cCBj
b25maWdzIGZvciB0aGUgbGFuZ3VhZ2UgZm9yIHRoZSBjb2RlIGJsb2NrIG9uLWRlbWFuZC4KLSAg
ICAobGV0ICgobW9kZSAoYWxpc3QtZ2V0IGxhbmcgbWFya2Rvd24tdHMtY29kZS1ibG9jay1zb3Vy
Y2UtbW9kZS1tYXApKSkKLSAgICAgIDs7IElmIHRoZXJlJ3Mgbm8gc3VwcG9ydGVkIG1vZGUgZm9y
IHRoZSBsYW5ndWFnZSwgcmV0dXJuIG5pbCwKLSAgICAgIDs7IHdoaWNoIG1ha2VzIEVtYWNzIHNr
aXAgdGhlIGNvZGUgYmxvY2suCi0gICAgICAoaWYgKG5vdCAoYW5kIG1vZGUgKGZib3VuZHAgbW9k
ZSkpKQotICAgICAgICAgIG5pbAotICAgICAgICA7OyBJZiB0aGVyZSdzIGEgbWFqb3IgbW9kZSBm
b3IgdGhlIGxhbmd1YWdlLCBzZXQgdXAgdGhlIGNvbmZpZwotICAgICAgICA7OyBhbmQgcmV0dXJu
IHRoZSBsYW5ndWFnZS4KLSAgICAgICAgKHdoZW4gKG5vdCAobWVtcSBsYW5nIG1hcmtkb3duLXRz
LS1jb25maWd1cmVkLWxhbmd1YWdlcykpCi0gICAgICAgICAgKG1hcmtkb3duLXRzLS1hZGQtY29u
ZmlnLWZvci1tb2RlIGxhbmcgbW9kZSkKLSAgICAgICAgICAocHVzaCBsYW5nIG1hcmtkb3duLXRz
LS1jb25maWd1cmVkLWxhbmd1YWdlcykpCi0gICAgICAgIGxhbmcpKSkpCisgIChsZXQqICgobGFu
ZyAoaW50ZXJuICh0cmVlc2l0LW5vZGUtdGV4dCBub2RlKSkpCisgICAgICAgICAobW9kZSAobWFy
a2Rvd24tdHMtLWNvZGUtYmxvY2stbGFuZ3VhZ2UtbW9kZSBsYW5nKSkKKyAgICAgICAgICh0cy1s
YW5ndWFnZSAoYWxpc3QtZ2V0IGxhbmcgbWFya2Rvd24tdHMtLWNvZGUtYmxvY2stbGFuZ3VhZ2Vz
KSkKKyAgICAgICAgIChub24tdHMtbGFuZ3VhZ2UgKGFsaXN0LWdldCBsYW5nIG1hcmtkb3duLXRz
LS1jb2RlLWJsb2NrLW5vbi10cy1tb2RlcykpKQorICAgIChjb25kCisgICAgICgoZmJvdW5kcCBt
b2RlKQorICAgICAgKGNvbmQKKyAgICAgICA7OyBSZXR1cm4ga25vd24gdHJlZXNpdCBsYW5ndWFn
ZS4KKyAgICAgICAodHMtbGFuZ3VhZ2UgdHMtbGFuZ3VhZ2UpCisgICAgICAgOzsgUmV0dXJuIG5p
bCBmb3Iga25vd24gbm9uLXRyZWVzaXQgbGFuZ3VhZ2UgZm9yIGZvbnQtbG9jay4KKyAgICAgICAo
bm9uLXRzLWxhbmd1YWdlIG5pbCkKKyAgICAgICA7OyBNYXJrZG93biBpdHNlbGYgbmVlZHMgdHdv
IHBhcnNlcnMgKG1hcmtkb3duICsKKyAgICAgICA7OyBtYXJrZG93bi1pbmxpbmUpLCBzbyB0cmVl
c2l0IGVtYmVkZGluZyAod2hpY2ggY3JlYXRlcyBvbmx5CisgICAgICAgOzsgb25lKSBjYW5ub3Qg
ZnVsbHkgZm9udGlmeSBpdC4gIFJvdXRlIHRocm91Z2ggdGhlIG5vbi10cworICAgICAgIDs7IHBh
dGggc28gdGhlIHRlbXAgYnVmZmVyIHJ1bnMgdGhlIGZ1bGwgbW9kZSB3aXRoIGJvdGgKKyAgICAg
ICA7OyBwYXJzZXJzLgorICAgICAgICgoZXEgbW9kZSAnbWFya2Rvd24tdHMtbW9kZSkKKyAgICAg
ICAgKHVubGVzcyAoYXNzcSBsYW5nIG1hcmtkb3duLXRzLS1jb2RlLWJsb2NrLW5vbi10cy1tb2Rl
cykKKyAgICAgICAgICAocHVzaCAoY29ucyBsYW5nIG1vZGUpIG1hcmtkb3duLXRzLS1jb2RlLWJs
b2NrLW5vbi10cy1tb2RlcykpCisgICAgICAgIG5pbCkKKyAgICAgICAodAorICAgICAgICAobGV0
KiAoKGNvbmZpZ3VyYXRpb24gKG1hcmtkb3duLXRzLS1oYXJ2ZXN0LW1vZGUtdHJlZXNpdC1jb25m
aWd1cmF0aW9uCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbW9kZSkpCisgICAgICAg
ICAgICAgICAodHMtbGFuZ3VhZ2UgKHBsaXN0LWdldCBjb25maWd1cmF0aW9uIDpsYW5ndWFnZSkp
KQorICAgICAgICAgIChjb25kCisgICAgICAgICAgICgoYW5kIHRzLWxhbmd1YWdlCisgICAgICAg
ICAgICAgICAgIChwbGlzdC1nZXQgY29uZmlndXJhdGlvbiA6Zm9udC1sb2NrKSkKKyAgICAgICAg
ICAgIChtYXJrZG93bi10cy0tY29uZmlndXJlLWN1cnJlbnQtYnVmZmVyIGNvbmZpZ3VyYXRpb24p
CisgICAgICAgICAgICAodW5sZXNzIChhc3NxIGxhbmcgbWFya2Rvd24tdHMtLWNvZGUtYmxvY2st
bGFuZ3VhZ2VzKQorICAgICAgICAgICAgICAocHVzaCAoY29ucyBsYW5nIHRzLWxhbmd1YWdlKSBt
YXJrZG93bi10cy0tY29kZS1ibG9jay1sYW5ndWFnZXMpKQorICAgICAgICAgICAgdHMtbGFuZ3Vh
Z2UpCisgICAgICAgICAgIDs7IE90aGVyd2lzZSwgY2xhc3NpZnkgbW9kZSBhcyBub24tdHJlZS1z
aXR0ZXIuCisgICAgICAgICAgICh0CisgICAgICAgICAgICAodW5sZXNzIChhc3NxIGxhbmcgbWFy
a2Rvd24tdHMtLWNvZGUtYmxvY2stbm9uLXRzLW1vZGVzKQorICAgICAgICAgICAgICAocHVzaCAo
Y29ucyBsYW5nIG1vZGUpIG1hcmtkb3duLXRzLS1jb2RlLWJsb2NrLW5vbi10cy1tb2RlcykpCisg
ICAgICAgICAgICBuaWwpKSkpKSkKKyAgICAgKHQgbmlsKSkpKQorCis7OzsgQ29kZSBibG9jayBt
aW5vciBtb2RlIHN1cHBvcnQgYW5kIGNvZGUtYmxvY2sgY29udGV4dCBjb21tYW5kczoKKworKGRl
ZnZhciBtYXJrZG93bi10cy1jb2RlLWJsb2NrLWNvbW1hbmRzICcoaW5kZW50LWZvci10YWItY29t
bWFuZAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxlY3RyaWMt
bmV3bGluZS1hbmQtbWF5YmUtaW5kZW50CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBuZXdsaW5lCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBjb21tZW50LWR3aW0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGNvbW1lbnQtbGluZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgY29tbWVudC1vci11bmNvbW1lbnQtcmVnaW9uCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBtYXJrZG93bi10cy0tY29kZS1ibG9jay1maWxsLXBhcmFncmFwaAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvZy1maWxsLXJlaW5k
ZW50LWRlZnVuKQorICAiQ29tbWFuZHMgdG8gZXhlY3V0ZSBpbiBhIGNvZGUtYmxvY2sgY29udGV4
dC4KK1NlZSBgbWFya2Rvd24tdHMtLXJ1bi1jb21tYW5kLWluLWNvZGUtYmxvY2snLiIpCisKKyhk
ZWZ2YXIgbWFya2Rvd24tdHMtY29kZS1ibG9jay10aGluZy1jb21tYW5kcyAnKHhyZWYtZmluZC1k
ZWZpbml0aW9ucykKKyAgIkNvbW1hbmRzIHRoYXQgbmVlZCBhIFwidGhpbmdcIiBhdCBwb2ludCBp
biBhIGNvZGUtYmxvY2sgY29udGV4dC4KK1NlZSBgbWFya2Rvd24tdHMtLXJ1bi1jb21tYW5kLWlu
LWNvZGUtYmxvY2snLiIpCisKKyhkZWZ2YXIgbWFya2Rvd24tdHMtY29kZS1ibG9jay1yZWdpb24t
Y29tbWFuZHMgJyhjb21tZW50LW9yLXVuY29tbWVudC1yZWdpb24pCisgICJDb21tYW5kcyB0aGF0
IG5lZWQgYSByZWdpb24gaW4gYSBjb2RlLWJsb2NrIGNvbnRleHQuCitTZWUgYG1hcmtkb3duLXRz
LS1ydW4tY29tbWFuZC1pbi1jb2RlLWJsb2NrJy4iKQorCisoZGVmdW4gbWFya2Rvd24tdHMtLWVu
YWJsZS1jb2RlLWJsb2NrLW1vZGUgKCkKKyAgIkVuYWJsZSBgbWFya2Rvd24tdHMtY29kZS1ibG9j
ay1tb2RlJyB3aGVuIGlmIGEgZmVuY2VkIGNvZGUgYmxvY2suIgorICAobWFya2Rvd24tdHMtY29k
ZS1ibG9jay1tb2RlIChpZiAobWFya2Rvd24tdHMtY29kZS1ibG9jay1hdC1wKSAxIC0xKSkpCisK
Kzs7IE5PVEU6IERvIG5vdCBhZGQgdGhpcyBjb21tYW5kIHRvIGBtYXJrZG93bi10cy1jb2RlLWJs
b2NrLWNvbW1hbmRzJy4KKyhkZWZ1biBtYXJrZG93bi10cy0tY29kZS1ibG9jay1uZXdsaW5lICgm
b3B0aW9uYWwgYXJnIGludGVyYWN0aXZlKQorICAgIkluc2VydCBhIG5ld2xpbmUsIGFuZCBtb3Zl
IHRvIGxlZnQgbWFyZ2luIG9mIHRoZSBuZXcgbGluZS4KK1dpdGggcHJlZml4IGFyZ3VtZW50IEFS
RywgaW5zZXJ0IHRoYXQgbWFueSBuZXdsaW5lcy4KKworSWYgYGVsZWN0cmljLWluZGVudC1tb2Rl
JyBpcyBlbmFibGVkLCB0aGlzIGluZGVudHMgdGhlIGZpbmFsIG5ldyBsaW5lCit0aGF0IGl0IGFk
ZHMsIGFuZCByZWluZGVudHMgdGhlIHByZWNlZGluZyBsaW5lLiAgVG8ganVzdCBpbnNlcnQKK2Eg
bmV3bGluZSwgdXNlIFxcW2VsZWN0cmljLWluZGVudC1qdXN0LW5ld2xpbmVdLgorCitJZiBgYXV0
by1maWxsLW1vZGUnIGlzIGVuYWJsZWQsIHRoaXMgbWF5IGNhdXNlIGF1dG9tYXRpYyBsaW5lCiti
cmVha2luZyBvZiB0aGUgcHJlY2VkaW5nIGxpbmUuICBBIG5vbi1uaWwgQVJHIGluaGliaXRzIHRo
aXMuCisKK0lmIHZhcmlhYmxlIGB1c2UtaGFyZC1uZXdsaW5lcycgaXMgZW5hYmxlZCwgdGhlIG5l
d2xpbmUgaXMgbWFya2VkIHdpdGgKK3RoZSB0ZXh0LXByb3BlcnR5IGBoYXJkJy4KKworQSBub24t
bmlsIElOVEVSQUNUSVZFIGFyZ3VtZW50IG1lYW5zIHRvIHJ1biB0aGUgYHBvc3Qtc2VsZi1pbnNl
cnQtaG9vaycuIgorICAgKGludGVyYWN0aXZlICIqUFxucCIpCisgICAoaWYtbGV0KiAoKGJsb2Nr
LW1vZGUgKG1hcmtkb3duLXRzLWNvZGUtYmxvY2stbW9kZS1hdCkpCisgICAgICAgICAgICAgKChm
Ym91bmRwIGJsb2NrLW1vZGUpKSkKKyAgICAgICAobWFya2Rvd24tdHMtLXJ1bi1jb21tYW5kLWlu
LWNvZGUtYmxvY2sgYmxvY2stbW9kZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAjJ25ld2xpbmUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgYXJnCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGludGVyYWN0aXZlKSkpCisKKyhkZWZ1biBtYXJrZG93bi10cy0tY29kZS1ibG9j
ay1maWxsLXBhcmFncmFwaCAoJm9wdGlvbmFsIGp1c3RpZnkpCisgICJSZWZpbGwgb3IgcmVpbmRl
bnQgdGhlIG1hcmtkb3duIGNvbnRlbnQgdGhhdCBjb250YWlucyBwb2ludC4KK0lmIHRoZSBwb2lu
dCBpcyBpbiBhIHN0cmluZyBvciBhIGNvbW1lbnQsIGZpbGwgdGhlIHBhcmFncmFwaCB0aGF0Citj
b250YWlucyBwb2ludCBvciBmb2xsb3dzIHBvaW50LgorCitPdGhlcndpc2UsIHJlaW5kZW50IHRo
ZSBmdW5jdGlvbiBkZWZpbml0aW9uIHRoYXQgY29udGFpbnMgcG9pbnQgb3IKK2ZvbGxvd3MgcG9p
bnQuCisKK0lmIEpVU1RJRlkgaXMgbm9uLW5pbCAoaW50ZXJhY3RpdmVseSwgd2l0aCBwcmVmaXgg
YXJndW1lbnQpLCBqdXN0aWZ5IGFzCit3ZWxsLiIKKyAgKGludGVyYWN0aXZlICJQIikKKyAgKGNv
bmQgKChkZXJpdmVkLW1vZGUtcCAncHJvZy1tb2RlKQorICAgICAgICAgKGNhbGwtaW50ZXJhY3Rp
dmVseSAjJ3Byb2ctZmlsbC1yZWluZGVudC1kZWZ1biBqdXN0aWZ5KSkKKyAgICAgICAgKHQKKyAg
ICAgICAgIChjYWxsLWludGVyYWN0aXZlbHkgIydmaWxsLXBhcmFncmFwaCBqdXN0aWZ5KSkpKQor
Cis7OyBOT1RFOiBEbyBub3QgYWRkIHRoaXMgY29tbWFuZCB0byBgbWFya2Rvd24tdHMtY29kZS1i
bG9jay1jb21tYW5kcycuCisoZGVmdW4gbWFya2Rvd24tdHMtLWNvZGUtYmxvY2steHJlZi1maW5k
LWRlZmluaXRpb25zICgmcmVzdCBhcmdzKQorICAiSGVscGVyIGNvbW1hbmQgZm9yIGB4cmVmLWZp
bmQtZGVmaW5pdGlvbnMnIGluIGEgY29kZS1ibG9jayBjb250ZXh0LgorRmluZCB0aGluZyBhdCBw
b2ludC4KK0FkanVzdCB0aGUgcmVmZXJlbmNlcyBvbiB0aGUgeHJlZiBzdGFjayB0byB0aGUgYmFz
ZSBidWZmZXIuCitQYXNzIHRocm91Z2ggQVJHUyBpZiBub3QgaW4gYSBjb2RlIGJsb2NrIHdpdGgg
YW4gYXZhaWxhYmxlIG1vZGUuIgorICAoaW50ZXJhY3RpdmUpCisgIChpZi1sZXQqICgoYmxvY2st
bW9kZSAobWFya2Rvd24tdHMtY29kZS1ibG9jay1tb2RlLWF0KSkKKyAgICAgICAgICAgICgoZmJv
dW5kcCBibG9jay1tb2RlKSkpCisgICAgICAoY29uZGl0aW9uLWNhc2UgZXJyCisgICAgICAgICAg
KHVud2luZC1wcm90ZWN0CisgICAgICAgICAgICAgIChwcm9nbgorICAgICAgICAgICAgICAgIDs7
IFJlY29yZCBhIHBsYWNlaG9sZGVyIHhyZWYgbWFya2VyIGluIHRoZSBiYXNlIGJ1ZmZlci4gIFRo
aXMKKyAgICAgICAgICAgICAgICA7OyB3aWxsIGJlIHJldGFpbmVkIGlmIHRoZSBjb21tYW5kIHN1
Y2NlZWRzIHRvIHB1c2ggYSBtYXJrZXIgaW4KKyAgICAgICAgICAgICAgICA7OyB0aGUgaW5kaXJl
Y3QgYnVmZmVyIHdoaWNoIHdlIHdpbGwgcG9wLgorICAgICAgICAgICAgICAgICh4cmVmLXB1c2gt
bWFya2VyLXN0YWNrKQorICAgICAgICAgICAgICAgIDs7IGB4cmVmLWZpbmQtZGVmaW5pdGlvbnMn
IGlzIGEgdGhpbmcgY29tbWFuZCBpbgorICAgICAgICAgICAgICAgIDs7IGBtYXJrZG93bi10cy1j
b2RlLWJsb2NrLXRoaW5nLWNvbW1hbmRzJy4KKyAgICAgICAgICAgICAgICAobWFya2Rvd24tdHMt
LXJ1bi1jb21tYW5kLWluLWNvZGUtYmxvY2sgYmxvY2stbW9kZQorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjJ3hyZWYtZmluZC1kZWZpbml0
aW9ucworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBhcmdzKSkKKyAgICAgICAgICAgIDs7IFBvcCB0aGUgdG9wIHhyZWYgbWFya2VyLiAgSWYg
dGhlIGNvbW1hbmQgc3VjY2VlZGVkLCB0aGUKKyAgICAgICAgICAgIDs7IHRvcCBtYXJrZXIgd2ls
bCBiZSB0aGUgaW5kaXJlY3QgYnVmZmVyIG1hcmtlci4gIElmIGl0CisgICAgICAgICAgICA7OyBm
YWlsZWQsIHdlJ2xsIHBvcCB0aGUgcGxhY2Vob2xkZXIgd2hpY2ggaXMgbm93IG9mIG5vCisgICAg
ICAgICAgICA7OyB2YWx1ZTwKKyAgICAgICAgICAgIDs7IFRPRE86IFByb3Bvc2UgYW4gYHhyZWYn
IHBvcCBmdW5jdGlvbiB0aGF0IGRvZXNuJ3QgImdvCisgICAgICAgICAgICA7OyBiYWNrIi4KKyAg
ICAgICAgICAgIChsZXQgKChoaXN0b3J5ICh4cmVmLS1nZXQtaGlzdG9yeSkpKQorICAgICAgICAg
ICAgICAodW5sZXNzIChudWxsIChjYXIgaGlzdG9yeSkpCisgICAgICAgICAgICAgICAgKHBvcCAo
Y2FyIGhpc3RvcnkpKSkpKQorICAgICAgICAoZXJyb3IKKyAgICAgICAgIDs7IFByb3BhZ2F0ZSB0
aGUgc2lnbmFsLgorICAgICAgICAgKHNpZ25hbCAoY2FyIGVycikgKGNkciBlcnIpKSkpCisgICAg
OzsgTm90IGluIGEgY29kZSBibG9jayBjb250ZXh0LiAgVGhpcyBzaG91bGQgcmVhbGx5IG5ldmVy
IGhhcHBlbi4KKyAgICAoZnVuY2FsbC1pbnRlcmFjdGl2ZWx5ICMneHJlZi1maW5kLWRlZmluaXRp
b25zIGFyZ3MpKSkKKworKGRlZnVuIG1hcmtkb3duLXRzLS1tYXliZS1ydW4tY29tbWFuZC1pbi1j
b2RlLWJsb2NrICgpCisgICJIZWxwZXIgZnVuY3Rpb24gdG8gd3JhcCBhIGNvbW1hbmQgZm9yIGEg
Y29kZS1ibG9jayBjb250ZXh0LgorSWYgYHRoaXMtY29tbWFuZCcgaXMgYSBtZW1iZXIgb2YgYG1h
cmtkb3duLXRzLWNvZGUtYmxvY2stY29tbWFuZHMnIGFuZAorcG9pbnQgaXMgd2l0aGluIGEgY29k
ZSBibG9jayB3aXRoIGFuIGF2YWlsYWJsZSBtb2RlLCBpdCB3aWxsIHJ1biBpbiB0aGF0Citjb2Rl
IGJsb2NrJ3MgbW9kZSBpbiBhIGJ1ZmZlciBuYXJyb3dlZCB0byBpdHMgY29udGVudC4gIE90aGVy
d2lzZSwgdGhlCitjb21tYW5kIHdpbGwgcnVuIGluIHRoZSBjb250ZXh0IG9mIHRoZSBgbWFya2Rv
d24tdHMtbW9kZScgYnVmZmVyLiIKKyAgKHdoZW4gKG1lbXEgdGhpcy1jb21tYW5kIG1hcmtkb3du
LXRzLWNvZGUtYmxvY2stY29tbWFuZHMpCisgICAgKHdoZW4tbGV0KiAoKGNvbW1hbmQgdGhpcy1j
b21tYW5kKQorICAgICAgICAgICAgICAgIChibG9jay1tb2RlIChtYXJrZG93bi10cy1jb2RlLWJs
b2NrLW1vZGUtYXQpKQorICAgICAgICAgICAgICAgICgoZmJvdW5kcCBibG9jay1tb2RlKSkpCisg
ICAgICAoc2V0cSB0aGlzLWNvbW1hbmQgKGxhbWJkYSAoJnJlc3QgYXJncykKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgIChpbnRlcmFjdGl2ZSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
IChhcHBseSAjJ21hcmtkb3duLXRzLS1ydW4tY29tbWFuZC1pbi1jb2RlLWJsb2NrCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgYmxvY2stbW9kZQorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGNvbW1hbmQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBhcmdzKSkpKSkpCisKKyhkZWZ1biBtYXJrZG93bi10cy0tcnVuLWNvbW1hbmQtaW4tY29kZS1i
bG9jayAoYmxvY2stbW9kZSBjb21tYW5kICZyZXN0IGFyZ3MpCisgICJSdW4gQ09NTUFORCBpbiBC
TE9DSy1NT0RFLgorQVJHUyBhcmUgY2FwdHVyZWQgYnkgYG1hcmtkb3duLXRzLS1tYXliZS1ydW4t
Y29tbWFuZC1pbi1jb2RlLWJsb2NrJy4iCisgICh3aGVuLWxldCogKChiZWcgKGdldC1jaGFyLXBy
b3BlcnR5IChwb2ludCkgJ21hcmtkb3duLXRzLWNvZGUtYmVnLW1hcmtlcikpCisgICAgICAgICAg
ICAgIChlbmQgKGdldC1jaGFyLXByb3BlcnR5IChwb2ludCkgJ21hcmtkb3duLXRzLWNvZGUtZW5k
LW1hcmtlcikpKQorICAgIChsZXQgKChyZWdpb24tYmVnICh1c2UtcmVnaW9uLWJlZ2lubmluZykp
CisgICAgICAgICAgKHJlZ2lvbi1lbmQgKHVzZS1yZWdpb24tZW5kKSkpCisgICAgICA7OyBVc2Ug
YSBub24tY2xvbmVkIGluZGlyZWN0IGJ1ZmZlciB0byBhdm9pZCBjaGFuZ2luZyBtYWpvciBtb2Rl
CisgICAgICA7OyBpbiB0aGUgcGFyZW50IGJ1ZmZlciAod2hpY2ggd291bGQgdHJhc2ggbG9jYWwg
dmFyaWFibGVzKS4gIFRoaXMKKyAgICAgIDs7IGFsc28gZW5zdXJlcyB0cmVlc2l0IHNldHVwIGlz
IG5vdCBjb3BpZWQgb3ZlciBvciBpdCBnZXRzCisgICAgICA7OyBjb25mdXNlZC4KKyAgICAgIChs
ZXQgKChpbmRpcmVjdC1idWZmZXIgKG1ha2UtaW5kaXJlY3QtYnVmZmVyCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAoY3VycmVudC1idWZmZXIpCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAoZ2VuZXJhdGUtbmV3LWJ1ZmZlci1uYW1lIChidWZmZXItbmFtZSkpCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBuaWwgJ2luaGliaXQtYnVmZmVyLWhvb2tzKSkKKyAgICAg
ICAgICAgIChpbmRpcmVjdC1kZWFjdGl2YXRlLW1hcmspCisgICAgICAgICAgICAocG9pbnQtZGVs
dGEgMCkpCisgICAgICAgICh1bndpbmQtcHJvdGVjdAorICAgICAgICAgICAgKHdpdGgtY3VycmVu
dC1idWZmZXIgaW5kaXJlY3QtYnVmZmVyCisgICAgICAgICAgICAgIDs7IENvcHkgdGhlIGJhc2Ug
YnVmZmVyJ3MgcmVnaW9uLCBpZiB0aGVyZSBpcyBvbmUuCisgICAgICAgICAgICAgICh3aGVuIChh
bmQgcmVnaW9uLWJlZyByZWdpb24tZW5kKQorICAgICAgICAgICAgICAgIChzZXQtbWFyayAoaWYg
KDwgKHBvaW50KSByZWdpb24tZW5kKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVn
aW9uLWVuZAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlZ2lvbi1iZWcpKQorICAgICAg
ICAgICAgICAgIChhY3RpdmF0ZS1tYXJrKSkKKyAgICAgICAgICAgICAgKGRlbGF5LW1vZGUtaG9v
a3MKKyAgICAgICAgICAgICAgICAobGV0ICgobWFya2Rvd24tdHMtLXNldC11cC1pbmxpbmUKKyAg
ICAgICAgICAgICAgICAgICAgICAgKGVxIGJsb2NrLW1vZGUgJ21hcmtkb3duLXRzLW1vZGUpKSkK
KyAgICAgICAgICAgICAgICAgIChmdW5jYWxsIGJsb2NrLW1vZGUpKQorICAgICAgICAgICAgICAg
IChyZWFkLW9ubHktbW9kZSAtMSkKKyAgICAgICAgICAgICAgICAobmFycm93LXRvLXJlZ2lvbiBi
ZWcgZW5kKQorICAgICAgICAgICAgICAgIChsZXQgKChwb2ludCAocG9pbnQpKQorICAgICAgICAg
ICAgICAgICAgICAgIChwb2ludC1tYXJrZXIgKHBvaW50LW1hcmtlcikpKQorICAgICAgICAgICAg
ICAgICAgICAoY29uZAorICAgICAgICAgICAgICAgICAgICAgKChtZW1xIGNvbW1hbmQgbWFya2Rv
d24tdHMtY29kZS1ibG9jay10aGluZy1jb21tYW5kcykKKyAgICAgICAgICAgICAgICAgICAgICAo
d2hlbi1sZXQqICgodGhpbmcgKHRoaW5nLWF0LXBvaW50ICdzeW1ib2wpKSkKKyAgICAgICAgICAg
ICAgICAgICAgICAgIChmdW5jYWxsLWludGVyYWN0aXZlbHkgY29tbWFuZCB0aGluZykpKQorICAg
ICAgICAgICAgICAgICAgICAgKChtZW1xIGNvbW1hbmQgbWFya2Rvd24tdHMtY29kZS1ibG9jay1y
ZWdpb24tY29tbWFuZHMpCisgICAgICAgICAgICAgICAgICAgICAgKHdoZW4gKGFuZCByZWdpb24t
YmVnIHJlZ2lvbi1lbmQpCisgICAgICAgICAgICAgICAgICAgICAgICAoYXBwbHkgIydmdW5jYWxs
LWludGVyYWN0aXZlbHkgY29tbWFuZAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJl
Z2lvbi1iZWcgcmVnaW9uLWVuZCBhcmdzKSkpCisgICAgICAgICAgICAgICAgICAgICAoKHplcm9w
IChjZHIgKGZ1bmMtYXJpdHkgY29tbWFuZCkpKQorICAgICAgICAgICAgICAgICAgICAgIChmdW5j
YWxsLWludGVyYWN0aXZlbHkgY29tbWFuZCkpCisgICAgICAgICAgICAgICAgICAgICAodAorICAg
ICAgICAgICAgICAgICAgICAgIChjYWxsLWludGVyYWN0aXZlbHkgY29tbWFuZCkpKQorICAgICAg
ICAgICAgICAgICAgICAoc2V0cSBpbmRpcmVjdC1kZWFjdGl2YXRlLW1hcmsgZGVhY3RpdmF0ZS1t
YXJrKQorICAgICAgICAgICAgICAgICAgICA7OyBUaGUgaGV1cmlzdGljIG9mIHdoZW4gdG8gbW92
ZSBwb2ludC4KKyAgICAgICAgICAgICAgICAgICAgOzsgZGVhY3RpdmF0ZS1tYXJrIHAoZCk9cG0o
ZCkgZGVsdGEKKyAgICAgICAgICAgICAgICAgICAgOzsgbmlsICAgICAgICAgICAgIG5vICAgICAg
ICAgMCAgIDsgY2xhc3MgQQorICAgICAgICAgICAgICAgICAgICA7OyBuaWwgICAgICAgICAgICAg
eWVzICAgICAgICB5ZXMgOyBjbGFzcyBCCisgICAgICAgICAgICAgICAgICAgIDs7IHQgICAgICAg
ICAgICAgICBubyAgICAgICAgIDAgICA7IGNsYXNzIEMKKyAgICAgICAgICAgICAgICAgICAgOzsg
dCAgICAgICAgICAgICAgIHllcyAgICAgICAgeWVzIDsgY2xhc3MgRAorICAgICAgICAgICAgICAg
ICAgICA7OyBBOiBuaWwKKyAgICAgICAgICAgICAgICAgICAgOzsgQjogaW5kZW50LWZvci10YWIt
Y29tbWFuZAorICAgICAgICAgICAgICAgICAgICA7OyBDOiBjb21tZW50LW9yLXVuY29tbWVudC1y
ZWdpb24KKyAgICAgICAgICAgICAgICAgICAgOzsgRDogY29tbWVudC1kd2ltIG5ld2xpbmUgZWxl
Y3RyaWMtbmV3bGluZS1hbmQtbWF5YmUtaW5kZW50CisgICAgICAgICAgICAgICAgICAgIDs7ICAg
IG1hcmtkb3duLXRzLS1jb2RlLWJsb2NrLWZpbGwtcGFyYWdyYXBoCisgICAgICAgICAgICAgICAg
ICAoc2V0cSBwb2ludC1kZWx0YSAoLSAocG9pbnQpIHBvaW50KSkKKyAgICAgICAgICAgICAgICAg
ICh3aGVuIChub3QgKGVxIHBvaW50LWRlbHRhICgtIChwb2ludC1tYXJrZXIpIHBvaW50LW1hcmtl
cikpKQorICAgICAgICAgICAgICAgICAgICAoc2V0cSBwb2ludC1kZWx0YSAwKSkpKSkKKyAgICAg
ICAgICAoa2lsbC1idWZmZXIgaW5kaXJlY3QtYnVmZmVyKQorICAgICAgICAgIDs7IFByb3BhZ2F0
ZSBtYXJrIGRlYWN0aXZhdGlvbiB0byB0aGUgYmFzZSBidWZmZXIuCisgICAgICAgICAgKHNldHEg
ZGVhY3RpdmF0ZS1tYXJrIGluZGlyZWN0LWRlYWN0aXZhdGUtbWFyaykKKyAgICAgICAgICA7OyBN
b3ZlIGJhc2UgYnVmZmVyIHBvaW50IGlmIGl0IG1vdmVkIGluIHRoZSBpbmRpcmVjdCBidWZmZXIu
CisgICAgICAgICAgKGdvdG8tY2hhciAoKyAocG9pbnQpIHBvaW50LWRlbHRhKSkKKyAgICAgICAg
ICA7OyBSZWNvcmQgdGhlIG9yaWdpbmFsIGNvbW1hbmQuCisgICAgICAgICAgKHNldHEgdGhpcy1j
b21tYW5kIGNvbW1hbmQpCisgICAgICAgICAgOzsgTWFrZSBzdXJlIHRoZSBvcmlnaW5hdGluZyBy
ZWdpb24gaXMgcmVmb250aWZpZWQuCisgICAgICAgICAgKGZvbnQtbG9jay1mbHVzaCBiZWcgZW5k
KSkpKSkpCisKKyhkZWZ1biBtYXJrZG93bi10cy0tZmluZC1jb2RlLWJsb2NrLWRlbGltaXRlciAo
cG9zICZvcHRpb25hbCBiYWNrd2FyZCkKKyAgIlJldHVybiB0aGUgbmV4dCBvciBwcmV2aW91cyBm
ZW5jZWRfY29kZV9ibG9ja19kZWxpbWl0ZXIgbm9kZSwgb3IgbmlsLgorU2VhcmNoIHN0YXJ0aW5n
IGF0IFBPUy4KK1NlYXJjaCBiYWNrd2FyZCBpZiBCQUNLV0FSRCBpcyBub24tbmlsLiIKKyAgKHRy
ZWVzaXQtc2VhcmNoLWZvcndhcmQgKHRyZWVzaXQtbm9kZS1hdCBwb3MgJ21hcmtkb3duKQorICAg
ICAgICAgICAgICAgICAgICAgICAgICAobGFtYmRhIChub2RlKQorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIChzdHJpbmc9ICh0cmVlc2l0LW5vZGUtdHlwZSBub2RlKQorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICJmZW5jZWRfY29kZV9ibG9ja19kZWxpbWl0ZXIiKSkK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgYmFja3dhcmQpKQorCisoZGVmdW4gbWFya2Rvd24t
dHMtLWZpbmQtbmV4dC1jb2RlLWJsb2NrLWRlbGltaXRlciAoJm9wdGlvbmFsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9zIGJhY2t3YXJkIHJl
bWFpbikKKyAgIlJldHVybiB0aGUgbmV4dCBvciBwcmV2aW91cyBmZW5jZWRfY29kZV9ibG9ja19k
ZWxpbWl0ZXIgbm9kZSwgb3IgbmlsLgorU2VhcmNoIHN0YXJ0aW5nIGF0IFBPUyBvciBgcG9pbnQn
LCBpZiBQT1MgaXMgbmlsLgorU2VhcmNoIGJhY2t3YXJkIGlmIEJBQ0tXQVJEIGlzIG5vbi1uaWwu
CitJZiBSRU1BSU4gaXMgbm9uLW5pbCwgbW92ZSB0byB0aGUgdG9wIG9yIGJvdHRvbSBvZiB0aGUg
Y3VycmVudCBjb2RlCitibG9jaywgaWYgaW4gb25lLiIKKyAgKHNldHEgcG9zIChvciBwb3MgKHBv
aW50KSkpCisgIChhbmQtbGV0KiAoKG5vZGUgKG1hcmtkb3duLXRzLS1maW5kLWNvZGUtYmxvY2st
ZGVsaW1pdGVyIHBvcyBiYWNrd2FyZCkpKQorICAgIChsZXQgKChpbi1ibG9jayAobWFya2Rvd24t
dHMtY29kZS1ibG9jay1hdC1wIHBvcykpKQorICAgICAgKGNvbmQKKyAgICAgICAoKGFuZCByZW1h
aW4gaW4tYmxvY2spCisgICAgICAgIG5vZGUpCisgICAgICAgKHJlbWFpbgorICAgICAgICBuaWwp
CisgICAgICAgKHQKKyAgICAgICAgKHdoaWxlIChhbmQgbm9kZQorICAgICAgICAgICAgICAgICAg
ICA7OyBJZiBiYWNrd2FyZCwgc2tpcCB0aGUgY3VycmVudCBibG9jaydzCisgICAgICAgICAgICAg
ICAgICAgIDs7IHN0YXJ0aW5nIGRlbGltaXRlci4KKyAgICAgICAgICAgICAgICAgICAgKG9yIChh
bmQgYmFja3dhcmQgaW4tYmxvY2sgKHRyZWVzaXQtbm9kZS1uZXh0LXNpYmxpbmcgbm9kZSkpCisg
ICAgICAgICAgICAgICAgICAgICAgICAobm90ICh0cmVlc2l0LW5vZGUtbmV4dC1zaWJsaW5nIG5v
ZGUpKSkpCisgICAgICAgICAgKHNldHEgaW4tYmxvY2sgKG1hcmtkb3duLXRzLWNvZGUtYmxvY2st
YXQtcCBwb3MpKQorICAgICAgICAgIChzZXRxIHBvcyAoaWYgYmFja3dhcmQKKyAgICAgICAgICAg
ICAgICAgICAgICAgICh0cmVlc2l0LW5vZGUtc3RhcnQgbm9kZSkKKyAgICAgICAgICAgICAgICAg
ICAgICAodHJlZXNpdC1ub2RlLWVuZCBub2RlKSkpCisgICAgICAgICAgKHNldHEgbm9kZSAobWFy
a2Rvd24tdHMtLWZpbmQtY29kZS1ibG9jay1kZWxpbWl0ZXIgcG9zIGJhY2t3YXJkKSkpCisgICAg
ICAgIG5vZGUpKSkpKQorCisoZGVmdW4gbWFya2Rvd24tdHMtbW92ZS10by1uZXh0LWNvZGUtYmxv
Y2sgKGFyZykKKyAgIk1vdmUgcG9pbnQgdG8gdGhlIHN0YXJ0IG9mIHRoZSBuZXh0IGNvZGUgYmxv
Y2suCitXaXRoIHRoZSBwcmVmaXggYXJndW1lbnQgQVJHLCByZW1haW4gd2l0aGluIHRoZSBjdXJy
ZW50IGNvZGUgYmxvY2suIgorICAoaW50ZXJhY3RpdmUgIlAiKQorICAod2hlbi1sZXQqICgobm9k
ZQorICAgICAgICAgICAgICAgKG1hcmtkb3duLXRzLS1maW5kLW5leHQtY29kZS1ibG9jay1kZWxp
bWl0ZXIgbmlsIG5pbCBhcmcpKSkKKyAgICAoZ290by1jaGFyICh0cmVlc2l0LW5vZGUtc3RhcnQg
bm9kZSkpKSkKKworKGRlZnVuIG1hcmtkb3duLXRzLW1vdmUtdG8tcHJldmlvdXMtY29kZS1ibG9j
ayAoYXJnKQorICAiTW92ZSBwb2ludCB0byB0aGUgc3RhcnQgb2YgdGhlIHByZXZpb3VzIGNvZGUg
YmxvY2suCitXaXRoIHRoZSBwcmVmaXggYXJndW1lbnQgQVJHLCByZW1haW4gd2l0aGluIHRoZSBj
dXJyZW50IGNvZGUgYmxvY2suIgorICAoaW50ZXJhY3RpdmUgIlAiKQorICAod2hlbi1sZXQqICgo
bm9kZQorICAgICAgICAgICAgICAgKG1hcmtkb3duLXRzLS1maW5kLW5leHQtY29kZS1ibG9jay1k
ZWxpbWl0ZXIgbmlsICdiYWNrd2FyZCBhcmcpKSkKKyAgICAoZ290by1jaGFyICh0cmVlc2l0LW5v
ZGUtc3RhcnQgbm9kZSkpKSkKKworOzs7IEhlbHBlcnM6CisKKyhkZWZ1biBtYXJrZG93bi10cy0t
b3V0bGluZS1pbnZpc2libGUtcCAocG9zKQorICAiUmV0dXJuIG5vbi1uaWwgaWYgUE9TIGlzIGlu
c2lkZSBhbiBvdXRsaW5lLWZvbGRlZCByZWdpb24uIgorICAoY2wtc29tZSAobGFtYmRhIChvdikg
KGVxIChvdmVybGF5LWdldCBvdiAnaW52aXNpYmxlKSAnb3V0bGluZSkpCisgICAgICAgICAgIChv
dmVybGF5cy1hdCBwb3MpKSkKIAogKGRlZnVuIG1hcmtkb3duLXRzLS1yYW5nZS1zZXR0aW5ncyAo
KQogICAiUmV0dXJuIHJhbmdlIHNldHRpbmdzIGZvciBgbWFya2Rvd24tdHMtbW9kZScuIgogICAo
dHJlZXNpdC1yYW5nZS1ydWxlcwogICAgOmVtYmVkICdtYXJrZG93bi1pbmxpbmUKICAgIDpob3N0
ICdtYXJrZG93bgotICAgOnJhbmdlLWZuICMndHJlZXNpdC1yYW5nZS1mbi1leGNsdWRlLWNoaWxk
cmVuCiAgICAnKChpbmxpbmUpIEBtYXJrZG93bi1pbmxpbmUpCiAKLSAgIDplbWJlZCAjJ21hcmtk
b3duLXRzLS1jb252ZXJ0LWNvZGUtYmxvY2stbGFuZ3VhZ2UKKyAgIDplbWJlZCAjJ21hcmtkb3du
LXRzLS1jb2RlLWJsb2NrLXRzLWxhbmd1YWdlCiAgICA6aG9zdCAnbWFya2Rvd24KICAgIDpsb2Nh
bCB0CiAgICAnKChmZW5jZWRfY29kZV9ibG9jayAoaW5mb19zdHJpbmcgKGxhbmd1YWdlKSBAbGFu
Z3VhZ2UpCiAgICAgICAgICAgICAgICAgICAgICAgICAoY29kZV9mZW5jZV9jb250ZW50KSBAY29u
dGVudCkpKSkKIAorKGRlZnVuIG1hcmtkb3duLXRzLS1yZW1vdmUtaW1hZ2Utb3ZlcmxheXMgKCkK
KyAgIlJlbW92ZSBhbGwgaW5saW5lIGltYWdlIG92ZXJsYXlzIGZyb20gdGhlIGN1cnJlbnQgYnVm
ZmVyLiIKKyAgKGRvbGlzdCAob3YgKG92ZXJsYXlzLWluIChwb2ludC1taW4pIChwb2ludC1tYXgp
KSkKKyAgICAod2hlbiAob3ZlcmxheS1nZXQgb3YgJ21hcmtkb3duLXRzLWltYWdlKQorICAgICAg
KGRlbGV0ZS1vdmVybGF5IG92KSkpKQorCisoZGVmdW4gbWFya2Rvd24tdHMtLW91dGxpbmUtdmll
dy1jaGFuZ2UgKCkKKyAgIlVwZGF0ZSBpbWFnZSBvdmVybGF5cyBhZnRlciBvdXRsaW5lIGZvbGQv
dW5mb2xkLgorUmVtb3ZlcyBpbWFnZSBvdmVybGF5cyBpbiBmb2xkZWQgcmVnaW9ucyBhbmQgdHJp
Z2dlcnMKK3JlZm9udGlmaWNhdGlvbiBzbyB0aGF0IGltYWdlcyBpbiB1bmZvbGRlZCByZWdpb25z
IGFyZSByZWNyZWF0ZWQuIgorICAod2hlbiBtYXJrZG93bi10cy1pbmxpbmUtaW1hZ2VzCisgICAg
KG1hcmtkb3duLXRzLS1yZW1vdmUtaW1hZ2Utb3ZlcmxheXMpCisgICAgKGZvbnQtbG9jay1mbHVz
aCkpKQorCiAoZGVmdW4gbWFya2Rvd24tdHMtLXNldC1oaWRlLW1hcmt1cCAodmFsdWUpCiAgICJT
ZXQgaGlkaW5nIG9mIE1hcmtkb3duIG1hcmt1cCBkZWxpbWl0ZXJzIGluIHRoZSBjdXJyZW50IGJ1
ZmZlci4KIFZBTFVFIG5vbi1uaWwgaGlkZXMgbWFya3VwLCBuaWwgc2hvd3MgaXQuIgogICAoaWYg
dmFsdWUKICAgICAgIChhZGQtdG8taW52aXNpYmlsaXR5LXNwZWMgJ21hcmtkb3duLXRzLS1tYXJr
dXApCiAgICAgKHJlbW92ZS1mcm9tLWludmlzaWJpbGl0eS1zcGVjICdtYXJrZG93bi10cy0tbWFy
a3VwKSkKKyAgKHdoZW4gbWFya2Rvd24tdHMtaW5saW5lLWltYWdlcworICAgIChtYXJrZG93bi10
cy0tcmVtb3ZlLWltYWdlLW92ZXJsYXlzKSkKICAgKGZvbnQtbG9jay1mbHVzaCkpCiAKIChkZWZ1
biBtYXJrZG93bi10cy10b2dnbGUtaGlkZS1tYXJrdXAgKCkKQEAgLTM1NiwxMjIgKzI4MzIsNTMw
IEBAIG1hcmtkb3duLXRzLXRvZ2dsZS1oaWRlLW1hcmt1cAogICAoc2V0cSBtYXJrZG93bi10cy1o
aWRlLW1hcmt1cCAobm90IG1hcmtkb3duLXRzLWhpZGUtbWFya3VwKSkKICAgKG1hcmtkb3duLXRz
LS1zZXQtaGlkZS1tYXJrdXAgbWFya2Rvd24tdHMtaGlkZS1tYXJrdXApKQogCisoZGVmdW4gbWFy
a2Rvd24tdHMtLXNldC1pbmxpbmUtaW1hZ2VzICh2YWx1ZSkKKyAgIlNldCBkaXNwbGF5IG9mIGlu
bGluZSBpbWFnZXMgaW4gdGhlIGN1cnJlbnQgYnVmZmVyLgorVkFMVUUgbm9uLW5pbCBkaXNwbGF5
cyBpbWFnZXMsIG5pbCByZW1vdmVzIHRoZW0uIgorICAoaWYgdmFsdWUKKyAgICAgICh0cmVlc2l0
LWZvbnQtbG9jay1yZWNvbXB1dGUtZmVhdHVyZXMgJyhpbWFnZS1wcmV2aWV3KSkKKyAgICAodHJl
ZXNpdC1mb250LWxvY2stcmVjb21wdXRlLWZlYXR1cmVzIG5pbCAnKGltYWdlLXByZXZpZXcpKSkK
KyAgKG1hcmtkb3duLXRzLS1yZW1vdmUtaW1hZ2Utb3ZlcmxheXMpCisgIChmb250LWxvY2stZmx1
c2gpKQogCi07OzsgTWFqb3IgbW9kZQotCi0oZGVmdW4gbWFya2Rvd24tdHMtc2V0dXAgKCkKLSAg
IlNldHVwIHRyZWVzaXQgZm9yIGBtYXJrZG93bi10cy1tb2RlJy4iCi0gIChtYWtlLWxvY2FsLXZh
cmlhYmxlICdtYXJrZG93bi10cy1oaWRlLW1hcmt1cCkKKyhkZWZ1biBtYXJrZG93bi10cy10b2dn
bGUtaW5saW5lLWltYWdlcyAoKQorICAiVG9nZ2xlIGRpc3BsYXkgb2YgaW5saW5lIGltYWdlcyBp
biB0aGUgY3VycmVudCBidWZmZXIuIgorICAoaW50ZXJhY3RpdmUpCisgIChzZXRxIG1hcmtkb3du
LXRzLWlubGluZS1pbWFnZXMgKG5vdCBtYXJrZG93bi10cy1pbmxpbmUtaW1hZ2VzKSkKKyAgKG1h
cmtkb3duLXRzLS1zZXQtaW5saW5lLWltYWdlcyBtYXJrZG93bi10cy1pbmxpbmUtaW1hZ2VzKQor
ICAobWVzc2FnZSAiSW5saW5lIGltYWdlcyAlcyIgKGlmIG1hcmtkb3duLXRzLWlubGluZS1pbWFn
ZXMgImVuYWJsZWQiICJkaXNhYmxlZCIpKSkKKworOzs7IEVtcGhhc2lzOgorCisoZGVmdmFyIG1h
cmtkb3duLXRzLWVtcGhhc2lzLWFsaXN0CisgICcoKD9iIC4gIioqIikKKyAgICAoP0IgLiAiX18i
KQorICAgICg/aSAuICIqIikKKyAgICAoP0kgLiAiXyIpCisgICAgKD9zIC4gIn5+IikKKyAgICAo
P2MgLiAiYCIpCisgICAgKD9hIC4gIioqKiIpKQorICAiQWxpc3Qgb2YgZW1waGFzaXMgbWFya2Vy
cyBmb3IgYG1hcmtkb3duLXRzLWVtcGhhc2l6ZScuCitFYWNoIGVudHJ5IGlzIChLRVkgLiBNQVJL
RVIpIHdoZXJlIEtFWSBpcyBhIGNoYXJhY3RlciAobm90IGEgc3RyaW5nKSBhbmQKK01BUktFUiBp
cyB0aGUgTWFya2Rvd24gZW1waGFzaXplZCB0ZXh0IHByZWZpeC9zdWZmaXguIikKKworKGRlZnVu
IG1hcmtkb3duLXRzLS1lbXBoYXNpcy1ub2RlLWF0LXBvaW50ICgpCisgICJSZXR1cm4gdGhlIGVt
cGhhc2lzIG5vZGUgYXQgcG9pbnQsIG9yIG5pbC4KK0ZpbmRzIHRoZSBpbm5lcm1vc3QgYGVtcGhh
c2lzJywgYHN0cm9uZ19lbXBoYXNpcycsCitgc3RyaWtldGhyb3VnaCcsIG9yIGBjb2RlX3NwYW4n
IG5vZGUuIgorICAod2hlbi1sZXQqICgobm9kZSAodHJlZXNpdC1ub2RlLWF0IChwb2ludCkgJ21h
cmtkb3duLWlubGluZSkpKQorICAgICh0cmVlc2l0LXBhcmVudC11bnRpbAorICAgICBub2RlIChs
YW1iZGEgKG4pCisgICAgICAgICAgICAobWVtYmVyICh0cmVlc2l0LW5vZGUtdHlwZSBuKQorICAg
ICAgICAgICAgICAgICAgICAnKCJlbXBoYXNpcyIgInN0cm9uZ19lbXBoYXNpcyIKKyAgICAgICAg
ICAgICAgICAgICAgICAic3RyaWtldGhyb3VnaCIgImNvZGVfc3BhbiIpKSkpKSkKKworKGRlZnVu
IG1hcmtkb3duLXRzLXJlbW92ZS1lbXBoYXNpcyAoKQorICAiUmVtb3ZlIGVtcGhhc2lzIGFyb3Vu
ZCBwb2ludCBvciByZWdpb24uCitXaXRoIGFuIGFjdGl2ZSByZWdpb24sIHN0cmlwIHRoZSBvdXRl
cm1vc3QgZW1waGFzaXMgbWFya2VycyBmcm9tCit0aGUgc2VsZWN0ZWQgdGV4dC4gIFdpdGhvdXQg
YSByZWdpb24sIGZpbmQgdGhlIGVtcGhhc2lzIG5vZGUgYXQKK3BvaW50IHVzaW5nIHRyZWUtc2l0
dGVyIGFuZCByZW1vdmUgaXRzIG1hcmtlcnMuIgorICAoaW50ZXJhY3RpdmUpCisgIChpZiAodXNl
LXJlZ2lvbi1wKQorICAgICAgKGxldCogKChiZWcgKHJlZ2lvbi1iZWdpbm5pbmcpKQorICAgICAg
ICAgICAgIChlbmQgKHJlZ2lvbi1lbmQpKQorICAgICAgICAgICAgICh0ZXh0IChidWZmZXItc3Vi
c3RyaW5nIGJlZyBlbmQpKQorICAgICAgICAgICAgIChzdHJpcHBlZCBuaWwpKQorICAgICAgICAo
Y2wtbG9vcCBmb3IgKF9rZXkgLiBtKSBpbiAoc29ydCAoY29weS1zZXF1ZW5jZSBtYXJrZG93bi10
cy1lbXBoYXNpcy1hbGlzdCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgKGxhbWJkYSAoYSBiKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICg+IChsZW5ndGggKGNkciBhKSkgKGxlbmd0aCAoY2RyIGIpKSkpKQorICAgICAgICAgICAg
ICAgICBmb3IgcmUgPSAoY29uY2F0ICJcXGAiIChyZWdleHAtcXVvdGUgbSkKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAiXFwoXFwoPzouXFx8XG5cXCkqXFwpIgorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIChyZWdleHAtcXVvdGUgbSkgIlxcJyIpCisgICAgICAg
ICAgICAgICAgIHdoZW4gKHN0cmluZy1tYXRjaCByZSB0ZXh0KQorICAgICAgICAgICAgICAgICBk
byAoc2V0cSBzdHJpcHBlZCAobWF0Y2gtc3RyaW5nIDEgdGV4dCkpCisgICAgICAgICAgICAgICAg
IGFuZCByZXR1cm4gbmlsKQorICAgICAgICAod2hlbiBzdHJpcHBlZAorICAgICAgICAgIChkZWxl
dGUtcmVnaW9uIGJlZyBlbmQpCisgICAgICAgICAgKGluc2VydCBzdHJpcHBlZCkpKQorICAgIDs7
IEZpbmQgdGhlIG91dGVybW9zdCBlbXBoYXNpcyBub2RlIGF0IHBvaW50LgorICAgICh3aGVuLWxl
dCogKChpbm5lciAobWFya2Rvd24tdHMtLWVtcGhhc2lzLW5vZGUtYXQtcG9pbnQpKQorICAgICAg
ICAgICAgICAgIChub2RlIChsZXQgKChuIGlubmVyKSkKKyAgICAgICAgICAgICAgICAgICAgICAg
ICh3aGlsZSAobGV0ICgocGFyZW50ICh0cmVlc2l0LW5vZGUtcGFyZW50IG4pKSkKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICh3aGVuIChhbmQgcGFyZW50CisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtZW1iZXIgKHRyZWVzaXQtbm9kZS10eXBl
IHBhcmVudCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAnKCJlbXBoYXNpcyIgInN0cm9uZ19lbXBoYXNpcyIKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJzdHJpa2V0aHJvdWdoIiAiY29kZV9z
cGFuIikpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoc2V0cSBuIHBhcmVu
dCkpKSkKKyAgICAgICAgICAgICAgICAgICAgICAgIG4pKQorICAgICAgICAgICAgICAgIChzdGFy
dCAodHJlZXNpdC1ub2RlLXN0YXJ0IG5vZGUpKQorICAgICAgICAgICAgICAgIChlbmQgKHRyZWVz
aXQtbm9kZS1lbmQgbm9kZSkpCisgICAgICAgICAgICAgICAgKHRleHQgKHRyZWVzaXQtbm9kZS10
ZXh0IG5vZGUgdCkpCisgICAgICAgICAgICAgICAgKHR5cGUgKHRyZWVzaXQtbm9kZS10eXBlIG5v
ZGUpKQorICAgICAgICAgICAgICAgIChtbGVuIChwY2FzZSB0eXBlCisgICAgICAgICAgICAgICAg
ICAgICAgICAoInN0cm9uZ19lbXBoYXNpcyIKKyAgICAgICAgICAgICAgICAgICAgICAgICAoaWYg
KHN0cmluZy1wcmVmaXgtcCAiXyIgdGV4dCkgMiAyKSkKKyAgICAgICAgICAgICAgICAgICAgICAg
ICgiZW1waGFzaXMiCisgICAgICAgICAgICAgICAgICAgICAgICAgKGlmIChzdHJpbmctcHJlZml4
LXAgIl8iIHRleHQpIDEgMSkpCisgICAgICAgICAgICAgICAgICAgICAgICAoInN0cmlrZXRocm91
Z2giIDIpCisgICAgICAgICAgICAgICAgICAgICAgICAoImNvZGVfc3BhbiIgMSkpKQorICAgICAg
ICAgICAgICAgIChpbm5lci10ZXh0IChzdWJzdHJpbmcgdGV4dCBtbGVuICgtIChsZW5ndGggdGV4
dCkgbWxlbikpKSkKKyAgICAgIChsZXQgKChvZmZzZXQgKC0gKHBvaW50KSBzdGFydCBtbGVuKSkp
CisgICAgICAgIChkZWxldGUtcmVnaW9uIHN0YXJ0IGVuZCkKKyAgICAgICAgKGdvdG8tY2hhciBz
dGFydCkKKyAgICAgICAgKGluc2VydCBpbm5lci10ZXh0KQorICAgICAgICAoZ290by1jaGFyICgr
IHN0YXJ0IChtYXggMCBvZmZzZXQpKSkpKSkpCisKKyhkZWZ1biBtYXJrZG93bi10cy1lbXBoYXNp
emUgKCZvcHRpb25hbCBjaGFyKQorICAiSW5zZXJ0IG9yIGNoYW5nZSBlbXBoYXNpcyBvbiB0ZXh0
LgorSWYgdGhlcmUgaXMgYW4gYWN0aXZlIHJlZ2lvbiwgd3JhcCBpdCB3aXRoIGVtcGhhc2lzIG1h
cmtlcnMuCitJZiB0aGVyZSBpcyBubyByZWdpb24sIGluc2VydCBtYXJrZXIgcGFpcnMgYW5kIHBs
YWNlIHBvaW50IGJldHdlZW4KK3RoZW0uICBDSEFSIHNlbGVjdHMgdGhlIGVtcGhhc2lzIHR5cGU6
CisKKyAgYiAgICoqYm9sZCoqICAgICAgIEIgIF9fYm9sZF9fCisgIGkgICAqaXRhbGljKiAgICAg
ICBJICBfaXRhbGljXworICBhICAgKioqYm9sZCtpdGFsaWMqKioKKyAgcyAgIH5+c3RyaWtldGhy
b3VnaH5+CisgIGMgICBgY29kZWAKKyAgU1BDIHJlbW92ZSBlbXBoYXNpcyBhdCBwb2ludCBvciBy
ZWdpb24iCisgIChpbnRlcmFjdGl2ZQorICAgImNFbXBoYXNpcyBbYl1vbGQgW0Jdb2xkXyBbaV10
YWxpYyBbSV10YWxpY18gW2FdbGwgW3NddHJpa2UgW2Ndb2RlIFNQQyByZW1vdmU6IikKKyAgKGlm
IChlcSBjaGFyID9ccykKKyAgICAgIChtYXJrZG93bi10cy1yZW1vdmUtZW1waGFzaXMpCisgICAg
KGlmLWxldCogKChtYXJrZXIgKGNkciAoYXNzcSBjaGFyIG1hcmtkb3duLXRzLWVtcGhhc2lzLWFs
aXN0KSkpKQorICAgICAgICAoaWYgKHVzZS1yZWdpb24tcCkKKyAgICAgICAgICAgIChsZXQgKChi
ZWcgKHJlZ2lvbi1iZWdpbm5pbmcpKQorICAgICAgICAgICAgICAgICAgKGVuZCAoY29weS1tYXJr
ZXIgKHJlZ2lvbi1lbmQpKSkpCisgICAgICAgICAgICAgIChzYXZlLWV4Y3Vyc2lvbgorICAgICAg
ICAgICAgICAgIChnb3RvLWNoYXIgZW5kKQorICAgICAgICAgICAgICAgIChpbnNlcnQgbWFya2Vy
KQorICAgICAgICAgICAgICAgIChnb3RvLWNoYXIgYmVnKQorICAgICAgICAgICAgICAgIChpbnNl
cnQgbWFya2VyKSkpCisgICAgICAgICAgKGlmLWxldCogKChib3VuZHMgKGJvdW5kcy1vZi10aGlu
Zy1hdC1wb2ludCAnd29yZCkpKQorICAgICAgICAgICAgICAoc2F2ZS1leGN1cnNpb24KKyAgICAg
ICAgICAgICAgICAoZ290by1jaGFyIChjZHIgYm91bmRzKSkKKyAgICAgICAgICAgICAgICAoaW5z
ZXJ0IG1hcmtlcikKKyAgICAgICAgICAgICAgICAoZ290by1jaGFyIChjYXIgYm91bmRzKSkKKyAg
ICAgICAgICAgICAgICAoaW5zZXJ0IG1hcmtlcikpCisgICAgICAgICAgICAoaW5zZXJ0IG1hcmtl
ciBtYXJrZXIpCisgICAgICAgICAgICAoYmFja3dhcmQtY2hhciAobGVuZ3RoIG1hcmtlcikpKSkK
KyAgICAgICh1c2VyLWVycm9yICJObyBzdWNoIGVtcGhhc2lzIG1hcmtlcjogJWMiIGNoYXIpKSkp
CisKKzs7OyBCbG9jayBzdHJ1Y3R1cmU6CisKKyhkZWZ1biBtYXJrZG93bi10cy1pbnNlcnQtc3Ry
dWN0dXJlICgmb3B0aW9uYWwgY2hhcikKKyAgIkluc2VydCBhIGJsb2NrIHN0cnVjdHVyZS4KK0lm
IHRoZXJlIGlzIGFuIGFjdGl2ZSByZWdpb24sIHdyYXAgaXQuICBPdGhlcndpc2UsIGluc2VydCBh
biBlbXB0eQorYmxvY2sgYW5kIHBsYWNlIHBvaW50IGluc2lkZS4gIENIQVIgc2VsZWN0cyB0aGUg
c3RydWN0dXJlIHR5cGU6CisKKyAgYyAgZmVuY2VkIGNvZGUgYmxvY2sgKGBgYCkKKyAgdCAgdGls
ZGUgZmVuY2VkIGNvZGUgYmxvY2sgKH5+fikKKyAgcSAgYmxvY2sgcXVvdGUgKD4gKQorICBkICBo
b3Jpem9udGFsIGRpdmlkZXIvcnVsZSAoLS0tKSIKKyAgKGludGVyYWN0aXZlICJjU3RydWN0dXJl
IFtjXW9kZSBibG9jayBbdF1pbGRlIGNvZGUgYmxvY2sgW3FddW90ZSBbZF1pdmlkZXI6IikKKyAg
KHBjYXNlIGNoYXIKKyAgICAoP2MgKG1hcmtkb3duLXRzLS1pbnNlcnQtY29kZS1ibG9jayA/YCkp
CisgICAgKD90IChtYXJrZG93bi10cy0taW5zZXJ0LWNvZGUtYmxvY2sgP34pKQorICAgICg/cSAo
bWFya2Rvd24tdHMtLWluc2VydC1ibG9jay1xdW90ZSkpCisgICAgKD9kIChtYXJrZG93bi10cy0t
aW5zZXJ0LWRpdmlkZXIpKQorICAgIChfICh1c2VyLWVycm9yICJObyBzdWNoIHN0cnVjdHVyZTog
JWMiIGNoYXIpKSkpCisKKyhkZWZ1biBtYXJrZG93bi10cy0taW5zZXJ0LWNvZGUtYmxvY2sgKGNo
YXIgJm9wdGlvbmFsIGxhbmd1YWdlKQorICAiSW5zZXJ0IGEgZmVuY2VkIGNvZGUgYmxvY2sgdXNp
bmcgYSBDSEFSIHNlcXVlbmNlLgorQ0hBUiBzaG91bGQgYmUgb25lIG9mIGEgYmFja3RpY2sgb3Ig
YSB0aWxkZS4KK0xBTkdVQUdFIGlzIGEgd2hpdGVzcGFjZSBmcmVlIGxhbmd1YWdlIHN0cmluZy4i
CisgIChzZXRxIGxhbmd1YWdlCisgICAgICAgIChvciBsYW5ndWFnZQorICAgICAgICAgICAgKHJl
cGxhY2UtcmVnZXhwLWluLXN0cmluZworICAgICAgICAgICAgICJbWzpibGFuazpdXSIgIiIKKyAg
ICAgICAgICAgICAobGV0ICgoY29tcGxldGlvbi1pZ25vcmUtY2FzZSBuaWwpCisgICAgICAgICAg
ICAgICAgICAgKGNhbmRpZGF0ZXMKKyAgICAgICAgICAgICAgICAgICAgKHNlcS1tYXAKKyAgICAg
ICAgICAgICAgICAgICAgICMnc3ltYm9sLW5hbWUKKyAgICAgICAgICAgICAgICAgICAgIChzZXEt
dW5pcQorICAgICAgICAgICAgICAgICAgICAgIChhcHBlbmQgKG1hcGNhciAjJ2NhciBtYXJrZG93
bi10cy0tY29kZS1ibG9jay1sYW5ndWFnZXMpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAobWFwY2FyICMnY2FyIG1hcmtkb3duLXRzLS1jb2RlLWJsb2NrLW5vbi10cy1tb2RlcykKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXBjYXIgIydjYXIgbWFya2Rvd24tdHMtY29k
ZS1ibG9jay1tb2RlcykpKSkpKQorICAgICAgICAgICAgICAgKGNvbXBsZXRpbmctcmVhZAorICAg
ICAgICAgICAgICAgICJDb2RlIGJsb2NrIGxhbmd1YWdlOiAiCisgICAgICAgICAgICAgICAgY2Fu
ZGlkYXRlcworICAgICAgICAgICAgICAgIG5pbAorICAgICAgICAgICAgICAgICdjb25maXJtIDsg
UHJvbXB0IGlmIHRoZSBsYW5ndWFnZSBpcyBub3Qgb24gb3VyIGxpc3QuCisgICAgICAgICAgICAg
ICAgbmlsCisgICAgICAgICAgICAgICAgJ21hcmtkb3duLXRzLWxhbmd1YWdlLWhpc3RvcnkpKSkp
KQorICAobGV0ICgoZmVuY2Utc3RyaW5nIChtYWtlLXN0cmluZyAzIGNoYXIpKSkKKyAgICAoaWYg
KHVzZS1yZWdpb24tcCkKKyAgICAgICAgKGxldCAoKGJlZyAocmVnaW9uLWJlZ2lubmluZykpCisg
ICAgICAgICAgICAgIChlbmQgKHJlZ2lvbi1lbmQpKSkKKyAgICAgICAgICAoc2F2ZS1leGN1cnNp
b24KKyAgICAgICAgICAgIChnb3RvLWNoYXIgZW5kKQorICAgICAgICAgICAgKHVubGVzcyAoYm9s
cCkgKGluc2VydCAiXG4iKSkKKyAgICAgICAgICAgIChpbnNlcnQgZmVuY2Utc3RyaW5nICJcbiIp
CisgICAgICAgICAgICAoZ290by1jaGFyIGJlZykKKyAgICAgICAgICAgIChpbnNlcnQgZmVuY2Ut
c3RyaW5nIGxhbmd1YWdlICJcbiIpKSkKKyAgICAgIChpbnNlcnQgZmVuY2Utc3RyaW5nIGxhbmd1
YWdlICJcblxuIiBmZW5jZS1zdHJpbmcpCisgICAgICAoZm9yd2FyZC1saW5lIC0xKSkpKQorCiso
ZGVmdW4gbWFya2Rvd24tdHMtLWluc2VydC1ibG9jay1xdW90ZSAoKQorICAiSW5zZXJ0IGEgYmxv
Y2sgcXVvdGUuIgorICAoaWYgKHVzZS1yZWdpb24tcCkKKyAgICAgIChsZXQgKChiZWcgKHJlZ2lv
bi1iZWdpbm5pbmcpKQorICAgICAgICAgICAgKGVuZCAoY29weS1tYXJrZXIgKHJlZ2lvbi1lbmQp
KSkpCisgICAgICAgIChzYXZlLWV4Y3Vyc2lvbgorICAgICAgICAgIChnb3RvLWNoYXIgYmVnKQor
ICAgICAgICAgICh3aGlsZSAoPCAocG9pbnQpIGVuZCkKKyAgICAgICAgICAgIChpbnNlcnQgIj4g
IikKKyAgICAgICAgICAgIChmb3J3YXJkLWxpbmUgMSkpKSkKKyAgICAoaW5zZXJ0ICI+ICIpKSkK
KworKGRlZnVuIG1hcmtkb3duLXRzLS1pbnNlcnQtZGl2aWRlciAoKQorICAiSW5zZXJ0IGEgaG9y
aXpvbnRhbCBydWxlLiIKKyAgKHVubGVzcyAoYm9scCkgKGluc2VydCAiXG4iKSkKKyAgKGluc2Vy
dCAiXG4tLS1cblxuIikpCisKKyhkZWZ1biBtYXJrZG93bi10cy0tYXBwbHktZWxsaXBzaXMgKCkK
KyAgIkFwcGx5IGBtYXJrZG93bi10cy1lbGxpcHNpcycgdG8gdGhlIGN1cnJlbnQgYnVmZmVyJ3Mg
ZGlzcGxheSB0YWJsZS4iCisgIChpZiAoYW5kIChzdHJpbmdwIG1hcmtkb3duLXRzLWVsbGlwc2lz
KQorICAgICAgICAgICAobm90IChzdHJpbmctZW1wdHktcCBtYXJrZG93bi10cy1lbGxpcHNpcykp
KQorICAgICAgKGxldCAoKHRhYmxlIChvciBidWZmZXItZGlzcGxheS10YWJsZQorICAgICAgICAg
ICAgICAgICAgICAgICAobWFrZS1kaXNwbGF5LXRhYmxlKSkpKQorICAgICAgICAoc2V0LWRpc3Bs
YXktdGFibGUtc2xvdAorICAgICAgICAgdGFibGUgNAorICAgICAgICAgKHZjb25jYXQgKG1hcGNh
ciAobGFtYmRhIChjKSAobWFrZS1nbHlwaC1jb2RlIGMgJ3NoYWRvdykpCisgICAgICAgICAgICAg
ICAgICAgICAgICAgIG1hcmtkb3duLXRzLWVsbGlwc2lzKSkpCisgICAgICAgIChzZXRxIGJ1ZmZl
ci1kaXNwbGF5LXRhYmxlIHRhYmxlKSkKKyAgICAod2hlbiBidWZmZXItZGlzcGxheS10YWJsZQor
ICAgICAgKHNldC1kaXNwbGF5LXRhYmxlLXNsb3QgYnVmZmVyLWRpc3BsYXktdGFibGUgNCBuaWwp
KSkpCisKKzs7OyBNYWpvciBtb2RlOgorCisoZGVmdW4gbWFya2Rvd24tdHMtb3V0bGluZS1jeWNs
ZSAoKQorICAiQ3ljbGUgdmlzaWJpbGl0eSBvZiB0aGUgaGVhZGluZyBhdCBwb2ludC4KK09uIGEg
aGVhZGluZywgY2FsbCBgb3V0bGluZS1jeWNsZScuICBPdGhlcndpc2UgZG8gbm90aGluZy4iCisg
IChpbnRlcmFjdGl2ZSkKKyAgKHdoZW4gKG91dGxpbmUtb24taGVhZGluZy1wKQorICAgIChvdXRs
aW5lLWN5Y2xlKSkpCisKKyhkZWZ2YXIta2V5bWFwIG1hcmtkb3duLXRzLW1vZGUtbWFwCisgIDpk
b2MgIktleW1hcCBmb3IgYG1hcmtkb3duLXRzLW1vZGUnLiIKKyAgIk0tPGxlZnQ+IiAgICAjJ21h
cmtkb3duLXRzLXByb21vdGUKKyAgIk0tPHJpZ2h0PiIgICAjJ21hcmtkb3duLXRzLWRlbW90ZQor
ICAiTS08dXA+IiAgICAgICMnbWFya2Rvd24tdHMtbW92ZS1zdWJ0cmVlLXVwCisgICJNLTxkb3du
PiIgICAgIydtYXJrZG93bi10cy1tb3ZlLXN1YnRyZWUtZG93bgorICAiQy1jIEMtbiIgICAgICMn
b3V0bGluZS1uZXh0LWhlYWRpbmcKKyAgIkMtYyBDLXAiICAgICAjJ291dGxpbmUtcHJldmlvdXMt
aGVhZGluZworICAiQy1jIEMtdSIgICAgICMnb3V0bGluZS11cC1oZWFkaW5nCisgICJDLWMgQy1m
IiAgICAgIydvdXRsaW5lLWZvcndhcmQtc2FtZS1sZXZlbAorICAiQy1jIEMtYiIgICAgICMnb3V0
bGluZS1iYWNrd2FyZC1zYW1lLWxldmVsCisgICJDLWMgQy14IEMtZiIgIydtYXJrZG93bi10cy1l
bXBoYXNpemUKKyAgIkMtYyBDLXggQy1tIiAjJ21hcmtkb3duLXRzLXRvZ2dsZS1oaWRlLW1hcmt1
cAorICAiQy1jIEMteCBDLXYiICMnbWFya2Rvd24tdHMtdG9nZ2xlLWlubGluZS1pbWFnZXMKKyAg
IkMtYyBDLWMiICAgICAjJ21hcmtkb3duLXRzLXRvZ2dsZS1jaGVja2JveAorICAiQy1jIEMtciIg
ICAgICMnbWFya2Rvd24tdHMtcmVudW1iZXItbGlzdAorICAiQy1jIEMtLCIgICAgICMnbWFya2Rv
d24tdHMtaW5zZXJ0LXN0cnVjdHVyZQorICAiQy1jIEMtdiBuIiAgICMnbWFya2Rvd24tdHMtbW92
ZS10by1uZXh0LWNvZGUtYmxvY2sKKyAgIkMtYyBDLXYgcCIgICAjJ21hcmtkb3duLXRzLW1vdmUt
dG8tcHJldmlvdXMtY29kZS1ibG9jaworICAiUkVUIiAgICAgICAgICMnbWFya2Rvd24tdHMtbmV3
bGluZQorICAiTS1SRVQiICAgICAgICMnbWFya2Rvd24tdHMtaW5zZXJ0LWxpc3QtaXRlbQorICAi
VEFCIiAgICAgICAgICMnbWFya2Rvd24tdHMtb3V0bGluZS1jeWNsZSkKKworKGRlZnZhci1rZXlt
YXAgbWFya2Rvd24tdHMtY29kZS1ibG9jay1tb2RlLW1hcAorICA6ZG9jICJLZXltYXAgZm9yIGBt
YXJrZG93bi10cy1jb2RlLWJsb2NrLW1vZGUnLgorVGhlc2Ugb3ZlcnJpZGUga2V5cyBpbiBgbWFy
a2Rvd24tdHMtbW9kZS1tYXAnIHRvIHN1cHBvcnQgZXhlY3V0aW5nIHRoZWlyCitjb21tYW5kcyBp
biBhIGNvZGUtYmxvY2sgY29udGV4dC4iCisgIDpwYXJlbnQgbWFya2Rvd24tdHMtbW9kZS1tYXAK
KyAgIk0tLiIgICAgICAgICAjJ21hcmtkb3duLXRzLS1jb2RlLWJsb2NrLXhyZWYtZmluZC1kZWZp
bml0aW9ucworICAiVEFCIiAgICAgICAgICMnaW5kZW50LWZvci10YWItY29tbWFuZAorICAiUkVU
IiAgICAgICAgICMnbWFya2Rvd24tdHMtLWNvZGUtYmxvY2stbmV3bGluZQorICAiQy1qIiAgICAg
ICAgICMnbWFya2Rvd24tdHMtLWNvZGUtYmxvY2stbmV3bGluZQorICAiTS1SRVQiICAgICAgICMn
bWFya2Rvd24tdHMtLWNvZGUtYmxvY2stbmV3bGluZQorICAiTS1xIiAgICAgICAgICMnbWFya2Rv
d24tdHMtLWNvZGUtYmxvY2stZmlsbC1wYXJhZ3JhcGgpCisKKyhlYXN5LW1lbnUtZGVmaW5lIG1h
cmtkb3duLXRzLW1vZGUtbWVudSBtYXJrZG93bi10cy1tb2RlLW1hcAorICAiYG1hcmtkb3duLXRz
LW1vZGUnIG1lbnUuIgorICAnKCJNYXJrZG93biIgOnZpc2libGUgbWFya2Rvd24tdHMtbWVudS1i
YXItc2hvdworICAgICItLSIKKyAgICBbIkN5Y2xlIE91dGxpbmUgVmlzaWJpbGl0eSIgbWFya2Rv
d24tdHMtb3V0bGluZS1jeWNsZQorICAgICA6aGVscCAiQ3ljbGUgaGVhZGluZyB2aXNpYmlsaXR5
IGZyb20gcG9pbnQiXQorICAgIFsiVG9nZ2xlIEhpZGUgTWFya3VwIiBtYXJrZG93bi10cy10b2dn
bGUtaGlkZS1tYXJrdXAKKyAgICAgOnN0eWxlIHRvZ2dsZSA6c2VsZWN0ZWQgbWFya2Rvd24tdHMt
aGlkZS1tYXJrdXAKKyAgICAgOmhlbHAgIlRvZ2dsZSBkaXNwbGF5IG9mIG1hcmt1cCBjaGFyYWN0
ZXJzIl0KKyAgICBbIlRvZ2dsZSBJbmxpbmUgSW1hZ2VzIiBtYXJrZG93bi10cy10b2dnbGUtaW5s
aW5lLWltYWdlcworICAgICA6c3R5bGUgdG9nZ2xlIDpzZWxlY3RlZCBtYXJrZG93bi10cy1pbmxp
bmUtaW1hZ2VzCisgICAgIDpoZWxwICJUb2dnbGUgZGlzcGxheSBvZiBpbmxpbmUgaW1hZ2VzIGJl
bG93IGxpbmtzIl0KKyAgICAiLS0iCisgICAgWyJVcCIgb3V0bGluZS11cC1oZWFkaW5nCisgICAg
IDpoZWxwICJNb3ZlIHRvIHRoZSBwYXJlbnQgaGVhZGluZyJdCisgICAgWyJOZXh0IiBvdXRsaW5l
LW5leHQtaGVhZGluZworICAgICA6aGVscCAiTW92ZSB0byB0aGUgbmV4dCBoZWFkaW5nIl0KKyAg
ICBbIlByZXZpb3VzIiBvdXRsaW5lLXByZXZpb3VzLWhlYWRpbmcKKyAgICAgOmhlbHAgIk1vdmUg
dG8gdGhlIHByZXZpb3VzIGhlYWRpbmciXQorICAgIFsiTmV4dCBTYW1lIExldmVsIiBvdXRsaW5l
LWZvcndhcmQtc2FtZS1sZXZlbAorICAgICA6aGVscCAiTW92ZSB0byB0aGUgbmV4dCBoZWFkaW5n
IGF0IHRoZSBzYW1lIGxldmVsIl0KKyAgICBbIlByZXZpb3VzIFNhbWUgTGV2ZWwiIG91dGxpbmUt
YmFja3dhcmQtc2FtZS1sZXZlbAorICAgICA6aGVscCAiTW92ZSB0byB0aGUgcHJldmlvdXMgaGVh
ZGluZyBhdCB0aGUgc2FtZSBsZXZlbCJdCisgICAgIi0tIgorICAgIFsiSnVtcCIgaW1lbnUKKyAg
ICAgOmhlbHAgIkp1bXAgdG8gYSBoZWFkaW5nIHZpYSBjb21wbGV0aW9uIl0KKyAgICAiLS0iCisg
ICAgWyJNb3ZlIFN1YnRyZWUgVXAiIG1hcmtkb3duLXRzLW1vdmUtc3VidHJlZS11cAorICAgICA6
aGVscCAiTW92ZSB0aGUgY3VycmVudCBzZWN0aW9uIG9yIGxpc3QgaXRlbSB1cCJdCisgICAgWyJN
b3ZlIFN1YnRyZWUgRG93biIgbWFya2Rvd24tdHMtbW92ZS1zdWJ0cmVlLWRvd24KKyAgICAgOmhl
bHAgIk1vdmUgdGhlIGN1cnJlbnQgc2VjdGlvbiBvciBsaXN0IGl0ZW0gZG93biJdCisgICAgWyJQ
cm9tb3RlIiBtYXJrZG93bi10cy1wcm9tb3RlCisgICAgIDpoZWxwICJQcm9tb3RlIGhlYWRpbmcg
b3IgbGlzdCBpdGVtIl0KKyAgICBbIkRlbW90ZSIgbWFya2Rvd24tdHMtZGVtb3RlCisgICAgIDpo
ZWxwICJEZW1vdGUgaGVhZGluZyBvciBsaXN0IGl0ZW0iXQorICAgICItLSIKKyAgICBbIkVtcGhh
c2lzLi4uIiBtYXJrZG93bi10cy1lbXBoYXNpemUKKyAgICAgOmhlbHAgIkFkZCBvciBjaGFuZ2Ug
ZW1waGFzaXMgb24gcmVnaW9uIl0KKyAgICBbIkFkZCBCbG9jayBTdHJ1Y3R1cmUiIG1hcmtkb3du
LXRzLWluc2VydC1zdHJ1Y3R1cmUKKyAgICAgOmhlbHAgIkluc2VydCBhIGNvZGUgYmxvY2ssIHF1
b3RlLCBvciBvdGhlciBzdHJ1Y3R1cmUiXQorICAgICItLSIKKyAgICBbIlRvZ2dsZSBDaGVja2Jv
eCIgbWFya2Rvd24tdHMtdG9nZ2xlLWNoZWNrYm94CisgICAgIDpoZWxwICJUb2dnbGUgdGFzayBs
aXN0IGNoZWNrYm94IGF0IHBvaW50Il0KKyAgICBbIk5ldyBMaXN0IEl0ZW0iIG1hcmtkb3duLXRz
LWluc2VydC1saXN0LWl0ZW0KKyAgICAgOmhlbHAgIkluc2VydCBhIG5ldyBsaXN0IGl0ZW0gYWZ0
ZXIgdGhlIGN1cnJlbnQgb25lIl0KKyAgICBbIlJlbnVtYmVyIExpc3QiIG1hcmtkb3duLXRzLXJl
bnVtYmVyLWxpc3QKKyAgICAgOmhlbHAgIlJlbnVtYmVyIHRoZSBvcmRlcmVkIGxpc3QgYXQgcG9p
bnQiXSkpCisKKyhkZWZ1biBtYXJrZG93bi10cy0tc2V0LXVwICgpCisgICJTZXQgdXAgdGhlIGJ1
ZmZlciBmb3IgYG1hcmtkb3duLXRzLW1vZGUnLgorSWYgYG1hcmtkb3duLXRzLS1zZXQtdXAtaW5s
aW5lJyBpcyBub24tbmlsLCB1c2UgYSBsaWdodHdlaWdodCBzZXQgdXAgZm9yCitlbWJlZGRlZCBp
bmxpbmUgYG1hcmtkb3duLXRzLW1vZGUnIGJ1ZmZlcnMuCisKK05PVEU6IENhbGwgdGhpcyBmdW5j
dGlvbiBvbmx5IHdoZW4gdGhlIHRyZWVzaXQgYG1hcmtkb3duJyBhbmQKK2BtYXJrZG93bi1pbmxp
bmUnIHBhcnNlcnMgYXJlIGF2YWlsYWJsZS4iCisKKyAgOzsgU2V0IHRoZXNlIHVwIGZvciBib3Ro
IG1hc3RlciBhbmQgaW5saW5lIGZvciBjb2RlLWJsb2NrIGJ1ZmZlcnMuCisgIChzZXRxLWxvY2Fs
IGNvbW1lbnQtc3RhcnQgIjwhLS0gIgorICAgICAgICAgICAgICBjb21tZW50LWVuZCAiIC0tPiIK
KyAgICAgICAgICAgICAgY29tbWVudC1zdGFydC1za2lwICI8IS0tWyBcdF0qIgorICAgICAgICAg
ICAgICBjb21tZW50LWVuZC1za2lwICJbIFx0XSotLT4iCisgICAgICAgICAgICAgIGNvbW1lbnQt
dXNlLXN5bnRheCBuaWwpCisKKyAgKHNldHEtbG9jYWwgZmlsbC1wYXJhZ3JhcGgtZnVuY3Rpb24K
KyAgICAgICAgICAgICAgIydtYXJrZG93bi10cy0tZmlsbC1wYXJhZ3JhcGgKKyAgICAgICAgICAg
ICAgZmlsbC1mb3J3YXJkLXBhcmFncmFwaC1mdW5jdGlvbgorICAgICAgICAgICAgICAjJ21hcmtk
b3duLXRzLS1maWxsLWZvcndhcmQtcGFyYWdyYXBoKQorCisgIDs7IGBhZGFwdGl2ZS1maWxsLWZ1
bmN0aW9uJyB0YWtlcyBwcmVjZWRlbmNlIG92ZXIKKyAgOzsgYGFkYXB0aXZlLWZpbGwtcmVnZXhw
JzsgdGhlIGRlZmF1bHQgcmVnZXhwIGlzIGZpbmUgYXMgYQorICA7OyBmYWxsYmFjayBmb3IgcGxh
aW4gKG5vbi1saXN0KSBwYXJhZ3JhcGhzLgorICAoc2V0cS1sb2NhbCBhZGFwdGl2ZS1maWxsLWZ1
bmN0aW9uICMnbWFya2Rvd24tdHMtLWFkYXB0aXZlLWZpbGwpCisKKyAgOzsgQ3JlYXRlIGFuZCBj
b25maWd1cmUgdGhlIHBhcnNlcnMuCisgICh0cmVlc2l0LXBhcnNlci1jcmVhdGUgJ21hcmtkb3du
LWlubGluZSkKKyAgKHNldHEgdHJlZXNpdC1wcmltYXJ5LXBhcnNlcgorICAgICAgICAodHJlZXNp
dC1wYXJzZXItY3JlYXRlICdtYXJrZG93bikpCisKKyAgKHNldHEtbG9jYWwgZm9udC1sb2NrLWRl
ZmF1bHRzIG5pbCkKICAgKHNldHEtbG9jYWwgdHJlZXNpdC1mb250LWxvY2stc2V0dGluZ3MgbWFy
a2Rvd24tdHMtLXRyZWVzaXQtc2V0dGluZ3MpCi0gIChzZXRxLWxvY2FsIHRyZWVzaXQtcmFuZ2Ut
c2V0dGluZ3MgKG1hcmtkb3duLXRzLS1yYW5nZS1zZXR0aW5ncykpCi0gIChhZGQtdG8tbGlzdCAn
Zm9udC1sb2NrLWV4dHJhLW1hbmFnZWQtcHJvcHMgJ2ludmlzaWJsZSkKLQotICAod2hlbiAodHJl
ZXNpdC1yZWFkeS1wICdodG1sIHQpCi0gICAgKHRyZWVzaXQtcGFyc2VyLWNyZWF0ZSAnaHRtbCkK
LSAgICAocmVxdWlyZSAnaHRtbC10cy1tb2RlKQotICAgIChkZWZ2YXIgaHRtbC10cy1tb2RlLS1m
b250LWxvY2stc2V0dGluZ3MpCi0gICAgKGRlZnZhciBodG1sLXRzLW1vZGUtLXRyZWVzaXQtZm9u
dC1sb2NrLWZlYXR1cmUtbGlzdCkKLSAgICAoc2V0cS1sb2NhbCB0cmVlc2l0LWZvbnQtbG9jay1z
ZXR0aW5ncwotICAgICAgICAgICAgICAgIChhcHBlbmQgdHJlZXNpdC1mb250LWxvY2stc2V0dGlu
Z3MKLSAgICAgICAgICAgICAgICAgICAgICAgIGh0bWwtdHMtbW9kZS0tZm9udC1sb2NrLXNldHRp
bmdzKSkKLSAgICAoc2V0cS1sb2NhbCB0cmVlc2l0LWZvbnQtbG9jay1mZWF0dXJlLWxpc3QKLSAg
ICAgICAgICAgICAgICAodHJlZXNpdC1tZXJnZS1mb250LWxvY2stZmVhdHVyZS1saXN0Ci0gICAg
ICAgICAgICAgICAgIHRyZWVzaXQtZm9udC1sb2NrLWZlYXR1cmUtbGlzdAotICAgICAgICAgICAg
ICAgICBodG1sLXRzLW1vZGUtLXRyZWVzaXQtZm9udC1sb2NrLWZlYXR1cmUtbGlzdCkpCi0gICAg
KHNldHEtbG9jYWwgdHJlZXNpdC1yYW5nZS1zZXR0aW5ncwotICAgICAgICAgICAgICAgIChhcHBl
bmQgdHJlZXNpdC1yYW5nZS1zZXR0aW5ncwotICAgICAgICAgICAgICAgICAgICAgICAgKHRyZWVz
aXQtcmFuZ2UtcnVsZXMKLSAgICAgICAgICAgICAgICAgICAgICAgICA6ZW1iZWQgJ2h0bWwKLSAg
ICAgICAgICAgICAgICAgICAgICAgICA6aG9zdCAnbWFya2Rvd24KLSAgICAgICAgICAgICAgICAg
ICAgICAgICA6bG9jYWwgdAotICAgICAgICAgICAgICAgICAgICAgICAgICcoKGh0bWxfYmxvY2sp
IEBodG1sKQotCi0gICAgICAgICAgICAgICAgICAgICAgICAgOmVtYmVkICdodG1sCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgOmhvc3QgJ21hcmtkb3duLWlubGluZQotICAgICAgICAgICAgICAg
ICAgICAgICAgICcoKGh0bWxfdGFnKSBAaHRtbCkpKSkpCi0KLSAgKHdoZW4gKHRyZWVzaXQtcmVh
ZHktcCAneWFtbCB0KQotICAgIChyZXF1aXJlICd5YW1sLXRzLW1vZGUpCi0gICAgKGRlZnZhciB5
YW1sLXRzLW1vZGUtLWZvbnQtbG9jay1zZXR0aW5ncykKLSAgICAoZGVmdmFyIHlhbWwtdHMtbW9k
ZS0tZm9udC1sb2NrLWZlYXR1cmUtbGlzdCkKLSAgICAoc2V0cS1sb2NhbCB0cmVlc2l0LWZvbnQt
bG9jay1zZXR0aW5ncwotICAgICAgICAgICAgICAgIChhcHBlbmQgdHJlZXNpdC1mb250LWxvY2st
c2V0dGluZ3MKLSAgICAgICAgICAgICAgICAgICAgICAgIHlhbWwtdHMtbW9kZS0tZm9udC1sb2Nr
LXNldHRpbmdzKSkKLSAgICAoc2V0cS1sb2NhbCB0cmVlc2l0LWZvbnQtbG9jay1mZWF0dXJlLWxp
c3QKLSAgICAgICAgICAgICAgICAodHJlZXNpdC1tZXJnZS1mb250LWxvY2stZmVhdHVyZS1saXN0
Ci0gICAgICAgICAgICAgICAgIHRyZWVzaXQtZm9udC1sb2NrLWZlYXR1cmUtbGlzdAotICAgICAg
ICAgICAgICAgICB5YW1sLXRzLW1vZGUtLWZvbnQtbG9jay1mZWF0dXJlLWxpc3QpKQotICAgIChz
ZXRxLWxvY2FsIHRyZWVzaXQtcmFuZ2Utc2V0dGluZ3MKLSAgICAgICAgICAgICAgICAoYXBwZW5k
IHRyZWVzaXQtcmFuZ2Utc2V0dGluZ3MKLSAgICAgICAgICAgICAgICAgICAgICAgICh0cmVlc2l0
LXJhbmdlLXJ1bGVzCi0gICAgICAgICAgICAgICAgICAgICAgICAgOmVtYmVkICd5YW1sCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgOmhvc3QgJ21hcmtkb3duCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgOmxvY2FsIHQKLSAgICAgICAgICAgICAgICAgICAgICAgICAnKChtaW51c19tZXRhZGF0
YSkgQHlhbWwpKSkpKQotCi0gICh3aGVuICh0cmVlc2l0LXJlYWR5LXAgJ3RvbWwgdCkKLSAgICAo
cmVxdWlyZSAndG9tbC10cy1tb2RlKQotICAgIChkZWZ2YXIgdG9tbC10cy1tb2RlLS1mb250LWxv
Y2stc2V0dGluZ3MpCi0gICAgKGRlZnZhciB0b21sLXRzLW1vZGUtLWZvbnQtbG9jay1mZWF0dXJl
LWxpc3QpCi0gICAgKHNldHEgdHJlZXNpdC1mb250LWxvY2stc2V0dGluZ3MKLSAgICAgICAgICAo
YXBwZW5kIHRyZWVzaXQtZm9udC1sb2NrLXNldHRpbmdzCi0gICAgICAgICAgICAgICAgICB0b21s
LXRzLW1vZGUtLWZvbnQtbG9jay1zZXR0aW5ncykpCi0gICAgKHNldHEtbG9jYWwgdHJlZXNpdC1m
b250LWxvY2stZmVhdHVyZS1saXN0Ci0gICAgICAgICAgICAgICAgKHRyZWVzaXQtbWVyZ2UtZm9u
dC1sb2NrLWZlYXR1cmUtbGlzdAotICAgICAgICAgICAgICAgICB0cmVlc2l0LWZvbnQtbG9jay1m
ZWF0dXJlLWxpc3QKLSAgICAgICAgICAgICAgICAgdG9tbC10cy1tb2RlLS1mb250LWxvY2stZmVh
dHVyZS1saXN0KSkKLSAgICAoc2V0cS1sb2NhbCB0cmVlc2l0LXJhbmdlLXNldHRpbmdzCi0gICAg
ICAgICAgICAgICAgKGFwcGVuZCB0cmVlc2l0LXJhbmdlLXNldHRpbmdzCi0gICAgICAgICAgICAg
ICAgICAgICAgICAodHJlZXNpdC1yYW5nZS1ydWxlcwotICAgICAgICAgICAgICAgICAgICAgICAg
IDplbWJlZCAndG9tbAotICAgICAgICAgICAgICAgICAgICAgICAgIDpob3N0ICdtYXJrZG93bgot
ICAgICAgICAgICAgICAgICAgICAgICAgIDpsb2NhbCB0Ci0gICAgICAgICAgICAgICAgICAgICAg
ICAgJygocGx1c19tZXRhZGF0YSkgQHRvbWwpKSkpKQorICAoc2V0cS1sb2NhbCB0cmVlc2l0LWZv
bnQtbG9jay1mZWF0dXJlLWxpc3QgJygoZGVsaW1pdGVyIGhlYWRpbmcpCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChwYXJhZ3JhcGgpCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChwYXJhZ3JhcGgtaW5saW5lKQor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW1hZ2UtcHJl
dmlldykpKQorCisgIChjb25kIChtYXJrZG93bi10cy0tc2V0LXVwLWlubGluZQorICAgICAgICAg
IChzZXRxLWxvY2FsIHRyZWVzaXQtcmFuZ2Utc2V0dGluZ3MKKyAgICAgICAgICAgICAgICAgICAg
ICAodHJlZXNpdC1yYW5nZS1ydWxlcworICAgICAgICAgICAgICAgICAgICAgICA6ZW1iZWQgJ21h
cmtkb3duLWlubGluZQorICAgICAgICAgICAgICAgICAgICAgICA6aG9zdCAnbWFya2Rvd24KKyAg
ICAgICAgICAgICAgICAgICAgICAgJygoaW5saW5lKSBAbWFya2Rvd24taW5saW5lKSkpKQorICAg
ICAgICAodAorICAgICAgICAgOzsgUmFuZ2Ugc2V0dGluZ3MgZGlmZmVyIGluIHRoZSBtYXN0ZXIg
YnVmZmVyIHZzLiBpbmxpbmUgYWJvdmUuCisgICAgICAgICAoc2V0cS1sb2NhbCB0cmVlc2l0LXJh
bmdlLXNldHRpbmdzIChtYXJrZG93bi10cy0tcmFuZ2Utc2V0dGluZ3MpKQorCisgICAgICAgICA7
OyBDb25maWd1cmUgZmVhdHVyZXMgbmVlZGVkIG9ubHkgaW4gdGhlIG1hc3RlciBidWZmZXIuCisK
KyAgICAgICAgIDs7IEltZW51IHN1cHBvcnQuCisgICAgICAgICAoc2V0cS1sb2NhbCB0cmVlc2l0
LXNpbXBsZS1pbWVudS1zZXR0aW5ncworICAgICAgICAgICAgICAgICAgICAgYCgoIkhlYWRpbmdz
IiAsIydtYXJrZG93bi10cy0taW1lbnUtaGVhZGluZy1ub2RlLXAKKyAgICAgICAgICAgICAgICAg
ICAgICAgIG5pbCAsIydtYXJrZG93bi10cy0taW1lbnUtaGVhZGluZy1uYW1lLWZ1bmN0aW9uKQor
ICAgICAgICAgICAgICAgICAgICAgICAoIkNvZGUgQmxvY2tzIiAsIydtYXJrZG93bi10cy0taW1l
bnUtY29kZS1ibG9jay1ub2RlLXAKKyAgICAgICAgICAgICAgICAgICAgICAgIG5pbCAsIydtYXJr
ZG93bi10cy0taW1lbnUtY29kZS1ibG9jay1uYW1lLWZ1bmN0aW9uKSkpCisKKyAgICAgICAgIDs7
IE91dGxpbmUgc3VwcG9ydC4KKyAgICAgICAgIChzZXRxLWxvY2FsIHRyZWVzaXQtb3V0bGluZS1w
cmVkaWNhdGUgIydtYXJrZG93bi10cy0tb3V0bGluZS1wcmVkaWNhdGUpCisgICAgICAgICAoc2V0
cS1sb2NhbCBvdXRsaW5lLW1pbm9yLW1vZGUtY3ljbGUgdCkKKyAgICAgICAgIChvdXRsaW5lLW1p
bm9yLW1vZGUgMSkKKyAgICAgICAgIChtYXJrZG93bi10cy0tYXBwbHktZWxsaXBzaXMpCisKKyAg
ICAgICAgIDs7IE5PVEU6IGBvdXRsaW5lLXZpZXctY2hhbmdlLWhvb2snIHdhcyBvYnNvbGV0ZWQg
aW4gMjkuMSAoY29tbWl0CisgICAgICAgICA7OyA1M2IxZTZmOTZjYikgb24gdGhlIGdyb3VuZHMg
dGhhdCBvbmx5IGxhenktbG9jayB1c2VkIGl0LCBidXQgbm8KKyAgICAgICAgIDs7IHJlcGxhY2Vt
ZW50IHdhcyBwcm92aWRlZCBhbmQgb3V0bGluZS5lbCBpdHNlbGYgc3RpbGwgcnVucyB0aGUgaG9v
aworICAgICAgICAgOzsgaW4gMTArIHBsYWNlcy4KKyAgICAgICAgICh3aXRoLXN1cHByZXNzZWQt
d2FybmluZ3MgKChvYnNvbGV0ZSBvdXRsaW5lLXZpZXctY2hhbmdlLWhvb2spKQorICAgICAgICAg
ICAoYWRkLWhvb2sgJ291dGxpbmUtdmlldy1jaGFuZ2UtaG9vaworICAgICAgICAgICAgICAgICAg
ICAgIydtYXJrZG93bi10cy0tb3V0bGluZS12aWV3LWNoYW5nZSBuaWwgdCkpCisKKyAgICAgICAg
IChwcm9nbgorICAgICAgICAgICAobWFrZS1sb2NhbC12YXJpYWJsZSAnbWFya2Rvd24tdHMtaGlk
ZS1tYXJrdXApCisgICAgICAgICAgIChtYWtlLWxvY2FsLXZhcmlhYmxlICdmb250LWxvY2stZXh0
cmEtbWFuYWdlZC1wcm9wcykKKyAgICAgICAgICAgKGRvbGlzdCAocHJvcCAnKGludmlzaWJsZSBk
aXNwbGF5IGJ1dHRvbiBjYXRlZ29yeSBhY3Rpb24gaGVscC1lY2hvKSkKKyAgICAgICAgICAgICAo
YWRkLXRvLWxpc3QgJ2ZvbnQtbG9jay1leHRyYS1tYW5hZ2VkLXByb3BzIHByb3ApKSkKKworICAg
ICAgICAgKHdoZW4gKHRyZWVzaXQtcmVhZHktcCAnaHRtbCB0KQorICAgICAgICAgICAodHJlZXNp
dC1wYXJzZXItY3JlYXRlICdodG1sKQorICAgICAgICAgICAocmVxdWlyZSAnaHRtbC10cy1tb2Rl
KQorICAgICAgICAgICAoZGVmdmFyIGh0bWwtdHMtbW9kZS0tZm9udC1sb2NrLXNldHRpbmdzKQor
ICAgICAgICAgICAoZGVmdmFyIGh0bWwtdHMtbW9kZS0tdHJlZXNpdC1mb250LWxvY2stZmVhdHVy
ZS1saXN0KQorICAgICAgICAgICAoc2V0cS1sb2NhbCB0cmVlc2l0LWZvbnQtbG9jay1zZXR0aW5n
cworICAgICAgICAgICAgICAgICAgICAgICAoYXBwZW5kIHRyZWVzaXQtZm9udC1sb2NrLXNldHRp
bmdzCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaHRtbC10cy1tb2RlLS1mb250LWxv
Y2stc2V0dGluZ3MpKQorICAgICAgICAgICAoc2V0cS1sb2NhbCB0cmVlc2l0LWZvbnQtbG9jay1m
ZWF0dXJlLWxpc3QKKyAgICAgICAgICAgICAgICAgICAgICAgKHRyZWVzaXQtbWVyZ2UtZm9udC1s
b2NrLWZlYXR1cmUtbGlzdAorICAgICAgICAgICAgICAgICAgICAgICAgdHJlZXNpdC1mb250LWxv
Y2stZmVhdHVyZS1saXN0CisgICAgICAgICAgICAgICAgICAgICAgICBodG1sLXRzLW1vZGUtLXRy
ZWVzaXQtZm9udC1sb2NrLWZlYXR1cmUtbGlzdCkpCisgICAgICAgICAgIChzZXRxLWxvY2FsIHRy
ZWVzaXQtcmFuZ2Utc2V0dGluZ3MKKyAgICAgICAgICAgICAgICAgICAgICAgKGFwcGVuZCB0cmVl
c2l0LXJhbmdlLXNldHRpbmdzCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHRyZWVz
aXQtcmFuZ2UtcnVsZXMKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOmVtYmVkICdo
dG1sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDpob3N0ICdtYXJrZG93bgorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6bG9jYWwgdAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAnKChodG1sX2Jsb2NrKSBAaHRtbCkKKworICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICA6ZW1iZWQgJ2h0bWwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgOmhvc3QgJ21hcmtkb3duLWlubGluZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAnKChodG1sX3RhZykgQGh0bWwpKSkpKQorCisgICAgICAgICAod2hlbiAodHJlZXNpdC1yZWFk
eS1wICd5YW1sIHQpCisgICAgICAgICAgIChyZXF1aXJlICd5YW1sLXRzLW1vZGUpCisgICAgICAg
ICAgIChkZWZ2YXIgeWFtbC10cy1tb2RlLS1mb250LWxvY2stc2V0dGluZ3MpCisgICAgICAgICAg
IChkZWZ2YXIgeWFtbC10cy1tb2RlLS1mb250LWxvY2stZmVhdHVyZS1saXN0KQorICAgICAgICAg
ICAoc2V0cS1sb2NhbCB0cmVlc2l0LWZvbnQtbG9jay1zZXR0aW5ncworICAgICAgICAgICAgICAg
ICAgICAgICAoYXBwZW5kIHRyZWVzaXQtZm9udC1sb2NrLXNldHRpbmdzCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgeWFtbC10cy1tb2RlLS1mb250LWxvY2stc2V0dGluZ3MpKQorICAg
ICAgICAgICAoc2V0cS1sb2NhbCB0cmVlc2l0LWZvbnQtbG9jay1mZWF0dXJlLWxpc3QKKyAgICAg
ICAgICAgICAgICAgICAgICAgKHRyZWVzaXQtbWVyZ2UtZm9udC1sb2NrLWZlYXR1cmUtbGlzdAor
ICAgICAgICAgICAgICAgICAgICAgICAgdHJlZXNpdC1mb250LWxvY2stZmVhdHVyZS1saXN0Cisg
ICAgICAgICAgICAgICAgICAgICAgICB5YW1sLXRzLW1vZGUtLWZvbnQtbG9jay1mZWF0dXJlLWxp
c3QpKQorICAgICAgICAgICAoc2V0cS1sb2NhbCB0cmVlc2l0LXJhbmdlLXNldHRpbmdzCisgICAg
ICAgICAgICAgICAgICAgICAgIChhcHBlbmQgdHJlZXNpdC1yYW5nZS1zZXR0aW5ncworICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICh0cmVlc2l0LXJhbmdlLXJ1bGVzCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIDplbWJlZCAneWFtbAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICA6aG9zdCAnbWFya2Rvd24KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgOmxvY2FsIHQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJygobWludXNfbWV0
YWRhdGEpIEB5YW1sKSkpKSkKKworICAgICAgICAgKHdoZW4gKHRyZWVzaXQtcmVhZHktcCAndG9t
bCB0KQorICAgICAgICAgICAocmVxdWlyZSAndG9tbC10cy1tb2RlKQorICAgICAgICAgICAoZGVm
dmFyIHRvbWwtdHMtbW9kZS0tZm9udC1sb2NrLXNldHRpbmdzKQorICAgICAgICAgICAoZGVmdmFy
IHRvbWwtdHMtbW9kZS0tZm9udC1sb2NrLWZlYXR1cmUtbGlzdCkKKyAgICAgICAgICAgKHNldHEg
dHJlZXNpdC1mb250LWxvY2stc2V0dGluZ3MKKyAgICAgICAgICAgICAgICAgKGFwcGVuZCB0cmVl
c2l0LWZvbnQtbG9jay1zZXR0aW5ncworICAgICAgICAgICAgICAgICAgICAgICAgIHRvbWwtdHMt
bW9kZS0tZm9udC1sb2NrLXNldHRpbmdzKSkKKyAgICAgICAgICAgKHNldHEtbG9jYWwgdHJlZXNp
dC1mb250LWxvY2stZmVhdHVyZS1saXN0CisgICAgICAgICAgICAgICAgICAgICAgICh0cmVlc2l0
LW1lcmdlLWZvbnQtbG9jay1mZWF0dXJlLWxpc3QKKyAgICAgICAgICAgICAgICAgICAgICAgIHRy
ZWVzaXQtZm9udC1sb2NrLWZlYXR1cmUtbGlzdAorICAgICAgICAgICAgICAgICAgICAgICAgdG9t
bC10cy1tb2RlLS1mb250LWxvY2stZmVhdHVyZS1saXN0KSkKKyAgICAgICAgICAgKHNldHEtbG9j
YWwgdHJlZXNpdC1yYW5nZS1zZXR0aW5ncworICAgICAgICAgICAgICAgICAgICAgICAoYXBwZW5k
IHRyZWVzaXQtcmFuZ2Utc2V0dGluZ3MKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAo
dHJlZXNpdC1yYW5nZS1ydWxlcworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6ZW1i
ZWQgJ3RvbWwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOmhvc3QgJ21hcmtkb3du
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDpsb2NhbCB0CisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICcoKHBsdXNfbWV0YWRhdGEpIEB0b21sKSkpKSkKKworICAgICAg
ICAgOzsgU3VwcG9ydCBmb3IgZXhlY3V0aW5nIGNvbW1hbmRzIGluIGEgY29kZS1ibG9jayBjb250
ZXh0LgorCisgICAgICAgICA7OyBFbmFibGUgdGhlIG1pbm9yIG1vZGUgYG1hcmtkb3duLXRzLWNv
ZGUtYmxvY2stbW9kZScgYW5kIGl0cyBrZXltYXAKKyAgICAgICAgIDs7IHdoZW4gcG9pbnQgaXMg
d2l0aGluIGEgY29kZSBibG9jay4KKyAgICAgICAgIChhZGQtaG9vayAncG9zdC1jb21tYW5kLWhv
b2sKKyAgICAgICAgICAgICAgICAgICAjJ21hcmtkb3duLXRzLS1lbmFibGUtY29kZS1ibG9jay1t
b2RlIG5pbCAnbG9jYWwpCisgICAgICAgICA7OyBJZiBgc2F2ZS1wbGFjZS1tb2RlJyBvciBzaW1p
bGFyIGlzIHVzZWQsIHBvaW50IGNvdWxkIHN0YXJ0IHdpdGhpbiBhCisgICAgICAgICA7OyBjb2Rl
IGJsb2NrIHNvIGluaXRpYWxpemUgdGhhdCBzdGF0ZS4KKyAgICAgICAgIChydW4td2l0aC1pZGxl
LXRpbWVyIDAuMDEgbmlsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjJ21hcmtkb3du
LXRzLS1lbmFibGUtY29kZS1ibG9jay1tb2RlKQorICAgICAgICAgOzsgRm9yIGVhY2ggZWxpZ2li
bGUgY29tbWFuZCwgZXhlY3V0ZSBpdCBpbiBhIGNvZGUtYmxvY2sgY29udGV4dCwKKyAgICAgICAg
IDs7IG90aGVyd2lzZSBpbiB0aGUgYG1hcmtkb3duLXRzLW1vZGUnIGJ1ZmZlcidzIGNvbnRleHQu
CisgICAgICAgICAoYWRkLWhvb2sgJ3ByZS1jb21tYW5kLWhvb2sKKyAgICAgICAgICAgICAgICAg
ICAjJ21hcmtkb3duLXRzLS1tYXliZS1ydW4tY29tbWFuZC1pbi1jb2RlLWJsb2NrIG5pbCAnbG9j
YWwpKSkKIAogICAodHJlZXNpdC1tYWpvci1tb2RlLXNldHVwKQotICAobWFya2Rvd24tdHMtLXNl
dC1oaWRlLW1hcmt1cCBtYXJrZG93bi10cy1oaWRlLW1hcmt1cCkpCisKKyAgOzsgRG8gbm90IGVu
YWJsZSBgaml0LWxvY2stbW9kZScgaW4gaW5kaXJlY3QgYnVmZmVycyBzdWNoIGFzIHRoZSBvbmUK
KyAgOzsgd2UgdXNlIGZvciBjb2RlIGJsb2NrIGNvbW1hbmRzLgorICAodW5sZXNzIChidWZmZXIt
YmFzZS1idWZmZXIpCisgICAgKGppdC1sb2NrLXJlZ2lzdGVyICMnbWFya2Rvd24tdHMtLWZvbnRp
ZnktYmFyZS11cmkpKQorCisgICh1bmxlc3MgbWFya2Rvd24tdHMtLXNldC11cC1pbmxpbmUKKyAg
ICA7OyBPcmRlciBtYXR0ZXJzOiBgbWFya2Rvd24tdHMtLXNldC1oaWRlLW1hcmt1cCcgY2FsbHMg
YGZvbnQtbG9jay1mbHVzaCcKKyAgICA7OyAob25seSBtZWFuaW5nZnVsIG9uY2UgYHRyZWVzaXQt
bWFqb3ItbW9kZS1zZXR1cCcgaGFzIHdpcmVkIHVwCisgICAgOzsgZm9udC1sb2NrKSwgYW5kIGBt
YXJrZG93bi10cy1kZWZhdWx0LWZvbGRpbmcnIGNhbGxzIG91dGxpbmUKKyAgICA7OyBjb21tYW5k
cyB0aGF0IHJlbHkgb24gYG91dGxpbmUtc2VhcmNoLWZ1bmN0aW9uJywgd2hpY2gKKyAgICA7OyBg
dHJlZXNpdC1tYWpvci1tb2RlLXNldHVwJyBpbnN0YWxscyBmcm9tIGB0cmVlc2l0LW91dGxpbmUt
cHJlZGljYXRlJy4KKyAgICAobWFya2Rvd24tdHMtLXNldC1oaWRlLW1hcmt1cCBtYXJrZG93bi10
cy1oaWRlLW1hcmt1cCkKKyAgICA7OyBSZXNwZWN0IHRoZSB1c2VyJ3MgZGVmYXVsdCBvdXRsaW5l
IGZvbGRpbmcuCisgICAgKHBjYXNlIG1hcmtkb3duLXRzLWRlZmF1bHQtZm9sZGluZworICAgICAg
KCdzaG93LWFsbCAoaWdub3JlKSkKKyAgICAgICgnZm9sZC1hbGwgKG91dGxpbmUtaGlkZS1zdWJs
ZXZlbHMgMSkpCisgICAgICAoJ2ZvbGQtaGVhZGluZ3MgKG91dGxpbmUtc2hvdy1hbGwpCisgICAg
ICAgICAgICAgICAgICAgICAgKG91dGxpbmUtaGlkZS1yZWdpb24tYm9keSAocG9pbnQtbWluKSAo
cG9pbnQtbWF4KSkpKSkpCisKKyhkZWZ1biBtYXJrZG93bi10cy1tb2RlLWluc3RhbGwtcGFyc2Vy
cyAoYXJnKQorICAiSW5zdGFsbCBgbWFya2Rvd24tdHMtbW9kZScgdHJlZS1zaXR0ZXIgbGFuZ3Vh
Z2UgcGFyc2Vycy4KK0lmIG5lZWRlZCwgaW5zdGFsbCB0aGUgcmVxdWlyZWQgcGFyc2VycyBmb3Ig
YG1hcmtkb3duJyBhbmQgYG1hcmtkb3duLWlubGluZScuCitXaXRoIGEgcHJlZml4IGFyZ3VtZW50
LCBBUkcsIGlmIG5lZWRlZCwgaW5zdGFsbCBwYXJzZXJzIGZvciBgaHRtbCcsCitgeWFtbCcsIGFu
ZCBgdG9tbCcuIgorICAoaW50ZXJhY3RpdmUgIlAiKQorICAodW5sZXNzICh0cmVlc2l0LXJlYWR5
LXAgJ21hcmtkb3duIHQpCisgICAgKHRyZWVzaXQtaW5zdGFsbC1sYW5ndWFnZS1ncmFtbWFyICdt
YXJrZG93bikpCisgICh1bmxlc3MgKHRyZWVzaXQtcmVhZHktcCAnbWFya2Rvd24taW5saW5lIHQp
CisgICAgKHRyZWVzaXQtaW5zdGFsbC1sYW5ndWFnZS1ncmFtbWFyICdtYXJrZG93bi1pbmxpbmUp
KQorICAod2hlbiBhcmcKKyAgICAodW5sZXNzICh0cmVlc2l0LXJlYWR5LXAgJ2h0bWwgdCkKKyAg
ICAgIChyZXF1aXJlICdodG1sLXRzLW1vZGUpCisgICAgICAodHJlZXNpdC1pbnN0YWxsLWxhbmd1
YWdlLWdyYW1tYXIgJ2h0bWwpKQorICAgICh1bmxlc3MgKHRyZWVzaXQtcmVhZHktcCAneWFtbCB0
KQorICAgICAgKHJlcXVpcmUgJ3lhbWwtdHMtbW9kZSkKKyAgICAgICh0cmVlc2l0LWluc3RhbGwt
bGFuZ3VhZ2UtZ3JhbW1hciAneWFtbCkpCisgICAgKHVubGVzcyAodHJlZXNpdC1yZWFkeS1wICd0
b21sIHQpCisgICAgICAocmVxdWlyZSAndG9tbC10cy1tb2RlKQorICAgICAgKHRyZWVzaXQtaW5z
dGFsbC1sYW5ndWFnZS1ncmFtbWFyICd0b21sKSkpKQogCiA7OzsjIyNhdXRvbG9hZAogKGRlZmlu
ZS1kZXJpdmVkLW1vZGUgbWFya2Rvd24tdHMtbW9kZSB0ZXh0LW1vZGUgIk1hcmtkb3duIgotICAi
TWFqb3IgbW9kZSBmb3IgZWRpdGluZyBNYXJrZG93biB1c2luZyB0cmVlLXNpdHRlciBncmFtbWFy
LiIKLQotICAoc2V0cS1sb2NhbCBjb21tZW50LXN0YXJ0ICI8IS0tICIpCi0gIChzZXRxLWxvY2Fs
IGNvbW1lbnQtZW5kICIgLS0+IikKLQotICAoc2V0cS1sb2NhbCBmb250LWxvY2stZGVmYXVsdHMg
bmlsCi0JICAgICAgdHJlZXNpdC1mb250LWxvY2stZmVhdHVyZS1saXN0ICcoKGRlbGltaXRlciBo
ZWFkaW5nKQotCQkJCQkgICAgICAgKHBhcmFncmFwaCkKLQkJCQkJICAgICAgIChwYXJhZ3JhcGgt
aW5saW5lKSkpCi0KLSAgKHNldHEtbG9jYWwgdHJlZXNpdC1zaW1wbGUtaW1lbnUtc2V0dGluZ3MK
LSAgICAgICAgICAgICAgYCgoIkhlYWRpbmdzIiAsIydtYXJrZG93bi10cy1pbWVudS1ub2RlLXAK
LSAgICAgICAgICAgICAgICAgbmlsICwjJ21hcmtkb3duLXRzLWltZW51LW5hbWUtZnVuY3Rpb24p
KSkKLSAgKHNldHEtbG9jYWwgdHJlZXNpdC1vdXRsaW5lLXByZWRpY2F0ZSAjJ21hcmtkb3duLXRz
LW91dGxpbmUtcHJlZGljYXRlKQotCi0gICh3aGVuIChhbmQgKHRyZWVzaXQtZW5zdXJlLWluc3Rh
bGxlZCAnbWFya2Rvd24pCi0gICAgICAgICAgICAgKHRyZWVzaXQtZW5zdXJlLWluc3RhbGxlZCAn
bWFya2Rvd24taW5saW5lKSkKLSAgICAodHJlZXNpdC1wYXJzZXItY3JlYXRlICdtYXJrZG93bi1p
bmxpbmUpCi0gICAgKHRyZWVzaXQtcGFyc2VyLWNyZWF0ZSAnbWFya2Rvd24pCi0gICAgKG1hcmtk
b3duLXRzLXNldHVwKSkpCisgICJNYWpvciBtb2RlIGZvciBlZGl0aW5nIE1hcmtkb3duIHVzaW5n
IHRyZWUtc2l0dGVyIGdyYW1tYXIuCitOT1RFOiBTZWUgYG1hcmtkb3duLXRzLS1zZXQtdXAtaW5s
aW5lJy4iCisgIChpZiAoYW5kICh0cmVlc2l0LWVuc3VyZS1pbnN0YWxsZWQgJ21hcmtkb3duKQor
ICAgICAgICAgICAodHJlZXNpdC1lbnN1cmUtaW5zdGFsbGVkICdtYXJrZG93bi1pbmxpbmUpKQor
ICAgICAgKG1hcmtkb3duLXRzLS1zZXQtdXApCisgICAgKHdhcm4gIm1hcmtkb3duLXRzLW1vZGUg
Y2Fubm90IGJlIHNldCB1cDsgdXNpbmcgZnVuZGFtZW50YWwtbW9kZS4KK1RoZSB0cmVlLXNpdHRl
ciBwYXJzZXJzIGBtYXJrZG93bicgYW5kIGBtYXJrZG93bi1pbmxpbmUnIHdlcmUgbm90IGZvdW5k
LgorVXNlIHRoZSBjb21tYW5kIGBtYXJrZG93bi10cy1tb2RlLWluc3RhbGwtcGFyc2VycycgdG8g
aW5zdGFsbCB0aGVtLgorV2l0aCBhIHByZWZpeCBhcmd1bWVudCwgaXQgY2FuIGFsc28gaW5zdGFs
bCBvcHRpb25hbCBwYXJzZXJzLiIpCisgICAgKGZ1bmRhbWVudGFsLW1vZGUpKSkKIAogKGRlcml2
ZWQtbW9kZS1hZGQtcGFyZW50cyAnbWFya2Rvd24tdHMtbW9kZSAnKG1hcmtkb3duLW1vZGUpKQog
Ci07OzsjIyNhdXRvbG9hZAotKGRlZnVuIG1hcmtkb3duLXRzLW1vZGUtbWF5YmUgKCkKLSAgIkVu
YWJsZSBgbWFya2Rvd24tdHMtbW9kZScgd2hlbiBpdHMgZ3JhbW1hciBpcyBhdmFpbGFibGUuCi1B
bHNvIHByb3Bvc2UgdG8gaW5zdGFsbCB0aGUgZ3JhbW1hciB3aGVuIGB0cmVlc2l0LWVuYWJsZWQt
bW9kZXMnCi1pcyB0IG9yIGNvbnRhaW5zIHRoZSBtb2RlIG5hbWUuIgotICAoZGVjbGFyZS1mdW5j
dGlvbiB0cmVlc2l0LWxhbmd1YWdlLWF2YWlsYWJsZS1wICJ0cmVlc2l0LmMiKQotICAoaWYgKG9y
ICh0cmVlc2l0LWxhbmd1YWdlLWF2YWlsYWJsZS1wICdtYXJrZG93bikKLSAgICAgICAgICAoZXEg
dHJlZXNpdC1lbmFibGVkLW1vZGVzIHQpCi0gICAgICAgICAgKG1lbXEgJ21hcmtkb3duLXRzLW1v
ZGUgdHJlZXNpdC1lbmFibGVkLW1vZGVzKSkKLSAgICAgIChtYXJrZG93bi10cy1tb2RlKQotICAg
IChmdW5kYW1lbnRhbC1tb2RlKSkpCisoZGVmaW5lLW1pbm9yLW1vZGUgbWFya2Rvd24tdHMtY29k
ZS1ibG9jay1tb2RlCisgICJNb2RlIGVuYWJsZWQgaWYgcG9pbnQgaXMgd2l0aGluIGEgZmVuY2Vk
IGNvZGUgYmxvY2suIgorICA6aW50ZXJhY3RpdmUgbmlsKQogCiA7OzsjIyNhdXRvbG9hZAogKHdo
ZW4gKGJvdW5kcCAndHJlZXNpdC1tYWpvci1tb2RlLXJlbWFwLWFsaXN0KQotICAoYWRkLXRvLWxp
c3QgJ2F1dG8tbW9kZS1hbGlzdCAnKCJcXC5tZFxcJyIgLiBtYXJrZG93bi10cy1tb2RlLW1heWJl
KSkKLSAgOzsgVG8gYmUgYWJsZSB0byB0b2dnbGUgYmV0d2VlbiBhbiBleHRlcm5hbCBwYWNrYWdl
IGFuZCBjb3JlIHRzLW1vZGU6CisgIChhZGQtdG8tbGlzdCAnYXV0by1tb2RlLWFsaXN0ICcoIlxc
Lm1kXFwnIiAuIG1hcmtkb3duLXRzLW1vZGUpKQorICAoYWRkLXRvLWxpc3QgJ2F1dG8tbW9kZS1h
bGlzdCAnKCJcXC5tYXJrZG93blxcJyIgLiBtYXJrZG93bi10cy1tb2RlKSkKKyAgKGFkZC10by1s
aXN0ICdhdXRvLW1vZGUtYWxpc3QgJygiXFwubWR4XFwnIiAuIG1hcmtkb3duLXRzLW1vZGUpKQog
ICAoYWRkLXRvLWxpc3QgJ3RyZWVzaXQtbWFqb3ItbW9kZS1yZW1hcC1hbGlzdAogICAgICAgICAg
ICAgICAgJyhtYXJrZG93bi1tb2RlIC4gbWFya2Rvd24tdHMtbW9kZSkpKQogCi0tIAoyLjUzLjAK
Cg==
--=-=-=--




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

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


Received: (at 80740) by debbugs.gnu.org; 9 Apr 2026 19:01:53 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Thu Apr 09 15:01:53 2026
Received: from localhost ([127.0.0.1]:42277 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1wAudU-0003Tu-Nl
	for submit <at> debbugs.gnu.org; Thu, 09 Apr 2026 15:01:53 -0400
Received: from mail-vs1-xe2d.google.com ([2607:f8b0:4864:20::e2d]:56685)
 by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128)
 (Exim 4.84_2) (envelope-from <shipmints@HIDDEN>)
 id 1wAudR-0003Ta-B2
 for 80740 <at> debbugs.gnu.org; Thu, 09 Apr 2026 15:01:50 -0400
Received: by mail-vs1-xe2d.google.com with SMTP id
 ada2fe7eead31-60591ade110so806931137.1
 for <80740 <at> debbugs.gnu.org>; Thu, 09 Apr 2026 12:01:49 -0700 (PDT)
ARC-Seal: i=1; a=rsa-sha256; t=1775761308; cv=none;
 d=google.com; s=arc-20240605;
 b=TZ9SqXNmKE39V5kTD3Yzzwfd1pQ2JuaJ+IL4SPjpyf9NvAiZcGzng/7wNbMML1G6no
 FCdWW1b57iyDGldBDkXcw6AlFJKXww/vy2Bhqr4A/iGTiq/nF4APNJ39w9X6w+dhbaei
 f9VE3lwWCD0HZ4LEdHEuBp8KIwae57vGGSd8QFgxX4jCgY+4uBuLflvjxx6IsB/Ix26I
 7eF4OKZOcqndI3JWuyILENyd1ZwwTvDZD4fgBYQ8cKv9ualgxA5jvZkCPpLay/p2SAlw
 He8XThDbXm3BVfXCtNup393XofjgTnQsqt6FGzUOAyD19iQnxp62qEmU79M4n0TGa0Uc
 GD0Q==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com;
 s=arc-20240605; 
 h=cc:to:subject:message-id:date:from:in-reply-to:references
 :mime-version:dkim-signature;
 bh=MU/GuptrJ1ol+K3SZfcaZcuzgUrGLCzN9I9RDSDsvjI=;
 fh=E1K4wF5t4FhEBsXrFNQ6leKfr8swX4Jk2WcgMjSoBfo=;
 b=ZsIcBd65tvKYwyilTrnICQG5baBzOYgcZOnH46m3yhUrWkfHa+z/GmNwqeQqi4BL3y
 iR8zTrsT+uUx7a89pw+uXsVeWWBhBOB8oIwmbq0H6qa/2hiQ2+25uY94afeLh48ryEBn
 fpkp+ID5NdO4HuE3oZaWM4PQnygo/bTuJEKfECHaYmeAeoPfDK3TXiGJbTCOMtZH9lRU
 t2dIAeS7y6Rgt5SrKLESAbY1SWFnqAx2s1PwNiA77ZHOfZzluZRpt/upkcJx7ZEn1Xwz
 Ko7GFXQ2Onzh54Y8qvmGhTlH3pngwVnZ6eAMNglVCloivHBkdh87rHr2oXjhKjh69wn/
 VfQQ==; darn=debbugs.gnu.org
ARC-Authentication-Results: i=1; mx.google.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=gmail.com; s=20251104; t=1775761308; x=1776366108; darn=debbugs.gnu.org;
 h=cc:to:subject:message-id:date:from:in-reply-to:references
 :mime-version:from:to:cc:subject:date:message-id:reply-to;
 bh=MU/GuptrJ1ol+K3SZfcaZcuzgUrGLCzN9I9RDSDsvjI=;
 b=P+8Xaz/EqAj93lDbG8ekSpZXwXiOSTlJ3wWVMjPOptMzvPWCpBpQyLpvyuWbngjQXa
 AtViaDjFgG2oHE3SSpIKL0STp5sHg6oo4i/oNnWKf87tCCkB0vhfbzV1bI3dHv4mj7gk
 jtY88n7n9YbSyExYnoyKYyg41x7r78IiLLWx3GQeSdZnxg9EWJboMr4sOMISfINlFmmi
 2aWCXu+HITSDINwNNCU/TaGFjeMhs+R+5GuAvw9fk5a8F526BP2P1F3d8FpjdlZIwmyj
 ju9hsz3Z4+80aBqqBNJlmy3JXP6OsCl2CVcKugwF2Hk2GfPBleIVa0fRnoxJPlkAJr1y
 uQzg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20251104; t=1775761308; x=1776366108;
 h=cc:to:subject:message-id:date:from:in-reply-to:references
 :mime-version:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
 :message-id:reply-to;
 bh=MU/GuptrJ1ol+K3SZfcaZcuzgUrGLCzN9I9RDSDsvjI=;
 b=VaJ9BqTjMyl1lEPYGn2dyf93LYJw8Ziiz4KkVaV15e2wYS6/5lF7slzUZSjxVCEJCZ
 tnOu2Kh14rjJQcQdTT3uu1uqyG6NNGOBTbMOQIKrIDhfEntujpcS3bUAOuoytaC9yzan
 xVb0RXu2RCvL2Z4MLaFjOe1Ft1iw1rZwhUlasS8DG8eiy+iV9mashSPO+ojO/Fjmb4yv
 bWtkGhjCPoTbu0q7ZavxCEBhvSF3ZFOFpUFThK2YtiFziq5j/vIUOXY7buxi/ddBokD2
 Y7vX3GK05GuVPphghpLzZ+kAP4df4uVAOLr3NN4JI9TZUlYp4hLCcKYNiBswDDrS6dW+
 0xfQ==
X-Forwarded-Encrypted: i=1;
 AJvYcCUlEzPRZSLNOMFOFK8sgD13hXC9lTzslaidEVKSA97kVC6oFBMMBPCBpvgxXwdCoavioSFqag==@debbugs.gnu.org
X-Gm-Message-State: AOJu0YwkN6/BDoO+YCYNSN7yH0XDuTthEpr2sfbk5/wjib4VABZqVo3l
 qO9c1xbyXEpKXhyljkFjkiNfHGLBkH5SSjE2H3Dw1vhhtbNnxzk/KYVLgmpYCxhoDHJ/fZfzBOz
 DWczwct/dayM2Jas++UWfwZd0t8Q/JAE=
X-Gm-Gg: AeBDieudM+eFLn9D9cALDmsP4t823/isHyONjEUeIVr4sUqjaR+nXwM41NHyNVMQbbX
 PyuUyWW1tMBBWwOFaaa3jfShPLrBl22Smr+v6KBe+KZlGYzWZuKvOLFHAgGGL4fu62+TpGvim+l
 0aeRFfTG2CBfHeI9sLoyNdvGqjOUEIq4D5ePuUQRnuOoEgcwj6Dp1x89cR1AaMPHf3lJBbfO7He
 sbeo2hfxaP9pAMKWb7xtd6c4WwHIs1B5YP06c9SvKHgZj6VzkU2sI+Q3MpUksIri2Cdcu+QvwtR
 a6xWOZRWmVWJZgHD006jMmLJTwu4Skm8RbkWIhjEfbWfIcczXOGM6JjNMmHj27TdFhF8bV2zc4l
 0WEWxlvspRJW9Qe0d79g8I4EMSEZkbc3ql1RfOxk4AtcSKx7P+a9Rxy1ynEA=
X-Received: by 2002:a67:e706:0:b0:605:5801:cb3d with SMTP id
 ada2fe7eead31-60a00e4303amr71528137.28.1775761308352; Thu, 09 Apr 2026
 12:01:48 -0700 (PDT)
MIME-Version: 1.0
References: <m2zf3jzamy.fsf@HIDDEN>
 <CAN+1HbrPGi5BY1EJ0B8Hgzbru_Q9TACCQGmkT63mXet_ouT0Ug@HIDDEN>
 <m25x61f1ch.fsf@HIDDEN> <87v7e0ezkh.fsf@HIDDEN>
In-Reply-To: <87v7e0ezkh.fsf@HIDDEN>
From: =?UTF-8?Q?St=C3=A9phane_Marks?= <shipmints@HIDDEN>
Date: Thu, 9 Apr 2026 15:01:36 -0400
X-Gm-Features: AQROBzCoT0Zs1lu6Vy1opMDgjrW_VKDtkLZKmogK-f9lMm0cLcKzafhfS4qNF8g
Message-ID: <CAN+1HboguqPbRr54bQ79PT1axLBDQvGb+3MWdtHfKdArjwmw4g@HIDDEN>
Subject: Re: bug#80740: 31.0.50; Improve 'markdown-ts-mode'
To: Juri Linkov <juri@HIDDEN>
Content-Type: multipart/alternative; boundary="000000000000fd840e064f0ba5a5"
X-Spam-Score: 1.0 (+)
X-Debbugs-Envelope-To: 80740
Cc: Yuan Fu <casouri@HIDDEN>, Rahul Martim Juliato <rahuljuliato@HIDDEN>,
 80740 <at> debbugs.gnu.org
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: 0.0 (/)

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

On Thu, Apr 9, 2026 at 14:54 Juri Linkov <juri@HIDDEN> wrote:

> > (markdown-ts-mode-maybe): Remove; auto-mode-alist now uses
> > markdown-ts-mode directly.
>
> Why?  'markdown-ts-mode-maybe' is intended to take into account
> the user customization in 'treesit-enabled-modes' that allows
> to define whether to use 'markdown-ts-mode' or 'markdown-mode'.


Isn't that what remappings are for?

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

<div dir=3D"auto"><span style=3D"font-family:-apple-system,sans-serif">On T=
hu, Apr 9, 2026 at 14:54 Juri Linkov &lt;<a href=3D"mailto:juri@HIDDEN"=
>juri@HIDDEN</a>&gt; wrote:</span><br></div><div dir=3D"auto"><div clas=
s=3D"gmail_quote gmail_quote_container"><blockquote class=3D"gmail_quote" s=
tyle=3D"margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">&gt;=
 (markdown-ts-mode-maybe): Remove; auto-mode-alist now uses<br>
&gt; markdown-ts-mode directly.<br>
<br>
Why?=C2=A0 &#39;markdown-ts-mode-maybe&#39; is intended to take into accoun=
t<br>
the user customization in &#39;treesit-enabled-modes&#39; that allows<br>
to define whether to use &#39;markdown-ts-mode&#39; or &#39;markdown-mode&#=
39;.</blockquote><div dir=3D"auto"><br></div><div dir=3D"auto">Isn&#39;t th=
at what remappings are for?</div></div></div>

--000000000000fd840e064f0ba5a5--




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

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


Received: (at 80740) by debbugs.gnu.org; 9 Apr 2026 18:55:04 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Thu Apr 09 14:55:03 2026
Received: from localhost ([127.0.0.1]:42185 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1wAuWr-0002k6-F2
	for submit <at> debbugs.gnu.org; Thu, 09 Apr 2026 14:55:03 -0400
Received: from mout-p-103.mailbox.org ([2001:67c:2050:0:465::103]:45756)
 by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.84_2) (envelope-from <juri@HIDDEN>) id 1wAuWg-0002gq-IJ
 for 80740 <at> debbugs.gnu.org; Thu, 09 Apr 2026 14:54:52 -0400
Received: from smtp1.mailbox.org (smtp1.mailbox.org [10.196.197.1])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256)
 (No client certificate requested)
 by mout-p-103.mailbox.org (Postfix) with ESMTPS id 4fs8Hg1Yn1z9t1r;
 Thu,  9 Apr 2026 20:54:39 +0200 (CEST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linkov.net; s=MBO0001; 
 t=1775760879;
 h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
 in-reply-to:in-reply-to:references:references;
 bh=yrc0QUxD6zkonkN69PsBcAR96fvLcLRgeMPccJAD4Ec=;
 b=LkP8zQ/IFfNJ3beBcSiv/njRNaY/Dc+Vk/m8ewqehJnpMbApghDSGz/Xnzo2VV8if96iA0
 Og7ZoFGXep56T2kKH93E2mZ/tQ5gVFu1bNYI5qbwd8RzrH8/o0249ixTDyRnoCs0nk5ATC
 pffLJLLMXeILYT40VpZtQucxc7CDfvqN2uwahpO4wkP+p2aJtz83xIKXKemTpRuh0K5uka
 sz9NHsbKeThZOJHDo5u0gffgitm9rOgae/MVhhpwgTiH/qhbvmRpQvRPpBq026KlBm6GsT
 CpySxSsxEk/hrNwnVxlL9hxmHVnJEwsot64bqTCEDX0GXjVts6diGlk+9FTb8g==
From: Juri Linkov <juri@HIDDEN>
To: Rahul Martim Juliato <rahuljuliato@HIDDEN>
Subject: Re: bug#80740: 31.0.50; Improve 'markdown-ts-mode'
In-Reply-To: <m25x61f1ch.fsf@HIDDEN>
Organization: LINKOV.NET
References: <m2zf3jzamy.fsf@HIDDEN>
 <CAN+1HbrPGi5BY1EJ0B8Hgzbru_Q9TACCQGmkT63mXet_ouT0Ug@HIDDEN>
 <m25x61f1ch.fsf@HIDDEN>
Date: Thu, 09 Apr 2026 21:52:30 +0300
Message-ID: <87v7e0ezkh.fsf@HIDDEN>
MIME-Version: 1.0
Content-Type: text/plain
X-Spam-Score: -0.7 (/)
X-Debbugs-Envelope-To: 80740
Cc: Yuan Fu <casouri@HIDDEN>, 80740 <at> debbugs.gnu.org,
 =?iso-8859-1?Q?St=E9phane?= Marks <shipmints@HIDDEN>
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.7 (-)

> (markdown-ts-mode-maybe): Remove; auto-mode-alist now uses
> markdown-ts-mode directly.

Why?  'markdown-ts-mode-maybe' is intended to take into account
the user customization in 'treesit-enabled-modes' that allows
to define whether to use 'markdown-ts-mode' or 'markdown-mode'.




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

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


Received: (at 80740) by debbugs.gnu.org; 9 Apr 2026 08:31:40 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Thu Apr 09 04:31:40 2026
Received: from localhost ([127.0.0.1]:36901 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1wAknb-0004ay-AU
	for submit <at> debbugs.gnu.org; Thu, 09 Apr 2026 04:31:39 -0400
Received: from eggs.gnu.org ([2001:470:142:3::10]:40092)
 by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.84_2) (envelope-from <eliz@HIDDEN>) id 1wAknW-0004ah-A2
 for 80740 <at> debbugs.gnu.org; Thu, 09 Apr 2026 04:31:37 -0400
Received: from fencepost.gnu.org ([2001:470:142:3::e])
 by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.90_1) (envelope-from <eliz@HIDDEN>)
 id 1wAknQ-0006zV-Ut; Thu, 09 Apr 2026 04:31:28 -0400
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org;
 s=fencepost-gnu-org; h=MIME-version:References:Subject:In-Reply-To:To:From:
 Date; bh=WhFv6ifkCgnr25HQtJS26BKXbsJ+VNnk7woxtPfMBAQ=; b=cah4AKur+q6bIWQPj1fm
 EPxnwUf+OTh58L1djAbrXx16T0Q5W7MGhDZbHI8xsnkxEjyasMF1Lqb8am1vO31e04Mj4D6r52ECE
 0sy5V6gAkKfdlJTTUIahKueRq7FSQwFSwEmtJEq5QK9jcPRVMkiCawj2T8cTMqgSrRp4imEa6mZ/1
 uAREUDqZtFedj3CU4gTkJn3iMGPqpSB6e7UDA5S9rqr+Y4z7OzkwhAtVmmrNp1GzfRmEHqdYgvMYn
 nqdFjNpQm//vkdYAiDVEUHlM6J8Q1Q9iVF1LfDseOIEgOeRimhCoUQrjEErlqAqaY8qdAPq5I+4nG
 zdDNW2dwldxO5w==;
Date: Thu, 09 Apr 2026 11:31:24 +0300
Message-Id: <86v7e0v8kj.fsf@HIDDEN>
From: Eli Zaretskii <eliz@HIDDEN>
To: Rahul Martim Juliato <rahuljuliato@HIDDEN>
In-Reply-To: <m25x61f1ch.fsf@HIDDEN> (message from Rahul Martim Juliato on
 Wed, 08 Apr 2026 21:01:50 -0300)
Subject: Re: bug#80740: 31.0.50; Improve 'markdown-ts-mode'
References: <m2zf3jzamy.fsf@HIDDEN>
 <CAN+1HbrPGi5BY1EJ0B8Hgzbru_Q9TACCQGmkT63mXet_ouT0Ug@HIDDEN>
 <m25x61f1ch.fsf@HIDDEN>
MIME-version: 1.0
Content-type: text/plain; charset=utf-8
Content-Transfer-Encoding: 8bit
X-Spam-Score: -2.3 (--)
X-Debbugs-Envelope-To: 80740
Cc: casouri@HIDDEN, 80740 <at> debbugs.gnu.org, shipmints@HIDDEN
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -3.3 (---)

> Cc: Yuan Fu <casouri@HIDDEN>, Rahul Martim Juliato <rahuljuliato@HIDDEN>,
>  80740 <at> debbugs.gnu.org
> From: Rahul Martim Juliato <rahuljuliato@HIDDEN>
> Date: Wed, 08 Apr 2026 21:01:50 -0300
> 
> +(defcustom markdown-ts-checked-checkbox "☑"
> +  "If markup is hidden, display this checked task list string.
> +nil displays the raw markup."
> +  :type '(choice (string :tag "Display specified string")
> +                 (const  :tag "Display original markup" nil))
> +  :safe #'string-or-null-p
> +  :version "31.1"
> +  :package-version "1.0")
> +
> +(defcustom markdown-ts-unchecked-checkbox "☐"
> +  "If markup is hidden, display this unchecked task list string.
> +nil displays the raw markup."
> +  :type '(choice (string :tag "Display specified string")
> +                 (const  :tag "Display original markup" nil))
> +  :safe #'string-or-null-p
> +  :version "31.1"
> +  :package-version "1.0")

These non-ASCII characters should not be used without checking if they
can be displayed (see char-displayable-p).  This is especially
important on TTY frames.  Bonus points for designing ASCII
replacements for when these non-ASCII symbols cannot be displayed.

> +(defcustom markdown-ts-thematic-break-character ?─
> +  "If markup is hidden, display this thematic break string.
> +The character is repeated to fill the window width.
> +nil displays the raw markup."
> +  :type '(choice (character :tag "Display specified character")
> +                 (const     :tag "Display original markup" nil))
> +  :version "31.1"
> +  :package-version "1.0")
> +
> +(defcustom markdown-ts-hard-line-break-backslash "¶"
> +  "If markup is hidden, display this for a backslash hard line break.
> +The value can be a character or a string; nil keeps the raw markup."
> +  :type '(choice (character :tag "Display specified character")
> +                 (string    :tag "Display specified string")
> +                 (const     :tag "Display original markup" nil))
> +  :version "31.1"
> +  :package-version "1.0")

Same here.

> +(defcustom markdown-ts-hard-line-break-space
> +  (lambda (n) (make-string n ?¶))

Why is ?¶ hard-coded, instead of using
markdown-ts-hard-line-break-backslash?

> +(defface markdown-ts-emphasis '((t (:inherit italic)))
> +  "Face for Markdown emphasis (italic) text.")
> +
> +(defface markdown-ts-bold '((t (:inherit bold)))
> +  "Face for Markdown strong emphasis (bold) text.")
> +
> +(defface markdown-ts-strikethrough '((t (:strike-through t)))
> +  "Face for Markdown strikethrough text.")
>  
>  (defface markdown-ts-block-quote '((t (:inherit italic)))
>    "Face for Markdown block quotes.")
>  
> +(defface markdown-ts-link '((t (:inherit link)))
> +  "Face for Markdown link text and image descriptions.")

Is it justified to have separate faces here?  Why would users want to
have something other than 'bold' for showing the bold face in MD
buffers?

Also, faces can (and I think should in this case) have the :version
tag.

> +(defun markdown-ts--code-block-language-mode (lang)
> +  "Compute and cache a mode symbol from LANG, a symbol.
> +Consult the `markdown-ts-code-block-map' cache, or probe mode names.
> +Return a valid mode symbol or nil."
> +  (if-let* ((mapped-mode (alist-get lang markdown-ts-code-block-modes)))
> +      mapped-mode
> +    (let ((lang-string (symbol-name lang)))
> +      (catch :mode
> +        (dolist (mode
> +                 (list
> +                  ;; Try a treesit mode using the raw string.
> +                  (concat lang-string "-ts-mode")
> +                  ;; Try a conventional mode using the raw string.
> +                  (concat lang-string "-mode")
> +                  ;; Try a treesit mode using the downcased string.
> +                  (concat (downcase lang-string) "-ts-mode")
> +                  ;; Try a conventional mode using the downcased string.
> +                  (concat (downcase lang-string) "-mode")))
> +          (setq mode (intern mode))
> +          (when (fboundp mode)
> +            (push (cons lang mode) markdown-ts-code-block-modes)
> +            (throw :mode mode)))))))

I think this should use treesit-major-mode-remap-alist and
major-mode-remap-alist, at least before falling back on the above
hard-coded conventional modes, if not instead that.  This will allow
users to customize these remappings only once.

> +(define-minor-mode markdown-ts-code-block-mode
> +  "Mode enabled if point is within a fenced code block."
> +  :interactive nil)

Does this mean this mode is enabled automatically?

Thanks.




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

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


Received: (at 80740) by debbugs.gnu.org; 9 Apr 2026 05:45:35 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Thu Apr 09 01:45:35 2026
Received: from localhost ([127.0.0.1]:36173 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1wAiCs-0008Ox-Qa
	for submit <at> debbugs.gnu.org; Thu, 09 Apr 2026 01:45:35 -0400
Received: from mail-dy1-x1335.google.com ([2607:f8b0:4864:20::1335]:50655)
 by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128)
 (Exim 4.84_2) (envelope-from <casouri@HIDDEN>) id 1wAiCo-0008Ol-LF
 for 80740 <at> debbugs.gnu.org; Thu, 09 Apr 2026 01:45:33 -0400
Received: by mail-dy1-x1335.google.com with SMTP id
 5a478bee46e88-2bdd40d3c61so285237eec.1
 for <80740 <at> debbugs.gnu.org>; Wed, 08 Apr 2026 22:45:30 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=gmail.com; s=20251104; t=1775713529; x=1776318329; darn=debbugs.gnu.org;
 h=to:references:message-id:content-transfer-encoding:cc:date
 :in-reply-to:from:subject:mime-version:from:to:cc:subject:date
 :message-id:reply-to;
 bh=QqiNRoBmbtp/pBiycWi/nMje0Icv2NRqih5JBtBKcaI=;
 b=Bvi4iJAAIMSPCXN9vhn/T3If4vpAYKAunJEbrjGY5XK4a0IqJwRRUKZ699qqarX/hU
 e/NJBU2wOAyo90PAjAqzx00re22YE/lQ6Up3CMQyjF/dKP3EA11K3DFgg6MONmkYHrse
 CsBDKSGC67D9xyoh8jN3sw5cN+rJh3X8dzAN+MInVFEfoJfiYA9GJ6U3AUBG9KdDBkJP
 1Ck01VMUixJw8vp8kqBvHRVUGQcWjmBHqX84FeCGzdeCATCLHXz3XuuULGa7GlfCSVOQ
 Q7sal5vVN544Mc1E7bJZOeerl5C27P++sNKvPKLVhqpDGsWMSwUKPz1aIWJiFJzIIkuK
 ZqIQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20251104; t=1775713529; x=1776318329;
 h=to:references:message-id:content-transfer-encoding:cc:date
 :in-reply-to:from:subject:mime-version:x-gm-gg:x-gm-message-state
 :from:to:cc:subject:date:message-id:reply-to;
 bh=QqiNRoBmbtp/pBiycWi/nMje0Icv2NRqih5JBtBKcaI=;
 b=YfpBkQk92YIHGyJF1LTHgA9I32WiLEC0v4JY66l61BPTW5NU088yywUKCk9/OILeOE
 ZyS6ILWIvqCGLAd9ju5OzzCn/f3EsqvDdPeqOk3iK9Em2VfTGESwEryZ/HJamCDOS2Qa
 g/AU2B1SrGP/KuOsShXpigCDBELxXR1w5sAmaNQ3r/xgEhKgJakhO69qoJO4zWAalO9g
 /2rqTr35imvDvS/QI/IGrMGaAwFM8m30KgbDK74Ds9iTGXARXGUPFHjGBofV0Cj3xe10
 qGTJLgPwvgyJEqvEmXr57UkOfB2T93Q1LivSJBE5/XbFmK4CRMQN+MntPeY0JjKmyEGO
 vQ2Q==
X-Forwarded-Encrypted: i=1;
 AJvYcCVUd10qYQZIxOI8+f8cvuPjVHcZE2dUaXwM8wOTFqb1UXTXEiBP0YIFrIWlOr8/PFkEnuW59Q==@debbugs.gnu.org
X-Gm-Message-State: AOJu0YyweeWBqq7GRYjubRLuxicBBClL0Az/uJjmA74YiAK8V+IvkyUN
 IGRYpq3QKZHXVYGkhvOR8bZYHzKBY1zCV49OsRAG9kcDtBmfjaz+QxJr
X-Gm-Gg: AeBDietfLxjCOPIqz406usUHIFiSqLsqUjGZ5cS/oQ4YPTMkfPAHda65MwSEN221eXn
 BMCaF3UNHq98XwPemSSUITTEey/sobvUJ9kKPIVH9/vlzWp0XVgvDfQmH3zYP1RfAOhxmmhbTsz
 E84fXTzNxKSDCAi3R8Q3jfKwK/jKhSD/KAjF73SPuQ1a0oA71EVeyM5/Fstr2rphp/GM63c9qUB
 jzxzDqlNbgTdrXudpuXsx+A8MzrQeGP/lvuwIICsBaM8fGbqXm1Y1r+++/WrBJO5BxP8gWe4Kau
 ZZCgOuiGAjT65YB7VFfLFNZySLZ2BAZy4uAOKoUtVTBkh/E6nNm+MN3+1z+eVZ9flH6Zaj4vggK
 9KfKI59ph5kBRNfl9ZoJRBIFZUtv4qXJvc8CRz+kMA0lJy72b3n/MtSgIhjve6wjChB33bLCwDk
 xrucBCYxzzPuAoDjevdjnx0Fep/UL0VAkog0/y4/v3SvPe0w==
X-Received: by 2002:a05:7300:cd95:b0:2d1:815f:19c1 with SMTP id
 5a478bee46e88-2d40defaf78mr1135503eec.15.1775713529097; 
 Wed, 08 Apr 2026 22:45:29 -0700 (PDT)
Received: from smtpclient.apple ([2601:645:c686:b320:4df2:2814:ca07:ef2b])
 by smtp.gmail.com with ESMTPSA id
 5a478bee46e88-2cba5df5c24sm22582646eec.27.2026.04.08.22.45.28
 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128);
 Wed, 08 Apr 2026 22:45:28 -0700 (PDT)
Content-Type: text/plain;
	charset=utf-8
Mime-Version: 1.0 (Mac OS X Mail 16.0 \(3826.700.81\))
Subject: Re: bug#80740: 31.0.50; Improve 'markdown-ts-mode'
From: Yuan Fu <casouri@HIDDEN>
In-Reply-To: <m25x61f1ch.fsf@HIDDEN>
Date: Wed, 8 Apr 2026 22:45:17 -0700
Content-Transfer-Encoding: quoted-printable
Message-Id: <48ABDEF6-BEBA-40E9-8124-72CBBC1E1EC6@HIDDEN>
References: <m2zf3jzamy.fsf@HIDDEN>
 <CAN+1HbrPGi5BY1EJ0B8Hgzbru_Q9TACCQGmkT63mXet_ouT0Ug@HIDDEN>
 <m25x61f1ch.fsf@HIDDEN>
To: Rahul Martim Juliato <rahuljuliato@HIDDEN>
X-Mailer: Apple Mail (2.3826.700.81)
X-Spam-Score: 2.7 (++)
X-Spam-Report: Spam detection software, running on the system "debbugs.gnu.org",
 has NOT identified this incoming email as spam.  The original
 message has been attached to this so you can view it or label
 similar future email.  If you have any questions, see
 the administrator of that system for details.
 
 Content preview:  > On Apr 8, 2026, at 5:01 PM, Rahul Martim Juliato wrote:
    > > Stéphane Marks writes: > >> On Fri, Apr 3, 2026 at 11:08 PM Rahul
   Martim Juliato wrote: >> >> Hello, >> >> I'm submitting a com [...] 
 
 Content analysis details:   (2.7 points, 10.0 required)
 
  pts rule name              description
 ---- ---------------------- --------------------------------------------------
  0.0 FREEMAIL_FROM          Sender email is commonly abused enduser mail
                             provider (casouri[at]gmail.com)
 -0.0 SPF_PASS               SPF: sender matches SPF record
  1.0 FORGED_GMAIL_RCVD      'From' gmail.com does not match 'Received'
                             headers
  0.0 SPF_HELO_NONE          SPF: HELO does not publish an SPF Record
 -0.0 RCVD_IN_DNSWL_NONE     RBL: Sender listed at https://www.dnswl.org/,
                              no trust
                             [2607:f8b0:4864:20:0:0:0:1335 listed in]
                             [list.dnswl.org]
  1.7 URIBL_BLACK            Contains an URL listed in the URIBL blacklist
                             [URIs: codeberg.org]
X-Debbugs-Envelope-To: 80740
Cc: 80740 <at> debbugs.gnu.org,
 =?utf-8?Q?St=C3=A9phane_Marks?= <shipmints@HIDDEN>
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: 1.7 (+)
X-Spam-Report: Spam detection software, running on the system "debbugs.gnu.org",
 has NOT identified this incoming email as spam.  The original
 message has been attached to this so you can view it or label
 similar future email.  If you have any questions, see
 the administrator of that system for details.
 
 Content preview:  > On Apr 8, 2026, at 5:01 PM, Rahul Martim Juliato wrote:
    > > Stéphane Marks writes: > >> On Fri, Apr 3, 2026 at 11:08 PM Rahul
   Martim Juliato wrote: >> >> Hello, >> >> I'm submitting a com [...] 
 
 Content analysis details:   (1.7 points, 10.0 required)
 
  pts rule name              description
 ---- ---------------------- --------------------------------------------------
  1.7 URIBL_BLACK            Contains an URL listed in the URIBL blacklist
                             [URIs: codeberg.org]
 -0.0 RCVD_IN_DNSWL_NONE     RBL: Sender listed at https://www.dnswl.org/,
                              no trust
                             [2607:f8b0:4864:20:0:0:0:1335 listed in]
                             [list.dnswl.org]
  0.0 FREEMAIL_FROM          Sender email is commonly abused enduser mail
                             provider (casouri[at]gmail.com)
 -0.0 SPF_PASS               SPF: sender matches SPF record
  1.0 FORGED_GMAIL_RCVD      'From' gmail.com does not match 'Received'
                             headers
  0.0 SPF_HELO_NONE          SPF: HELO does not publish an SPF Record
 -1.0 MAILING_LIST_MULTI     Multiple indicators imply a widely-seen list
                             manager



> On Apr 8, 2026, at 5:01=E2=80=AFPM, Rahul Martim Juliato =
<rahuljuliato@HIDDEN> wrote:
>=20
> St=C3=A9phane Marks <shipmints@HIDDEN> writes:
>=20
>> On Fri, Apr 3, 2026 at 11:08=E2=80=AFPM Rahul Martim Juliato =
<rahuljuliato@HIDDEN> wrote:
>>=20
>> Hello,
>>=20
>> I'm submitting a comprehensive patch that significantly improves
>> 'markdown-ts-mode'. I want to briefly explain the context, as the =
size
>> of this patch may raise concerns.
>>=20
>> When 'markdown-ts-mode' was first merged into Emacs, it was
>> intentionally minimal: roughly 100 lines, just enough to get =
something
>> working, with the expectation of incremental improvements.
>>=20
>> In recent months, as users started testing the mode, several issues =
were
>> reported: font-lock leaking beyond code blocks, fill-paragraph =
merging
>> list items, missing faces, non-clickable links, and lack of editing,
>> navigation, and folding support. The mode worked for basic
>> fontification, but was not yet suitable for regular use.
>>=20
>> I decided to put my other projects on hold and work through these
>> reports one by one. What began as a set of focused fixes evolved into =
a
>> broader rework of the mode=E2=80=99s internals. Over time, the =
implementation
>> grew from ~100 lines to approximately 2800.
>>=20
>> This work was done in close collaboration with St=C3=A9phane Marks, =
whose
>> reviews, patches, and discussions significantly influenced the design
>> and implementation. I consider him a co-author of this work.
>>=20
>> Due to strong interdependencies, the changes could not be cleanly =
split
>> into smaller independent patches. As a result, this is submitted as a
>> single comprehensive change.
>>=20
>> Important note: there are no breaking changes.
>>=20
>> Existing behavior is preserved, and all changes are additive. Users =
of
>> 'markdown-ts-mode' will see the same buffers, with improved =
correctness,
>> additional features, and fewer bugs.
>>=20
>> Before describing the features, this patch also addresses several bug
>> fixes:
>>=20
>> 1. fill-paragraph merged adjacent list items into a single paragraph
>>    (bug#80613).
>>=20
>> 2. Opening a markdown-ts-mode buffer broke dired-hide-details-mode =
for
>>    the rest of the session, due to modifying
>>    font-lock-extra-managed-props globally instead of buffer-locally.
>>    Fixed using setq-local (bug#80690).
>>=20
>> 3. Nested or indented list items were filled incorrectly due to =
column
>>    alignment issues (bug#80625).
>>=20
>> 4. Font-lock leaked beyond code blocks due to appended range settings
>>    from embedded language modes.
>>=20
>> 5. Recursive Markdown code blocks had no fontification.
>>=20
>> Some known limitations originate from the tree-sitter grammar and are
>> documented in the code (e.g., HTML block handling and block quote
>> embedding limitations).
>>=20
>> The mode now includes:
>>=20
>> Fontification:
>> * Dedicated faces for all Markdown elements
>> * Extended coverage (tables, entities, etc.)
>>=20
>> Links:
>> * Clickable inline, reference, and automatic links
>> * Reference resolution cache
>>=20
>> Code blocks:
>> * Tree-sitter and non-tree-sitter language support
>> * Embedded editing via markdown-ts-code-block-mode
>>=20
>> Editing:
>> * Heading and list manipulation
>> * Context-aware newline behavior
>> * Structure insertion helpers
>> * Checkbox toggling
>>=20
>> Navigation:
>> * Imenu and outline integration
>> * Heading traversal commands
>>=20
>> Fill:
>> * Correct handling of lists, block quotes, and comments
>>=20
>> Visual:
>> * Inline images
>> * Markup hiding
>> * Menu integration
>>=20
>> Additional resources for evaluation:
>> * Full feature checklist:
>>   =
https://codeberg.org/LionyxML/markdown-ts-mode-lab/src/branch/main/feature=
s.md
>>=20
>> * Test file:
>>   =
https://codeberg.org/LionyxML/markdown-ts-mode-lab/src/branch/main/test.md=

>>=20
>> * Screenshots:
>>   =
https://codeberg.org/LionyxML/markdown-ts-mode-lab/src/branch/main/demo
>>=20
>> Overall, this patch brings 'markdown-ts-mode' from a minimal =
prototype
>> to a mode that is practical for everyday Markdown editing.
>>=20
>> With this foundation in place, the remaining items in the feature =
list
>> are already in progress, and features such as exporting, HTML =
preview,
>> and a test suite can be added with less disruption.
>>=20
>> Thank you for your time and review.
>>=20
>> Adding Yuan.
>>=20
>=20
> Hello,
>=20
> Please find attached an updated version of the patch for
> `markdown-ts-mode`.
>=20
> St=C3=A9phane and I worked on addressing some rough edges and making a =
few
> incremental improvements. This version expands feature coverage,
> improves code block handling, navigation, and provides better
> performance overall.
>=20
> Please consider this updated patch for review.
>=20
> The feature list, test files, and demo screenshots have all been =
updated
> and are available at:
> https://codeberg.org/LionyxML/markdown-ts-mode-lab/
>=20
> Note: since this patch renames the mode activation function, a full
> rebuild (e.g., `make bootstrap`) may be required when testing.
>=20
> Thank you for your time and review.
>=20
> --=20
> Rahul Martim Juliato
>=20
> <0001-Improve-markdown-ts-mode.patch>

Cool, I=E2=80=99ll look at it and get back!

Yuan=




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

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


Received: (at 80740) by debbugs.gnu.org; 9 Apr 2026 00:02:00 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Wed Apr 08 20:02:00 2026
Received: from localhost ([127.0.0.1]:60110 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1wAcqO-0003me-GR
	for submit <at> debbugs.gnu.org; Wed, 08 Apr 2026 20:02:00 -0400
Received: from mail-dy1-x132a.google.com ([2607:f8b0:4864:20::132a]:54573)
 by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128)
 (Exim 4.84_2) (envelope-from <rahuljuliato@HIDDEN>)
 id 1wAcqL-0003mK-I0
 for 80740 <at> debbugs.gnu.org; Wed, 08 Apr 2026 20:01:58 -0400
Received: by mail-dy1-x132a.google.com with SMTP id
 5a478bee46e88-2ba9c484e5eso175502eec.1
 for <80740 <at> debbugs.gnu.org>; Wed, 08 Apr 2026 17:01:57 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=gmail.com; s=20251104; t=1775692916; x=1776297716; darn=debbugs.gnu.org;
 h=mime-version:user-agent:message-id:date:face:references:in-reply-to
 :subject:cc:to:from:from:to:cc:subject:date:message-id:reply-to;
 bh=W51VnZVjkL0Z+kXf4XwYaljOUTLe6hvjsZ+slExsQY8=;
 b=FGWaKx6AIy5pi4qBsA7zHDQ9nEByBZkFBIbuZA4IbgWMTnpV7Okxrh1jR4KhyweZqd
 QJOoaFsnudi+4o7MCcINmeqx9ihFWpF8+aGT4v7Ddp7xCd4SCR/lLIBiJZmO0xfOiBEG
 4KJspJGbPZ0vQf1oi6OmtMxzn7gqFi8GaZ2hm+YE8tH2lU1T8ZmNOzaP66/W1o3B9VGv
 z5IvN/RVF4ugMsxcNempY6i4b9D8qS3wUYxdO8zCKoRsDhlTJgNRKKJQRRFiJf480WMH
 dMR37JlNQ1w1wBA5e6ZRST42bHMo4FCco9Si+ctpzYwcTCHCyQWt8Maxqgo8efzWhyaW
 6SwQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20251104; t=1775692916; x=1776297716;
 h=mime-version:user-agent:message-id:date:face:references:in-reply-to
 :subject:cc:to:from:x-gm-gg:x-gm-message-state:from:to:cc:subject
 :date:message-id:reply-to;
 bh=W51VnZVjkL0Z+kXf4XwYaljOUTLe6hvjsZ+slExsQY8=;
 b=e153fsursQ49EFlLYvbKbiA7mRMT4FY+ZyAewfi/WICHbgE/NPMXCsiyKh7fhvMU5a
 +Q0t7snUfl5F3iNzo8ApFYiZlHTB7616SdNEdq9+Q2uEMJAZg9pR9Gi7ghzrtJ45JpPa
 NUDqM+zUlOulOA/rWmRlZUlND2gtxOVsN2fuxkkWhSDzzFlR5FFHfSQR5XbGf8sa1Dgf
 /ZxQBl8WqcdbQU2jocXTqux2JGWodOrsxeyXm7mSAWrJ2D9GOYcWeAj4Hm0AJynYA583
 uT8q0T3HuJlanczPogsyVqjRNaYDvPUTvItXt7kr5QO05aFKm4J+pdIckYxaXwzQZiIH
 Oqpg==
X-Forwarded-Encrypted: i=1;
 AJvYcCWHZEw48uYrXtw3vYHV91cZiPCLRbm1evDGnNxHAOnOokX9tnM0AfT9tVDY4Po1WqCD4qlk+w==@debbugs.gnu.org
X-Gm-Message-State: AOJu0YznLcCFyr+/6q0HbtgEtgr9kqqXmkAS/wmVXvB+q0dPle/kH//E
 TQMDq0cUCbJ63/5y0C0SXskx3Iir9Ty+dizgh6aI8pi6+RU+bP8F2drb
X-Gm-Gg: AeBDietZVdLYDXx/yXzoXIYeSWspBkChRHstJj93a8PsC1g55E9XB+gBqN/ez1uJ1Tm
 2Xu+hjxQxng47TsJdt7fQoOis0SmryuTaT28ZBUM71ABkTwJfXfoUtHae1z6rzF+07QQxb3Kq5x
 xctyCr8xNbqYE7WoD9Ol3oBlXEbVjyjJyXDi+C3oPxe6/3LnfDMqI765KzoADiyO1JB+S9+AeFm
 fFdEzJvi2UKXLZnUi0p65l+HAyqAJg9mhyh1d6y70O3eZAN7oogjTuPxHnp4vAXmmKx/wgb957U
 ozqfeM4OXcWK6YyYgu9zaQJlP0Hf19MQSY4liMAHn85U0ec1+ted5g+8DkXbmENUUbDq7C3OQ0h
 sfO7pYnOBvxJlB8Mqsad4/22hz394BHsKkjWohXdSnWJt2pF5OldF+dGlJYWiYIuY7nsUzRnePM
 9YFFLgUcMUyc8Q77ypFAAlcRTOmAUDCJFIRMQSX4Qs3/THFrUeVbT8hY8tSOdlA2RMNLUvw0KfI
 9tFLSZ+8FDr/oTl59FPbaQ=
X-Received: by 2002:a05:693c:2286:b0:2c0:d46d:cfc2 with SMTP id
 5a478bee46e88-2d40e6e08ffmr854433eec.23.1775692915634; 
 Wed, 08 Apr 2026 17:01:55 -0700 (PDT)
Received: from MacBook-Pro.local ([185.153.176.105])
 by smtp.gmail.com with ESMTPSA id
 a92af1059eb24-12c0ce7dfe8sm15564533c88.3.2026.04.08.17.01.52
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 08 Apr 2026 17:01:54 -0700 (PDT)
From: Rahul Martim Juliato <rahuljuliato@HIDDEN>
X-Google-Original-From: Rahul Martim Juliato <rahul.juliato@HIDDEN>
To: =?utf-8?Q?St=C3=A9phane?= Marks <shipmints@HIDDEN>
Subject: Re: bug#80740: 31.0.50; Improve 'markdown-ts-mode'
In-Reply-To: <CAN+1HbrPGi5BY1EJ0B8Hgzbru_Q9TACCQGmkT63mXet_ouT0Ug@HIDDEN>
References: <m2zf3jzamy.fsf@HIDDEN>
 <CAN+1HbrPGi5BY1EJ0B8Hgzbru_Q9TACCQGmkT63mXet_ouT0Ug@HIDDEN>
Face: iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAMAAABg3Am1AAAAAXNSR0IB2cksfwAAAARnQU1BAACxjwv8YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAABhQTFRFDxIfFR9FMD+RM2CBkZPbZKPEn+Xt////lKVMgwAAAAFiS0dEAIgFHUgAAAAJcEhZcwAALiMAAC4jAXilP3YAAAAHdElNRQfqAhsDFwcfcr7WAAACY0lEQVRIx7VVWbLbMAwzBZG6/41LcJHXpl/Vm/G8OADBBWKOo44c//mM2yeoH7go/kqQG3zlucDxgwTzkwz9XVl+K8Z8igL5p4KYKbApCHDC5aGXn7EcD1KCkUl9154EtSJUJWwWIIJbZyLVIIgTguGdCobxQ4nLI3gRLECO9axcwgNYQi81yH5KhGXZ1oU7XSH3YUnQ488YsesOCWrwxYOAgAtW1ZCEZKxoNR4TCILXGnPbjJ65v8ZrbB4fbI02pUaelSjuDKboCS1LifMEg1HwaOpRvV/2Ylja5ekjafyFYU2AnGOTMagh5Qbrs6OngFxTkhFPxUYUZePl3iQnSB7Y+3gcvQocDSYeWOuDYorXZagzhioeqWVSH3ivfvS54/EcW8LvB2eTSJDtbtkJXeGTD/1FwCbMNI/pnC0CjYi3ej2HhDvOD121dGzGFyHgM+5DUnhLNc0lKm0OYptQsWPTJKPMMuil0rhU6+E51th4obJqinOMntOBM59pzlg0wmICoRc3ML5tgpzpODRdk02MQmaEL8YIhdEElJniQbvDRSh7DicV9qjmQFeFHA3mosS8EU6+8g2jV8dzc3jpTK0ZFwWObITvpXZv1MRJXDSOs6WskFcxVKqIlKPMJpzxp9I+udrjLx3tKfB9unHslNi/Wj9AZt8+mGEnnTmPIzMYM5ZENgp1XVghv+uN4/ZE7sf4gXJV9yvHJp1/7EvJlTlz
 pUspOFJt723pVYz9c2cpgHYfKSMXVz72TvL/rJqxL92+D2cGuelri9Nkc5wX6Hjf6cqEsoPptle/Vtllqb3eEPkHU2QXL+sLC8kAAAAASUVORK5CYII=
X-PGP-Key: https://www.rahuljuliato.com/rahul_pub_key.asc
Date: Wed, 08 Apr 2026 21:01:50 -0300
Message-ID: <m25x61f1ch.fsf@HIDDEN>
User-Agent: Gnus/5.13 (Gnus v5.13)
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary="=-=-="
X-Debbugs-Envelope-To: 80740
Cc: Yuan Fu <casouri@HIDDEN>, Rahul Martim Juliato <rahuljuliato@HIDDEN>,
 80740 <at> debbugs.gnu.org
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>

--=-=-=
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

St=C3=A9phane Marks <shipmints@HIDDEN> writes:

> On Fri, Apr 3, 2026 at 11:08=E2=80=AFPM Rahul Martim Juliato <rahuljuliat=
o@HIDDEN> wrote:
>
>  Hello,
>
>  I'm submitting a comprehensive patch that significantly improves
>  'markdown-ts-mode'. I want to briefly explain the context, as the size
>  of this patch may raise concerns.
>
>  When 'markdown-ts-mode' was first merged into Emacs, it was
>  intentionally minimal: roughly 100 lines, just enough to get something
>  working, with the expectation of incremental improvements.
>
>  In recent months, as users started testing the mode, several issues were
>  reported: font-lock leaking beyond code blocks, fill-paragraph merging
>  list items, missing faces, non-clickable links, and lack of editing,
>  navigation, and folding support. The mode worked for basic
>  fontification, but was not yet suitable for regular use.
>
>  I decided to put my other projects on hold and work through these
>  reports one by one. What began as a set of focused fixes evolved into a
>  broader rework of the mode=E2=80=99s internals. Over time, the implement=
ation
>  grew from ~100 lines to approximately 2800.
>
>  This work was done in close collaboration with St=C3=A9phane Marks, whose
>  reviews, patches, and discussions significantly influenced the design
>  and implementation. I consider him a co-author of this work.
>
>  Due to strong interdependencies, the changes could not be cleanly split
>  into smaller independent patches. As a result, this is submitted as a
>  single comprehensive change.
>
>  Important note: there are no breaking changes.
>
>  Existing behavior is preserved, and all changes are additive. Users of
>  'markdown-ts-mode' will see the same buffers, with improved correctness,
>  additional features, and fewer bugs.
>
>  Before describing the features, this patch also addresses several bug
>  fixes:
>
>  1. fill-paragraph merged adjacent list items into a single paragraph
>     (bug#80613).
>
>  2. Opening a markdown-ts-mode buffer broke dired-hide-details-mode for
>     the rest of the session, due to modifying
>     font-lock-extra-managed-props globally instead of buffer-locally.
>     Fixed using setq-local (bug#80690).
>
>  3. Nested or indented list items were filled incorrectly due to column
>     alignment issues (bug#80625).
>
>  4. Font-lock leaked beyond code blocks due to appended range settings
>     from embedded language modes.
>
>  5. Recursive Markdown code blocks had no fontification.
>
>  Some known limitations originate from the tree-sitter grammar and are
>  documented in the code (e.g., HTML block handling and block quote
>  embedding limitations).
>
>  The mode now includes:
>
>  Fontification:
>  * Dedicated faces for all Markdown elements
>  * Extended coverage (tables, entities, etc.)
>
>  Links:
>  * Clickable inline, reference, and automatic links
>  * Reference resolution cache
>
>  Code blocks:
>  * Tree-sitter and non-tree-sitter language support
>  * Embedded editing via markdown-ts-code-block-mode
>
>  Editing:
>  * Heading and list manipulation
>  * Context-aware newline behavior
>  * Structure insertion helpers
>  * Checkbox toggling
>
>  Navigation:
>  * Imenu and outline integration
>  * Heading traversal commands
>
>  Fill:
>  * Correct handling of lists, block quotes, and comments
>
>  Visual:
>  * Inline images
>  * Markup hiding
>  * Menu integration
>
>  Additional resources for evaluation:
>  * Full feature checklist:
>    https://codeberg.org/LionyxML/markdown-ts-mode-lab/src/branch/main/fea=
tures.md
>
>  * Test file:
>    https://codeberg.org/LionyxML/markdown-ts-mode-lab/src/branch/main/tes=
t.md
>
>  * Screenshots:
>    https://codeberg.org/LionyxML/markdown-ts-mode-lab/src/branch/main/demo
>
>  Overall, this patch brings 'markdown-ts-mode' from a minimal prototype
>  to a mode that is practical for everyday Markdown editing.
>
>  With this foundation in place, the remaining items in the feature list
>  are already in progress, and features such as exporting, HTML preview,
>  and a test suite can be added with less disruption.
>
>  Thank you for your time and review.
>
> Adding Yuan.
>

Hello,

Please find attached an updated version of the patch for
`markdown-ts-mode`.

St=C3=A9phane and I worked on addressing some rough edges and making a few
incremental improvements. This version expands feature coverage,
improves code block handling, navigation, and provides better
performance overall.

Please consider this updated patch for review.

The feature list, test files, and demo screenshots have all been updated
and are available at:
https://codeberg.org/LionyxML/markdown-ts-mode-lab/

Note: since this patch renames the mode activation function, a full
rebuild (e.g., `make bootstrap`) may be required when testing.

Thank you for your time and review.

--=20
Rahul Martim Juliato


--=-=-=
Content-Type: application/octet-stream; charset=utf-8
Content-Disposition: attachment;
 filename=0001-Improve-markdown-ts-mode.patch
Content-Transfer-Encoding: base64

RnJvbSA2ODNhOTNmYTY4Nzg2NTljYmI0Nzc1YjdmZmJmNWYxYTEwMjIyMGM1IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBSYWh1bCBNYXJ0aW0gSnVsaWF0byA8cmFodWwuanVsaWF0b0Bn
bWFpbC5jb20+CkRhdGU6IEZyaSwgMyBBcHIgMjAyNiAyMzo0MTo0NyAtMDMwMApTdWJqZWN0OiBb
UEFUQ0hdIEltcHJvdmUgJ21hcmtkb3duLXRzLW1vZGUnCk1JTUUtVmVyc2lvbjogMS4wCkNvbnRl
bnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD1VVEYtOApDb250ZW50LVRyYW5zZmVyLUVuY29k
aW5nOiA4Yml0CgpPdmVyaGF1bCAnbWFya2Rvd24tdHMtbW9kZScgd2l0aCBjb21wcmVoZW5zaXZl
IGZvbnRpZmljYXRpb24sCmNvZGUgYmxvY2sgaGFuZGxpbmcsIGVkaXRpbmcgY29tbWFuZHMsIGZp
bGwtcGFyYWdyYXBoIHN1cHBvcnQsCmlubGluZSBpbWFnZSBwcmV2aWV3cywgYW5kIGEgbW9kZSBt
ZW51LgoKKiBsaXNwL3RleHRtb2Rlcy9tYXJrZG93bi10cy1tb2RlLmVsOiBBZGQgVmVyc2lvbiwK
UGFja2FnZS1SZXF1aXJlcywgYW5kIEtleXdvcmRzIGhlYWRlciBmaWVsZHMuICBFeHBhbmQgQ29t
bWVudGFyeQp3aXRoIGRvY3VtZW50YXRpb24gZm9yIGNvZGUgYmxvY2sgbGFuZ3VhZ2UgbW9kZXMs
IGNvZGUgYmxvY2sKY29tbWFuZHMsIGJpZGlyZWN0aW9uYWwgdGV4dCwgYW5kIGtub3duIHRyZWUt
c2l0dGVyIGdyYW1tYXIKYnVncy4KKHJlcXVpcmUgJ2dvdG8tYWRkciwgeHJlZik6IE5ldyByZXF1
aXJlbWVudHMuCihtYXJrZG93bi10cyk6IE5ldyBjdXN0b21pemF0aW9uIGdyb3VwIHdpdGggOnZl
cnNpb24gYW5kCjpwYWNrYWdlLXZlcnNpb24gdGFncy4KKG1hcmtkb3duLXRzLWhpZGUtbWFya3Vw
KTogQWRkIDp2ZXJzaW9uIGFuZCA6cGFja2FnZS12ZXJzaW9uLgoobWFya2Rvd24tdHMtZWxsaXBz
aXMpOiBOZXcgb3B0aW9uIGZvciBmb2xkZWQgaGVhZGluZyBlbGxpcHNpcy4KKG1hcmtkb3duLXRz
LW1lbnUtYmFyLXNob3cpOiBOZXcgb3B0aW9uIHRvIHRvZ2dsZSBtb2RlIG1lbnUuCihtYXJrZG93
bi10cy1kZWZhdWx0LWZvbGRpbmcpOiBOZXcgb3B0aW9uIGZvciBkZWZhdWx0IGZvbGQKbGV2ZWwu
CihtYXJrZG93bi10cy1pbmxpbmUtaW1hZ2VzKTogTmV3IG9wdGlvbiB0byBkaXNwbGF5IGlubGlu
ZQppbWFnZXMuCihtYXJrZG93bi10cy1pbWFnZS1tYXgtd2lkdGgpOiBOZXcgb3B0aW9uIGZvciBp
bWFnZSBtYXggd2lkdGguCihtYXJrZG93bi10cy1kaXNwbGF5LXJlbW90ZS1pbmxpbmUtaW1hZ2Vz
KTogTmV3IG9wdGlvbiBmb3IKcmVtb3RlIGltYWdlIGhhbmRsaW5nLgoobWFya2Rvd24tdHMtY2hl
Y2tlZC1jaGVja2JveCk6IE5ldyBvcHRpb24gZm9yIGNoZWNrZWQgY2hlY2tib3gKZGlzcGxheSBz
dHJpbmcuCihtYXJrZG93bi10cy11bmNoZWNrZWQtY2hlY2tib3gpOiBOZXcgb3B0aW9uIGZvciB1
bmNoZWNrZWQKY2hlY2tib3ggZGlzcGxheSBzdHJpbmcuCihtYXJrZG93bi10cy10aGVtYXRpYy1i
cmVhay1jaGFyYWN0ZXIpOiBOZXcgb3B0aW9uIGZvciB0aGVtYXRpYwpicmVhayBkaXNwbGF5IGNo
YXJhY3Rlci4KKG1hcmtkb3duLXRzLWhhcmQtbGluZS1icmVhay1iYWNrc2xhc2gpOiBOZXcgb3B0
aW9uIGZvciB0aGUKZ2x5cGggc2hvd24gaW4gcGxhY2Ugb2YgYSB0cmFpbGluZy1iYWNrc2xhc2gg
aGFyZCBsaW5lIGJyZWFrCndoZW4gbWFya3VwIGlzIGhpZGRlbi4KKG1hcmtkb3duLXRzLWhhcmQt
bGluZS1icmVhay1zcGFjZSk6IE5ldyBvcHRpb24gZm9yIHRoZSBnbHlwaApzaG93biBpbiBwbGFj
ZSBvZiBhIHRyYWlsaW5nLXNwYWNlcyBoYXJkIGxpbmUgYnJlYWsgd2hlbiBtYXJrdXAKaXMgaGlk
ZGVuLgoobWFya2Rvd24tdHMtZW1waGFzaXMsIG1hcmtkb3duLXRzLWJvbGQpCihtYXJrZG93bi10
cy1zdHJpa2V0aHJvdWdoLCBtYXJrZG93bi10cy1saW5rKQoobWFya2Rvd24tdHMtbGluay1kZXN0
aW5hdGlvbiwgbWFya2Rvd24tdHMtY29kZS1zcGFuKQoobWFya2Rvd24tdHMtY29kZS1ibG9jaywg
bWFya2Rvd24tdHMtY29kZS1ibG9jay1tYXJrdXAtaGlkZGVuKQoobWFya2Rvd24tdHMtaW5kZW50
ZWQtY29kZS1ibG9jaywgbWFya2Rvd24tdHMtaHRtbC10YWcpCihtYXJrZG93bi10cy1odG1sLWJs
b2NrLCBtYXJrZG93bi10cy10aGVtYXRpYy1icmVhaykKKG1hcmtkb3duLXRzLWVudGl0eS1yZWZl
cmVuY2UpCihtYXJrZG93bi10cy1udW1lcmljLWNoYXJhY3Rlci1yZWZlcmVuY2UsIG1hcmtkb3du
LXRzLWxhdGV4KQoobWFya2Rvd24tdHMtdGFibGUtaGVhZGVyLCBtYXJrZG93bi10cy10YWJsZS1j
ZWxsKQoobWFya2Rvd24tdHMtdGFibGUtZGVsaW1pdGVyLWNlbGwsIG1hcmtkb3duLXRzLXRhc2st
dW5jaGVja2VkKQoobWFya2Rvd24tdHMtdGFzay1jaGVja2VkKTogTmV3IGZhY2VzLgoobWFya2Rv
d24tdHMtaGFyZC1saW5lLWJyZWFrLWJhY2tzbGFzaCkKKG1hcmtkb3duLXRzLWhhcmQtbGluZS1i
cmVhay1iYWNrc2xhc2gtaGlkZGVuKQoobWFya2Rvd24tdHMtaGFyZC1saW5lLWJyZWFrLXNwYWNl
KQoobWFya2Rvd24tdHMtaGFyZC1saW5lLWJyZWFrLXNwYWNlLWhpZGRlbik6IE5ldyBmYWNlcyBm
b3IgdGhlCnR3byBoYXJkLWxpbmUtYnJlYWsgdmFyaWFudHMsIHdpdGggZGlzdGluY3Qgc2hvd24v
aGlkZGVuCmFwcGVhcmFuY2VzLgoobWFya2Rvd24tdHMtLXNldC11cC1pbmxpbmUpOiBOZXcgdmFy
aWFibGUgZm9yIGxpZ2h0d2VpZ2h0IHNldHVwCmluIGVtYmVkZGVkIGlubGluZSBtYXJrZG93bi10
cy1tb2RlIGJ1ZmZlcnMgdXNlZCBieSBjb2RlIGJsb2NrCmNvbW1hbmRzLgoobWFya2Rvd24tdHMt
ZGVmYXVsdC1jb2RlLWJsb2NrLW1vZGUpOiBOZXcgdmFyaWFibGUgdG8gZGVmaW5lCmRlZmF1bHQg
bW9kZSBmb3IgYW5vbnltb3VzIGNvZGUgYmxvY2tzLgoobWFya2Rvd24tdHMtY29kZS1ibG9jay1t
b2Rlcyk6IE5ldyB2YXJpYWJsZSByZXBsYWNpbmcKbWFya2Rvd24tdHMtLWNvZGUtYmxvY2stbGFu
Z3VhZ2UtbWFwIGFuZAptYXJrZG93bi10cy1jb2RlLWJsb2NrLXNvdXJjZS1tb2RlLW1hcCB3aXRo
IHVuaWZpZWQgbGFuZ3VhZ2UgdG8KbW9kZSBtYXBwaW5nIGluY2x1ZGluZyBoZXVyaXN0aWMgbG9v
a3VwLgoobWFya2Rvd24tdHMtY29kZS1ibG9jay1mb3JjZS1jb252ZW50aW9uYWwtbW9kZXMpOiBO
ZXcgdmFyaWFibGUKbGlzdGluZyB0cmVlLXNpdHRlciBtb2RlcyB3aG9zZSBmb250aWZpY2F0aW9u
IG9mIGNvZGUgYmxvY2sKY29udGVudCBzaG91bGQgYmUgaGFydmVzdGVkIHZpYSBhIHRlbXBvcmFy
eSBidWZmZXIuCihtYXJrZG93bi10cy0tbWFrZS1saW5rLWJ1dHRvbik6IE5ldyBmdW5jdGlvbiB0
byBjcmVhdGUKY2xpY2thYmxlIGxpbmsgYnV0dG9ucyB3aXRoIG1haWx0bywgYnJvd3NlLXVybCwg
YW5kIGZpbmQtZmlsZQpkaXNwYXRjaC4KKG1hcmtkb3duLXRzLS1mb250aWZ5LWxpbmstZGVzdGlu
YXRpb24pOiBOZXcgZm9udGlmaWVyIHRoYXQKaGlkZXMgbGluayBkZXN0aW5hdGlvbnMgd2hlbiBt
YXJrdXAgaXMgaGlkZGVuLgoobWFya2Rvd24tdHMtLWxpbmstcmVmLWNhY2hlLCBtYXJrZG93bi10
cy0tbGluay1yZWYtY2FjaGUtdGljaykKKG1hcmtkb3duLXRzLS1saW5rLXJlZi1kZWZpbml0aW9u
cywKbWFya2Rvd24tdHMtLXJlc29sdmUtbGluay1yZWYpOiBOZXcgbGluayByZWZlcmVuY2UgZGVm
aW5pdGlvbgpjYWNoZSB3aXRoIGNhc2UtaW5zZW5zaXRpdmUgbWF0Y2hpbmcgcGVyIENvbW1vbk1h
cmsgc3BlYy4KKG1hcmtkb3duLXRzLS1mb250aWZ5LWxpbmstbm9kZSk6IE5ldyBmb250aWZpZXIg
Zm9yIGlubGluZSwKcmVmZXJlbmNlLCBzaG9ydGN1dCwgYW5kIGNvbGxhcHNlZCBsaW5rcyBhcyBj
bGlja2FibGUgYnV0dG9ucy4KKG1hcmtkb3duLXRzLS1mb250aWZ5LWF1dG9saW5rKTogTmV3IGZv
bnRpZmllciBmb3IgVVJJIGFuZCBlbWFpbAphdXRvbGlua3Mgd2l0aCBhbmdsZSBicmFja2V0IGhp
ZGluZy4KKG1hcmtkb3duLXRzLS1mb250aWZ5LWxpbmstcmVmLWxhYmVsKQoobWFya2Rvd24tdHMt
LWZvbnRpZnktbGluay1yZWYtZGVzdGluYXRpb24pOiBOZXcgZm9udGlmaWVycyBmb3IKbGluayBy
ZWZlcmVuY2UgZGVmaW5pdGlvbnMuCihtYXJrZG93bi10cy0tc2x1Zy1naXRodWItc3RyaXAtcmUs
IG1hcmtkb3duLXRzLS1zbHVnLWdpdGh1YikKKG1hcmtkb3duLXRzLS1zbHVnLXBhbmRvYywgbWFy
a2Rvd24tdHMtLWV4cGxpY2l0LWlkLXJlKQoobWFya2Rvd24tdHMtLWhlYWRpbmctdGV4dC1hbmQt
aWQpCihtYXJrZG93bi10cy0taGVhZGluZy1pZC1jYWNoZSwKbWFya2Rvd24tdHMtLWhlYWRpbmct
aWQtY2FjaGUtdGljaykKKG1hcmtkb3duLXRzLS1idWlsZC1oZWFkaW5nLWlkcywgbWFya2Rvd24t
dHMtLWhlYWRpbmctaWRzKQoobWFya2Rvd24tdHMtLWZvbGxvdy1mcmFnbWVudCk6IE5ldyBmcmFn
bWVudCBsaW5rIHN1cHBvcnQgd2l0aApHaXRIdWIgYW5kIFBhbmRvYyBzbHVnIGFsZ29yaXRobXMu
CihtYXJrZG93bi10cy0tbGF0ZXgtYmxvY2stdmFsaWQtcCkKKG1hcmtkb3duLXRzLS1mb250aWZ5
LWxhdGV4LWJsb2NrKTogTmV3IExhVGVYL21hdGggZm9udGlmaWVyCndpdGggY3Jvc3MtcGFyYWdy
YXBoIHZhbGlkYXRpb24uCihtYXJrZG93bi10cy0tZm9udGlmeS1iYWNrc2xhc2gtZXNjYXBlKTog
TmV3IGZvbnRpZmllciB0aGF0CmhpZGVzIGJhY2tzbGFzaCBpbiBlc2NhcGVzIGV4Y2VwdCBpbnNp
ZGUgTGFUZVggYmxvY2tzLgoobWFya2Rvd24tdHMtLWRlY29kZS1lbnRpdHksIG1hcmtkb3duLXRz
LS1mb250aWZ5LWVudGl0eSk6IE5ldwpIVE1MIGVudGl0eSBkZWNvZGVyIGFuZCBmb250aWZpZXIg
dXNpbmcgb3JnLWVudGl0aWVzIGFuZApzZ21sLWNoYXItbmFtZXMgd2l0aCBkaXNwbGF5IHByb3Bl
cnR5IGZvciBkZWNvZGVkIHZhbHVlcy4KKG1hcmtkb3duLXRzLS1mb250aWZ5LWNoZWNrYm94KTog
TmV3IGZvbnRpZmllciBzaG93aW5nIFVuaWNvZGUKY2hlY2tib3ggc3ltYm9scyB3aGVuIG1hcmt1
cCBpcyBoaWRkZW4uCihtYXJrZG93bi10cy0tZm9udGlmeS1oYXJkLWxpbmUtYnJlYWspOiBOZXcg
Zm9udGlmaWVyIGZvcgpgaGFyZF9saW5lX2JyZWFrJyBub2Rlcy4KKG1hcmtkb3duLXRzLS1mb250
aWZ5LWhlYWRpbmcpOiBOZXcgZm9udGlmaWVyIGZvciBBVFggYW5kIFNldGV4dApoZWFkaW5ncy4K
KG1hcmtkb3duLXRzLS1mb250aWZ5LXRoZW1hdGljLWJyZWFrKTogTmV3IGZvbnRpZmllciBzaG93
aW5nCmhvcml6b250YWwgbGluZSB3aGVuIG1hcmt1cCBpcyBoaWRkZW4uCihtYXJrZG93bi10cy0t
Zm9udGlmeS1jb2RlLWJsb2NrKTogTmV3IGZvbnRpZmllciBhcHBseWluZwpiYWNrZ3JvdW5kIG92
ZXJsYXkgdG8gY29kZSBibG9ja3Mgd2l0aCBsYW5ndWFnZSBhbmQgbW9kZQpwcm9wZXJ0aWVzLgoo
bWFya2Rvd24tdHMtY29kZS1ibG9jay1hdC1wKQoobWFya2Rvd24tdHMtY29kZS1ibG9jay1sYW5n
dWFnZS1hdCkKKG1hcmtkb3duLXRzLWNvZGUtYmxvY2stbW9kZS1hdCk6IE5ldyBhY2Nlc3NvcnMg
Zm9yIGNvZGUgYmxvY2sKb3ZlcmxheSBwcm9wZXJ0aWVzLgoobWFya2Rvd24tdHMtLWltZW51LWNv
ZGUtYmxvY2stbm9kZS1wKTogTmV3IGhlbHBlciBmb3IgaW1lbnUKY29kZSBibG9jayBkZXRlY3Rp
b24uCihtYXJrZG93bi10cy0taW1hZ2UtYWxvbmUtb24tbGluZS1wKQoobWFya2Rvd24tdHMtLWZv
bnRpZnktaW1hZ2UpOiBOZXcgaW5saW5lIGltYWdlIGRpc3BsYXkgd2l0aApzdGFuZGFsb25lIGFu
ZCBpbmxpbmUgcG9zaXRpb25pbmcuCihtYXJrZG93bi10cy0tYmFyZS11cmwtcmVnZXhwKQoobWFy
a2Rvd24tdHMtLWJhcmUtZW1haWwtdXJpLXJlZ2V4cCkKKG1hcmtkb3duLXRzLS1mb250aWZ5LWJh
cmUtdXJpKTogTmV3IGJhcmUgVVJML2VtYWlsCmZvbnRpZmljYXRpb24gdmlhIGppdC1sb2NrIHVz
aW5nIGdvdG8tYWRkciByZWdleHBzLgoobWFya2Rvd24tdHMtLXRyZWVzaXQtc2V0dGluZ3MpOiBS
ZXdyaXRlIHdpdGggZGVkaWNhdGVkIGZhY2VzLApjdXN0b20gZm9udGlmaWVycywgYW5kIG5ldyBm
b250LWxvY2sgZmVhdHVyZXMgZm9yIGFsbCBpbmxpbmUgYW5kCmJsb2NrIGVsZW1lbnRzLgoobWFy
a2Rvd24tdHMtLWNvZGUtYmxvY2stbGFuZ3VhZ2VzKQoobWFya2Rvd24tdHMtLWNvZGUtYmxvY2st
bm9uLXRzLW1vZGVzKTogTmV3IGJ1ZmZlci1sb2NhbCBhbGlzdHMKZm9yIGNvZGUgYmxvY2sgbGFu
Z3VhZ2UgdHJhY2tpbmcuCihtYXJrZG93bi10cy0taGFydmVzdC1tb2RlLXRyZWVzaXQtY29uZmln
dXJhdGlvbik6IFJlbmFtZWQgZnJvbQptYXJrZG93bi10cy0taGFydmVzdC10cmVlc2l0LWNvbmZp
Z3Mgd2l0aCBkZWxheS1tb2RlLWhvb2tzLgoobWFya2Rvd24tdHMtLWNvbmZpZ3VyZS1jdXJyZW50
LWJ1ZmZlcik6IFJlbmFtZWQgZnJvbQptYXJrZG93bi10cy0tYWRkLWNvbmZpZy1mb3ItbW9kZS4K
KG1hcmtkb3duLXRzLS1sYW5ndWFnZS1hdC1ub2RlKTogTmV3IGhlbHBlciBleHRyYWN0aW5nIGxh
bmd1YWdlCnN5bWJvbCBmcm9tIGNvZGVfZmVuY2VfY29udGVudCBub2RlLgoobWFya2Rvd24tdHMt
LW5vbi10cy1mb250aWZ5LWNhY2hlKTogTmV3IGJ1ZmZlci1sb2NhbCBoYXNoIHRhYmxlCmNhY2hp
bmcgZm9udGlmaWNhdGlvbiByZXN1bHRzIGZvciBub24tdHJlZS1zaXR0ZXIgY29kZSBibG9ja3Mu
CihtYXJrZG93bi10cy0tZm9udGlmeS1ub24tdHMtY29sbGVjdC1mYWNlcyk6IE5ldyBmdW5jdGlv
bgpoYXJ2ZXN0aW5nIGZhY2UgcHJvcGVydGllcyBmcm9tIGEgbW9kZSBpbiBhbiBpbmRpcmVjdCBv
cgp0ZW1wb3JhcnkgYnVmZmVyLgoobWFya2Rvd24tdHMtLWZvbnRpZnktbm9uLXRzLWNvZGUtYmxv
Y2spOiBOZXcgZm9udGlmaWVyIGZvcgpub24tdHJlZS1zaXR0ZXIgbW9kZXMgdmlhIHRlbXBvcmFy
eSBidWZmZXIgZm9udC1sb2NrLgoobWFya2Rvd24tdHMtLWNvZGUtYmxvY2stbGFuZ3VhZ2UtbW9k
ZSk6IE5ldyBmdW5jdGlvbiB3aXRoCmhldXJpc3RpYyBtb2RlIG5hbWUgcHJvYmluZy4KKG1hcmtk
b3duLXRzLS1jb2RlLWJsb2NrLXRzLWxhbmd1YWdlKTogUmVuYW1lZCBmcm9tCm1hcmtkb3duLXRz
LS1jb252ZXJ0LWNvZGUtYmxvY2stbGFuZ3VhZ2Ugd2l0aCBzdXBwb3J0IGZvciBub24tdHMKbW9k
ZXMgYW5kIHJlY3Vyc2l2ZSBtYXJrZG93biBoYW5kbGluZy4KKG1hcmtkb3duLXRzLWNvZGUtYmxv
Y2stY29tbWFuZHMpCihtYXJrZG93bi10cy1jb2RlLWJsb2NrLXRoaW5nLWNvbW1hbmRzKQoobWFy
a2Rvd24tdHMtY29kZS1ibG9jay1yZWdpb24tY29tbWFuZHMpOiBOZXcgY29tbWFuZCBsaXN0cyBm
b3IKY29kZS1ibG9jayBjb250ZXh0IGV4ZWN1dGlvbi4KKG1hcmtkb3duLXRzLS1lbmFibGUtY29k
ZS1ibG9jay1tb2RlKQoobWFya2Rvd24tdHMtLW1heWJlLXJ1bi1jb21tYW5kLWluLWNvZGUtYmxv
Y2spCihtYXJrZG93bi10cy0tY29kZS1ibG9jay14cmVmLWZpbmQtZGVmaW5pdGlvbnMpCihtYXJr
ZG93bi10cy0tcnVuLWNvbW1hbmQtaW4tY29kZS1ibG9jayk6IE5ldyBjb2RlIGJsb2NrIG1pbm9y
Cm1vZGUgd2l0aCBpbmRpcmVjdCBidWZmZXIgY29tbWFuZCBkaXNwYXRjaC4KKG1hcmtkb3duLXRz
LS1jb2RlLWJsb2NrLW5ld2xpbmUpOiBOZXcgY29tbWFuZCBmb3IgbmV3bGluZQppbnNpZGUgY29k
ZSBibG9ja3MsIGRpc3BhdGNoaW5nIHRvIHRoZSBibG9jaydzIG1vZGUuCihtYXJrZG93bi10cy0t
cmFuZ2Utc2V0dGluZ3MpOiBVcGRhdGUgcmFuZ2UgY29uZmlndXJhdGlvbjsKcmVtb3ZlIDpyYW5n
ZS1mbiB0cmVlc2l0LXJhbmdlLWZuLWV4Y2x1ZGUtY2hpbGRyZW4uCihtYXJrZG93bi10cy0tcmVt
b3ZlLWltYWdlLW92ZXJsYXlzKQoobWFya2Rvd24tdHMtLW91dGxpbmUtdmlldy1jaGFuZ2UpOiBO
ZXcgaGVscGVycyBmb3IgaW1hZ2UKb3ZlcmxheSBtYW5hZ2VtZW50IGR1cmluZyBvdXRsaW5lIGZv
bGQvdW5mb2xkLgoobWFya2Rvd24tdHMtLW91dGxpbmUtaW52aXNpYmxlLXApOiBOZXcgaGVscGVy
IHRlc3Rpbmcgd2hldGhlciBhCnBvc2l0aW9uIGlzIGluc2lkZSBhbiBvdXRsaW5lLWZvbGRlZCBy
ZWdpb24uCihtYXJrZG93bi10cy0tc2V0LWhpZGUtbWFya3VwKTogQ2xlYXIgaW1hZ2Ugb3Zlcmxh
eXMgd2hlbgp0b2dnbGluZyBtYXJrdXAgdmlzaWJpbGl0eS4KKG1hcmtkb3duLXRzLS1zZXQtaW5s
aW5lLWltYWdlcykKKG1hcmtkb3duLXRzLXRvZ2dsZS1pbmxpbmUtaW1hZ2VzKTogTmV3IGZ1bmN0
aW9ucyBmb3IgdG9nZ2xpbmcKaW5saW5lIGltYWdlIGRpc3BsYXkuCihtYXJrZG93bi10cy0tcGFy
c2VyLWhlYWRpbmctbWF4LWxldmVsKTogTmV3IGNvbnN0YW50LgoobWFya2Rvd24tdHMtLWhlYWRp
bmctYXQtcG9pbnQsIG1hcmtkb3duLXRzLS1oZWFkaW5nLWxldmVsKQoobWFya2Rvd24tdHMtLXNl
Y3Rpb24tYXQtcG9pbnQpOiBOZXcgaGVhZGluZyBuYXZpZ2F0aW9uIGhlbHBlcnMuCihtYXJrZG93
bi10cy1wcm9tb3RlLCBtYXJrZG93bi10cy1kZW1vdGUpOiBOZXcgY29tbWFuZHMgZm9yCmhlYWRp
bmcgYW5kIGxpc3QgaXRlbSBwcm9tb3Rpb24vZGVtb3Rpb24gd2l0aCByZWdpb24gc3VwcG9ydC4K
KG1hcmtkb3duLXRzLS1wcm9tb3RlLW9yLWRlbW90ZSkKKG1hcmtkb3duLXRzLS1wcm9tb3RlLW9y
LWRlbW90ZS1yZWdpb24pOiBOZXcgaGVhZGluZyBsZXZlbAphZGp1c3RtZW50IGZ1bmN0aW9ucy4K
KG1hcmtkb3duLXRzLW1vdmUtc3VidHJlZS11cCwgbWFya2Rvd24tdHMtbW92ZS1zdWJ0cmVlLWRv
d24pOgpOZXcgY29tbWFuZHMgZm9yIG1vdmluZyBzZWN0aW9ucyBhbmQgbGlzdCBpdGVtcy4KKG1h
cmtkb3duLXRzLS1zZWN0aW9uLWZvbGRlZC1wKQoobWFya2Rvd24tdHMtLW1vdmUtc3VidHJlZS11
cC1vci1kb3duKTogTmV3IHN1YnRyZWUgbW92ZSB3aXRoCmZvbGRpbmcgc3RhdGUgcHJlc2VydmF0
aW9uLgoobWFya2Rvd24tdHMtdG9nZ2xlLWNoZWNrYm94KTogTmV3IGNvbW1hbmQgdG8gdG9nZ2xl
IHRhc2sgbGlzdApjaGVja2JveGVzLgoobWFya2Rvd24tdHMtLWxpc3QtaXRlbS1hdC1wb2ludCk6
IE5ldyBoZWxwZXIgd2l0aCBibG9jayBxdW90ZQptYXJrZXIgaGFuZGxpbmcuCihtYXJrZG93bi10
cy0tbGlzdC1tYXJrZXItd2lkdGgsIG1hcmtkb3duLXRzLS1saXN0LWl0ZW0tcmVnaW9uKQoobWFy
a2Rvd24tdHMtLWxpc3Qtb3JkZXJlZC1pdGVtLXApOiBOZXcgbGlzdCBpdGVtIGhlbHBlcnMuCiht
YXJrZG93bi10cy0tbGlzdC1wcm9tb3RlLW9yLWRlbW90ZSk6IE5ldyBmdW5jdGlvbiB3aXRoIG9y
ZGVyZWQKbGlzdCBuZXN0aW5nIGd1YXJkLgoobWFya2Rvd24tdHMtLWxpc3Qtbm9kZS1ib2wsIG1h
cmtkb3duLXRzLS1saXN0LW1vdmUpOiBOZXcgbGlzdAppdGVtIG1vdmVtZW50IGZ1bmN0aW9ucy4K
KG1hcmtkb3duLXRzLXJlbnVtYmVyLWxpc3QpOiBOZXcgY29tbWFuZCBmb3Igc2VxdWVudGlhbCBs
aXN0CnJlbnVtYmVyaW5nIHdpdGggcHJlZml4IGFyZ3VtZW50IHN1cHBvcnQuCihtYXJrZG93bi10
cy0tbGlzdC1pdGVtLW5ldy1tYXJrZXIpCihtYXJrZG93bi10cy0tbmV3LW1hcmtlci1mb3ItbGlu
ZSk6IE5ldyBtYXJrZXIgc3RyaW5nIGdlbmVyYXRvcnMKZm9yIGxpc3QgaXRlbSBpbnNlcnRpb24u
CihtYXJrZG93bi10cy0tbGluZS1ibG9jay1xdW90ZS1kZXB0aCk6IE5ldyBoZWxwZXIgY291bnRp
bmcgYmxvY2sKcXVvdGUgZGVwdGguCihtYXJrZG93bi10cy1uZXdsaW5lKTogTmV3IFJFVCBjb21t
YW5kIGZvciBjb250ZXh0LWF3YXJlCm5ld2xpbmUuCihtYXJrZG93bi10cy1pbnNlcnQtbGlzdC1p
dGVtKTogTmV3IE0tUkVUIGNvbW1hbmQgdGhhdCBjcmVhdGVzIGEKbmV3IGxpc3QgaXRlbS4KKG1h
cmtkb3duLXRzLS1maWxsLXVuZmlsbGFibGUtYmxvY2stcXVlcnkpOiBOZXcgdHJlZS1zaXR0ZXIK
cXVlcnkgZm9yIHVuZmlsbGFibGUgYmxvY2tzLgoobWFya2Rvd24tdHMtLWxpc3QtaXRlbS10ZXh0
LWNvbHVtbik6IE5ldyBoZWxwZXIgZm9yIGxpc3QgaXRlbQp0ZXh0IGFsaWdubWVudC4KKG1hcmtk
b3duLXRzLS1maWxsLWxpc3QtaXRlbSk6IE5ldyBmdW5jdGlvbiBmaWxsaW5nIHdpdGhpbiBsaXN0
Cml0ZW1zIHdpdGhvdXQgbWVyZ2luZyBhZGphY2VudCBpdGVtcy4KKG1hcmtkb3duLXRzLS1hZGFw
dGl2ZS1maWxsKTogTmV3IGFkYXB0aXZlIGZpbGwgZnVuY3Rpb24gZm9yCmxpc3QgaXRlbSBjb250
aW51YXRpb24uCihtYXJrZG93bi10cy0tZmlsbC1mb3J3YXJkLXBhcmFncmFwaCk6IE5ldyBwYXJh
Z3JhcGggbW90aW9uCnJlc3BlY3RpbmcgbGlzdCBpdGVtcyBhbmQgdW5maWxsYWJsZSBibG9ja3Mu
CihtYXJrZG93bi10cy1maWxsLXBhcmFncmFwaCk6IE5ldyBmaWxsLXBhcmFncmFwaC1mdW5jdGlv
biB3aXRoCmNvbmQqIGRpc3BhdGNoIGZvciBsaXN0cywgYmxvY2sgcXVvdGVzLCBIVE1MIGNvbW1l
bnRzLCBhbmQKdW5maWxsYWJsZSBibG9ja3MuCihtYXJrZG93bi10cy0tZmlsbC1odG1sLWNvbW1l
bnQpOiBOZXcgSFRNTCBjb21tZW50IGZpbGxlciB3aXRoCmNvbnRpbnVhdGlvbiBhbGlnbm1lbnQu
CihtYXJrZG93bi10cy0tYmxvY2stcXVvdGUtcHJlZml4KTogTmV3IGhlbHBlciBwcmVzZXJ2aW5n
CmV4aXN0aW5nIGJsb2NrIHF1b3RlIG1hcmtlciBzdHlsZS4KKG1hcmtkb3duLXRzLS1maWxsLWJs
b2NrLXF1b3RlKTogTmV3IGJsb2NrIHF1b3RlIGZpbGxlciB3aXRoCmxpc3QgaXRlbSB0ZXh0IGNv
bHVtbiBhbGlnbm1lbnQuCihtYXJrZG93bi10cy1lbXBoYXNpcy1hbGlzdCk6IE5ldyBhbGlzdCBv
ZiBlbXBoYXNpcyBtYXJrZXJzLgoobWFya2Rvd24tdHMtLWVtcGhhc2lzLW5vZGUtYXQtcG9pbnQp
OiBOZXcgdHJlZS1zaXR0ZXIgYmFzZWQKZW1waGFzaXMgZGV0ZWN0aW9uLgoobWFya2Rvd24tdHMt
cmVtb3ZlLWVtcGhhc2lzKTogTmV3IGNvbW1hbmQgcmVtb3ZpbmcgZW1waGFzaXMgYXQKcG9pbnQg
b3IgcmVnaW9uLgoobWFya2Rvd24tdHMtZW1waGFzaXplKTogTmV3IGludGVyYWN0aXZlIGVtcGhh
c2lzIGluc2VydGlvbiB3aXRoCnJlZ2lvbiB3cmFwcGluZyBhbmQgd29yZC1hdC1wb2ludCBzdXBw
b3J0LgoobWFya2Rvd24tdHMtaW5zZXJ0LXN0cnVjdHVyZSk6IE5ldyBjb21tYW5kIGZvciBpbnNl
cnRpbmcgY29kZQpibG9ja3MsIGJsb2NrIHF1b3RlcywgYW5kIGRpdmlkZXJzLgoobWFya2Rvd24t
dHMtLWluc2VydC1jb2RlLWJsb2NrKTogTmV3IGZ1bmN0aW9uIHdpdGggbGFuZ3VhZ2UKY29tcGxl
dGlvbiBmcm9tIGtub3duIG1vZGVzLgoobWFya2Rvd24tdHMtLWluc2VydC1ibG9jay1xdW90ZSk6
IE5ldyBmdW5jdGlvbiB3aXRoIHJlZ2lvbgp3cmFwcGluZy4KKG1hcmtkb3duLXRzLS1pbnNlcnQt
ZGl2aWRlcik6IE5ldyBmdW5jdGlvbiBmb3IgaG9yaXpvbnRhbApydWxlcy4KKG1hcmtkb3duLXRz
LS1hcHBseS1lbGxpcHNpcyk6IE5ldyBmdW5jdGlvbiBhcHBseWluZyBjdXN0b20KZWxsaXBzaXMg
dmlhIGRpc3BsYXkgdGFibGUuCihtYXJrZG93bi10cy0tc2V0LXVwKTogUmVuYW1lZCBmcm9tIG1h
cmtkb3duLXRzLXNldHVwLgoobWFya2Rvd24tdHMtb3V0bGluZS1jeWNsZSk6IE5ldyBUQUIgY29t
bWFuZCBjeWNsaW5nIG91dGxpbmUKdmlzaWJpbGl0eSBvbiBoZWFkaW5ncy4KKG1hcmtkb3duLXRz
LW1vZGUtbWFwKTogTmV3IGtleW1hcCBmb3IgY29kZSBibG9jayBuYXZpZ2F0aW9uLApiaW5kaW5n
cyBmb3IgaGVhZGluZyBuYXZpZ2F0aW9uLCBzdHJ1Y3R1cmUgZWRpdGluZywgZW1waGFzaXMsCmFu
ZCBsaXN0IG9wZXJhdGlvbnMuCihtYXJrZG93bi10cy1jb2RlLWJsb2NrLW1vZGUtbWFwKTogTmV3
IGtleW1hcCBmb3IgY29kZSBibG9jawpjb250ZXh0LgoobWFya2Rvd24tdHMtbW9kZS1tZW51KTog
TmV3IG1lbnUgYmFyIHdpdGggU2hvdy9IaWRlLCBOYXZpZ2F0ZQpIZWFkaW5ncywgRWRpdCBTdHJ1
Y3R1cmUsIGFuZCBFZGl0aW5nIHNlY3Rpb25zLgoobWFya2Rvd24tdHMtbW9kZSk6IEFkZCBvdXRs
aW5lLW1pbm9yLW1vZGUsIGVsbGlwc2lzLCBmb2xkaW5nLApmaWxsLXBhcmFncmFwaCBpbnRlZ3Jh
dGlvbiwgY29kZS1ibG9jay1tb2RlIGhvb2tzLCBjb21tZW50CnNldHRpbmdzLCBhbmQgb3V0bGlu
ZS12aWV3LWNoYW5nZS1ob29rLiAgVXNlIG1hcmtkb3duLXRzLW1vZGUKZGlyZWN0bHkgaW4gYXV0
by1tb2RlLWFsaXN0IGluc3RlYWQgb2YgbWFya2Rvd24tdHMtbW9kZS1tYXliZS4KKG1hcmtkb3du
LXRzLW1vZGUtaW5zdGFsbC1wYXJzZXJzKTogTmV3IGNvbW1hbmQgZm9yIGluc3RhbGxpbmcKcmVx
dWlyZWQgYW5kIG9wdGlvbmFsIHRyZWUtc2l0dGVyIGxhbmd1YWdlIGdyYW1tYXJzLgoobWFya2Rv
d24tdHMtY29kZS1ibG9jay1tb2RlKTogTmV3IG1pbm9yIG1vZGUgZm9yIGNvZGUgYmxvY2sKY29u
dGV4dC4KKG1hcmtkb3duLXRzLS1maW5kLWNvZGUtYmxvY2stZGVsaW1pdGVyKQoobWFya2Rvd24t
dHMtLWZpbmQtbmV4dC1jb2RlLWJsb2NrLWRlbGltaXRlcik6IE5ldyBoZWxwZXJzIGZvcgpsb2Nh
dGluZyBmZW5jZWQgY29kZSBibG9jayBkZWxpbWl0ZXIgbm9kZXMuCihtYXJrZG93bi10cy1tb3Zl
LXRvLW5leHQtY29kZS1ibG9jaykKKG1hcmtkb3duLXRzLW1vdmUtdG8tcHJldmlvdXMtY29kZS1i
bG9jayk6IE5ldyBjb21tYW5kcyBmb3IKbmF2aWdhdGluZyBiZXR3ZWVuIGZlbmNlZCBjb2RlIGJs
b2Nrcy4KKG1hcmtkb3duLXRzLW1vZGUtbWF5YmUpOiBSZW1vdmU7IGF1dG8tbW9kZS1hbGlzdCBu
b3cgdXNlcwptYXJrZG93bi10cy1tb2RlIGRpcmVjdGx5LgpBdXRvLW1vZGUtYWxpc3Q6IEFkZCAu
bWFya2Rvd24gYW5kIC5tZHggZXh0ZW5zaW9ucy4KSW5jbHVkZXMgZml4ZXMgZm9yOiAoYnVnIzgw
NjEzKSAoYnVnIzgwNjI1KSAoYnVnIzgwNjkwKQoKQ28tYXV0aG9yZWQtYnk6IFN0w6lwaGFuZSBN
YXJrcyA8c2hpcG1pbnRzQGdtYWlsLmNvbT4KLS0tCiBsaXNwL3RleHRtb2Rlcy9tYXJrZG93bi10
cy1tb2RlLmVsIHwgMzM1NCArKysrKysrKysrKysrKysrKysrKysrKysrLS0tCiAxIGZpbGUgY2hh
bmdlZCwgMzA4MiBpbnNlcnRpb25zKCspLCAyNzIgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEv
bGlzcC90ZXh0bW9kZXMvbWFya2Rvd24tdHMtbW9kZS5lbCBiL2xpc3AvdGV4dG1vZGVzL21hcmtk
b3duLXRzLW1vZGUuZWwKaW5kZXggNjU3ZDZiYzQ2NmQuLjJhNTk0OGMxNWJhIDEwMDY0NAotLS0g
YS9saXNwL3RleHRtb2Rlcy9tYXJrZG93bi10cy1tb2RlLmVsCisrKyBiL2xpc3AvdGV4dG1vZGVz
L21hcmtkb3duLXRzLW1vZGUuZWwKQEAgLTEsMTEgKzEsMTMgQEAKLTs7OyBtYXJrZG93bi10cy1t
b2RlLmVsIC0tLSB0cmVlIHNpdHRlciBzdXBwb3J0IGZvciBNYXJrZG93biAgLSotIGxleGljYWwt
YmluZGluZzogdDsgLSotCis7OzsgbWFya2Rvd24tdHMtbW9kZS5lbCAtLS0gdHJlZSBzaXR0ZXIg
c3VwcG9ydCBmb3IgTWFya2Rvd24gLSotIGxleGljYWwtYmluZGluZzogdDsgLSotCiAKIDs7IENv
cHlyaWdodCAoQykgMjAyNC0yMDI2IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgogCi07
OyBBdXRob3IgICAgIDogUmFodWwgTWFydGltIEp1bGlhdG8gPHJhaHVsLmp1bGlhdG9AZ21haWwu
Y29tPgotOzsgTWFpbnRhaW5lciA6IFJhaHVsIE1hcnRpbSBKdWxpYXRvIDxyYWh1bC5qdWxpYXRv
QGdtYWlsLmNvbT4KLTs7IENyZWF0ZWQgICAgOiBBcHJpbCAyMDI0Ci07OyBLZXl3b3JkcyAgIDog
bWFya2Rvd24gbWQgbGFuZ3VhZ2VzIHRyZWUtc2l0dGVyCis7OyBBdXRob3IgICAgICAgICAgIDog
UmFodWwgTWFydGltIEp1bGlhdG8gPHJhaHVsLmp1bGlhdG9AZ21haWwuY29tPgorOzsgTWFpbnRh
aW5lciAgICAgICA6IFJhaHVsIE1hcnRpbSBKdWxpYXRvIDxyYWh1bC5qdWxpYXRvQGdtYWlsLmNv
bT4KKzs7IENyZWF0ZWQgICAgICAgICAgOiBBcHJpbCAyMDI0Cis7OyBWZXJzaW9uICAgICAgICAg
IDogIDEuMAorOzsgUGFja2FnZS1SZXF1aXJlcyA6ICgoZW1hY3MgIjMxLjEiKSkKKzs7IEtleXdv
cmRzICAgICAgICAgOiBtYXJrZG93biBtZCB0ZXh0IGVkaXQgbGFuZ3VhZ2VzIHRyZWUtc2l0dGVy
CiAKIDs7IFRoaXMgZmlsZSBpcyBwYXJ0IG9mIEdOVSBFbWFjcy4KIApAQCAtMjIsMTAxICsyNCwy
NDIgQEAKIDs7IFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5l
cmFsIFB1YmxpYyBMaWNlbnNlCiA7OyBhbG9uZyB3aXRoIEdOVSBFbWFjcy4gIElmIG5vdCwgc2Vl
IDxodHRwczovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uCiAKLTs7OyBUcmVlLXNpdHRlciBsYW5n
dWFnZSB2ZXJzaW9ucworOzs7IENvbW1lbnRhcnk6CisKKzs7IFRyZWUtc2l0dGVyIExhbmd1YWdl
IFZlcnNpb25zCiA7OwogOzsgbWFya2Rvd24tdHMtbW9kZSBoYXMgYmVlbiB0ZXN0ZWQgd2l0aCB0
aGUgZm9sbG93aW5nIGdyYW1tYXJzIGFuZCB2ZXJzaW9uOgogOzsgLSB0cmVlLXNpdHRlci1tYXJr
ZG93bjogdjAuNC4xCiA7OyAtIHRyZWUtc2l0dGVyLW1hcmtkb3duLWlubGluZTogdjAuNC4xCiA7
OwotOzsgV2UgdHJ5IG91ciBiZXN0IHRvIG1ha2UgYnVpbHRpbiBtb2RlcyB3b3JrIHdpdGggbGF0
ZXN0IGdyYW1tYXIKLTs7IHZlcnNpb25zLCBzbyBhIG1vcmUgcmVjZW50IGdyYW1tYXIgaGFzIGEg
Z29vZCBjaGFuY2UgdG8gd29yayB0b28uCi07OyBTZW5kIHVzIGEgYnVnIHJlcG9ydCBpZiBpdCBk
b2Vzbid0LgotCi07OzsgQ29tbWVudGFyeToKKzs7IFdlIHRyeSBvdXIgYmVzdCB0byBtYWtlIGJ1
aWx0LWluIG1vZGVzIHdvcmsgd2l0aCBsYXRlc3QgZ3JhbW1hcgorOzsgdmVyc2lvbnMsIHNvIGEg
bW9yZSByZWNlbnQgZ3JhbW1hciBoYXMgYSBnb29kIGNoYW5jZSB0byB3b3JrLiAgU2VuZAorOzsg
dXMgYSBidWcgcmVwb3J0IGlmIGl0IGRvZXNuJ3QuCis7OworOzsgQmlkaXJlY3Rpb25hbCBUZXh0
IENvbnNpZGVyYXRpb25zCis7OworOzsgVGV4dCB3aXRoIG1hcmt1cCBtYXkgbmVlZCBhbiBleHRy
YSBuZXdsaW5lIGJlZm9yZSBiaWRpcmVjdGlvbmFsIHRleHQKKzs7IGZvciBpdCB0byBzaG93IGNv
cnJlY3RseS4gIFRoaXMgaXMgYSBsaW1pdGF0aW9uIGluIHRoZSBFbWFjcyBkaXNwbGF5Cis7OyBl
bmdpbmUuCis7OworOzsgQ29kZSBCbG9jayBMYW5ndWFnZSBNb2RlIENvbnNpZGVyYXRpb25zCis7
OworOzsgRmVuY2VkIGNvZGUgYmxvY2sgbGFuZ3VhZ2UgbW9kZXMgYXJlIGRlcml2ZWQgZnJvbSB0
aGUgdGFibGUKKzs7IGBtYXJrZG93bi10cy1jb2RlLWJsb2NrLW1vZGVzJyBhbmQgaGV1cmlzdGlj
cyBhZGRpbmcgIi10cy1tb2RlIiBhbmQKKzs7ICItbW9kZSIgdG8gdGhlIGxhbmd1YWdlIG5hbWUu
ICBJZiB5b3VyIGxhbmd1YWdlJ3MgbW9kZSBpcyBub3QKKzs7IHByb3Blcmx5IHJlY29nbml6ZWQs
IGFkZCBpdCB0byBgbWFya2Rvd24tdHMtY29kZS1ibG9jay1tb2RlcycsIHdoaWNoCis7OyBzZWUu
Cis7OworOzsgRWFjaCBsYW5ndWFnZSdzIG1ham9yIG1vZGUgaXMgZW5hYmxlZCBvbmNlIHBlciBg
bWFya2Rvd24tdHMtbW9kZScKKzs7IGJ1ZmZlciBpbiBhIHRlbXBvcmFyeSBidWZmZXIgdG8gZXh0
cmFjdCBpdHMgZGVmYXVsdCBmb250LWxvY2sgYW5kCis7OyB0cmVlLXNpdHRlciBzZXR0aW5ncy4g
IEluIGNvbnZlbnRpb25hbCBub24tdHJlZXNpdCBjb2RlIGJsb2NrcywgdGhlCis7OyBtYWpvciBt
b2RlIGlzIGVuYWJsZWQgZWFjaCB0aW1lIHRoZSBibG9jayBpcyBmb250aWZpZWQuCis7OworOzsg
Tk9URTogTWFqb3IgbW9kZSBob29rcyBhcmUgbm90IHJ1biBhbmQgZm9udC1sb2NrLCB0cmVlc2l0
LCBpbmRlbnQsCis7OyBjb21tZW50IHJlY29nbml0aW9uLCBldGMuIGN1c3RvbWl6YXRpb25zIHlv
dSBtaWdodCBoYXZlIGluIHlvdXIgaG9va3MKKzs7IGFyZSBub3QgYXBwbGllZC4gIEFzIGEgcmVz
dWx0LCB5b3VyIGNvZGUgYmxvY2tzIG1pZ2h0IGFwcGVhcgorOzsgZGlmZmVyZW50IGluIGBtYXJr
ZG93bi10cy1tb2RlJyBtb2RlIHRoYW4gaW4gbmF0aXZlIGxhbmd1YWdlIG1ham9yCis7OyBtb2Rl
IGJ1ZmZlcnMuICBOb3QgcnVubmluZyBob29rcyBhdm9pZHMgdGhlIGNvc3Qgb2YgZWFjaCBtb2Rl
IGhvb2sKKzs7IGFuZCBhdm9pZHMgY2VydGFpbiByZWN1cnNpdmUgdHJlZXNpdCBjYWxsYmFjayBp
c3N1ZXMuCis7OworOzsgQ29kZSBCbG9jayBDb21tYW5kcworOzsKKzs7IFNvbWUgY29tbW9uIGNv
bW1hbmRzIHdpbGwgb3BlcmF0ZSB3aXRoaW4gYSBjb2RlIGJsb2NrIGFuZCBpbiBpdHMKKzs7IG1v
ZGUuICBUaGlzIGlzIGltcGxlbWVudGVkIHVzaW5nIGFuIGluZGlyZWN0IGJ1ZmZlciBhbmQgc29t
ZSBjb21tYW5kcworOzsgbWF5IG9wZXJhdGUgc2xpZ2h0bHkgZGlmZmVyZW50bHkgdG8gdGhlIHNh
bWUgY29tbWFuZHMgaW52b2tlZCBpbiBhCis7OyBuYXRpdmUgbW9kZSBidWZmZXIuCiA7OworOzsg
VHJlZSBTaXR0ZXIgQnVncworOzsKKzs7IGBtYXJrZG93bi10cy1tb2RlJyByZWxpZXMgb24gdGhl
IHVuZGVybHlpbmcgdHJlZS1zaXR0ZXIgbGlicmFyeSBpbgorOzsgRW1hY3MgKGNob3NlbiBhdCBp
dHMgYnVpbGQgdGltZSksIGFuZCBsYW5ndWFnZSBncmFtbWFycyB5b3UgaGF2ZQorOzsgaW5zdGFs
bGVkLiAgVGhlcmUgYXJlIGtub3duIGFuZCByZXBvcnRlZCBidWdzIHdoaWNoIG5lZ2F0aXZlbHkg
YWZmZWN0Cis7OyBjZXJ0YWluIGZlYXR1cmVzLiAgVGhpcyBtb2RlIHNob3VsZCBiZW5lZml0IGFz
IHRoZXNlIGJ1Z3MgYXJlIGZpeGVkCis7OyBvciB3b3JrZWQgYXJvdW5kLgorOzsKKzs7IC0gVGhl
IE1hcmtkb3duIGdyYW1tYXIgaW5zZXJ0cyBibG9ja19jb250aW51YXRpb24gbm9kZXMgYXMgY2hp
bGRyZW4KKzs7ICAgb2YgY29kZV9mZW5jZV9jb250ZW50LCB3aGljaCBjb25mdXNlcyBib3RoIHRo
ZSBpbnNwZWN0b3IgYW5kIHRoZQorOzsgICBlbWJlZGRlZCBwYXJzZXIuICBUaGlzIGFmZmVjdHMg
Y29kZSBibG9ja3MgaW5zaWRlIGJsb2NrIHF1b3Rlcy4KKzs7Cis7OyAtIEhUTUwgYmxvY2sgdHlw
ZSA0IChgPCEnIGZvbGxvd2VkIGJ5IGFuIHVwcGVyY2FzZSBsZXR0ZXIsIGUuZy4sCis7OyAgIGA8
IURPQ1RZUEUgaHRtbD4nKSBjYXVzZXMgdGhlIHBhcnNlciB0byBjb25zdW1lIGFsbCBzdWJzZXF1
ZW50Cis7OyAgIGNvbnRlbnQuICBMb3dlcmNhc2UgYDwhZG9jdHlwZSBodG1sPicgd29ya3MgYXMg
YSB3b3JrYXJvdW5kLgorOzsgICBTZWUgPGh0dHBzOi8vZ2l0aHViLmNvbS90cmVlLXNpdHRlci1n
cmFtbWFycy90cmVlLXNpdHRlci1tYXJrZG93bi9pc3N1ZXMvMjMzPi4KKzs7Cis7OyAtIFN1cGVy
c2NyaXB0IChgXnRleHReJykgYW5kIHN1YnNjcmlwdCAoYH50ZXh0ficpIHN5bnRheCBpcyBub3QK
Kzs7ICAgc3VwcG9ydGVkIGJ5IHRoZSBncmFtbWFyLiAgTm8gRVhURU5TSU9OXyBidWlsZCBmbGFn
IGV4aXN0cyBmb3IKKzs7ICAgdGhpcy4gIFRoaXMgaXMgUGFuZG9jIC8gUEhQIE1hcmtkb3duIEV4
dHJhIHN5bnRheCwgbm90IENvbW1vbk1hcmsKKzs7ICAgb3IgR0ZNLgorOzsKKzs7IC0gT3JkZXJl
ZCAobnVtYmVyZWQpIGxpc3RzIGRvIG5vdCBuZXN0IGJ5IGluZGVudGF0aW9uLiAgSW5kZW50aW5n
Cis7OyAgIGEgYDEuJyBpdGVtIHVuZGVyIGFub3RoZXIgb3JkZXJlZCBpdGVtIGRvZXMgbm90IHBy
b2R1Y2UgYSBuZXN0ZWQKKzs7ICAgbGlzdCBub2RlOyB0aGUgcGFyc2VyIGVpdGhlciB0cmVhdHMg
aXQgYXMgYSBmbGF0IHNpYmxpbmcgb3IKKzs7ICAgYWJzb3JicyBpdCBpbnRvIHRoZSBwYXJlbnQg
aXRlbSdzIHBhcmFncmFwaCBhcyBhCis7OyAgIGJsb2NrX2NvbnRpbnVhdGlvbi4gIFVub3JkZXJl
ZCAoYC0nLCBgKicsIGArJykgbGlzdHMgbmVzdAorOzsgICBjb3JyZWN0bHkuICBEZW1vdGUvcHJv
bW90ZSBvZiBvcmRlcmVkIGxpc3QgaXRlbXMgaXMgdGhlcmVmb3JlCis7OyAgIGRpc2FibGVkLgor
OzsKKzs7IC0gUmVudW1iZXJpbmcgb3JkZXJlZCBsaXN0cyAoYG1hcmtkb3duLXRzLXJlbnVtYmVy
LWxpc3QnKSBtYXkgb25seQorOzsgICBhZmZlY3QgaXRlbXMgZnJvbSBwb2ludCBkb3dud2FyZCBp
ZiB0aGUgcGFyc2VyIHNwbGl0cyBhIHNpbmdsZQorOzsgICBsaXN0IGludG8gc2VwYXJhdGUgYGxp
c3QnIG5vZGVzLCBvciBtYXkgY29udGludWUgbnVtYmVyaW5nIGFjcm9zcworOzsgICB0d28gc2Vw
YXJhdGUgbGlzdHMgaWYgdGhlIHBhcnNlciBtZXJnZXMgdGhlbSBpbnRvIG9uZSBub2RlLgorOzsK
Kzs7IC0gRW1wdHkgbGluZXMgZm9sbG93aW5nIGFuIGBpbmRlbnRlZF9jb2RlX2Jsb2NrJyBtYXkg
YmUgY2xhaW1lZCBieQorOzsgICB0aGUgcGFyc2VyIGFzIGNvbnRpbnVhdGlvbiBsaW5lcyBvZiB0
aGF0IGJsb2NrLCByYXRoZXIgdGhhbiBiZWluZworOzsgICB0cmVhdGVkIGFzIGJsYW5rIHNlcGFy
YXRvcnMuCiAKIDs7OyBDb2RlOgogCiAocmVxdWlyZSAndHJlZXNpdCkKIChyZXF1aXJlICdzdWJy
LXgpCi0ocmVxdWlyZSAnb3V0bGluZSkKIChyZXF1aXJlICdzZXEpCisocmVxdWlyZSAnb3V0bGlu
ZSkKKyhyZXF1aXJlICdnb3RvLWFkZHIpCisocmVxdWlyZSAneHJlZikKIAotKHRyZWVzaXQtZGVj
bGFyZS11bmF2YWlsYWJsZS1mdW5jdGlvbnMpCi0KLShhZGQtdG8tbGlzdAotICd0cmVlc2l0LWxh
bmd1YWdlLXNvdXJjZS1hbGlzdAotICcobWFya2Rvd24KLSAgICJodHRwczovL2dpdGh1Yi5jb20v
dHJlZS1zaXR0ZXItZ3JhbW1hcnMvdHJlZS1zaXR0ZXItbWFya2Rvd24iCi0gICA6Y29tbWl0ICI0
MTMyODUyMzFjZThmYThiMTFlNzA3NGJiZTI2NWI0OGFhNzI3N2Y5IgotICAgOnNvdXJjZS1kaXIg
InRyZWUtc2l0dGVyLW1hcmtkb3duL3NyYyIpCi0gdCkKLShhZGQtdG8tbGlzdAotICd0cmVlc2l0
LWxhbmd1YWdlLXNvdXJjZS1hbGlzdAotICcobWFya2Rvd24taW5saW5lCi0gICAiaHR0cHM6Ly9n
aXRodWIuY29tL3RyZWUtc2l0dGVyLWdyYW1tYXJzL3RyZWUtc2l0dGVyLW1hcmtkb3duIgotICAg
OmNvbW1pdCAiNDEzMjg1MjMxY2U4ZmE4YjExZTcwNzRiYmUyNjViNDhhYTcyNzdmOSIKLSAgIDpz
b3VyY2UtZGlyICJ0cmVlLXNpdHRlci1tYXJrZG93bi1pbmxpbmUvc3JjIikKLSB0KQotCi07Ozsg
SGVscGVyIGZ1bmN0aW9ucwotCi0oZGVmdmFyIG1hcmtkb3duLXRzLS1jb2RlLWJsb2NrLWxhbmd1
YWdlLW1hcAotICAnKCgiYysrIiAuIGNwcCkKLSAgICAoImMjIiAuIGMtc2hhcnApCi0gICAgKCJz
aCIgLiBiYXNoKSkKLSAgIkFsaXN0IG1hcHBpbmcgY29kZSBibG9jayBsYW5ndWFnZSBuYW1lcyB0
byB0cmVlLXNpdHRlciBsYW5ndWFnZXMuCi0KLUtleXMgc2hvdWxkIGJlIHN0cmluZ3MsIGFuZCB2
YWx1ZXMgc2hvdWxkIGJlIGxhbmd1YWdlIHN5bWJvbHMuCi0KLUZvciBleGFtcGxlLCBcImMrK1wi
IGluCi0KLSAgICBgYGBjKysKLSAgICBpbnQgbWFpbigpIHsKLSAgICAgICAgcmV0dXJuIDA7Ci0g
ICAgfQotICAgIGBgYAorOzs7IEN1c3RvbWl6YXRpb25zOgogCi1tYXBzIHRvIHRyZWUtc2l0dGVy
IGxhbmd1YWdlIGBjcHAnLiIpCi0KLShkZWZ2YXIgbWFya2Rvd24tdHMtY29kZS1ibG9jay1zb3Vy
Y2UtbW9kZS1tYXAKLSAgJygoYmFzaCAuIGJhc2gtdHMtbW9kZSkKLSAgICAoYyAuIGMtdHMtbW9k
ZSkKLSAgICAoYy1zaGFycCAuIGNzaGFycC10cy1tb2RlKQotICAgIChjbWFrZSAuIGNtYWtlLXRz
LW1vZGUpCi0gICAgKGNwcCAuIGMrKy10cy1tb2RlKQotICAgIChjc3MgLiBjc3MtdHMtbW9kZSkK
LSAgICAoZG9ja2VyZmlsZSAuIGRvY2tlcmZpbGUtdHMtbW9kZSkKLSAgICAoZWxpeGlyIC4gZWxp
eGlyLXRzLW1vZGUpCi0gICAgKGdvIC4gZ28tdHMtbW9kZSkKLSAgICAoZ29tb2QgLiBnby1tb2Qt
dHMtbW9kZSkKLSAgICAoZ293b3JrIC4gZ28td29yay10cy1tb2RlKQotICAgIChoZWV4IC4gaGVl
eC10cy1tb2RlKQotICAgIChodG1sIC4gaHRtbC10cy1tb2RlKQotICAgIChqYXZhIC4gamF2YS10
cy1tb2RlKQotICAgIChqYXZhc2NyaXB0IC4ganMtdHMtbW9kZSkKLSAgICAoanNvbiAuIGpzb24t
dHMtbW9kZSkKLSAgICAobHVhIC4gbHVhLXRzLW1vZGUpCi0gICAgKHBocCAuIHBocC10cy1tb2Rl
KQotICAgIChweXRob24gLiBweXRob24tdHMtbW9kZSkKLSAgICAocnVieSAuIHJ1YnktdHMtbW9k
ZSkKLSAgICAocnVzdCAuIHJ1c3QtdHMtbW9kZSkKLSAgICAodG9tbCAuIHRvbWwtdHMtbW9kZSkK
LSAgICAodHN4IC4gdHN4LXRzLW1vZGUpCi0gICAgKHR5cGVzY3JpcHQgLiB0eXBlc2NyaXB0LXRz
LW1vZGUpCi0gICAgKHlhbWwgLiB5YW1sLXRzLW1vZGUpKQotICAiQW4gYWxpc3Qgb2Ygc3VwcG9y
dGVkIGNvZGUgYmxvY2sgbGFuZ3VhZ2VzIGFuZCB0aGVpciBtYWpvciBtb2RlLiIpCisoZGVmZ3Jv
dXAgbWFya2Rvd24tdHMgbmlsCisgICJNYWpvciBtb2RlIGZvciB2aWV3aW5nIGFuZCBlZGl0aW5n
IE1hcmtkb3duIGJ1ZmZlcnMuIgorICA6cHJlZml4ICJtYXJrZG93bi10cy0iCisgIDpncm91cCAn
dGV4dAorICA6Z3JvdXAgJ2VkaXRpbmcKKyAgOnZlcnNpb24gIjMxLjEiKQogCiAoZGVmY3VzdG9t
IG1hcmtkb3duLXRzLWhpZGUtbWFya3VwIG5pbAogICAiTm9uLW5pbCBtZWFucyBoaWRlIE1hcmtk
b3duIG1hcmt1cCBkZWxpbWl0ZXJzIGluIHRoaXMgYnVmZmVyLiIKICAgOnR5cGUgJ2Jvb2xlYW4K
ICAgOnNhZmUgIydib29sZWFucAotICA6Z3JvdXAgJ21hcmtkb3duLXRzKQotCi07OzsgRmFjZXMK
KyAgOnZlcnNpb24gIjMxLjEiCisgIDpwYWNrYWdlLXZlcnNpb24gIjEuMCIpCisKKyhkZWZjdXN0
b20gbWFya2Rvd24tdHMtZWxsaXBzaXMgbmlsCisgICJUaGUgZWxsaXBzaXMgdG8gdXNlIGluIGZv
bGRlZCBoZWFkaW5ncy4KK1doZW4gbmlsLCB1c2UgdGhlIHN0YW5kYXJkIHRocmVlIGRvdHMuICBX
aGVuIGEgbm9uLWVtcHR5IHN0cmluZywKK3VzZSB0aGF0IHN0cmluZyBpbnN0ZWFkLiIKKyAgOnR5
cGUgJyhjaG9pY2UgKGNvbnN0ICA6dGFnICJEZWZhdWx0ICguLi4pIiBuaWwpCisgICAgICAgICAg
ICAgICAgIChzdHJpbmcgOnRhZyAiU3RyaW5nIiA6dmFsdWUgIiDijIQiKSkKKyAgOnNhZmUgIydz
dHJpbmctb3ItbnVsbC1wCisgIDp2ZXJzaW9uICIzMS4xIgorICA6cGFja2FnZS12ZXJzaW9uICIx
LjAiKQorCisoZGVmY3VzdG9tIG1hcmtkb3duLXRzLW1lbnUtYmFyLXNob3cgdAorICAiTm9uLW5p
bCBtZWFucyBzaG93IHRoZSBNYXJrZG93biBtZW51IGluIHRoZSBtZW51IGJhci4iCisgIDp0eXBl
ICdib29sZWFuCisgIDpzYWZlICMnYm9vbGVhbnAKKyAgOnZlcnNpb24gIjMxLjEiCisgIDpwYWNr
YWdlLXZlcnNpb24gIjEuMCIpCisKKyhkZWZjdXN0b20gbWFya2Rvd24tdHMtZGVmYXVsdC1mb2xk
aW5nICdzaG93LWFsbAorICAiRGVmYXVsdCBoZWFkaW5nIGZvbGRpbmcgbGV2ZWwuIgorICA6dHlw
ZSAnKGNob2ljZQorICAgICAgICAgIChjb25zdCA6dGFnICJTaG93IGV2ZXJ5dGhpbmciIHNob3ct
YWxsKQorICAgICAgICAgIChjb25zdCA6dGFnICJGb2xkIGV2ZXJ5dGhpbmcsIHNob3dpbmcgdG9w
LWxldmVsIGhlYWRpbmdzIiBmb2xkLWFsbCkKKyAgICAgICAgICAoY29uc3QgOnRhZyAiRm9sZCBo
ZWFkaW5ncywgc2hvd2luZyBhbGwgaGVhZGluZyBsZXZlbHMiIGZvbGQtaGVhZGluZ3MpKQorICA6
c2FmZSAjJ3N5bWJvbHAKKyAgOnZlcnNpb24gIjMxLjEiCisgIDpwYWNrYWdlLXZlcnNpb24gIjEu
MCIpCisKKyhkZWZjdXN0b20gbWFya2Rvd24tdHMtaW5saW5lLWltYWdlcyBuaWwKKyAgIk5vbi1u
aWwgbWVhbnMgZGlzcGxheSBpbmxpbmUgaW1hZ2VzIGJlbG93IGltYWdlIGxpbmtzLiIKKyAgOnR5
cGUgJ2Jvb2xlYW4KKyAgOnNhZmUgIydib29sZWFucAorICA6dmVyc2lvbiAiMzEuMSIKKyAgOnBh
Y2thZ2UtdmVyc2lvbiAiMS4wIikKKworKGRlZmN1c3RvbSBtYXJrZG93bi10cy1pbWFnZS1tYXgt
d2lkdGggJ3dpbmRvdworICAiTWF4aW11bSB3aWR0aCBvZiBpbmxpbmUgaW1hZ2VzIGluIHBpeGVs
cy4KK1doZW4gYHdpbmRvdycsIHVzZSB0aGUgd2luZG93IGJvZHkgd2lkdGguICBXaGVuIGEgbnVt
YmVyLCB1c2UKK3RoYXQgYXMgdGhlIG1heGltdW0gcGl4ZWwgd2lkdGguIgorICA6dHlwZSAnKGNo
b2ljZSAoY29uc3QgIDp0YWcgIldpbmRvdyB3aWR0aCIgd2luZG93KQorICAgICAgICAgICAgICAg
ICAobmF0bnVtIDp0YWcgIlBpeGVsIHdpZHRoIikpCisgIDpzYWZlIChsYW1iZGEgKHYpIChvciAo
ZXEgdiAnd2luZG93KSAobmF0bnVtcCB2KSkpCisgIDp2ZXJzaW9uICIzMS4xIgorICA6cGFja2Fn
ZS12ZXJzaW9uICIxLjAiKQorCisoZGVmY3VzdG9tIG1hcmtkb3duLXRzLWRpc3BsYXktcmVtb3Rl
LWlubGluZS1pbWFnZXMgbmlsCisgICJIb3cgdG8gZGlzcGxheSByZW1vdGUgaW5saW5lIGltYWdl
cy4KK1doZW4gbmlsLCBkbyBub3QgZGlzcGxheSByZW1vdGUgaW1hZ2VzLiAgV2hlbiBgZG93bmxv
YWQnLCBmZXRjaCB0aGUKK2ltYWdlIGludG8gYSB0ZW1wb3JhcnkgYnVmZmVyIGFuZCBkaXNwbGF5
IGl0LgorCitSZW1vdGUgaW1hZ2VzIGFyZSBza2lwcGVkIGJ5IGRlZmF1bHQgZm9yIHNlY3VyaXR5
LiIKKyAgOnR5cGUgJyhjaG9pY2UgKGNvbnN0IDp0YWcgIlNraXAgcmVtb3RlIGltYWdlcyIgbmls
KQorICAgICAgICAgICAgICAgICAoY29uc3QgOnRhZyAiRG93bmxvYWQgcmVtb3RlIGltYWdlcyIg
ZG93bmxvYWQpKQorICA6c2FmZSAjJ3N5bWJvbHAKKyAgOnZlcnNpb24gIjMxLjEiCisgIDpwYWNr
YWdlLXZlcnNpb24gIjEuMCIpCisKKyhkZWZjdXN0b20gbWFya2Rvd24tdHMtY2hlY2tlZC1jaGVj
a2JveCAi4piRIgorICAiSWYgbWFya3VwIGlzIGhpZGRlbiwgZGlzcGxheSB0aGlzIGNoZWNrZWQg
dGFzayBsaXN0IHN0cmluZy4KK25pbCBkaXNwbGF5cyB0aGUgcmF3IG1hcmt1cC4iCisgIDp0eXBl
ICcoY2hvaWNlIChzdHJpbmcgOnRhZyAiRGlzcGxheSBzcGVjaWZpZWQgc3RyaW5nIikKKyAgICAg
ICAgICAgICAgICAgKGNvbnN0ICA6dGFnICJEaXNwbGF5IG9yaWdpbmFsIG1hcmt1cCIgbmlsKSkK
KyAgOnNhZmUgIydzdHJpbmctb3ItbnVsbC1wCisgIDp2ZXJzaW9uICIzMS4xIgorICA6cGFja2Fn
ZS12ZXJzaW9uICIxLjAiKQorCisoZGVmY3VzdG9tIG1hcmtkb3duLXRzLXVuY2hlY2tlZC1jaGVj
a2JveCAi4piQIgorICAiSWYgbWFya3VwIGlzIGhpZGRlbiwgZGlzcGxheSB0aGlzIHVuY2hlY2tl
ZCB0YXNrIGxpc3Qgc3RyaW5nLgorbmlsIGRpc3BsYXlzIHRoZSByYXcgbWFya3VwLiIKKyAgOnR5
cGUgJyhjaG9pY2UgKHN0cmluZyA6dGFnICJEaXNwbGF5IHNwZWNpZmllZCBzdHJpbmciKQorICAg
ICAgICAgICAgICAgICAoY29uc3QgIDp0YWcgIkRpc3BsYXkgb3JpZ2luYWwgbWFya3VwIiBuaWwp
KQorICA6c2FmZSAjJ3N0cmluZy1vci1udWxsLXAKKyAgOnZlcnNpb24gIjMxLjEiCisgIDpwYWNr
YWdlLXZlcnNpb24gIjEuMCIpCisKKyhkZWZjdXN0b20gbWFya2Rvd24tdHMtdGhlbWF0aWMtYnJl
YWstY2hhcmFjdGVyID/ilIAKKyAgIklmIG1hcmt1cCBpcyBoaWRkZW4sIGRpc3BsYXkgdGhpcyB0
aGVtYXRpYyBicmVhayBzdHJpbmcuCitUaGUgY2hhcmFjdGVyIGlzIHJlcGVhdGVkIHRvIGZpbGwg
dGhlIHdpbmRvdyB3aWR0aC4KK25pbCBkaXNwbGF5cyB0aGUgcmF3IG1hcmt1cC4iCisgIDp0eXBl
ICcoY2hvaWNlIChjaGFyYWN0ZXIgOnRhZyAiRGlzcGxheSBzcGVjaWZpZWQgY2hhcmFjdGVyIikK
KyAgICAgICAgICAgICAgICAgKGNvbnN0ICAgICA6dGFnICJEaXNwbGF5IG9yaWdpbmFsIG1hcmt1
cCIgbmlsKSkKKyAgOnZlcnNpb24gIjMxLjEiCisgIDpwYWNrYWdlLXZlcnNpb24gIjEuMCIpCisK
KyhkZWZjdXN0b20gbWFya2Rvd24tdHMtaGFyZC1saW5lLWJyZWFrLWJhY2tzbGFzaCAiwrYiCisg
ICJJZiBtYXJrdXAgaXMgaGlkZGVuLCBkaXNwbGF5IHRoaXMgZm9yIGEgYmFja3NsYXNoIGhhcmQg
bGluZSBicmVhay4KK1RoZSB2YWx1ZSBjYW4gYmUgYSBjaGFyYWN0ZXIgb3IgYSBzdHJpbmc7IG5p
bCBrZWVwcyB0aGUgcmF3IG1hcmt1cC4iCisgIDp0eXBlICcoY2hvaWNlIChjaGFyYWN0ZXIgOnRh
ZyAiRGlzcGxheSBzcGVjaWZpZWQgY2hhcmFjdGVyIikKKyAgICAgICAgICAgICAgICAgKHN0cmlu
ZyAgICA6dGFnICJEaXNwbGF5IHNwZWNpZmllZCBzdHJpbmciKQorICAgICAgICAgICAgICAgICAo
Y29uc3QgICAgIDp0YWcgIkRpc3BsYXkgb3JpZ2luYWwgbWFya3VwIiBuaWwpKQorICA6dmVyc2lv
biAiMzEuMSIKKyAgOnBhY2thZ2UtdmVyc2lvbiAiMS4wIikKKworKGRlZmN1c3RvbSBtYXJrZG93
bi10cy1oYXJkLWxpbmUtYnJlYWstc3BhY2UKKyAgKGxhbWJkYSAobikgKG1ha2Utc3RyaW5nIG4g
P8K2KSkKKyAgIklmIG1hcmt1cCBpcyBoaWRkZW4sIGRpc3BsYXkgdGhpcyBmb3IgYSB0cmFpbGlu
Zy1zcGFjZXMgaGFyZCBsaW5lIGJyZWFrLgorVGhlIHZhbHVlIGNhbiBiZToKKy0gYSBjaGFyYWN0
ZXIgb3Igc3RyaW5nOiBzaG93biBvbmNlIGF0IHRoZSBzdGFydCBvZiB0aGUgdHJhaWxpbmcgc3Bh
Y2VzLAorICB3aXRoIG5vIHJlcGV0aXRpb24gKHRoZSByZW1haW5pbmcgc3BhY2VzIHN0YXkgaW52
aXNpYmxlKTsKKy0gYSBmdW5jdGlvbjogY2FsbGVkIHdpdGggb25lIGFyZ3VtZW50LCB0aGUgbnVt
YmVyIG9mIHRyYWlsaW5nIHNwYWNlcywKKyAgYW5kIG11c3QgcmV0dXJuIHRoZSBzdHJpbmcgdG8g
ZGlzcGxheSBpbiBwbGFjZSBvZiB0aGUgcnVuOworLSBuaWw6IGtlZXAgdGhlIHJhdyBtYXJrdXAu
IgorICA6dHlwZSAnKGNob2ljZSAoY2hhcmFjdGVyIDp0YWcgIkRpc3BsYXkgc3BlY2lmaWVkIGNo
YXJhY3RlciAobm8gcmVwZXRpdGlvbikiKQorICAgICAgICAgICAgICAgICAoc3RyaW5nIDp0YWcg
IkRpc3BsYXkgc3BlY2lmaWVkIHN0cmluZyAobm8gcmVwZXRpdGlvbikiKQorICAgICAgICAgICAg
ICAgICAoZnVuY3Rpb24gOnRhZyAiRnVuY3Rpb24gZnJvbSBjb3VudCB0byBkaXNwbGF5IHN0cmlu
ZyIpCisgICAgICAgICAgICAgICAgIChjb25zdCA6dGFnICJEaXNwbGF5IG9yaWdpbmFsIG1hcmt1
cCIgbmlsKSkKKyAgOnZlcnNpb24gIjMxLjEiCisgIDpwYWNrYWdlLXZlcnNpb24gIjEuMCIpCisK
KyhkZWZjdXN0b20gbWFya2Rvd24tdHMtZGVmYXVsdC1jb2RlLWJsb2NrLW1vZGUgJ3RleHQtbW9k
ZQorICAiRGVmYXVsdCBtb2RlIGZvciBhbm9ueW1vdXMgY29kZSBibG9ja3MuIgorICA6dHlwZSAn
KGNob2ljZQorICAgICAgICAgIChjb25zdCAgOnRhZyAiVGV4dCBtb2RlIiB0ZXh0LW1vZGUpCisg
ICAgICAgICAgKGNvbnN0ICA6dGFnICJGdW5kYW1lbnRhbCBtb2RlIiBmdW5kYW1lbnRhbC1tb2Rl
KQorICAgICAgICAgIChzeW1ib2wgOnRhZyAiT3RoZXIgbW9kZSBzeW1ib2wiCisgICAgICAgICAg
ICAgICAgICA6dmFsaWRhdGUgKGxhbWJkYSAod2lkKQorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgKGxldCAoKHZhbCAod2lkZ2V0LXZhbHVlIHdpZCkpKQorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAodW5sZXNzIChhbmQgdmFsIChlcSAnc3ltYm9sICh0eXBlLW9mIHZhbCkp
KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh3aWRnZXQtcHV0IHdpZCA6ZXJy
b3IgIk11c3QgYmUgYSBub24tbmlsIHN5bWJvbCIpCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgd2lkKSkpKSkKKyAgOnNhZmUgIydzeW1ib2xwCisgIDp2ZXJzaW9uICIzMS4xIgor
ICA6cGFja2FnZS12ZXJzaW9uICIxLjAiKQorCis7OzsgRmFjZXM6CiAKIChkZWZncm91cCBtYXJr
ZG93bi10cy1mYWNlcyBuaWwKLSAgIkZhY2VzIHVzZWQgaW4gTWFya2Rvd24gVFMgTW9kZS4iCisg
ICJGYWNlcyB1c2VkIGJ5IE1hcmtkb3duLVRTLiIKICAgOmdyb3VwICdtYXJrZG93bi10cy1mYWNl
cwogICA6Z3JvdXAgJ2ZhY2VzKQogCkBAIC0xNDQsMTYgKzI4NywxNjQgQEAgbWFya2Rvd24tdHMt
aGVhZGluZy01CiAoZGVmZmFjZSBtYXJrZG93bi10cy1oZWFkaW5nLTYgJygodCAoOmluaGVyaXQg
b3V0bGluZS02KSkpCiAgICJGYWNlIGZvciBzaXh0aCBsZXZlbCBNYXJrZG93biBoZWFkaW5ncy4i
KQogCi0oZGVmZmFjZSBtYXJrZG93bi10cy1saXN0LW1hcmtlciAnKCh0ICg6aW5oZXJpdCBzaGFk
b3cpKSkKLSAgIkZhY2UgZm9yIE1hcmtkb3duIGxpc3QgbWFya2VycyBsaWtlIC0gYW5kICouIikK
KyhkZWZmYWNlIG1hcmtkb3duLXRzLWVtcGhhc2lzICcoKHQgKDppbmhlcml0IGl0YWxpYykpKQor
ICAiRmFjZSBmb3IgTWFya2Rvd24gZW1waGFzaXMgKGl0YWxpYykgdGV4dC4iKQorCisoZGVmZmFj
ZSBtYXJrZG93bi10cy1ib2xkICcoKHQgKDppbmhlcml0IGJvbGQpKSkKKyAgIkZhY2UgZm9yIE1h
cmtkb3duIHN0cm9uZyBlbXBoYXNpcyAoYm9sZCkgdGV4dC4iKQorCisoZGVmZmFjZSBtYXJrZG93
bi10cy1zdHJpa2V0aHJvdWdoICcoKHQgKDpzdHJpa2UtdGhyb3VnaCB0KSkpCisgICJGYWNlIGZv
ciBNYXJrZG93biBzdHJpa2V0aHJvdWdoIHRleHQuIikKIAogKGRlZmZhY2UgbWFya2Rvd24tdHMt
YmxvY2stcXVvdGUgJygodCAoOmluaGVyaXQgaXRhbGljKSkpCiAgICJGYWNlIGZvciBNYXJrZG93
biBibG9jayBxdW90ZXMuIikKIAorKGRlZmZhY2UgbWFya2Rvd24tdHMtbGluayAnKCh0ICg6aW5o
ZXJpdCBsaW5rKSkpCisgICJGYWNlIGZvciBNYXJrZG93biBsaW5rIHRleHQgYW5kIGltYWdlIGRl
c2NyaXB0aW9ucy4iKQorCisoZGVmZmFjZSBtYXJrZG93bi10cy1saW5rLWRlc3RpbmF0aW9uICco
KHQgKDppbmhlcml0IGZvbnQtbG9jay1zdHJpbmctZmFjZSkpKQorICAiRmFjZSBmb3IgTWFya2Rv
d24gbGluayBkZXN0aW5hdGlvbnMgKFVSTHMpLiIpCisKKyhkZWZmYWNlIG1hcmtkb3duLXRzLWNv
ZGUtc3BhbiAnKCh0ICg6aW5oZXJpdCBmb250LWxvY2stc3RyaW5nLWZhY2UpKSkKKyAgIkZhY2Ug
Zm9yIE1hcmtkb3duIGlubGluZSBjb2RlIHNwYW5zLiIpCisKKyhkZWZmYWNlIG1hcmtkb3duLXRz
LWNvZGUtYmxvY2sgJygodCAoOmV4dGVuZCB0KSkpCisgICJGYWNlIGZvciBNYXJrZG93biBmZW5j
ZWQgY29kZSBibG9jayBjb250ZW50LgorQWx0ZXIgdGhpcyBmYWNlIHRvIGFkZCBhIGA6YmFja2dy
b3VuZCcgZm9yIGEgdmlzdWFsbHkgZGlzdGluY3QKK2NvZGUgYmxvY2sgcmVnaW9uLCBlLmcuOgor
ICAoc2V0LWZhY2UtYXR0cmlidXRlIFxcPSdtYXJrZG93bi10cy1jb2RlLWJsb2NrIG5pbCA6YmFj
a2dyb3VuZCBcImdyYXk5NVwiKSIpCisKKyhkZWZmYWNlIG1hcmtkb3duLXRzLWNvZGUtYmxvY2st
bWFya3VwLWhpZGRlbgorICAnKCgoKGJhY2tncm91bmQgbGlnaHQpKSAoOmJhY2tncm91bmQgImdy
YXk5NSIgOmV4dGVuZCB0KSkKKyAgICAoKChiYWNrZ3JvdW5kIGRhcmspKSAgKDpiYWNrZ3JvdW5k
ICJncmF5MTUiIDpleHRlbmQgdCkpKQorICAiRmFjZSBmb3IgTWFya2Rvd24gZmVuY2VkIGNvZGUg
YmxvY2sgY29udGVudCB3aGVuIG1hcmt1cCBpcyBoaWRkZW4uCitVc2VkIGluc3RlYWQgb2YgYG1h
cmtkb3duLXRzLWNvZGUtYmxvY2snIHdoZW4gYG1hcmtkb3duLXRzLWhpZGUtbWFya3VwJworaXMg
bm9uLW5pbC4iKQorCisoZGVmZmFjZSBtYXJrZG93bi10cy1pbmRlbnRlZC1jb2RlLWJsb2NrICco
KHQgKDppbmhlcml0IGZvbnQtbG9jay1zdHJpbmctZmFjZSkpKQorICAiRmFjZSBmb3IgTWFya2Rv
d24gaW5kZW50ZWQgY29kZSBibG9ja3MuIikKKworKGRlZmZhY2UgbWFya2Rvd24tdHMtaHRtbC10
YWcgJygodCAoOmluaGVyaXQgZm9udC1sb2NrLWRvYy1tYXJrdXAtZmFjZSkpKQorICAiRmFjZSBm
b3IgaW5saW5lIEhUTUwgdGFncyBpbiBNYXJrZG93bi4iKQorCisoZGVmZmFjZSBtYXJrZG93bi10
cy1odG1sLWJsb2NrICcoKHQgKDppbmhlcml0IGZvbnQtbG9jay1kb2MtbWFya3VwLWZhY2UpKSkK
KyAgIkZhY2UgZm9yIEhUTUwgYmxvY2tzIGluIE1hcmtkb3duLiIpCisKKyhkZWZmYWNlIG1hcmtk
b3duLXRzLXRoZW1hdGljLWJyZWFrICcoKHQgKDppbmhlcml0IHNoYWRvdyA6ZXh0ZW5kIHQpKSkK
KyAgIkZhY2UgZm9yIE1hcmtkb3duIHRoZW1hdGljIGJyZWFrcyAoaG9yaXpvbnRhbCBydWxlcyku
CitDdXN0b21pemUgdGhpcyBmYWNlIHRvIGFkZCBhIDpiYWNrZ3JvdW5kIGZvciBhIGZ1bGwtd2lk
dGggdmlzdWFsIHJ1bGUuIikKKworKGRlZmZhY2UgbWFya2Rvd24tdHMtZW50aXR5LXJlZmVyZW5j
ZSAnKCh0ICg6aW5oZXJpdCBmb250LWxvY2stYnVpbHRpbi1mYWNlKSkpCisgICJGYWNlIGZvciBu
YW1lZCBIVE1MIGVudGl0eSByZWZlcmVuY2VzIGxpa2UgJmFtcDsgYW5kICZjb3B5Oy4iKQorCiso
ZGVmZmFjZSBtYXJrZG93bi10cy1udW1lcmljLWNoYXJhY3Rlci1yZWZlcmVuY2UKKyAgJygodCAo
OmluaGVyaXQgZm9udC1sb2NrLWVzY2FwZS1mYWNlKSkpCisgICJGYWNlIGZvciBudW1lcmljIGNo
YXJhY3RlciByZWZlcmVuY2VzIGxpa2UgJiM2NTsgYW5kICYjeDQxOy4iKQorCisoZGVmZmFjZSBt
YXJrZG93bi10cy1sYXRleCAnKCh0ICg6aW5oZXJpdCBmb250LWxvY2stc3RyaW5nLWZhY2UpKSkK
KyAgIkZhY2UgZm9yIExhVGVYIC8gbWF0aCBjb250ZW50IGluIE1hcmtkb3duICgkLi4uJCBhbmQg
JCQuLi4kJCkuIikKKworKGRlZmZhY2UgbWFya2Rvd24tdHMtdGFibGUtaGVhZGVyICcoKHQgKDpp
bmhlcml0IChib2xkIGZvbnQtbG9jay1kb2MtZmFjZSkpKSkKKyAgIkZhY2UgZm9yIE1hcmtkb3du
IHBpcGUgdGFibGUgaGVhZGVyIGNlbGxzLiIpCisKKyhkZWZmYWNlIG1hcmtkb3duLXRzLXRhYmxl
LWNlbGwgJygodCAoOmluaGVyaXQgZGVmYXVsdCkpKQorICAiRmFjZSBmb3IgTWFya2Rvd24gcGlw
ZSB0YWJsZSBkYXRhIGNlbGxzLiIpCisKKyhkZWZmYWNlIG1hcmtkb3duLXRzLXRhYmxlLWRlbGlt
aXRlci1jZWxsICcoKHQgKDppbmhlcml0IGZvbnQtbG9jay1kb2MtZmFjZSkpKQorICAiRmFjZSBm
b3IgTWFya2Rvd24gcGlwZSB0YWJsZSBkZWxpbWl0ZXIgY2VsbHMgKC0tLSBzZXBhcmF0b3JzKS4i
KQorCiAoZGVmZmFjZSBtYXJrZG93bi10cy1sYW5ndWFnZS1rZXl3b3JkICcoKHQgKDppbmhlcml0
IGZvbnQtbG9jay1rZXl3b3JkLWZhY2UpKSkKICAgIkZhY2UgZm9yIHRoZSBsYW5ndWFnZSBrZXl3
b3JkIGZvciBNYXJrZG93biBjb2RlIGJsb2Nrcy4iKQogCi07OzsgRm9udC1sb2NrCisoZGVmZmFj
ZSBtYXJrZG93bi10cy1saXN0LW1hcmtlciAnKCh0ICg6aW5oZXJpdCBzaGFkb3cpKSkKKyAgIkZh
Y2UgZm9yIE1hcmtkb3duIGxpc3QgbWFya2VycyBsaWtlIC0gYW5kICouIikKKworKGRlZmZhY2Ug
bWFya2Rvd24tdHMtaGFyZC1saW5lLWJyZWFrLWJhY2tzbGFzaAorICAnKCh0ICg6aW5oZXJpdCBv
dXRsaW5lLTQgOndlaWdodCBib2xkKSkpCisgICJGYWNlIGZvciBNYXJrZG93biBoYXJkIGxpbmUg
YnJlYWtzIGludHJvZHVjZWQgYnkgYSB0cmFpbGluZyBiYWNrc2xhc2guIikKKworKGRlZmZhY2Ug
bWFya2Rvd24tdHMtaGFyZC1saW5lLWJyZWFrLWJhY2tzbGFzaC1oaWRkZW4KKyAgJygodCAoOmlu
aGVyaXQgb3V0bGluZS00IDp3ZWlnaHQgYm9sZCkpKQorICAiRmFjZSBmb3IgdHJhaWxpbmctYmFj
a3NsYXNoIGhhcmQgbGluZSBicmVhayB3aGVuIG1hcmt1cCBpcyBoaWRkZW4uIikKKworKGRlZmZh
Y2UgbWFya2Rvd24tdHMtaGFyZC1saW5lLWJyZWFrLXNwYWNlCisgICcoKCgoYmFja2dyb3VuZCBs
aWdodCkpICg6YmFja2dyb3VuZCAiZ3JheTcwIiA6d2VpZ2h0IGJvbGQpKQorICAgICgoKGJhY2tn
cm91bmQgZGFyaykpICAoOmJhY2tncm91bmQgImdyYXk0MCIgOndlaWdodCBib2xkKSkpCisgICJG
YWNlIGZvciBNYXJrZG93biBoYXJkIGxpbmUgYnJlYWtzIGludHJvZHVjZWQgYnkgdHdvIHRyYWls
aW5nIHNwYWNlcy4KK1RoZSB0cmFpbGluZyBzcGFjZXMgYXJlIG90aGVyd2lzZSBpbnZpc2libGUs
IHNvIHRoZXkgYXJlIHNob3duIGFzIGEKK3NoYWRvdy1jb2xvcmVkIGJsb2NrLiIpCisKKyhkZWZm
YWNlIG1hcmtkb3duLXRzLWhhcmQtbGluZS1icmVhay1zcGFjZS1oaWRkZW4KKyAgJygodCAoOmlu
aGVyaXQgb3V0bGluZS00IDp3ZWlnaHQgYm9sZCkpKQorICAiRmFjZSBmb3IgdHJhaWxpbmctc3Bh
Y2VzIGhhcmQgbGluZSBicmVhayB3aGVuIG1hcmt1cCBpcyBoaWRkZW4uIikKKworKGRlZmZhY2Ug
bWFya2Rvd24tdHMtdGFzay11bmNoZWNrZWQgJygodCAoOmluaGVyaXQgbWFya2Rvd24tdHMtbGlz
dC1tYXJrZXIpKSkKKyAgIkZhY2UgZm9yIE1hcmtkb3duIHVuY2hlY2tlZCB0YXNrIGxpc3QgbWFy
a2Vycy4iKQorCisoZGVmZmFjZSBtYXJrZG93bi10cy10YXNrLWNoZWNrZWQgJygodCAoOmluaGVy
aXQgbWFya2Rvd24tdHMtbGlzdC1tYXJrZXIpKSkKKyAgIkZhY2UgZm9yIE1hcmtkb3duIGNoZWNr
ZWQgdGFzayBsaXN0IG1hcmtlcnMuIikKKworKHRyZWVzaXQtZGVjbGFyZS11bmF2YWlsYWJsZS1m
dW5jdGlvbnMpCisKKyhhZGQtdG8tbGlzdAorICd0cmVlc2l0LWxhbmd1YWdlLXNvdXJjZS1hbGlz
dAorICcobWFya2Rvd24KKyAgICJodHRwczovL2dpdGh1Yi5jb20vdHJlZS1zaXR0ZXItZ3JhbW1h
cnMvdHJlZS1zaXR0ZXItbWFya2Rvd24iCisgICA6Y29tbWl0ICI0MTMyODUyMzFjZThmYThiMTFl
NzA3NGJiZTI2NWI0OGFhNzI3N2Y5IgorICAgOnNvdXJjZS1kaXIgInRyZWUtc2l0dGVyLW1hcmtk
b3duL3NyYyIpCisgdCkKKworKGFkZC10by1saXN0CisgJ3RyZWVzaXQtbGFuZ3VhZ2Utc291cmNl
LWFsaXN0CisgJyhtYXJrZG93bi1pbmxpbmUKKyAgICJodHRwczovL2dpdGh1Yi5jb20vdHJlZS1z
aXR0ZXItZ3JhbW1hcnMvdHJlZS1zaXR0ZXItbWFya2Rvd24iCisgICA6Y29tbWl0ICI0MTMyODUy
MzFjZThmYThiMTFlNzA3NGJiZTI2NWI0OGFhNzI3N2Y5IgorICAgOnNvdXJjZS1kaXIgInRyZWUt
c2l0dGVyLW1hcmtkb3duLWlubGluZS9zcmMiKQorIHQpCisKKzs7OyBWYXJpYWJsZXM6CisKKyhk
ZWZ2YXIgbWFya2Rvd24tdHMtLXNldC11cC1pbmxpbmUgbmlsCisgICJMZXQgYmluZCB0aGlzIHRv
IG5vbi1uaWwgZm9yIGlubGluZSBgbWFya2Rvd24tdHMtbW9kZScgYnVmZmVycy4iKQorCisoZGVm
dmFyIG1hcmtkb3duLXRzLWNvZGUtYmxvY2stbW9kZXMKKyAgYCgoc2ggLiBiYXNoLXRzLW1vZGUp
CisgICAgKHNoZWxsIC4gYmFzaC10cy1tb2RlKQorICAgICgsKGludGVybiAiYyMiKSAuIGMtc2hh
cnApCisgICAgKGNwcCAuIGMrKy10cy1tb2RlKQorICAgIChlbCAuIGVtYWNzLWxpc3AtbW9kZSkK
KyAgICAoZWxpc3AgLiBlbWFjcy1saXNwLW1vZGUpCisgICAgKGdvbGFuZyAuIGdvLXRzLW1vZGUp
CisgICAgKGdvbW9kIC4gZ28tbW9kLXRzLW1vZGUpCisgICAgKGdvd29yayAuIGdvLXdvcmstdHMt
bW9kZSkKKyAgICAoamF2YXNjcmlwdCAuIGpzLXRzLW1vZGUpCisgICAgKG1kIC4gbWFya2Rvd24t
dHMtbW9kZSkKKyAgICAocHkgLiBweXRob24tdHMtbW9kZSkKKyAgICAocmIgLiBydWJ5LXRzLW1v
ZGUpCisgICAgKHJzIC4gcnVzdC10cy1tb2RlKQorICAgICh0ZXggLiBsYXRleC1tb2RlKQorICAg
ICh0cyAuIHR5cGVzY3JpcHQtdHMtbW9kZSkKKyAgICAoeW1sIC4geWFtbC10cy1tb2RlKSkKKyAg
IkFsaXN0IG1hcHBpbmcgY29kZSBibG9jayBsYW5ndWFnZXMgdG8gdGhlaXIgbWFqb3IgbW9kZS4K
K1RoZSBhbGlzdCBpcyBvZiB0aGUgZm9ybSAoTEFOR1VBR0UgLiBNQUpPUi1NT0RFKS4KK01BSk9S
LU1PREUgY2FuIGJlIGEgdHJlZS1zaXR0ZXIgb3IgYSBjb252ZW50aW9uYWwgbW9kZS4KK0lmIHlv
dSBwcmVmZXIgYSBjb252ZW50aW9uYWwgbW9kZSBvdmVyIGl0cyB0cmVlLXNpdHRlciB2YXJpYW50
LCBhZGQgb3IgcmVwbGFjZQorcmVsZXZhbnQgZW50cmllcy4gIEZvciBleGFtcGxlOgorICAgIChh
ZGQtdG8tbGlzdCBcXD0nbWFya2Rvd24tdHMtY29kZS1ibG9jay1tb2RlcworICAgICAgXFw9Jyhw
eXRob24gLiBweXRob24tbW9kZSkpCisgICAgKHNldGYgKGFsaXN0LWdldCBcXD0ncHkgbWFya2Rv
d24tdHMtY29kZS1ibG9jay1tb2RlcykKKyAgICAgICAgICBcXD0ncHl0aG9uLW1vZGUpCitDb2Rl
IGJsb2NrcyBmb3IgdGhhdCBub24gdHJlZS1zaXR0ZXIgbW9kZXMgd2lsbCBiZSBmb250aWZpZWQg
dXNpbmcgdGhlCittb2RlJ3MgY29udmVudGlvbmFsIGZvbnQtbG9jayBydWxlcy4iKQorCisoZGVm
dmFyIG1hcmtkb3duLXRzLWNvZGUtYmxvY2stZm9yY2UtY29udmVudGlvbmFsLW1vZGVzCisgICco
bWFya2Rvd24tdHMtbW9kZQorICAgIHBocC10cy1tb2RlKQorICAiVHJlYXQgdGhlc2UgY29kZSBi
bG9jayB0cmVlLXNpdHRlciBtb2RlcyBhcyBjb252ZW50aW9uYWwuCitTb21lIG1vZGVzIHRoYXQg
ZW1iZWQgbXVsdGlwbGUgYHRyZWVzaXQnIHBhcnNlcnMgbmVlZCB0byBiZSB0cmVhdGVkIHdpdGgK
K2NvbnZlbnRpb25hbCBmb250LWxvY2suICBgbWFya2Rvd24tdHMtbW9kZScgaXRzZWxmIGlzIG9u
ZSBvZiB0aGVtLiIpCisKKzs7OyBGb250LWxvY2s6CiAKIChkZWZ1biBtYXJrZG93bi10cy0tZm9u
dGlmeS1kZWxpbWl0ZXIgKG5vZGUgb3ZlcnJpZGUgc3RhcnQgZW5kICZyZXN0IF8pCiAgICJGb250
aWZ5IGRlbGltaXRlciBOT0RFIGFuZCBvcHRpb25hbGx5IGhpZGUgaXRzIG1hcmt1cC4KQEAgLTE2
OCwyMyArNDU5LDc4MSBAQCBtYXJrZG93bi10cy0tZm9udGlmeS1kZWxpbWl0ZXIKICAgICAocHV0
LXRleHQtcHJvcGVydHkgKHRyZWVzaXQtbm9kZS1zdGFydCBub2RlKSAodHJlZXNpdC1ub2RlLWVu
ZCBub2RlKQogICAgICAgICAgICAgICAgICAgICAgICAnaW52aXNpYmxlICdtYXJrZG93bi10cy0t
bWFya3VwKSkpCiAKKyhkZWZ2YXIgdXJsLW1haWwtY29tbWFuZCkgOyB1cmwvdXJsLXZhcnMuZWwK
KworKGRlZnVuIG1hcmtkb3duLXRzLS1tYWtlLWxpbmstYnV0dG9uIChiZWcgZW5kIHVybCkKKyAg
Ik1ha2UgdGhlIHJlZ2lvbiBmcm9tIEJFRyB0byBFTkQgYSBjbGlja2FibGUgYnV0dG9uIGZvciBV
UkwuCitGb3IgbWFpbHRvOiBVUklzLCB1c2UgYHVybC1tYWlsLWNvbW1hbmQnLiAgRm9yIG90aGVy
IHNjaGVtZXMKK1woZS5nLiwgaHR0cCwgZnRwKSwgb3BlbiB3aXRoIGBicm93c2UtdXJsJy4gIE90
aGVyd2lzZSwgdHJlYXQgYXMKK2EgcmVsYXRpdmUgZmlsZSBwYXRoIGFuZCBvcGVuIHdpdGggYGZp
bmQtZmlsZScuCisKK0RvIG5vdCBwYXNzIGBmYWNlJyB0byBgbWFrZS10ZXh0LWJ1dHRvbic6IHRo
ZSBsaW5rIGZhY2UgaXMgYWxyZWFkeQorYXBwbGllZCBieSBgbWFya2Rvd24tdHMtLWZvbnRpZnkt
bGluay1ub2RlJyB2aWEKK2B0cmVlc2l0LWZvbnRpZnktd2l0aC1vdmVycmlkZScgKHdpdGggYDpv
dmVycmlkZSBhcHBlbmQnKSwgYW5kCitgYWRkLXRleHQtcHJvcGVydGllcycgd291bGQgb3RoZXJ3
aXNlIHJlcGxhY2UgdGhlIGFwcGVuZGVkIGZhY2UKK2xpc3Qgd2l0aCBhIHNpbmdsZSBgbWFya2Rv
d24tdHMtbGluaycsIGNsb2JiZXJpbmcgYW4gZW5jbG9zaW5nCitoZWFkaW5nIGZhY2UuIgorICA7
OyBOT1RFOiBVUkkgc2NoZW1lIGFuZCBob3N0IG5hbWUgYXJlIGNhc2UtaW5zZW5zaXRpdmUgcGVy
IFJGQyAzOTg2CisgIDs7IGFuZCBSRkMgNzIzMC4KKyAgKGxldCAoKGNhc2UtZm9sZC1zZWFyY2gg
bmlsKSkKKyAgICAobWFrZS10ZXh0LWJ1dHRvbiBiZWcgZW5kCisgICAgICAgICAgICAgICAgICAg
ICAgJ2FjdGlvbiAobGFtYmRhIChfYnV0dG9uKQorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAoY29uZAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKChzdHJpbmctcHJl
Zml4LXAgIiMiIHVybCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWFya2Rv
d24tdHMtLWZvbGxvdy1mcmFnbWVudAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAoc3Vic3RyaW5nIHVybCAxKSkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAo
KHN0cmluZy1tYXRjaC1wICJcXGBtYWlsdG86IiB1cmwpCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgKGZ1bmNhbGwgdXJsLW1haWwtY29tbWFuZAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIChyZXBsYWNlLXJlZ2V4cC1pbi1zdHJpbmcKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlxcYG1haWx0bzoiICIiIHVy
bCkpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKChzdHJpbmctbWF0Y2gtcCAi
XFxgW2Etel0rOiIgdXJsKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChicm93
c2UtdXJsIHVybCkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodCAoZmluZC1m
aWxlIHVybCkpKSkKKyAgICAgICAgICAgICAgICAgICAgICAnaGVscC1lY2hvIHVybCkpKQorCiso
ZGVmdW4gbWFya2Rvd24tdHMtLWZvbnRpZnktbGluay1kZXN0aW5hdGlvbiAobm9kZSBvdmVycmlk
ZSBzdGFydCBlbmQgJnJlc3QgXykKKyAgIkZvbnRpZnkgbGluayBkZXN0aW5hdGlvbiBOT0RFIGFu
ZCBoaWRlIGl0IHdoZW4gbWFya3VwIGlzIGhpZGRlbi4KK09WRVJSSURFLCBTVEFSVCwgYW5kIEVO
RCBhcmUgcGFzc2VkIHRocm91Z2ggdG8KK2B0cmVlc2l0LWZvbnRpZnktd2l0aC1vdmVycmlkZScu
IgorICAodHJlZXNpdC1mb250aWZ5LXdpdGgtb3ZlcnJpZGUKKyAgICh0cmVlc2l0LW5vZGUtc3Rh
cnQgbm9kZSkgKHRyZWVzaXQtbm9kZS1lbmQgbm9kZSkKKyAgICdtYXJrZG93bi10cy1saW5rLWRl
c3RpbmF0aW9uIG92ZXJyaWRlIHN0YXJ0IGVuZCkKKyAgKHdoZW4gbWFya2Rvd24tdHMtaGlkZS1t
YXJrdXAKKyAgICAocHV0LXRleHQtcHJvcGVydHkgKHRyZWVzaXQtbm9kZS1zdGFydCBub2RlKSAo
dHJlZXNpdC1ub2RlLWVuZCBub2RlKQorICAgICAgICAgICAgICAgICAgICAgICAnaW52aXNpYmxl
ICdtYXJrZG93bi10cy0tbWFya3VwKSkpCisKKyhkZWZ2YXItbG9jYWwgbWFya2Rvd24tdHMtLWxp
bmstcmVmLWNhY2hlIG5pbAorICAiQ2FjaGVkIGFsaXN0IG9mIChMQUJFTCAuIFVSTCkgZnJvbSBs
aW5rIHJlZmVyZW5jZSBkZWZpbml0aW9ucy4KK0VhY2ggZW50cnkgaXMgYSBjb25zIGNlbGwgbWFw
cGluZyBhIGRvd25jYXNlZCBsYWJlbCBzdHJpbmcgdG8gaXRzCitkZXN0aW5hdGlvbiBVUkwuIikK
KworKGRlZnZhci1sb2NhbCBtYXJrZG93bi10cy0tbGluay1yZWYtY2FjaGUtdGljayBuaWwKKyAg
IlZhbHVlIG9mIGBidWZmZXItY2hhcnMtbW9kaWZpZWQtdGljaycgd2hlbiB0aGUgY2FjaGUgd2Fz
IGJ1aWx0LiIpCisKKyhkZWZ1biBtYXJrZG93bi10cy0tbGluay1yZWYtZGVmaW5pdGlvbnMgKCkK
KyAgIlJldHVybiBhbiBhbGlzdCBvZiAoTEFCRUwgLiBVUkwpIGZyb20gbGluayByZWZlcmVuY2Ug
ZGVmaW5pdGlvbnMuCitMQUJFTCBpcyBkb3duY2FzZWQgZm9yIGNhc2UtaW5zZW5zaXRpdmUgbWF0
Y2hpbmcuICBSZXN1bHRzIGFyZQorY2FjaGVkIGFuZCByZWJ1aWx0IG9ubHkgd2hlbiB0aGUgYnVm
ZmVyIGNoYW5nZXMuIgorICAobGV0ICgodGljayAoYnVmZmVyLWNoYXJzLW1vZGlmaWVkLXRpY2sp
KSkKKyAgICAodW5sZXNzIChlcSB0aWNrIG1hcmtkb3duLXRzLS1saW5rLXJlZi1jYWNoZS10aWNr
KQorICAgICAgKGxldCogKChyb290ICh0cmVlc2l0LWJ1ZmZlci1yb290LW5vZGUgJ21hcmtkb3du
KSkKKyAgICAgICAgICAgICAobWF0Y2hlcyAodHJlZXNpdC1xdWVyeS1jYXB0dXJlCisgICAgICAg
ICAgICAgICAgICAgICAgIHJvb3QKKyAgICAgICAgICAgICAgICAgICAgICAgJygobGlua19yZWZl
cmVuY2VfZGVmaW5pdGlvbgorICAgICAgICAgICAgICAgICAgICAgICAgICAobGlua19sYWJlbCkg
QGxhYmVsCisgICAgICAgICAgICAgICAgICAgICAgICAgIChsaW5rX2Rlc3RpbmF0aW9uKSBAZGVz
dCkpKSkKKyAgICAgICAgICAgICBkZWZzKQorICAgICAgICAod2hpbGUgbWF0Y2hlcworICAgICAg
ICAgIChsZXQqICgobGFiZWwtcGFpciAocG9wIG1hdGNoZXMpKQorICAgICAgICAgICAgICAgICAo
ZGVzdC1wYWlyIChwb3AgbWF0Y2hlcykpCisgICAgICAgICAgICAgICAgIChsYmwtdGV4dCAoc3Ry
aW5nLXRyaW0gKHRyZWVzaXQtbm9kZS10ZXh0IChjZHIgbGFiZWwtcGFpcikgdCkKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiXFxbIiAiXFxdIikpKQorICAgICAgICAg
ICAgKHB1c2ggKGNvbnMgKGRvd25jYXNlIGxibC10ZXh0KQorICAgICAgICAgICAgICAgICAgICAg
ICAgKHRyZWVzaXQtbm9kZS10ZXh0IChjZHIgZGVzdC1wYWlyKSB0KSkKKyAgICAgICAgICAgICAg
ICAgIGRlZnMpKSkKKyAgICAgICAgKHNldHEgbWFya2Rvd24tdHMtLWxpbmstcmVmLWNhY2hlIChu
cmV2ZXJzZSBkZWZzKQorICAgICAgICAgICAgICBtYXJrZG93bi10cy0tbGluay1yZWYtY2FjaGUt
dGljayB0aWNrKSkpCisgICAgbWFya2Rvd24tdHMtLWxpbmstcmVmLWNhY2hlKSkKKworKGRlZnVu
IG1hcmtkb3duLXRzLS1yZXNvbHZlLWxpbmstcmVmIChsYWJlbCkKKyAgIlJlc29sdmUgTEFCRUwg
dG8gYSBVUkwgdmlhIGxpbmsgcmVmZXJlbmNlIGRlZmluaXRpb25zLgorTEFCRUwgc2hvdWxkIGJl
IHRoZSB0ZXh0IHdpdGhvdXQgYnJhY2tldHMuICBNYXRjaGluZyBpcworY2FzZS1pbnNlbnNpdGl2
ZSBwZXIgQ29tbW9uTWFyayBzcGVjIHNlY3Rpb24gNC43LiIKKyAgKGFsaXN0LWdldCAoZG93bmNh
c2UgbGFiZWwpIChtYXJrZG93bi10cy0tbGluay1yZWYtZGVmaW5pdGlvbnMpCisgICAgICAgICAg
ICAgbmlsIG5pbCAjJ2VxdWFsKSkKKworOzs7IEZyYWdtZW50IGxpbmtzOgorCisoZGVmY29uc3Qg
bWFya2Rvd24tdHMtLXNsdWctZ2l0aHViLXN0cmlwLXJlCisgICJbXVshXCIjJCUmJygpKissLi86
Ozw9Pj9AXFxeYHt8fX5dIgorICAiUHVuY3R1YXRpb24gc3RyaXBwZWQgYnkgR2l0SHViJ3MgZ2gt
c2x1Z2dlciBiZWZvcmUgaHlwaGVuYXRpb24uIikKKworKGRlZnVuIG1hcmtkb3duLXRzLS1zbHVn
LWdpdGh1YiAodGV4dCkKKyAgIlJldHVybiB0aGUgR2l0SHViLWZsYXZvciBzbHVnIGZvciBoZWFk
aW5nIFRFWFQuCitNaXJyb3JzIHRoZSBnaC1zbHVnZ2VyIGFsZ29yaXRobTogbG93ZXJjYXNlLCBz
dHJpcCBhIGZpeGVkCitwdW5jdHVhdGlvbiBzZXQsIHJlcGxhY2Ugc3BhY2VzIHdpdGggaHlwaGVu
cy4iCisgIChsZXQqICgobGMgKGRvd25jYXNlIHRleHQpKQorICAgICAgICAgKHN0cmlwcGVkIChy
ZXBsYWNlLXJlZ2V4cC1pbi1zdHJpbmcKKyAgICAgICAgICAgICAgICAgICAgbWFya2Rvd24tdHMt
LXNsdWctZ2l0aHViLXN0cmlwLXJlICIiIGxjKSkpCisgICAgKHJlcGxhY2UtcmVnZXhwLWluLXN0
cmluZyAiW1s6Ymxhbms6XV0iICItIiBzdHJpcHBlZCkpKQorCisoZGVmdW4gbWFya2Rvd24tdHMt
LXNsdWctcGFuZG9jICh0ZXh0KQorICAiUmV0dXJuIHRoZSBQYW5kb2MtZmxhdm9yIGF1dG8taWQg
c2x1ZyBmb3IgaGVhZGluZyBURVhULgorTWlycm9ycyBQYW5kb2MncyBhbGdvcml0aG06IGRyb3Ag
ZXZlcnl0aGluZyBiZWZvcmUgdGhlIGZpcnN0CitsZXR0ZXIsIGtlZXAgYWxwaGFudW1lcmljcyBh
bmQgYF8tLicsIGNvbGxhcHNlIHdoaXRlc3BhY2UgcnVucyB0bworaHlwaGVucywgbG93ZXJjYXNl
LiAgRmFsbHMgYmFjayB0byBcInNlY3Rpb25cIiBpZiBlbXB0eS4iCisgIChsZXQqICgobGMgKGRv
d25jYXNlIHRleHQpKQorICAgICAgICAgKGZyb20tbGV0dGVyIChpZiAoc3RyaW5nLW1hdGNoICJb
WzphbHBoYTpdXSIgbGMpCisgICAgICAgICAgICAgICAgICAgICAgICAgIChzdWJzdHJpbmcgbGMg
KG1hdGNoLWJlZ2lubmluZyAwKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICIiKSkKKyAgICAg
ICAgIChrZXB0IChyZXBsYWNlLXJlZ2V4cC1pbi1zdHJpbmcKKyAgICAgICAgICAgICAgICAiW15b
OmFsbnVtOl1fLlxuXHRbOmJsYW5rOl0tXSIgIiIgZnJvbS1sZXR0ZXIpKQorICAgICAgICAgKGh5
cGhlbmF0ZWQgKHJlcGxhY2UtcmVnZXhwLWluLXN0cmluZyAiW1s6Ymxhbms6XVx0XG5dKyIgIi0i
IGtlcHQpKQorICAgICAgICAgKHRyaW1tZWQgKHJlcGxhY2UtcmVnZXhwLWluLXN0cmluZyAiLStc
XCciICIiIGh5cGhlbmF0ZWQpKSkKKyAgICAoaWYgKHN0cmluZy1lbXB0eS1wIHRyaW1tZWQpICJz
ZWN0aW9uIiB0cmltbWVkKSkpCisKKyhkZWZjb25zdCBtYXJrZG93bi10cy0tZXhwbGljaXQtaWQt
cmUKKyAgIlsgXHRdKntbIFx0XSojXFwoW159IFx0XStcXClbIFx0XSp9WyBcdF0qXFwnIgorICAi
TWF0Y2ggYSBQYW5kb2Mtc3R5bGUgdHJhaWxpbmcgYHsjaWR9JyBvbiBhIGhlYWRpbmcgbGluZS4K
K0NhcHR1cmUgZ3JvdXAgMSBpcyB0aGUgZXhwbGljaXQgaWQuIikKKworKGRlZnVuIG1hcmtkb3du
LXRzLS1oZWFkaW5nLXRleHQtYW5kLWlkIChyYXcpCisgICJTcGxpdCBSQVcgaGVhZGluZyB0ZXh0
IGludG8gKFZJU0lCTEUgLiBFWFBMSUNJVC1JRCkuCitFWFBMSUNJVC1JRCBpcyBub24tbmlsIGlm
IFJBVyBlbmRzIHdpdGggYSBQYW5kb2Mtc3R5bGUgYHsjaWR9JywKK2luIHdoaWNoIGNhc2UgVklT
SUJMRSBpcyBSQVcgd2l0aCB0aGF0IHN1ZmZpeCByZW1vdmVkLiIKKyAgKGlmIChzdHJpbmctbWF0
Y2ggbWFya2Rvd24tdHMtLWV4cGxpY2l0LWlkLXJlIHJhdykKKyAgICAgIChjb25zIChzdWJzdHJp
bmcgcmF3IDAgKG1hdGNoLWJlZ2lubmluZyAwKSkKKyAgICAgICAgICAgIChtYXRjaC1zdHJpbmcg
MSByYXcpKQorICAgIChjb25zIHJhdyBuaWwpKSkKKworKGRlZnZhci1sb2NhbCBtYXJrZG93bi10
cy0taGVhZGluZy1pZC1jYWNoZSBuaWwKKyAgIkNhY2hlZCBoYXNoIHRhYmxlIG1hcHBpbmcgaGVh
ZGluZyBzbHVnIHN0cmluZ3MgdG8gYnVmZmVyIHBvc2l0aW9ucy4KK0VhY2ggdmFsdWUgaXMgdGhl
IGJ1ZmZlciBwb3NpdGlvbiBvZiB0aGUgc3RhcnQgb2YgdGhlIG1hdGNoaW5nCitgYXR4X2hlYWRp
bmcnIG9yIGBzZXRleHRfaGVhZGluZycgbm9kZS4gIEJ1aWx0IGxhemlseSBieQorYG1hcmtkb3du
LXRzLS1oZWFkaW5nLWlkcycsIGludmFsaWRhdGVkIGJ5IGJ1ZmZlci10aWNrIGNoYW5nZS4iKQor
CisoZGVmdmFyLWxvY2FsIG1hcmtkb3duLXRzLS1oZWFkaW5nLWlkLWNhY2hlLXRpY2sgbmlsCisg
ICJWYWx1ZSBvZiBgYnVmZmVyLWNoYXJzLW1vZGlmaWVkLXRpY2snIHdoZW4gdGhlIGhlYWRpbmct
aWQgY2FjaGUgd2FzIGJ1aWx0LiIpCisKKyhkZWZ1biBtYXJrZG93bi10cy0tYnVpbGQtaGVhZGlu
Zy1pZHMgKCkKKyAgIldhbGsgYWxsIGhlYWRpbmdzIGluIHRoZSBidWZmZXIgYW5kIHJldHVybiBh
IGhhc2ggdGFibGUuCitXaGljaCBtYXBzIGVhY2ggc2x1ZyB0byB0aGUgYnVmZmVyIHBvc2l0aW9u
IG9mIGl0cyBoZWFkaW5nLiAgRWFjaAoraGVhZGluZyBjb250cmlidXRlcyBpdHMgR2l0SHViIHNs
dWcsIGl0cyBQYW5kb2Mgc2x1ZywgYW5kIGl0cyBleHBsaWNpdAorYHsjaWR9JyBpZiBwcmVzZW50
LiAgQm90aCBzbHVnIGFsZ29yaXRobXMgYXJlIHN0b3JlZCBpbiB0aGUgc2FtZSBidWZmZXIKK2Jl
Y2F1c2UgYSBtYXJrZG93biBmaWxlIGlzIG9mdGVuIHByZXZpZXdlZCBieSBzZXZlcmFsIHJlbmRl
cmVycyAoR2l0SHViCit3ZWIgVUksIFBhbmRvYywgbWRCb29rLCBIdWdvLCBhbmQgc28gb24pIGFu
ZCB0aGUgc2FtZSBzb3VyY2Ugc2hvdWxkCityZXNvbHZlIHJlZ2FyZGxlc3Mgb2Ygd2hpY2ggb25l
IHRoZSBhdXRob3Igd3JvdGUgdGhlIGxpbmsgZm9yLiAgRm9yIG1vc3QKK2hlYWRpbmdzIHRoZSB0
d28gYWxnb3JpdGhtcyBwcm9kdWNlIHRoZSBzYW1lIHNsdWcgYW55d2F5LgorRHVwbGljYXRlIHNs
dWdzICh3aXRoaW4gb25lIGFsZ29yaXRobSkgYXJlIGRpc2FtYmlndWF0ZWQgYnkgYXBwZW5kaW5n
CitgLTEnLCBgLTInLCBhbmQgc28gb24sIGluIGRvY3VtZW50IG9yZGVyLCBtYXRjaGluZyBHaXRI
dWIncyBiZWhhdmlvci4KK1doZW4gdHdvIGRpc3RpbmN0IGhlYWRpbmdzIHdvdWxkIG90aGVyd2lz
ZSBzaGFyZSBhIHNsdWcsIHRoZSBmaXJzdAorb2NjdXJyZW5jZSBpbiBkb2N1bWVudCBvcmRlciB3
aW5zLiIKKyAgKGxldCAoKHRhYmxlIChtYWtlLWhhc2gtdGFibGUgOnRlc3QgIydlcXVhbCkpCisg
ICAgICAgIDs7IFBlci1hbGdvcml0aG0gZGVkdXBlIGNvdW50ZXJzOiBob3cgbWFueSB0aW1lcyB0
aGlzIGJhc2Ugc2x1ZworICAgICAgICA7OyBoYXMgYmVlbiBzZWVuIHNvIGZhciBpbiBkb2N1bWVu
dCBvcmRlci4KKyAgICAgICAgKGdoLWNvdW50cyAobWFrZS1oYXNoLXRhYmxlIDp0ZXN0ICMnZXF1
YWwpKQorICAgICAgICAocGQtY291bnRzIChtYWtlLWhhc2gtdGFibGUgOnRlc3QgIydlcXVhbCkp
CisgICAgICAgIChyb290ICh0cmVlc2l0LWJ1ZmZlci1yb290LW5vZGUgJ21hcmtkb3duKSkpCisg
ICAgKGRvbGlzdCAoY2FwICh0cmVlc2l0LXF1ZXJ5LWNhcHR1cmUKKyAgICAgICAgICAgICAgICAg
IHJvb3QKKyAgICAgICAgICAgICAgICAgICcoKChhdHhfaGVhZGluZykgQGgpCisgICAgICAgICAg
ICAgICAgICAgICgoc2V0ZXh0X2hlYWRpbmcpIEBoKSkpKQorICAgICAgKGxldCogKChub2RlIChj
ZHIgY2FwKSkKKyAgICAgICAgICAgICAocG9zICh0cmVlc2l0LW5vZGUtc3RhcnQgbm9kZSkpCisg
ICAgICAgICAgICAgKHJhdyAoc3RyaW5nLXRyaW0gKHRyZWVzaXQtbm9kZS10ZXh0IG5vZGUgdCkp
KQorICAgICAgICAgICAgIDs7IFN0cmlwIHRoZSBsZWFkaW5nIG1hcmtlciAoIyMjIG9yID09PT0v
LS0tLSkuCisgICAgICAgICAgICAgOzsgRm9yIGF0eCwgZHJvcCBsZWFkaW5nICMncyBhbmQgZm9s
bG93aW5nIHNwYWNlLgorICAgICAgICAgICAgIDs7IEZvciBzZXRleHQsIGRyb3AgdGhlIHRyYWls
aW5nIHVuZGVybGluZSBsaW5lLgorICAgICAgICAgICAgICh0ZXh0IChjb25kCisgICAgICAgICAg
ICAgICAgICAgICgoc3RyaW5nLW1hdGNoICJcXGAjK1sgXHRdKlxcKC4qP1xcKVsgXHRdKiMqWyBc
dF0qXFwnIiByYXcpCisgICAgICAgICAgICAgICAgICAgICAobWF0Y2gtc3RyaW5nIDEgcmF3KSkK
KyAgICAgICAgICAgICAgICAgICAgKChzdHJpbmctbWF0Y2ggIlxcYFxcKC4qP1xcKVxuWz0tXStb
IFx0XSpcXCciIHJhdykKKyAgICAgICAgICAgICAgICAgICAgIChtYXRjaC1zdHJpbmcgMSByYXcp
KQorICAgICAgICAgICAgICAgICAgICAodCByYXcpKSkKKyAgICAgICAgICAgICAoc3BsaXQgKG1h
cmtkb3duLXRzLS1oZWFkaW5nLXRleHQtYW5kLWlkIHRleHQpKQorICAgICAgICAgICAgICh2aXNp
YmxlIChjYXIgc3BsaXQpKQorICAgICAgICAgICAgIChleHBsaWNpdCAoY2RyIHNwbGl0KSkpCisg
ICAgICAgIDs7IEV4cGxpY2l0IHsjaWR9IHdpbnMgb3V0cmlnaHQ7IGZpcnN0IG9jY3VycmVuY2Ug
a2VlcHMgaXQuCisgICAgICAgICh3aGVuIChhbmQgZXhwbGljaXQgKG5vdCAoZ2V0aGFzaCBleHBs
aWNpdCB0YWJsZSkpKQorICAgICAgICAgIChwdXRoYXNoIGV4cGxpY2l0IHBvcyB0YWJsZSkpCisg
ICAgICAgIDs7IEF1dG8gc2x1Z3MgKEdpdEh1YiArIFBhbmRvYyksIGRlZHVwZWQgcGVyIGFsZ29y
aXRobS4KKyAgICAgICAgKGxldCogKChnaC1iYXNlIChtYXJrZG93bi10cy0tc2x1Zy1naXRodWIg
dmlzaWJsZSkpCisgICAgICAgICAgICAgICAocGQtYmFzZSAobWFya2Rvd24tdHMtLXNsdWctcGFu
ZG9jIHZpc2libGUpKQorICAgICAgICAgICAgICAgKGdoLW4gKGdldGhhc2ggZ2gtYmFzZSBnaC1j
b3VudHMgMCkpCisgICAgICAgICAgICAgICAocGQtbiAoZ2V0aGFzaCBwZC1iYXNlIHBkLWNvdW50
cyAwKSkKKyAgICAgICAgICAgICAgIChnaC1pZCAoaWYgKHplcm9wIGdoLW4pIGdoLWJhc2UKKyAg
ICAgICAgICAgICAgICAgICAgICAgIChmb3JtYXQgIiVzLSVkIiBnaC1iYXNlIGdoLW4pKSkKKyAg
ICAgICAgICAgICAgIChwZC1pZCAoaWYgKHplcm9wIHBkLW4pIHBkLWJhc2UKKyAgICAgICAgICAg
ICAgICAgICAgICAgIChmb3JtYXQgIiVzLSVkIiBwZC1iYXNlIHBkLW4pKSkpCisgICAgICAgICAg
KHB1dGhhc2ggZ2gtYmFzZSAoMSsgZ2gtbikgZ2gtY291bnRzKQorICAgICAgICAgIChwdXRoYXNo
IHBkLWJhc2UgKDErIHBkLW4pIHBkLWNvdW50cykKKyAgICAgICAgICA7OyBGaXJzdC13cml0ZXIt
d2lucyBzbyBkb2N1bWVudCBvcmRlciB0aWVicmVha3MgY29sbGlzaW9ucy4KKyAgICAgICAgICAo
dW5sZXNzIChnZXRoYXNoIGdoLWlkIHRhYmxlKSAocHV0aGFzaCBnaC1pZCBwb3MgdGFibGUpKQor
ICAgICAgICAgICh1bmxlc3MgKGdldGhhc2ggcGQtaWQgdGFibGUpIChwdXRoYXNoIHBkLWlkIHBv
cyB0YWJsZSkpKSkpCisgICAgdGFibGUpKQorCisoZGVmdW4gbWFya2Rvd24tdHMtLWhlYWRpbmct
aWRzICgpCisgICJSZXR1cm4gdGhlIGhlYWRpbmctaWQgaGFzaCB0YWJsZSBmb3IgdGhlIGN1cnJl
bnQgYnVmZmVyLgorQ2FjaGUgaXMgcmVidWlsdCBvbmx5IHdoZW4gYGJ1ZmZlci1jaGFycy1tb2Rp
ZmllZC10aWNrJyBoYXMgYWR2YW5jZWQKK3NpbmNlIHRoZSBsYXN0IGNhbGwgKG1pcnJvcnMgYG1h
cmtkb3duLXRzLS1saW5rLXJlZi1jYWNoZScpLiIKKyAgKGxldCAoKHRpY2sgKGJ1ZmZlci1jaGFy
cy1tb2RpZmllZC10aWNrKSkpCisgICAgKHVubGVzcyAoZXEgdGljayBtYXJrZG93bi10cy0taGVh
ZGluZy1pZC1jYWNoZS10aWNrKQorICAgICAgKHNldHEgbWFya2Rvd24tdHMtLWhlYWRpbmctaWQt
Y2FjaGUgKG1hcmtkb3duLXRzLS1idWlsZC1oZWFkaW5nLWlkcykKKyAgICAgICAgICAgIG1hcmtk
b3duLXRzLS1oZWFkaW5nLWlkLWNhY2hlLXRpY2sgdGljaykpCisgICAgbWFya2Rvd24tdHMtLWhl
YWRpbmctaWQtY2FjaGUpKQorCisoZGVmdW4gbWFya2Rvd24tdHMtLWZvbGxvdy1mcmFnbWVudCAo
aWQpCisgICJKdW1wIHRvIHRoZSBoZWFkaW5nIHdob3NlIHNsdWcgbWF0Y2hlcyBJRCAod2l0aG91
dCBsZWFkaW5nIGAjJykuCitQdXNoZXMgdGhlIG1hcmsgYmVmb3JlIG1vdmluZyBzbyBgQy11IEMt
U1BDJyByZXR1cm5zLiAgU2lnbmFscworYHVzZXItZXJyb3InIGlmIG5vIGhlYWRpbmcgbWF0Y2hl
cy4iCisgIChpZi1sZXQqICgocG9zIChnZXRoYXNoIGlkIChtYXJrZG93bi10cy0taGVhZGluZy1p
ZHMpKSkpCisgICAgICAocHJvZ24KKyAgICAgICAgKHB1c2gtbWFyaykKKyAgICAgICAgKGdvdG8t
Y2hhciBwb3MpCisgICAgICAgIChyZWNlbnRlcikpCisgICAgKHVzZXItZXJyb3IgIk5vIGhlYWRp
bmcgZm9yIGZyYWdtZW50OiAjJXMiIGlkKSkpCisKKyhkZWZ1biBtYXJrZG93bi10cy0tZm9udGlm
eS1oZWFkaW5nIChub2RlIF9vdmVycmlkZSBfc3RhcnQgX2VuZCAmcmVzdCBfKQorICAiQXBwbHkg
dGhlIGhlYWRpbmcgZmFjZSB0byBOT0RFJ3MgZnVsbCBleHRlbnQuCitVc2UgYGZvbnQtbG9jay1h
cHBlbmQtdGV4dC1wcm9wZXJ0eScgZGlyZWN0bHkgc28gdGhlIGZhY2UgaXMgYXBwbGllZAorYWNy
b3NzIHRoZSBlbnRpcmUgaGVhZGluZyBldmVuIHdoZW4gY2hpbGQgc3ViLW5vZGVzIChlLmcuIGFu
IGlubGluZQorbGluaykgd291bGQgb3RoZXJ3aXNlIHByZXZlbnQgdGhlIHJlZ3VsYXIgdHJlZS1z
aXR0ZXIgZmFjZSBydWxlIGZyb20KK2NvdmVyaW5nIHRoZW0uCisKK0ZvciBBVFggaGVhZGluZ3Ms
IGFsc28gZm9udGlmeSBhbnkgb3B0aW9uYWwgdHJhaWxpbmcgY2xvc2luZy1gIycKK3NlcXVlbmNl
IGFzIGEgZGVsaW1pdGVyLiAgVGhlIHRyZWUtc2l0dGVyIGdyYW1tYXIgZG9lcyBub3QgcHJvZHVj
ZSBhCitzZXBhcmF0ZSBub2RlIGZvciB0aGVzZTsgcGVyIENvbW1vbk1hcmsgdGhleSBhcmUgZGVj
b3JhdGl2ZSBhbmQKK211c3QgYmUgcHJlY2VkZWQgYnkgYSBzcGFjZSBvciB0YWIuIgorICAobGV0
KiAoKHR5cGUgKHRyZWVzaXQtbm9kZS10eXBlIG5vZGUpKQorICAgICAgICAgKG4tc3RhcnQgKHRy
ZWVzaXQtbm9kZS1zdGFydCBub2RlKSkKKyAgICAgICAgIChuLWVuZCAgICh0cmVlc2l0LW5vZGUt
ZW5kIG5vZGUpKQorICAgICAgICAgKGZhY2UgKGNvbmQKKyAgICAgICAgICAgICAgICAoKGVxdWFs
IHR5cGUgInNldGV4dF9oZWFkaW5nIikKKyAgICAgICAgICAgICAgICAgJ21hcmtkb3duLXRzLXNl
dGV4dC1oZWFkaW5nKQorICAgICAgICAgICAgICAgICh0CisgICAgICAgICAgICAgICAgIChsZXQg
KChtYXJrZXIgKHRyZWVzaXQtbm9kZS1jaGlsZCBub2RlIDApKSkKKyAgICAgICAgICAgICAgICAg
ICAoaW50ZXJuIChmb3JtYXQgIm1hcmtkb3duLXRzLWhlYWRpbmctJWQiCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIChsZW5ndGggKHRyZWVzaXQtbm9kZS10ZXh0IG1hcmtlciB0
KSkpKSkpKSkpCisgICAgKGZvbnQtbG9jay1hcHBlbmQtdGV4dC1wcm9wZXJ0eSBuLXN0YXJ0IG4t
ZW5kICdmYWNlIGZhY2UpCisgICAgKHdoZW4gKHN0cmluZy1wcmVmaXgtcCAiYXR4XyIgdHlwZSkK
KyAgICAgIChzYXZlLWV4Y3Vyc2lvbgorICAgICAgICAoZ290by1jaGFyIG4tZW5kKQorICAgICAg
ICAoc2tpcC1jaGFycy1iYWNrd2FyZCAiIFx0XG4iIG4tc3RhcnQpCisgICAgICAgIChsZXQgKChs
aW5lLWVuZCAocG9pbnQpKSkKKyAgICAgICAgICAoc2tpcC1jaGFycy1iYWNrd2FyZCAiIFx0IiBu
LXN0YXJ0KQorICAgICAgICAgIChsZXQgKCh0cmFpbGluZy1lbmQgKHBvaW50KSkpCisgICAgICAg
ICAgICAoc2tpcC1jaGFycy1iYWNrd2FyZCAiIyIgbi1zdGFydCkKKyAgICAgICAgICAgIChsZXQg
KCh0cmFpbGluZy1zdGFydCAocG9pbnQpKSkKKyAgICAgICAgICAgICAgKHdoZW4gKGFuZCAoPCB0
cmFpbGluZy1zdGFydCB0cmFpbGluZy1lbmQpCisgICAgICAgICAgICAgICAgICAgICAgICAgKD4g
dHJhaWxpbmctc3RhcnQgbi1zdGFydCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAobWVtcSAo
Y2hhci1iZWZvcmUgdHJhaWxpbmctc3RhcnQpICcoP1xzID9cdCkpKQorICAgICAgICAgICAgICAg
IChmb250LWxvY2stcHJlcGVuZC10ZXh0LXByb3BlcnR5CisgICAgICAgICAgICAgICAgIHRyYWls
aW5nLXN0YXJ0IHRyYWlsaW5nLWVuZAorICAgICAgICAgICAgICAgICAnZmFjZSAnbWFya2Rvd24t
dHMtZGVsaW1pdGVyKQorICAgICAgICAgICAgICAgICh3aGVuIG1hcmtkb3duLXRzLWhpZGUtbWFy
a3VwCisgICAgICAgICAgICAgICAgICA7OyBBbHNvIGhpZGUgdGhlIHNwYWNlKHMpIHByZWNlZGlu
ZyB0aGUgY2xvc2VyIGFuZCBhbnkKKyAgICAgICAgICAgICAgICAgIDs7IHRyYWlsaW5nIHdoaXRl
c3BhY2UsIHNvIHRoZSBoZWFkaW5nIGxvb2tzIGNsZWFuLgorICAgICAgICAgICAgICAgICAgKGxl
dCAoKGhpZGUtc3RhcnQgKHNhdmUtZXhjdXJzaW9uCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIChnb3RvLWNoYXIgdHJhaWxpbmctc3RhcnQpCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIChza2lwLWNoYXJzLWJhY2t3YXJkICIgXHQiIG4tc3RhcnQp
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChwb2ludCkpKSkKKyAgICAg
ICAgICAgICAgICAgICAgKHB1dC10ZXh0LXByb3BlcnR5IGhpZGUtc3RhcnQgbGluZS1lbmQKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdpbnZpc2libGUKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdtYXJrZG93bi10cy0tbWFya3VwKSkpKSkp
KSkpKSkKKworKGRlZnVuIG1hcmtkb3duLXRzLS1mb250aWZ5LWxpbmstbm9kZSAobm9kZSBvdmVy
cmlkZSBzdGFydCBlbmQgJnJlc3QgXykKKyAgIkZvbnRpZnkgbGluayBvciBpbWFnZSB0ZXh0IE5P
REUgYXMgYSBjbGlja2FibGUgYnV0dG9uLgorV29ya3MgZm9yIGlubGluZSBsaW5rcywgcmVmZXJl
bmNlIGxpbmtzLCBzaG9ydGN1dCBsaW5rcywgYW5kCitpbWFnZSBkZXNjcmlwdGlvbnMuICBUaGUg
VVJMIGlzIHRha2VuIGZyb20gYSBzaWJsaW5nCitgbGlua19kZXN0aW5hdGlvbicgbm9kZSB3aGVu
IHByZXNlbnQsIG9yIHJlc29sdmVkIGZyb20gYQorbGluayByZWZlcmVuY2UgZGVmaW5pdGlvbiwg
b3IgdGhlIG5vZGUgdGV4dCBpdHNlbGYgaXMgdXNlZCBhcworZmFsbGJhY2suICBPVkVSUklERSwg
U1RBUlQsIGFuZCBFTkQgYXJlIHBhc3NlZCB0aHJvdWdoIHRvCitgdHJlZXNpdC1mb250aWZ5LXdp
dGgtb3ZlcnJpZGUnLiIKKyAgKGxldCAoKHBhcmVudCAodHJlZXNpdC1ub2RlLXBhcmVudCBub2Rl
KSkpCisgICAgOzsgV2hlbiBOT0RFIGlzIGEgbGlua19sYWJlbCBpbnNpZGUgYSBmdWxsX3JlZmVy
ZW5jZV9saW5rIHRoYXQKKyAgICA7OyBhbHNvIGhhcyBhIGxpbmtfdGV4dCwgc2tpcCBpdCwgbGlu
a190ZXh0IGhhbmRsZXMgdGhhdCBsaW5rLgorICAgICh1bmxlc3MgKGFuZCAoc3RyaW5nPSAodHJl
ZXNpdC1ub2RlLXR5cGUgbm9kZSkgImxpbmtfbGFiZWwiKQorICAgICAgICAgICAgICAgICAodHJl
ZXNpdC1zZWFyY2gtc3VidHJlZSBwYXJlbnQgIlxcYGxpbmtfdGV4dFxcJyIpKQorICAgICAgKHRy
ZWVzaXQtZm9udGlmeS13aXRoLW92ZXJyaWRlCisgICAgICAgKHRyZWVzaXQtbm9kZS1zdGFydCBu
b2RlKSAodHJlZXNpdC1ub2RlLWVuZCBub2RlKQorICAgICAgICdtYXJrZG93bi10cy1saW5rIG92
ZXJyaWRlIHN0YXJ0IGVuZCkKKyAgICAgIChsZXQqICgoZGVzdCAodHJlZXNpdC1zZWFyY2gtc3Vi
dHJlZSBwYXJlbnQgIlxcYGxpbmtfZGVzdGluYXRpb25cXCciKSkKKyAgICAgICAgICAgICAodXJs
IChpZiBkZXN0CisgICAgICAgICAgICAgICAgICAgICAgKHRyZWVzaXQtbm9kZS10ZXh0IGRlc3Qg
dCkKKyAgICAgICAgICAgICAgICAgICAgOzsgUmVmZXJlbmNlIGxpbmtzOiByZXNvbHZlIHZpYSBs
aW5rX2xhYmVsIG9yIGxpbmtfdGV4dC4KKyAgICAgICAgICAgICAgICAgICAgKGxldCogKChsYWJl
bC1ub2RlICh0cmVlc2l0LXNlYXJjaC1zdWJ0cmVlCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgcGFyZW50ICJcXGBsaW5rX2xhYmVsXFwnIikpCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAobGFiZWwgKGlmIGxhYmVsLW5vZGUKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgKHN0cmluZy10cmltICh0cmVlc2l0LW5vZGUtdGV4dAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsLW5vZGUg
dCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJc
XFsiICJcXF0iKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHRyZWVzaXQt
bm9kZS10ZXh0IG5vZGUgdCkpKSkKKyAgICAgICAgICAgICAgICAgICAgICAob3IgKG1hcmtkb3du
LXRzLS1yZXNvbHZlLWxpbmstcmVmIGxhYmVsKQorICAgICAgICAgICAgICAgICAgICAgICAgICBs
YWJlbCkpKSkpCisgICAgICAgIChtYXJrZG93bi10cy0tbWFrZS1saW5rLWJ1dHRvbgorICAgICAg
ICAgKHRyZWVzaXQtbm9kZS1zdGFydCBub2RlKSAodHJlZXNpdC1ub2RlLWVuZCBub2RlKSB1cmwp
KSkpKQorCisoZGVmdW4gbWFya2Rvd24tdHMtLWZvbnRpZnktYXV0b2xpbmsgKG5vZGUgb3ZlcnJp
ZGUgc3RhcnQgZW5kICZyZXN0IF8pCisgICJGb250aWZ5IGF1dG9saW5rIE5PREUgKFVSSSBvciBl
bWFpbCkgYXMgYSBjbGlja2FibGUgYnV0dG9uLgorRm9yIGVtYWlsIGF1dG9saW5rcywgdGhlIFVS
TCBpcyBwcmVmaXhlZCB3aXRoIFwibWFpbHRvOlwiLgorQW5nbGUgYnJhY2tldCBkZWxpbWl0ZXJz
IGFyZSBoaWRkZW4gd2hlbiBtYXJrdXAgaXMgaGlkZGVuLgorT1ZFUlJJREUsIFNUQVJULCBhbmQg
RU5EIGFyZSBwYXNzZWQgdGhyb3VnaCB0bworYHRyZWVzaXQtZm9udGlmeS13aXRoLW92ZXJyaWRl
Jy4iCisgIChsZXQqICgobm9kZS1zdGFydCAodHJlZXNpdC1ub2RlLXN0YXJ0IG5vZGUpKQorICAg
ICAgICAgKG5vZGUtZW5kICh0cmVlc2l0LW5vZGUtZW5kIG5vZGUpKQorICAgICAgICAgKGlubmVy
IChidWZmZXItc3Vic3RyaW5nLW5vLXByb3BlcnRpZXMKKyAgICAgICAgICAgICAgICAgKDErIG5v
ZGUtc3RhcnQpICgxLSBub2RlLWVuZCkpKQorICAgICAgICAgKHVybCAoaWYgKHN0cmluZz0gKHRy
ZWVzaXQtbm9kZS10eXBlIG5vZGUpICJlbWFpbF9hdXRvbGluayIpCisgICAgICAgICAgICAgICAg
ICAoY29uY2F0ICJtYWlsdG86IiBpbm5lcikKKyAgICAgICAgICAgICAgICBpbm5lcikpKQorICAg
ICh0cmVlc2l0LWZvbnRpZnktd2l0aC1vdmVycmlkZQorICAgICBub2RlLXN0YXJ0IG5vZGUtZW5k
ICdtYXJrZG93bi10cy1saW5rIG92ZXJyaWRlIHN0YXJ0IGVuZCkKKyAgICAobWFya2Rvd24tdHMt
LW1ha2UtbGluay1idXR0b24gbm9kZS1zdGFydCBub2RlLWVuZCB1cmwpCisgICAgKHdoZW4gbWFy
a2Rvd24tdHMtaGlkZS1tYXJrdXAKKyAgICAgIChwdXQtdGV4dC1wcm9wZXJ0eSBub2RlLXN0YXJ0
ICgxKyBub2RlLXN0YXJ0KQorICAgICAgICAgICAgICAgICAgICAgICAgICdpbnZpc2libGUgJ21h
cmtkb3duLXRzLS1tYXJrdXApCisgICAgICAocHV0LXRleHQtcHJvcGVydHkgKDEtIG5vZGUtZW5k
KSBub2RlLWVuZAorICAgICAgICAgICAgICAgICAgICAgICAgICdpbnZpc2libGUgJ21hcmtkb3du
LXRzLS1tYXJrdXApKSkpCisKKyhkZWZ1biBtYXJrZG93bi10cy0tZm9udGlmeS1saW5rLXJlZi1s
YWJlbCAobm9kZSBvdmVycmlkZSBzdGFydCBlbmQgJnJlc3QgXykKKyAgIkZvbnRpZnkgbGluayBy
ZWZlcmVuY2UgZGVmaW5pdGlvbiBsYWJlbCBOT0RFIGFzIGEgY2xpY2thYmxlIGJ1dHRvbi4KK1Ro
ZSBicmFja2V0cyBhbmQgY29sb24gYXJlIGhpZGRlbiB3aGVuIG1hcmt1cCBpcyBoaWRkZW4uCitP
VkVSUklERSwgU1RBUlQsIGFuZCBFTkQgYXJlIHBhc3NlZCB0aHJvdWdoIHRvCitgdHJlZXNpdC1m
b250aWZ5LXdpdGgtb3ZlcnJpZGUnLiIKKyAgKGxldCogKChub2RlLXN0YXJ0ICh0cmVlc2l0LW5v
ZGUtc3RhcnQgbm9kZSkpCisgICAgICAgICAobm9kZS1lbmQgKHRyZWVzaXQtbm9kZS1lbmQgbm9k
ZSkpCisgICAgICAgICAocGFyZW50ICh0cmVlc2l0LW5vZGUtcGFyZW50IG5vZGUpKQorICAgICAg
ICAgKGRlc3Qtbm9kZSAodHJlZXNpdC1zZWFyY2gtc3VidHJlZSBwYXJlbnQgIlxcYGxpbmtfZGVz
dGluYXRpb25cXCciKSkKKyAgICAgICAgICh1cmwgKHdoZW4gZGVzdC1ub2RlICh0cmVlc2l0LW5v
ZGUtdGV4dCBkZXN0LW5vZGUgdCkpKSkKKyAgICA7OyBGb250aWZ5IHRoZSBsYWJlbCB0ZXh0IChp
bnNpZGUgYnJhY2tldHMpLgorICAgICh0cmVlc2l0LWZvbnRpZnktd2l0aC1vdmVycmlkZQorICAg
ICAoMSsgbm9kZS1zdGFydCkgKDEtIG5vZGUtZW5kKQorICAgICAnbWFya2Rvd24tdHMtbGluayBv
dmVycmlkZSBzdGFydCBlbmQpCisgICAgOzsgTWFrZSBpdCBhIGNsaWNrYWJsZSBidXR0b24uCisg
ICAgKHdoZW4gdXJsCisgICAgICAobWFya2Rvd24tdHMtLW1ha2UtbGluay1idXR0b24gKDErIG5v
ZGUtc3RhcnQpICgxLSBub2RlLWVuZCkgdXJsKSkKKyAgICA7OyBIaWRlICJbIiBiZWZvcmUgbGFi
ZWwgYW5kICJdOiAiIGJldHdlZW4gbGFiZWwgYW5kIGRlc3RpbmF0aW9uLgorICAgICh3aGVuIG1h
cmtkb3duLXRzLWhpZGUtbWFya3VwCisgICAgICAocHV0LXRleHQtcHJvcGVydHkgbm9kZS1zdGFy
dCAoMSsgbm9kZS1zdGFydCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAnaW52aXNpYmxlICdt
YXJrZG93bi10cy0tbWFya3VwKQorICAgICAgKGxldCAoKGNvbG9uLWVuZCAoaWYgZGVzdC1ub2Rl
ICh0cmVlc2l0LW5vZGUtc3RhcnQgZGVzdC1ub2RlKQorICAgICAgICAgICAgICAgICAgICAgICAg
ICgxKyBub2RlLWVuZCkpKSkKKyAgICAgICAgKHB1dC10ZXh0LXByb3BlcnR5ICgxLSBub2RlLWVu
ZCkgY29sb24tZW5kCisgICAgICAgICAgICAgICAgICAgICAgICAgICAnaW52aXNpYmxlICdtYXJr
ZG93bi10cy0tbWFya3VwKSkpKSkKKworKGRlZnVuIG1hcmtkb3duLXRzLS1mb250aWZ5LWxpbmst
cmVmLWRlc3RpbmF0aW9uIChub2RlIG92ZXJyaWRlIHN0YXJ0IGVuZAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZyZXN0IF8pCisgICJGb250
aWZ5IGxpbmsgcmVmZXJlbmNlIGRlZmluaXRpb24gZGVzdGluYXRpb24gTk9ERSBhbmQgaGlkZSB3
aGVuIG1hcmt1cCBoaWRkZW4uCitPVkVSUklERSwgU1RBUlQsIGFuZCBFTkQgYXJlIHBhc3NlZCB0
aHJvdWdoIHRvCitgdHJlZXNpdC1mb250aWZ5LXdpdGgtb3ZlcnJpZGUnLiIKKyAgKHRyZWVzaXQt
Zm9udGlmeS13aXRoLW92ZXJyaWRlCisgICAodHJlZXNpdC1ub2RlLXN0YXJ0IG5vZGUpICh0cmVl
c2l0LW5vZGUtZW5kIG5vZGUpCisgICAnbWFya2Rvd24tdHMtbGluay1kZXN0aW5hdGlvbiBvdmVy
cmlkZSBzdGFydCBlbmQpCisgICh3aGVuIG1hcmtkb3duLXRzLWhpZGUtbWFya3VwCisgICAgKHB1
dC10ZXh0LXByb3BlcnR5ICh0cmVlc2l0LW5vZGUtc3RhcnQgbm9kZSkgKHRyZWVzaXQtbm9kZS1l
bmQgbm9kZSkKKyAgICAgICAgICAgICAgICAgICAgICAgJ2ludmlzaWJsZSAnbWFya2Rvd24tdHMt
LW1hcmt1cCkpKQorCisoZGVmdW4gbWFya2Rvd24tdHMtLWxhdGV4LWJsb2NrLXZhbGlkLXAgKG5v
ZGUpCisgICJSZXR1cm4gbm9uLW5pbCBpZiBsYXRleCBibG9jayBOT0RFIGlzIHdpdGhpbiBhIHNp
bmdsZSBpbmxpbmUgc2NvcGUuCitUaGUgZ2xvYmFsIGlubGluZSBwYXJzZXIgY2FuIGNyZWF0ZSBm
YWxzZSBgbGF0ZXhfYmxvY2snIG1hdGNoZXMKK3NwYW5uaW5nIGFjcm9zcyBwYXJhZ3JhcGggYm91
bmRhcmllcy4gIENoZWNrIHRoYXQgdGhlIG9wZW5pbmcgYW5kCitjbG9zaW5nIGRlbGltaXRlcnMg
c2hhcmUgdGhlIHNhbWUgbWFya2Rvd24gYGlubGluZScgYW5jZXN0b3IuIgorICAobGV0ICgobm9k
ZS1zdGFydCAodHJlZXNpdC1ub2RlLXN0YXJ0IG5vZGUpKQorICAgICAgICAobm9kZS1lbmQgKDEt
ICh0cmVlc2l0LW5vZGUtZW5kIG5vZGUpKSkpCisgICAgKHdoZW4tbGV0KiAoKG1kLXN0YXJ0ICh0
cmVlc2l0LW5vZGUtYXQgbm9kZS1zdGFydCAnbWFya2Rvd24pKQorICAgICAgICAgICAgICAgICht
ZC1lbmQgKHRyZWVzaXQtbm9kZS1hdCBub2RlLWVuZCAnbWFya2Rvd24pKQorICAgICAgICAgICAg
ICAgIChpbmxpbmUtc3RhcnQgKHRyZWVzaXQtcGFyZW50LXVudGlsCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgbWQtc3RhcnQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAo
bGFtYmRhIChuKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGVxdWFsICh0cmVl
c2l0LW5vZGUtdHlwZSBuKSAiaW5saW5lIikpKSkKKyAgICAgICAgICAgICAgICAoaW5saW5lLWVu
ZCAodHJlZXNpdC1wYXJlbnQtdW50aWwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWQt
ZW5kCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsYW1iZGEgKG4pCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgKGVxdWFsICh0cmVlc2l0LW5vZGUtdHlwZSBuKSAiaW5saW5l
IikpKSkpCisgICAgICAoZXF1YWwgKHRyZWVzaXQtbm9kZS1zdGFydCBpbmxpbmUtc3RhcnQpCisg
ICAgICAgICAgICAgKHRyZWVzaXQtbm9kZS1zdGFydCBpbmxpbmUtZW5kKSkpKSkKKworKGRlZnVu
IG1hcmtkb3duLXRzLS1mb250aWZ5LWxhdGV4LWJsb2NrIChub2RlIG92ZXJyaWRlIHN0YXJ0IGVu
ZCAmcmVzdCBfKQorICAiRm9udGlmeSBsYXRleCBibG9jayBOT0RFIGFuZCBoaWRlIGl0cyBkZWxp
bWl0ZXJzIHdoZW4gbWFya3VwIGlzIGhpZGRlbi4KK1NraXAgZm9udGlmaWNhdGlvbiBmb3IgZmFs
c2UgbWF0Y2hlcyB0aGF0IHNwYW4gYWNyb3NzIHBhcmFncmFwaCBib3VuZGFyaWVzLgorT1ZFUlJJ
REUsIFNUQVJULCBhbmQgRU5EIGFyZSBwYXNzZWQgdGhyb3VnaCB0bworYHRyZWVzaXQtZm9udGlm
eS13aXRoLW92ZXJyaWRlJy4iCisgICh3aGVuIChtYXJrZG93bi10cy0tbGF0ZXgtYmxvY2stdmFs
aWQtcCBub2RlKQorICAgICh0cmVlc2l0LWZvbnRpZnktd2l0aC1vdmVycmlkZQorICAgICAodHJl
ZXNpdC1ub2RlLXN0YXJ0IG5vZGUpICh0cmVlc2l0LW5vZGUtZW5kIG5vZGUpCisgICAgICdtYXJr
ZG93bi10cy1sYXRleCBvdmVycmlkZSBzdGFydCBlbmQpCisgICAgKHdoZW4gbWFya2Rvd24tdHMt
aGlkZS1tYXJrdXAKKyAgICAgIChkb3RpbWVzIChpICh0cmVlc2l0LW5vZGUtY2hpbGQtY291bnQg
bm9kZSkpCisgICAgICAgIChsZXQgKChjaGlsZCAodHJlZXNpdC1ub2RlLWNoaWxkIG5vZGUgaSkp
KQorICAgICAgICAgICh3aGVuIChlcXVhbCAodHJlZXNpdC1ub2RlLXR5cGUgY2hpbGQpICJsYXRl
eF9zcGFuX2RlbGltaXRlciIpCisgICAgICAgICAgICAocHV0LXRleHQtcHJvcGVydHkgKHRyZWVz
aXQtbm9kZS1zdGFydCBjaGlsZCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodHJl
ZXNpdC1ub2RlLWVuZCBjaGlsZCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnaW52
aXNpYmxlICdtYXJrZG93bi10cy0tbWFya3VwKSkpKSkpKQorCisoZGVmdW4gbWFya2Rvd24tdHMt
LWZvbnRpZnktYmFja3NsYXNoLWVzY2FwZSAobm9kZSBvdmVycmlkZSBzdGFydCBlbmQgJnJlc3Qg
XykKKyAgIkZvbnRpZnkgYmFja3NsYXNoIGVzY2FwZSBOT0RFLCBoaWRpbmcgdGhlIGJhY2tzbGFz
aCB3aGVuIG1hcmt1cCBpcyBoaWRkZW4uCitTa2lwIGhpZGluZyBpbnNpZGUgYGxhdGV4X2Jsb2Nr
JyB3aGVyZSBiYWNrc2xhc2hlcyBhcmUgTGFUZVggc3ludGF4LgorT1ZFUlJJREUsIFNUQVJULCBh
bmQgRU5EIGFyZSBwYXNzZWQgdGhyb3VnaCB0bworYHRyZWVzaXQtZm9udGlmeS13aXRoLW92ZXJy
aWRlJy4iCisgIChsZXQgKChub2RlLXN0YXJ0ICh0cmVlc2l0LW5vZGUtc3RhcnQgbm9kZSkpCisg
ICAgICAgIChpbi1sYXRleCAoZXF1YWwgKHRyZWVzaXQtbm9kZS10eXBlICh0cmVlc2l0LW5vZGUt
cGFyZW50IG5vZGUpKQorICAgICAgICAgICAgICAgICAgICAgICAgICJsYXRleF9ibG9jayIpKSkK
KyAgICAodHJlZXNpdC1mb250aWZ5LXdpdGgtb3ZlcnJpZGUKKyAgICAgbm9kZS1zdGFydCAoMSsg
bm9kZS1zdGFydCkKKyAgICAgJ21hcmtkb3duLXRzLWRlbGltaXRlciBvdmVycmlkZSBzdGFydCBl
bmQpCisgICAgKHdoZW4gKGFuZCBtYXJrZG93bi10cy1oaWRlLW1hcmt1cCAobm90IGluLWxhdGV4
KSkKKyAgICAgIChwdXQtdGV4dC1wcm9wZXJ0eSBub2RlLXN0YXJ0ICgxKyBub2RlLXN0YXJ0KQor
ICAgICAgICAgICAgICAgICAgICAgICAgICdpbnZpc2libGUgJ21hcmtkb3duLXRzLS1tYXJrdXAp
KSkpCisKKyhkZWZ2YXIgc2dtbC1jaGFyLW5hbWVzKQorKGRlY2xhcmUtZnVuY3Rpb24gb3JnLWVu
dGl0eS1nZXQgIm9yZy9vcmctZW50aXRpZXMuZWwiKQorCisoZGVmdW4gbWFya2Rvd24tdHMtLWRl
Y29kZS1lbnRpdHkgKHRleHQpCisgICJEZWNvZGUgSFRNTCBlbnRpdHkgVEVYVCAoZS5nLiwgXCIm
YW1wO1wiKSB0byBpdHMgY2hhcmFjdGVyIHN0cmluZy4KK1JldHVybiB0aGUgZGVjb2RlZCBzdHJp
bmcsIG9yIG5pbCBpZiB0aGUgZW50aXR5IGlzIHVua25vd24uIgorICAoY29uZAorICAgOzsgTnVt
ZXJpYyBoZXggJiN4MUY0QTk7CisgICAoKHN0cmluZy1tYXRjaCAiXFxgJiN4XFwoW1s6eGRpZ2l0
Ol1dK1xcKTtcXCciIHRleHQpCisgICAgKGNoYXItdG8tc3RyaW5nIChzdHJpbmctdG8tbnVtYmVy
IChtYXRjaC1zdHJpbmcgMSB0ZXh0KSAxNikpKQorICAgOzsgTnVtZXJpYyBkZWNpbWFsICYjMTIz
OworICAgKChzdHJpbmctbWF0Y2ggIlxcYCYjXFwoW1s6ZGlnaXQ6XV0rXFwpO1xcJyIgdGV4dCkK
KyAgICAoY2hhci10by1zdHJpbmcgKHN0cmluZy10by1udW1iZXIgKG1hdGNoLXN0cmluZyAxIHRl
eHQpKSkpCisgICA7OyBOYW1lZCAmYW1wOyAmY29weTsgdmlhIG9yZy1lbnRpdGllcywgZmFsbCBi
YWNrIHRvIHNnbWwtY2hhci1uYW1lcworICAgKChzdHJpbmctbWF0Y2ggIlxcYCZcXChbWzphbG51
bTpdXStcXCk7XFwnIiB0ZXh0KQorICAgIChsZXQgKChuYW1lIChtYXRjaC1zdHJpbmcgMSB0ZXh0
KSkpCisgICAgICAocmVxdWlyZSAnb3JnLWVudGl0aWVzKQorICAgICAgKGlmLWxldCogKChlbnRy
eSAob3JnLWVudGl0eS1nZXQgbmFtZSkpCisgICAgICAgICAgICAgICAgKHV0ZjggKG50aCA2IGVu
dHJ5KSkpCisgICAgICAgICAgdXRmOAorICAgICAgICAocmVxdWlyZSAnc2dtbC1tb2RlKQorICAg
ICAgICAod2hlbi1sZXQqICgoY29kZSAoc2VxLXBvc2l0aW9uIHNnbWwtY2hhci1uYW1lcyBuYW1l
ICMnZXF1YWwpKSkKKyAgICAgICAgICAoY2hhci10by1zdHJpbmcgY29kZSkpKSkpKSkKKworKGRl
ZnVuIG1hcmtkb3duLXRzLS1mb250aWZ5LWVudGl0eSAobm9kZSBvdmVycmlkZSBzdGFydCBlbmQg
JnJlc3QgXykKKyAgIkZvbnRpZnkgZW50aXR5IE5PREUgYW5kIHNob3cgaXRzIGRlY29kZWQgdmFs
dWUgd2hlbiBtYXJrdXAgaXMgaGlkZGVuLgorT1ZFUlJJREUsIFNUQVJULCBhbmQgRU5EIGFyZSBw
YXNzZWQgdGhyb3VnaCB0bworYHRyZWVzaXQtZm9udGlmeS13aXRoLW92ZXJyaWRlJy4iCisgIChs
ZXQgKChub2RlLXN0YXJ0ICh0cmVlc2l0LW5vZGUtc3RhcnQgbm9kZSkpCisgICAgICAgIChub2Rl
LWVuZCAodHJlZXNpdC1ub2RlLWVuZCBub2RlKSkKKyAgICAgICAgKGZhY2UgKGlmIChlcXVhbCAo
dHJlZXNpdC1ub2RlLXR5cGUgbm9kZSkgImVudGl0eV9yZWZlcmVuY2UiKQorICAgICAgICAgICAg
ICAgICAgJ21hcmtkb3duLXRzLWVudGl0eS1yZWZlcmVuY2UKKyAgICAgICAgICAgICAgICAnbWFy
a2Rvd24tdHMtbnVtZXJpYy1jaGFyYWN0ZXItcmVmZXJlbmNlKSkpCisgICAgKHRyZWVzaXQtZm9u
dGlmeS13aXRoLW92ZXJyaWRlIG5vZGUtc3RhcnQgbm9kZS1lbmQgZmFjZQorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBvdmVycmlkZSBzdGFydCBlbmQpCisgICAgKGlmIG1hcmtk
b3duLXRzLWhpZGUtbWFya3VwCisgICAgICAgICh3aGVuLWxldCogKChkZWNvZGVkIChtYXJrZG93
bi10cy0tZGVjb2RlLWVudGl0eQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHRyZWVz
aXQtbm9kZS10ZXh0IG5vZGUgdCkpKQorICAgICAgICAgICAgICAgICAgICAoKGNoYXItZGlzcGxh
eWFibGUtcCAoYXJlZiBkZWNvZGVkIDApKSkpCisgICAgICAgICAgKHB1dC10ZXh0LXByb3BlcnR5
IG5vZGUtc3RhcnQgbm9kZS1lbmQgJ2Rpc3BsYXkgZGVjb2RlZCkpCisgICAgICAocmVtb3ZlLXRl
eHQtcHJvcGVydGllcyBub2RlLXN0YXJ0IG5vZGUtZW5kICcoZGlzcGxheSBuaWwpKSkpKQorCiso
ZGVmdW4gbWFya2Rvd24tdHMtLWZvbnRpZnktY2hlY2tib3ggKG5vZGUgb3ZlcnJpZGUgc3RhcnQg
ZW5kICZyZXN0IF8pCisgICJGb250aWZ5IHRhc2sgbGlzdCBjaGVja2JveCBOT0RFLCBzaG93IGEg
VW5pY29kZSBzeW1ib2wgd2hlbiBtYXJrdXAgaXMgaGlkZGVuLgorT1ZFUlJJREUsIFNUQVJULCBh
bmQgRU5EIGFyZSBwYXNzZWQgdGhyb3VnaCB0bworYHRyZWVzaXQtZm9udGlmeS13aXRoLW92ZXJy
aWRlJy4iCisgIChsZXQqICgobm9kZS1zdGFydCAodHJlZXNpdC1ub2RlLXN0YXJ0IG5vZGUpKQor
ICAgICAgICAgKG5vZGUtZW5kICh0cmVlc2l0LW5vZGUtZW5kIG5vZGUpKQorICAgICAgICAgKGNo
ZWNrZWQgKGVxdWFsICh0cmVlc2l0LW5vZGUtdHlwZSBub2RlKSAidGFza19saXN0X21hcmtlcl9j
aGVja2VkIikpCisgICAgICAgICAoZmFjZSAoaWYgY2hlY2tlZCAnbWFya2Rvd24tdHMtdGFzay1j
aGVja2VkCisgICAgICAgICAgICAgICAgICdtYXJrZG93bi10cy10YXNrLXVuY2hlY2tlZCkpCisg
ICAgICAgICAocmVwbGFjZW1lbnQgKGlmIGNoZWNrZWQKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgbWFya2Rvd24tdHMtY2hlY2tlZC1jaGVja2JveAorICAgICAgICAgICAgICAgICAgICAgICAg
bWFya2Rvd24tdHMtdW5jaGVja2VkLWNoZWNrYm94KSkpCisgICAgKHRyZWVzaXQtZm9udGlmeS13
aXRoLW92ZXJyaWRlIG5vZGUtc3RhcnQgbm9kZS1lbmQgZmFjZQorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBvdmVycmlkZSBzdGFydCBlbmQpCisgICAgKGlmIChhbmQgbWFya2Rv
d24tdHMtaGlkZS1tYXJrdXAgcmVwbGFjZW1lbnQKKyAgICAgICAgICAgICAoY2hhci1kaXNwbGF5
YWJsZS1wIChhcmVmIHJlcGxhY2VtZW50IDApKSkKKyAgICAgICAgKHB1dC10ZXh0LXByb3BlcnR5
IG5vZGUtc3RhcnQgbm9kZS1lbmQgJ2Rpc3BsYXkgcmVwbGFjZW1lbnQpCisgICAgICAocmVtb3Zl
LXRleHQtcHJvcGVydGllcyBub2RlLXN0YXJ0IG5vZGUtZW5kICcoZGlzcGxheSBuaWwpKSkpKQor
CisoZGVmdW4gbWFya2Rvd24tdHMtLWZvbnRpZnktaGFyZC1saW5lLWJyZWFrIChub2RlIG92ZXJy
aWRlIHN0YXJ0IGVuZCAmcmVzdCBfKQorICAiRm9udGlmeSBoYXJkIGxpbmUgYnJlYWsgTk9ERTsg
c2hvdyBhIFVuaWNvZGUgc3ltYm9sIHdoZW4gbWFya3VwIGlzIGhpZGRlbi4KK0EgYmFja3NsYXNo
IGJyZWFrIGdldHMgYG1hcmtkb3duLXRzLWhhcmQtbGluZS1icmVhay1iYWNrc2xhc2gnIChvciBp
dHMKK2AtaGlkZGVuJyB2YXJpYW50IHdoZW4gbWFya3VwIGlzIGhpZGRlbik7IGEgdHJhaWxpbmct
c3BhY2VzIGJyZWFrIGdldHMKK2BtYXJrZG93bi10cy1oYXJkLWxpbmUtYnJlYWstc3BhY2UnIChv
ciBgLWhpZGRlbicpLiAgV2hlbiBoaWRkZW4sIGEKK2JhY2tzbGFzaCBicmVhayBpcyByZXBsYWNl
ZCBieSBhIHNpbmdsZSBgbWFya2Rvd24tdHMtaGFyZC1saW5lLWJyZWFrJworZ2x5cGg7IGEgdHJh
aWxpbmctc3BhY2VzIGJyZWFrIHJlcGxhY2VzIGVhY2ggc3BhY2Ugd2l0aCB0aGUgZ2x5cGgsIHNv
IHRoZSBydW4KK29mIHBpbGNyb3dzIGZpbGxzIHRoZSBsaW5lIHVwIHRvIHRoZSBuZXdsaW5lLgor
T1ZFUlJJREUsIFNUQVJULCBhbmQgRU5EIGFyZSBwYXNzZWQgdGhyb3VnaCB0bworYHRyZWVzaXQt
Zm9udGlmeS13aXRoLW92ZXJyaWRlJy4iCisgIChsZXQqICgobm9kZS1zdGFydCAodHJlZXNpdC1u
b2RlLXN0YXJ0IG5vZGUpKQorICAgICAgICAgKG5vZGUtZW5kICAgKHRyZWVzaXQtbm9kZS1lbmQg
bm9kZSkpCisgICAgICAgICAodGV4dCAgICAgICAodHJlZXNpdC1ub2RlLXRleHQgbm9kZSB0KSkK
KyAgICAgICAgIChiYWNrc2xhc2ggIChhbmQgKD4gKGxlbmd0aCB0ZXh0KSAwKSAoZXEgKGFyZWYg
dGV4dCAwKSA/XFwpKSkKKyAgICAgICAgIDs7IERldGVybWluZSB0aGUgYWN0dWFsIHJhbmdlIHRv
IGZvbnRpZnkgYW5kIHJlcGxhY2UuICBUaGUKKyAgICAgICAgIDs7IGhhcmRfbGluZV9icmVhayBu
b2RlIG1heSBub3QgY292ZXIgdGhlIGZ1bGwgcnVuIG9mIHRyYWlsaW5nCisgICAgICAgICA7OyBz
cGFjZXMsIHNvIHdhbGsgYmFjayBmcm9tIGVuZC1vZi1saW5lIG91cnNlbHZlcyBmb3IgdGhlCisg
ICAgICAgICA7OyBzcGFjZXMgdmFyaWFudC4KKyAgICAgICAgIChyZWdpb24gICAgIChpZiBiYWNr
c2xhc2gKKyAgICAgICAgICAgICAgICAgICAgICAgICAoY29ucyBub2RlLXN0YXJ0CisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgKGlmIChhbmQgKD4gbm9kZS1lbmQgbm9kZS1zdGFydCkK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZXEgKGNoYXItYmVmb3Jl
IG5vZGUtZW5kKSA/XG4pKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoMS0g
bm9kZS1lbmQpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub2RlLWVuZCkpCisg
ICAgICAgICAgICAgICAgICAgICAgIChzYXZlLWV4Y3Vyc2lvbgorICAgICAgICAgICAgICAgICAg
ICAgICAgIChnb3RvLWNoYXIgbm9kZS1zdGFydCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAo
bGV0ICgoZW9sIChsaW5lLWVuZC1wb3NpdGlvbikpKQorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgKGNvbnMgKHNhdmUtZXhjdXJzaW9uCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIChnb3RvLWNoYXIgZW9sKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAo
c2tpcC1jaGFycy1iYWNrd2FyZAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IiAiIChsaW5lLWJlZ2lubmluZy1wb3NpdGlvbikpCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIChwb2ludCkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlb2wp
KSkpKQorICAgICAgICAgKHJlZ2lvbi1zdGFydCAoY2FyIHJlZ2lvbikpCisgICAgICAgICAocmVn
aW9uLWVuZCAgIChjZHIgcmVnaW9uKSkKKyAgICAgICAgIChmYWNlICAgICAgIChjb25kCisgICAg
ICAgICAgICAgICAgICAgICAgKChhbmQgYmFja3NsYXNoIG1hcmtkb3duLXRzLWhpZGUtbWFya3Vw
KQorICAgICAgICAgICAgICAgICAgICAgICAnbWFya2Rvd24tdHMtaGFyZC1saW5lLWJyZWFrLWJh
Y2tzbGFzaC1oaWRkZW4pCisgICAgICAgICAgICAgICAgICAgICAgKGJhY2tzbGFzaCAnbWFya2Rv
d24tdHMtaGFyZC1saW5lLWJyZWFrLWJhY2tzbGFzaCkKKyAgICAgICAgICAgICAgICAgICAgICAo
bWFya2Rvd24tdHMtaGlkZS1tYXJrdXAKKyAgICAgICAgICAgICAgICAgICAgICAgJ21hcmtkb3du
LXRzLWhhcmQtbGluZS1icmVhay1zcGFjZS1oaWRkZW4pCisgICAgICAgICAgICAgICAgICAgICAg
KHQgJ21hcmtkb3duLXRzLWhhcmQtbGluZS1icmVhay1zcGFjZSkpKSkKKyAgICAodHJlZXNpdC1m
b250aWZ5LXdpdGgtb3ZlcnJpZGUgcmVnaW9uLXN0YXJ0IHJlZ2lvbi1lbmQgZmFjZQorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvdmVycmlkZSBzdGFydCBlbmQpCisgICAgOzsg
QWx3YXlzIHN0YXJ0IGJ5IGNsZWFyaW5nIGFueSBzdGFsZSBgZGlzcGxheScgcHJvcGVydHkuICBX
ZSBuZXZlcgorICAgIDs7IHNwYW4gdGhlIHRyYWlsaW5nIG5ld2xpbmUgd2l0aCBgZGlzcGxheScg
KGl0IGNvbmZ1c2VzCisgICAgOzsgcmVkaXNwbGF5J3MgY3Vyc29yIHBsYWNlbWVudCksIGFuZCB3
ZSBvbmx5IHBhaW50IGEgc2luZ2xlCisgICAgOzsgY29tYmluZWQgc3RyaW5nIG9udG8gdGhlIGZp
cnN0IGNoYXJhY3RlciBvZiB0aGUgcnVuLCBsZWF2aW5nCisgICAgOzsgdGhlIHJlc3Qgb2YgdGhl
IG1hcmt1cCBhbG9uZS4KKyAgICAocmVtb3ZlLXRleHQtcHJvcGVydGllcyByZWdpb24tc3RhcnQg
cmVnaW9uLWVuZCAnKGRpc3BsYXkgbmlsKSkKKyAgICAod2hlbiBtYXJrZG93bi10cy1oaWRlLW1h
cmt1cAorICAgICAgKGxldCogKChzcGVjIChpZiBiYWNrc2xhc2gKKyAgICAgICAgICAgICAgICAg
ICAgICAgbWFya2Rvd24tdHMtaGFyZC1saW5lLWJyZWFrLWJhY2tzbGFzaAorICAgICAgICAgICAg
ICAgICAgICAgbWFya2Rvd24tdHMtaGFyZC1saW5lLWJyZWFrLXNwYWNlKSkKKyAgICAgICAgICAg
ICAoc3RyIChjb25kCisgICAgICAgICAgICAgICAgICAgKChudWxsIHNwZWMpIG5pbCkKKyAgICAg
ICAgICAgICAgICAgICAoKGNoYXJhY3RlcnAgc3BlYykgKGNoYXItdG8tc3RyaW5nIHNwZWMpKQor
ICAgICAgICAgICAgICAgICAgICgoc3RyaW5ncCBzcGVjKSBzcGVjKQorICAgICAgICAgICAgICAg
ICAgICgoZnVuY3Rpb25wIHNwZWMpCisgICAgICAgICAgICAgICAgICAgIChmdW5jYWxsIHNwZWMg
KC0gcmVnaW9uLWVuZCByZWdpb24tc3RhcnQpKSkpKSkKKyAgICAgICAgKHdoZW4gKGFuZCAoc3Ry
aW5ncCBzdHIpCisgICAgICAgICAgICAgICAgICAgKD4gKGxlbmd0aCBzdHIpIDApCisgICAgICAg
ICAgICAgICAgICAgKGNoYXItZGlzcGxheWFibGUtcCAoYXJlZiBzdHIgMCkpKQorICAgICAgICAg
IChwdXQtdGV4dC1wcm9wZXJ0eSByZWdpb24tc3RhcnQgKDErIHJlZ2lvbi1zdGFydCkKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgJ2Rpc3BsYXkgc3RyKQorICAgICAgICAgIDs7IEZvciB0
aGUgdHJhaWxpbmctc3BhY2VzIHZhcmlhbnQsIGhpZGUgdGhlIHJlbWFpbmluZworICAgICAgICAg
IDs7IHNwYWNlcyBpbiB0aGUgcnVuIHNvIHRoZSBsaW5lIGRvZXNuJ3QgZW5kIHdpdGggbGVmdG92
ZXIKKyAgICAgICAgICA7OyB3aGl0ZXNwYWNlIGFmdGVyIHRoZSBzdWJzdGl0dXRlZCBnbHlwaC4g
IEVhY2ggcG9zaXRpb24KKyAgICAgICAgICA7OyBnZXRzIGl0cyBvd24gZW1wdHktc3RyaW5nIGBk
aXNwbGF5JyBzbyBjdXJzb3IgcGxhY2VtZW50CisgICAgICAgICAgOzsgc3RheXMgdW5hbWJpZ3Vv
dXMuCisgICAgICAgICAgKHVubGVzcyBiYWNrc2xhc2gKKyAgICAgICAgICAgIChsZXQgKChpICgx
KyByZWdpb24tc3RhcnQpKSkKKyAgICAgICAgICAgICAgKHdoaWxlICg8IGkgcmVnaW9uLWVuZCkK
KyAgICAgICAgICAgICAgICAocHV0LXRleHQtcHJvcGVydHkgaSAoMSsgaSkgJ2Rpc3BsYXkgIiIp
CisgICAgICAgICAgICAgICAgKHNldHEgaSAoMSsgaSkpKSkpKSkpKSkKKworKGRlZnVuIG1hcmtk
b3duLXRzLS1mb250aWZ5LXRoZW1hdGljLWJyZWFrIChub2RlIG92ZXJyaWRlIHN0YXJ0IGVuZCAm
cmVzdCBfKQorICAiRm9udGlmeSB0aGVtYXRpYyBicmVhayBOT0RFIGFuZCBzaG93IGEgbGluZSB3
aGVuIG1hcmt1cCBpcyBoaWRkZW4uCitPVkVSUklERSwgU1RBUlQsIGFuZCBFTkQgYXJlIHBhc3Nl
ZCB0aHJvdWdoIHRvCitgdHJlZXNpdC1mb250aWZ5LXdpdGgtb3ZlcnJpZGUnLiIKKyAgKGxldCAo
KG5vZGUtc3RhcnQgKHRyZWVzaXQtbm9kZS1zdGFydCBub2RlKSkKKyAgICAgICAgKG5vZGUtZW5k
ICh0cmVlc2l0LW5vZGUtZW5kIG5vZGUpKSkKKyAgICAodHJlZXNpdC1mb250aWZ5LXdpdGgtb3Zl
cnJpZGUgbm9kZS1zdGFydCBub2RlLWVuZAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAnbWFya2Rvd24tdHMtdGhlbWF0aWMtYnJlYWsKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgb3ZlcnJpZGUgc3RhcnQgZW5kKQorICAgIChpZiAoYW5kIG1hcmtkb3duLXRz
LWhpZGUtbWFya3VwIG1hcmtkb3duLXRzLXRoZW1hdGljLWJyZWFrLWNoYXJhY3RlcgorICAgICAg
ICAgICAgIChjaGFyLWRpc3BsYXlhYmxlLXAgbWFya2Rvd24tdHMtdGhlbWF0aWMtYnJlYWstY2hh
cmFjdGVyKSkKKyAgICAgICAgKGxldCogKChjb2wgKHNhdmUtZXhjdXJzaW9uIChnb3RvLWNoYXIg
bm9kZS1zdGFydCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjdXJyZW50
LWNvbHVtbikpKQorICAgICAgICAgICAgICAgOzsgU3BhbiBpZiB0aGUgZmFjZSBoYXMgbm9uLW5p
bCA6ZXh0ZW5kLgorICAgICAgICAgICAgICAgKHNwYW4tbGVuZ3RoIChpZiAoZmFjZS1hdHRyaWJ1
dGUgJ21hcmtkb3duLXRzLXRoZW1hdGljLWJyZWFrCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICA6ZXh0ZW5kIG5pbCAnZGVmYXVsdCkKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgKC0gKHdpbmRvdy1ib2R5LXdpZHRoKSBjb2wpCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAxMikpKQorICAgICAgICAgIChwdXQtdGV4dC1wcm9wZXJ0
eSBub2RlLXN0YXJ0IG5vZGUtZW5kCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdkaXNw
bGF5CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjb25jYXQKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIChtYWtlLXN0cmluZyBzcGFuLWxlbmd0aAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hcmtkb3duLXRzLXRoZW1hdGljLWJyZWFrLWNo
YXJhY3RlcikKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJcbiIpKSkKKyAgICAgIChy
ZW1vdmUtdGV4dC1wcm9wZXJ0aWVzIG5vZGUtc3RhcnQgbm9kZS1lbmQgJyhkaXNwbGF5IG5pbCkp
KSkpCisKKyhkZWZ1biBtYXJrZG93bi10cy0tZm9udGlmeS1jb2RlLWJsb2NrIChub2RlIF9vdmVy
cmlkZSBfc3RhcnQgX2VuZCAmcmVzdCBfKQorICAiRm9udGlmeSBjb2RlIGJsb2NrIGNvbnRlbnQg
Tk9ERSB3aXRoIGEgYmFja2dyb3VuZCBvdmVybGF5LgorVXNlIGBtYXJrZG93bi10cy1jb2RlLWJs
b2NrLW1hcmt1cC1oaWRkZW4nIHdoZW4gbWFya3VwIGlzIGhpZGRlbiwKK2BtYXJrZG93bi10cy1j
b2RlLWJsb2NrJyBvdGhlcndpc2UuICBVc2UgYW4gb3ZlcmxheSBzbyB0aGUKK2JhY2tncm91bmQg
bGF5ZXJzIGl0c2VsZiBiZWhpbmQgbGFuZ3VhZ2Utc3BlY2lmaWMgZm9udGlmaWNhdGlvbi4KK1Ro
ZSBvdmVybGF5IGFsc28gc3RvcmVzIHRoZSBjb2RlIGJsb2NrIGxhbmd1YWdlIGFuZCBtb2RlIGFz
Citwcm9wZXJ0aWVzIGBtYXJrZG93bi10cy1jb2RlLWJsb2NrLWxhbmd1YWdlJyBhbmQKK2BtYXJr
ZG93bi10cy1jb2RlLWJsb2NrLW1vZGUnLCBhY2Nlc3NpYmxlIHZpYQorYG1hcmtkb3duLXRzLWNv
ZGUtYmxvY2stbGFuZ3VhZ2UtYXQnLiIKKyAgKGxldCogKChub2RlLXN0YXJ0IChzYXZlLWV4Y3Vy
c2lvbgorICAgICAgICAgICAgICAgICAgICAgICAoZ290by1jaGFyICh0cmVlc2l0LW5vZGUtc3Rh
cnQgbm9kZSkpCisgICAgICAgICAgICAgICAgICAgICAgIChsaW5lLWJlZ2lubmluZy1wb3NpdGlv
bikpKQorICAgICAgICAgKG5vZGUtZW5kIChzYXZlLWV4Y3Vyc2lvbgorICAgICAgICAgICAgICAg
ICAgICAgKGdvdG8tY2hhciAodHJlZXNpdC1ub2RlLWVuZCBub2RlKSkKKyAgICAgICAgICAgICAg
ICAgICAgIChza2lwLWNoYXJzLWJhY2t3YXJkICIgXHQiKQorICAgICAgICAgICAgICAgICAgICAg
KHBvaW50KSkpCisgICAgICAgICAoZmFjZSAoaWYgbWFya2Rvd24tdHMtaGlkZS1tYXJrdXAKKyAg
ICAgICAgICAgICAgICAgICAnbWFya2Rvd24tdHMtY29kZS1ibG9jay1tYXJrdXAtaGlkZGVuCisg
ICAgICAgICAgICAgICAgICdtYXJrZG93bi10cy1jb2RlLWJsb2NrKSkKKyAgICAgICAgIChsYW5n
IChtYXJrZG93bi10cy0tbGFuZ3VhZ2UtYXQtbm9kZSBub2RlKSkKKyAgICAgICAgIChtb2RlICh3
aGVuIGxhbmcKKyAgICAgICAgICAgICAgICAgKG1hcmtkb3duLXRzLS1jb2RlLWJsb2NrLWxhbmd1
YWdlLW1vZGUgbGFuZykpKQorICAgICAgICAgKGV4aXN0aW5nIChzZXEtZmluZCAobGFtYmRhIChv
dikKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob3ZlcmxheS1nZXQgb3YgJ21hcmtk
b3duLXRzLWNvZGUtYmxvY2spKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob3Zlcmxh
eXMtYXQgbm9kZS1zdGFydCkpKSkKKyAgICAoaWYgZXhpc3RpbmcKKyAgICAgICAgKHByb2duCisg
ICAgICAgICAgKG1vdmUtb3ZlcmxheSBleGlzdGluZyBub2RlLXN0YXJ0IG5vZGUtZW5kKQorICAg
ICAgICAgIChvdmVybGF5LXB1dCBleGlzdGluZyAnZmFjZSBmYWNlKQorICAgICAgICAgIChvdmVy
bGF5LXB1dCBleGlzdGluZyAnbWFya2Rvd24tdHMtY29kZS1ibG9jay1sYW5ndWFnZSBsYW5nKQor
ICAgICAgICAgIChvdmVybGF5LXB1dCBleGlzdGluZyAnbWFya2Rvd24tdHMtY29kZS1ibG9jay1t
b2RlIG1vZGUpKQorICAgICAgKGxldCAoKG92IChtYWtlLW92ZXJsYXkgbm9kZS1zdGFydCBub2Rl
LWVuZCBuaWwgdCBuaWwpKSkKKyAgICAgICAgOzsgTWFya2VycyBuZWVkIHRvIGJlIHNldCBvbmx5
IG9uY2UuCisgICAgICAgIChvdmVybGF5LXB1dCBvdiAnbWFya2Rvd24tdHMtY29kZS1iZWctbWFy
a2VyIChzZXQtbWFya2VyIChtYWtlLW1hcmtlcikKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9kZS1zdGFydCkpCisgICAg
ICAgIChvdmVybGF5LXB1dCBvdiAnbWFya2Rvd24tdHMtY29kZS1lbmQtbWFya2VyIChzZXQtbWFy
a2VyIChtYWtlLW1hcmtlcikKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9kZS1lbmQpKQorICAgICAgICAob3ZlcmxheS1w
dXQgb3YgJ21hcmtkb3duLXRzLWNvZGUtYmxvY2sgdCkKKyAgICAgICAgKG92ZXJsYXktcHV0IG92
ICdmYWNlIGZhY2UpCisgICAgICAgIChvdmVybGF5LXB1dCBvdiAnbWFya2Rvd24tdHMtY29kZS1i
bG9jay1sYW5ndWFnZSBsYW5nKQorICAgICAgICAob3ZlcmxheS1wdXQgb3YgJ21hcmtkb3duLXRz
LWNvZGUtYmxvY2stbW9kZSBtb2RlKQorICAgICAgICAob3ZlcmxheS1wdXQgb3YgJ2V2YXBvcmF0
ZSB0KSkpKSkKKworKGRlZnVuIG1hcmtkb3duLXRzLWNvZGUtYmxvY2stYXQtcCAoJm9wdGlvbmFs
IHBvcykKKyAgIlJldHVybiBub24gbmlsIGlmIHBvaW50IGlzIGluIGEgY29kZSBibG9jay4KK0lm
IFBPUyBpcyBuaWwsIHVzZSBwb2ludC4iCisgIChnZXQtY2hhci1wcm9wZXJ0eSAob3IgcG9zIChw
b2ludCkpICdtYXJrZG93bi10cy1jb2RlLWJsb2NrKSkKKworKGRlZnVuIG1hcmtkb3duLXRzLWNv
ZGUtYmxvY2stbGFuZ3VhZ2UtYXQgKCZvcHRpb25hbCBwb3MpCisgICJSZXR1cm4gdGhlIGxhbmd1
YWdlIHN5bWJvbCBvZiB0aGUgY29kZSBibG9jayBhdCBQT1MuCitJZiBQT1MgaXMgbmlsLCB1c2Ug
cG9pbnQuICBSZXR1cm5zIG5pbCBpZiBQT1MgaXMgbm90IGluc2lkZSBhIGZlbmNlZAorY29kZSBi
bG9jay4gIFRoaXMgd29ya3MgcmVnYXJkbGVzcyBvZiB3aGV0aGVyIGEgZ3Vlc3QgdHJlZS1zaXR0
ZXIgcGFyc2VyCitpcyBhY3RpdmUsIHNpbmNlIHRoZSBsYW5ndWFnZSBpcyBzdG9yZWQgb24gdGhl
IGNvZGUgYmxvY2sgb3ZlcmxheSBieSB0aGUKK2hvc3QgcGFyc2VyJ3MgZm9udGlmaWNhdGlvbi4i
CisgIChnZXQtY2hhci1wcm9wZXJ0eSAob3IgcG9zIChwb2ludCkpICdtYXJrZG93bi10cy1jb2Rl
LWJsb2NrLWxhbmd1YWdlKSkKKworKGRlZnVuIG1hcmtkb3duLXRzLWNvZGUtYmxvY2stbW9kZS1h
dCAoJm9wdGlvbmFsIHBvcykKKyAgIlJldHVybiB0aGUgbWFqb3IgbW9kZSBmb3IgdGhlIGNvZGUg
YmxvY2sgYXQgUE9TLgorSWYgUE9TIGlzIG5pbCwgdXNlIHBvaW50LiAgUmV0dXJucyBuaWwgaWYg
UE9TIGlzIG5vdCBpbnNpZGUgYSBmZW5jZWQKK2NvZGUgYmxvY2sgb3IgaWYgdGhlIGxhbmd1YWdl
IGhhcyBubyByZWNvZ25pemVkIG1vZGUuIgorICAod2hlbiAobWFya2Rvd24tdHMtY29kZS1ibG9j
ay1hdC1wIHBvcykKKyAgICAob3IgKGdldC1jaGFyLXByb3BlcnR5IChvciBwb3MgKHBvaW50KSkg
J21hcmtkb3duLXRzLWNvZGUtYmxvY2stbW9kZSkKKyAgICAgICAgbWFya2Rvd24tdHMtZGVmYXVs
dC1jb2RlLWJsb2NrLW1vZGUpKSkKKworOzs7IEltYWdlIGhhbmRsaW5nOgorCisoZGVmdW4gbWFy
a2Rvd24tdHMtLWltYWdlLWFsb25lLW9uLWxpbmUtcCAobm9kZSkKKyAgIlJldHVybiBub24tbmls
IGlmIGltYWdlIE5PREUgaXMgdGhlIG9ubHkgY29udGVudCBvbiBpdHMgbGluZS4KK1doaXRlc3Bh
Y2UsIGJsb2NrIHF1b3RlIG1hcmtlcnMgKGA+JyksIGFuZCBsaXN0IG1hcmtlcnMKK1woYC0nLCBg
KicsIGArJywgYDEuJykgYmVmb3JlIHRoZSBpbWFnZSBhcmUgaWdub3JlZC4iCisgIChsZXQgKChu
b2RlLXN0YXJ0ICh0cmVlc2l0LW5vZGUtc3RhcnQgbm9kZSkpCisgICAgICAgIChub2RlLWVuZCAo
dHJlZXNpdC1ub2RlLWVuZCBub2RlKSkpCisgICAgKHNhdmUtZXhjdXJzaW9uCisgICAgICAoZ290
by1jaGFyIG5vZGUtc3RhcnQpCisgICAgICAobGV0ICgoYm9sIChsaW5lLWJlZ2lubmluZy1wb3Np
dGlvbikpCisgICAgICAgICAgICAoZW9sIChsaW5lLWVuZC1wb3NpdGlvbikpKQorICAgICAgICA7
OyBCZWZvcmUgdGhlIGltYWdlOiBvbmx5IGJsb2NrIHF1b3RlIG1hcmtlcnMsIHdoaXRlc3BhY2Us
CisgICAgICAgIDs7IGFuZCBhbiBvcHRpb25hbCBsaXN0IG1hcmtlciBhcmUgYWxsb3dlZC4KKyAg
ICAgICAgKGFuZCAoc3RyaW5nLW1hdGNoLXAKKyAgICAgICAgICAgICAgKHJ4IGJvcworICAgICAg
ICAgICAgICAgICAgKHplcm8tb3ItbW9yZSAoYW55ICI+IFx0IikpCisgICAgICAgICAgICAgICAg
ICAob3B0aW9uYWwgKG9yIChzZXEgKGFueSAiLSorIikgIiAiKQorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAoc2VxIChvbmUtb3ItbW9yZSBkaWdpdCkgKGFueSAiLikiICkgIiAiKSkp
CisgICAgICAgICAgICAgICAgICBlb3MpCisgICAgICAgICAgICAgIChidWZmZXItc3Vic3RyaW5n
LW5vLXByb3BlcnRpZXMgYm9sIG5vZGUtc3RhcnQpKQorICAgICAgICAgICAgIDs7IEFmdGVyIHRo
ZSBpbWFnZTogb25seSB0cmFpbGluZyB3aGl0ZXNwYWNlIGFsbG93ZWQuCisgICAgICAgICAgICAg
KHN0cmluZy1tYXRjaC1wCisgICAgICAgICAgICAgIChyeCBib3MgKHplcm8tb3ItbW9yZSAoYW55
ICIgXHQiKSkgZW9zKQorICAgICAgICAgICAgICAoYnVmZmVyLXN1YnN0cmluZy1uby1wcm9wZXJ0
aWVzIG5vZGUtZW5kIGVvbCkpKSkpKSkKKworKGRlZnVuIG1hcmtkb3duLXRzLS1mb250aWZ5LWlt
YWdlIChub2RlIF9vdmVycmlkZSBfc3RhcnQgX2VuZCAmcmVzdCBfKQorICAiU2hvdyBhbiBpbmxp
bmUgaW1hZ2UgYXQgTk9ERS4KK1doZW4gYG1hcmtkb3duLXRzLWlubGluZS1pbWFnZXMnIGlzIG5v
bi1uaWwsIGRpc3BsYXkgdGhlIGltYWdlLgorSWYgdGhlIGltYWdlIGxpbmsgaXMgdGhlIG9ubHkg
Y29udGVudCBvbiBpdHMgbGluZSwgZGlzcGxheSB0aGUKK2ltYWdlIGJlbG93IHRoZSBsaW5rLiAg
SWYgdGhlIGltYWdlIGlzIGlubGluZSB3aXRoaW4gYSBwYXJhZ3JhcGgsCitkaXNwbGF5IGl0IHJp
Z2h0IGFmdGVyIHRoZSBsaW5rIHRleHQuCitSZW1vdGUgaW1hZ2VzIGFyZSBjb250cm9sbGVkIGJ5
CitgbWFya2Rvd24tdHMtZGlzcGxheS1yZW1vdGUtaW5saW5lLWltYWdlcycuIgorICAobGV0KiAo
KG5vZGUtc3RhcnQgKHRyZWVzaXQtbm9kZS1zdGFydCBub2RlKSkKKyAgICAgICAgIChub2RlLWVu
ZCAodHJlZXNpdC1ub2RlLWVuZCBub2RlKSkKKyAgICAgICAgIChlb2wgKHNhdmUtZXhjdXJzaW9u
IChnb3RvLWNoYXIgbm9kZS1lbmQpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobGlu
ZS1lbmQtcG9zaXRpb24pKSkKKyAgICAgICAgIChzZWFyY2gtZW5kIChtaW4gKDErIGVvbCkgKHBv
aW50LW1heCkpKSkKKyAgICA7OyBBbHdheXMgY2xlYXIgc3RhbGUgb3ZlcmxheXMgZm9yIHRoaXMg
bm9kZSdzIHJhbmdlLgorICAgIChkb2xpc3QgKG92IChvdmVybGF5cy1pbiBub2RlLXN0YXJ0IHNl
YXJjaC1lbmQpKQorICAgICAgKHdoZW4gKGFuZCAob3ZlcmxheS1nZXQgb3YgJ21hcmtkb3duLXRz
LWltYWdlKQorICAgICAgICAgICAgICAgICAoPj0gKG92ZXJsYXktc3RhcnQgb3YpIG5vZGUtc3Rh
cnQpCisgICAgICAgICAgICAgICAgICg8PSAob3ZlcmxheS1lbmQgb3YpIHNlYXJjaC1lbmQpKQor
ICAgICAgICAoZGVsZXRlLW92ZXJsYXkgb3YpKSkKKyAgICAod2hlbiAoYW5kIG1hcmtkb3duLXRz
LWlubGluZS1pbWFnZXMKKyAgICAgICAgICAgICAgIDs7IERvbid0IGNyZWF0ZSBpbWFnZSBvdmVy
bGF5cyBmb3Igbm9kZXMgaW5zaWRlCisgICAgICAgICAgICAgICA7OyBmb2xkZWQgKG91dGxpbmUt
aW52aXNpYmxlKSBoZWFkaW5ncywgc2luY2UgdGhlCisgICAgICAgICAgICAgICA7OyBpbWFnZXMg
d291bGRuJ3QgYmUgdmlzaWJsZSBhbmQgY291bGQgaW50ZXJmZXJlCisgICAgICAgICAgICAgICA7
OyB3aXRoIHRoZSBmb2xkZWQgZGlzcGxheS4KKyAgICAgICAgICAgICAgIChub3QgKG1hcmtkb3du
LXRzLS1vdXRsaW5lLWludmlzaWJsZS1wIG5vZGUtc3RhcnQpKSkKKyAgICAgIChsZXQqICgoZGVz
dCAodHJlZXNpdC1zZWFyY2gtc3VidHJlZSBub2RlICJcXGBsaW5rX2Rlc3RpbmF0aW9uXFwnIikp
CisgICAgICAgICAgICAgKHVybCAoYW5kIGRlc3QgKHRyZWVzaXQtbm9kZS10ZXh0IGRlc3QgdCkp
KQorICAgICAgICAgICAgIChyZW1vdGVwIChhbmQgdXJsIChzdHJpbmctbWF0Y2gtcCAiXFxgaHR0
cHM/Oi8vIiB1cmwpKSkKKyAgICAgICAgICAgICAoZGlzcGxheWFibGUKKyAgICAgICAgICAgICAg
KHdoZW4gdXJsCisgICAgICAgICAgICAgICAgKGlmIHJlbW90ZXAKKyAgICAgICAgICAgICAgICAg
ICAgKHdoZW4gKGVxIG1hcmtkb3duLXRzLWRpc3BsYXktcmVtb3RlLWlubGluZS1pbWFnZXMKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICdkb3dubG9hZCkKKyAgICAgICAgICAgICAgICAg
ICAgICAoaWdub3JlLWVycm9ycworICAgICAgICAgICAgICAgICAgICAgICAgKHJlcXVpcmUgJ3Vy
bC1oYW5kbGVycykKKyAgICAgICAgICAgICAgICAgICAgICAgICh3aXRoLXRlbXAtYnVmZmVyCisg
ICAgICAgICAgICAgICAgICAgICAgICAgIChzZXQtYnVmZmVyLW11bHRpYnl0ZSBuaWwpCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICh1cmwtaW5zZXJ0LWZpbGUtY29udGVudHMgdXJsKQorICAg
ICAgICAgICAgICAgICAgICAgICAgICAoYnVmZmVyLXN0cmluZykpKSkKKyAgICAgICAgICAgICAg
ICAgIChsZXQgKChmaWxlIChleHBhbmQtZmlsZS1uYW1lIHVybCkpKQorICAgICAgICAgICAgICAg
ICAgICAoYW5kIChub3QgKGZpbGUtcmVtb3RlLXAgZmlsZSkpCisgICAgICAgICAgICAgICAgICAg
ICAgICAgKGZpbGUtZXhpc3RzLXAgZmlsZSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAoaW1h
Z2Utc3VwcG9ydGVkLWZpbGUtcCBmaWxlKQorICAgICAgICAgICAgICAgICAgICAgICAgIGZpbGUp
KSkpKQorICAgICAgICAgICAgIChtYXgtdyAoYW5kIGRpc3BsYXlhYmxlCisgICAgICAgICAgICAg
ICAgICAgICAgICAgKGlmIChlcSBtYXJrZG93bi10cy1pbWFnZS1tYXgtd2lkdGggJ3dpbmRvdykK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHdpbmRvdy1ib2R5LXdpZHRoIG5pbCB0KQor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgbWFya2Rvd24tdHMtaW1hZ2UtbWF4LXdpZHRoKSkp
CisgICAgICAgICAgICAgKGltZyAoYW5kIG1heC13CisgICAgICAgICAgICAgICAgICAgICAgIChj
cmVhdGUtaW1hZ2UgZGlzcGxheWFibGUgbmlsIHJlbW90ZXAKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICA6bWF4LXdpZHRoIG1heC13CisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgOnNjYWxlIDEpKSkpCisgICAgICAgICh3aGVuIGltZworICAgICAgICAg
IChsZXQqICgoYWxvbmUgKG1hcmtkb3duLXRzLS1pbWFnZS1hbG9uZS1vbi1saW5lLXAgbm9kZSkp
CisgICAgICAgICAgICAgICAgIChzdHIgKGlmIGFsb25lCisgICAgICAgICAgICAgICAgICAgICAg
ICAgIChjb25jYXQgIlxuIiAocHJvcGVydGl6ZSAiICIgJ2Rpc3BsYXkgaW1nKSkKKyAgICAgICAg
ICAgICAgICAgICAgICAgIChwcm9wZXJ0aXplICIgIiAnZGlzcGxheSBpbWcpKSkKKyAgICAgICAg
ICAgICAgICAgKG92IChtYWtlLW92ZXJsYXkgKDEtIG5vZGUtZW5kKSBub2RlLWVuZCBuaWwgdCBu
aWwpKSkKKyAgICAgICAgICAgIChvdmVybGF5LXB1dCBvdiAnbWFya2Rvd24tdHMtaW1hZ2UgdCkK
KyAgICAgICAgICAgIChvdmVybGF5LXB1dCBvdiAnYWZ0ZXItc3RyaW5nIHN0cikKKyAgICAgICAg
ICAgIChvdmVybGF5LXB1dCBvdiAnZXZhcG9yYXRlIHQpKSkpKSkpCisKKzs7OyBVUkwvVVJJIGhh
bmRsaW5nOgorCisoZGVmdmFyIG1hcmtkb3duLXRzLS1iYXJlLXVybC1yZWdleHAgZ290by1hZGRy
ZXNzLXVybC1yZWdleHAKKyAgIlJlZ2V4cCBtYXRjaGluZyBiYXJlIFVSTHMgbm90IHdyYXBwZWQg
aW4gYW5nbGUgYnJhY2tldHMgb3IgbGluayBzeW50YXguIikKKworKGRlZnZhciBtYXJrZG93bi10
cy0tYmFyZS1lbWFpbC11cmktcmVnZXhwIGdvdG8tYWRkcmVzcy1tYWlsLXJlZ2V4cAorICAiUmVn
ZXhwIG1hdGNoaW5nIGJhcmUgZW1haWwgYWRkcmVzc2VzIG5vdCB3cmFwcGVkIGluIGFuZ2xlIGJy
YWNrZXRzLiIpCisKKyhkZWZ1biBtYXJrZG93bi10cy0tZm9udGlmeS1iYXJlLXVyaSAoc3RhcnQg
ZW5kKQorICAiRm9udGlmeSBiYXJlIFVSTCBvciBlbWFpbCBVUkkgYmV0d2VlbiBTVEFSVCBhbmQg
RU5ELgorU2tpcCBtYXRjaGVzIGFscmVhZHkgaW5zaWRlIHRyZWUtc2l0dGVyIGxpbmsgb3IgYXV0
b2xpbmsgbm9kZXMuIgorICAoZG9saXN0IChyZSAobGlzdCBtYXJrZG93bi10cy0tYmFyZS11cmwt
cmVnZXhwCisgICAgICAgICAgICAgICAgICAgIG1hcmtkb3duLXRzLS1iYXJlLWVtYWlsLXVyaS1y
ZWdleHApKQorICAgIChnb3RvLWNoYXIgc3RhcnQpCisgICAgKHdoaWxlIChyZS1zZWFyY2gtZm9y
d2FyZCByZSBlbmQgdCkKKyAgICAgIChsZXQqICgodXJpLXN0YXJ0IChtYXRjaC1iZWdpbm5pbmcg
MCkpCisgICAgICAgICAgICAgKHVyaS1lbmQgKG1hdGNoLWVuZCAwKSkKKyAgICAgICAgICAgICAo
dXJpIChtYXRjaC1zdHJpbmcgMCkpCisgICAgICAgICAgICAgKG5vZGUgKHRyZWVzaXQtbm9kZS1h
dCB1cmktc3RhcnQgJ21hcmtkb3duLWlubGluZSkpCisgICAgICAgICAgICAgKHBhcmVudCAoYW5k
IG5vZGUgKHRyZWVzaXQtbm9kZS1wYXJlbnQgbm9kZSkpKQorICAgICAgICAgICAgIChwYXJlbnQt
dHlwZSAoYW5kIHBhcmVudCAodHJlZXNpdC1ub2RlLXR5cGUgcGFyZW50KSkpKQorICAgICAgICAo
dW5sZXNzIChvciAobWVtYmVyIHBhcmVudC10eXBlCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgJygiaW5saW5lX2xpbmsiICJmdWxsX3JlZmVyZW5jZV9saW5rIgorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgImNvbGxhcHNlZF9yZWZlcmVuY2VfbGluayIgInNob3J0Y3V0X2xpbmsi
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiaW1hZ2UiICJ1cmlfYXV0b2xpbmsiICJl
bWFpbF9hdXRvbGluayIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJsaW5rX2Rlc3Rp
bmF0aW9uIikpCisgICAgICAgICAgICAgICAgICAgIChtZW1iZXIgKGFuZCBub2RlICh0cmVlc2l0
LW5vZGUtdHlwZSBub2RlKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAnKCJ1cmlfYXV0
b2xpbmsiICJlbWFpbF9hdXRvbGluayIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJs
aW5rX2Rlc3RpbmF0aW9uIiAiY29kZV9zcGFuIgorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgImNvZGVfZmVuY2VfY29udGVudCIgImluZm9fc3RyaW5nIikpCisgICAgICAgICAgICAgICAg
ICAgIChnZXQtdGV4dC1wcm9wZXJ0eSB1cmktc3RhcnQgJ2J1dHRvbikpCisgICAgICAgICAgKG1h
cmtkb3duLXRzLS1tYWtlLWxpbmstYnV0dG9uCisgICAgICAgICAgIHVyaS1zdGFydCB1cmktZW5k
CisgICAgICAgICAgIChpZiAoZXEgdXJpLXN0YXJ0IDApCisgICAgICAgICAgICAgICB1cmkKKyAg
ICAgICAgICAgICAoY29uY2F0ICJtYWlsdG86IiB1cmkpKSkpKSkpKQorCis7OzsgdHJlZXNpdCBz
ZXR0aW5nczoKKwogKGRlZnZhciBtYXJrZG93bi10cy0tdHJlZXNpdC1zZXR0aW5ncwogICAodHJl
ZXNpdC1mb250LWxvY2stcnVsZXMKICAgIDpsYW5ndWFnZSAnbWFya2Rvd24taW5saW5lCiAgICA6
b3ZlcnJpZGUgdAogICAgOmZlYXR1cmUgJ2RlbGltaXRlcgotICAgJygoaW5saW5lX2xpbmsgWyAi
WyIgIl0iICIoIiAiKSIgXSBAc2hhZG93KQotICAgICAoaW1hZ2UgWyAiISIgIlsiICJdIiAiKCIg
IikiIF0gQHNoYWRvdykpCisgICAnKChpbmxpbmVfbGluayBbICJbIiAiXSIgIigiICIpIiBdIEBt
YXJrZG93bi10cy0tZm9udGlmeS1kZWxpbWl0ZXIpCisgICAgIChmdWxsX3JlZmVyZW5jZV9saW5r
IFsgIlsiICJdIiBdIEBtYXJrZG93bi10cy0tZm9udGlmeS1kZWxpbWl0ZXIpCisgICAgIChjb2xs
YXBzZWRfcmVmZXJlbmNlX2xpbmsgWyAiWyIgIl0iIF0gQG1hcmtkb3duLXRzLS1mb250aWZ5LWRl
bGltaXRlcikKKyAgICAgKHNob3J0Y3V0X2xpbmsgWyAiWyIgIl0iIF0gQG1hcmtkb3duLXRzLS1m
b250aWZ5LWRlbGltaXRlcikKKyAgICAgKGltYWdlIFsgIiEiICJbIiAiXSIgIigiICIpIiBdIEBt
YXJrZG93bi10cy0tZm9udGlmeS1kZWxpbWl0ZXIpKQogCiAgICA6bGFuZ3VhZ2UgJ21hcmtkb3du
CiAgICA6ZmVhdHVyZSAnaGVhZGluZwotICAgJygoYXR4X2hlYWRpbmcgKGF0eF9oMV9tYXJrZXIp
KSBAbWFya2Rvd24tdHMtaGVhZGluZy0xCi0gICAgIChhdHhfaGVhZGluZyAoYXR4X2gyX21hcmtl
cikpIEBtYXJrZG93bi10cy1oZWFkaW5nLTIKLSAgICAgKGF0eF9oZWFkaW5nIChhdHhfaDNfbWFy
a2VyKSkgQG1hcmtkb3duLXRzLWhlYWRpbmctMwotICAgICAoYXR4X2hlYWRpbmcgKGF0eF9oNF9t
YXJrZXIpKSBAbWFya2Rvd24tdHMtaGVhZGluZy00Ci0gICAgIChhdHhfaGVhZGluZyAoYXR4X2g1
X21hcmtlcikpIEBtYXJrZG93bi10cy1oZWFkaW5nLTUKLSAgICAgKGF0eF9oZWFkaW5nIChhdHhf
aDZfbWFya2VyKSkgQG1hcmtkb3duLXRzLWhlYWRpbmctNgotICAgICAoc2V0ZXh0X2hlYWRpbmcp
IEBtYXJrZG93bi10cy1zZXRleHQtaGVhZGluZykKKyAgICcoKChhdHhfaGVhZGluZykgICAgQG1h
cmtkb3duLXRzLS1mb250aWZ5LWhlYWRpbmcpCisgICAgICgoc2V0ZXh0X2hlYWRpbmcpIEBtYXJr
ZG93bi10cy0tZm9udGlmeS1oZWFkaW5nKSkKIAogICAgOmxhbmd1YWdlICdtYXJrZG93bgogICAg
OmZlYXR1cmUgJ2hlYWRpbmcKQEAgLTE5NCwxNiArMTI0MywzNCBAQCBtYXJrZG93bi10cy0tdHJl
ZXNpdC1zZXR0aW5ncwogICAgICAoYXR4X2gzX21hcmtlcikgQG1hcmtkb3duLXRzLS1mb250aWZ5
LWRlbGltaXRlcgogICAgICAoYXR4X2g0X21hcmtlcikgQG1hcmtkb3duLXRzLS1mb250aWZ5LWRl
bGltaXRlcgogICAgICAoYXR4X2g1X21hcmtlcikgQG1hcmtkb3duLXRzLS1mb250aWZ5LWRlbGlt
aXRlcgotICAgICAoYXR4X2g2X21hcmtlcikgQG1hcmtkb3duLXRzLS1mb250aWZ5LWRlbGltaXRl
cikKKyAgICAgKGF0eF9oNl9tYXJrZXIpIEBtYXJrZG93bi10cy0tZm9udGlmeS1kZWxpbWl0ZXIK
KyAgICAgKHNldGV4dF9oMV91bmRlcmxpbmUpIEBtYXJrZG93bi10cy0tZm9udGlmeS1kZWxpbWl0
ZXIKKyAgICAgKHNldGV4dF9oMl91bmRlcmxpbmUpIEBtYXJrZG93bi10cy0tZm9udGlmeS1kZWxp
bWl0ZXIpCiAKICAgIDpsYW5ndWFnZSAnbWFya2Rvd24KICAgIDpmZWF0dXJlICdwYXJhZ3JhcGgK
LSAgICcoKCh0aGVtYXRpY19icmVhaykgQG1hcmtkb3duLXRzLWRlbGltaXRlcikKLSAgICAgKChp
bmRlbnRlZF9jb2RlX2Jsb2NrKSBAZm9udC1sb2NrLXN0cmluZy1mYWNlKQorICAgJygoKHRoZW1h
dGljX2JyZWFrKSBAbWFya2Rvd24tdHMtLWZvbnRpZnktdGhlbWF0aWMtYnJlYWspCisgICAgICgo
aHRtbF9ibG9jaykgQG1hcmtkb3duLXRzLWh0bWwtYmxvY2spCisgICAgICgoaW5kZW50ZWRfY29k
ZV9ibG9jaykgQG1hcmtkb3duLXRzLWluZGVudGVkLWNvZGUtYmxvY2spCiAgICAgIChsaXN0X2l0
ZW0gKGxpc3RfbWFya2VyX3N0YXIpIEBtYXJrZG93bi10cy1saXN0LW1hcmtlcikKICAgICAgKGxp
c3RfaXRlbSAobGlzdF9tYXJrZXJfcGx1cykgQG1hcmtkb3duLXRzLWxpc3QtbWFya2VyKQogICAg
ICAobGlzdF9pdGVtIChsaXN0X21hcmtlcl9taW51cykgQG1hcmtkb3duLXRzLWxpc3QtbWFya2Vy
KQotICAgICAobGlzdF9pdGVtIChsaXN0X21hcmtlcl9kb3QpIEBtYXJrZG93bi10cy1saXN0LW1h
cmtlcikpCisgICAgIChsaXN0X2l0ZW0gKGxpc3RfbWFya2VyX2RvdCkgQG1hcmtkb3duLXRzLWxp
c3QtbWFya2VyKQorICAgICAobGlzdF9pdGVtIChsaXN0X21hcmtlcl9wYXJlbnRoZXNpcykgQG1h
cmtkb3duLXRzLWxpc3QtbWFya2VyKQorICAgICAobGlzdF9pdGVtICh0YXNrX2xpc3RfbWFya2Vy
X3VuY2hlY2tlZCkgQG1hcmtkb3duLXRzLS1mb250aWZ5LWNoZWNrYm94KQorICAgICAobGlzdF9p
dGVtICh0YXNrX2xpc3RfbWFya2VyX2NoZWNrZWQpIEBtYXJrZG93bi10cy0tZm9udGlmeS1jaGVj
a2JveCkKKyAgICAgKHBpcGVfdGFibGVfaGVhZGVyICJ8IiBAbWFya2Rvd24tdHMtdGFibGUtaGVh
ZGVyKQorICAgICAocGlwZV90YWJsZV9oZWFkZXIgKHBpcGVfdGFibGVfY2VsbCkgQG1hcmtkb3du
LXRzLXRhYmxlLWhlYWRlcikKKyAgICAgKHBpcGVfdGFibGVfcm93ICJ8IiBAbWFya2Rvd24tdHMt
dGFibGUtZGVsaW1pdGVyLWNlbGwpCisgICAgIChwaXBlX3RhYmxlX3JvdyAocGlwZV90YWJsZV9j
ZWxsKSBAbWFya2Rvd24tdHMtdGFibGUtY2VsbCkKKyAgICAgKHBpcGVfdGFibGVfZGVsaW1pdGVy
X3JvdyAifCIgQG1hcmtkb3duLXRzLXRhYmxlLWRlbGltaXRlci1jZWxsKQorICAgICAobGlua19y
ZWZlcmVuY2VfZGVmaW5pdGlvbgorICAgICAgKGxpbmtfbGFiZWwpIEBtYXJrZG93bi10cy0tZm9u
dGlmeS1saW5rLXJlZi1sYWJlbCkKKyAgICAgKGxpbmtfcmVmZXJlbmNlX2RlZmluaXRpb24KKyAg
ICAgIChsaW5rX2Rlc3RpbmF0aW9uKSBAbWFya2Rvd24tdHMtLWZvbnRpZnktbGluay1yZWYtZGVz
dGluYXRpb24pCisgICAgIChsaW5rX3JlZmVyZW5jZV9kZWZpbml0aW9uCisgICAgICAobGlua190
aXRsZSkgQG1hcmtkb3duLXRzLWxpbmstZGVzdGluYXRpb24pCisgICAgIChwaXBlX3RhYmxlX2Rl
bGltaXRlcl9yb3cgKHBpcGVfdGFibGVfZGVsaW1pdGVyX2NlbGwpIEBtYXJrZG93bi10cy10YWJs
ZS1kZWxpbWl0ZXItY2VsbCkpCiAKICAgIDpsYW5ndWFnZSAnbWFya2Rvd24KICAgIDpmZWF0dXJl
ICdwYXJhZ3JhcGgKQEAgLTIxNyw4NCArMTI4NCw5OTIgQEAgbWFya2Rvd24tdHMtLXRyZWVzaXQt
c2V0dGluZ3MKICAgICAgIChibG9ja19xdW90ZV9tYXJrZXIpIEBtYXJrZG93bi10cy0tZm9udGlm
eS1kZWxpbWl0ZXIKICAgICAgIChwYXJhZ3JhcGggKGlubGluZSAoYmxvY2tfY29udGludWF0aW9u
KSBAbWFya2Rvd24tdHMtLWZvbnRpZnktZGVsaW1pdGVyKSkpKQogCisgICA6bGFuZ3VhZ2UgJ21h
cmtkb3duCisgICA6ZmVhdHVyZSAncGFyYWdyYXBoCisgICA6b3ZlcnJpZGUgJ2FwcGVuZAorICAg
JygoZmVuY2VkX2NvZGVfYmxvY2sKKyAgICAgIChpbmZvX3N0cmluZyAobGFuZ3VhZ2UpKQorICAg
ICAgKGNvZGVfZmVuY2VfY29udGVudCkgQG1hcmtkb3duLXRzLS1mb250aWZ5LW5vbi10cy1jb2Rl
LWJsb2NrKSkKKworICAgOmxhbmd1YWdlICdtYXJrZG93bgorICAgOmZlYXR1cmUgJ3BhcmFncmFw
aAorICAgOm92ZXJyaWRlICdhcHBlbmQKKyAgICcoKGZlbmNlZF9jb2RlX2Jsb2NrIChjb2RlX2Zl
bmNlX2NvbnRlbnQpIEBtYXJrZG93bi10cy0tZm9udGlmeS1jb2RlLWJsb2NrKSkKKwogICAgOmxh
bmd1YWdlICdtYXJrZG93bi1pbmxpbmUKICAgIDpvdmVycmlkZSAnYXBwZW5kCiAgICA6ZmVhdHVy
ZSAncGFyYWdyYXBoLWlubGluZQotICAgJygoKGltYWdlX2Rlc2NyaXB0aW9uKSBAbGluaykKLSAg
ICAgKChsaW5rX2Rlc3RpbmF0aW9uKSBAZm9udC1sb2NrLXN0cmluZy1mYWNlKQotICAgICAoKGNv
ZGVfc3BhbikgQGZvbnQtbG9jay1zdHJpbmctZmFjZSkKKyAgICcoKChsaW5rX2Rlc3RpbmF0aW9u
KSBAbWFya2Rvd24tdHMtLWZvbnRpZnktbGluay1kZXN0aW5hdGlvbikKKyAgICAgKChjb2RlX3Nw
YW4pIEBtYXJrZG93bi10cy1jb2RlLXNwYW4pCiAgICAgICgoY29kZV9zcGFuX2RlbGltaXRlcikg
QG1hcmtkb3duLXRzLS1mb250aWZ5LWRlbGltaXRlcikKLSAgICAgKChlbXBoYXNpcykgQGl0YWxp
YykKLSAgICAgKChzdHJvbmdfZW1waGFzaXMpIEBib2xkKQotICAgICAoaW5saW5lX2xpbmsgKGxp
bmtfdGV4dCkgQGxpbmspCi0gICAgIChpbmxpbmVfbGluayAobGlua19kZXN0aW5hdGlvbikgQGZv
bnQtbG9jay1zdHJpbmctZmFjZSkKLSAgICAgKHNob3J0Y3V0X2xpbmsgKGxpbmtfdGV4dCkgQGxp
bmspKQorICAgICAoKGVtcGhhc2lzKSBAbWFya2Rvd24tdHMtZW1waGFzaXMpCisgICAgICgoc3Ry
b25nX2VtcGhhc2lzKSBAbWFya2Rvd24tdHMtYm9sZCkKKyAgICAgKChzdHJpa2V0aHJvdWdoKSBA
bWFya2Rvd24tdHMtc3RyaWtldGhyb3VnaCkKKyAgICAgKGlubGluZV9saW5rIChsaW5rX3RleHQp
IEBtYXJrZG93bi10cy0tZm9udGlmeS1saW5rLW5vZGUpCisgICAgIChmdWxsX3JlZmVyZW5jZV9s
aW5rIChsaW5rX3RleHQpIEBtYXJrZG93bi10cy0tZm9udGlmeS1saW5rLW5vZGUpCisgICAgIChm
dWxsX3JlZmVyZW5jZV9saW5rIChsaW5rX2xhYmVsKSBAbWFya2Rvd24tdHMtLWZvbnRpZnktbGlu
ay1ub2RlKQorICAgICAoY29sbGFwc2VkX3JlZmVyZW5jZV9saW5rIChsaW5rX3RleHQpIEBtYXJr
ZG93bi10cy0tZm9udGlmeS1saW5rLW5vZGUpCisgICAgIChzaG9ydGN1dF9saW5rIChsaW5rX3Rl
eHQpIEBtYXJrZG93bi10cy0tZm9udGlmeS1saW5rLW5vZGUpCisgICAgIChpbWFnZSAoaW1hZ2Vf
ZGVzY3JpcHRpb24pIEBtYXJrZG93bi10cy0tZm9udGlmeS1saW5rLW5vZGUpCisgICAgICgodXJp
X2F1dG9saW5rKSBAbWFya2Rvd24tdHMtLWZvbnRpZnktYXV0b2xpbmspCisgICAgICgoZW1haWxf
YXV0b2xpbmspIEBtYXJrZG93bi10cy0tZm9udGlmeS1hdXRvbGluaykKKyAgICAgKGlubGluZV9s
aW5rIChsaW5rX3RpdGxlKSBAbWFya2Rvd24tdHMtbGluay1kZXN0aW5hdGlvbikKKyAgICAgKChi
YWNrc2xhc2hfZXNjYXBlKSBAbWFya2Rvd24tdHMtLWZvbnRpZnktYmFja3NsYXNoLWVzY2FwZSkK
KyAgICAgKChlbnRpdHlfcmVmZXJlbmNlKSBAbWFya2Rvd24tdHMtLWZvbnRpZnktZW50aXR5KQor
ICAgICAoKG51bWVyaWNfY2hhcmFjdGVyX3JlZmVyZW5jZSkgQG1hcmtkb3duLXRzLS1mb250aWZ5
LWVudGl0eSkKKyAgICAgKChodG1sX3RhZykgQG1hcmtkb3duLXRzLWh0bWwtdGFnKQorICAgICAo
KGhhcmRfbGluZV9icmVhaykgQG1hcmtkb3duLXRzLS1mb250aWZ5LWhhcmQtbGluZS1icmVhaykK
KyAgICAgKChsYXRleF9ibG9jaykgQG1hcmtkb3duLXRzLS1mb250aWZ5LWxhdGV4LWJsb2NrKSkK
IAogICAgOmxhbmd1YWdlICdtYXJrZG93bi1pbmxpbmUKICAgIDpmZWF0dXJlICdwYXJhZ3JhcGgt
aW5saW5lCiAgICA6b3ZlcnJpZGUgJ2FwcGVuZAogICAgJygoZW1waGFzaXNfZGVsaW1pdGVyKSBA
bWFya2Rvd24tdHMtLWZvbnRpZnktZGVsaW1pdGVyKQotICAgKSkKIAotOzs7IEltZW51CisgICA6
bGFuZ3VhZ2UgJ21hcmtkb3duLWlubGluZQorICAgOmZlYXR1cmUgJ2ltYWdlLXByZXZpZXcKKyAg
IDpvdmVycmlkZSAnYXBwZW5kCisgICAnKChpbWFnZSkgQG1hcmtkb3duLXRzLS1mb250aWZ5LWlt
YWdlKSkpCisKKzs7OyBJbWVudToKIAotKGRlZnVuIG1hcmtkb3duLXRzLWltZW51LW5vZGUtcCAo
bm9kZSkKKyhkZWZ1biBtYXJrZG93bi10cy0taW1lbnUtaGVhZGluZy1ub2RlLXAgKG5vZGUpCiAg
ICJDaGVjayBpZiBOT0RFIGlzIGEgdmFsaWQgZW50cnkgdG8gaW1lbnUuIgotICAoZXF1YWwgKHRy
ZWVzaXQtbm9kZS10eXBlICh0cmVlc2l0LW5vZGUtcGFyZW50IG5vZGUpKQotICAgICAgICAgImF0
eF9oZWFkaW5nIikpCisgIChhbmQgKGVxdWFsICh0cmVlc2l0LW5vZGUtdHlwZSBub2RlKSAiaW5s
aW5lIikKKyAgICAgICAoZXF1YWwgKHRyZWVzaXQtbm9kZS10eXBlICh0cmVlc2l0LW5vZGUtcGFy
ZW50IG5vZGUpKQorICAgICAgICAgICAgICAiYXR4X2hlYWRpbmciKSkpCiAKLShkZWZ1biBtYXJr
ZG93bi10cy1pbWVudS1uYW1lLWZ1bmN0aW9uIChub2RlKQorKGRlZnVuIG1hcmtkb3duLXRzLS1p
bWVudS1oZWFkaW5nLW5hbWUtZnVuY3Rpb24gKG5vZGUpCiAgICJSZXR1cm4gYW4gaW1lbnUgZW50
cnkgaWYgTk9ERSBpcyBhIHZhbGlkIGhlYWRlci4iCiAgIChsZXQgKChuYW1lICh0cmVlc2l0LW5v
ZGUtdGV4dCBub2RlKSkpCi0gICAgKGlmIChtYXJrZG93bi10cy1pbWVudS1ub2RlLXAgbm9kZSkK
LQkodGhyZWFkLWZpcnN0ICh0cmVlc2l0LW5vZGUtcGFyZW50IG5vZGUpICh0cmVlc2l0LW5vZGUt
dGV4dCkpCisgICAgKGlmIChtYXJrZG93bi10cy0taW1lbnUtaGVhZGluZy1ub2RlLXAgbm9kZSkK
KyAgICAgICAgKGNhciAoc3BsaXQtc3RyaW5nICh0cmVlc2l0LW5vZGUtdGV4dAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgKHRyZWVzaXQtbm9kZS1wYXJlbnQgbm9kZSkpCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICJcbiIgdCAiICIpKQogICAgICAgbmFtZSkpKQogCi0oZGVmdW4gbWFy
a2Rvd24tdHMtb3V0bGluZS1wcmVkaWNhdGUgKG5vZGUpCi0gICJNYXRjaCBhIGhpZXJhcmNoaWNh
bCBzZWN0aW9uIHRoYXQgaGFzIGEgaGVhZGluZy4iCisoZGVmdW4gbWFya2Rvd24tdHMtLWltZW51
LWNvZGUtYmxvY2stbm9kZS1wIChub2RlKQorICAiQ2hlY2sgaWYgTk9ERSBpcyBhbiBpbmZvX3N0
cmluZyB3aXRoIGRlc2NyaXB0aXZlIHRleHQgYWZ0ZXIgdGhlIGxhbmd1YWdlLiIKKyAgKGFuZCAo
ZXF1YWwgKHRyZWVzaXQtbm9kZS10eXBlIG5vZGUpICJpbmZvX3N0cmluZyIpCisgICAgICAgKHdo
ZW4tbGV0KiAoKGxhbmctbm9kZSAodHJlZXNpdC1zZWFyY2gtc3VidHJlZSBub2RlICJsYW5ndWFn
ZSIpKQorICAgICAgICAgICAgICAgICAgICgoPCAodHJlZXNpdC1ub2RlLWVuZCBsYW5nLW5vZGUp
CisgICAgICAgICAgICAgICAgICAgICAgICh0cmVlc2l0LW5vZGUtZW5kIG5vZGUpKSkpCisgICAg
ICAgICAobm90IChzdHJpbmctYmxhbmstcAorICAgICAgICAgICAgICAgKGJ1ZmZlci1zdWJzdHJp
bmctbm8tcHJvcGVydGllcworICAgICAgICAgICAgICAgICh0cmVlc2l0LW5vZGUtZW5kIGxhbmct
bm9kZSkKKyAgICAgICAgICAgICAgICAodHJlZXNpdC1ub2RlLWVuZCBub2RlKSkpKSkpKQorCiso
ZGVmdW4gbWFya2Rvd24tdHMtLWltZW51LWNvZGUtYmxvY2stbmFtZS1mdW5jdGlvbiAobm9kZSkK
KyAgIlJldHVybiBhbiBpbWVudSBlbnRyeSBuYW1lIGZvciBhIGNvZGUgYmxvY2sgaW5mb19zdHJp
bmcgTk9ERS4KK1VzZXMgdGhlIGRlc2NyaXB0aXZlIHRleHQgYWZ0ZXIgdGhlIGxhbmd1YWdlIG5h
bWUuIgorICAod2hlbi1sZXQqICgobGFuZy1ub2RlICh0cmVlc2l0LXNlYXJjaC1zdWJ0cmVlIG5v
ZGUgImxhbmd1YWdlIikpCisgICAgICAgICAgICAgIChkZXNjIChzdHJpbmctdHJpbQorICAgICAg
ICAgICAgICAgICAgICAgKGJ1ZmZlci1zdWJzdHJpbmctbm8tcHJvcGVydGllcworICAgICAgICAg
ICAgICAgICAgICAgICh0cmVlc2l0LW5vZGUtZW5kIGxhbmctbm9kZSkKKyAgICAgICAgICAgICAg
ICAgICAgICAodHJlZXNpdC1ub2RlLWVuZCBub2RlKSkpKSkKKyAgICAoZm9ybWF0ICIlczogJXMi
ICh0cmVlc2l0LW5vZGUtdGV4dCBsYW5nLW5vZGUpIGRlc2MpKSkKKworKGRlZnVuIG1hcmtkb3du
LXRzLS1vdXRsaW5lLXByZWRpY2F0ZSAobm9kZSkKKyAgIk1hdGNoIE5PREUgaWYgaXQgaXMgYSBo
aWVyYXJjaGljYWwgc2VjdGlvbiB0aGF0IGhhcyBhIGhlYWRpbmcuIgogICAoYW5kIChlcXVhbCAo
dHJlZXNpdC1ub2RlLXR5cGUgbm9kZSkgInNlY3Rpb24iKQogICAgICAgICh3aGVuLWxldCogKChj
aGlsZCAodHJlZXNpdC1ub2RlLWNoaWxkIG5vZGUgMCkpKQogICAgICAgICAgKGVxdWFsICh0cmVl
c2l0LW5vZGUtdHlwZSBjaGlsZCkgImF0eF9oZWFkaW5nIikpKSkKIAotOzs7IENvZGUgYmxvY2tz
Ci0KLShkZWZ2YXItbG9jYWwgbWFya2Rvd24tdHMtLWNvbmZpZ3VyZWQtbGFuZ3VhZ2VzIG5pbAot
ICAiQSBsaXN0IG9mIGxhbmd1YWdlcyB0aGF0IGhhdmUgYmVlbiBzZXR1cCBpbiB0aGlzIGJ1ZmZl
ci4KLQotV2hlbiBhIGNvZGUgYmxvY2sgb2YgYSBsYW5ndWFnZSBhcHBlYXJzLCBgbWFya2Rvd24t
dHMtbW9kZScgbG9hZHMKLWxhbmd1YWdlIHNldHVwcyBsaWtlIGZvbnQtbG9jayBhbmQgaW5kZW50
YXRpb24gZm9yIHRoYXQgbGFuZ3VhZ2UsIGFuZAotYWRkcyB0aGF0IGxhbmd1YWdlIHRvIHRoaXMg
bGlzdC4iKQorOzs7IEhlYWRpbmcgbWFuaXB1bGF0aW9uOgorCisoZGVmY29uc3QgbWFya2Rvd24t
dHMtLXBhcnNlci1oZWFkaW5nLW1heC1sZXZlbCA2CisgICJNYXhpbXVtIEFUWCBoZWFkaW5nIGxl
dmVsIGluIE1hcmtkb3duIChoMS1oNikuCitEZWZpbmVkIGJ5IHRoZSBDb21tb25NYXJrIHNwZWMg
YW5kIHRoZSB0cmVlLXNpdHRlciBncmFtbWFyLiIpCisKKyhkZWZ1biBtYXJrZG93bi10cy0taGVh
ZGluZy1hdC1wb2ludCAoKQorICAiUmV0dXJuIHRoZSBhdHhfaGVhZGluZyBub2RlIGF0IG9yIGJl
Zm9yZSBwb2ludCwgb3IgbmlsLiIKKyAgKHdoZW4tbGV0KiAoKG5vZGUgKHRyZWVzaXQtbm9kZS1h
dCAocG9pbnQpICdtYXJrZG93bikpKQorICAgIChpZiAoZXF1YWwgKHRyZWVzaXQtbm9kZS10eXBl
IG5vZGUpICJhdHhfaGVhZGluZyIpCisgICAgICAgIG5vZGUKKyAgICAgICh0cmVlc2l0LXBhcmVu
dC11bnRpbAorICAgICAgIG5vZGUgKGxhbWJkYSAobikgKGVxdWFsICh0cmVlc2l0LW5vZGUtdHlw
ZSBuKSAiYXR4X2hlYWRpbmciKSkpKSkpCisKKyhkZWZ1biBtYXJrZG93bi10cy0taGVhZGluZy1s
ZXZlbCAoaGVhZGluZykKKyAgIlJldHVybiB0aGUgbGV2ZWwgb2YgSEVBRElORyBub2RlICgxIHRv
IGBtYXJrZG93bi10cy0tcGFyc2VyLWhlYWRpbmctbWF4LWxldmVsJykuIgorICAobGV0ICgobWFy
a2VyICh0cmVlc2l0LW5vZGUtY2hpbGQgaGVhZGluZyAwKSkpCisgICAgKGxlbmd0aCAodHJlZXNp
dC1ub2RlLXRleHQgbWFya2VyIHQpKSkpCisKKyhkZWZ1biBtYXJrZG93bi10cy0tc2VjdGlvbi1h
dC1wb2ludCAoKQorICAiUmV0dXJuIHRoZSBzZWN0aW9uIG5vZGUgY29udGFpbmluZyBwb2ludC4i
CisgICh3aGVuLWxldCogKChub2RlICh0cmVlc2l0LW5vZGUtYXQgKHBvaW50KSAnbWFya2Rvd24p
KSkKKyAgICAodHJlZXNpdC1wYXJlbnQtdW50aWwKKyAgICAgbm9kZSAobGFtYmRhIChuKSAoZXF1
YWwgKHRyZWVzaXQtbm9kZS10eXBlIG4pICJzZWN0aW9uIikpKSkpCisKKyhkZWZ1biBtYXJrZG93
bi10cy1wcm9tb3RlICgpCisgICJQcm9tb3RlIHRoZSBoZWFkaW5nIG9yIGxpc3QgaXRlbSBhdCBw
b2ludC4KK0ZvciBoZWFkaW5ncywgZGVjcmVhc2UgdGhlIGxldmVsIChlLmcuLCAjIyB0byAjKS4K
K0ZvciBsaXN0IGl0ZW1zLCBkZWNyZWFzZSBuZXN0aW5nIChkZWRlbnQpLgorV2l0aCBgdHJhbnNp
ZW50LW1hcmstbW9kZScgb24gYW5kIG1hcmsgYWN0aXZlLCBwcm9tb3RlIGFsbAoraGVhZGluZ3Mg
aW4gdGhlIHJlZ2lvbi4iCisgIChpbnRlcmFjdGl2ZSkKKyAgKGNvbmQKKyAgICgoYW5kIHRyYW5z
aWVudC1tYXJrLW1vZGUgbWFyay1hY3RpdmUpCisgICAgKG1hcmtkb3duLXRzLS1wcm9tb3RlLW9y
LWRlbW90ZS1yZWdpb24gLTEpKQorICAgKChtYXJrZG93bi10cy0tbGlzdC1pdGVtLWF0LXBvaW50
KQorICAgIChtYXJrZG93bi10cy0tbGlzdC1wcm9tb3RlLW9yLWRlbW90ZSBuaWwpKQorICAgKHQg
KG1hcmtkb3duLXRzLS1wcm9tb3RlLW9yLWRlbW90ZSAtMSkpKSkKKworKGRlZnVuIG1hcmtkb3du
LXRzLWRlbW90ZSAoKQorICAiRGVtb3RlIHRoZSBoZWFkaW5nIG9yIGxpc3QgaXRlbSBhdCBwb2lu
dC4KK0ZvciBoZWFkaW5ncywgaW5jcmVhc2UgdGhlIGxldmVsIChlLmcuLCAjIHRvICMjKS4KK0Zv
ciBsaXN0IGl0ZW1zLCBpbmNyZWFzZSBuZXN0aW5nIChpbmRlbnQpLgorV2l0aCBgdHJhbnNpZW50
LW1hcmstbW9kZScgb24gYW5kIG1hcmsgYWN0aXZlLCBkZW1vdGUgYWxsIGhlYWRpbmdzCitpbiB0
aGUgcmVnaW9uLiIKKyAgKGludGVyYWN0aXZlKQorICAoY29uZAorICAgKChhbmQgdHJhbnNpZW50
LW1hcmstbW9kZSBtYXJrLWFjdGl2ZSkKKyAgICAobWFya2Rvd24tdHMtLXByb21vdGUtb3ItZGVt
b3RlLXJlZ2lvbiAxKSkKKyAgICgobWFya2Rvd24tdHMtLWxpc3QtaXRlbS1hdC1wb2ludCkKKyAg
ICAobWFya2Rvd24tdHMtLWxpc3QtcHJvbW90ZS1vci1kZW1vdGUgdCkpCisgICAodCAobWFya2Rv
d24tdHMtLXByb21vdGUtb3ItZGVtb3RlIDEpKSkpCisKKyhkZWZ1biBtYXJrZG93bi10cy0tcHJv
bW90ZS1vci1kZW1vdGUgKGRlbHRhKQorICAiQ2hhbmdlIHRoZSBoZWFkaW5nIGF0IHBvaW50IGJ5
IERFTFRBIGxldmVscy4KK05lZ2F0aXZlIERFTFRBIHByb21vdGVzIChmZXdlciAjKSwgcG9zaXRp
dmUgZGVtb3RlcyAobW9yZSAjKS4KK0lmIHRoZSBoZWFkaW5nIGhhcyBhbiBvcHRpb25hbCB0cmFp
bGluZyBjbG9zaW5nLWAjJyBzZXF1ZW5jZSwgdGhhdAorc2VxdWVuY2UgaXMgcmVzaXplZCB0byBt
YXRjaCB0aGUgbmV3IGxldmVsLiIKKyAgKHdoZW4tbGV0KiAoKGhlYWRpbmcgKG1hcmtkb3duLXRz
LS1oZWFkaW5nLWF0LXBvaW50KSkKKyAgICAgICAgICAgICAgKG1hcmtlciAodHJlZXNpdC1ub2Rl
LWNoaWxkIGhlYWRpbmcgMCkpCisgICAgICAgICAgICAgIChsZXZlbCAobGVuZ3RoICh0cmVlc2l0
LW5vZGUtdGV4dCBtYXJrZXIgdCkpKQorICAgICAgICAgICAgICAobmV3LWxldmVsICgrIGxldmVs
IGRlbHRhKSkpCisgICAgKHdoZW4gKGFuZCAoPj0gbmV3LWxldmVsIDEpCisgICAgICAgICAgICAg
ICAoPD0gbmV3LWxldmVsIG1hcmtkb3duLXRzLS1wYXJzZXItaGVhZGluZy1tYXgtbGV2ZWwpKQor
ICAgICAgKGxldCogKChvcGVuZXItYmVnICh0cmVlc2l0LW5vZGUtc3RhcnQgbWFya2VyKSkKKyAg
ICAgICAgICAgICAob3BlbmVyLWVuZCAodHJlZXNpdC1ub2RlLWVuZCBtYXJrZXIpKQorICAgICAg
ICAgICAgIChsaW5lLWVuZCAoc2F2ZS1leGN1cnNpb24KKyAgICAgICAgICAgICAgICAgICAgICAg
ICAoZ290by1jaGFyIG9wZW5lci1lbmQpCisgICAgICAgICAgICAgICAgICAgICAgICAgKGxpbmUt
ZW5kLXBvc2l0aW9uKSkpCisgICAgICAgICAgICAgOzsgRGV0ZWN0IGEgQ29tbW9uTWFyayBjbG9z
aW5nLWAjJyBzZXF1ZW5jZTogb3B0aW9uYWwKKyAgICAgICAgICAgICA7OyB0cmFpbGluZyB3aGl0
ZXNwYWNlLCBhIHJ1biBvZiBgIycsIGFuZCBhdCBsZWFzdCBvbmUKKyAgICAgICAgICAgICA7OyBz
cGFjZS90YWIgYmV0d2VlbiBpdCBhbmQgdGhlIGhlYWRpbmcgdGV4dC4KKyAgICAgICAgICAgICAo
Y2xvc2VyIChzYXZlLWV4Y3Vyc2lvbgorICAgICAgICAgICAgICAgICAgICAgICAoZ290by1jaGFy
IGxpbmUtZW5kKQorICAgICAgICAgICAgICAgICAgICAgICAoc2tpcC1jaGFycy1iYWNrd2FyZCAi
IFx0IiBvcGVuZXItZW5kKQorICAgICAgICAgICAgICAgICAgICAgICAobGV0ICgoZW5kIChwb2lu
dCkpKQorICAgICAgICAgICAgICAgICAgICAgICAgIChza2lwLWNoYXJzLWJhY2t3YXJkICIjIiBv
cGVuZXItZW5kKQorICAgICAgICAgICAgICAgICAgICAgICAgIChsZXQgKChiZWcgKHBvaW50KSkp
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAod2hlbiAoYW5kICg8IGJlZyBlbmQpCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICg+IGJlZyBvcGVuZXItZW5kKQorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWVtcSAoY2hhci1iZWZvcmUgYmVn
KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnKD9ccyA/XHQp
KSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNvbnMgYmVnIGVuZCkpKSkpKSkKKyAg
ICAgICAgKHNhdmUtZXhjdXJzaW9uCisgICAgICAgICAgOzsgUmVzaXplIHRoZSBjbG9zZXIgZmly
c3Qgc28gaXQgZG9lc24ndCBzaGlmdCB0aGUgb3BlbmVyLgorICAgICAgICAgICh3aGVuIGNsb3Nl
cgorICAgICAgICAgICAgKGRlbGV0ZS1yZWdpb24gKGNhciBjbG9zZXIpIChjZHIgY2xvc2VyKSkK
KyAgICAgICAgICAgIChnb3RvLWNoYXIgKGNhciBjbG9zZXIpKQorICAgICAgICAgICAgKGluc2Vy
dCAobWFrZS1zdHJpbmcgbmV3LWxldmVsID8jKSkpCisgICAgICAgICAgKGRlbGV0ZS1yZWdpb24g
b3BlbmVyLWJlZyBvcGVuZXItZW5kKQorICAgICAgICAgIChnb3RvLWNoYXIgb3BlbmVyLWJlZykK
KyAgICAgICAgICAoaW5zZXJ0IChtYWtlLXN0cmluZyBuZXctbGV2ZWwgPyMpKSkpKSkpCisKKyhk
ZWZ1biBtYXJrZG93bi10cy0tcHJvbW90ZS1vci1kZW1vdGUtcmVnaW9uIChkZWx0YSkKKyAgIkNo
YW5nZSBhbGwgaGVhZGluZ3MgaW4gdGhlIGFjdGl2ZSByZWdpb24gYnkgREVMVEEgbGV2ZWxzLgor
TmVnYXRpdmUgREVMVEEgcHJvbW90ZXMgKGZld2VyICMpLCBwb3NpdGl2ZSBkZW1vdGVzIChtb3Jl
ICMpLiIKKyAgKGxldCAoKGJlZyAocmVnaW9uLWJlZ2lubmluZykpCisgICAgICAgIChlbmQgKHJl
Z2lvbi1lbmQpKSkKKyAgICAoc2F2ZS1leGN1cnNpb24KKyAgICAgIChnb3RvLWNoYXIgYmVnKQor
ICAgICAgKHdoaWxlICg8IChwb2ludCkgZW5kKQorICAgICAgICAod2hlbiAobWFya2Rvd24tdHMt
LWhlYWRpbmctYXQtcG9pbnQpCisgICAgICAgICAgKG1hcmtkb3duLXRzLS1wcm9tb3RlLW9yLWRl
bW90ZSBkZWx0YSkpCisgICAgICAgIChmb3J3YXJkLWxpbmUgMSkpKSkpCisKKyhkZWZ1biBtYXJr
ZG93bi10cy1tb3ZlLXN1YnRyZWUtdXAgKCkKKyAgIk1vdmUgdGhlIGN1cnJlbnQgc2VjdGlvbiBv
ciBsaXN0IGl0ZW0gdXAgcGFzdCB0aGUgcHJldmlvdXMgc2libGluZy4iCisgIChpbnRlcmFjdGl2
ZSkKKyAgKGlmIChtYXJrZG93bi10cy0tbGlzdC1pdGVtLWF0LXBvaW50KQorICAgICAgKG1hcmtk
b3duLXRzLS1saXN0LW1vdmUgdCkKKyAgICAobWFya2Rvd24tdHMtLW1vdmUtc3VidHJlZS11cC1v
ci1kb3duIHQpKSkKIAotKGRlZnVuIG1hcmtkb3duLXRzLS1oYXJ2ZXN0LXRyZWVzaXQtY29uZmln
cyAobW9kZSkKLSAgIkhhcnZlc3QgdHJlZS1zaXR0ZXIgY29uZmlncyBmcm9tIE1PREUuCi1SZXR1
cm4gYSBwbGlzdCB3aXRoIHRoZSBmb2xsb3dpbmcga2V5cyBhbmQgdmFsdWU6CisoZGVmdW4gbWFy
a2Rvd24tdHMtbW92ZS1zdWJ0cmVlLWRvd24gKCkKKyAgIk1vdmUgdGhlIGN1cnJlbnQgc2VjdGlv
biBvciBsaXN0IGl0ZW0gZG93biBwYXN0IHRoZSBuZXh0IHNpYmxpbmcuIgorICAoaW50ZXJhY3Rp
dmUpCisgIChpZiAobWFya2Rvd24tdHMtLWxpc3QtaXRlbS1hdC1wb2ludCkKKyAgICAgIChtYXJr
ZG93bi10cy0tbGlzdC1tb3ZlIG5pbCkKKyAgICAobWFya2Rvd24tdHMtLW1vdmUtc3VidHJlZS11
cC1vci1kb3duIG5pbCkpKQorCisoZGVmdW4gbWFya2Rvd24tdHMtLXNlY3Rpb24tZm9sZGVkLXAg
KHNlY3Rpb24pCisgICJSZXR1cm4gbm9uLW5pbCBpZiBTRUNUSU9OJ3MgaGVhZGluZyBpcyBmb2xk
ZWQuCitDaGVja3Mgd2hldGhlciB0aGUgZW5kIG9mIHRoZSBoZWFkaW5nIGxpbmUgaGFzIGFuIG91
dGxpbmUKK2ludmlzaWJsZSBvdmVybGF5LiIKKyAgKGxldCAoKGhlYWRpbmcgKHRyZWVzaXQtbm9k
ZS1jaGlsZCBzZWN0aW9uIDApKSkKKyAgICAod2hlbiAoYW5kIGhlYWRpbmcKKyAgICAgICAgICAg
ICAgIChlcXVhbCAodHJlZXNpdC1ub2RlLXR5cGUgaGVhZGluZykgImF0eF9oZWFkaW5nIikpCisg
ICAgICAoc2F2ZS1leGN1cnNpb24KKyAgICAgICAgKGdvdG8tY2hhciAodHJlZXNpdC1ub2RlLXN0
YXJ0IGhlYWRpbmcpKQorICAgICAgICAob3V0bGluZS1pbnZpc2libGUtcCAocG9zLWVvbCkpKSkp
KQorCisoZGVmdW4gbWFya2Rvd24tdHMtLW1vdmUtc3VidHJlZS11cC1vci1kb3duICh1cCkKKyAg
Ik1vdmUgdGhlIGN1cnJlbnQgc2VjdGlvbiBzdWJ0cmVlLgorSWYgVVAgaXMgbm9uLW5pbCwgbW92
ZSBwYXN0IHRoZSBwcmV2aW91cyBzaWJsaW5nOyBvdGhlcndpc2UgbW92ZSBkb3duLgorUHJlc2Vy
dmVzIHRoZSBmb2xkaW5nIHN0YXRlIG9mIGJvdGggc2VjdGlvbnMuIgorICAod2hlbi1sZXQqICgo
c2VjdGlvbiAobWFya2Rvd24tdHMtLXNlY3Rpb24tYXQtcG9pbnQpKQorICAgICAgICAgICAgICAo
c2libGluZyAoaWYgdXAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICh0cmVlc2l0LW5vZGUt
cHJldi1zaWJsaW5nIHNlY3Rpb24pCisgICAgICAgICAgICAgICAgICAgICAgICAgKHRyZWVzaXQt
bm9kZS1uZXh0LXNpYmxpbmcgc2VjdGlvbikpKSkKKyAgICAod2hlbiAoZXF1YWwgKHRyZWVzaXQt
bm9kZS10eXBlIHNpYmxpbmcpICJzZWN0aW9uIikKKyAgICAgIChsZXQqICgoZmlyc3QgKGlmIHVw
IHNpYmxpbmcgc2VjdGlvbikpCisgICAgICAgICAgICAgKHNlY29uZCAoaWYgdXAgc2VjdGlvbiBz
aWJsaW5nKSkKKyAgICAgICAgICAgICAoZmlyc3QtZm9sZGVkIChtYXJrZG93bi10cy0tc2VjdGlv
bi1mb2xkZWQtcCBmaXJzdCkpCisgICAgICAgICAgICAgKHNlY29uZC1mb2xkZWQgKG1hcmtkb3du
LXRzLS1zZWN0aW9uLWZvbGRlZC1wIHNlY29uZCkpCisgICAgICAgICAgICAgKGZpcnN0LXN0YXJ0
ICh0cmVlc2l0LW5vZGUtc3RhcnQgZmlyc3QpKQorICAgICAgICAgICAgIChzZWNvbmQtc3RhcnQg
KHRyZWVzaXQtbm9kZS1zdGFydCBzZWNvbmQpKQorICAgICAgICAgICAgIChzZWNvbmQtZW5kICh0
cmVlc2l0LW5vZGUtZW5kIHNlY29uZCkpCisgICAgICAgICAgICAgOzsgRXh0cmFjdCBzZXBhcmF0
b3IgYmV0d2VlbiBpdGVtcyBhbmQgdHJhaWxpbmcgd2hpdGVzcGFjZS4KKyAgICAgICAgICAgICAo
Zmlyc3QtcmF3IChidWZmZXItc3Vic3RyaW5nIGZpcnN0LXN0YXJ0IHNlY29uZC1zdGFydCkpCisg
ICAgICAgICAgICAgKGZpcnN0LXRleHQgKHN0cmluZy10cmltLXJpZ2h0IGZpcnN0LXJhdykpCisg
ICAgICAgICAgICAgKHNlcGFyYXRvciAoc3Vic3RyaW5nIGZpcnN0LXJhdyAobGVuZ3RoIGZpcnN0
LXRleHQpKSkKKyAgICAgICAgICAgICAoc2Vjb25kLXJhdyAoYnVmZmVyLXN1YnN0cmluZyBzZWNv
bmQtc3RhcnQgc2Vjb25kLWVuZCkpCisgICAgICAgICAgICAgKHNlY29uZC10ZXh0IChzdHJpbmct
dHJpbS1yaWdodCBzZWNvbmQtcmF3KSkKKyAgICAgICAgICAgICAodHJhaWxpbmcgKHN1YnN0cmlu
ZyBzZWNvbmQtcmF3IChsZW5ndGggc2Vjb25kLXRleHQpKSkKKyAgICAgICAgICAgICAoY29sIChj
dXJyZW50LWNvbHVtbikpCisgICAgICAgICAgICAgKGxpbmUtb2Zmc2V0ICgtIChsaW5lLW51bWJl
ci1hdC1wb3MgKHBvaW50KSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxpbmUtbnVt
YmVyLWF0LXBvcyAodHJlZXNpdC1ub2RlLXN0YXJ0IHNlY3Rpb24pKSkpKQorICAgICAgICAoZGVs
ZXRlLXJlZ2lvbiBmaXJzdC1zdGFydCBzZWNvbmQtZW5kKQorICAgICAgICAoZ290by1jaGFyIGZp
cnN0LXN0YXJ0KQorICAgICAgICAoaW5zZXJ0IHNlY29uZC10ZXh0IHNlcGFyYXRvciBmaXJzdC10
ZXh0IHRyYWlsaW5nKQorICAgICAgICA7OyBSZXN0b3JlIGZvbGRpbmcgc3RhdGUKKyAgICAgICAg
KHNhdmUtZXhjdXJzaW9uCisgICAgICAgICAgKGdvdG8tY2hhciBmaXJzdC1zdGFydCkKKyAgICAg
ICAgICAod2hlbiAob3V0bGluZS1vbi1oZWFkaW5nLXApCisgICAgICAgICAgICAoaWYgc2Vjb25k
LWZvbGRlZAorICAgICAgICAgICAgICAgIChvdXRsaW5lLWhpZGUtc3VidHJlZSkKKyAgICAgICAg
ICAgICAgKG91dGxpbmUtc2hvdy1zdWJ0cmVlKSkpCisgICAgICAgICAgKG91dGxpbmUtbmV4dC1o
ZWFkaW5nKQorICAgICAgICAgICh3aGVuIChvdXRsaW5lLW9uLWhlYWRpbmctcCkKKyAgICAgICAg
ICAgIChpZiBmaXJzdC1mb2xkZWQKKyAgICAgICAgICAgICAgICAob3V0bGluZS1oaWRlLXN1YnRy
ZWUpCisgICAgICAgICAgICAgIChvdXRsaW5lLXNob3ctc3VidHJlZSkpKSkKKyAgICAgICAgKGdv
dG8tY2hhciAoaWYgdXAKKyAgICAgICAgICAgICAgICAgICAgICAgZmlyc3Qtc3RhcnQKKyAgICAg
ICAgICAgICAgICAgICAgICgrIGZpcnN0LXN0YXJ0IChsZW5ndGggc2Vjb25kLXRleHQpCisgICAg
ICAgICAgICAgICAgICAgICAgICAobGVuZ3RoIHNlcGFyYXRvcikpKSkKKyAgICAgICAgKGZvcndh
cmQtbGluZSBsaW5lLW9mZnNldCkKKyAgICAgICAgKG1vdmUtdG8tY29sdW1uIGNvbCkpKSkpCisK
Kzs7OyBMaXN0IG1hbmlwdWxhdGlvbjoKKworKGRlZnVuIG1hcmtkb3duLXRzLXRvZ2dsZS1jaGVj
a2JveCAoKQorICAiVG9nZ2xlIHRoZSB0YXNrIGxpc3QgY2hlY2tib3ggb24gdGhlIGN1cnJlbnQg
bGluZS4KK1N3aXRjaGVzIGJldHdlZW4gYFsgXScgYW5kIGBbeF0nLiIKKyAgKGludGVyYWN0aXZl
KQorICAod2hlbi1sZXQqICgocG9zIChzYXZlLWV4Y3Vyc2lvbiAoYmFjay10by1pbmRlbnRhdGlv
bikgKHBvaW50KSkpCisgICAgICAgICAgICAgIChub2RlICh0cmVlc2l0LW5vZGUtYXQgcG9zICdt
YXJrZG93bikpCisgICAgICAgICAgICAgIChpdGVtICh0cmVlc2l0LXBhcmVudC11bnRpbAorICAg
ICAgICAgICAgICAgICAgICAgbm9kZSAobGFtYmRhIChuKQorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIChlcXVhbCAodHJlZXNpdC1ub2RlLXR5cGUgbikgImxpc3RfaXRlbSIpKSkpKQorICAg
ICh3aGVuLWxldCogKChtYXJrZXIgKHNlcS1maW5kCisgICAgICAgICAgICAgICAgICAgICAgICAg
KGxhbWJkYSAoY2hpbGQpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAobWVtYmVyICh0cmVl
c2l0LW5vZGUtdHlwZSBjaGlsZCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
JygidGFza19saXN0X21hcmtlcl9jaGVja2VkIgorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICJ0YXNrX2xpc3RfbWFya2VyX3VuY2hlY2tlZCIpKSkKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAodHJlZXNpdC1ub2RlLWNoaWxkcmVuIGl0ZW0pKSkpCisgICAgICAobGV0ICgo
YmVnICh0cmVlc2l0LW5vZGUtc3RhcnQgbWFya2VyKSkKKyAgICAgICAgICAgIChlbmQgKHRyZWVz
aXQtbm9kZS1lbmQgbWFya2VyKSkKKyAgICAgICAgICAgIChjaGVja2VkIChlcXVhbCAodHJlZXNp
dC1ub2RlLXR5cGUgbWFya2VyKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ0YXNrX2xp
c3RfbWFya2VyX2NoZWNrZWQiKSkpCisgICAgICAgIChzYXZlLWV4Y3Vyc2lvbgorICAgICAgICAg
IChnb3RvLWNoYXIgYmVnKQorICAgICAgICAgIChkZWxldGUtcmVnaW9uIGJlZyBlbmQpCisgICAg
ICAgICAgKGluc2VydCAoaWYgY2hlY2tlZCAiWyBdIiAiW3hdIikpKSkpKSkKKworKGRlZnVuIG1h
cmtkb3duLXRzLS1saXN0LWl0ZW0tYXQtcG9pbnQgKCkKKyAgIlJldHVybiB0aGUgaW5uZXJtb3N0
IGxpc3RfaXRlbSBub2RlIGNvbnRhaW5pbmcgcG9pbnQsIG9yIG5pbC4KK1VzZXMgdGhlIHBvc2l0
aW9uIGFmdGVyIGBiYWNrLXRvLWluZGVudGF0aW9uJyBzbyB0aGF0IHBvaW50IGluCithIGxpbmUn
cyBsZWFkaW5nIHdoaXRlc3BhY2UgcmVzb2x2ZXMgdG8gdGhlIGl0ZW0gb24gdGhhdCBsaW5lLAor
bm90IHRvIGEgcHJlY2VkaW5nIGl0ZW0gd2hvc2Ugbm9kZSBzcGFucyB0aGUgd2hpdGVzcGFjZS4K
K0luc2lkZSBibG9jayBxdW90ZXMsIGFsc28gdHJ5IGZyb20gdGhlIGNvbnRlbnQgcG9zaXRpb24g
cGFzdAordGhlIGA+JyBtYXJrZXJzLiIKKyAgKHdoZW4tbGV0KiAoKHBvcyAoc2F2ZS1leGN1cnNp
b24gKGJhY2stdG8taW5kZW50YXRpb24pIChwb2ludCkpKQorICAgICAgICAgICAgICAobm9kZSAo
dHJlZXNpdC1ub2RlLWF0IHBvcyAnbWFya2Rvd24pKQorICAgICAgICAgICAgICAoYm9sIChsaW5l
LWJlZ2lubmluZy1wb3NpdGlvbikpCisgICAgICAgICAgICAgIChlb2wgKGxpbmUtZW5kLXBvc2l0
aW9uKSkpCisgICAgKG9yIChsZXQgKChpdGVtICh0cmVlc2l0LXBhcmVudC11bnRpbAorICAgICAg
ICAgICAgICAgICAgICAgbm9kZSAobGFtYmRhIChuKQorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIChlcXVhbCAodHJlZXNpdC1ub2RlLXR5cGUgbikgImxpc3RfaXRlbSIpKSkpKQorICAgICAg
ICAgIDs7IFZlcmlmeSB0aGUgY3VycmVudCBsaW5lIGlzIHdpdGhpbiB0aGUgaXRlbSdzIHJhbmdl
LgorICAgICAgICAgIDs7IGB0cmVlc2l0LW5vZGUtYXQnIGNhbiByZXR1cm4gYSBub2RlIGluc2lk
ZSBhIGxpc3RfaXRlbQorICAgICAgICAgIDs7IGV2ZW4gd2hlbiBwb2ludCBpcyBvbiBhIHByZWNl
ZGluZyBsaW5lLgorICAgICAgICAgICh3aGVuIChhbmQgaXRlbQorICAgICAgICAgICAgICAgICAg
ICAgKDw9ICh0cmVlc2l0LW5vZGUtc3RhcnQgaXRlbSkgZW9sKQorICAgICAgICAgICAgICAgICAg
ICAgKD49ICh0cmVlc2l0LW5vZGUtZW5kIGl0ZW0pIGJvbCkpCisgICAgICAgICAgICBpdGVtKSkK
KyAgICAgICAgOzsgV2hlbiBiYWNrLXRvLWluZGVudGF0aW9uIGxhbmRzIG9uIGJsb2NrIHF1b3Rl
IG1hcmtlcnMsCisgICAgICAgIDs7IHNraXAgcGFzdCB0aGVtIGFuZCB0cnkgZnJvbSB0aGUgY29u
dGVudCBwb3NpdGlvbi4KKyAgICAgICAgKGxldCAoKGNvbnRlbnQtcG9zIChzYXZlLWV4Y3Vyc2lv
bgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoYmVnaW5uaW5nLW9mLWxpbmUpCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIChza2lwLWNoYXJzLWZvcndhcmQgIj4gXHQiKQorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAocG9pbnQpKSkpCisgICAgICAgICAgKHdoZW4gKD4g
Y29udGVudC1wb3MgcG9zKQorICAgICAgICAgICAgKHdoZW4tbGV0KiAoKGNub2RlICh0cmVlc2l0
LW5vZGUtYXQgY29udGVudC1wb3MgJ21hcmtkb3duKSkpCisgICAgICAgICAgICAgIChsZXQgKChp
dGVtICh0cmVlc2l0LXBhcmVudC11bnRpbAorICAgICAgICAgICAgICAgICAgICAgICAgICAgY25v
ZGUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIChsYW1iZGEgKG4pCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIChlcXVhbCAodHJlZXNpdC1ub2RlLXR5cGUgbikgImxpc3RfaXRlbSIp
KSkpKQorICAgICAgICAgICAgICAgICh3aGVuIChhbmQgaXRlbQorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgKDw9ICh0cmVlc2l0LW5vZGUtc3RhcnQgaXRlbSkgZW9sKQorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgKD49ICh0cmVlc2l0LW5vZGUtZW5kIGl0ZW0pIGJvbCkpCisgICAgICAg
ICAgICAgICAgICBpdGVtKSkpKSkpKSkKKworKGRlZnVuIG1hcmtkb3duLXRzLS1saXN0LW1hcmtl
ci13aWR0aCAoaXRlbSkKKyAgIlJldHVybiB0aGUgd2lkdGggb2YgSVRFTSdzIGxpc3QgbWFya2Vy
IGluY2x1ZGluZyB0cmFpbGluZyBzcGFjZS4iCisgIChsZXQgKChtYXJrZXIgKHRyZWVzaXQtbm9k
ZS1jaGlsZCBpdGVtIDApKSkKKyAgICAoLSAodHJlZXNpdC1ub2RlLWVuZCBtYXJrZXIpICh0cmVl
c2l0LW5vZGUtc3RhcnQgbWFya2VyKSkpKQorCisoZGVmdW4gbWFya2Rvd24tdHMtLWxpc3QtaXRl
bS1yZWdpb24gKGl0ZW0pCisgICJSZXR1cm4gdGhlIChCRUcgLiBFTkQpIHJlZ2lvbiBmb3IgSVRF
TSwgY2xhbXBlZCB0byBmdWxsIGxpbmVzLgorQkVHIHN0YXJ0cyBhdCB0aGUgYmVnaW5uaW5nIG9m
IHRoZSBsaW5lIGNvbnRhaW5pbmcgdGhlIGl0ZW0uCitFTkQgaXMgY2xhbXBlZCBzbyBpdCBkb2Vz
IG5vdCBleHRlbmQgaW50byB0aGUgbmV4dCBsaW5lJ3MKK2luZGVudGF0aW9uLCB3aGljaCB0cmVl
LXNpdHRlciBtYXkgaW5jbHVkZSBpbiB0aGUgbm9kZS4iCisgIChsZXQgKChiZWcgKHNhdmUtZXhj
dXJzaW9uCisgICAgICAgICAgICAgICAoZ290by1jaGFyICh0cmVlc2l0LW5vZGUtc3RhcnQgaXRl
bSkpCisgICAgICAgICAgICAgICAobGluZS1iZWdpbm5pbmctcG9zaXRpb24pKSkKKyAgICAgICAg
KGVuZCAoc2F2ZS1leGN1cnNpb24KKyAgICAgICAgICAgICAgIChnb3RvLWNoYXIgKHRyZWVzaXQt
bm9kZS1lbmQgaXRlbSkpCisgICAgICAgICAgICAgICAoaWYgKGJvbHApIChwb2ludCkgKGxpbmUt
YmVnaW5uaW5nLXBvc2l0aW9uKSkpKSkKKyAgICAoY29ucyBiZWcgZW5kKSkpCisKKyhkZWZ1biBt
YXJrZG93bi10cy0tbGlzdC1vcmRlcmVkLWl0ZW0tcCAoaXRlbSkKKyAgIlJldHVybiBub24tbmls
IGlmIElURU0gaXMgYW4gb3JkZXJlZCAobnVtYmVyZWQpIGxpc3QgaXRlbS4iCisgIChsZXQgKCht
YXJrZXIgKHRyZWVzaXQtbm9kZS1jaGlsZCBpdGVtIDApKSkKKyAgICAoZXF1YWwgKHRyZWVzaXQt
bm9kZS10eXBlIG1hcmtlcikgImxpc3RfbWFya2VyX2RvdCIpKSkKKworKGRlZnVuIG1hcmtkb3du
LXRzLS1saXN0LXByb21vdGUtb3ItZGVtb3RlIChkZW1vdGUpCisgICJDaGFuZ2UgbmVzdGluZyBv
ZiB0aGUgbGlzdCBpdGVtIGF0IHBvaW50LgorSWYgREVNT1RFIGlzIG5vbi1uaWwsIGRlbW90ZSAo
aW5kZW50KTsgb3RoZXJ3aXNlIHByb21vdGUgKGRlZGVudCkuCitPcmRlcmVkIChudW1iZXJlZCkg
bGlzdCBpdGVtcyBhcmUgc2tpcHBlZCBiZWNhdXNlIHRoZSBncmFtbWFyIGRvZXMKK25vdCBzdXBw
b3J0IG5lc3RpbmcgdGhlbSBieSBpbmRlbnRhdGlvbi4iCisgICh3aGVuLWxldCogKChpdGVtICht
YXJrZG93bi10cy0tbGlzdC1pdGVtLWF0LXBvaW50KSkKKyAgICAgICAgICAgICAgKHJlZ2lvbiAo
bWFya2Rvd24tdHMtLWxpc3QtaXRlbS1yZWdpb24gaXRlbSkpCisgICAgICAgICAgICAgIChiZWcg
KGNhciByZWdpb24pKQorICAgICAgICAgICAgICAoZW5kIChjZHIgcmVnaW9uKSkpCisgICAgKHdo
ZW4gKG1hcmtkb3duLXRzLS1saXN0LW9yZGVyZWQtaXRlbS1wIGl0ZW0pCisgICAgICAodXNlci1l
cnJvciAiT3JkZXJlZCBsaXN0IGl0ZW1zIGNhbm5vdCBiZSBuZXN0ZWQgKGdyYW1tYXIgbGltaXRh
dGlvbikiKSkKKyAgICAoaWYgZGVtb3RlCisgICAgICAgIDs7IERlbW90ZTogaW5kZW50IGJ5IG1h
cmtlciB3aWR0aCwgb25seSBpZiB0aGVyZSBpcyBhIHByZXZpb3VzCisgICAgICAgIDs7IHNpYmxp
bmcgdG8gbmVzdCB1bmRlciAobGlrZSBvcmctbW9kZSkuCisgICAgICAgICh3aGVuICh0cmVlc2l0
LW5vZGUtcHJldi1zaWJsaW5nIGl0ZW0pCisgICAgICAgICAgKGluZGVudC1yaWdpZGx5IGJlZyBl
bmQgKG1hcmtkb3duLXRzLS1saXN0LW1hcmtlci13aWR0aCBpdGVtKSkpCisgICAgICA7OyBQcm9t
b3RlOiBkZWRlbnQgdG8gZ3JhbmRwYXJlbnQgbGV2ZWwuCisgICAgICAobGV0KiAoKHBhcmVudC1s
aXN0ICh0cmVlc2l0LW5vZGUtcGFyZW50IGl0ZW0pKQorICAgICAgICAgICAgIChncmFuZHBhcmVu
dCAoYW5kIHBhcmVudC1saXN0ICh0cmVlc2l0LW5vZGUtcGFyZW50IHBhcmVudC1saXN0KSkpCisg
ICAgICAgICAgICAgKGl0ZW0tY29sIChzYXZlLWV4Y3Vyc2lvbgorICAgICAgICAgICAgICAgICAg
ICAgICAgIChnb3RvLWNoYXIgYmVnKSAoY3VycmVudC1pbmRlbnRhdGlvbikpKSkKKyAgICAgICAg
KHdoZW4gKGFuZCBncmFuZHBhcmVudAorICAgICAgICAgICAgICAgICAgIChlcXVhbCAodHJlZXNp
dC1ub2RlLXR5cGUgZ3JhbmRwYXJlbnQpICJsaXN0X2l0ZW0iKQorICAgICAgICAgICAgICAgICAg
ICg+IGl0ZW0tY29sIDApKQorICAgICAgICAgIChsZXQgKChncC1jb2wgKHNhdmUtZXhjdXJzaW9u
CisgICAgICAgICAgICAgICAgICAgICAgICAgIChnb3RvLWNoYXIgKHRyZWVzaXQtbm9kZS1zdGFy
dCBncmFuZHBhcmVudCkpCisgICAgICAgICAgICAgICAgICAgICAgICAgIChjdXJyZW50LWluZGVu
dGF0aW9uKSkpKQorICAgICAgICAgICAgKGluZGVudC1yaWdpZGx5IGJlZyBlbmQgKC0gZ3AtY29s
IGl0ZW0tY29sKSkpKSkpKSkKKworKGRlZnVuIG1hcmtkb3duLXRzLS1saXN0LW5vZGUtYm9sIChu
b2RlKQorICAiUmV0dXJuIHRoZSBiZWdpbm5pbmcgb2YgdGhlIGxpbmUgY29udGFpbmluZyBOT0RF
J3Mgc3RhcnQuIgorICAoc2F2ZS1leGN1cnNpb24KKyAgICAoZ290by1jaGFyICh0cmVlc2l0LW5v
ZGUtc3RhcnQgbm9kZSkpCisgICAgKGxpbmUtYmVnaW5uaW5nLXBvc2l0aW9uKSkpCisKKyhkZWZ1
biBtYXJrZG93bi10cy0tbGlzdC1tb3ZlICh1cCkKKyAgIk1vdmUgdGhlIGxpc3QgaXRlbSBhdCBw
b2ludC4KK0lmIFVQIGlzIG5vbi1uaWwsIG1vdmUgcGFzdCB0aGUgcHJldmlvdXMgc2libGluZzsg
b3RoZXJ3aXNlIG1vdmUgZG93bi4iCisgICh3aGVuLWxldCogKChpdGVtIChtYXJrZG93bi10cy0t
bGlzdC1pdGVtLWF0LXBvaW50KSkKKyAgICAgICAgICAgICAgKHNpYmxpbmcgKGlmIHVwCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAodHJlZXNpdC1ub2RlLXByZXYtc2libGluZyBpdGVtKQor
ICAgICAgICAgICAgICAgICAgICAgICAgICh0cmVlc2l0LW5vZGUtbmV4dC1zaWJsaW5nIGl0ZW0p
KSkpCisgICAgKHdoZW4gKGVxdWFsICh0cmVlc2l0LW5vZGUtdHlwZSBzaWJsaW5nKSAibGlzdF9p
dGVtIikKKyAgICAgIChsZXQqICgoZmlyc3QgKGlmIHVwIHNpYmxpbmcgaXRlbSkpCisgICAgICAg
ICAgICAgKHNlY29uZCAoaWYgdXAgaXRlbSBzaWJsaW5nKSkKKyAgICAgICAgICAgICAoZmlyc3Qt
c3RhcnQgKG1hcmtkb3duLXRzLS1saXN0LW5vZGUtYm9sIGZpcnN0KSkKKyAgICAgICAgICAgICAo
c2Vjb25kLXN0YXJ0IChtYXJrZG93bi10cy0tbGlzdC1ub2RlLWJvbCBzZWNvbmQpKQorICAgICAg
ICAgICAgIChzZWNvbmQtZW5kICh0cmVlc2l0LW5vZGUtZW5kIHNlY29uZCkpCisgICAgICAgICAg
ICAgOzsgRXh0cmFjdCBzZXBhcmF0b3IgYmV0d2VlbiBpdGVtcyBhbmQgdHJhaWxpbmcgd2hpdGVz
cGFjZS4KKyAgICAgICAgICAgICAoZmlyc3QtcmF3IChidWZmZXItc3Vic3RyaW5nIGZpcnN0LXN0
YXJ0IHNlY29uZC1zdGFydCkpCisgICAgICAgICAgICAgKGZpcnN0LXRleHQgKHN0cmluZy10cmlt
LXJpZ2h0IGZpcnN0LXJhdykpCisgICAgICAgICAgICAgKHNlcGFyYXRvciAoc3Vic3RyaW5nIGZp
cnN0LXJhdyAobGVuZ3RoIGZpcnN0LXRleHQpKSkKKyAgICAgICAgICAgICAoc2Vjb25kLXJhdyAo
YnVmZmVyLXN1YnN0cmluZyBzZWNvbmQtc3RhcnQgc2Vjb25kLWVuZCkpCisgICAgICAgICAgICAg
KHNlY29uZC10ZXh0IChzdHJpbmctdHJpbS1yaWdodCBzZWNvbmQtcmF3KSkKKyAgICAgICAgICAg
ICAodHJhaWxpbmcgKHN1YnN0cmluZyBzZWNvbmQtcmF3IChsZW5ndGggc2Vjb25kLXRleHQpKSkK
KyAgICAgICAgICAgICAoY29sIChjdXJyZW50LWNvbHVtbikpCisgICAgICAgICAgICAgKGxpbmUt
b2Zmc2V0ICgtIChsaW5lLW51bWJlci1hdC1wb3MgKHBvaW50KSkKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgKGxpbmUtbnVtYmVyLWF0LXBvcworICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgKHRyZWVzaXQtbm9kZS1zdGFydCBpdGVtKSkpKSkKKyAgICAgICAgKGRlbGV0ZS1yZWdp
b24gZmlyc3Qtc3RhcnQgc2Vjb25kLWVuZCkKKyAgICAgICAgKGdvdG8tY2hhciBmaXJzdC1zdGFy
dCkKKyAgICAgICAgKGluc2VydCBzZWNvbmQtdGV4dCBzZXBhcmF0b3IgZmlyc3QtdGV4dCB0cmFp
bGluZykKKyAgICAgICAgKGdvdG8tY2hhciAoaWYgdXAKKyAgICAgICAgICAgICAgICAgICAgICAg
Zmlyc3Qtc3RhcnQKKyAgICAgICAgICAgICAgICAgICAgICgrIGZpcnN0LXN0YXJ0IChsZW5ndGgg
c2Vjb25kLXRleHQpCisgICAgICAgICAgICAgICAgICAgICAgICAobGVuZ3RoIHNlcGFyYXRvcikp
KSkKKyAgICAgICAgKGZvcndhcmQtbGluZSBsaW5lLW9mZnNldCkKKyAgICAgICAgKG1vdmUtdG8t
Y29sdW1uIGNvbCkpKSkpCisKKyhkZWZ1biBtYXJrZG93bi10cy1yZW51bWJlci1saXN0ICgmb3B0
aW9uYWwgc3RhcnQpCisgICJSZW51bWJlciB0aGUgb3JkZXJlZCBsaXN0IGF0IHBvaW50LgorTnVt
YmVycyBhcmUgYXNzaWduZWQgc2VxdWVudGlhbGx5IHN0YXJ0aW5nIGZyb20gdGhlIGZpcnN0IGl0
ZW0ncworbnVtYmVyLiAgV2l0aCBhIHByZWZpeCBhcmd1bWVudCBTVEFSVCwgc3RhcnQgbnVtYmVy
aW5nIGZyb20gdGhhdAordmFsdWUgaW5zdGVhZC4gIERvZXMgbm90aGluZyBmb3IgdW5vcmRlcmVk
IGxpc3RzLiIKKyAgKGludGVyYWN0aXZlICJQIikKKyAgKHdoZW4tbGV0KiAoKGl0ZW0gKG1hcmtk
b3duLXRzLS1saXN0LWl0ZW0tYXQtcG9pbnQpKQorICAgICAgICAgICAgICAobGlzdC1ub2RlICh0
cmVlc2l0LW5vZGUtcGFyZW50IGl0ZW0pKSkKKyAgICAod2hlbiAoZXF1YWwgKHRyZWVzaXQtbm9k
ZS10eXBlIGxpc3Qtbm9kZSkgImxpc3QiKQorICAgICAgKGxldCogKChjaGlsZHJlbiAodHJlZXNp
dC1ub2RlLWNoaWxkcmVuIGxpc3Qtbm9kZSkpCisgICAgICAgICAgICAgKGl0ZW1zIChzZXEtZmls
dGVyIChsYW1iZGEgKG4pCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGVxdWFs
ICh0cmVlc2l0LW5vZGUtdHlwZSBuKSAibGlzdF9pdGVtIikpCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGNoaWxkcmVuKSkKKyAgICAgICAgICAgICAoZmlyc3QtbWFya2VyICh0cmVl
c2l0LW5vZGUtY2hpbGQgKGNhciBpdGVtcykgMCkpCisgICAgICAgICAgICAgKG1hcmtlci10eXBl
ICh0cmVlc2l0LW5vZGUtdHlwZSBmaXJzdC1tYXJrZXIpKSkKKyAgICAgICAgKHdoZW4gKG1lbWJl
ciBtYXJrZXItdHlwZSAnKCJsaXN0X21hcmtlcl9kb3QiICJsaXN0X21hcmtlcl9wYXJlbnRoZXNp
cyIpKQorICAgICAgICAgIChsZXQqICgoYmFzZSAoaWYgc3RhcnQKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgIChwcmVmaXgtbnVtZXJpYy12YWx1ZSBzdGFydCkKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAoc3RyaW5nLXRvLW51bWJlcgorICAgICAgICAgICAgICAgICAgICAgICAgICAodHJl
ZXNpdC1ub2RlLXRleHQgZmlyc3QtbWFya2VyIHQpKSkpCisgICAgICAgICAgICAgICAgIChjb3Vu
dCAobGVuZ3RoIGl0ZW1zKSkKKyAgICAgICAgICAgICAgICAgOzsgU3RhcnQgZnJvbSB0aGUgbGFz
dCBudW1iZXIgYW5kIHdvcmsgYmFja3dhcmRzIHNvCisgICAgICAgICAgICAgICAgIDs7IHRoYXQg
ZWFybGllciBidWZmZXIgcG9zaXRpb25zIHJlbWFpbiB2YWxpZC4KKyAgICAgICAgICAgICAgICAg
KG51bSAoKyBiYXNlIGNvdW50IC0xKSkpCisgICAgICAgICAgICAoZG9saXN0IChpdCAocmV2ZXJz
ZSBpdGVtcykpCisgICAgICAgICAgICAgIChsZXQqICgobWFya2VyICh0cmVlc2l0LW5vZGUtY2hp
bGQgaXQgMCkpCisgICAgICAgICAgICAgICAgICAgICAobWFya2VyLWVuZCAodHJlZXNpdC1ub2Rl
LWVuZCBtYXJrZXIpKQorICAgICAgICAgICAgICAgICAgICAgKGJvbCAoc2F2ZS1leGN1cnNpb24K
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZ290by1jaGFyICh0cmVlc2l0LW5vZGUtc3Rh
cnQgbWFya2VyKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAobGluZS1iZWdpbm5pbmct
cG9zaXRpb24pKSkKKyAgICAgICAgICAgICAgICAgICAgIDs7IEZ1bGwgdGV4dCBmcm9tIGJvbCB0
byBlbmQgb2YgbWFya2VyIGluY2x1ZGVzCisgICAgICAgICAgICAgICAgICAgICA7OyBhbnkgbGVh
ZGluZyB3aGl0ZXNwYWNlLCB0aGUgbnVtYmVyLCBhbmQgdGhlCisgICAgICAgICAgICAgICAgICAg
ICA7OyBzZXBhcmF0b3IgKGUuZy4sICIuICIgb3IgIi5cdCIpLgorICAgICAgICAgICAgICAgICAg
ICAgKGZ1bGwtdGV4dCAoYnVmZmVyLXN1YnN0cmluZy1uby1wcm9wZXJ0aWVzCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBib2wgbWFya2VyLWVuZCkpCisgICAgICAgICAgICAgICAg
ICAgICAoaW5kZW50LXN0cgorICAgICAgICAgICAgICAgICAgICAgIChpZiAoc3RyaW5nLW1hdGNo
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAiXFxgXFwoW1s6Ymxhbms6XV0qXFwpWzAtOV0i
IGZ1bGwtdGV4dCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoLXN0cmluZyAxIGZ1
bGwtdGV4dCkKKyAgICAgICAgICAgICAgICAgICAgICAgICIiKSkKKyAgICAgICAgICAgICAgICAg
ICAgIChzdWZmaXgtc3RyCisgICAgICAgICAgICAgICAgICAgICAgKGlmIChzdHJpbmctbWF0Y2gK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICJcXGBbWzpibGFuazpdXSpbMC05XStcXCguKlxc
KVxcJyIgZnVsbC10ZXh0KQorICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2gtc3RyaW5n
IDEgZnVsbC10ZXh0KQorICAgICAgICAgICAgICAgICAgICAgICAgIi4gIikpCisgICAgICAgICAg
ICAgICAgICAgICAobmV3LXRleHQgKGNvbmNhdCBpbmRlbnQtc3RyCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAobnVtYmVyLXRvLXN0cmluZyBudW0pCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdWZmaXgtc3RyKSkpCisgICAgICAgICAgICAg
ICAgKHNhdmUtZXhjdXJzaW9uCisgICAgICAgICAgICAgICAgICAoZGVsZXRlLXJlZ2lvbiBib2wg
bWFya2VyLWVuZCkKKyAgICAgICAgICAgICAgICAgIChnb3RvLWNoYXIgYm9sKQorICAgICAgICAg
ICAgICAgICAgKGluc2VydCBuZXctdGV4dCkpKQorICAgICAgICAgICAgICAoY2wtZGVjZiBudW0p
KQorICAgICAgICAgICAgKG1lc3NhZ2UgIlJlbnVtYmVyZWQgJWQgaXRlbXMiIGNvdW50KSkpKSkp
KQorCisoZGVmdW4gbWFya2Rvd24tdHMtLWxpc3QtaXRlbS1uZXctbWFya2VyIChpdGVtKQorICAi
UmV0dXJuIHRoZSBtYXJrZXIgc3RyaW5nIGZvciBhIG5ldyBpdGVtIGZvbGxvd2luZyBJVEVNLgor
Rm9yIHVub3JkZXJlZCBpdGVtcywgcmV1c2UgdGhlIHNhbWUgbWFya2VyIGNoYXJhY3Rlci4KK0Zv
ciBvcmRlcmVkIGl0ZW1zLCBpbmNyZW1lbnQgdGhlIG51bWJlci4iCisgIChsZXQqICgobWFya2Vy
ICh0cmVlc2l0LW5vZGUtY2hpbGQgaXRlbSAwKSkKKyAgICAgICAgICh0eXBlICh0cmVlc2l0LW5v
ZGUtdHlwZSBtYXJrZXIpKQorICAgICAgICAgKGluZGVudCAoc2F2ZS1leGN1cnNpb24KKyAgICAg
ICAgICAgICAgICAgICAoZ290by1jaGFyICh0cmVlc2l0LW5vZGUtc3RhcnQgaXRlbSkpCisgICAg
ICAgICAgICAgICAgICAgKGN1cnJlbnQtaW5kZW50YXRpb24pKSkKKyAgICAgICAgIChwcmVmaXgg
KG1ha2Utc3RyaW5nIGluZGVudCA/XHMpKSkKKyAgICAocGNhc2UgdHlwZQorICAgICAgKCJsaXN0
X21hcmtlcl9taW51cyIgKGNvbmNhdCBwcmVmaXggIi0gIikpCisgICAgICAoImxpc3RfbWFya2Vy
X3BsdXMiICAoY29uY2F0IHByZWZpeCAiKyAiKSkKKyAgICAgICgibGlzdF9tYXJrZXJfc3RhciIg
IChjb25jYXQgcHJlZml4ICIqICIpKQorICAgICAgKCJsaXN0X21hcmtlcl9kb3QiCisgICAgICAg
KGxldCAoKG51bSAoc3RyaW5nLXRvLW51bWJlciAodHJlZXNpdC1ub2RlLXRleHQgbWFya2VyIHQp
KSkpCisgICAgICAgICAoY29uY2F0IHByZWZpeCAobnVtYmVyLXRvLXN0cmluZyAoMSsgbnVtKSkg
Ii4gIikpKQorICAgICAgKCJsaXN0X21hcmtlcl9wYXJlbnRoZXNpcyIKKyAgICAgICAobGV0ICgo
bnVtIChzdHJpbmctdG8tbnVtYmVyICh0cmVlc2l0LW5vZGUtdGV4dCBtYXJrZXIgdCkpKSkKKyAg
ICAgICAgIChjb25jYXQgcHJlZml4IChudW1iZXItdG8tc3RyaW5nICgxKyBudW0pKSAiKSAiKSkp
CisgICAgICAoXyAoY29uY2F0IHByZWZpeCAiLSAiKSkpKSkKKworKGRlZnVuIG1hcmtkb3duLXRz
LS1uZXctbWFya2VyLWZvci1saW5lIChpdGVtKQorICAiUmV0dXJuIHRoZSBtYXJrZXIgc3RyaW5n
IGZvciBhIG5ldyBpdGVtIGZvbGxvd2luZyBJVEVNLgorV2hlbiB0aGUgY3VycmVudCBsaW5lIGhh
cyBhIGxpc3QgbWFya2VyIHBhdHRlcm4gYXQgYSBkaWZmZXJlbnQKK2luZGVudGF0aW9uIHRoYW4g
SVRFTSAoZS5nLiwgYSBuZXN0ZWQgbWFya2VyIHRoYXQgdGhlIGdyYW1tYXIgZGlkCitub3QgcmVj
b2duaXplIGFzIGEgbGlzdF9pdGVtKSwgdXNlIHRoZSBjdXJyZW50IGxpbmUncyBtYXJrZXIuCitP
dGhlcndpc2UsIGZhbGwgYmFjayB0byBgbWFya2Rvd24tdHMtLWxpc3QtaXRlbS1uZXctbWFya2Vy
Jy4iCisgIChsZXQgKChtYXJrZXItbm9kZSAodHJlZXNpdC1ub2RlLWNoaWxkIGl0ZW0gMCkpKQor
ICAgIChpZiAoPSAobGluZS1udW1iZXItYXQtcG9zKQorICAgICAgICAgICAgKGxpbmUtbnVtYmVy
LWF0LXBvcyAodHJlZXNpdC1ub2RlLXN0YXJ0IG1hcmtlci1ub2RlKSkpCisgICAgICAgIDs7IEl0
ZW0ncyBtYXJrZXIgaXMgb24gdGhlIGN1cnJlbnQgbGluZTogdXNlIGl0IG5vcm1hbGx5LgorICAg
ICAgICAobWFya2Rvd24tdHMtLWxpc3QtaXRlbS1uZXctbWFya2VyIGl0ZW0pCisgICAgICA7OyBJ
dGVtJ3MgbWFya2VyIGlzIG9uIGEgZGlmZmVyZW50IGxpbmUuICBUaGUgcGFyc2VyIG1heSBoYXZl
CisgICAgICA7OyBmYWlsZWQgdG8gcmVjb2duaXplIGEgbmVzdGVkIG1hcmtlciAoZS5nLiwgYSBs
b25lIGAgIC0gJworICAgICAgOzsgcGFyc2VkIGFzIGEgc2V0ZXh0IGhlYWRpbmcpLiAgUmVhZCB0
aGUgY3VycmVudCBsaW5lLgorICAgICAgKGxldCAoKGxpbmUgKGJ1ZmZlci1zdWJzdHJpbmctbm8t
cHJvcGVydGllcworICAgICAgICAgICAgICAgICAgIChsaW5lLWJlZ2lubmluZy1wb3NpdGlvbikg
KGxpbmUtZW5kLXBvc2l0aW9uKSkpKQorICAgICAgICAoaWYgKHN0cmluZy1tYXRjaAorICAgICAg
ICAgICAgICJcXGBcXChbWzpibGFuazpdXSpcXClcXChbLSorXSBcXHxcXChbMC05XStcXClcXChb
LildIFxcKVxcKSIKKyAgICAgICAgICAgICBsaW5lKQorICAgICAgICAgICAgKGxldCAoKGluZGVu
dCAobWF0Y2gtc3RyaW5nIDEgbGluZSkpCisgICAgICAgICAgICAgICAgICAobnVtIChtYXRjaC1z
dHJpbmcgMyBsaW5lKSkKKyAgICAgICAgICAgICAgICAgIChzdWZmaXggKG1hdGNoLXN0cmluZyA0
IGxpbmUpKQorICAgICAgICAgICAgICAgICAgKHVub3JkZXJlZCAobWF0Y2gtc3RyaW5nIDIgbGlu
ZSkpKQorICAgICAgICAgICAgICAoaWYgbnVtCisgICAgICAgICAgICAgICAgICAoY29uY2F0IGlu
ZGVudCAobnVtYmVyLXRvLXN0cmluZworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICgxKyAoc3RyaW5nLXRvLW51bWJlciBudW0pKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
c3VmZml4KQorICAgICAgICAgICAgICAgIChjb25jYXQgaW5kZW50IHVub3JkZXJlZCkpKQorICAg
ICAgICAgIDs7IE5vIG1hcmtlciBwYXR0ZXJuIG9uIGN1cnJlbnQgbGluZTogdXNlIGl0ZW0ncyBt
YXJrZXIuCisgICAgICAgICAgKG1hcmtkb3duLXRzLS1saXN0LWl0ZW0tbmV3LW1hcmtlciBpdGVt
KSkpKSkpCisKKyhkZWZ1biBtYXJrZG93bi10cy0tbGluZS1ibG9jay1xdW90ZS1kZXB0aCAoJm9w
dGlvbmFsIHBvcykKKyAgIkNvdW50IHRoZSBudW1iZXIgb2YgYD4nIGJsb2NrIHF1b3RlIG1hcmtl
cnMgb24gdGhlIGxpbmUgYXQgUE9TLiIKKyAgKHNhdmUtZXhjdXJzaW9uCisgICAgKHdoZW4gcG9z
IChnb3RvLWNoYXIgcG9zKSkKKyAgICAoYmVnaW5uaW5nLW9mLWxpbmUpCisgICAgKGxldCAoKGNv
dW50IDApKQorICAgICAgKHdoaWxlIChhbmQgKG5vdCAoZW9scCkpCisgICAgICAgICAgICAgICAg
ICAobWVtcSAoY2hhci1hZnRlcikgJyg/PiA/XHMgP1x0KSkpCisgICAgICAgICh3aGVuIChlcSAo
Y2hhci1hZnRlcikgPz4pCisgICAgICAgICAgKHNldHEgY291bnQgKDErIGNvdW50KSkpCisgICAg
ICAgIChmb3J3YXJkLWNoYXIgMSkpCisgICAgICBjb3VudCkpKQorCisoZGVmdW4gbWFya2Rvd24t
dHMtbmV3bGluZSAoKQorICAiSW5zZXJ0IGEgbmV3bGluZSwgY29udGludWluZyB0aGUgY3VycmVu
dCBjb250ZXh0LgorSW5zaWRlIGEgbGlzdCBpdGVtLCB0aGUgbmV3IGxpbmUgaXMgaW5kZW50ZWQg
dG8gdGhlIGl0ZW0ncyB0ZXh0Citjb2x1bW4gc28gdGhlIHBhcmFncmFwaCBjb250aW51ZXMuICBB
IHNlY29uZCBSRVQgb24gYSBibGFuaworY29udGludWF0aW9uIGxpbmUgcmVtb3ZlcyB0aGUgaW5k
ZW50YXRpb24sIGRyb3BwaW5nIHBvaW50IHRvCitjb2x1bW4gMCBzbyB0aGUgdHJlZS1zaXR0ZXIg
Z3JhbW1hciBlbmRzIHRoZSBsaXN0LgorSW5zaWRlIGEgYmxvY2sgcXVvdGUsIHRoZSBuZXcgbGlu
ZSBpbmNsdWRlcyB0aGUgcXVvdGUgcHJlZml4LgorT3RoZXJ3aXNlLCBpbnNlcnQgYSBwbGFpbiBu
ZXdsaW5lLiIKKyAgKGludGVyYWN0aXZlKQorICAobGV0KiAoKG5vZGUgKHRyZWVzaXQtbm9kZS1h
dAorICAgICAgICAgICAgICAgIChzYXZlLWV4Y3Vyc2lvbiAoYmFjay10by1pbmRlbnRhdGlvbikg
KHBvaW50KSkKKyAgICAgICAgICAgICAgICAnbWFya2Rvd24pKQorICAgICAgICAgOzsgVHJlZS1z
aXR0ZXIgbWF5IHJlcG9ydCBhIG5vZGUgaW5zaWRlIGEgYmxvY2tfcXVvdGUgZXZlbgorICAgICAg
ICAgOzsgd2hlbiBwb2ludCBpcyBvbiBhIGJsYW5rIGxpbmUgcGFzdCB0aGUgcXVvdGUgKHRoZSBu
b2RlCisgICAgICAgICA7OyBzcGFuIGNhbiBleHRlbmQgYmV5b25kIHRoZSBgPicgbGluZXMpLiAg
T25seSB0cmVhdCB0aGUKKyAgICAgICAgIDs7IGxpbmUgYXMgaW5zaWRlIGEgYmxvY2sgcXVvdGUg
aWYgaXQgYWN0dWFsbHkgc3RhcnRzIHdpdGgKKyAgICAgICAgIDs7IGEgYD4nIG1hcmtlci4KKyAg
ICAgICAgIChpbi1icSAoYW5kICh0cmVlc2l0LXBhcmVudC11bnRpbCBub2RlICJcXGBibG9ja19x
dW90ZVxcJyIpCisgICAgICAgICAgICAgICAgICAgICAoc2F2ZS1leGN1cnNpb24KKyAgICAgICAg
ICAgICAgICAgICAgICAgKGJlZ2lubmluZy1vZi1saW5lKQorICAgICAgICAgICAgICAgICAgICAg
ICAobG9va2luZy1hdC1wICJbIFx0XSo+IikpKSkKKyAgICAgICAgIChpdGVtIChtYXJrZG93bi10
cy0tbGlzdC1pdGVtLWF0LXBvaW50KSkpCisgICAgKGNvbmQKKyAgICAgKGl0ZW0KKyAgICAgIChs
ZXQqICgoY29sIChtYXJrZG93bi10cy0tbGlzdC1pdGVtLXRleHQtY29sdW1uIGl0ZW0pKQorICAg
ICAgICAgICAgIChicS1wcmVmaXggKHdoZW4gaW4tYnEgKG1hcmtkb3duLXRzLS1ibG9jay1xdW90
ZS1wcmVmaXgpKSkKKyAgICAgICAgICAgICA7OyBgY29sJyBpcyB0aGUgYWJzb2x1dGUgY29sdW1u
IG9mIHRoZSBpdGVtJ3MgdGV4dCwKKyAgICAgICAgICAgICA7OyB3aGljaCBpbnNpZGUgYSBibG9j
ayBxdW90ZSBpbmNsdWRlcyB0aGUgIj4gIiBwcmVmaXgKKyAgICAgICAgICAgICA7OyB3aWR0aC4g
IFNpbmNlIHdlIGluc2VydCBgYnEtcHJlZml4JyBzZXBhcmF0ZWx5LCB3ZQorICAgICAgICAgICAg
IDs7IG11c3Qgc3VidHJhY3QgaXRzIGxlbmd0aCB0byBhdm9pZCBkb3VibGluZyBpdC4KKyAgICAg
ICAgICAgICAoaW5kZW50ICgtIGNvbCAobGVuZ3RoIChvciBicS1wcmVmaXggIiIpKSkpCisgICAg
ICAgICAgICAgOzsgVGhlIGN1cnJlbnQgbGluZSBpcyAiYmxhbmsiIGlmIGl0IGNvbnRhaW5zIG9u
bHkKKyAgICAgICAgICAgICA7OyB3aGl0ZXNwYWNlIChvciBxdW90ZSBwcmVmaXggKyB3aGl0ZXNw
YWNlKSBhbmQgbm8KKyAgICAgICAgICAgICA7OyBhY3R1YWwgdGV4dCBmcm9tIGEgcHJldmlvdXMg
UkVUJ3MgY29udGludWF0aW9uIGluZGVudC4KKyAgICAgICAgICAgICAoYmxhbmstbGluZS1wIChz
YXZlLWV4Y3Vyc2lvbgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoYmVnaW5uaW5nLW9m
LWxpbmUpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb29raW5nLWF0LXAKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICJeWz4gXHRdKiQiKSkpCisgICAgICAgICAgICAgOzsg
UG9pbnQgaXMgYmVmb3JlIHRoZSBpdGVtJ3MgdGV4dCAoYXQgb3IgYmVmb3JlIHRoZQorICAgICAg
ICAgICAgIDs7IG1hcmtlcikuICBBIHBsYWluIG5ld2xpbmUgaXMgYXBwcm9wcmlhdGUgaGVyZSwg
YWRkaW5nCisgICAgICAgICAgICAgOzsgY29udGludWF0aW9uIGluZGVudCB3b3VsZCBzaGlmdCB0
aGUgZXhpc3RpbmcgY29udGVudAorICAgICAgICAgICAgIDs7IHRvIHRoZSByaWdodC4KKyAgICAg
ICAgICAgICAoYmVmb3JlLXRleHQtcCAoPD0gKGN1cnJlbnQtY29sdW1uKSBjb2wpKSkKKyAgICAg
ICAgKGNvbmQKKyAgICAgICAgIChibGFuay1saW5lLXAKKyAgICAgICAgICA7OyBUaGUgdXNlciBw
cmVzc2VkIFJFVCBvbiBhbiBhbHJlYWR5LWJsYW5rIGNvbnRpbnVhdGlvbgorICAgICAgICAgIDs7
IGxpbmUuICBJbnN0ZWFkIG9mIGFkZGluZyB5ZXQgYW5vdGhlciBpbmRlbnRlZCBibGFuaworICAg
ICAgICAgIDs7IGxpbmUsIHJlbW92ZSB0aGUgaW5kZW50YXRpb24gYW5kIGluc2VydCBhIHBsYWlu
CisgICAgICAgICAgOzsgbmV3bGluZS4gIFRoaXMgZHJvcHMgcG9pbnQgdG8gY29sdW1uIDAsIHdo
aWNoIGlzIHRoZQorICAgICAgICAgIDs7IG9ubHkgd2F5IHRoZSB0cmVlLXNpdHRlciBtYXJrZG93
biBncmFtbWFyIGVuZHMgYSBsaXN0OgorICAgICAgICAgIDs7IGJsYW5rIGxpbmVzIGFsb25lIGRv
IE5PVCBlbmQgYSBsaXN0LCBvbmx5CisgICAgICAgICAgOzsgbm9uLWluZGVudGVkIGNvbnRlbnQg
ZG9lcy4gIFNvIHRoaXMgZ2l2ZXMgdGhlIHVzZXIgYQorICAgICAgICAgIDs7IG5hdHVyYWwgIlJF
VCBSRVQgdG8gZXhpdCB0aGUgbGlzdCIgd29ya2Zsb3cuCisgICAgICAgICAgKGRlbGV0ZS1yZWdp
b24gKGxpbmUtYmVnaW5uaW5nLXBvc2l0aW9uKSAobGluZS1lbmQtcG9zaXRpb24pKQorICAgICAg
ICAgIChuZXdsaW5lKSkKKyAgICAgICAgIChiZWZvcmUtdGV4dC1wCisgICAgICAgICAgOzsgUG9p
bnQgaXMgb24gb3IgYmVmb3JlIHRoZSBsaXN0IG1hcmtlcjsganVzdCBpbnNlcnQgYQorICAgICAg
ICAgIDs7IHBsYWluIG5ld2xpbmUgc28gdGhlIGl0ZW0gaXMgcHVzaGVkIGRvd24gdW5jaGFuZ2Vk
LgorICAgICAgICAgIChuZXdsaW5lKSkKKyAgICAgICAgICh0CisgICAgICAgICAgKGRlbGV0ZS1o
b3Jpem9udGFsLXNwYWNlKQorICAgICAgICAgIChuZXdsaW5lKQorICAgICAgICAgICh3aGVuIGJx
LXByZWZpeCAoaW5zZXJ0IGJxLXByZWZpeCkpCisgICAgICAgICAgKGluc2VydCAobWFrZS1zdHJp
bmcgaW5kZW50ID9ccykpKSkpKQorICAgICAoaW4tYnEKKyAgICAgIChsZXQgKChicS1wcmVmaXgg
KG1hcmtkb3duLXRzLS1ibG9jay1xdW90ZS1wcmVmaXgpKQorICAgICAgICAgICAgOzsgQSBsaW5l
IHdpdGggb25seSBxdW90ZSBtYXJrZXJzIGFuZCB3aGl0ZXNwYWNlIChlLmcuLAorICAgICAgICAg
ICAgOzsgIj4gIikgaXMgImJsYW5rIiBpbnNpZGUgdGhlIHF1b3RlLiAgUkVUIGhlcmUgZXhpdHMg
dGhlCisgICAgICAgICAgICA7OyBxdW90ZSwgc2FtZSBhcyBSRVQgb24gYSBibGFuayBjb250aW51
YXRpb24gbGluZSBleGl0cyBhCisgICAgICAgICAgICA7OyBsaXN0OiByZW1vdmUgdGhlIHByZWZp
eCBhbmQgZHJvcCB0byBjb2x1bW4gMC4KKyAgICAgICAgICAgIChibGFuay1saW5lLXAgKHNhdmUt
ZXhjdXJzaW9uCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGJlZ2lubmluZy1vZi1saW5l
KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb29raW5nLWF0LXAgIl5bPiBcdF0qJCIp
KSkpCisgICAgICAgIChpZiBibGFuay1saW5lLXAKKyAgICAgICAgICAgIChwcm9nbgorICAgICAg
ICAgICAgICAoZGVsZXRlLXJlZ2lvbiAobGluZS1iZWdpbm5pbmctcG9zaXRpb24pIChsaW5lLWVu
ZC1wb3NpdGlvbikpCisgICAgICAgICAgICAgIChuZXdsaW5lKSkKKyAgICAgICAgICAoZGVsZXRl
LWhvcml6b250YWwtc3BhY2UpCisgICAgICAgICAgKG5ld2xpbmUpCisgICAgICAgICAgKGluc2Vy
dCBicS1wcmVmaXgpKSkpCisgICAgIDs7IERlZmF1bHQ6IHBsYWluIG5ld2xpbmUuICBUaGlzIGFs
c28gaGFuZGxlcyBlbXB0eSBsaXN0IG1hcmtlcnMKKyAgICAgOzsgKGUuZy4sICItICIgd2l0aCBu
byB0ZXh0KSB0aGF0IHRoZSBncmFtbWFyIHBhcnNlcyBhcyBFUlJPUgorICAgICA7OyBub2RlcyBy
YXRoZXIgdGhhbiBsaXN0X2l0ZW0gbm9kZXMuCisgICAgIDs7CisgICAgIDs7IFdoZW4gdGhlIGN1
cnJlbnQgbGluZSBpcyBibGFuayAod2hpdGVzcGFjZSBvbmx5KSwgaXQgaXMgYQorICAgICA7OyBj
b250aW51YXRpb24taW5kZW50IGxpbmUgbGVmdCBieSBhIHByZXZpb3VzIFJFVCB0aGF0CisgICAg
IDs7IHRyZWUtc2l0dGVyIG5vIGxvbmdlciBjb25zaWRlcnMgcGFydCBvZiBhIGxpc3RfaXRlbS4g
IENsZWFyCisgICAgIDs7IHRoZSB3aGl0ZXNwYWNlIHNvIG5vIHRyYWlsaW5nIHNwYWNlcyByZW1h
aW4sIGFuZCBpbnNlcnQgYQorICAgICA7OyBwbGFpbiBuZXdsaW5lIGF0IGNvbHVtbiAwIHRvIGV4
aXQgdGhlIGxpc3QgY29udGV4dC4KKyAgICAgKHQKKyAgICAgICh3aGVuIChzYXZlLWV4Y3Vyc2lv
bgorICAgICAgICAgICAgICAoYmVnaW5uaW5nLW9mLWxpbmUpCisgICAgICAgICAgICAgIChsb29r
aW5nLWF0LXAgIl5bIFx0XSskIikpCisgICAgICAgIChkZWxldGUtcmVnaW9uIChsaW5lLWJlZ2lu
bmluZy1wb3NpdGlvbikgKGxpbmUtZW5kLXBvc2l0aW9uKSkpCisgICAgICAobmV3bGluZSkpKSkp
CisKKyhkZWZ1biBtYXJrZG93bi10cy1pbnNlcnQtbGlzdC1pdGVtICgpCisgICJJbnNlcnQgYSBu
ZXcgbGlzdCBpdGVtLCBzcGxpdHRpbmcgdGV4dCBhdCBwb2ludC4KK1RleHQgYWZ0ZXIgcG9pbnQg
bW92ZXMgdG8gdGhlIG5ldyBpdGVtLiAgQXQgdGhlIGJlZ2lubmluZyBvZiBhIGxpbmUsCithbiBl
bXB0eSBpdGVtIGlzIGluc2VydGVkIGFib3ZlIGFuZCB0aGUgY3VycmVudCBjb250ZW50IGlzIHB1
c2hlZCBkb3duLgorSW5zaWRlIGEgYmxvY2sgcXVvdGUsIHRoZSBuZXcgbGluZSBpbmNsdWRlcyB0
aGUgcXVvdGUgcHJlZml4LgorRm9yIG9yZGVyZWQgbGlzdHMsIHRoZSBudW1iZXIgaXMgaW5jcmVt
ZW50ZWQuCitXaGVuIG5vdCBpbnNpZGUgYSBsaXN0LCBmYWxsIGJhY2sgdG8gYG1hcmtkb3duLXRz
LW5ld2xpbmUnLiIKKyAgKGludGVyYWN0aXZlKQorICAobGV0KiAoKG5vZGUgKHRyZWVzaXQtbm9k
ZS1hdAorICAgICAgICAgICAgICAgIChzYXZlLWV4Y3Vyc2lvbiAoYmFjay10by1pbmRlbnRhdGlv
bikgKHBvaW50KSkKKyAgICAgICAgICAgICAgICAnbWFya2Rvd24pKQorICAgICAgICAgKGluLWJx
IChhbmQgKHRyZWVzaXQtcGFyZW50LXVudGlsIG5vZGUgIlxcYGJsb2NrX3F1b3RlXFwnIikKKyAg
ICAgICAgICAgICAgICAgICAgIChzYXZlLWV4Y3Vyc2lvbgorICAgICAgICAgICAgICAgICAgICAg
ICAoYmVnaW5uaW5nLW9mLWxpbmUpCisgICAgICAgICAgICAgICAgICAgICAgIChsb29raW5nLWF0
LXAgIlsgXHRdKj4iKSkpKQorICAgICAgICAgKGJxLXByZWZpeCAod2hlbiBpbi1icSAobWFya2Rv
d24tdHMtLWJsb2NrLXF1b3RlLXByZWZpeCkpKQorICAgICAgICAgKGl0ZW0gKG1hcmtkb3duLXRz
LS1saXN0LWl0ZW0tYXQtcG9pbnQpKSkKKyAgICAoY29uZAorICAgICAoKGFuZCBpdGVtCisgICAg
ICAgICAgIChvciAobm90IGluLWJxKQorICAgICAgICAgICAgICAgKD49IChtYXJrZG93bi10cy0t
bGluZS1ibG9jay1xdW90ZS1kZXB0aCkKKyAgICAgICAgICAgICAgICAgICAobWFya2Rvd24tdHMt
LWxpbmUtYmxvY2stcXVvdGUtZGVwdGgKKyAgICAgICAgICAgICAgICAgICAgKHRyZWVzaXQtbm9k
ZS1zdGFydCAodHJlZXNpdC1ub2RlLWNoaWxkIGl0ZW0gMCkpKSkpKQorICAgICAgKGxldCogKChu
ZXctbWFya2VyIChtYXJrZG93bi10cy0tbmV3LW1hcmtlci1mb3ItbGluZSBpdGVtKSkKKyAgICAg
ICAgICAgICAoYXQtYm9sICg8PSAoY3VycmVudC1jb2x1bW4pCisgICAgICAgICAgICAgICAgICAg
ICAgICAgKHNhdmUtZXhjdXJzaW9uCisgICAgICAgICAgICAgICAgICAgICAgICAgICAoYmFjay10
by1pbmRlbnRhdGlvbikKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIChjdXJyZW50LWNvbHVt
bikpKSkKKyAgICAgICAgICAgICAodGFpbCAod2hlbiAoYW5kIChub3QgYXQtYm9sKQorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgKG5vdCAobG9va2luZy1hdC1wICJbIFx0XSokIikpKQor
ICAgICAgICAgICAgICAgICAgICAgKGRlbGV0ZS1hbmQtZXh0cmFjdC1yZWdpb24KKyAgICAgICAg
ICAgICAgICAgICAgICAocG9pbnQpIChsaW5lLWVuZC1wb3NpdGlvbikpKSkpCisgICAgICAgIChp
ZiBhdC1ib2wKKyAgICAgICAgICAgIDs7IEF0IEJPTDogaW5zZXJ0IGVtcHR5IGl0ZW0gYWJvdmUs
IHB1c2ggY3VycmVudCBsaW5lIGRvd24uCisgICAgICAgICAgICAocHJvZ24KKyAgICAgICAgICAg
ICAgKGJlZ2lubmluZy1vZi1saW5lKQorICAgICAgICAgICAgICAod2hlbiBicS1wcmVmaXggKGlu
c2VydCBicS1wcmVmaXgpKQorICAgICAgICAgICAgICAoaW5zZXJ0IG5ldy1tYXJrZXIgIlxuIikK
KyAgICAgICAgICAgICAgKGJhY2stdG8taW5kZW50YXRpb24pKQorICAgICAgICAgIDs7IE1pZC1s
aW5lIG9yIEVPTDogbmV3IGl0ZW0gYmVsb3cgd2l0aCB0YWlsIHRleHQuCisgICAgICAgICAgKGRl
bGV0ZS1ob3Jpem9udGFsLXNwYWNlKQorICAgICAgICAgIChuZXdsaW5lKQorICAgICAgICAgICh3
aGVuIGJxLXByZWZpeCAoaW5zZXJ0IGJxLXByZWZpeCkpCisgICAgICAgICAgKGluc2VydCBuZXct
bWFya2VyKQorICAgICAgICAgICh3aGVuIHRhaWwgKHNhdmUtZXhjdXJzaW9uIChpbnNlcnQgKHN0
cmluZy10cmltLWxlZnQgdGFpbCkpKSkpKSkKKworICAgICA7OyBOb3QgaW4gYSBsaXN0OiBmYWxs
IGJhY2sgdG8gbmV3bGluZSBiZWhhdmlvci4KKyAgICAgKHQgKG1hcmtkb3duLXRzLW5ld2xpbmUp
KSkpKQorCis7OzsgRmlsbGluZzoKKworKGRlZmNvbnN0IG1hcmtkb3duLXRzLS1maWxsLXVuZmls
bGFibGUtYmxvY2stcXVlcnkKKyAgJyhbKGZlbmNlZF9jb2RlX2Jsb2NrKSAoaW5kZW50ZWRfY29k
ZV9ibG9jaykgKHBpcGVfdGFibGUpXSBAYmxvY2spCisgICJUcmVlLXNpdHRlciBxdWVyeSBtYXRj
aGluZyBibG9ja3Mgd2hlcmUgZmlsbGluZyBpcyBpbmhpYml0ZWQuIikKKworKGRlZnVuIG1hcmtk
b3duLXRzLS1saXN0LWl0ZW0tdGV4dC1jb2x1bW4gKGl0ZW0pCisgICJSZXR1cm4gdGhlIGNvbHVt
biB3aGVyZSB0aGUgdGV4dCBvZiBsaXN0IElURU0gc3RhcnRzLgorVGhpcyBpcyB0aGUgY29sdW1u
IG9mIHRoZSBmaXJzdCBwYXJhZ3JhcGggbm9kZSBpbnNpZGUgSVRFTSwgb3IKK3RoZSB3aWR0aCBv
ZiB0aGUgbGlzdCBtYXJrZXIgaWYgbm8gcGFyYWdyYXBoIGlzIGZvdW5kLiIKKyAgKGxldCAoKHBh
cmFncmFwaCAodHJlZXNpdC1zZWFyY2gtc3VidHJlZSBpdGVtICJcXGBwYXJhZ3JhcGhcXCciKSkp
CisgICAgKGlmIHBhcmFncmFwaAorICAgICAgICAoc2F2ZS1leGN1cnNpb24KKyAgICAgICAgICAo
Z290by1jaGFyICh0cmVlc2l0LW5vZGUtc3RhcnQgcGFyYWdyYXBoKSkKKyAgICAgICAgICAoY3Vy
cmVudC1jb2x1bW4pKQorICAgICAgKGxldCAoKG1hcmtlciAodHJlZXNpdC1ub2RlLWNoaWxkIGl0
ZW0gMCkpKQorICAgICAgICAoLSAodHJlZXNpdC1ub2RlLWVuZCBtYXJrZXIpCisgICAgICAgICAg
ICh0cmVlc2l0LW5vZGUtc3RhcnQgbWFya2VyKSkpKSkpCisKKyhkZWZ1biBtYXJrZG93bi10cy0t
ZmlsbC1saXN0LWl0ZW0gKGl0ZW0ganVzdGlmeSkKKyAgIkZpbGwgdGhlIGNvbnRlbnRzIG9mIGxp
c3QgSVRFTSwgcHJlc2VydmluZyBpdHMgaW5kZW50YXRpb24uCitOYXJyb3dzIHRvIElURU0ncyBv
d24gcGFyYWdyYXBoIGNvbnRlbnQgKGV4Y2x1ZGluZyBuZXN0ZWQgbGlzdHMpCithbmQgc2V0cyBg
ZmlsbC1wcmVmaXgnIHRvIGFsaWduIGNvbnRpbnVhdGlvbiBsaW5lcyB3aXRoIHRoZSBzdGFydAor
b2YgdGhlIGl0ZW0ncyB0ZXh0LiAgSlVTVElGWSBpcyBhcyBpbiBgZmlsbC1wYXJhZ3JhcGgnLiIK
KyAgKGxldCogKChmaWxsLXByZWZpeCAobWFrZS1zdHJpbmcgKG1hcmtkb3duLXRzLS1saXN0LWl0
ZW0tdGV4dC1jb2x1bW4gaXRlbSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
P1xzKSkKKyAgICAgICAgIDs7IEZpbmQgdGhlIGl0ZW0ncyBvd24gcGFyYWdyYXBoIChmaXJzdCBw
YXJhZ3JhcGggY2hpbGQpLgorICAgICAgICAgOzsgSWYgdGhlIGl0ZW0gaGFzIG5lc3RlZCBsaXN0
cywgbmFycm93IHRvIGp1c3QgdGhlCisgICAgICAgICA7OyBwYXJhZ3JhcGggc28gd2UgZG9uJ3Qg
bWVyZ2UgbmVzdGVkIGl0ZW1zLgorICAgICAgICAgKHBhcmEgKHRyZWVzaXQtc2VhcmNoLXN1YnRy
ZWUgaXRlbSAiXFxgcGFyYWdyYXBoXFwnIiBuaWwgbmlsIDEpKQorICAgICAgICAgKGJlZyAodHJl
ZXNpdC1ub2RlLXN0YXJ0IGl0ZW0pKQorICAgICAgICAgKGVuZCAoaWYgcGFyYQorICAgICAgICAg
ICAgICAgICAgKHRyZWVzaXQtbm9kZS1lbmQgcGFyYSkKKyAgICAgICAgICAgICAgICAodHJlZXNp
dC1ub2RlLWVuZCBpdGVtKSkpCisgICAgICAgICA7OyBVc2UgZGVmYXVsdCBwYXJhZ3JhcGggbW90
aW9uIGluc2lkZSB0aGUgbmFycm93ZWQgcmVnaW9uCisgICAgICAgICA7OyBzbyB0aGF0IHRoZSBp
bm5lciBgZmlsbC1wYXJhZ3JhcGgnIGRvZXMgbm90IHJlLWVudGVyIG91cgorICAgICAgICAgOzsg
Y3VzdG9tIHBhcmFncmFwaC1maW5kaW5nIGxvZ2ljLgorICAgICAgICAgKGZpbGwtZm9yd2FyZC1w
YXJhZ3JhcGgtZnVuY3Rpb24gIydmb3J3YXJkLXBhcmFncmFwaCkpCisgICAgKHNhdmUtcmVzdHJp
Y3Rpb24KKyAgICAgIChuYXJyb3ctdG8tcmVnaW9uIGJlZyBlbmQpCisgICAgICAoZmlsbC1wYXJh
Z3JhcGgganVzdGlmeSkpCisgICAgOzsgUmV0dXJuIG5vbi1uaWwgdG8gc2lnbmFsIHRoYXQgZmls
bGluZyBoYXMgYmVlbiBoYW5kbGVkLAorICAgIDs7IGFzIHBlciB0aGUgY29udHJhY3Qgb2YgYGZp
bGwtcGFyYWdyYXBoLWZ1bmN0aW9uJy4KKyAgICB0KSkKKworKGRlZnVuIG1hcmtkb3duLXRzLS1h
ZGFwdGl2ZS1maWxsICgpCisgICJSZXR1cm4gdGhlIGZpbGwgcHJlZml4IGZvciB0aGUgY3VycmVu
dCBsaW5lIGluIE1hcmtkb3duLgorV2hlbiBpbnNpZGUgYSBsaXN0IGl0ZW0sIHJldHVybiBzcGFj
ZXMgbWF0Y2hpbmcgdGhlIGNvbHVtbiB3aGVyZQordGhlIGl0ZW0ncyB0ZXh0IHN0YXJ0cy4iCisg
IChhbmQtbGV0KiAoKG5vZGUgKHRyZWVzaXQtbm9kZS1hdAorICAgICAgICAgICAgICAgICAgICAo
c2F2ZS1leGN1cnNpb24gKGJhY2stdG8taW5kZW50YXRpb24pIChwb2ludCkpCisgICAgICAgICAg
ICAgICAgICAgICdtYXJrZG93bikpCisgICAgICAgICAgICAgKGl0ZW0gKHRyZWVzaXQtcGFyZW50
LXVudGlsIG5vZGUgIlxcYGxpc3RfaXRlbVxcJyIpKSkKKyAgICAobWFrZS1zdHJpbmcgKG1hcmtk
b3duLXRzLS1saXN0LWl0ZW0tdGV4dC1jb2x1bW4gaXRlbSkgP1xzKSkpCisKKyhkZWZ1biBtYXJr
ZG93bi10cy0tZmlsbC1mb3J3YXJkLXBhcmFncmFwaCAoYXJnKQorICAiTW92ZSBmb3J3YXJkIGJ5
IEFSRyBwYXJhZ3JhcGhzLCByZXNwZWN0aW5nIE1hcmtkb3duIHN0cnVjdHVyZS4KK0xpc3QgaXRl
bXMgYXJlIHRyZWF0ZWQgYXMgaW5kaXZpZHVhbCBwYXJhZ3JhcGhzLiAgQmxvY2tzIG1hdGNoZWQK
K2J5IGBtYXJrZG93bi10cy0tZmlsbC11bmZpbGxhYmxlLWJsb2NrLXF1ZXJ5JyBhcmUgc2tpcHBl
ZDogYm90aAorZm9yd2FyZCBhbmQgYmFja3dhcmQgbW90aW9uIG1vdmUgdG8gdGhlIGVuZCBvZiB0
aGUgYmxvY2ssIHNvCitgZmlsbC1yZWdpb24nIHNlZXMgYSB6ZXJvLWxlbmd0aCByZWdpb24gYW5k
IGxlYXZlcyB0aGUgYmxvY2sKK3VuZmlsbGVkLiIKKyAgKGxldCAoKGRpcmVjdGlvbiAoaWYgKD4g
YXJnIDApIDEgLTEpKQorICAgICAgICAoY291bnQgKGFicyBhcmcpKQorICAgICAgICAobW92ZWQg
MCkpCisgICAgKGRvdGltZXMgKF8gY291bnQpCisgICAgICA7OyBGb3IgYmFja3dhcmQgbW90aW9u
LCBza2lwIGJhY2sgb3ZlciB3aGl0ZXNwYWNlIHRvIGZpbmQKKyAgICAgIDs7IHRoZSBpdGVtIHdl
IGFyZSBsZWF2aW5nLCBub3QgdGhlIG5leHQgb25lLgorICAgICAgKGxldCogKChwb3MgKGlmICg8
IGRpcmVjdGlvbiAwKQorICAgICAgICAgICAgICAgICAgICAgIChzYXZlLWV4Y3Vyc2lvbgorICAg
ICAgICAgICAgICAgICAgICAgICAgKHNraXAtY2hhcnMtYmFja3dhcmQgIiBcdFxuIikKKyAgICAg
ICAgICAgICAgICAgICAgICAgIChtYXggKHBvaW50LW1pbikgKDEtIChwb2ludCkpKSkKKyAgICAg
ICAgICAgICAgICAgICAgKHBvaW50KSkpCisgICAgICAgICAgICAgKGJsb2NrIChjYXIgKHRyZWVz
aXQtcXVlcnktY2FwdHVyZQorICAgICAgICAgICAgICAgICAgICAgICAgICAodHJlZXNpdC1idWZm
ZXItcm9vdC1ub2RlICdtYXJrZG93bikKKyAgICAgICAgICAgICAgICAgICAgICAgICAgbWFya2Rv
d24tdHMtLWZpbGwtdW5maWxsYWJsZS1ibG9jay1xdWVyeQorICAgICAgICAgICAgICAgICAgICAg
ICAgICBwb3MgKDErIHBvcykpKSkKKyAgICAgICAgICAgICAoaW5kZW50ZWQtcG9zIChzYXZlLWV4
Y3Vyc2lvbgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZ290by1jaGFyIHBvcykKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgKGJhY2stdG8taW5kZW50YXRpb24pCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIChwb2ludCkpKQorICAgICAgICAgICAgIChub2RlICh0cmVl
c2l0LW5vZGUtYXQgaW5kZW50ZWQtcG9zICdtYXJrZG93bikpCisgICAgICAgICAgICAgKGl0ZW0g
KHRyZWVzaXQtcGFyZW50LXVudGlsIG5vZGUgIlxcYGxpc3RfaXRlbVxcJyIpKSkKKyAgICAgICAg
OzsgV2hlbiBtb3ZpbmcgZm9yd2FyZCBmcm9tIHdoaXRlc3BhY2UgYmV0d2VlbiBsaXN0IGl0ZW1z
LAorICAgICAgICA7OyBza2lwIHRvIHRoZSBuZXh0IG5vbi1ibGFuayBwb3NpdGlvbiBhbmQgY2hl
Y2sgYWdhaW4uCisgICAgICAgICh3aGVuIChhbmQgKG5vdCBpdGVtKSAobm90IGJsb2NrKSAoPiBk
aXJlY3Rpb24gMCkpCisgICAgICAgICAgKGxldCAoKG5leHQtcG9zIChzYXZlLWV4Y3Vyc2lvbgor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIChza2lwLWNoYXJzLWZvcndhcmQgIiBcdFxuIikK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAocG9pbnQpKSkpCisgICAgICAgICAgICAoc2V0
cSBub2RlICh0cmVlc2l0LW5vZGUtYXQgbmV4dC1wb3MgJ21hcmtkb3duKSkKKyAgICAgICAgICAg
IChzZXRxIGl0ZW0gKHRyZWVzaXQtcGFyZW50LXVudGlsIG5vZGUgIlxcYGxpc3RfaXRlbVxcJyIp
KSkpCisgICAgICAgIChjb25kCisgICAgICAgICA7OyBJbnNpZGUgYW4gdW5maWxsYWJsZSBibG9j
azogc2tpcCBvdmVyIGl0IGVudGlyZWx5LgorICAgICAgICAgKGJsb2NrCisgICAgICAgICAgKGdv
dG8tY2hhciAodHJlZXNpdC1ub2RlLWVuZCAoY2RyIGJsb2NrKSkpCisgICAgICAgICAgKHNldHEg
bW92ZWQgKDErIG1vdmVkKSkpCisgICAgICAgICA7OyBJbnNpZGUgYSBsaXN0IGl0ZW06IHRyZWF0
IGFzIHBhcmFncmFwaCBib3VuZGFyeS4KKyAgICAgICAgIChpdGVtCisgICAgICAgICAgKGlmICg+
IGRpcmVjdGlvbiAwKQorICAgICAgICAgICAgICAoZ290by1jaGFyICh0cmVlc2l0LW5vZGUtZW5k
IGl0ZW0pKQorICAgICAgICAgICAgKGdvdG8tY2hhciAodHJlZXNpdC1ub2RlLXN0YXJ0IGl0ZW0p
KSkKKyAgICAgICAgICAoc2V0cSBtb3ZlZCAoMSsgbW92ZWQpKSkKKyAgICAgICAgIDs7IERlZmF1
bHQ6IHVzZSBzdGFuZGFyZCBwYXJhZ3JhcGggbW90aW9uLgorICAgICAgICAgKHQKKyAgICAgICAg
ICAoZm9yd2FyZC1wYXJhZ3JhcGggZGlyZWN0aW9uKQorICAgICAgICAgIChzZXRxIG1vdmVkICgx
KyBtb3ZlZCkpKSkpKQorICAgIDs7IFJldHVybiB0aGUgbnVtYmVyIG9mIHBhcmFncmFwaHMgbGVm
dCB0byBtb3ZlICgwID0gYWxsIGRvbmUpLgorICAgICgtIGNvdW50IG1vdmVkKSkpCisKKyhkZWZ1
biBtYXJrZG93bi10cy0tZmlsbC1wYXJhZ3JhcGggKCZvcHRpb25hbCBqdXN0aWZ5KQorICAiRmls
bCB0aGUgY3VycmVudCBwYXJhZ3JhcGgsIHJlc3BlY3RpbmcgTWFya2Rvd24gYmxvY2sgc3RydWN0
dXJlLgorVGhpcyBmdW5jdGlvbiBwcmV2ZW50cyBmaWxsaW5nIGluc2lkZSBibG9ja3MgbWF0Y2hl
ZCBieQorYG1hcmtkb3duLXRzLS1maWxsLXVuZmlsbGFibGUtYmxvY2stcXVlcnknLCBhbmQgZmls
bHMgd2l0aGluIGxpc3QKK2l0ZW1zIHdpdGhvdXQgbWVyZ2luZyBhZGphY2VudCBpdGVtcy4gIEpV
U1RJRlkgaXMgYXMgaW4KK2BmaWxsLXBhcmFncmFwaCcuIgorICAoY29uZCoKKyAgIDs7IERvbid0
IGZpbGwgaW5zaWRlIHVuZmlsbGFibGUgYmxvY2tzLiAgVXNlIGEgcXVlcnkgYWdhaW5zdCB0aGUK
KyAgIDs7IHJvb3Qgbm9kZSBiZWNhdXNlIGB0cmVlc2l0LW5vZGUtYXQnIG1heSBub3QgcmV0dXJu
IGEgbm9kZQorICAgOzsgaW5zaWRlIHRoZSBibG9jayB3aGVuIHBvaW50IGlzIG9uIGFub255bW91
cyAodW5uYW1lZCkgdGV4dC4KKyAgICgodHJlZXNpdC1xdWVyeS1jYXB0dXJlCisgICAgICh0cmVl
c2l0LWJ1ZmZlci1yb290LW5vZGUgJ21hcmtkb3duKQorICAgICBtYXJrZG93bi10cy0tZmlsbC11
bmZpbGxhYmxlLWJsb2NrLXF1ZXJ5CisgICAgIChwb2ludCkgKG1pbiAoMSsgKHBvaW50KSkgKHBv
aW50LW1heCkpKQorICAgIHQpCisgICA7OyBGaWxsIHdpdGhpbiB0aGUgZW5jbG9zaW5nIGxpc3Qg
aXRlbS4gIFVzZQorICAgOzsgYG1hcmtkb3duLXRzLS1saXN0LWl0ZW0tYXQtcG9pbnQnIHdoaWNo
IGhhbmRsZXMgYmxvY2sgcXVvdGUKKyAgIDs7IG1hcmtlcnMuICBXaGVuIHRoZSBsaXN0IGl0ZW0g
aXMgaW5zaWRlIGEgYmxvY2sgcXVvdGUsIGRlbGVnYXRlCisgICA7OyB0byB0aGUgYmxvY2sgcXVv
dGUgZmlsbGVyIHdoaWNoIGhhbmRsZXMgYD4gJyBwcmVmaXhlcyBjb3JyZWN0bHkuCisgICAoKGJp
bmQtYW5kKiAoaXRlbSAobWFya2Rvd24tdHMtLWxpc3QtaXRlbS1hdC1wb2ludCkpKQorICAgIChp
ZiAodHJlZXNpdC1wYXJlbnQtdW50aWwgaXRlbSAiXFxgYmxvY2tfcXVvdGVcXCciKQorICAgICAg
ICAobWFya2Rvd24tdHMtLWZpbGwtYmxvY2stcXVvdGUganVzdGlmeSkKKyAgICAgIChtYXJrZG93
bi10cy0tZmlsbC1saXN0LWl0ZW0gaXRlbSBqdXN0aWZ5KSkpCisgICA7OyBQb2ludCBpcyBvbiBh
IGJsYW5rIGxpbmUgYmVmb3JlIGEgbGlzdC4gIElmIHRoZSBuZXh0CisgICA7OyBub24td2hpdGVz
cGFjZSBwb3NpdGlvbiBmYWxscyBpbnNpZGUgYSBsaXN0IGl0ZW0sIGZpbGwgdGhhdCBpdGVtLgor
ICAgKChzYXZlLWV4Y3Vyc2lvbgorICAgICAgKGJlZ2lubmluZy1vZi1saW5lKQorICAgICAgKGxv
b2tpbmctYXQtcCAiWyBcdF0qJCIpKQorICAgIChhbmQtbGV0KiAoKG5leHQtcG9zIChzYXZlLWV4
Y3Vyc2lvbgorICAgICAgICAgICAgICAgICAgICAgICAgICAgKHNraXAtY2hhcnMtZm9yd2FyZCAi
IFx0XG4iKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgKHBvaW50KSkpCisgICAgICAgICAg
ICAgICAobmV4dC1ub2RlICh0cmVlc2l0LW5vZGUtYXQgbmV4dC1wb3MgJ21hcmtkb3duKSkKKyAg
ICAgICAgICAgICAgIChpdGVtICh0cmVlc2l0LXBhcmVudC11bnRpbAorICAgICAgICAgICAgICAg
ICAgICAgIG5leHQtbm9kZSAiXFxgbGlzdF9pdGVtXFwnIikpKQorICAgICAgKG1hcmtkb3duLXRz
LS1maWxsLWxpc3QtaXRlbSBpdGVtIGp1c3RpZnkpKSkKKyAgIDs7IEZpbGwgd2l0aGluIGEgYmxv
Y2sgcXVvdGUuICBOYXJyb3cgdG8gdGhlIHBhcmFncmFwaCBub2RlIGF0CisgICA7OyBwb2ludCdz
IG5lc3RpbmcgbGV2ZWwgc28gbGluZXMgd2l0aCBkaWZmZXJlbnQgYD4gJyBkZXB0aHMKKyAgIDs7
IGFyZSBub3QgbWVyZ2VkLgorICAgKCh0cmVlc2l0LXBhcmVudC11bnRpbAorICAgICAodHJlZXNp
dC1ub2RlLWF0CisgICAgICAoc2F2ZS1leGN1cnNpb24gKGJhY2stdG8taW5kZW50YXRpb24pIChw
b2ludCkpCisgICAgICAnbWFya2Rvd24pCisgICAgICJcXGBibG9ja19xdW90ZVxcJyIpCisgICAg
KG1hcmtkb3duLXRzLS1maWxsLWJsb2NrLXF1b3RlIGp1c3RpZnkpKQorICAgOzsgRmlsbCB3aXRo
aW4gYW4gSFRNTCBjb21tZW50LiAgVGhlIG5vZGUgdHlwZSBpcyAiaHRtbF9ibG9jayIKKyAgIDs7
IGluIGdyYW1tYXIgdjAuNC54IGFuZCAiY29tbWVudCIgaW4gc29tZSBvdGhlciB2ZXJzaW9ucy4K
KyAgICgoYmluZC1hbmQqIChibG9jayAobGV0ICgobiAodHJlZXNpdC1ub2RlLWF0IChwb2ludCkg
J21hcmtkb3duKSkpCisgICAgICAgICAgICAgICAgICAgICAgICAob3IgKHRyZWVzaXQtcGFyZW50
LXVudGlsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG4gIlxcYFxcKD86aHRtbF9ibG9j
a1xcfGNvbW1lbnRcXClcXCciKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIChhbmQgKG1l
bWJlciAodHJlZXNpdC1ub2RlLXR5cGUgbikKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgJygiaHRtbF9ibG9jayIgImNvbW1lbnQiKSkKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIG4pKSkpKQorICAgIChtYXJrZG93bi10cy0tZmlsbC1odG1sLWNvbW1l
bnQgYmxvY2sganVzdGlmeSkpCisgICA7OyBEZWZhdWx0OiBsZXQgZmlsbC1wYXJhZ3JhcGggaGFu
ZGxlIGl0LgorICAgKHQgbmlsKSkpCisKKyhkZWZ1biBtYXJrZG93bi10cy0tZmlsbC1odG1sLWNv
bW1lbnQgKG5vZGUganVzdGlmeSkKKyAgIkZpbGwgSFRNTCBjb21tZW50IE5PREUsIGFsaWduaW5n
IGNvbnRpbnVhdGlvbiBsaW5lcy4KK1JldHVybiB0IGlmIE5PREUgaXMgYSBjb21tZW50IGFuZCB3
YXMgZmlsbGVkLCBuaWwgb3RoZXJ3aXNlLgorSlVTVElGWSBpcyBhcyBpbiBgZmlsbC1wYXJhZ3Jh
cGgnLiIKKyAgKHdoZW4gKHNhdmUtZXhjdXJzaW9uCisgICAgICAgICAgKGdvdG8tY2hhciAodHJl
ZXNpdC1ub2RlLXN0YXJ0IG5vZGUpKQorICAgICAgICAgIChsb29raW5nLWF0LXAgIjwhLS0iKSkK
KyAgICAobGV0ICgoZmlsbC1wcmVmaXggKHNhdmUtZXhjdXJzaW9uCisgICAgICAgICAgICAgICAg
ICAgICAgICAgKGdvdG8tY2hhciAodHJlZXNpdC1ub2RlLXN0YXJ0IG5vZGUpKQorICAgICAgICAg
ICAgICAgICAgICAgICAgIChtYWtlLXN0cmluZyAoKyAoY3VycmVudC1jb2x1bW4pCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsZW5ndGggIjwhLS0gIikpCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID9ccykpKQorICAgICAgICAgIChhZGFw
dGl2ZS1maWxsLWZ1bmN0aW9uIG5pbCkKKyAgICAgICAgICAoZmlsbC1mb3J3YXJkLXBhcmFncmFw
aC1mdW5jdGlvbiAjJ2ZvcndhcmQtcGFyYWdyYXBoKQorICAgICAgICAgIChmaWxsLXBhcmFncmFw
aC1mdW5jdGlvbiBuaWwpKQorICAgICAgKHNhdmUtcmVzdHJpY3Rpb24KKyAgICAgICAgKG5hcnJv
dy10by1yZWdpb24gKHRyZWVzaXQtbm9kZS1zdGFydCBub2RlKQorICAgICAgICAgICAgICAgICAg
ICAgICAgICAodHJlZXNpdC1ub2RlLWVuZCBub2RlKSkKKyAgICAgICAgKGZpbGwtcGFyYWdyYXBo
IGp1c3RpZnkpKQorICAgICAgdCkpKQorCisoZGVmdW4gbWFya2Rvd24tdHMtLWJsb2NrLXF1b3Rl
LXByZWZpeCAoKQorICAiUmV0dXJuIHRoZSBibG9jayBxdW90ZSBwcmVmaXggc3RyaW5nIGZyb20g
dGhlIGN1cnJlbnQgbGluZS4KK1JlYWQgdGhlIGFjdHVhbCBgPicgbWFya2VycyAod2l0aCB3aGF0
ZXZlciBzcGFjaW5nIHRoZSB1c2VyIHdyb3RlKQorZnJvbSB0aGUgYmVnaW5uaW5nIG9mIHRoZSBs
aW5lIHNvIHRoYXQgZmlsbCBwcmVzZXJ2ZXMgdGhlIGV4aXN0aW5nCitzdHlsZSAoZS5nLiwgYD4+
PiAnIHN0YXlzIGA+Pj4gJywgYD4gPiA+ICcgc3RheXMgYD4gPiA+ICcpLiIKKyAgKHNhdmUtZXhj
dXJzaW9uCisgICAgKGJlZ2lubmluZy1vZi1saW5lKQorICAgIChpZiAobG9va2luZy1hdCAiXFwo
Wz4gXHRdKj5cXClbIFx0XSoiKQorICAgICAgICAoY29uY2F0IChtYXRjaC1zdHJpbmcgMCkpCisg
ICAgICAiPiAiKSkpCisKKyhkZWZ1biBtYXJrZG93bi10cy0tZmlsbC1ibG9jay1xdW90ZSAoanVz
dGlmeSkKKyAgIkZpbGwgdGhlIHBhcmFncmFwaCBhdCBwb2ludCBpbnNpZGUgYSBibG9jayBxdW90
ZS4KK0ZpbmQgdGhlIHBhcmFncmFwaCBub2RlIGF0IHBvaW50IHdpdGhpbiB0aGUgYmxvY2sgcXVv
dGUgYW5kIGZpbGwKK29ubHkgdGhhdCBwYXJhZ3JhcGgsIHByZXNlcnZpbmcgdGhlIGA+ICcgcHJl
Zml4LiAgV2hlbiB0aGUKK3BhcmFncmFwaCBpcyBpbnNpZGUgYSBsaXN0IGl0ZW0sIGFsaWduIGNv
bnRpbnVhdGlvbiBsaW5lcyB3aXRoCit0aGUgaXRlbSdzIHRleHQgY29sdW1uLiAgSlVTVElGWSBp
cyBhcyBpbiBgZmlsbC1wYXJhZ3JhcGgnLiIKKyAgOzsgU2tpcCBwYXN0IGA+ICcgbWFya2VycyBh
bmQgYW55IGxpc3QgbWFya2VyIHRvIGxhbmQgaW5zaWRlIHRoZQorICA7OyBjb250ZW50LCB3aGVy
ZSB0aGUgcGFyYWdyYXBoIG5vZGUgbGl2ZXMuCisgIChsZXQqICgoY29udGVudC1wb3MgKHNhdmUt
ZXhjdXJzaW9uCisgICAgICAgICAgICAgICAgICAgICAgICAoYmVnaW5uaW5nLW9mLWxpbmUpCisg
ICAgICAgICAgICAgICAgICAgICAgICAoc2tpcC1jaGFycy1mb3J3YXJkICI+IFx0IikKKyAgICAg
ICAgICAgICAgICAgICAgICAgIDs7IElmIHdlIGxhbmQgb24gYSBsaXN0IG1hcmtlciwgc2tpcCBw
YXN0IGl0LgorICAgICAgICAgICAgICAgICAgICAgICAgKHdoZW4gKGxvb2tpbmctYXQgIlstKitd
IFxcfFswLTldK1suKV1ccyIpCisgICAgICAgICAgICAgICAgICAgICAgICAgIChnb3RvLWNoYXIg
KG1hdGNoLWVuZCAwKSkpCisgICAgICAgICAgICAgICAgICAgICAgICAobWluICgxKyAocG9pbnQp
KSAocG9pbnQtbWF4KSkpKQorICAgICAgICAgKG5vZGUgKHRyZWVzaXQtbm9kZS1hdCBjb250ZW50
LXBvcyAnbWFya2Rvd24pKQorICAgICAgICAgKHBhcmEgKHRyZWVzaXQtcGFyZW50LXVudGlsCisg
ICAgICAgICAgICAgICAgbm9kZSAobGFtYmRhIChuKQorICAgICAgICAgICAgICAgICAgICAgICAo
ZXF1YWwgKHRyZWVzaXQtbm9kZS10eXBlIG4pICJwYXJhZ3JhcGgiKSkpKSkKKyAgICAod2hlbiBw
YXJhCisgICAgICA7OyBUaGUgZ3JhbW1hciBtYXkgaW5jbHVkZSB0cmFpbGluZyBibG9ja19jb250
aW51YXRpb24gbm9kZXMKKyAgICAgIDs7IChibGFuayBgPiA+JyBsaW5lcykgYXMgY2hpbGRyZW4g
b2YgdGhlIHBhcmFncmFwaC4gIFVzZSB0aGUKKyAgICAgIDs7IGVuZCBvZiB0aGUgbGFzdCBpbmxp
bmUgY2hpbGQgc28gZmlsbCBkb2VzIG5vdCBtZXJnZSBhY3Jvc3MKKyAgICAgIDs7IHdoYXQgc2hv
dWxkIGJlIGEgcGFyYWdyYXBoIGJvdW5kYXJ5LgorICAgICAgKGxldCogKChsYXN0LWlubGluZQor
ICAgICAgICAgICAgICAoc2VxLWZpbmQgKGxhbWJkYSAoY2hpbGQpCisgICAgICAgICAgICAgICAg
ICAgICAgICAgIChlcXVhbCAodHJlZXNpdC1ub2RlLXR5cGUgY2hpbGQpICJpbmxpbmUiKSkKKyAg
ICAgICAgICAgICAgICAgICAgICAgIChyZXZlcnNlICh0cmVlc2l0LW5vZGUtY2hpbGRyZW4gcGFy
YSkpKSkKKyAgICAgICAgICAgICAocGFyYS1lbmQgKGlmIGxhc3QtaW5saW5lCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAodHJlZXNpdC1ub2RlLWVuZCBsYXN0LWlubGluZSkKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAodHJlZXNpdC1ub2RlLWVuZCBwYXJhKSkpCisgICAgICAgICAgICAg
KGJxLXByZWZpeCAobWFya2Rvd24tdHMtLWJsb2NrLXF1b3RlLXByZWZpeCkpCisgICAgICAgICAg
ICAgOzsgV2hlbiBpbnNpZGUgYSBsaXN0IGl0ZW0sIGV4dGVuZCB0aGUgcHJlZml4IHdpdGggc3Bh
Y2VzCisgICAgICAgICAgICAgOzsgc28gY29udGludWF0aW9uIGxpbmVzIGFsaWduIHdpdGggdGhl
IGl0ZW0ncyB0ZXh0LgorICAgICAgICAgICAgIChsaXN0LWl0ZW0gKHRyZWVzaXQtcGFyZW50LXVu
dGlsIHBhcmEgIlxcYGxpc3RfaXRlbVxcJyIpKQorICAgICAgICAgICAgIChwcmVmaXggKGlmIGxp
c3QtaXRlbQorICAgICAgICAgICAgICAgICAgICAgICAgIChsZXQqICgodGV4dC1jb2wgKG1hcmtk
b3duLXRzLS1saXN0LWl0ZW0tdGV4dC1jb2x1bW4KKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBsaXN0LWl0ZW0pKQorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAoZXh0cmEgKG1heCAwICgtIHRleHQtY29sIChsZW5ndGggYnEtcHJlZml4KSkpKSkKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgIChjb25jYXQgYnEtcHJlZml4IChtYWtlLXN0cmluZyBl
eHRyYSA/XHMpKSkKKyAgICAgICAgICAgICAgICAgICAgICAgYnEtcHJlZml4KSkKKyAgICAgICAg
ICAgICAoYWRhcHRpdmUtZmlsbC1mdW5jdGlvbiBuaWwpCisgICAgICAgICAgICAgKGZpbGwtZm9y
d2FyZC1wYXJhZ3JhcGgtZnVuY3Rpb24gIydmb3J3YXJkLXBhcmFncmFwaCkKKyAgICAgICAgICAg
ICAoZmlsbC1wYXJhZ3JhcGgtZnVuY3Rpb24gbmlsKSkKKyAgICAgICAgKHNhdmUtcmVzdHJpY3Rp
b24KKyAgICAgICAgICA7OyBOYXJyb3cgdG8gdGhlIGZ1bGwgbGluZXMgb2YgdGhlIHBhcmFncmFw
aCBzbyB0aGF0IHRoZQorICAgICAgICAgIDs7IGA+ICcgbWFya2VycyBhcmUgaW5jbHVkZWQgaW4g
dGhlIGZpbGwgcmVnaW9uLgorICAgICAgICAgIChuYXJyb3ctdG8tcmVnaW9uCisgICAgICAgICAg
IChzYXZlLWV4Y3Vyc2lvbgorICAgICAgICAgICAgIChnb3RvLWNoYXIgKHRyZWVzaXQtbm9kZS1z
dGFydCBwYXJhKSkKKyAgICAgICAgICAgICAoYmVnaW5uaW5nLW9mLWxpbmUpCisgICAgICAgICAg
ICAgKHBvaW50KSkKKyAgICAgICAgICAgcGFyYS1lbmQpCisgICAgICAgICAgKGxldCAoKGZpbGwt
cHJlZml4IHByZWZpeCkpCisgICAgICAgICAgICAoZmlsbC1wYXJhZ3JhcGgganVzdGlmeSkpKSkp
KQorICB0KQorCis7OzsgQ29kZSBibG9ja3M6CisKKyhkZWZ2YXItbG9jYWwgbWFya2Rvd24tdHMt
LWNvZGUtYmxvY2stbGFuZ3VhZ2VzIG5pbAorICAiQWxpc3QgbWFwcGluZyBsYW5ndWFnZSBub2Rl
IG5hbWVzIHRvIHRzIGxhbmd1YWdlLgorSWYgYSBsYW5ndWFnZSBpcyBub3QgYSB0cyBsYW5ndWFn
ZSBvciBpcyBub3QgbWFwcGVkIHRvIG9uZSwgaXQgd2lsbCBiZQoraW4gYG1hcmtkb3duLXRzLS1j
b2RlLWJsb2NrLW5vbi10cy1tb2RlcycuIikKKworKGRlZnZhci1sb2NhbCBtYXJrZG93bi10cy0t
Y29kZS1ibG9jay1ub24tdHMtbW9kZXMgbmlsCisgICJBbGlzdCBtYXBwaW5nIGxhbmd1YWdlcyB0
byBub24tdHJlZS1zaXR0ZXIgbW9kZXMgZm9yIGNvZGUgYmxvY2tzLgorUG9wdWxhdGVkIGJ5IGBt
YXJrZG93bi10cy0tY29kZS1ibG9jay10cy1sYW5ndWFnZScgdG8gaWRlbnRpZnkgYQorY29kZS1i
bG9jayBsYW5ndWFnZSBtb2RlIHdoaWNoIGlzIG5vdCBhIHRyZWUtc2l0dGVyIG1vZGUgb3IgZm9y
IHdoaWNoCit0aGUgdHJlZS1zaXR0ZXIgZ3JhbW1hciBpcyB1bmF2YWlsYWJsZS4iKQorCisoZGVm
dW4gbWFya2Rvd24tdHMtLWhhcnZlc3QtbW9kZS10cmVlc2l0LWNvbmZpZ3VyYXRpb24gKG1vZGUp
CisgICJIYXJ2ZXN0IHRyZWUtc2l0dGVyIGNvbmZpZ3VyYXRpb24gZnJvbSBNT0RFLgorUmV0dXJu
IGEgcGxpc3Qgd2l0aCB0aGUgZm9sbG93aW5nIGtleXMgYW5kIHZhbHVlczoKIAogICAgIDpmb250
LWxvY2sgKGZyb20gYHRyZWVzaXQtZm9udC1sb2NrLXNldHRpbmdzJykKICAgICA6c2ltcGxlLWlu
ZGVudCAoZnJvbSBgdHJlZXNpdC1zaW1wbGUtaW5kZW50LXJ1bGVzJykKICAgICA6cmFuZ2UgKGZy
b20gYHRyZWVzaXQtcmFuZ2Utc2V0dGluZ3MnKSIKICAgKHdpdGgtdGVtcC1idWZmZXIKLSAgICAo
ZnVuY2FsbCBtb2RlKQotICAgIChsaXN0IDpmb250LWxvY2sgdHJlZXNpdC1mb250LWxvY2stc2V0
dGluZ3MKKyAgICAoZGVsYXktbW9kZS1ob29rcyAoZnVuY2FsbCBtb2RlKSkKKyAgICAobGlzdCA6
bGFuZ3VhZ2UgKHRyZWVzaXQtbGFuZ3VhZ2UtYXQgKHBvaW50LW1pbikpCisgICAgICAgICAgOmZv
bnQtbG9jayB0cmVlc2l0LWZvbnQtbG9jay1zZXR0aW5ncwogICAgICAgICAgIDpzaW1wbGUtaW5k
ZW50IHRyZWVzaXQtc2ltcGxlLWluZGVudC1ydWxlcwogICAgICAgICAgIDpyYW5nZSB0cmVlc2l0
LXJhbmdlLXNldHRpbmdzKSkpCiAKLShkZWZ1biBtYXJrZG93bi10cy0tYWRkLWNvbmZpZy1mb3It
bW9kZSAobGFuZ3VhZ2UgbW9kZSkKLSAgIkFkZCBjb25maWd1cmF0aW9ucyBmb3IgTEFOR1VBR0Ug
ZnJvbSBNT0RFIHRvIGN1cnJlbnQgYnVmZmVyLgotCi1Db25maWd1cmF0aW9uIGluY2x1ZGVzIGZv
bnQtbG9jayBhbmQgaW5kZW50LiAgRm9yIGZvbnQtbG9jayBydWxlcywgdXNlCi10aGUgc2FtZSBm
ZWF0dXJlcyBlbmFibGVkIGluIE1PREUuIgotICAobGV0ICgoY29uZmlncyAobWFya2Rvd24tdHMt
LWhhcnZlc3QtdHJlZXNpdC1jb25maWdzIG1vZGUpKSkKLSAgICAoaWdub3JlIGxhbmd1YWdlKSA7
IFdlIG1pZ2h0IG1ha2UgdXNlIG9mIHRoaXMgbGF0ZXIuCi0gICAgKHNldHEgdHJlZXNpdC1mb250
LWxvY2stc2V0dGluZ3MKLSAgICAgICAgICAoYXBwZW5kIHRyZWVzaXQtZm9udC1sb2NrLXNldHRp
bmdzCi0gICAgICAgICAgICAgICAgICA7OyBHZXQgYWxsIHRoZSBmb250LWxvY2sgc2V0dGluZ3Ms
IGluY2x1ZGluZyBvbmVzIHRoYXQKLSAgICAgICAgICAgICAgICAgIDs7IGRvbid0IHBlcnRhaW4g
dG8gTEFOR1VBR0UuICBUaGlzIHdheSB3ZSBnZXQganNkb2MKLSAgICAgICAgICAgICAgICAgIDs7
IGZyb20ganMtdHMtbW9kZSwgZm9yIGV4YW1wbGUuCi0gICAgICAgICAgICAgICAgICAocGxpc3Qt
Z2V0IGNvbmZpZ3MgOmZvbnQtbG9jaykpKQotICAgIChzZXRxIHRyZWVzaXQtc2ltcGxlLWluZGVu
dC1ydWxlcwotICAgICAgICAgIChhcHBlbmQgdHJlZXNpdC1zaW1wbGUtaW5kZW50LXJ1bGVzCi0g
ICAgICAgICAgICAgICAgICA7OyBTaW1pbGFybHksIGdldCBhbGwgaW5kZW50IHJ1bGVzLgotICAg
ICAgICAgICAgICAgICAgKHBsaXN0LWdldCBjb25maWdzIDpzaW1wbGUtaW5kZW50KSkpCisoZGVm
dW4gbWFya2Rvd24tdHMtLWNvbmZpZ3VyZS1jdXJyZW50LWJ1ZmZlciAoY29uZmlndXJhdGlvbikK
KyAgIkFkZCBDT05GSUdVUkFUSU9OIHRvIHRoZSBjdXJyZW50IGJ1ZmZlci4KK0NPTkZJR1VSQVRJ
T04gaW5jbHVkZXMgZm9udC1sb2NrIGFuZCBpbmRlbnQgcnVsZXMuICBGb3IgZm9udC1sb2NrIHJ1
bGVzLAordXNlIHRoZSBzYW1lIGZlYXR1cmVzIGVuYWJsZWQgaW4gTU9ERS4iCisgIChzZXRxIHRy
ZWVzaXQtZm9udC1sb2NrLXNldHRpbmdzCisgICAgICAgIChhcHBlbmQgdHJlZXNpdC1mb250LWxv
Y2stc2V0dGluZ3MKKyAgICAgICAgICAgICAgICA7OyBHZXQgYWxsIHRoZSBmb250LWxvY2sgc2V0
dGluZ3MsIGluY2x1ZGluZyBvbmVzIHRoYXQKKyAgICAgICAgICAgICAgICA7OyBkb24ndCBwZXJ0
YWluIHRvIE1PREUuICBUaGlzIHdheSwgd2UgZ2V0IGpzZG9jCisgICAgICAgICAgICAgICAgOzsg
ZnJvbSBqcy10cy1tb2RlLCBmb3IgZXhhbXBsZS4KKyAgICAgICAgICAgICAgICAocGxpc3QtZ2V0
IGNvbmZpZ3VyYXRpb24gOmZvbnQtbG9jaykpKQorICAoc2V0cSB0cmVlc2l0LXNpbXBsZS1pbmRl
bnQtcnVsZXMKKyAgICAgICAgKGFwcGVuZCB0cmVlc2l0LXNpbXBsZS1pbmRlbnQtcnVsZXMKKyAg
ICAgICAgICAgICAgICA7OyBTaW1pbGFybHksIGdldCBhbGwgaW5kZW50IHJ1bGVzLgorICAgICAg
ICAgICAgICAgIChwbGlzdC1nZXQgY29uZmlndXJhdGlvbiA6c2ltcGxlLWluZGVudCkpKQogICAg
IChzZXRxIHRyZWVzaXQtcmFuZ2Utc2V0dGluZ3MKICAgICAgICAgICAoYXBwZW5kIHRyZWVzaXQt
cmFuZ2Utc2V0dGluZ3MKICAgICAgICAgICAgICAgICAgIDs7IEZpbHRlciBvdXQgZnVuY3Rpb24g
cXVlcmllcywgYmVjYXVzZSB0aGV5IGFyZQpAQCAtMzAyLDUyICsyMjc3LDQ3OSBAQCBtYXJrZG93
bi10cy0tYWRkLWNvbmZpZy1mb3ItbW9kZQogICAgICAgICAgICAgICAgICAgOzsgQ2FzZSBpbiBw
b2ludDogYy10cy1tb2RlJ3MgcmFuZ2Ugc2V0dGluZy4KICAgICAgICAgICAgICAgICAgIChzZXEt
ZmlsdGVyIChsYW1iZGEgKHNldHRpbmcpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IChub3QgKGZ1bmN0aW9ucCAoY2FyIHNldHRpbmcpKSkpCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAocGxpc3QtZ2V0IGNvbmZpZ3MgOnJhbmdlKSkpKQotICAgIChzZXRxLWxvY2FsIGlu
ZGVudC1saW5lLWZ1bmN0aW9uICMndHJlZXNpdC1pbmRlbnQpCi0gICAgKHNldHEtbG9jYWwgaW5k
ZW50LXJlZ2lvbi1mdW5jdGlvbiAjJ3RyZWVzaXQtaW5kZW50LXJlZ2lvbikpKQotCi0oZGVmdW4g
bWFya2Rvd24tdHMtLWNvbnZlcnQtY29kZS1ibG9jay1sYW5ndWFnZSAobm9kZSkKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIChwbGlzdC1nZXQgY29uZmlndXJhdGlvbiA6cmFuZ2UpKSkp
CisgIChzZXRxLWxvY2FsIGluZGVudC1saW5lLWZ1bmN0aW9uICMndHJlZXNpdC1pbmRlbnQpCisg
IChzZXRxLWxvY2FsIGluZGVudC1yZWdpb24tZnVuY3Rpb24gIyd0cmVlc2l0LWluZGVudC1yZWdp
b24pKQorCisoZGVmdW4gbWFya2Rvd24tdHMtLWxhbmd1YWdlLWF0LW5vZGUgKG5vZGUpCisgICJS
ZXR1cm4gdGhlIGxhbmd1YWdlIHN5bWJvbCBmb3IgY29kZV9mZW5jZV9jb250ZW50IE5PREUuIgor
ICAod2hlbi1sZXQqICgocGFyZW50ICh0cmVlc2l0LW5vZGUtcGFyZW50IG5vZGUpKQorICAgICAg
ICAgICAgICAobGFuZy1ub2RlICh3aGVuIHBhcmVudAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgKHRyZWVzaXQtc2VhcmNoLXN1YnRyZWUgcGFyZW50ICJcXGBsYW5ndWFnZVxcJyIpKSkpCisg
ICAgKGludGVybiAodHJlZXNpdC1ub2RlLXRleHQgbGFuZy1ub2RlIHQpKSkpCisKKyhkZWZ2YXIt
bG9jYWwgbWFya2Rvd24tdHMtLW5vbi10cy1mb250aWZ5LWNhY2hlIChtYWtlLWhhc2gtdGFibGUg
OnRlc3QgIydlcXVhbCkKKyAgIkNhY2hlIGZvciBub24tdHJlZS1zaXR0ZXIgY29kZSBibG9jayBm
b250aWZpY2F0aW9uLgorS2V5cyBhcmUgKExBTkcgLiBDT05URU5ULUhBU0gpIGNvbnMgY2VsbHMs
IHZhbHVlcyBhcmUgbGlzdHMgb2YKK1woT0ZGU0VULVNUQVJUIE9GRlNFVC1FTkQgRkFDRSkgdHJp
cGxlcy4iKQorCisoZGVmdmFyLWxvY2FsIG1hcmtkb3duLXRzLS1ub24tdHMtZm9udGlmeS1jYWNo
ZS10aWNrIG5pbAorICAiRm9yIGJsdW50IGBidWZmZXItY2hhcnMtbW9kaWZpZWQtdGljaycgY2Fj
aGUgaW52YWxpZGF0aW9uLiIpCisKKyhkZWZ1biBtYXJrZG93bi10cy0tZm9udGlmeS1ub24tdHMt
Y29kZS1ibG9jayAobm9kZSBvdmVycmlkZSBzdGFydCBlbmQgJnJlc3QgXykKKyAgIkZvbnRpZnkg
Y29kZV9mZW5jZV9jb250ZW50IE5PREUgdXNpbmcgYSBub24tdHJlZS1zaXR0ZXIgbW9kZS4KK0Fw
cGx5IHRoZSBjb2RlLWJsb2NrIG1vZGUncyBjb252ZW50aW9uYWwgZm9udC1sb2NrIGluIGEgdGVt
cG9yYXJ5CitidWZmZXIuICBPVkVSUklERSwgU1RBUlQsIGFuZCBFTkQgYXJlIHBhc3NlZCB0aHJv
dWdoIHRvCitgdHJlZXNpdC1mb250aWZ5LXdpdGgtb3ZlcnJpZGUnLgorCitDYWNoZSByZXN1bHRz
IHRvIGF2b2lkIGZvbnRpZmljYXRpb24gb2YgdW5jaGFuZ2VkIGNvZGUgYmxvY2tzLgorCitOT0RF
IHNob3VsZCBhbHJlYWR5IGhhdmUgcGFzc2VkIHRocm91Z2gKK2BtYXJrZG93bi10cy0tY29kZS1i
bG9jay10cy1sYW5ndWFnZScgd2hpY2ggbWF5IGhhdmUgY2xhc3NpZmllZCB0aGlzCitub2RlIGFz
IGEgbm9uLXRzIG1vZGUuIgorICAod2hlbi1sZXQqICgobGFuZyAobWFya2Rvd24tdHMtLWxhbmd1
YWdlLWF0LW5vZGUgbm9kZSkpCisgICAgICAgICAgICAgIChtb2RlIChhbGlzdC1nZXQgbGFuZyBt
YXJrZG93bi10cy0tY29kZS1ibG9jay1ub24tdHMtbW9kZXMpKQorICAgICAgICAgICAgICAodGlj
ayAoYnVmZmVyLWNoYXJzLW1vZGlmaWVkLXRpY2spKQorICAgICAgICAgICAgICAoYmxvY2stc3Rh
cnQgKHRyZWVzaXQtbm9kZS1zdGFydCBub2RlKSkKKyAgICAgICAgICAgICAgOzsgQ2Fubm90IHVz
ZSBtYXJrZXJzICdtYXJrZG93bi10cy1jb2RlLWJlZy1tYXJrZXIKKyAgICAgICAgICAgICAgOzsg
J21hcmtkb3duLXRzLWNvZGUtZW5kLW1hcmtlciB0aGV5IGFyZSBzZXQgYWZ0ZXIgdGhpcworICAg
ICAgICAgICAgICA7OyBmdW5jdGlvbiBydW5zLgorICAgICAgICAgICAgICAobm9kZS1zdGFydCAo
c2F2ZS1leGN1cnNpb24KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZ290by1jaGFyICh0
cmVlc2l0LW5vZGUtc3RhcnQgbm9kZSkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxp
bmUtYmVnaW5uaW5nLXBvc2l0aW9uKSkpCisgICAgICAgICAgICAgIChub2RlLWVuZCAoc2F2ZS1l
eGN1cnNpb24KKyAgICAgICAgICAgICAgICAgICAgICAgICAgKGdvdG8tY2hhciAodHJlZXNpdC1u
b2RlLWVuZCBub2RlKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgKHNraXAtY2hhcnMtYmFj
a3dhcmQgIiBcdCIpCisgICAgICAgICAgICAgICAgICAgICAgICAgIChwb2ludCkpKSkKKyAgICAo
d2hlbiAoPiBub2RlLWVuZCBub2RlLXN0YXJ0KQorICAgICAgKHVubGVzcyAoZXEgdGljayBtYXJr
ZG93bi10cy0tbm9uLXRzLWZvbnRpZnktY2FjaGUtdGljaykKKyAgICAgICAgKGNscmhhc2ggbWFy
a2Rvd24tdHMtLW5vbi10cy1mb250aWZ5LWNhY2hlKSkKKyAgICAgIChsZXQqICgoY2FjaGUta2V5
IChjb25zIGxhbmcgKHNlY3VyZS1oYXNoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAnc2hhMjU2CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY3VycmVu
dC1idWZmZXIpIG5vZGUtc3RhcnQgbm9kZS1lbmQpKSkKKyAgICAgICAgICAgICAocHJvcHMKKyAg
ICAgICAgICAgICAgKG9yIChnZXRoYXNoIGNhY2hlLWtleQorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgbWFya2Rvd24tdHMtLW5vbi10cy1mb250aWZ5LWNhY2hlKQorICAgICAgICAgICAgICAg
ICAgKGxldCAoKHJlc3VsdAorICAgICAgICAgICAgICAgICAgICAgICAgIChtYXJrZG93bi10cy0t
Zm9udGlmeS1ub24tdHMtY29sbGVjdC1mYWNlcworICAgICAgICAgICAgICAgICAgICAgICAgICBt
b2RlIG5vZGUtc3RhcnQgbm9kZS1lbmQpKSkKKyAgICAgICAgICAgICAgICAgICAgKHB1dGhhc2gg
Y2FjaGUta2V5IHJlc3VsdAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXJrZG93bi10
cy0tbm9uLXRzLWZvbnRpZnktY2FjaGUpCisgICAgICAgICAgICAgICAgICAgIChzZXRxIG1hcmtk
b3duLXRzLS1ub24tdHMtZm9udGlmeS1jYWNoZS10aWNrIHRpY2spCisgICAgICAgICAgICAgICAg
ICAgIHJlc3VsdCkpKSkKKyAgICAgICAgKGRvbGlzdCAocmFuZ2UgcHJvcHMpCisgICAgICAgICAg
KHRyZWVzaXQtZm9udGlmeS13aXRoLW92ZXJyaWRlCisgICAgICAgICAgIChudGggMCByYW5nZSkK
KyAgICAgICAgICAgKG50aCAxIHJhbmdlKQorICAgICAgICAgICAobnRoIDIgcmFuZ2UpCisgICAg
ICAgICAgIG92ZXJyaWRlIHN0YXJ0IGVuZCkpKSkpKQorCisoZGVmdW4gbWFya2Rvd24tdHMtLWZv
bnRpZnktbm9uLXRzLWNvbGxlY3QtZmFjZXMgKG1vZGUgYmVnIGVuZCkKKyAgIlJ1biBNT0RFIG9u
IHRoZSBCRUcuLkVORCByZWdpb24ncyB0ZXh0IGFuZCBoYXJ2ZXN0IGZhY2UgcHJvcGVydGllcy4K
K1JldHVybiBhIGxpc3Qgb2YgKEJVRi1CRUcgQlVGLUVORCBGQUNFKSB0cmlwbGVzIGluIGJhc2Ut
YnVmZmVyCitjb29yZGluYXRlcy4KKworRm9yIG5vbi10cmVlLXNpdHRlciBtb2RlcyB1c2UgYW4g
aW5kaXJlY3QgYnVmZmVyIG5hcnJvd2VkIHRvIEJFRy4uRU5EOgorcmVnZXgvc3ludGFjdGljIGZv
bnQtbG9jayBob25vcnMgbmFycm93aW5nIGFuZCB0aGUgaW5kaXJlY3QgYnVmZmVyCitzaGFyZXMg
dGV4dCB3aXRoIHRoZSBiYXNlLCBzbyB0aGlzIGlzIGxlc3MgZXhwZW5zaXZlIGFuZCBjb3B5LWZy
ZWUuCisKK0ZvciB0cyBtb2RlcyBpbiBgbWFya2Rvd24tdHMtY29kZS1ibG9jay1mb3JjZS1jb252
ZW50aW9uYWwtbW9kZXMnLCBmYWxsCitiYWNrIHRvIGEgdGVtcCBidWZmZXIuICBUcmVlLXNpdHRl
ciBwYXJzZXJzIGlnbm9yZSBpbmRpcmVjdC1idWZmZXIKK25hcnJvd2luZyBhbmQgcGFyc2UgdGhl
IGZ1bGwgYmFzZS1idWZmZXIgdGV4dDsgdGhlIGlubmVyIGNvbnRlbnQgb2YgYQorZmVuY2VkIGNv
ZGUgYmxvY2sgaXMganVzdCBvcGFxdWUgdGV4dCBpbnNpZGUgYSBgY29kZV9mZW5jZV9jb250ZW50
Jworbm9kZSwgbmV2ZXIgcmUtcGFyc2VkIGFzIGEgZnJlc2ggZG9jdW1lbnQuICBBIHRlbXAgYnVm
ZmVyIHdpdGggYSBmcmVzaAorcGFyc2VyIHNlZXMgdGhlIGlubmVyIGNvbnRlbnQgYXMgYSBzdGFu
ZGFsb25lIG1hcmtkb3duIGRvY3VtZW50LCB3aGljaAoraXMgd2hhdCB3ZSB3YW50LiIKKyAgKGNv
bmQgKChtZW1xIG1vZGUgbWFya2Rvd24tdHMtY29kZS1ibG9jay1mb3JjZS1jb252ZW50aW9uYWwt
bW9kZXMpCisgICAgICAgICAobGV0ICgoY29udGVudCAoYnVmZmVyLXN1YnN0cmluZy1uby1wcm9w
ZXJ0aWVzIGJlZyBlbmQpKQorICAgICAgICAgICAgICAgcmVzKQorICAgICAgICAgICAod2l0aC10
ZW1wLWJ1ZmZlcgorICAgICAgICAgICAgIChpbnNlcnQgY29udGVudCkKKyAgICAgICAgICAgICAo
ZGVsYXktbW9kZS1ob29rcworICAgICAgICAgICAgICAgKGxldCAoKG1hcmtkb3duLXRzLS1zZXQt
dXAtaW5saW5lIHQpKQorICAgICAgICAgICAgICAgICAobWFya2Rvd24tdHMtbW9kZSkpKQorICAg
ICAgICAgICAgIChmb250LWxvY2stZW5zdXJlKQorICAgICAgICAgICAgIChsZXQgKChwb3MgKHBv
aW50LW1pbikpKQorICAgICAgICAgICAgICAgKHdoaWxlICg8IHBvcyAocG9pbnQtbWF4KSkKKyAg
ICAgICAgICAgICAgICAgKGxldCAoKG5leHQgKG5leHQtc2luZ2xlLXByb3BlcnR5LWNoYW5nZQor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9zICdmYWNlIG5pbCAocG9pbnQtbWF4KSkp
CisgICAgICAgICAgICAgICAgICAgICAgIChmYWNlIChnZXQtdGV4dC1wcm9wZXJ0eSBwb3MgJ2Zh
Y2UpKSkKKyAgICAgICAgICAgICAgICAgICAod2hlbiBmYWNlCisgICAgICAgICAgICAgICAgICAg
ICA7OyBUcmFuc2xhdGUgdGVtcC1idWZmZXIgb2Zmc2V0cyBiYWNrIHRvIGJhc2UtYnVmZmVyCisg
ICAgICAgICAgICAgICAgICAgICA7OyBwb3NpdGlvbnM6IHRlbXAgYHBvaW50LW1pbicgY29ycmVz
cG9uZHMgdG8gQkVHLgorICAgICAgICAgICAgICAgICAgICAgKHB1c2ggKGxpc3QgKCsgYmVnICgx
LSBwb3MpKSAoKyBiZWcgKDEtIG5leHQpKSBmYWNlKQorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgcmVzKSkKKyAgICAgICAgICAgICAgICAgICAoc2V0cSBwb3MgbmV4dCkpKSkpCisgICAgICAg
ICAgIChucmV2ZXJzZSByZXMpKSkKKyAgICAgICAgKHQKKyAgICAgICAgIChsZXQgKChpbmRpcmVj
dC1idWZmZXIgKG1ha2UtaW5kaXJlY3QtYnVmZmVyCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAoY3VycmVudC1idWZmZXIpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAoZ2VuZXJhdGUtbmV3LWJ1ZmZlci1uYW1lIChidWZmZXItbmFtZSkpCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBuaWwgJ2luaGliaXQtYnVmZmVyLWhvb2tzKSkKKyAgICAgICAg
ICAgICAgIHJlcykKKyAgICAgICAgICAgKHVud2luZC1wcm90ZWN0CisgICAgICAgICAgICAgICAo
d2l0aC1jdXJyZW50LWJ1ZmZlciBpbmRpcmVjdC1idWZmZXIKKyAgICAgICAgICAgICAgICAgKGRl
bGF5LW1vZGUtaG9va3MgKGZ1bmNhbGwgbW9kZSkpCisgICAgICAgICAgICAgICAgIChuYXJyb3ct
dG8tcmVnaW9uIGJlZyBlbmQpCisgICAgICAgICAgICAgICAgIChmb250LWxvY2stZW5zdXJlKQor
ICAgICAgICAgICAgICAgICAobGV0ICgocG9zIChwb2ludC1taW4pKSkKKyAgICAgICAgICAgICAg
ICAgICAod2hpbGUgKDwgcG9zIChwb2ludC1tYXgpKQorICAgICAgICAgICAgICAgICAgICAgKGxl
dCAoKG5leHQgKG5leHQtc2luZ2xlLXByb3BlcnR5LWNoYW5nZQorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHBvcyAnZmFjZSBuaWwgKHBvaW50LW1heCkpKQorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgKGZhY2UgKGdldC10ZXh0LXByb3BlcnR5IHBvcyAnZmFjZSkpKQorICAg
ICAgICAgICAgICAgICAgICAgICAod2hlbiBmYWNlCisgICAgICAgICAgICAgICAgICAgICAgICAg
KHB1c2ggKGxpc3QgcG9zIG5leHQgZmFjZSkgcmVzKSkKKyAgICAgICAgICAgICAgICAgICAgICAg
KHNldHEgcG9zIG5leHQpKSkpKQorICAgICAgICAgICAgIChraWxsLWJ1ZmZlciBpbmRpcmVjdC1i
dWZmZXIpKQorICAgICAgICAgICAobnJldmVyc2UgcmVzKSkpKSkKKworKGRlZnVuIG1hcmtkb3du
LXRzLS1jb2RlLWJsb2NrLWxhbmd1YWdlLW1vZGUgKGxhbmcpCisgICJDb21wdXRlIGFuZCBjYWNo
ZSBhIG1vZGUgc3ltYm9sIGZyb20gTEFORywgYSBzeW1ib2wuCitDb25zdWx0IHRoZSBgbWFya2Rv
d24tdHMtY29kZS1ibG9jay1tYXAnIGNhY2hlLCBvciBwcm9iZSBtb2RlIG5hbWVzLgorUmV0dXJu
IGEgdmFsaWQgbW9kZSBzeW1ib2wgb3IgbmlsLiIKKyAgKGlmLWxldCogKChtYXBwZWQtbW9kZSAo
YWxpc3QtZ2V0IGxhbmcgbWFya2Rvd24tdHMtY29kZS1ibG9jay1tb2RlcykpKQorICAgICAgbWFw
cGVkLW1vZGUKKyAgICAobGV0ICgobGFuZy1zdHJpbmcgKHN5bWJvbC1uYW1lIGxhbmcpKSkKKyAg
ICAgIChjYXRjaCA6bW9kZQorICAgICAgICAoZG9saXN0IChtb2RlCisgICAgICAgICAgICAgICAg
IChsaXN0CisgICAgICAgICAgICAgICAgICA7OyBUcnkgYSB0cmVlc2l0IG1vZGUgdXNpbmcgdGhl
IHJhdyBzdHJpbmcuCisgICAgICAgICAgICAgICAgICAoY29uY2F0IGxhbmctc3RyaW5nICItdHMt
bW9kZSIpCisgICAgICAgICAgICAgICAgICA7OyBUcnkgYSBjb252ZW50aW9uYWwgbW9kZSB1c2lu
ZyB0aGUgcmF3IHN0cmluZy4KKyAgICAgICAgICAgICAgICAgIChjb25jYXQgbGFuZy1zdHJpbmcg
Ii1tb2RlIikKKyAgICAgICAgICAgICAgICAgIDs7IFRyeSBhIHRyZWVzaXQgbW9kZSB1c2luZyB0
aGUgZG93bmNhc2VkIHN0cmluZy4KKyAgICAgICAgICAgICAgICAgIChjb25jYXQgKGRvd25jYXNl
IGxhbmctc3RyaW5nKSAiLXRzLW1vZGUiKQorICAgICAgICAgICAgICAgICAgOzsgVHJ5IGEgY29u
dmVudGlvbmFsIG1vZGUgdXNpbmcgdGhlIGRvd25jYXNlZCBzdHJpbmcuCisgICAgICAgICAgICAg
ICAgICAoY29uY2F0IChkb3duY2FzZSBsYW5nLXN0cmluZykgIi1tb2RlIikpKQorICAgICAgICAg
IChzZXRxIG1vZGUgKGludGVybiBtb2RlKSkKKyAgICAgICAgICAod2hlbiAoZmJvdW5kcCBtb2Rl
KQorICAgICAgICAgICAgKHB1c2ggKGNvbnMgbGFuZyBtb2RlKSBtYXJrZG93bi10cy1jb2RlLWJs
b2NrLW1vZGVzKQorICAgICAgICAgICAgKHRocm93IDptb2RlIG1vZGUpKSkpKSkpCisKKyhkZWZ1
biBtYXJrZG93bi10cy0tY29kZS1ibG9jay10cy1sYW5ndWFnZSAobm9kZSkKICAgIkNvbnZlcnQg
Tk9ERSB0byBhIGxhbmd1YWdlIGZvciB0aGUgY29kZSBibG9jay4iCi0gIChsZXQqICgobGFuZy1z
dHJpbmcgKGFsaXN0LWdldCAodHJlZXNpdC1ub2RlLXRleHQgbm9kZSkKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIG1hcmtkb3duLXRzLS1jb2RlLWJsb2NrLWxhbmd1YWdlLW1hcAot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHRyZWVzaXQtbm9kZS10ZXh0IG5vZGUp
IG5pbCAjJ2VxdWFsKSkKLSAgICAgICAgIChsYW5nIChpZiAoc3ltYm9scCBsYW5nLXN0cmluZykK
LSAgICAgICAgICAgICAgICAgICBsYW5nLXN0cmluZwotICAgICAgICAgICAgICAgICAoaW50ZXJu
IChkb3duY2FzZSBsYW5nLXN0cmluZykpKSkpCi0gICAgOzsgRklYTUU6IEtpbmQgb2YgYSBoYWNr
IGhlcmU6IHdlIHVzZSB0aGlzIGZ1bmN0aW9uIGFzIGEgaG9vayBmb3IKLSAgICA7OyBsb2FkaW5n
IHVwIGNvbmZpZ3MgZm9yIHRoZSBsYW5ndWFnZSBmb3IgdGhlIGNvZGUgYmxvY2sgb24tZGVtYW5k
LgotICAgIChsZXQgKChtb2RlIChhbGlzdC1nZXQgbGFuZyBtYXJrZG93bi10cy1jb2RlLWJsb2Nr
LXNvdXJjZS1tb2RlLW1hcCkpKQotICAgICAgOzsgSWYgdGhlcmUncyBubyBzdXBwb3J0ZWQgbW9k
ZSBmb3IgdGhlIGxhbmd1YWdlLCByZXR1cm4gbmlsLAotICAgICAgOzsgd2hpY2ggbWFrZXMgRW1h
Y3Mgc2tpcCB0aGUgY29kZSBibG9jay4KLSAgICAgIChpZiAobm90IChhbmQgbW9kZSAoZmJvdW5k
cCBtb2RlKSkpCi0gICAgICAgICAgbmlsCi0gICAgICAgIDs7IElmIHRoZXJlJ3MgYSBtYWpvciBt
b2RlIGZvciB0aGUgbGFuZ3VhZ2UsIHNldCB1cCB0aGUgY29uZmlnCi0gICAgICAgIDs7IGFuZCBy
ZXR1cm4gdGhlIGxhbmd1YWdlLgotICAgICAgICAod2hlbiAobm90IChtZW1xIGxhbmcgbWFya2Rv
d24tdHMtLWNvbmZpZ3VyZWQtbGFuZ3VhZ2VzKSkKLSAgICAgICAgICAobWFya2Rvd24tdHMtLWFk
ZC1jb25maWctZm9yLW1vZGUgbGFuZyBtb2RlKQotICAgICAgICAgIChwdXNoIGxhbmcgbWFya2Rv
d24tdHMtLWNvbmZpZ3VyZWQtbGFuZ3VhZ2VzKSkKLSAgICAgICAgbGFuZykpKSkKKyAgKGxldCog
KChsYW5nIChpbnRlcm4gKHRyZWVzaXQtbm9kZS10ZXh0IG5vZGUpKSkKKyAgICAgICAgIChtb2Rl
IChtYXJrZG93bi10cy0tY29kZS1ibG9jay1sYW5ndWFnZS1tb2RlIGxhbmcpKQorICAgICAgICAg
KHRzLWxhbmd1YWdlIChhbGlzdC1nZXQgbGFuZyBtYXJrZG93bi10cy0tY29kZS1ibG9jay1sYW5n
dWFnZXMpKQorICAgICAgICAgKG5vbi10cy1sYW5ndWFnZSAoYWxpc3QtZ2V0IGxhbmcgbWFya2Rv
d24tdHMtLWNvZGUtYmxvY2stbm9uLXRzLW1vZGVzKSkpCisgICAgKGNvbmQKKyAgICAgKChmYm91
bmRwIG1vZGUpCisgICAgICAoY29uZAorICAgICAgIDs7IFJldHVybiBrbm93biB0cmVlc2l0IGxh
bmd1YWdlLgorICAgICAgICh0cy1sYW5ndWFnZSB0cy1sYW5ndWFnZSkKKyAgICAgICA7OyBSZXR1
cm4gbmlsIGZvciBrbm93biBub24tdHJlZXNpdCBsYW5ndWFnZSBmb3IgZm9udC1sb2NrLgorICAg
ICAgIChub24tdHMtbGFuZ3VhZ2UgbmlsKQorICAgICAgIDs7IE1hcmtkb3duIGl0c2VsZiBuZWVk
cyB0d28gcGFyc2VycyAobWFya2Rvd24gKworICAgICAgIDs7IG1hcmtkb3duLWlubGluZSksIHNv
IHRyZWVzaXQgZW1iZWRkaW5nICh3aGljaCBjcmVhdGVzIG9ubHkKKyAgICAgICA7OyBvbmUpIGNh
bm5vdCBmdWxseSBmb250aWZ5IGl0LiAgUm91dGUgdGhyb3VnaCB0aGUgbm9uLXRzCisgICAgICAg
OzsgcGF0aCBzbyB0aGUgdGVtcCBidWZmZXIgcnVucyB0aGUgZnVsbCBtb2RlIHdpdGggYm90aAor
ICAgICAgIDs7IHBhcnNlcnMuCisgICAgICAgKChlcSBtb2RlICdtYXJrZG93bi10cy1tb2RlKQor
ICAgICAgICAodW5sZXNzIChhc3NxIGxhbmcgbWFya2Rvd24tdHMtLWNvZGUtYmxvY2stbm9uLXRz
LW1vZGVzKQorICAgICAgICAgIChwdXNoIChjb25zIGxhbmcgbW9kZSkgbWFya2Rvd24tdHMtLWNv
ZGUtYmxvY2stbm9uLXRzLW1vZGVzKSkKKyAgICAgICAgbmlsKQorICAgICAgICh0CisgICAgICAg
IChsZXQqICgoY29uZmlndXJhdGlvbiAobWFya2Rvd24tdHMtLWhhcnZlc3QtbW9kZS10cmVlc2l0
LWNvbmZpZ3VyYXRpb24KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtb2RlKSkKKyAg
ICAgICAgICAgICAgICh0cy1sYW5ndWFnZSAocGxpc3QtZ2V0IGNvbmZpZ3VyYXRpb24gOmxhbmd1
YWdlKSkpCisgICAgICAgICAgKGNvbmQKKyAgICAgICAgICAgKChhbmQgdHMtbGFuZ3VhZ2UKKyAg
ICAgICAgICAgICAgICAgKHBsaXN0LWdldCBjb25maWd1cmF0aW9uIDpmb250LWxvY2spKQorICAg
ICAgICAgICAgKG1hcmtkb3duLXRzLS1jb25maWd1cmUtY3VycmVudC1idWZmZXIgY29uZmlndXJh
dGlvbikKKyAgICAgICAgICAgICh1bmxlc3MgKGFzc3EgbGFuZyBtYXJrZG93bi10cy0tY29kZS1i
bG9jay1sYW5ndWFnZXMpCisgICAgICAgICAgICAgIChwdXNoIChjb25zIGxhbmcgdHMtbGFuZ3Vh
Z2UpIG1hcmtkb3duLXRzLS1jb2RlLWJsb2NrLWxhbmd1YWdlcykpCisgICAgICAgICAgICB0cy1s
YW5ndWFnZSkKKyAgICAgICAgICAgOzsgT3RoZXJ3aXNlLCBjbGFzc2lmeSBtb2RlIGFzIG5vbi10
cmVlLXNpdHRlci4KKyAgICAgICAgICAgKHQKKyAgICAgICAgICAgICh1bmxlc3MgKGFzc3EgbGFu
ZyBtYXJrZG93bi10cy0tY29kZS1ibG9jay1ub24tdHMtbW9kZXMpCisgICAgICAgICAgICAgIChw
dXNoIChjb25zIGxhbmcgbW9kZSkgbWFya2Rvd24tdHMtLWNvZGUtYmxvY2stbm9uLXRzLW1vZGVz
KSkKKyAgICAgICAgICAgIG5pbCkpKSkpKQorICAgICAodCBuaWwpKSkpCisKKzs7OyBDb2RlIGJs
b2NrIG1pbm9yIG1vZGUgc3VwcG9ydCBhbmQgY29kZS1ibG9jayBjb250ZXh0IGNvbW1hbmRzOgor
CisoZGVmdmFyIG1hcmtkb3duLXRzLWNvZGUtYmxvY2stY29tbWFuZHMgJyhpbmRlbnQtZm9yLXRh
Yi1jb21tYW5kCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbGVj
dHJpYy1uZXdsaW5lLWFuZC1tYXliZS1pbmRlbnQKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIG5ld2xpbmUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGNvbW1lbnQtZHdpbQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgY29tbWVudC1saW5lCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBjb21tZW50LW9yLXVuY29tbWVudC1yZWdpb24KKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIG1hcmtkb3duLXRzLS1jb2RlLWJsb2NrLWZpbGwtcGFyYWdy
YXBoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm9nLWZpbGwt
cmVpbmRlbnQtZGVmdW4pCisgICJDb21tYW5kcyB0byBleGVjdXRlIGluIGEgY29kZS1ibG9jayBj
b250ZXh0LgorU2VlIGBtYXJrZG93bi10cy0tcnVuLWNvbW1hbmQtaW4tY29kZS1ibG9jaycuIikK
KworKGRlZnZhciBtYXJrZG93bi10cy1jb2RlLWJsb2NrLXRoaW5nLWNvbW1hbmRzICcoeHJlZi1m
aW5kLWRlZmluaXRpb25zKQorICAiQ29tbWFuZHMgdGhhdCBuZWVkIGEgXCJ0aGluZ1wiIGF0IHBv
aW50IGluIGEgY29kZS1ibG9jayBjb250ZXh0LgorU2VlIGBtYXJrZG93bi10cy0tcnVuLWNvbW1h
bmQtaW4tY29kZS1ibG9jaycuIikKKworKGRlZnZhciBtYXJrZG93bi10cy1jb2RlLWJsb2NrLXJl
Z2lvbi1jb21tYW5kcyAnKGNvbW1lbnQtb3ItdW5jb21tZW50LXJlZ2lvbikKKyAgIkNvbW1hbmRz
IHRoYXQgbmVlZCBhIHJlZ2lvbiBpbiBhIGNvZGUtYmxvY2sgY29udGV4dC4KK1NlZSBgbWFya2Rv
d24tdHMtLXJ1bi1jb21tYW5kLWluLWNvZGUtYmxvY2snLiIpCisKKyhkZWZ1biBtYXJrZG93bi10
cy0tZW5hYmxlLWNvZGUtYmxvY2stbW9kZSAoKQorICAiRW5hYmxlIGBtYXJrZG93bi10cy1jb2Rl
LWJsb2NrLW1vZGUnIHdoZW4gaWYgYSBmZW5jZWQgY29kZSBibG9jay4iCisgIChtYXJrZG93bi10
cy1jb2RlLWJsb2NrLW1vZGUgKGlmIChtYXJrZG93bi10cy1jb2RlLWJsb2NrLWF0LXApIDEgLTEp
KSkKKworOzsgTk9URTogRG8gbm90IGFkZCB0aGlzIGNvbW1hbmQgdG8gYG1hcmtkb3duLXRzLWNv
ZGUtYmxvY2stY29tbWFuZHMnLgorKGRlZnVuIG1hcmtkb3duLXRzLS1jb2RlLWJsb2NrLW5ld2xp
bmUgKCZvcHRpb25hbCBhcmcgaW50ZXJhY3RpdmUpCisgICAiSW5zZXJ0IGEgbmV3bGluZSwgYW5k
IG1vdmUgdG8gbGVmdCBtYXJnaW4gb2YgdGhlIG5ldyBsaW5lLgorV2l0aCBwcmVmaXggYXJndW1l
bnQgQVJHLCBpbnNlcnQgdGhhdCBtYW55IG5ld2xpbmVzLgorCitJZiBgZWxlY3RyaWMtaW5kZW50
LW1vZGUnIGlzIGVuYWJsZWQsIHRoaXMgaW5kZW50cyB0aGUgZmluYWwgbmV3IGxpbmUKK3RoYXQg
aXQgYWRkcywgYW5kIHJlaW5kZW50cyB0aGUgcHJlY2VkaW5nIGxpbmUuICBUbyBqdXN0IGluc2Vy
dAorYSBuZXdsaW5lLCB1c2UgXFxbZWxlY3RyaWMtaW5kZW50LWp1c3QtbmV3bGluZV0uCisKK0lm
IGBhdXRvLWZpbGwtbW9kZScgaXMgZW5hYmxlZCwgdGhpcyBtYXkgY2F1c2UgYXV0b21hdGljIGxp
bmUKK2JyZWFraW5nIG9mIHRoZSBwcmVjZWRpbmcgbGluZS4gIEEgbm9uLW5pbCBBUkcgaW5oaWJp
dHMgdGhpcy4KKworSWYgdmFyaWFibGUgYHVzZS1oYXJkLW5ld2xpbmVzJyBpcyBlbmFibGVkLCB0
aGUgbmV3bGluZSBpcyBtYXJrZWQgd2l0aAordGhlIHRleHQtcHJvcGVydHkgYGhhcmQnLgorCitB
IG5vbi1uaWwgSU5URVJBQ1RJVkUgYXJndW1lbnQgbWVhbnMgdG8gcnVuIHRoZSBgcG9zdC1zZWxm
LWluc2VydC1ob29rJy4iCisgICAoaW50ZXJhY3RpdmUgIipQXG5wIikKKyAgIChpZi1sZXQqICgo
YmxvY2stbW9kZSAobWFya2Rvd24tdHMtY29kZS1ibG9jay1tb2RlLWF0KSkKKyAgICAgICAgICAg
ICAoKGZib3VuZHAgYmxvY2stbW9kZSkpKQorICAgICAgIChtYXJrZG93bi10cy0tcnVuLWNvbW1h
bmQtaW4tY29kZS1ibG9jayBibG9jay1tb2RlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICMnbmV3bGluZQorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBhcmcKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgaW50ZXJhY3RpdmUpKSkKKworKGRlZnVuIG1hcmtkb3duLXRzLS1jb2Rl
LWJsb2NrLWZpbGwtcGFyYWdyYXBoICgmb3B0aW9uYWwganVzdGlmeSkKKyAgIlJlZmlsbCBvciBy
ZWluZGVudCB0aGUgbWFya2Rvd24gY29udGVudCB0aGF0IGNvbnRhaW5zIHBvaW50LgorSWYgdGhl
IHBvaW50IGlzIGluIGEgc3RyaW5nIG9yIGEgY29tbWVudCwgZmlsbCB0aGUgcGFyYWdyYXBoIHRo
YXQKK2NvbnRhaW5zIHBvaW50IG9yIGZvbGxvd3MgcG9pbnQuCisKK090aGVyd2lzZSwgcmVpbmRl
bnQgdGhlIGZ1bmN0aW9uIGRlZmluaXRpb24gdGhhdCBjb250YWlucyBwb2ludCBvcgorZm9sbG93
cyBwb2ludC4KKworSWYgSlVTVElGWSBpcyBub24tbmlsIChpbnRlcmFjdGl2ZWx5LCB3aXRoIHBy
ZWZpeCBhcmd1bWVudCksIGp1c3RpZnkgYXMKK3dlbGwuIgorICAoaW50ZXJhY3RpdmUgIlAiKQor
ICAoY29uZCAoKGRlcml2ZWQtbW9kZS1wICdwcm9nLW1vZGUpCisgICAgICAgICAoY2FsbC1pbnRl
cmFjdGl2ZWx5ICMncHJvZy1maWxsLXJlaW5kZW50LWRlZnVuIGp1c3RpZnkpKQorICAgICAgICAo
dAorICAgICAgICAgKGNhbGwtaW50ZXJhY3RpdmVseSAjJ2ZpbGwtcGFyYWdyYXBoIGp1c3RpZnkp
KSkpCisKKzs7IE5PVEU6IERvIG5vdCBhZGQgdGhpcyBjb21tYW5kIHRvIGBtYXJrZG93bi10cy1j
b2RlLWJsb2NrLWNvbW1hbmRzJy4KKyhkZWZ1biBtYXJrZG93bi10cy0tY29kZS1ibG9jay14cmVm
LWZpbmQtZGVmaW5pdGlvbnMgKCZyZXN0IGFyZ3MpCisgICJIZWxwZXIgY29tbWFuZCBmb3IgYHhy
ZWYtZmluZC1kZWZpbml0aW9ucycgaW4gYSBjb2RlLWJsb2NrIGNvbnRleHQuCitGaW5kIHRoaW5n
IGF0IHBvaW50LgorQWRqdXN0IHRoZSByZWZlcmVuY2VzIG9uIHRoZSB4cmVmIHN0YWNrIHRvIHRo
ZSBiYXNlIGJ1ZmZlci4KK1Bhc3MgdGhyb3VnaCBBUkdTIGlmIG5vdCBpbiBhIGNvZGUgYmxvY2sg
d2l0aCBhbiBhdmFpbGFibGUgbW9kZS4iCisgIChpbnRlcmFjdGl2ZSkKKyAgKGlmLWxldCogKChi
bG9jay1tb2RlIChtYXJrZG93bi10cy1jb2RlLWJsb2NrLW1vZGUtYXQpKQorICAgICAgICAgICAg
KChmYm91bmRwIGJsb2NrLW1vZGUpKSkKKyAgICAgIChjb25kaXRpb24tY2FzZSBlcnIKKyAgICAg
ICAgICAodW53aW5kLXByb3RlY3QKKyAgICAgICAgICAgICAgKHByb2duCisgICAgICAgICAgICAg
ICAgOzsgUmVjb3JkIGEgcGxhY2Vob2xkZXIgeHJlZiBtYXJrZXIgaW4gdGhlIGJhc2UgYnVmZmVy
LiAgVGhpcworICAgICAgICAgICAgICAgIDs7IHdpbGwgYmUgcmV0YWluZWQgaWYgdGhlIGNvbW1h
bmQgc3VjY2VlZHMgdG8gcHVzaCBhIG1hcmtlciBpbgorICAgICAgICAgICAgICAgIDs7IHRoZSBp
bmRpcmVjdCBidWZmZXIgd2hpY2ggd2Ugd2lsbCBwb3AuCisgICAgICAgICAgICAgICAgKHhyZWYt
cHVzaC1tYXJrZXItc3RhY2spCisgICAgICAgICAgICAgICAgOzsgYHhyZWYtZmluZC1kZWZpbml0
aW9ucycgaXMgYSB0aGluZyBjb21tYW5kIGluCisgICAgICAgICAgICAgICAgOzsgYG1hcmtkb3du
LXRzLWNvZGUtYmxvY2stdGhpbmctY29tbWFuZHMnLgorICAgICAgICAgICAgICAgIChtYXJrZG93
bi10cy0tcnVuLWNvbW1hbmQtaW4tY29kZS1ibG9jayBibG9jay1tb2RlCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMneHJlZi1maW5kLWRl
ZmluaXRpb25zCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGFyZ3MpKQorICAgICAgICAgICAgOzsgUG9wIHRoZSB0b3AgeHJlZiBtYXJrZXIu
ICBJZiB0aGUgY29tbWFuZCBzdWNjZWVkZWQsIHRoZQorICAgICAgICAgICAgOzsgdG9wIG1hcmtl
ciB3aWxsIGJlIHRoZSBpbmRpcmVjdCBidWZmZXIgbWFya2VyLiAgSWYgaXQKKyAgICAgICAgICAg
IDs7IGZhaWxlZCwgd2UnbGwgcG9wIHRoZSBwbGFjZWhvbGRlciB3aGljaCBpcyBub3cgb2Ygbm8K
KyAgICAgICAgICAgIDs7IHZhbHVlPAorICAgICAgICAgICAgOzsgVE9ETzogUHJvcG9zZSBhbiBg
eHJlZicgcG9wIGZ1bmN0aW9uIHRoYXQgZG9lc24ndCAiZ28KKyAgICAgICAgICAgIDs7IGJhY2si
LgorICAgICAgICAgICAgKGxldCAoKGhpc3RvcnkgKHhyZWYtLWdldC1oaXN0b3J5KSkpCisgICAg
ICAgICAgICAgICh1bmxlc3MgKG51bGwgKGNhciBoaXN0b3J5KSkKKyAgICAgICAgICAgICAgICAo
cG9wIChjYXIgaGlzdG9yeSkpKSkpCisgICAgICAgIChlcnJvcgorICAgICAgICAgOzsgUHJvcGFn
YXRlIHRoZSBzaWduYWwuCisgICAgICAgICAoc2lnbmFsIChjYXIgZXJyKSAoY2RyIGVycikpKSkK
KyAgICA7OyBOb3QgaW4gYSBjb2RlIGJsb2NrIGNvbnRleHQuICBUaGlzIHNob3VsZCByZWFsbHkg
bmV2ZXIgaGFwcGVuLgorICAgIChmdW5jYWxsLWludGVyYWN0aXZlbHkgIyd4cmVmLWZpbmQtZGVm
aW5pdGlvbnMgYXJncykpKQorCisoZGVmdW4gbWFya2Rvd24tdHMtLW1heWJlLXJ1bi1jb21tYW5k
LWluLWNvZGUtYmxvY2sgKCkKKyAgIkhlbHBlciBmdW5jdGlvbiB0byB3cmFwIGEgY29tbWFuZCBm
b3IgYSBjb2RlLWJsb2NrIGNvbnRleHQuCitJZiBgdGhpcy1jb21tYW5kJyBpcyBhIG1lbWJlciBv
ZiBgbWFya2Rvd24tdHMtY29kZS1ibG9jay1jb21tYW5kcycgYW5kCitwb2ludCBpcyB3aXRoaW4g
YSBjb2RlIGJsb2NrIHdpdGggYW4gYXZhaWxhYmxlIG1vZGUsIGl0IHdpbGwgcnVuIGluIHRoYXQK
K2NvZGUgYmxvY2sncyBtb2RlIGluIGEgYnVmZmVyIG5hcnJvd2VkIHRvIGl0cyBjb250ZW50LiAg
T3RoZXJ3aXNlLCB0aGUKK2NvbW1hbmQgd2lsbCBydW4gaW4gdGhlIGNvbnRleHQgb2YgdGhlIGBt
YXJrZG93bi10cy1tb2RlJyBidWZmZXIuIgorICAod2hlbiAobWVtcSB0aGlzLWNvbW1hbmQgbWFy
a2Rvd24tdHMtY29kZS1ibG9jay1jb21tYW5kcykKKyAgICAod2hlbi1sZXQqICgoY29tbWFuZCB0
aGlzLWNvbW1hbmQpCisgICAgICAgICAgICAgICAgKGJsb2NrLW1vZGUgKG1hcmtkb3duLXRzLWNv
ZGUtYmxvY2stbW9kZS1hdCkpCisgICAgICAgICAgICAgICAgKChmYm91bmRwIGJsb2NrLW1vZGUp
KSkKKyAgICAgIChzZXRxIHRoaXMtY29tbWFuZCAobGFtYmRhICgmcmVzdCBhcmdzKQorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgKGludGVyYWN0aXZlKQorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgKGFwcGx5ICMnbWFya2Rvd24tdHMtLXJ1bi1jb21tYW5kLWluLWNvZGUtYmxvY2sKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBibG9jay1tb2RlCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgY29tbWFuZAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGFyZ3MpKSkpKSkKKworKGRlZnVuIG1hcmtkb3duLXRzLS1ydW4tY29tbWFuZC1pbi1j
b2RlLWJsb2NrIChibG9jay1tb2RlIGNvbW1hbmQgJnJlc3QgYXJncykKKyAgIlJ1biBDT01NQU5E
IGluIEJMT0NLLU1PREUuCitBUkdTIGFyZSBjYXB0dXJlZCBieSBgbWFya2Rvd24tdHMtLW1heWJl
LXJ1bi1jb21tYW5kLWluLWNvZGUtYmxvY2snLiIKKyAgKHdoZW4tbGV0KiAoKGJlZyAoZ2V0LWNo
YXItcHJvcGVydHkgKHBvaW50KSAnbWFya2Rvd24tdHMtY29kZS1iZWctbWFya2VyKSkKKyAgICAg
ICAgICAgICAgKGVuZCAoZ2V0LWNoYXItcHJvcGVydHkgKHBvaW50KSAnbWFya2Rvd24tdHMtY29k
ZS1lbmQtbWFya2VyKSkpCisgICAgKGxldCAoKHJlZ2lvbi1iZWcgKHVzZS1yZWdpb24tYmVnaW5u
aW5nKSkKKyAgICAgICAgICAocmVnaW9uLWVuZCAodXNlLXJlZ2lvbi1lbmQpKSkKKyAgICAgIDs7
IFVzZSBhIG5vbi1jbG9uZWQgaW5kaXJlY3QgYnVmZmVyIHRvIGF2b2lkIGNoYW5naW5nIG1ham9y
IG1vZGUKKyAgICAgIDs7IGluIHRoZSBwYXJlbnQgYnVmZmVyICh3aGljaCB3b3VsZCB0cmFzaCBs
b2NhbCB2YXJpYWJsZXMpLiAgVGhpcworICAgICAgOzsgYWxzbyBlbnN1cmVzIHRyZWVzaXQgc2V0
dXAgaXMgbm90IGNvcGllZCBvdmVyIG9yIGl0IGdldHMKKyAgICAgIDs7IGNvbmZ1c2VkLgorICAg
ICAgKGxldCAoKGluZGlyZWN0LWJ1ZmZlciAobWFrZS1pbmRpcmVjdC1idWZmZXIKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIChjdXJyZW50LWJ1ZmZlcikKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIChnZW5lcmF0ZS1uZXctYnVmZmVyLW5hbWUgKGJ1ZmZlci1uYW1lKSkKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5pbCAnaW5oaWJpdC1idWZmZXItaG9va3MpKQor
ICAgICAgICAgICAgKGluZGlyZWN0LWRlYWN0aXZhdGUtbWFyaykKKyAgICAgICAgICAgIChwb2lu
dC1kZWx0YSAwKSkKKyAgICAgICAgKHVud2luZC1wcm90ZWN0CisgICAgICAgICAgICAod2l0aC1j
dXJyZW50LWJ1ZmZlciBpbmRpcmVjdC1idWZmZXIKKyAgICAgICAgICAgICAgOzsgQ29weSB0aGUg
YmFzZSBidWZmZXIncyByZWdpb24sIGlmIHRoZXJlIGlzIG9uZS4KKyAgICAgICAgICAgICAgKHdo
ZW4gKGFuZCByZWdpb24tYmVnIHJlZ2lvbi1lbmQpCisgICAgICAgICAgICAgICAgKHNldC1tYXJr
IChpZiAoPCAocG9pbnQpIHJlZ2lvbi1lbmQpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICByZWdpb24tZW5kCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVnaW9uLWJlZykpCisg
ICAgICAgICAgICAgICAgKGFjdGl2YXRlLW1hcmspKQorICAgICAgICAgICAgICAoZGVsYXktbW9k
ZS1ob29rcworICAgICAgICAgICAgICAgIChsZXQgKChtYXJrZG93bi10cy0tc2V0LXVwLWlubGlu
ZQorICAgICAgICAgICAgICAgICAgICAgICAoZXEgYmxvY2stbW9kZSAnbWFya2Rvd24tdHMtbW9k
ZSkpKQorICAgICAgICAgICAgICAgICAgKGZ1bmNhbGwgYmxvY2stbW9kZSkpCisgICAgICAgICAg
ICAgICAgKHJlYWQtb25seS1tb2RlIC0xKQorICAgICAgICAgICAgICAgIChuYXJyb3ctdG8tcmVn
aW9uIGJlZyBlbmQpCisgICAgICAgICAgICAgICAgKGxldCAoKHBvaW50IChwb2ludCkpCisgICAg
ICAgICAgICAgICAgICAgICAgKHBvaW50LW1hcmtlciAocG9pbnQtbWFya2VyKSkpCisgICAgICAg
ICAgICAgICAgICAgIChjb25kCisgICAgICAgICAgICAgICAgICAgICAoKG1lbXEgY29tbWFuZCBt
YXJrZG93bi10cy1jb2RlLWJsb2NrLXRoaW5nLWNvbW1hbmRzKQorICAgICAgICAgICAgICAgICAg
ICAgICh3aGVuLWxldCogKCh0aGluZyAodGhpbmctYXQtcG9pbnQgJ3N5bWJvbCkpKQorICAgICAg
ICAgICAgICAgICAgICAgICAgKGZ1bmNhbGwtaW50ZXJhY3RpdmVseSBjb21tYW5kIHRoaW5nKSkp
CisgICAgICAgICAgICAgICAgICAgICAoKG1lbXEgY29tbWFuZCBtYXJrZG93bi10cy1jb2RlLWJs
b2NrLXJlZ2lvbi1jb21tYW5kcykKKyAgICAgICAgICAgICAgICAgICAgICAod2hlbiAoYW5kIHJl
Z2lvbi1iZWcgcmVnaW9uLWVuZCkKKyAgICAgICAgICAgICAgICAgICAgICAgIChhcHBseSAjJ2Z1
bmNhbGwtaW50ZXJhY3RpdmVseSBjb21tYW5kCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgcmVnaW9uLWJlZyByZWdpb24tZW5kIGFyZ3MpKSkKKyAgICAgICAgICAgICAgICAgICAgICgo
emVyb3AgKGNkciAoZnVuYy1hcml0eSBjb21tYW5kKSkpCisgICAgICAgICAgICAgICAgICAgICAg
KGZ1bmNhbGwtaW50ZXJhY3RpdmVseSBjb21tYW5kKSkKKyAgICAgICAgICAgICAgICAgICAgICh0
CisgICAgICAgICAgICAgICAgICAgICAgKGNhbGwtaW50ZXJhY3RpdmVseSBjb21tYW5kKSkpCisg
ICAgICAgICAgICAgICAgICAgIChzZXRxIGluZGlyZWN0LWRlYWN0aXZhdGUtbWFyayBkZWFjdGl2
YXRlLW1hcmspCisgICAgICAgICAgICAgICAgICAgIDs7IFRoZSBoZXVyaXN0aWMgb2Ygd2hlbiB0
byBtb3ZlIHBvaW50LgorICAgICAgICAgICAgICAgICAgICA7OyBkZWFjdGl2YXRlLW1hcmsgcChk
KT1wbShkKSBkZWx0YQorICAgICAgICAgICAgICAgICAgICA7OyBuaWwgICAgICAgICAgICAgbm8g
ICAgICAgICAwICAgOyBjbGFzcyBBCisgICAgICAgICAgICAgICAgICAgIDs7IG5pbCAgICAgICAg
ICAgICB5ZXMgICAgICAgIHllcyA7IGNsYXNzIEIKKyAgICAgICAgICAgICAgICAgICAgOzsgdCAg
ICAgICAgICAgICAgIG5vICAgICAgICAgMCAgIDsgY2xhc3MgQworICAgICAgICAgICAgICAgICAg
ICA7OyB0ICAgICAgICAgICAgICAgeWVzICAgICAgICB5ZXMgOyBjbGFzcyBECisgICAgICAgICAg
ICAgICAgICAgIDs7IEE6IG5pbAorICAgICAgICAgICAgICAgICAgICA7OyBCOiBpbmRlbnQtZm9y
LXRhYi1jb21tYW5kCisgICAgICAgICAgICAgICAgICAgIDs7IEM6IGNvbW1lbnQtb3ItdW5jb21t
ZW50LXJlZ2lvbgorICAgICAgICAgICAgICAgICAgICA7OyBEOiBjb21tZW50LWR3aW0gbmV3bGlu
ZSBlbGVjdHJpYy1uZXdsaW5lLWFuZC1tYXliZS1pbmRlbnQKKyAgICAgICAgICAgICAgICAgICAg
OzsgICAgbWFya2Rvd24tdHMtLWNvZGUtYmxvY2stZmlsbC1wYXJhZ3JhcGgKKyAgICAgICAgICAg
ICAgICAgIChzZXRxIHBvaW50LWRlbHRhICgtIChwb2ludCkgcG9pbnQpKQorICAgICAgICAgICAg
ICAgICAgKHdoZW4gKG5vdCAoZXEgcG9pbnQtZGVsdGEgKC0gKHBvaW50LW1hcmtlcikgcG9pbnQt
bWFya2VyKSkpCisgICAgICAgICAgICAgICAgICAgIChzZXRxIHBvaW50LWRlbHRhIDApKSkpKQor
ICAgICAgICAgIChraWxsLWJ1ZmZlciBpbmRpcmVjdC1idWZmZXIpCisgICAgICAgICAgOzsgUHJv
cGFnYXRlIG1hcmsgZGVhY3RpdmF0aW9uIHRvIHRoZSBiYXNlIGJ1ZmZlci4KKyAgICAgICAgICAo
c2V0cSBkZWFjdGl2YXRlLW1hcmsgaW5kaXJlY3QtZGVhY3RpdmF0ZS1tYXJrKQorICAgICAgICAg
IDs7IE1vdmUgYmFzZSBidWZmZXIgcG9pbnQgaWYgaXQgbW92ZWQgaW4gdGhlIGluZGlyZWN0IGJ1
ZmZlci4KKyAgICAgICAgICAoZ290by1jaGFyICgrIChwb2ludCkgcG9pbnQtZGVsdGEpKQorICAg
ICAgICAgIDs7IFJlY29yZCB0aGUgb3JpZ2luYWwgY29tbWFuZC4KKyAgICAgICAgICAoc2V0cSB0
aGlzLWNvbW1hbmQgY29tbWFuZCkKKyAgICAgICAgICA7OyBNYWtlIHN1cmUgdGhlIG9yaWdpbmF0
aW5nIHJlZ2lvbiBpcyByZWZvbnRpZmllZC4KKyAgICAgICAgICAoZm9udC1sb2NrLWZsdXNoIGJl
ZyBlbmQpKSkpKSkKKworKGRlZnVuIG1hcmtkb3duLXRzLS1maW5kLWNvZGUtYmxvY2stZGVsaW1p
dGVyIChwb3MgJm9wdGlvbmFsIGJhY2t3YXJkKQorICAiUmV0dXJuIHRoZSBuZXh0IG9yIHByZXZp
b3VzIGZlbmNlZF9jb2RlX2Jsb2NrX2RlbGltaXRlciBub2RlLCBvciBuaWwuCitTZWFyY2ggc3Rh
cnRpbmcgYXQgUE9TLgorU2VhcmNoIGJhY2t3YXJkIGlmIEJBQ0tXQVJEIGlzIG5vbi1uaWwuIgor
ICAodHJlZXNpdC1zZWFyY2gtZm9yd2FyZCAodHJlZXNpdC1ub2RlLWF0IHBvcyAnbWFya2Rvd24p
CisgICAgICAgICAgICAgICAgICAgICAgICAgIChsYW1iZGEgKG5vZGUpCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgKHN0cmluZz0gKHRyZWVzaXQtbm9kZS10eXBlIG5vZGUpCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImZlbmNlZF9jb2RlX2Jsb2NrX2RlbGltaXRl
ciIpKQorICAgICAgICAgICAgICAgICAgICAgICAgICBiYWNrd2FyZCkpCisKKyhkZWZ1biBtYXJr
ZG93bi10cy0tZmluZC1uZXh0LWNvZGUtYmxvY2stZGVsaW1pdGVyICgmb3B0aW9uYWwKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwb3MgYmFja3dh
cmQgcmVtYWluKQorICAiUmV0dXJuIHRoZSBuZXh0IG9yIHByZXZpb3VzIGZlbmNlZF9jb2RlX2Js
b2NrX2RlbGltaXRlciBub2RlLCBvciBuaWwuCitTZWFyY2ggc3RhcnRpbmcgYXQgUE9TIG9yIGBw
b2ludCcsIGlmIFBPUyBpcyBuaWwuCitTZWFyY2ggYmFja3dhcmQgaWYgQkFDS1dBUkQgaXMgbm9u
LW5pbC4KK0lmIFJFTUFJTiBpcyBub24tbmlsLCBtb3ZlIHRvIHRoZSB0b3Agb3IgYm90dG9tIG9m
IHRoZSBjdXJyZW50IGNvZGUKK2Jsb2NrLCBpZiBpbiBvbmUuIgorICAoc2V0cSBwb3MgKG9yIHBv
cyAocG9pbnQpKSkKKyAgKGFuZC1sZXQqICgobm9kZSAobWFya2Rvd24tdHMtLWZpbmQtY29kZS1i
bG9jay1kZWxpbWl0ZXIgcG9zIGJhY2t3YXJkKSkpCisgICAgKGxldCAoKGluLWJsb2NrIChtYXJr
ZG93bi10cy1jb2RlLWJsb2NrLWF0LXAgcG9zKSkpCisgICAgICAoY29uZAorICAgICAgICgoYW5k
IHJlbWFpbiBpbi1ibG9jaykKKyAgICAgICAgbm9kZSkKKyAgICAgICAocmVtYWluCisgICAgICAg
IG5pbCkKKyAgICAgICAodAorICAgICAgICAod2hpbGUgKGFuZCBub2RlCisgICAgICAgICAgICAg
ICAgICAgIDs7IElmIGJhY2t3YXJkLCBza2lwIHRoZSBjdXJyZW50IGJsb2NrJ3MKKyAgICAgICAg
ICAgICAgICAgICAgOzsgc3RhcnRpbmcgZGVsaW1pdGVyLgorICAgICAgICAgICAgICAgICAgICAo
b3IgKGFuZCBiYWNrd2FyZCBpbi1ibG9jayAodHJlZXNpdC1ub2RlLW5leHQtc2libGluZyBub2Rl
KSkKKyAgICAgICAgICAgICAgICAgICAgICAgIChub3QgKHRyZWVzaXQtbm9kZS1uZXh0LXNpYmxp
bmcgbm9kZSkpKSkKKyAgICAgICAgICAoc2V0cSBpbi1ibG9jayAobWFya2Rvd24tdHMtY29kZS1i
bG9jay1hdC1wIHBvcykpCisgICAgICAgICAgKHNldHEgcG9zIChpZiBiYWNrd2FyZAorICAgICAg
ICAgICAgICAgICAgICAgICAgKHRyZWVzaXQtbm9kZS1zdGFydCBub2RlKQorICAgICAgICAgICAg
ICAgICAgICAgICh0cmVlc2l0LW5vZGUtZW5kIG5vZGUpKSkKKyAgICAgICAgICAoc2V0cSBub2Rl
IChtYXJrZG93bi10cy0tZmluZC1jb2RlLWJsb2NrLWRlbGltaXRlciBwb3MgYmFja3dhcmQpKSkK
KyAgICAgICAgbm9kZSkpKSkpCisKKyhkZWZ1biBtYXJrZG93bi10cy1tb3ZlLXRvLW5leHQtY29k
ZS1ibG9jayAoYXJnKQorICAiTW92ZSBwb2ludCB0byB0aGUgc3RhcnQgb2YgdGhlIG5leHQgY29k
ZSBibG9jay4KK1dpdGggdGhlIHByZWZpeCBhcmd1bWVudCBBUkcsIHJlbWFpbiB3aXRoaW4gdGhl
IGN1cnJlbnQgY29kZSBibG9jay4iCisgIChpbnRlcmFjdGl2ZSAiUCIpCisgICh3aGVuLWxldCog
KChub2RlCisgICAgICAgICAgICAgICAobWFya2Rvd24tdHMtLWZpbmQtbmV4dC1jb2RlLWJsb2Nr
LWRlbGltaXRlciBuaWwgbmlsIGFyZykpKQorICAgIChnb3RvLWNoYXIgKHRyZWVzaXQtbm9kZS1z
dGFydCBub2RlKSkpKQorCisoZGVmdW4gbWFya2Rvd24tdHMtbW92ZS10by1wcmV2aW91cy1jb2Rl
LWJsb2NrIChhcmcpCisgICJNb3ZlIHBvaW50IHRvIHRoZSBzdGFydCBvZiB0aGUgcHJldmlvdXMg
Y29kZSBibG9jay4KK1dpdGggdGhlIHByZWZpeCBhcmd1bWVudCBBUkcsIHJlbWFpbiB3aXRoaW4g
dGhlIGN1cnJlbnQgY29kZSBibG9jay4iCisgIChpbnRlcmFjdGl2ZSAiUCIpCisgICh3aGVuLWxl
dCogKChub2RlCisgICAgICAgICAgICAgICAobWFya2Rvd24tdHMtLWZpbmQtbmV4dC1jb2RlLWJs
b2NrLWRlbGltaXRlciBuaWwgJ2JhY2t3YXJkIGFyZykpKQorICAgIChnb3RvLWNoYXIgKHRyZWVz
aXQtbm9kZS1zdGFydCBub2RlKSkpKQorCis7OzsgSGVscGVyczoKKworKGRlZnVuIG1hcmtkb3du
LXRzLS1vdXRsaW5lLWludmlzaWJsZS1wIChwb3MpCisgICJSZXR1cm4gbm9uLW5pbCBpZiBQT1Mg
aXMgaW5zaWRlIGFuIG91dGxpbmUtZm9sZGVkIHJlZ2lvbi4iCisgIChjbC1zb21lIChsYW1iZGEg
KG92KSAoZXEgKG92ZXJsYXktZ2V0IG92ICdpbnZpc2libGUpICdvdXRsaW5lKSkKKyAgICAgICAg
ICAgKG92ZXJsYXlzLWF0IHBvcykpKQogCiAoZGVmdW4gbWFya2Rvd24tdHMtLXJhbmdlLXNldHRp
bmdzICgpCiAgICJSZXR1cm4gcmFuZ2Ugc2V0dGluZ3MgZm9yIGBtYXJrZG93bi10cy1tb2RlJy4i
CiAgICh0cmVlc2l0LXJhbmdlLXJ1bGVzCiAgICA6ZW1iZWQgJ21hcmtkb3duLWlubGluZQogICAg
Omhvc3QgJ21hcmtkb3duCi0gICA6cmFuZ2UtZm4gIyd0cmVlc2l0LXJhbmdlLWZuLWV4Y2x1ZGUt
Y2hpbGRyZW4KICAgICcoKGlubGluZSkgQG1hcmtkb3duLWlubGluZSkKIAotICAgOmVtYmVkICMn
bWFya2Rvd24tdHMtLWNvbnZlcnQtY29kZS1ibG9jay1sYW5ndWFnZQorICAgOmVtYmVkICMnbWFy
a2Rvd24tdHMtLWNvZGUtYmxvY2stdHMtbGFuZ3VhZ2UKICAgIDpob3N0ICdtYXJrZG93bgogICAg
OmxvY2FsIHQKICAgICcoKGZlbmNlZF9jb2RlX2Jsb2NrIChpbmZvX3N0cmluZyAobGFuZ3VhZ2Up
IEBsYW5ndWFnZSkKICAgICAgICAgICAgICAgICAgICAgICAgIChjb2RlX2ZlbmNlX2NvbnRlbnQp
IEBjb250ZW50KSkpKQogCisoZGVmdW4gbWFya2Rvd24tdHMtLXJlbW92ZS1pbWFnZS1vdmVybGF5
cyAoKQorICAiUmVtb3ZlIGFsbCBpbmxpbmUgaW1hZ2Ugb3ZlcmxheXMgZnJvbSB0aGUgY3VycmVu
dCBidWZmZXIuIgorICAoZG9saXN0IChvdiAob3ZlcmxheXMtaW4gKHBvaW50LW1pbikgKHBvaW50
LW1heCkpKQorICAgICh3aGVuIChvdmVybGF5LWdldCBvdiAnbWFya2Rvd24tdHMtaW1hZ2UpCisg
ICAgICAoZGVsZXRlLW92ZXJsYXkgb3YpKSkpCisKKyhkZWZ1biBtYXJrZG93bi10cy0tb3V0bGlu
ZS12aWV3LWNoYW5nZSAoKQorICAiVXBkYXRlIGltYWdlIG92ZXJsYXlzIGFmdGVyIG91dGxpbmUg
Zm9sZC91bmZvbGQuCitSZW1vdmVzIGltYWdlIG92ZXJsYXlzIGluIGZvbGRlZCByZWdpb25zIGFu
ZCB0cmlnZ2VycworcmVmb250aWZpY2F0aW9uIHNvIHRoYXQgaW1hZ2VzIGluIHVuZm9sZGVkIHJl
Z2lvbnMgYXJlIHJlY3JlYXRlZC4iCisgICh3aGVuIG1hcmtkb3duLXRzLWlubGluZS1pbWFnZXMK
KyAgICAobWFya2Rvd24tdHMtLXJlbW92ZS1pbWFnZS1vdmVybGF5cykKKyAgICAoZm9udC1sb2Nr
LWZsdXNoKSkpCisKIChkZWZ1biBtYXJrZG93bi10cy0tc2V0LWhpZGUtbWFya3VwICh2YWx1ZSkK
ICAgIlNldCBoaWRpbmcgb2YgTWFya2Rvd24gbWFya3VwIGRlbGltaXRlcnMgaW4gdGhlIGN1cnJl
bnQgYnVmZmVyLgogVkFMVUUgbm9uLW5pbCBoaWRlcyBtYXJrdXAsIG5pbCBzaG93cyBpdC4iCiAg
IChpZiB2YWx1ZQogICAgICAgKGFkZC10by1pbnZpc2liaWxpdHktc3BlYyAnbWFya2Rvd24tdHMt
LW1hcmt1cCkKICAgICAocmVtb3ZlLWZyb20taW52aXNpYmlsaXR5LXNwZWMgJ21hcmtkb3duLXRz
LS1tYXJrdXApKQorICAod2hlbiBtYXJrZG93bi10cy1pbmxpbmUtaW1hZ2VzCisgICAgKG1hcmtk
b3duLXRzLS1yZW1vdmUtaW1hZ2Utb3ZlcmxheXMpKQogICAoZm9udC1sb2NrLWZsdXNoKSkKIAog
KGRlZnVuIG1hcmtkb3duLXRzLXRvZ2dsZS1oaWRlLW1hcmt1cCAoKQpAQCAtMzU2LDEyMiArMjc1
OCw1MzAgQEAgbWFya2Rvd24tdHMtdG9nZ2xlLWhpZGUtbWFya3VwCiAgIChzZXRxIG1hcmtkb3du
LXRzLWhpZGUtbWFya3VwIChub3QgbWFya2Rvd24tdHMtaGlkZS1tYXJrdXApKQogICAobWFya2Rv
d24tdHMtLXNldC1oaWRlLW1hcmt1cCBtYXJrZG93bi10cy1oaWRlLW1hcmt1cCkpCiAKKyhkZWZ1
biBtYXJrZG93bi10cy0tc2V0LWlubGluZS1pbWFnZXMgKHZhbHVlKQorICAiU2V0IGRpc3BsYXkg
b2YgaW5saW5lIGltYWdlcyBpbiB0aGUgY3VycmVudCBidWZmZXIuCitWQUxVRSBub24tbmlsIGRp
c3BsYXlzIGltYWdlcywgbmlsIHJlbW92ZXMgdGhlbS4iCisgIChpZiB2YWx1ZQorICAgICAgKHRy
ZWVzaXQtZm9udC1sb2NrLXJlY29tcHV0ZS1mZWF0dXJlcyAnKGltYWdlLXByZXZpZXcpKQorICAg
ICh0cmVlc2l0LWZvbnQtbG9jay1yZWNvbXB1dGUtZmVhdHVyZXMgbmlsICcoaW1hZ2UtcHJldmll
dykpKQorICAobWFya2Rvd24tdHMtLXJlbW92ZS1pbWFnZS1vdmVybGF5cykKKyAgKGZvbnQtbG9j
ay1mbHVzaCkpCiAKLTs7OyBNYWpvciBtb2RlCi0KLShkZWZ1biBtYXJrZG93bi10cy1zZXR1cCAo
KQotICAiU2V0dXAgdHJlZXNpdCBmb3IgYG1hcmtkb3duLXRzLW1vZGUnLiIKLSAgKG1ha2UtbG9j
YWwtdmFyaWFibGUgJ21hcmtkb3duLXRzLWhpZGUtbWFya3VwKQorKGRlZnVuIG1hcmtkb3duLXRz
LXRvZ2dsZS1pbmxpbmUtaW1hZ2VzICgpCisgICJUb2dnbGUgZGlzcGxheSBvZiBpbmxpbmUgaW1h
Z2VzIGluIHRoZSBjdXJyZW50IGJ1ZmZlci4iCisgIChpbnRlcmFjdGl2ZSkKKyAgKHNldHEgbWFy
a2Rvd24tdHMtaW5saW5lLWltYWdlcyAobm90IG1hcmtkb3duLXRzLWlubGluZS1pbWFnZXMpKQor
ICAobWFya2Rvd24tdHMtLXNldC1pbmxpbmUtaW1hZ2VzIG1hcmtkb3duLXRzLWlubGluZS1pbWFn
ZXMpCisgIChtZXNzYWdlICJJbmxpbmUgaW1hZ2VzICVzIiAoaWYgbWFya2Rvd24tdHMtaW5saW5l
LWltYWdlcyAiZW5hYmxlZCIgImRpc2FibGVkIikpKQorCis7OzsgRW1waGFzaXM6CisKKyhkZWZ2
YXIgbWFya2Rvd24tdHMtZW1waGFzaXMtYWxpc3QKKyAgJygoP2IgLiAiKioiKQorICAgICg/QiAu
ICJfXyIpCisgICAgKD9pIC4gIioiKQorICAgICg/SSAuICJfIikKKyAgICAoP3MgLiAifn4iKQor
ICAgICg/YyAuICJgIikKKyAgICAoP2EgLiAiKioqIikpCisgICJBbGlzdCBvZiBlbXBoYXNpcyBt
YXJrZXJzIGZvciBgbWFya2Rvd24tdHMtZW1waGFzaXplJy4KK0VhY2ggZW50cnkgaXMgKEtFWSAu
IE1BUktFUikgd2hlcmUgS0VZIGlzIGEgY2hhcmFjdGVyIChub3QgYSBzdHJpbmcpIGFuZAorTUFS
S0VSIGlzIHRoZSBNYXJrZG93biBlbXBoYXNpemVkIHRleHQgcHJlZml4L3N1ZmZpeC4iKQorCiso
ZGVmdW4gbWFya2Rvd24tdHMtLWVtcGhhc2lzLW5vZGUtYXQtcG9pbnQgKCkKKyAgIlJldHVybiB0
aGUgZW1waGFzaXMgbm9kZSBhdCBwb2ludCwgb3IgbmlsLgorRmluZHMgdGhlIGlubmVybW9zdCBg
ZW1waGFzaXMnLCBgc3Ryb25nX2VtcGhhc2lzJywKK2BzdHJpa2V0aHJvdWdoJywgb3IgYGNvZGVf
c3Bhbicgbm9kZS4iCisgICh3aGVuLWxldCogKChub2RlICh0cmVlc2l0LW5vZGUtYXQgKHBvaW50
KSAnbWFya2Rvd24taW5saW5lKSkpCisgICAgKHRyZWVzaXQtcGFyZW50LXVudGlsCisgICAgIG5v
ZGUgKGxhbWJkYSAobikKKyAgICAgICAgICAgIChtZW1iZXIgKHRyZWVzaXQtbm9kZS10eXBlIG4p
CisgICAgICAgICAgICAgICAgICAgICcoImVtcGhhc2lzIiAic3Ryb25nX2VtcGhhc2lzIgorICAg
ICAgICAgICAgICAgICAgICAgICJzdHJpa2V0aHJvdWdoIiAiY29kZV9zcGFuIikpKSkpKQorCiso
ZGVmdW4gbWFya2Rvd24tdHMtcmVtb3ZlLWVtcGhhc2lzICgpCisgICJSZW1vdmUgZW1waGFzaXMg
YXJvdW5kIHBvaW50IG9yIHJlZ2lvbi4KK1dpdGggYW4gYWN0aXZlIHJlZ2lvbiwgc3RyaXAgdGhl
IG91dGVybW9zdCBlbXBoYXNpcyBtYXJrZXJzIGZyb20KK3RoZSBzZWxlY3RlZCB0ZXh0LiAgV2l0
aG91dCBhIHJlZ2lvbiwgZmluZCB0aGUgZW1waGFzaXMgbm9kZSBhdAorcG9pbnQgdXNpbmcgdHJl
ZS1zaXR0ZXIgYW5kIHJlbW92ZSBpdHMgbWFya2Vycy4iCisgIChpbnRlcmFjdGl2ZSkKKyAgKGlm
ICh1c2UtcmVnaW9uLXApCisgICAgICAobGV0KiAoKGJlZyAocmVnaW9uLWJlZ2lubmluZykpCisg
ICAgICAgICAgICAgKGVuZCAocmVnaW9uLWVuZCkpCisgICAgICAgICAgICAgKHRleHQgKGJ1ZmZl
ci1zdWJzdHJpbmcgYmVnIGVuZCkpCisgICAgICAgICAgICAgKHN0cmlwcGVkIG5pbCkpCisgICAg
ICAgIChjbC1sb29wIGZvciAoX2tleSAuIG0pIGluIChzb3J0IChjb3B5LXNlcXVlbmNlIG1hcmtk
b3duLXRzLWVtcGhhc2lzLWFsaXN0KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAobGFtYmRhIChhIGIpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgKD4gKGxlbmd0aCAoY2RyIGEpKSAobGVuZ3RoIChjZHIgYikpKSkpCisgICAgICAg
ICAgICAgICAgIGZvciByZSA9IChjb25jYXQgIlxcYCIgKHJlZ2V4cC1xdW90ZSBtKQorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICJcXChcXCg/Oi5cXHxcblxcKSpcXCkiCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHJlZ2V4cC1xdW90ZSBtKSAiXFwnIikKKyAg
ICAgICAgICAgICAgICAgd2hlbiAoc3RyaW5nLW1hdGNoIHJlIHRleHQpCisgICAgICAgICAgICAg
ICAgIGRvIChzZXRxIHN0cmlwcGVkIChtYXRjaC1zdHJpbmcgMSB0ZXh0KSkKKyAgICAgICAgICAg
ICAgICAgYW5kIHJldHVybiBuaWwpCisgICAgICAgICh3aGVuIHN0cmlwcGVkCisgICAgICAgICAg
KGRlbGV0ZS1yZWdpb24gYmVnIGVuZCkKKyAgICAgICAgICAoaW5zZXJ0IHN0cmlwcGVkKSkpCisg
ICAgOzsgRmluZCB0aGUgb3V0ZXJtb3N0IGVtcGhhc2lzIG5vZGUgYXQgcG9pbnQuCisgICAgKHdo
ZW4tbGV0KiAoKGlubmVyIChtYXJrZG93bi10cy0tZW1waGFzaXMtbm9kZS1hdC1wb2ludCkpCisg
ICAgICAgICAgICAgICAgKG5vZGUgKGxldCAoKG4gaW5uZXIpKQorICAgICAgICAgICAgICAgICAg
ICAgICAgKHdoaWxlIChsZXQgKChwYXJlbnQgKHRyZWVzaXQtbm9kZS1wYXJlbnQgbikpKQorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHdoZW4gKGFuZCBwYXJlbnQKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1lbWJlciAodHJlZXNpdC1ub2Rl
LXR5cGUgcGFyZW50KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICcoImVtcGhhc2lzIiAic3Ryb25nX2VtcGhhc2lzIgorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInN0cmlrZXRocm91Z2giICJj
b2RlX3NwYW4iKSkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChzZXRxIG4g
cGFyZW50KSkpKQorICAgICAgICAgICAgICAgICAgICAgICAgbikpCisgICAgICAgICAgICAgICAg
KHN0YXJ0ICh0cmVlc2l0LW5vZGUtc3RhcnQgbm9kZSkpCisgICAgICAgICAgICAgICAgKGVuZCAo
dHJlZXNpdC1ub2RlLWVuZCBub2RlKSkKKyAgICAgICAgICAgICAgICAodGV4dCAodHJlZXNpdC1u
b2RlLXRleHQgbm9kZSB0KSkKKyAgICAgICAgICAgICAgICAodHlwZSAodHJlZXNpdC1ub2RlLXR5
cGUgbm9kZSkpCisgICAgICAgICAgICAgICAgKG1sZW4gKHBjYXNlIHR5cGUKKyAgICAgICAgICAg
ICAgICAgICAgICAgICgic3Ryb25nX2VtcGhhc2lzIgorICAgICAgICAgICAgICAgICAgICAgICAg
IChpZiAoc3RyaW5nLXByZWZpeC1wICJfIiB0ZXh0KSAyIDIpKQorICAgICAgICAgICAgICAgICAg
ICAgICAgKCJlbXBoYXNpcyIKKyAgICAgICAgICAgICAgICAgICAgICAgICAoaWYgKHN0cmluZy1w
cmVmaXgtcCAiXyIgdGV4dCkgMSAxKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICgic3RyaWtl
dGhyb3VnaCIgMikKKyAgICAgICAgICAgICAgICAgICAgICAgICgiY29kZV9zcGFuIiAxKSkpCisg
ICAgICAgICAgICAgICAgKGlubmVyLXRleHQgKHN1YnN0cmluZyB0ZXh0IG1sZW4gKC0gKGxlbmd0
aCB0ZXh0KSBtbGVuKSkpKQorICAgICAgKGxldCAoKG9mZnNldCAoLSAocG9pbnQpIHN0YXJ0IG1s
ZW4pKSkKKyAgICAgICAgKGRlbGV0ZS1yZWdpb24gc3RhcnQgZW5kKQorICAgICAgICAoZ290by1j
aGFyIHN0YXJ0KQorICAgICAgICAoaW5zZXJ0IGlubmVyLXRleHQpCisgICAgICAgIChnb3RvLWNo
YXIgKCsgc3RhcnQgKG1heCAwIG9mZnNldCkpKSkpKSkKKworKGRlZnVuIG1hcmtkb3duLXRzLWVt
cGhhc2l6ZSAoJm9wdGlvbmFsIGNoYXIpCisgICJJbnNlcnQgb3IgY2hhbmdlIGVtcGhhc2lzIG9u
IHRleHQuCitJZiB0aGVyZSBpcyBhbiBhY3RpdmUgcmVnaW9uLCB3cmFwIGl0IHdpdGggZW1waGFz
aXMgbWFya2Vycy4KK0lmIHRoZXJlIGlzIG5vIHJlZ2lvbiwgaW5zZXJ0IG1hcmtlciBwYWlycyBh
bmQgcGxhY2UgcG9pbnQgYmV0d2VlbgordGhlbS4gIENIQVIgc2VsZWN0cyB0aGUgZW1waGFzaXMg
dHlwZToKKworICBiICAgKipib2xkKiogICAgICAgQiAgX19ib2xkX18KKyAgaSAgICppdGFsaWMq
ICAgICAgIEkgIF9pdGFsaWNfCisgIGEgICAqKipib2xkK2l0YWxpYyoqKgorICBzICAgfn5zdHJp
a2V0aHJvdWdofn4KKyAgYyAgIGBjb2RlYAorICBTUEMgcmVtb3ZlIGVtcGhhc2lzIGF0IHBvaW50
IG9yIHJlZ2lvbiIKKyAgKGludGVyYWN0aXZlCisgICAiY0VtcGhhc2lzIFtiXW9sZCBbQl1vbGRf
IFtpXXRhbGljIFtJXXRhbGljXyBbYV1sbCBbc110cmlrZSBbY11vZGUgU1BDIHJlbW92ZToiKQor
ICAoaWYgKGVxIGNoYXIgP1xzKQorICAgICAgKG1hcmtkb3duLXRzLXJlbW92ZS1lbXBoYXNpcykK
KyAgICAoaWYtbGV0KiAoKG1hcmtlciAoY2RyIChhc3NxIGNoYXIgbWFya2Rvd24tdHMtZW1waGFz
aXMtYWxpc3QpKSkpCisgICAgICAgIChpZiAodXNlLXJlZ2lvbi1wKQorICAgICAgICAgICAgKGxl
dCAoKGJlZyAocmVnaW9uLWJlZ2lubmluZykpCisgICAgICAgICAgICAgICAgICAoZW5kIChjb3B5
LW1hcmtlciAocmVnaW9uLWVuZCkpKSkKKyAgICAgICAgICAgICAgKHNhdmUtZXhjdXJzaW9uCisg
ICAgICAgICAgICAgICAgKGdvdG8tY2hhciBlbmQpCisgICAgICAgICAgICAgICAgKGluc2VydCBt
YXJrZXIpCisgICAgICAgICAgICAgICAgKGdvdG8tY2hhciBiZWcpCisgICAgICAgICAgICAgICAg
KGluc2VydCBtYXJrZXIpKSkKKyAgICAgICAgICAoaWYtbGV0KiAoKGJvdW5kcyAoYm91bmRzLW9m
LXRoaW5nLWF0LXBvaW50ICd3b3JkKSkpCisgICAgICAgICAgICAgIChzYXZlLWV4Y3Vyc2lvbgor
ICAgICAgICAgICAgICAgIChnb3RvLWNoYXIgKGNkciBib3VuZHMpKQorICAgICAgICAgICAgICAg
IChpbnNlcnQgbWFya2VyKQorICAgICAgICAgICAgICAgIChnb3RvLWNoYXIgKGNhciBib3VuZHMp
KQorICAgICAgICAgICAgICAgIChpbnNlcnQgbWFya2VyKSkKKyAgICAgICAgICAgIChpbnNlcnQg
bWFya2VyIG1hcmtlcikKKyAgICAgICAgICAgIChiYWNrd2FyZC1jaGFyIChsZW5ndGggbWFya2Vy
KSkpKQorICAgICAgKHVzZXItZXJyb3IgIk5vIHN1Y2ggZW1waGFzaXMgbWFya2VyOiAlYyIgY2hh
cikpKSkKKworOzs7IEJsb2NrIHN0cnVjdHVyZToKKworKGRlZnVuIG1hcmtkb3duLXRzLWluc2Vy
dC1zdHJ1Y3R1cmUgKCZvcHRpb25hbCBjaGFyKQorICAiSW5zZXJ0IGEgYmxvY2sgc3RydWN0dXJl
LgorSWYgdGhlcmUgaXMgYW4gYWN0aXZlIHJlZ2lvbiwgd3JhcCBpdC4gIE90aGVyd2lzZSwgaW5z
ZXJ0IGFuIGVtcHR5CitibG9jayBhbmQgcGxhY2UgcG9pbnQgaW5zaWRlLiAgQ0hBUiBzZWxlY3Rz
IHRoZSBzdHJ1Y3R1cmUgdHlwZToKKworICBjICBmZW5jZWQgY29kZSBibG9jayAoYGBgKQorICB0
ICB0aWxkZSBmZW5jZWQgY29kZSBibG9jayAofn5+KQorICBxICBibG9jayBxdW90ZSAoPiApCisg
IGQgIGhvcml6b250YWwgZGl2aWRlci9ydWxlICgtLS0pIgorICAoaW50ZXJhY3RpdmUgImNTdHJ1
Y3R1cmUgW2Ndb2RlIGJsb2NrIFt0XWlsZGUgY29kZSBibG9jayBbcV11b3RlIFtkXWl2aWRlcjoi
KQorICAocGNhc2UgY2hhcgorICAgICg/YyAobWFya2Rvd24tdHMtLWluc2VydC1jb2RlLWJsb2Nr
ID9gKSkKKyAgICAoP3QgKG1hcmtkb3duLXRzLS1pbnNlcnQtY29kZS1ibG9jayA/fikpCisgICAg
KD9xIChtYXJrZG93bi10cy0taW5zZXJ0LWJsb2NrLXF1b3RlKSkKKyAgICAoP2QgKG1hcmtkb3du
LXRzLS1pbnNlcnQtZGl2aWRlcikpCisgICAgKF8gKHVzZXItZXJyb3IgIk5vIHN1Y2ggc3RydWN0
dXJlOiAlYyIgY2hhcikpKSkKKworKGRlZnVuIG1hcmtkb3duLXRzLS1pbnNlcnQtY29kZS1ibG9j
ayAoY2hhciAmb3B0aW9uYWwgbGFuZ3VhZ2UpCisgICJJbnNlcnQgYSBmZW5jZWQgY29kZSBibG9j
ayB1c2luZyBhIENIQVIgc2VxdWVuY2UuCitDSEFSIHNob3VsZCBiZSBvbmUgb2YgYSBiYWNrdGlj
ayBvciBhIHRpbGRlLgorTEFOR1VBR0UgaXMgYSB3aGl0ZXNwYWNlIGZyZWUgbGFuZ3VhZ2Ugc3Ry
aW5nLiIKKyAgKHNldHEgbGFuZ3VhZ2UKKyAgICAgICAgKG9yIGxhbmd1YWdlCisgICAgICAgICAg
ICAocmVwbGFjZS1yZWdleHAtaW4tc3RyaW5nCisgICAgICAgICAgICAgIltbOmJsYW5rOl1dIiAi
IgorICAgICAgICAgICAgIChsZXQgKChjb21wbGV0aW9uLWlnbm9yZS1jYXNlIG5pbCkKKyAgICAg
ICAgICAgICAgICAgICAoY2FuZGlkYXRlcworICAgICAgICAgICAgICAgICAgICAoc2VxLW1hcAor
ICAgICAgICAgICAgICAgICAgICAgIydzeW1ib2wtbmFtZQorICAgICAgICAgICAgICAgICAgICAg
KHNlcS11bmlxCisgICAgICAgICAgICAgICAgICAgICAgKGFwcGVuZCAobWFwY2FyICMnY2FyIG1h
cmtkb3duLXRzLS1jb2RlLWJsb2NrLWxhbmd1YWdlcykKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIChtYXBjYXIgIydjYXIgbWFya2Rvd24tdHMtLWNvZGUtYmxvY2stbm9uLXRzLW1vZGVz
KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hcGNhciAjJ2NhciBtYXJrZG93bi10
cy1jb2RlLWJsb2NrLW1vZGVzKSkpKSkpCisgICAgICAgICAgICAgICAoY29tcGxldGluZy1yZWFk
CisgICAgICAgICAgICAgICAgIkNvZGUgYmxvY2sgbGFuZ3VhZ2U6ICIKKyAgICAgICAgICAgICAg
ICBjYW5kaWRhdGVzCisgICAgICAgICAgICAgICAgbmlsCisgICAgICAgICAgICAgICAgJ2NvbmZp
cm0gOyBQcm9tcHQgaWYgdGhlIGxhbmd1YWdlIGlzIG5vdCBvbiBvdXIgbGlzdC4KKyAgICAgICAg
ICAgICAgICBuaWwKKyAgICAgICAgICAgICAgICAnbWFya2Rvd24tdHMtbGFuZ3VhZ2UtaGlzdG9y
eSkpKSkpCisgIChsZXQgKChmZW5jZS1zdHJpbmcgKG1ha2Utc3RyaW5nIDMgY2hhcikpKQorICAg
IChpZiAodXNlLXJlZ2lvbi1wKQorICAgICAgICAobGV0ICgoYmVnIChyZWdpb24tYmVnaW5uaW5n
KSkKKyAgICAgICAgICAgICAgKGVuZCAocmVnaW9uLWVuZCkpKQorICAgICAgICAgIChzYXZlLWV4
Y3Vyc2lvbgorICAgICAgICAgICAgKGdvdG8tY2hhciBlbmQpCisgICAgICAgICAgICAodW5sZXNz
IChib2xwKSAoaW5zZXJ0ICJcbiIpKQorICAgICAgICAgICAgKGluc2VydCBmZW5jZS1zdHJpbmcg
IlxuIikKKyAgICAgICAgICAgIChnb3RvLWNoYXIgYmVnKQorICAgICAgICAgICAgKGluc2VydCBm
ZW5jZS1zdHJpbmcgbGFuZ3VhZ2UgIlxuIikpKQorICAgICAgKGluc2VydCBmZW5jZS1zdHJpbmcg
bGFuZ3VhZ2UgIlxuXG4iIGZlbmNlLXN0cmluZykKKyAgICAgIChmb3J3YXJkLWxpbmUgLTEpKSkp
CisKKyhkZWZ1biBtYXJrZG93bi10cy0taW5zZXJ0LWJsb2NrLXF1b3RlICgpCisgICJJbnNlcnQg
YSBibG9jayBxdW90ZS4iCisgIChpZiAodXNlLXJlZ2lvbi1wKQorICAgICAgKGxldCAoKGJlZyAo
cmVnaW9uLWJlZ2lubmluZykpCisgICAgICAgICAgICAoZW5kIChjb3B5LW1hcmtlciAocmVnaW9u
LWVuZCkpKSkKKyAgICAgICAgKHNhdmUtZXhjdXJzaW9uCisgICAgICAgICAgKGdvdG8tY2hhciBi
ZWcpCisgICAgICAgICAgKHdoaWxlICg8IChwb2ludCkgZW5kKQorICAgICAgICAgICAgKGluc2Vy
dCAiPiAiKQorICAgICAgICAgICAgKGZvcndhcmQtbGluZSAxKSkpKQorICAgIChpbnNlcnQgIj4g
IikpKQorCisoZGVmdW4gbWFya2Rvd24tdHMtLWluc2VydC1kaXZpZGVyICgpCisgICJJbnNlcnQg
YSBob3Jpem9udGFsIHJ1bGUuIgorICAodW5sZXNzIChib2xwKSAoaW5zZXJ0ICJcbiIpKQorICAo
aW5zZXJ0ICJcbi0tLVxuXG4iKSkKKworKGRlZnVuIG1hcmtkb3duLXRzLS1hcHBseS1lbGxpcHNp
cyAoKQorICAiQXBwbHkgYG1hcmtkb3duLXRzLWVsbGlwc2lzJyB0byB0aGUgY3VycmVudCBidWZm
ZXIncyBkaXNwbGF5IHRhYmxlLiIKKyAgKGlmIChhbmQgKHN0cmluZ3AgbWFya2Rvd24tdHMtZWxs
aXBzaXMpCisgICAgICAgICAgIChub3QgKHN0cmluZy1lbXB0eS1wIG1hcmtkb3duLXRzLWVsbGlw
c2lzKSkpCisgICAgICAobGV0ICgodGFibGUgKG9yIGJ1ZmZlci1kaXNwbGF5LXRhYmxlCisgICAg
ICAgICAgICAgICAgICAgICAgIChtYWtlLWRpc3BsYXktdGFibGUpKSkpCisgICAgICAgIChzZXQt
ZGlzcGxheS10YWJsZS1zbG90CisgICAgICAgICB0YWJsZSA0CisgICAgICAgICAodmNvbmNhdCAo
bWFwY2FyIChsYW1iZGEgKGMpIChtYWtlLWdseXBoLWNvZGUgYyAnc2hhZG93KSkKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgbWFya2Rvd24tdHMtZWxsaXBzaXMpKSkKKyAgICAgICAgKHNldHEg
YnVmZmVyLWRpc3BsYXktdGFibGUgdGFibGUpKQorICAgICh3aGVuIGJ1ZmZlci1kaXNwbGF5LXRh
YmxlCisgICAgICAoc2V0LWRpc3BsYXktdGFibGUtc2xvdCBidWZmZXItZGlzcGxheS10YWJsZSA0
IG5pbCkpKSkKKworOzs7IE1ham9yIG1vZGU6CisKKyhkZWZ1biBtYXJrZG93bi10cy1vdXRsaW5l
LWN5Y2xlICgpCisgICJDeWNsZSB2aXNpYmlsaXR5IG9mIHRoZSBoZWFkaW5nIGF0IHBvaW50Lgor
T24gYSBoZWFkaW5nLCBjYWxsIGBvdXRsaW5lLWN5Y2xlJy4gIE90aGVyd2lzZSBkbyBub3RoaW5n
LiIKKyAgKGludGVyYWN0aXZlKQorICAod2hlbiAob3V0bGluZS1vbi1oZWFkaW5nLXApCisgICAg
KG91dGxpbmUtY3ljbGUpKSkKKworKGRlZnZhci1rZXltYXAgbWFya2Rvd24tdHMtbW9kZS1tYXAK
KyAgOmRvYyAiS2V5bWFwIGZvciBgbWFya2Rvd24tdHMtbW9kZScuIgorICAiTS08bGVmdD4iICAg
ICMnbWFya2Rvd24tdHMtcHJvbW90ZQorICAiTS08cmlnaHQ+IiAgICMnbWFya2Rvd24tdHMtZGVt
b3RlCisgICJNLTx1cD4iICAgICAgIydtYXJrZG93bi10cy1tb3ZlLXN1YnRyZWUtdXAKKyAgIk0t
PGRvd24+IiAgICAjJ21hcmtkb3duLXRzLW1vdmUtc3VidHJlZS1kb3duCisgICJDLWMgQy1uIiAg
ICAgIydvdXRsaW5lLW5leHQtaGVhZGluZworICAiQy1jIEMtcCIgICAgICMnb3V0bGluZS1wcmV2
aW91cy1oZWFkaW5nCisgICJDLWMgQy11IiAgICAgIydvdXRsaW5lLXVwLWhlYWRpbmcKKyAgIkMt
YyBDLWYiICAgICAjJ291dGxpbmUtZm9yd2FyZC1zYW1lLWxldmVsCisgICJDLWMgQy1iIiAgICAg
IydvdXRsaW5lLWJhY2t3YXJkLXNhbWUtbGV2ZWwKKyAgIkMtYyBDLXggQy1mIiAjJ21hcmtkb3du
LXRzLWVtcGhhc2l6ZQorICAiQy1jIEMteCBDLW0iICMnbWFya2Rvd24tdHMtdG9nZ2xlLWhpZGUt
bWFya3VwCisgICJDLWMgQy14IEMtdiIgIydtYXJrZG93bi10cy10b2dnbGUtaW5saW5lLWltYWdl
cworICAiQy1jIEMtYyIgICAgICMnbWFya2Rvd24tdHMtdG9nZ2xlLWNoZWNrYm94CisgICJDLWMg
Qy1yIiAgICAgIydtYXJrZG93bi10cy1yZW51bWJlci1saXN0CisgICJDLWMgQy0sIiAgICAgIydt
YXJrZG93bi10cy1pbnNlcnQtc3RydWN0dXJlCisgICJDLWMgQy12IG4iICAgIydtYXJrZG93bi10
cy1tb3ZlLXRvLW5leHQtY29kZS1ibG9jaworICAiQy1jIEMtdiBwIiAgICMnbWFya2Rvd24tdHMt
bW92ZS10by1wcmV2aW91cy1jb2RlLWJsb2NrCisgICJSRVQiICAgICAgICAgIydtYXJrZG93bi10
cy1uZXdsaW5lCisgICJNLVJFVCIgICAgICAgIydtYXJrZG93bi10cy1pbnNlcnQtbGlzdC1pdGVt
CisgICJUQUIiICAgICAgICAgIydtYXJrZG93bi10cy1vdXRsaW5lLWN5Y2xlKQorCisoZGVmdmFy
LWtleW1hcCBtYXJrZG93bi10cy1jb2RlLWJsb2NrLW1vZGUtbWFwCisgIDpkb2MgIktleW1hcCBm
b3IgYG1hcmtkb3duLXRzLWNvZGUtYmxvY2stbW9kZScuCitUaGVzZSBvdmVycmlkZSBrZXlzIGlu
IGBtYXJrZG93bi10cy1tb2RlLW1hcCcgdG8gc3VwcG9ydCBleGVjdXRpbmcgdGhlaXIKK2NvbW1h
bmRzIGluIGEgY29kZS1ibG9jayBjb250ZXh0LiIKKyAgOnBhcmVudCBtYXJrZG93bi10cy1tb2Rl
LW1hcAorICAiTS0uIiAgICAgICAgICMnbWFya2Rvd24tdHMtLWNvZGUtYmxvY2steHJlZi1maW5k
LWRlZmluaXRpb25zCisgICJUQUIiICAgICAgICAgIydpbmRlbnQtZm9yLXRhYi1jb21tYW5kCisg
ICJSRVQiICAgICAgICAgIydtYXJrZG93bi10cy0tY29kZS1ibG9jay1uZXdsaW5lCisgICJDLWoi
ICAgICAgICAgIydtYXJrZG93bi10cy0tY29kZS1ibG9jay1uZXdsaW5lCisgICJNLVJFVCIgICAg
ICAgIydtYXJrZG93bi10cy0tY29kZS1ibG9jay1uZXdsaW5lCisgICJNLXEiICAgICAgICAgIydt
YXJrZG93bi10cy0tY29kZS1ibG9jay1maWxsLXBhcmFncmFwaCkKKworKGVhc3ktbWVudS1kZWZp
bmUgbWFya2Rvd24tdHMtbW9kZS1tZW51IG1hcmtkb3duLXRzLW1vZGUtbWFwCisgICJgbWFya2Rv
d24tdHMtbW9kZScgbWVudS4iCisgICcoIk1hcmtkb3duIiA6dmlzaWJsZSBtYXJrZG93bi10cy1t
ZW51LWJhci1zaG93CisgICAgIi0tIgorICAgIFsiQ3ljbGUgT3V0bGluZSBWaXNpYmlsaXR5IiBt
YXJrZG93bi10cy1vdXRsaW5lLWN5Y2xlCisgICAgIDpoZWxwICJDeWNsZSBoZWFkaW5nIHZpc2li
aWxpdHkgZnJvbSBwb2ludCJdCisgICAgWyJUb2dnbGUgSGlkZSBNYXJrdXAiIG1hcmtkb3duLXRz
LXRvZ2dsZS1oaWRlLW1hcmt1cAorICAgICA6c3R5bGUgdG9nZ2xlIDpzZWxlY3RlZCBtYXJrZG93
bi10cy1oaWRlLW1hcmt1cAorICAgICA6aGVscCAiVG9nZ2xlIGRpc3BsYXkgb2YgbWFya3VwIGNo
YXJhY3RlcnMiXQorICAgIFsiVG9nZ2xlIElubGluZSBJbWFnZXMiIG1hcmtkb3duLXRzLXRvZ2ds
ZS1pbmxpbmUtaW1hZ2VzCisgICAgIDpzdHlsZSB0b2dnbGUgOnNlbGVjdGVkIG1hcmtkb3duLXRz
LWlubGluZS1pbWFnZXMKKyAgICAgOmhlbHAgIlRvZ2dsZSBkaXNwbGF5IG9mIGlubGluZSBpbWFn
ZXMgYmVsb3cgbGlua3MiXQorICAgICItLSIKKyAgICBbIlVwIiBvdXRsaW5lLXVwLWhlYWRpbmcK
KyAgICAgOmhlbHAgIk1vdmUgdG8gdGhlIHBhcmVudCBoZWFkaW5nIl0KKyAgICBbIk5leHQiIG91
dGxpbmUtbmV4dC1oZWFkaW5nCisgICAgIDpoZWxwICJNb3ZlIHRvIHRoZSBuZXh0IGhlYWRpbmci
XQorICAgIFsiUHJldmlvdXMiIG91dGxpbmUtcHJldmlvdXMtaGVhZGluZworICAgICA6aGVscCAi
TW92ZSB0byB0aGUgcHJldmlvdXMgaGVhZGluZyJdCisgICAgWyJOZXh0IFNhbWUgTGV2ZWwiIG91
dGxpbmUtZm9yd2FyZC1zYW1lLWxldmVsCisgICAgIDpoZWxwICJNb3ZlIHRvIHRoZSBuZXh0IGhl
YWRpbmcgYXQgdGhlIHNhbWUgbGV2ZWwiXQorICAgIFsiUHJldmlvdXMgU2FtZSBMZXZlbCIgb3V0
bGluZS1iYWNrd2FyZC1zYW1lLWxldmVsCisgICAgIDpoZWxwICJNb3ZlIHRvIHRoZSBwcmV2aW91
cyBoZWFkaW5nIGF0IHRoZSBzYW1lIGxldmVsIl0KKyAgICAiLS0iCisgICAgWyJKdW1wIiBpbWVu
dQorICAgICA6aGVscCAiSnVtcCB0byBhIGhlYWRpbmcgdmlhIGNvbXBsZXRpb24iXQorICAgICIt
LSIKKyAgICBbIk1vdmUgU3VidHJlZSBVcCIgbWFya2Rvd24tdHMtbW92ZS1zdWJ0cmVlLXVwCisg
ICAgIDpoZWxwICJNb3ZlIHRoZSBjdXJyZW50IHNlY3Rpb24gb3IgbGlzdCBpdGVtIHVwIl0KKyAg
ICBbIk1vdmUgU3VidHJlZSBEb3duIiBtYXJrZG93bi10cy1tb3ZlLXN1YnRyZWUtZG93bgorICAg
ICA6aGVscCAiTW92ZSB0aGUgY3VycmVudCBzZWN0aW9uIG9yIGxpc3QgaXRlbSBkb3duIl0KKyAg
ICBbIlByb21vdGUiIG1hcmtkb3duLXRzLXByb21vdGUKKyAgICAgOmhlbHAgIlByb21vdGUgaGVh
ZGluZyBvciBsaXN0IGl0ZW0iXQorICAgIFsiRGVtb3RlIiBtYXJrZG93bi10cy1kZW1vdGUKKyAg
ICAgOmhlbHAgIkRlbW90ZSBoZWFkaW5nIG9yIGxpc3QgaXRlbSJdCisgICAgIi0tIgorICAgIFsi
RW1waGFzaXMuLi4iIG1hcmtkb3duLXRzLWVtcGhhc2l6ZQorICAgICA6aGVscCAiQWRkIG9yIGNo
YW5nZSBlbXBoYXNpcyBvbiByZWdpb24iXQorICAgIFsiQWRkIEJsb2NrIFN0cnVjdHVyZSIgbWFy
a2Rvd24tdHMtaW5zZXJ0LXN0cnVjdHVyZQorICAgICA6aGVscCAiSW5zZXJ0IGEgY29kZSBibG9j
aywgcXVvdGUsIG9yIG90aGVyIHN0cnVjdHVyZSJdCisgICAgIi0tIgorICAgIFsiVG9nZ2xlIENo
ZWNrYm94IiBtYXJrZG93bi10cy10b2dnbGUtY2hlY2tib3gKKyAgICAgOmhlbHAgIlRvZ2dsZSB0
YXNrIGxpc3QgY2hlY2tib3ggYXQgcG9pbnQiXQorICAgIFsiTmV3IExpc3QgSXRlbSIgbWFya2Rv
d24tdHMtaW5zZXJ0LWxpc3QtaXRlbQorICAgICA6aGVscCAiSW5zZXJ0IGEgbmV3IGxpc3QgaXRl
bSBhZnRlciB0aGUgY3VycmVudCBvbmUiXQorICAgIFsiUmVudW1iZXIgTGlzdCIgbWFya2Rvd24t
dHMtcmVudW1iZXItbGlzdAorICAgICA6aGVscCAiUmVudW1iZXIgdGhlIG9yZGVyZWQgbGlzdCBh
dCBwb2ludCJdKSkKKworKGRlZnVuIG1hcmtkb3duLXRzLS1zZXQtdXAgKCkKKyAgIlNldCB1cCB0
aGUgYnVmZmVyIGZvciBgbWFya2Rvd24tdHMtbW9kZScuCitJZiBgbWFya2Rvd24tdHMtLXNldC11
cC1pbmxpbmUnIGlzIG5vbi1uaWwsIHVzZSBhIGxpZ2h0d2VpZ2h0IHNldCB1cCBmb3IKK2VtYmVk
ZGVkIGlubGluZSBgbWFya2Rvd24tdHMtbW9kZScgYnVmZmVycy4KKworTk9URTogQ2FsbCB0aGlz
IGZ1bmN0aW9uIG9ubHkgd2hlbiB0aGUgdHJlZXNpdCBgbWFya2Rvd24nIGFuZAorYG1hcmtkb3du
LWlubGluZScgcGFyc2VycyBhcmUgYXZhaWxhYmxlLiIKKworICA7OyBTZXQgdGhlc2UgdXAgZm9y
IGJvdGggbWFzdGVyIGFuZCBpbmxpbmUgZm9yIGNvZGUtYmxvY2sgYnVmZmVycy4KKyAgKHNldHEt
bG9jYWwgY29tbWVudC1zdGFydCAiPCEtLSAiCisgICAgICAgICAgICAgIGNvbW1lbnQtZW5kICIg
LS0+IgorICAgICAgICAgICAgICBjb21tZW50LXN0YXJ0LXNraXAgIjwhLS1bIFx0XSoiCisgICAg
ICAgICAgICAgIGNvbW1lbnQtZW5kLXNraXAgIlsgXHRdKi0tPiIKKyAgICAgICAgICAgICAgY29t
bWVudC11c2Utc3ludGF4IG5pbCkKKworICAoc2V0cS1sb2NhbCBmaWxsLXBhcmFncmFwaC1mdW5j
dGlvbgorICAgICAgICAgICAgICAjJ21hcmtkb3duLXRzLS1maWxsLXBhcmFncmFwaAorICAgICAg
ICAgICAgICBmaWxsLWZvcndhcmQtcGFyYWdyYXBoLWZ1bmN0aW9uCisgICAgICAgICAgICAgICMn
bWFya2Rvd24tdHMtLWZpbGwtZm9yd2FyZC1wYXJhZ3JhcGgpCisKKyAgOzsgYGFkYXB0aXZlLWZp
bGwtZnVuY3Rpb24nIHRha2VzIHByZWNlZGVuY2Ugb3ZlcgorICA7OyBgYWRhcHRpdmUtZmlsbC1y
ZWdleHAnOyB0aGUgZGVmYXVsdCByZWdleHAgaXMgZmluZSBhcyBhCisgIDs7IGZhbGxiYWNrIGZv
ciBwbGFpbiAobm9uLWxpc3QpIHBhcmFncmFwaHMuCisgIChzZXRxLWxvY2FsIGFkYXB0aXZlLWZp
bGwtZnVuY3Rpb24gIydtYXJrZG93bi10cy0tYWRhcHRpdmUtZmlsbCkKKworICA7OyBDcmVhdGUg
YW5kIGNvbmZpZ3VyZSB0aGUgcGFyc2Vycy4KKyAgKHRyZWVzaXQtcGFyc2VyLWNyZWF0ZSAnbWFy
a2Rvd24taW5saW5lKQorICAoc2V0cSB0cmVlc2l0LXByaW1hcnktcGFyc2VyCisgICAgICAgICh0
cmVlc2l0LXBhcnNlci1jcmVhdGUgJ21hcmtkb3duKSkKKworICAoc2V0cS1sb2NhbCBmb250LWxv
Y2stZGVmYXVsdHMgbmlsKQogICAoc2V0cS1sb2NhbCB0cmVlc2l0LWZvbnQtbG9jay1zZXR0aW5n
cyBtYXJrZG93bi10cy0tdHJlZXNpdC1zZXR0aW5ncykKLSAgKHNldHEtbG9jYWwgdHJlZXNpdC1y
YW5nZS1zZXR0aW5ncyAobWFya2Rvd24tdHMtLXJhbmdlLXNldHRpbmdzKSkKLSAgKGFkZC10by1s
aXN0ICdmb250LWxvY2stZXh0cmEtbWFuYWdlZC1wcm9wcyAnaW52aXNpYmxlKQotCi0gICh3aGVu
ICh0cmVlc2l0LXJlYWR5LXAgJ2h0bWwgdCkKLSAgICAodHJlZXNpdC1wYXJzZXItY3JlYXRlICdo
dG1sKQotICAgIChyZXF1aXJlICdodG1sLXRzLW1vZGUpCi0gICAgKGRlZnZhciBodG1sLXRzLW1v
ZGUtLWZvbnQtbG9jay1zZXR0aW5ncykKLSAgICAoZGVmdmFyIGh0bWwtdHMtbW9kZS0tdHJlZXNp
dC1mb250LWxvY2stZmVhdHVyZS1saXN0KQotICAgIChzZXRxLWxvY2FsIHRyZWVzaXQtZm9udC1s
b2NrLXNldHRpbmdzCi0gICAgICAgICAgICAgICAgKGFwcGVuZCB0cmVlc2l0LWZvbnQtbG9jay1z
ZXR0aW5ncwotICAgICAgICAgICAgICAgICAgICAgICAgaHRtbC10cy1tb2RlLS1mb250LWxvY2st
c2V0dGluZ3MpKQotICAgIChzZXRxLWxvY2FsIHRyZWVzaXQtZm9udC1sb2NrLWZlYXR1cmUtbGlz
dAotICAgICAgICAgICAgICAgICh0cmVlc2l0LW1lcmdlLWZvbnQtbG9jay1mZWF0dXJlLWxpc3QK
LSAgICAgICAgICAgICAgICAgdHJlZXNpdC1mb250LWxvY2stZmVhdHVyZS1saXN0Ci0gICAgICAg
ICAgICAgICAgIGh0bWwtdHMtbW9kZS0tdHJlZXNpdC1mb250LWxvY2stZmVhdHVyZS1saXN0KSkK
LSAgICAoc2V0cS1sb2NhbCB0cmVlc2l0LXJhbmdlLXNldHRpbmdzCi0gICAgICAgICAgICAgICAg
KGFwcGVuZCB0cmVlc2l0LXJhbmdlLXNldHRpbmdzCi0gICAgICAgICAgICAgICAgICAgICAgICAo
dHJlZXNpdC1yYW5nZS1ydWxlcwotICAgICAgICAgICAgICAgICAgICAgICAgIDplbWJlZCAnaHRt
bAotICAgICAgICAgICAgICAgICAgICAgICAgIDpob3N0ICdtYXJrZG93bgotICAgICAgICAgICAg
ICAgICAgICAgICAgIDpsb2NhbCB0Ci0gICAgICAgICAgICAgICAgICAgICAgICAgJygoaHRtbF9i
bG9jaykgQGh0bWwpCi0KLSAgICAgICAgICAgICAgICAgICAgICAgICA6ZW1iZWQgJ2h0bWwKLSAg
ICAgICAgICAgICAgICAgICAgICAgICA6aG9zdCAnbWFya2Rvd24taW5saW5lCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgJygoaHRtbF90YWcpIEBodG1sKSkpKSkKLQotICAod2hlbiAodHJlZXNp
dC1yZWFkeS1wICd5YW1sIHQpCi0gICAgKHJlcXVpcmUgJ3lhbWwtdHMtbW9kZSkKLSAgICAoZGVm
dmFyIHlhbWwtdHMtbW9kZS0tZm9udC1sb2NrLXNldHRpbmdzKQotICAgIChkZWZ2YXIgeWFtbC10
cy1tb2RlLS1mb250LWxvY2stZmVhdHVyZS1saXN0KQotICAgIChzZXRxLWxvY2FsIHRyZWVzaXQt
Zm9udC1sb2NrLXNldHRpbmdzCi0gICAgICAgICAgICAgICAgKGFwcGVuZCB0cmVlc2l0LWZvbnQt
bG9jay1zZXR0aW5ncwotICAgICAgICAgICAgICAgICAgICAgICAgeWFtbC10cy1tb2RlLS1mb250
LWxvY2stc2V0dGluZ3MpKQotICAgIChzZXRxLWxvY2FsIHRyZWVzaXQtZm9udC1sb2NrLWZlYXR1
cmUtbGlzdAotICAgICAgICAgICAgICAgICh0cmVlc2l0LW1lcmdlLWZvbnQtbG9jay1mZWF0dXJl
LWxpc3QKLSAgICAgICAgICAgICAgICAgdHJlZXNpdC1mb250LWxvY2stZmVhdHVyZS1saXN0Ci0g
ICAgICAgICAgICAgICAgIHlhbWwtdHMtbW9kZS0tZm9udC1sb2NrLWZlYXR1cmUtbGlzdCkpCi0g
ICAgKHNldHEtbG9jYWwgdHJlZXNpdC1yYW5nZS1zZXR0aW5ncwotICAgICAgICAgICAgICAgIChh
cHBlbmQgdHJlZXNpdC1yYW5nZS1zZXR0aW5ncwotICAgICAgICAgICAgICAgICAgICAgICAgKHRy
ZWVzaXQtcmFuZ2UtcnVsZXMKLSAgICAgICAgICAgICAgICAgICAgICAgICA6ZW1iZWQgJ3lhbWwK
LSAgICAgICAgICAgICAgICAgICAgICAgICA6aG9zdCAnbWFya2Rvd24KLSAgICAgICAgICAgICAg
ICAgICAgICAgICA6bG9jYWwgdAotICAgICAgICAgICAgICAgICAgICAgICAgICcoKG1pbnVzX21l
dGFkYXRhKSBAeWFtbCkpKSkpCi0KLSAgKHdoZW4gKHRyZWVzaXQtcmVhZHktcCAndG9tbCB0KQot
ICAgIChyZXF1aXJlICd0b21sLXRzLW1vZGUpCi0gICAgKGRlZnZhciB0b21sLXRzLW1vZGUtLWZv
bnQtbG9jay1zZXR0aW5ncykKLSAgICAoZGVmdmFyIHRvbWwtdHMtbW9kZS0tZm9udC1sb2NrLWZl
YXR1cmUtbGlzdCkKLSAgICAoc2V0cSB0cmVlc2l0LWZvbnQtbG9jay1zZXR0aW5ncwotICAgICAg
ICAgIChhcHBlbmQgdHJlZXNpdC1mb250LWxvY2stc2V0dGluZ3MKLSAgICAgICAgICAgICAgICAg
IHRvbWwtdHMtbW9kZS0tZm9udC1sb2NrLXNldHRpbmdzKSkKLSAgICAoc2V0cS1sb2NhbCB0cmVl
c2l0LWZvbnQtbG9jay1mZWF0dXJlLWxpc3QKLSAgICAgICAgICAgICAgICAodHJlZXNpdC1tZXJn
ZS1mb250LWxvY2stZmVhdHVyZS1saXN0Ci0gICAgICAgICAgICAgICAgIHRyZWVzaXQtZm9udC1s
b2NrLWZlYXR1cmUtbGlzdAotICAgICAgICAgICAgICAgICB0b21sLXRzLW1vZGUtLWZvbnQtbG9j
ay1mZWF0dXJlLWxpc3QpKQotICAgIChzZXRxLWxvY2FsIHRyZWVzaXQtcmFuZ2Utc2V0dGluZ3MK
LSAgICAgICAgICAgICAgICAoYXBwZW5kIHRyZWVzaXQtcmFuZ2Utc2V0dGluZ3MKLSAgICAgICAg
ICAgICAgICAgICAgICAgICh0cmVlc2l0LXJhbmdlLXJ1bGVzCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgOmVtYmVkICd0b21sCi0gICAgICAgICAgICAgICAgICAgICAgICAgOmhvc3QgJ21hcmtk
b3duCi0gICAgICAgICAgICAgICAgICAgICAgICAgOmxvY2FsIHQKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAnKChwbHVzX21ldGFkYXRhKSBAdG9tbCkpKSkpCisgIChzZXRxLWxvY2FsIHRyZWVz
aXQtZm9udC1sb2NrLWZlYXR1cmUtbGlzdCAnKChkZWxpbWl0ZXIgaGVhZGluZykKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHBhcmFncmFwaCkKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHBhcmFncmFwaC1pbmxp
bmUpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbWFn
ZS1wcmV2aWV3KSkpCisKKyAgKGNvbmQgKG1hcmtkb3duLXRzLS1zZXQtdXAtaW5saW5lCisgICAg
ICAgICAgKHNldHEtbG9jYWwgdHJlZXNpdC1yYW5nZS1zZXR0aW5ncworICAgICAgICAgICAgICAg
ICAgICAgICh0cmVlc2l0LXJhbmdlLXJ1bGVzCisgICAgICAgICAgICAgICAgICAgICAgIDplbWJl
ZCAnbWFya2Rvd24taW5saW5lCisgICAgICAgICAgICAgICAgICAgICAgIDpob3N0ICdtYXJrZG93
bgorICAgICAgICAgICAgICAgICAgICAgICAnKChpbmxpbmUpIEBtYXJrZG93bi1pbmxpbmUpKSkp
CisgICAgICAgICh0CisgICAgICAgICA7OyBSYW5nZSBzZXR0aW5ncyBkaWZmZXIgaW4gdGhlIG1h
c3RlciBidWZmZXIgdnMuIGlubGluZSBhYm92ZS4KKyAgICAgICAgIChzZXRxLWxvY2FsIHRyZWVz
aXQtcmFuZ2Utc2V0dGluZ3MgKG1hcmtkb3duLXRzLS1yYW5nZS1zZXR0aW5ncykpCisKKyAgICAg
ICAgIDs7IENvbmZpZ3VyZSBmZWF0dXJlcyBuZWVkZWQgb25seSBpbiB0aGUgbWFzdGVyIGJ1ZmZl
ci4KKworICAgICAgICAgOzsgSW1lbnUgc3VwcG9ydC4KKyAgICAgICAgIChzZXRxLWxvY2FsIHRy
ZWVzaXQtc2ltcGxlLWltZW51LXNldHRpbmdzCisgICAgICAgICAgICAgICAgICAgICBgKCgiSGVh
ZGluZ3MiICwjJ21hcmtkb3duLXRzLS1pbWVudS1oZWFkaW5nLW5vZGUtcAorICAgICAgICAgICAg
ICAgICAgICAgICAgbmlsICwjJ21hcmtkb3duLXRzLS1pbWVudS1oZWFkaW5nLW5hbWUtZnVuY3Rp
b24pCisgICAgICAgICAgICAgICAgICAgICAgICgiQ29kZSBCbG9ja3MiICwjJ21hcmtkb3duLXRz
LS1pbWVudS1jb2RlLWJsb2NrLW5vZGUtcAorICAgICAgICAgICAgICAgICAgICAgICAgbmlsICwj
J21hcmtkb3duLXRzLS1pbWVudS1jb2RlLWJsb2NrLW5hbWUtZnVuY3Rpb24pKSkKKworICAgICAg
ICAgOzsgT3V0bGluZSBzdXBwb3J0LgorICAgICAgICAgKHNldHEtbG9jYWwgdHJlZXNpdC1vdXRs
aW5lLXByZWRpY2F0ZSAjJ21hcmtkb3duLXRzLS1vdXRsaW5lLXByZWRpY2F0ZSkKKyAgICAgICAg
IChzZXRxLWxvY2FsIG91dGxpbmUtbWlub3ItbW9kZS1jeWNsZSB0KQorICAgICAgICAgKG91dGxp
bmUtbWlub3ItbW9kZSAxKQorICAgICAgICAgKG1hcmtkb3duLXRzLS1hcHBseS1lbGxpcHNpcykK
KworICAgICAgICAgOzsgTk9URTogYG91dGxpbmUtdmlldy1jaGFuZ2UtaG9vaycgd2FzIG9ic29s
ZXRlZCBpbiAyOS4xIChjb21taXQKKyAgICAgICAgIDs7IDUzYjFlNmY5NmNiKSBvbiB0aGUgZ3Jv
dW5kcyB0aGF0IG9ubHkgbGF6eS1sb2NrIHVzZWQgaXQsIGJ1dCBubworICAgICAgICAgOzsgcmVw
bGFjZW1lbnQgd2FzIHByb3ZpZGVkIGFuZCBvdXRsaW5lLmVsIGl0c2VsZiBzdGlsbCBydW5zIHRo
ZSBob29rCisgICAgICAgICA7OyBpbiAxMCsgcGxhY2VzLgorICAgICAgICAgKHdpdGgtc3VwcHJl
c3NlZC13YXJuaW5ncyAoKG9ic29sZXRlIG91dGxpbmUtdmlldy1jaGFuZ2UtaG9vaykpCisgICAg
ICAgICAgIChhZGQtaG9vayAnb3V0bGluZS12aWV3LWNoYW5nZS1ob29rCisgICAgICAgICAgICAg
ICAgICAgICAjJ21hcmtkb3duLXRzLS1vdXRsaW5lLXZpZXctY2hhbmdlIG5pbCB0KSkKKworICAg
ICAgICAgKHByb2duCisgICAgICAgICAgIChtYWtlLWxvY2FsLXZhcmlhYmxlICdtYXJrZG93bi10
cy1oaWRlLW1hcmt1cCkKKyAgICAgICAgICAgKG1ha2UtbG9jYWwtdmFyaWFibGUgJ2ZvbnQtbG9j
ay1leHRyYS1tYW5hZ2VkLXByb3BzKQorICAgICAgICAgICAoZG9saXN0IChwcm9wICcoaW52aXNp
YmxlIGRpc3BsYXkgYnV0dG9uIGNhdGVnb3J5IGFjdGlvbiBoZWxwLWVjaG8pKQorICAgICAgICAg
ICAgIChhZGQtdG8tbGlzdCAnZm9udC1sb2NrLWV4dHJhLW1hbmFnZWQtcHJvcHMgcHJvcCkpKQor
CisgICAgICAgICAod2hlbiAodHJlZXNpdC1yZWFkeS1wICdodG1sIHQpCisgICAgICAgICAgICh0
cmVlc2l0LXBhcnNlci1jcmVhdGUgJ2h0bWwpCisgICAgICAgICAgIChyZXF1aXJlICdodG1sLXRz
LW1vZGUpCisgICAgICAgICAgIChkZWZ2YXIgaHRtbC10cy1tb2RlLS1mb250LWxvY2stc2V0dGlu
Z3MpCisgICAgICAgICAgIChkZWZ2YXIgaHRtbC10cy1tb2RlLS10cmVlc2l0LWZvbnQtbG9jay1m
ZWF0dXJlLWxpc3QpCisgICAgICAgICAgIChzZXRxLWxvY2FsIHRyZWVzaXQtZm9udC1sb2NrLXNl
dHRpbmdzCisgICAgICAgICAgICAgICAgICAgICAgIChhcHBlbmQgdHJlZXNpdC1mb250LWxvY2st
c2V0dGluZ3MKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBodG1sLXRzLW1vZGUtLWZv
bnQtbG9jay1zZXR0aW5ncykpCisgICAgICAgICAgIChzZXRxLWxvY2FsIHRyZWVzaXQtZm9udC1s
b2NrLWZlYXR1cmUtbGlzdAorICAgICAgICAgICAgICAgICAgICAgICAodHJlZXNpdC1tZXJnZS1m
b250LWxvY2stZmVhdHVyZS1saXN0CisgICAgICAgICAgICAgICAgICAgICAgICB0cmVlc2l0LWZv
bnQtbG9jay1mZWF0dXJlLWxpc3QKKyAgICAgICAgICAgICAgICAgICAgICAgIGh0bWwtdHMtbW9k
ZS0tdHJlZXNpdC1mb250LWxvY2stZmVhdHVyZS1saXN0KSkKKyAgICAgICAgICAgKHNldHEtbG9j
YWwgdHJlZXNpdC1yYW5nZS1zZXR0aW5ncworICAgICAgICAgICAgICAgICAgICAgICAoYXBwZW5k
IHRyZWVzaXQtcmFuZ2Utc2V0dGluZ3MKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAo
dHJlZXNpdC1yYW5nZS1ydWxlcworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6ZW1i
ZWQgJ2h0bWwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOmhvc3QgJ21hcmtkb3du
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDpsb2NhbCB0CisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICcoKGh0bWxfYmxvY2spIEBodG1sKQorCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIDplbWJlZCAnaHRtbAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICA6aG9zdCAnbWFya2Rvd24taW5saW5lCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICcoKGh0bWxfdGFnKSBAaHRtbCkpKSkpCisKKyAgICAgICAgICh3aGVuICh0cmVlc2l0
LXJlYWR5LXAgJ3lhbWwgdCkKKyAgICAgICAgICAgKHJlcXVpcmUgJ3lhbWwtdHMtbW9kZSkKKyAg
ICAgICAgICAgKGRlZnZhciB5YW1sLXRzLW1vZGUtLWZvbnQtbG9jay1zZXR0aW5ncykKKyAgICAg
ICAgICAgKGRlZnZhciB5YW1sLXRzLW1vZGUtLWZvbnQtbG9jay1mZWF0dXJlLWxpc3QpCisgICAg
ICAgICAgIChzZXRxLWxvY2FsIHRyZWVzaXQtZm9udC1sb2NrLXNldHRpbmdzCisgICAgICAgICAg
ICAgICAgICAgICAgIChhcHBlbmQgdHJlZXNpdC1mb250LWxvY2stc2V0dGluZ3MKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICB5YW1sLXRzLW1vZGUtLWZvbnQtbG9jay1zZXR0aW5ncykp
CisgICAgICAgICAgIChzZXRxLWxvY2FsIHRyZWVzaXQtZm9udC1sb2NrLWZlYXR1cmUtbGlzdAor
ICAgICAgICAgICAgICAgICAgICAgICAodHJlZXNpdC1tZXJnZS1mb250LWxvY2stZmVhdHVyZS1s
aXN0CisgICAgICAgICAgICAgICAgICAgICAgICB0cmVlc2l0LWZvbnQtbG9jay1mZWF0dXJlLWxp
c3QKKyAgICAgICAgICAgICAgICAgICAgICAgIHlhbWwtdHMtbW9kZS0tZm9udC1sb2NrLWZlYXR1
cmUtbGlzdCkpCisgICAgICAgICAgIChzZXRxLWxvY2FsIHRyZWVzaXQtcmFuZ2Utc2V0dGluZ3MK
KyAgICAgICAgICAgICAgICAgICAgICAgKGFwcGVuZCB0cmVlc2l0LXJhbmdlLXNldHRpbmdzCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHRyZWVzaXQtcmFuZ2UtcnVsZXMKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgOmVtYmVkICd5YW1sCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIDpob3N0ICdtYXJrZG93bgorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICA6bG9jYWwgdAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnKChtaW51
c19tZXRhZGF0YSkgQHlhbWwpKSkpKQorCisgICAgICAgICAod2hlbiAodHJlZXNpdC1yZWFkeS1w
ICd0b21sIHQpCisgICAgICAgICAgIChyZXF1aXJlICd0b21sLXRzLW1vZGUpCisgICAgICAgICAg
IChkZWZ2YXIgdG9tbC10cy1tb2RlLS1mb250LWxvY2stc2V0dGluZ3MpCisgICAgICAgICAgIChk
ZWZ2YXIgdG9tbC10cy1tb2RlLS1mb250LWxvY2stZmVhdHVyZS1saXN0KQorICAgICAgICAgICAo
c2V0cSB0cmVlc2l0LWZvbnQtbG9jay1zZXR0aW5ncworICAgICAgICAgICAgICAgICAoYXBwZW5k
IHRyZWVzaXQtZm9udC1sb2NrLXNldHRpbmdzCisgICAgICAgICAgICAgICAgICAgICAgICAgdG9t
bC10cy1tb2RlLS1mb250LWxvY2stc2V0dGluZ3MpKQorICAgICAgICAgICAoc2V0cS1sb2NhbCB0
cmVlc2l0LWZvbnQtbG9jay1mZWF0dXJlLWxpc3QKKyAgICAgICAgICAgICAgICAgICAgICAgKHRy
ZWVzaXQtbWVyZ2UtZm9udC1sb2NrLWZlYXR1cmUtbGlzdAorICAgICAgICAgICAgICAgICAgICAg
ICAgdHJlZXNpdC1mb250LWxvY2stZmVhdHVyZS1saXN0CisgICAgICAgICAgICAgICAgICAgICAg
ICB0b21sLXRzLW1vZGUtLWZvbnQtbG9jay1mZWF0dXJlLWxpc3QpKQorICAgICAgICAgICAoc2V0
cS1sb2NhbCB0cmVlc2l0LXJhbmdlLXNldHRpbmdzCisgICAgICAgICAgICAgICAgICAgICAgIChh
cHBlbmQgdHJlZXNpdC1yYW5nZS1zZXR0aW5ncworICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICh0cmVlc2l0LXJhbmdlLXJ1bGVzCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IDplbWJlZCAndG9tbAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6aG9zdCAnbWFy
a2Rvd24KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOmxvY2FsIHQKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgJygocGx1c19tZXRhZGF0YSkgQHRvbWwpKSkpKQorCisg
ICAgICAgICA7OyBTdXBwb3J0IGZvciBleGVjdXRpbmcgY29tbWFuZHMgaW4gYSBjb2RlLWJsb2Nr
IGNvbnRleHQuCisKKyAgICAgICAgIDs7IEVuYWJsZSB0aGUgbWlub3IgbW9kZSBgbWFya2Rvd24t
dHMtY29kZS1ibG9jay1tb2RlJyBhbmQgaXRzIGtleW1hcAorICAgICAgICAgOzsgd2hlbiBwb2lu
dCBpcyB3aXRoaW4gYSBjb2RlIGJsb2NrLgorICAgICAgICAgKGFkZC1ob29rICdwb3N0LWNvbW1h
bmQtaG9vaworICAgICAgICAgICAgICAgICAgICMnbWFya2Rvd24tdHMtLWVuYWJsZS1jb2RlLWJs
b2NrLW1vZGUgbmlsICdsb2NhbCkKKyAgICAgICAgIDs7IElmIGBzYXZlLXBsYWNlLW1vZGUnIG9y
IHNpbWlsYXIgaXMgdXNlZCwgcG9pbnQgY291bGQgc3RhcnQgd2l0aGluIGEKKyAgICAgICAgIDs7
IGNvZGUgYmxvY2sgc28gaW5pdGlhbGl6ZSB0aGF0IHN0YXRlLgorICAgICAgICAgKHJ1bi13aXRo
LWlkbGUtdGltZXIgMC4wMSBuaWwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMnbWFy
a2Rvd24tdHMtLWVuYWJsZS1jb2RlLWJsb2NrLW1vZGUpCisgICAgICAgICA7OyBGb3IgZWFjaCBl
bGlnaWJsZSBjb21tYW5kLCBleGVjdXRlIGl0IGluIGEgY29kZS1ibG9jayBjb250ZXh0LAorICAg
ICAgICAgOzsgb3RoZXJ3aXNlIGluIHRoZSBgbWFya2Rvd24tdHMtbW9kZScgYnVmZmVyJ3MgY29u
dGV4dC4KKyAgICAgICAgIChhZGQtaG9vayAncHJlLWNvbW1hbmQtaG9vaworICAgICAgICAgICAg
ICAgICAgICMnbWFya2Rvd24tdHMtLW1heWJlLXJ1bi1jb21tYW5kLWluLWNvZGUtYmxvY2sgbmls
ICdsb2NhbCkpKQogCiAgICh0cmVlc2l0LW1ham9yLW1vZGUtc2V0dXApCi0gIChtYXJrZG93bi10
cy0tc2V0LWhpZGUtbWFya3VwIG1hcmtkb3duLXRzLWhpZGUtbWFya3VwKSkKKworICA7OyBEbyBu
b3QgZW5hYmxlIGBqaXQtbG9jay1tb2RlJyBpbiBpbmRpcmVjdCBidWZmZXJzIHN1Y2ggYXMgdGhl
IG9uZQorICA7OyB3ZSB1c2UgZm9yIGNvZGUgYmxvY2sgY29tbWFuZHMuCisgICh1bmxlc3MgKGJ1
ZmZlci1iYXNlLWJ1ZmZlcikKKyAgICAoaml0LWxvY2stcmVnaXN0ZXIgIydtYXJrZG93bi10cy0t
Zm9udGlmeS1iYXJlLXVyaSkpCisKKyAgKHVubGVzcyBtYXJrZG93bi10cy0tc2V0LXVwLWlubGlu
ZQorICAgIDs7IE9yZGVyIG1hdHRlcnM6IGBtYXJrZG93bi10cy0tc2V0LWhpZGUtbWFya3VwJyBj
YWxscyBgZm9udC1sb2NrLWZsdXNoJworICAgIDs7IChvbmx5IG1lYW5pbmdmdWwgb25jZSBgdHJl
ZXNpdC1tYWpvci1tb2RlLXNldHVwJyBoYXMgd2lyZWQgdXAKKyAgICA7OyBmb250LWxvY2spLCBh
bmQgYG1hcmtkb3duLXRzLWRlZmF1bHQtZm9sZGluZycgY2FsbHMgb3V0bGluZQorICAgIDs7IGNv
bW1hbmRzIHRoYXQgcmVseSBvbiBgb3V0bGluZS1zZWFyY2gtZnVuY3Rpb24nLCB3aGljaAorICAg
IDs7IGB0cmVlc2l0LW1ham9yLW1vZGUtc2V0dXAnIGluc3RhbGxzIGZyb20gYHRyZWVzaXQtb3V0
bGluZS1wcmVkaWNhdGUnLgorICAgIChtYXJrZG93bi10cy0tc2V0LWhpZGUtbWFya3VwIG1hcmtk
b3duLXRzLWhpZGUtbWFya3VwKQorICAgIDs7IFJlc3BlY3QgdGhlIHVzZXIncyBkZWZhdWx0IG91
dGxpbmUgZm9sZGluZy4KKyAgICAocGNhc2UgbWFya2Rvd24tdHMtZGVmYXVsdC1mb2xkaW5nCisg
ICAgICAoJ3Nob3ctYWxsIChpZ25vcmUpKQorICAgICAgKCdmb2xkLWFsbCAob3V0bGluZS1oaWRl
LXN1YmxldmVscyAxKSkKKyAgICAgICgnZm9sZC1oZWFkaW5ncyAob3V0bGluZS1zaG93LWFsbCkK
KyAgICAgICAgICAgICAgICAgICAgICAob3V0bGluZS1oaWRlLXJlZ2lvbi1ib2R5IChwb2ludC1t
aW4pIChwb2ludC1tYXgpKSkpKSkKKworKGRlZnVuIG1hcmtkb3duLXRzLW1vZGUtaW5zdGFsbC1w
YXJzZXJzIChhcmcpCisgICJJbnN0YWxsIGBtYXJrZG93bi10cy1tb2RlJyB0cmVlLXNpdHRlciBs
YW5ndWFnZSBwYXJzZXJzLgorSWYgbmVlZGVkLCBpbnN0YWxsIHRoZSByZXF1aXJlZCBwYXJzZXJz
IGZvciBgbWFya2Rvd24nIGFuZCBgbWFya2Rvd24taW5saW5lJy4KK1dpdGggYSBwcmVmaXggYXJn
dW1lbnQsIEFSRywgaWYgbmVlZGVkLCBpbnN0YWxsIHBhcnNlcnMgZm9yIGBodG1sJywKK2B5YW1s
JywgYW5kIGB0b21sJy4iCisgIChpbnRlcmFjdGl2ZSAiUCIpCisgICh1bmxlc3MgKHRyZWVzaXQt
cmVhZHktcCAnbWFya2Rvd24gdCkKKyAgICAodHJlZXNpdC1pbnN0YWxsLWxhbmd1YWdlLWdyYW1t
YXIgJ21hcmtkb3duKSkKKyAgKHVubGVzcyAodHJlZXNpdC1yZWFkeS1wICdtYXJrZG93bi1pbmxp
bmUgdCkKKyAgICAodHJlZXNpdC1pbnN0YWxsLWxhbmd1YWdlLWdyYW1tYXIgJ21hcmtkb3duLWlu
bGluZSkpCisgICh3aGVuIGFyZworICAgICh1bmxlc3MgKHRyZWVzaXQtcmVhZHktcCAnaHRtbCB0
KQorICAgICAgKHJlcXVpcmUgJ2h0bWwtdHMtbW9kZSkKKyAgICAgICh0cmVlc2l0LWluc3RhbGwt
bGFuZ3VhZ2UtZ3JhbW1hciAnaHRtbCkpCisgICAgKHVubGVzcyAodHJlZXNpdC1yZWFkeS1wICd5
YW1sIHQpCisgICAgICAocmVxdWlyZSAneWFtbC10cy1tb2RlKQorICAgICAgKHRyZWVzaXQtaW5z
dGFsbC1sYW5ndWFnZS1ncmFtbWFyICd5YW1sKSkKKyAgICAodW5sZXNzICh0cmVlc2l0LXJlYWR5
LXAgJ3RvbWwgdCkKKyAgICAgIChyZXF1aXJlICd0b21sLXRzLW1vZGUpCisgICAgICAodHJlZXNp
dC1pbnN0YWxsLWxhbmd1YWdlLWdyYW1tYXIgJ3RvbWwpKSkpCiAKIDs7OyMjI2F1dG9sb2FkCiAo
ZGVmaW5lLWRlcml2ZWQtbW9kZSBtYXJrZG93bi10cy1tb2RlIHRleHQtbW9kZSAiTWFya2Rvd24i
Ci0gICJNYWpvciBtb2RlIGZvciBlZGl0aW5nIE1hcmtkb3duIHVzaW5nIHRyZWUtc2l0dGVyIGdy
YW1tYXIuIgotCi0gIChzZXRxLWxvY2FsIGNvbW1lbnQtc3RhcnQgIjwhLS0gIikKLSAgKHNldHEt
bG9jYWwgY29tbWVudC1lbmQgIiAtLT4iKQotCi0gIChzZXRxLWxvY2FsIGZvbnQtbG9jay1kZWZh
dWx0cyBuaWwKLQkgICAgICB0cmVlc2l0LWZvbnQtbG9jay1mZWF0dXJlLWxpc3QgJygoZGVsaW1p
dGVyIGhlYWRpbmcpCi0JCQkJCSAgICAgICAocGFyYWdyYXBoKQotCQkJCQkgICAgICAgKHBhcmFn
cmFwaC1pbmxpbmUpKSkKLQotICAoc2V0cS1sb2NhbCB0cmVlc2l0LXNpbXBsZS1pbWVudS1zZXR0
aW5ncwotICAgICAgICAgICAgICBgKCgiSGVhZGluZ3MiICwjJ21hcmtkb3duLXRzLWltZW51LW5v
ZGUtcAotICAgICAgICAgICAgICAgICBuaWwgLCMnbWFya2Rvd24tdHMtaW1lbnUtbmFtZS1mdW5j
dGlvbikpKQotICAoc2V0cS1sb2NhbCB0cmVlc2l0LW91dGxpbmUtcHJlZGljYXRlICMnbWFya2Rv
d24tdHMtb3V0bGluZS1wcmVkaWNhdGUpCi0KLSAgKHdoZW4gKGFuZCAodHJlZXNpdC1lbnN1cmUt
aW5zdGFsbGVkICdtYXJrZG93bikKLSAgICAgICAgICAgICAodHJlZXNpdC1lbnN1cmUtaW5zdGFs
bGVkICdtYXJrZG93bi1pbmxpbmUpKQotICAgICh0cmVlc2l0LXBhcnNlci1jcmVhdGUgJ21hcmtk
b3duLWlubGluZSkKLSAgICAodHJlZXNpdC1wYXJzZXItY3JlYXRlICdtYXJrZG93bikKLSAgICAo
bWFya2Rvd24tdHMtc2V0dXApKSkKKyAgIk1ham9yIG1vZGUgZm9yIGVkaXRpbmcgTWFya2Rvd24g
dXNpbmcgdHJlZS1zaXR0ZXIgZ3JhbW1hci4KK05PVEU6IFNlZSBgbWFya2Rvd24tdHMtLXNldC11
cC1pbmxpbmUnLiIKKyAgKGlmIChhbmQgKHRyZWVzaXQtZW5zdXJlLWluc3RhbGxlZCAnbWFya2Rv
d24pCisgICAgICAgICAgICh0cmVlc2l0LWVuc3VyZS1pbnN0YWxsZWQgJ21hcmtkb3duLWlubGlu
ZSkpCisgICAgICAobWFya2Rvd24tdHMtLXNldC11cCkKKyAgICAod2FybiAibWFya2Rvd24tdHMt
bW9kZSBjYW5ub3QgYmUgc2V0IHVwOyB1c2luZyBmdW5kYW1lbnRhbC1tb2RlLgorVGhlIHRyZWUt
c2l0dGVyIHBhcnNlcnMgYG1hcmtkb3duJyBhbmQgYG1hcmtkb3duLWlubGluZScgd2VyZSBub3Qg
Zm91bmQuCitVc2UgdGhlIGNvbW1hbmQgYG1hcmtkb3duLXRzLW1vZGUtaW5zdGFsbC1wYXJzZXJz
JyB0byBpbnN0YWxsIHRoZW0uCitXaXRoIGEgcHJlZml4IGFyZ3VtZW50LCBpdCBjYW4gYWxzbyBp
bnN0YWxsIG9wdGlvbmFsIHBhcnNlcnMuIikKKyAgICAoZnVuZGFtZW50YWwtbW9kZSkpKQogCiAo
ZGVyaXZlZC1tb2RlLWFkZC1wYXJlbnRzICdtYXJrZG93bi10cy1tb2RlICcobWFya2Rvd24tbW9k
ZSkpCiAKLTs7OyMjI2F1dG9sb2FkCi0oZGVmdW4gbWFya2Rvd24tdHMtbW9kZS1tYXliZSAoKQot
ICAiRW5hYmxlIGBtYXJrZG93bi10cy1tb2RlJyB3aGVuIGl0cyBncmFtbWFyIGlzIGF2YWlsYWJs
ZS4KLUFsc28gcHJvcG9zZSB0byBpbnN0YWxsIHRoZSBncmFtbWFyIHdoZW4gYHRyZWVzaXQtZW5h
YmxlZC1tb2RlcycKLWlzIHQgb3IgY29udGFpbnMgdGhlIG1vZGUgbmFtZS4iCi0gIChkZWNsYXJl
LWZ1bmN0aW9uIHRyZWVzaXQtbGFuZ3VhZ2UtYXZhaWxhYmxlLXAgInRyZWVzaXQuYyIpCi0gIChp
ZiAob3IgKHRyZWVzaXQtbGFuZ3VhZ2UtYXZhaWxhYmxlLXAgJ21hcmtkb3duKQotICAgICAgICAg
IChlcSB0cmVlc2l0LWVuYWJsZWQtbW9kZXMgdCkKLSAgICAgICAgICAobWVtcSAnbWFya2Rvd24t
dHMtbW9kZSB0cmVlc2l0LWVuYWJsZWQtbW9kZXMpKQotICAgICAgKG1hcmtkb3duLXRzLW1vZGUp
Ci0gICAgKGZ1bmRhbWVudGFsLW1vZGUpKSkKKyhkZWZpbmUtbWlub3ItbW9kZSBtYXJrZG93bi10
cy1jb2RlLWJsb2NrLW1vZGUKKyAgIk1vZGUgZW5hYmxlZCBpZiBwb2ludCBpcyB3aXRoaW4gYSBm
ZW5jZWQgY29kZSBibG9jay4iCisgIDppbnRlcmFjdGl2ZSBuaWwpCiAKIDs7OyMjI2F1dG9sb2Fk
CiAod2hlbiAoYm91bmRwICd0cmVlc2l0LW1ham9yLW1vZGUtcmVtYXAtYWxpc3QpCi0gIChhZGQt
dG8tbGlzdCAnYXV0by1tb2RlLWFsaXN0ICcoIlxcLm1kXFwnIiAuIG1hcmtkb3duLXRzLW1vZGUt
bWF5YmUpKQotICA7OyBUbyBiZSBhYmxlIHRvIHRvZ2dsZSBiZXR3ZWVuIGFuIGV4dGVybmFsIHBh
Y2thZ2UgYW5kIGNvcmUgdHMtbW9kZToKKyAgKGFkZC10by1saXN0ICdhdXRvLW1vZGUtYWxpc3Qg
JygiXFwubWRcXCciIC4gbWFya2Rvd24tdHMtbW9kZSkpCisgIChhZGQtdG8tbGlzdCAnYXV0by1t
b2RlLWFsaXN0ICcoIlxcLm1hcmtkb3duXFwnIiAuIG1hcmtkb3duLXRzLW1vZGUpKQorICAoYWRk
LXRvLWxpc3QgJ2F1dG8tbW9kZS1hbGlzdCAnKCJcXC5tZHhcXCciIC4gbWFya2Rvd24tdHMtbW9k
ZSkpCiAgIChhZGQtdG8tbGlzdCAndHJlZXNpdC1tYWpvci1tb2RlLXJlbWFwLWFsaXN0CiAgICAg
ICAgICAgICAgICAnKG1hcmtkb3duLW1vZGUgLiBtYXJrZG93bi10cy1tb2RlKSkpCiAKLS0gCjIu
NTMuMAoK
--=-=-=--




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

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


Received: (at 80740) by debbugs.gnu.org; 4 Apr 2026 10:48:17 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Sat Apr 04 06:48:17 2026
Received: from localhost ([127.0.0.1]:43832 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1w8yY4-0007p8-Js
	for submit <at> debbugs.gnu.org; Sat, 04 Apr 2026 06:48:17 -0400
Received: from mail-ua1-x930.google.com ([2607:f8b0:4864:20::930]:60711)
 by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128)
 (Exim 4.84_2) (envelope-from <shipmints@HIDDEN>)
 id 1w8yY1-0007oy-Oj
 for 80740 <at> debbugs.gnu.org; Sat, 04 Apr 2026 06:48:14 -0400
Received: by mail-ua1-x930.google.com with SMTP id
 a1e0cc1a2514c-9540bb77b1aso1132757241.1
 for <80740 <at> debbugs.gnu.org>; Sat, 04 Apr 2026 03:48:13 -0700 (PDT)
ARC-Seal: i=1; a=rsa-sha256; t=1775299693; cv=none;
 d=google.com; s=arc-20240605;
 b=NbBuRC14YnXUDImkF6ONV9RDiu4KndUl2DtFyVGSeedEOeetzo/xozemNgi00AcCjx
 Em8FJ7wnUggbClO7dfMcvFiLnSVYmZrN1kkJ17ysQ5nsQzQOLvXmF/SIxdx5BXlBhUmk
 YlbZKoYAHGgpFsKm74eIIzUZX2ef5mS5VRj6huhXHKNeyfJ1hb40l7WUDRdenICu27eV
 zWkas4347YIVStBEj8TNktFOci7DeNWoDrLxB+B1sTzEH5E2N36wZr7z8DpObhFzBoyi
 q+FOUhOmkT71jYhB/qJarKf7TVVU0jpbvQ+TlhDo5YtyF+XjjfFnaqtUsuEXL7kKOLA8
 6sPw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com;
 s=arc-20240605; 
 h=cc:to:subject:message-id:date:from:in-reply-to:references
 :mime-version:dkim-signature;
 bh=mbRRWHBE3caUTwT0r0mLXYq6nQXArpQJKXV95+49fqw=;
 fh=/6bO49cLvtEMRvyO5AKeHUQ94xY+KQcsNazkrYpJfd8=;
 b=LD2pjdz3v5qNkdLjYhXZq9nDKyANb0ynazJF/0588sI8Q7CK86TRSqw/tcI67aD7c/
 /kLpdAFrw5L2s9zyI4CePbknocJVdd6ApNthxLTS8WhZmhWWvkZ/G0aYeXVni6x3/jI9
 L5v66Z5QZr+lwFzVBBN9XJyAOl/JCOk9RctiCaVF0pxedy1yIAmWQgRlr0DXzSWo2U3s
 We05ha3OSP9r17s3satKOmaeJ/YiuhqQxxP1sv4TbaDQdrsJGWC/xE42xxrySwLju7PT
 QPNOiBZ2FRcNXBSYiZsGvuuHWXDR8xWJB17vOhibUeE4TuhKA0hbqzuLxuwuxFvutTMN
 aEwA==; darn=debbugs.gnu.org
ARC-Authentication-Results: i=1; mx.google.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=gmail.com; s=20251104; t=1775299693; x=1775904493; darn=debbugs.gnu.org;
 h=cc:to:subject:message-id:date:from:in-reply-to:references
 :mime-version:from:to:cc:subject:date:message-id:reply-to;
 bh=mbRRWHBE3caUTwT0r0mLXYq6nQXArpQJKXV95+49fqw=;
 b=inSjO5N6HlUBDHFsBmKWubOsKo46tRDLena85qqpnm/XFw/+HMAoounExhLryx1oa5
 C7O4OsByWVBiu3wc5/76Exu+5Z9BEOmDGyDuHPTIdSrn42LSgeYsQMgC5wL3YJSMzxAj
 ymDCvlbN+QRPlmKSfSx5neBjB8Epk79nJHYFSYkxL3tPvC/4tlCHKCxCcyKypz/EOfb5
 SmSiA5ujASzScKLm6VNxJZ0ZEHhAXbhsgRhul4aRTUu1xfRGKZ8n7gLP0L+kEqyYxmip
 xMsIgaa2bNxWHxmLDGHIca3NenazZj4BY83ljWh9yn9YvaDTdGZMbw+fJbOnnSvBwnBY
 87Pw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20251104; t=1775299693; x=1775904493;
 h=cc:to:subject:message-id:date:from:in-reply-to:references
 :mime-version:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
 :message-id:reply-to;
 bh=mbRRWHBE3caUTwT0r0mLXYq6nQXArpQJKXV95+49fqw=;
 b=FMIfzyuCLj5B0/d10vEuN4wJAGX3Gzlkq2OHwqg132h/9UmMcL/MWcOD5LmRGgrY1H
 vJ9KzoZEF9k+qJqCt4fIgMrqXokzInFct1xk6c+4SII/ANtjz4P7+A7Lb2Diaa0sVhWD
 yGt5LM6WtnMBQftoexgwyUUehFmzA8/VZu/017s4/0XMP/ZH7/eMs5bG+Xy6oV+Di/c9
 z/NKCYLTZMoFQZ3RP79ri4xLzRhWDBmrwc3w1s3MirTwQjm/dXO+mmTomzgFAJTDojki
 AxwTLYi/NWHxoxn1Tsu4RmqQ/UE1zQLCPcW7CF0tNf1dZwAKtP/74AsT8KksxXcVEdVF
 Aarg==
X-Gm-Message-State: AOJu0YwN+3hr/gr9HRmgZfAaLZPMP8KhqtGiQhOgq6wMEafL/UKen5GQ
 dVnRM2APHokCy9jvZrDYsdWab1+eSWyx1DIxO1rASu4COj+s9lJVjsRDEmkn7rEANtI6/oYX5uX
 x6nRoNlgIiDgIXZgw2squVAsg3zhOkI8=
X-Gm-Gg: AeBDiesszcBltHYKJEL60kHwQoK2sf6dvI3zfKzXUnc6IBopMvc9j6sYTlYqC2LnZWF
 JaXvSDvegrLQpehlZsPHWqPhp63qxqCyXq8z940rXPtMGEvYUw/LPM2rheQt1qXPS5Dwo4Thzso
 GEeX9t0Zw6s/IKYRXCMXL/+OMUPzwuTvWQg8d33xIL9YZsRSOj2K5qD2qI/AoZBw0Y0jBPi5iiE
 Jq+OG12XyjWQsctNRvTPL1kFeJAxtQC2Byr/vQyH1xnl0P90fs95QmhX/rKFff3sCLxSlOTaHsj
 AClV2+JW6FoqXQ+OIKMX0VgMr6XYZPjCvfMoatJzQws+w2TL4UJcJ2xUJ+ayOQY=
X-Received: by 2002:a05:6102:6044:b0:605:27db:c899 with SMTP id
 ada2fe7eead31-605a50e32f0mr2038159137.29.1775299692803; Sat, 04 Apr 2026
 03:48:12 -0700 (PDT)
MIME-Version: 1.0
References: <m2zf3jzamy.fsf@HIDDEN>
In-Reply-To: <m2zf3jzamy.fsf@HIDDEN>
From: =?UTF-8?Q?St=C3=A9phane_Marks?= <shipmints@HIDDEN>
Date: Sat, 4 Apr 2026 06:48:01 -0400
X-Gm-Features: AQROBzDsS2S6kR-50JaagU7tSwAgTLt79HA8q_tJnTYkVCxgLUqiM7LummhJHCY
Message-ID: <CAN+1HbrPGi5BY1EJ0B8Hgzbru_Q9TACCQGmkT63mXet_ouT0Ug@HIDDEN>
Subject: Re: bug#80740: 31.0.50; Improve 'markdown-ts-mode'
To: Rahul Martim Juliato <rahuljuliato@HIDDEN>
Content-Type: multipart/alternative; boundary="0000000000008f3b2d064ea02b23"
X-Spam-Score: 1.0 (+)
X-Debbugs-Envelope-To: 80740
Cc: Yuan Fu <casouri@HIDDEN>, 80740 <at> debbugs.gnu.org
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: 0.0 (/)

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

On Fri, Apr 3, 2026 at 11:08=E2=80=AFPM Rahul Martim Juliato <rahuljuliato@=
gmail.com>
wrote:

>
> Hello,
>
> I'm submitting a comprehensive patch that significantly improves
> 'markdown-ts-mode'. I want to briefly explain the context, as the size
> of this patch may raise concerns.
>
> When 'markdown-ts-mode' was first merged into Emacs, it was
> intentionally minimal: roughly 100 lines, just enough to get something
> working, with the expectation of incremental improvements.
>
> In recent months, as users started testing the mode, several issues were
> reported: font-lock leaking beyond code blocks, fill-paragraph merging
> list items, missing faces, non-clickable links, and lack of editing,
> navigation, and folding support. The mode worked for basic
> fontification, but was not yet suitable for regular use.
>
> I decided to put my other projects on hold and work through these
> reports one by one. What began as a set of focused fixes evolved into a
> broader rework of the mode=E2=80=99s internals. Over time, the implementa=
tion
> grew from ~100 lines to approximately 2800.
>
> This work was done in close collaboration with St=C3=A9phane Marks, whose
> reviews, patches, and discussions significantly influenced the design
> and implementation. I consider him a co-author of this work.
>
> Due to strong interdependencies, the changes could not be cleanly split
> into smaller independent patches. As a result, this is submitted as a
> single comprehensive change.
>
> Important note: there are no breaking changes.
>
> Existing behavior is preserved, and all changes are additive. Users of
> 'markdown-ts-mode' will see the same buffers, with improved correctness,
> additional features, and fewer bugs.
>
> Before describing the features, this patch also addresses several bug
> fixes:
>
> 1. fill-paragraph merged adjacent list items into a single paragraph
>    (bug#80613).
>
> 2. Opening a markdown-ts-mode buffer broke dired-hide-details-mode for
>    the rest of the session, due to modifying
>    font-lock-extra-managed-props globally instead of buffer-locally.
>    Fixed using setq-local (bug#80690).
>
> 3. Nested or indented list items were filled incorrectly due to column
>    alignment issues (bug#80625).
>
> 4. Font-lock leaked beyond code blocks due to appended range settings
>    from embedded language modes.
>
> 5. Recursive Markdown code blocks had no fontification.
>
> Some known limitations originate from the tree-sitter grammar and are
> documented in the code (e.g., HTML block handling and block quote
> embedding limitations).
>
> The mode now includes:
>
> Fontification:
> * Dedicated faces for all Markdown elements
> * Extended coverage (tables, entities, etc.)
>
> Links:
> * Clickable inline, reference, and automatic links
> * Reference resolution cache
>
> Code blocks:
> * Tree-sitter and non-tree-sitter language support
> * Embedded editing via markdown-ts-code-block-mode
>
> Editing:
> * Heading and list manipulation
> * Context-aware newline behavior
> * Structure insertion helpers
> * Checkbox toggling
>
> Navigation:
> * Imenu and outline integration
> * Heading traversal commands
>
> Fill:
> * Correct handling of lists, block quotes, and comments
>
> Visual:
> * Inline images
> * Markup hiding
> * Menu integration
>
> Additional resources for evaluation:
> * Full feature checklist:
>
> https://codeberg.org/LionyxML/markdown-ts-mode-lab/src/branch/main/featur=
es.md
>
> * Test file:
>
> https://codeberg.org/LionyxML/markdown-ts-mode-lab/src/branch/main/test.m=
d
>
> * Screenshots:
>   https://codeberg.org/LionyxML/markdown-ts-mode-lab/src/branch/main/demo
>
>
> Overall, this patch brings 'markdown-ts-mode' from a minimal prototype
> to a mode that is practical for everyday Markdown editing.
>
> With this foundation in place, the remaining items in the feature list
> are already in progress, and features such as exporting, HTML preview,
> and a test suite can be added with less disruption.
>
> Thank you for your time and review.
>

Adding Yuan.

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

<div dir=3D"ltr"><div dir=3D"ltr"><div class=3D"gmail_default" style=3D"fon=
t-family:monospace"><span style=3D"font-family:Arial,Helvetica,sans-serif">=
On Fri, Apr 3, 2026 at 11:08=E2=80=AFPM Rahul Martim Juliato &lt;<a href=3D=
"mailto:rahuljuliato@HIDDEN">rahuljuliato@HIDDEN</a>&gt; wrote:</span=
></div></div><div class=3D"gmail_quote gmail_quote_container"><blockquote c=
lass=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;border-left:1px soli=
d rgb(204,204,204);padding-left:1ex"><br>
Hello,<br>
<br>
I&#39;m submitting a comprehensive patch that significantly improves<br>
&#39;markdown-ts-mode&#39;. I want to briefly explain the context, as the s=
ize<br>
of this patch may raise concerns.<br>
<br>
When &#39;markdown-ts-mode&#39; was first merged into Emacs, it was<br>
intentionally minimal: roughly 100 lines, just enough to get something<br>
working, with the expectation of incremental improvements.<br>
<br>
In recent months, as users started testing the mode, several issues were<br=
>
reported: font-lock leaking beyond code blocks, fill-paragraph merging<br>
list items, missing faces, non-clickable links, and lack of editing,<br>
navigation, and folding support. The mode worked for basic<br>
fontification, but was not yet suitable for regular use.<br>
<br>
I decided to put my other projects on hold and work through these<br>
reports one by one. What began as a set of focused fixes evolved into a<br>
broader rework of the mode=E2=80=99s internals. Over time, the implementati=
on<br>
grew from ~100 lines to approximately 2800.<br>
<br>
This work was done in close collaboration with St=C3=A9phane Marks, whose<b=
r>
reviews, patches, and discussions significantly influenced the design<br>
and implementation. I consider him a co-author of this work.<br>
<br>
Due to strong interdependencies, the changes could not be cleanly split<br>
into smaller independent patches. As a result, this is submitted as a<br>
single comprehensive change.<br>
<br>
Important note: there are no breaking changes.<br>
<br>
Existing behavior is preserved, and all changes are additive. Users of<br>
&#39;markdown-ts-mode&#39; will see the same buffers, with improved correct=
ness,<br>
additional features, and fewer bugs.<br>
<br>
Before describing the features, this patch also addresses several bug<br>
fixes:<br>
<br>
1. fill-paragraph merged adjacent list items into a single paragraph<br>
=C2=A0 =C2=A0(bug#80613).<br>
<br>
2. Opening a markdown-ts-mode buffer broke dired-hide-details-mode for<br>
=C2=A0 =C2=A0the rest of the session, due to modifying<br>
=C2=A0 =C2=A0font-lock-extra-managed-props globally instead of buffer-local=
ly.<br>
=C2=A0 =C2=A0Fixed using setq-local (bug#80690).<br>
<br>
3. Nested or indented list items were filled incorrectly due to column<br>
=C2=A0 =C2=A0alignment issues (bug#80625).<br>
<br>
4. Font-lock leaked beyond code blocks due to appended range settings<br>
=C2=A0 =C2=A0from embedded language modes.<br>
<br>
5. Recursive Markdown code blocks had no fontification.<br>
<br>
Some known limitations originate from the tree-sitter grammar and are<br>
documented in the code (e.g., HTML block handling and block quote<br>
embedding limitations).<br>
<br>
The mode now includes:<br>
<br>
Fontification:<br>
* Dedicated faces for all Markdown elements<br>
* Extended coverage (tables, entities, etc.)<br>
<br>
Links:<br>
* Clickable inline, reference, and automatic links<br>
* Reference resolution cache<br>
<br>
Code blocks:<br>
* Tree-sitter and non-tree-sitter language support<br>
* Embedded editing via markdown-ts-code-block-mode<br>
<br>
Editing:<br>
* Heading and list manipulation<br>
* Context-aware newline behavior<br>
* Structure insertion helpers<br>
* Checkbox toggling<br>
<br>
Navigation:<br>
* Imenu and outline integration<br>
* Heading traversal commands<br>
<br>
Fill:<br>
* Correct handling of lists, block quotes, and comments<br>
<br>
Visual:<br>
* Inline images<br>
* Markup hiding<br>
* Menu integration<br>
<br>
Additional resources for evaluation:<br>
* Full feature checklist:<br>
=C2=A0 <a href=3D"https://codeberg.org/LionyxML/markdown-ts-mode-lab/src/br=
anch/main/features.md" rel=3D"noreferrer" target=3D"_blank">https://codeber=
g.org/LionyxML/markdown-ts-mode-lab/src/branch/main/features.md</a><br>
<br>
* Test file:<br>
=C2=A0 <a href=3D"https://codeberg.org/LionyxML/markdown-ts-mode-lab/src/br=
anch/main/test.md" rel=3D"noreferrer" target=3D"_blank">https://codeberg.or=
g/LionyxML/markdown-ts-mode-lab/src/branch/main/test.md</a><br>
<br>
* Screenshots:<br>
=C2=A0 <a href=3D"https://codeberg.org/LionyxML/markdown-ts-mode-lab/src/br=
anch/main/demo" rel=3D"noreferrer" target=3D"_blank">https://codeberg.org/L=
ionyxML/markdown-ts-mode-lab/src/branch/main/demo</a><br>
<br>
<br>
Overall, this patch brings &#39;markdown-ts-mode&#39; from a minimal protot=
ype<br>
to a mode that is practical for everyday Markdown editing.<br>
<br>
With this foundation in place, the remaining items in the feature list<br>
are already in progress, and features such as exporting, HTML preview,<br>
and a test suite can be added with less disruption.<br>
<br>
Thank you for your time and review.<br></blockquote><div><br></div><div cla=
ss=3D"gmail_default" style=3D"font-family:monospace">Adding Yuan.</div></di=
v></div>

--0000000000008f3b2d064ea02b23--




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

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


Received: (at submit) by debbugs.gnu.org; 4 Apr 2026 03:07:36 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Fri Apr 03 23:07:36 2026
Received: from localhost ([127.0.0.1]:38879 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1w8rMG-0001oO-0p
	for submit <at> debbugs.gnu.org; Fri, 03 Apr 2026 23:07:36 -0400
Received: from lists.gnu.org ([2001:470:142::17]:41402)
 by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.84_2) (envelope-from <rahuljuliato@HIDDEN>)
 id 1w8rMD-0001na-SD
 for submit <at> debbugs.gnu.org; Fri, 03 Apr 2026 23:07:34 -0400
Received: from eggs.gnu.org ([2001:470:142:3::10])
 by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.90_1) (envelope-from <rahuljuliato@HIDDEN>)
 id 1w8rM6-0003Mj-7Z
 for bug-gnu-emacs@HIDDEN; Fri, 03 Apr 2026 23:07:26 -0400
Received: from mail-vk1-xa2e.google.com ([2607:f8b0:4864:20::a2e])
 by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128)
 (Exim 4.90_1) (envelope-from <rahuljuliato@HIDDEN>)
 id 1w8rM3-0003jD-SB
 for bug-gnu-emacs@HIDDEN; Fri, 03 Apr 2026 23:07:25 -0400
Received: by mail-vk1-xa2e.google.com with SMTP id
 71dfb90a1353d-5673804da95so983934e0c.0
 for <bug-gnu-emacs@HIDDEN>; Fri, 03 Apr 2026 20:07:23 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=gmail.com; s=20251104; t=1775272042; x=1775876842; darn=gnu.org;
 h=mime-version:message-id:date:subject:to:from:from:to:cc:subject
 :date:message-id:reply-to;
 bh=7jZ5KUux4+VUlvSnyvO5Aoy+6V9lhUn3TAFazshgauc=;
 b=V8ZNBIz6K9uhfafO9iNd+MbOjVneh+cnzsxBhwTavb/q2Uv20NEj+zNUxLm6Oi6Dv6
 6FS9Iw6fogmQ2E9YnWlgq8KPaelN5ZoUI7/fyjT2YnoGM0U3nxfZ6lEQ6k0S7p7jXW+u
 LITqxlFMzCfPVVbMzW8UU4a02VOYpZ5PMg5vvGcYzEaG4qePDMNurQDoVPMoeEqqnkG+
 vpTyN++hpv5xUb19IKcaZA6cUsan5F+OZjO+IAAH/LyF0sPXguySG4Q1YjdU1Mk2ghEb
 3TUQEtTMZSW8Jj+5sIlUsJN2RFRJn0Q+UzM8hBeieKgNxkoN1oRv7/7Et3h2SJvo/2XF
 htPw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20251104; t=1775272042; x=1775876842;
 h=mime-version:message-id:date:subject:to:from:x-gm-gg
 :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
 bh=7jZ5KUux4+VUlvSnyvO5Aoy+6V9lhUn3TAFazshgauc=;
 b=r6rxtChkRcWQyzUZdwj6D9gEQP0brNSUm13TSnG6tzPuHIasYo2DBKL8i7uAV6Qiul
 nHev7/fFwnbfMz9s4Y7f2gBL6cOQCKZppLLLRIfA58HG2Dpq4r0CKaw+97cFtsRo1kZX
 GHej1nfeZ6Em+SJh0/F3TrMKYA/0muEnRT+217m45yOPz3LGSEVPSv3tFX9bXoyKYMbS
 Ub3soqo9VuTanz5+fskPdnn56oWgfSWi7vU5FBqd7YSZvOt1kB4puj4k9JANGWtah6Ok
 O6TKAt7zgXczByS26YzmqPftsgQPfqDY+9m9zxq3Bm0pU7cjmY+h98RMU9zXSfArj7fb
 K6jw==
X-Gm-Message-State: AOJu0YxI0340Z940CcFppsREOyBAS6VJmTSDV/3nfRcHJcbnkqNCXIDc
 N/PI5Y8yPZT1wdpSrgNz794XRnywN6u1aoD6TqJPQ5pNJmaIOqB5ab0CnuFi7w==
X-Gm-Gg: AeBDievxsZyUaHO49aGqMjT7Ny8uRxpFgzpbm1Dsq+5Z8+t2XXcsoHfTfUNwisbgw8T
 10Tn720/eMrVBGd7Z9dnCzXQycnjtGy1nQnW8/OTIKnatLdUElBcWBRFbz7jpdkTTa7TTbct8WS
 kU7N6JQzv0Z3lpZqmkhQk3LdgvUpb7MwlSDouor6CY6tm3RNnlYEduSkXEn93v3DagLQyMNbLOU
 rb/5VMzoVFpNPsCHTdKFHOPkg+P4vcZ5iak0n4z8TGQacvyxm+lqvsigMLkI+1NytH+lc31vFEN
 6zNR8YTFRY4OfVTT87hFc7vRwn7JOgQrOA+HcRvAYM9TSSuSJfI1fPnVU3PvtR9uFM5xLnCCBo+
 Xr2ipYHpWeHw3WOVFntGj91xy7cTUF/D5t2f6YucyhZb/XWjS1p6kE18LuyvouZ1sc1rUHIKHho
 /WFT6xvqAnXxi8I/PLl0/bgD/X/2OPTRd588KFhFGek0Ggw2HgGtgoa4pPigBiLS82bnxfxN+9d
 ERgCDyNFIWDbVoZhXQ0dMAo95LlVWDPu/gOn/Jb2mJhHA==
X-Received: by 2002:a05:6123:105:b0:56c:d753:db14 with SMTP id
 71dfb90a1353d-56dab9e45b1mr1784250e0c.14.1775272041631; 
 Fri, 03 Apr 2026 20:07:21 -0700 (PDT)
Received: from MacBook-Pro.local (201-93-59-37.dial-up.telesp.net.br.
 [201.93.59.37]) by smtp.gmail.com with ESMTPSA id
 71dfb90a1353d-56d9baff553sm8493084e0c.8.2026.04.03.20.07.19
 for <bug-gnu-emacs@HIDDEN>
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 03 Apr 2026 20:07:20 -0700 (PDT)
From: Rahul Martim Juliato <rahuljuliato@HIDDEN>
X-Google-Original-From: Rahul Martim Juliato <rahul.juliato@HIDDEN>
To: bug-gnu-emacs@HIDDEN
Subject: 31.0.50; Improve 'markdown-ts-mode'
X-Debbugs-Cc: 
Date: Sat, 04 Apr 2026 00:07:17 -0300
Message-ID: <m2zf3jzamy.fsf@HIDDEN>
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary="=-=-="
Received-SPF: pass client-ip=2607:f8b0:4864:20::a2e;
 envelope-from=rahuljuliato@HIDDEN; helo=mail-vk1-xa2e.google.com
X-Spam_score_int: -20
X-Spam_score: -2.1
X-Spam_bar: --
X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1,
 DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001,
 RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001,
 SPF_PASS=-0.001 autolearn=ham autolearn_force=no
X-Spam_action: no action
X-Debbugs-Envelope-To: submit
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>

--=-=-=
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable


Hello,

I'm submitting a comprehensive patch that significantly improves
'markdown-ts-mode'. I want to briefly explain the context, as the size
of this patch may raise concerns.

When 'markdown-ts-mode' was first merged into Emacs, it was
intentionally minimal: roughly 100 lines, just enough to get something
working, with the expectation of incremental improvements.

In recent months, as users started testing the mode, several issues were
reported: font-lock leaking beyond code blocks, fill-paragraph merging
list items, missing faces, non-clickable links, and lack of editing,
navigation, and folding support. The mode worked for basic
fontification, but was not yet suitable for regular use.

I decided to put my other projects on hold and work through these
reports one by one. What began as a set of focused fixes evolved into a
broader rework of the mode=E2=80=99s internals. Over time, the implementati=
on
grew from ~100 lines to approximately 2800.

This work was done in close collaboration with St=C3=A9phane Marks, whose
reviews, patches, and discussions significantly influenced the design
and implementation. I consider him a co-author of this work.

Due to strong interdependencies, the changes could not be cleanly split
into smaller independent patches. As a result, this is submitted as a
single comprehensive change.

Important note: there are no breaking changes.

Existing behavior is preserved, and all changes are additive. Users of
'markdown-ts-mode' will see the same buffers, with improved correctness,
additional features, and fewer bugs.

Before describing the features, this patch also addresses several bug
fixes:

1. fill-paragraph merged adjacent list items into a single paragraph
   (bug#80613).

2. Opening a markdown-ts-mode buffer broke dired-hide-details-mode for
   the rest of the session, due to modifying
   font-lock-extra-managed-props globally instead of buffer-locally.
   Fixed using setq-local (bug#80690).

3. Nested or indented list items were filled incorrectly due to column
   alignment issues (bug#80625).

4. Font-lock leaked beyond code blocks due to appended range settings
   from embedded language modes.

5. Recursive Markdown code blocks had no fontification.

Some known limitations originate from the tree-sitter grammar and are
documented in the code (e.g., HTML block handling and block quote
embedding limitations).

The mode now includes:

Fontification:
* Dedicated faces for all Markdown elements
* Extended coverage (tables, entities, etc.)

Links:
* Clickable inline, reference, and automatic links
* Reference resolution cache

Code blocks:
* Tree-sitter and non-tree-sitter language support
* Embedded editing via markdown-ts-code-block-mode

Editing:
* Heading and list manipulation
* Context-aware newline behavior
* Structure insertion helpers
* Checkbox toggling

Navigation:
* Imenu and outline integration
* Heading traversal commands

Fill:
* Correct handling of lists, block quotes, and comments

Visual:
* Inline images
* Markup hiding
* Menu integration

Additional resources for evaluation:
* Full feature checklist:
  https://codeberg.org/LionyxML/markdown-ts-mode-lab/src/branch/main/featur=
es.md

* Test file:
  https://codeberg.org/LionyxML/markdown-ts-mode-lab/src/branch/main/test.md

* Screenshots:
  https://codeberg.org/LionyxML/markdown-ts-mode-lab/src/branch/main/demo


Overall, this patch brings 'markdown-ts-mode' from a minimal prototype
to a mode that is practical for everyday Markdown editing.

With this foundation in place, the remaining items in the feature list
are already in progress, and features such as exporting, HTML preview,
and a test suite can be added with less disruption.

Thank you for your time and review.

--
Rahul Martim Juliato


--=-=-=
Content-Type: application/octet-stream; charset=utf-8
Content-Disposition: attachment;
 filename=0001-Improve-markdown-ts-mode.patch
Content-Transfer-Encoding: base64

RnJvbSBmZTcwZWE5ZjE3YjI1OTA2NjM4MzE1MGVmZGRjYTQ3YTA2Yjc1NmE4IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBSYWh1bCBNYXJ0aW0gSnVsaWF0byA8cmFodWwuanVsaWF0b0Bn
bWFpbC5jb20+CkRhdGU6IEZyaSwgMyBBcHIgMjAyNiAyMzo0MTo0NyAtMDMwMApTdWJqZWN0OiBb
UEFUQ0hdIEltcHJvdmUgJ21hcmtkb3duLXRzLW1vZGUnCk1JTUUtVmVyc2lvbjogMS4wCkNvbnRl
bnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD1VVEYtOApDb250ZW50LVRyYW5zZmVyLUVuY29k
aW5nOiA4Yml0CgpPdmVyaGF1bCAnbWFya2Rvd24tdHMtbW9kZScgd2l0aCBjb21wcmVoZW5zaXZl
IGZvbnRpZmljYXRpb24sCmNvZGUgYmxvY2sgaGFuZGxpbmcsIGVkaXRpbmcgY29tbWFuZHMsIGZp
bGwtcGFyYWdyYXBoIHN1cHBvcnQsCmlubGluZSBpbWFnZSBwcmV2aWV3cywgYW5kIGEgbW9kZSBt
ZW51LgoKKiBsaXNwL3RleHRtb2Rlcy9tYXJrZG93bi10cy1tb2RlLmVsOiBFeHBhbmQgQ29tbWVu
dGFyeSB3aXRoCmRvY3VtZW50YXRpb24gZm9yIGNvZGUgYmxvY2sgbGFuZ3VhZ2UgbW9kZXMsIGNv
ZGUgYmxvY2sKY29tbWFuZHMsIGJpZGlyZWN0aW9uYWwgdGV4dCwgYW5kIGtub3duIHRyZWUtc2l0
dGVyIGdyYW1tYXIKYnVncy4KKG1hcmtkb3duLXRzKTogTmV3IGN1c3RvbWl6YXRpb24gZ3JvdXAg
d2l0aCA6dmVyc2lvbiBhbmQKOnBhY2thZ2UtdmVyc2lvbiB0YWdzLgoobWFya2Rvd24tdHMtaGlk
ZS1tYXJrdXApOiBBZGQgOnZlcnNpb24gYW5kIDpwYWNrYWdlLXZlcnNpb24uCihtYXJrZG93bi10
cy1lbGxpcHNpcyk6IE5ldyBvcHRpb24gZm9yIGZvbGRlZCBoZWFkaW5nIGVsbGlwc2lzLgoobWFy
a2Rvd24tdHMtbWVudS1iYXItc2hvdyk6IE5ldyBvcHRpb24gdG8gdG9nZ2xlIG1vZGUgbWVudS4K
KG1hcmtkb3duLXRzLWRlZmF1bHQtZm9sZGluZyk6IE5ldyBvcHRpb24gZm9yIGRlZmF1bHQgZm9s
ZApsZXZlbC4KKG1hcmtkb3duLXRzLWlubGluZS1pbWFnZXMpOiBOZXcgb3B0aW9uIHRvIGRpc3Bs
YXkgaW5saW5lCmltYWdlcy4KKG1hcmtkb3duLXRzLWltYWdlLW1heC13aWR0aCk6IE5ldyBvcHRp
b24gZm9yIGltYWdlIG1heCB3aWR0aC4KKG1hcmtkb3duLXRzLWRpc3BsYXktcmVtb3RlLWlubGlu
ZS1pbWFnZXMpOiBOZXcgb3B0aW9uIGZvcgpyZW1vdGUgaW1hZ2UgaGFuZGxpbmcuCihtYXJrZG93
bi10cy1jaGVja2VkLWNoZWNrYm94KTogTmV3IG9wdGlvbiBmb3IgY2hlY2tlZCBjaGVja2JveApk
aXNwbGF5IHN0cmluZy4KKG1hcmtkb3duLXRzLXVuY2hlY2tlZC1jaGVja2JveCk6IE5ldyBvcHRp
b24gZm9yIHVuY2hlY2tlZApjaGVja2JveCBkaXNwbGF5IHN0cmluZy4KKG1hcmtkb3duLXRzLXRo
ZW1hdGljLWJyZWFrLWNoYXJhY3Rlcik6IE5ldyBvcHRpb24gZm9yIHRoZW1hdGljCmJyZWFrIGRp
c3BsYXkgY2hhcmFjdGVyLgoobWFya2Rvd24tdHMtZW1waGFzaXMsIG1hcmtkb3duLXRzLWJvbGQp
CihtYXJrZG93bi10cy1zdHJpa2V0aHJvdWdoLCBtYXJrZG93bi10cy1saW5rKQoobWFya2Rvd24t
dHMtbGluay1kZXN0aW5hdGlvbiwgbWFya2Rvd24tdHMtY29kZS1zcGFuKQoobWFya2Rvd24tdHMt
Y29kZS1ibG9jaywgbWFya2Rvd24tdHMtY29kZS1ibG9jay1tYXJrdXAtaGlkZGVuKQoobWFya2Rv
d24tdHMtaW5kZW50ZWQtY29kZS1ibG9jaywgbWFya2Rvd24tdHMtaHRtbC10YWcpCihtYXJrZG93
bi10cy1odG1sLWJsb2NrLCBtYXJrZG93bi10cy10aGVtYXRpYy1icmVhaykKKG1hcmtkb3duLXRz
LWVudGl0eS1yZWZlcmVuY2UpCihtYXJrZG93bi10cy1udW1lcmljLWNoYXJhY3Rlci1yZWZlcmVu
Y2UsIG1hcmtkb3duLXRzLWxhdGV4KQoobWFya2Rvd24tdHMtdGFibGUtaGVhZGVyLCBtYXJrZG93
bi10cy10YWJsZS1jZWxsKQoobWFya2Rvd24tdHMtdGFibGUtZGVsaW1pdGVyLWNlbGwsIG1hcmtk
b3duLXRzLXRhc2stdW5jaGVja2VkKQoobWFya2Rvd24tdHMtdGFzay1jaGVja2VkKTogTmV3IGZh
Y2VzLgoobWFya2Rvd24tdHMtY29kZS1ibG9jay1tb2Rlcyk6IE5ldyB2YXJpYWJsZSByZXBsYWNp
bmcKbWFya2Rvd24tdHMtLWNvZGUtYmxvY2stbGFuZ3VhZ2UtbWFwIGFuZAptYXJrZG93bi10cy1j
b2RlLWJsb2NrLXNvdXJjZS1tb2RlLW1hcCB3aXRoIHVuaWZpZWQgbGFuZ3VhZ2UgdG8KbW9kZSBt
YXBwaW5nIGluY2x1ZGluZyBoZXVyaXN0aWMgbG9va3VwLgoobWFya2Rvd24tdHMtLW1ha2UtbGlu
ay1idXR0b24pOiBOZXcgZnVuY3Rpb24gdG8gY3JlYXRlCmNsaWNrYWJsZSBsaW5rIGJ1dHRvbnMg
d2l0aCBtYWlsdG8sIGJyb3dzZS11cmwsIGFuZCBmaW5kLWZpbGUKZGlzcGF0Y2guCihtYXJrZG93
bi10cy0tZm9udGlmeS1saW5rLWRlc3RpbmF0aW9uKTogTmV3IGZvbnRpZmllciB0aGF0CmhpZGVz
IGxpbmsgZGVzdGluYXRpb25zIHdoZW4gbWFya3VwIGlzIGhpZGRlbi4KKG1hcmtkb3duLXRzLS1s
aW5rLXJlZi1jYWNoZSwgbWFya2Rvd24tdHMtLWxpbmstcmVmLWNhY2hlLXRpY2spCihtYXJrZG93
bi10cy0tbGluay1yZWYtZGVmaW5pdGlvbnMsCm1hcmtkb3duLXRzLS1yZXNvbHZlLWxpbmstcmVm
KTogTmV3IGxpbmsgcmVmZXJlbmNlIGRlZmluaXRpb24KY2FjaGUgd2l0aCBjYXNlLWluc2Vuc2l0
aXZlIG1hdGNoaW5nIHBlciBDb21tb25NYXJrIHNwZWMuCihtYXJrZG93bi10cy0tZm9udGlmeS1s
aW5rLW5vZGUpOiBOZXcgZm9udGlmaWVyIGZvciBpbmxpbmUsCnJlZmVyZW5jZSwgc2hvcnRjdXQs
IGFuZCBjb2xsYXBzZWQgbGlua3MgYXMgY2xpY2thYmxlIGJ1dHRvbnMuCihtYXJrZG93bi10cy0t
Zm9udGlmeS1hdXRvbGluayk6IE5ldyBmb250aWZpZXIgZm9yIFVSSSBhbmQgZW1haWwKYXV0b2xp
bmtzIHdpdGggYW5nbGUgYnJhY2tldCBoaWRpbmcuCihtYXJrZG93bi10cy0tZm9udGlmeS1saW5r
LXJlZi1sYWJlbCkKKG1hcmtkb3duLXRzLS1mb250aWZ5LWxpbmstcmVmLWRlc3RpbmF0aW9uKTog
TmV3IGZvbnRpZmllcnMgZm9yCmxpbmsgcmVmZXJlbmNlIGRlZmluaXRpb25zLgoobWFya2Rvd24t
dHMtLWxhdGV4LWJsb2NrLXZhbGlkLXApCihtYXJrZG93bi10cy0tZm9udGlmeS1sYXRleC1ibG9j
ayk6IE5ldyBMYVRlWC9tYXRoIGZvbnRpZmllcgp3aXRoIGNyb3NzLXBhcmFncmFwaCB2YWxpZGF0
aW9uLgoobWFya2Rvd24tdHMtLWZvbnRpZnktYmFja3NsYXNoLWVzY2FwZSk6IE5ldyBmb250aWZp
ZXIgdGhhdApoaWRlcyBiYWNrc2xhc2ggaW4gZXNjYXBlcyBleGNlcHQgaW5zaWRlIExhVGVYIGJs
b2Nrcy4KKG1hcmtkb3duLXRzLS1kZWNvZGUtZW50aXR5LCBtYXJrZG93bi10cy0tZm9udGlmeS1l
bnRpdHkpOiBOZXcKSFRNTCBlbnRpdHkgZGVjb2RlciBhbmQgZm9udGlmaWVyIHVzaW5nIG9yZy1l
bnRpdGllcyBhbmQKc2dtbC1jaGFyLW5hbWVzIHdpdGggZGlzcGxheSBwcm9wZXJ0eSBmb3IgZGVj
b2RlZCB2YWx1ZXMuCihtYXJrZG93bi10cy0tZm9udGlmeS1jaGVja2JveCk6IE5ldyBmb250aWZp
ZXIgc2hvd2luZyBVbmljb2RlCmNoZWNrYm94IHN5bWJvbHMgd2hlbiBtYXJrdXAgaXMgaGlkZGVu
LgoobWFya2Rvd24tdHMtLWZvbnRpZnktdGhlbWF0aWMtYnJlYWspOiBOZXcgZm9udGlmaWVyIHNo
b3dpbmcKaG9yaXpvbnRhbCBsaW5lIHdoZW4gbWFya3VwIGlzIGhpZGRlbi4KKG1hcmtkb3duLXRz
LS1mb250aWZ5LWNvZGUtYmxvY2spOiBOZXcgZm9udGlmaWVyIGFwcGx5aW5nCmJhY2tncm91bmQg
b3ZlcmxheSB0byBjb2RlIGJsb2NrcyB3aXRoIGxhbmd1YWdlIGFuZCBtb2RlCnByb3BlcnRpZXMu
CihtYXJrZG93bi10cy1jb2RlLWJsb2NrLWF0LXApCihtYXJrZG93bi10cy1jb2RlLWJsb2NrLWxh
bmd1YWdlLWF0KQoobWFya2Rvd24tdHMtY29kZS1ibG9jay1tb2RlLWF0KTogTmV3IGFjY2Vzc29y
cyBmb3IgY29kZSBibG9jawpvdmVybGF5IHByb3BlcnRpZXMuCihtYXJrZG93bi10cy0taW1lbnUt
Y29kZS1ibG9jay1ub2RlLXApOiBOZXcgaGVscGVyIGZvciBpbWVudQpjb2RlIGJsb2NrIGRldGVj
dGlvbi4KKG1hcmtkb3duLXRzLS1pbWFnZS1hbG9uZS1vbi1saW5lLXApCihtYXJrZG93bi10cy0t
Zm9udGlmeS1pbWFnZSk6IE5ldyBpbmxpbmUgaW1hZ2UgZGlzcGxheSB3aXRoCnN0YW5kYWxvbmUg
YW5kIGlubGluZSBwb3NpdGlvbmluZy4KKG1hcmtkb3duLXRzLS1iYXJlLXVybC1yZWdleHApCiht
YXJrZG93bi10cy0tYmFyZS1lbWFpbC11cmktcmVnZXhwKQoobWFya2Rvd24tdHMtLWZvbnRpZnkt
YmFyZS11cmkpOiBOZXcgYmFyZSBVUkwvZW1haWwKZm9udGlmaWNhdGlvbiB2aWEgaml0LWxvY2sg
dXNpbmcgZ290by1hZGRyIHJlZ2V4cHMuCihtYXJrZG93bi10cy0tdHJlZXNpdC1zZXR0aW5ncyk6
IFJld3JpdGUgd2l0aCBkZWRpY2F0ZWQgZmFjZXMsCmN1c3RvbSBmb250aWZpZXJzLCBhbmQgbmV3
IGZvbnQtbG9jayBmZWF0dXJlcyBmb3IgYWxsIGlubGluZSBhbmQKYmxvY2sgZWxlbWVudHMuCiht
YXJrZG93bi10cy0tY29kZS1ibG9jay1sYW5ndWFnZXMpCihtYXJrZG93bi10cy0tY29kZS1ibG9j
ay1ub24tdHMtbW9kZXMpOiBOZXcgYnVmZmVyLWxvY2FsIGFsaXN0cwpmb3IgY29kZSBibG9jayBs
YW5ndWFnZSB0cmFja2luZy4KKG1hcmtkb3duLXRzLS1oYXJ2ZXN0LW1vZGUtdHJlZXNpdC1jb25m
aWd1cmF0aW9uKTogUmVuYW1lZCBmcm9tCm1hcmtkb3duLXRzLS1oYXJ2ZXN0LXRyZWVzaXQtY29u
ZmlncyB3aXRoIGRlbGF5LW1vZGUtaG9va3MuCihtYXJrZG93bi10cy0tY29uZmlndXJlLWN1cnJl
bnQtYnVmZmVyKTogUmVuYW1lZCBmcm9tCm1hcmtkb3duLXRzLS1hZGQtY29uZmlnLWZvci1tb2Rl
OyBkaXNhYmxlIHJhbmdlIHNldHRpbmdzIGFwcGVuZAp0byBwcmV2ZW50IGZvbnQtbG9jayBsZWFr
aW5nLgoobWFya2Rvd24tdHMtLWxhbmd1YWdlLWF0LW5vZGUpOiBOZXcgaGVscGVyIGV4dHJhY3Rp
bmcgbGFuZ3VhZ2UKc3ltYm9sIGZyb20gY29kZV9mZW5jZV9jb250ZW50IG5vZGUuCihtYXJrZG93
bi10cy0tZm9udGlmeS1ub24tdHMtY29kZS1ibG9jayk6IE5ldyBmb250aWZpZXIgZm9yCm5vbi10
cmVlLXNpdHRlciBtb2RlcyB2aWEgdGVtcG9yYXJ5IGJ1ZmZlciBmb250LWxvY2suCihtYXJrZG93
bi10cy0tY29kZS1ibG9jay1sYW5ndWFnZS1tb2RlKTogTmV3IGZ1bmN0aW9uIHdpdGgKaGV1cmlz
dGljIG1vZGUgbmFtZSBwcm9iaW5nLgoobWFya2Rvd24tdHMtLWNvZGUtYmxvY2stdHMtbGFuZ3Vh
Z2UpOiBSZW5hbWVkIGZyb20KbWFya2Rvd24tdHMtLWNvbnZlcnQtY29kZS1ibG9jay1sYW5ndWFn
ZSB3aXRoIHN1cHBvcnQgZm9yIG5vbi10cwptb2RlcyBhbmQgcmVjdXJzaXZlIG1hcmtkb3duIGhh
bmRsaW5nLgoobWFya2Rvd24tdHMtY29kZS1ibG9jay1jb21tYW5kcykKKG1hcmtkb3duLXRzLWNv
ZGUtYmxvY2stdGhpbmctY29tbWFuZHMpCihtYXJrZG93bi10cy1jb2RlLWJsb2NrLXJlZ2lvbi1j
b21tYW5kcyk6IE5ldyBjb21tYW5kIGxpc3RzIGZvcgpjb2RlLWJsb2NrIGNvbnRleHQgZXhlY3V0
aW9uLgoobWFya2Rvd24tdHMtLWVuYWJsZS1jb2RlLWJsb2NrLW1vZGUpCihtYXJrZG93bi10cy0t
bWF5YmUtcnVuLWNvbW1hbmQtaW4tY29kZS1ibG9jaykKKG1hcmtkb3duLXRzLS1jb2RlLWJsb2Nr
LXhyZWYtZmluZC1kZWZpbml0aW9ucykKKG1hcmtkb3duLXRzLS1ydW4tY29tbWFuZC1pbi1jb2Rl
LWJsb2NrKTogTmV3IGNvZGUgYmxvY2sgbWlub3IKbW9kZSB3aXRoIGluZGlyZWN0IGJ1ZmZlciBj
b21tYW5kIGRpc3BhdGNoLgoobWFya2Rvd24tdHMtLXJhbmdlLXNldHRpbmdzKTogVXBkYXRlIHJh
bmdlIGNvbmZpZ3VyYXRpb24uCihtYXJrZG93bi10cy0tcmVtb3ZlLWltYWdlLW92ZXJsYXlzKQoo
bWFya2Rvd24tdHMtLW91dGxpbmUtdmlldy1jaGFuZ2UpOiBOZXcgaGVscGVycyBmb3IgaW1hZ2UK
b3ZlcmxheSBtYW5hZ2VtZW50IGR1cmluZyBvdXRsaW5lIGZvbGQvdW5mb2xkLgoobWFya2Rvd24t
dHMtLXNldC1oaWRlLW1hcmt1cCk6IENsZWFyIGltYWdlIG92ZXJsYXlzIHdoZW4KdG9nZ2xpbmcg
bWFya3VwIHZpc2liaWxpdHkuCihtYXJrZG93bi10cy0tc2V0LWlubGluZS1pbWFnZXMpCihtYXJr
ZG93bi10cy10b2dnbGUtaW5saW5lLWltYWdlcyk6IE5ldyBmdW5jdGlvbnMgZm9yIHRvZ2dsaW5n
CmlubGluZSBpbWFnZSBkaXNwbGF5LgoobWFya2Rvd24tdHMtLXBhcnNlci1oZWFkaW5nLW1heC1s
ZXZlbCk6IE5ldyBjb25zdGFudC4KKG1hcmtkb3duLXRzLS1oZWFkaW5nLWF0LXBvaW50LCBtYXJr
ZG93bi10cy0taGVhZGluZy1sZXZlbCkKKG1hcmtkb3duLXRzLS1zZWN0aW9uLWF0LXBvaW50KTog
TmV3IGhlYWRpbmcgbmF2aWdhdGlvbiBoZWxwZXJzLgoobWFya2Rvd24tdHMtcHJvbW90ZSwgbWFy
a2Rvd24tdHMtZGVtb3RlKTogTmV3IGNvbW1hbmRzIGZvcgpoZWFkaW5nIGFuZCBsaXN0IGl0ZW0g
cHJvbW90aW9uL2RlbW90aW9uIHdpdGggcmVnaW9uIHN1cHBvcnQuCihtYXJrZG93bi10cy0tcHJv
bW90ZS1vci1kZW1vdGUpCihtYXJrZG93bi10cy0tcHJvbW90ZS1vci1kZW1vdGUtcmVnaW9uKTog
TmV3IGhlYWRpbmcgbGV2ZWwKYWRqdXN0bWVudCBmdW5jdGlvbnMuCihtYXJrZG93bi10cy1tb3Zl
LXN1YnRyZWUtdXAsIG1hcmtkb3duLXRzLW1vdmUtc3VidHJlZS1kb3duKToKTmV3IGNvbW1hbmRz
IGZvciBtb3Zpbmcgc2VjdGlvbnMgYW5kIGxpc3QgaXRlbXMuCihtYXJrZG93bi10cy0tc2VjdGlv
bi1mb2xkZWQtcCkKKG1hcmtkb3duLXRzLS1tb3ZlLXN1YnRyZWUtdXAtb3ItZG93bik6IE5ldyBz
dWJ0cmVlIG1vdmUgd2l0aApmb2xkaW5nIHN0YXRlIHByZXNlcnZhdGlvbi4KKG1hcmtkb3duLXRz
LXRvZ2dsZS1jaGVja2JveCk6IE5ldyBjb21tYW5kIHRvIHRvZ2dsZSB0YXNrIGxpc3QKY2hlY2ti
b3hlcy4KKG1hcmtkb3duLXRzLS1saXN0LWl0ZW0tYXQtcG9pbnQpOiBOZXcgaGVscGVyIHdpdGgg
YmxvY2sgcXVvdGUKbWFya2VyIGhhbmRsaW5nLgoobWFya2Rvd24tdHMtLWxpc3QtbWFya2VyLXdp
ZHRoLCBtYXJrZG93bi10cy0tbGlzdC1pdGVtLXJlZ2lvbikKKG1hcmtkb3duLXRzLS1saXN0LW9y
ZGVyZWQtaXRlbS1wKTogTmV3IGxpc3QgaXRlbSBoZWxwZXJzLgoobWFya2Rvd24tdHMtLWxpc3Qt
cHJvbW90ZS1vci1kZW1vdGUpOiBOZXcgZnVuY3Rpb24gd2l0aCBvcmRlcmVkCmxpc3QgbmVzdGlu
ZyBndWFyZC4KKG1hcmtkb3duLXRzLS1saXN0LW5vZGUtYm9sLCBtYXJrZG93bi10cy0tbGlzdC1t
b3ZlKTogTmV3IGxpc3QKaXRlbSBtb3ZlbWVudCBmdW5jdGlvbnMuCihtYXJrZG93bi10cy1yZW51
bWJlci1saXN0KTogTmV3IGNvbW1hbmQgZm9yIHNlcXVlbnRpYWwgbGlzdApyZW51bWJlcmluZyB3
aXRoIHByZWZpeCBhcmd1bWVudCBzdXBwb3J0LgoobWFya2Rvd24tdHMtLWxpc3QtaXRlbS1uZXct
bWFya2VyKQoobWFya2Rvd24tdHMtLW5ldy1tYXJrZXItZm9yLWxpbmUpOiBOZXcgbWFya2VyIHN0
cmluZyBnZW5lcmF0b3JzCmZvciBsaXN0IGl0ZW0gaW5zZXJ0aW9uLgoobWFya2Rvd24tdHMtLWxp
bmUtYmxvY2stcXVvdGUtZGVwdGgpOiBOZXcgaGVscGVyIGNvdW50aW5nIGJsb2NrCnF1b3RlIGRl
cHRoLgoobWFya2Rvd24tdHMtbmV3bGluZSk6IE5ldyBSRVQgY29tbWFuZCBmb3IgY29udGV4dC1h
d2FyZQpuZXdsaW5lLgoobWFya2Rvd24tdHMtaW5zZXJ0LWxpc3QtaXRlbSk6IE5ldyBNLVJFVCBj
b21tYW5kIHRoYXQgY3JlYXRlcyBhCm5ldyBsaXN0IGl0ZW0uCihtYXJrZG93bi10cy0tZmlsbC11
bmZpbGxhYmxlLWJsb2NrLXF1ZXJ5KTogTmV3IHRyZWUtc2l0dGVyCnF1ZXJ5IGZvciB1bmZpbGxh
YmxlIGJsb2Nrcy4KKG1hcmtkb3duLXRzLS1saXN0LWl0ZW0tdGV4dC1jb2x1bW4pOiBOZXcgaGVs
cGVyIGZvciBsaXN0IGl0ZW0KdGV4dCBhbGlnbm1lbnQuCihtYXJrZG93bi10cy0tZmlsbC1saXN0
LWl0ZW0pOiBOZXcgZnVuY3Rpb24gZmlsbGluZyB3aXRoaW4gbGlzdAppdGVtcyB3aXRob3V0IG1l
cmdpbmcgYWRqYWNlbnQgaXRlbXMuCihtYXJrZG93bi10cy0tYWRhcHRpdmUtZmlsbCk6IE5ldyBh
ZGFwdGl2ZSBmaWxsIGZ1bmN0aW9uIGZvcgpsaXN0IGl0ZW0gY29udGludWF0aW9uLgoobWFya2Rv
d24tdHMtLWZpbGwtZm9yd2FyZC1wYXJhZ3JhcGgpOiBOZXcgcGFyYWdyYXBoIG1vdGlvbgpyZXNw
ZWN0aW5nIGxpc3QgaXRlbXMgYW5kIHVuZmlsbGFibGUgYmxvY2tzLgoobWFya2Rvd24tdHMtZmls
bC1wYXJhZ3JhcGgpOiBOZXcgZmlsbC1wYXJhZ3JhcGgtZnVuY3Rpb24gd2l0aApjb25kKiBkaXNw
YXRjaCBmb3IgbGlzdHMsIGJsb2NrIHF1b3RlcywgSFRNTCBjb21tZW50cywgYW5kCnVuZmlsbGFi
bGUgYmxvY2tzLgoobWFya2Rvd24tdHMtLWZpbGwtaHRtbC1jb21tZW50KTogTmV3IEhUTUwgY29t
bWVudCBmaWxsZXIgd2l0aApjb250aW51YXRpb24gYWxpZ25tZW50LgoobWFya2Rvd24tdHMtLWJs
b2NrLXF1b3RlLXByZWZpeCk6IE5ldyBoZWxwZXIgcHJlc2VydmluZwpleGlzdGluZyBibG9jayBx
dW90ZSBtYXJrZXIgc3R5bGUuCihtYXJrZG93bi10cy0tZmlsbC1ibG9jay1xdW90ZSk6IE5ldyBi
bG9jayBxdW90ZSBmaWxsZXIgd2l0aApsaXN0IGl0ZW0gdGV4dCBjb2x1bW4gYWxpZ25tZW50Lgoo
bWFya2Rvd24tdHMtZW1waGFzaXMtYWxpc3QpOiBOZXcgYWxpc3Qgb2YgZW1waGFzaXMgbWFya2Vy
cy4KKG1hcmtkb3duLXRzLS1lbXBoYXNpcy1ub2RlLWF0LXBvaW50KTogTmV3IHRyZWUtc2l0dGVy
IGJhc2VkCmVtcGhhc2lzIGRldGVjdGlvbi4KKG1hcmtkb3duLXRzLXJlbW92ZS1lbXBoYXNpcyk6
IE5ldyBjb21tYW5kIHJlbW92aW5nIGVtcGhhc2lzIGF0CnBvaW50IG9yIHJlZ2lvbi4KKG1hcmtk
b3duLXRzLWVtcGhhc2l6ZSk6IE5ldyBpbnRlcmFjdGl2ZSBlbXBoYXNpcyBpbnNlcnRpb24gd2l0
aApyZWdpb24gd3JhcHBpbmcgYW5kIHdvcmQtYXQtcG9pbnQgc3VwcG9ydC4KKG1hcmtkb3duLXRz
LWluc2VydC1zdHJ1Y3R1cmUpOiBOZXcgY29tbWFuZCBmb3IgaW5zZXJ0aW5nIGNvZGUKYmxvY2tz
LCBibG9jayBxdW90ZXMsIGFuZCBkaXZpZGVycy4KKG1hcmtkb3duLXRzLS1pbnNlcnQtY29kZS1i
bG9jayk6IE5ldyBmdW5jdGlvbiB3aXRoIGxhbmd1YWdlCmNvbXBsZXRpb24gZnJvbSBrbm93biBt
b2Rlcy4KKG1hcmtkb3duLXRzLS1pbnNlcnQtYmxvY2stcXVvdGUpOiBOZXcgZnVuY3Rpb24gd2l0
aCByZWdpb24Kd3JhcHBpbmcuCihtYXJrZG93bi10cy0taW5zZXJ0LWRpdmlkZXIpOiBOZXcgZnVu
Y3Rpb24gZm9yIGhvcml6b250YWwKcnVsZXMuCihtYXJrZG93bi10cy0tYXBwbHktZWxsaXBzaXMp
OiBOZXcgZnVuY3Rpb24gYXBwbHlpbmcgY3VzdG9tCmVsbGlwc2lzIHZpYSBkaXNwbGF5IHRhYmxl
LgoobWFya2Rvd24tdHMtLXNldC11cCk6IFJlbmFtZWQgZnJvbSBtYXJrZG93bi10cy1zZXR1cDsg
cmVnaXN0ZXIKaml0LWxvY2sgZm9yIGJhcmUgVVJJIGZvbnRpZmljYXRpb247IG1hbmFnZQpmb250
LWxvY2stZXh0cmEtbWFuYWdlZC1wcm9wcyBsb2NhbGx5LgoobWFya2Rvd24tdHMtb3V0bGluZS1j
eWNsZSk6IE5ldyBUQUIgY29tbWFuZCBjeWNsaW5nIG91dGxpbmUKdmlzaWJpbGl0eSBvbiBoZWFk
aW5ncy4KKG1hcmtkb3duLXRzLW1vZGUtbWFwKTogTmV3IGtleW1hcCB3aXRoIFJFVCBib3VuZCB0
bwptYXJrZG93bi10cy1uZXdsaW5lIChjb250ZXh0LWF3YXJlIGNvbnRpbnVhdGlvbiksIE0tUkVU
IGJvdW5kIHRvCm1hcmtkb3duLXRzLWluc2VydC1saXN0LWl0ZW0gKGV4cGxpY2l0IG5ldyBpdGVt
IGNyZWF0aW9uKSwgYW5kCmJpbmRpbmdzIGZvciBoZWFkaW5nIG5hdmlnYXRpb24sIHN0cnVjdHVy
ZSBlZGl0aW5nLCBlbXBoYXNpcywKYW5kIGxpc3Qgb3BlcmF0aW9ucy4KKG1hcmtkb3duLXRzLWNv
ZGUtYmxvY2stbW9kZS1tYXApOiBOZXcga2V5bWFwIGZvciBjb2RlIGJsb2NrCmNvbnRleHQgd2l0
aCBpbmRlbnQsIGNvbW1lbnQsIHhyZWYsIGZpbGwsIGFuZCBNLVJFVCBiaW5kaW5nczsKb3ZlcnJp
ZGVzIGJvdGggUkVUIGFuZCBNLVJFVCB0bwplbGVjdHJpYy1uZXdsaW5lLWFuZC1tYXliZS1pbmRl
bnQgdG8gcHJldmVudCBsaXN0IG1hcmtlcnMgaW5zaWRlCmNvZGUgYmxvY2tzLgoobWFya2Rvd24t
dHMtbW9kZS1tZW51KTogTmV3IG1lbnUgYmFyIHdpdGggU2hvdy9IaWRlLCBOYXZpZ2F0ZQpIZWFk
aW5ncywgRWRpdCBTdHJ1Y3R1cmUsIGFuZCBFZGl0aW5nIHNlY3Rpb25zLgoobWFya2Rvd24tdHMt
bW9kZSk6IEFkZCBvdXRsaW5lLW1pbm9yLW1vZGUsIGVsbGlwc2lzLCBmb2xkaW5nLApmaWxsLXBh
cmFncmFwaCBpbnRlZ3JhdGlvbiwgY29kZS1ibG9jay1tb2RlIGhvb2tzLCBjb21tZW50CnNldHRp
bmdzLCBhbmQgb3V0bGluZS12aWV3LWNoYW5nZS1ob29rLgoobWFya2Rvd24tdHMtY29kZS1ibG9j
ay1tb2RlKTogTmV3IG1pbm9yIG1vZGUgZm9yIGNvZGUgYmxvY2sKY29udGV4dC4KKG1hcmtkb3du
LXRzLW1vZGUtbWF5YmUpOiBVcGRhdGUgZG9jc3RyaW5nLgpBdXRvLW1vZGUtYWxpc3Q6IEFkZCAu
bWFya2Rvd24gYW5kIC5tZHggZXh0ZW5zaW9ucy4KSW5jbHVkZXMgZml4ZXMgZm9yOiAoYnVnIzgw
NjEzKSAoYnVnIzgwNjI1KSAoYnVnIzgwNjkwKQoKQ28tYXV0aG9yZWQtYnk6IFN0w6lwaGFuZSBN
YXJrcyA8c2hpcG1pbnRzQGdtYWlsLmNvbT4KLS0tCiBsaXNwL3RleHRtb2Rlcy9tYXJrZG93bi10
cy1tb2RlLmVsIHwgMjY3OCArKysrKysrKysrKysrKysrKysrKysrKysrKy0tCiAxIGZpbGUgY2hh
bmdlZCwgMjQ5OSBpbnNlcnRpb25zKCspLCAxNzkgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEv
bGlzcC90ZXh0bW9kZXMvbWFya2Rvd24tdHMtbW9kZS5lbCBiL2xpc3AvdGV4dG1vZGVzL21hcmtk
b3duLXRzLW1vZGUuZWwKaW5kZXggNjU3ZDZiYzQ2NmQuLjZmZTNmNzc2MDFhIDEwMDY0NAotLS0g
YS9saXNwL3RleHRtb2Rlcy9tYXJrZG93bi10cy1tb2RlLmVsCisrKyBiL2xpc3AvdGV4dG1vZGVz
L21hcmtkb3duLXRzLW1vZGUuZWwKQEAgLTIsMTAgKzIsMTIgQEAKIAogOzsgQ29weXJpZ2h0IChD
KSAyMDI0LTIwMjYgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCiAKLTs7IEF1dGhvciAg
ICAgOiBSYWh1bCBNYXJ0aW0gSnVsaWF0byA8cmFodWwuanVsaWF0b0BnbWFpbC5jb20+Ci07OyBN
YWludGFpbmVyIDogUmFodWwgTWFydGltIEp1bGlhdG8gPHJhaHVsLmp1bGlhdG9AZ21haWwuY29t
PgotOzsgQ3JlYXRlZCAgICA6IEFwcmlsIDIwMjQKLTs7IEtleXdvcmRzICAgOiBtYXJrZG93biBt
ZCBsYW5ndWFnZXMgdHJlZS1zaXR0ZXIKKzs7IEF1dGhvciAgICAgICAgICAgOiBSYWh1bCBNYXJ0
aW0gSnVsaWF0byA8cmFodWwuanVsaWF0b0BnbWFpbC5jb20+Cis7OyBNYWludGFpbmVyICAgICAg
IDogUmFodWwgTWFydGltIEp1bGlhdG8gPHJhaHVsLmp1bGlhdG9AZ21haWwuY29tPgorOzsgQ3Jl
YXRlZCAgICAgICAgICA6IEFwcmlsIDIwMjQKKzs7IFZlcnNpb24gICAgICAgICAgOiAgMS4wCis7
OyBQYWNrYWdlLVJlcXVpcmVzIDogKChlbWFjcyAiMzEuMSIpKQorOzsgS2V5d29yZHMgICAgICAg
ICA6IG1hcmtkb3duIG1kIHRleHQgZWRpdCBsYW5ndWFnZXMgdHJlZS1zaXR0ZXIKIAogOzsgVGhp
cyBmaWxlIGlzIHBhcnQgb2YgR05VIEVtYWNzLgogCkBAIC0yMiwxMDEgKzI0LDIwMiBAQAogOzsg
WW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGlj
IExpY2Vuc2UKIDs7IGFsb25nIHdpdGggR05VIEVtYWNzLiAgSWYgbm90LCBzZWUgPGh0dHBzOi8v
d3d3LmdudS5vcmcvbGljZW5zZXMvPi4KIAotOzs7IFRyZWUtc2l0dGVyIGxhbmd1YWdlIHZlcnNp
b25zCis7OzsgQ29tbWVudGFyeToKKworOzsgVHJlZS1zaXR0ZXIgTGFuZ3VhZ2UgVmVyc2lvbnMK
IDs7CiA7OyBtYXJrZG93bi10cy1tb2RlIGhhcyBiZWVuIHRlc3RlZCB3aXRoIHRoZSBmb2xsb3dp
bmcgZ3JhbW1hcnMgYW5kIHZlcnNpb246CiA7OyAtIHRyZWUtc2l0dGVyLW1hcmtkb3duOiB2MC40
LjEKIDs7IC0gdHJlZS1zaXR0ZXItbWFya2Rvd24taW5saW5lOiB2MC40LjEKIDs7Ci07OyBXZSB0
cnkgb3VyIGJlc3QgdG8gbWFrZSBidWlsdGluIG1vZGVzIHdvcmsgd2l0aCBsYXRlc3QgZ3JhbW1h
cgotOzsgdmVyc2lvbnMsIHNvIGEgbW9yZSByZWNlbnQgZ3JhbW1hciBoYXMgYSBnb29kIGNoYW5j
ZSB0byB3b3JrIHRvby4KLTs7IFNlbmQgdXMgYSBidWcgcmVwb3J0IGlmIGl0IGRvZXNuJ3QuCi0K
LTs7OyBDb21tZW50YXJ5OgorOzsgV2UgdHJ5IG91ciBiZXN0IHRvIG1ha2UgYnVpbHQtaW4gbW9k
ZXMgd29yayB3aXRoIGxhdGVzdCBncmFtbWFyCis7OyB2ZXJzaW9ucywgc28gYSBtb3JlIHJlY2Vu
dCBncmFtbWFyIGhhcyBhIGdvb2QgY2hhbmNlIHRvIHdvcmsuICBTZW5kCis7OyB1cyBhIGJ1ZyBy
ZXBvcnQgaWYgaXQgZG9lc24ndC4KKzs7Cis7OyBCaWRpcmVjdGlvbmFsIFRleHQgQ29uc2lkZXJh
dGlvbnMKKzs7Cis7OyBUZXh0IHdpdGggbWFya3VwIG1heSBuZWVkIGFuIGV4dHJhIG5ld2xpbmUg
YmVmb3JlIGJpZGlyZWN0aW9uYWwgdGV4dAorOzsgZm9yIGl0IHRvIHNob3cgY29ycmVjdGx5LiAg
VGhpcyBpcyBhIGxpbWl0YXRpb24gaW4gdGhlIEVtYWNzIGRpc3BsYXkKKzs7IGVuZ2luZS4KKzs7
Cis7OyBDb2RlIEJsb2NrIExhbmd1YWdlIE1vZGUgQ29uc2lkZXJhdGlvbnMKKzs7Cis7OyBGZW5j
ZWQgY29kZSBibG9jayBsYW5ndWFnZSBtb2RlcyBhcmUgZGVyaXZlZCBmcm9tIHRoZSB0YWJsZQor
OzsgYG1hcmtkb3duLXRzLWNvZGUtYmxvY2stbW9kZXMnIGFuZCBoZXVyaXN0aWNzIGFkZGluZyAi
LXRzLW1vZGUiIGFuZAorOzsgIi1tb2RlIiB0byB0aGUgbGFuZ3VhZ2UgbmFtZS4gIElmIHlvdXIg
bGFuZ3VhZ2UncyBtb2RlIGlzIG5vdAorOzsgcHJvcGVybHkgcmVjb2duaXplZCwgYWRkIGl0IHRv
IGBtYXJrZG93bi10cy1jb2RlLWJsb2NrLW1vZGVzJywgd2hpY2gKKzs7IHNlZS4KKzs7Cis7OyBF
YWNoIGxhbmd1YWdlJ3MgbWFqb3IgbW9kZSBpcyBlbmFibGVkIG9uY2UgcGVyIGBtYXJrZG93bi10
cy1tb2RlJworOzsgYnVmZmVyIGluIGEgdGVtcG9yYXJ5IGJ1ZmZlciB0byBleHRyYWN0IGl0cyBk
ZWZhdWx0IGZvbnQtbG9jayBhbmQKKzs7IHRyZWUtc2l0dGVyIHNldHRpbmdzLiAgSW4gY29udmVu
dGlvbmFsIG5vbi10cmVlc2l0IGNvZGUgYmxvY2tzLCB0aGUKKzs7IG1ham9yIG1vZGUgaXMgZW5h
YmxlZCBlYWNoIHRpbWUgdGhlIGJsb2NrIGlzIGZvbnRpZmllZC4KKzs7Cis7OyBOT1RFOiBNYWpv
ciBtb2RlIGhvb2tzIGFyZSBub3QgcnVuIGFuZCBmb250LWxvY2ssIHRyZWVzaXQsIGluZGVudCwK
Kzs7IGNvbW1lbnQgcmVjb2duaXRpb24sIGV0Yy4gY3VzdG9taXphdGlvbnMgeW91IG1pZ2h0IGhh
dmUgaW4geW91ciBob29rcworOzsgYXJlIG5vdCBhcHBsaWVkLiAgQXMgYSByZXN1bHQsIHlvdXIg
Y29kZSBibG9ja3MgbWlnaHQgYXBwZWFyCis7OyBkaWZmZXJlbnQgaW4gYG1hcmtkb3duLXRzLW1v
ZGUnIG1vZGUgdGhhbiBpbiBuYXRpdmUgbGFuZ3VhZ2UgbWFqb3IKKzs7IG1vZGUgYnVmZmVycy4g
IE5vdCBydW5uaW5nIGhvb2tzIGF2b2lkcyB0aGUgY29zdCBvZiBlYWNoIG1vZGUgaG9vaworOzsg
YW5kIGF2b2lkcyBjZXJ0YWluIHJlY3Vyc2l2ZSB0cmVlc2l0IGNhbGxiYWNrIGlzc3Vlcy4KKzs7
Cis7OyBDb2RlIEJsb2NrIENvbW1hbmRzCiA7OworOzsgU29tZSBjb21tb24gY29tbWFuZHMgd2ls
bCBvcGVyYXRlIHdpdGhpbiBhIGNvZGUgYmxvY2sgYW5kIGluIGl0cworOzsgbW9kZS4gIFRoaXMg
aXMgaW1wbGVtZW50ZWQgdXNpbmcgYW4gaW5kaXJlY3QgYnVmZmVyIGFuZCBzb21lIGNvbW1hbmRz
Cis7OyBtYXkgb3BlcmF0ZSBzbGlnaHRseSBkaWZmZXJlbnRseSB0byB0aGUgc2FtZSBjb21tYW5k
cyBpbnZva2VkIGluIGEKKzs7IG5hdGl2ZSBtb2RlIGJ1ZmZlci4KKzs7Cis7OyBUcmVlIFNpdHRl
ciBCdWdzCis7OworOzsgYG1hcmtkb3duLXRzLW1vZGUnIHJlbGllcyBvbiB0aGUgdW5kZXJseWlu
ZyB0cmVlLXNpdHRlciBsaWJyYXJ5IGluCis7OyBFbWFjcyAoY2hvc2VuIGF0IGl0cyBidWlsZCB0
aW1lKSwgYW5kIGxhbmd1YWdlIGdyYW1tYXJzIHlvdSBoYXZlCis7OyBpbnN0YWxsZWQuICBUaGVy
ZSBhcmUga25vd24gYW5kIHJlcG9ydGVkIGJ1Z3Mgd2hpY2ggbmVnYXRpdmVseSBhZmZlY3QKKzs7
IGNlcnRhaW4gZmVhdHVyZXMuICBUaGlzIG1vZGUgc2hvdWxkIGJlbmVmaXQgYXMgdGhlc2UgYnVn
cyBhcmUgZml4ZWQKKzs7IG9yIHdvcmtlZCBhcm91bmQuCis7OworOzsgLSBUaGUgTWFya2Rvd24g
Z3JhbW1hciBpbnNlcnRzIGJsb2NrX2NvbnRpbnVhdGlvbiBub2RlcyBhcyBjaGlsZHJlbgorOzsg
ICBvZiBjb2RlX2ZlbmNlX2NvbnRlbnQsIHdoaWNoIGNvbmZ1c2VzIGJvdGggdGhlIGluc3BlY3Rv
ciBhbmQgdGhlCis7OyAgIGVtYmVkZGVkIHBhcnNlci4gIFRoaXMgYWZmZWN0cyBjb2RlIGJsb2Nr
cyBpbnNpZGUgYmxvY2sgcXVvdGVzLgorOzsKKzs7IC0gSFRNTCBibG9jayB0eXBlIDQgKGA8IScg
Zm9sbG93ZWQgYnkgYW4gdXBwZXJjYXNlIGxldHRlciwgZS5nLiwKKzs7ICAgYDwhRE9DVFlQRSBo
dG1sPicpIGNhdXNlcyB0aGUgcGFyc2VyIHRvIGNvbnN1bWUgYWxsIHN1YnNlcXVlbnQKKzs7ICAg
Y29udGVudC4gIExvd2VyY2FzZSBgPCFkb2N0eXBlIGh0bWw+JyB3b3JrcyBhcyBhIHdvcmthcm91
bmQuCis7OyAgIFNlZSA8aHR0cHM6Ly9naXRodWIuY29tL3RyZWUtc2l0dGVyLWdyYW1tYXJzL3Ry
ZWUtc2l0dGVyLW1hcmtkb3duL2lzc3Vlcy8yMzM+LgorOzsKKzs7IC0gU3VwZXJzY3JpcHQgKGBe
dGV4dF4nKSBhbmQgc3Vic2NyaXB0IChgfnRleHR+Jykgc3ludGF4IGlzIG5vdAorOzsgICBzdXBw
b3J0ZWQgYnkgdGhlIGdyYW1tYXIuICBObyBFWFRFTlNJT05fIGJ1aWxkIGZsYWcgZXhpc3RzIGZv
cgorOzsgICB0aGlzLiAgVGhpcyBpcyBQYW5kb2MgLyBQSFAgTWFya2Rvd24gRXh0cmEgc3ludGF4
LCBub3QgQ29tbW9uTWFyaworOzsgICBvciBHRk0uCis7OworOzsgLSBPcmRlcmVkIChudW1iZXJl
ZCkgbGlzdHMgZG8gbm90IG5lc3QgYnkgaW5kZW50YXRpb24uICBJbmRlbnRpbmcKKzs7ICAgYSBg
MS4nIGl0ZW0gdW5kZXIgYW5vdGhlciBvcmRlcmVkIGl0ZW0gZG9lcyBub3QgcHJvZHVjZSBhIG5l
c3RlZAorOzsgICBsaXN0IG5vZGU7IHRoZSBwYXJzZXIgZWl0aGVyIHRyZWF0cyBpdCBhcyBhIGZs
YXQgc2libGluZyBvcgorOzsgICBhYnNvcmJzIGl0IGludG8gdGhlIHBhcmVudCBpdGVtJ3MgcGFy
YWdyYXBoIGFzIGEKKzs7ICAgYmxvY2tfY29udGludWF0aW9uLiAgVW5vcmRlcmVkIChgLScsIGAq
JywgYCsnKSBsaXN0cyBuZXN0Cis7OyAgIGNvcnJlY3RseS4gIERlbW90ZS9wcm9tb3RlIG9mIG9y
ZGVyZWQgbGlzdCBpdGVtcyBpcyB0aGVyZWZvcmUKKzs7ICAgZGlzYWJsZWQuCis7OworOzsgLSBS
ZW51bWJlcmluZyBvcmRlcmVkIGxpc3RzIChgbWFya2Rvd24tdHMtcmVudW1iZXItbGlzdCcpIG1h
eSBvbmx5Cis7OyAgIGFmZmVjdCBpdGVtcyBmcm9tIHBvaW50IGRvd253YXJkIGlmIHRoZSBwYXJz
ZXIgc3BsaXRzIGEgc2luZ2xlCis7OyAgIGxpc3QgaW50byBzZXBhcmF0ZSBgbGlzdCcgbm9kZXMs
IG9yIG1heSBjb250aW51ZSBudW1iZXJpbmcgYWNyb3NzCis7OyAgIHR3byBzZXBhcmF0ZSBsaXN0
cyBpZiB0aGUgcGFyc2VyIG1lcmdlcyB0aGVtIGludG8gb25lIG5vZGUuCis7OworOzsgLSBFbXB0
eSBsaW5lcyBmb2xsb3dpbmcgYW4gYGluZGVudGVkX2NvZGVfYmxvY2snIG1heSBiZSBjbGFpbWVk
IGJ5Cis7OyAgIHRoZSBwYXJzZXIgYXMgY29udGludWF0aW9uIGxpbmVzIG9mIHRoYXQgYmxvY2ss
IHJhdGhlciB0aGFuIGJlaW5nCis7OyAgIHRyZWF0ZWQgYXMgYmxhbmsgc2VwYXJhdG9ycy4KIAog
Ozs7IENvZGU6CiAKIChyZXF1aXJlICd0cmVlc2l0KQogKHJlcXVpcmUgJ3N1YnIteCkKLShyZXF1
aXJlICdvdXRsaW5lKQogKHJlcXVpcmUgJ3NlcSkKKyhyZXF1aXJlICdvdXRsaW5lKQorKHJlcXVp
cmUgJ2dvdG8tYWRkcikKKyhyZXF1aXJlICd4cmVmKQogCi0odHJlZXNpdC1kZWNsYXJlLXVuYXZh
aWxhYmxlLWZ1bmN0aW9ucykKLQotKGFkZC10by1saXN0Ci0gJ3RyZWVzaXQtbGFuZ3VhZ2Utc291
cmNlLWFsaXN0Ci0gJyhtYXJrZG93bgotICAgImh0dHBzOi8vZ2l0aHViLmNvbS90cmVlLXNpdHRl
ci1ncmFtbWFycy90cmVlLXNpdHRlci1tYXJrZG93biIKLSAgIDpjb21taXQgIjQxMzI4NTIzMWNl
OGZhOGIxMWU3MDc0YmJlMjY1YjQ4YWE3Mjc3ZjkiCi0gICA6c291cmNlLWRpciAidHJlZS1zaXR0
ZXItbWFya2Rvd24vc3JjIikKLSB0KQotKGFkZC10by1saXN0Ci0gJ3RyZWVzaXQtbGFuZ3VhZ2Ut
c291cmNlLWFsaXN0Ci0gJyhtYXJrZG93bi1pbmxpbmUKLSAgICJodHRwczovL2dpdGh1Yi5jb20v
dHJlZS1zaXR0ZXItZ3JhbW1hcnMvdHJlZS1zaXR0ZXItbWFya2Rvd24iCi0gICA6Y29tbWl0ICI0
MTMyODUyMzFjZThmYThiMTFlNzA3NGJiZTI2NWI0OGFhNzI3N2Y5IgotICAgOnNvdXJjZS1kaXIg
InRyZWUtc2l0dGVyLW1hcmtkb3duLWlubGluZS9zcmMiKQotIHQpCi0KLTs7OyBIZWxwZXIgZnVu
Y3Rpb25zCi0KLShkZWZ2YXIgbWFya2Rvd24tdHMtLWNvZGUtYmxvY2stbGFuZ3VhZ2UtbWFwCi0g
ICcoKCJjKysiIC4gY3BwKQotICAgICgiYyMiIC4gYy1zaGFycCkKLSAgICAoInNoIiAuIGJhc2gp
KQotICAiQWxpc3QgbWFwcGluZyBjb2RlIGJsb2NrIGxhbmd1YWdlIG5hbWVzIHRvIHRyZWUtc2l0
dGVyIGxhbmd1YWdlcy4KLQotS2V5cyBzaG91bGQgYmUgc3RyaW5ncywgYW5kIHZhbHVlcyBzaG91
bGQgYmUgbGFuZ3VhZ2Ugc3ltYm9scy4KLQotRm9yIGV4YW1wbGUsIFwiYysrXCIgaW4KLQotICAg
IGBgYGMrKwotICAgIGludCBtYWluKCkgewotICAgICAgICByZXR1cm4gMDsKLSAgICB9Ci0gICAg
YGBgCis7OzsgQ3VzdG9taXphdGlvbnM6CiAKLW1hcHMgdG8gdHJlZS1zaXR0ZXIgbGFuZ3VhZ2Ug
YGNwcCcuIikKLQotKGRlZnZhciBtYXJrZG93bi10cy1jb2RlLWJsb2NrLXNvdXJjZS1tb2RlLW1h
cAotICAnKChiYXNoIC4gYmFzaC10cy1tb2RlKQotICAgIChjIC4gYy10cy1tb2RlKQotICAgIChj
LXNoYXJwIC4gY3NoYXJwLXRzLW1vZGUpCi0gICAgKGNtYWtlIC4gY21ha2UtdHMtbW9kZSkKLSAg
ICAoY3BwIC4gYysrLXRzLW1vZGUpCi0gICAgKGNzcyAuIGNzcy10cy1tb2RlKQotICAgIChkb2Nr
ZXJmaWxlIC4gZG9ja2VyZmlsZS10cy1tb2RlKQotICAgIChlbGl4aXIgLiBlbGl4aXItdHMtbW9k
ZSkKLSAgICAoZ28gLiBnby10cy1tb2RlKQotICAgIChnb21vZCAuIGdvLW1vZC10cy1tb2RlKQot
ICAgIChnb3dvcmsgLiBnby13b3JrLXRzLW1vZGUpCi0gICAgKGhlZXggLiBoZWV4LXRzLW1vZGUp
Ci0gICAgKGh0bWwgLiBodG1sLXRzLW1vZGUpCi0gICAgKGphdmEgLiBqYXZhLXRzLW1vZGUpCi0g
ICAgKGphdmFzY3JpcHQgLiBqcy10cy1tb2RlKQotICAgIChqc29uIC4ganNvbi10cy1tb2RlKQot
ICAgIChsdWEgLiBsdWEtdHMtbW9kZSkKLSAgICAocGhwIC4gcGhwLXRzLW1vZGUpCi0gICAgKHB5
dGhvbiAuIHB5dGhvbi10cy1tb2RlKQotICAgIChydWJ5IC4gcnVieS10cy1tb2RlKQotICAgIChy
dXN0IC4gcnVzdC10cy1tb2RlKQotICAgICh0b21sIC4gdG9tbC10cy1tb2RlKQotICAgICh0c3gg
LiB0c3gtdHMtbW9kZSkKLSAgICAodHlwZXNjcmlwdCAuIHR5cGVzY3JpcHQtdHMtbW9kZSkKLSAg
ICAoeWFtbCAuIHlhbWwtdHMtbW9kZSkpCi0gICJBbiBhbGlzdCBvZiBzdXBwb3J0ZWQgY29kZSBi
bG9jayBsYW5ndWFnZXMgYW5kIHRoZWlyIG1ham9yIG1vZGUuIikKKyhkZWZncm91cCBtYXJrZG93
bi10cyBuaWwKKyAgIk1ham9yIG1vZGUgZm9yIHZpZXdpbmcgYW5kIGVkaXRpbmcgTWFya2Rvd24g
YnVmZmVycy4iCisgIDpwcmVmaXggIm1hcmtkb3duLXRzLSIKKyAgOmdyb3VwICd0ZXh0CisgIDpn
cm91cCAnZWRpdGluZworICA6dmVyc2lvbiAiMzEuMSIpCiAKIChkZWZjdXN0b20gbWFya2Rvd24t
dHMtaGlkZS1tYXJrdXAgbmlsCiAgICJOb24tbmlsIG1lYW5zIGhpZGUgTWFya2Rvd24gbWFya3Vw
IGRlbGltaXRlcnMgaW4gdGhpcyBidWZmZXIuIgogICA6dHlwZSAnYm9vbGVhbgogICA6c2FmZSAj
J2Jvb2xlYW5wCi0gIDpncm91cCAnbWFya2Rvd24tdHMpCi0KLTs7OyBGYWNlcworICA6dmVyc2lv
biAiMzEuMSIKKyAgOnBhY2thZ2UtdmVyc2lvbiAiMS4wIikKKworKGRlZmN1c3RvbSBtYXJrZG93
bi10cy1lbGxpcHNpcyBuaWwKKyAgIlRoZSBlbGxpcHNpcyB0byB1c2UgaW4gZm9sZGVkIGhlYWRp
bmdzLgorV2hlbiBuaWwsIHVzZSB0aGUgc3RhbmRhcmQgdGhyZWUgZG90cy4gIFdoZW4gYSBub24t
ZW1wdHkgc3RyaW5nLAordXNlIHRoYXQgc3RyaW5nIGluc3RlYWQuIgorICA6dHlwZSAnKGNob2lj
ZSAoY29uc3QgOnRhZyAiRGVmYXVsdCAoLi4uKSIgbmlsKQorICAgICAgICAgICAgICAgICAoc3Ry
aW5nIDp0YWcgIlN0cmluZyIgOnZhbHVlICIg4oyEIikpCisgIDpzYWZlICMnc3RyaW5nLW9yLW51
bGwtcAorICA6dmVyc2lvbiAiMzEuMSIKKyAgOnBhY2thZ2UtdmVyc2lvbiAiMS4wIikKKworKGRl
ZmN1c3RvbSBtYXJrZG93bi10cy1tZW51LWJhci1zaG93IHQKKyAgIk5vbi1uaWwgbWVhbnMgc2hv
dyB0aGUgTWFya2Rvd24gbWVudSBpbiB0aGUgbWVudSBiYXIuIgorICA6dHlwZSAnYm9vbGVhbgor
ICA6c2FmZSAjJ2Jvb2xlYW5wCisgIDp2ZXJzaW9uICIzMS4xIgorICA6cGFja2FnZS12ZXJzaW9u
ICIxLjAiKQorCisoZGVmY3VzdG9tIG1hcmtkb3duLXRzLWRlZmF1bHQtZm9sZGluZyAnc2hvdy1h
bGwKKyAgIkRlZmF1bHQgaGVhZGluZyBmb2xkaW5nIGxldmVsLiIKKyAgOnR5cGUgJyhjaG9pY2UK
KyAgICAgICAgICAoY29uc3QgOnRhZyAiU2hvdyBldmVyeXRoaW5nIiBzaG93LWFsbCkKKyAgICAg
ICAgICAoY29uc3QgOnRhZyAiRm9sZCBldmVyeXRoaW5nLCBzaG93aW5nIHRvcC1sZXZlbCBoZWFk
aW5ncyIgZm9sZC1hbGwpCisgICAgICAgICAgKGNvbnN0IDp0YWcgIkZvbGQgaGVhZGluZ3MsIHNo
b3dpbmcgYWxsIGhlYWRpbmcgbGV2ZWxzIiBmb2xkLWhlYWRpbmdzKSkKKyAgOnNhZmUgIydzeW1i
b2xwCisgIDp2ZXJzaW9uICIzMS4xIgorICA6cGFja2FnZS12ZXJzaW9uICIxLjAiKQorCisoZGVm
Y3VzdG9tIG1hcmtkb3duLXRzLWlubGluZS1pbWFnZXMgbmlsCisgICJOb24tbmlsIG1lYW5zIGRp
c3BsYXkgaW5saW5lIGltYWdlcyBiZWxvdyBpbWFnZSBsaW5rcy4iCisgIDp0eXBlICdib29sZWFu
CisgIDpzYWZlICMnYm9vbGVhbnAKKyAgOnZlcnNpb24gIjMxLjEiCisgIDpwYWNrYWdlLXZlcnNp
b24gIjEuMCIpCisKKyhkZWZjdXN0b20gbWFya2Rvd24tdHMtaW1hZ2UtbWF4LXdpZHRoICd3aW5k
b3cKKyAgIk1heGltdW0gd2lkdGggb2YgaW5saW5lIGltYWdlcyBpbiBwaXhlbHMuCitXaGVuIGB3
aW5kb3cnLCB1c2UgdGhlIHdpbmRvdyBib2R5IHdpZHRoLiAgV2hlbiBhIG51bWJlciwgdXNlCit0
aGF0IGFzIHRoZSBtYXhpbXVtIHBpeGVsIHdpZHRoLiIKKyAgOnR5cGUgJyhjaG9pY2UgKGNvbnN0
IDp0YWcgIldpbmRvdyB3aWR0aCIgd2luZG93KQorICAgICAgICAgICAgICAgICAobmF0bnVtIDp0
YWcgIlBpeGVsIHdpZHRoIikpCisgIDpzYWZlIChsYW1iZGEgKHYpIChvciAoZXEgdiAnd2luZG93
KSAobmF0bnVtcCB2KSkpCisgIDp2ZXJzaW9uICIzMS4xIgorICA6cGFja2FnZS12ZXJzaW9uICIx
LjAiKQorCisoZGVmY3VzdG9tIG1hcmtkb3duLXRzLWRpc3BsYXktcmVtb3RlLWlubGluZS1pbWFn
ZXMgbmlsCisgICJIb3cgdG8gZGlzcGxheSByZW1vdGUgaW5saW5lIGltYWdlcy4KK1doZW4gbmls
LCBkbyBub3QgZGlzcGxheSByZW1vdGUgaW1hZ2VzLiAgV2hlbiBgZG93bmxvYWQnLCBmZXRjaCB0
aGUKK2ltYWdlIGludG8gYSB0ZW1wb3JhcnkgYnVmZmVyIGFuZCBkaXNwbGF5IGl0LgorCitSZW1v
dGUgaW1hZ2VzIGFyZSBza2lwcGVkIGJ5IGRlZmF1bHQgZm9yIHNlY3VyaXR5LiIKKyAgOnR5cGUg
JyhjaG9pY2UgKGNvbnN0IDp0YWcgIlNraXAgcmVtb3RlIGltYWdlcyIgbmlsKQorICAgICAgICAg
ICAgICAgICAoY29uc3QgOnRhZyAiRG93bmxvYWQgcmVtb3RlIGltYWdlcyIgZG93bmxvYWQpKQor
ICA6c2FmZSAjJ3N5bWJvbHAKKyAgOnZlcnNpb24gIjMxLjEiCisgIDpwYWNrYWdlLXZlcnNpb24g
IjEuMCIpCisKKyhkZWZjdXN0b20gbWFya2Rvd24tdHMtY2hlY2tlZC1jaGVja2JveCAi4piRIgor
ICAiSWYgbWFya3VwIGlzIGhpZGRlbiwgZGlzcGxheSB0aGlzIGNoZWNrZWQgdGFzayBsaXN0IHN0
cmluZy4KK25pbCBkaXNwbGF5cyB0aGUgcmF3IG1hcmt1cC4iCisgIDp0eXBlICcoY2hvaWNlIChz
dHJpbmcgOnRhZyAiRGlzcGxheSBzcGVjaWZpZWQgc3RyaW5nIikKKyAgICAgICAgICAgICAgICAg
KGNvbnN0IDp0YWcgIkRpc3BsYXkgb3JpZ2luYWwgbWFya3VwIiBuaWwpKQorICA6c2FmZSAjJ3N0
cmluZy1vci1udWxsLXAKKyAgOnZlcnNpb24gIjMxLjEiCisgIDpwYWNrYWdlLXZlcnNpb24gIjEu
MCIpCisKKyhkZWZjdXN0b20gbWFya2Rvd24tdHMtdW5jaGVja2VkLWNoZWNrYm94ICLimJAiCisg
ICJJZiBtYXJrdXAgaXMgaGlkZGVuLCBkaXNwbGF5IHRoaXMgdW5jaGVja2VkIHRhc2sgbGlzdCBz
dHJpbmcuCituaWwgZGlzcGxheXMgdGhlIHJhdyBtYXJrdXAuIgorICA6dHlwZSAnKGNob2ljZSAo
c3RyaW5nIDp0YWcgIkRpc3BsYXkgc3BlY2lmaWVkIHN0cmluZyIpCisgICAgICAgICAgICAgICAg
IChjb25zdCA6dGFnICJEaXNwbGF5IG9yaWdpbmFsIG1hcmt1cCIgbmlsKSkKKyAgOnNhZmUgIydz
dHJpbmctb3ItbnVsbC1wCisgIDp2ZXJzaW9uICIzMS4xIgorICA6cGFja2FnZS12ZXJzaW9uICIx
LjAiKQorCisoZGVmY3VzdG9tIG1hcmtkb3duLXRzLXRoZW1hdGljLWJyZWFrLWNoYXJhY3RlciA/
4pSACisgICJJZiBtYXJrdXAgaXMgaGlkZGVuLCBkaXNwbGF5IHRoaXMgdGhlbWF0aWMgYnJlYWsg
c3RyaW5nLgorVGhlIGNoYXJhY3RlciBpcyByZXBlYXRlZCB0byBmaWxsIHRoZSB3aW5kb3cgd2lk
dGguCituaWwgZGlzcGxheXMgdGhlIHJhdyBtYXJrdXAuIgorICA6dHlwZSAnKGNob2ljZSAoY2hh
cmFjdGVyIDp0YWcgIkRpc3BsYXkgc3BlY2lmaWVkIGNoYXJhY3RlciIpCisgICAgICAgICAgICAg
ICAgIChjb25zdCA6dGFnICJEaXNwbGF5IG9yaWdpbmFsIG1hcmt1cCIgbmlsKSkKKyAgOnZlcnNp
b24gIjMxLjEiCisgIDpwYWNrYWdlLXZlcnNpb24gIjEuMCIpCisKKzs7OyBGYWNlczoKIAogKGRl
Zmdyb3VwIG1hcmtkb3duLXRzLWZhY2VzIG5pbAotICAiRmFjZXMgdXNlZCBpbiBNYXJrZG93biBU
UyBNb2RlLiIKKyAgIkZhY2VzIHVzZWQgYnkgTWFya2Rvd24tVFMuIgogICA6Z3JvdXAgJ21hcmtk
b3duLXRzLWZhY2VzCiAgIDpncm91cCAnZmFjZXMpCiAKQEAgLTE0NCwxNiArMjQ3LDEzNSBAQCBt
YXJrZG93bi10cy1oZWFkaW5nLTUKIChkZWZmYWNlIG1hcmtkb3duLXRzLWhlYWRpbmctNiAnKCh0
ICg6aW5oZXJpdCBvdXRsaW5lLTYpKSkKICAgIkZhY2UgZm9yIHNpeHRoIGxldmVsIE1hcmtkb3du
IGhlYWRpbmdzLiIpCiAKLShkZWZmYWNlIG1hcmtkb3duLXRzLWxpc3QtbWFya2VyICcoKHQgKDpp
bmhlcml0IHNoYWRvdykpKQotICAiRmFjZSBmb3IgTWFya2Rvd24gbGlzdCBtYXJrZXJzIGxpa2Ug
LSBhbmQgKi4iKQorKGRlZmZhY2UgbWFya2Rvd24tdHMtZW1waGFzaXMgJygodCAoOmluaGVyaXQg
aXRhbGljKSkpCisgICJGYWNlIGZvciBNYXJrZG93biBlbXBoYXNpcyAoaXRhbGljKSB0ZXh0LiIp
CisKKyhkZWZmYWNlIG1hcmtkb3duLXRzLWJvbGQgJygodCAoOmluaGVyaXQgYm9sZCkpKQorICAi
RmFjZSBmb3IgTWFya2Rvd24gc3Ryb25nIGVtcGhhc2lzIChib2xkKSB0ZXh0LiIpCisKKyhkZWZm
YWNlIG1hcmtkb3duLXRzLXN0cmlrZXRocm91Z2ggJygodCAoOnN0cmlrZS10aHJvdWdoIHQpKSkK
KyAgIkZhY2UgZm9yIE1hcmtkb3duIHN0cmlrZXRocm91Z2ggdGV4dC4iKQogCiAoZGVmZmFjZSBt
YXJrZG93bi10cy1ibG9jay1xdW90ZSAnKCh0ICg6aW5oZXJpdCBpdGFsaWMpKSkKICAgIkZhY2Ug
Zm9yIE1hcmtkb3duIGJsb2NrIHF1b3Rlcy4iKQogCisoZGVmZmFjZSBtYXJrZG93bi10cy1saW5r
ICcoKHQgKDppbmhlcml0IGxpbmspKSkKKyAgIkZhY2UgZm9yIE1hcmtkb3duIGxpbmsgdGV4dCBh
bmQgaW1hZ2UgZGVzY3JpcHRpb25zLiIpCisKKyhkZWZmYWNlIG1hcmtkb3duLXRzLWxpbmstZGVz
dGluYXRpb24gJygodCAoOmluaGVyaXQgZm9udC1sb2NrLXN0cmluZy1mYWNlKSkpCisgICJGYWNl
IGZvciBNYXJrZG93biBsaW5rIGRlc3RpbmF0aW9ucyAoVVJMcykuIikKKworKGRlZmZhY2UgbWFy
a2Rvd24tdHMtY29kZS1zcGFuICcoKHQgKDppbmhlcml0IGZvbnQtbG9jay1zdHJpbmctZmFjZSkp
KQorICAiRmFjZSBmb3IgTWFya2Rvd24gaW5saW5lIGNvZGUgc3BhbnMuIikKKworKGRlZmZhY2Ug
bWFya2Rvd24tdHMtY29kZS1ibG9jayAnKCh0ICg6ZXh0ZW5kIHQpKSkKKyAgIkZhY2UgZm9yIE1h
cmtkb3duIGZlbmNlZCBjb2RlIGJsb2NrIGNvbnRlbnQuCitBbHRlciB0aGlzIGZhY2UgdG8gYWRk
IGEgYDpiYWNrZ3JvdW5kJyBmb3IgYSB2aXN1YWxseSBkaXN0aW5jdAorY29kZSBibG9jayByZWdp
b24sIGUuZy46CisgIChzZXQtZmFjZS1hdHRyaWJ1dGUgXFw9J21hcmtkb3duLXRzLWNvZGUtYmxv
Y2sgbmlsIDpiYWNrZ3JvdW5kIFwiZ3JheTk1XCIpIikKKworKGRlZmZhY2UgbWFya2Rvd24tdHMt
Y29kZS1ibG9jay1tYXJrdXAtaGlkZGVuCisgICcoKCgoYmFja2dyb3VuZCBsaWdodCkpICg6YmFj
a2dyb3VuZCAiZ3JheTk1IiA6ZXh0ZW5kIHQpKQorICAgICgoKGJhY2tncm91bmQgZGFyaykpICg6
YmFja2dyb3VuZCAiZ3JheTE1IiA6ZXh0ZW5kIHQpKSkKKyAgIkZhY2UgZm9yIE1hcmtkb3duIGZl
bmNlZCBjb2RlIGJsb2NrIGNvbnRlbnQgd2hlbiBtYXJrdXAgaXMgaGlkZGVuLgorVXNlZCBpbnN0
ZWFkIG9mIGBtYXJrZG93bi10cy1jb2RlLWJsb2NrJyB3aGVuIGBtYXJrZG93bi10cy1oaWRlLW1h
cmt1cCcKK2lzIG5vbi1uaWwuIikKKworKGRlZmZhY2UgbWFya2Rvd24tdHMtaW5kZW50ZWQtY29k
ZS1ibG9jayAnKCh0ICg6aW5oZXJpdCBmb250LWxvY2stc3RyaW5nLWZhY2UpKSkKKyAgIkZhY2Ug
Zm9yIE1hcmtkb3duIGluZGVudGVkIGNvZGUgYmxvY2tzLiIpCisKKyhkZWZmYWNlIG1hcmtkb3du
LXRzLWh0bWwtdGFnICcoKHQgKDppbmhlcml0IGZvbnQtbG9jay1kb2MtbWFya3VwLWZhY2UpKSkK
KyAgIkZhY2UgZm9yIGlubGluZSBIVE1MIHRhZ3MgaW4gTWFya2Rvd24uIikKKworKGRlZmZhY2Ug
bWFya2Rvd24tdHMtaHRtbC1ibG9jayAnKCh0ICg6aW5oZXJpdCBmb250LWxvY2stZG9jLW1hcmt1
cC1mYWNlKSkpCisgICJGYWNlIGZvciBIVE1MIGJsb2NrcyBpbiBNYXJrZG93bi4iKQorCisoZGVm
ZmFjZSBtYXJrZG93bi10cy10aGVtYXRpYy1icmVhayAnKCh0ICg6aW5oZXJpdCBzaGFkb3cgOmV4
dGVuZCB0KSkpCisgICJGYWNlIGZvciBNYXJrZG93biB0aGVtYXRpYyBicmVha3MgKGhvcml6b250
YWwgcnVsZXMpLgorQ3VzdG9taXplIHRoaXMgZmFjZSB0byBhZGQgYSA6YmFja2dyb3VuZCBmb3Ig
YSBmdWxsLXdpZHRoIHZpc3VhbCBydWxlLiIpCisKKyhkZWZmYWNlIG1hcmtkb3duLXRzLWVudGl0
eS1yZWZlcmVuY2UgJygodCAoOmluaGVyaXQgZm9udC1sb2NrLWJ1aWx0aW4tZmFjZSkpKQorICAi
RmFjZSBmb3IgbmFtZWQgSFRNTCBlbnRpdHkgcmVmZXJlbmNlcyBsaWtlICZhbXA7IGFuZCAmY29w
eTsuIikKKworKGRlZmZhY2UgbWFya2Rvd24tdHMtbnVtZXJpYy1jaGFyYWN0ZXItcmVmZXJlbmNl
CisgICcoKHQgKDppbmhlcml0IGZvbnQtbG9jay1lc2NhcGUtZmFjZSkpKQorICAiRmFjZSBmb3Ig
bnVtZXJpYyBjaGFyYWN0ZXIgcmVmZXJlbmNlcyBsaWtlICYjNjU7IGFuZCAmI3g0MTsuIikKKwor
KGRlZmZhY2UgbWFya2Rvd24tdHMtbGF0ZXggJygodCAoOmluaGVyaXQgZm9udC1sb2NrLXN0cmlu
Zy1mYWNlKSkpCisgICJGYWNlIGZvciBMYVRlWCAvIG1hdGggY29udGVudCBpbiBNYXJrZG93biAo
JC4uLiQgYW5kICQkLi4uJCQpLiIpCisKKyhkZWZmYWNlIG1hcmtkb3duLXRzLXRhYmxlLWhlYWRl
ciAnKCh0ICg6aW5oZXJpdCAoYm9sZCBmb250LWxvY2stZG9jLWZhY2UpKSkpCisgICJGYWNlIGZv
ciBNYXJrZG93biBwaXBlIHRhYmxlIGhlYWRlciBjZWxscy4iKQorCisoZGVmZmFjZSBtYXJrZG93
bi10cy10YWJsZS1jZWxsICcoKHQgKDppbmhlcml0IGRlZmF1bHQpKSkKKyAgIkZhY2UgZm9yIE1h
cmtkb3duIHBpcGUgdGFibGUgZGF0YSBjZWxscy4iKQorCisoZGVmZmFjZSBtYXJrZG93bi10cy10
YWJsZS1kZWxpbWl0ZXItY2VsbCAnKCh0ICg6aW5oZXJpdCBmb250LWxvY2stZG9jLWZhY2UpKSkK
KyAgIkZhY2UgZm9yIE1hcmtkb3duIHBpcGUgdGFibGUgZGVsaW1pdGVyIGNlbGxzICgtLS0gc2Vw
YXJhdG9ycykuIikKKwogKGRlZmZhY2UgbWFya2Rvd24tdHMtbGFuZ3VhZ2Uta2V5d29yZCAnKCh0
ICg6aW5oZXJpdCBmb250LWxvY2sta2V5d29yZC1mYWNlKSkpCiAgICJGYWNlIGZvciB0aGUgbGFu
Z3VhZ2Uga2V5d29yZCBmb3IgTWFya2Rvd24gY29kZSBibG9ja3MuIikKIAotOzs7IEZvbnQtbG9j
aworKGRlZmZhY2UgbWFya2Rvd24tdHMtbGlzdC1tYXJrZXIgJygodCAoOmluaGVyaXQgc2hhZG93
KSkpCisgICJGYWNlIGZvciBNYXJrZG93biBsaXN0IG1hcmtlcnMgbGlrZSAtIGFuZCAqLiIpCisK
KyhkZWZmYWNlIG1hcmtkb3duLXRzLXRhc2stdW5jaGVja2VkICcoKHQgKDppbmhlcml0IG1hcmtk
b3duLXRzLWxpc3QtbWFya2VyKSkpCisgICJGYWNlIGZvciBNYXJrZG93biB1bmNoZWNrZWQgdGFz
ayBsaXN0IG1hcmtlcnMuIikKKworKGRlZmZhY2UgbWFya2Rvd24tdHMtdGFzay1jaGVja2VkICco
KHQgKDppbmhlcml0IG1hcmtkb3duLXRzLWxpc3QtbWFya2VyKSkpCisgICJGYWNlIGZvciBNYXJr
ZG93biBjaGVja2VkIHRhc2sgbGlzdCBtYXJrZXJzLiIpCisKKyh0cmVlc2l0LWRlY2xhcmUtdW5h
dmFpbGFibGUtZnVuY3Rpb25zKQorCisoYWRkLXRvLWxpc3QKKyAndHJlZXNpdC1sYW5ndWFnZS1z
b3VyY2UtYWxpc3QKKyAnKG1hcmtkb3duCisgICAiaHR0cHM6Ly9naXRodWIuY29tL3RyZWUtc2l0
dGVyLWdyYW1tYXJzL3RyZWUtc2l0dGVyLW1hcmtkb3duIgorICAgOmNvbW1pdCAiNDEzMjg1MjMx
Y2U4ZmE4YjExZTcwNzRiYmUyNjViNDhhYTcyNzdmOSIKKyAgIDpzb3VyY2UtZGlyICJ0cmVlLXNp
dHRlci1tYXJrZG93bi9zcmMiKQorIHQpCisKKyhhZGQtdG8tbGlzdAorICd0cmVlc2l0LWxhbmd1
YWdlLXNvdXJjZS1hbGlzdAorICcobWFya2Rvd24taW5saW5lCisgICAiaHR0cHM6Ly9naXRodWIu
Y29tL3RyZWUtc2l0dGVyLWdyYW1tYXJzL3RyZWUtc2l0dGVyLW1hcmtkb3duIgorICAgOmNvbW1p
dCAiNDEzMjg1MjMxY2U4ZmE4YjExZTcwNzRiYmUyNjViNDhhYTcyNzdmOSIKKyAgIDpzb3VyY2Ut
ZGlyICJ0cmVlLXNpdHRlci1tYXJrZG93bi1pbmxpbmUvc3JjIikKKyB0KQorCis7OzsgVmFyaWFi
bGVzOgorCisoZGVmdmFyIG1hcmtkb3duLXRzLWNvZGUtYmxvY2stbW9kZXMKKyAgYCgoc2ggLiBi
YXNoLXRzLW1vZGUpCisgICAgKHNoZWxsIC4gYmFzaC10cy1tb2RlKQorICAgICgsKGludGVybiAi
YyMiKSAuIGMtc2hhcnApCisgICAgKGNwcCAuIGMrKy10cy1tb2RlKQorICAgIChlbCAuIGVtYWNz
LWxpc3AtbW9kZSkKKyAgICAoZWxpc3AgLiBlbWFjcy1saXNwLW1vZGUpCisgICAgKGdvbGFuZyAu
IGdvLXRzLW1vZGUpCisgICAgKGdvbW9kIC4gZ28tbW9kLXRzLW1vZGUpCisgICAgKGdvd29yayAu
IGdvLXdvcmstdHMtbW9kZSkKKyAgICAoamF2YXNjcmlwdCAuIGpzLXRzLW1vZGUpCisgICAgKG1k
IC4gbWFya2Rvd24tdHMtbW9kZSkKKyAgICAocHkgLiBweXRob24tdHMtbW9kZSkKKyAgICAocmIg
LiBydWJ5LXRzLW1vZGUpCisgICAgKHJzIC4gcnVzdC10cy1tb2RlKQorICAgICh0ZXggLiBsYXRl
eC1tb2RlKQorICAgICh0cyAuIHR5cGVzY3JpcHQtdHMtbW9kZSkKKyAgICAoeW1sIC4geWFtbC10
cy1tb2RlKSkKKyAgIkFsaXN0IG1hcHBpbmcgY29kZSBibG9jayBsYW5ndWFnZXMgdG8gdGhlaXIg
bWFqb3IgbW9kZS4KK1RoZSBhbGlzdCBpcyBvZiB0aGUgZm9ybSAoTEFOR1VBR0UgLiBNQUpPUi1N
T0RFKS4KK01BSk9SLU1PREUgY2FuIGJlIGEgdHJlZS1zaXR0ZXIgb3IgYSBjb252ZW50aW9uYWwg
bW9kZS4KK0lmIHlvdSBwcmVmZXIgYSBjb252ZW50aW9uYWwgbW9kZSBvdmVyIGl0cyB0cmVlLXNp
dHRlciB2YXJpYW50LCBhZGQgb3IgcmVwbGFjZQorcmVsZXZhbnQgZW50cmllcy4gIEZvciBleGFt
cGxlOgorICAgIChhZGQtdG8tbGlzdCBcXD0nbWFya2Rvd24tdHMtY29kZS1ibG9jay1tb2Rlcwor
ICAgICAgXFw9JyhweXRob24gLiBweXRob24tbW9kZSkpCisgICAgKHNldGYgKGFsaXN0LWdldCBc
XD0ncHkgbWFya2Rvd24tdHMtY29kZS1ibG9jay1tb2RlcykKKyAgICAgICAgICBcXD0ncHl0aG9u
LW1vZGUpCitDb2RlIGJsb2NrcyBmb3IgdGhhdCBub24gdHJlZS1zaXR0ZXIgbW9kZXMgd2lsbCBi
ZSBmb250aWZpZWQgdXNpbmcgdGhlCittb2RlJ3MgY29udmVudGlvbmFsIGZvbnQtbG9jayBydWxl
cy4iKQorCis7OzsgRm9udC1sb2NrOgogCiAoZGVmdW4gbWFya2Rvd24tdHMtLWZvbnRpZnktZGVs
aW1pdGVyIChub2RlIG92ZXJyaWRlIHN0YXJ0IGVuZCAmcmVzdCBfKQogICAiRm9udGlmeSBkZWxp
bWl0ZXIgTk9ERSBhbmQgb3B0aW9uYWxseSBoaWRlIGl0cyBtYXJrdXAuCkBAIC0xNjgsMTMgKzM5
MCw1MTAgQEAgbWFya2Rvd24tdHMtLWZvbnRpZnktZGVsaW1pdGVyCiAgICAgKHB1dC10ZXh0LXBy
b3BlcnR5ICh0cmVlc2l0LW5vZGUtc3RhcnQgbm9kZSkgKHRyZWVzaXQtbm9kZS1lbmQgbm9kZSkK
ICAgICAgICAgICAgICAgICAgICAgICAgJ2ludmlzaWJsZSAnbWFya2Rvd24tdHMtLW1hcmt1cCkp
KQogCisoZGVmdmFyIHVybC1tYWlsLWNvbW1hbmQpIDsgdXJsL3VybC12YXJzLmVsCisKKyhkZWZ1
biBtYXJrZG93bi10cy0tbWFrZS1saW5rLWJ1dHRvbiAoYmVnIGVuZCB1cmwpCisgICJNYWtlIHRo
ZSByZWdpb24gZnJvbSBCRUcgdG8gRU5EIGEgY2xpY2thYmxlIGJ1dHRvbiBmb3IgVVJMLgorRm9y
IG1haWx0bzogVVJJcywgdXNlIGB1cmwtbWFpbC1jb21tYW5kJy4gIEZvciBvdGhlciBzY2hlbWVz
CitcKGUuZy4sIGh0dHAsIGZ0cCksIG9wZW4gd2l0aCBgYnJvd3NlLXVybCcuICBPdGhlcndpc2Us
IHRyZWF0IGFzCithIHJlbGF0aXZlIGZpbGUgcGF0aCBhbmQgb3BlbiB3aXRoIGBmaW5kLWZpbGUn
LiIKKyAgOzsgTk9URTogVVJJIHNjaGVtZSBhbmQgaG9zdCBuYW1lIGFyZSBjYXNlLWluc2Vuc2l0
aXZlIHBlciBSRkMgMzk4NgorICA7OyBhbmQgUkZDIDcyMzAuCisgIChsZXQgKChjYXNlLWZvbGQt
c2VhcmNoIG5pbCkpCisgICAgKG1ha2UtdGV4dC1idXR0b24gYmVnIGVuZAorICAgICAgICAgICAg
ICAgICAgICAgICdhY3Rpb24gKGxhbWJkYSAoX2J1dHRvbikKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgKGNvbmQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgoc3Ry
aW5nLW1hdGNoLXAgIlxcYG1haWx0bzoiIHVybCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAoZnVuY2FsbCB1cmwtbWFpbC1jb21tYW5kCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgKHJlcGxhY2UtcmVnZXhwLWluLXN0cmluZworICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiXFxgbWFpbHRvOiIgIiIgdXJsKSkp
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKHN0cmluZy1tYXRjaC1wICJcXGBb
YS16XSs6IiB1cmwpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGJyb3dzZS11
cmwgdXJsKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh0IChmaW5kLWZpbGUg
dXJsKSkpKQorICAgICAgICAgICAgICAgICAgICAgICdmYWNlICdtYXJrZG93bi10cy1saW5rCisg
ICAgICAgICAgICAgICAgICAgICAgJ2hlbHAtZWNobyB1cmwpKSkKKworKGRlZnVuIG1hcmtkb3du
LXRzLS1mb250aWZ5LWxpbmstZGVzdGluYXRpb24gKG5vZGUgb3ZlcnJpZGUgc3RhcnQgZW5kICZy
ZXN0IF8pCisgICJGb250aWZ5IGxpbmsgZGVzdGluYXRpb24gTk9ERSBhbmQgaGlkZSBpdCB3aGVu
IG1hcmt1cCBpcyBoaWRkZW4uCitPVkVSUklERSwgU1RBUlQsIGFuZCBFTkQgYXJlIHBhc3NlZCB0
aHJvdWdoIHRvCitgdHJlZXNpdC1mb250aWZ5LXdpdGgtb3ZlcnJpZGUnLiIKKyAgKHRyZWVzaXQt
Zm9udGlmeS13aXRoLW92ZXJyaWRlCisgICAodHJlZXNpdC1ub2RlLXN0YXJ0IG5vZGUpICh0cmVl
c2l0LW5vZGUtZW5kIG5vZGUpCisgICAnbWFya2Rvd24tdHMtbGluay1kZXN0aW5hdGlvbiBvdmVy
cmlkZSBzdGFydCBlbmQpCisgICh3aGVuIG1hcmtkb3duLXRzLWhpZGUtbWFya3VwCisgICAgKHB1
dC10ZXh0LXByb3BlcnR5ICh0cmVlc2l0LW5vZGUtc3RhcnQgbm9kZSkgKHRyZWVzaXQtbm9kZS1l
bmQgbm9kZSkKKyAgICAgICAgICAgICAgICAgICAgICAgJ2ludmlzaWJsZSAnbWFya2Rvd24tdHMt
LW1hcmt1cCkpKQorCisoZGVmdmFyLWxvY2FsIG1hcmtkb3duLXRzLS1saW5rLXJlZi1jYWNoZSBu
aWwKKyAgIkNhY2hlZCBhbGlzdCBvZiAoTEFCRUwgLiBVUkwpIGZyb20gbGluayByZWZlcmVuY2Ug
ZGVmaW5pdGlvbnMuCitFYWNoIGVudHJ5IGlzIGEgY29ucyBjZWxsIG1hcHBpbmcgYSBkb3duY2Fz
ZWQgbGFiZWwgc3RyaW5nIHRvIGl0cworZGVzdGluYXRpb24gVVJMLiIpCisKKyhkZWZ2YXItbG9j
YWwgbWFya2Rvd24tdHMtLWxpbmstcmVmLWNhY2hlLXRpY2sgbmlsCisgICJWYWx1ZSBvZiBgYnVm
ZmVyLWNoYXJzLW1vZGlmaWVkLXRpY2snIHdoZW4gdGhlIGNhY2hlIHdhcyBidWlsdC4iKQorCiso
ZGVmdW4gbWFya2Rvd24tdHMtLWxpbmstcmVmLWRlZmluaXRpb25zICgpCisgICJSZXR1cm4gYW4g
YWxpc3Qgb2YgKExBQkVMIC4gVVJMKSBmcm9tIGxpbmsgcmVmZXJlbmNlIGRlZmluaXRpb25zLgor
TEFCRUwgaXMgZG93bmNhc2VkIGZvciBjYXNlLWluc2Vuc2l0aXZlIG1hdGNoaW5nLiAgUmVzdWx0
cyBhcmUKK2NhY2hlZCBhbmQgcmVidWlsdCBvbmx5IHdoZW4gdGhlIGJ1ZmZlciBjaGFuZ2VzLiIK
KyAgKGxldCAoKHRpY2sgKGJ1ZmZlci1jaGFycy1tb2RpZmllZC10aWNrKSkpCisgICAgKHVubGVz
cyAoZXEgdGljayBtYXJrZG93bi10cy0tbGluay1yZWYtY2FjaGUtdGljaykKKyAgICAgIChsZXQq
ICgocm9vdCAodHJlZXNpdC1idWZmZXItcm9vdC1ub2RlICdtYXJrZG93bikpCisgICAgICAgICAg
ICAgKG1hdGNoZXMgKHRyZWVzaXQtcXVlcnktY2FwdHVyZQorICAgICAgICAgICAgICAgICAgICAg
ICByb290CisgICAgICAgICAgICAgICAgICAgICAgICcoKGxpbmtfcmVmZXJlbmNlX2RlZmluaXRp
b24KKyAgICAgICAgICAgICAgICAgICAgICAgICAgKGxpbmtfbGFiZWwpIEBsYWJlbAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAobGlua19kZXN0aW5hdGlvbikgQGRlc3QpKSkpCisgICAgICAg
ICAgICAgZGVmcykKKyAgICAgICAgKHdoaWxlIG1hdGNoZXMKKyAgICAgICAgICAobGV0KiAoKGxh
YmVsLXBhaXIgKHBvcCBtYXRjaGVzKSkKKyAgICAgICAgICAgICAgICAgKGRlc3QtcGFpciAocG9w
IG1hdGNoZXMpKQorICAgICAgICAgICAgICAgICAobGJsLXRleHQgKHN0cmluZy10cmltICh0cmVl
c2l0LW5vZGUtdGV4dCAoY2RyIGxhYmVsLXBhaXIpIHQpCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIlxcWyIgIlxcXSIpKSkKKyAgICAgICAgICAgIChwdXNoIChjb25z
IChkb3duY2FzZSBsYmwtdGV4dCkKKyAgICAgICAgICAgICAgICAgICAgICAgICh0cmVlc2l0LW5v
ZGUtdGV4dCAoY2RyIGRlc3QtcGFpcikgdCkpCisgICAgICAgICAgICAgICAgICBkZWZzKSkpCisg
ICAgICAgIChzZXRxIG1hcmtkb3duLXRzLS1saW5rLXJlZi1jYWNoZSAobnJldmVyc2UgZGVmcykK
KyAgICAgICAgICAgICAgbWFya2Rvd24tdHMtLWxpbmstcmVmLWNhY2hlLXRpY2sgdGljaykpKQor
ICAgIG1hcmtkb3duLXRzLS1saW5rLXJlZi1jYWNoZSkpCisKKyhkZWZ1biBtYXJrZG93bi10cy0t
cmVzb2x2ZS1saW5rLXJlZiAobGFiZWwpCisgICJSZXNvbHZlIExBQkVMIHRvIGEgVVJMIHZpYSBs
aW5rIHJlZmVyZW5jZSBkZWZpbml0aW9ucy4KK0xBQkVMIHNob3VsZCBiZSB0aGUgdGV4dCB3aXRo
b3V0IGJyYWNrZXRzLiAgTWF0Y2hpbmcgaXMKK2Nhc2UtaW5zZW5zaXRpdmUgcGVyIENvbW1vbk1h
cmsgc3BlYyBzZWN0aW9uIDQuNy4iCisgIChhbGlzdC1nZXQgKGRvd25jYXNlIGxhYmVsKSAobWFy
a2Rvd24tdHMtLWxpbmstcmVmLWRlZmluaXRpb25zKQorICAgICAgICAgICAgIG5pbCBuaWwgIydl
cXVhbCkpCisKKyhkZWZ1biBtYXJrZG93bi10cy0tZm9udGlmeS1saW5rLW5vZGUgKG5vZGUgb3Zl
cnJpZGUgc3RhcnQgZW5kICZyZXN0IF8pCisgICJGb250aWZ5IGxpbmsgb3IgaW1hZ2UgdGV4dCBO
T0RFIGFzIGEgY2xpY2thYmxlIGJ1dHRvbi4KK1dvcmtzIGZvciBpbmxpbmUgbGlua3MsIHJlZmVy
ZW5jZSBsaW5rcywgc2hvcnRjdXQgbGlua3MsIGFuZAoraW1hZ2UgZGVzY3JpcHRpb25zLiAgVGhl
IFVSTCBpcyB0YWtlbiBmcm9tIGEgc2libGluZworYGxpbmtfZGVzdGluYXRpb24nIG5vZGUgd2hl
biBwcmVzZW50LCBvciByZXNvbHZlZCBmcm9tIGEKK2xpbmsgcmVmZXJlbmNlIGRlZmluaXRpb24s
IG9yIHRoZSBub2RlIHRleHQgaXRzZWxmIGlzIHVzZWQgYXMKK2ZhbGxiYWNrLiAgT1ZFUlJJREUs
IFNUQVJULCBhbmQgRU5EIGFyZSBwYXNzZWQgdGhyb3VnaCB0bworYHRyZWVzaXQtZm9udGlmeS13
aXRoLW92ZXJyaWRlJy4iCisgIChsZXQgKChwYXJlbnQgKHRyZWVzaXQtbm9kZS1wYXJlbnQgbm9k
ZSkpKQorICAgIDs7IFdoZW4gTk9ERSBpcyBhIGxpbmtfbGFiZWwgaW5zaWRlIGEgZnVsbF9yZWZl
cmVuY2VfbGluayB0aGF0CisgICAgOzsgYWxzbyBoYXMgYSBsaW5rX3RleHQsIHNraXAgaXQsIGxp
bmtfdGV4dCBoYW5kbGVzIHRoYXQgbGluay4KKyAgICAodW5sZXNzIChhbmQgKHN0cmluZz0gKHRy
ZWVzaXQtbm9kZS10eXBlIG5vZGUpICJsaW5rX2xhYmVsIikKKyAgICAgICAgICAgICAgICAgKHRy
ZWVzaXQtc2VhcmNoLXN1YnRyZWUgcGFyZW50ICJcXGBsaW5rX3RleHRcXCciKSkKKyAgICAgICh0
cmVlc2l0LWZvbnRpZnktd2l0aC1vdmVycmlkZQorICAgICAgICh0cmVlc2l0LW5vZGUtc3RhcnQg
bm9kZSkgKHRyZWVzaXQtbm9kZS1lbmQgbm9kZSkKKyAgICAgICAnbWFya2Rvd24tdHMtbGluayBv
dmVycmlkZSBzdGFydCBlbmQpCisgICAgICAobGV0KiAoKGRlc3QgKHRyZWVzaXQtc2VhcmNoLXN1
YnRyZWUgcGFyZW50ICJcXGBsaW5rX2Rlc3RpbmF0aW9uXFwnIikpCisgICAgICAgICAgICAgKHVy
bCAoaWYgZGVzdAorICAgICAgICAgICAgICAgICAgICAgICh0cmVlc2l0LW5vZGUtdGV4dCBkZXN0
IHQpCisgICAgICAgICAgICAgICAgICAgIDs7IFJlZmVyZW5jZSBsaW5rczogcmVzb2x2ZSB2aWEg
bGlua19sYWJlbCBvciBsaW5rX3RleHQuCisgICAgICAgICAgICAgICAgICAgIChsZXQqICgobGFi
ZWwtbm9kZSAodHJlZXNpdC1zZWFyY2gtc3VidHJlZQorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHBhcmVudCAiXFxgbGlua19sYWJlbFxcJyIpKQorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgKGxhYmVsIChpZiBsYWJlbC1ub2RlCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIChzdHJpbmctdHJpbSAodHJlZXNpdC1ub2RlLXRleHQKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYWJlbC1ub2Rl
IHQpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAi
XFxbIiAiXFxdIikKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh0cmVlc2l0
LW5vZGUtdGV4dCBub2RlIHQpKSkpCisgICAgICAgICAgICAgICAgICAgICAgKG9yIChtYXJrZG93
bi10cy0tcmVzb2x2ZS1saW5rLXJlZiBsYWJlbCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
bGFiZWwpKSkpKQorICAgICAgICAobWFya2Rvd24tdHMtLW1ha2UtbGluay1idXR0b24KKyAgICAg
ICAgICh0cmVlc2l0LW5vZGUtc3RhcnQgbm9kZSkgKHRyZWVzaXQtbm9kZS1lbmQgbm9kZSkgdXJs
KSkpKSkKKworKGRlZnVuIG1hcmtkb3duLXRzLS1mb250aWZ5LWF1dG9saW5rIChub2RlIG92ZXJy
aWRlIHN0YXJ0IGVuZCAmcmVzdCBfKQorICAiRm9udGlmeSBhdXRvbGluayBOT0RFIChVUkkgb3Ig
ZW1haWwpIGFzIGEgY2xpY2thYmxlIGJ1dHRvbi4KK0ZvciBlbWFpbCBhdXRvbGlua3MsIHRoZSBV
UkwgaXMgcHJlZml4ZWQgd2l0aCBcIm1haWx0bzpcIi4KK0FuZ2xlIGJyYWNrZXQgZGVsaW1pdGVy
cyBhcmUgaGlkZGVuIHdoZW4gbWFya3VwIGlzIGhpZGRlbi4KK09WRVJSSURFLCBTVEFSVCwgYW5k
IEVORCBhcmUgcGFzc2VkIHRocm91Z2ggdG8KK2B0cmVlc2l0LWZvbnRpZnktd2l0aC1vdmVycmlk
ZScuIgorICAobGV0KiAoKG5vZGUtc3RhcnQgKHRyZWVzaXQtbm9kZS1zdGFydCBub2RlKSkKKyAg
ICAgICAgIChub2RlLWVuZCAodHJlZXNpdC1ub2RlLWVuZCBub2RlKSkKKyAgICAgICAgIChpbm5l
ciAoYnVmZmVyLXN1YnN0cmluZy1uby1wcm9wZXJ0aWVzCisgICAgICAgICAgICAgICAgICgxKyBu
b2RlLXN0YXJ0KSAoMS0gbm9kZS1lbmQpKSkKKyAgICAgICAgICh1cmwgKGlmIChzdHJpbmc9ICh0
cmVlc2l0LW5vZGUtdHlwZSBub2RlKSAiZW1haWxfYXV0b2xpbmsiKQorICAgICAgICAgICAgICAg
ICAgKGNvbmNhdCAibWFpbHRvOiIgaW5uZXIpCisgICAgICAgICAgICAgICAgaW5uZXIpKSkKKyAg
ICAodHJlZXNpdC1mb250aWZ5LXdpdGgtb3ZlcnJpZGUKKyAgICAgbm9kZS1zdGFydCBub2RlLWVu
ZCAnbWFya2Rvd24tdHMtbGluayBvdmVycmlkZSBzdGFydCBlbmQpCisgICAgKG1hcmtkb3duLXRz
LS1tYWtlLWxpbmstYnV0dG9uIG5vZGUtc3RhcnQgbm9kZS1lbmQgdXJsKQorICAgICh3aGVuIG1h
cmtkb3duLXRzLWhpZGUtbWFya3VwCisgICAgICAocHV0LXRleHQtcHJvcGVydHkgbm9kZS1zdGFy
dCAoMSsgbm9kZS1zdGFydCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAnaW52aXNpYmxlICdt
YXJrZG93bi10cy0tbWFya3VwKQorICAgICAgKHB1dC10ZXh0LXByb3BlcnR5ICgxLSBub2RlLWVu
ZCkgbm9kZS1lbmQKKyAgICAgICAgICAgICAgICAgICAgICAgICAnaW52aXNpYmxlICdtYXJrZG93
bi10cy0tbWFya3VwKSkpKQorCisoZGVmdW4gbWFya2Rvd24tdHMtLWZvbnRpZnktbGluay1yZWYt
bGFiZWwgKG5vZGUgb3ZlcnJpZGUgc3RhcnQgZW5kICZyZXN0IF8pCisgICJGb250aWZ5IGxpbmsg
cmVmZXJlbmNlIGRlZmluaXRpb24gbGFiZWwgTk9ERSBhcyBhIGNsaWNrYWJsZSBidXR0b24uCitU
aGUgYnJhY2tldHMgYW5kIGNvbG9uIGFyZSBoaWRkZW4gd2hlbiBtYXJrdXAgaXMgaGlkZGVuLgor
T1ZFUlJJREUsIFNUQVJULCBhbmQgRU5EIGFyZSBwYXNzZWQgdGhyb3VnaCB0bworYHRyZWVzaXQt
Zm9udGlmeS13aXRoLW92ZXJyaWRlJy4iCisgIChsZXQqICgobm9kZS1zdGFydCAodHJlZXNpdC1u
b2RlLXN0YXJ0IG5vZGUpKQorICAgICAgICAgKG5vZGUtZW5kICh0cmVlc2l0LW5vZGUtZW5kIG5v
ZGUpKQorICAgICAgICAgKHBhcmVudCAodHJlZXNpdC1ub2RlLXBhcmVudCBub2RlKSkKKyAgICAg
ICAgIChkZXN0LW5vZGUgKHRyZWVzaXQtc2VhcmNoLXN1YnRyZWUgcGFyZW50ICJcXGBsaW5rX2Rl
c3RpbmF0aW9uXFwnIikpCisgICAgICAgICAodXJsICh3aGVuIGRlc3Qtbm9kZSAodHJlZXNpdC1u
b2RlLXRleHQgZGVzdC1ub2RlIHQpKSkpCisgICAgOzsgRm9udGlmeSB0aGUgbGFiZWwgdGV4dCAo
aW5zaWRlIGJyYWNrZXRzKS4KKyAgICAodHJlZXNpdC1mb250aWZ5LXdpdGgtb3ZlcnJpZGUKKyAg
ICAgKDErIG5vZGUtc3RhcnQpICgxLSBub2RlLWVuZCkKKyAgICAgJ21hcmtkb3duLXRzLWxpbmsg
b3ZlcnJpZGUgc3RhcnQgZW5kKQorICAgIDs7IE1ha2UgaXQgYSBjbGlja2FibGUgYnV0dG9uLgor
ICAgICh3aGVuIHVybAorICAgICAgKG1hcmtkb3duLXRzLS1tYWtlLWxpbmstYnV0dG9uICgxKyBu
b2RlLXN0YXJ0KSAoMS0gbm9kZS1lbmQpIHVybCkpCisgICAgOzsgSGlkZSAiWyIgYmVmb3JlIGxh
YmVsIGFuZCAiXTogIiBiZXR3ZWVuIGxhYmVsIGFuZCBkZXN0aW5hdGlvbi4KKyAgICAod2hlbiBt
YXJrZG93bi10cy1oaWRlLW1hcmt1cAorICAgICAgKHB1dC10ZXh0LXByb3BlcnR5IG5vZGUtc3Rh
cnQgKDErIG5vZGUtc3RhcnQpCisgICAgICAgICAgICAgICAgICAgICAgICAgJ2ludmlzaWJsZSAn
bWFya2Rvd24tdHMtLW1hcmt1cCkKKyAgICAgIChsZXQgKChjb2xvbi1lbmQgKGlmIGRlc3Qtbm9k
ZSAodHJlZXNpdC1ub2RlLXN0YXJ0IGRlc3Qtbm9kZSkKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAoMSsgbm9kZS1lbmQpKSkpCisgICAgICAgIChwdXQtdGV4dC1wcm9wZXJ0eSAoMS0gbm9kZS1l
bmQpIGNvbG9uLWVuZAorICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2ludmlzaWJsZSAnbWFy
a2Rvd24tdHMtLW1hcmt1cCkpKSkpCisKKyhkZWZ1biBtYXJrZG93bi10cy0tZm9udGlmeS1saW5r
LXJlZi1kZXN0aW5hdGlvbiAobm9kZSBvdmVycmlkZSBzdGFydCBlbmQKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmcmVzdCBfKQorICAiRm9u
dGlmeSBsaW5rIHJlZmVyZW5jZSBkZWZpbml0aW9uIGRlc3RpbmF0aW9uIE5PREUgYW5kIGhpZGUg
d2hlbiBtYXJrdXAgaGlkZGVuLgorT1ZFUlJJREUsIFNUQVJULCBhbmQgRU5EIGFyZSBwYXNzZWQg
dGhyb3VnaCB0bworYHRyZWVzaXQtZm9udGlmeS13aXRoLW92ZXJyaWRlJy4iCisgICh0cmVlc2l0
LWZvbnRpZnktd2l0aC1vdmVycmlkZQorICAgKHRyZWVzaXQtbm9kZS1zdGFydCBub2RlKSAodHJl
ZXNpdC1ub2RlLWVuZCBub2RlKQorICAgJ21hcmtkb3duLXRzLWxpbmstZGVzdGluYXRpb24gb3Zl
cnJpZGUgc3RhcnQgZW5kKQorICAod2hlbiBtYXJrZG93bi10cy1oaWRlLW1hcmt1cAorICAgIChw
dXQtdGV4dC1wcm9wZXJ0eSAodHJlZXNpdC1ub2RlLXN0YXJ0IG5vZGUpICh0cmVlc2l0LW5vZGUt
ZW5kIG5vZGUpCisgICAgICAgICAgICAgICAgICAgICAgICdpbnZpc2libGUgJ21hcmtkb3duLXRz
LS1tYXJrdXApKSkKKworKGRlZnVuIG1hcmtkb3duLXRzLS1sYXRleC1ibG9jay12YWxpZC1wIChu
b2RlKQorICAiUmV0dXJuIG5vbi1uaWwgaWYgbGF0ZXggYmxvY2sgTk9ERSBpcyB3aXRoaW4gYSBz
aW5nbGUgaW5saW5lIHNjb3BlLgorVGhlIGdsb2JhbCBpbmxpbmUgcGFyc2VyIGNhbiBjcmVhdGUg
ZmFsc2UgYGxhdGV4X2Jsb2NrJyBtYXRjaGVzCitzcGFubmluZyBhY3Jvc3MgcGFyYWdyYXBoIGJv
dW5kYXJpZXMuICBDaGVjayB0aGF0IHRoZSBvcGVuaW5nIGFuZAorY2xvc2luZyBkZWxpbWl0ZXJz
IHNoYXJlIHRoZSBzYW1lIG1hcmtkb3duIGBpbmxpbmUnIGFuY2VzdG9yLiIKKyAgKGxldCAoKG5v
ZGUtc3RhcnQgKHRyZWVzaXQtbm9kZS1zdGFydCBub2RlKSkKKyAgICAgICAgKG5vZGUtZW5kICgx
LSAodHJlZXNpdC1ub2RlLWVuZCBub2RlKSkpKQorICAgICh3aGVuLWxldCogKChtZC1zdGFydCAo
dHJlZXNpdC1ub2RlLWF0IG5vZGUtc3RhcnQgJ21hcmtkb3duKSkKKyAgICAgICAgICAgICAgICAo
bWQtZW5kICh0cmVlc2l0LW5vZGUtYXQgbm9kZS1lbmQgJ21hcmtkb3duKSkKKyAgICAgICAgICAg
ICAgICAoaW5saW5lLXN0YXJ0ICh0cmVlc2l0LXBhcmVudC11bnRpbAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIG1kLXN0YXJ0CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
KGxhbWJkYSAobikKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChlcXVhbCAodHJl
ZXNpdC1ub2RlLXR5cGUgbikgImlubGluZSIpKSkpCisgICAgICAgICAgICAgICAgKGlubGluZS1l
bmQgKHRyZWVzaXQtcGFyZW50LXVudGlsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1k
LWVuZAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobGFtYmRhIChuKQorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIChlcXVhbCAodHJlZXNpdC1ub2RlLXR5cGUgbikgImlubGlu
ZSIpKSkpKQorICAgICAgKGVxdWFsICh0cmVlc2l0LW5vZGUtc3RhcnQgaW5saW5lLXN0YXJ0KQor
ICAgICAgICAgICAgICh0cmVlc2l0LW5vZGUtc3RhcnQgaW5saW5lLWVuZCkpKSkpCisKKyhkZWZ1
biBtYXJrZG93bi10cy0tZm9udGlmeS1sYXRleC1ibG9jayAobm9kZSBvdmVycmlkZSBzdGFydCBl
bmQgJnJlc3QgXykKKyAgIkZvbnRpZnkgbGF0ZXggYmxvY2sgTk9ERSBhbmQgaGlkZSBpdHMgZGVs
aW1pdGVycyB3aGVuIG1hcmt1cCBpcyBoaWRkZW4uCitTa2lwIGZvbnRpZmljYXRpb24gZm9yIGZh
bHNlIG1hdGNoZXMgdGhhdCBzcGFuIGFjcm9zcyBwYXJhZ3JhcGggYm91bmRhcmllcy4KK09WRVJS
SURFLCBTVEFSVCwgYW5kIEVORCBhcmUgcGFzc2VkIHRocm91Z2ggdG8KK2B0cmVlc2l0LWZvbnRp
Znktd2l0aC1vdmVycmlkZScuIgorICAod2hlbiAobWFya2Rvd24tdHMtLWxhdGV4LWJsb2NrLXZh
bGlkLXAgbm9kZSkKKyAgICAodHJlZXNpdC1mb250aWZ5LXdpdGgtb3ZlcnJpZGUKKyAgICAgKHRy
ZWVzaXQtbm9kZS1zdGFydCBub2RlKSAodHJlZXNpdC1ub2RlLWVuZCBub2RlKQorICAgICAnbWFy
a2Rvd24tdHMtbGF0ZXggb3ZlcnJpZGUgc3RhcnQgZW5kKQorICAgICh3aGVuIG1hcmtkb3duLXRz
LWhpZGUtbWFya3VwCisgICAgICAoZG90aW1lcyAoaSAodHJlZXNpdC1ub2RlLWNoaWxkLWNvdW50
IG5vZGUpKQorICAgICAgICAobGV0ICgoY2hpbGQgKHRyZWVzaXQtbm9kZS1jaGlsZCBub2RlIGkp
KSkKKyAgICAgICAgICAod2hlbiAoZXF1YWwgKHRyZWVzaXQtbm9kZS10eXBlIGNoaWxkKSAibGF0
ZXhfc3Bhbl9kZWxpbWl0ZXIiKQorICAgICAgICAgICAgKHB1dC10ZXh0LXByb3BlcnR5ICh0cmVl
c2l0LW5vZGUtc3RhcnQgY2hpbGQpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHRy
ZWVzaXQtbm9kZS1lbmQgY2hpbGQpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2lu
dmlzaWJsZSAnbWFya2Rvd24tdHMtLW1hcmt1cCkpKSkpKSkKKworKGRlZnVuIG1hcmtkb3duLXRz
LS1mb250aWZ5LWJhY2tzbGFzaC1lc2NhcGUgKG5vZGUgb3ZlcnJpZGUgc3RhcnQgZW5kICZyZXN0
IF8pCisgICJGb250aWZ5IGJhY2tzbGFzaCBlc2NhcGUgTk9ERSwgaGlkaW5nIHRoZSBiYWNrc2xh
c2ggd2hlbiBtYXJrdXAgaXMgaGlkZGVuLgorU2tpcCBoaWRpbmcgaW5zaWRlIGBsYXRleF9ibG9j
aycgd2hlcmUgYmFja3NsYXNoZXMgYXJlIExhVGVYIHN5bnRheC4KK09WRVJSSURFLCBTVEFSVCwg
YW5kIEVORCBhcmUgcGFzc2VkIHRocm91Z2ggdG8KK2B0cmVlc2l0LWZvbnRpZnktd2l0aC1vdmVy
cmlkZScuIgorICAobGV0ICgobm9kZS1zdGFydCAodHJlZXNpdC1ub2RlLXN0YXJ0IG5vZGUpKQor
ICAgICAgICAoaW4tbGF0ZXggKGVxdWFsICh0cmVlc2l0LW5vZGUtdHlwZSAodHJlZXNpdC1ub2Rl
LXBhcmVudCBub2RlKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAibGF0ZXhfYmxvY2siKSkp
CisgICAgKHRyZWVzaXQtZm9udGlmeS13aXRoLW92ZXJyaWRlCisgICAgIG5vZGUtc3RhcnQgKDEr
IG5vZGUtc3RhcnQpCisgICAgICdtYXJrZG93bi10cy1kZWxpbWl0ZXIgb3ZlcnJpZGUgc3RhcnQg
ZW5kKQorICAgICh3aGVuIChhbmQgbWFya2Rvd24tdHMtaGlkZS1tYXJrdXAgKG5vdCBpbi1sYXRl
eCkpCisgICAgICAocHV0LXRleHQtcHJvcGVydHkgbm9kZS1zdGFydCAoMSsgbm9kZS1zdGFydCkK
KyAgICAgICAgICAgICAgICAgICAgICAgICAnaW52aXNpYmxlICdtYXJrZG93bi10cy0tbWFya3Vw
KSkpKQorCisoZGVmdmFyIHNnbWwtY2hhci1uYW1lcykKKyhkZWNsYXJlLWZ1bmN0aW9uIG9yZy1l
bnRpdHktZ2V0ICJvcmcvb3JnLWVudGl0aWVzLmVsIikKKworKGRlZnVuIG1hcmtkb3duLXRzLS1k
ZWNvZGUtZW50aXR5ICh0ZXh0KQorICAiRGVjb2RlIEhUTUwgZW50aXR5IFRFWFQgKGUuZy4sIFwi
JmFtcDtcIikgdG8gaXRzIGNoYXJhY3RlciBzdHJpbmcuCitSZXR1cm4gdGhlIGRlY29kZWQgc3Ry
aW5nLCBvciBuaWwgaWYgdGhlIGVudGl0eSBpcyB1bmtub3duLiIKKyAgKGNvbmQKKyAgIDs7IE51
bWVyaWMgaGV4ICYjeDFGNEE5OworICAgKChzdHJpbmctbWF0Y2ggIlxcYCYjeFxcKFtbOnhkaWdp
dDpdXStcXCk7XFwnIiB0ZXh0KQorICAgIChjaGFyLXRvLXN0cmluZyAoc3RyaW5nLXRvLW51bWJl
ciAobWF0Y2gtc3RyaW5nIDEgdGV4dCkgMTYpKSkKKyAgIDs7IE51bWVyaWMgZGVjaW1hbCAmIzEy
MzsKKyAgICgoc3RyaW5nLW1hdGNoICJcXGAmI1xcKFtbOmRpZ2l0Ol1dK1xcKTtcXCciIHRleHQp
CisgICAgKGNoYXItdG8tc3RyaW5nIChzdHJpbmctdG8tbnVtYmVyIChtYXRjaC1zdHJpbmcgMSB0
ZXh0KSkpKQorICAgOzsgTmFtZWQgJmFtcDsgJmNvcHk7IHZpYSBvcmctZW50aXRpZXMsIGZhbGwg
YmFjayB0byBzZ21sLWNoYXItbmFtZXMKKyAgICgoc3RyaW5nLW1hdGNoICJcXGAmXFwoW1s6YWxu
dW06XV0rXFwpO1xcJyIgdGV4dCkKKyAgICAobGV0ICgobmFtZSAobWF0Y2gtc3RyaW5nIDEgdGV4
dCkpKQorICAgICAgKHJlcXVpcmUgJ29yZy1lbnRpdGllcykKKyAgICAgIChpZi1sZXQqICgoZW50
cnkgKG9yZy1lbnRpdHktZ2V0IG5hbWUpKQorICAgICAgICAgICAgICAgICh1dGY4IChudGggNiBl
bnRyeSkpKQorICAgICAgICAgIHV0ZjgKKyAgICAgICAgKHJlcXVpcmUgJ3NnbWwtbW9kZSkKKyAg
ICAgICAgKHdoZW4tbGV0KiAoKGNvZGUgKHNlcS1wb3NpdGlvbiBzZ21sLWNoYXItbmFtZXMgbmFt
ZSAjJ2VxdWFsKSkpCisgICAgICAgICAgKGNoYXItdG8tc3RyaW5nIGNvZGUpKSkpKSkpCisKKyhk
ZWZ1biBtYXJrZG93bi10cy0tZm9udGlmeS1lbnRpdHkgKG5vZGUgb3ZlcnJpZGUgc3RhcnQgZW5k
ICZyZXN0IF8pCisgICJGb250aWZ5IGVudGl0eSBOT0RFIGFuZCBzaG93IGl0cyBkZWNvZGVkIHZh
bHVlIHdoZW4gbWFya3VwIGlzIGhpZGRlbi4KK09WRVJSSURFLCBTVEFSVCwgYW5kIEVORCBhcmUg
cGFzc2VkIHRocm91Z2ggdG8KK2B0cmVlc2l0LWZvbnRpZnktd2l0aC1vdmVycmlkZScuIgorICAo
bGV0ICgobm9kZS1zdGFydCAodHJlZXNpdC1ub2RlLXN0YXJ0IG5vZGUpKQorICAgICAgICAobm9k
ZS1lbmQgKHRyZWVzaXQtbm9kZS1lbmQgbm9kZSkpCisgICAgICAgIChmYWNlIChpZiAoZXF1YWwg
KHRyZWVzaXQtbm9kZS10eXBlIG5vZGUpICJlbnRpdHlfcmVmZXJlbmNlIikKKyAgICAgICAgICAg
ICAgICAgICdtYXJrZG93bi10cy1lbnRpdHktcmVmZXJlbmNlCisgICAgICAgICAgICAgICAgJ21h
cmtkb3duLXRzLW51bWVyaWMtY2hhcmFjdGVyLXJlZmVyZW5jZSkpKQorICAgICh0cmVlc2l0LWZv
bnRpZnktd2l0aC1vdmVycmlkZSBub2RlLXN0YXJ0IG5vZGUtZW5kIGZhY2UKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgb3ZlcnJpZGUgc3RhcnQgZW5kKQorICAgIChpZiBtYXJr
ZG93bi10cy1oaWRlLW1hcmt1cAorICAgICAgICAod2hlbi1sZXQqICgoZGVjb2RlZCAobWFya2Rv
d24tdHMtLWRlY29kZS1lbnRpdHkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh0cmVl
c2l0LW5vZGUtdGV4dCBub2RlIHQpKSkKKyAgICAgICAgICAgICAgICAgICAgKChjaGFyLWRpc3Bs
YXlhYmxlLXAgKGFyZWYgZGVjb2RlZCAwKSkpKQorICAgICAgICAgIChwdXQtdGV4dC1wcm9wZXJ0
eSBub2RlLXN0YXJ0IG5vZGUtZW5kICdkaXNwbGF5IGRlY29kZWQpKQorICAgICAgKHJlbW92ZS10
ZXh0LXByb3BlcnRpZXMgbm9kZS1zdGFydCBub2RlLWVuZCAnKGRpc3BsYXkgbmlsKSkpKSkKKwor
KGRlZnVuIG1hcmtkb3duLXRzLS1mb250aWZ5LWNoZWNrYm94IChub2RlIG92ZXJyaWRlIHN0YXJ0
IGVuZCAmcmVzdCBfKQorICAiRm9udGlmeSB0YXNrIGxpc3QgY2hlY2tib3ggTk9ERSwgc2hvdyBh
IFVuaWNvZGUgc3ltYm9sIHdoZW4gbWFya3VwIGlzIGhpZGRlbi4KK09WRVJSSURFLCBTVEFSVCwg
YW5kIEVORCBhcmUgcGFzc2VkIHRocm91Z2ggdG8KK2B0cmVlc2l0LWZvbnRpZnktd2l0aC1vdmVy
cmlkZScuIgorICAobGV0KiAoKG5vZGUtc3RhcnQgKHRyZWVzaXQtbm9kZS1zdGFydCBub2RlKSkK
KyAgICAgICAgIChub2RlLWVuZCAodHJlZXNpdC1ub2RlLWVuZCBub2RlKSkKKyAgICAgICAgIChj
aGVja2VkIChlcXVhbCAodHJlZXNpdC1ub2RlLXR5cGUgbm9kZSkgInRhc2tfbGlzdF9tYXJrZXJf
Y2hlY2tlZCIpKQorICAgICAgICAgKGZhY2UgKGlmIGNoZWNrZWQgJ21hcmtkb3duLXRzLXRhc2st
Y2hlY2tlZAorICAgICAgICAgICAgICAgICAnbWFya2Rvd24tdHMtdGFzay11bmNoZWNrZWQpKQor
ICAgICAgICAgKHJlcGxhY2VtZW50IChpZiBjaGVja2VkCisgICAgICAgICAgICAgICAgICAgICAg
ICAgIG1hcmtkb3duLXRzLWNoZWNrZWQtY2hlY2tib3gKKyAgICAgICAgICAgICAgICAgICAgICAg
IG1hcmtkb3duLXRzLXVuY2hlY2tlZC1jaGVja2JveCkpKQorICAgICh0cmVlc2l0LWZvbnRpZnkt
d2l0aC1vdmVycmlkZSBub2RlLXN0YXJ0IG5vZGUtZW5kIGZhY2UKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgb3ZlcnJpZGUgc3RhcnQgZW5kKQorICAgIChpZiAoYW5kIG1hcmtk
b3duLXRzLWhpZGUtbWFya3VwIHJlcGxhY2VtZW50CisgICAgICAgICAgICAgKGNoYXItZGlzcGxh
eWFibGUtcCAoYXJlZiByZXBsYWNlbWVudCAwKSkpCisgICAgICAgIChwdXQtdGV4dC1wcm9wZXJ0
eSBub2RlLXN0YXJ0IG5vZGUtZW5kICdkaXNwbGF5IHJlcGxhY2VtZW50KQorICAgICAgKHJlbW92
ZS10ZXh0LXByb3BlcnRpZXMgbm9kZS1zdGFydCBub2RlLWVuZCAnKGRpc3BsYXkgbmlsKSkpKSkK
KworKGRlZnVuIG1hcmtkb3duLXRzLS1mb250aWZ5LXRoZW1hdGljLWJyZWFrIChub2RlIG92ZXJy
aWRlIHN0YXJ0IGVuZCAmcmVzdCBfKQorICAiRm9udGlmeSB0aGVtYXRpYyBicmVhayBOT0RFIGFu
ZCBzaG93IGEgbGluZSB3aGVuIG1hcmt1cCBpcyBoaWRkZW4uCitPVkVSUklERSwgU1RBUlQsIGFu
ZCBFTkQgYXJlIHBhc3NlZCB0aHJvdWdoIHRvCitgdHJlZXNpdC1mb250aWZ5LXdpdGgtb3ZlcnJp
ZGUnLiIKKyAgKGxldCAoKG5vZGUtc3RhcnQgKHRyZWVzaXQtbm9kZS1zdGFydCBub2RlKSkKKyAg
ICAgICAgKG5vZGUtZW5kICh0cmVlc2l0LW5vZGUtZW5kIG5vZGUpKSkKKyAgICAodHJlZXNpdC1m
b250aWZ5LXdpdGgtb3ZlcnJpZGUgbm9kZS1zdGFydCBub2RlLWVuZAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAnbWFya2Rvd24tdHMtdGhlbWF0aWMtYnJlYWsKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgb3ZlcnJpZGUgc3RhcnQgZW5kKQorICAgIChpZiAo
YW5kIG1hcmtkb3duLXRzLWhpZGUtbWFya3VwIG1hcmtkb3duLXRzLXRoZW1hdGljLWJyZWFrLWNo
YXJhY3RlcgorICAgICAgICAgICAgIChjaGFyLWRpc3BsYXlhYmxlLXAgbWFya2Rvd24tdHMtdGhl
bWF0aWMtYnJlYWstY2hhcmFjdGVyKSkKKyAgICAgICAgKGxldCogKChjb2wgKHNhdmUtZXhjdXJz
aW9uIChnb3RvLWNoYXIgbm9kZS1zdGFydCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIChjdXJyZW50LWNvbHVtbikpKQorICAgICAgICAgICAgICAgOzsgU3BhbiBpZiB0aGUg
ZmFjZSBoYXMgbm9uLW5pbCA6ZXh0ZW5kLgorICAgICAgICAgICAgICAgKHNwYW4tbGVuZ3RoIChp
ZiAoZmFjZS1hdHRyaWJ1dGUgJ21hcmtkb3duLXRzLXRoZW1hdGljLWJyZWFrCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6ZXh0ZW5kIG5pbCAnZGVmYXVs
dCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKC0gKHdpbmRvdy1ib2R5LXdpZHRo
KSBjb2wpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxMikpKQorICAgICAgICAgIChw
dXQtdGV4dC1wcm9wZXJ0eSBub2RlLXN0YXJ0IG5vZGUtZW5kCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICdkaXNwbGF5CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjb25jYXQK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYWtlLXN0cmluZyBzcGFuLWxlbmd0aAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hcmtkb3duLXRzLXRo
ZW1hdGljLWJyZWFrLWNoYXJhY3RlcikKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJc
biIpKSkKKyAgICAgIChyZW1vdmUtdGV4dC1wcm9wZXJ0aWVzIG5vZGUtc3RhcnQgbm9kZS1lbmQg
JyhkaXNwbGF5IG5pbCkpKSkpCisKKyhkZWZ1biBtYXJrZG93bi10cy0tZm9udGlmeS1jb2RlLWJs
b2NrIChub2RlIF9vdmVycmlkZSBfc3RhcnQgX2VuZCAmcmVzdCBfKQorICAiRm9udGlmeSBjb2Rl
IGJsb2NrIGNvbnRlbnQgTk9ERSB3aXRoIGEgYmFja2dyb3VuZCBvdmVybGF5LgorVXNlIGBtYXJr
ZG93bi10cy1jb2RlLWJsb2NrLW1hcmt1cC1oaWRkZW4nIHdoZW4gbWFya3VwIGlzIGhpZGRlbiwK
K2BtYXJrZG93bi10cy1jb2RlLWJsb2NrJyBvdGhlcndpc2UuICBVc2UgYW4gb3ZlcmxheSBzbyB0
aGUKK2JhY2tncm91bmQgbGF5ZXJzIGl0c2VsZiBiZWhpbmQgbGFuZ3VhZ2Utc3BlY2lmaWMgZm9u
dGlmaWNhdGlvbi4KK1RoZSBvdmVybGF5IGFsc28gc3RvcmVzIHRoZSBjb2RlIGJsb2NrIGxhbmd1
YWdlIGFuZCBtb2RlIGFzCitwcm9wZXJ0aWVzIGBtYXJrZG93bi10cy1jb2RlLWJsb2NrLWxhbmd1
YWdlJyBhbmQKK2BtYXJrZG93bi10cy1jb2RlLWJsb2NrLW1vZGUnLCBhY2Nlc3NpYmxlIHZpYQor
YG1hcmtkb3duLXRzLWNvZGUtYmxvY2stbGFuZ3VhZ2UtYXQnLiIKKyAgKGxldCogKChub2RlLXN0
YXJ0IChzYXZlLWV4Y3Vyc2lvbgorICAgICAgICAgICAgICAgICAgICAgICAoZ290by1jaGFyICh0
cmVlc2l0LW5vZGUtc3RhcnQgbm9kZSkpCisgICAgICAgICAgICAgICAgICAgICAgIChsaW5lLWJl
Z2lubmluZy1wb3NpdGlvbikpKQorICAgICAgICAgKG5vZGUtZW5kIChzYXZlLWV4Y3Vyc2lvbgor
ICAgICAgICAgICAgICAgICAgICAgKGdvdG8tY2hhciAodHJlZXNpdC1ub2RlLWVuZCBub2RlKSkK
KyAgICAgICAgICAgICAgICAgICAgIChza2lwLWNoYXJzLWJhY2t3YXJkICIgXHQiKQorICAgICAg
ICAgICAgICAgICAgICAgKHBvaW50KSkpCisgICAgICAgICAoZmFjZSAoaWYgbWFya2Rvd24tdHMt
aGlkZS1tYXJrdXAKKyAgICAgICAgICAgICAgICAgICAnbWFya2Rvd24tdHMtY29kZS1ibG9jay1t
YXJrdXAtaGlkZGVuCisgICAgICAgICAgICAgICAgICdtYXJrZG93bi10cy1jb2RlLWJsb2NrKSkK
KyAgICAgICAgIChsYW5nIChtYXJrZG93bi10cy0tbGFuZ3VhZ2UtYXQtbm9kZSBub2RlKSkKKyAg
ICAgICAgIChtb2RlICh3aGVuIGxhbmcKKyAgICAgICAgICAgICAgICAgKG1hcmtkb3duLXRzLS1j
b2RlLWJsb2NrLWxhbmd1YWdlLW1vZGUgbGFuZykpKQorICAgICAgICAgKGV4aXN0aW5nIChzZXEt
ZmluZCAobGFtYmRhIChvdikKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob3Zlcmxh
eS1nZXQgb3YgJ21hcmtkb3duLXRzLWNvZGUtYmxvY2spKQorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAob3ZlcmxheXMtYXQgbm9kZS1zdGFydCkpKSkKKyAgICAoaWYgZXhpc3RpbmcKKyAg
ICAgICAgKHByb2duCisgICAgICAgICAgKG1vdmUtb3ZlcmxheSBleGlzdGluZyBub2RlLXN0YXJ0
IG5vZGUtZW5kKQorICAgICAgICAgIChvdmVybGF5LXB1dCBleGlzdGluZyAnZmFjZSBmYWNlKQor
ICAgICAgICAgIChvdmVybGF5LXB1dCBleGlzdGluZyAnbWFya2Rvd24tdHMtY29kZS1ibG9jay1s
YW5ndWFnZSBsYW5nKQorICAgICAgICAgIChvdmVybGF5LXB1dCBleGlzdGluZyAnbWFya2Rvd24t
dHMtY29kZS1ibG9jay1tb2RlIG1vZGUpKQorICAgICAgKGxldCAoKG92IChtYWtlLW92ZXJsYXkg
bm9kZS1zdGFydCBub2RlLWVuZCBuaWwgdCBuaWwpKSkKKyAgICAgICAgOzsgTWFya2VycyBuZWVk
IHRvIGJlIHNldCBvbmx5IG9uY2UuCisgICAgICAgIChvdmVybGF5LXB1dCBvdiAnbWFya2Rvd24t
dHMtY29kZS1iZWctbWFya2VyIChzZXQtbWFya2VyIChtYWtlLW1hcmtlcikKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9k
ZS1zdGFydCkpCisgICAgICAgIChvdmVybGF5LXB1dCBvdiAnbWFya2Rvd24tdHMtY29kZS1lbmQt
bWFya2VyIChzZXQtbWFya2VyIChtYWtlLW1hcmtlcikKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9kZS1lbmQpKQorICAg
ICAgICAob3ZlcmxheS1wdXQgb3YgJ21hcmtkb3duLXRzLWNvZGUtYmxvY2sgdCkKKyAgICAgICAg
KG92ZXJsYXktcHV0IG92ICdmYWNlIGZhY2UpCisgICAgICAgIChvdmVybGF5LXB1dCBvdiAnbWFy
a2Rvd24tdHMtY29kZS1ibG9jay1sYW5ndWFnZSBsYW5nKQorICAgICAgICAob3ZlcmxheS1wdXQg
b3YgJ21hcmtkb3duLXRzLWNvZGUtYmxvY2stbW9kZSBtb2RlKQorICAgICAgICAob3ZlcmxheS1w
dXQgb3YgJ2V2YXBvcmF0ZSB0KSkpKSkKKworKGRlZnVuIG1hcmtkb3duLXRzLWNvZGUtYmxvY2st
YXQtcCAoJm9wdGlvbmFsIHBvcykKKyAgIlJldHVybiBub24gbmlsIGlmIHBvaW50IGlzIGluIGEg
Y29kZSBibG9jay4KK0lmIFBPUyBpcyBuaWwsIHVzZSBwb2ludC4iCisgIChnZXQtY2hhci1wcm9w
ZXJ0eSAob3IgcG9zIChwb2ludCkpICdtYXJrZG93bi10cy1jb2RlLWJsb2NrKSkKKworKGRlZnVu
IG1hcmtkb3duLXRzLWNvZGUtYmxvY2stbGFuZ3VhZ2UtYXQgKCZvcHRpb25hbCBwb3MpCisgICJS
ZXR1cm4gdGhlIGxhbmd1YWdlIHN5bWJvbCBvZiB0aGUgY29kZSBibG9jayBhdCBQT1MuCitJZiBQ
T1MgaXMgbmlsLCB1c2UgcG9pbnQuICBSZXR1cm5zIG5pbCBpZiBQT1MgaXMgbm90IGluc2lkZSBh
IGZlbmNlZAorY29kZSBibG9jay4gIFRoaXMgd29ya3MgcmVnYXJkbGVzcyBvZiB3aGV0aGVyIGEg
Z3Vlc3QgdHJlZS1zaXR0ZXIgcGFyc2VyCitpcyBhY3RpdmUsIHNpbmNlIHRoZSBsYW5ndWFnZSBp
cyBzdG9yZWQgb24gdGhlIGNvZGUgYmxvY2sgb3ZlcmxheSBieSB0aGUKK2hvc3QgcGFyc2VyJ3Mg
Zm9udGlmaWNhdGlvbi4iCisgIChnZXQtY2hhci1wcm9wZXJ0eSAob3IgcG9zIChwb2ludCkpICdt
YXJrZG93bi10cy1jb2RlLWJsb2NrLWxhbmd1YWdlKSkKKworKGRlZnVuIG1hcmtkb3duLXRzLWNv
ZGUtYmxvY2stbW9kZS1hdCAoJm9wdGlvbmFsIHBvcykKKyAgIlJldHVybiB0aGUgbWFqb3IgbW9k
ZSBmb3IgdGhlIGNvZGUgYmxvY2sgYXQgUE9TLgorSWYgUE9TIGlzIG5pbCwgdXNlIHBvaW50LiAg
UmV0dXJucyBuaWwgaWYgUE9TIGlzIG5vdCBpbnNpZGUgYSBmZW5jZWQKK2NvZGUgYmxvY2sgb3Ig
aWYgdGhlIGxhbmd1YWdlIGhhcyBubyByZWNvZ25pemVkIG1vZGUuIgorICAoZ2V0LWNoYXItcHJv
cGVydHkgKG9yIHBvcyAocG9pbnQpKSAnbWFya2Rvd24tdHMtY29kZS1ibG9jay1tb2RlKSkKKwor
Ozs7IEltYWdlIGhhbmRsaW5nOgorCisoZGVmdW4gbWFya2Rvd24tdHMtLWltYWdlLWFsb25lLW9u
LWxpbmUtcCAobm9kZSkKKyAgIlJldHVybiBub24tbmlsIGlmIGltYWdlIE5PREUgaXMgdGhlIG9u
bHkgY29udGVudCBvbiBpdHMgbGluZS4KK1doaXRlc3BhY2UsIGJsb2NrIHF1b3RlIG1hcmtlcnMg
KGA+JyksIGFuZCBsaXN0IG1hcmtlcnMKK1woYC0nLCBgKicsIGArJywgYDEuJykgYmVmb3JlIHRo
ZSBpbWFnZSBhcmUgaWdub3JlZC4iCisgIChsZXQgKChub2RlLXN0YXJ0ICh0cmVlc2l0LW5vZGUt
c3RhcnQgbm9kZSkpCisgICAgICAgIChub2RlLWVuZCAodHJlZXNpdC1ub2RlLWVuZCBub2RlKSkp
CisgICAgKHNhdmUtZXhjdXJzaW9uCisgICAgICAoZ290by1jaGFyIG5vZGUtc3RhcnQpCisgICAg
ICAobGV0ICgoYm9sIChsaW5lLWJlZ2lubmluZy1wb3NpdGlvbikpCisgICAgICAgICAgICAoZW9s
IChsaW5lLWVuZC1wb3NpdGlvbikpKQorICAgICAgICA7OyBCZWZvcmUgdGhlIGltYWdlOiBvbmx5
IGJsb2NrIHF1b3RlIG1hcmtlcnMsIHdoaXRlc3BhY2UsCisgICAgICAgIDs7IGFuZCBhbiBvcHRp
b25hbCBsaXN0IG1hcmtlciBhcmUgYWxsb3dlZC4KKyAgICAgICAgKGFuZCAoc3RyaW5nLW1hdGNo
LXAKKyAgICAgICAgICAgICAgKHJ4IGJvcworICAgICAgICAgICAgICAgICAgKHplcm8tb3ItbW9y
ZSAoYW55ICI+IFx0IikpCisgICAgICAgICAgICAgICAgICAob3B0aW9uYWwgKG9yIChzZXEgKGFu
eSAiLSorIikgIiAiKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoc2VxIChvbmUt
b3ItbW9yZSBkaWdpdCkgKGFueSAiLikiICkgIiAiKSkpCisgICAgICAgICAgICAgICAgICBlb3Mp
CisgICAgICAgICAgICAgIChidWZmZXItc3Vic3RyaW5nLW5vLXByb3BlcnRpZXMgYm9sIG5vZGUt
c3RhcnQpKQorICAgICAgICAgICAgIDs7IEFmdGVyIHRoZSBpbWFnZTogb25seSB0cmFpbGluZyB3
aGl0ZXNwYWNlIGFsbG93ZWQuCisgICAgICAgICAgICAgKHN0cmluZy1tYXRjaC1wCisgICAgICAg
ICAgICAgIChyeCBib3MgKHplcm8tb3ItbW9yZSAoYW55ICIgXHQiKSkgZW9zKQorICAgICAgICAg
ICAgICAoYnVmZmVyLXN1YnN0cmluZy1uby1wcm9wZXJ0aWVzIG5vZGUtZW5kIGVvbCkpKSkpKSkK
KworKGRlZnVuIG1hcmtkb3duLXRzLS1mb250aWZ5LWltYWdlIChub2RlIF9vdmVycmlkZSBfc3Rh
cnQgX2VuZCAmcmVzdCBfKQorICAiU2hvdyBhbiBpbmxpbmUgaW1hZ2UgYXQgTk9ERS4KK1doZW4g
YG1hcmtkb3duLXRzLWlubGluZS1pbWFnZXMnIGlzIG5vbi1uaWwsIGRpc3BsYXkgdGhlIGltYWdl
LgorSWYgdGhlIGltYWdlIGxpbmsgaXMgdGhlIG9ubHkgY29udGVudCBvbiBpdHMgbGluZSwgZGlz
cGxheSB0aGUKK2ltYWdlIGJlbG93IHRoZSBsaW5rLiAgSWYgdGhlIGltYWdlIGlzIGlubGluZSB3
aXRoaW4gYSBwYXJhZ3JhcGgsCitkaXNwbGF5IGl0IHJpZ2h0IGFmdGVyIHRoZSBsaW5rIHRleHQu
CitSZW1vdGUgaW1hZ2VzIGFyZSBjb250cm9sbGVkIGJ5CitgbWFya2Rvd24tdHMtZGlzcGxheS1y
ZW1vdGUtaW5saW5lLWltYWdlcycuIgorICAobGV0KiAoKG5vZGUtc3RhcnQgKHRyZWVzaXQtbm9k
ZS1zdGFydCBub2RlKSkKKyAgICAgICAgIChub2RlLWVuZCAodHJlZXNpdC1ub2RlLWVuZCBub2Rl
KSkKKyAgICAgICAgIChlb2wgKHNhdmUtZXhjdXJzaW9uIChnb3RvLWNoYXIgbm9kZS1lbmQpCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobGluZS1lbmQtcG9zaXRpb24pKSkKKyAgICAg
ICAgIChzZWFyY2gtZW5kIChtaW4gKDErIGVvbCkgKHBvaW50LW1heCkpKSkKKyAgICA7OyBBbHdh
eXMgY2xlYXIgc3RhbGUgb3ZlcmxheXMgZm9yIHRoaXMgbm9kZSdzIHJhbmdlLgorICAgIChkb2xp
c3QgKG92IChvdmVybGF5cy1pbiBub2RlLXN0YXJ0IHNlYXJjaC1lbmQpKQorICAgICAgKHdoZW4g
KGFuZCAob3ZlcmxheS1nZXQgb3YgJ21hcmtkb3duLXRzLWltYWdlKQorICAgICAgICAgICAgICAg
ICAoPj0gKG92ZXJsYXktc3RhcnQgb3YpIG5vZGUtc3RhcnQpCisgICAgICAgICAgICAgICAgICg8
PSAob3ZlcmxheS1lbmQgb3YpIHNlYXJjaC1lbmQpKQorICAgICAgICAoZGVsZXRlLW92ZXJsYXkg
b3YpKSkKKyAgICAod2hlbiAoYW5kIG1hcmtkb3duLXRzLWlubGluZS1pbWFnZXMKKyAgICAgICAg
ICAgICAgIDs7IERvbid0IGNyZWF0ZSBpbWFnZSBvdmVybGF5cyBmb3Igbm9kZXMgaW5zaWRlCisg
ICAgICAgICAgICAgICA7OyBmb2xkZWQgKG91dGxpbmUtaW52aXNpYmxlKSBoZWFkaW5ncywgc2lu
Y2UgdGhlCisgICAgICAgICAgICAgICA7OyBpbWFnZXMgd291bGRuJ3QgYmUgdmlzaWJsZSBhbmQg
Y291bGQgaW50ZXJmZXJlCisgICAgICAgICAgICAgICA7OyB3aXRoIHRoZSBmb2xkZWQgZGlzcGxh
eS4KKyAgICAgICAgICAgICAgIChub3QgKG1hcmtkb3duLXRzLS1vdXRsaW5lLWludmlzaWJsZS1w
IG5vZGUtc3RhcnQpKSkKKyAgICAgIChsZXQqICgoZGVzdCAodHJlZXNpdC1zZWFyY2gtc3VidHJl
ZSBub2RlICJcXGBsaW5rX2Rlc3RpbmF0aW9uXFwnIikpCisgICAgICAgICAgICAgKHVybCAoYW5k
IGRlc3QgKHRyZWVzaXQtbm9kZS10ZXh0IGRlc3QgdCkpKQorICAgICAgICAgICAgIChyZW1vdGVw
IChhbmQgdXJsIChzdHJpbmctbWF0Y2gtcCAiXFxgaHR0cHM/Oi8vIiB1cmwpKSkKKyAgICAgICAg
ICAgICAoZGlzcGxheWFibGUKKyAgICAgICAgICAgICAgKHdoZW4gdXJsCisgICAgICAgICAgICAg
ICAgKGlmIHJlbW90ZXAKKyAgICAgICAgICAgICAgICAgICAgKHdoZW4gKGVxIG1hcmtkb3duLXRz
LWRpc3BsYXktcmVtb3RlLWlubGluZS1pbWFnZXMKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICdkb3dubG9hZCkKKyAgICAgICAgICAgICAgICAgICAgICAoaWdub3JlLWVycm9ycworICAg
ICAgICAgICAgICAgICAgICAgICAgKHJlcXVpcmUgJ3VybC1oYW5kbGVycykKKyAgICAgICAgICAg
ICAgICAgICAgICAgICh3aXRoLXRlbXAtYnVmZmVyCisgICAgICAgICAgICAgICAgICAgICAgICAg
IChzZXQtYnVmZmVyLW11bHRpYnl0ZSBuaWwpCisgICAgICAgICAgICAgICAgICAgICAgICAgICh1
cmwtaW5zZXJ0LWZpbGUtY29udGVudHMgdXJsKQorICAgICAgICAgICAgICAgICAgICAgICAgICAo
YnVmZmVyLXN0cmluZykpKSkKKyAgICAgICAgICAgICAgICAgIChsZXQgKChmaWxlIChleHBhbmQt
ZmlsZS1uYW1lIHVybCkpKQorICAgICAgICAgICAgICAgICAgICAoYW5kIChub3QgKGZpbGUtcmVt
b3RlLXAgZmlsZSkpCisgICAgICAgICAgICAgICAgICAgICAgICAgKGZpbGUtZXhpc3RzLXAgZmls
ZSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAoaW1hZ2Utc3VwcG9ydGVkLWZpbGUtcCBmaWxl
KQorICAgICAgICAgICAgICAgICAgICAgICAgIGZpbGUpKSkpKQorICAgICAgICAgICAgIChtYXgt
dyAoYW5kIGRpc3BsYXlhYmxlCisgICAgICAgICAgICAgICAgICAgICAgICAgKGlmIChlcSBtYXJr
ZG93bi10cy1pbWFnZS1tYXgtd2lkdGggJ3dpbmRvdykKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgKHdpbmRvdy1ib2R5LXdpZHRoIG5pbCB0KQorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgbWFya2Rvd24tdHMtaW1hZ2UtbWF4LXdpZHRoKSkpCisgICAgICAgICAgICAgKGltZyAoYW5k
IG1heC13CisgICAgICAgICAgICAgICAgICAgICAgIChjcmVhdGUtaW1hZ2UgZGlzcGxheWFibGUg
bmlsIHJlbW90ZXAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6bWF4LXdp
ZHRoIG1heC13CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOnNjYWxlIDEp
KSkpCisgICAgICAgICh3aGVuIGltZworICAgICAgICAgIChsZXQqICgoYWxvbmUgKG1hcmtkb3du
LXRzLS1pbWFnZS1hbG9uZS1vbi1saW5lLXAgbm9kZSkpCisgICAgICAgICAgICAgICAgIChzdHIg
KGlmIGFsb25lCisgICAgICAgICAgICAgICAgICAgICAgICAgIChjb25jYXQgIlxuIiAocHJvcGVy
dGl6ZSAiICIgJ2Rpc3BsYXkgaW1nKSkKKyAgICAgICAgICAgICAgICAgICAgICAgIChwcm9wZXJ0
aXplICIgIiAnZGlzcGxheSBpbWcpKSkKKyAgICAgICAgICAgICAgICAgKG92IChtYWtlLW92ZXJs
YXkgKDEtIG5vZGUtZW5kKSBub2RlLWVuZCBuaWwgdCBuaWwpKSkKKyAgICAgICAgICAgIChvdmVy
bGF5LXB1dCBvdiAnbWFya2Rvd24tdHMtaW1hZ2UgdCkKKyAgICAgICAgICAgIChvdmVybGF5LXB1
dCBvdiAnYWZ0ZXItc3RyaW5nIHN0cikKKyAgICAgICAgICAgIChvdmVybGF5LXB1dCBvdiAnZXZh
cG9yYXRlIHQpKSkpKSkpCisKKzs7OyBVUkwvVVJJIGhhbmRsaW5nOgorCisoZGVmdmFyIG1hcmtk
b3duLXRzLS1iYXJlLXVybC1yZWdleHAgZ290by1hZGRyZXNzLXVybC1yZWdleHAKKyAgIlJlZ2V4
cCBtYXRjaGluZyBiYXJlIFVSTHMgbm90IHdyYXBwZWQgaW4gYW5nbGUgYnJhY2tldHMgb3IgbGlu
ayBzeW50YXguIikKKworKGRlZnZhciBtYXJrZG93bi10cy0tYmFyZS1lbWFpbC11cmktcmVnZXhw
IGdvdG8tYWRkcmVzcy1tYWlsLXJlZ2V4cAorICAiUmVnZXhwIG1hdGNoaW5nIGJhcmUgZW1haWwg
YWRkcmVzc2VzIG5vdCB3cmFwcGVkIGluIGFuZ2xlIGJyYWNrZXRzLiIpCisKKyhkZWZ1biBtYXJr
ZG93bi10cy0tZm9udGlmeS1iYXJlLXVyaSAoc3RhcnQgZW5kKQorICAiRm9udGlmeSBiYXJlIFVS
TCBvciBlbWFpbCBVUkkgYmV0d2VlbiBTVEFSVCBhbmQgRU5ELgorU2tpcCBtYXRjaGVzIGFscmVh
ZHkgaW5zaWRlIHRyZWUtc2l0dGVyIGxpbmsgb3IgYXV0b2xpbmsgbm9kZXMuIgorICAoZG9saXN0
IChyZSAobGlzdCBtYXJrZG93bi10cy0tYmFyZS11cmwtcmVnZXhwCisgICAgICAgICAgICAgICAg
ICAgIG1hcmtkb3duLXRzLS1iYXJlLWVtYWlsLXVyaS1yZWdleHApKQorICAgIChnb3RvLWNoYXIg
c3RhcnQpCisgICAgKHdoaWxlIChyZS1zZWFyY2gtZm9yd2FyZCByZSBlbmQgdCkKKyAgICAgIChs
ZXQqICgodXJpLXN0YXJ0IChtYXRjaC1iZWdpbm5pbmcgMCkpCisgICAgICAgICAgICAgKHVyaS1l
bmQgKG1hdGNoLWVuZCAwKSkKKyAgICAgICAgICAgICAodXJpIChtYXRjaC1zdHJpbmcgMCkpCisg
ICAgICAgICAgICAgKG5vZGUgKHRyZWVzaXQtbm9kZS1hdCB1cmktc3RhcnQgJ21hcmtkb3duLWlu
bGluZSkpCisgICAgICAgICAgICAgKHBhcmVudCAoYW5kIG5vZGUgKHRyZWVzaXQtbm9kZS1wYXJl
bnQgbm9kZSkpKQorICAgICAgICAgICAgIChwYXJlbnQtdHlwZSAoYW5kIHBhcmVudCAodHJlZXNp
dC1ub2RlLXR5cGUgcGFyZW50KSkpKQorICAgICAgICAodW5sZXNzIChvciAobWVtYmVyIHBhcmVu
dC10eXBlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgJygiaW5saW5lX2xpbmsiICJmdWxs
X3JlZmVyZW5jZV9saW5rIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImNvbGxhcHNl
ZF9yZWZlcmVuY2VfbGluayIgInNob3J0Y3V0X2xpbmsiCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAiaW1hZ2UiICJ1cmlfYXV0b2xpbmsiICJlbWFpbF9hdXRvbGluayIKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICJsaW5rX2Rlc3RpbmF0aW9uIikpCisgICAgICAgICAgICAg
ICAgICAgIChtZW1iZXIgKGFuZCBub2RlICh0cmVlc2l0LW5vZGUtdHlwZSBub2RlKSkKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAnKCJ1cmlfYXV0b2xpbmsiICJlbWFpbF9hdXRvbGluayIK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJsaW5rX2Rlc3RpbmF0aW9uIiAiY29kZV9z
cGFuIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImNvZGVfZmVuY2VfY29udGVudCIg
ImluZm9fc3RyaW5nIikpCisgICAgICAgICAgICAgICAgICAgIChnZXQtdGV4dC1wcm9wZXJ0eSB1
cmktc3RhcnQgJ2J1dHRvbikpCisgICAgICAgICAgKG1hcmtkb3duLXRzLS1tYWtlLWxpbmstYnV0
dG9uCisgICAgICAgICAgIHVyaS1zdGFydCB1cmktZW5kCisgICAgICAgICAgIChpZiAoZXEgdXJp
LXN0YXJ0IDApCisgICAgICAgICAgICAgICB1cmkKKyAgICAgICAgICAgICAoY29uY2F0ICJtYWls
dG86IiB1cmkpKSkpKSkpKQorCis7OzsgdHJlZXNpdCBzZXR0aW5nczoKKwogKGRlZnZhciBtYXJr
ZG93bi10cy0tdHJlZXNpdC1zZXR0aW5ncwogICAodHJlZXNpdC1mb250LWxvY2stcnVsZXMKICAg
IDpsYW5ndWFnZSAnbWFya2Rvd24taW5saW5lCiAgICA6b3ZlcnJpZGUgdAogICAgOmZlYXR1cmUg
J2RlbGltaXRlcgotICAgJygoaW5saW5lX2xpbmsgWyAiWyIgIl0iICIoIiAiKSIgXSBAc2hhZG93
KQotICAgICAoaW1hZ2UgWyAiISIgIlsiICJdIiAiKCIgIikiIF0gQHNoYWRvdykpCisgICAnKChp
bmxpbmVfbGluayBbICJbIiAiXSIgIigiICIpIiBdIEBtYXJrZG93bi10cy0tZm9udGlmeS1kZWxp
bWl0ZXIpCisgICAgIChmdWxsX3JlZmVyZW5jZV9saW5rIFsgIlsiICJdIiBdIEBtYXJrZG93bi10
cy0tZm9udGlmeS1kZWxpbWl0ZXIpCisgICAgIChjb2xsYXBzZWRfcmVmZXJlbmNlX2xpbmsgWyAi
WyIgIl0iIF0gQG1hcmtkb3duLXRzLS1mb250aWZ5LWRlbGltaXRlcikKKyAgICAgKHNob3J0Y3V0
X2xpbmsgWyAiWyIgIl0iIF0gQG1hcmtkb3duLXRzLS1mb250aWZ5LWRlbGltaXRlcikKKyAgICAg
KGltYWdlIFsgIiEiICJbIiAiXSIgIigiICIpIiBdIEBtYXJrZG93bi10cy0tZm9udGlmeS1kZWxp
bWl0ZXIpKQogCiAgICA6bGFuZ3VhZ2UgJ21hcmtkb3duCiAgICA6ZmVhdHVyZSAnaGVhZGluZwpA
QCAtMTk0LDE2ICs5MTMsMzQgQEAgbWFya2Rvd24tdHMtLXRyZWVzaXQtc2V0dGluZ3MKICAgICAg
KGF0eF9oM19tYXJrZXIpIEBtYXJrZG93bi10cy0tZm9udGlmeS1kZWxpbWl0ZXIKICAgICAgKGF0
eF9oNF9tYXJrZXIpIEBtYXJrZG93bi10cy0tZm9udGlmeS1kZWxpbWl0ZXIKICAgICAgKGF0eF9o
NV9tYXJrZXIpIEBtYXJrZG93bi10cy0tZm9udGlmeS1kZWxpbWl0ZXIKLSAgICAgKGF0eF9oNl9t
YXJrZXIpIEBtYXJrZG93bi10cy0tZm9udGlmeS1kZWxpbWl0ZXIpCisgICAgIChhdHhfaDZfbWFy
a2VyKSBAbWFya2Rvd24tdHMtLWZvbnRpZnktZGVsaW1pdGVyCisgICAgIChzZXRleHRfaDFfdW5k
ZXJsaW5lKSBAbWFya2Rvd24tdHMtLWZvbnRpZnktZGVsaW1pdGVyCisgICAgIChzZXRleHRfaDJf
dW5kZXJsaW5lKSBAbWFya2Rvd24tdHMtLWZvbnRpZnktZGVsaW1pdGVyKQogCiAgICA6bGFuZ3Vh
Z2UgJ21hcmtkb3duCiAgICA6ZmVhdHVyZSAncGFyYWdyYXBoCi0gICAnKCgodGhlbWF0aWNfYnJl
YWspIEBtYXJrZG93bi10cy1kZWxpbWl0ZXIpCi0gICAgICgoaW5kZW50ZWRfY29kZV9ibG9jaykg
QGZvbnQtbG9jay1zdHJpbmctZmFjZSkKKyAgICcoKCh0aGVtYXRpY19icmVhaykgQG1hcmtkb3du
LXRzLS1mb250aWZ5LXRoZW1hdGljLWJyZWFrKQorICAgICAoKGh0bWxfYmxvY2spIEBtYXJrZG93
bi10cy1odG1sLWJsb2NrKQorICAgICAoKGluZGVudGVkX2NvZGVfYmxvY2spIEBtYXJrZG93bi10
cy1pbmRlbnRlZC1jb2RlLWJsb2NrKQogICAgICAobGlzdF9pdGVtIChsaXN0X21hcmtlcl9zdGFy
KSBAbWFya2Rvd24tdHMtbGlzdC1tYXJrZXIpCiAgICAgIChsaXN0X2l0ZW0gKGxpc3RfbWFya2Vy
X3BsdXMpIEBtYXJrZG93bi10cy1saXN0LW1hcmtlcikKICAgICAgKGxpc3RfaXRlbSAobGlzdF9t
YXJrZXJfbWludXMpIEBtYXJrZG93bi10cy1saXN0LW1hcmtlcikKLSAgICAgKGxpc3RfaXRlbSAo
bGlzdF9tYXJrZXJfZG90KSBAbWFya2Rvd24tdHMtbGlzdC1tYXJrZXIpKQorICAgICAobGlzdF9p
dGVtIChsaXN0X21hcmtlcl9kb3QpIEBtYXJrZG93bi10cy1saXN0LW1hcmtlcikKKyAgICAgKGxp
c3RfaXRlbSAobGlzdF9tYXJrZXJfcGFyZW50aGVzaXMpIEBtYXJrZG93bi10cy1saXN0LW1hcmtl
cikKKyAgICAgKGxpc3RfaXRlbSAodGFza19saXN0X21hcmtlcl91bmNoZWNrZWQpIEBtYXJrZG93
bi10cy0tZm9udGlmeS1jaGVja2JveCkKKyAgICAgKGxpc3RfaXRlbSAodGFza19saXN0X21hcmtl
cl9jaGVja2VkKSBAbWFya2Rvd24tdHMtLWZvbnRpZnktY2hlY2tib3gpCisgICAgIChwaXBlX3Rh
YmxlX2hlYWRlciAifCIgQG1hcmtkb3duLXRzLXRhYmxlLWhlYWRlcikKKyAgICAgKHBpcGVfdGFi
bGVfaGVhZGVyIChwaXBlX3RhYmxlX2NlbGwpIEBtYXJrZG93bi10cy10YWJsZS1oZWFkZXIpCisg
ICAgIChwaXBlX3RhYmxlX3JvdyAifCIgQG1hcmtkb3duLXRzLXRhYmxlLWRlbGltaXRlci1jZWxs
KQorICAgICAocGlwZV90YWJsZV9yb3cgKHBpcGVfdGFibGVfY2VsbCkgQG1hcmtkb3duLXRzLXRh
YmxlLWNlbGwpCisgICAgIChwaXBlX3RhYmxlX2RlbGltaXRlcl9yb3cgInwiIEBtYXJrZG93bi10
cy10YWJsZS1kZWxpbWl0ZXItY2VsbCkKKyAgICAgKGxpbmtfcmVmZXJlbmNlX2RlZmluaXRpb24K
KyAgICAgIChsaW5rX2xhYmVsKSBAbWFya2Rvd24tdHMtLWZvbnRpZnktbGluay1yZWYtbGFiZWwp
CisgICAgIChsaW5rX3JlZmVyZW5jZV9kZWZpbml0aW9uCisgICAgICAobGlua19kZXN0aW5hdGlv
bikgQG1hcmtkb3duLXRzLS1mb250aWZ5LWxpbmstcmVmLWRlc3RpbmF0aW9uKQorICAgICAobGlu
a19yZWZlcmVuY2VfZGVmaW5pdGlvbgorICAgICAgKGxpbmtfdGl0bGUpIEBtYXJrZG93bi10cy1s
aW5rLWRlc3RpbmF0aW9uKQorICAgICAocGlwZV90YWJsZV9kZWxpbWl0ZXJfcm93IChwaXBlX3Rh
YmxlX2RlbGltaXRlcl9jZWxsKSBAbWFya2Rvd24tdHMtdGFibGUtZGVsaW1pdGVyLWNlbGwpKQog
CiAgICA6bGFuZ3VhZ2UgJ21hcmtkb3duCiAgICA6ZmVhdHVyZSAncGFyYWdyYXBoCkBAIC0yMTcs
ODQgKzk1NCw5NTkgQEAgbWFya2Rvd24tdHMtLXRyZWVzaXQtc2V0dGluZ3MKICAgICAgIChibG9j
a19xdW90ZV9tYXJrZXIpIEBtYXJrZG93bi10cy0tZm9udGlmeS1kZWxpbWl0ZXIKICAgICAgIChw
YXJhZ3JhcGggKGlubGluZSAoYmxvY2tfY29udGludWF0aW9uKSBAbWFya2Rvd24tdHMtLWZvbnRp
ZnktZGVsaW1pdGVyKSkpKQogCisgICA6bGFuZ3VhZ2UgJ21hcmtkb3duCisgICA6ZmVhdHVyZSAn
cGFyYWdyYXBoCisgICA6b3ZlcnJpZGUgJ2FwcGVuZAorICAgJygoZmVuY2VkX2NvZGVfYmxvY2sK
KyAgICAgIChpbmZvX3N0cmluZyAobGFuZ3VhZ2UpKQorICAgICAgKGNvZGVfZmVuY2VfY29udGVu
dCkgQG1hcmtkb3duLXRzLS1mb250aWZ5LW5vbi10cy1jb2RlLWJsb2NrKSkKKworICAgOmxhbmd1
YWdlICdtYXJrZG93bgorICAgOmZlYXR1cmUgJ3BhcmFncmFwaAorICAgOm92ZXJyaWRlICdhcHBl
bmQKKyAgICcoKGZlbmNlZF9jb2RlX2Jsb2NrIChjb2RlX2ZlbmNlX2NvbnRlbnQpIEBtYXJrZG93
bi10cy0tZm9udGlmeS1jb2RlLWJsb2NrKSkKKwogICAgOmxhbmd1YWdlICdtYXJrZG93bi1pbmxp
bmUKICAgIDpvdmVycmlkZSAnYXBwZW5kCiAgICA6ZmVhdHVyZSAncGFyYWdyYXBoLWlubGluZQot
ICAgJygoKGltYWdlX2Rlc2NyaXB0aW9uKSBAbGluaykKLSAgICAgKChsaW5rX2Rlc3RpbmF0aW9u
KSBAZm9udC1sb2NrLXN0cmluZy1mYWNlKQotICAgICAoKGNvZGVfc3BhbikgQGZvbnQtbG9jay1z
dHJpbmctZmFjZSkKKyAgICcoKChsaW5rX2Rlc3RpbmF0aW9uKSBAbWFya2Rvd24tdHMtLWZvbnRp
ZnktbGluay1kZXN0aW5hdGlvbikKKyAgICAgKChjb2RlX3NwYW4pIEBtYXJrZG93bi10cy1jb2Rl
LXNwYW4pCiAgICAgICgoY29kZV9zcGFuX2RlbGltaXRlcikgQG1hcmtkb3duLXRzLS1mb250aWZ5
LWRlbGltaXRlcikKLSAgICAgKChlbXBoYXNpcykgQGl0YWxpYykKLSAgICAgKChzdHJvbmdfZW1w
aGFzaXMpIEBib2xkKQotICAgICAoaW5saW5lX2xpbmsgKGxpbmtfdGV4dCkgQGxpbmspCi0gICAg
IChpbmxpbmVfbGluayAobGlua19kZXN0aW5hdGlvbikgQGZvbnQtbG9jay1zdHJpbmctZmFjZSkK
LSAgICAgKHNob3J0Y3V0X2xpbmsgKGxpbmtfdGV4dCkgQGxpbmspKQorICAgICAoKGVtcGhhc2lz
KSBAbWFya2Rvd24tdHMtZW1waGFzaXMpCisgICAgICgoc3Ryb25nX2VtcGhhc2lzKSBAbWFya2Rv
d24tdHMtYm9sZCkKKyAgICAgKChzdHJpa2V0aHJvdWdoKSBAbWFya2Rvd24tdHMtc3RyaWtldGhy
b3VnaCkKKyAgICAgKGlubGluZV9saW5rIChsaW5rX3RleHQpIEBtYXJrZG93bi10cy0tZm9udGlm
eS1saW5rLW5vZGUpCisgICAgIChmdWxsX3JlZmVyZW5jZV9saW5rIChsaW5rX3RleHQpIEBtYXJr
ZG93bi10cy0tZm9udGlmeS1saW5rLW5vZGUpCisgICAgIChmdWxsX3JlZmVyZW5jZV9saW5rIChs
aW5rX2xhYmVsKSBAbWFya2Rvd24tdHMtLWZvbnRpZnktbGluay1ub2RlKQorICAgICAoY29sbGFw
c2VkX3JlZmVyZW5jZV9saW5rIChsaW5rX3RleHQpIEBtYXJrZG93bi10cy0tZm9udGlmeS1saW5r
LW5vZGUpCisgICAgIChzaG9ydGN1dF9saW5rIChsaW5rX3RleHQpIEBtYXJrZG93bi10cy0tZm9u
dGlmeS1saW5rLW5vZGUpCisgICAgIChpbWFnZSAoaW1hZ2VfZGVzY3JpcHRpb24pIEBtYXJrZG93
bi10cy0tZm9udGlmeS1saW5rLW5vZGUpCisgICAgICgodXJpX2F1dG9saW5rKSBAbWFya2Rvd24t
dHMtLWZvbnRpZnktYXV0b2xpbmspCisgICAgICgoZW1haWxfYXV0b2xpbmspIEBtYXJrZG93bi10
cy0tZm9udGlmeS1hdXRvbGluaykKKyAgICAgKGlubGluZV9saW5rIChsaW5rX3RpdGxlKSBAbWFy
a2Rvd24tdHMtbGluay1kZXN0aW5hdGlvbikKKyAgICAgKChiYWNrc2xhc2hfZXNjYXBlKSBAbWFy
a2Rvd24tdHMtLWZvbnRpZnktYmFja3NsYXNoLWVzY2FwZSkKKyAgICAgKChlbnRpdHlfcmVmZXJl
bmNlKSBAbWFya2Rvd24tdHMtLWZvbnRpZnktZW50aXR5KQorICAgICAoKG51bWVyaWNfY2hhcmFj
dGVyX3JlZmVyZW5jZSkgQG1hcmtkb3duLXRzLS1mb250aWZ5LWVudGl0eSkKKyAgICAgKChodG1s
X3RhZykgQG1hcmtkb3duLXRzLWh0bWwtdGFnKQorICAgICAoKGxhdGV4X2Jsb2NrKSBAbWFya2Rv
d24tdHMtLWZvbnRpZnktbGF0ZXgtYmxvY2spKQogCiAgICA6bGFuZ3VhZ2UgJ21hcmtkb3duLWlu
bGluZQogICAgOmZlYXR1cmUgJ3BhcmFncmFwaC1pbmxpbmUKICAgIDpvdmVycmlkZSAnYXBwZW5k
CiAgICAnKChlbXBoYXNpc19kZWxpbWl0ZXIpIEBtYXJrZG93bi10cy0tZm9udGlmeS1kZWxpbWl0
ZXIpCi0gICApKQogCi07OzsgSW1lbnUKKyAgIDpsYW5ndWFnZSAnbWFya2Rvd24taW5saW5lCisg
ICA6ZmVhdHVyZSAnaW1hZ2UtcHJldmlldworICAgOm92ZXJyaWRlICdhcHBlbmQKKyAgICcoKGlt
YWdlKSBAbWFya2Rvd24tdHMtLWZvbnRpZnktaW1hZ2UpKSkKIAotKGRlZnVuIG1hcmtkb3duLXRz
LWltZW51LW5vZGUtcCAobm9kZSkKKzs7OyBJbWVudToKKworKGRlZnVuIG1hcmtkb3duLXRzLS1p
bWVudS1oZWFkaW5nLW5vZGUtcCAobm9kZSkKICAgIkNoZWNrIGlmIE5PREUgaXMgYSB2YWxpZCBl
bnRyeSB0byBpbWVudS4iCi0gIChlcXVhbCAodHJlZXNpdC1ub2RlLXR5cGUgKHRyZWVzaXQtbm9k
ZS1wYXJlbnQgbm9kZSkpCi0gICAgICAgICAiYXR4X2hlYWRpbmciKSkKKyAgKGFuZCAoZXF1YWwg
KHRyZWVzaXQtbm9kZS10eXBlIG5vZGUpICJpbmxpbmUiKQorICAgICAgIChlcXVhbCAodHJlZXNp
dC1ub2RlLXR5cGUgKHRyZWVzaXQtbm9kZS1wYXJlbnQgbm9kZSkpCisgICAgICAgICAgICAgICJh
dHhfaGVhZGluZyIpKSkKIAotKGRlZnVuIG1hcmtkb3duLXRzLWltZW51LW5hbWUtZnVuY3Rpb24g
KG5vZGUpCisoZGVmdW4gbWFya2Rvd24tdHMtLWltZW51LWhlYWRpbmctbmFtZS1mdW5jdGlvbiAo
bm9kZSkKICAgIlJldHVybiBhbiBpbWVudSBlbnRyeSBpZiBOT0RFIGlzIGEgdmFsaWQgaGVhZGVy
LiIKICAgKGxldCAoKG5hbWUgKHRyZWVzaXQtbm9kZS10ZXh0IG5vZGUpKSkKLSAgICAoaWYgKG1h
cmtkb3duLXRzLWltZW51LW5vZGUtcCBub2RlKQotCSh0aHJlYWQtZmlyc3QgKHRyZWVzaXQtbm9k
ZS1wYXJlbnQgbm9kZSkgKHRyZWVzaXQtbm9kZS10ZXh0KSkKKyAgICAoaWYgKG1hcmtkb3duLXRz
LS1pbWVudS1oZWFkaW5nLW5vZGUtcCBub2RlKQorICAgICAgICAoY2FyIChzcGxpdC1zdHJpbmcg
KHRyZWVzaXQtbm9kZS10ZXh0CisgICAgICAgICAgICAgICAgICAgICAgICAgICAodHJlZXNpdC1u
b2RlLXBhcmVudCBub2RlKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIlxuIiB0ICIgIikp
CiAgICAgICBuYW1lKSkpCiAKLShkZWZ1biBtYXJrZG93bi10cy1vdXRsaW5lLXByZWRpY2F0ZSAo
bm9kZSkKLSAgIk1hdGNoIGEgaGllcmFyY2hpY2FsIHNlY3Rpb24gdGhhdCBoYXMgYSBoZWFkaW5n
LiIKKyhkZWZ1biBtYXJrZG93bi10cy0taW1lbnUtY29kZS1ibG9jay1ub2RlLXAgKG5vZGUpCisg
ICJDaGVjayBpZiBOT0RFIGlzIGFuIGluZm9fc3RyaW5nIChjb2RlIGJsb2NrIGhlYWRlcikuIgor
ICAoYW5kIChlcXVhbCAodHJlZXNpdC1ub2RlLXR5cGUgbm9kZSkgImluZm9fc3RyaW5nIikKKyAg
ICAgICAodHJlZXNpdC1zZWFyY2gtc3VidHJlZSBub2RlICJsYW5ndWFnZSIpKSkKKworKGRlZnVu
IG1hcmtkb3duLXRzLS1pbWVudS1jb2RlLWJsb2NrLW5hbWUtZnVuY3Rpb24gKG5vZGUpCisgICJS
ZXR1cm4gYW4gaW1lbnUgZW50cnkgbmFtZSBmb3IgYSBjb2RlIGJsb2NrIGluZm9fc3RyaW5nIE5P
REUuCitVc2VzIHRoZSBkZXNjcmlwdGl2ZSB0ZXh0IGFmdGVyIHRoZSBsYW5ndWFnZSBuYW1lLiIK
KyAgKHdoZW4tbGV0KiAoKGxhbmctbm9kZSAodHJlZXNpdC1zZWFyY2gtc3VidHJlZSBub2RlICJs
YW5ndWFnZSIpKQorICAgICAgICAgICAgICAoZGVzYyAoc3RyaW5nLXRyaW0KKyAgICAgICAgICAg
ICAgICAgICAgIChidWZmZXItc3Vic3RyaW5nLW5vLXByb3BlcnRpZXMKKyAgICAgICAgICAgICAg
ICAgICAgICAodHJlZXNpdC1ub2RlLWVuZCBsYW5nLW5vZGUpCisgICAgICAgICAgICAgICAgICAg
ICAgKHRyZWVzaXQtbm9kZS1lbmQgbm9kZSkpKSkpCisgICAgKGZvcm1hdCAiJXM6ICVzIiAodHJl
ZXNpdC1ub2RlLXRleHQgbGFuZy1ub2RlKSBkZXNjKSkpCisKKyhkZWZ1biBtYXJrZG93bi10cy0t
b3V0bGluZS1wcmVkaWNhdGUgKG5vZGUpCisgICJNYXRjaCBOT0RFIGlmIGl0IGlzIGEgaGllcmFy
Y2hpY2FsIHNlY3Rpb24gdGhhdCBoYXMgYSBoZWFkaW5nLiIKICAgKGFuZCAoZXF1YWwgKHRyZWVz
aXQtbm9kZS10eXBlIG5vZGUpICJzZWN0aW9uIikKICAgICAgICAod2hlbi1sZXQqICgoY2hpbGQg
KHRyZWVzaXQtbm9kZS1jaGlsZCBub2RlIDApKSkKICAgICAgICAgIChlcXVhbCAodHJlZXNpdC1u
b2RlLXR5cGUgY2hpbGQpICJhdHhfaGVhZGluZyIpKSkpCiAKLTs7OyBDb2RlIGJsb2NrcwotCi0o
ZGVmdmFyLWxvY2FsIG1hcmtkb3duLXRzLS1jb25maWd1cmVkLWxhbmd1YWdlcyBuaWwKLSAgIkEg
bGlzdCBvZiBsYW5ndWFnZXMgdGhhdCBoYXZlIGJlZW4gc2V0dXAgaW4gdGhpcyBidWZmZXIuCi0K
LVdoZW4gYSBjb2RlIGJsb2NrIG9mIGEgbGFuZ3VhZ2UgYXBwZWFycywgYG1hcmtkb3duLXRzLW1v
ZGUnIGxvYWRzCi1sYW5ndWFnZSBzZXR1cHMgbGlrZSBmb250LWxvY2sgYW5kIGluZGVudGF0aW9u
IGZvciB0aGF0IGxhbmd1YWdlLCBhbmQKLWFkZHMgdGhhdCBsYW5ndWFnZSB0byB0aGlzIGxpc3Qu
IikKKzs7OyBIZWFkaW5nIG1hbmlwdWxhdGlvbjoKKworKGRlZmNvbnN0IG1hcmtkb3duLXRzLS1w
YXJzZXItaGVhZGluZy1tYXgtbGV2ZWwgNgorICAiTWF4aW11bSBBVFggaGVhZGluZyBsZXZlbCBp
biBNYXJrZG93biAoaDHigJNoNikuCitEZWZpbmVkIGJ5IHRoZSBDb21tb25NYXJrIHNwZWMgYW5k
IHRoZSB0cmVlLXNpdHRlciBncmFtbWFyLiIpCisKKyhkZWZ1biBtYXJrZG93bi10cy0taGVhZGlu
Zy1hdC1wb2ludCAoKQorICAiUmV0dXJuIHRoZSBhdHhfaGVhZGluZyBub2RlIGF0IG9yIGJlZm9y
ZSBwb2ludCwgb3IgbmlsLiIKKyAgKHdoZW4tbGV0KiAoKG5vZGUgKHRyZWVzaXQtbm9kZS1hdCAo
cG9pbnQpICdtYXJrZG93bikpKQorICAgIChpZiAoZXF1YWwgKHRyZWVzaXQtbm9kZS10eXBlIG5v
ZGUpICJhdHhfaGVhZGluZyIpCisgICAgICAgIG5vZGUKKyAgICAgICh0cmVlc2l0LXBhcmVudC11
bnRpbAorICAgICAgIG5vZGUgKGxhbWJkYSAobikgKGVxdWFsICh0cmVlc2l0LW5vZGUtdHlwZSBu
KSAiYXR4X2hlYWRpbmciKSkpKSkpCisKKyhkZWZ1biBtYXJrZG93bi10cy0taGVhZGluZy1sZXZl
bCAoaGVhZGluZykKKyAgIlJldHVybiB0aGUgbGV2ZWwgb2YgSEVBRElORyBub2RlICgxIHRvIGBt
YXJrZG93bi10cy0tcGFyc2VyLWhlYWRpbmctbWF4LWxldmVsJykuIgorICAobGV0ICgobWFya2Vy
ICh0cmVlc2l0LW5vZGUtY2hpbGQgaGVhZGluZyAwKSkpCisgICAgKGxlbmd0aCAodHJlZXNpdC1u
b2RlLXRleHQgbWFya2VyIHQpKSkpCisKKyhkZWZ1biBtYXJrZG93bi10cy0tc2VjdGlvbi1hdC1w
b2ludCAoKQorICAiUmV0dXJuIHRoZSBzZWN0aW9uIG5vZGUgY29udGFpbmluZyBwb2ludC4iCisg
ICh3aGVuLWxldCogKChub2RlICh0cmVlc2l0LW5vZGUtYXQgKHBvaW50KSAnbWFya2Rvd24pKSkK
KyAgICAodHJlZXNpdC1wYXJlbnQtdW50aWwKKyAgICAgbm9kZSAobGFtYmRhIChuKSAoZXF1YWwg
KHRyZWVzaXQtbm9kZS10eXBlIG4pICJzZWN0aW9uIikpKSkpCisKKyhkZWZ1biBtYXJrZG93bi10
cy1wcm9tb3RlICgpCisgICJQcm9tb3RlIHRoZSBoZWFkaW5nIG9yIGxpc3QgaXRlbSBhdCBwb2lu
dC4KK0ZvciBoZWFkaW5ncywgZGVjcmVhc2UgdGhlIGxldmVsIChlLmcuLCAjIyB0byAjKS4KK0Zv
ciBsaXN0IGl0ZW1zLCBkZWNyZWFzZSBuZXN0aW5nIChkZWRlbnQpLgorV2l0aCBgdHJhbnNpZW50
LW1hcmstbW9kZScgb24gYW5kIG1hcmsgYWN0aXZlLCBwcm9tb3RlIGFsbAoraGVhZGluZ3MgaW4g
dGhlIHJlZ2lvbi4iCisgIChpbnRlcmFjdGl2ZSkKKyAgKGNvbmQKKyAgICgoYW5kIHRyYW5zaWVu
dC1tYXJrLW1vZGUgbWFyay1hY3RpdmUpCisgICAgKG1hcmtkb3duLXRzLS1wcm9tb3RlLW9yLWRl
bW90ZS1yZWdpb24gLTEpKQorICAgKChtYXJrZG93bi10cy0tbGlzdC1pdGVtLWF0LXBvaW50KQor
ICAgIChtYXJrZG93bi10cy0tbGlzdC1wcm9tb3RlLW9yLWRlbW90ZSBuaWwpKQorICAgKHQgKG1h
cmtkb3duLXRzLS1wcm9tb3RlLW9yLWRlbW90ZSAtMSkpKSkKKworKGRlZnVuIG1hcmtkb3duLXRz
LWRlbW90ZSAoKQorICAiRGVtb3RlIHRoZSBoZWFkaW5nIG9yIGxpc3QgaXRlbSBhdCBwb2ludC4K
K0ZvciBoZWFkaW5ncywgaW5jcmVhc2UgdGhlIGxldmVsIChlLmcuLCAjIHRvICMjKS4KK0ZvciBs
aXN0IGl0ZW1zLCBpbmNyZWFzZSBuZXN0aW5nIChpbmRlbnQpLgorV2l0aCBgdHJhbnNpZW50LW1h
cmstbW9kZScgb24gYW5kIG1hcmsgYWN0aXZlLCBkZW1vdGUgYWxsIGhlYWRpbmdzCitpbiB0aGUg
cmVnaW9uLiIKKyAgKGludGVyYWN0aXZlKQorICAoY29uZAorICAgKChhbmQgdHJhbnNpZW50LW1h
cmstbW9kZSBtYXJrLWFjdGl2ZSkKKyAgICAobWFya2Rvd24tdHMtLXByb21vdGUtb3ItZGVtb3Rl
LXJlZ2lvbiAxKSkKKyAgICgobWFya2Rvd24tdHMtLWxpc3QtaXRlbS1hdC1wb2ludCkKKyAgICAo
bWFya2Rvd24tdHMtLWxpc3QtcHJvbW90ZS1vci1kZW1vdGUgdCkpCisgICAodCAobWFya2Rvd24t
dHMtLXByb21vdGUtb3ItZGVtb3RlIDEpKSkpCisKKyhkZWZ1biBtYXJrZG93bi10cy0tcHJvbW90
ZS1vci1kZW1vdGUgKGRlbHRhKQorICAiQ2hhbmdlIHRoZSBoZWFkaW5nIGF0IHBvaW50IGJ5IERF
TFRBIGxldmVscy4KK05lZ2F0aXZlIERFTFRBIHByb21vdGVzIChmZXdlciAjKSwgcG9zaXRpdmUg
ZGVtb3RlcyAobW9yZSAjKS4iCisgICh3aGVuLWxldCogKChoZWFkaW5nIChtYXJrZG93bi10cy0t
aGVhZGluZy1hdC1wb2ludCkpCisgICAgICAgICAgICAgIChtYXJrZXIgKHRyZWVzaXQtbm9kZS1j
aGlsZCBoZWFkaW5nIDApKQorICAgICAgICAgICAgICAobGV2ZWwgKGxlbmd0aCAodHJlZXNpdC1u
b2RlLXRleHQgbWFya2VyIHQpKSkKKyAgICAgICAgICAgICAgKG5ldy1sZXZlbCAoKyBsZXZlbCBk
ZWx0YSkpKQorICAgICh3aGVuIChhbmQgKD49IG5ldy1sZXZlbCAxKSAoPD0gbmV3LWxldmVsIG1h
cmtkb3duLXRzLS1wYXJzZXItaGVhZGluZy1tYXgtbGV2ZWwpKQorICAgICAgKHNhdmUtZXhjdXJz
aW9uCisgICAgICAgIChnb3RvLWNoYXIgKHRyZWVzaXQtbm9kZS1zdGFydCBtYXJrZXIpKQorICAg
ICAgICAoZGVsZXRlLXJlZ2lvbiAodHJlZXNpdC1ub2RlLXN0YXJ0IG1hcmtlcikKKyAgICAgICAg
ICAgICAgICAgICAgICAgKHRyZWVzaXQtbm9kZS1lbmQgbWFya2VyKSkKKyAgICAgICAgKGluc2Vy
dCAobWFrZS1zdHJpbmcgbmV3LWxldmVsID8jKSkpKSkpCisKKyhkZWZ1biBtYXJrZG93bi10cy0t
cHJvbW90ZS1vci1kZW1vdGUtcmVnaW9uIChkZWx0YSkKKyAgIkNoYW5nZSBhbGwgaGVhZGluZ3Mg
aW4gdGhlIGFjdGl2ZSByZWdpb24gYnkgREVMVEEgbGV2ZWxzLgorTmVnYXRpdmUgREVMVEEgcHJv
bW90ZXMgKGZld2VyICMpLCBwb3NpdGl2ZSBkZW1vdGVzIChtb3JlICMpLiIKKyAgKGxldCAoKGJl
ZyAocmVnaW9uLWJlZ2lubmluZykpCisgICAgICAgIChlbmQgKHJlZ2lvbi1lbmQpKSkKKyAgICAo
c2F2ZS1leGN1cnNpb24KKyAgICAgIChnb3RvLWNoYXIgYmVnKQorICAgICAgKHdoaWxlICg8IChw
b2ludCkgZW5kKQorICAgICAgICAod2hlbiAobWFya2Rvd24tdHMtLWhlYWRpbmctYXQtcG9pbnQp
CisgICAgICAgICAgKG1hcmtkb3duLXRzLS1wcm9tb3RlLW9yLWRlbW90ZSBkZWx0YSkpCisgICAg
ICAgIChmb3J3YXJkLWxpbmUgMSkpKSkpCisKKyhkZWZ1biBtYXJrZG93bi10cy1tb3ZlLXN1YnRy
ZWUtdXAgKCkKKyAgIk1vdmUgdGhlIGN1cnJlbnQgc2VjdGlvbiBvciBsaXN0IGl0ZW0gdXAgcGFz
dCB0aGUgcHJldmlvdXMgc2libGluZy4iCisgIChpbnRlcmFjdGl2ZSkKKyAgKGlmIChtYXJrZG93
bi10cy0tbGlzdC1pdGVtLWF0LXBvaW50KQorICAgICAgKG1hcmtkb3duLXRzLS1saXN0LW1vdmUg
dCkKKyAgICAobWFya2Rvd24tdHMtLW1vdmUtc3VidHJlZS11cC1vci1kb3duIHQpKSkKIAotKGRl
ZnVuIG1hcmtkb3duLXRzLS1oYXJ2ZXN0LXRyZWVzaXQtY29uZmlncyAobW9kZSkKLSAgIkhhcnZl
c3QgdHJlZS1zaXR0ZXIgY29uZmlncyBmcm9tIE1PREUuCi1SZXR1cm4gYSBwbGlzdCB3aXRoIHRo
ZSBmb2xsb3dpbmcga2V5cyBhbmQgdmFsdWU6CisoZGVmdW4gbWFya2Rvd24tdHMtbW92ZS1zdWJ0
cmVlLWRvd24gKCkKKyAgIk1vdmUgdGhlIGN1cnJlbnQgc2VjdGlvbiBvciBsaXN0IGl0ZW0gZG93
biBwYXN0IHRoZSBuZXh0IHNpYmxpbmcuIgorICAoaW50ZXJhY3RpdmUpCisgIChpZiAobWFya2Rv
d24tdHMtLWxpc3QtaXRlbS1hdC1wb2ludCkKKyAgICAgIChtYXJrZG93bi10cy0tbGlzdC1tb3Zl
IG5pbCkKKyAgICAobWFya2Rvd24tdHMtLW1vdmUtc3VidHJlZS11cC1vci1kb3duIG5pbCkpKQor
CisoZGVmdW4gbWFya2Rvd24tdHMtLXNlY3Rpb24tZm9sZGVkLXAgKHNlY3Rpb24pCisgICJSZXR1
cm4gbm9uLW5pbCBpZiBTRUNUSU9OJ3MgaGVhZGluZyBpcyBmb2xkZWQuCitDaGVja3Mgd2hldGhl
ciB0aGUgZW5kIG9mIHRoZSBoZWFkaW5nIGxpbmUgaGFzIGFuIG91dGxpbmUKK2ludmlzaWJsZSBv
dmVybGF5LiIKKyAgKGxldCAoKGhlYWRpbmcgKHRyZWVzaXQtbm9kZS1jaGlsZCBzZWN0aW9uIDAp
KSkKKyAgICAod2hlbiAoYW5kIGhlYWRpbmcKKyAgICAgICAgICAgICAgIChlcXVhbCAodHJlZXNp
dC1ub2RlLXR5cGUgaGVhZGluZykgImF0eF9oZWFkaW5nIikpCisgICAgICAoc2F2ZS1leGN1cnNp
b24KKyAgICAgICAgKGdvdG8tY2hhciAodHJlZXNpdC1ub2RlLXN0YXJ0IGhlYWRpbmcpKQorICAg
ICAgICAob3V0bGluZS1pbnZpc2libGUtcCAocG9zLWVvbCkpKSkpKQorCisoZGVmdW4gbWFya2Rv
d24tdHMtLW1vdmUtc3VidHJlZS11cC1vci1kb3duICh1cCkKKyAgIk1vdmUgdGhlIGN1cnJlbnQg
c2VjdGlvbiBzdWJ0cmVlLgorSWYgVVAgaXMgbm9uLW5pbCwgbW92ZSBwYXN0IHRoZSBwcmV2aW91
cyBzaWJsaW5nOyBvdGhlcndpc2UgbW92ZSBkb3duLgorUHJlc2VydmVzIHRoZSBmb2xkaW5nIHN0
YXRlIG9mIGJvdGggc2VjdGlvbnMuIgorICAod2hlbi1sZXQqICgoc2VjdGlvbiAobWFya2Rvd24t
dHMtLXNlY3Rpb24tYXQtcG9pbnQpKQorICAgICAgICAgICAgICAoc2libGluZyAoaWYgdXAKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICh0cmVlc2l0LW5vZGUtcHJldi1zaWJsaW5nIHNlY3Rp
b24pCisgICAgICAgICAgICAgICAgICAgICAgICAgKHRyZWVzaXQtbm9kZS1uZXh0LXNpYmxpbmcg
c2VjdGlvbikpKSkKKyAgICAod2hlbiAoZXF1YWwgKHRyZWVzaXQtbm9kZS10eXBlIHNpYmxpbmcp
ICJzZWN0aW9uIikKKyAgICAgIChsZXQqICgoZmlyc3QgKGlmIHVwIHNpYmxpbmcgc2VjdGlvbikp
CisgICAgICAgICAgICAgKHNlY29uZCAoaWYgdXAgc2VjdGlvbiBzaWJsaW5nKSkKKyAgICAgICAg
ICAgICAoZmlyc3QtZm9sZGVkIChtYXJrZG93bi10cy0tc2VjdGlvbi1mb2xkZWQtcCBmaXJzdCkp
CisgICAgICAgICAgICAgKHNlY29uZC1mb2xkZWQgKG1hcmtkb3duLXRzLS1zZWN0aW9uLWZvbGRl
ZC1wIHNlY29uZCkpCisgICAgICAgICAgICAgKGZpcnN0LXN0YXJ0ICh0cmVlc2l0LW5vZGUtc3Rh
cnQgZmlyc3QpKQorICAgICAgICAgICAgIChzZWNvbmQtc3RhcnQgKHRyZWVzaXQtbm9kZS1zdGFy
dCBzZWNvbmQpKQorICAgICAgICAgICAgIChzZWNvbmQtZW5kICh0cmVlc2l0LW5vZGUtZW5kIHNl
Y29uZCkpCisgICAgICAgICAgICAgOzsgRXh0cmFjdCBzZXBhcmF0b3IgYmV0d2VlbiBpdGVtcyBh
bmQgdHJhaWxpbmcgd2hpdGVzcGFjZS4KKyAgICAgICAgICAgICAoZmlyc3QtcmF3IChidWZmZXIt
c3Vic3RyaW5nIGZpcnN0LXN0YXJ0IHNlY29uZC1zdGFydCkpCisgICAgICAgICAgICAgKGZpcnN0
LXRleHQgKHN0cmluZy10cmltLXJpZ2h0IGZpcnN0LXJhdykpCisgICAgICAgICAgICAgKHNlcGFy
YXRvciAoc3Vic3RyaW5nIGZpcnN0LXJhdyAobGVuZ3RoIGZpcnN0LXRleHQpKSkKKyAgICAgICAg
ICAgICAoc2Vjb25kLXJhdyAoYnVmZmVyLXN1YnN0cmluZyBzZWNvbmQtc3RhcnQgc2Vjb25kLWVu
ZCkpCisgICAgICAgICAgICAgKHNlY29uZC10ZXh0IChzdHJpbmctdHJpbS1yaWdodCBzZWNvbmQt
cmF3KSkKKyAgICAgICAgICAgICAodHJhaWxpbmcgKHN1YnN0cmluZyBzZWNvbmQtcmF3IChsZW5n
dGggc2Vjb25kLXRleHQpKSkKKyAgICAgICAgICAgICAoY29sIChjdXJyZW50LWNvbHVtbikpCisg
ICAgICAgICAgICAgKGxpbmUtb2Zmc2V0ICgtIChsaW5lLW51bWJlci1hdC1wb3MgKHBvaW50KSkK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxpbmUtbnVtYmVyLWF0LXBvcyAodHJlZXNp
dC1ub2RlLXN0YXJ0IHNlY3Rpb24pKSkpKQorICAgICAgICAoZGVsZXRlLXJlZ2lvbiBmaXJzdC1z
dGFydCBzZWNvbmQtZW5kKQorICAgICAgICAoZ290by1jaGFyIGZpcnN0LXN0YXJ0KQorICAgICAg
ICAoaW5zZXJ0IHNlY29uZC10ZXh0IHNlcGFyYXRvciBmaXJzdC10ZXh0IHRyYWlsaW5nKQorICAg
ICAgICA7OyBSZXN0b3JlIGZvbGRpbmcgc3RhdGUKKyAgICAgICAgKHNhdmUtZXhjdXJzaW9uCisg
ICAgICAgICAgKGdvdG8tY2hhciBmaXJzdC1zdGFydCkKKyAgICAgICAgICAod2hlbiAob3V0bGlu
ZS1vbi1oZWFkaW5nLXApCisgICAgICAgICAgICAoaWYgc2Vjb25kLWZvbGRlZAorICAgICAgICAg
ICAgICAgIChvdXRsaW5lLWhpZGUtc3VidHJlZSkKKyAgICAgICAgICAgICAgKG91dGxpbmUtc2hv
dy1zdWJ0cmVlKSkpCisgICAgICAgICAgKG91dGxpbmUtbmV4dC1oZWFkaW5nKQorICAgICAgICAg
ICh3aGVuIChvdXRsaW5lLW9uLWhlYWRpbmctcCkKKyAgICAgICAgICAgIChpZiBmaXJzdC1mb2xk
ZWQKKyAgICAgICAgICAgICAgICAob3V0bGluZS1oaWRlLXN1YnRyZWUpCisgICAgICAgICAgICAg
IChvdXRsaW5lLXNob3ctc3VidHJlZSkpKSkKKyAgICAgICAgKGdvdG8tY2hhciAoaWYgdXAKKyAg
ICAgICAgICAgICAgICAgICAgICAgZmlyc3Qtc3RhcnQKKyAgICAgICAgICAgICAgICAgICAgICgr
IGZpcnN0LXN0YXJ0IChsZW5ndGggc2Vjb25kLXRleHQpCisgICAgICAgICAgICAgICAgICAgICAg
ICAobGVuZ3RoIHNlcGFyYXRvcikpKSkKKyAgICAgICAgKGZvcndhcmQtbGluZSBsaW5lLW9mZnNl
dCkKKyAgICAgICAgKG1vdmUtdG8tY29sdW1uIGNvbCkpKSkpCisKKzs7OyBMaXN0IG1hbmlwdWxh
dGlvbjoKKworKGRlZnVuIG1hcmtkb3duLXRzLXRvZ2dsZS1jaGVja2JveCAoKQorICAiVG9nZ2xl
IHRoZSB0YXNrIGxpc3QgY2hlY2tib3ggb24gdGhlIGN1cnJlbnQgbGluZS4KK1N3aXRjaGVzIGJl
dHdlZW4gYFsgXScgYW5kIGBbeF0nLiIKKyAgKGludGVyYWN0aXZlKQorICAod2hlbi1sZXQqICgo
cG9zIChzYXZlLWV4Y3Vyc2lvbiAoYmFjay10by1pbmRlbnRhdGlvbikgKHBvaW50KSkpCisgICAg
ICAgICAgICAgIChub2RlICh0cmVlc2l0LW5vZGUtYXQgcG9zICdtYXJrZG93bikpCisgICAgICAg
ICAgICAgIChpdGVtICh0cmVlc2l0LXBhcmVudC11bnRpbAorICAgICAgICAgICAgICAgICAgICAg
bm9kZSAobGFtYmRhIChuKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIChlcXVhbCAodHJl
ZXNpdC1ub2RlLXR5cGUgbikgImxpc3RfaXRlbSIpKSkpKQorICAgICh3aGVuLWxldCogKChtYXJr
ZXIgKHNlcS1maW5kCisgICAgICAgICAgICAgICAgICAgICAgICAgKGxhbWJkYSAoY2hpbGQpCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAobWVtYmVyICh0cmVlc2l0LW5vZGUtdHlwZSBjaGls
ZCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJygidGFza19saXN0X21hcmtl
cl9jaGVja2VkIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ0YXNrX2xp
c3RfbWFya2VyX3VuY2hlY2tlZCIpKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAodHJlZXNp
dC1ub2RlLWNoaWxkcmVuIGl0ZW0pKSkpCisgICAgICAobGV0ICgoYmVnICh0cmVlc2l0LW5vZGUt
c3RhcnQgbWFya2VyKSkKKyAgICAgICAgICAgIChlbmQgKHRyZWVzaXQtbm9kZS1lbmQgbWFya2Vy
KSkKKyAgICAgICAgICAgIChjaGVja2VkIChlcXVhbCAodHJlZXNpdC1ub2RlLXR5cGUgbWFya2Vy
KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ0YXNrX2xpc3RfbWFya2VyX2NoZWNrZWQi
KSkpCisgICAgICAgIChzYXZlLWV4Y3Vyc2lvbgorICAgICAgICAgIChnb3RvLWNoYXIgYmVnKQor
ICAgICAgICAgIChkZWxldGUtcmVnaW9uIGJlZyBlbmQpCisgICAgICAgICAgKGluc2VydCAoaWYg
Y2hlY2tlZCAiWyBdIiAiW3hdIikpKSkpKSkKKworKGRlZnVuIG1hcmtkb3duLXRzLS1saXN0LWl0
ZW0tYXQtcG9pbnQgKCkKKyAgIlJldHVybiB0aGUgaW5uZXJtb3N0IGxpc3RfaXRlbSBub2RlIGNv
bnRhaW5pbmcgcG9pbnQsIG9yIG5pbC4KK1VzZXMgdGhlIHBvc2l0aW9uIGFmdGVyIGBiYWNrLXRv
LWluZGVudGF0aW9uJyBzbyB0aGF0IHBvaW50IGluCithIGxpbmUncyBsZWFkaW5nIHdoaXRlc3Bh
Y2UgcmVzb2x2ZXMgdG8gdGhlIGl0ZW0gb24gdGhhdCBsaW5lLAorbm90IHRvIGEgcHJlY2VkaW5n
IGl0ZW0gd2hvc2Ugbm9kZSBzcGFucyB0aGUgd2hpdGVzcGFjZS4KK0luc2lkZSBibG9jayBxdW90
ZXMsIGFsc28gdHJ5IGZyb20gdGhlIGNvbnRlbnQgcG9zaXRpb24gcGFzdAordGhlIGA+JyBtYXJr
ZXJzLiIKKyAgKHdoZW4tbGV0KiAoKHBvcyAoc2F2ZS1leGN1cnNpb24gKGJhY2stdG8taW5kZW50
YXRpb24pIChwb2ludCkpKQorICAgICAgICAgICAgICAobm9kZSAodHJlZXNpdC1ub2RlLWF0IHBv
cyAnbWFya2Rvd24pKQorICAgICAgICAgICAgICAoYm9sIChsaW5lLWJlZ2lubmluZy1wb3NpdGlv
bikpCisgICAgICAgICAgICAgIChlb2wgKGxpbmUtZW5kLXBvc2l0aW9uKSkpCisgICAgKG9yIChs
ZXQgKChpdGVtICh0cmVlc2l0LXBhcmVudC11bnRpbAorICAgICAgICAgICAgICAgICAgICAgbm9k
ZSAobGFtYmRhIChuKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIChlcXVhbCAodHJlZXNp
dC1ub2RlLXR5cGUgbikgImxpc3RfaXRlbSIpKSkpKQorICAgICAgICAgIDs7IFZlcmlmeSB0aGUg
Y3VycmVudCBsaW5lIGlzIHdpdGhpbiB0aGUgaXRlbSdzIHJhbmdlLgorICAgICAgICAgIDs7IGB0
cmVlc2l0LW5vZGUtYXQnIGNhbiByZXR1cm4gYSBub2RlIGluc2lkZSBhIGxpc3RfaXRlbQorICAg
ICAgICAgIDs7IGV2ZW4gd2hlbiBwb2ludCBpcyBvbiBhIHByZWNlZGluZyBsaW5lLgorICAgICAg
ICAgICh3aGVuIChhbmQgaXRlbQorICAgICAgICAgICAgICAgICAgICAgKDw9ICh0cmVlc2l0LW5v
ZGUtc3RhcnQgaXRlbSkgZW9sKQorICAgICAgICAgICAgICAgICAgICAgKD49ICh0cmVlc2l0LW5v
ZGUtZW5kIGl0ZW0pIGJvbCkpCisgICAgICAgICAgICBpdGVtKSkKKyAgICAgICAgOzsgV2hlbiBi
YWNrLXRvLWluZGVudGF0aW9uIGxhbmRzIG9uIGJsb2NrIHF1b3RlIG1hcmtlcnMsCisgICAgICAg
IDs7IHNraXAgcGFzdCB0aGVtIGFuZCB0cnkgZnJvbSB0aGUgY29udGVudCBwb3NpdGlvbi4KKyAg
ICAgICAgKGxldCAoKGNvbnRlbnQtcG9zIChzYXZlLWV4Y3Vyc2lvbgorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAoYmVnaW5uaW5nLW9mLWxpbmUpCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIChza2lwLWNoYXJzLWZvcndhcmQgIj4gXHQiKQorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAocG9pbnQpKSkpCisgICAgICAgICAgKHdoZW4gKD4gY29udGVudC1wb3MgcG9zKQor
ICAgICAgICAgICAgKHdoZW4tbGV0KiAoKGNub2RlICh0cmVlc2l0LW5vZGUtYXQgY29udGVudC1w
b3MgJ21hcmtkb3duKSkpCisgICAgICAgICAgICAgIChsZXQgKChpdGVtICh0cmVlc2l0LXBhcmVu
dC11bnRpbAorICAgICAgICAgICAgICAgICAgICAgICAgICAgY25vZGUKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgIChsYW1iZGEgKG4pCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChl
cXVhbCAodHJlZXNpdC1ub2RlLXR5cGUgbikgImxpc3RfaXRlbSIpKSkpKQorICAgICAgICAgICAg
ICAgICh3aGVuIChhbmQgaXRlbQorICAgICAgICAgICAgICAgICAgICAgICAgICAgKDw9ICh0cmVl
c2l0LW5vZGUtc3RhcnQgaXRlbSkgZW9sKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgKD49
ICh0cmVlc2l0LW5vZGUtZW5kIGl0ZW0pIGJvbCkpCisgICAgICAgICAgICAgICAgICBpdGVtKSkp
KSkpKSkKKworKGRlZnVuIG1hcmtkb3duLXRzLS1saXN0LW1hcmtlci13aWR0aCAoaXRlbSkKKyAg
IlJldHVybiB0aGUgd2lkdGggb2YgSVRFTSdzIGxpc3QgbWFya2VyIGluY2x1ZGluZyB0cmFpbGlu
ZyBzcGFjZS4iCisgIChsZXQgKChtYXJrZXIgKHRyZWVzaXQtbm9kZS1jaGlsZCBpdGVtIDApKSkK
KyAgICAoLSAodHJlZXNpdC1ub2RlLWVuZCBtYXJrZXIpICh0cmVlc2l0LW5vZGUtc3RhcnQgbWFy
a2VyKSkpKQorCisoZGVmdW4gbWFya2Rvd24tdHMtLWxpc3QtaXRlbS1yZWdpb24gKGl0ZW0pCisg
ICJSZXR1cm4gdGhlIChCRUcgLiBFTkQpIHJlZ2lvbiBmb3IgSVRFTSwgY2xhbXBlZCB0byBmdWxs
IGxpbmVzLgorQkVHIHN0YXJ0cyBhdCB0aGUgYmVnaW5uaW5nIG9mIHRoZSBsaW5lIGNvbnRhaW5p
bmcgdGhlIGl0ZW0uCitFTkQgaXMgY2xhbXBlZCBzbyBpdCBkb2VzIG5vdCBleHRlbmQgaW50byB0
aGUgbmV4dCBsaW5lJ3MKK2luZGVudGF0aW9uLCB3aGljaCB0cmVlLXNpdHRlciBtYXkgaW5jbHVk
ZSBpbiB0aGUgbm9kZS4iCisgIChsZXQgKChiZWcgKHNhdmUtZXhjdXJzaW9uCisgICAgICAgICAg
ICAgICAoZ290by1jaGFyICh0cmVlc2l0LW5vZGUtc3RhcnQgaXRlbSkpCisgICAgICAgICAgICAg
ICAobGluZS1iZWdpbm5pbmctcG9zaXRpb24pKSkKKyAgICAgICAgKGVuZCAoc2F2ZS1leGN1cnNp
b24KKyAgICAgICAgICAgICAgIChnb3RvLWNoYXIgKHRyZWVzaXQtbm9kZS1lbmQgaXRlbSkpCisg
ICAgICAgICAgICAgICAoaWYgKGJvbHApIChwb2ludCkgKGxpbmUtYmVnaW5uaW5nLXBvc2l0aW9u
KSkpKSkKKyAgICAoY29ucyBiZWcgZW5kKSkpCisKKyhkZWZ1biBtYXJrZG93bi10cy0tbGlzdC1v
cmRlcmVkLWl0ZW0tcCAoaXRlbSkKKyAgIlJldHVybiBub24tbmlsIGlmIElURU0gaXMgYW4gb3Jk
ZXJlZCAobnVtYmVyZWQpIGxpc3QgaXRlbS4iCisgIChsZXQgKChtYXJrZXIgKHRyZWVzaXQtbm9k
ZS1jaGlsZCBpdGVtIDApKSkKKyAgICAoZXF1YWwgKHRyZWVzaXQtbm9kZS10eXBlIG1hcmtlcikg
Imxpc3RfbWFya2VyX2RvdCIpKSkKKworKGRlZnVuIG1hcmtkb3duLXRzLS1saXN0LXByb21vdGUt
b3ItZGVtb3RlIChkZW1vdGUpCisgICJDaGFuZ2UgbmVzdGluZyBvZiB0aGUgbGlzdCBpdGVtIGF0
IHBvaW50LgorSWYgREVNT1RFIGlzIG5vbi1uaWwsIGRlbW90ZSAoaW5kZW50KTsgb3RoZXJ3aXNl
IHByb21vdGUgKGRlZGVudCkuCitPcmRlcmVkIChudW1iZXJlZCkgbGlzdCBpdGVtcyBhcmUgc2tp
cHBlZCBiZWNhdXNlIHRoZSBncmFtbWFyIGRvZXMKK25vdCBzdXBwb3J0IG5lc3RpbmcgdGhlbSBi
eSBpbmRlbnRhdGlvbi4iCisgICh3aGVuLWxldCogKChpdGVtIChtYXJrZG93bi10cy0tbGlzdC1p
dGVtLWF0LXBvaW50KSkKKyAgICAgICAgICAgICAgKHJlZ2lvbiAobWFya2Rvd24tdHMtLWxpc3Qt
aXRlbS1yZWdpb24gaXRlbSkpCisgICAgICAgICAgICAgIChiZWcgKGNhciByZWdpb24pKQorICAg
ICAgICAgICAgICAoZW5kIChjZHIgcmVnaW9uKSkpCisgICAgKHdoZW4gKG1hcmtkb3duLXRzLS1s
aXN0LW9yZGVyZWQtaXRlbS1wIGl0ZW0pCisgICAgICAodXNlci1lcnJvciAiT3JkZXJlZCBsaXN0
IGl0ZW1zIGNhbm5vdCBiZSBuZXN0ZWQgKGdyYW1tYXIgbGltaXRhdGlvbikiKSkKKyAgICAoaWYg
ZGVtb3RlCisgICAgICAgIDs7IERlbW90ZTogaW5kZW50IGJ5IG1hcmtlciB3aWR0aCwgb25seSBp
ZiB0aGVyZSBpcyBhIHByZXZpb3VzCisgICAgICAgIDs7IHNpYmxpbmcgdG8gbmVzdCB1bmRlciAo
bGlrZSBvcmctbW9kZSkuCisgICAgICAgICh3aGVuICh0cmVlc2l0LW5vZGUtcHJldi1zaWJsaW5n
IGl0ZW0pCisgICAgICAgICAgKGluZGVudC1yaWdpZGx5IGJlZyBlbmQgKG1hcmtkb3duLXRzLS1s
aXN0LW1hcmtlci13aWR0aCBpdGVtKSkpCisgICAgICA7OyBQcm9tb3RlOiBkZWRlbnQgdG8gZ3Jh
bmRwYXJlbnQgbGV2ZWwuCisgICAgICAobGV0KiAoKHBhcmVudC1saXN0ICh0cmVlc2l0LW5vZGUt
cGFyZW50IGl0ZW0pKQorICAgICAgICAgICAgIChncmFuZHBhcmVudCAoYW5kIHBhcmVudC1saXN0
ICh0cmVlc2l0LW5vZGUtcGFyZW50IHBhcmVudC1saXN0KSkpCisgICAgICAgICAgICAgKGl0ZW0t
Y29sIChzYXZlLWV4Y3Vyc2lvbgorICAgICAgICAgICAgICAgICAgICAgICAgIChnb3RvLWNoYXIg
YmVnKSAoY3VycmVudC1pbmRlbnRhdGlvbikpKSkKKyAgICAgICAgKHdoZW4gKGFuZCBncmFuZHBh
cmVudAorICAgICAgICAgICAgICAgICAgIChlcXVhbCAodHJlZXNpdC1ub2RlLXR5cGUgZ3JhbmRw
YXJlbnQpICJsaXN0X2l0ZW0iKQorICAgICAgICAgICAgICAgICAgICg+IGl0ZW0tY29sIDApKQor
ICAgICAgICAgIChsZXQgKChncC1jb2wgKHNhdmUtZXhjdXJzaW9uCisgICAgICAgICAgICAgICAg
ICAgICAgICAgIChnb3RvLWNoYXIgKHRyZWVzaXQtbm9kZS1zdGFydCBncmFuZHBhcmVudCkpCisg
ICAgICAgICAgICAgICAgICAgICAgICAgIChjdXJyZW50LWluZGVudGF0aW9uKSkpKQorICAgICAg
ICAgICAgKGluZGVudC1yaWdpZGx5IGJlZyBlbmQgKC0gZ3AtY29sIGl0ZW0tY29sKSkpKSkpKSkK
KworKGRlZnVuIG1hcmtkb3duLXRzLS1saXN0LW5vZGUtYm9sIChub2RlKQorICAiUmV0dXJuIHRo
ZSBiZWdpbm5pbmcgb2YgdGhlIGxpbmUgY29udGFpbmluZyBOT0RFJ3Mgc3RhcnQuIgorICAoc2F2
ZS1leGN1cnNpb24KKyAgICAoZ290by1jaGFyICh0cmVlc2l0LW5vZGUtc3RhcnQgbm9kZSkpCisg
ICAgKGxpbmUtYmVnaW5uaW5nLXBvc2l0aW9uKSkpCisKKyhkZWZ1biBtYXJrZG93bi10cy0tbGlz
dC1tb3ZlICh1cCkKKyAgIk1vdmUgdGhlIGxpc3QgaXRlbSBhdCBwb2ludC4KK0lmIFVQIGlzIG5v
bi1uaWwsIG1vdmUgcGFzdCB0aGUgcHJldmlvdXMgc2libGluZzsgb3RoZXJ3aXNlIG1vdmUgZG93
bi4iCisgICh3aGVuLWxldCogKChpdGVtIChtYXJrZG93bi10cy0tbGlzdC1pdGVtLWF0LXBvaW50
KSkKKyAgICAgICAgICAgICAgKHNpYmxpbmcgKGlmIHVwCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAodHJlZXNpdC1ub2RlLXByZXYtc2libGluZyBpdGVtKQorICAgICAgICAgICAgICAgICAg
ICAgICAgICh0cmVlc2l0LW5vZGUtbmV4dC1zaWJsaW5nIGl0ZW0pKSkpCisgICAgKHdoZW4gKGVx
dWFsICh0cmVlc2l0LW5vZGUtdHlwZSBzaWJsaW5nKSAibGlzdF9pdGVtIikKKyAgICAgIChsZXQq
ICgoZmlyc3QgKGlmIHVwIHNpYmxpbmcgaXRlbSkpCisgICAgICAgICAgICAgKHNlY29uZCAoaWYg
dXAgaXRlbSBzaWJsaW5nKSkKKyAgICAgICAgICAgICAoZmlyc3Qtc3RhcnQgKG1hcmtkb3duLXRz
LS1saXN0LW5vZGUtYm9sIGZpcnN0KSkKKyAgICAgICAgICAgICAoc2Vjb25kLXN0YXJ0IChtYXJr
ZG93bi10cy0tbGlzdC1ub2RlLWJvbCBzZWNvbmQpKQorICAgICAgICAgICAgIChzZWNvbmQtZW5k
ICh0cmVlc2l0LW5vZGUtZW5kIHNlY29uZCkpCisgICAgICAgICAgICAgOzsgRXh0cmFjdCBzZXBh
cmF0b3IgYmV0d2VlbiBpdGVtcyBhbmQgdHJhaWxpbmcgd2hpdGVzcGFjZS4KKyAgICAgICAgICAg
ICAoZmlyc3QtcmF3IChidWZmZXItc3Vic3RyaW5nIGZpcnN0LXN0YXJ0IHNlY29uZC1zdGFydCkp
CisgICAgICAgICAgICAgKGZpcnN0LXRleHQgKHN0cmluZy10cmltLXJpZ2h0IGZpcnN0LXJhdykp
CisgICAgICAgICAgICAgKHNlcGFyYXRvciAoc3Vic3RyaW5nIGZpcnN0LXJhdyAobGVuZ3RoIGZp
cnN0LXRleHQpKSkKKyAgICAgICAgICAgICAoc2Vjb25kLXJhdyAoYnVmZmVyLXN1YnN0cmluZyBz
ZWNvbmQtc3RhcnQgc2Vjb25kLWVuZCkpCisgICAgICAgICAgICAgKHNlY29uZC10ZXh0IChzdHJp
bmctdHJpbS1yaWdodCBzZWNvbmQtcmF3KSkKKyAgICAgICAgICAgICAodHJhaWxpbmcgKHN1YnN0
cmluZyBzZWNvbmQtcmF3IChsZW5ndGggc2Vjb25kLXRleHQpKSkKKyAgICAgICAgICAgICAoY29s
IChjdXJyZW50LWNvbHVtbikpCisgICAgICAgICAgICAgKGxpbmUtb2Zmc2V0ICgtIChsaW5lLW51
bWJlci1hdC1wb3MgKHBvaW50KSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxpbmUt
bnVtYmVyLWF0LXBvcworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHRyZWVzaXQtbm9k
ZS1zdGFydCBpdGVtKSkpKSkKKyAgICAgICAgKGRlbGV0ZS1yZWdpb24gZmlyc3Qtc3RhcnQgc2Vj
b25kLWVuZCkKKyAgICAgICAgKGdvdG8tY2hhciBmaXJzdC1zdGFydCkKKyAgICAgICAgKGluc2Vy
dCBzZWNvbmQtdGV4dCBzZXBhcmF0b3IgZmlyc3QtdGV4dCB0cmFpbGluZykKKyAgICAgICAgKGdv
dG8tY2hhciAoaWYgdXAKKyAgICAgICAgICAgICAgICAgICAgICAgZmlyc3Qtc3RhcnQKKyAgICAg
ICAgICAgICAgICAgICAgICgrIGZpcnN0LXN0YXJ0IChsZW5ndGggc2Vjb25kLXRleHQpCisgICAg
ICAgICAgICAgICAgICAgICAgICAobGVuZ3RoIHNlcGFyYXRvcikpKSkKKyAgICAgICAgKGZvcndh
cmQtbGluZSBsaW5lLW9mZnNldCkKKyAgICAgICAgKG1vdmUtdG8tY29sdW1uIGNvbCkpKSkpCisK
KyhkZWZ1biBtYXJrZG93bi10cy1yZW51bWJlci1saXN0ICgmb3B0aW9uYWwgc3RhcnQpCisgICJS
ZW51bWJlciB0aGUgb3JkZXJlZCBsaXN0IGF0IHBvaW50LgorTnVtYmVycyBhcmUgYXNzaWduZWQg
c2VxdWVudGlhbGx5IHN0YXJ0aW5nIGZyb20gdGhlIGZpcnN0IGl0ZW0ncworbnVtYmVyLiAgV2l0
aCBhIHByZWZpeCBhcmd1bWVudCBTVEFSVCwgc3RhcnQgbnVtYmVyaW5nIGZyb20gdGhhdAordmFs
dWUgaW5zdGVhZC4gIERvZXMgbm90aGluZyBmb3IgdW5vcmRlcmVkIGxpc3RzLiIKKyAgKGludGVy
YWN0aXZlICJQIikKKyAgKHdoZW4tbGV0KiAoKGl0ZW0gKG1hcmtkb3duLXRzLS1saXN0LWl0ZW0t
YXQtcG9pbnQpKQorICAgICAgICAgICAgICAobGlzdC1ub2RlICh0cmVlc2l0LW5vZGUtcGFyZW50
IGl0ZW0pKSkKKyAgICAod2hlbiAoZXF1YWwgKHRyZWVzaXQtbm9kZS10eXBlIGxpc3Qtbm9kZSkg
Imxpc3QiKQorICAgICAgKGxldCogKChjaGlsZHJlbiAodHJlZXNpdC1ub2RlLWNoaWxkcmVuIGxp
c3Qtbm9kZSkpCisgICAgICAgICAgICAgKGl0ZW1zIChzZXEtZmlsdGVyIChsYW1iZGEgKG4pCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGVxdWFsICh0cmVlc2l0LW5vZGUtdHlw
ZSBuKSAibGlzdF9pdGVtIikpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoaWxk
cmVuKSkKKyAgICAgICAgICAgICAoZmlyc3QtbWFya2VyICh0cmVlc2l0LW5vZGUtY2hpbGQgKGNh
ciBpdGVtcykgMCkpCisgICAgICAgICAgICAgKG1hcmtlci10eXBlICh0cmVlc2l0LW5vZGUtdHlw
ZSBmaXJzdC1tYXJrZXIpKSkKKyAgICAgICAgKHdoZW4gKG1lbWJlciBtYXJrZXItdHlwZSAnKCJs
aXN0X21hcmtlcl9kb3QiICJsaXN0X21hcmtlcl9wYXJlbnRoZXNpcyIpKQorICAgICAgICAgIChs
ZXQqICgoYmFzZSAoaWYgc3RhcnQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIChwcmVmaXgt
bnVtZXJpYy12YWx1ZSBzdGFydCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAoc3RyaW5nLXRv
LW51bWJlcgorICAgICAgICAgICAgICAgICAgICAgICAgICAodHJlZXNpdC1ub2RlLXRleHQgZmly
c3QtbWFya2VyIHQpKSkpCisgICAgICAgICAgICAgICAgIChjb3VudCAobGVuZ3RoIGl0ZW1zKSkK
KyAgICAgICAgICAgICAgICAgOzsgU3RhcnQgZnJvbSB0aGUgbGFzdCBudW1iZXIgYW5kIHdvcmsg
YmFja3dhcmRzIHNvCisgICAgICAgICAgICAgICAgIDs7IHRoYXQgZWFybGllciBidWZmZXIgcG9z
aXRpb25zIHJlbWFpbiB2YWxpZC4KKyAgICAgICAgICAgICAgICAgKG51bSAoKyBiYXNlIGNvdW50
IC0xKSkpCisgICAgICAgICAgICAoZG9saXN0IChpdCAocmV2ZXJzZSBpdGVtcykpCisgICAgICAg
ICAgICAgIChsZXQqICgobWFya2VyICh0cmVlc2l0LW5vZGUtY2hpbGQgaXQgMCkpCisgICAgICAg
ICAgICAgICAgICAgICAobWFya2VyLWVuZCAodHJlZXNpdC1ub2RlLWVuZCBtYXJrZXIpKQorICAg
ICAgICAgICAgICAgICAgICAgKGJvbCAoc2F2ZS1leGN1cnNpb24KKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAoZ290by1jaGFyICh0cmVlc2l0LW5vZGUtc3RhcnQgbWFya2VyKSkKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAobGluZS1iZWdpbm5pbmctcG9zaXRpb24pKSkKKyAgICAg
ICAgICAgICAgICAgICAgIDs7IEZ1bGwgdGV4dCBmcm9tIGJvbCB0byBlbmQgb2YgbWFya2VyIGlu
Y2x1ZGVzCisgICAgICAgICAgICAgICAgICAgICA7OyBhbnkgbGVhZGluZyB3aGl0ZXNwYWNlLCB0
aGUgbnVtYmVyLCBhbmQgdGhlCisgICAgICAgICAgICAgICAgICAgICA7OyBzZXBhcmF0b3IgKGUu
Zy4sICIuICIgb3IgIi5cdCIpLgorICAgICAgICAgICAgICAgICAgICAgKGZ1bGwtdGV4dCAoYnVm
ZmVyLXN1YnN0cmluZy1uby1wcm9wZXJ0aWVzCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBib2wgbWFya2VyLWVuZCkpCisgICAgICAgICAgICAgICAgICAgICAoaW5kZW50LXN0cgor
ICAgICAgICAgICAgICAgICAgICAgIChpZiAoc3RyaW5nLW1hdGNoCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAiXFxgXFwoW1s6Ymxhbms6XV0qXFwpWzAtOV0iIGZ1bGwtdGV4dCkKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgKG1hdGNoLXN0cmluZyAxIGZ1bGwtdGV4dCkKKyAgICAgICAg
ICAgICAgICAgICAgICAgICIiKSkKKyAgICAgICAgICAgICAgICAgICAgIChzdWZmaXgtc3RyCisg
ICAgICAgICAgICAgICAgICAgICAgKGlmIChzdHJpbmctbWF0Y2gKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICJcXGBbWzpibGFuazpdXSpbMC05XStcXCguKlxcKVxcJyIgZnVsbC10ZXh0KQor
ICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2gtc3RyaW5nIDEgZnVsbC10ZXh0KQorICAg
ICAgICAgICAgICAgICAgICAgICAgIi4gIikpCisgICAgICAgICAgICAgICAgICAgICAobmV3LXRl
eHQgKGNvbmNhdCBpbmRlbnQtc3RyCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAobnVtYmVyLXRvLXN0cmluZyBudW0pCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBzdWZmaXgtc3RyKSkpCisgICAgICAgICAgICAgICAgKHNhdmUtZXhjdXJzaW9u
CisgICAgICAgICAgICAgICAgICAoZGVsZXRlLXJlZ2lvbiBib2wgbWFya2VyLWVuZCkKKyAgICAg
ICAgICAgICAgICAgIChnb3RvLWNoYXIgYm9sKQorICAgICAgICAgICAgICAgICAgKGluc2VydCBu
ZXctdGV4dCkpKQorICAgICAgICAgICAgICAoY2wtZGVjZiBudW0pKQorICAgICAgICAgICAgKG1l
c3NhZ2UgIlJlbnVtYmVyZWQgJWQgaXRlbXMiIGNvdW50KSkpKSkpKQorCisoZGVmdW4gbWFya2Rv
d24tdHMtLWxpc3QtaXRlbS1uZXctbWFya2VyIChpdGVtKQorICAiUmV0dXJuIHRoZSBtYXJrZXIg
c3RyaW5nIGZvciBhIG5ldyBpdGVtIGZvbGxvd2luZyBJVEVNLgorRm9yIHVub3JkZXJlZCBpdGVt
cywgcmV1c2UgdGhlIHNhbWUgbWFya2VyIGNoYXJhY3Rlci4KK0ZvciBvcmRlcmVkIGl0ZW1zLCBp
bmNyZW1lbnQgdGhlIG51bWJlci4iCisgIChsZXQqICgobWFya2VyICh0cmVlc2l0LW5vZGUtY2hp
bGQgaXRlbSAwKSkKKyAgICAgICAgICh0eXBlICh0cmVlc2l0LW5vZGUtdHlwZSBtYXJrZXIpKQor
ICAgICAgICAgKGluZGVudCAoc2F2ZS1leGN1cnNpb24KKyAgICAgICAgICAgICAgICAgICAoZ290
by1jaGFyICh0cmVlc2l0LW5vZGUtc3RhcnQgaXRlbSkpCisgICAgICAgICAgICAgICAgICAgKGN1
cnJlbnQtaW5kZW50YXRpb24pKSkKKyAgICAgICAgIChwcmVmaXggKG1ha2Utc3RyaW5nIGluZGVu
dCA/XHMpKSkKKyAgICAocGNhc2UgdHlwZQorICAgICAgKCJsaXN0X21hcmtlcl9taW51cyIgKGNv
bmNhdCBwcmVmaXggIi0gIikpCisgICAgICAoImxpc3RfbWFya2VyX3BsdXMiICAoY29uY2F0IHBy
ZWZpeCAiKyAiKSkKKyAgICAgICgibGlzdF9tYXJrZXJfc3RhciIgIChjb25jYXQgcHJlZml4ICIq
ICIpKQorICAgICAgKCJsaXN0X21hcmtlcl9kb3QiCisgICAgICAgKGxldCAoKG51bSAoc3RyaW5n
LXRvLW51bWJlciAodHJlZXNpdC1ub2RlLXRleHQgbWFya2VyIHQpKSkpCisgICAgICAgICAoY29u
Y2F0IHByZWZpeCAobnVtYmVyLXRvLXN0cmluZyAoMSsgbnVtKSkgIi4gIikpKQorICAgICAgKCJs
aXN0X21hcmtlcl9wYXJlbnRoZXNpcyIKKyAgICAgICAobGV0ICgobnVtIChzdHJpbmctdG8tbnVt
YmVyICh0cmVlc2l0LW5vZGUtdGV4dCBtYXJrZXIgdCkpKSkKKyAgICAgICAgIChjb25jYXQgcHJl
Zml4IChudW1iZXItdG8tc3RyaW5nICgxKyBudW0pKSAiKSAiKSkpCisgICAgICAoXyAoY29uY2F0
IHByZWZpeCAiLSAiKSkpKSkKKworKGRlZnVuIG1hcmtkb3duLXRzLS1uZXctbWFya2VyLWZvci1s
aW5lIChpdGVtKQorICAiUmV0dXJuIHRoZSBtYXJrZXIgc3RyaW5nIGZvciBhIG5ldyBpdGVtIGZv
bGxvd2luZyBJVEVNLgorV2hlbiB0aGUgY3VycmVudCBsaW5lIGhhcyBhIGxpc3QgbWFya2VyIHBh
dHRlcm4gYXQgYSBkaWZmZXJlbnQKK2luZGVudGF0aW9uIHRoYW4gSVRFTSAoZS5nLiwgYSBuZXN0
ZWQgbWFya2VyIHRoYXQgdGhlIGdyYW1tYXIgZGlkCitub3QgcmVjb2duaXplIGFzIGEgbGlzdF9p
dGVtKSwgdXNlIHRoZSBjdXJyZW50IGxpbmUncyBtYXJrZXIuCitPdGhlcndpc2UsIGZhbGwgYmFj
ayB0byBgbWFya2Rvd24tdHMtLWxpc3QtaXRlbS1uZXctbWFya2VyJy4iCisgIChsZXQgKChtYXJr
ZXItbm9kZSAodHJlZXNpdC1ub2RlLWNoaWxkIGl0ZW0gMCkpKQorICAgIChpZiAoPSAobGluZS1u
dW1iZXItYXQtcG9zKQorICAgICAgICAgICAgKGxpbmUtbnVtYmVyLWF0LXBvcyAodHJlZXNpdC1u
b2RlLXN0YXJ0IG1hcmtlci1ub2RlKSkpCisgICAgICAgIDs7IEl0ZW0ncyBtYXJrZXIgaXMgb24g
dGhlIGN1cnJlbnQgbGluZTogdXNlIGl0IG5vcm1hbGx5LgorICAgICAgICAobWFya2Rvd24tdHMt
LWxpc3QtaXRlbS1uZXctbWFya2VyIGl0ZW0pCisgICAgICA7OyBJdGVtJ3MgbWFya2VyIGlzIG9u
IGEgZGlmZmVyZW50IGxpbmUuICBUaGUgcGFyc2VyIG1heSBoYXZlCisgICAgICA7OyBmYWlsZWQg
dG8gcmVjb2duaXplIGEgbmVzdGVkIG1hcmtlciAoZS5nLiwgYSBsb25lIGAgIC0gJworICAgICAg
OzsgcGFyc2VkIGFzIGEgc2V0ZXh0IGhlYWRpbmcpLiAgUmVhZCB0aGUgY3VycmVudCBsaW5lLgor
ICAgICAgKGxldCAoKGxpbmUgKGJ1ZmZlci1zdWJzdHJpbmctbm8tcHJvcGVydGllcworICAgICAg
ICAgICAgICAgICAgIChsaW5lLWJlZ2lubmluZy1wb3NpdGlvbikgKGxpbmUtZW5kLXBvc2l0aW9u
KSkpKQorICAgICAgICAoaWYgKHN0cmluZy1tYXRjaAorICAgICAgICAgICAgICJcXGBcXChbWzpi
bGFuazpdXSpcXClcXChbLSorXSBcXHxcXChbMC05XStcXClcXChbLildIFxcKVxcKSIKKyAgICAg
ICAgICAgICBsaW5lKQorICAgICAgICAgICAgKGxldCAoKGluZGVudCAobWF0Y2gtc3RyaW5nIDEg
bGluZSkpCisgICAgICAgICAgICAgICAgICAobnVtIChtYXRjaC1zdHJpbmcgMyBsaW5lKSkKKyAg
ICAgICAgICAgICAgICAgIChzdWZmaXggKG1hdGNoLXN0cmluZyA0IGxpbmUpKQorICAgICAgICAg
ICAgICAgICAgKHVub3JkZXJlZCAobWF0Y2gtc3RyaW5nIDIgbGluZSkpKQorICAgICAgICAgICAg
ICAoaWYgbnVtCisgICAgICAgICAgICAgICAgICAoY29uY2F0IGluZGVudCAobnVtYmVyLXRvLXN0
cmluZworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgxKyAoc3RyaW5nLXRvLW51
bWJlciBudW0pKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgc3VmZml4KQorICAgICAgICAg
ICAgICAgIChjb25jYXQgaW5kZW50IHVub3JkZXJlZCkpKQorICAgICAgICAgIDs7IE5vIG1hcmtl
ciBwYXR0ZXJuIG9uIGN1cnJlbnQgbGluZTogdXNlIGl0ZW0ncyBtYXJrZXIuCisgICAgICAgICAg
KG1hcmtkb3duLXRzLS1saXN0LWl0ZW0tbmV3LW1hcmtlciBpdGVtKSkpKSkpCisKKyhkZWZ1biBt
YXJrZG93bi10cy0tbGluZS1ibG9jay1xdW90ZS1kZXB0aCAoJm9wdGlvbmFsIHBvcykKKyAgIkNv
dW50IHRoZSBudW1iZXIgb2YgYD4nIGJsb2NrIHF1b3RlIG1hcmtlcnMgb24gdGhlIGxpbmUgYXQg
UE9TLiIKKyAgKHNhdmUtZXhjdXJzaW9uCisgICAgKHdoZW4gcG9zIChnb3RvLWNoYXIgcG9zKSkK
KyAgICAoYmVnaW5uaW5nLW9mLWxpbmUpCisgICAgKGxldCAoKGNvdW50IDApKQorICAgICAgKHdo
aWxlIChhbmQgKG5vdCAoZW9scCkpCisgICAgICAgICAgICAgICAgICAobWVtcSAoY2hhci1hZnRl
cikgJyg/PiA/XHMgP1x0KSkpCisgICAgICAgICh3aGVuIChlcSAoY2hhci1hZnRlcikgPz4pCisg
ICAgICAgICAgKHNldHEgY291bnQgKDErIGNvdW50KSkpCisgICAgICAgIChmb3J3YXJkLWNoYXIg
MSkpCisgICAgICBjb3VudCkpKQorCisoZGVmdW4gbWFya2Rvd24tdHMtbmV3bGluZSAoKQorICAi
SW5zZXJ0IGEgbmV3bGluZSwgY29udGludWluZyB0aGUgY3VycmVudCBjb250ZXh0LgorSW5zaWRl
IGEgbGlzdCBpdGVtLCB0aGUgbmV3IGxpbmUgaXMgaW5kZW50ZWQgdG8gdGhlIGl0ZW0ncyB0ZXh0
Citjb2x1bW4gc28gdGhlIHBhcmFncmFwaCBjb250aW51ZXMuICBBIHNlY29uZCBSRVQgb24gYSBi
bGFuaworY29udGludWF0aW9uIGxpbmUgcmVtb3ZlcyB0aGUgaW5kZW50YXRpb24sIGRyb3BwaW5n
IHBvaW50IHRvCitjb2x1bW4gMCBzbyB0aGUgdHJlZS1zaXR0ZXIgZ3JhbW1hciBlbmRzIHRoZSBs
aXN0LgorSW5zaWRlIGEgYmxvY2sgcXVvdGUsIHRoZSBuZXcgbGluZSBpbmNsdWRlcyB0aGUgcXVv
dGUgcHJlZml4LgorT3RoZXJ3aXNlLCBpbnNlcnQgYSBwbGFpbiBuZXdsaW5lLiIKKyAgKGludGVy
YWN0aXZlKQorICAobGV0KiAoKG5vZGUgKHRyZWVzaXQtbm9kZS1hdAorICAgICAgICAgICAgICAg
IChzYXZlLWV4Y3Vyc2lvbiAoYmFjay10by1pbmRlbnRhdGlvbikgKHBvaW50KSkKKyAgICAgICAg
ICAgICAgICAnbWFya2Rvd24pKQorICAgICAgICAgOzsgVHJlZS1zaXR0ZXIgbWF5IHJlcG9ydCBh
IG5vZGUgaW5zaWRlIGEgYmxvY2tfcXVvdGUgZXZlbgorICAgICAgICAgOzsgd2hlbiBwb2ludCBp
cyBvbiBhIGJsYW5rIGxpbmUgcGFzdCB0aGUgcXVvdGUgKHRoZSBub2RlCisgICAgICAgICA7OyBz
cGFuIGNhbiBleHRlbmQgYmV5b25kIHRoZSBgPicgbGluZXMpLiAgT25seSB0cmVhdCB0aGUKKyAg
ICAgICAgIDs7IGxpbmUgYXMgaW5zaWRlIGEgYmxvY2sgcXVvdGUgaWYgaXQgYWN0dWFsbHkgc3Rh
cnRzIHdpdGgKKyAgICAgICAgIDs7IGEgYD4nIG1hcmtlci4KKyAgICAgICAgIChpbi1icSAoYW5k
ICh0cmVlc2l0LXBhcmVudC11bnRpbCBub2RlICJcXGBibG9ja19xdW90ZVxcJyIpCisgICAgICAg
ICAgICAgICAgICAgICAoc2F2ZS1leGN1cnNpb24KKyAgICAgICAgICAgICAgICAgICAgICAgKGJl
Z2lubmluZy1vZi1saW5lKQorICAgICAgICAgICAgICAgICAgICAgICAobG9va2luZy1hdC1wICJb
IFx0XSo+IikpKSkKKyAgICAgICAgIChpdGVtIChtYXJrZG93bi10cy0tbGlzdC1pdGVtLWF0LXBv
aW50KSkpCisgICAgKGNvbmQKKyAgICAgKGl0ZW0KKyAgICAgIChsZXQqICgoY29sIChtYXJrZG93
bi10cy0tbGlzdC1pdGVtLXRleHQtY29sdW1uIGl0ZW0pKQorICAgICAgICAgICAgIChicS1wcmVm
aXggKHdoZW4gaW4tYnEgKG1hcmtkb3duLXRzLS1ibG9jay1xdW90ZS1wcmVmaXgpKSkKKyAgICAg
ICAgICAgICA7OyBgY29sJyBpcyB0aGUgYWJzb2x1dGUgY29sdW1uIG9mIHRoZSBpdGVtJ3MgdGV4
dCwKKyAgICAgICAgICAgICA7OyB3aGljaCBpbnNpZGUgYSBibG9jayBxdW90ZSBpbmNsdWRlcyB0
aGUgIj4gIiBwcmVmaXgKKyAgICAgICAgICAgICA7OyB3aWR0aC4gIFNpbmNlIHdlIGluc2VydCBg
YnEtcHJlZml4JyBzZXBhcmF0ZWx5LCB3ZQorICAgICAgICAgICAgIDs7IG11c3Qgc3VidHJhY3Qg
aXRzIGxlbmd0aCB0byBhdm9pZCBkb3VibGluZyBpdC4KKyAgICAgICAgICAgICAoaW5kZW50ICgt
IGNvbCAobGVuZ3RoIChvciBicS1wcmVmaXggIiIpKSkpCisgICAgICAgICAgICAgOzsgVGhlIGN1
cnJlbnQgbGluZSBpcyAiYmxhbmsiIGlmIGl0IGNvbnRhaW5zIG9ubHkKKyAgICAgICAgICAgICA7
OyB3aGl0ZXNwYWNlIChvciBxdW90ZSBwcmVmaXggKyB3aGl0ZXNwYWNlKSBhbmQgbm8KKyAgICAg
ICAgICAgICA7OyBhY3R1YWwgdGV4dCBmcm9tIGEgcHJldmlvdXMgUkVUJ3MgY29udGludWF0aW9u
IGluZGVudC4KKyAgICAgICAgICAgICAoYmxhbmstbGluZS1wIChzYXZlLWV4Y3Vyc2lvbgorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAoYmVnaW5uaW5nLW9mLWxpbmUpCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIChsb29raW5nLWF0LXAKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICJeWz4gXHRdKiQiKSkpCisgICAgICAgICAgICAgOzsgUG9pbnQgaXMgYmVmb3JlIHRo
ZSBpdGVtJ3MgdGV4dCAoYXQgb3IgYmVmb3JlIHRoZQorICAgICAgICAgICAgIDs7IG1hcmtlciku
ICBBIHBsYWluIG5ld2xpbmUgaXMgYXBwcm9wcmlhdGUgaGVyZSwgYWRkaW5nCisgICAgICAgICAg
ICAgOzsgY29udGludWF0aW9uIGluZGVudCB3b3VsZCBzaGlmdCB0aGUgZXhpc3RpbmcgY29udGVu
dAorICAgICAgICAgICAgIDs7IHRvIHRoZSByaWdodC4KKyAgICAgICAgICAgICAoYmVmb3JlLXRl
eHQtcCAoPD0gKGN1cnJlbnQtY29sdW1uKSBjb2wpKSkKKyAgICAgICAgKGNvbmQKKyAgICAgICAg
IChibGFuay1saW5lLXAKKyAgICAgICAgICA7OyBUaGUgdXNlciBwcmVzc2VkIFJFVCBvbiBhbiBh
bHJlYWR5LWJsYW5rIGNvbnRpbnVhdGlvbgorICAgICAgICAgIDs7IGxpbmUuICBJbnN0ZWFkIG9m
IGFkZGluZyB5ZXQgYW5vdGhlciBpbmRlbnRlZCBibGFuaworICAgICAgICAgIDs7IGxpbmUsIHJl
bW92ZSB0aGUgaW5kZW50YXRpb24gYW5kIGluc2VydCBhIHBsYWluCisgICAgICAgICAgOzsgbmV3
bGluZS4gIFRoaXMgZHJvcHMgcG9pbnQgdG8gY29sdW1uIDAsIHdoaWNoIGlzIHRoZQorICAgICAg
ICAgIDs7IG9ubHkgd2F5IHRoZSB0cmVlLXNpdHRlciBtYXJrZG93biBncmFtbWFyIGVuZHMgYSBs
aXN0OgorICAgICAgICAgIDs7IGJsYW5rIGxpbmVzIGFsb25lIGRvIE5PVCBlbmQgYSBsaXN0LCBv
bmx5CisgICAgICAgICAgOzsgbm9uLWluZGVudGVkIGNvbnRlbnQgZG9lcy4gIFNvIHRoaXMgZ2l2
ZXMgdGhlIHVzZXIgYQorICAgICAgICAgIDs7IG5hdHVyYWwgIlJFVCBSRVQgdG8gZXhpdCB0aGUg
bGlzdCIgd29ya2Zsb3cuCisgICAgICAgICAgKGRlbGV0ZS1yZWdpb24gKGxpbmUtYmVnaW5uaW5n
LXBvc2l0aW9uKSAobGluZS1lbmQtcG9zaXRpb24pKQorICAgICAgICAgIChuZXdsaW5lKSkKKyAg
ICAgICAgIChiZWZvcmUtdGV4dC1wCisgICAgICAgICAgOzsgUG9pbnQgaXMgb24gb3IgYmVmb3Jl
IHRoZSBsaXN0IG1hcmtlcjsganVzdCBpbnNlcnQgYQorICAgICAgICAgIDs7IHBsYWluIG5ld2xp
bmUgc28gdGhlIGl0ZW0gaXMgcHVzaGVkIGRvd24gdW5jaGFuZ2VkLgorICAgICAgICAgIChuZXds
aW5lKSkKKyAgICAgICAgICh0CisgICAgICAgICAgKGRlbGV0ZS1ob3Jpem9udGFsLXNwYWNlKQor
ICAgICAgICAgIChuZXdsaW5lKQorICAgICAgICAgICh3aGVuIGJxLXByZWZpeCAoaW5zZXJ0IGJx
LXByZWZpeCkpCisgICAgICAgICAgKGluc2VydCAobWFrZS1zdHJpbmcgaW5kZW50ID9ccykpKSkp
KQorICAgICAoaW4tYnEKKyAgICAgIChsZXQgKChicS1wcmVmaXggKG1hcmtkb3duLXRzLS1ibG9j
ay1xdW90ZS1wcmVmaXgpKQorICAgICAgICAgICAgOzsgQSBsaW5lIHdpdGggb25seSBxdW90ZSBt
YXJrZXJzIGFuZCB3aGl0ZXNwYWNlIChlLmcuLAorICAgICAgICAgICAgOzsgIj4gIikgaXMgImJs
YW5rIiBpbnNpZGUgdGhlIHF1b3RlLiAgUkVUIGhlcmUgZXhpdHMgdGhlCisgICAgICAgICAgICA7
OyBxdW90ZSwgc2FtZSBhcyBSRVQgb24gYSBibGFuayBjb250aW51YXRpb24gbGluZSBleGl0cyBh
CisgICAgICAgICAgICA7OyBsaXN0OiByZW1vdmUgdGhlIHByZWZpeCBhbmQgZHJvcCB0byBjb2x1
bW4gMC4KKyAgICAgICAgICAgIChibGFuay1saW5lLXAgKHNhdmUtZXhjdXJzaW9uCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgKGJlZ2lubmluZy1vZi1saW5lKQorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIChsb29raW5nLWF0LXAgIl5bPiBcdF0qJCIpKSkpCisgICAgICAgIChpZiBi
bGFuay1saW5lLXAKKyAgICAgICAgICAgIChwcm9nbgorICAgICAgICAgICAgICAoZGVsZXRlLXJl
Z2lvbiAobGluZS1iZWdpbm5pbmctcG9zaXRpb24pIChsaW5lLWVuZC1wb3NpdGlvbikpCisgICAg
ICAgICAgICAgIChuZXdsaW5lKSkKKyAgICAgICAgICAoZGVsZXRlLWhvcml6b250YWwtc3BhY2Up
CisgICAgICAgICAgKG5ld2xpbmUpCisgICAgICAgICAgKGluc2VydCBicS1wcmVmaXgpKSkpCisg
ICAgIDs7IERlZmF1bHQ6IHBsYWluIG5ld2xpbmUuICBUaGlzIGFsc28gaGFuZGxlcyBlbXB0eSBs
aXN0IG1hcmtlcnMKKyAgICAgOzsgKGUuZy4sICItICIgd2l0aCBubyB0ZXh0KSB0aGF0IHRoZSBn
cmFtbWFyIHBhcnNlcyBhcyBFUlJPUgorICAgICA7OyBub2RlcyByYXRoZXIgdGhhbiBsaXN0X2l0
ZW0gbm9kZXMuCisgICAgIDs7CisgICAgIDs7IFdoZW4gdGhlIGN1cnJlbnQgbGluZSBpcyBibGFu
ayAod2hpdGVzcGFjZSBvbmx5KSwgaXQgaXMgYQorICAgICA7OyBjb250aW51YXRpb24taW5kZW50
IGxpbmUgbGVmdCBieSBhIHByZXZpb3VzIFJFVCB0aGF0CisgICAgIDs7IHRyZWUtc2l0dGVyIG5v
IGxvbmdlciBjb25zaWRlcnMgcGFydCBvZiBhIGxpc3RfaXRlbS4gIENsZWFyCisgICAgIDs7IHRo
ZSB3aGl0ZXNwYWNlIHNvIG5vIHRyYWlsaW5nIHNwYWNlcyByZW1haW4sIGFuZCBpbnNlcnQgYQor
ICAgICA7OyBwbGFpbiBuZXdsaW5lIGF0IGNvbHVtbiAwIHRvIGV4aXQgdGhlIGxpc3QgY29udGV4
dC4KKyAgICAgKHQKKyAgICAgICh3aGVuIChzYXZlLWV4Y3Vyc2lvbgorICAgICAgICAgICAgICAo
YmVnaW5uaW5nLW9mLWxpbmUpCisgICAgICAgICAgICAgIChsb29raW5nLWF0LXAgIl5bIFx0XSsk
IikpCisgICAgICAgIChkZWxldGUtcmVnaW9uIChsaW5lLWJlZ2lubmluZy1wb3NpdGlvbikgKGxp
bmUtZW5kLXBvc2l0aW9uKSkpCisgICAgICAobmV3bGluZSkpKSkpCisKKyhkZWZ1biBtYXJrZG93
bi10cy1pbnNlcnQtbGlzdC1pdGVtICgpCisgICJJbnNlcnQgYSBuZXcgbGlzdCBpdGVtLCBzcGxp
dHRpbmcgdGV4dCBhdCBwb2ludC4KK1RleHQgYWZ0ZXIgcG9pbnQgbW92ZXMgdG8gdGhlIG5ldyBp
dGVtLiAgQXQgdGhlIGJlZ2lubmluZyBvZiBhIGxpbmUsCithbiBlbXB0eSBpdGVtIGlzIGluc2Vy
dGVkIGFib3ZlIGFuZCB0aGUgY3VycmVudCBjb250ZW50IGlzIHB1c2hlZCBkb3duLgorSW5zaWRl
IGEgYmxvY2sgcXVvdGUsIHRoZSBuZXcgbGluZSBpbmNsdWRlcyB0aGUgcXVvdGUgcHJlZml4Lgor
Rm9yIG9yZGVyZWQgbGlzdHMsIHRoZSBudW1iZXIgaXMgaW5jcmVtZW50ZWQuCitXaGVuIG5vdCBp
bnNpZGUgYSBsaXN0LCBmYWxsIGJhY2sgdG8gYG1hcmtkb3duLXRzLW5ld2xpbmUnLiIKKyAgKGlu
dGVyYWN0aXZlKQorICAobGV0KiAoKG5vZGUgKHRyZWVzaXQtbm9kZS1hdAorICAgICAgICAgICAg
ICAgIChzYXZlLWV4Y3Vyc2lvbiAoYmFjay10by1pbmRlbnRhdGlvbikgKHBvaW50KSkKKyAgICAg
ICAgICAgICAgICAnbWFya2Rvd24pKQorICAgICAgICAgKGluLWJxIChhbmQgKHRyZWVzaXQtcGFy
ZW50LXVudGlsIG5vZGUgIlxcYGJsb2NrX3F1b3RlXFwnIikKKyAgICAgICAgICAgICAgICAgICAg
IChzYXZlLWV4Y3Vyc2lvbgorICAgICAgICAgICAgICAgICAgICAgICAoYmVnaW5uaW5nLW9mLWxp
bmUpCisgICAgICAgICAgICAgICAgICAgICAgIChsb29raW5nLWF0LXAgIlsgXHRdKj4iKSkpKQor
ICAgICAgICAgKGJxLXByZWZpeCAod2hlbiBpbi1icSAobWFya2Rvd24tdHMtLWJsb2NrLXF1b3Rl
LXByZWZpeCkpKQorICAgICAgICAgKGl0ZW0gKG1hcmtkb3duLXRzLS1saXN0LWl0ZW0tYXQtcG9p
bnQpKSkKKyAgICAoY29uZAorICAgICAoKGFuZCBpdGVtCisgICAgICAgICAgIChvciAobm90IGlu
LWJxKQorICAgICAgICAgICAgICAgKD49IChtYXJrZG93bi10cy0tbGluZS1ibG9jay1xdW90ZS1k
ZXB0aCkKKyAgICAgICAgICAgICAgICAgICAobWFya2Rvd24tdHMtLWxpbmUtYmxvY2stcXVvdGUt
ZGVwdGgKKyAgICAgICAgICAgICAgICAgICAgKHRyZWVzaXQtbm9kZS1zdGFydCAodHJlZXNpdC1u
b2RlLWNoaWxkIGl0ZW0gMCkpKSkpKQorICAgICAgKGxldCogKChuZXctbWFya2VyIChtYXJrZG93
bi10cy0tbmV3LW1hcmtlci1mb3ItbGluZSBpdGVtKSkKKyAgICAgICAgICAgICAoYXQtYm9sICg8
PSAoY3VycmVudC1jb2x1bW4pCisgICAgICAgICAgICAgICAgICAgICAgICAgKHNhdmUtZXhjdXJz
aW9uCisgICAgICAgICAgICAgICAgICAgICAgICAgICAoYmFjay10by1pbmRlbnRhdGlvbikKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgIChjdXJyZW50LWNvbHVtbikpKSkKKyAgICAgICAgICAg
ICAodGFpbCAod2hlbiAoYW5kIChub3QgYXQtYm9sKQorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgKG5vdCAobG9va2luZy1hdC1wICJbIFx0XSokIikpKQorICAgICAgICAgICAgICAgICAg
ICAgKGRlbGV0ZS1hbmQtZXh0cmFjdC1yZWdpb24KKyAgICAgICAgICAgICAgICAgICAgICAocG9p
bnQpIChsaW5lLWVuZC1wb3NpdGlvbikpKSkpCisgICAgICAgIChpZiBhdC1ib2wKKyAgICAgICAg
ICAgIDs7IEF0IEJPTDogaW5zZXJ0IGVtcHR5IGl0ZW0gYWJvdmUsIHB1c2ggY3VycmVudCBsaW5l
IGRvd24uCisgICAgICAgICAgICAocHJvZ24KKyAgICAgICAgICAgICAgKGJlZ2lubmluZy1vZi1s
aW5lKQorICAgICAgICAgICAgICAod2hlbiBicS1wcmVmaXggKGluc2VydCBicS1wcmVmaXgpKQor
ICAgICAgICAgICAgICAoaW5zZXJ0IG5ldy1tYXJrZXIgIlxuIikKKyAgICAgICAgICAgICAgKGJh
Y2stdG8taW5kZW50YXRpb24pKQorICAgICAgICAgIDs7IE1pZC1saW5lIG9yIEVPTDogbmV3IGl0
ZW0gYmVsb3cgd2l0aCB0YWlsIHRleHQuCisgICAgICAgICAgKGRlbGV0ZS1ob3Jpem9udGFsLXNw
YWNlKQorICAgICAgICAgIChuZXdsaW5lKQorICAgICAgICAgICh3aGVuIGJxLXByZWZpeCAoaW5z
ZXJ0IGJxLXByZWZpeCkpCisgICAgICAgICAgKGluc2VydCBuZXctbWFya2VyKQorICAgICAgICAg
ICh3aGVuIHRhaWwgKHNhdmUtZXhjdXJzaW9uIChpbnNlcnQgKHN0cmluZy10cmltLWxlZnQgdGFp
bCkpKSkpKSkKKworICAgICA7OyBOb3QgaW4gYSBsaXN0OiBmYWxsIGJhY2sgdG8gbmV3bGluZSBi
ZWhhdmlvci4KKyAgICAgKHQgKG1hcmtkb3duLXRzLW5ld2xpbmUpKSkpKQorCis7OzsgRmlsbGlu
ZzoKKworKGRlZmNvbnN0IG1hcmtkb3duLXRzLS1maWxsLXVuZmlsbGFibGUtYmxvY2stcXVlcnkK
KyAgJyhbKGZlbmNlZF9jb2RlX2Jsb2NrKSAoaW5kZW50ZWRfY29kZV9ibG9jaykgKHBpcGVfdGFi
bGUpXSBAYmxvY2spCisgICJUcmVlLXNpdHRlciBxdWVyeSBtYXRjaGluZyBibG9ja3Mgd2hlcmUg
ZmlsbGluZyBpcyBpbmhpYml0ZWQuIikKKworKGRlZnVuIG1hcmtkb3duLXRzLS1saXN0LWl0ZW0t
dGV4dC1jb2x1bW4gKGl0ZW0pCisgICJSZXR1cm4gdGhlIGNvbHVtbiB3aGVyZSB0aGUgdGV4dCBv
ZiBsaXN0IElURU0gc3RhcnRzLgorVGhpcyBpcyB0aGUgY29sdW1uIG9mIHRoZSBmaXJzdCBwYXJh
Z3JhcGggbm9kZSBpbnNpZGUgSVRFTSwgb3IKK3RoZSB3aWR0aCBvZiB0aGUgbGlzdCBtYXJrZXIg
aWYgbm8gcGFyYWdyYXBoIGlzIGZvdW5kLiIKKyAgKGxldCAoKHBhcmFncmFwaCAodHJlZXNpdC1z
ZWFyY2gtc3VidHJlZSBpdGVtICJcXGBwYXJhZ3JhcGhcXCciKSkpCisgICAgKGlmIHBhcmFncmFw
aAorICAgICAgICAoc2F2ZS1leGN1cnNpb24KKyAgICAgICAgICAoZ290by1jaGFyICh0cmVlc2l0
LW5vZGUtc3RhcnQgcGFyYWdyYXBoKSkKKyAgICAgICAgICAoY3VycmVudC1jb2x1bW4pKQorICAg
ICAgKGxldCAoKG1hcmtlciAodHJlZXNpdC1ub2RlLWNoaWxkIGl0ZW0gMCkpKQorICAgICAgICAo
LSAodHJlZXNpdC1ub2RlLWVuZCBtYXJrZXIpCisgICAgICAgICAgICh0cmVlc2l0LW5vZGUtc3Rh
cnQgbWFya2VyKSkpKSkpCisKKyhkZWZ1biBtYXJrZG93bi10cy0tZmlsbC1saXN0LWl0ZW0gKGl0
ZW0ganVzdGlmeSkKKyAgIkZpbGwgdGhlIGNvbnRlbnRzIG9mIGxpc3QgSVRFTSwgcHJlc2Vydmlu
ZyBpdHMgaW5kZW50YXRpb24uCitOYXJyb3dzIHRvIElURU0ncyBvd24gcGFyYWdyYXBoIGNvbnRl
bnQgKGV4Y2x1ZGluZyBuZXN0ZWQgbGlzdHMpCithbmQgc2V0cyBgZmlsbC1wcmVmaXgnIHRvIGFs
aWduIGNvbnRpbnVhdGlvbiBsaW5lcyB3aXRoIHRoZSBzdGFydAorb2YgdGhlIGl0ZW0ncyB0ZXh0
LiAgSlVTVElGWSBpcyBhcyBpbiBgZmlsbC1wYXJhZ3JhcGgnLiIKKyAgKGxldCogKChmaWxsLXBy
ZWZpeCAobWFrZS1zdHJpbmcgKG1hcmtkb3duLXRzLS1saXN0LWl0ZW0tdGV4dC1jb2x1bW4gaXRl
bSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgP1xzKSkKKyAgICAgICAgIDs7
IEZpbmQgdGhlIGl0ZW0ncyBvd24gcGFyYWdyYXBoIChmaXJzdCBwYXJhZ3JhcGggY2hpbGQpLgor
ICAgICAgICAgOzsgSWYgdGhlIGl0ZW0gaGFzIG5lc3RlZCBsaXN0cywgbmFycm93IHRvIGp1c3Qg
dGhlCisgICAgICAgICA7OyBwYXJhZ3JhcGggc28gd2UgZG9uJ3QgbWVyZ2UgbmVzdGVkIGl0ZW1z
LgorICAgICAgICAgKHBhcmEgKHRyZWVzaXQtc2VhcmNoLXN1YnRyZWUgaXRlbSAiXFxgcGFyYWdy
YXBoXFwnIiBuaWwgbmlsIDEpKQorICAgICAgICAgKGJlZyAodHJlZXNpdC1ub2RlLXN0YXJ0IGl0
ZW0pKQorICAgICAgICAgKGVuZCAoaWYgcGFyYQorICAgICAgICAgICAgICAgICAgKHRyZWVzaXQt
bm9kZS1lbmQgcGFyYSkKKyAgICAgICAgICAgICAgICAodHJlZXNpdC1ub2RlLWVuZCBpdGVtKSkp
CisgICAgICAgICA7OyBVc2UgZGVmYXVsdCBwYXJhZ3JhcGggbW90aW9uIGluc2lkZSB0aGUgbmFy
cm93ZWQgcmVnaW9uCisgICAgICAgICA7OyBzbyB0aGF0IHRoZSBpbm5lciBgZmlsbC1wYXJhZ3Jh
cGgnIGRvZXMgbm90IHJlLWVudGVyIG91cgorICAgICAgICAgOzsgY3VzdG9tIHBhcmFncmFwaC1m
aW5kaW5nIGxvZ2ljLgorICAgICAgICAgKGZpbGwtZm9yd2FyZC1wYXJhZ3JhcGgtZnVuY3Rpb24g
Iydmb3J3YXJkLXBhcmFncmFwaCkpCisgICAgKHNhdmUtcmVzdHJpY3Rpb24KKyAgICAgIChuYXJy
b3ctdG8tcmVnaW9uIGJlZyBlbmQpCisgICAgICAoZmlsbC1wYXJhZ3JhcGgganVzdGlmeSkpCisg
ICAgOzsgUmV0dXJuIG5vbi1uaWwgdG8gc2lnbmFsIHRoYXQgZmlsbGluZyBoYXMgYmVlbiBoYW5k
bGVkLAorICAgIDs7IGFzIHBlciB0aGUgY29udHJhY3Qgb2YgYGZpbGwtcGFyYWdyYXBoLWZ1bmN0
aW9uJy4KKyAgICB0KSkKKworKGRlZnVuIG1hcmtkb3duLXRzLS1hZGFwdGl2ZS1maWxsICgpCisg
ICJSZXR1cm4gdGhlIGZpbGwgcHJlZml4IGZvciB0aGUgY3VycmVudCBsaW5lIGluIE1hcmtkb3du
LgorV2hlbiBpbnNpZGUgYSBsaXN0IGl0ZW0sIHJldHVybiBzcGFjZXMgbWF0Y2hpbmcgdGhlIGNv
bHVtbiB3aGVyZQordGhlIGl0ZW0ncyB0ZXh0IHN0YXJ0cy4iCisgIChhbmQtbGV0KiAoKG5vZGUg
KHRyZWVzaXQtbm9kZS1hdAorICAgICAgICAgICAgICAgICAgICAoc2F2ZS1leGN1cnNpb24gKGJh
Y2stdG8taW5kZW50YXRpb24pIChwb2ludCkpCisgICAgICAgICAgICAgICAgICAgICdtYXJrZG93
bikpCisgICAgICAgICAgICAgKGl0ZW0gKHRyZWVzaXQtcGFyZW50LXVudGlsIG5vZGUgIlxcYGxp
c3RfaXRlbVxcJyIpKSkKKyAgICAobWFrZS1zdHJpbmcgKG1hcmtkb3duLXRzLS1saXN0LWl0ZW0t
dGV4dC1jb2x1bW4gaXRlbSkgP1xzKSkpCisKKyhkZWZ1biBtYXJrZG93bi10cy0tZmlsbC1mb3J3
YXJkLXBhcmFncmFwaCAoYXJnKQorICAiTW92ZSBmb3J3YXJkIGJ5IEFSRyBwYXJhZ3JhcGhzLCBy
ZXNwZWN0aW5nIE1hcmtkb3duIHN0cnVjdHVyZS4KK0xpc3QgaXRlbXMgYXJlIHRyZWF0ZWQgYXMg
aW5kaXZpZHVhbCBwYXJhZ3JhcGhzLiAgQmxvY2tzIG1hdGNoZWQKK2J5IGBtYXJrZG93bi10cy0t
ZmlsbC11bmZpbGxhYmxlLWJsb2NrLXF1ZXJ5JyBhcmUgc2tpcHBlZDogYm90aAorZm9yd2FyZCBh
bmQgYmFja3dhcmQgbW90aW9uIG1vdmUgdG8gdGhlIGVuZCBvZiB0aGUgYmxvY2ssIHNvCitgZmls
bC1yZWdpb24nIHNlZXMgYSB6ZXJvLWxlbmd0aCByZWdpb24gYW5kIGxlYXZlcyB0aGUgYmxvY2sK
K3VuZmlsbGVkLiIKKyAgKGxldCAoKGRpcmVjdGlvbiAoaWYgKD4gYXJnIDApIDEgLTEpKQorICAg
ICAgICAoY291bnQgKGFicyBhcmcpKQorICAgICAgICAobW92ZWQgMCkpCisgICAgKGRvdGltZXMg
KF8gY291bnQpCisgICAgICA7OyBGb3IgYmFja3dhcmQgbW90aW9uLCBza2lwIGJhY2sgb3ZlciB3
aGl0ZXNwYWNlIHRvIGZpbmQKKyAgICAgIDs7IHRoZSBpdGVtIHdlIGFyZSBsZWF2aW5nLCBub3Qg
dGhlIG5leHQgb25lLgorICAgICAgKGxldCogKChwb3MgKGlmICg8IGRpcmVjdGlvbiAwKQorICAg
ICAgICAgICAgICAgICAgICAgIChzYXZlLWV4Y3Vyc2lvbgorICAgICAgICAgICAgICAgICAgICAg
ICAgKHNraXAtY2hhcnMtYmFja3dhcmQgIiBcdFxuIikKKyAgICAgICAgICAgICAgICAgICAgICAg
IChtYXggKHBvaW50LW1pbikgKDEtIChwb2ludCkpKSkKKyAgICAgICAgICAgICAgICAgICAgKHBv
aW50KSkpCisgICAgICAgICAgICAgKGJsb2NrIChjYXIgKHRyZWVzaXQtcXVlcnktY2FwdHVyZQor
ICAgICAgICAgICAgICAgICAgICAgICAgICAodHJlZXNpdC1idWZmZXItcm9vdC1ub2RlICdtYXJr
ZG93bikKKyAgICAgICAgICAgICAgICAgICAgICAgICAgbWFya2Rvd24tdHMtLWZpbGwtdW5maWxs
YWJsZS1ibG9jay1xdWVyeQorICAgICAgICAgICAgICAgICAgICAgICAgICBwb3MgKDErIHBvcykp
KSkKKyAgICAgICAgICAgICAoaW5kZW50ZWQtcG9zIChzYXZlLWV4Y3Vyc2lvbgorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAoZ290by1jaGFyIHBvcykKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgKGJhY2stdG8taW5kZW50YXRpb24pCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIChwb2ludCkpKQorICAgICAgICAgICAgIChub2RlICh0cmVlc2l0LW5vZGUtYXQgaW5kZW50
ZWQtcG9zICdtYXJrZG93bikpCisgICAgICAgICAgICAgKGl0ZW0gKHRyZWVzaXQtcGFyZW50LXVu
dGlsIG5vZGUgIlxcYGxpc3RfaXRlbVxcJyIpKSkKKyAgICAgICAgOzsgV2hlbiBtb3ZpbmcgZm9y
d2FyZCBmcm9tIHdoaXRlc3BhY2UgYmV0d2VlbiBsaXN0IGl0ZW1zLAorICAgICAgICA7OyBza2lw
IHRvIHRoZSBuZXh0IG5vbi1ibGFuayBwb3NpdGlvbiBhbmQgY2hlY2sgYWdhaW4uCisgICAgICAg
ICh3aGVuIChhbmQgKG5vdCBpdGVtKSAobm90IGJsb2NrKSAoPiBkaXJlY3Rpb24gMCkpCisgICAg
ICAgICAgKGxldCAoKG5leHQtcG9zIChzYXZlLWV4Y3Vyc2lvbgorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIChza2lwLWNoYXJzLWZvcndhcmQgIiBcdFxuIikKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAocG9pbnQpKSkpCisgICAgICAgICAgICAoc2V0cSBub2RlICh0cmVlc2l0LW5v
ZGUtYXQgbmV4dC1wb3MgJ21hcmtkb3duKSkKKyAgICAgICAgICAgIChzZXRxIGl0ZW0gKHRyZWVz
aXQtcGFyZW50LXVudGlsIG5vZGUgIlxcYGxpc3RfaXRlbVxcJyIpKSkpCisgICAgICAgIChjb25k
CisgICAgICAgICA7OyBJbnNpZGUgYW4gdW5maWxsYWJsZSBibG9jazogc2tpcCBvdmVyIGl0IGVu
dGlyZWx5LgorICAgICAgICAgKGJsb2NrCisgICAgICAgICAgKGdvdG8tY2hhciAodHJlZXNpdC1u
b2RlLWVuZCAoY2RyIGJsb2NrKSkpCisgICAgICAgICAgKHNldHEgbW92ZWQgKDErIG1vdmVkKSkp
CisgICAgICAgICA7OyBJbnNpZGUgYSBsaXN0IGl0ZW06IHRyZWF0IGFzIHBhcmFncmFwaCBib3Vu
ZGFyeS4KKyAgICAgICAgIChpdGVtCisgICAgICAgICAgKGlmICg+IGRpcmVjdGlvbiAwKQorICAg
ICAgICAgICAgICAoZ290by1jaGFyICh0cmVlc2l0LW5vZGUtZW5kIGl0ZW0pKQorICAgICAgICAg
ICAgKGdvdG8tY2hhciAodHJlZXNpdC1ub2RlLXN0YXJ0IGl0ZW0pKSkKKyAgICAgICAgICAoc2V0
cSBtb3ZlZCAoMSsgbW92ZWQpKSkKKyAgICAgICAgIDs7IERlZmF1bHQ6IHVzZSBzdGFuZGFyZCBw
YXJhZ3JhcGggbW90aW9uLgorICAgICAgICAgKHQKKyAgICAgICAgICAoZm9yd2FyZC1wYXJhZ3Jh
cGggZGlyZWN0aW9uKQorICAgICAgICAgIChzZXRxIG1vdmVkICgxKyBtb3ZlZCkpKSkpKQorICAg
IDs7IFJldHVybiB0aGUgbnVtYmVyIG9mIHBhcmFncmFwaHMgbGVmdCB0byBtb3ZlICgwID0gYWxs
IGRvbmUpLgorICAgICgtIGNvdW50IG1vdmVkKSkpCisKKyhkZWZ1biBtYXJrZG93bi10cy0tZmls
bC1wYXJhZ3JhcGggKCZvcHRpb25hbCBqdXN0aWZ5KQorICAiRmlsbCB0aGUgY3VycmVudCBwYXJh
Z3JhcGgsIHJlc3BlY3RpbmcgTWFya2Rvd24gYmxvY2sgc3RydWN0dXJlLgorVGhpcyBmdW5jdGlv
biBwcmV2ZW50cyBmaWxsaW5nIGluc2lkZSBibG9ja3MgbWF0Y2hlZCBieQorYG1hcmtkb3duLXRz
LS1maWxsLXVuZmlsbGFibGUtYmxvY2stcXVlcnknLCBhbmQgZmlsbHMgd2l0aGluIGxpc3QKK2l0
ZW1zIHdpdGhvdXQgbWVyZ2luZyBhZGphY2VudCBpdGVtcy4gIEpVU1RJRlkgaXMgYXMgaW4KK2Bm
aWxsLXBhcmFncmFwaCcuIgorICAoY29uZCoKKyAgIDs7IERvbid0IGZpbGwgaW5zaWRlIHVuZmls
bGFibGUgYmxvY2tzLiAgVXNlIGEgcXVlcnkgYWdhaW5zdCB0aGUKKyAgIDs7IHJvb3Qgbm9kZSBi
ZWNhdXNlIGB0cmVlc2l0LW5vZGUtYXQnIG1heSBub3QgcmV0dXJuIGEgbm9kZQorICAgOzsgaW5z
aWRlIHRoZSBibG9jayB3aGVuIHBvaW50IGlzIG9uIGFub255bW91cyAodW5uYW1lZCkgdGV4dC4K
KyAgICgodHJlZXNpdC1xdWVyeS1jYXB0dXJlCisgICAgICh0cmVlc2l0LWJ1ZmZlci1yb290LW5v
ZGUgJ21hcmtkb3duKQorICAgICBtYXJrZG93bi10cy0tZmlsbC11bmZpbGxhYmxlLWJsb2NrLXF1
ZXJ5CisgICAgIChwb2ludCkgKG1pbiAoMSsgKHBvaW50KSkgKHBvaW50LW1heCkpKQorICAgIHQp
CisgICA7OyBGaWxsIHdpdGhpbiB0aGUgZW5jbG9zaW5nIGxpc3QgaXRlbS4gIFVzZQorICAgOzsg
YG1hcmtkb3duLXRzLS1saXN0LWl0ZW0tYXQtcG9pbnQnIHdoaWNoIGhhbmRsZXMgYmxvY2sgcXVv
dGUKKyAgIDs7IG1hcmtlcnMuICBXaGVuIHRoZSBsaXN0IGl0ZW0gaXMgaW5zaWRlIGEgYmxvY2sg
cXVvdGUsIGRlbGVnYXRlCisgICA7OyB0byB0aGUgYmxvY2sgcXVvdGUgZmlsbGVyIHdoaWNoIGhh
bmRsZXMgYD4gJyBwcmVmaXhlcyBjb3JyZWN0bHkuCisgICAoKGJpbmQtYW5kKiAoaXRlbSAobWFy
a2Rvd24tdHMtLWxpc3QtaXRlbS1hdC1wb2ludCkpKQorICAgIChpZiAodHJlZXNpdC1wYXJlbnQt
dW50aWwgaXRlbSAiXFxgYmxvY2tfcXVvdGVcXCciKQorICAgICAgICAobWFya2Rvd24tdHMtLWZp
bGwtYmxvY2stcXVvdGUganVzdGlmeSkKKyAgICAgIChtYXJrZG93bi10cy0tZmlsbC1saXN0LWl0
ZW0gaXRlbSBqdXN0aWZ5KSkpCisgICA7OyBQb2ludCBpcyBvbiBhIGJsYW5rIGxpbmUgYmVmb3Jl
IGEgbGlzdC4gIElmIHRoZSBuZXh0CisgICA7OyBub24td2hpdGVzcGFjZSBwb3NpdGlvbiBmYWxs
cyBpbnNpZGUgYSBsaXN0IGl0ZW0sIGZpbGwgdGhhdCBpdGVtLgorICAgKChzYXZlLWV4Y3Vyc2lv
bgorICAgICAgKGJlZ2lubmluZy1vZi1saW5lKQorICAgICAgKGxvb2tpbmctYXQtcCAiWyBcdF0q
JCIpKQorICAgIChhbmQtbGV0KiAoKG5leHQtcG9zIChzYXZlLWV4Y3Vyc2lvbgorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgKHNraXAtY2hhcnMtZm9yd2FyZCAiIFx0XG4iKQorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgKHBvaW50KSkpCisgICAgICAgICAgICAgICAobmV4dC1ub2RlICh0
cmVlc2l0LW5vZGUtYXQgbmV4dC1wb3MgJ21hcmtkb3duKSkKKyAgICAgICAgICAgICAgIChpdGVt
ICh0cmVlc2l0LXBhcmVudC11bnRpbAorICAgICAgICAgICAgICAgICAgICAgIG5leHQtbm9kZSAi
XFxgbGlzdF9pdGVtXFwnIikpKQorICAgICAgKG1hcmtkb3duLXRzLS1maWxsLWxpc3QtaXRlbSBp
dGVtIGp1c3RpZnkpKSkKKyAgIDs7IEZpbGwgd2l0aGluIGEgYmxvY2sgcXVvdGUuICBOYXJyb3cg
dG8gdGhlIHBhcmFncmFwaCBub2RlIGF0CisgICA7OyBwb2ludCdzIG5lc3RpbmcgbGV2ZWwgc28g
bGluZXMgd2l0aCBkaWZmZXJlbnQgYD4gJyBkZXB0aHMKKyAgIDs7IGFyZSBub3QgbWVyZ2VkLgor
ICAgKCh0cmVlc2l0LXBhcmVudC11bnRpbAorICAgICAodHJlZXNpdC1ub2RlLWF0CisgICAgICAo
c2F2ZS1leGN1cnNpb24gKGJhY2stdG8taW5kZW50YXRpb24pIChwb2ludCkpCisgICAgICAnbWFy
a2Rvd24pCisgICAgICJcXGBibG9ja19xdW90ZVxcJyIpCisgICAgKG1hcmtkb3duLXRzLS1maWxs
LWJsb2NrLXF1b3RlIGp1c3RpZnkpKQorICAgOzsgRmlsbCB3aXRoaW4gYW4gSFRNTCBjb21tZW50
LiAgVGhlIG5vZGUgdHlwZSBpcyAiaHRtbF9ibG9jayIKKyAgIDs7IGluIGdyYW1tYXIgdjAuNC54
IGFuZCAiY29tbWVudCIgaW4gc29tZSBvdGhlciB2ZXJzaW9ucy4KKyAgICgoYmluZC1hbmQqIChi
bG9jayAobGV0ICgobiAodHJlZXNpdC1ub2RlLWF0IChwb2ludCkgJ21hcmtkb3duKSkpCisgICAg
ICAgICAgICAgICAgICAgICAgICAob3IgKHRyZWVzaXQtcGFyZW50LXVudGlsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIG4gIlxcYFxcKD86aHRtbF9ibG9ja1xcfGNvbW1lbnRcXClcXCci
KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIChhbmQgKG1lbWJlciAodHJlZXNpdC1ub2Rl
LXR5cGUgbikKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJygiaHRt
bF9ibG9jayIgImNvbW1lbnQiKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG4p
KSkpKQorICAgIChtYXJrZG93bi10cy0tZmlsbC1odG1sLWNvbW1lbnQgYmxvY2sganVzdGlmeSkp
CisgICA7OyBEZWZhdWx0OiBsZXQgZmlsbC1wYXJhZ3JhcGggaGFuZGxlIGl0LgorICAgKHQgbmls
KSkpCisKKyhkZWZ1biBtYXJrZG93bi10cy0tZmlsbC1odG1sLWNvbW1lbnQgKG5vZGUganVzdGlm
eSkKKyAgIkZpbGwgSFRNTCBjb21tZW50IE5PREUsIGFsaWduaW5nIGNvbnRpbnVhdGlvbiBsaW5l
cy4KK1JldHVybiB0IGlmIE5PREUgaXMgYSBjb21tZW50IGFuZCB3YXMgZmlsbGVkLCBuaWwgb3Ro
ZXJ3aXNlLgorSlVTVElGWSBpcyBhcyBpbiBgZmlsbC1wYXJhZ3JhcGgnLiIKKyAgKHdoZW4gKHNh
dmUtZXhjdXJzaW9uCisgICAgICAgICAgKGdvdG8tY2hhciAodHJlZXNpdC1ub2RlLXN0YXJ0IG5v
ZGUpKQorICAgICAgICAgIChsb29raW5nLWF0LXAgIjwhLS0iKSkKKyAgICAobGV0ICgoZmlsbC1w
cmVmaXggKHNhdmUtZXhjdXJzaW9uCisgICAgICAgICAgICAgICAgICAgICAgICAgKGdvdG8tY2hh
ciAodHJlZXNpdC1ub2RlLXN0YXJ0IG5vZGUpKQorICAgICAgICAgICAgICAgICAgICAgICAgICht
YWtlLXN0cmluZyAoKyAoY3VycmVudC1jb2x1bW4pCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIChsZW5ndGggIjwhLS0gIikpCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgID9ccykpKQorICAgICAgICAgIChhZGFwdGl2ZS1maWxsLWZ1bmN0aW9u
IG5pbCkKKyAgICAgICAgICAoZmlsbC1mb3J3YXJkLXBhcmFncmFwaC1mdW5jdGlvbiAjJ2Zvcndh
cmQtcGFyYWdyYXBoKQorICAgICAgICAgIChmaWxsLXBhcmFncmFwaC1mdW5jdGlvbiBuaWwpKQor
ICAgICAgKHNhdmUtcmVzdHJpY3Rpb24KKyAgICAgICAgKG5hcnJvdy10by1yZWdpb24gKHRyZWVz
aXQtbm9kZS1zdGFydCBub2RlKQorICAgICAgICAgICAgICAgICAgICAgICAgICAodHJlZXNpdC1u
b2RlLWVuZCBub2RlKSkKKyAgICAgICAgKGZpbGwtcGFyYWdyYXBoIGp1c3RpZnkpKQorICAgICAg
dCkpKQorCisoZGVmdW4gbWFya2Rvd24tdHMtLWJsb2NrLXF1b3RlLXByZWZpeCAoKQorICAiUmV0
dXJuIHRoZSBibG9jayBxdW90ZSBwcmVmaXggc3RyaW5nIGZyb20gdGhlIGN1cnJlbnQgbGluZS4K
K1JlYWQgdGhlIGFjdHVhbCBgPicgbWFya2VycyAod2l0aCB3aGF0ZXZlciBzcGFjaW5nIHRoZSB1
c2VyIHdyb3RlKQorZnJvbSB0aGUgYmVnaW5uaW5nIG9mIHRoZSBsaW5lIHNvIHRoYXQgZmlsbCBw
cmVzZXJ2ZXMgdGhlIGV4aXN0aW5nCitzdHlsZSAoZS5nLiwgYD4+PiAnIHN0YXlzIGA+Pj4gJywg
YD4gPiA+ICcgc3RheXMgYD4gPiA+ICcpLiIKKyAgKHNhdmUtZXhjdXJzaW9uCisgICAgKGJlZ2lu
bmluZy1vZi1saW5lKQorICAgIChpZiAobG9va2luZy1hdCAiXFwoWz4gXHRdKj5cXClbIFx0XSoi
KQorICAgICAgICAoY29uY2F0IChtYXRjaC1zdHJpbmcgMCkpCisgICAgICAiPiAiKSkpCisKKyhk
ZWZ1biBtYXJrZG93bi10cy0tZmlsbC1ibG9jay1xdW90ZSAoanVzdGlmeSkKKyAgIkZpbGwgdGhl
IHBhcmFncmFwaCBhdCBwb2ludCBpbnNpZGUgYSBibG9jayBxdW90ZS4KK0ZpbmQgdGhlIHBhcmFn
cmFwaCBub2RlIGF0IHBvaW50IHdpdGhpbiB0aGUgYmxvY2sgcXVvdGUgYW5kIGZpbGwKK29ubHkg
dGhhdCBwYXJhZ3JhcGgsIHByZXNlcnZpbmcgdGhlIGA+ICcgcHJlZml4LiAgV2hlbiB0aGUKK3Bh
cmFncmFwaCBpcyBpbnNpZGUgYSBsaXN0IGl0ZW0sIGFsaWduIGNvbnRpbnVhdGlvbiBsaW5lcyB3
aXRoCit0aGUgaXRlbSdzIHRleHQgY29sdW1uLiAgSlVTVElGWSBpcyBhcyBpbiBgZmlsbC1wYXJh
Z3JhcGgnLiIKKyAgOzsgU2tpcCBwYXN0IGA+ICcgbWFya2VycyBhbmQgYW55IGxpc3QgbWFya2Vy
IHRvIGxhbmQgaW5zaWRlIHRoZQorICA7OyBjb250ZW50LCB3aGVyZSB0aGUgcGFyYWdyYXBoIG5v
ZGUgbGl2ZXMuCisgIChsZXQqICgoY29udGVudC1wb3MgKHNhdmUtZXhjdXJzaW9uCisgICAgICAg
ICAgICAgICAgICAgICAgICAoYmVnaW5uaW5nLW9mLWxpbmUpCisgICAgICAgICAgICAgICAgICAg
ICAgICAoc2tpcC1jaGFycy1mb3J3YXJkICI+IFx0IikKKyAgICAgICAgICAgICAgICAgICAgICAg
IDs7IElmIHdlIGxhbmQgb24gYSBsaXN0IG1hcmtlciwgc2tpcCBwYXN0IGl0LgorICAgICAgICAg
ICAgICAgICAgICAgICAgKHdoZW4gKGxvb2tpbmctYXQgIlstKitdIFxcfFswLTldK1suKV1ccyIp
CisgICAgICAgICAgICAgICAgICAgICAgICAgIChnb3RvLWNoYXIgKG1hdGNoLWVuZCAwKSkpCisg
ICAgICAgICAgICAgICAgICAgICAgICAobWluICgxKyAocG9pbnQpKSAocG9pbnQtbWF4KSkpKQor
ICAgICAgICAgKG5vZGUgKHRyZWVzaXQtbm9kZS1hdCBjb250ZW50LXBvcyAnbWFya2Rvd24pKQor
ICAgICAgICAgKHBhcmEgKHRyZWVzaXQtcGFyZW50LXVudGlsCisgICAgICAgICAgICAgICAgbm9k
ZSAobGFtYmRhIChuKQorICAgICAgICAgICAgICAgICAgICAgICAoZXF1YWwgKHRyZWVzaXQtbm9k
ZS10eXBlIG4pICJwYXJhZ3JhcGgiKSkpKSkKKyAgICAod2hlbiBwYXJhCisgICAgICA7OyBUaGUg
Z3JhbW1hciBtYXkgaW5jbHVkZSB0cmFpbGluZyBibG9ja19jb250aW51YXRpb24gbm9kZXMKKyAg
ICAgIDs7IChibGFuayBgPiA+JyBsaW5lcykgYXMgY2hpbGRyZW4gb2YgdGhlIHBhcmFncmFwaC4g
IFVzZSB0aGUKKyAgICAgIDs7IGVuZCBvZiB0aGUgbGFzdCBpbmxpbmUgY2hpbGQgc28gZmlsbCBk
b2VzIG5vdCBtZXJnZSBhY3Jvc3MKKyAgICAgIDs7IHdoYXQgc2hvdWxkIGJlIGEgcGFyYWdyYXBo
IGJvdW5kYXJ5LgorICAgICAgKGxldCogKChsYXN0LWlubGluZQorICAgICAgICAgICAgICAoc2Vx
LWZpbmQgKGxhbWJkYSAoY2hpbGQpCisgICAgICAgICAgICAgICAgICAgICAgICAgIChlcXVhbCAo
dHJlZXNpdC1ub2RlLXR5cGUgY2hpbGQpICJpbmxpbmUiKSkKKyAgICAgICAgICAgICAgICAgICAg
ICAgIChyZXZlcnNlICh0cmVlc2l0LW5vZGUtY2hpbGRyZW4gcGFyYSkpKSkKKyAgICAgICAgICAg
ICAocGFyYS1lbmQgKGlmIGxhc3QtaW5saW5lCisgICAgICAgICAgICAgICAgICAgICAgICAgICAo
dHJlZXNpdC1ub2RlLWVuZCBsYXN0LWlubGluZSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAo
dHJlZXNpdC1ub2RlLWVuZCBwYXJhKSkpCisgICAgICAgICAgICAgKGJxLXByZWZpeCAobWFya2Rv
d24tdHMtLWJsb2NrLXF1b3RlLXByZWZpeCkpCisgICAgICAgICAgICAgOzsgV2hlbiBpbnNpZGUg
YSBsaXN0IGl0ZW0sIGV4dGVuZCB0aGUgcHJlZml4IHdpdGggc3BhY2VzCisgICAgICAgICAgICAg
Ozsgc28gY29udGludWF0aW9uIGxpbmVzIGFsaWduIHdpdGggdGhlIGl0ZW0ncyB0ZXh0LgorICAg
ICAgICAgICAgIChsaXN0LWl0ZW0gKHRyZWVzaXQtcGFyZW50LXVudGlsIHBhcmEgIlxcYGxpc3Rf
aXRlbVxcJyIpKQorICAgICAgICAgICAgIChwcmVmaXggKGlmIGxpc3QtaXRlbQorICAgICAgICAg
ICAgICAgICAgICAgICAgIChsZXQqICgodGV4dC1jb2wgKG1hcmtkb3duLXRzLS1saXN0LWl0ZW0t
dGV4dC1jb2x1bW4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBs
aXN0LWl0ZW0pKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZXh0cmEgKG1heCAw
ICgtIHRleHQtY29sIChsZW5ndGggYnEtcHJlZml4KSkpKSkKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgIChjb25jYXQgYnEtcHJlZml4IChtYWtlLXN0cmluZyBleHRyYSA/XHMpKSkKKyAgICAg
ICAgICAgICAgICAgICAgICAgYnEtcHJlZml4KSkKKyAgICAgICAgICAgICAoYWRhcHRpdmUtZmls
bC1mdW5jdGlvbiBuaWwpCisgICAgICAgICAgICAgKGZpbGwtZm9yd2FyZC1wYXJhZ3JhcGgtZnVu
Y3Rpb24gIydmb3J3YXJkLXBhcmFncmFwaCkKKyAgICAgICAgICAgICAoZmlsbC1wYXJhZ3JhcGgt
ZnVuY3Rpb24gbmlsKSkKKyAgICAgICAgKHNhdmUtcmVzdHJpY3Rpb24KKyAgICAgICAgICA7OyBO
YXJyb3cgdG8gdGhlIGZ1bGwgbGluZXMgb2YgdGhlIHBhcmFncmFwaCBzbyB0aGF0IHRoZQorICAg
ICAgICAgIDs7IGA+ICcgbWFya2VycyBhcmUgaW5jbHVkZWQgaW4gdGhlIGZpbGwgcmVnaW9uLgor
ICAgICAgICAgIChuYXJyb3ctdG8tcmVnaW9uCisgICAgICAgICAgIChzYXZlLWV4Y3Vyc2lvbgor
ICAgICAgICAgICAgIChnb3RvLWNoYXIgKHRyZWVzaXQtbm9kZS1zdGFydCBwYXJhKSkKKyAgICAg
ICAgICAgICAoYmVnaW5uaW5nLW9mLWxpbmUpCisgICAgICAgICAgICAgKHBvaW50KSkKKyAgICAg
ICAgICAgcGFyYS1lbmQpCisgICAgICAgICAgKGxldCAoKGZpbGwtcHJlZml4IHByZWZpeCkpCisg
ICAgICAgICAgICAoZmlsbC1wYXJhZ3JhcGgganVzdGlmeSkpKSkpKQorICB0KQorCis7OzsgQ29k
ZSBibG9ja3M6CisKKyhkZWZ2YXItbG9jYWwgbWFya2Rvd24tdHMtLWNvZGUtYmxvY2stbGFuZ3Vh
Z2VzIG5pbAorICAiQWxpc3QgbWFwcGluZyBsYW5ndWFnZSBub2RlIG5hbWVzIHRvIHRzIGxhbmd1
YWdlLgorSWYgYSBsYW5ndWFnZSBpcyBub3QgYSB0cyBsYW5ndWFnZSBvciBpcyBub3QgbWFwcGVk
IHRvIG9uZSwgaXQgd2lsbCBiZQoraW4gYG1hcmtkb3duLXRzLS1jb2RlLWJsb2NrLW5vbi10cy1t
b2RlcycuIikKKworKGRlZnZhci1sb2NhbCBtYXJrZG93bi10cy0tY29kZS1ibG9jay1ub24tdHMt
bW9kZXMgbmlsCisgICJBbGlzdCBtYXBwaW5nIGxhbmd1YWdlcyB0byBub24tdHJlZS1zaXR0ZXIg
bW9kZXMgZm9yIGNvZGUgYmxvY2tzLgorUG9wdWxhdGVkIGJ5IGBtYXJrZG93bi10cy0tY29kZS1i
bG9jay10cy1sYW5ndWFnZScgdG8gaWRlbnRpZnkgYQorY29kZS1ibG9jayBsYW5ndWFnZSBtb2Rl
IHdoaWNoIGlzIG5vdCBhIHRyZWUtc2l0dGVyIG1vZGUgb3IgZm9yIHdoaWNoCit0aGUgdHJlZS1z
aXR0ZXIgZ3JhbW1hciBpcyB1bmF2YWlsYWJsZS4iKQorCisoZGVmdW4gbWFya2Rvd24tdHMtLWhh
cnZlc3QtbW9kZS10cmVlc2l0LWNvbmZpZ3VyYXRpb24gKG1vZGUpCisgICJIYXJ2ZXN0IHRyZWUt
c2l0dGVyIGNvbmZpZ3VyYXRpb24gZnJvbSBNT0RFLgorUmV0dXJuIGEgcGxpc3Qgd2l0aCB0aGUg
Zm9sbG93aW5nIGtleXMgYW5kIHZhbHVlczoKIAogICAgIDpmb250LWxvY2sgKGZyb20gYHRyZWVz
aXQtZm9udC1sb2NrLXNldHRpbmdzJykKICAgICA6c2ltcGxlLWluZGVudCAoZnJvbSBgdHJlZXNp
dC1zaW1wbGUtaW5kZW50LXJ1bGVzJykKICAgICA6cmFuZ2UgKGZyb20gYHRyZWVzaXQtcmFuZ2Ut
c2V0dGluZ3MnKSIKICAgKHdpdGgtdGVtcC1idWZmZXIKLSAgICAoZnVuY2FsbCBtb2RlKQotICAg
IChsaXN0IDpmb250LWxvY2sgdHJlZXNpdC1mb250LWxvY2stc2V0dGluZ3MKKyAgICAoZGVsYXkt
bW9kZS1ob29rcyAoZnVuY2FsbCBtb2RlKSkKKyAgICAobGlzdCA6bGFuZ3VhZ2UgKHRyZWVzaXQt
bGFuZ3VhZ2UtYXQgKHBvaW50LW1pbikpCisgICAgICAgICAgOmZvbnQtbG9jayB0cmVlc2l0LWZv
bnQtbG9jay1zZXR0aW5ncwogICAgICAgICAgIDpzaW1wbGUtaW5kZW50IHRyZWVzaXQtc2ltcGxl
LWluZGVudC1ydWxlcwogICAgICAgICAgIDpyYW5nZSB0cmVlc2l0LXJhbmdlLXNldHRpbmdzKSkp
CiAKLShkZWZ1biBtYXJrZG93bi10cy0tYWRkLWNvbmZpZy1mb3ItbW9kZSAobGFuZ3VhZ2UgbW9k
ZSkKLSAgIkFkZCBjb25maWd1cmF0aW9ucyBmb3IgTEFOR1VBR0UgZnJvbSBNT0RFIHRvIGN1cnJl
bnQgYnVmZmVyLgotCi1Db25maWd1cmF0aW9uIGluY2x1ZGVzIGZvbnQtbG9jayBhbmQgaW5kZW50
LiAgRm9yIGZvbnQtbG9jayBydWxlcywgdXNlCi10aGUgc2FtZSBmZWF0dXJlcyBlbmFibGVkIGlu
IE1PREUuIgotICAobGV0ICgoY29uZmlncyAobWFya2Rvd24tdHMtLWhhcnZlc3QtdHJlZXNpdC1j
b25maWdzIG1vZGUpKSkKLSAgICAoaWdub3JlIGxhbmd1YWdlKSA7IFdlIG1pZ2h0IG1ha2UgdXNl
IG9mIHRoaXMgbGF0ZXIuCi0gICAgKHNldHEgdHJlZXNpdC1mb250LWxvY2stc2V0dGluZ3MKLSAg
ICAgICAgICAoYXBwZW5kIHRyZWVzaXQtZm9udC1sb2NrLXNldHRpbmdzCi0gICAgICAgICAgICAg
ICAgICA7OyBHZXQgYWxsIHRoZSBmb250LWxvY2sgc2V0dGluZ3MsIGluY2x1ZGluZyBvbmVzIHRo
YXQKLSAgICAgICAgICAgICAgICAgIDs7IGRvbid0IHBlcnRhaW4gdG8gTEFOR1VBR0UuICBUaGlz
IHdheSB3ZSBnZXQganNkb2MKLSAgICAgICAgICAgICAgICAgIDs7IGZyb20ganMtdHMtbW9kZSwg
Zm9yIGV4YW1wbGUuCi0gICAgICAgICAgICAgICAgICAocGxpc3QtZ2V0IGNvbmZpZ3MgOmZvbnQt
bG9jaykpKQotICAgIChzZXRxIHRyZWVzaXQtc2ltcGxlLWluZGVudC1ydWxlcwotICAgICAgICAg
IChhcHBlbmQgdHJlZXNpdC1zaW1wbGUtaW5kZW50LXJ1bGVzCi0gICAgICAgICAgICAgICAgICA7
OyBTaW1pbGFybHksIGdldCBhbGwgaW5kZW50IHJ1bGVzLgotICAgICAgICAgICAgICAgICAgKHBs
aXN0LWdldCBjb25maWdzIDpzaW1wbGUtaW5kZW50KSkpCisoZGVmdW4gbWFya2Rvd24tdHMtLWNv
bmZpZ3VyZS1jdXJyZW50LWJ1ZmZlciAoY29uZmlndXJhdGlvbikKKyAgIkFkZCBDT05GSUdVUkFU
SU9OIHRvIHRoZSBjdXJyZW50IGJ1ZmZlci4KK0NPTkZJR1VSQVRJT04gaW5jbHVkZXMgZm9udC1s
b2NrIGFuZCBpbmRlbnQgcnVsZXMuICBGb3IgZm9udC1sb2NrIHJ1bGVzLAordXNlIHRoZSBzYW1l
IGZlYXR1cmVzIGVuYWJsZWQgaW4gTU9ERS4iCisgIChzZXRxIHRyZWVzaXQtZm9udC1sb2NrLXNl
dHRpbmdzCisgICAgICAgIChhcHBlbmQgdHJlZXNpdC1mb250LWxvY2stc2V0dGluZ3MKKyAgICAg
ICAgICAgICAgICA7OyBHZXQgYWxsIHRoZSBmb250LWxvY2sgc2V0dGluZ3MsIGluY2x1ZGluZyBv
bmVzIHRoYXQKKyAgICAgICAgICAgICAgICA7OyBkb24ndCBwZXJ0YWluIHRvIE1PREUuICBUaGlz
IHdheSwgd2UgZ2V0IGpzZG9jCisgICAgICAgICAgICAgICAgOzsgZnJvbSBqcy10cy1tb2RlLCBm
b3IgZXhhbXBsZS4KKyAgICAgICAgICAgICAgICAocGxpc3QtZ2V0IGNvbmZpZ3VyYXRpb24gOmZv
bnQtbG9jaykpKQorICAoc2V0cSB0cmVlc2l0LXNpbXBsZS1pbmRlbnQtcnVsZXMKKyAgICAgICAg
KGFwcGVuZCB0cmVlc2l0LXNpbXBsZS1pbmRlbnQtcnVsZXMKKyAgICAgICAgICAgICAgICA7OyBT
aW1pbGFybHksIGdldCBhbGwgaW5kZW50IHJ1bGVzLgorICAgICAgICAgICAgICAgIChwbGlzdC1n
ZXQgY29uZmlndXJhdGlvbiA6c2ltcGxlLWluZGVudCkpKQogICAgIChzZXRxIHRyZWVzaXQtcmFu
Z2Utc2V0dGluZ3MKICAgICAgICAgICAoYXBwZW5kIHRyZWVzaXQtcmFuZ2Utc2V0dGluZ3MKICAg
ICAgICAgICAgICAgICAgIDs7IEZpbHRlciBvdXQgZnVuY3Rpb24gcXVlcmllcywgYmVjYXVzZSB0
aGV5IGFyZQpAQCAtMzAyLDUyICsxOTE0LDM5NyBAQCBtYXJrZG93bi10cy0tYWRkLWNvbmZpZy1m
b3ItbW9kZQogICAgICAgICAgICAgICAgICAgOzsgQ2FzZSBpbiBwb2ludDogYy10cy1tb2RlJ3Mg
cmFuZ2Ugc2V0dGluZy4KICAgICAgICAgICAgICAgICAgIChzZXEtZmlsdGVyIChsYW1iZGEgKHNl
dHRpbmcpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChub3QgKGZ1bmN0aW9ucCAo
Y2FyIHNldHRpbmcpKSkpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAocGxpc3QtZ2V0
IGNvbmZpZ3MgOnJhbmdlKSkpKQotICAgIChzZXRxLWxvY2FsIGluZGVudC1saW5lLWZ1bmN0aW9u
ICMndHJlZXNpdC1pbmRlbnQpCi0gICAgKHNldHEtbG9jYWwgaW5kZW50LXJlZ2lvbi1mdW5jdGlv
biAjJ3RyZWVzaXQtaW5kZW50LXJlZ2lvbikpKQotCi0oZGVmdW4gbWFya2Rvd24tdHMtLWNvbnZl
cnQtY29kZS1ibG9jay1sYW5ndWFnZSAobm9kZSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIChwbGlzdC1nZXQgY29uZmlndXJhdGlvbiA6cmFuZ2UpKSkpCisgIChzZXRxLWxvY2FsIGlu
ZGVudC1saW5lLWZ1bmN0aW9uICMndHJlZXNpdC1pbmRlbnQpCisgIChzZXRxLWxvY2FsIGluZGVu
dC1yZWdpb24tZnVuY3Rpb24gIyd0cmVlc2l0LWluZGVudC1yZWdpb24pKQorCisoZGVmdW4gbWFy
a2Rvd24tdHMtLWxhbmd1YWdlLWF0LW5vZGUgKG5vZGUpCisgICJSZXR1cm4gdGhlIGxhbmd1YWdl
IHN5bWJvbCBmb3IgY29kZV9mZW5jZV9jb250ZW50IE5PREUuIgorICAod2hlbi1sZXQqICgocGFy
ZW50ICh0cmVlc2l0LW5vZGUtcGFyZW50IG5vZGUpKQorICAgICAgICAgICAgICAobGFuZy1ub2Rl
ICh3aGVuIHBhcmVudAorICAgICAgICAgICAgICAgICAgICAgICAgICAgKHRyZWVzaXQtc2VhcmNo
LXN1YnRyZWUgcGFyZW50ICJcXGBsYW5ndWFnZVxcJyIpKSkpCisgICAgKGludGVybiAodHJlZXNp
dC1ub2RlLXRleHQgbGFuZy1ub2RlIHQpKSkpCisKKyhkZWZ1biBtYXJrZG93bi10cy0tZm9udGlm
eS1ub24tdHMtY29kZS1ibG9jayAobm9kZSBvdmVycmlkZSBzdGFydCBlbmQgJnJlc3QgXykKKyAg
IkZvbnRpZnkgY29kZV9mZW5jZV9jb250ZW50IE5PREUgdXNpbmcgYSBub24tdHJlZS1zaXR0ZXIg
bW9kZS4KK0FwcGx5IHRoZSBjb2RlLWJsb2NrIG1vZGUncyBjb252ZW50aW9uYWwgZm9udC1sb2Nr
IGluIGEgdGVtcG9yYXJ5CitidWZmZXIuICBPVkVSUklERSwgU1RBUlQsIGFuZCBFTkQgYXJlIHBh
c3NlZCB0aHJvdWdoIHRvCitgdHJlZXNpdC1mb250aWZ5LXdpdGgtb3ZlcnJpZGUnLgorCitOT0RF
IHNob3VsZCBhbHJlYWR5IGhhdmUgcGFzc2VkIHRocm91Z2gKK2BtYXJrZG93bi10cy0tY29kZS1i
bG9jay10cy1sYW5ndWFnZScgd2hpY2ggbWF5IGhhdmUgY2xhc3NpZmllZCB0aGlzCitub2RlIGFz
IGEgbm9uLXRzIG1vZGUuIgorICAod2hlbi1sZXQqICgobGFuZyAobWFya2Rvd24tdHMtLWxhbmd1
YWdlLWF0LW5vZGUgbm9kZSkpCisgICAgICAgICAgICAgIChtb2RlIChhbGlzdC1nZXQgbGFuZyBt
YXJrZG93bi10cy0tY29kZS1ibG9jay1ub24tdHMtbW9kZXMpKQorICAgICAgICAgICAgICAoYmxv
Y2stc3RhcnQgKHRyZWVzaXQtbm9kZS1zdGFydCBub2RlKSkKKyAgICAgICAgICAgICAgKGNvbnRl
bnQgKHRyZWVzaXQtbm9kZS10ZXh0IG5vZGUgdCkpKQorICAgICh3aGVuICg+IChsZW5ndGggY29u
dGVudCkgMCkKKyAgICAgIChsZXQgKChwcm9wcworICAgICAgICAgICAgICh3aXRoLXRlbXAtYnVm
ZmVyCisgICAgICAgICAgICAgICAoaW5zZXJ0IGNvbnRlbnQpCisgICAgICAgICAgICAgICAoZGVs
YXktbW9kZS1ob29rcyAoZnVuY2FsbCBtb2RlKSkKKyAgICAgICAgICAgICAgIChmb250LWxvY2st
ZW5zdXJlKQorICAgICAgICAgICAgICAgKGxldCAocmVzdWx0IChwb3MgKHBvaW50LW1pbikpKQor
ICAgICAgICAgICAgICAgICAod2hpbGUgKDwgcG9zIChwb2ludC1tYXgpKQorICAgICAgICAgICAg
ICAgICAgIChsZXQqICgobmV4dCAobmV4dC1zaW5nbGUtcHJvcGVydHktY2hhbmdlCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBwb3MgJ2ZhY2UgbmlsIChwb2ludC1tYXgpKSkKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgKGZhY2UgKGdldC10ZXh0LXByb3BlcnR5IHBvcyAnZmFj
ZSkpKQorICAgICAgICAgICAgICAgICAgICAgKHdoZW4gZmFjZQorICAgICAgICAgICAgICAgICAg
ICAgICAocHVzaCAobGlzdCAoMS0gcG9zKSAoMS0gbmV4dCkgZmFjZSkgcmVzdWx0KSkKKyAgICAg
ICAgICAgICAgICAgICAgIChzZXRxIHBvcyBuZXh0KSkpCisgICAgICAgICAgICAgICAgIChucmV2
ZXJzZSByZXN1bHQpKSkpKQorICAgICAgICAoZG9saXN0IChyYW5nZSBwcm9wcykKKyAgICAgICAg
ICAodHJlZXNpdC1mb250aWZ5LXdpdGgtb3ZlcnJpZGUKKyAgICAgICAgICAgKCsgYmxvY2stc3Rh
cnQgKG50aCAwIHJhbmdlKSkKKyAgICAgICAgICAgKCsgYmxvY2stc3RhcnQgKG50aCAxIHJhbmdl
KSkKKyAgICAgICAgICAgKG50aCAyIHJhbmdlKQorICAgICAgICAgICBvdmVycmlkZSBzdGFydCBl
bmQpKSkpKSkKKworKGRlZnVuIG1hcmtkb3duLXRzLS1jb2RlLWJsb2NrLWxhbmd1YWdlLW1vZGUg
KGxhbmcpCisgICJDb21wdXRlIGFuZCBjYWNoZSBhIG1vZGUgc3ltYm9sIGZyb20gTEFORywgYSBz
eW1ib2wuCitDb25zdWx0IHRoZSBgbWFya2Rvd24tdHMtY29kZS1ibG9jay1tYXAnIGNhY2hlLCBv
ciBwcm9iZSBtb2RlIG5hbWVzLgorUmV0dXJuIGEgdmFsaWQgbW9kZSBzeW1ib2wgb3IgbmlsLiIK
KyAgKGlmLWxldCogKChtYXBwZWQtbW9kZSAoYWxpc3QtZ2V0IGxhbmcgbWFya2Rvd24tdHMtY29k
ZS1ibG9jay1tb2RlcykpKQorICAgICAgbWFwcGVkLW1vZGUKKyAgICAobGV0ICgobGFuZy1zdHJp
bmcgKHN5bWJvbC1uYW1lIGxhbmcpKSkKKyAgICAgIChjYXRjaCA6bW9kZQorICAgICAgICAoZG9s
aXN0IChtb2RlCisgICAgICAgICAgICAgICAgIChsaXN0CisgICAgICAgICAgICAgICAgICA7OyBU
cnkgYSB0cmVlc2l0IG1vZGUgdXNpbmcgdGhlIHJhdyBzdHJpbmcuCisgICAgICAgICAgICAgICAg
ICAoY29uY2F0IGxhbmctc3RyaW5nICItdHMtbW9kZSIpCisgICAgICAgICAgICAgICAgICA7OyBU
cnkgYSBjb252ZW50aW9uYWwgbW9kZSB1c2luZyB0aGUgcmF3IHN0cmluZy4KKyAgICAgICAgICAg
ICAgICAgIChjb25jYXQgbGFuZy1zdHJpbmcgIi1tb2RlIikKKyAgICAgICAgICAgICAgICAgIDs7
IFRyeSBhIHRyZWVzaXQgbW9kZSB1c2luZyB0aGUgZG93bmNhc2VkIHN0cmluZy4KKyAgICAgICAg
ICAgICAgICAgIChjb25jYXQgKGRvd25jYXNlIGxhbmctc3RyaW5nKSAiLXRzLW1vZGUiKQorICAg
ICAgICAgICAgICAgICAgOzsgVHJ5IGEgY29udmVudGlvbmFsIG1vZGUgdXNpbmcgdGhlIGRvd25j
YXNlZCBzdHJpbmcuCisgICAgICAgICAgICAgICAgICAoY29uY2F0IChkb3duY2FzZSBsYW5nLXN0
cmluZykgIi1tb2RlIikpKQorICAgICAgICAgIChzZXRxIG1vZGUgKGludGVybiBtb2RlKSkKKyAg
ICAgICAgICAod2hlbiAoZmJvdW5kcCBtb2RlKQorICAgICAgICAgICAgKHB1c2ggKGNvbnMgbGFu
ZyBtb2RlKSBtYXJrZG93bi10cy1jb2RlLWJsb2NrLW1vZGVzKQorICAgICAgICAgICAgKHRocm93
IDptb2RlIG1vZGUpKSkpKSkpCisKKyhkZWZ1biBtYXJrZG93bi10cy0tY29kZS1ibG9jay10cy1s
YW5ndWFnZSAobm9kZSkKICAgIkNvbnZlcnQgTk9ERSB0byBhIGxhbmd1YWdlIGZvciB0aGUgY29k
ZSBibG9jay4iCi0gIChsZXQqICgobGFuZy1zdHJpbmcgKGFsaXN0LWdldCAodHJlZXNpdC1ub2Rl
LXRleHQgbm9kZSkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hcmtkb3duLXRz
LS1jb2RlLWJsb2NrLWxhbmd1YWdlLW1hcAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgKHRyZWVzaXQtbm9kZS10ZXh0IG5vZGUpIG5pbCAjJ2VxdWFsKSkKLSAgICAgICAgIChsYW5n
IChpZiAoc3ltYm9scCBsYW5nLXN0cmluZykKLSAgICAgICAgICAgICAgICAgICBsYW5nLXN0cmlu
ZwotICAgICAgICAgICAgICAgICAoaW50ZXJuIChkb3duY2FzZSBsYW5nLXN0cmluZykpKSkpCi0g
ICAgOzsgRklYTUU6IEtpbmQgb2YgYSBoYWNrIGhlcmU6IHdlIHVzZSB0aGlzIGZ1bmN0aW9uIGFz
IGEgaG9vayBmb3IKLSAgICA7OyBsb2FkaW5nIHVwIGNvbmZpZ3MgZm9yIHRoZSBsYW5ndWFnZSBm
b3IgdGhlIGNvZGUgYmxvY2sgb24tZGVtYW5kLgotICAgIChsZXQgKChtb2RlIChhbGlzdC1nZXQg
bGFuZyBtYXJrZG93bi10cy1jb2RlLWJsb2NrLXNvdXJjZS1tb2RlLW1hcCkpKQotICAgICAgOzsg
SWYgdGhlcmUncyBubyBzdXBwb3J0ZWQgbW9kZSBmb3IgdGhlIGxhbmd1YWdlLCByZXR1cm4gbmls
LAotICAgICAgOzsgd2hpY2ggbWFrZXMgRW1hY3Mgc2tpcCB0aGUgY29kZSBibG9jay4KLSAgICAg
IChpZiAobm90IChhbmQgbW9kZSAoZmJvdW5kcCBtb2RlKSkpCi0gICAgICAgICAgbmlsCi0gICAg
ICAgIDs7IElmIHRoZXJlJ3MgYSBtYWpvciBtb2RlIGZvciB0aGUgbGFuZ3VhZ2UsIHNldCB1cCB0
aGUgY29uZmlnCi0gICAgICAgIDs7IGFuZCByZXR1cm4gdGhlIGxhbmd1YWdlLgotICAgICAgICAo
d2hlbiAobm90IChtZW1xIGxhbmcgbWFya2Rvd24tdHMtLWNvbmZpZ3VyZWQtbGFuZ3VhZ2VzKSkK
LSAgICAgICAgICAobWFya2Rvd24tdHMtLWFkZC1jb25maWctZm9yLW1vZGUgbGFuZyBtb2RlKQot
ICAgICAgICAgIChwdXNoIGxhbmcgbWFya2Rvd24tdHMtLWNvbmZpZ3VyZWQtbGFuZ3VhZ2VzKSkK
LSAgICAgICAgbGFuZykpKSkKKyAgKGxldCogKChsYW5nIChpbnRlcm4gKHRyZWVzaXQtbm9kZS10
ZXh0IG5vZGUpKSkKKyAgICAgICAgIChtb2RlIChtYXJrZG93bi10cy0tY29kZS1ibG9jay1sYW5n
dWFnZS1tb2RlIGxhbmcpKQorICAgICAgICAgKHRzLWxhbmd1YWdlIChhbGlzdC1nZXQgbGFuZyBt
YXJrZG93bi10cy0tY29kZS1ibG9jay1sYW5ndWFnZXMpKQorICAgICAgICAgKG5vbi10cy1sYW5n
dWFnZSAoYWxpc3QtZ2V0IGxhbmcgbWFya2Rvd24tdHMtLWNvZGUtYmxvY2stbm9uLXRzLW1vZGVz
KSkpCisgICAgKGNvbmQKKyAgICAgKChmYm91bmRwIG1vZGUpCisgICAgICAoY29uZAorICAgICAg
IDs7IFJldHVybiBrbm93biB0cmVlc2l0IGxhbmd1YWdlLgorICAgICAgICh0cy1sYW5ndWFnZSB0
cy1sYW5ndWFnZSkKKyAgICAgICA7OyBSZXR1cm4gbmlsIGZvciBrbm93biBub24tdHJlZXNpdCBs
YW5ndWFnZSBmb3IgZm9udC1sb2NrLgorICAgICAgIChub24tdHMtbGFuZ3VhZ2UgbmlsKQorICAg
ICAgIDs7IE1hcmtkb3duIGl0c2VsZiBuZWVkcyB0d28gcGFyc2VycyAobWFya2Rvd24gKworICAg
ICAgIDs7IG1hcmtkb3duLWlubGluZSksIHNvIHRyZWVzaXQgZW1iZWRkaW5nICh3aGljaCBjcmVh
dGVzIG9ubHkKKyAgICAgICA7OyBvbmUpIGNhbm5vdCBmdWxseSBmb250aWZ5IGl0LiAgUm91dGUg
dGhyb3VnaCB0aGUgbm9uLXRzCisgICAgICAgOzsgcGF0aCBzbyB0aGUgdGVtcCBidWZmZXIgcnVu
cyB0aGUgZnVsbCBtb2RlIHdpdGggYm90aAorICAgICAgIDs7IHBhcnNlcnMuCisgICAgICAgKChl
cSBtb2RlICdtYXJrZG93bi10cy1tb2RlKQorICAgICAgICAodW5sZXNzIChhc3NxIGxhbmcgbWFy
a2Rvd24tdHMtLWNvZGUtYmxvY2stbm9uLXRzLW1vZGVzKQorICAgICAgICAgIChwdXNoIChjb25z
IGxhbmcgbW9kZSkgbWFya2Rvd24tdHMtLWNvZGUtYmxvY2stbm9uLXRzLW1vZGVzKSkKKyAgICAg
ICAgbmlsKQorICAgICAgICh0CisgICAgICAgIChsZXQqICgoY29uZmlndXJhdGlvbiAobWFya2Rv
d24tdHMtLWhhcnZlc3QtbW9kZS10cmVlc2l0LWNvbmZpZ3VyYXRpb24KKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBtb2RlKSkKKyAgICAgICAgICAgICAgICh0cy1sYW5ndWFnZSAocGxp
c3QtZ2V0IGNvbmZpZ3VyYXRpb24gOmxhbmd1YWdlKSkpCisgICAgICAgICAgKGNvbmQKKyAgICAg
ICAgICAgKChhbmQgdHMtbGFuZ3VhZ2UKKyAgICAgICAgICAgICAgICAgKHBsaXN0LWdldCBjb25m
aWd1cmF0aW9uIDpmb250LWxvY2spKQorICAgICAgICAgICAgKG1hcmtkb3duLXRzLS1jb25maWd1
cmUtY3VycmVudC1idWZmZXIgY29uZmlndXJhdGlvbikKKyAgICAgICAgICAgICh1bmxlc3MgKGFz
c3EgbGFuZyBtYXJrZG93bi10cy0tY29kZS1ibG9jay1sYW5ndWFnZXMpCisgICAgICAgICAgICAg
IChwdXNoIChjb25zIGxhbmcgdHMtbGFuZ3VhZ2UpIG1hcmtkb3duLXRzLS1jb2RlLWJsb2NrLWxh
bmd1YWdlcykpCisgICAgICAgICAgICB0cy1sYW5ndWFnZSkKKyAgICAgICAgICAgOzsgT3RoZXJ3
aXNlLCBjbGFzc2lmeSBtb2RlIGFzIG5vbi10cmVlLXNpdHRlci4KKyAgICAgICAgICAgKHQKKyAg
ICAgICAgICAgICh1bmxlc3MgKGFzc3EgbGFuZyBtYXJrZG93bi10cy0tY29kZS1ibG9jay1ub24t
dHMtbW9kZXMpCisgICAgICAgICAgICAgIChwdXNoIChjb25zIGxhbmcgbW9kZSkgbWFya2Rvd24t
dHMtLWNvZGUtYmxvY2stbm9uLXRzLW1vZGVzKSkKKyAgICAgICAgICAgIG5pbCkpKSkpKQorICAg
ICAodCBuaWwpKSkpCisKKzs7OyBDb2RlIGJsb2NrIG1pbm9yIG1vZGUgc3VwcG9ydCBhbmQgY29k
ZS1ibG9jayBjb250ZXh0IGNvbW1hbmRzOgorCisoZGVmdmFyIG1hcmtkb3duLXRzLWNvZGUtYmxv
Y2stY29tbWFuZHMgJyhpbmRlbnQtZm9yLXRhYi1jb21tYW5kCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBlbGVjdHJpYy1uZXdsaW5lLWFuZC1tYXliZS1pbmRlbnQK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ld2xpbmUKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbW1lbnQtZHdpbQorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29tbWVudC1saW5lCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb21tZW50LW9yLXVuY29tbWVudC1y
ZWdpb24KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hcmtkb3du
LXRzLS1jb2RlLWJsb2NrLWZpbGwtcGFyYWdyYXBoCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBwcm9nLWZpbGwtcmVpbmRlbnQtZGVmdW4pCisgICJDb21tYW5kcyB0
byBleGVjdXRlIGluIGEgY29kZS1ibG9jayBjb250ZXh0LgorU2VlIGBtYXJrZG93bi10cy0tcnVu
LWNvbW1hbmQtaW4tY29kZS1ibG9jaycuIikKKworKGRlZnZhciBtYXJrZG93bi10cy1jb2RlLWJs
b2NrLXRoaW5nLWNvbW1hbmRzICcoeHJlZi1maW5kLWRlZmluaXRpb25zKQorICAiQ29tbWFuZHMg
dGhhdCBuZWVkIGEgXCJ0aGluZ1wiIGF0IHBvaW50IGluIGEgY29kZS1ibG9jayBjb250ZXh0Lgor
U2VlIGBtYXJrZG93bi10cy0tcnVuLWNvbW1hbmQtaW4tY29kZS1ibG9jaycuIikKKworKGRlZnZh
ciBtYXJrZG93bi10cy1jb2RlLWJsb2NrLXJlZ2lvbi1jb21tYW5kcyAnKGNvbW1lbnQtb3ItdW5j
b21tZW50LXJlZ2lvbikKKyAgIkNvbW1hbmRzIHRoYXQgbmVlZCBhIHJlZ2lvbiBpbiBhIGNvZGUt
YmxvY2sgY29udGV4dC4KK1NlZSBgbWFya2Rvd24tdHMtLXJ1bi1jb21tYW5kLWluLWNvZGUtYmxv
Y2snLiIpCisKKyhkZWZ1biBtYXJrZG93bi10cy0tZW5hYmxlLWNvZGUtYmxvY2stbW9kZSAoKQor
ICAiRW5hYmxlIGBtYXJrZG93bi10cy1jb2RlLWJsb2NrLW1vZGUnIHdoZW4gaWYgYSBmZW5jZWQg
Y29kZSBibG9jay4iCisgIChtYXJrZG93bi10cy1jb2RlLWJsb2NrLW1vZGUgKGlmIChtYXJrZG93
bi10cy1jb2RlLWJsb2NrLWF0LXApIDEgLTEpKSkKKworOzsgTk9URTogRG8gbm90IGFkZCB0aGlz
IGNvbW1hbmQgdG8gYG1hcmtkb3duLXRzLWNvZGUtYmxvY2stY29tbWFuZHMnLgorKGRlZnVuIG1h
cmtkb3duLXRzLS1jb2RlLWJsb2NrLW5ld2xpbmUgKCZvcHRpb25hbCBhcmcgaW50ZXJhY3RpdmUp
CisgICAiSW5zZXJ0IGEgbmV3bGluZSwgYW5kIG1vdmUgdG8gbGVmdCBtYXJnaW4gb2YgdGhlIG5l
dyBsaW5lLgorV2l0aCBwcmVmaXggYXJndW1lbnQgQVJHLCBpbnNlcnQgdGhhdCBtYW55IG5ld2xp
bmVzLgorCitJZiBgZWxlY3RyaWMtaW5kZW50LW1vZGUnIGlzIGVuYWJsZWQsIHRoaXMgaW5kZW50
cyB0aGUgZmluYWwgbmV3IGxpbmUKK3RoYXQgaXQgYWRkcywgYW5kIHJlaW5kZW50cyB0aGUgcHJl
Y2VkaW5nIGxpbmUuICBUbyBqdXN0IGluc2VydAorYSBuZXdsaW5lLCB1c2UgXFxbZWxlY3RyaWMt
aW5kZW50LWp1c3QtbmV3bGluZV0uCisKK0lmIGBhdXRvLWZpbGwtbW9kZScgaXMgZW5hYmxlZCwg
dGhpcyBtYXkgY2F1c2UgYXV0b21hdGljIGxpbmUKK2JyZWFraW5nIG9mIHRoZSBwcmVjZWRpbmcg
bGluZS4gIEEgbm9uLW5pbCBBUkcgaW5oaWJpdHMgdGhpcy4KKworSWYgdmFyaWFibGUgYHVzZS1o
YXJkLW5ld2xpbmVzJyBpcyBlbmFibGVkLCB0aGUgbmV3bGluZSBpcyBtYXJrZWQgd2l0aAordGhl
IHRleHQtcHJvcGVydHkgYGhhcmQnLgorCitBIG5vbi1uaWwgSU5URVJBQ1RJVkUgYXJndW1lbnQg
bWVhbnMgdG8gcnVuIHRoZSBgcG9zdC1zZWxmLWluc2VydC1ob29rJy4iCisgICAoaW50ZXJhY3Rp
dmUgIipQXG5wIikKKyAgIChpZi1sZXQqICgoYmxvY2stbW9kZSAobWFya2Rvd24tdHMtY29kZS1i
bG9jay1tb2RlLWF0KSkKKyAgICAgICAgICAgICAoKGZib3VuZHAgYmxvY2stbW9kZSkpKQorICAg
ICAgIChtYXJrZG93bi10cy0tcnVuLWNvbW1hbmQtaW4tY29kZS1ibG9jayBibG9jay1tb2RlCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMnbmV3bGluZQor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmcKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50ZXJhY3RpdmUpKSkK
KworKGRlZnVuIG1hcmtkb3duLXRzLS1jb2RlLWJsb2NrLWZpbGwtcGFyYWdyYXBoICgmb3B0aW9u
YWwganVzdGlmeSkKKyAgIlJlZmlsbCBvciByZWluZGVudCB0aGUgbWFya2Rvd24gY29udGVudCB0
aGF0IGNvbnRhaW5zIHBvaW50LgorSWYgdGhlIHBvaW50IGlzIGluIGEgc3RyaW5nIG9yIGEgY29t
bWVudCwgZmlsbCB0aGUgcGFyYWdyYXBoIHRoYXQKK2NvbnRhaW5zIHBvaW50IG9yIGZvbGxvd3Mg
cG9pbnQuCisKK090aGVyd2lzZSwgcmVpbmRlbnQgdGhlIGZ1bmN0aW9uIGRlZmluaXRpb24gdGhh
dCBjb250YWlucyBwb2ludCBvcgorZm9sbG93cyBwb2ludC4KKworSWYgSlVTVElGWSBpcyBub24t
bmlsIChpbnRlcmFjdGl2ZWx5LCB3aXRoIHByZWZpeCBhcmd1bWVudCksIGp1c3RpZnkgYXMKK3dl
bGwuIgorICAoaW50ZXJhY3RpdmUgIlAiKQorICAoY29uZCAoKGRlcml2ZWQtbW9kZS1wICdwcm9n
LW1vZGUpCisgICAgICAgICAoY2FsbC1pbnRlcmFjdGl2ZWx5ICMncHJvZy1maWxsLXJlaW5kZW50
LWRlZnVuIGp1c3RpZnkpKQorICAgICAgICAodAorICAgICAgICAgKGNhbGwtaW50ZXJhY3RpdmVs
eSAjJ2ZpbGwtcGFyYWdyYXBoIGp1c3RpZnkpKSkpCisKKzs7IE5PVEU6IERvIG5vdCBhZGQgdGhp
cyBjb21tYW5kIHRvIGBtYXJrZG93bi10cy1jb2RlLWJsb2NrLWNvbW1hbmRzJy4KKyhkZWZ1biBt
YXJrZG93bi10cy0tY29kZS1ibG9jay14cmVmLWZpbmQtZGVmaW5pdGlvbnMgKCZyZXN0IGFyZ3Mp
CisgICJIZWxwZXIgY29tbWFuZCBmb3IgYHhyZWYtZmluZC1kZWZpbml0aW9ucycgaW4gYSBjb2Rl
LWJsb2NrIGNvbnRleHQuCitGaW5kIHRoaW5nIGF0IHBvaW50LgorQWRqdXN0IHRoZSByZWZlcmVu
Y2VzIG9uIHRoZSB4cmVmIHN0YWNrIHRvIHRoZSBiYXNlIGJ1ZmZlci4KK1Bhc3MgdGhyb3VnaCBB
UkdTIGlmIG5vdCBpbiBhIGNvZGUgYmxvY2sgd2l0aCBhbiBhdmFpbGFibGUgbW9kZS4iCisgIChp
bnRlcmFjdGl2ZSkKKyAgKGlmLWxldCogKChibG9jay1tb2RlIChtYXJrZG93bi10cy1jb2RlLWJs
b2NrLW1vZGUtYXQpKQorICAgICAgICAgICAgKChmYm91bmRwIGJsb2NrLW1vZGUpKSkKKyAgICAg
IChjb25kaXRpb24tY2FzZSBlcnIKKyAgICAgICAgICAodW53aW5kLXByb3RlY3QKKyAgICAgICAg
ICAgICAgKHByb2duCisgICAgICAgICAgICAgICAgOzsgUmVjb3JkIGEgcGxhY2Vob2xkZXIgeHJl
ZiBtYXJrZXIgaW4gdGhlIGJhc2UgYnVmZmVyLiAgVGhpcworICAgICAgICAgICAgICAgIDs7IHdp
bGwgYmUgcmV0YWluZWQgaWYgdGhlIGNvbW1hbmQgc3VjY2VlZHMgdG8gcHVzaCBhIG1hcmtlciBp
bgorICAgICAgICAgICAgICAgIDs7IHRoZSBpbmRpcmVjdCBidWZmZXIgd2hpY2ggd2Ugd2lsbCBw
b3AuCisgICAgICAgICAgICAgICAgKHhyZWYtcHVzaC1tYXJrZXItc3RhY2spCisgICAgICAgICAg
ICAgICAgOzsgYHhyZWYtZmluZC1kZWZpbml0aW9ucycgaXMgYSB0aGluZyBjb21tYW5kIGluCisg
ICAgICAgICAgICAgICAgOzsgYG1hcmtkb3duLXRzLWNvZGUtYmxvY2stdGhpbmctY29tbWFuZHMn
LgorICAgICAgICAgICAgICAgIChtYXJrZG93bi10cy0tcnVuLWNvbW1hbmQtaW4tY29kZS1ibG9j
ayBibG9jay1tb2RlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICMneHJlZi1maW5kLWRlZmluaXRpb25zCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyZ3MpKQorICAgICAgICAgICAg
OzsgUG9wIHRoZSB0b3AgeHJlZiBtYXJrZXIuICBJZiB0aGUgY29tbWFuZCBzdWNjZWVkZWQsIHRo
ZQorICAgICAgICAgICAgOzsgdG9wIG1hcmtlciB3aWxsIGJlIHRoZSBpbmRpcmVjdCBidWZmZXIg
bWFya2VyLiAgSWYgaXQKKyAgICAgICAgICAgIDs7IGZhaWxlZCwgd2UnbGwgcG9wIHRoZSBwbGFj
ZWhvbGRlciB3aGljaCBpcyBub3cgb2Ygbm8KKyAgICAgICAgICAgIDs7IHZhbHVlPAorICAgICAg
ICAgICAgOzsgVE9ETzogUHJvcG9zZSBhbiBgeHJlZicgcG9wIGZ1bmN0aW9uIHRoYXQgZG9lc24n
dCAiZ28KKyAgICAgICAgICAgIDs7IGJhY2siLgorICAgICAgICAgICAgKGxldCAoKGhpc3Rvcnkg
KHhyZWYtLWdldC1oaXN0b3J5KSkpCisgICAgICAgICAgICAgICh1bmxlc3MgKG51bGwgKGNhciBo
aXN0b3J5KSkKKyAgICAgICAgICAgICAgICAocG9wIChjYXIgaGlzdG9yeSkpKSkpCisgICAgICAg
IChlcnJvcgorICAgICAgICAgOzsgUHJvcGFnYXRlIHRoZSBzaWduYWwuCisgICAgICAgICAoc2ln
bmFsIChjYXIgZXJyKSAoY2RyIGVycikpKSkKKyAgICA7OyBOb3QgaW4gYSBjb2RlIGJsb2NrIGNv
bnRleHQuICBUaGlzIHNob3VsZCByZWFsbHkgbmV2ZXIgaGFwcGVuLgorICAgIChmdW5jYWxsLWlu
dGVyYWN0aXZlbHkgIyd4cmVmLWZpbmQtZGVmaW5pdGlvbnMgYXJncykpKQorCisoZGVmdW4gbWFy
a2Rvd24tdHMtLW1heWJlLXJ1bi1jb21tYW5kLWluLWNvZGUtYmxvY2sgKCkKKyAgIkhlbHBlciBm
dW5jdGlvbiB0byB3cmFwIGEgY29tbWFuZCBmb3IgYSBjb2RlLWJsb2NrIGNvbnRleHQuCitJZiBg
dGhpcy1jb21tYW5kJyBpcyBhIG1lbWJlciBvZiBgbWFya2Rvd24tdHMtY29kZS1ibG9jay1jb21t
YW5kcycgYW5kCitwb2ludCBpcyB3aXRoaW4gYSBjb2RlIGJsb2NrIHdpdGggYW4gYXZhaWxhYmxl
IG1vZGUsIGl0IHdpbGwgcnVuIGluIHRoYXQKK2NvZGUgYmxvY2sncyBtb2RlIGluIGEgYnVmZmVy
IG5hcnJvd2VkIHRvIGl0cyBjb250ZW50LiAgT3RoZXJ3aXNlLCB0aGUKK2NvbW1hbmQgd2lsbCBy
dW4gaW4gdGhlIGNvbnRleHQgb2YgdGhlIGBtYXJrZG93bi10cy1tb2RlJyBidWZmZXIuIgorICAo
d2hlbiAobWVtcSB0aGlzLWNvbW1hbmQgbWFya2Rvd24tdHMtY29kZS1ibG9jay1jb21tYW5kcykK
KyAgICAod2hlbi1sZXQqICgoY29tbWFuZCB0aGlzLWNvbW1hbmQpCisgICAgICAgICAgICAgICAg
KGJsb2NrLW1vZGUgKG1hcmtkb3duLXRzLWNvZGUtYmxvY2stbW9kZS1hdCkpCisgICAgICAgICAg
ICAgICAgKChmYm91bmRwIGJsb2NrLW1vZGUpKSkKKyAgICAgIChzZXRxIHRoaXMtY29tbWFuZCAo
bGFtYmRhICgmcmVzdCBhcmdzKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVyYWN0
aXZlKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgKGFwcGx5ICMnbWFya2Rvd24tdHMtLXJ1
bi1jb21tYW5kLWluLWNvZGUtYmxvY2sKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBibG9jay1tb2RlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29tbWFuZAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyZ3MpKSkpKSkKKworKGRlZnVuIG1h
cmtkb3duLXRzLS1ydW4tY29tbWFuZC1pbi1jb2RlLWJsb2NrIChibG9jay1tb2RlIGNvbW1hbmQg
JnJlc3QgYXJncykKKyAgIlJ1biBDT01NQU5EIGluIEJMT0NLLU1PREUuCitBUkdTIGFyZSBjYXB0
dXJlZCBieSBgbWFya2Rvd24tdHMtLW1heWJlLXJ1bi1jb21tYW5kLWluLWNvZGUtYmxvY2snLiIK
KyAgKHdoZW4tbGV0KiAoKGJlZyAoZ2V0LWNoYXItcHJvcGVydHkgKHBvaW50KSAnbWFya2Rvd24t
dHMtY29kZS1iZWctbWFya2VyKSkKKyAgICAgICAgICAgICAgKGVuZCAoZ2V0LWNoYXItcHJvcGVy
dHkgKHBvaW50KSAnbWFya2Rvd24tdHMtY29kZS1lbmQtbWFya2VyKSkpCisgICAgKGxldCAoKHJl
Z2lvbi1iZWcgKHVzZS1yZWdpb24tYmVnaW5uaW5nKSkKKyAgICAgICAgICAocmVnaW9uLWVuZCAo
dXNlLXJlZ2lvbi1lbmQpKSkKKyAgICAgIDs7IFVzZSBhIG5vbi1jbG9uZWQgaW5kaXJlY3QgYnVm
ZmVyIHRvIGF2b2lkIGNoYW5naW5nIG1ham9yIG1vZGUKKyAgICAgIDs7IGluIHRoZSBwYXJlbnQg
YnVmZmVyICh3aGljaCB3b3VsZCB0cmFzaCBsb2NhbCB2YXJpYWJsZXMpLiAgVGhpcworICAgICAg
OzsgYWxzbyBlbnN1cmVzIHRyZWVzaXQgc2V0dXAgaXMgbm90IGNvcGllZCBvdmVyIG9yIGl0IGdl
dHMKKyAgICAgIDs7IGNvbmZ1c2VkLgorICAgICAgKGxldCAoKGluZGlyZWN0LWJ1ZmZlciAobWFr
ZS1pbmRpcmVjdC1idWZmZXIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjdXJyZW50
LWJ1ZmZlcikKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChnZW5lcmF0ZS1uZXctYnVm
ZmVyLW5hbWUgKGJ1ZmZlci1uYW1lKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5p
bCAnaW5oaWJpdC1idWZmZXItaG9va3MpKQorICAgICAgICAgICAgKGluZGlyZWN0LWRlYWN0aXZh
dGUtbWFyaykKKyAgICAgICAgICAgIChwb2ludC1kZWx0YSAwKSkKKyAgICAgICAgKHVud2luZC1w
cm90ZWN0CisgICAgICAgICAgICAod2l0aC1jdXJyZW50LWJ1ZmZlciBpbmRpcmVjdC1idWZmZXIK
KyAgICAgICAgICAgICAgOzsgQ29weSB0aGUgYmFzZSBidWZmZXIncyByZWdpb24sIGlmIHRoZXJl
IGlzIG9uZS4KKyAgICAgICAgICAgICAgKHdoZW4gKGFuZCByZWdpb24tYmVnIHJlZ2lvbi1lbmQp
CisgICAgICAgICAgICAgICAgKHNldC1tYXJrIChpZiAoPCAocG9pbnQpIHJlZ2lvbi1lbmQpCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWdpb24tZW5kCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgcmVnaW9uLWJlZykpCisgICAgICAgICAgICAgICAgKGFjdGl2YXRlLW1hcmsp
KQorICAgICAgICAgICAgICAoZGVsYXktbW9kZS1ob29rcworICAgICAgICAgICAgICAgIChmdW5j
YWxsIGJsb2NrLW1vZGUpCisgICAgICAgICAgICAgICAgKHJlYWQtb25seS1tb2RlIC0xKQorICAg
ICAgICAgICAgICAgIChuYXJyb3ctdG8tcmVnaW9uIGJlZyBlbmQpCisgICAgICAgICAgICAgICAg
KGxldCAoKHBvaW50IChwb2ludCkpCisgICAgICAgICAgICAgICAgICAgICAgKHBvaW50LW1hcmtl
ciAocG9pbnQtbWFya2VyKSkpCisgICAgICAgICAgICAgICAgICAgIChjb25kCisgICAgICAgICAg
ICAgICAgICAgICAoKG1lbXEgY29tbWFuZCBtYXJrZG93bi10cy1jb2RlLWJsb2NrLXRoaW5nLWNv
bW1hbmRzKQorICAgICAgICAgICAgICAgICAgICAgICh3aGVuLWxldCogKCh0aGluZyAodGhpbmct
YXQtcG9pbnQgJ3N5bWJvbCkpKQorICAgICAgICAgICAgICAgICAgICAgICAgKGZ1bmNhbGwtaW50
ZXJhY3RpdmVseSBjb21tYW5kIHRoaW5nKSkpCisgICAgICAgICAgICAgICAgICAgICAoKG1lbXEg
Y29tbWFuZCBtYXJrZG93bi10cy1jb2RlLWJsb2NrLXJlZ2lvbi1jb21tYW5kcykKKyAgICAgICAg
ICAgICAgICAgICAgICAod2hlbiAoYW5kIHJlZ2lvbi1iZWcgcmVnaW9uLWVuZCkKKyAgICAgICAg
ICAgICAgICAgICAgICAgIChhcHBseSAjJ2Z1bmNhbGwtaW50ZXJhY3RpdmVseSBjb21tYW5kCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVnaW9uLWJlZyByZWdpb24tZW5kIGFyZ3Mp
KSkKKyAgICAgICAgICAgICAgICAgICAgICgoemVyb3AgKGNkciAoZnVuYy1hcml0eSBjb21tYW5k
KSkpCisgICAgICAgICAgICAgICAgICAgICAgKGZ1bmNhbGwtaW50ZXJhY3RpdmVseSBjb21tYW5k
KSkKKyAgICAgICAgICAgICAgICAgICAgICh0CisgICAgICAgICAgICAgICAgICAgICAgKGNhbGwt
aW50ZXJhY3RpdmVseSBjb21tYW5kKSkpCisgICAgICAgICAgICAgICAgICAgIChzZXRxIGluZGly
ZWN0LWRlYWN0aXZhdGUtbWFyayBkZWFjdGl2YXRlLW1hcmspCisgICAgICAgICAgICAgICAgICAg
IDs7IFRoZSBoZXVyaXN0aWMgb2Ygd2hlbiB0byBtb3ZlIHBvaW50LgorICAgICAgICAgICAgICAg
ICAgICA7OyBkZWFjdGl2YXRlLW1hcmsgcChkKT1wbShkKSBkZWx0YQorICAgICAgICAgICAgICAg
ICAgICA7OyBuaWwgICAgICAgICAgICAgbm8gICAgICAgICAwICAgOyBjbGFzcyBBCisgICAgICAg
ICAgICAgICAgICAgIDs7IG5pbCAgICAgICAgICAgICB5ZXMgICAgICAgIHllcyA7IGNsYXNzIEIK
KyAgICAgICAgICAgICAgICAgICAgOzsgdCAgICAgICAgICAgICAgIG5vICAgICAgICAgMCAgIDsg
Y2xhc3MgQworICAgICAgICAgICAgICAgICAgICA7OyB0ICAgICAgICAgICAgICAgeWVzICAgICAg
ICB5ZXMgOyBjbGFzcyBECisgICAgICAgICAgICAgICAgICAgIDs7IEE6IG5pbAorICAgICAgICAg
ICAgICAgICAgICA7OyBCOiBpbmRlbnQtZm9yLXRhYi1jb21tYW5kCisgICAgICAgICAgICAgICAg
ICAgIDs7IEM6IGNvbW1lbnQtb3ItdW5jb21tZW50LXJlZ2lvbgorICAgICAgICAgICAgICAgICAg
ICA7OyBEOiBjb21tZW50LWR3aW0gbmV3bGluZSBlbGVjdHJpYy1uZXdsaW5lLWFuZC1tYXliZS1p
bmRlbnQKKyAgICAgICAgICAgICAgICAgICAgOzsgICAgbWFya2Rvd24tdHMtLWNvZGUtYmxvY2st
ZmlsbC1wYXJhZ3JhcGgKKyAgICAgICAgICAgICAgICAgIChzZXRxIHBvaW50LWRlbHRhICgtIChw
b2ludCkgcG9pbnQpKQorICAgICAgICAgICAgICAgICAgKHdoZW4gKG5vdCAoZXEgcG9pbnQtZGVs
dGEgKC0gKHBvaW50LW1hcmtlcikgcG9pbnQtbWFya2VyKSkpCisgICAgICAgICAgICAgICAgICAg
IChzZXRxIHBvaW50LWRlbHRhIDApKSkpKQorICAgICAgICAgIChraWxsLWJ1ZmZlciBpbmRpcmVj
dC1idWZmZXIpCisgICAgICAgICAgOzsgUHJvcGFnYXRlIG1hcmsgZGVhY3RpdmF0aW9uIHRvIHRo
ZSBiYXNlIGJ1ZmZlci4KKyAgICAgICAgICAoc2V0cSBkZWFjdGl2YXRlLW1hcmsgaW5kaXJlY3Qt
ZGVhY3RpdmF0ZS1tYXJrKQorICAgICAgICAgIDs7IE1vdmUgYmFzZSBidWZmZXIgcG9pbnQgaWYg
aXQgbW92ZWQgaW4gdGhlIGluZGlyZWN0IGJ1ZmZlci4KKyAgICAgICAgICAoZ290by1jaGFyICgr
IChwb2ludCkgcG9pbnQtZGVsdGEpKQorICAgICAgICAgIDs7IFJlY29yZCB0aGUgb3JpZ2luYWwg
Y29tbWFuZC4KKyAgICAgICAgICAoc2V0cSB0aGlzLWNvbW1hbmQgY29tbWFuZCkKKyAgICAgICAg
ICA7OyBNYWtlIHN1cmUgdGhlIG9yaWdpbmF0aW5nIHJlZ2lvbiBpcyByZWZvbnRpZmllZC4KKyAg
ICAgICAgICAoZm9udC1sb2NrLWZsdXNoIGJlZyBlbmQpKSkpKSkKKworKGRlZnVuIG1hcmtkb3du
LXRzLS1maW5kLWNvZGUtYmxvY2stZGVsaW1pdGVyIChwb3MgJm9wdGlvbmFsIGJhY2t3YXJkKQor
ICAiUmV0dXJuIHRoZSBuZXh0IG9yIHByZXZpb3VzIGZlbmNlZF9jb2RlX2Jsb2NrX2RlbGltaXRl
ciBub2RlLCBvciBuaWwuCitTZWFyY2ggc3RhcnRpbmcgYXQgUE9TLgorU2VhcmNoIGJhY2t3YXJk
IGlmIEJBQ0tXQVJEIGlzIG5vbi1uaWwuIgorICAodHJlZXNpdC1zZWFyY2gtZm9yd2FyZCAodHJl
ZXNpdC1ub2RlLWF0IHBvcyAnbWFya2Rvd24pCisgICAgICAgICAgICAgICAgICAgICAgICAgIChs
YW1iZGEgKG5vZGUpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHN0cmluZz0gKHRyZWVz
aXQtbm9kZS10eXBlIG5vZGUpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ImZlbmNlZF9jb2RlX2Jsb2NrX2RlbGltaXRlciIpKQorICAgICAgICAgICAgICAgICAgICAgICAg
ICBiYWNrd2FyZCkpCisKKyhkZWZ1biBtYXJrZG93bi10cy0tZmluZC1uZXh0LWNvZGUtYmxvY2st
ZGVsaW1pdGVyICgmb3B0aW9uYWwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBwb3MgYmFja3dhcmQgcmVtYWluKQorICAiUmV0dXJuIHRoZSBuZXh0
IG9yIHByZXZpb3VzIGZlbmNlZF9jb2RlX2Jsb2NrX2RlbGltaXRlciBub2RlLCBvciBuaWwuCitT
ZWFyY2ggc3RhcnRpbmcgYXQgUE9TIG9yIGBwb2ludCcsIGlmIFBPUyBpcyBuaWwuCitTZWFyY2gg
YmFja3dhcmQgaWYgQkFDS1dBUkQgaXMgbm9uLW5pbC4KK0lmIFJFTUFJTiBpcyBub24tbmlsLCBt
b3ZlIHRvIHRoZSB0b3Agb3IgYm90dG9tIG9mIHRoZSBjdXJyZW50IGNvZGUKK2Jsb2NrLCBpZiBp
biBvbmUuIgorICAoc2V0cSBwb3MgKG9yIHBvcyAocG9pbnQpKSkKKyAgKGFuZC1sZXQqICgobm9k
ZSAobWFya2Rvd24tdHMtLWZpbmQtY29kZS1ibG9jay1kZWxpbWl0ZXIgcG9zIGJhY2t3YXJkKSkp
CisgICAgKGxldCAoKGluLWJsb2NrIChtYXJrZG93bi10cy1jb2RlLWJsb2NrLWF0LXAgcG9zKSkp
CisgICAgICAoY29uZAorICAgICAgICgoYW5kIHJlbWFpbiBpbi1ibG9jaykKKyAgICAgICAgbm9k
ZSkKKyAgICAgICAocmVtYWluCisgICAgICAgIG5pbCkKKyAgICAgICAodAorICAgICAgICAod2hp
bGUgKGFuZCBub2RlCisgICAgICAgICAgICAgICAgICAgIDs7IElmIGJhY2t3YXJkLCBza2lwIHRo
ZSBjdXJyZW50IGJsb2NrJ3MKKyAgICAgICAgICAgICAgICAgICAgOzsgc3RhcnRpbmcgZGVsaW1p
dGVyLgorICAgICAgICAgICAgICAgICAgICAob3IgKGFuZCBiYWNrd2FyZCBpbi1ibG9jayAodHJl
ZXNpdC1ub2RlLW5leHQtc2libGluZyBub2RlKSkKKyAgICAgICAgICAgICAgICAgICAgICAgIChu
b3QgKHRyZWVzaXQtbm9kZS1uZXh0LXNpYmxpbmcgbm9kZSkpKSkKKyAgICAgICAgICAoc2V0cSBp
bi1ibG9jayAobWFya2Rvd24tdHMtY29kZS1ibG9jay1hdC1wIHBvcykpCisgICAgICAgICAgKHNl
dHEgcG9zIChpZiBiYWNrd2FyZAorICAgICAgICAgICAgICAgICAgICAgICAgKHRyZWVzaXQtbm9k
ZS1zdGFydCBub2RlKQorICAgICAgICAgICAgICAgICAgICAgICh0cmVlc2l0LW5vZGUtZW5kIG5v
ZGUpKSkKKyAgICAgICAgICAoc2V0cSBub2RlIChtYXJrZG93bi10cy0tZmluZC1jb2RlLWJsb2Nr
LWRlbGltaXRlciBwb3MgYmFja3dhcmQpKSkKKyAgICAgICAgbm9kZSkpKSkpCisKKyhkZWZ1biBt
YXJrZG93bi10cy1tb3ZlLXRvLW5leHQtY29kZS1ibG9jayAoYXJnKQorICAiTW92ZSBwb2ludCB0
byB0aGUgc3RhcnQgb2YgdGhlIG5leHQgY29kZSBibG9jay4KK1dpdGggdGhlIHByZWZpeCBhcmd1
bWVudCBBUkcsIHJlbWFpbiB3aXRoaW4gdGhlIGN1cnJlbnQgY29kZSBibG9jay4iCisgIChpbnRl
cmFjdGl2ZSAiUCIpCisgICh3aGVuLWxldCogKChub2RlCisgICAgICAgICAgICAgICAobWFya2Rv
d24tdHMtLWZpbmQtbmV4dC1jb2RlLWJsb2NrLWRlbGltaXRlciBuaWwgbmlsIGFyZykpKQorICAg
IChnb3RvLWNoYXIgKHRyZWVzaXQtbm9kZS1zdGFydCBub2RlKSkpKQorCisoZGVmdW4gbWFya2Rv
d24tdHMtbW92ZS10by1wcmV2aW91cy1jb2RlLWJsb2NrIChhcmcpCisgICJNb3ZlIHBvaW50IHRv
IHRoZSBzdGFydCBvZiB0aGUgcHJldmlvdXMgY29kZSBibG9jay4KK1dpdGggdGhlIHByZWZpeCBh
cmd1bWVudCBBUkcsIHJlbWFpbiB3aXRoaW4gdGhlIGN1cnJlbnQgY29kZSBibG9jay4iCisgIChp
bnRlcmFjdGl2ZSAiUCIpCisgICh3aGVuLWxldCogKChub2RlCisgICAgICAgICAgICAgICAobWFy
a2Rvd24tdHMtLWZpbmQtbmV4dC1jb2RlLWJsb2NrLWRlbGltaXRlciBuaWwgJ2JhY2t3YXJkIGFy
ZykpKQorICAgIChnb3RvLWNoYXIgKHRyZWVzaXQtbm9kZS1zdGFydCBub2RlKSkpKQorCis7Ozsg
SGVscGVyczoKKworKGRlZnVuIG1hcmtkb3duLXRzLS1vdXRsaW5lLWludmlzaWJsZS1wIChwb3Mp
CisgICJSZXR1cm4gbm9uLW5pbCBpZiBQT1MgaXMgaW5zaWRlIGFuIG91dGxpbmUtZm9sZGVkIHJl
Z2lvbi4iCisgIChjbC1zb21lIChsYW1iZGEgKG92KSAoZXEgKG92ZXJsYXktZ2V0IG92ICdpbnZp
c2libGUpICdvdXRsaW5lKSkKKyAgICAgICAgICAgKG92ZXJsYXlzLWF0IHBvcykpKQogCiAoZGVm
dW4gbWFya2Rvd24tdHMtLXJhbmdlLXNldHRpbmdzICgpCiAgICJSZXR1cm4gcmFuZ2Ugc2V0dGlu
Z3MgZm9yIGBtYXJrZG93bi10cy1tb2RlJy4iCiAgICh0cmVlc2l0LXJhbmdlLXJ1bGVzCiAgICA6
ZW1iZWQgJ21hcmtkb3duLWlubGluZQogICAgOmhvc3QgJ21hcmtkb3duCi0gICA6cmFuZ2UtZm4g
Iyd0cmVlc2l0LXJhbmdlLWZuLWV4Y2x1ZGUtY2hpbGRyZW4KICAgICcoKGlubGluZSkgQG1hcmtk
b3duLWlubGluZSkKIAotICAgOmVtYmVkICMnbWFya2Rvd24tdHMtLWNvbnZlcnQtY29kZS1ibG9j
ay1sYW5ndWFnZQorICAgOmVtYmVkICMnbWFya2Rvd24tdHMtLWNvZGUtYmxvY2stdHMtbGFuZ3Vh
Z2UKICAgIDpob3N0ICdtYXJrZG93bgogICAgOmxvY2FsIHQKICAgICcoKGZlbmNlZF9jb2RlX2Js
b2NrIChpbmZvX3N0cmluZyAobGFuZ3VhZ2UpIEBsYW5ndWFnZSkKICAgICAgICAgICAgICAgICAg
ICAgICAgIChjb2RlX2ZlbmNlX2NvbnRlbnQpIEBjb250ZW50KSkpKQogCisoZGVmdW4gbWFya2Rv
d24tdHMtLXJlbW92ZS1pbWFnZS1vdmVybGF5cyAoKQorICAiUmVtb3ZlIGFsbCBpbmxpbmUgaW1h
Z2Ugb3ZlcmxheXMgZnJvbSB0aGUgY3VycmVudCBidWZmZXIuIgorICAoZG9saXN0IChvdiAob3Zl
cmxheXMtaW4gKHBvaW50LW1pbikgKHBvaW50LW1heCkpKQorICAgICh3aGVuIChvdmVybGF5LWdl
dCBvdiAnbWFya2Rvd24tdHMtaW1hZ2UpCisgICAgICAoZGVsZXRlLW92ZXJsYXkgb3YpKSkpCisK
KyhkZWZ1biBtYXJrZG93bi10cy0tb3V0bGluZS12aWV3LWNoYW5nZSAoKQorICAiVXBkYXRlIGlt
YWdlIG92ZXJsYXlzIGFmdGVyIG91dGxpbmUgZm9sZC91bmZvbGQuCitSZW1vdmVzIGltYWdlIG92
ZXJsYXlzIGluIGZvbGRlZCByZWdpb25zIGFuZCB0cmlnZ2VycworcmVmb250aWZpY2F0aW9uIHNv
IHRoYXQgaW1hZ2VzIGluIHVuZm9sZGVkIHJlZ2lvbnMgYXJlIHJlY3JlYXRlZC4iCisgICh3aGVu
IG1hcmtkb3duLXRzLWlubGluZS1pbWFnZXMKKyAgICAobWFya2Rvd24tdHMtLXJlbW92ZS1pbWFn
ZS1vdmVybGF5cykKKyAgICAoZm9udC1sb2NrLWZsdXNoKSkpCisKIChkZWZ1biBtYXJrZG93bi10
cy0tc2V0LWhpZGUtbWFya3VwICh2YWx1ZSkKICAgIlNldCBoaWRpbmcgb2YgTWFya2Rvd24gbWFy
a3VwIGRlbGltaXRlcnMgaW4gdGhlIGN1cnJlbnQgYnVmZmVyLgogVkFMVUUgbm9uLW5pbCBoaWRl
cyBtYXJrdXAsIG5pbCBzaG93cyBpdC4iCiAgIChpZiB2YWx1ZQogICAgICAgKGFkZC10by1pbnZp
c2liaWxpdHktc3BlYyAnbWFya2Rvd24tdHMtLW1hcmt1cCkKICAgICAocmVtb3ZlLWZyb20taW52
aXNpYmlsaXR5LXNwZWMgJ21hcmtkb3duLXRzLS1tYXJrdXApKQorICAod2hlbiBtYXJrZG93bi10
cy1pbmxpbmUtaW1hZ2VzCisgICAgKG1hcmtkb3duLXRzLS1yZW1vdmUtaW1hZ2Utb3ZlcmxheXMp
KQogICAoZm9udC1sb2NrLWZsdXNoKSkKIAogKGRlZnVuIG1hcmtkb3duLXRzLXRvZ2dsZS1oaWRl
LW1hcmt1cCAoKQpAQCAtMzU2LDE1ICsyMzEzLDIzMCBAQCBtYXJrZG93bi10cy10b2dnbGUtaGlk
ZS1tYXJrdXAKICAgKHNldHEgbWFya2Rvd24tdHMtaGlkZS1tYXJrdXAgKG5vdCBtYXJrZG93bi10
cy1oaWRlLW1hcmt1cCkpCiAgIChtYXJrZG93bi10cy0tc2V0LWhpZGUtbWFya3VwIG1hcmtkb3du
LXRzLWhpZGUtbWFya3VwKSkKIAorKGRlZnVuIG1hcmtkb3duLXRzLS1zZXQtaW5saW5lLWltYWdl
cyAodmFsdWUpCisgICJTZXQgZGlzcGxheSBvZiBpbmxpbmUgaW1hZ2VzIGluIHRoZSBjdXJyZW50
IGJ1ZmZlci4KK1ZBTFVFIG5vbi1uaWwgZGlzcGxheXMgaW1hZ2VzLCBuaWwgcmVtb3ZlcyB0aGVt
LiIKKyAgKGlmIHZhbHVlCisgICAgICAodHJlZXNpdC1mb250LWxvY2stcmVjb21wdXRlLWZlYXR1
cmVzICcoaW1hZ2UtcHJldmlldykpCisgICAgKHRyZWVzaXQtZm9udC1sb2NrLXJlY29tcHV0ZS1m
ZWF0dXJlcyBuaWwgJyhpbWFnZS1wcmV2aWV3KSkpCisgIChtYXJrZG93bi10cy0tcmVtb3ZlLWlt
YWdlLW92ZXJsYXlzKQorICAoZm9udC1sb2NrLWZsdXNoKSkKIAotOzs7IE1ham9yIG1vZGUKLQot
KGRlZnVuIG1hcmtkb3duLXRzLXNldHVwICgpCi0gICJTZXR1cCB0cmVlc2l0IGZvciBgbWFya2Rv
d24tdHMtbW9kZScuIgotICAobWFrZS1sb2NhbC12YXJpYWJsZSAnbWFya2Rvd24tdHMtaGlkZS1t
YXJrdXApCisoZGVmdW4gbWFya2Rvd24tdHMtdG9nZ2xlLWlubGluZS1pbWFnZXMgKCkKKyAgIlRv
Z2dsZSBkaXNwbGF5IG9mIGlubGluZSBpbWFnZXMgaW4gdGhlIGN1cnJlbnQgYnVmZmVyLiIKKyAg
KGludGVyYWN0aXZlKQorICAoc2V0cSBtYXJrZG93bi10cy1pbmxpbmUtaW1hZ2VzIChub3QgbWFy
a2Rvd24tdHMtaW5saW5lLWltYWdlcykpCisgIChtYXJrZG93bi10cy0tc2V0LWlubGluZS1pbWFn
ZXMgbWFya2Rvd24tdHMtaW5saW5lLWltYWdlcykKKyAgKG1lc3NhZ2UgIklubGluZSBpbWFnZXMg
JXMiIChpZiBtYXJrZG93bi10cy1pbmxpbmUtaW1hZ2VzICJlbmFibGVkIiAiZGlzYWJsZWQiKSkp
CisKKzs7OyBFbXBoYXNpczoKKworKGRlZnZhciBtYXJrZG93bi10cy1lbXBoYXNpcy1hbGlzdAor
ICAnKCg/YiAuICIqKiIpCisgICAgKD9CIC4gIl9fIikKKyAgICAoP2kgLiAiKiIpCisgICAgKD9J
IC4gIl8iKQorICAgICg/cyAuICJ+fiIpCisgICAgKD9jIC4gImAiKQorICAgICg/YSAuICIqKioi
KSkKKyAgIkFsaXN0IG9mIGVtcGhhc2lzIG1hcmtlcnMgZm9yIGBtYXJrZG93bi10cy1lbXBoYXNp
emUnLgorRWFjaCBlbnRyeSBpcyAoS0VZIC4gTUFSS0VSKSB3aGVyZSBLRVkgaXMgYSBjaGFyYWN0
ZXIgKG5vdCBhIHN0cmluZykgYW5kCitNQVJLRVIgaXMgdGhlIE1hcmtkb3duIGVtcGhhc2l6ZWQg
dGV4dCBwcmVmaXgvc3VmZml4LiIpCisKKyhkZWZ1biBtYXJrZG93bi10cy0tZW1waGFzaXMtbm9k
ZS1hdC1wb2ludCAoKQorICAiUmV0dXJuIHRoZSBlbXBoYXNpcyBub2RlIGF0IHBvaW50LCBvciBu
aWwuCitGaW5kcyB0aGUgaW5uZXJtb3N0IGBlbXBoYXNpcycsIGBzdHJvbmdfZW1waGFzaXMnLAor
YHN0cmlrZXRocm91Z2gnLCBvciBgY29kZV9zcGFuJyBub2RlLiIKKyAgKHdoZW4tbGV0KiAoKG5v
ZGUgKHRyZWVzaXQtbm9kZS1hdCAocG9pbnQpICdtYXJrZG93bi1pbmxpbmUpKSkKKyAgICAodHJl
ZXNpdC1wYXJlbnQtdW50aWwKKyAgICAgbm9kZSAobGFtYmRhIChuKQorICAgICAgICAgICAgKG1l
bWJlciAodHJlZXNpdC1ub2RlLXR5cGUgbikKKyAgICAgICAgICAgICAgICAgICAgJygiZW1waGFz
aXMiICJzdHJvbmdfZW1waGFzaXMiCisgICAgICAgICAgICAgICAgICAgICAgInN0cmlrZXRocm91
Z2giICJjb2RlX3NwYW4iKSkpKSkpCisKKyhkZWZ1biBtYXJrZG93bi10cy1yZW1vdmUtZW1waGFz
aXMgKCkKKyAgIlJlbW92ZSBlbXBoYXNpcyBhcm91bmQgcG9pbnQgb3IgcmVnaW9uLgorV2l0aCBh
biBhY3RpdmUgcmVnaW9uLCBzdHJpcCB0aGUgb3V0ZXJtb3N0IGVtcGhhc2lzIG1hcmtlcnMgZnJv
bQordGhlIHNlbGVjdGVkIHRleHQuICBXaXRob3V0IGEgcmVnaW9uLCBmaW5kIHRoZSBlbXBoYXNp
cyBub2RlIGF0Citwb2ludCB1c2luZyB0cmVlLXNpdHRlciBhbmQgcmVtb3ZlIGl0cyBtYXJrZXJz
LiIKKyAgKGludGVyYWN0aXZlKQorICAoaWYgKHVzZS1yZWdpb24tcCkKKyAgICAgIChsZXQqICgo
YmVnIChyZWdpb24tYmVnaW5uaW5nKSkKKyAgICAgICAgICAgICAoZW5kIChyZWdpb24tZW5kKSkK
KyAgICAgICAgICAgICAodGV4dCAoYnVmZmVyLXN1YnN0cmluZyBiZWcgZW5kKSkKKyAgICAgICAg
ICAgICAoc3RyaXBwZWQgbmlsKSkKKyAgICAgICAgKGNsLWxvb3AgZm9yIChfa2V5IC4gbSkgaW4g
KHNvcnQgKGNvcHktc2VxdWVuY2UgbWFya2Rvd24tdHMtZW1waGFzaXMtYWxpc3QpCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsYW1iZGEgKGEgYikKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoPiAobGVuZ3RoIChjZHIgYSkpIChs
ZW5ndGggKGNkciBiKSkpKSkKKyAgICAgICAgICAgICAgICAgZm9yIHJlID0gKGNvbmNhdCAiXFxg
IiAocmVnZXhwLXF1b3RlIG0pCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlxc
KFxcKD86LlxcfFxuXFwpKlxcKSIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAo
cmVnZXhwLXF1b3RlIG0pICJcXCciKQorICAgICAgICAgICAgICAgICB3aGVuIChzdHJpbmctbWF0
Y2ggcmUgdGV4dCkKKyAgICAgICAgICAgICAgICAgZG8gKHNldHEgc3RyaXBwZWQgKG1hdGNoLXN0
cmluZyAxIHRleHQpKQorICAgICAgICAgICAgICAgICBhbmQgcmV0dXJuIG5pbCkKKyAgICAgICAg
KHdoZW4gc3RyaXBwZWQKKyAgICAgICAgICAoZGVsZXRlLXJlZ2lvbiBiZWcgZW5kKQorICAgICAg
ICAgIChpbnNlcnQgc3RyaXBwZWQpKSkKKyAgICA7OyBGaW5kIHRoZSBvdXRlcm1vc3QgZW1waGFz
aXMgbm9kZSBhdCBwb2ludC4KKyAgICAod2hlbi1sZXQqICgoaW5uZXIgKG1hcmtkb3duLXRzLS1l
bXBoYXNpcy1ub2RlLWF0LXBvaW50KSkKKyAgICAgICAgICAgICAgICAobm9kZSAobGV0ICgobiBp
bm5lcikpCisgICAgICAgICAgICAgICAgICAgICAgICAod2hpbGUgKGxldCAoKHBhcmVudCAodHJl
ZXNpdC1ub2RlLXBhcmVudCBuKSkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAo
d2hlbiAoYW5kIHBhcmVudAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAobWVtYmVyICh0cmVlc2l0LW5vZGUtdHlwZSBwYXJlbnQpCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJygiZW1waGFzaXMiICJzdHJvbmdf
ZW1waGFzaXMiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAic3RyaWtldGhyb3VnaCIgImNvZGVfc3BhbiIpKSkKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgKHNldHEgbiBwYXJlbnQpKSkpCisgICAgICAgICAgICAgICAgICAg
ICAgICBuKSkKKyAgICAgICAgICAgICAgICAoc3RhcnQgKHRyZWVzaXQtbm9kZS1zdGFydCBub2Rl
KSkKKyAgICAgICAgICAgICAgICAoZW5kICh0cmVlc2l0LW5vZGUtZW5kIG5vZGUpKQorICAgICAg
ICAgICAgICAgICh0ZXh0ICh0cmVlc2l0LW5vZGUtdGV4dCBub2RlIHQpKQorICAgICAgICAgICAg
ICAgICh0eXBlICh0cmVlc2l0LW5vZGUtdHlwZSBub2RlKSkKKyAgICAgICAgICAgICAgICAobWxl
biAocGNhc2UgdHlwZQorICAgICAgICAgICAgICAgICAgICAgICAgKCJzdHJvbmdfZW1waGFzaXMi
CisgICAgICAgICAgICAgICAgICAgICAgICAgKGlmIChzdHJpbmctcHJlZml4LXAgIl8iIHRleHQp
IDIgMikpCisgICAgICAgICAgICAgICAgICAgICAgICAoImVtcGhhc2lzIgorICAgICAgICAgICAg
ICAgICAgICAgICAgIChpZiAoc3RyaW5nLXByZWZpeC1wICJfIiB0ZXh0KSAxIDEpKQorICAgICAg
ICAgICAgICAgICAgICAgICAgKCJzdHJpa2V0aHJvdWdoIiAyKQorICAgICAgICAgICAgICAgICAg
ICAgICAgKCJjb2RlX3NwYW4iIDEpKSkKKyAgICAgICAgICAgICAgICAoaW5uZXItdGV4dCAoc3Vi
c3RyaW5nIHRleHQgbWxlbiAoLSAobGVuZ3RoIHRleHQpIG1sZW4pKSkpCisgICAgICAobGV0ICgo
b2Zmc2V0ICgtIChwb2ludCkgc3RhcnQgbWxlbikpKQorICAgICAgICAoZGVsZXRlLXJlZ2lvbiBz
dGFydCBlbmQpCisgICAgICAgIChnb3RvLWNoYXIgc3RhcnQpCisgICAgICAgIChpbnNlcnQgaW5u
ZXItdGV4dCkKKyAgICAgICAgKGdvdG8tY2hhciAoKyBzdGFydCAobWF4IDAgb2Zmc2V0KSkpKSkp
KQorCisoZGVmdW4gbWFya2Rvd24tdHMtZW1waGFzaXplICgmb3B0aW9uYWwgY2hhcikKKyAgIklu
c2VydCBvciBjaGFuZ2UgZW1waGFzaXMgb24gdGV4dC4KK0lmIHRoZXJlIGlzIGFuIGFjdGl2ZSBy
ZWdpb24sIHdyYXAgaXQgd2l0aCBlbXBoYXNpcyBtYXJrZXJzLgorSWYgdGhlcmUgaXMgbm8gcmVn
aW9uLCBpbnNlcnQgbWFya2VyIHBhaXJzIGFuZCBwbGFjZSBwb2ludCBiZXR3ZWVuCit0aGVtLiAg
Q0hBUiBzZWxlY3RzIHRoZSBlbXBoYXNpcyB0eXBlOgorCisgIGIgICAqKmJvbGQqKiAgICAgICBC
ICBfX2JvbGRfXworICBpICAgKml0YWxpYyogICAgICAgSSAgX2l0YWxpY18KKyAgYSAgICoqKmJv
bGQraXRhbGljKioqCisgIHMgICB+fnN0cmlrZXRocm91Z2h+fgorICBjICAgYGNvZGVgCisgIFNQ
QyByZW1vdmUgZW1waGFzaXMgYXQgcG9pbnQgb3IgcmVnaW9uIgorICAoaW50ZXJhY3RpdmUKKyAg
ICJjRW1waGFzaXMgW2Jdb2xkIFtCXW9sZF8gW2lddGFsaWMgW0lddGFsaWNfIFthXWxsIFtzXXRy
aWtlIFtjXW9kZSBTUEMgcmVtb3ZlOiIpCisgIChpZiAoZXEgY2hhciA/XHMpCisgICAgICAobWFy
a2Rvd24tdHMtcmVtb3ZlLWVtcGhhc2lzKQorICAgIChpZi1sZXQqICgobWFya2VyIChjZHIgKGFz
c3EgY2hhciBtYXJrZG93bi10cy1lbXBoYXNpcy1hbGlzdCkpKSkKKyAgICAgICAgKGlmICh1c2Ut
cmVnaW9uLXApCisgICAgICAgICAgICAobGV0ICgoYmVnIChyZWdpb24tYmVnaW5uaW5nKSkKKyAg
ICAgICAgICAgICAgICAgIChlbmQgKGNvcHktbWFya2VyIChyZWdpb24tZW5kKSkpKQorICAgICAg
ICAgICAgICAoc2F2ZS1leGN1cnNpb24KKyAgICAgICAgICAgICAgICAoZ290by1jaGFyIGVuZCkK
KyAgICAgICAgICAgICAgICAoaW5zZXJ0IG1hcmtlcikKKyAgICAgICAgICAgICAgICAoZ290by1j
aGFyIGJlZykKKyAgICAgICAgICAgICAgICAoaW5zZXJ0IG1hcmtlcikpKQorICAgICAgICAgIChp
Zi1sZXQqICgoYm91bmRzIChib3VuZHMtb2YtdGhpbmctYXQtcG9pbnQgJ3dvcmQpKSkKKyAgICAg
ICAgICAgICAgKHNhdmUtZXhjdXJzaW9uCisgICAgICAgICAgICAgICAgKGdvdG8tY2hhciAoY2Ry
IGJvdW5kcykpCisgICAgICAgICAgICAgICAgKGluc2VydCBtYXJrZXIpCisgICAgICAgICAgICAg
ICAgKGdvdG8tY2hhciAoY2FyIGJvdW5kcykpCisgICAgICAgICAgICAgICAgKGluc2VydCBtYXJr
ZXIpKQorICAgICAgICAgICAgKGluc2VydCBtYXJrZXIgbWFya2VyKQorICAgICAgICAgICAgKGJh
Y2t3YXJkLWNoYXIgKGxlbmd0aCBtYXJrZXIpKSkpCisgICAgICAodXNlci1lcnJvciAiTm8gc3Vj
aCBlbXBoYXNpcyBtYXJrZXI6ICVjIiBjaGFyKSkpKQorCis7OzsgQmxvY2sgc3RydWN0dXJlOgor
CisoZGVmdW4gbWFya2Rvd24tdHMtaW5zZXJ0LXN0cnVjdHVyZSAoJm9wdGlvbmFsIGNoYXIpCisg
ICJJbnNlcnQgYSBibG9jayBzdHJ1Y3R1cmUuCitJZiB0aGVyZSBpcyBhbiBhY3RpdmUgcmVnaW9u
LCB3cmFwIGl0LiAgT3RoZXJ3aXNlLCBpbnNlcnQgYW4gZW1wdHkKK2Jsb2NrIGFuZCBwbGFjZSBw
b2ludCBpbnNpZGUuICBDSEFSIHNlbGVjdHMgdGhlIHN0cnVjdHVyZSB0eXBlOgorCisgIGMgIGZl
bmNlZCBjb2RlIGJsb2NrIChgYGApCisgIHQgIHRpbGRlIGZlbmNlZCBjb2RlIGJsb2NrICh+fn4p
CisgIHEgIGJsb2NrIHF1b3RlICg+ICkKKyAgZCAgaG9yaXpvbnRhbCBkaXZpZGVyL3J1bGUgKC0t
LSkiCisgIChpbnRlcmFjdGl2ZSAiY1N0cnVjdHVyZSBbY11vZGUgYmxvY2sgW3RdaWxkZSBjb2Rl
IGJsb2NrIFtxXXVvdGUgW2RdaXZpZGVyOiIpCisgIChwY2FzZSBjaGFyCisgICAgKD9jIChtYXJr
ZG93bi10cy0taW5zZXJ0LWNvZGUtYmxvY2sgP2ApKQorICAgICg/dCAobWFya2Rvd24tdHMtLWlu
c2VydC1jb2RlLWJsb2NrID9+KSkKKyAgICAoP3EgKG1hcmtkb3duLXRzLS1pbnNlcnQtYmxvY2st
cXVvdGUpKQorICAgICg/ZCAobWFya2Rvd24tdHMtLWluc2VydC1kaXZpZGVyKSkKKyAgICAoXyAo
dXNlci1lcnJvciAiTm8gc3VjaCBzdHJ1Y3R1cmU6ICVjIiBjaGFyKSkpKQorCisoZGVmdW4gbWFy
a2Rvd24tdHMtLWluc2VydC1jb2RlLWJsb2NrIChjaGFyICZvcHRpb25hbCBsYW5ndWFnZSkKKyAg
Ikluc2VydCBhIGZlbmNlZCBjb2RlIGJsb2NrIHVzaW5nIGEgQ0hBUiBzZXF1ZW5jZS4KK0NIQVIg
c2hvdWxkIGJlIG9uZSBvZiBhIGJhY2t0aWNrIG9yIGEgdGlsZGUuCitMQU5HVUFHRSBpcyBhIHdo
aXRlc3BhY2UgZnJlZSBsYW5ndWFnZSBzdHJpbmcuIgorICAoc2V0cSBsYW5ndWFnZQorICAgICAg
ICAob3IgbGFuZ3VhZ2UKKyAgICAgICAgICAgIChyZXBsYWNlLXJlZ2V4cC1pbi1zdHJpbmcKKyAg
ICAgICAgICAgICAiW1s6Ymxhbms6XV0iICIiCisgICAgICAgICAgICAgKGxldCAoKGNvbXBsZXRp
b24taWdub3JlLWNhc2UgbmlsKQorICAgICAgICAgICAgICAgICAgIChjYW5kaWRhdGVzCisgICAg
ICAgICAgICAgICAgICAgIChzZXEtbWFwCisgICAgICAgICAgICAgICAgICAgICAjJ3N5bWJvbC1u
YW1lCisgICAgICAgICAgICAgICAgICAgICAoc2VxLXVuaXEKKyAgICAgICAgICAgICAgICAgICAg
ICAoYXBwZW5kIChtYXBjYXIgIydjYXIgbWFya2Rvd24tdHMtLWNvZGUtYmxvY2stbGFuZ3VhZ2Vz
KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hcGNhciAjJ2NhciBtYXJrZG93bi10
cy0tY29kZS1ibG9jay1ub24tdHMtbW9kZXMpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAobWFwY2FyICMnY2FyIG1hcmtkb3duLXRzLWNvZGUtYmxvY2stbW9kZXMpKSkpKSkKKyAgICAg
ICAgICAgICAgIChjb21wbGV0aW5nLXJlYWQKKyAgICAgICAgICAgICAgICAiQ29kZSBibG9jayBs
YW5ndWFnZTogIgorICAgICAgICAgICAgICAgIGNhbmRpZGF0ZXMKKyAgICAgICAgICAgICAgICBu
aWwKKyAgICAgICAgICAgICAgICAnY29uZmlybSA7IFByb21wdCBpZiB0aGUgbGFuZ3VhZ2UgaXMg
bm90IG9uIG91ciBsaXN0LgorICAgICAgICAgICAgICAgIG5pbAorICAgICAgICAgICAgICAgICdt
YXJrZG93bi10cy1sYW5ndWFnZS1oaXN0b3J5KSkpKSkKKyAgKGxldCAoKGZlbmNlLXN0cmluZyAo
bWFrZS1zdHJpbmcgMyBjaGFyKSkpCisgICAgKGlmICh1c2UtcmVnaW9uLXApCisgICAgICAgIChs
ZXQgKChiZWcgKHJlZ2lvbi1iZWdpbm5pbmcpKQorICAgICAgICAgICAgICAoZW5kIChyZWdpb24t
ZW5kKSkpCisgICAgICAgICAgKHNhdmUtZXhjdXJzaW9uCisgICAgICAgICAgICAoZ290by1jaGFy
IGVuZCkKKyAgICAgICAgICAgICh1bmxlc3MgKGJvbHApIChpbnNlcnQgIlxuIikpCisgICAgICAg
ICAgICAoaW5zZXJ0IGZlbmNlLXN0cmluZyAiXG4iKQorICAgICAgICAgICAgKGdvdG8tY2hhciBi
ZWcpCisgICAgICAgICAgICAoaW5zZXJ0IGZlbmNlLXN0cmluZyBsYW5ndWFnZSAiXG4iKSkpCisg
ICAgICAoaW5zZXJ0IGZlbmNlLXN0cmluZyBsYW5ndWFnZSAiXG5cbiIgZmVuY2Utc3RyaW5nKQor
ICAgICAgKGZvcndhcmQtbGluZSAtMSkpKSkKKworKGRlZnVuIG1hcmtkb3duLXRzLS1pbnNlcnQt
YmxvY2stcXVvdGUgKCkKKyAgIkluc2VydCBhIGJsb2NrIHF1b3RlLiIKKyAgKGlmICh1c2UtcmVn
aW9uLXApCisgICAgICAobGV0ICgoYmVnIChyZWdpb24tYmVnaW5uaW5nKSkKKyAgICAgICAgICAg
IChlbmQgKGNvcHktbWFya2VyIChyZWdpb24tZW5kKSkpKQorICAgICAgICAoc2F2ZS1leGN1cnNp
b24KKyAgICAgICAgICAoZ290by1jaGFyIGJlZykKKyAgICAgICAgICAod2hpbGUgKDwgKHBvaW50
KSBlbmQpCisgICAgICAgICAgICAoaW5zZXJ0ICI+ICIpCisgICAgICAgICAgICAoZm9yd2FyZC1s
aW5lIDEpKSkpCisgICAgKGluc2VydCAiPiAiKSkpCisKKyhkZWZ1biBtYXJrZG93bi10cy0taW5z
ZXJ0LWRpdmlkZXIgKCkKKyAgIkluc2VydCBhIGhvcml6b250YWwgcnVsZS4iCisgICh1bmxlc3Mg
KGJvbHApIChpbnNlcnQgIlxuIikpCisgIChpbnNlcnQgIlxuLS0tXG5cbiIpKQorCisoZGVmdW4g
bWFya2Rvd24tdHMtLWFwcGx5LWVsbGlwc2lzICgpCisgICJBcHBseSBgbWFya2Rvd24tdHMtZWxs
aXBzaXMnIHRvIHRoZSBjdXJyZW50IGJ1ZmZlcidzIGRpc3BsYXkgdGFibGUuIgorICAoaWYgKGFu
ZCAoc3RyaW5ncCBtYXJrZG93bi10cy1lbGxpcHNpcykKKyAgICAgICAgICAgKG5vdCAoc3RyaW5n
LWVtcHR5LXAgbWFya2Rvd24tdHMtZWxsaXBzaXMpKSkKKyAgICAgIChsZXQgKCh0YWJsZSAob3Ig
YnVmZmVyLWRpc3BsYXktdGFibGUKKyAgICAgICAgICAgICAgICAgICAgICAgKG1ha2UtZGlzcGxh
eS10YWJsZSkpKSkKKyAgICAgICAgKHNldC1kaXNwbGF5LXRhYmxlLXNsb3QKKyAgICAgICAgIHRh
YmxlIDQKKyAgICAgICAgICh2Y29uY2F0IChtYXBjYXIgKGxhbWJkYSAoYykgKG1ha2UtZ2x5cGgt
Y29kZSBjICdzaGFkb3cpKQorICAgICAgICAgICAgICAgICAgICAgICAgICBtYXJrZG93bi10cy1l
bGxpcHNpcykpKQorICAgICAgICAoc2V0cSBidWZmZXItZGlzcGxheS10YWJsZSB0YWJsZSkpCisg
ICAgKHdoZW4gYnVmZmVyLWRpc3BsYXktdGFibGUKKyAgICAgIChzZXQtZGlzcGxheS10YWJsZS1z
bG90IGJ1ZmZlci1kaXNwbGF5LXRhYmxlIDQgbmlsKSkpKQorCis7OzsgTWFqb3IgbW9kZToKKwor
KGRlZnVuIG1hcmtkb3duLXRzLS1zZXQtdXAgKCkKKyAgIlNldCB1cCB0cmVlc2l0IGZvciBgbWFy
a2Rvd24tdHMtbW9kZScuIgogICAoc2V0cS1sb2NhbCB0cmVlc2l0LWZvbnQtbG9jay1zZXR0aW5n
cyBtYXJrZG93bi10cy0tdHJlZXNpdC1zZXR0aW5ncykKICAgKHNldHEtbG9jYWwgdHJlZXNpdC1y
YW5nZS1zZXR0aW5ncyAobWFya2Rvd24tdHMtLXJhbmdlLXNldHRpbmdzKSkKLSAgKGFkZC10by1s
aXN0ICdmb250LWxvY2stZXh0cmEtbWFuYWdlZC1wcm9wcyAnaW52aXNpYmxlKQorICAocHJvZ24K
KyAgICAobWFrZS1sb2NhbC12YXJpYWJsZSAnbWFya2Rvd24tdHMtaGlkZS1tYXJrdXApCisgICAg
KG1ha2UtbG9jYWwtdmFyaWFibGUgJ2ZvbnQtbG9jay1leHRyYS1tYW5hZ2VkLXByb3BzKQorICAg
IChkb2xpc3QgKHByb3AgJyhpbnZpc2libGUgZGlzcGxheSBidXR0b24gY2F0ZWdvcnkgYWN0aW9u
IGhlbHAtZWNobykpCisgICAgICAoYWRkLXRvLWxpc3QgJ2ZvbnQtbG9jay1leHRyYS1tYW5hZ2Vk
LXByb3BzIHByb3ApKSkKIAogICAod2hlbiAodHJlZXNpdC1yZWFkeS1wICdodG1sIHQpCiAgICAg
KHRyZWVzaXQtcGFyc2VyLWNyZWF0ZSAnaHRtbCkKQEAgLTQyOSwzOCArMjYwMSwxODUgQEAgbWFy
a2Rvd24tdHMtc2V0dXAKICAgICAgICAgICAgICAgICAgICAgICAgICAnKChwbHVzX21ldGFkYXRh
KSBAdG9tbCkpKSkpCiAKICAgKHRyZWVzaXQtbWFqb3ItbW9kZS1zZXR1cCkKKyAgOzsgRG8gbm90
IGVuYWJsZSBgaml0LWxvY2stbW9kZScgaW4gaW5kaXJlY3QgYnVmZmVycyBzdWNoIGFzIHRoZSBv
bmUKKyAgOzsgd2UgdXNlIGZvciBjb2RlIGJsb2NrIGNvbW1hbmRzLgorICAodW5sZXNzIChidWZm
ZXItYmFzZS1idWZmZXIpCisgICAgKGppdC1sb2NrLXJlZ2lzdGVyICMnbWFya2Rvd24tdHMtLWZv
bnRpZnktYmFyZS11cmkpKQogICAobWFya2Rvd24tdHMtLXNldC1oaWRlLW1hcmt1cCBtYXJrZG93
bi10cy1oaWRlLW1hcmt1cCkpCiAKKyhkZWZ1biBtYXJrZG93bi10cy1vdXRsaW5lLWN5Y2xlICgp
CisgICJDeWNsZSB2aXNpYmlsaXR5IG9mIHRoZSBoZWFkaW5nIGF0IHBvaW50LgorT24gYSBoZWFk
aW5nLCBjYWxsIGBvdXRsaW5lLWN5Y2xlJy4gIE90aGVyd2lzZSBkbyBub3RoaW5nLiIKKyAgKGlu
dGVyYWN0aXZlKQorICAod2hlbiAob3V0bGluZS1vbi1oZWFkaW5nLXApCisgICAgKG91dGxpbmUt
Y3ljbGUpKSkKKworKGRlZnZhci1rZXltYXAgbWFya2Rvd24tdHMtbW9kZS1tYXAKKyAgOmRvYyAi
S2V5bWFwIGZvciBgbWFya2Rvd24tdHMtbW9kZScuIgorICAiTS08bGVmdD4iICAgICMnbWFya2Rv
d24tdHMtcHJvbW90ZQorICAiTS08cmlnaHQ+IiAgICMnbWFya2Rvd24tdHMtZGVtb3RlCisgICJN
LTx1cD4iICAgICAgIydtYXJrZG93bi10cy1tb3ZlLXN1YnRyZWUtdXAKKyAgIk0tPGRvd24+IiAg
ICAjJ21hcmtkb3duLXRzLW1vdmUtc3VidHJlZS1kb3duCisgICJDLWMgQy1uIiAgICAgIydvdXRs
aW5lLW5leHQtaGVhZGluZworICAiQy1jIEMtcCIgICAgICMnb3V0bGluZS1wcmV2aW91cy1oZWFk
aW5nCisgICJDLWMgQy11IiAgICAgIydvdXRsaW5lLXVwLWhlYWRpbmcKKyAgIkMtYyBDLWYiICAg
ICAjJ291dGxpbmUtZm9yd2FyZC1zYW1lLWxldmVsCisgICJDLWMgQy1iIiAgICAgIydvdXRsaW5l
LWJhY2t3YXJkLXNhbWUtbGV2ZWwKKyAgIkMtYyBDLXggQy1mIiAjJ21hcmtkb3duLXRzLWVtcGhh
c2l6ZQorICAiQy1jIEMteCBDLW0iICMnbWFya2Rvd24tdHMtdG9nZ2xlLWhpZGUtbWFya3VwCisg
ICJDLWMgQy14IEMtdiIgIydtYXJrZG93bi10cy10b2dnbGUtaW5saW5lLWltYWdlcworICAiQy1j
IEMtYyIgICAgICMnbWFya2Rvd24tdHMtdG9nZ2xlLWNoZWNrYm94CisgICJDLWMgQy1yIiAgICAg
IydtYXJrZG93bi10cy1yZW51bWJlci1saXN0CisgICJDLWMgQy0sIiAgICAgIydtYXJrZG93bi10
cy1pbnNlcnQtc3RydWN0dXJlCisgICJDLWMgQy12IG4iICAgIydtYXJrZG93bi10cy1tb3ZlLXRv
LW5leHQtY29kZS1ibG9jaworICAiQy1jIEMtdiBwIiAgICMnbWFya2Rvd24tdHMtbW92ZS10by1w
cmV2aW91cy1jb2RlLWJsb2NrCisgICJSRVQiICAgICAgICAgIydtYXJrZG93bi10cy1uZXdsaW5l
CisgICJNLVJFVCIgICAgICAgIydtYXJrZG93bi10cy1pbnNlcnQtbGlzdC1pdGVtCisgICJUQUIi
ICAgICAgICAgIydtYXJrZG93bi10cy1vdXRsaW5lLWN5Y2xlKQorCisoZGVmdmFyLWtleW1hcCBt
YXJrZG93bi10cy1jb2RlLWJsb2NrLW1vZGUtbWFwCisgIDpkb2MgIktleW1hcCBmb3IgYG1hcmtk
b3duLXRzLWNvZGUtYmxvY2stbW9kZScuCitUaGVzZSBvdmVycmlkZSBrZXlzIGluIGBtYXJrZG93
bi10cy1tb2RlLW1hcCcgdG8gc3VwcG9ydCBleGVjdXRpbmcgdGhlaXIKK2NvbW1hbmRzIGluIGEg
Y29kZS1ibG9jayBjb250ZXh0LiIKKyAgOnBhcmVudCBtYXJrZG93bi10cy1tb2RlLW1hcAorICAi
TS0uIiAgICAgICAgICMnbWFya2Rvd24tdHMtLWNvZGUtYmxvY2steHJlZi1maW5kLWRlZmluaXRp
b25zCisgICJUQUIiICAgICAgICAgIydpbmRlbnQtZm9yLXRhYi1jb21tYW5kCisgICJSRVQiICAg
ICAgICAgIydtYXJrZG93bi10cy0tY29kZS1ibG9jay1uZXdsaW5lCisgICJDLWoiICAgICAgICAg
IydtYXJrZG93bi10cy0tY29kZS1ibG9jay1uZXdsaW5lCisgICJNLVJFVCIgICAgICAgIydtYXJr
ZG93bi10cy0tY29kZS1ibG9jay1uZXdsaW5lCisgICJNLXEiICAgICAgICAgIydtYXJrZG93bi10
cy0tY29kZS1ibG9jay1maWxsLXBhcmFncmFwaCkKKworKGVhc3ktbWVudS1kZWZpbmUgbWFya2Rv
d24tdHMtbW9kZS1tZW51IG1hcmtkb3duLXRzLW1vZGUtbWFwCisgICJgbWFya2Rvd24tdHMtbW9k
ZScgbWVudS4iCisgICcoIk1hcmtkb3duIiA6dmlzaWJsZSBtYXJrZG93bi10cy1tZW51LWJhci1z
aG93CisgICAgIi0tIgorICAgIFsiQ3ljbGUgT3V0bGluZSBWaXNpYmlsaXR5IiBtYXJrZG93bi10
cy1vdXRsaW5lLWN5Y2xlCisgICAgIDpoZWxwICJDeWNsZSBoZWFkaW5nIHZpc2liaWxpdHkgZnJv
bSBwb2ludCJdCisgICAgWyJUb2dnbGUgSGlkZSBNYXJrdXAiIG1hcmtkb3duLXRzLXRvZ2dsZS1o
aWRlLW1hcmt1cAorICAgICA6c3R5bGUgdG9nZ2xlIDpzZWxlY3RlZCBtYXJrZG93bi10cy1oaWRl
LW1hcmt1cAorICAgICA6aGVscCAiVG9nZ2xlIGRpc3BsYXkgb2YgbWFya3VwIGNoYXJhY3RlcnMi
XQorICAgIFsiVG9nZ2xlIElubGluZSBJbWFnZXMiIG1hcmtkb3duLXRzLXRvZ2dsZS1pbmxpbmUt
aW1hZ2VzCisgICAgIDpzdHlsZSB0b2dnbGUgOnNlbGVjdGVkIG1hcmtkb3duLXRzLWlubGluZS1p
bWFnZXMKKyAgICAgOmhlbHAgIlRvZ2dsZSBkaXNwbGF5IG9mIGlubGluZSBpbWFnZXMgYmVsb3cg
bGlua3MiXQorICAgICItLSIKKyAgICBbIlVwIiBvdXRsaW5lLXVwLWhlYWRpbmcKKyAgICAgOmhl
bHAgIk1vdmUgdG8gdGhlIHBhcmVudCBoZWFkaW5nIl0KKyAgICBbIk5leHQiIG91dGxpbmUtbmV4
dC1oZWFkaW5nCisgICAgIDpoZWxwICJNb3ZlIHRvIHRoZSBuZXh0IGhlYWRpbmciXQorICAgIFsi
UHJldmlvdXMiIG91dGxpbmUtcHJldmlvdXMtaGVhZGluZworICAgICA6aGVscCAiTW92ZSB0byB0
aGUgcHJldmlvdXMgaGVhZGluZyJdCisgICAgWyJOZXh0IFNhbWUgTGV2ZWwiIG91dGxpbmUtZm9y
d2FyZC1zYW1lLWxldmVsCisgICAgIDpoZWxwICJNb3ZlIHRvIHRoZSBuZXh0IGhlYWRpbmcgYXQg
dGhlIHNhbWUgbGV2ZWwiXQorICAgIFsiUHJldmlvdXMgU2FtZSBMZXZlbCIgb3V0bGluZS1iYWNr
d2FyZC1zYW1lLWxldmVsCisgICAgIDpoZWxwICJNb3ZlIHRvIHRoZSBwcmV2aW91cyBoZWFkaW5n
IGF0IHRoZSBzYW1lIGxldmVsIl0KKyAgICAiLS0iCisgICAgWyJKdW1wIiBpbWVudQorICAgICA6
aGVscCAiSnVtcCB0byBhIGhlYWRpbmcgdmlhIGNvbXBsZXRpb24iXQorICAgICItLSIKKyAgICBb
Ik1vdmUgU3VidHJlZSBVcCIgbWFya2Rvd24tdHMtbW92ZS1zdWJ0cmVlLXVwCisgICAgIDpoZWxw
ICJNb3ZlIHRoZSBjdXJyZW50IHNlY3Rpb24gb3IgbGlzdCBpdGVtIHVwIl0KKyAgICBbIk1vdmUg
U3VidHJlZSBEb3duIiBtYXJrZG93bi10cy1tb3ZlLXN1YnRyZWUtZG93bgorICAgICA6aGVscCAi
TW92ZSB0aGUgY3VycmVudCBzZWN0aW9uIG9yIGxpc3QgaXRlbSBkb3duIl0KKyAgICBbIlByb21v
dGUiIG1hcmtkb3duLXRzLXByb21vdGUKKyAgICAgOmhlbHAgIlByb21vdGUgaGVhZGluZyBvciBs
aXN0IGl0ZW0iXQorICAgIFsiRGVtb3RlIiBtYXJrZG93bi10cy1kZW1vdGUKKyAgICAgOmhlbHAg
IkRlbW90ZSBoZWFkaW5nIG9yIGxpc3QgaXRlbSJdCisgICAgIi0tIgorICAgIFsiRW1waGFzaXMu
Li4iIG1hcmtkb3duLXRzLWVtcGhhc2l6ZQorICAgICA6aGVscCAiQWRkIG9yIGNoYW5nZSBlbXBo
YXNpcyBvbiByZWdpb24iXQorICAgIFsiQWRkIEJsb2NrIFN0cnVjdHVyZSIgbWFya2Rvd24tdHMt
aW5zZXJ0LXN0cnVjdHVyZQorICAgICA6aGVscCAiSW5zZXJ0IGEgY29kZSBibG9jaywgcXVvdGUs
IG9yIG90aGVyIHN0cnVjdHVyZSJdCisgICAgIi0tIgorICAgIFsiVG9nZ2xlIENoZWNrYm94IiBt
YXJrZG93bi10cy10b2dnbGUtY2hlY2tib3gKKyAgICAgOmhlbHAgIlRvZ2dsZSB0YXNrIGxpc3Qg
Y2hlY2tib3ggYXQgcG9pbnQiXQorICAgIFsiTmV3IExpc3QgSXRlbSIgbWFya2Rvd24tdHMtaW5z
ZXJ0LWxpc3QtaXRlbQorICAgICA6aGVscCAiSW5zZXJ0IGEgbmV3IGxpc3QgaXRlbSBhZnRlciB0
aGUgY3VycmVudCBvbmUiXQorICAgIFsiUmVudW1iZXIgTGlzdCIgbWFya2Rvd24tdHMtcmVudW1i
ZXItbGlzdAorICAgICA6aGVscCAiUmVudW1iZXIgdGhlIG9yZGVyZWQgbGlzdCBhdCBwb2ludCJd
KSkKKwogOzs7IyMjYXV0b2xvYWQKIChkZWZpbmUtZGVyaXZlZC1tb2RlIG1hcmtkb3duLXRzLW1v
ZGUgdGV4dC1tb2RlICJNYXJrZG93biIKICAgIk1ham9yIG1vZGUgZm9yIGVkaXRpbmcgTWFya2Rv
d24gdXNpbmcgdHJlZS1zaXR0ZXIgZ3JhbW1hci4iCiAKLSAgKHNldHEtbG9jYWwgY29tbWVudC1z
dGFydCAiPCEtLSAiKQotICAoc2V0cS1sb2NhbCBjb21tZW50LWVuZCAiIC0tPiIpCisgIChzZXRx
LWxvY2FsIGNvbW1lbnQtc3RhcnQgIjwhLS0gIgorICAgICAgICAgICAgICBjb21tZW50LWVuZCAi
IC0tPiIKKyAgICAgICAgICAgICAgY29tbWVudC1zdGFydC1za2lwICI8IS0tWyBcdF0qIgorICAg
ICAgICAgICAgICBjb21tZW50LWVuZC1za2lwICJbIFx0XSotLT4iCisgICAgICAgICAgICAgIGNv
bW1lbnQtdXNlLXN5bnRheCBuaWwpCisKKyAgKHNldHEtbG9jYWwgZmlsbC1wYXJhZ3JhcGgtZnVu
Y3Rpb24KKyAgICAgICAgICAgICAgIydtYXJrZG93bi10cy0tZmlsbC1wYXJhZ3JhcGgKKyAgICAg
ICAgICAgICAgZmlsbC1mb3J3YXJkLXBhcmFncmFwaC1mdW5jdGlvbgorICAgICAgICAgICAgICAj
J21hcmtkb3duLXRzLS1maWxsLWZvcndhcmQtcGFyYWdyYXBoKQorICA7OyBgYWRhcHRpdmUtZmls
bC1mdW5jdGlvbicgdGFrZXMgcHJlY2VkZW5jZSBvdmVyCisgIDs7IGBhZGFwdGl2ZS1maWxsLXJl
Z2V4cCc7IHRoZSBkZWZhdWx0IHJlZ2V4cCBpcyBmaW5lIGFzIGEKKyAgOzsgZmFsbGJhY2sgZm9y
IHBsYWluIChub24tbGlzdCkgcGFyYWdyYXBocy4KKyAgKHNldHEtbG9jYWwgYWRhcHRpdmUtZmls
bC1mdW5jdGlvbiAjJ21hcmtkb3duLXRzLS1hZGFwdGl2ZS1maWxsKQogCiAgIChzZXRxLWxvY2Fs
IGZvbnQtbG9jay1kZWZhdWx0cyBuaWwKLQkgICAgICB0cmVlc2l0LWZvbnQtbG9jay1mZWF0dXJl
LWxpc3QgJygoZGVsaW1pdGVyIGhlYWRpbmcpCi0JCQkJCSAgICAgICAocGFyYWdyYXBoKQotCQkJ
CQkgICAgICAgKHBhcmFncmFwaC1pbmxpbmUpKSkKKyAgICAgICAgICAgICAgdHJlZXNpdC1mb250
LWxvY2stZmVhdHVyZS1saXN0ICcoKGRlbGltaXRlciBoZWFkaW5nKQorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAocGFyYWdyYXBoKQorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAocGFyYWdyYXBoLWlubGluZSkKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGltYWdlLXByZXZp
ZXcpKSkKIAogICAoc2V0cS1sb2NhbCB0cmVlc2l0LXNpbXBsZS1pbWVudS1zZXR0aW5ncwotICAg
ICAgICAgICAgICBgKCgiSGVhZGluZ3MiICwjJ21hcmtkb3duLXRzLWltZW51LW5vZGUtcAotICAg
ICAgICAgICAgICAgICBuaWwgLCMnbWFya2Rvd24tdHMtaW1lbnUtbmFtZS1mdW5jdGlvbikpKQot
ICAoc2V0cS1sb2NhbCB0cmVlc2l0LW91dGxpbmUtcHJlZGljYXRlICMnbWFya2Rvd24tdHMtb3V0
bGluZS1wcmVkaWNhdGUpCisgICAgICAgICAgICAgIGAoKCJIZWFkaW5ncyIgLCMnbWFya2Rvd24t
dHMtLWltZW51LWhlYWRpbmctbm9kZS1wCisgICAgICAgICAgICAgICAgIG5pbCAsIydtYXJrZG93
bi10cy0taW1lbnUtaGVhZGluZy1uYW1lLWZ1bmN0aW9uKQorICAgICAgICAgICAgICAgICgiQ29k
ZSBCbG9ja3MiICwjJ21hcmtkb3duLXRzLS1pbWVudS1jb2RlLWJsb2NrLW5vZGUtcAorICAgICAg
ICAgICAgICAgICBuaWwgLCMnbWFya2Rvd24tdHMtLWltZW51LWNvZGUtYmxvY2stbmFtZS1mdW5j
dGlvbikpKQorICAoc2V0cS1sb2NhbCB0cmVlc2l0LW91dGxpbmUtcHJlZGljYXRlICMnbWFya2Rv
d24tdHMtLW91dGxpbmUtcHJlZGljYXRlKQorCisgIChzZXRxLWxvY2FsIG91dGxpbmUtbWlub3It
bW9kZS1jeWNsZSB0KQorICAob3V0bGluZS1taW5vci1tb2RlIDEpCisKKyAgKG1hcmtkb3duLXRz
LS1hcHBseS1lbGxpcHNpcykKKworICA7OyBOT1RFOiBgb3V0bGluZS12aWV3LWNoYW5nZS1ob29r
JyB3YXMgb2Jzb2xldGVkIGluIDI5LjEgKGNvbW1pdAorICA7OyA1M2IxZTZmOTZjYikgb24gdGhl
IGdyb3VuZHMgdGhhdCBvbmx5IGxhenktbG9jayB1c2VkIGl0LCBidXQgbm8KKyAgOzsgcmVwbGFj
ZW1lbnQgd2FzIHByb3ZpZGVkIGFuZCBvdXRsaW5lLmVsIGl0c2VsZiBzdGlsbCBydW5zIHRoZSBo
b29rCisgIDs7IGluIDEwKyBwbGFjZXMuCisgICh3aXRoLXN1cHByZXNzZWQtd2FybmluZ3MgKChv
YnNvbGV0ZSBvdXRsaW5lLXZpZXctY2hhbmdlLWhvb2spKQorICAgIChhZGQtaG9vayAnb3V0bGlu
ZS12aWV3LWNoYW5nZS1ob29rCisgICAgICAgICAgICAgICMnbWFya2Rvd24tdHMtLW91dGxpbmUt
dmlldy1jaGFuZ2UgbmlsIHQpKQogCiAgICh3aGVuIChhbmQgKHRyZWVzaXQtZW5zdXJlLWluc3Rh
bGxlZCAnbWFya2Rvd24pCiAgICAgICAgICAgICAgKHRyZWVzaXQtZW5zdXJlLWluc3RhbGxlZCAn
bWFya2Rvd24taW5saW5lKSkKICAgICAodHJlZXNpdC1wYXJzZXItY3JlYXRlICdtYXJrZG93bi1p
bmxpbmUpCiAgICAgKHRyZWVzaXQtcGFyc2VyLWNyZWF0ZSAnbWFya2Rvd24pCi0gICAgKG1hcmtk
b3duLXRzLXNldHVwKSkpCisgICAgKG1hcmtkb3duLXRzLS1zZXQtdXApCisKKyAgICAocGNhc2Ug
bWFya2Rvd24tdHMtZGVmYXVsdC1mb2xkaW5nCisgICAgICAoJ3Nob3ctYWxsIChpZ25vcmUpKQor
ICAgICAgKCdmb2xkLWFsbCAob3V0bGluZS1oaWRlLXN1YmxldmVscyAxKSkKKyAgICAgICgnZm9s
ZC1oZWFkaW5ncyAob3V0bGluZS1zaG93LWFsbCkKKyAgICAgICAgICAgICAgICAgICAgICAob3V0
bGluZS1oaWRlLXJlZ2lvbi1ib2R5IChwb2ludC1taW4pIChwb2ludC1tYXgpKSkpKQorCisgIDs7
IFN1cHBvcnQgZm9yIGV4ZWN1dGluZyBjb21tYW5kcyBpbiBhIGNvZGUtYmxvY2sgY29udGV4dC4K
KworICA7OyBFbmFibGUgdGhlIG1pbm9yIG1vZGUgYG1hcmtkb3duLXRzLWNvZGUtYmxvY2stbW9k
ZScgYW5kIGl0cyBrZXltYXAKKyAgOzsgd2hlbiBwb2ludCBpcyB3aXRoaW4gYSBjb2RlIGJsb2Nr
LgorICAoYWRkLWhvb2sgJ3Bvc3QtY29tbWFuZC1ob29rCisgICAgICAgICAgICAjJ21hcmtkb3du
LXRzLS1lbmFibGUtY29kZS1ibG9jay1tb2RlIG5pbCAnbG9jYWwpCisgIDs7IElmIGBzYXZlLXBs
YWNlLW1vZGUnIG9yIHNpbWlsYXIgaXMgdXNlZCwgcG9pbnQgY291bGQgc3RhcnQgd2l0aGluIGEK
KyAgOzsgY29kZSBibG9jayBzbyBpbml0aWFsaXplIHRoYXQgc3RhdGUuCisgIChydW4td2l0aC1p
ZGxlLXRpbWVyIDAuMDEgbmlsCisgICAgICAgICAgICAgICAgICAgICAgICMnbWFya2Rvd24tdHMt
LWVuYWJsZS1jb2RlLWJsb2NrLW1vZGUpCisgIDs7IEZvciBlYWNoIGVsaWdpYmxlIGNvbW1hbmQs
IGV4ZWN1dGUgaXQgaW4gYSBjb2RlLWJsb2NrIGNvbnRleHQsCisgIDs7IG90aGVyd2lzZSBpbiB0
aGUgYG1hcmtkb3duLXRzLW1vZGUnIGJ1ZmZlcidzIGNvbnRleHQuCisgIChhZGQtaG9vayAncHJl
LWNvbW1hbmQtaG9vaworICAgICAgICAgICAgIydtYXJrZG93bi10cy0tbWF5YmUtcnVuLWNvbW1h
bmQtaW4tY29kZS1ibG9jayBuaWwgJ2xvY2FsKSkKIAogKGRlcml2ZWQtbW9kZS1hZGQtcGFyZW50
cyAnbWFya2Rvd24tdHMtbW9kZSAnKG1hcmtkb3duLW1vZGUpKQogCisoZGVmaW5lLW1pbm9yLW1v
ZGUgbWFya2Rvd24tdHMtY29kZS1ibG9jay1tb2RlCisgICJNb2RlIGVuYWJsZWQgaWYgcG9pbnQg
aXMgd2l0aGluIGEgZmVuY2VkIGNvZGUgYmxvY2suIgorICA6aW50ZXJhY3RpdmUgbmlsKQorCiA7
OzsjIyNhdXRvbG9hZAogKGRlZnVuIG1hcmtkb3duLXRzLW1vZGUtbWF5YmUgKCkKICAgIkVuYWJs
ZSBgbWFya2Rvd24tdHMtbW9kZScgd2hlbiBpdHMgZ3JhbW1hciBpcyBhdmFpbGFibGUuCi1BbHNv
IHByb3Bvc2UgdG8gaW5zdGFsbCB0aGUgZ3JhbW1hciB3aGVuIGB0cmVlc2l0LWVuYWJsZWQtbW9k
ZXMnCi1pcyB0IG9yIGNvbnRhaW5zIHRoZSBtb2RlIG5hbWUuIgorUHJvcG9zZSBwcm9wb3NlIHRv
IGluc3RhbGwgdGhlIGdyYW1tYXIgd2hlbiBgdHJlZXNpdC1lbmFibGVkLW1vZGVzJyBpcyB0Citv
ciBjb250YWlucyB0aGUgbW9kZSBuYW1lLiIKICAgKGRlY2xhcmUtZnVuY3Rpb24gdHJlZXNpdC1s
YW5ndWFnZS1hdmFpbGFibGUtcCAidHJlZXNpdC5jIikKICAgKGlmIChvciAodHJlZXNpdC1sYW5n
dWFnZS1hdmFpbGFibGUtcCAnbWFya2Rvd24pCiAgICAgICAgICAgKGVxIHRyZWVzaXQtZW5hYmxl
ZC1tb2RlcyB0KQpAQCAtNDcxLDcgKzI3OTAsOCBAQCBtYXJrZG93bi10cy1tb2RlLW1heWJlCiA7
OzsjIyNhdXRvbG9hZAogKHdoZW4gKGJvdW5kcCAndHJlZXNpdC1tYWpvci1tb2RlLXJlbWFwLWFs
aXN0KQogICAoYWRkLXRvLWxpc3QgJ2F1dG8tbW9kZS1hbGlzdCAnKCJcXC5tZFxcJyIgLiBtYXJr
ZG93bi10cy1tb2RlLW1heWJlKSkKLSAgOzsgVG8gYmUgYWJsZSB0byB0b2dnbGUgYmV0d2VlbiBh
biBleHRlcm5hbCBwYWNrYWdlIGFuZCBjb3JlIHRzLW1vZGU6CisgIChhZGQtdG8tbGlzdCAnYXV0
by1tb2RlLWFsaXN0ICcoIlxcLm1hcmtkb3duXFwnIiAuIG1hcmtkb3duLXRzLW1vZGUtbWF5YmUp
KQorICAoYWRkLXRvLWxpc3QgJ2F1dG8tbW9kZS1hbGlzdCAnKCJcXC5tZHhcXCciIC4gbWFya2Rv
d24tdHMtbW9kZS1tYXliZSkpCiAgIChhZGQtdG8tbGlzdCAndHJlZXNpdC1tYWpvci1tb2RlLXJl
bWFwLWFsaXN0CiAgICAgICAgICAgICAgICAnKG1hcmtkb3duLW1vZGUgLiBtYXJrZG93bi10cy1t
b2RlKSkpCiAKLS0gCjIuNTMuMAoK
--=-=-=--




Acknowledgement sent to Rahul Martim Juliato <rahuljuliato@HIDDEN>:
New bug report received and forwarded. Copy sent to bug-gnu-emacs@HIDDEN. Full text available.
Report forwarded to bug-gnu-emacs@HIDDEN:
bug#80740; Package emacs. Full text available.
Please note: This is a static page, with minimal formatting, updated once a day.
Click here to see this page with the latest information and nicer formatting.
Last modified: Mon, 13 Apr 2026 12:45:02 UTC

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