[MLton-devel] Porting from Moscow ML

Joe Hurd joe.hurd@cl.cam.ac.uk
Wed, 25 Sep 2002 01:36:24 +0100 (BST)


  This message is in MIME format.  The first part should be readable text,
  while the remaining parts are likely unreadable without MIME-aware tools.
  Send mail to mime@docserver.cac.washington.edu for more info.

---559023410-851401618-1032914184=:4625
Content-Type: TEXT/PLAIN; charset=US-ASCII

Hi there,

I've now finished porting my prover, and, as promised, I've extracted
a benchmark for MLton:

longbottom:~/dev/sml/metis$ mlton benchmark.sml
longbottom:~/dev/sml/metis$ time benchmark &>file
real    19m12.107s
user    14m4.750s
sys     4m51.890s

FYI: this benchmark attacks a bunch of non-trivial problems using the
model elimination first-order proof procedure. I've spent a fairly
long time optimizing this at a "high-level" (meaning data-structures
and algorithms optimizations, as well as exploiting domain knowledge,
but no tricks that speed things up for a particular ML
implementation).

Hope you get it working OK; please tell me if it doesn't seem to be
operating as advertized.

Regards,

Joe


---559023410-851401618-1032914184=:4625
Content-Type: APPLICATION/octet-stream; name="benchmark.sml"
Content-Transfer-Encoding: BASE64
Content-ID: <Pine.SOL.4.44.0209250136230.4625@yellow.csi.cam.ac.uk>
Content-Description: 
Content-Disposition: attachment; filename="benchmark.sml"

KCojbGluZSAwLjAgIiRIT01FL2Rldi9zbWwvYmFzaWMvc3JjL1BQLnNpZyIq
KQooKiBQUCAtLSBwcmV0dHktcHJpbnRpbmcgLS0gZnJvbSB0aGUgU01ML05K
IGxpYnJhcnkgKikKCnNpZ25hdHVyZSBQUCA9CiAgIHNpZwogICAgICB0eXBl
IHBwc3RyZWFtCiAgICAgIHR5cGUgcHBjb25zdW1lciA9IHsgY29uc3VtZXIg
IDogc3RyaW5nIC0+IHVuaXQsCgkJCSBsaW5ld2lkdGggOiBpbnQsCgkJCSBm
bHVzaCAgICAgOiB1bml0IC0+IHVuaXQgfQoKICAgICAgZGF0YXR5cGUgYnJl
YWtfc3R5bGUgPSAKCSBDT05TSVNURU5UCiAgICAgICB8IElOQ09OU0lTVEVO
VAoKICAgICAgdmFsIG1rX3Bwc3RyZWFtICAgIDogcHBjb25zdW1lciAtPiBw
cHN0cmVhbQogICAgICB2YWwgZGVzdF9wcHN0cmVhbSAgOiBwcHN0cmVhbSAt
PiBwcGNvbnN1bWVyCiAgICAgIHZhbCBhZGRfYnJlYWsgICAgICA6IHBwc3Ry
ZWFtIC0+IGludCAqIGludCAtPiB1bml0CiAgICAgIHZhbCBhZGRfbmV3bGlu
ZSAgICA6IHBwc3RyZWFtIC0+IHVuaXQKICAgICAgdmFsIGFkZF9zdHJpbmcg
ICAgIDogcHBzdHJlYW0gLT4gc3RyaW5nIC0+IHVuaXQKICAgICAgdmFsIGJl
Z2luX2Jsb2NrICAgIDogcHBzdHJlYW0gLT4gYnJlYWtfc3R5bGUgLT4gaW50
IC0+IHVuaXQKICAgICAgdmFsIGVuZF9ibG9jayAgICAgIDogcHBzdHJlYW0g
LT4gdW5pdAogICAgICB2YWwgY2xlYXJfcHBzdHJlYW0gOiBwcHN0cmVhbSAt
PiB1bml0CiAgICAgIHZhbCBmbHVzaF9wcHN0cmVhbSA6IHBwc3RyZWFtIC0+
IHVuaXQKICAgICAgdmFsIHdpdGhfcHAgICAgICAgIDogcHBjb25zdW1lciAt
PiAocHBzdHJlYW0gLT4gdW5pdCkgLT4gdW5pdAogICAgICB2YWwgcHBfdG9f
c3RyaW5nICAgOiBpbnQgLT4gKHBwc3RyZWFtIC0+ICdhIC0+IHVuaXQpIC0+
ICdhIC0+IHN0cmluZwogICBlbmQKCigqIAogICBUaGlzIHN0cnVjdHVyZSBw
cm92aWRlcyB0b29scyBmb3IgY3JlYXRpbmcgY3VzdG9taXplZCBPcHBlbi1z
dHlsZQogICBwcmV0dHktcHJpbnRlcnMsIGJhc2VkIG9uIHRoZSB0eXBlIHBw
c3RyZWFtLiAgQSBwcHN0cmVhbSBpcyBhbgogICBvdXRwdXQgc3RyZWFtIHRo
YXQgY29udGFpbnMgcHJldHR5cHJpbnRpbmcgY29tbWFuZHMuICBUaGUgY29t
bWFuZHMKICAgYXJlIHBsYWNlZCBpbiB0aGUgc3RyZWFtIGJ5IHZhcmlvdXMg
ZnVuY3Rpb24gY2FsbHMgbGlzdGVkIGJlbG93LgoKICAgVGhlcmUgZm9sbG93
aW5nIHByaW1pdGl2ZXMgYWRkIGNvbW1hbmRzIHRvIHRoZSBzdHJlYW06CiAg
IGJlZ2luX2Jsb2NrLCBlbmRfYmxvY2ssIGFkZF9zdHJpbmcsIGFkZF9icmVh
aywgYW5kIGFkZF9uZXdsaW5lLgogICBBbGwgY2FsbHMgdG8gYWRkX3N0cmlu
ZywgYWRkX2JyZWFrLCBhbmQgYWRkX25ld2xpbmUgbXVzdCBoYXBwZW4KICAg
YmV0d2VlbiBhIHBhaXIgb2YgY2FsbHMgdG8gYmVnaW5fYmxvY2sgYW5kIGVu
ZF9ibG9jayBtdXN0IGJlCiAgIHByb3Blcmx5IG5lc3RlZCBkeW5hbWljYWxs
eS4gIEFsbCBjYWxscyB0byBiZWdpbl9ibG9jayBhbmQKICAgZW5kX2Jsb2Nr
IG11c3QgYmUgcHJvcGVybHkgbmVzdGVkIChkeW5hbWljYWxseSkuCgogICBb
cHBjb25zdW1lcl0gaXMgdGhlIHR5cGUgb2Ygc2lua3MgZm9yIHByZXR0eS1w
cmludGluZy4gIEEgdmFsdWUgb2YgCiAgIHR5cGUgcHBjb25zdW1lciBpcyBh
IHJlY29yZCAKICAgICAgICAgICAgICAgICB7IGNvbnN1bWVyICA6IHN0cmlu
ZyAtPiB1bml0LAogICAgICAgICAgICAgICAgICAgbGluZXdpZHRoIDogaW50
LAogICAgICAgICAgICAgICAgICAgZmx1c2ggICAgIDogdW5pdCAtPiB1bml0
IH0KICAgb2YgYSBzdHJpbmcgY29uc3VtZXIsIGEgc3BlY2lmaWVkIGxpbmV3
aWR0aCwgYW5kIGEgZmx1c2ggZnVuY3Rpb24KICAgd2hpY2ggaXMgY2FsbGVk
IHdoZW5ldmVyIGZsdXNoX3Bwc3RyZWFtIGlzIGNhbGxlZC4KCiAgIEEgcHJl
dHR5cHJpbnRlciBjYW4gYmUgY2FsbGVkIG91dHJpZ2h0IHRvIHByaW50IGEg
dmFsdWUuICBJbgogICBhZGRpdGlvbiwgYSBwcmV0dHlwcmludGVyIGZvciBh
IGJhc2UgdHlwZSBvciBudWxsYXJ5IGRhdGF0eXBlIHR5CiAgIGNhbiBiZSBp
bnN0YWxsZWQgaW4gdGhlIHRvcC1sZXZlbCBzeXN0ZW0uICBUaGVuIHRoZSBp
bnN0YWxsZWQKICAgcHJldHR5cHJpbnRlciB3aWxsIGJlIGludm9rZWQgYXV0
b21hdGljYWxseSB3aGVuZXZlciBhIHZhbHVlIG9mCiAgIHR5cGUgdHkgaXMg
dG8gYmUgcHJpbnRlZC4KCiAgIFticmVha19zdHlsZV0gaXMgdGhlIHR5cGUg
b2YgbGluZSBicmVhayBzdHlsZXMgZm9yIGJsb2NrczoKCiAgIFtDT05TSVNU
RU5UXSBzcGVjaWZpZXMgdGhhdCBpZiBhbnkgbGluZSBicmVhayBvY2N1cnMg
aW5zaWRlIHRoZQogICBibG9jaywgdGhlbiBhbGwgaW5kaWNhdGVkIGxpbmUg
YnJlYWtzIG9jY3VyLgoKICAgW0lOQ09OU0lTVEVOVF0gc3BlY2lmaWVzIHRo
YXQgYnJlYWtzIHdpbGwgYmUgaW5zZXJ0ZWQgdG8gb25seSB0bwogICBhdm9p
ZCBvdmVyZnVsbCBsaW5lcy4KCiAgIFtta19wcHN0cmVhbSB7Y29uc3VtZXIs
IGxpbmV3aWR0aCwgZmx1c2h9XSBjcmVhdGVzIGEgbmV3IHBwc3RyZWFtCiAg
IHdoaWNoIGludm9rZXMgdGhlIGNvbnN1bWVyIHRvIG91dHB1dCB0ZXh0LCBw
dXR0aW5nIGF0IG1vc3QKICAgbGluZXdpZHRoIGNoYXJhY3RlcnMgb24gZWFj
aCBsaW5lLgoKICAgW2Rlc3RfcHBzdHJlYW0gcHBzdHJtXSBleHRyYWN0cyB0
aGUgbGluZXdpZHRoLCBmbHVzaCBmdW5jdGlvbiwgYW5kCiAgIGNvbnN1bWVy
IGZyb20gYSBwcHN0cmVhbS4KCiAgIFthZGRfYnJlYWsgcHBzdHJtIChzaXpl
LCBvZmZzZXQpXSBub3RpZmllcyB0aGUgcHJldHR5LXByaW50ZXIgdGhhdAog
ICBhIGxpbmUgYnJlYWsgaXMgcG9zc2libGUgYXQgdGhpcyBwb2ludC4gIAog
ICAqIFdoZW4gdGhlIGN1cnJlbnQgYmxvY2sgc3R5bGUgaXMgQ09OU0lTVEVO
VDoKICAgICAgKiogaWYgdGhlIGVudGlyZSBibG9jayBmaXRzIG9uIHRoZSBy
ZW1haW5kZXIgb2YgdGhlIGxpbmUsIHRoZW4KICAgICAgICAgb3V0cHV0IHNp
emUgc3BhY2VzOyBlbHNlCiAgICAgICoqIGluY3JlYXNlIHRoZSBjdXJyZW50
IGluZGVudGF0aW9uIGJ5IHRoZSBibG9jayBvZmZzZXQ7CiAgICAgICAgIGZ1
cnRoZXIgaW5kZW50IGV2ZXJ5IGl0ZW0gb2YgdGhlIGJsb2NrIGJ5IG9mZnNl
dCwgYW5kIGFkZAogICAgICAgICBvbmUgbmV3bGluZSBhdCBldmVyeSBhZGRf
YnJlYWsgaW4gdGhlIGJsb2NrLgogICAqIFdoZW4gdGhlIGN1cnJlbnQgYmxv
Y2sgc3R5bGUgaXMgSU5DT05TSVNURU5UOgogICAgICAqKiBpZiB0aGUgbmV4
dCBjb21wb25lbnQgb2YgdGhlIGJsb2NrIGZpdHMgb24gdGhlIHJlbWFpbmRl
ciBvZgogICAgICAgICB0aGUgbGluZSwgdGhlbiBvdXRwdXQgc2l6ZSBzcGFj
ZXM7IGVsc2UKICAgICAgKiogaXNzdWUgYSBuZXdsaW5lIGFuZCBpbmRlbnQg
dG8gdGhlIGN1cnJlbnQgaW5kZW50YXRpb24gbGV2ZWwKICAgICAgICAgcGx1
cyB0aGUgYmxvY2sgb2Zmc2V0IHBsdXMgdGhlIG9mZnNldC4KCiAgIFthZGRf
bmV3bGluZSBwcHN0cm1dIGlzc3VlcyBhIG5ld2xpbmUuCgogICBbYWRkX3N0
cmluZyBwcHN0cm0gc3RyXSBvdXRwdXRzIHRoZSBzdHJpbmcgc3RyIHRvIHRo
ZSBwcHN0cmVhbS4KCiAgIFtiZWdpbl9ibG9jayBwcHN0cm0gc3R5bGUgYmxv
Y2tvZmZzZXRdIGJlZ2lucyBhIG5ldyBibG9jayBhbmQKICAgbGV2ZWwgb2Yg
aW5kZW50YXRpb24sIHdpdGggdGhlIGdpdmVuIHN0eWxlIGFuZCBibG9jayBv
ZmZzZXQuCgogICBbZW5kX2Jsb2NrIHBwc3RybV0gY2xvc2VzIHRoZSBjdXJy
ZW50IGJsb2NrLiAgCgogICBbY2xlYXJfcHBzdHJlYW0gcHBzdHJtXSByZXN0
YXJ0cyB0aGUgc3RyZWFtLCB3aXRob3V0IGFmZmVjdGluZyB0aGUKICAgdW5k
ZXJseWluZyBjb25zdW1lci4KCiAgIFtmbHVzaF9wcHN0cmVhbSBwcHN0cm1d
IGV4ZWN1dGVzIGFueSByZW1haW5pbmcgY29tbWFuZHMgaW4gdGhlCiAgIHBw
c3RyZWFtICh0aGF0IGlzLCBmbHVzaGVzIGN1cnJlbnRseSBhY2N1bXVsYXRl
ZCBvdXRwdXQgdG8gdGhlCiAgIGNvbnN1bWVyIGFzc29jaWF0ZWQgd2l0aCBw
cHN0cm0pOyBleGVjdXRlcyB0aGUgZmx1c2ggZnVuY3Rpb24KICAgYXNzb2Np
YXRlZCB3aXRoIHRoZSBjb25zdW1lcjsgYW5kIGNhbGxzIGNsZWFyX3Bwc3Ry
ZWFtLgoKICAgW3dpdGhfcHAgY29uc3VtZXIgZl0gbWFrZXMgYSBuZXcgcHBz
dHJlYW0gZnJvbSB0aGUgY29uc3VtZXIgYW5kCiAgIGFwcGxpZXMgZiAod2hp
Y2ggY2FuIGJlIHRob3VnaHQgb2YgYXMgYSBwcm9kdWNlcikgdG8gdGhhdAog
ICBwcHN0cmVhbSwgdGhlbiBmbHVzaGVkIHRoZSBwcHN0cmVhbSBhbmQgcmV0
dXJucyB0aGUgdmFsdWUgb2YgZi4KCiAgIFtwcF90b19zdHJpbmcgbGluZXdp
ZHRoIHByaW50aXQgeF0gY29uc3RydWN0cyBhIG5ldyBwcHN0cmVhbQogICBw
cHN0cm0gd2hvc2UgY29uc3VtZXIgYWNjdW11bGF0ZXMgdGhlIG91dHB1dCBp
biBhIHN0cmluZyBzLiAgVGhlbgogICBldmFsdWF0ZXMgKHByaW50aXQgcHBz
dHJtIHgpIGFuZCBmaW5hbGx5IHJldHVybnMgdGhlIHN0cmluZyBzLgoKICAg
CiAgIEV4YW1wbGUgMTogQSBzaW1wbGUgcHJldHR5cHJpbnRlciBmb3IgQm9v
bGVhbnM6CgogICAgICAgbG9hZCAiUFAiOwogICAgICAgZnVuIHBwYm9vbCBw
cHMgZCA9IAogICAgICAgICAgIGxldCBvcGVuIFBQCiAgICAgICAgICAgaW4K
ICAgICAgICAgICAgICAgYmVnaW5fYmxvY2sgcHBzIElOQ09OU0lTVEVOVCA2
OyAKICAgICAgICAgICAgICAgYWRkX3N0cmluZyBwcHMgKGlmIGQgdGhlbiAi
cmlnaHQiIGVsc2UgIndyb25nIik7CiAgICAgICAgICAgICAgIGVuZF9ibG9j
ayBwcHMKICAgICAgICAgICBlbmQ7CgogICBOb3cgb25lIG1heSBkZWZpbmUg
YSBwcHN0cmVhbSB0byBwcmludCB0bywgYW5kIGV4ZXJjaXNlIGl0OgoKICAg
ICAgIHZhbCBwcHN0cm0gPSBQUC5ta19wcHN0cmVhbSB7Y29uc3VtZXIgID0g
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZuIHMgPT4g
VGV4dElPLm91dHB1dChUZXh0SU8uc3RkT3V0LCBzKSwgCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGxpbmV3aWR0aCA9IDcyLAogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmbHVzaCAgICAgPSAK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZuICgpID0+
IFRleHRJTy5mbHVzaE91dCBUZXh0SU8uc3RkT3V0fTsKCiAgICAgICBmdW4g
cHBiIGIgPSAocHBib29sIHBwc3RybSBiOyBQUC5mbHVzaF9wcHN0cmVhbSBw
cHN0cm0pOwoKICAgICAgIC0gcHBiIGZhbHNlOwogICAgICAgd3Jvbmc+IHZh
bCBpdCA9ICgpIDogdW5pdCAgIAoKICAgVGhlIHByZXR0eXByaW50ZXIgbWF5
IGFsc28gYmUgaW5zdGFsbGVkIGluIHRoZSB0b3BsZXZlbCBzeXN0ZW07CiAg
IHRoZW4gaXQgd2lsbCBiZSB1c2VkIHRvIHByaW50IGFsbCBleHByZXNzaW9u
cyBvZiB0eXBlIGJvb2wKICAgc3Vic2VxdWVudGx5IGNvbXB1dGVkOgoKICAg
ICAgIC0gaW5zdGFsbFBQIHBwYm9vbDsKICAgICAgID4gdmFsIGl0ID0gKCkg
OiB1bml0CiAgICAgICAtIDE9MDsKICAgICAgID4gdmFsIGl0ID0gd3Jvbmcg
OiBib29sCiAgICAgICAtIDE9MTsKICAgICAgID4gdmFsIGl0ID0gcmlnaHQg
OiBib29sCgogICBTZWUgbGlicmFyeSBNZXRhIGZvciBhIGRlc2NyaXB0aW9u
IG9mIGluc3RhbGxQUC4KCgogICBFeGFtcGxlIDI6IFByZXR0eXByaW50aW5n
IHNpbXBsZSBleHByZXNzaW9ucyAoZXhhbXBsZXMvcHJldHR5L3BwZXhwci5z
bWwpOgoKICAgICAgIGRhdGF0eXBlIGV4cHIgPSAKICAgICAgICAgICBDc3Qg
b2YgaW50IAogICAgICAgICB8IE5lZyBvZiBleHByCiAgICAgICAgIHwgUGx1
cyBvZiBleHByICogZXhwcgoKICAgICAgIGZ1biBwcGV4cHIgcHBzIGUwID0g
CiAgICAgICAgICAgbGV0IG9wZW4gUFAKICAgICAgICAgICAgICAgZnVuIHBw
ZSAoQ3N0IGkpICAgICAgICA9IGFkZF9zdHJpbmcgcHBzIChJbnQudG9TdHJp
bmcgaSkKICAgICAgICAgICAgICAgICB8IHBwZSAoTmVnIGUpICAgICAgICA9
IChhZGRfc3RyaW5nIHBwcyAifiI7IHBwZSBlKQogICAgICAgICAgICAgICAg
IHwgcHBlIChQbHVzKGUxLCBlMikpID0gKGJlZ2luX2Jsb2NrIHBwcyBDT05T
SVNURU5UIDA7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgYWRkX3N0cmluZyBwcHMgIigiOwogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHBwZSBlMTsgCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgYWRkX3N0cmluZyBwcHMgIiAr
ICI7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
YWRkX2JyZWFrIHBwcyAoMCwgMSk7CiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgcHBlIGUyOyAKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBhZGRfc3RyaW5nIHBwcyAiKSI7CiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2Js
b2NrIHBwcykKICAgICAgICAgICBpbgogICAgICAgICAgICAgICBiZWdpbl9i
bG9jayBwcHMgSU5DT05TSVNURU5UIDA7IAogICAgICAgICAgICAgICBwcGUg
ZTA7CiAgICAgICAgICAgICAgIGVuZF9ibG9jayBwcHMKICAgICAgICAgICBl
bmQKCiAgICAgICB2YWwgXyA9IGluc3RhbGxQUCBwcGV4cHI7CgogICAgICAg
KCogU29tZSBleGFtcGxlIHZhbHVlczogKikKCiAgICAgICB2YWwgZTEgPSBD
c3QgMTsKICAgICAgIHZhbCBlMiA9IENzdCAyOwogICAgICAgdmFsIGUzID0g
UGx1cyhlMSwgTmVnIGUyKTsKICAgICAgIHZhbCBlNCA9IFBsdXMoTmVnIGUz
LCBlMyk7CiAgICAgICB2YWwgZTUgPSBQbHVzKE5lZyBlNCwgZTQpOwogICAg
ICAgdmFsIGU2ID0gUGx1cyhlNSwgZTUpOwogICAgICAgdmFsIGU3ID0gUGx1
cyhlNiwgZTYpOwogICAgICAgdmFsIGU4ID0gCiAgICAgICAgICAgUGx1cyhl
MywgUGx1cyhlMywgUGx1cyhlMywgUGx1cyhlMywgUGx1cyhlMywgUGx1cyhl
MywgZTcpKSkpKSk7CiopCigqI2xpbmUgMC4wICIkSE9NRS9kZXYvc21sL2Jh
c2ljL3NyYy9QUC5zbWwiKikKKCogUFAgLS0gT3BwZW4tc3R5bGUgcHJldHR5
cHJpbnRlcnMuCiAqCiAqIE1vZGlmaWVkIGZvciBNaWx0b24gTUwgZnJvbSBT
TUwvTkogTGlicmFyeSB2ZXJzaW9uIDAuMgogKgogKiBDT1BZUklHSFQgKGMp
IDE5OTIgYnkgQVQmVCBCZWxsIExhYm9yYXRvcmllcy4KICogU2VlIGZpbGUg
bW9zbWwvY29weXJnaHQvY29weXJnaHQuYXR0IGZvciBkZXRhaWxzLgogKikK
CigqIHRoZSBmdW5jdGlvbnMgYW5kIGRhdGEgZm9yIGFjdHVhbGx5IGRvaW5n
IHByaW50aW5nLiAqKQoKc3RydWN0dXJlIFBQIDo+IFBQID0Kc3RydWN0Cgpv
cGVuIEFycmF5IAppbmZpeCA5IHN1YgoKKCogdGhlIHF1ZXVlIGxpYnJhcnks
IGZvcm1lcmx5IGluIHVuaXQgUHBxdWV1ZSAqKQoKZGF0YXR5cGUgUWVuZCA9
IFFiYWNrIHwgUWZyb250CgpleGNlcHRpb24gUVVFVUVfRlVMTApleGNlcHRp
b24gUVVFVUVfRU1QVFkKZXhjZXB0aW9uIFJFUVVFU1RFRF9RVUVVRV9TSVpF
X1RPT19TTUFMTAoKbG9jYWwgCiAgICBmdW4gKysgaSBuID0gKGkgKyAxKSBt
b2QgbgogICAgZnVuIC0tIGkgbiA9IChpIC0gMSkgbW9kIG4KaW4KCmFic3R5
cGUgJ2EgcXVldWUgPSBRVUVVRSBvZiB7ZWxlbXM6ICdhIGFycmF5LCAoKiB0
aGUgY29udGVudHMgKikKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBm
cm9udDogaW50IHJlZiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBi
YWNrOiBpbnQgcmVmLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNp
emU6IGludH0gICgqIGZpeGVkIHNpemUgb2YgZWxlbWVudCBhcnJheSAqKQp3
aXRoCgogIGZ1biBpc19lbXB0eSAoUVVFVUV7ZnJvbnQ9cmVmIH4xLCBiYWNr
PXJlZiB+MSwuLi59KSA9IHRydWUKICAgIHwgaXNfZW1wdHkgXyA9IGZhbHNl
CgogIGZ1biBta19xdWV1ZSBuIGluaXRfdmFsID0KICAgICAgaWYgKG4gPCAy
KQogICAgICB0aGVuIHJhaXNlIFJFUVVFU1RFRF9RVUVVRV9TSVpFX1RPT19T
TUFMTAogICAgICBlbHNlIFFVRVVFe2VsZW1zPWFycmF5KG4sIGluaXRfdmFs
KSwgZnJvbnQ9cmVmIH4xLCBiYWNrPXJlZiB+MSwgc2l6ZT1ufQoKICBmdW4g
Y2xlYXJfcXVldWUgKFFVRVVFe2Zyb250LGJhY2ssLi4ufSkgPSAoZnJvbnQg
Oj0gfjE7IGJhY2sgOj0gfjEpCgogIGZ1biBxdWV1ZV9hdCBRZnJvbnQgKFFV
RVVFe2VsZW1zLGZyb250LC4uLn0pID0gZWxlbXMgc3ViICFmcm9udAogICAg
fCBxdWV1ZV9hdCBRYmFjayAoUVVFVUV7ZWxlbXMsYmFjaywuLi59KSA9IGVs
ZW1zIHN1YiAhYmFjawoKICBmdW4gZW5fcXVldWUgUWZyb250IGl0ZW0gKFEg
YXMgUVVFVUV7ZWxlbXMsZnJvbnQsYmFjayxzaXplfSkgPQogICAgICAgIGlm
IChpc19lbXB0eSBRKQogICAgICAgIHRoZW4gKGZyb250IDo9IDA7IGJhY2sg
Oj0gMDsKICAgICAgICAgICAgICB1cGRhdGUoZWxlbXMsMCxpdGVtKSkKICAg
ICAgICBlbHNlIGxldCB2YWwgaSA9IC0tKCFmcm9udCkgc2l6ZQogICAgICAg
ICAgICAgaW4gIGlmIChpID0gIWJhY2spCiAgICAgICAgICAgICAgICAgdGhl
biByYWlzZSBRVUVVRV9GVUxMCiAgICAgICAgICAgICAgICAgZWxzZSAodXBk
YXRlKGVsZW1zLGksaXRlbSk7IGZyb250IDo9IGkpCiAgICAgICAgICAgICBl
bmQKICAgIHwgZW5fcXVldWUgUWJhY2sgaXRlbSAoUSBhcyBRVUVVRXtlbGVt
cyxmcm9udCxiYWNrLHNpemV9KSA9CiAgICAgICAgaWYgKGlzX2VtcHR5IFEp
CiAgICAgICAgdGhlbiAoZnJvbnQgOj0gMDsgYmFjayA6PSAwOwogICAgICAg
ICAgICAgIHVwZGF0ZShlbGVtcywwLGl0ZW0pKQogICAgICAgIGVsc2UgbGV0
IHZhbCBpID0gKysoIWJhY2spIHNpemUKICAgICAgICAgICAgIGluICBpZiAo
aSA9ICFmcm9udCkKICAgICAgICAgICAgICAgICB0aGVuIHJhaXNlIFFVRVVF
X0ZVTEwKICAgICAgICAgICAgICAgICBlbHNlICh1cGRhdGUoZWxlbXMsaSxp
dGVtKTsgYmFjayA6PSBpKQogICAgICAgICAgICAgZW5kCgogIGZ1biBkZV9x
dWV1ZSBRZnJvbnQgKFEgYXMgUVVFVUV7ZnJvbnQsYmFjayxzaXplLC4uLn0p
ID0KICAgICAgICBpZiAoIWZyb250ID0gIWJhY2spICgqIHVuaXRhcnkgcXVl
dWUgKikKICAgICAgICB0aGVuIGNsZWFyX3F1ZXVlIFEKICAgICAgICBlbHNl
IGZyb250IDo9ICsrKCFmcm9udCkgc2l6ZQogICAgfCBkZV9xdWV1ZSBRYmFj
ayAoUSBhcyBRVUVVRXtmcm9udCxiYWNrLHNpemUsLi4ufSkgPQogICAgICAg
IGlmICghZnJvbnQgPSAhYmFjaykKICAgICAgICB0aGVuIGNsZWFyX3F1ZXVl
IFEKICAgICAgICBlbHNlIGJhY2sgOj0gLS0oIWJhY2spIHNpemUKCmVuZCAo
KiBhYnN0eXBlIHF1ZXVlICopCmVuZCAoKiBsb2NhbCAgICopCgoKdmFsIG1h
Z2ljOiAnYSAtPiAnYSA9IGZuIHggPT4geAoKKCogZXhjZXB0aW9uIFBQX0ZB
SUwgb2Ygc3RyaW5nICopCgpkYXRhdHlwZSBicmVha19zdHlsZSA9IENPTlNJ
U1RFTlQgfCBJTkNPTlNJU1RFTlQKCmRhdGF0eXBlIGJyZWFrX2luZm8KICA9
IEZJVFMKICB8IFBBQ0tfT05UT19MSU5FIG9mIGludAogIHwgT05FX1BFUl9M
SU5FIG9mIGludAoKKCogU29tZSBnbG9iYWwgdmFsdWVzICopCnZhbCBJTkZJ
TklUWSA9IDk5OTk5OQoKYWJzdHlwZSBpbmRlbnRfc3RhY2sgPSBJc3RhY2sg
b2YgYnJlYWtfaW5mbyBsaXN0IHJlZgp3aXRoCiAgZnVuIG1rX2luZGVudF9z
dGFjaygpID0gSXN0YWNrIChyZWYoW106YnJlYWtfaW5mbyBsaXN0KSkKICBm
dW4gY2xlYXJfaW5kZW50X3N0YWNrIChJc3RhY2sgc3RrKSA9IChzdGsgOj0g
KFtdOmJyZWFrX2luZm8gbGlzdCkpCiAgZnVuIHRvcCAoSXN0YWNrIHN0aykg
PQogICAgICBjYXNlICFzdGsKICAgICAgICBvZiBuaWwgPT4gcmFpc2UgRmFp
bCAiUFAtZXJyb3I6IHRvcDogYmFkbHkgZm9ybWVkIGJsb2NrIgoJIHwgeDo6
XyA9PiB4CiAgZnVuIHB1c2ggKHgsKElzdGFjayBzdGspKSA9IHN0ayA6PSB4
OjooIXN0aykKICBmdW4gcG9wIChJc3RhY2sgc3RrKSA9CiAgICAgIGNhc2Ug
IXN0awogICAgICAgIG9mIG5pbCA9PiByYWlzZSBGYWlsICJQUC1lcnJvcjog
cG9wOiBiYWRseSBmb3JtZWQgYmxvY2siCgkgfCBfOjpyZXN0ID0+IHN0ayA6
PSByZXN0CmVuZAoKKCogVGhlIGRlbGltX3N0YWNrIGlzIHVzZWQgdG8gY29t
cHV0ZSB0aGUgc2l6ZSBvZiBibG9ja3MuIEl0IGlzCiAgIGEgc3RhY2sgb2Yg
aW5kaWNlcyBpbnRvIHRoZSB0b2tlbiBidWZmZXIuIFRoZSBpbmRpY2VzIG9u
bHkgcG9pbnQgdG8KICAgQkJzLCBFcywgYW5kIEJScy4gV2UgcHVzaCBCQnMg
YW5kIEVzIG9udG8gdGhlIHN0YWNrIHVudGlsIGEgQlIKICAgaXMgZW5jb3Vu
dGVyZWQuIFRoZW4gd2UgY29tcHV0ZSBzaXplcyBhbmQgcG9wLiBXaGVuIHdl
IGVuY291bnRlcgogICBhIEJSIGluIHRoZSBtaWRkbGUgb2YgYSBibG9jaywg
d2UgY29tcHV0ZSB0aGUgRGlzdGFuY2VfdG9fbmV4dF9icmVhawogICBvZiB0
aGUgcHJldmlvdXMgQlIgaW4gdGhlIGJsb2NrLCBpZiB0aGVyZSB3YXMgb25l
LgoKICAgV2UgbmVlZCB0byBiZSBhYmxlIHRvIGRlbGV0ZSBmcm9tIHRoZSBi
b3R0b20gb2YgdGhlIGRlbGltX3N0YWNrLCBzbwogICB3ZSB1c2UgYSBxdWV1
ZSwgdHJlYXRlZCB3aXRoIGEgc3RhY2sgZGlzY2lwbGluZSwgaS5lLiwgd2Ug
b25seSBhZGQKICAgaXRlbXMgYXQgdGhlIGhlYWQgb2YgdGhlIHF1ZXVlLCBi
dXQgY2FuIGRlbGV0ZSBmcm9tIHRoZSBmcm9udCBvcgogICBiYWNrIG9mIHRo
ZSBxdWV1ZS4KKikKYWJzdHlwZSBkZWxpbV9zdGFjayA9IERzdGFjayBvZiBp
bnQgcXVldWUKd2l0aAogIGZ1biBuZXdfZGVsaW1fc3RhY2sgaSA9IERzdGFj
ayhta19xdWV1ZSBpIH4xKQogIGZ1biByZXNldF9kZWxpbV9zdGFjayAoRHN0
YWNrIHEpID0gY2xlYXJfcXVldWUgcQoKICBmdW4gcG9wX2RlbGltX3N0YWNr
IChEc3RhY2sgZCkgPSBkZV9xdWV1ZSBRZnJvbnQgZAogIGZ1biBwb3BfYm90
dG9tX2RlbGltX3N0YWNrIChEc3RhY2sgZCkgPSBkZV9xdWV1ZSBRYmFjayBk
CgogIGZ1biBwdXNoX2RlbGltX3N0YWNrKGksRHN0YWNrIGQpID0gZW5fcXVl
dWUgUWZyb250IGkgZAogIGZ1biB0b3BfZGVsaW1fc3RhY2sgKERzdGFjayBk
KSA9IHF1ZXVlX2F0IFFmcm9udCBkCiAgZnVuIGJvdHRvbV9kZWxpbV9zdGFj
ayAoRHN0YWNrIGQpID0gcXVldWVfYXQgUWJhY2sgZAogIGZ1biBkZWxpbV9z
dGFja19pc19lbXB0eSAoRHN0YWNrIGQpID0gaXNfZW1wdHkgZAplbmQKCgp0
eXBlIGJsb2NrX2luZm8gPSB7IEJsb2NrX3NpemUgOiBpbnQgcmVmLAogICAg
ICAgICAgICAgICAgICAgIEJsb2NrX29mZnNldCA6IGludCwKICAgICAgICAg
ICAgICAgICAgICBIb3dfdG9faW5kZW50IDogYnJlYWtfc3R5bGUgfQoKCigq
IERpc3RhbmNlX3RvX25leHRfYnJlYWsgaW5jbHVkZXMgTnVtYmVyX29mX2Js
YW5rcy4gQnJlYWtfb2Zmc2V0IGlzCiAgIGEgbG9jYWwgb2Zmc2V0IGZvciB0
aGUgYnJlYWsuIEJCIHJlcHJlc2VudHMgYSBzZXF1ZW5jZSBvZiBjb250aWd1
b3VzCiAgIEJlZ2lucy4gRSByZXByZXNlbnRzIGEgc2VxdWVuY2Ugb2YgY29u
dGlndW91cyBFbmRzLgoqKQpkYXRhdHlwZSBwcF90b2tlbgogID0gUyBvZiAg
e1N0cmluZyA6IHN0cmluZywgTGVuZ3RoIDogaW50fQogIHwgQkIgb2Yge1Bi
bG9ja3MgOiBibG9ja19pbmZvIGxpc3QgcmVmLCAgICgqIFByb2Nlc3NlZCAg
ICopCiAgICAgICAgICAgVWJsb2NrcyA6IGJsb2NrX2luZm8gbGlzdCByZWZ9
ICAoKiBVbnByb2Nlc3NlZCAqKQogIHwgRSBvZiAge1BlbmQgOiBpbnQgcmVm
LCBVZW5kIDogaW50IHJlZn0KICB8IEJSIG9mIHtEaXN0YW5jZV90b19uZXh0
X2JyZWFrIDogaW50IHJlZiwKICAgICAgICAgICBOdW1iZXJfb2ZfYmxhbmtz
IDogaW50LAogICAgICAgICAgIEJyZWFrX29mZnNldCA6IGludH0KCgooKiBU
aGUgaW5pdGlhbCB2YWx1ZXMgaW4gdGhlIHRva2VuIGJ1ZmZlciAqKQp2YWwg
aW5pdGlhbF90b2tlbl92YWx1ZSA9IFN7U3RyaW5nID0gIiIsIExlbmd0aCA9
IDB9CgooKiB0eXBlIHBwc3RyZWFtID0gR2VuZXJhbC5wcHN0cmVhbTsgKikK
ZGF0YXR5cGUgcHBzdHJlYW1fID0KICBQUFMgb2YKICAgICB7Y29uc3VtZXIg
OiBzdHJpbmcgLT4gdW5pdCwKICAgICAgbGluZXdpZHRoIDogaW50LAogICAg
ICBmbHVzaCA6IHVuaXQgLT4gdW5pdCwKICAgICAgdGhlX3Rva2VuX2J1ZmZl
ciA6IHBwX3Rva2VuIGFycmF5LAogICAgICB0aGVfZGVsaW1fc3RhY2sgOiBk
ZWxpbV9zdGFjaywKICAgICAgdGhlX2luZGVudF9zdGFjayA6IGluZGVudF9z
dGFjaywKICAgICAgKysgOiBpbnQgcmVmIC0+IHVuaXQsICAgICgqIGluY3Jl
bWVudCBjaXJjdWxhciBidWZmZXIgaW5kZXggKikKICAgICAgc3BhY2VfbGVm
dCA6IGludCByZWYsICAgICgqIHJlbWFpbmluZyBjb2x1bW5zIG9uIHBhZ2Ug
KikKICAgICAgbGVmdF9pbmRleCA6IGludCByZWYsICAgICgqIGluc2VydGlv
biBpbmRleCAqKQogICAgICByaWdodF9pbmRleCA6IGludCByZWYsICAgKCog
b3V0cHV0IGluZGV4ICopCiAgICAgIGxlZnRfc3VtIDogaW50IHJlZiwgICAg
ICAoKiBzaXplIG9mIHN0cmluZ3MgYW5kIHNwYWNlcyBpbnNlcnRlZCAqKQog
ICAgICByaWdodF9zdW0gOiBpbnQgcmVmfSAgICAgKCogc2l6ZSBvZiBzdHJp
bmdzIGFuZCBzcGFjZXMgcHJpbnRlZCAqKQoKdHlwZSBwcHN0cmVhbSA9IHBw
c3RyZWFtXwoKdHlwZSBwcGNvbnN1bWVyID0ge2NvbnN1bWVyIDogc3RyaW5n
IC0+IHVuaXQsCgkJICAgbGluZXdpZHRoIDogaW50LAoJCSAgIGZsdXNoIDog
dW5pdCAtPiB1bml0fQoKZnVuIG1rX3Bwc3RyZWFtIHtjb25zdW1lcixsaW5l
d2lkdGgsZmx1c2h9ID0KICAgIGlmIChsaW5ld2lkdGg8NSkKICAgIHRoZW4g
cmFpc2UgRmFpbCAiUFAtZXJyb3I6IGxpbmV3aWR0aCB0b29fc21hbGwiCiAg
ICBlbHNlIGxldCB2YWwgYnVmX3NpemUgPSAzKmxpbmV3aWR0aAogICAgICAg
ICAgaW4gbWFnaWMoCiAgICAgICAgICAgICBQUFN7Y29uc3VtZXIgPSBjb25z
dW1lciwKCQkgbGluZXdpZHRoID0gbGluZXdpZHRoLAoJCSBmbHVzaCA9IGZs
dXNoLAoJCSB0aGVfdG9rZW5fYnVmZmVyID0gYXJyYXkoYnVmX3NpemUsIGlu
aXRpYWxfdG9rZW5fdmFsdWUpLAoJCSB0aGVfZGVsaW1fc3RhY2sgPSBuZXdf
ZGVsaW1fc3RhY2sgYnVmX3NpemUsCgkJIHRoZV9pbmRlbnRfc3RhY2sgPSBt
a19pbmRlbnRfc3RhY2sgKCksCgkJICsrID0gZm4gaSA9PiBpIDo9ICgoIWkg
KyAxKSBtb2QgYnVmX3NpemUpLAoJCSBzcGFjZV9sZWZ0ID0gcmVmIGxpbmV3
aWR0aCwKCQkgbGVmdF9pbmRleCA9IHJlZiAwLCByaWdodF9pbmRleCA9IHJl
ZiAwLAoJCSBsZWZ0X3N1bSA9IHJlZiAwLCByaWdodF9zdW0gPSByZWYgMH0K
ICAgICAgICAgICAgICAgICApIDogcHBzdHJlYW0KCSBlbmQKCmZ1biBkZXN0
X3Bwc3RyZWFtKHBwcyA6IHBwc3RyZWFtKSA9CiAgbGV0IHZhbCBQUFN7Y29u
c3VtZXIsbGluZXdpZHRoLGZsdXNoLCAuLi59ID0gbWFnaWMgcHBzCiAgaW4g
e2NvbnN1bWVyPWNvbnN1bWVyLGxpbmV3aWR0aD1saW5ld2lkdGgsZmx1c2g9
Zmx1c2h9IGVuZAoKbG9jYWwKICB2YWwgc3BhY2UgPSAiICIKICBmdW4gbWtf
c3BhY2UgKDAscykgPSBTdHJpbmcuY29uY2F0IHMKICAgIHwgbWtfc3BhY2Ug
KG4scykgPSBta19zcGFjZSgobi0xKSwgKHNwYWNlOjpzKSkKICB2YWwgc3Bh
Y2VfdGFibGUgPSBWZWN0b3IudGFidWxhdGUoMTAwLCBmbiBpID0+IG1rX3Nw
YWNlKGksW10pKQogIGZ1biBuc3BhY2VzIG4gPSBWZWN0b3Iuc3ViKHNwYWNl
X3RhYmxlLCBuKQogICAgICBoYW5kbGUgR2VuZXJhbC5TdWJzY3JpcHQgPT4K
CWlmIG4gPCAwCgl0aGVuICIiCgllbHNlIGxldCB2YWwgbjIgPSBuIGRpdiAy
CgkJIHZhbCBuMl9zcGFjZXMgPSBuc3BhY2VzIG4yCgkJIHZhbCBleHRyYSA9
IGlmIChuID0gKDIqbjIpKSB0aGVuICIiIGVsc2Ugc3BhY2UKICAgICAgICAg
ICAgICBpbiBTdHJpbmcuY29uY2F0IFtuMl9zcGFjZXMsIG4yX3NwYWNlcywg
ZXh0cmFdCgkgICAgIGVuZAppbgogIGZ1biBjcl9pbmRlbnQgKG9mbiwgaSkg
PSBvZm4gKCJcbiJeKG5zcGFjZXMgaSkpCiAgZnVuIGluZGVudCAob2ZuLGkp
ID0gb2ZuIChuc3BhY2VzIGkpCmVuZAoKCigqIFByaW50IGEgdGhlIGZpcnN0
IG1lbWJlciBvZiBhIGNvbnRpZ3VvdXMgc2VxdWVuY2Ugb2YgQmVnaW5zLiBJ
ZiB0aGVyZQogICBhcmUgInByb2Nlc3NlZCIgQmVnaW5zLCB0aGVuIHRha2Ug
dGhlIGZpcnN0IG9mZiB0aGUgbGlzdC4gSWYgdGhlcmUgYXJlCiAgIG5vIHBy
b2Nlc3NlZCBCZWdpbnMsIHRha2UgdGhlIGxhc3QgbWVtYmVyIG9mZiB0aGUg
InVucHJvY2Vzc2VkIiBsaXN0LgogICBUaGlzIHdvcmtzIGJlY2F1c2UgdGhl
IHVucHJvY2Vzc2VkIGxpc3QgaXMgdHJlYXRlZCBhcyBhIHN0YWNrLCB0aGUK
ICAgcHJvY2Vzc2VkIGxpc3QgYXMgYSBGSUZPIHF1ZXVlLiBIb3cgY2FuIGFu
IGl0ZW0gb24gdGhlIHVucHJvY2Vzc2VkIGxpc3QKICAgYmUgcHJpbnRhYmxl
PyBCZWNhdXNlIG9mIHdoYXQgZ29lcyBvbiBpbiBhZGRfc3RyaW5nLiBTZWUg
dGhlcmUgZm9yIGRldGFpbHMuCiopCgpmdW4gcHJpbnRfQkIgKF8se1BibG9j
a3MgPSByZWYgW10sIFVibG9ja3MgPSByZWYgW119KSA9CiAgICAgICAgICAg
ICByYWlzZSBGYWlsICJQUC1lcnJvcjogcHJpbnRfQkIiCiAgfCBwcmludF9C
QiAoUFBTe3RoZV9pbmRlbnRfc3RhY2ssbGluZXdpZHRoLHNwYWNlX2xlZnQ9
cmVmIHNwX2xlZnQsLi4ufSwKICAgICAgICAgICAgIHtQYmxvY2tzIGFzIHJl
Zih7SG93X3RvX2luZGVudD1DT05TSVNURU5ULEJsb2NrX3NpemUsCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIEJsb2NrX29mZnNldH06OnJzdCks
CiAgICAgICAgICAgICAgVWJsb2Nrcz1yZWZbXX0pID0KICAgICAgIChwdXNo
ICgoaWYgKCFCbG9ja19zaXplID4gc3BfbGVmdCkKICAgICAgICAgICAgICAg
dGhlbiBPTkVfUEVSX0xJTkUgKGxpbmV3aWR0aCAtIChzcF9sZWZ0IC0gQmxv
Y2tfb2Zmc2V0KSkKICAgICAgICAgICAgICAgZWxzZSBGSVRTKSwKCSAgICAg
IHRoZV9pbmRlbnRfc3RhY2spOwogICAgICAgIFBibG9ja3MgOj0gcnN0KQog
IHwgcHJpbnRfQkIoUFBTe3RoZV9pbmRlbnRfc3RhY2ssbGluZXdpZHRoLHNw
YWNlX2xlZnQ9cmVmIHNwX2xlZnQsLi4ufSwKICAgICAgICAgICAgIHtQYmxv
Y2tzIGFzIHJlZih7QmxvY2tfc2l6ZSxCbG9ja19vZmZzZXQsLi4ufTo6cnN0
KSxVYmxvY2tzPXJlZltdfSkgPQogICAgICAgKHB1c2ggKChpZiAoIUJsb2Nr
X3NpemUgPiBzcF9sZWZ0KQogICAgICAgICAgICAgICB0aGVuIFBBQ0tfT05U
T19MSU5FIChsaW5ld2lkdGggLSAoc3BfbGVmdCAtIEJsb2NrX29mZnNldCkp
CiAgICAgICAgICAgICAgIGVsc2UgRklUUyksCgkgICAgICB0aGVfaW5kZW50
X3N0YWNrKTsKICAgICAgICBQYmxvY2tzIDo9IHJzdCkKICB8IHByaW50X0JC
IChQUFN7dGhlX2luZGVudF9zdGFjaywgbGluZXdpZHRoLCBzcGFjZV9sZWZ0
PXJlZiBzcF9sZWZ0LC4uLn0sCiAgICAgICAgICAgICAge1VibG9ja3MsLi4u
fSkgPQogICAgICBsZXQgZnVuIHByX2VuZF9VYmxvY2sgW3tIb3dfdG9faW5k
ZW50PUNPTlNJU1RFTlQsQmxvY2tfc2l6ZSxCbG9ja19vZmZzZXR9XSBsID0K
CQkocHVzaCAoKGlmICghQmxvY2tfc2l6ZSA+IHNwX2xlZnQpCgkJCXRoZW4g
T05FX1BFUl9MSU5FIChsaW5ld2lkdGggLSAoc3BfbGVmdCAtIEJsb2NrX29m
ZnNldCkpCgkJCWVsc2UgRklUUyksCgkJICAgICAgIHRoZV9pbmRlbnRfc3Rh
Y2spOwogICAgICAgICAgICAgICAgIExpc3QucmV2IGwpCgkgICAgfCBwcl9l
bmRfVWJsb2NrIFt7QmxvY2tfc2l6ZSxCbG9ja19vZmZzZXQsLi4ufV0gbCA9
CgkJKHB1c2ggKChpZiAoIUJsb2NrX3NpemUgPiBzcF9sZWZ0KQoJCQl0aGVu
IFBBQ0tfT05UT19MSU5FIChsaW5ld2lkdGggLSAoc3BfbGVmdCAtIEJsb2Nr
X29mZnNldCkpCgkJCWVsc2UgRklUUyksCgkJICAgICAgIHRoZV9pbmRlbnRf
c3RhY2spOwogICAgICAgICAgICAgICAgIExpc3QucmV2IGwpCgkgICAgfCBw
cl9lbmRfVWJsb2NrIChhOjpyc3QpIGwgPSBwcl9lbmRfVWJsb2NrIHJzdCAo
YTo6bCkKICAgICAgICAgICAgfCBwcl9lbmRfVWJsb2NrIF8gXyA9CiAgICAg
ICAgICAgICAgICByYWlzZSBGYWlsICJQUC1lcnJvcjogcHJpbnRfQkI6IGlu
dGVybmFsIGVycm9yIgogICAgICAgaW4gVWJsb2NrcyA6PSBwcl9lbmRfVWJs
b2NrKCFVYmxvY2tzKSBbXQogICAgICBlbmQKCgooKiBVZW5kIHNob3VsZCBh
bHdheXMgYmUgMCB3aGVuIHByaW50X0UgaXMgY2FsbGVkLiAqKQpmdW4gcHJp
bnRfRSAoXyx7UGVuZCA9IHJlZiAwLCBVZW5kID0gcmVmIDB9KSA9CiAgICAg
IHJhaXNlIEZhaWwgIlBQLWVycm9yOiBwcmludF9FIgogIHwgcHJpbnRfRSAo
aXN0YWNrLHtQZW5kLCAuLi59KSA9CiAgICAgIGxldCBmdW4gcG9wX25fdGlt
ZXMgMCA9ICgpCgkgICAgfCBwb3Bfbl90aW1lcyBuID0gKHBvcCBpc3RhY2s7
IHBvcF9uX3RpbWVzKG4tMSkpCiAgICAgICBpbiBwb3Bfbl90aW1lcyghUGVu
ZCk7IFBlbmQgOj0gMAogICAgICBlbmQKCgooKiAiY3Vyc29yIiBpcyBob3cg
bWFueSBzcGFjZXMgYWNyb3NzIHRoZSBwYWdlIHdlIGFyZS4gKikKCmZ1biBw
cmludF90b2tlbihQUFN7Y29uc3VtZXIsc3BhY2VfbGVmdCwuLi59LCBTe1N0
cmluZyxMZW5ndGh9KSA9CiAgICAgIChjb25zdW1lciBTdHJpbmc7CiAgICAg
ICBzcGFjZV9sZWZ0IDo9ICghc3BhY2VfbGVmdCkgLSBMZW5ndGgpCiAgfCBw
cmludF90b2tlbihwcHN0cm0sQkIgYikgPSBwcmludF9CQihwcHN0cm0sYikK
ICB8IHByaW50X3Rva2VuKFBQU3t0aGVfaW5kZW50X3N0YWNrLC4uLn0sRSBl
KSA9CiAgICAgIHByaW50X0UgKHRoZV9pbmRlbnRfc3RhY2ssZSkKICB8IHBy
aW50X3Rva2VuIChQUFN7dGhlX2luZGVudF9zdGFjayxzcGFjZV9sZWZ0LGNv
bnN1bWVyLGxpbmV3aWR0aCwuLi59LAogICAgICAgICAgICAgICAgIEJSe0Rp
c3RhbmNlX3RvX25leHRfYnJlYWssTnVtYmVyX29mX2JsYW5rcyxCcmVha19v
ZmZzZXR9KSA9CiAgICAgKGNhc2UgKHRvcCB0aGVfaW5kZW50X3N0YWNrKQog
ICAgICAgIG9mIEZJVFMgPT4KCSAgICAgKHNwYWNlX2xlZnQgOj0gKCFzcGFj
ZV9sZWZ0KSAtIE51bWJlcl9vZl9ibGFua3M7CiAgICAgICAgICAgICAgaW5k
ZW50IChjb25zdW1lcixOdW1iZXJfb2ZfYmxhbmtzKSkKICAgICAgICAgfCAo
T05FX1BFUl9MSU5FIGN1cnNvcikgPT4KICAgICAgICAgICAgIGxldCB2YWwg
bmV3X2N1cnNvciA9IGN1cnNvciArIEJyZWFrX29mZnNldAogICAgICAgICAg
ICAgIGluIHNwYWNlX2xlZnQgOj0gbGluZXdpZHRoIC0gbmV3X2N1cnNvcjsK
ICAgICAgICAgICAgICAgICBjcl9pbmRlbnQgKGNvbnN1bWVyLG5ld19jdXJz
b3IpCgkgICAgIGVuZAogICAgICAgICB8IChQQUNLX09OVE9fTElORSBjdXJz
b3IpID0+CgkgICAgIGlmICghRGlzdGFuY2VfdG9fbmV4dF9icmVhayA+ICgh
c3BhY2VfbGVmdCkpCgkgICAgIHRoZW4gbGV0IHZhbCBuZXdfY3Vyc29yID0g
Y3Vyc29yICsgQnJlYWtfb2Zmc2V0CgkJICAgaW4gc3BhY2VfbGVmdCA6PSBs
aW5ld2lkdGggLSBuZXdfY3Vyc29yOwoJCSAgICAgIGNyX2luZGVudChjb25z
dW1lcixuZXdfY3Vyc29yKQoJCSAgZW5kCgkgICAgIGVsc2UgKHNwYWNlX2xl
ZnQgOj0gIXNwYWNlX2xlZnQgLSBOdW1iZXJfb2ZfYmxhbmtzOwoJCSAgIGlu
ZGVudCAoY29uc3VtZXIsTnVtYmVyX29mX2JsYW5rcykpKQoKCmZ1biBjbGVh
cl9wcHN0cmVhbShwcHMgOiBwcHN0cmVhbSkgPQogICAgbGV0IHZhbCBQUFN7
dGhlX3Rva2VuX2J1ZmZlciwgdGhlX2RlbGltX3N0YWNrLAogICAgICAgICAg
ICAgICAgdGhlX2luZGVudF9zdGFjayxsZWZ0X3N1bSwgcmlnaHRfc3VtLAog
ICAgICAgICAgICAgICAgbGVmdF9pbmRleCwgcmlnaHRfaW5kZXgsc3BhY2Vf
bGVmdCxsaW5ld2lkdGgsLi4ufQogICAgICAgICAgICAgID0gbWFnaWMgcHBz
CiAgICAgICAgdmFsIGJ1Zl9zaXplID0gMypsaW5ld2lkdGgKCWZ1biBzZXQg
aSA9CgkgICAgaWYgKGkgPSBidWZfc2l6ZSkKCSAgICB0aGVuICgpCgkgICAg
ZWxzZSAodXBkYXRlKHRoZV90b2tlbl9idWZmZXIsaSxpbml0aWFsX3Rva2Vu
X3ZhbHVlKTsKCQkgIHNldCAoaSsxKSkKICAgICBpbiBzZXQgMDsKCWNsZWFy
X2luZGVudF9zdGFjayB0aGVfaW5kZW50X3N0YWNrOwoJcmVzZXRfZGVsaW1f
c3RhY2sgdGhlX2RlbGltX3N0YWNrOwoJbGVmdF9zdW0gOj0gMDsgcmlnaHRf
c3VtIDo9IDA7CglsZWZ0X2luZGV4IDo9IDA7IHJpZ2h0X2luZGV4IDo9IDA7
CglzcGFjZV9sZWZ0IDo9IGxpbmV3aWR0aAogICAgZW5kCgoKKCogTW92ZSBp
bnNlcnRpb24gaGVhZCB0byByaWdodCB1bmxlc3MgYWRkaW5nIGEgQkIgYW5k
IGFscmVhZHkgYXQgYSBCQiwKICAgb3IgdW5sZXNzIGFkZGluZyBhbiBFIGFu
ZCBhbHJlYWR5IGF0IGFuIEUuCiopCmZ1biBCQl9pbmNfcmlnaHRfaW5kZXgo
UFBTe3RoZV90b2tlbl9idWZmZXIsIHJpZ2h0X2luZGV4LCArKywuLi59KT0K
ICAgIGNhc2UgKHRoZV90b2tlbl9idWZmZXIgc3ViICghcmlnaHRfaW5kZXgp
KQogICAgICBvZiAoQkIgXykgPT4gKCkKICAgICAgIHwgXyA9PiArK3JpZ2h0
X2luZGV4CgpmdW4gRV9pbmNfcmlnaHRfaW5kZXgoUFBTe3RoZV90b2tlbl9i
dWZmZXIscmlnaHRfaW5kZXgsICsrLC4uLn0pPQogICAgY2FzZSAodGhlX3Rv
a2VuX2J1ZmZlciBzdWIgKCFyaWdodF9pbmRleCkpCiAgICAgIG9mIChFIF8p
ID0+ICgpCiAgICAgICB8IF8gPT4gKytyaWdodF9pbmRleAoKCmZ1biBwb2lu
dGVyc19jb2luY2lkZShQUFN7bGVmdF9pbmRleCxyaWdodF9pbmRleCx0aGVf
dG9rZW5fYnVmZmVyLC4uLn0pID0KICAgICghbGVmdF9pbmRleCA9ICFyaWdo
dF9pbmRleCkgYW5kYWxzbwogICAgKGNhc2UgKHRoZV90b2tlbl9idWZmZXIg
c3ViICghbGVmdF9pbmRleCkpCiAgICAgICBvZiAoQkIge1BibG9ja3MgPSBy
ZWYgW10sIFVibG9ja3MgPSByZWYgW119KSA9PiB0cnVlCgl8IChCQiBfKSA9
PiBmYWxzZQoJfCAoRSB7UGVuZCA9IHJlZiAwLCBVZW5kID0gcmVmIDB9KSA9
PiB0cnVlCgl8IChFIF8pID0+IGZhbHNlCgl8IF8gPT4gdHJ1ZSkKCmZ1biBh
ZHZhbmNlX2xlZnQgKHBwc3RybSBhcyBQUFN7Y29uc3VtZXIsbGVmdF9pbmRl
eCxsZWZ0X3N1bSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0
aGVfdG9rZW5fYnVmZmVyLCsrLC4uLn0sCiAgICAgICAgICAgICAgICAgIGlu
c3RyKSA9CiAgICBsZXQgdmFsIE5FRyA9IH4xCgl2YWwgUE9TID0gMAoJZnVu
IGluY19sZWZ0X3N1bSAoQlJ7TnVtYmVyX29mX2JsYW5rcywgLi4ufSkgPQoJ
CSBsZWZ0X3N1bSA6PSAoIWxlZnRfc3VtKSArIE51bWJlcl9vZl9ibGFua3MK
CSAgfCBpbmNfbGVmdF9zdW0gKFN7TGVuZ3RoLCAuLi59KSA9IGxlZnRfc3Vt
IDo9ICghbGVmdF9zdW0pICsgTGVuZ3RoCgkgIHwgaW5jX2xlZnRfc3VtIF8g
PSAoKQoKCWZ1biBsYXN0X3NpemUgW3tCbG9ja19zaXplLCAuLi59OmJsb2Nr
X2luZm9dID0gIUJsb2NrX3NpemUKCSAgfCBsYXN0X3NpemUgKF86OnJzdCkg
PSBsYXN0X3NpemUgcnN0CiAgICAgICAgICB8IGxhc3Rfc2l6ZSBfID0gcmFp
c2UgRmFpbCAiUFAtZXJyb3I6IGxhc3Rfc2l6ZTogaW50ZXJuYWwgZXJyb3Ii
CglmdW4gdG9rZW5fc2l6ZSAoU3tMZW5ndGgsIC4uLn0pID0gTGVuZ3RoCgkg
IHwgdG9rZW5fc2l6ZSAoQkIgYikgPQoJICAgICAoY2FzZSBiCiAgICAgICAg
ICAgICAgICBvZiB7UGJsb2NrcyA9IHJlZiBbXSwgVWJsb2NrcyA9IHJlZiBb
XX0gPT4KICAgICAgICAgICAgICAgICAgICAgcmFpc2UgRmFpbCAiUFAtZXJy
b3I6IEJCX3NpemUiCgkgICAgICAgICB8IHtQYmxvY2tzIGFzIHJlZihfOjpf
KSxVYmxvY2tzPXJlZltdfSA9PiBQT1MKCQkgfCB7VWJsb2NrcywgLi4ufSA9
PiBsYXN0X3NpemUgKCFVYmxvY2tzKSkKCSAgfCB0b2tlbl9zaXplIChFe1Bl
bmQgPSByZWYgMCwgVWVuZCA9IHJlZiAwfSkgPQogICAgICAgICAgICAgIHJh
aXNlIEZhaWwgIlBQLWVycm9yOiB0b2tlbl9zaXplLkUiCgkgIHwgdG9rZW5f
c2l6ZSAoRXtQZW5kID0gcmVmIDAsIC4uLn0pID0gTkVHCgkgIHwgdG9rZW5f
c2l6ZSAoRSBfKSA9IFBPUwoJICB8IHRva2VuX3NpemUgKEJSIHtEaXN0YW5j
ZV90b19uZXh0X2JyZWFrLCAuLi59KSA9ICFEaXN0YW5jZV90b19uZXh0X2Jy
ZWFrCglmdW4gbG9vcCAoaW5zdHIpID0KCSAgICBpZiAodG9rZW5fc2l6ZSBp
bnN0ciA8IDApICAoKiBzeW5jaHJvbml6YXRpb24gcG9pbnQ7IGNhbm5vdCBh
ZHZhbmNlICopCgkgICAgdGhlbiAoKQoJICAgIGVsc2UgKHByaW50X3Rva2Vu
KHBwc3RybSxpbnN0cik7CgkJICBpbmNfbGVmdF9zdW0gaW5zdHI7CgkJICBp
ZiAocG9pbnRlcnNfY29pbmNpZGUgcHBzdHJtKQoJCSAgdGhlbiAoKQoJCSAg
ZWxzZSAoKiBpbmNyZW1lbnQgbGVmdCBpbmRleCAqKQoKICAgICgqIFdoZW4g
dGhpcyBpcyBldmFsdWF0ZWQsIHdlIGtub3cgdGhhdCB0aGUgbGVmdF9pbmRl
eCBoYXMgbm90IHlldAogICAgICAgY2F1Z2h0IHVwIHRvIHRoZSByaWdodF9p
bmRleC4gSWYgd2UgYXJlIGF0IGEgQkIgb3IgYW4gRSwgd2UgY2FuCiAgICAg
ICBpbmNyZW1lbnQgbGVmdF9pbmRleCBpZiB0aGVyZSBpcyBubyB3b3JrIHRv
IGJlIGRvbmUsIGkuZS4sIGFsbCBCZWdpbnMKICAgICAgIG9yIEVuZHMgaGF2
ZSBiZWVuIGRlYWx0IHdpdGguIEFsc28sIHdlIHNob3VsZCBkbyBzb21lIGhv
dXNla2VlcGluZyBhbmQKICAgICAgIGNsZWFyIHRoZSBidWZmZXIgYXQgbGVm
dF9pbmRleCwgb3RoZXJ3aXNlIHdlIGNhbiBnZXQgZXJyb3JzIHdoZW4KICAg
ICAgIGxlZnRfaW5kZXggY2F0Y2hlcyB1cCB0byByaWdodF9pbmRleCBhbmQg
d2UgcmVzZXQgdGhlIGluZGljZXMgdG8gMC4KICAgICAgIChXZSBtaWdodCBm
aW5kIG91cnNlbHZlcyBhZGRpbmcgYSBCQiB0byBhbiAib2xkIiBCQiwgd2l0
aCB0aGUgcmVzdWx0CiAgICAgICB0aGF0IHRoZSBpbmRleCBpcyBub3QgcHVz
aGVkIG9udG8gdGhlIGRlbGltX3N0YWNrLiBUaGlzIGNhbiBsZWFkIHRvCiAg
ICAgICBtYW5nbGVkIG91dHB1dC4pCiAgICAqKQoJCSAgICAgICAoY2FzZSAo
dGhlX3Rva2VuX2J1ZmZlciBzdWIgKCFsZWZ0X2luZGV4KSkKCQkJICBvZiAo
QkIge1BibG9ja3MgPSByZWYgW10sIFVibG9ja3MgPSByZWYgW119KSA9PgoJ
CQkgICAgICAgKHVwZGF0ZSh0aGVfdG9rZW5fYnVmZmVyLCFsZWZ0X2luZGV4
LAoJCQkJICAgICAgIGluaXRpYWxfdG9rZW5fdmFsdWUpOwoJCQkJKytsZWZ0
X2luZGV4KQoJCQkgICB8IChCQiBfKSA9PiAoKQoJCQkgICB8IChFIHtQZW5k
ID0gcmVmIDAsIFVlbmQgPSByZWYgMH0pID0+CgkJCSAgICAgICAodXBkYXRl
KHRoZV90b2tlbl9idWZmZXIsIWxlZnRfaW5kZXgsCgkJCQkgICAgICAgaW5p
dGlhbF90b2tlbl92YWx1ZSk7CgkJCQkrK2xlZnRfaW5kZXgpCgkJCSAgIHwg
KEUgXykgPT4gKCkKCQkJICAgfCBfID0+ICsrbGVmdF9pbmRleDsKCQkJbG9v
cCAodGhlX3Rva2VuX2J1ZmZlciBzdWIgKCFsZWZ0X2luZGV4KSkpKQogICAg
IGluIGxvb3AgaW5zdHIKICAgIGVuZAoKCmZ1biBiZWdpbl9ibG9jayAocHBz
IDogcHBzdHJlYW0pIHN0eWxlIG9mZnNldCA9CiAgbGV0IHZhbCBwcHN0cm0g
PSBtYWdpYyBwcHMgOiBwcHN0cmVhbV8KICAgICAgdmFsIFBQU3t0aGVfdG9r
ZW5fYnVmZmVyLCB0aGVfZGVsaW1fc3RhY2ssbGVmdF9pbmRleCwKICAgICAg
ICAgICAgICBsZWZ0X3N1bSwgcmlnaHRfaW5kZXgsIHJpZ2h0X3N1bSwuLi59
CiAgICAgICAgICAgID0gcHBzdHJtCiAgaW4KICAgKGlmIChkZWxpbV9zdGFj
a19pc19lbXB0eSB0aGVfZGVsaW1fc3RhY2spCiAgICB0aGVuIChsZWZ0X2lu
ZGV4IDo9IDA7CgkgIGxlZnRfc3VtIDo9IDE7CgkgIHJpZ2h0X2luZGV4IDo9
IDA7CgkgIHJpZ2h0X3N1bSA6PSAxKQogICAgZWxzZSBCQl9pbmNfcmlnaHRf
aW5kZXggcHBzdHJtOwogICAgY2FzZSAodGhlX3Rva2VuX2J1ZmZlciBzdWIg
KCFyaWdodF9pbmRleCkpCiAgICAgIG9mIChCQiB7VWJsb2NrcywgLi4ufSkg
PT4KCSAgIFVibG9ja3MgOj0ge0Jsb2NrX3NpemUgPSByZWYgKH4oIXJpZ2h0
X3N1bSkpLAoJCSAgICAgICBCbG9ja19vZmZzZXQgPSBvZmZzZXQsCgkJICAg
ICAgIEhvd190b19pbmRlbnQgPSBzdHlsZX06OighVWJsb2NrcykKICAgICAg
IHwgXyA9PiAodXBkYXRlKHRoZV90b2tlbl9idWZmZXIsICFyaWdodF9pbmRl
eCwKCQkgICAgICBCQntQYmxvY2tzID0gcmVmIFtdLAoJCQkgVWJsb2NrcyA9
IHJlZiBbe0Jsb2NrX3NpemUgPSByZWYgKH4oIXJpZ2h0X3N1bSkpLAoJCQkJ
CSBCbG9ja19vZmZzZXQgPSBvZmZzZXQsCgkJCQkJIEhvd190b19pbmRlbnQg
PSBzdHlsZX1dfSk7CgkgICAgICAgcHVzaF9kZWxpbV9zdGFjayAoIXJpZ2h0
X2luZGV4LCB0aGVfZGVsaW1fc3RhY2spKSkKICBlbmQKCmZ1biBlbmRfYmxv
Y2socHBzIDogcHBzdHJlYW0pID0KICBsZXQgdmFsIHBwc3RybSA9IG1hZ2lj
IHBwcyA6IHBwc3RyZWFtXwogICAgICB2YWwgUFBTe3RoZV90b2tlbl9idWZm
ZXIsdGhlX2RlbGltX3N0YWNrLHJpZ2h0X2luZGV4LC4uLn0KICAgICAgICAg
ICAgPSBwcHN0cm0KICBpbgogICAgaWYgKGRlbGltX3N0YWNrX2lzX2VtcHR5
IHRoZV9kZWxpbV9zdGFjaykKICAgIHRoZW4gcHJpbnRfdG9rZW4ocHBzdHJt
LChFe1BlbmQgPSByZWYgMSwgVWVuZCA9IHJlZiAwfSkpCiAgICBlbHNlIChF
X2luY19yaWdodF9pbmRleCBwcHN0cm07CgkgIGNhc2UgKHRoZV90b2tlbl9i
dWZmZXIgc3ViICghcmlnaHRfaW5kZXgpKQogICAgICAgICAgICBvZiAoRXtV
ZW5kLCAuLi59KSA9PiBVZW5kIDo9ICFVZW5kICsgMQoJICAgICB8IF8gPT4g
KHVwZGF0ZSh0aGVfdG9rZW5fYnVmZmVyLCFyaWdodF9pbmRleCwKCQkJICAg
IEV7VWVuZCA9IHJlZiAxLCBQZW5kID0gcmVmIDB9KTsKCQkgICAgIHB1c2hf
ZGVsaW1fc3RhY2sgKCFyaWdodF9pbmRleCwgdGhlX2RlbGltX3N0YWNrKSkp
CiAgZW5kCgpsb2NhbAogIGZ1biBjaGVja19kZWxpbV9zdGFjayhQUFN7dGhl
X3Rva2VuX2J1ZmZlcix0aGVfZGVsaW1fc3RhY2sscmlnaHRfc3VtLC4uLn0p
ID0KICAgICAgbGV0IGZ1biBjaGVjayBrID0KCSAgICAgIGlmIChkZWxpbV9z
dGFja19pc19lbXB0eSB0aGVfZGVsaW1fc3RhY2spCgkgICAgICB0aGVuICgp
CgkgICAgICBlbHNlIGNhc2UodGhlX3Rva2VuX2J1ZmZlciBzdWIgKHRvcF9k
ZWxpbV9zdGFjayB0aGVfZGVsaW1fc3RhY2spKQoJCSAgICAgb2YgKEJCe1Vi
bG9ja3MgYXMgcmVmICgoYiBhcyB7QmxvY2tfc2l6ZSwgLi4ufSk6OnJzdCks
CgkJCSAgICBQYmxvY2tzfSkgPT4KCQkJICAgaWYgKGs+MCkKCQkJICAgdGhl
biAoQmxvY2tfc2l6ZSA6PSAhcmlnaHRfc3VtICsgIUJsb2NrX3NpemU7CgkJ
CQkgUGJsb2NrcyA6PSBiIDo6ICghUGJsb2Nrcyk7CgkJCQkgVWJsb2NrcyA6
PSByc3Q7CgkJCQkgaWYgKExpc3QubGVuZ3RoIHJzdCA9IDApCgkJCQkgdGhl
biBwb3BfZGVsaW1fc3RhY2sgdGhlX2RlbGltX3N0YWNrCgkJCQkgZWxzZSAo
KTsKCQkJCSBjaGVjayhrLTEpKQoJCQkgICBlbHNlICgpCgkJICAgICAgfCAo
RXtQZW5kLFVlbmR9KSA9PgoJCQkgICAoUGVuZCA6PSAoIVBlbmQpICsgKCFV
ZW5kKTsKCQkJICAgIFVlbmQgOj0gMDsKCQkJICAgIHBvcF9kZWxpbV9zdGFj
ayB0aGVfZGVsaW1fc3RhY2s7CgkJCSAgICBjaGVjayhrICsgIVBlbmQpKQoJ
CSAgICAgIHwgKEJSe0Rpc3RhbmNlX3RvX25leHRfYnJlYWssIC4uLn0pID0+
CgkJCSAgIChEaXN0YW5jZV90b19uZXh0X2JyZWFrIDo9CgkJCSAgICAgICFy
aWdodF9zdW0gKyAhRGlzdGFuY2VfdG9fbmV4dF9icmVhazsKCQkJICAgIHBv
cF9kZWxpbV9zdGFjayB0aGVfZGVsaW1fc3RhY2s7CgkJCSAgICBpZiAoaz4w
KQoJCQkgICAgdGhlbiBjaGVjayBrCgkJCSAgICBlbHNlICgpKQogICAgICAg
ICAgICAgICAgICAgICAgfCBfID0+IHJhaXNlIEZhaWwgIlBQLWVycm9yOiBj
aGVja19kZWxpbV9zdGFjay5jYXRjaGFsbCIKICAgICAgIGluIGNoZWNrIDAK
ICAgICAgZW5kCmluCgogIGZ1biBhZGRfYnJlYWsgKHBwcyA6IHBwc3RyZWFt
KSAobiwgYnJlYWtfb2Zmc2V0KSA9CiAgICBsZXQgdmFsIHBwc3RybSA9IG1h
Z2ljIHBwcyA6IHBwc3RyZWFtXwogICAgICAgIHZhbCBQUFN7dGhlX3Rva2Vu
X2J1ZmZlcix0aGVfZGVsaW1fc3RhY2ssbGVmdF9pbmRleCwKICAgICAgICAg
ICAgICAgIHJpZ2h0X2luZGV4LGxlZnRfc3VtLHJpZ2h0X3N1bSwgKyssIC4u
Ln0KICAgICAgICAgICAgICA9IHBwc3RybQogICAgaW4KICAgICAgKGlmIChk
ZWxpbV9zdGFja19pc19lbXB0eSB0aGVfZGVsaW1fc3RhY2spCiAgICAgICB0
aGVuIChsZWZ0X2luZGV4IDo9IDA7IHJpZ2h0X2luZGV4IDo9IDA7CgkgICAg
IGxlZnRfc3VtIDo9IDE7ICAgcmlnaHRfc3VtIDo9IDEpCiAgICAgICBlbHNl
ICsrcmlnaHRfaW5kZXg7CiAgICAgICB1cGRhdGUodGhlX3Rva2VuX2J1ZmZl
ciwgIXJpZ2h0X2luZGV4LAoJICAgICAgQlJ7RGlzdGFuY2VfdG9fbmV4dF9i
cmVhayA9IHJlZiAofighcmlnaHRfc3VtKSksCgkJIE51bWJlcl9vZl9ibGFu
a3MgPSBuLAoJCSBCcmVha19vZmZzZXQgPSBicmVha19vZmZzZXR9KTsKICAg
ICAgIGNoZWNrX2RlbGltX3N0YWNrIHBwc3RybTsKICAgICAgIHJpZ2h0X3N1
bSA6PSAoIXJpZ2h0X3N1bSkgKyBuOwogICAgICAgcHVzaF9kZWxpbV9zdGFj
ayAoIXJpZ2h0X2luZGV4LHRoZV9kZWxpbV9zdGFjaykpCiAgICBlbmQKCiAg
ZnVuIGZsdXNoX3Bwc3RyZWFtMChwcHMgOiBwcHN0cmVhbSkgPQogICAgbGV0
IHZhbCBwcHN0cm0gPSBtYWdpYyBwcHMgOiBwcHN0cmVhbV8KICAgICAgICB2
YWwgUFBTe3RoZV9kZWxpbV9zdGFjayx0aGVfdG9rZW5fYnVmZmVyLCBmbHVz
aCwgbGVmdF9pbmRleCwuLi59CiAgICAgICAgICAgICAgPSBwcHN0cm0KICAg
IGluCiAgICAgIChpZiAoZGVsaW1fc3RhY2tfaXNfZW1wdHkgdGhlX2RlbGlt
X3N0YWNrKQogICAgICAgdGhlbiAoKQogICAgICAgZWxzZSAoY2hlY2tfZGVs
aW1fc3RhY2sgcHBzdHJtOwoJICAgICBhZHZhbmNlX2xlZnQocHBzdHJtLCB0
aGVfdG9rZW5fYnVmZmVyIHN1YiAoIWxlZnRfaW5kZXgpKSk7CiAgICAgICBm
bHVzaCgpKQogICAgZW5kCgplbmQgKCogbG9jYWwgKikKCgpmdW4gZmx1c2hf
cHBzdHJlYW0gcHBzdHJtID0KICAgIChmbHVzaF9wcHN0cmVhbTAgcHBzdHJt
OwogICAgIGNsZWFyX3Bwc3RyZWFtIHBwc3RybSkKCmZ1biBhZGRfc3RyaW5n
IChwcHMgOiBwcHN0cmVhbSkgcyA9CiAgICBsZXQgdmFsIHBwc3RybSA9IG1h
Z2ljIHBwcyA6IHBwc3RyZWFtXwogICAgICAgIHZhbCBQUFN7dGhlX3Rva2Vu
X2J1ZmZlcix0aGVfZGVsaW1fc3RhY2ssY29uc3VtZXIsCiAgICAgICAgICAg
ICAgICByaWdodF9pbmRleCxyaWdodF9zdW0sbGVmdF9zdW0sCiAgICAgICAg
ICAgICAgICBsZWZ0X2luZGV4LHNwYWNlX2xlZnQsKyssLi4ufQogICAgICAg
ICAgICAgID0gcHBzdHJtCiAgICAgICAgZnVuIGZubCBbe0Jsb2NrX3NpemUs
IC4uLn06YmxvY2tfaW5mb10gPSBCbG9ja19zaXplIDo9IElORklOSVRZCgkg
IHwgZm5sIChfOjpyc3QpID0gZm5sIHJzdAogICAgICAgICAgfCBmbmwgXyA9
IHJhaXNlIEZhaWwgIlBQLWVycm9yOiBmbmw6IGludGVybmFsIGVycm9yIgoK
CWZ1biBzZXQoZHN0YWNrLEJCe1VibG9ja3MgYXMgcmVmW3tCbG9ja19zaXpl
LC4uLn06YmxvY2tfaW5mb10sLi4ufSkgPQoJICAgICAgKHBvcF9ib3R0b21f
ZGVsaW1fc3RhY2sgZHN0YWNrOwoJICAgICAgIEJsb2NrX3NpemUgOj0gSU5G
SU5JVFkpCgkgIHwgc2V0IChfLEJCIHtVYmxvY2tzID0gcmVmKF86OnJzdCks
IC4uLn0pID0gZm5sIHJzdAoJICB8IHNldCAoZHN0YWNrLCBFe1BlbmQsVWVu
ZH0pID0KCSAgICAgIChQZW5kIDo9ICghUGVuZCkgKyAoIVVlbmQpOwoJICAg
ICAgIFVlbmQgOj0gMDsKCSAgICAgICBwb3BfYm90dG9tX2RlbGltX3N0YWNr
IGRzdGFjaykKCSAgfCBzZXQgKGRzdGFjayxCUntEaXN0YW5jZV90b19uZXh0
X2JyZWFrLC4uLn0pID0KCSAgICAgIChwb3BfYm90dG9tX2RlbGltX3N0YWNr
IGRzdGFjazsKCSAgICAgICBEaXN0YW5jZV90b19uZXh0X2JyZWFrIDo9IElO
RklOSVRZKQogICAgICAgICAgfCBzZXQgXyA9IHJhaXNlIChGYWlsICJQUC1l
cnJvcjogYWRkX3N0cmluZy5zZXQiKQoKCWZ1biBjaGVja19zdHJlYW0gKCkg
PQoJICAgIGlmICgoIXJpZ2h0X3N1bSAtICFsZWZ0X3N1bSkgPiAhc3BhY2Vf
bGVmdCkKCSAgICB0aGVuIGlmIChkZWxpbV9zdGFja19pc19lbXB0eSB0aGVf
ZGVsaW1fc3RhY2spCgkJIHRoZW4gKCkKCQkgZWxzZSBsZXQgdmFsIGkgPSBi
b3R0b21fZGVsaW1fc3RhY2sgdGhlX2RlbGltX3N0YWNrCgkJICAgICAgIGlu
IGlmICghbGVmdF9pbmRleCA9IGkpCgkJCSAgdGhlbiBzZXQgKHRoZV9kZWxp
bV9zdGFjaywgdGhlX3Rva2VuX2J1ZmZlciBzdWIgaSkKCQkJICBlbHNlICgp
OwoJCQkgIGFkdmFuY2VfbGVmdChwcHN0cm0sCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHRoZV90b2tlbl9idWZmZXIgc3ViICgh
bGVmdF9pbmRleCkpOwoJCSAgICAgICAgICBpZiAocG9pbnRlcnNfY29pbmNp
ZGUgcHBzdHJtKQoJCSAgICAgICAgICB0aGVuICgpCgkJICAgICAgICAgIGVs
c2UgY2hlY2tfc3RyZWFtICgpCgkJICAgICAgZW5kCgkgICAgZWxzZSAoKQoK
CXZhbCBzbGVuID0gU3RyaW5nLnNpemUgcwoJdmFsIFNfdG9rZW4gPSBTe1N0
cmluZyA9IHMsIExlbmd0aCA9IHNsZW59CgogICAgaW4gaWYgKGRlbGltX3N0
YWNrX2lzX2VtcHR5IHRoZV9kZWxpbV9zdGFjaykKICAgICAgIHRoZW4gcHJp
bnRfdG9rZW4ocHBzdHJtLFNfdG9rZW4pCiAgICAgICBlbHNlICgrK3JpZ2h0
X2luZGV4OwogICAgICAgICAgICAgdXBkYXRlKHRoZV90b2tlbl9idWZmZXIs
ICFyaWdodF9pbmRleCwgU190b2tlbik7CiAgICAgICAgICAgICByaWdodF9z
dW0gOj0gKCFyaWdodF9zdW0pK3NsZW47CiAgICAgICAgICAgICBjaGVja19z
dHJlYW0gKCkpCiAgIGVuZAoKCigqIERlcml2ZWQgZm9ybS4gVGhlICsyIGlz
IGZvciBwZWFjZSBvZiBtaW5kICopCmZ1biBhZGRfbmV3bGluZSAocHBzIDog
cHBzdHJlYW0pID0KICBsZXQgdmFsIFBQU3tsaW5ld2lkdGgsIC4uLn0gPSBt
YWdpYyBwcHMKICBpbiBhZGRfYnJlYWsgcHBzIChsaW5ld2lkdGgrMiwwKSBl
bmQKCigqIERlcml2ZWQgZm9ybS4gQnVpbGRzIGEgcHBzdHJlYW0sIHNlbmRz
IHByZXR0eSBwcmludGluZyBjb21tYW5kcyBjYWxsZWQgaW4KICAgZiB0byB0
aGUgcHBzdHJlYW0sIHRoZW4gZmx1c2hlcyBwcHN0cmVhbS4KKikKCmZ1biB3
aXRoX3BwIHBwY29uc3VtZXIgcHBmbiA9CiAgIGxldCB2YWwgcHBzdHJtID0g
bWtfcHBzdHJlYW0gcHBjb25zdW1lcgogICAgaW4gcHBmbiBwcHN0cm07CiAg
ICAgICBmbHVzaF9wcHN0cmVhbTAgcHBzdHJtCiAgIGVuZAogICBoYW5kbGUg
RmFpbCBtc2cgPT4KICAgICAoVGV4dElPLnByaW50ICgiPj4+PiBQcmV0dHkt
cHJpbnRlciBmYWlsdXJlOiAiIF4gbXNnIF4gIlxuIikpCgpmdW4gcHBfdG9f
c3RyaW5nIGxpbmV3aWR0aCBwcGZuIG9iID0KICAgIGxldCB2YWwgbCA9IHJl
ZiAoW106c3RyaW5nIGxpc3QpCglmdW4gYXR0YWNoIHMgPSBsIDo9IChzOjoo
IWwpKQogICAgIGluIHdpdGhfcHAge2NvbnN1bWVyID0gYXR0YWNoLCBsaW5l
d2lkdGg9bGluZXdpZHRoLCBmbHVzaCA9IGZuKCk9PigpfQoJCShmbiBwcHN0
cm0gPT4gIHBwZm4gcHBzdHJtIG9iKTsKCVN0cmluZy5jb25jYXQoTGlzdC5y
ZXYoIWwpKQogICAgZW5kCmVuZAooKiNsaW5lIDAuMCAiJEhPTUUvZGV2L3Nt
bC9iYXNpYy9zcmMvQmluYXJ5bWFwLnNpZyIqKQooKiBCaW5hcnltYXAgLS0g
YXBwbGljYXRpdmUgbWFwcyBhcyBiYWxhbmNlZCBvcmRlcmVkIGJpbmFyeSB0
cmVlcyAqKQooKiBGcm9tIFNNTC9OSiBsaWIgMC4yLCBjb3B5cmlnaHQgMTk5
MyBieSBBVCZUIEJlbGwgTGFib3JhdG9yaWVzICAqKQooKiBPcmlnaW5hbCBp
bXBsZW1lbnRhdGlvbiBkdWUgdG8gU3RlcGhlbiBBZGFtcywgU291dGhhbXB0
b24sIFVLICAqKQoKc2lnbmF0dXJlIEJpbmFyeW1hcCA9CnNpZwoKdHlwZSAo
J2tleSwgJ2EpIGRpY3QKCmV4Y2VwdGlvbiBOb3RGb3VuZAoKdmFsIG1rRGlj
dCAgICA6ICgna2V5ICogJ2tleSAtPiBvcmRlcikgLT4gKCdrZXksICdhKSBk
aWN0CnZhbCBpbnNlcnQgICAgOiAoJ2tleSwgJ2EpIGRpY3QgKiAna2V5ICog
J2EgLT4gKCdrZXksICdhKSBkaWN0CnZhbCBmaW5kICAgICAgOiAoJ2tleSwg
J2EpIGRpY3QgKiAna2V5IC0+ICdhCnZhbCBwZWVrICAgICAgOiAoJ2tleSwg
J2EpIGRpY3QgKiAna2V5IC0+ICdhIG9wdGlvbgp2YWwgcmVtb3ZlICAgIDog
KCdrZXksICdhKSBkaWN0ICogJ2tleSAtPiAoJ2tleSwgJ2EpIGRpY3QgKiAn
YQp2YWwgbnVtSXRlbXMgIDogKCdrZXksICdhKSBkaWN0IC0+IGludAp2YWwg
bGlzdEl0ZW1zIDogKCdrZXksICdhKSBkaWN0IC0+ICgna2V5ICogJ2EpIGxp
c3QKdmFsIGFwcCAgICAgICA6ICgna2V5ICogJ2EgLT4gdW5pdCkgLT4gKCdr
ZXksJ2EpIGRpY3QgLT4gdW5pdAp2YWwgcmV2YXBwICAgIDogKCdrZXkgKiAn
YSAtPiB1bml0KSAtPiAoJ2tleSwnYSkgZGljdCAtPiB1bml0CnZhbCBmb2xk
ciAgICAgOiAoJ2tleSAqICdhICogJ2IgLT4gJ2IpLT4gJ2IgLT4gKCdrZXks
J2EpIGRpY3QgLT4gJ2IKdmFsIGZvbGRsICAgICA6ICgna2V5ICogJ2EgKiAn
YiAtPiAnYikgLT4gJ2IgLT4gKCdrZXksJ2EpIGRpY3QgLT4gJ2IKdmFsIG1h
cCAgICAgICA6ICgna2V5ICogJ2EgLT4gJ2IpIC0+ICgna2V5LCdhKSBkaWN0
IC0+ICgna2V5LCAnYikgZGljdAp2YWwgdHJhbnNmb3JtIDogKCdhIC0+ICdi
KSAtPiAoJ2tleSwnYSkgZGljdCAtPiAoJ2tleSwgJ2IpIGRpY3QKCmVuZAoK
KCogCiAgIFsoJ2tleSwgJ2EpIGRpY3RdIGlzIHRoZSB0eXBlIG9mIGFwcGxp
Y2F0aXZlIG1hcHMgZnJvbSBkb21haW4gdHlwZQogICAna2V5IHRvIHJhbmdl
IHR5cGUgJ2EsIG9yIGVxdWl2YWxlbnRseSwgYXBwbGljYXRpdmUgZGljdGlv
bmFyaWVzCiAgIHdpdGgga2V5cyBvZiB0eXBlICdrZXkgYW5kIHZhbHVlcyBv
ZiB0eXBlICdhLiAgVGhleSBhcmUgaW1wbGVtZW50ZWQKICAgYXMgb3JkZXJl
ZCBiYWxhbmNlZCBiaW5hcnkgdHJlZXMuCgogICBbbWtEaWN0IG9yZHJdIHJl
dHVybnMgYSBuZXcsIGVtcHR5IG1hcCB3aG9zZSBrZXlzIGhhdmUgb3JkZXJp
bmcKICAgb3Jkci4KCiAgIFtpbnNlcnQobSwgaSwgdildIGV4dGVuZHMgKG9y
IG1vZGlmaWVzKSBtYXAgbSB0byBtYXAgaSB0byB2LgoKICAgW2ZpbmQgKG0s
IGspXSByZXR1cm5zIHYgaWYgbSBtYXBzIGsgdG8gdjsgb3RoZXJ3aXNlIHJh
aXNlcyBOb3RGb3VuZC4KICAgCiAgIFtwZWVrKG0sIGspXSByZXR1cm5zIFNP
TUUgdiBpZiBtIG1hcHMgayB0byB2OyBvdGhlcndpc2UgcmV0dXJucyBOT05F
LgoKICAgW3JlbW92ZShtLCBrKV0gcmVtb3ZlcyBrIGZyb20gdGhlIGRvbWFp
biBvZiBtIGFuZCByZXR1cm5zIHRoZQogICBtb2RpZmllZCBtYXAgYW5kIHRo
ZSBlbGVtZW50IHYgY29ycmVzcG9uZGluZyB0byBrLiAgUmFpc2VzIE5vdEZv
dW5kCiAgIGlmIGsgaXMgbm90IGluIHRoZSBkb21haW4gb2YgbS4KCiAgIFtu
dW1JdGVtcyBtXSByZXR1cm5zIHRoZSBudW1iZXIgb2YgZW50cmllcyBpbiBt
ICh0aGF0IGlzLCB0aGUgc2l6ZQogICBvZiB0aGUgZG9tYWluIG9mIG0pLgoK
ICAgW2xpc3RJdGVtcyBtXSByZXR1cm5zIGEgbGlzdCBvZiB0aGUgZW50cmll
cyAoaywgdikgb2Yga2V5cyBrIGFuZAogICB0aGUgY29ycmVzcG9uZGluZyB2
YWx1ZXMgdiBpbiBtLCBpbiBvcmRlciBvZiBpbmNyZWFzaW5nIGtleSB2YWx1
ZXMuCgogICBbYXBwIGYgbV0gYXBwbGllcyBmdW5jdGlvbiBmIHRvIHRoZSBl
bnRyaWVzIChrLCB2KSBpbiBtLCBpbgogICBpbmNyZWFzaW5nIG9yZGVyIG9m
IGsgKGFjY29yZGluZyB0byB0aGUgb3JkZXJpbmcgb3JkciB1c2VkIHRvCiAg
IGNyZWF0ZSB0aGUgbWFwIG9yIGRpY3Rpb25hcnkpLgoKICAgW3JldmFwcCBm
IG1dIGFwcGxpZXMgZnVuY3Rpb24gZiB0byB0aGUgZW50cmllcyAoaywgdikg
aW4gbSwgaW4KICAgZGVjcmVhc2luZyBvcmRlciBvZiBrLgoKICAgW2ZvbGRs
IGYgZSBtXSBhcHBsaWVzIHRoZSBmb2xkaW5nIGZ1bmN0aW9uIGYgdG8gdGhl
IGVudHJpZXMgKGssIHYpCiAgIGluIG0sIGluIGluY3JlYXNpbmcgb3JkZXIg
b2Ygay4KCiAgIFtmb2xkciBmIGUgbV0gYXBwbGllcyB0aGUgZm9sZGluZyBm
dW5jdGlvbiBmIHRvIHRoZSBlbnRyaWVzIChrLCB2KQogICBpbiBtLCBpbiBk
ZWNyZWFzaW5nIG9yZGVyIG9mIGsuCgogICBbbWFwIGYgbV0gcmV0dXJucyBh
IG5ldyBtYXAgd2hvc2UgZW50cmllcyBoYXZlIGZvcm0gKGssIGYoayx2KSks
CiAgIHdoZXJlIChrLCB2KSBpcyBhbiBlbnRyeSBpbiBtLgoKICAgW3RyYW5z
Zm9ybSBmIG1dIHJldHVybnMgYSBuZXcgbWFwIHdob3NlIGVudHJpZXMgaGF2
ZSBmb3JtIChrLCBmIHYpLAogICB3aGVyZSAoaywgdikgaXMgYW4gZW50cnkg
aW4gbS4KKikKKCojbGluZSAwLjAgIiRIT01FL2Rldi9zbWwvYmFzaWMvc3Jj
L0JpbmFyeW1hcC5zbWwiKikKKCogQmluYXJ5bWFwIC0tIG1vZGlmaWVkIGZv
ciBNaWx0b24gTUwgCiAqIGZyb20gU01ML05KIGxpYnJhcnkgdi4gMC4yIGZp
bGUgYmluYXJ5LWRpY3Quc21sLgogKiBDT1BZUklHSFQgKGMpIDE5OTMgYnkg
QVQmVCBCZWxsIExhYm9yYXRvcmllcy4gIAogKiBTZWUgZmlsZSBtb3NtbC9j
b3B5cmdodC9jb3B5cmdodC5hdHQgZm9yIGRldGFpbHMuCiAqCiAqIFRoaXMg
Y29kZSB3YXMgYWRhcHRlZCBmcm9tIFN0ZXBoZW4gQWRhbXMnIGJpbmFyeSB0
cmVlIGltcGxlbWVudGF0aW9uCiAqIG9mIGFwcGxpY2F0aXZlIGludGVnZXIg
c2V0cy4KICoKICogICBDb3B5cmlnaHQgMTk5MiBTdGVwaGVuIEFkYW1zLgog
KgogKiAgICBUaGlzIHNvZnR3YXJlIG1heSBiZSB1c2VkIGZyZWVseSBwcm92
aWRlZCB0aGF0OgogKiAgICAgIDEuIFRoaXMgY29weXJpZ2h0IG5vdGljZSBp
cyBhdHRhY2hlZCB0byBhbnkgY29weSwgZGVyaXZlZCB3b3JrLAogKiAgICAg
ICAgIG9yIHdvcmsgaW5jbHVkaW5nIGFsbCBvciBwYXJ0IG9mIHRoaXMgc29m
dHdhcmUuCiAqICAgICAgMi4gQW55IGRlcml2ZWQgd29yayBtdXN0IGNvbnRh
aW4gYSBwcm9taW5lbnQgbm90aWNlIHN0YXRpbmcgdGhhdAogKiAgICAgICAg
IGl0IGhhcyBiZWVuIGFsdGVyZWQgZnJvbSB0aGUgb3JpZ2luYWwuCiAqCiAq
CiAqICAgTmFtZShzKTogU3RlcGhlbiBBZGFtcy4KICogICBEZXBhcnRtZW50
LCBJbnN0aXR1dGlvbjogRWxlY3Ryb25pY3MgJiBDb21wdXRlciBTY2llbmNl
LAogKiAgICAgIFVuaXZlcnNpdHkgb2YgU291dGhhbXB0b24KICogICBBZGRy
ZXNzOiAgRWxlY3Ryb25pY3MgJiBDb21wdXRlciBTY2llbmNlCiAqICAgICAg
ICAgICAgIFVuaXZlcnNpdHkgb2YgU291dGhhbXB0b24KICoJICAgICBTb3V0
aGFtcHRvbiAgU085IDVOSAogKgkgICAgIEdyZWF0IEJyaXRpYW4KICogICBF
LW1haWw6ICAgc3JhQGVjcy5zb3Rvbi5hYy51awogKgogKiAgIENvbW1lbnRz
OgogKgogKiAgICAgMS4gIFRoZSBpbXBsZW1lbnRhdGlvbiBpcyBiYXNlZCBv
biBCaW5hcnkgc2VhcmNoIHRyZWVzIG9mIEJvdW5kZWQKICogICAgICAgICBC
YWxhbmNlLCBzaW1pbGFyIHRvIE5pZXZlcmdlbHQgJiBSZWluZ29sZCwgU0lB
TSBKLiBDb21wdXRpbmcKICogICAgICAgICAyKDEpLCBNYXJjaCAxOTczLiAg
VGhlIG1haW4gYWR2YW50YWdlIG9mIHRoZXNlIHRyZWVzIGlzIHRoYXQKICog
ICAgICAgICB0aGV5IGtlZXAgdGhlIHNpemUgb2YgdGhlIHRyZWUgaW4gdGhl
IG5vZGUsIGdpdmluZyBhIGNvbnN0YW50CiAqICAgICAgICAgdGltZSBzaXpl
IG9wZXJhdGlvbi4KICoKICogICAgIDIuICBUaGUgYm91bmRlZCBiYWxhbmNl
IGNyaXRlcmlvbiBpcyBzaW1wbGVyIHRoYW4gTiZSJ3MgYWxwaGEuCiAqICAg
ICAgICAgU2ltcGx5LCBvbmUgc3VidHJlZSBtdXN0IG5vdCBoYXZlIG1vcmUg
dGhhbiBgd2VpZ2h0JyB0aW1lcyBhcwogKiAgICAgICAgIG1hbnkgZWxlbWVu
dHMgYXMgdGhlIG9wcG9zaXRlIHN1YnRyZWUuICBSZWJhbGFuY2luZyBpcwog
KiAgICAgICAgIGd1YXJhbnRlZWQgdG8gcmVpbnN0YXRlIHRoZSBjcml0ZXJp
b24gZm9yIHdlaWdodD4yLjIzLCBidXQKICogICAgICAgICB0aGUgb2NjYXNp
b25hbCBpbmNvcnJlY3QgYmVoYXZpb3VyIGZvciB3ZWlnaHQ9MiBpcyBub3QK
ICogICAgICAgICBkZXRyaW1lbnRhbCB0byBwZXJmb3JtYW5jZS4KICoKICop
CgpzdHJ1Y3R1cmUgQmluYXJ5bWFwIDo+IEJpbmFyeW1hcCA9CnN0cnVjdAog
CmV4Y2VwdGlvbiBOb3RGb3VuZAoKZnVuIHd0IChpIDogaW50KSA9IDMgKiBp
CgpkYXRhdHlwZSAoJ2tleSwgJ2EpIGRpY3QgPSAKICAgIERJQ1Qgb2YgKCdr
ZXkgKiAna2V5IC0+IG9yZGVyKSAqICgna2V5LCAnYSkgdHJlZQphbmQgKCdr
ZXksICdhKSB0cmVlID0KICAgIEUgCiAgfCBUIG9mIHtrZXkgICA6ICdrZXks
IAoJICB2YWx1ZSA6ICdhLCAKCSAgY250ICAgOiBpbnQsIAoJICBsZWZ0ICA6
ICgna2V5LCAnYSkgdHJlZSwgCgkgIHJpZ2h0IDogKCdrZXksICdhKSB0cmVl
fQoKZnVuIHRyZWVTaXplIEUgICAgICAgICAgICA9IDAKICB8IHRyZWVTaXpl
IChUe2NudCwuLi59KSA9IGNudAoKZnVuIG51bUl0ZW1zIChESUNUKF8sIHQp
KSA9IHRyZWVTaXplIHQKCmxvY2FsCiAgICBmdW4gTihrLHYsRSxFKSA9IFR7
a2V5PWssdmFsdWU9dixjbnQ9MSxsZWZ0PUUscmlnaHQ9RX0KICAgICAgfCBO
KGssdixFLHIgYXMgVCBuKSA9IFR7a2V5PWssdmFsdWU9dixjbnQ9MSsoI2Nu
dCBuKSxsZWZ0PUUscmlnaHQ9cn0KICAgICAgfCBOKGssdixsIGFzIFQgbixF
KSA9IFR7a2V5PWssdmFsdWU9dixjbnQ9MSsoI2NudCBuKSxsZWZ0PWwscmln
aHQ9RX0KICAgICAgfCBOKGssdixsIGFzIFQgbixyIGFzIFQgbicpID0gCiAg
ICAgICAgICBUe2tleT1rLHZhbHVlPXYsY250PTErKCNjbnQgbikrKCNjbnQg
bicpLGxlZnQ9bCxyaWdodD1yfQoKICAgIGZ1biBzaW5nbGVfTCAoYSxhdix4
LFR7a2V5PWIsdmFsdWU9YnYsbGVmdD15LHJpZ2h0PXosLi4ufSkgPSAKICAg
ICAgICAgIE4oYixidixOKGEsYXYseCx5KSx6KQogICAgICB8IHNpbmdsZV9M
IF8gPSByYWlzZSBNYXRjaAogICAgZnVuIHNpbmdsZV9SIChiLGJ2LFR7a2V5
PWEsdmFsdWU9YXYsbGVmdD14LHJpZ2h0PXksLi4ufSx6KSA9IAogICAgICAg
ICAgTihhLGF2LHgsTihiLGJ2LHkseikpCiAgICAgIHwgc2luZ2xlX1IgXyA9
IHJhaXNlIE1hdGNoCiAgICBmdW4gZG91YmxlX0wgKGEsYXYsdyxUe2tleT1j
LHZhbHVlPWN2LCAKCQkJICAgbGVmdD1Ue2tleT1iLHZhbHVlPWJ2LGxlZnQ9
eCxyaWdodD15LC4uLn0sCgkJCSAgIHJpZ2h0PXosLi4ufSkgPQogICAgICAg
ICAgTihiLGJ2LE4oYSxhdix3LHgpLE4oYyxjdix5LHopKQogICAgICB8IGRv
dWJsZV9MIF8gPSByYWlzZSBNYXRjaAogICAgZnVuIGRvdWJsZV9SIChjLGN2
LFR7a2V5PWEsdmFsdWU9YXYsbGVmdD13LAoJCQkgcmlnaHQ9VHtrZXk9Yix2
YWx1ZT1idixsZWZ0PXgscmlnaHQ9eSwuLi59LC4uLn0seikgPSAKICAgICAg
ICAgIE4oYixidixOKGEsYXYsdyx4KSxOKGMsY3YseSx6KSkKICAgICAgfCBk
b3VibGVfUiBfID0gcmFpc2UgTWF0Y2gKCiAgICBmdW4gVCcgKGssdixFLEUp
ID0gVHtrZXk9ayx2YWx1ZT12LGNudD0xLGxlZnQ9RSxyaWdodD1FfQogICAg
ICB8IFQnIChrLHYsRSxyIGFzIFR7cmlnaHQ9RSxsZWZ0PUUsLi4ufSkgPQog
ICAgICAgICAgVHtrZXk9ayx2YWx1ZT12LGNudD0yLGxlZnQ9RSxyaWdodD1y
fQogICAgICB8IFQnIChrLHYsbCBhcyBUe3JpZ2h0PUUsbGVmdD1FLC4uLn0s
RSkgPQogICAgICAgICAgVHtrZXk9ayx2YWx1ZT12LGNudD0yLGxlZnQ9bCxy
aWdodD1FfQoKICAgICAgfCBUJyAocCBhcyAoXyxfLEUsVHtsZWZ0PVQgXyxy
aWdodD1FLC4uLn0pKSA9IGRvdWJsZV9MIHAKICAgICAgfCBUJyAocCBhcyAo
XyxfLFR7bGVmdD1FLHJpZ2h0PVQgXywuLi59LEUpKSA9IGRvdWJsZV9SIHAK
CiAgICAgICAgKCogdGhlc2UgY2FzZXMgYWxtb3N0IG5ldmVyIGhhcHBlbiB3
aXRoIHNtYWxsIHdlaWdodCopCiAgICAgIHwgVCcgKHAgYXMgKF8sXyxFLFR7
bGVmdD1Ue2NudD1sbiwuLi59LHJpZ2h0PVR7Y250PXJuLC4uLn0sLi4ufSkp
ID0KICAgICAgICAgIGlmIGxuIDwgcm4gdGhlbiBzaW5nbGVfTCBwIGVsc2Ug
ZG91YmxlX0wgcAogICAgICB8IFQnIChwIGFzIChfLF8sVHtsZWZ0PVR7Y250
PWxuLC4uLn0scmlnaHQ9VHtjbnQ9cm4sLi4ufSwuLi59LEUpKSA9CiAgICAg
ICAgICBpZiBsbiA+IHJuIHRoZW4gc2luZ2xlX1IgcCBlbHNlIGRvdWJsZV9S
IHAKCiAgICAgIHwgVCcgKHAgYXMgKF8sXyxFLFR7bGVmdD1FLC4uLn0pKSA9
IHNpbmdsZV9MIHAKICAgICAgfCBUJyAocCBhcyAoXyxfLFR7cmlnaHQ9RSwu
Li59LEUpKSA9IHNpbmdsZV9SIHAKCiAgICAgIHwgVCcgKHAgYXMgKGssdixs
IGFzIFR7Y250PWxuLGxlZnQ9bGwscmlnaHQ9bHIsLi4ufSwKICAgICAgICAg
ICAgICAgICAgICAgIHIgYXMgVHtjbnQ9cm4sbGVmdD1ybCxyaWdodD1yciwu
Li59KSkgPQogICAgICAgICAgaWYgcm4gPj0gd3QgbG4gdGhlbiAoKnJpZ2h0
IGlzIHRvbyBiaWcqKQogICAgICAgICAgICBsZXQgdmFsIHJsbiA9IHRyZWVT
aXplIHJsCiAgICAgICAgICAgICAgICB2YWwgcnJuID0gdHJlZVNpemUgcnIK
ICAgICAgICAgICAgaW4KICAgICAgICAgICAgICBpZiBybG4gPCBycm4gdGhl
biAgc2luZ2xlX0wgcCAgZWxzZSAgZG91YmxlX0wgcAogICAgICAgICAgICBl
bmQKICAgICAgICAKICAgICAgICAgIGVsc2UgaWYgbG4gPj0gd3Qgcm4gdGhl
biAgKCpsZWZ0IGlzIHRvbyBiaWcqKQogICAgICAgICAgICBsZXQgdmFsIGxs
biA9IHRyZWVTaXplIGxsCiAgICAgICAgICAgICAgICB2YWwgbHJuID0gdHJl
ZVNpemUgbHIKICAgICAgICAgICAgaW4KICAgICAgICAgICAgICBpZiBscm4g
PCBsbG4gdGhlbiAgc2luZ2xlX1IgcCAgZWxzZSAgZG91YmxlX1IgcAogICAg
ICAgICAgICBlbmQKICAgIAogICAgICAgICAgZWxzZSBUe2tleT1rLHZhbHVl
PXYsY250PWxuK3JuKzEsbGVmdD1sLHJpZ2h0PXJ9CgogICAgbG9jYWwKICAg
ICAgZnVuIG1pbiAoVHtsZWZ0PUUsa2V5LHZhbHVlLC4uLn0pID0gKGtleSx2
YWx1ZSkKICAgICAgICB8IG1pbiAoVHtsZWZ0LC4uLn0pID0gbWluIGxlZnQK
ICAgICAgICB8IG1pbiBfID0gcmFpc2UgTWF0Y2gKICAKICAgICAgZnVuIGRl
bG1pbiAoVHtsZWZ0PUUscmlnaHQsLi4ufSkgPSByaWdodAogICAgICAgIHwg
ZGVsbWluIChUe2tleSx2YWx1ZSxsZWZ0LHJpZ2h0LC4uLn0pID0gCgkgIFQn
KGtleSx2YWx1ZSxkZWxtaW4gbGVmdCxyaWdodCkKICAgICAgICB8IGRlbG1p
biBfID0gcmFpc2UgTWF0Y2gKICAgIGluCiAgICAgIGZ1biBkZWxldGUnIChF
LHIpID0gcgogICAgICAgIHwgZGVsZXRlJyAobCxFKSA9IGwKICAgICAgICB8
IGRlbGV0ZScgKGwscikgPSBsZXQgdmFsIChtaW5rLG1pbnYpID0gbWluIHIg
CgkJCSAgaW4gVCcobWluayxtaW52LGwsZGVsbWluIHIpIGVuZAogICAgZW5k
CmluCiAgICBmdW4gbWtEaWN0IGNtcEtleSA9IERJQ1QoY21wS2V5LCBFKQog
ICAgCiAgICBmdW4gaW5zZXJ0IChESUNUIChjbXBLZXksIHQpLHgsdikgPSAK
CWxldCBmdW4gaW5zIEUgPSBUe2tleT14LHZhbHVlPXYsY250PTEsbGVmdD1F
LHJpZ2h0PUV9CgkgICAgICB8IGlucyAoVChzZXQgYXMge2tleSxsZWZ0LHJp
Z2h0LHZhbHVlLC4uLn0pKSA9CgkJY2FzZSBjbXBLZXkgKGtleSx4KSBvZgoJ
CSAgICBHUkVBVEVSID0+IFQnKGtleSx2YWx1ZSxpbnMgbGVmdCxyaWdodCkK
CQkgIHwgTEVTUyAgICA9PiBUJyhrZXksdmFsdWUsbGVmdCxpbnMgcmlnaHQp
CgkJICB8IF8gICAgICAgPT4gCgkJCVR7a2V5PXgsdmFsdWU9dixsZWZ0PWxl
ZnQscmlnaHQ9cmlnaHQsY250PSAjY250IHNldH0KCWluIERJQ1QoY21wS2V5
LCBpbnMgdCkgZW5kCgogICAgZnVuIGZpbmQgKERJQ1QoY21wS2V5LCB0KSwg
eCkgPQoJbGV0IGZ1biBtZW0gRSA9IHJhaXNlIE5vdEZvdW5kCgkgICAgICB8
IG1lbSAoVChuIGFzIHtrZXksbGVmdCxyaWdodCwuLi59KSkgPQoJCWNhc2Ug
Y21wS2V5ICh4LGtleSkgb2YKCQkgICAgR1JFQVRFUiA9PiBtZW0gcmlnaHQK
CQkgIHwgTEVTUyAgICA9PiBtZW0gbGVmdAoJCSAgfCBfICAgICAgID0+ICN2
YWx1ZSBuCglpbiBtZW0gdCBlbmQKCiAgICBmdW4gcGVlayBhcmcgPSAoU09N
RShmaW5kIGFyZykpIGhhbmRsZSBOb3RGb3VuZCA9PiBOT05FCgogICAgZnVu
IHJlbW92ZSAoRElDVChjbXBLZXksIHQpLCB4KSA9IAoJbGV0IGZ1biBybSBF
ID0gcmFpc2UgTm90Rm91bmQKCSAgICAgIHwgcm0gKHNldCBhcyBUe2tleSxs
ZWZ0LHJpZ2h0LHZhbHVlLC4uLn0pID0gCgkJKGNhc2UgY21wS2V5IChrZXks
eCkgb2YKCQkgICAgIEdSRUFURVIgPT4gbGV0IHZhbCAobGVmdCcsIHYpID0g
cm0gbGVmdAoJCQkJaW4gKFQnKGtleSwgdmFsdWUsIGxlZnQnLCByaWdodCks
IHYpIGVuZAoJCSAgIHwgTEVTUyAgICA9PiBsZXQgdmFsIChyaWdodCcsIHYp
ID0gcm0gcmlnaHQKCQkJCWluIChUJyhrZXksIHZhbHVlLCBsZWZ0LCByaWdo
dCcpLCB2KSBlbmQKCQkgICB8IF8gICAgICAgPT4gKGRlbGV0ZScobGVmdCxy
aWdodCksdmFsdWUpKQoJICAgIHZhbCAobmV3dHJlZSwgdmFscm0pID0gcm0g
dAoJaW4gKERJQ1QoY21wS2V5LCBuZXd0cmVlKSwgdmFscm0pIGVuZAoKICAg
IGZ1biBsaXN0SXRlbXMgKERJQ1QoXywgZCkpID0gCglsZXQgZnVuIGQybCBF
IHJlcyA9IHJlcwoJICAgICAgfCBkMmwgKFR7a2V5LHZhbHVlLGxlZnQscmln
aHQsLi4ufSkgcmVzID0KCQlkMmwgbGVmdCAoKGtleSx2YWx1ZSkgOjogZDJs
IHJpZ2h0IHJlcykKCWluIGQybCBkIFtdIGVuZAoKICAgIGZ1biByZXZhcHAg
ZiAoRElDVChfLCBkKSkgPSBsZXQKICAgICAgZnVuIGEgRSA9ICgpCiAgICAg
ICAgfCBhIChUe2tleSx2YWx1ZSxsZWZ0LHJpZ2h0LC4uLn0pID0gKGEgcmln
aHQ7IGYoa2V5LHZhbHVlKTsgYSBsZWZ0KQogICAgICBpbiBhIGQgZW5kCgog
ICAgZnVuIGFwcCBmIChESUNUKF8sIGQpKSA9IGxldAogICAgICBmdW4gYSBF
ID0gKCkKICAgICAgICB8IGEgKFR7a2V5LHZhbHVlLGxlZnQscmlnaHQsLi4u
fSkgPSAoYSBsZWZ0OyBmKGtleSx2YWx1ZSk7IGEgcmlnaHQpCiAgICAgIGlu
IGEgZCBlbmQKCiAgICBmdW4gZm9sZHIgZiBpbml0IChESUNUKF8sIGQpKSA9
IGxldAogICAgICBmdW4gYSBFIHYgPSB2CiAgICAgICAgfCBhIChUe2tleSx2
YWx1ZSxsZWZ0LHJpZ2h0LC4uLn0pIHYgPSBhIGxlZnQgKGYoa2V5LHZhbHVl
LGEgcmlnaHQgdikpCiAgICAgIGluIGEgZCBpbml0IGVuZAoKICAgIGZ1biBm
b2xkbCBmIGluaXQgKERJQ1QoXywgZCkpID0gbGV0CiAgICAgIGZ1biBhIEUg
diA9IHYKICAgICAgICB8IGEgKFR7a2V5LHZhbHVlLGxlZnQscmlnaHQsLi4u
fSkgdiA9IGEgcmlnaHQgKGYoa2V5LHZhbHVlLGEgbGVmdCB2KSkKICAgICAg
aW4gYSBkIGluaXQgZW5kCgogICAgZnVuIG1hcCBmIChESUNUKGNtcEtleSwg
ZCkpID0gbGV0CiAgICAgIGZ1biBhIEUgPSBFCiAgICAgICAgfCBhIChUe2tl
eSx2YWx1ZSxsZWZ0LHJpZ2h0LGNudH0pID0gbGV0CiAgICAgICAgICAgIHZh
bCBsZWZ0JyA9IGEgbGVmdAogICAgICAgICAgICB2YWwgdmFsdWUnID0gZihr
ZXksdmFsdWUpCiAgICAgICAgICAgIGluCiAgICAgICAgICAgICAgVHtjbnQ9
Y250LCBrZXk9a2V5LHZhbHVlPXZhbHVlJyxsZWZ0ID0gbGVmdCcsIHJpZ2h0
ID0gYSByaWdodH0KICAgICAgICAgICAgZW5kCiAgICAgIGluIERJQ1QoY21w
S2V5LCBhIGQpIGVuZAoKICAgIGZ1biB0cmFuc2Zvcm0gZiAoRElDVChjbXBL
ZXksIGQpKSA9IAoJbGV0IGZ1biBhIEUgPSBFCgkgICAgICB8IGEgKFR7a2V5
LHZhbHVlLGxlZnQscmlnaHQsY250fSkgPSAKCQlsZXQgdmFsIGxlZnQnID0g
YSBsZWZ0CgkJaW4KCQkgICAgVHtjbnQ9Y250LCBrZXk9a2V5LCB2YWx1ZT1m
IHZhbHVlLCBsZWZ0ID0gbGVmdCcsIAoJCSAgICAgIHJpZ2h0ID0gYSByaWdo
dH0KCQllbmQKICAgICAgaW4gRElDVChjbXBLZXksIGEgZCkgZW5kCmVuZAoK
ZW5kCigqI2xpbmUgMC4wICIkSE9NRS9kZXYvc21sL2Jhc2ljL3NyYy9TdXNw
LnNpZyIqKQooKiBTdXNwIC0tIHN1cHBvcnQgZm9yIGxhenkgZXZhbHVhdGlv
biAqKQoKc2lnbmF0dXJlIFN1c3AgPQpzaWcKCnR5cGUgJ2Egc3VzcAoKdmFs
IGRlbGF5IDogKHVuaXQgLT4gJ2EpIC0+ICdhIHN1c3AKdmFsIGZvcmNlIDog
J2Egc3VzcCAtPiAnYQoKZW5kCgooKiAKICAgWydhIHN1c3BdIGlzIHRoZSB0
eXBlIG9mIGxhemlseSBldmFsdWF0ZWQgZXhwcmVzc2lvbnMgd2l0aCByZXN1
bHQKICAgdHlwZSAnYS4KCiAgIFtkZWxheSAoZm4gKCkgPT4gZSldIGNyZWF0
ZXMgYSBzdXNwZW5zaW9uIGZvciB0aGUgZXhwcmVzc2lvbiBlLgogICBUaGUg
Zmlyc3QgdGltZSB0aGUgc3VzcGVuc2lvbiBpcyBmb3JjZWQsIHRoZSBleHBy
ZXNzaW9uIGUgd2lsbCBiZQogICBldmFsdWF0ZWQsIGFuZCB0aGUgcmVzdWx0
IHN0b3JlZCBpbiB0aGUgc3VzcGVuc2lvbi4gIEFsbCBzdWJzZXF1ZW50CiAg
IGZvcmNpbmcgb2YgdGhlIHN1c3BlbnNpb24gd2lsbCBqdXN0IHJldHVybiB0
aGlzIHJlc3VsdCwgc28gZSBpcwogICBldmFsdWF0ZWQgYXQgbW9zdCBvbmNl
LiAgSWYgdGhlIHN1c3BlbnNpb24gaXMgbmV2ZXIgZm9yY2VkLCB0aGVuIGUK
ICAgaXMgbmV2ZXIgZXZhbHVhdGVkLgoKICAgW2ZvcmNlIHN1XSBmb3JjZXMg
dGhlIHN1c3BlbnNpb24gc3UgYW5kIHJldHVybnMgdGhlIHJlc3VsdCBvZiB0
aGUKICAgZXhwcmVzc2lvbiBlIHN0b3JlZCBpbiB0aGUgc3VzcGVuc2lvbi4K
KikKKCojbGluZSAwLjAgIiRIT01FL2Rldi9zbWwvYmFzaWMvc3JjL1N1c3Au
c21sIiopCigqIFN1c3AgLS0gc3VwcG9ydCBmb3IgbGF6eSBldmFsdWF0aW9u
IDE5OTUtMDUtMjIgKikKCnN0cnVjdHVyZSBTdXNwIDo+IFN1c3AgPQpzdHJ1
Y3QKCmRhdGF0eXBlICdhIHRodW5rID0gVkFMIG9mICdhIHwgVEhVTksgb2Yg
dW5pdCAtPiAnYTsKCnR5cGUgJ2Egc3VzcCA9ICdhIHRodW5rIHJlZjsKCmZ1
biBkZWxheSAoZiA6IHVuaXQgLT4gJ2EpID0gcmVmIChUSFVOSyBmKTsKCmZ1
biBmb3JjZSAoc3UgOiAnYSBzdXNwKSA6ICdhID0gCiAgY2FzZSAhc3Ugb2YK
ICAgIFZBTCB2ICAgPT4gdiAKICB8IFRIVU5LIGYgPT4gbGV0IHZhbCB2ID0g
ZiAoKSBpbiBzdSA6PSBWQUwgdjsgdiBlbmQKCmVuZAooKiNsaW5lIDAuMCAi
JEhPTUUvZGV2L3NtbC9iYXNpYy9zcmMvTWlsdG9uLnNpZyIqKQooKiA9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09ICopCigqIE1MdG9uIFNQRUNJRklD
IEZVTkNUSU9OUyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgKikKKCogQ3JlYXRlZCBieSBKb2UgSHVyZCwgU2Vw
dGVtYmVyIDIwMDIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAqKQooKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICopCgpz
aWduYXR1cmUgTWlsdG9uID0Kc2lnCgooKiBUaGUgTUwgaW1wbGVtZW50YXRp
b24gKikKdmFsIG1sIDogc3RyaW5nCgooKiBQb2ludGVyIGVxdWFsaXR5IHVz
aW5nIHRoZSBydW4tdGltZSBzeXN0ZW0gKikKdmFsIHBvaW50ZXJfZXEgOiAn
YSAtPiAnYSAtPiBib29sCgooKiBRdW90YXRpb25zIGEgbGEgTW9zbWwgKikK
ZGF0YXR5cGUgJ2EgZnJhZyA9IFFVT1RFIG9mIHN0cmluZyB8IEFOVElRVU9U
RSBvZiAnYQoKKCogVGltaW5nIGZ1bmN0aW9uIGFwcGxpY2F0aW9ucyBhIGxh
IE1vc21sLnRpbWUgKikKdmFsIHRpbWUgOiAoJ2EgLT4gJ2IpIC0+ICdhIC0+
ICdiCgooKiBCcmluZyBjZXJ0YWluIGRlY2xhcmF0aW9ucyB0byB0aGUgdG9w
LWxldmVsICopCnR5cGUgcHBzdHJlYW0gPSBQUC5wcHN0cmVhbQoKKCogRHVt
bXkgdmVyc2lvbnMgb2YgTW9zbWwgZGVjbGFyYXRpb25zIHRvIHN0b3AgTUx0
b24gYmFyZmluZyAqKQp2YWwgcXVvdGF0aW9uIDogYm9vbCByZWYKdmFsIGxv
YWQgICAgICA6IHN0cmluZyAtPiB1bml0CnZhbCBpbnN0YWxsUFAgOiAocHBz
dHJlYW0gLT4gJ2EgLT4gdW5pdCkgLT4gdW5pdAoKZW5kCigqI2xpbmUgMC4w
ICIkSE9NRS9kZXYvc21sL2Jhc2ljL3NyYy9NaWx0b24uc21sIiopCigqID09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0gKikKKCogTUx0b24gU1BFQ0lG
SUMgRlVOQ1RJT05TICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAqKQooKiBDcmVhdGVkIGJ5IEpvZSBIdXJkLCBT
ZXB0ZW1iZXIgMjAwMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICopCigqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKikK
CnN0cnVjdHVyZSBNaWx0b24gOj4gTWlsdG9uID0Kc3RydWN0CgooKiAtLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICopCigqIFRoZSBNTCBpbXBsZW1l
bnRhdGlvbi4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgKikKKCogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLSAqKQoKdmFsIG1sID0gIk1MdG9uIjsKCigqIC0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0gKikKKCogUG9pbnRlciBlcXVhbGl0eSB1c2luZyB0
aGUgcnVuLXRpbWUgc3lzdGVtLiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAqKQooKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICopCgpm
dW4gcG9pbnRlcl9lcSB4IHkgPSBNTHRvbi5lcSAoeCwgeSk7CgooKiAtLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICopCigqIFF1b3RhdGlvbnMgYSBs
YSBNb3NtbC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgKikKKCogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLSAqKQoKZGF0YXR5cGUgJ2EgZnJhZyA9IFFVT1RFIG9mIHN0cmluZyB8
IEFOVElRVU9URSBvZiAnYTsKCigqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0gKikKKCogVGltaW5nIGZ1bmN0aW9uIGFwcGxpY2F0aW9ucyBhIGxh
IE1vc21sLnRpbWUuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKQoo
KiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICopCgpmdW4gdGltZSBm
IHggPQogIGxldAogICAgZnVuIHAgdCA9CiAgICAgIGxldAogICAgICAgIHZh
bCBzID0gVGltZS5mbXQgMyB0CiAgICAgIGluCiAgICAgICAgY2FzZSBzaXpl
IChMaXN0Lmxhc3QgKFN0cmluZy5maWVsZHMgKGZuIHggPT4geCA9ICMiLiIp
IHMpKSBvZiAzID0+IHMKICAgICAgICB8IDIgPT4gcyBeICIwIgogICAgICAg
IHwgMSA9PiBzIF4gIjAwIgogICAgICAgIHwgXyA9PiByYWlzZSBGYWlsICJN
aWx0b24udGltZSIKICAgICAgZW5kCiAgICB2YWwgYyA9IFRpbWVyLnN0YXJ0
Q1BVVGltZXIgKCkKICAgIHZhbCByID0gVGltZXIuc3RhcnRSZWFsVGltZXIg
KCkKICAgIGZ1biBwdCAoKSA9CiAgICAgIGxldAogICAgICAgIHZhbCB7dXNy
LCBzeXMsIGdjfSA9IFRpbWVyLmNoZWNrQ1BVVGltZXIgYwogICAgICAgIHZh
bCByZWFsID0gVGltZXIuY2hlY2tSZWFsVGltZXIgcgogICAgICBpbgogICAg
ICAgIHByaW50CiAgICAgICAgKCJVc2VyOiAiIF4gcCB1c3IgXiAiICBTeXN0
ZW06ICIgXiBwIHN5cyBeCiAgICAgICAgICIgIEdDOiAiIF4gcCBnYyBeICIg
IFJlYWw6ICIgXiBwIHJlYWwgXiAiXG4iKQogICAgICBlbmQKICAgIHZhbCB5
ID0gZiB4IGhhbmRsZSBlID0+IChwdCAoKTsgcmFpc2UgZSkKICAgIHZhbCAo
KSA9IHB0ICgpCiAgaW4KICAgIHkKICBlbmQ7CgooKiAtLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tICopCigqIEJyaW5nIGNlcnRhaW4gZGVjbGFyYXRp
b25zIHRvIHRoZSB0b3AtbGV2ZWwuICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgKikKKCogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqKQoK
dHlwZSBwcHN0cmVhbSA9IFBQLnBwc3RyZWFtOwoKKCogLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLSAqKQooKiBEdW1teSB2ZXJzaW9ucyBvZiBNb3Nt
bCBkZWNsYXJhdGlvbnMgdG8gc3RvcCBNTHRvbiBiYXJmaW5nLiAgICAgICAg
ICAgICAgICopCigqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKikK
CnZhbCBxdW90YXRpb24gPSByZWYgZmFsc2U7CnZhbCBsb2FkICAgICAgPSBm
biAoXyA6IHN0cmluZykgPT4gKCk7CnZhbCBpbnN0YWxsUFAgPSBmbiAoXyA6
IHBwc3RyZWFtIC0+ICdhIC0+IHVuaXQpID0+ICgpOwoKZW5kCm9wZW4gTWls
dG9uOwooKiNsaW5lIDAuMCAiYmFzaWMvVXNlZnVsLnNpZyIqKQooKiA9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09ICopCigqIE1MIFVUSUxJVFkgRlVO
Q1RJT05TICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgKikKKCogQ3JlYXRlZCBieSBKb2UgSHVyZCwgQXBy
aWwgMjAwMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAqKQooKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICopCgpz
aWduYXR1cmUgVXNlZnVsID0Kc2lnCgooKiBFeGNlcHRpb25zLCBwcm9maWxp
bmcgYW5kIHRyYWNpbmcgKikKZXhjZXB0aW9uIEVSUl9FWE4gb2Yge29yaWdp
bl9mdW5jdGlvbiA6IHN0cmluZywgbWVzc2FnZSA6IHN0cmluZ30KZXhjZXB0
aW9uIEJVR19FWE4gb2Yge29yaWdpbl9mdW5jdGlvbiA6IHN0cmluZywgbWVz
c2FnZSA6IHN0cmluZ30KdmFsIEVSUiAgICAgIDogc3RyaW5nIC0+IHN0cmlu
ZyAtPiBleG4KdmFsIEJVRyAgICAgIDogc3RyaW5nIC0+IHN0cmluZyAtPiBl
eG4KdmFsIGFzc2VydCAgIDogYm9vbCAtPiBleG4gLT4gdW5pdAp2YWwgdHJ5
ICAgICAgOiAoJ2EgLT4gJ2IpIC0+ICdhIC0+ICdiCnZhbCB0b3RhbCAgICA6
ICgnYSAtPiAnYikgLT4gJ2EgLT4gJ2Igb3B0aW9uCnZhbCBjYW4gICAgICA6
ICgnYSAtPiAnYikgLT4gJ2EgLT4gYm9vbAp2YWwgcGFydGlhbCAgOiBleG4g
LT4gKCdhIC0+ICdiIG9wdGlvbikgLT4gJ2EgLT4gJ2IKdmFsIHRpbWVkICAg
IDogKCdhIC0+ICdiKSAtPiAnYSAtPiByZWFsICogJ2IKdmFsIHRyYWNpbmcg
IDogaW50IHJlZgp2YWwgdHJhY2VzICAgOiB7bW9kdWxlIDogc3RyaW5nLCBh
bGlnbm1lbnQgOiBpbnQgLT4gaW50fSBsaXN0IHJlZgp2YWwgdHJhY2UgICAg
OiB7bW9kdWxlIDogc3RyaW5nLCBtZXNzYWdlIDogc3RyaW5nLCBsZXZlbCA6
IGludH0gLT4gdW5pdAoKKCogQ29tYmluYXRvcnMgKikKdmFsIEMgIDogKCdh
IC0+ICdiIC0+ICdjKSAtPiAnYiAtPiAnYSAtPiAnYwp2YWwgSSAgOiAnYSAt
PiAnYQp2YWwgSyAgOiAnYSAtPiAnYiAtPiAnYQp2YWwgTiAgOiBpbnQgLT4g
KCdhIC0+ICdhKSAtPiAnYSAtPiAnYQp2YWwgUyAgOiAoJ2EgLT4gJ2IgLT4g
J2MpIC0+ICgnYSAtPiAnYikgLT4gJ2EgLT4gJ2MKdmFsIFcgIDogKCdhIC0+
ICdhIC0+ICdiKSAtPiAnYSAtPiAnYgp2YWwgb28gOiAoJ2EgLT4gJ2IpICog
KCdjIC0+ICdkIC0+ICdhKSAtPiAnYyAtPiAnZCAtPiAnYgp2YWwgIyMgOiAo
J2EgLT4gJ2IpICogKCdjIC0+ICdkKSAtPiAnYSAqICdjIC0+ICdiICogJ2QK
CigqIEJvb2xlYW5zICopCnZhbCBib29sX3RvX3N0cmluZyA6IGJvb2wgLT4g
c3RyaW5nCnZhbCBub24gICAgICAgICAgICA6ICgnYSAtPiBib29sKSAtPiAn
YSAtPiBib29sCgooKiBQYWlycyAqKQp2YWwgRCAgICAgICA6ICdhIC0+ICdh
ICogJ2EKdmFsIERmICAgICAgOiAoJ2EgLT4gJ2IpIC0+ICdhICogJ2EgLT4g
J2IgKiAnYgp2YWwgZnN0ICAgICA6ICdhICogJ2IgLT4gJ2EKdmFsIHNuZCAg
ICAgOiAnYSAqICdiIC0+ICdiCnZhbCBwYWlyICAgIDogJ2EgLT4gJ2IgLT4g
J2EgKiAnYgp2YWwgY3VycnkgICA6ICgnYSAqICdiIC0+ICdjKSAtPiAnYSAt
PiAnYiAtPiAnYwp2YWwgdW5jdXJyeSA6ICgnYSAtPiAnYiAtPiAnYykgLT4g
J2EgKiAnYiAtPiAnYwp2YWwgZXF1YWwgICA6ICcnYSAtPiAnJ2EgLT4gYm9v
bAoKKCogU3RhdGUgdHJhbnNmb3JtZXJzICopCnZhbCB1bml0ICAgOiAnYSAt
PiAncyAtPiAnYSAqICdzCnZhbCBiaW5kICAgOiAoJ3MgLT4gJ2EgKiAncykg
LT4gKCdhIC0+ICdzIC0+ICdiICogJ3MpIC0+ICdzIC0+ICdiICogJ3MKdmFs
IG1tYXAgICA6ICgnYSAtPiAnYikgLT4gKCdzIC0+ICdhICogJ3MpIC0+ICdz
IC0+ICdiICogJ3MKdmFsIGpvaW4gICA6ICgncyAtPiAoJ3MgLT4gJ2EgKiAn
cykgKiAncykgLT4gJ3MgLT4gJ2EgKiAncwp2YWwgbXdoaWxlIDogKCdhIC0+
IGJvb2wpIC0+ICgnYSAtPiAncyAtPiAnYSAqICdzKSAtPiAnYSAtPiAncyAt
PiAnYSAqICdzCgooKiBMaXN0czogbm90ZSB3ZSBjb3VudCBlbGVtZW50cyBm
cm9tIDAgKikKdmFsIGNvbnMgICAgICAgICA6ICdhIC0+ICdhIGxpc3QgLT4g
J2EgbGlzdAp2YWwgYXBwZW5kICAgICAgIDogJ2EgbGlzdCAtPiAnYSBsaXN0
IC0+ICdhIGxpc3QKdmFsIHdyYXAgICAgICAgICA6ICdhIC0+ICdhIGxpc3QK
dmFsIHVud3JhcCAgICAgICA6ICdhIGxpc3QgLT4gJ2EKdmFsIGZpcnN0ICAg
ICAgICA6ICgnYSAtPiAnYiBvcHRpb24pIC0+ICdhIGxpc3QgLT4gJ2Igb3B0
aW9uCnZhbCBpbmRleCAgICAgICAgOiAoJ2EgLT4gYm9vbCkgLT4gJ2EgbGlz
dCAtPiBpbnQgb3B0aW9uCnZhbCBtYXBzICAgICAgICAgOiAoJ2EgLT4gJ3Mg
LT4gJ2IgKiAncykgLT4gJ2EgbGlzdCAtPiAncyAtPiAnYiBsaXN0ICogJ3MK
dmFsIHBhcnRpYWxfbWFwcyA6ICgnYSAtPiAncyAtPiAnYiBvcHRpb24gKiAn
cykgLT4gJ2EgbGlzdCAtPiAncyAtPiAnYiBsaXN0ICogJ3MKdmFsIGVudW1l
cmF0ZSAgICA6IGludCAtPiAnYSBsaXN0IC0+IChpbnQgKiAnYSkgbGlzdAp2
YWwgY2FydHdpdGggICAgIDogKCdhIC0+ICdiIC0+ICdjKSAtPiAnYSBsaXN0
IC0+ICdiIGxpc3QgLT4gJ2MgbGlzdAp2YWwgemlwd2l0aCAgICAgIDogKCdh
IC0+ICdiIC0+ICdjKSAtPiAnYSBsaXN0IC0+ICdiIGxpc3QgLT4gJ2MgbGlz
dAp2YWwgemlwICAgICAgICAgIDogJ2EgbGlzdCAtPiAnYiBsaXN0IC0+ICgn
YSAqICdiKSBsaXN0CnZhbCB1bnppcCAgICAgICAgOiAoJ2EgKiAnYikgbGlz
dCAtPiAnYSBsaXN0ICogJ2IgbGlzdAp2YWwgc3BsaXQgICAgICAgIDogJ2Eg
bGlzdCAtPiBpbnQgLT4gJ2EgbGlzdCAqICdhIGxpc3QgICAgICAoKiBTdWJz
Y3JpcHQgKikKdmFsIHVwZGF0ZV9udGggICA6ICgnYSAtPiAnYSkgLT4gaW50
IC0+ICdhIGxpc3QgLT4gJ2EgbGlzdCAgKCogU3Vic2NyaXB0ICopCgooKiBM
aXN0cy1hcy1zZXRzICopCnZhbCBtZW0gICAgICAgOiAnJ2EgLT4gJydhIGxp
c3QgLT4gYm9vbAp2YWwgaW5zZXJ0ICAgIDogJydhIC0+ICcnYSBsaXN0IC0+
ICcnYSBsaXN0CnZhbCBkZWxldGUgICAgOiAnJ2EgLT4gJydhIGxpc3QgLT4g
JydhIGxpc3QKdmFsIHVuaW9uICAgICA6ICcnYSBsaXN0IC0+ICcnYSBsaXN0
IC0+ICcnYSBsaXN0CnZhbCBpbnRlcnNlY3QgOiAnJ2EgbGlzdCAtPiAnJ2Eg
bGlzdCAtPiAnJ2EgbGlzdAp2YWwgc3VidHJhY3QgIDogJydhIGxpc3QgLT4g
JydhIGxpc3QgLT4gJydhIGxpc3QKdmFsIHNldGlmeSAgICA6ICcnYSBsaXN0
IC0+ICcnYSBsaXN0CnZhbCBzdWJzZXQgICAgOiAnJ2EgbGlzdCAtPiAnJ2Eg
bGlzdCAtPiBib29sCnZhbCBkaXN0aW5jdCAgOiAnJ2EgbGlzdCAtPiBib29s
CgooKiBDb21wYXJpc29ucyAqKQp2YWwgbGV4X2NvbXBhcmUgOiAoJ2EgKiAn
YSAtPiBvcmRlcikgLT4gKCdhICogJ2EpIGxpc3QgLT4gb3JkZXIKCigqIFNv
cnRpbmcgYW5kIHNlYXJjaGluZyAqKQp2YWwgbWluICAgOiAoJ2EgLT4gJ2Eg
LT4gYm9vbCkgLT4gJ2EgbGlzdCAtPiAnYQp2YWwgbWVyZ2UgOiAoJ2EgLT4g
J2EgLT4gYm9vbCkgLT4gJ2EgbGlzdCAtPiAnYSBsaXN0IC0+ICdhIGxpc3QK
dmFsIHNvcnQgIDogKCdhIC0+ICdhIC0+IGJvb2wpIC0+ICdhIGxpc3QgLT4g
J2EgbGlzdAoKKCogSW50ZWdlcnMgKikKdmFsIGludF90b19zdHJpbmcgOiBp
bnQgLT4gc3RyaW5nCnZhbCBzdHJpbmdfdG9faW50IDogc3RyaW5nIC0+IGlu
dCAgICAgICAgICAgICAgICAgKCogT3ZlcmZsb3csIE9wdGlvbiAqKQp2YWwg
aW50X3RvX2JpdHMgICA6IGludCAtPiBib29sIGxpc3QKdmFsIGJpdHNfdG9f
aW50ICAgOiBib29sIGxpc3QgLT4gaW50ICAgICAgICAgICAgICAoKiBPdmVy
ZmxvdyAqKQp2YWwgaW50ZXJ2YWwgICAgICA6IGludCAtPiBpbnQgLT4gaW50
IGxpc3QKdmFsIGRpdmlkZXMgICAgICAgOiBpbnQgLT4gaW50IC0+IGJvb2wK
dmFsIHByaW1lcyAgICAgICAgOiBpbnQgLT4gaW50IGxpc3QKCigqIFN0cmlu
Z3MgKikKdmFsIHZhcmlhbnQgICAgIDogc3RyaW5nIC0+IHN0cmluZyBsaXN0
IC0+IHN0cmluZwp2YWwgdmFyaWFudF9udW0gOiBzdHJpbmcgLT4gc3RyaW5n
IGxpc3QgLT4gc3RyaW5nCnZhbCBkZXN0X3ByZWZpeCA6IHN0cmluZyAtPiBz
dHJpbmcgLT4gc3RyaW5nCnZhbCBpc19wcmVmaXggICA6IHN0cmluZyAtPiBz
dHJpbmcgLT4gYm9vbAp2YWwgbWtfcHJlZml4ICAgOiBzdHJpbmcgLT4gc3Ry
aW5nIC0+IHN0cmluZwoKKCogUmVhbHMgKikKdmFsIHJlYWxfdG9fc3RyaW5n
IDogcmVhbCAtPiBzdHJpbmc7CgooKiBQcmV0dHktcHJpbnRpbmcgKikKdHlw
ZSAnYSBwcCA9IHBwc3RyZWFtIC0+ICdhIC0+IHVuaXQKdmFsIExJTkVfTEVO
R1RIICA6IGludCByZWYKdmFsIHVuaXRfcHAgICAgICA6ICdhIHBwIC0+ICdh
IC0+IHVuaXQgcHAKdmFsIHBwX3VuaXRfcHAgICA6IHVuaXQgcHAgcHAKdmFs
IHBwX21hcCAgICAgICA6ICgnYSAtPiAnYikgLT4gJ2IgcHAgLT4gJ2EgcHAK
dmFsIHBwX2JyYWNrZXQgICA6IHN0cmluZyAqIHN0cmluZyAtPiAnYSBwcCAt
PiAnYSBwcAp2YWwgcHBfc2VxdWVuY2UgIDogc3RyaW5nIC0+ICdhIHBwIC0+
ICdhIGxpc3QgcHAKdmFsIHBwX3Vub3AgICAgICA6IHN0cmluZyAtPiAnYSBw
cCAtPiAnYSBwcAp2YWwgcHBfYmlub3AgICAgIDogc3RyaW5nIC0+ICdhIHBw
IC0+ICdiIHBwIC0+ICgnYSAqICdiKSBwcAp2YWwgcHBfbm90aGluZyAgIDog
J2EgcHAKdmFsIHBwX3N0cmluZyAgICA6IHN0cmluZyBwcAp2YWwgcHBfdW5p
dCAgICAgIDogdW5pdCBwcAp2YWwgcHBfYm9vbCAgICAgIDogYm9vbCBwcAp2
YWwgcHBfaW50ICAgICAgIDogaW50IHBwCnZhbCBwcF9yZWFsICAgICAgOiBy
ZWFsIHBwCnZhbCBwcF9vcmRlciAgICAgOiBvcmRlciBwcAp2YWwgcHBfbGlz
dCAgICAgIDogJ2EgcHAgLT4gJ2EgbGlzdCBwcAp2YWwgcHBfcGFpciAgICAg
IDogJ2EgcHAgLT4gJ2IgcHAgLT4gKCdhICogJ2IpIHBwCnZhbCBwcF90cmlw
bGUgICAgOiAnYSBwcCAtPiAnYiBwcCAtPiAnYyBwcCAtPiAoJ2EgKiAnYiAq
ICdjKSBwcAp2YWwgcHBfcmVjb3JkICAgIDogKHN0cmluZyAqIHVuaXQgcHAp
IGxpc3QgLT4gdW5pdCBwcAp2YWwgcHBfb3B0aW9uICAgIDogJ2EgcHAgLT4g
J2Egb3B0aW9uIHBwCgooKiBTdW0gZGF0YXR5cGUgKikKZGF0YXR5cGUgKCdh
LCAnYikgc3VtID0gSU5MIG9mICdhIHwgSU5SIG9mICdiCnZhbCBpc19pbmwg
OiAoJ2EsICdiKSBzdW0gLT4gYm9vbAp2YWwgaXNfaW5yIDogKCdhLCAnYikg
c3VtIC0+IGJvb2wKCigqIE1hcGxldHMgKikKZGF0YXR5cGUgKCdhLCAnYikg
bWFwbGV0ID0gfC0+IG9mICdhICogJ2IKdmFsIHBwX21hcGxldCA6ICdhIHBw
IC0+ICdiIHBwIC0+ICgnYSwgJ2IpIG1hcGxldCBwcAoKKCogVHJlZXMgKikK
ZGF0YXR5cGUgKCdhLCAnYikgdHJlZSA9IEJSQU5DSCBvZiAnYSAqICgnYSwg
J2IpIHRyZWUgbGlzdCB8IExFQUYgb2YgJ2IKdmFsIHRyZWVfc2l6ZSAgOiAo
J2EsICdiKSB0cmVlIC0+IGludAp2YWwgdHJlZV9mb2xkciA6ICgnYSAtPiAn
YyBsaXN0IC0+ICdjKSAtPiAoJ2IgLT4gJ2MpIC0+ICgnYSwgJ2IpIHRyZWUg
LT4gJ2MKdmFsIHRyZWVfZm9sZGwgOgogICgnYSAtPiAnYyAtPiAnYykgLT4g
KCdiIC0+ICdjIC0+ICdkKSAtPiAnYyAtPiAoJ2EsICdiKSB0cmVlIC0+ICdk
IGxpc3QKdmFsIHRyZWVfcGFydGlhbF9mb2xkbCA6CiAgKCdhIC0+ICdjIC0+
ICdjIG9wdGlvbikgLT4gKCdiIC0+ICdjIC0+ICdkIG9wdGlvbikgLT4gJ2Mg
LT4gKCdhLCAnYikgdHJlZSAtPgogICdkIGxpc3QKCigqIFVzZWZ1bCBpbXBl
cmF0aXZlIGZlYXR1cmVzICopCnZhbCBsYXppZnlfdGh1bmsgOiAodW5pdCAt
PiAnYSkgLT4gdW5pdCAtPiAnYQp2YWwgbmV3X2ludCAgICAgIDogdW5pdCAt
PiBpbnQKdmFsIG5ld19pbnRzICAgICA6IGludCAtPiBpbnQgbGlzdAp2YWwg
d2l0aF9mbGFnICAgIDogJ3IgcmVmICogKCdyIC0+ICdyKSAtPiAoJ2EgLT4g
J2IpIC0+ICdhIC0+ICdiCgooKiBJbmZvcm1hdGlvbiBhYm91dCB0aGUgZW52
aXJvbm1lbnQgKikKdmFsIGhvc3QgOiBzdHJpbmcKdmFsIGRhdGUgOiB1bml0
IC0+IHN0cmluZwoKZW5kCigqI2xpbmUgMC4wICJiYXNpYy9Vc2VmdWwuc21s
IiopCigqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKikKKCogTUwg
VVRJTElUWSBGVU5DVElPTlMgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAqKQooKiBDcmVhdGVkIGJ5IEpv
ZSBIdXJkLCBBcHJpbCAyMDAxICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICopCigqID09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0gKikKCnN0cnVjdHVyZSBVc2VmdWwgOj4gVXNlZnVsID0Kc3RydWN0
CgppbmZpeHIgMCBvbyAjIyB8LT47CgooKiAtLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tICopCigqIEV4Y2VwdGlvbnMsIHByb2ZpbGluZyBhbmQgdHJh
Y2luZy4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
KikKKCogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqKQoKZXhjZXB0
aW9uIEVSUl9FWE4gb2Yge29yaWdpbl9mdW5jdGlvbiA6IHN0cmluZywgbWVz
c2FnZSA6IHN0cmluZ307CmV4Y2VwdGlvbiBCVUdfRVhOIG9mIHtvcmlnaW5f
ZnVuY3Rpb24gOiBzdHJpbmcsIG1lc3NhZ2UgOiBzdHJpbmd9OwoKZnVuIEVS
UiBmIHMgPSBFUlJfRVhOIHtvcmlnaW5fZnVuY3Rpb24gPSBmLCBtZXNzYWdl
ID0gc307CmZ1biBCVUcgZiBzID0gQlVHX0VYTiB7b3JpZ2luX2Z1bmN0aW9u
ID0gZiwgbWVzc2FnZSA9IHN9OwoKZnVuIEVSUl90b19zdHJpbmcgKEVSUl9F
WE4ge29yaWdpbl9mdW5jdGlvbiwgbWVzc2FnZX0pID0KICAiXG5FUlIgaW4g
ZnVuY3Rpb24gIiBeIG9yaWdpbl9mdW5jdGlvbiBeICI6XG4iIF4gbWVzc2Fn
ZSBeICJcbiIKICB8IEVSUl90b19zdHJpbmcgXyA9IHJhaXNlIEJVRyAiRVJS
X3RvX3N0cmluZyIgIm5vdCBhIEVSUl9FWE4iOwoKZnVuIEJVR190b19zdHJp
bmcgKEJVR19FWE4ge29yaWdpbl9mdW5jdGlvbiwgbWVzc2FnZX0pID0KICAi
XG5CVUcgaW4gZnVuY3Rpb24gIiBeIG9yaWdpbl9mdW5jdGlvbiBeICI6XG4i
IF4gbWVzc2FnZSBeICJcbiIKICB8IEJVR190b19zdHJpbmcgXyA9IHJhaXNl
IEJVRyAiQlVHX3RvX3N0cmluZyIgIm5vdCBhIEJVR19FWE4iOwoKZnVuIGFz
c2VydCBiIGUgPSBpZiBiIHRoZW4gKCkgZWxzZSByYWlzZSBlOwoKZnVuIHRy
eSBmIGEgPSBmIGEKICBoYW5kbGUgaCBhcyBFUlJfRVhOIF8gPT4gKHByaW50
IChFUlJfdG9fc3RyaW5nIGgpOyByYWlzZSBoKQogICAgICAgfCBiIGFzIEJV
R19FWE4gXyA9PiAocHJpbnQgKEJVR190b19zdHJpbmcgYik7IHJhaXNlIGIp
CiAgICAgICB8IGUgPT4gKHByaW50ICJcbnRyeTogc3RyYW5nZSBleGNlcHRp
b24gcmFpc2VkXG4iOyByYWlzZSBlKTsKCmZ1biB0b3RhbCBmIHggPSBTT01F
IChmIHgpIGhhbmRsZSBFUlJfRVhOIF8gPT4gTk9ORTsKCmZ1biBjYW4gZiA9
IE9wdGlvbi5pc1NvbWUgbyB0b3RhbCBmOwoKZnVuIHBhcnRpYWwgKGUgYXMg
RVJSX0VYTiBfKSBmIHggPSAoY2FzZSBmIHggb2YgU09NRSB5ID0+IHkgfCBO
T05FID0+IHJhaXNlIGUpCiAgfCBwYXJ0aWFsIF8gXyBfID0gcmFpc2UgQlVH
ICJwYXJ0aWFsIiAibXVzdCB0YWtlIGEgRVJSX0VYTiI7CgpmdW4gdGltZWQg
ZiBhID0KICBsZXQKICAgIHZhbCB0bXIgPSBUaW1lci5zdGFydENQVVRpbWVy
ICgpCiAgICB2YWwgcmVzID0gZiBhCiAgICB2YWwge3Vzciwgc3lzLCAuLi59
ID0gVGltZXIuY2hlY2tDUFVUaW1lciB0bXIKICBpbgogICAgKFRpbWUudG9S
ZWFsIHVzciArIFRpbWUudG9SZWFsIHN5cywgcmVzKQogIGVuZDsKCnZhbCB0
cmFjaW5nID0gcmVmIDE7Cgp2YWwgdHJhY2VzIDoge21vZHVsZSA6IHN0cmlu
ZywgYWxpZ25tZW50IDogaW50IC0+IGludH0gbGlzdCByZWYgPSByZWYgW107
Cgpsb2NhbAogIHZhbCBNQVggPSAxMDsKICB2YWwgdHJhY2VfcHJpbnRlciA9
IHByaW50OwogIGZ1biBxdWVyeSBtIGwgPQogICAgbGV0IHZhbCB0ID0gTGlz
dC5maW5kIChmbiB7bW9kdWxlLCAuLi59ID0+IG1vZHVsZSA9IG0pICghdHJh
Y2VzKQogICAgaW4gY2FzZSB0IG9mIE5PTkUgPT4gTUFYIHwgU09NRSB7YWxp
Z25tZW50LCAuLi59ID0+IGFsaWdubWVudCBsCiAgICBlbmQ7CmluCiAgZnVu
IHRyYWNlIHttb2R1bGUgPSBtLCBtZXNzYWdlID0gcywgbGV2ZWwgPSBsfSA9
CiAgICBpZiAwIDwgIXRyYWNpbmcgYW5kYWxzbyAoTUFYIDw9ICF0cmFjaW5n
IG9yZWxzZSBxdWVyeSBtIGwgPD0gIXRyYWNpbmcpCiAgICB0aGVuIHRyYWNl
X3ByaW50ZXIgcwogICAgZWxzZSAoKTsKZW5kOwoKKCogLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLSAqKQooKiBDb21iaW5hdG9ycyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICopCigqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKikK
CmZ1biBDIGYgeCB5ID0gZiB5IHg7CmZ1biBJIHggPSB4OwpmdW4gSyB4IHkg
PSB4OwpmdW4gTiAwIF8geCA9IHggfCBOIG4gZiB4ID0gTiAobiAtIDEpIGYg
KGYgeCk7CmZ1biBTIGYgZyB4ID0gZiB4IChnIHgpOwpmdW4gVyBmIHggPSBm
IHggeDsKZnVuIGYgb28gZyA9IGZuIHggPT4gZiBvIChnIHgpOwoKKCogLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqKQooKiBCb29sZWFucyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICopCigqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0gKikKCmZ1biBib29sX3RvX3N0cmluZyB0cnVlID0gInRydWUiCiAg
fCBib29sX3RvX3N0cmluZyBmYWxzZSA9ICJmYWxzZSI7CgpmdW4gbm9uIGYg
PSBub3QgbyBmOwoKKCogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAq
KQooKiBQYWlycyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopCigqIC0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKikKCmZ1biBvcCMjIChmLCBnKSAo
eCwgeSkgPSAoZiB4LCBnIHkpOwpmdW4gRCB4ID0gKHgsIHgpOwpmdW4gRGYg
ZiA9IGYgIyMgZjsKZnVuIGZzdCAoeCxfKSA9IHg7CmZ1biBzbmQgKF8seSkg
PSB5OwpmdW4gcGFpciB4IHkgPSAoeCwgeSkKKCogTm90ZTogdmFsIGFkZF9m
c3QgPSBwYWlyIGFuZCBhZGRfc25kID0gQyBwYWlyOyAqKQpmdW4gY3Vycnkg
ZiB4IHkgPSBmICh4LCB5KTsKZnVuIHVuY3VycnkgZiAoeCwgeSkgPSBmIHgg
eTsKZnVuIGVxdWFsIHggeSA9ICh4ID0geSk7CgooKiAtLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tICopCigqIFN0YXRlIHRyYW5zZm9ybWVycy4gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgKikKKCogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqKQoK
dmFsIHVuaXQgOiAnYSAtPiAncyAtPiAnYSAqICdzID0gcGFpcjsKCmZ1biBi
aW5kIGYgKGcgOiAnYSAtPiAncyAtPiAnYiAqICdzKSA9IHVuY3VycnkgZyBv
IGY7CgpmdW4gbW1hcCBmIChtIDogJ3MgLT4gJ2EgKiAncykgPSBiaW5kIG0g
KHVuaXQgbyBmKTsKCmZ1biBqb2luIChmIDogJ3MgLT4gKCdzIC0+ICdhICog
J3MpICogJ3MpID0gYmluZCBmIEk7CgpmdW4gbXdoaWxlIGMgYiA9IGxldCBm
dW4gZiBhID0gaWYgYyBhIHRoZW4gYmluZCAoYiBhKSBmIGVsc2UgdW5pdCBh
IGluIGYgZW5kOwoKKCogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAq
KQooKiBMaXN0cy4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopCigqIC0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKikKCmZ1biBjb25zIHggeSA9IHgg
OjogeTsKZnVuIGFwcGVuZCB4cyB5cyA9IHhzIEAgeXM7CmZ1biB3cmFwIGEg
PSBbYV07CmZ1biB1bndyYXAgW2FdID0gYSB8IHVud3JhcCBfID0gcmFpc2Ug
RVJSICJ1bndyYXAiICJub3QgYSBzaW5nbGV0b24iOwoKZnVuIGZpcnN0IGYg
W10gPSBOT05FCiAgfCBmaXJzdCBmICh4IDo6IHhzKSA9IChjYXNlIGYgeCBv
ZiBOT05FID0+IGZpcnN0IGYgeHMgfCBzID0+IHMpOwoKZnVuIGluZGV4IHAg
PQogIGxldAogICAgZnVuIGlkeCBfIFtdID0gTk9ORQogICAgICB8IGlkeCBu
ICh4IDo6IHhzKSA9IGlmIHAgeCB0aGVuIFNPTUUgbiBlbHNlIGlkeCAobiAr
IDEpIHhzCiAgaW4KICAgIGlkeCAwCiAgZW5kOwoKKCogVGhpcyBpcyB0aGUg
cHVyZSB2ZXJzaW9uCmZ1biBtYXBzIChfIDogJ2EgLT4gJ3MgLT4gJ2IgKiAn
cykgW10gPSB1bml0IFtdCiAgfCBtYXBzIGYgKHggOjogeHMpID0KICBiaW5k
IChmIHgpIChmbiB5ID0+IGJpbmQgKG1hcHMgZiB4cykgKGZuIHlzID0+IHVu
aXQgKHkgOjogeXMpKSk7CiopCgooKiBUaGlzIGlzIGFuIG9wdGltaXplZCB2
ZXJzaW9uICopCmZ1biBtYXBzIGYgPQogIGxldCBmdW4gZyAoeCwgKHlzLCBz
KSkgPSBsZXQgdmFsICh5LCBzKSA9IGYgeCBzIGluICh5IDo6IHlzLCBzKSBl
bmQKICBpbiBmbiBsID0+IGZuIChzIDogJ3MpID0+IChyZXYgIyMgSSkgKGZv
bGRsIGcgKFtdLCBzKSBsKQogIGVuZDsKCigqIFRoaXMgaXMgdGhlIHB1cmUg
dmVyc2lvbgpmdW4gcGFydGlhbF9tYXBzIChfIDogJ2EgLT4gJ3MgLT4gJ2Ig
b3B0aW9uICogJ3MpIFtdID0gdW5pdCBbXQogIHwgcGFydGlhbF9tYXBzIGYg
KHggOjogeHMpID0KICBiaW5kIChmIHgpCiAgKGZuIHlvID0+IGJpbmQgKHBh
cnRpYWxfbWFwcyBmIHhzKQogICAoZm4geXMgPT4gdW5pdCAoY2FzZSB5byBv
ZiBOT05FID0+IHlzIHwgU09NRSB5ID0+IHkgOjogeXMpKSk7CiopCgooKiBU
aGlzIGlzIGFuIG9wdGltaXplZCB2ZXJzaW9uICopCmZ1biBwYXJ0aWFsX21h
cHMgZiA9CiAgbGV0CiAgICBmdW4gZyAoeCwgKHlzLCBzKSkgPQogICAgICBs
ZXQgdmFsICh5bywgcykgPSBmIHggcwogICAgICBpbiAoY2FzZSB5byBvZiBO
T05FID0+IHlzIHwgU09NRSB5ID0+IHkgOjogeXMsIHMpCiAgICAgIGVuZAog
IGluCiAgICBmbiBsID0+IGZuIChzIDogJ3MpID0+IChyZXYgIyMgSSkgKGZv
bGRsIGcgKFtdLCBzKSBsKQogIGVuZDsKCmZ1biBlbnVtZXJhdGUgbiA9IGZz
dCBvIEMgKG1hcHMgKGZuIHggPT4gZm4gbSA9PiAoKG0sIHgpLCBtICsgMSkp
KSBuOwoKZnVuIHppcHdpdGggZiA9CiAgbGV0CiAgICBmdW4geiBsIFtdIFtd
ID0gbAogICAgICB8IHogbCAoeCA6OiB4cykgKHkgOjogeXMpID0geiAoZiB4
IHkgOjogbCkgeHMgeXMKICAgICAgfCB6IF8gXyBfID0gcmFpc2UgRVJSICJ6
aXB3aXRoIiAibGlzdHMgZGlmZmVyZW50IGxlbmd0aHMiOwogIGluCiAgICBm
biB4cyA9PiBmbiB5cyA9PiByZXYgKHogW10geHMgeXMpCiAgZW5kOwoKZnVu
IHppcCB4cyB5cyA9IHppcHdpdGggcGFpciB4cyB5czsKCmZ1biB1bnppcCBh
YiA9CiAgZm9sZGwgKGZuICgoeCwgeSksICh4cywgeXMpKSA9PiAoeCA6OiB4
cywgeSA6OiB5cykpIChbXSwgW10pIChyZXYgYWIpOwoKZnVuIGNhcnR3aXRo
IGYgPQogIGxldAogICAgZnVuIGF1eCBfIHJlcyBfIFtdID0gcmVzCiAgICAg
IHwgYXV4IHhzX2NvcHkgcmVzIFtdICh5IDo6IHl0KSA9IGF1eCB4c19jb3B5
IHJlcyB4c19jb3B5IHl0CiAgICAgIHwgYXV4IHhzX2NvcHkgcmVzICh4IDo6
IHh0KSAoeXMgYXMgeSA6OiBfKSA9CiAgICAgIGF1eCB4c19jb3B5IChmIHgg
eSA6OiByZXMpIHh0IHlzCiAgaW4KICAgIGZuIHhzID0+IGZuIHlzID0+CiAg
ICBsZXQgdmFsIHhzJyA9IHJldiB4cyBpbiBhdXggeHMnIFtdIHhzJyAocmV2
IHlzKSBlbmQKICBlbmQ7Cgpsb2NhbAogIGZ1biBhdXggcmVzIGwgMCA9IChy
ZXYgcmVzLCBsKQogICAgfCBhdXggXyBbXSBfID0gcmFpc2UgU3Vic2NyaXB0
CiAgICB8IGF1eCByZXMgKGggOjogdCkgbiA9IGF1eCAoaCA6OiByZXMpIHQg
KG4gLSAxKTsKaW4KICBmdW4gc3BsaXQgbCBuID0gYXV4IFtdIGwgbjsKZW5k
OwoKZnVuIHVwZGF0ZV9udGggZiBuIGwgPQogIGxldAogICAgdmFsIChhLCBi
KSA9IHNwbGl0IGwgbgogIGluCiAgICBjYXNlIGIgb2YgW10gPT4gcmFpc2Ug
U3Vic2NyaXB0CiAgICB8IGggOjogdCA9PiBhIEAgKGYgaCA6OiB0KQogIGVu
ZDsKCigqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKikKKCogTGlz
dHMtYXMtc2V0cy4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAqKQooKiAtLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tICopCgpmdW4gbWVtIHggPSBMaXN0LmV4aXN0cyAo
ZXF1YWwgeCk7CgpmdW4gaW5zZXJ0IHggcyA9IGlmIG1lbSB4IHMgdGhlbiBz
IGVsc2UgeCA6OiBzOwpmdW4gZGVsZXRlIHggcyA9IExpc3QuZmlsdGVyIChu
b3QgbyBlcXVhbCB4KSBzOwoKKCogUmVtb3ZlcyBkdXBsaWNhdGVzICopCmZ1
biBzZXRpZnkgcyA9IGZvbGRsIChmbiAodiwgeCkgPT4gaWYgbWVtIHYgeCB0
aGVuIHggZWxzZSB2IDo6IHgpIFtdIHM7CgooKiBGb3IgYWxsIHRocmVlIHNl
dCBvcGVyYXRpb25zOiBpZiBzIGhhcyBkdXBsaWNhdGVzLCBzbyBtYXkgdGhl
IHJlc3VsdC4gKikKZnVuIHVuaW9uIHMgdCA9IGZvbGRsIChmbiAodiwgeCkg
PT4gaWYgbWVtIHYgeCB0aGVuIHggZWxzZSB2IDo6IHgpIHMgdDsKZnVuIGlu
dGVyc2VjdCBzIHQgPSBmb2xkbCAoZm4gKHYsIHgpID0+IGlmIG1lbSB2IHQg
dGhlbiB2IDo6IHggZWxzZSB4KSBbXSBzOwpmdW4gc3VidHJhY3QgcyB0ID0g
Zm9sZGwgKGZuICh2LCB4KSA9PiBpZiBtZW0gdiB0IHRoZW4geCBlbHNlIHYg
OjogeCkgW10gczsKCmZ1biBzdWJzZXQgcyB0ID0gTGlzdC5hbGwgKGZuIHgg
PT4gbWVtIHggdCkgczsKCmZ1biBkaXN0aW5jdCBbXSA9IHRydWUKICB8IGRp
c3RpbmN0ICh4IDo6IHJlc3QpID0gbm90IChtZW0geCByZXN0KSBhbmRhbHNv
IGRpc3RpbmN0IHJlc3Q7CgooKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tICopCigqIENvbXBhcmlzb25zLiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKikKKCog
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqKQoKZnVuIGxleF9jb21w
YXJlIGYgPQogIGxldAogICAgZnVuIGxleCBbXSA9IEVRVUFMCiAgICAgIHwg
bGV4ICh4IDo6IGwpID0gY2FzZSBmIHggb2YgRVFVQUwgPT4gbGV4IGwgfCB5
ID0+IHkKICBpbgogICAgbGV4CiAgZW5kOwoKKCogLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLSAqKQooKiBGaW5kaW5nIHRoZSBtaW5pbWFsIGVsZW1l
bnQgb2YgYSBsaXN0LCB3cnQgc29tZSBvcmRlci4gICAgICAgICAgICAgICAg
ICAgICopCigqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKikKCmZ1
biBtaW4gZiA9CiAgbGV0CiAgICBmdW4gbWluX2FjYyBiZXN0IFtdID0gYmVz
dAogICAgICB8IG1pbl9hY2MgYmVzdCAoaCA6OiB0KSA9IG1pbl9hY2MgKGlm
IGYgYmVzdCBoIHRoZW4gYmVzdCBlbHNlIGgpIHQKICBpbgogICAgZm4gW10g
PT4gcmFpc2UgRVJSICJtaW4iICJlbXB0eSBsaXN0IgogICAgIHwgaCA6OiB0
ID0+IG1pbl9hY2MgaCB0CiAgZW5kOwoKKCogLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLSAqKQooKiBNZXJnZSAoZm9yIHRoZSBmb2xsb3dpbmcgbWVy
Z2Utc29ydCwgYnV0IGdlbmVyYWxseSB1c2VmdWwgdG9vKS4gICAgICAgICAg
ICopCigqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKikKCmZ1biBt
ZXJnZSBmID0KICBsZXQKICAgIGZ1biBtcmcgcmVzIFtdIHlzID0gZm9sZGwg
KG9wIDo6KSB5cyByZXMKICAgICAgfCBtcmcgcmVzIHhzIFtdID0gZm9sZGwg
KG9wIDo6KSB4cyByZXMKICAgICAgfCBtcmcgcmVzICh4cyBhcyB4IDo6IHh0
KSAoeXMgYXMgeSA6OiB5dCkgPQogICAgICBpZiBmIHggeSB0aGVuIG1yZyAo
eCA6OiByZXMpIHh0IHlzIGVsc2UgbXJnICh5IDo6IHJlcykgeHMgeXQKICBp
bgogICAgbXJnIFtdCiAgZW5kOwoKKCogLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLSAqKQooKiBPcmRlciBmdW5jdGlvbiBoZXJlIHNob3VsZCBiZSA8
PSBmb3IgYSBzdGFibGUgc29ydC4uLiAgICAgICAgICAgICAgICAgICAgICop
CigqIC4uLmFuZCBJIHRoaW5rIDwgZ2l2ZXMgYSByZXZlcnNlIHN0YWJsZSBz
b3J0IChidXQgZG9uJ3QgcXVvdGUgbWUpLiAgICAgICAgKikKKCogLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqKQoKZnVuIHNvcnQgZiA9CiAgbGV0
CiAgICBmdW4gc3J0IFtdID0gW10KICAgICAgfCBzcnQgKGwgYXMgW3hdKSA9
IGwKICAgICAgfCBzcnQgbCA9CiAgICAgIGxldAogICAgICAgIHZhbCBoYWxm
d2F5ID0gbGVuZ3RoIGwgZGl2IDIKICAgICAgaW4KICAgICAgICBtZXJnZSBm
IChzcnQgKExpc3QudGFrZSAobCwgaGFsZndheSkpKSAoc3J0IChMaXN0LmRy
b3AgKGwsIGhhbGZ3YXkpKSkKICAgICAgZW5kCiAgaW4KICAgIHNydAogIGVu
ZDsKCigqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKikKKCogSW50
ZWdlcnMuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAqKQooKiAtLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tICopCgp2YWwgaW50X3RvX3N0cmluZyA9IEludC50
b1N0cmluZzsKdmFsIHN0cmluZ190b19pbnQgPSBPcHRpb24udmFsT2YgbyBJ
bnQuZnJvbVN0cmluZzsKCmZ1biBpbnRfdG9fYml0cyAwID0gW10KICB8IGlu
dF90b19iaXRzIG4gPSAobiBtb2QgMiA8PiAwKSA6OiAoaW50X3RvX2JpdHMg
KG4gZGl2IDIpKTsKCmZ1biBiaXRzX3RvX2ludCBbXSA9IDAKICB8IGJpdHNf
dG9faW50IChoIDo6IHQpID0gKGlmIGggdGhlbiBjdXJyeSBvcCsgMSBlbHNl
IEkpICgyICogYml0c190b19pbnQgdCk7CgpmdW4gaW50ZXJ2YWwgbSAwID0g
W10KICB8IGludGVydmFsIG0gbGVuID0gbSA6OiBpbnRlcnZhbCAobSArIDEp
IChsZW4gLSAxKTsKCmZ1biBkaXZpZGVzIGEgYiA9IGlmIGEgPSAwIHRoZW4g
YiA9IDAgZWxzZSBiIG1vZCAoSW50LmFicyBhKSA9IDA7Cgpsb2NhbAogIGZ1
biBib3RoIGYgZyBuID0gZiBuIGFuZGFsc28gZyBuOwogIGZ1biBuZXh0IGYg
PSBsZXQgZnVuIG54IHggPSBpZiBmIHggdGhlbiB4IGVsc2UgbnggKHggKyAx
KSBpbiBueCBlbmQ7CgogIGZ1biBsb29raW5nIHJlcyAwIF8gXyA9IHJldiBy
ZXMKICAgIHwgbG9va2luZyByZXMgbiBmIHggPQogICAgbGV0CiAgICAgIHZh
bCBwID0gbmV4dCBmIHgKICAgICAgdmFsIHJlcycgPSBwIDo6IHJlcwogICAg
ICB2YWwgZicgPSBib3RoIGYgKG5vdCBvIGRpdmlkZXMgcCkKICAgIGluCiAg
ICAgIGxvb2tpbmcgcmVzJyAobiAtIDEpIGYnIChwICsgMSkKICAgIGVuZApp
bgogIGZ1biBwcmltZXMgbiA9IGxvb2tpbmcgW10gbiAoSyB0cnVlKSAyCmVu
ZDsKCigqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKikKKCogU3Ry
aW5ncy4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAqKQooKiAtLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tICopCgpmdW4gdmFyaWFudCB4IHZhcnMgPSBpZiBt
ZW0geCB2YXJzIHRoZW4gdmFyaWFudCAoeCBeICInIikgdmFycyBlbHNlIHg7
CgpmdW4gdmFyaWFudF9udW0geCB2YXJzID0KICBsZXQKICAgIGZ1biB4biBu
ID0geCBeIGludF90b19zdHJpbmcgbgogICAgZnVuIHYgbiA9IGxldCB2YWwg
eCcgPSB4biBuIGluIGlmIG1lbSB4JyB2YXJzIHRoZW4gdiAobiArIDEpIGVs
c2UgeCcgZW5kCiAgaW4KICAgIGlmIG1lbSB4IHZhcnMgdGhlbiB2IDEgZWxz
ZSB4CiAgZW5kOwoKZnVuIGRlc3RfcHJlZml4IHAgPQogIGxldAogICAgZnVu
IGNoZWNrIHMgPSBhc3NlcnQgKFN0cmluZy5pc1ByZWZpeCBwIHMpIChFUlIg
ImRlc3RfcHJlZml4IiAiIikKICAgIHZhbCBzaXplX3AgPSBzaXplIHAKICBp
bgogICAgZm4gcyA9PiAoY2hlY2sgczsgU3RyaW5nLmV4dHJhY3QgKHMsIHNp
emVfcCwgTk9ORSkpCiAgZW5kOwoKZnVuIGlzX3ByZWZpeCBwID0gY2FuIChk
ZXN0X3ByZWZpeCBwKTsKCmZ1biBta19wcmVmaXggcCBzID0gcCBeIHM7Cgoo
KiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICopCigqIFJlYWxzLiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgKikKKCogLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLSAqKQoKdmFsIHJlYWxfdG9fc3RyaW5nID0gUmVhbC50b1N0
cmluZzsKCigqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKikKKCog
UHJldHR5LXByaW50aW5nLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKQooKiAtLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tICopCgp0eXBlICdhIHBwID0gcHBzdHJlYW0g
LT4gJ2EgLT4gdW5pdDsKCnZhbCBMSU5FX0xFTkdUSCA9IHJlZiA3NTsKCmZ1
biB1bml0X3BwIHBwX2EgYSBwcCAoKSA9IHBwX2EgcHAgYTsKCmZ1biBwcF91
bml0X3BwIHBwIHVwcCA9IHVwcCBwcCAoKTsKCmZ1biBwcF9tYXAgZiBwcF9h
IChwcHN0cm0gOiBwcHN0cmVhbSkgeCA6IHVuaXQgPSBwcF9hIHBwc3RybSAo
ZiB4KTsKCmZ1biBwcF9icmFja2V0IChsLCByKSBwcF9hIHBwIGEgPQogIChQ
UC5iZWdpbl9ibG9jayBwcCBQUC5JTkNPTlNJU1RFTlQgKHNpemUgbCk7IFBQ
LmFkZF9zdHJpbmcgcHAgbDsgcHBfYSBwcCBhOwogICBQUC5hZGRfc3RyaW5n
IHBwIHI7IFBQLmVuZF9ibG9jayBwcCk7CgpmdW4gcHBfc2VxdWVuY2Ugc2Vw
IHBwX2EgPQogIGxldAogICAgZnVuIHBwX2VsdCBwcCB4ID0gKFBQLmFkZF9z
dHJpbmcgcHAgc2VwOyBQUC5hZGRfYnJlYWsgcHAgKDEsIDApOyBwcF9hIHBw
IHgpCiAgICBmdW4gcHBfc2VxIHBwIFtdICAgICAgID0gKCkKICAgICAgfCBw
cF9zZXEgcHAgKGggOjogdCkgPSAocHBfYSBwcCBoOyBhcHAgKHBwX2VsdCBw
cCkgdCkKICBpbgogICAgZm4gcHAgPT4gZm4gbCA9PgogICAgKFBQLmJlZ2lu
X2Jsb2NrIHBwIFBQLklOQ09OU0lTVEVOVCAwOyBwcF9zZXEgcHAgbDsgUFAu
ZW5kX2Jsb2NrIHBwKQogIGVuZDsKCmZ1biBwcF91bm9wIHMgcHBfYSBwcCBh
ID0KICAoUFAuYmVnaW5fYmxvY2sgcHAgUFAuQ09OU0lTVEVOVCAwOwogICBQ
UC5hZGRfc3RyaW5nIHBwIHM7CiAgIFBQLmFkZF9icmVhayBwcCAoMSwgMCk7
CiAgIHBwX2EgcHAgYTsKICAgUFAuZW5kX2Jsb2NrIHBwKTsKCmZ1biBwcF9i
aW5vcCBzIHBwX2EgcHBfYiBwcCAoYSwgYikgPQogIChQUC5iZWdpbl9ibG9j
ayBwcCBQUC5DT05TSVNURU5UIDA7CiAgIHBwX2EgcHAgYTsKICAgUFAuYWRk
X3N0cmluZyBwcCBzOwogICBQUC5hZGRfYnJlYWsgcHAgKDEsIDApOwogICBw
cF9iIHBwIGI7CiAgIFBQLmVuZF9ibG9jayBwcCk7CgpmdW4gcHBfbm90aGlu
ZyBwcCBfID0gKFBQLmJlZ2luX2Jsb2NrIHBwIFBQLkNPTlNJU1RFTlQgMDsg
UFAuZW5kX2Jsb2NrIHBwKTsKCmZ1biBwcF9zdHJpbmcgcHAgcyA9CiAgKFBQ
LmJlZ2luX2Jsb2NrIHBwIFBQLkNPTlNJU1RFTlQgMDsgUFAuYWRkX3N0cmlu
ZyBwcCBzOyBQUC5lbmRfYmxvY2sgcHApOwoKdmFsIHBwX3VuaXQgPSBwcF9t
YXAgKEsgIigpIikgcHBfc3RyaW5nOwoKdmFsIHBwX2Jvb2wgPSBwcF9tYXAg
Ym9vbF90b19zdHJpbmcgcHBfc3RyaW5nOwoKdmFsIHBwX2ludCA9IHBwX21h
cCBpbnRfdG9fc3RyaW5nIHBwX3N0cmluZzsKCnZhbCBwcF9yZWFsID0gcHBf
bWFwIHJlYWxfdG9fc3RyaW5nIHBwX3N0cmluZzsKCnZhbCBwcF9vcmRlciA9
CiAgcHBfbWFwIChmbiBMRVNTID0+ICJMRVNTIiB8IEVRVUFMID0+ICJFUVVB
TCIgfCBHUkVBVEVSID0+ICJHUkVBVEVSIikKICBwcF9zdHJpbmc7CgpmdW4g
cHBfbGlzdCBwcF9hID0gcHBfYnJhY2tldCAoIlsiLCAiXSIpIChwcF9zZXF1
ZW5jZSAiLCIgcHBfYSk7CgpmdW4gcHBfcGFpciBwcF9hIHBwX2IgPSBwcF9i
cmFja2V0ICgiKCIsICIpIikgKHBwX2Jpbm9wICIsIiBwcF9hIHBwX2IpOwoK
ZnVuIHBwX3RyaXBsZSBwcF9hIHBwX2IgcHBfYyA9CiAgcHBfYnJhY2tldCAo
IigiLCAiKSIpCiAgKHBwX21hcCAoZm4gKGEsIGIsIGMpID0+IChhLCAoYiwg
YykpKQogICAocHBfYmlub3AgIiwiIHBwX2EgKHBwX2Jpbm9wICIsIiBwcF9i
IHBwX2MpKSk7Cgpsb2NhbAogIHZhbCBwcF9sID0gcHBfc2VxdWVuY2UgIiwi
IChwcF9iaW5vcCAiID0iIHBwX3N0cmluZyBwcF91bml0X3BwKTsKaW4KICBm
dW4gcHBfcmVjb3JkIGwgPSBwcF9icmFja2V0ICgieyIsICJ9IikgKHVuaXRf
cHAgcHBfbCBsKTsKZW5kOwoKZnVuIHBwX29wdGlvbiBwcF9hIHBwIE5PTkUg
PSBwcF9zdHJpbmcgcHAgIk5PTkUiCiAgfCBwcF9vcHRpb24gcHBfYSBwcCAo
U09NRSBhKSA9IHBwX3Vub3AgIlNPTUUiIHBwX2EgcHAgYTsKCigqIC0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKikKKCogU3Vtcy4gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAqKQooKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tICopCgpkYXRhdHlwZSAoJ2EsICdiKSBzdW0gPSBJTkwgb2YgJ2EgfCBJ
TlIgb2YgJ2IKCmZ1biBpc19pbmwgKElOTCBfKSA9IHRydWUgfCBpc19pbmwg
KElOUiBfKSA9IGZhbHNlOwoKZnVuIGlzX2luciAoSU5SIF8pID0gdHJ1ZSB8
IGlzX2luciAoSU5MIF8pID0gZmFsc2U7CgooKiAtLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tICopCigqIE1hcGxldHMuICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgKikKKCogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqKQoKZGF0
YXR5cGUgKCdhLCAnYikgbWFwbGV0ID0gfC0+IG9mICdhICogJ2I7CgpmdW4g
cHBfbWFwbGV0IHBwX2EgcHBfYiA9CiAgcHBfbWFwIChmbiBhIHwtPiBiID0+
IChhLCBiKSkgKHBwX2Jpbm9wICIgfC0+IiBwcF9hIHBwX2IpOwoKKCogLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqKQooKiBUcmVlcy4gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICopCigqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0gKikKCmRhdGF0eXBlICgnYSwgJ2IpIHRyZWUgPSBCUkFOQ0ggb2Yg
J2EgKiAoJ2EsICdiKSB0cmVlIGxpc3QgfCBMRUFGIG9mICdiOwoKZnVuIHRy
ZWVfc2l6ZSAoTEVBRiBfKSA9IDEKICB8IHRyZWVfc2l6ZSAoQlJBTkNIIChf
LCB0KSkgPSBmb2xkbCAob3ArIG8gKHRyZWVfc2l6ZSAjIyBJKSkgMSB0OwoK
ZnVuIHRyZWVfZm9sZHIgZl9iIGZfbCAoTEVBRiBsKSA9IGZfbCBsCiAgfCB0
cmVlX2ZvbGRyIGZfYiBmX2wgKEJSQU5DSCAocCwgcykpID0gZl9iIHAgKG1h
cCAodHJlZV9mb2xkciBmX2IgZl9sKSBzKTsKCmZ1biB0cmVlX2ZvbGRsIGZf
YiBmX2wgPQogIGxldAogICAgZnVuIGZvbGQgc3RhdGUgKExFQUYgbCwgcmVz
KSA9IGZfbCBsIHN0YXRlIDo6IHJlcwogICAgICB8IGZvbGQgc3RhdGUgKEJS
QU5DSCAocCwgdHMpLCByZXMpID0gZm9sZGwgKGZvbGQgKGZfYiBwIHN0YXRl
KSkgcmVzIHRzCiAgaW4KICAgIGZuIHN0YXRlID0+IGZuIHQgPT4gZm9sZCBz
dGF0ZSAodCwgW10pCiAgZW5kOwoKZnVuIHRyZWVfcGFydGlhbF9mb2xkbCBm
X2IgZl9sID0KICBsZXQKICAgIGZ1biBmb2xkIHN0YXRlIChMRUFGIGwsIHJl
cykgPQogICAgICAoY2FzZSBmX2wgbCBzdGF0ZSBvZiBOT05FID0+IHJlcyB8
IFNPTUUgeCA9PiB4IDo6IHJlcykKICAgICAgfCBmb2xkIHN0YXRlIChCUkFO
Q0ggKHAsIHRzKSwgcmVzKSA9CiAgICAgIChjYXNlIGZfYiBwIHN0YXRlIG9m
IE5PTkUgPT4gcmVzIHwgU09NRSBzID0+IGZvbGRsIChmb2xkIHMpIHJlcyB0
cykKICBpbgogICAgZm4gc3RhdGUgPT4gZm4gdCA9PiBmb2xkIHN0YXRlICh0
LCBbXSkKICBlbmQ7CgooKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
ICopCigqIFVzZWZ1bCBpbXBlcmF0aXZlIGZlYXR1cmVzLiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKikKKCogLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqKQoKZnVuIGxhemlmeV90aHVu
ayBmID0gbGV0IHZhbCBzID0gU3VzcC5kZWxheSBmIGluIGZuICgpID0+IFN1
c3AuZm9yY2UgcyBlbmQ7Cgpsb2NhbAogIHZhbCBnZW5lcmF0b3IgPSByZWYg
MAppbgogIGZ1biBuZXdfaW50ICgpID0gbGV0IHZhbCBuID0gIWdlbmVyYXRv
ciB2YWwgKCkgPSBnZW5lcmF0b3IgOj0gbiArIDEgaW4gbiBlbmQ7CgogIGZ1
biBuZXdfaW50cyAwID0gW10KICAgIHwgbmV3X2ludHMgayA9CiAgICBsZXQg
dmFsIG4gPSAhZ2VuZXJhdG9yIHZhbCAoKSA9IGdlbmVyYXRvciA6PSBuICsg
ayBpbiBpbnRlcnZhbCBuIGsgZW5kOwplbmQ7CgpmdW4gd2l0aF9mbGFnIChy
LCB1cGRhdGUpIGYgeCA9CiAgbGV0CiAgICB2YWwgb2xkID0gIXIKICAgIHZh
bCAoKSA9IHIgOj0gdXBkYXRlIG9sZAogICAgdmFsIHkgPSBmIHggaGFuZGxl
IGUgPT4gKHIgOj0gb2xkOyByYWlzZSBlKQogICAgdmFsICgpID0gciA6PSBv
bGQKICBpbgogICAgeQogIGVuZDsKCigqIC0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0gKikKKCogSW5mb3JtYXRpb24gYWJvdXQgdGhlIGVudmlyb25t
ZW50LiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAq
KQooKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICopCgp2YWwgaG9z
dCA9IE9wdGlvbi5nZXRPcHQgKE9TLlByb2Nlc3MuZ2V0RW52ICJIT1NUTkFN
RSIsICJ1bmtub3duIik7Cgp2YWwgZGF0ZSA9IERhdGUuZm10ICIlSDolTTol
UyAlZC8lbS8lWSIgbyBEYXRlLmZyb21UaW1lTG9jYWwgbyBUaW1lLm5vdzsK
CmVuZAooKiNsaW5lIDAuMCAiYmFzaWMvUXVldWUuc2lnIiopCigqID09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0gKikKKCogQSBRVUVVRSBEQVRBVFlQ
RSBGT1IgTUwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAqKQooKiBDcmVhdGVkIGJ5IEpvZSBIdXJkLCBPY3Rv
YmVyIDIwMDEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICopCigqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKikKCnNp
Z25hdHVyZSBRdWV1ZSA9CnNpZwoKdHlwZSAnYSBxdWV1ZQoKdmFsIGVtcHR5
ICAgICA6ICdhIHF1ZXVlCnZhbCBhZGQgICAgICAgOiAnYSAtPiAnYSBxdWV1
ZSAtPiAnYSBxdWV1ZQp2YWwgaXNfZW1wdHkgIDogJ2EgcXVldWUgLT4gYm9v
bAp2YWwgaGQgICAgICAgIDogJ2EgcXVldWUgLT4gJ2EgICAgICAgICAgICAg
ICAoKiByYWlzZXMgRW1wdHkgKikKdmFsIHRsICAgICAgICA6ICdhIHF1ZXVl
IC0+ICdhIHF1ZXVlICAgICAgICAgKCogcmFpc2VzIEVtcHR5ICopCnZhbCBs
ZW5ndGggICAgOiAnYSBxdWV1ZSAtPiBpbnQKdmFsIGZyb21fbGlzdCA6ICdh
IGxpc3QgLT4gJ2EgcXVldWUKdmFsIHRvX2xpc3QgICA6ICdhIHF1ZXVlIC0+
ICdhIGxpc3QKdmFsIHBwX3F1ZXVlICA6ICdhIFVzZWZ1bC5wcCAtPiAnYSBx
dWV1ZSBVc2VmdWwucHAKCmVuZAooKiNsaW5lIDAuMCAiYmFzaWMvUXVldWUu
c21sIiopCigqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKikKKCog
QSBRVUVVRSBEQVRBVFlQRSBGT1IgTUwgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKQooKiBDcmVhdGVkIGJ5
IEpvZSBIdXJkLCBPY3RvYmVyIDIwMDEgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICopCigqID09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0gKikKCnN0cnVjdHVyZSBRdWV1ZSA6PiBRdWV1ZSA9CnN0cnVj
dAoKdHlwZSAnYSBxdWV1ZSA9ICdhIGxpc3QgKiAnYSBsaXN0OwoKdmFsIGVt
cHR5IDogJ2EgcXVldWUgPSAoW10sIFtdKTsKCmZ1biBub3JtIChbXSwgeXMg
YXMgXyA6OiBfKSA9IChyZXYgeXMsIFtdKQogIHwgbm9ybSBxID0gcTsKCmZ1
biBhZGQgeiAoeHMsIHlzKSA9IG5vcm0gKHhzLCB6IDo6IHlzKTsKCmZ1biBp
c19lbXB0eSAoW10sIF8pID0gdHJ1ZQogIHwgaXNfZW1wdHkgKF8gOjogXywg
XykgPSBmYWxzZTsKCmZ1biBoZCAoW10sIF8pID0gcmFpc2UgRW1wdHkKICB8
IGhkICh4IDo6IF8sIF8pID0geDsKCmZ1biB0bCAoW10sIF8pID0gcmFpc2Ug
RW1wdHkKICB8IHRsIChfIDo6IHhzLCB5cykgPSBub3JtICh4cywgeXMpOwoK
dmFsIGxlbmd0aCA9IGZuICh4cywgeXMpID0+IGxlbmd0aCB4cyArIGxlbmd0
aCB5czsKCmZ1biBmcm9tX2xpc3QgbCA9IChyZXYgbCwgW10pOwoKZnVuIHRv
X2xpc3QgKHhzLCB5cykgPSB4cyBAIHJldiB5czsKCmxvY2FsCiAgb3BlbiBV
c2VmdWw7CmluCiAgZnVuIHBwX3F1ZXVlIHBwX2EgPQogICAgcHBfbWFwIHRv
X2xpc3QgKHBwX2JyYWNrZXQgKCJRWyIsICJdIikgKHBwX3NlcXVlbmNlICIs
IiBwcF9hKSk7CmVuZDsKCmVuZAooKiNsaW5lIDAuMCAiYmFzaWMvSGVhcC5z
aWciKikKKCogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqKQooKiBB
IEhFQVAgREFUQVRZUEUgRk9SIE1MICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICopCigqIENyZWF0ZWQgYnkg
Sm9lIEh1cmQsIE9jdG9iZXIgMjAwMSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgKikKKCogVGFrZW4gZnJvbSBQdXJlbHkgRnVu
Y3Rpb25hbCBEYXRhIFN0cnVjdHVyZXMsIGJ5IENocmlzIE9rYXNha2kuICAg
ICAgICAgICAqKQooKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICop
CgpzaWduYXR1cmUgSGVhcCA9CnNpZwoKdHlwZSAnYSBoZWFwCgp2YWwgZW1w
dHkgICAgOiAoJ2EgKiAnYSAtPiBvcmRlcikgLT4gJ2EgaGVhcAp2YWwgYWRk
ICAgICAgOiAnYSAtPiAnYSBoZWFwIC0+ICdhIGhlYXAKdmFsIGlzX2VtcHR5
IDogJ2EgaGVhcCAtPiBib29sCnZhbCB0b3AgICAgICA6ICdhIGhlYXAgLT4g
J2EgICAgICAgICAgICAoKiByYWlzZXMgRW1wdHkgKikKdmFsIHJlbW92ZSAg
IDogJ2EgaGVhcCAtPiAnYSAqICdhIGhlYXAgICgqIHJhaXNlcyBFbXB0eSAq
KQp2YWwgc2l6ZSAgICAgOiAnYSBoZWFwIC0+IGludAp2YWwgYXBwICAgICAg
OiAoJ2EgLT4gdW5pdCkgLT4gJ2EgaGVhcCAtPiB1bml0CnZhbCB0b19saXN0
ICA6ICdhIGhlYXAgLT4gJ2EgbGlzdAp2YWwgcHBfaGVhcCAgOiAnYSBVc2Vm
dWwucHAgLT4gJ2EgaGVhcCBVc2VmdWwucHAKCmVuZAooKiNsaW5lIDAuMCAi
YmFzaWMvSGVhcC5zbWwiKikKKCogPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PSAqKQooKiBBIEhFQVAgREFUQVRZUEUgRk9SIE1MICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopCigq
IENyZWF0ZWQgYnkgSm9lIEh1cmQsIE9jdG9iZXIgMjAwMSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKikKKCogVGFrZW4gZnJv
bSBQdXJlbHkgRnVuY3Rpb25hbCBEYXRhIFN0cnVjdHVyZXMsIGJ5IENocmlz
IE9rYXNha2kuICAgICAgICAgICAqKQooKiA9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09ICopCgooKgoqKQpzdHJ1Y3R1cmUgSGVhcCA6PiBIZWFwID0K
c3RydWN0CgpkYXRhdHlwZSAnYSBub2RlID0gRSB8IFQgb2YgaW50ICogJ2Eg
KiAnYSBub2RlICogJ2Egbm9kZTsKCmRhdGF0eXBlICdhIGhlYXAgPSBIZWFw
IG9mICgnYSAqICdhIC0+IG9yZGVyKSAqIGludCAqICdhIG5vZGU7CgpmdW4g
cmFuayBFID0gMAogIHwgcmFuayAoVCAociwgXywgXywgXykpID0gcjsKCmZ1
biBtYWtlVCAoeCwgYSwgYikgPQogIGlmIHJhbmsgYSA+PSByYW5rIGIgdGhl
biBUIChyYW5rIGIgKyAxLCB4LCBhLCBiKSBlbHNlIFQgKHJhbmsgYSArIDEs
IHgsIGIsIGEpOwoKZnVuIG1lcmdlIGYgPQogIGxldAogICAgZnVuIG1yZyAo
aCwgRSkgPSBoCiAgICAgIHwgbXJnIChFLCBoKSA9IGgKICAgICAgfCBtcmcg
KGgxIGFzIFQgKF8sIHgsIGExLCBiMSksIGgyIGFzIFQgKF8sIHksIGEyLCBi
MikpID0KICAgICAgKGNhc2UgZiAoeCwgeSkgb2YgR1JFQVRFUiA9PiBtYWtl
VCAoeSwgYTIsIG1yZyAoaDEsIGIyKSkKICAgICAgIHwgXyA9PiBtYWtlVCAo
eCwgYTEsIG1yZyAoYjEsIGgyKSkpCiAgaW4KICAgIG1yZwogIGVuZDsKCmZ1
biBlbXB0eSBmID0gSGVhcCAoZiwgMCwgRSk7CgpmdW4gYWRkIHggKEhlYXAg
KGYsIG4sIGEpKSA9IEhlYXAgKGYsIG4gKyAxLCBtZXJnZSBmIChUICgxLCB4
LCBFLCBFKSwgYSkpOwoKZnVuIGlzX2VtcHR5IChIZWFwIChfLCBfLCBFKSkg
PSB0cnVlCiAgfCBpc19lbXB0eSAoSGVhcCAoXywgXywgVCBfKSkgPSBmYWxz
ZTsKCmZ1biB0b3AgKEhlYXAgKF8sIF8sIEUpKSA9IHJhaXNlIEVtcHR5CiAg
fCB0b3AgKEhlYXAgKF8sIF8sIFQgKF8sIHgsIF8sIF8pKSkgPSB4OwoKZnVu
IHJlbW92ZSAoSGVhcCAoXywgXywgRSkpID0gcmFpc2UgRW1wdHkKICB8IHJl
bW92ZSAoSGVhcCAoZiwgbiwgVCAoXywgeCwgYSwgYikpKSA9ICh4LCBIZWFw
IChmLCBuIC0gMSwgbWVyZ2UgZiAoYSwgYikpKTsKCmZ1biBzaXplIChIZWFw
IChfLCBuLCBfKSkgPSBuOwoKZnVuIGFwcCBmID0KICBsZXQKICAgIGZ1biBh
cCBbXSA9ICgpCiAgICAgIHwgYXAgKEUgOjogcmVzdCkgPSBhcCByZXN0CiAg
ICAgIHwgYXAgKFQgKF8sIGQsIGEsIGIpIDo6IHJlc3QpID0gKGYgZDsgYXAg
KGEgOjogYiA6OiByZXN0KSkKICBpbgogICAgZm4gSGVhcCAoXywgXywgYSkg
PT4gYXAgW2FdCiAgZW5kOwoKbG9jYWwKICBmdW4gdG9fbHN0IHJlcyBoID0K
ICAgIGlmIGlzX2VtcHR5IGggdGhlbiByZXYgcmVzCiAgICBlbHNlIGxldCB2
YWwgKHgsIGgpID0gcmVtb3ZlIGggaW4gdG9fbHN0ICh4IDo6IHJlcykgaCBl
bmQ7CmluCiAgZnVuIHRvX2xpc3QgaCA9IHRvX2xzdCBbXSBoOwplbmQ7Cgps
b2NhbAogIG9wZW4gVXNlZnVsOwppbgogIGZ1biBwcF9oZWFwIHBwX2EgPQog
ICAgcHBfbWFwIHRvX2xpc3QgKHBwX2JyYWNrZXQgKCJIWyIsICJdIikgKHBw
X3NlcXVlbmNlICIsIiBwcF9hKSk7CmVuZDsKCmVuZAooKiNsaW5lIDAuMCAi
YmFzaWMvTXVsdGlzZXQuc2lnIiopCigqID09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0gKikKKCogQSBNVUxUSVNFVCBEQVRBVFlQRSBGT1IgTUwgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAq
KQooKiBDcmVhdGVkIGJ5IEpvZSBIdXJkLCBKdWx5IDIwMDIgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopCigqID09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0gKikKCnNpZ25hdHVyZSBNdWx0aXNl
dCA9CnNpZwoKdHlwZSAnYSBtc2V0Cgp2YWwgZW1wdHkgICAgOiAoJ2EgKiAn
YSAtPiBvcmRlcikgLT4gJ2EgbXNldAp2YWwgaW5zZXJ0ICAgOiAnYSAqIGlu
dCAtPiAnYSBtc2V0IC0+ICdhIG1zZXQKdmFsIGNvdW50ICAgIDogJ2EgbXNl
dCAtPiAnYSAtPiBpbnQKdmFsIHVuaW9uICAgIDogJ2EgbXNldCAtPiAnYSBt
c2V0IC0+ICdhIG1zZXQKdmFsIGNvbXBsICAgIDogJ2EgbXNldCAtPiAnYSBt
c2V0CnZhbCBzdWJ0cmFjdCA6ICdhIG1zZXQgLT4gJ2EgbXNldCAtPiAnYSBt
c2V0CnZhbCBzdWJzZXQgICA6ICdhIG1zZXQgLT4gJ2EgbXNldCAtPiBib29s
CnZhbCBjb21wYXJlICA6ICdhIG1zZXQgKiAnYSBtc2V0IC0+IG9yZGVyIG9w
dGlvbgp2YWwgYXBwICAgICAgOiAoJ2EgKiBpbnQgLT4gdW5pdCkgLT4gJ2Eg
bXNldCAtPiB1bml0CnZhbCB0b19saXN0ICA6ICdhIG1zZXQgLT4gKCdhICog
aW50KSBsaXN0CnZhbCBwcF9tc2V0ICA6ICdhIFVzZWZ1bC5wcCAtPiAnYSBt
c2V0IFVzZWZ1bC5wcAoKZW5kCigqI2xpbmUgMC4wICJiYXNpYy9NdWx0aXNl
dC5zbWwiKikKKCogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqKQoo
KiBBIE1VTFRJU0VUIERBVEFUWVBFIEZPUiBNTCAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopCigqIENyZWF0ZWQg
YnkgSm9lIEh1cmQsIEp1bHkgMjAwMiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgKikKKCogPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PSAqKQoKKCoKTGlzdC5hcHAgbG9hZCBbIkJpbmFyeW1hcCIs
ICJVc2VmdWwiXTsKKikKCigqCiopCnN0cnVjdHVyZSBNdWx0aXNldCA6PiBN
dWx0aXNldCA9CnN0cnVjdAoKc3RydWN0dXJlIE0gPSBCaW5hcnltYXA7Cgpm
dW4gTXB1cmdlIG0gayA9IGxldCB2YWwgKG0sIF8pID0gTS5yZW1vdmUgKG0s
IGspIGluIG0gZW5kOwoKZnVuIE1hbGwgcCA9CiAgbGV0CiAgICBleGNlcHRp
b24gQ3V0CiAgICBmdW4gZiAoeCwgeSwgKCkpID0gaWYgcCAoeCwgeSkgdGhl
biAoKSBlbHNlIHJhaXNlIEN1dAogIGluCiAgICBmbiBhID0+IChNLmZvbGRs
IGYgKCkgYTsgdHJ1ZSkgaGFuZGxlIEN1dCA9PiBmYWxzZQogIGVuZDsKCnR5
cGUgJ2EgbXNldCA9ICgnYSwgaW50KSBNLmRpY3Q7CgpmdW4gZW1wdHkgb3Jk
IDogJ2EgbXNldCA9IE0ubWtEaWN0IG9yZDsKCmZ1biBpbnNlcnQgKF8sIDAp
IGEgPSBhCiAgfCBpbnNlcnQgKHgsIG4pIGEgPQogIChjYXNlIE0ucGVlayAo
YSwgeCkgb2YgTk9ORSA9PiBNLmluc2VydCAoYSwgeCwgbikKICAgfCBTT01F
IG4nID0+CiAgIGxldCB2YWwgbicnID0gbiArIG4nCiAgIGluIGlmIG4nJyA9
IDAgdGhlbiBNcHVyZ2UgYSB4IGVsc2UgTS5pbnNlcnQgKGEsIHgsIG4nJykK
ICAgZW5kKTsKCmZ1biBjb3VudCBtIHggPSBjYXNlIE0ucGVlayAobSwgeCkg
b2YgU09NRSBuID0+IG4gfCBOT05FID0+IDA7Cgpsb2NhbCBmdW4gdW4gYSBi
ID0gTS5mb2xkbCAoZm4gKHggOiAnYSwgbiA6IGludCwgZCkgPT4gaW5zZXJ0
ICh4LCBuKSBkKSBhIGI7CmluIGZ1biB1bmlvbiBhIGIgPSBpZiBNLm51bUl0
ZW1zIGEgPCBNLm51bUl0ZW1zIGIgdGhlbiB1biBiIGEgZWxzZSB1biBhIGI7
CmVuZDsKCmZ1biBjb21wbCBhIDogJ2EgbXNldCA9IE0udHJhbnNmb3JtIH4g
YTsKCmZ1biBzdWJ0cmFjdCBhIGIgPSB1bmlvbiBhIChjb21wbCBiKTsKCmxv
Y2FsCiAgZnVuIHNpZ24gYSA9IChNYWxsIChmbiAoXywgbikgPT4gMCA8PSBu
KSBhLCBNYWxsIChmbiAoXywgbikgPT4gbiA8PSAwKSBhKTsKaW4KICBmdW4g
Y29tcGFyZSAoYSwgYikgPQogICAgKGNhc2Ugc2lnbiAoc3VidHJhY3QgYSBi
KSBvZiAodHJ1ZSwgdHJ1ZSkgPT4gU09NRSBFUVVBTAogICAgIHwgKHRydWUs
IGZhbHNlKSA9PiBTT01FIEdSRUFURVIKICAgICB8IChmYWxzZSwgdHJ1ZSkg
PT4gU09NRSBMRVNTCiAgICAgfCAoZmFsc2UsIGZhbHNlKSA9PiBOT05FKTsK
ZW5kOwoKZnVuIHN1YnNldCBhIGIgPQogIChjYXNlIGNvbXBhcmUgKGEsIGIp
IG9mIFNPTUUgTEVTUyA9PiB0cnVlCiAgIHwgU09NRSBFUVVBTCA9PiB0cnVl
CiAgIHwgXyA9PiBmYWxzZSk7CgpmdW4gYXBwIGYgKGEgOiAnYSBtc2V0KSA9
IE0uYXBwIGYgYTsKCmZ1biB0b19saXN0IChhIDogJ2EgbXNldCkgPSBNLmxp
c3RJdGVtcyBhOwoKbG9jYWwKICBvcGVuIFVzZWZ1bDsKaW4KICBmdW4gcHBf
bXNldCBwcF9hID0KICAgIHBwX21hcCAobWFwIFVzZWZ1bC58LT4gbyB0b19s
aXN0KQogICAgKHBwX2JyYWNrZXQgKCJNWyIsICJdIikgKHBwX3NlcXVlbmNl
ICIsIiAoVXNlZnVsLnBwX21hcGxldCBwcF9hIHBwX2ludCkpKTsKZW5kOwoK
ZW5kCigqI2xpbmUgMC4wICJiYXNpYy9TdHJlYW0uc2lnIiopCigqID09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0gKikKKCogQSBQT1NTSUJMWS1JTkZJ
TklURSBTVFJFQU0gREFUQVRZUEUgRk9SIE1MICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAqKQooKiBDcmVhdGVkIGJ5IEpvZSBIdXJkLCBBcHJp
bCAyMDAxICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICopCigqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKikKCnNp
Z25hdHVyZSBTdHJlYW0gPQpzaWcKCmRhdGF0eXBlICdhIHN0cmVhbSA9IE5J
TCB8IENPTlMgb2YgJ2EgKiAodW5pdCAtPiAnYSBzdHJlYW0pCnR5cGUgJ2Eg
U3RoayA9IHVuaXQgLT4gJ2Egc3RyZWFtCgooKiBJZiB5b3UncmUgd29uZGVy
aW5nIGhvdyB0byBjcmVhdGUgYW4gaW5maW5pdGUgc3RyZWFtOiAqKQooKiB2
YWwgc3RyZWFtNCA9IGxldCBmdW4gczQgKCkgPSBDT05TIDQgczQgaW4gczQg
KCkgZW5kOyAqKQoKdmFsIGNvbnMgICAgICAgICAgOiAnYSAtPiAodW5pdCAt
PiAnYSBzdHJlYW0pIC0+ICdhIHN0cmVhbQp2YWwgbnVsbCAgICAgICAgICA6
ICdhIHN0cmVhbSAtPiBib29sCnZhbCBoZCAgICAgICAgICAgIDogJ2Egc3Ry
ZWFtIC0+ICdhICAgICAgICAgICAgICAgICAgICAoKiByYWlzZXMgRW1wdHkg
KikKdmFsIHRsICAgICAgICAgICAgOiAnYSBzdHJlYW0gLT4gJ2Egc3RyZWFt
ICAgICAgICAgICAgICgqIHJhaXNlcyBFbXB0eSAqKQp2YWwgZGVzdCAgICAg
ICAgICA6ICdhIHN0cmVhbSAtPiAnYSAqICdhIHN0cmVhbSAgICAgICAgKCog
cmFpc2VzIEVtcHR5ICopCnZhbCByZXBlYXQgICAgICAgIDogJ2EgLT4gJ2Eg
c3RyZWFtCnZhbCBjb3VudCAgICAgICAgIDogaW50IC0+IGludCBzdHJlYW0K
dmFsIGZvbGQgICAgICAgICAgOiAoJ2EgLT4gKHVuaXQgLT4gJ2IpIC0+ICdi
KSAtPiAnYiAtPiAnYSBzdHJlYW0gLT4gJ2IKdmFsIG1hcCAgICAgICAgICAg
OiAoJ2EgLT4gJ2IpIC0+ICdhIHN0cmVhbSAtPiAnYiBzdHJlYW0KdmFsIG1h
cF90aGsgICAgICAgOiAoJ2EgU3RoayAtPiAnYSBTdGhrKSAtPiAnYSBTdGhr
IC0+ICdhIFN0aGsKdmFsIHBhcnRpYWxfbWFwICAgOiAoJ2EgLT4gJ2Igb3B0
aW9uKSAtPiAnYSBzdHJlYW0gLT4gJ2Igc3RyZWFtCnZhbCBtYXBzICAgICAg
ICAgIDogKCdhIC0+ICdjIC0+ICdiICogJ2MpIC0+ICdjIC0+ICdhIHN0cmVh
bSAtPiAnYiBzdHJlYW0KdmFsIHBhcnRpYWxfbWFwcyAgOiAoJ2EgLT4gJ2Mg
LT4gJ2Igb3B0aW9uICogJ2MpIC0+ICdjIC0+ICdhIHN0cmVhbSAtPiAnYiBz
dHJlYW0KdmFsIGZpbHRlciAgICAgICAgOiAoJ2EgLT4gYm9vbCkgLT4gJ2Eg
c3RyZWFtIC0+ICdhIHN0cmVhbQp2YWwgZmxhdHRlbiAgICAgICA6ICdhIHN0
cmVhbSBzdHJlYW0gLT4gJ2Egc3RyZWFtCnZhbCB6aXB3aXRoICAgICAgIDog
KCdhIC0+ICdiIC0+ICdjKSAtPiAnYSBzdHJlYW0gLT4gJ2Igc3RyZWFtIC0+
ICdjIHN0cmVhbQp2YWwgemlwICAgICAgICAgICA6ICdhIHN0cmVhbSAtPiAn
YiBzdHJlYW0gLT4gKCdhICogJ2IpIHN0cmVhbQp2YWwgdGFrZSAgICAgICAg
ICA6IGludCAtPiAnYSBzdHJlYW0gLT4gJ2Egc3RyZWFtICAgICAgKCogcmFp
c2VzIFN1YnNjcmlwdCAqKQp2YWwgZHJvcCAgICAgICAgICA6IGludCAtPiAn
YSBzdHJlYW0gLT4gJ2Egc3RyZWFtICAgICAgKCogcmFpc2VzIFN1YnNjcmlw
dCAqKQp2YWwgdG9fbGlzdCAgICAgICA6ICdhIHN0cmVhbSAtPiAnYSBsaXN0
CnZhbCBmcm9tX2xpc3QgICAgIDogJ2EgbGlzdCAtPiAnYSBzdHJlYW0KdmFs
IGZyb21fdGV4dGZpbGUgOiBzdHJpbmcgLT4gc3RyaW5nIHN0cmVhbSAgICAg
ICAgICAgICgqIGxpbmVzIG9mIHRoZSBmaWxlICopCgplbmQKKCojbGluZSAw
LjAgImJhc2ljL1N0cmVhbS5zbWwiKikKKCogPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PSAqKQooKiBBIFBPU1NJQkxZLUlORklOSVRFIFNUUkVBTSBE
QVRBVFlQRSBGT1IgTUwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICopCigqIENyZWF0ZWQgYnkgSm9lIEh1cmQsIEFwcmlsIDIwMDEgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKikKKCogPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PSAqKQoKc3RydWN0dXJlIFN0cmVh
bSA6PiBTdHJlYW0gPQpzdHJ1Y3QKCm9wZW4gVXNlZnVsOwoKaW5maXhyIDAg
b28gIyM7CgooKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICopCigq
IFRoZSBkYXRhdHlwZSBkZWNsYXJhdGlvbiBlbmNhcHN1bGF0ZXMgYWxsIHRo
ZSBwcmltaXRpdmUgb3BlcmF0aW9ucy4gICAgICAgKikKKCogLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLSAqKQoKZGF0YXR5cGUgJ2Egc3RyZWFtID0g
TklMIHwgQ09OUyBvZiAnYSAqICh1bml0IC0+ICdhIHN0cmVhbSk7Cgp0eXBl
ICdhIFN0aGsgPSB1bml0IC0+ICdhIHN0cmVhbTsKCigqIC0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0gKikKKCogVXNlZnVsIGZ1bmN0aW9ucy4gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAqKQooKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICop
Cgp2YWwgY29ucyA9IGN1cnJ5IENPTlM7CgpmdW4gbnVsbCBOSUwgPSB0cnVl
IHwgbnVsbCAoQ09OUyBfKSA9IGZhbHNlOwoKZnVuIGhkIE5JTCA9IHJhaXNl
IEVtcHR5IHwgaGQgKENPTlMgKGgsIF8pKSA9IGg7CgpmdW4gdGwgTklMID0g
cmFpc2UgRW1wdHkgfCB0bCAoQ09OUyAoXywgdCkpID0gdCAoKTsKCmZ1biBk
ZXN0IHMgPSAoaGQgcywgdGwgcyk7CgpmdW4gcmVwZWF0IHggPSBsZXQgZnVu
IHJlcCAoKSA9IENPTlMgKHgsIHJlcCkgaW4gcmVwICgpIGVuZDsKCmZ1biBj
b3VudCBuID0gQ09OUyAobiwgZm4gKCkgPT4gY291bnQgKG4gKyAxKSk7Cgpm
dW4gZm9sZCBiIGMgPQogIGxldCBmdW4gZiBOSUwgPSBjIHwgZiAoQ09OUyAo
eCwgeHMpKSA9IGIgeCAoZm4gKCkgPT4gZiAoeHMgKCkpKSBpbiBmIGVuZDsK
CmZ1biBtYXAgZiA9CiAgbGV0CiAgICBmdW4gbSBOSUwgPSBOSUwKICAgICAg
fCBtIChDT05TIChoLCB0KSkgPSBDT05TIChmIGgsIGZuICgpID0+IG0gKHQg
KCkpKQogIGluCiAgICBtCiAgZW5kOwoKZnVuIG1hcF90aGsgZiA9CiAgbGV0
CiAgICBmdW4gbXQgTklMID0gTklMCiAgICAgIHwgbXQgKENPTlMgKGgsIHQp
KSA9IENPTlMgKGgsIG10JyB0KQogICAgYW5kIG10JyB0ID0gZiAoZm4gKCkg
PT4gbXQgKHQgKCkpKQogIGluCiAgICBtdCcKICBlbmQ7CgpmdW4gcGFydGlh
bF9tYXAgZiA9CiAgbGV0CiAgICBmdW4gbXAgTklMID0gTklMCiAgICAgIHwg
bXAgKENPTlMgKGgsIHQpKSA9CiAgICAgIGNhc2UgZiBoIG9mIE5PTkUgPT4g
bXAgKHQgKCkpCiAgICAgIHwgU09NRSBoJyA9PiBDT05TIChoJywgZm4gKCkg
PT4gbXAgKHQgKCkpKQogIGluCiAgICBtcAogIGVuZDsKCmZ1biBtYXBzIGYg
PQogIGxldAogICAgZnVuIG1tIF8gTklMID0gTklMCiAgICAgIHwgbW0gcyAo
Q09OUyAoeCwgeHMpKSA9CiAgICAgIGxldCB2YWwgKHksIHMnKSA9IGYgeCBz
CiAgICAgIGluIENPTlMgKHksIGZuICgpID0+IG1tIHMnICh4cyAoKSkpCiAg
ICAgIGVuZAogIGluCiAgICBtbQogIGVuZDsKCmZ1biBwYXJ0aWFsX21hcHMg
ZiA9CiAgbGV0CiAgICBmdW4gbW0gXyBOSUwgPSBOSUwKICAgICAgfCBtbSBz
IChDT05TICh4LCB4cykpID0KICAgICAgbGV0CiAgICAgICAgdmFsICh5bywg
cycpID0gZiB4IHMKICAgICAgICB2YWwgdCA9IG1tIHMnIG8geHMKICAgICAg
aW4KICAgICAgICBjYXNlIHlvIG9mIE5PTkUgPT4gdCAoKSB8IFNPTUUgeSA9
PiBDT05TICh5LCB0KQogICAgICBlbmQKICBpbgogICAgbW0KICBlbmQ7Cgpm
dW4gZmlsdGVyIGYgPSBwYXJ0aWFsX21hcCAoZm4geCA9PiBpZiBmIHggdGhl
biBTT01FIHggZWxzZSBOT05FKTsKCmZ1biBmbGF0dGVuIE5JTCA9IE5JTAog
IHwgZmxhdHRlbiAoQ09OUyAoTklMLCBzcykpID0gZmxhdHRlbiAoc3MgKCkp
CiAgfCBmbGF0dGVuIChDT05TIChDT05TICh4LCB4cyksIHNzKSkgPQogIENP
TlMgKHgsIGZuICgpID0+IGZsYXR0ZW4gKENPTlMgKHhzICgpLCBzcykpKTsK
CmZ1biB6aXB3aXRoIGYgPQogIGxldAogICAgZnVuIHogTklMIF8gPSBOSUwK
ICAgICAgfCB6IF8gTklMID0gTklMCiAgICAgIHwgeiAoQ09OUyAoeCwgeHMp
KSAoQ09OUyAoeSwgeXMpKSA9CiAgICAgIENPTlMgKGYgeCB5LCBmbiAoKSA9
PiB6ICh4cyAoKSkgKHlzICgpKSkKICBpbgogICAgegogIGVuZDsKCmZ1biB6
aXAgcyB0ID0gemlwd2l0aCBwYWlyIHMgdDsKCmZ1biB0YWtlIDAgcyA9IE5J
TAogIHwgdGFrZSBuIE5JTCA9IHJhaXNlIFN1YnNjcmlwdAogIHwgdGFrZSAx
IChDT05TICh4LCBfKSkgPSBDT05TICh4LCBLIE5JTCkKICB8IHRha2UgbiAo
Q09OUyAoeCwgeHMpKSA9IENPTlMgKHgsIGZuICgpID0+IHRha2UgKG4gLSAx
KSAoeHMgKCkpKTsKCmZ1biBkcm9wIG4gcyA9IE4gbiB0bCBzIGhhbmRsZSBF
bXB0eSA9PiByYWlzZSBTdWJzY3JpcHQ7Cgpsb2NhbAogIGZ1biB0b19sc3Qg
cmVzIE5JTCA9IHJlcwogICAgfCB0b19sc3QgcmVzIChDT05TICh4LCB4cykp
ID0gdG9fbHN0ICh4IDo6IHJlcykgKHhzICgpKTsKaW4KICB2YWwgdG9fbGlz
dCA9IHJldiBvIHRvX2xzdCBbXTsKZW5kOwoKZnVuIGZyb21fbGlzdCBbXSA9
IE5JTAogIHwgZnJvbV9saXN0ICh4IDo6IHhzKSA9IENPTlMgKHgsIGZuICgp
ID0+IGZyb21fbGlzdCB4cyk7CgpmdW4gZnJvbV90ZXh0ZmlsZSBmaWxlbmFt
ZSA9CiAgbGV0CiAgICBvcGVuIFRleHRJTwogICAgdmFsIGZoID0gb3Blbklu
IGZpbGVuYW1lCiAgICBmdW4gcmVzICgpID0KICAgICAgY2FzZSBpbnB1dExp
bmUgZmggb2YgIiIgPT4gKGNsb3NlSW4gZmg7IE5JTCkKICAgICAgfCBzID0+
IENPTlMgKHMsIGxhemlmeV90aHVuayByZXMpCiAgaW4KICAgIHJlcyAoKQog
IGVuZDsKCmVuZAooKiNsaW5lIDAuMCAiYmFzaWMvUGFyc2VyLnNpZyIqKQoo
KiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICopCigqIFBBUlNFUiBD
T01CSU5BVE9SUyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgKikKKCogQ3JlYXRlZCBieSBKb2UgSHVy
ZCwgQXByaWwgMjAwMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAqKQooKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
ICopCgpzaWduYXR1cmUgUGFyc2VyID0Kc2lnCgooKiBSZWNvbW1lbmRlZCBm
aXhpdGllcwogIGluZml4ciA5ID4+Kys7CiAgaW5maXhyIDggKys7CiAgaW5m
aXhyIDcgPj47CiAgaW5maXhyIDYgfHw7CiopCgp0eXBlICdhIHBwICAgICA9
ICdhIFVzZWZ1bC5wcAp0eXBlICdhIHN0cmVhbSA9ICdhIFN0cmVhbS5zdHJl
YW0KCigqIEdlbmVyaWMgKikKZXhjZXB0aW9uIE5vcGFyc2UKdmFsICsrICAg
ICAgICAgOiAoJ2EgLT4gJ2IgKiAnYSkgKiAoJ2EgLT4gJ2MgKiAnYSkgLT4g
J2EgLT4gKCdiICogJ2MpICogJ2EKdmFsID4+ICAgICAgICAgOiAoJ2EgLT4g
J2IgKiAnYSkgKiAoJ2IgLT4gJ2MpIC0+ICdhIC0+ICdjICogJ2EKdmFsID4+
KysgICAgICAgOiAoJ2EgLT4gJ2IgKiAnYSkgKiAoJ2IgLT4gJ2EgLT4gJ2Mg
KiAnYSkgLT4gJ2EgLT4gJ2MgKiAnYQp2YWwgfHwgICAgICAgICA6ICgnYSAt
PiAnYiAqICdhKSAqICgnYSAtPiAnYiAqICdhKSAtPiAnYSAtPiAnYiAqICdh
CnZhbCBtYW55ICAgICAgIDogKCdhIC0+ICdiICogJ2EpIC0+ICdhIC0+ICdi
IGxpc3QgKiAnYQp2YWwgYXRsZWFzdG9uZSA6ICgnYSAtPiAnYiAqICdhKSAt
PiAnYSAtPiAnYiBsaXN0ICogJ2EKdmFsIG5vdGhpbmcgICAgOiAnYSAtPiB1
bml0ICogJ2EKdmFsIG9wdGlvbmFsICAgOiAoJ2EgLT4gJ2IgKiAnYSkgLT4g
J2EgLT4gJ2Igb3B0aW9uICogJ2EKCigqIFN0cmVhbS1iYXNlZCAqKQp0eXBl
ICgnYSwgJ2IpIHBhcnNlciA9ICdhIHN0cmVhbSAtPiAnYiAqICdhIHN0cmVh
bQp2YWwgbWF5YmUgICAgOiAoJ2EgLT4gJ2Igb3B0aW9uKSAtPiAoJ2EsICdi
KSBwYXJzZXIKdmFsIGZpbmlzaGVkIDogKCdhLCB1bml0KSBwYXJzZXIKdmFs
IHNvbWUgICAgIDogKCdhIC0+IGJvb2wpIC0+ICgnYSwgJ2EpIHBhcnNlcgp2
YWwgYW55ICAgICAgOiAoJ2EsICdhKSBwYXJzZXIKdmFsIGV4YWN0ICAgIDog
JydhIC0+ICgnJ2EsICcnYSkgcGFyc2VyCgooKiBQYXJzaW5nIGFuZCBwcmV0
dHktcHJpbnRpbmcgZm9yIGluZml4IG9wZXJhdG9ycyAqKQp0eXBlIGluZml4
aXRpZXMgID0ge3RvayA6IHN0cmluZywgcHJlYyA6IGludCwgbGVmdF9hc3Nv
YyA6IGJvb2x9IGxpc3QKdHlwZSAnYSBjb24gICAgICA9IHN0cmluZyAqICdh
ICogJ2EgLT4gJ2EKdHlwZSAnYSBkZXMgICAgICA9ICdhIC0+IChzdHJpbmcg
KiAnYSAqICdhKSBvcHRpb24KdHlwZSAnYSBpcGFyc2VyICA9IChzdHJpbmcs
ICdhKSBwYXJzZXIKdHlwZSAnYSBpcHJpbnRlciA9ICgnYSAqIGJvb2wpIHBw
CnZhbCBvcHRva3MgICAgICAgICAgICA6IGluZml4aXRpZXMgLT4gc3RyaW5n
IGxpc3QKdmFsIHBhcnNlX2xlZnRfaW5maXggIDogc3RyaW5nIGxpc3QgLT4g
J2EgY29uIC0+ICdhIGlwYXJzZXIgLT4gJ2EgaXBhcnNlcgp2YWwgcGFyc2Vf
cmlnaHRfaW5maXggOiBzdHJpbmcgbGlzdCAtPiAnYSBjb24gLT4gJ2EgaXBh
cnNlciAtPiAnYSBpcGFyc2VyCnZhbCBwYXJzZV9pbmZpeGVzICAgICA6IGlu
Zml4aXRpZXMgIC0+ICdhIGNvbiAtPiAnYSBpcGFyc2VyIC0+ICdhIGlwYXJz
ZXIKdmFsIHBwX2xlZnRfaW5maXggICAgIDogc3RyaW5nIGxpc3QgLT4gJ2Eg
ZGVzIC0+ICdhIGlwcmludGVyIC0+ICdhIGlwcmludGVyCnZhbCBwcF9yaWdo
dF9pbmZpeCAgICA6IHN0cmluZyBsaXN0IC0+ICdhIGRlcyAtPiAnYSBpcHJp
bnRlciAtPiAnYSBpcHJpbnRlcgp2YWwgcHBfaW5maXhlcyAgICAgICAgOiBp
bmZpeGl0aWVzICAtPiAnYSBkZXMgLT4gJ2EgaXByaW50ZXIgLT4gJ2EgaXBy
aW50ZXIKCigqIExleGluZyAqKQp2YWwgc3BhY2UgICAgOiBjaGFyIC0+IGJv
b2wKdmFsIGRpZ2l0ICAgIDogY2hhciAtPiBib29sCnZhbCBsb3dlciAgICA6
IGNoYXIgLT4gYm9vbAp2YWwgdXBwZXIgICAgOiBjaGFyIC0+IGJvb2wKdmFs
IGFscGhhICAgIDogY2hhciAtPiBib29sCnZhbCBhbHBoYW51bSA6IGNoYXIg
LT4gYm9vbCAgICAgICAgICAgICAoKiBhbHBoYSArIGRpZ2l0ICsgXyArICcg
KikKdmFsIHN5bWJvbCAgIDogY2hhciAtPiBib29sICAgICAgICAgICAgICgq
IDw+PS0qKy9cP0B8ISQlJn4jXjogKikKdmFsIHB1bmN0ICAgIDogY2hhciAt
PiBib29sICAgICAgICAgICAgICgqICgpW117fS4sOyAqKQoKKCogUXVvdGF0
aW9ucyAqKQp0eXBlICdhIHF1b3RhdGlvbiA9ICdhIGZyYWcgbGlzdAp2YWwg
cXVvdGF0aW9uX3BhcnNlciA6IChzdHJpbmcgLT4gJ2EpIC0+ICdiIHBwIC0+
ICdiIHF1b3RhdGlvbiAtPiAnYQoKZW5kCigqI2xpbmUgMC4wICJiYXNpYy9Q
YXJzZXIuc21sIiopCigqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0g
KikKKCogUEFSU0VSIENPTUJJTkFUT1JTICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKQooKiBDcmVh
dGVkIGJ5IEpvZSBIdXJkLCBBcHJpbCAyMDAxICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICopCigqID09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0gKikKCigqCmFwcCBsb2FkIFsiVXNlZnVsIiwgIlN0
cmVhbSJdOwoqKQoKKCoKKikKc3RydWN0dXJlIFBhcnNlciA6PiBQYXJzZXIg
PQpzdHJ1Y3QKCm9wZW4gVXNlZnVsOwoKc3RydWN0dXJlIFMgPSBTdHJlYW07
CgppbmZpeHIgOSA+PisrOwppbmZpeHIgOCArKzsKaW5maXhyIDcgPj47Cmlu
Zml4ciA2IHx8OwppbmZpeCAjIzsKCnR5cGUgJ2Egc3RyZWFtID0gJ2EgU3Ry
ZWFtLnN0cmVhbTsKdmFsIG9tYXAgICAgICAgPSBPcHRpb24ubWFwOwoKKCog
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqKQooKiBHZW5lcmljLiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICopCigqIC0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0gKikKCmV4Y2VwdGlvbiBOb3BhcnNlOwoKZnVuIG9wICsrIChw
YXJzZXIxLCBwYXJzZXIyKSBpbnB1dCA9CiAgbGV0CiAgICB2YWwgKHJlc3Vs
dDEsIHJlc3QxKSA9IHBhcnNlcjEgaW5wdXQKICAgIHZhbCAocmVzdWx0Miwg
cmVzdDIpID0gcGFyc2VyMiByZXN0MQogIGluCiAgICAoKHJlc3VsdDEsIHJl
c3VsdDIpLCByZXN0MikKICBlbmQ7CgpmdW4gb3AgPj4gKHBhcnNlciwgdHJl
YXRtZW50KSBpbnB1dCA9CiAgbGV0CiAgICB2YWwgKHJlc3VsdCwgcmVzdCkg
PSBwYXJzZXIgaW5wdXQKICBpbgogICAgKHRyZWF0bWVudCByZXN1bHQsIHJl
c3QpCiAgZW5kOwoKZnVuIG9wID4+KysgKHBhcnNlciwgdHJlYXRtZW50KSBp
bnB1dCA9CiAgbGV0CiAgICB2YWwgKHJlc3VsdCwgcmVzdCkgPSBwYXJzZXIg
aW5wdXQKICBpbgogICAgdHJlYXRtZW50IHJlc3VsdCByZXN0CiAgZW5kOwoK
ZnVuIG9wIHx8IChwYXJzZXIxLCBwYXJzZXIyKSBpbnB1dCA9IHBhcnNlcjEg
aW5wdXQKaGFuZGxlIE5vcGFyc2UgPT4gcGFyc2VyMiBpbnB1dDsKCmZ1biBt
YW55IHBhcnNlciBpbnB1dCA9CiAgbGV0CiAgICB2YWwgKHJlc3VsdCwgbmV4
dCkgPSBwYXJzZXIgaW5wdXQKICAgIHZhbCAocmVzdWx0cywgcmVzdCkgPSBt
YW55IHBhcnNlciBuZXh0CiAgaW4KICAgICgocmVzdWx0IDo6IHJlc3VsdHMp
LCByZXN0KQogIGVuZAogIGhhbmRsZSBOb3BhcnNlID0+IChbXSwgaW5wdXQp
OwoKZnVuIGF0bGVhc3RvbmUgcCA9IChwICsrIG1hbnkgcCkgPj4gb3A6OjsK
CmZ1biBub3RoaW5nIGlucHV0ID0gKCgpLCBpbnB1dCk7CgpmdW4gb3B0aW9u
YWwgcCA9IChwID4+IFNPTUUpIHx8IChub3RoaW5nID4+IEsgTk9ORSk7Cgoo
KiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICopCigqIFN0cmVhbS1i
YXNlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgKikKKCogLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLSAqKQoKdHlwZSAoJ2EsICdiKSBwYXJzZXIgPSAnYSBzdHJl
YW0gLT4gJ2IgKiAnYSBzdHJlYW0KCmZ1biBtYXliZSBwIFMuTklMID0gcmFp
c2UgTm9wYXJzZQogIHwgbWF5YmUgcCAoUy5DT05TIChoLCB0KSkgPQogIGNh
c2UgcCBoIG9mIFNPTUUgciA9PiAociwgdCAoKSkgfCBOT05FID0+IHJhaXNl
IE5vcGFyc2U7CgpmdW4gZmluaXNoZWQgUy5OSUwgPSAoKCksIFMuTklMKQog
IHwgZmluaXNoZWQgKFMuQ09OUyBfKSA9IHJhaXNlIE5vcGFyc2U7CgpmdW4g
c29tZSBwID0gbWF5YmUgKGZuIHggPT4gaWYgcCB4IHRoZW4gU09NRSB4IGVs
c2UgTk9ORSk7CgpmdW4gYW55IGlucHV0ID0gc29tZSAoSyB0cnVlKSBpbnB1
dDsKCmZ1biBleGFjdCB0b2sgPSBzb21lIChmbiBpdGVtID0+IGl0ZW0gPSB0
b2spOwoKKCogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqKQooKiBQ
YXJzaW5nIGFuZCBwcmV0dHktcHJpbnRpbmcgZm9yIGluZml4IG9wZXJhdG9y
cy4gICAgICAgICAgICAgICAgICAgICAgICAgICopCigqIC0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0gKikKCnR5cGUgaW5maXhpdGllcyA9IHt0b2sg
OiBzdHJpbmcsIHByZWMgOiBpbnQsIGxlZnRfYXNzb2MgOiBib29sfSBsaXN0
Owp0eXBlICdhIGNvbiAgICAgID0gc3RyaW5nICogJ2EgKiAnYSAtPiAnYTsK
dHlwZSAnYSBkZXMgICAgICA9ICdhIC0+IChzdHJpbmcgKiAnYSAqICdhKSBv
cHRpb247CnR5cGUgJ2EgaXBhcnNlciAgPSAoc3RyaW5nLCAnYSkgcGFyc2Vy
Owp0eXBlICdhIGlwcmludGVyID0gKCdhICogYm9vbCkgcHA7Cgpsb2NhbAog
IHZhbCBzb3J0X29wcyA6IGluZml4aXRpZXMgLT4gaW5maXhpdGllcyA9CiAg
ICBsZXQgZnVuIG9yZGVyIHtwcmVjLCAuLi59IHtwcmVjID0gcHJlYycsIC4u
Ln0gPSBwcmVjIDwgcHJlYycKICAgIGluIHNvcnQgb3JkZXIKICAgIGVuZDsK
ICBmdW4gdW5mbGF0dGVuICh7dG9rLCBwcmVjLCBsZWZ0X2Fzc29jfSwgKFtd
LCBfKSkgPQogICAgKFsobGVmdF9hc3NvYywgW3Rva10pXSwgcHJlYykKICAg
IHwgdW5mbGF0dGVuICh7dG9rLCBwcmVjLCBsZWZ0X2Fzc29jfSwgKChhLCBs
KSA6OiBkZWFsdCwgcCkpID0KICAgIGlmIHAgPSBwcmVjIHRoZW4KICAgICAg
KGFzc2VydCAobGVmdF9hc3NvYyA9IGEpIChCVUcgImluZml4IHBhcnNlci9w
cmludGVyIiAibWl4ZWQgYXNzb2NzIik7CiAgICAgICAoKGEsIHRvayA6OiBs
KSA6OiBkZWFsdCwgcCkpCiAgICBlbHNlCiAgICAgICgobGVmdF9hc3NvYywg
W3Rva10pIDo6IChhLCBsKSA6OiBkZWFsdCwgcHJlYyk7CmluCiAgdmFsIGxh
eWVyb3BzID0gZnN0IG8gZm9sZGwgdW5mbGF0dGVuIChbXSwgMCkgbyBzb3J0
X29wczsKZW5kOwoKbG9jYWwKICBmdW4gY2hvcCAoIyIgIiA6OiBjaHMpID0g
KGN1cnJ5IG9wKyAxICMjIEkpIChjaG9wIGNocykgfCBjaG9wIGNocyA9ICgw
LCBjaHMpOwogIGZ1biBuc3BhY2VzIG4gPSBOIG4gKGN1cnJ5IG9wXiAiICIp
ICIiOwogIGZ1biBzcGFjaWZ5IHRvayA9CiAgICBsZXQKICAgICAgdmFsIGNo
cyA9IGV4cGxvZGUgdG9rCiAgICAgIHZhbCAociwgY2hzKSA9IGNob3AgKHJl
diBjaHMpCiAgICAgIHZhbCAobCwgY2hzKSA9IGNob3AgKHJldiBjaHMpCiAg
ICBpbgogICAgICAoKGwsIHIpLCBpbXBsb2RlIGNocykKICAgIGVuZDsKICBm
dW4gbHJzcGFjZXMgKGwsIHIpID0KICAgIChpZiBsID0gMCB0aGVuIEsgKCkg
ZWxzZSBDIFBQLmFkZF9zdHJpbmcgKG5zcGFjZXMgbCksCiAgICAgaWYgciA9
IDAgdGhlbiBLICgpIGVsc2UgQyBQUC5hZGRfYnJlYWsgKHIsIDApKTsKaW4K
ICB2YWwgb3Bfc3BhY2VzID0gKGxyc3BhY2VzICMjIEkpIG8gc3BhY2lmeTsK
ICB2YWwgb3BfY2xlYW4gID0gc25kICAgICAgICAgICAgIG8gc3BhY2lmeTsK
ZW5kOwoKdmFsIG9wdG9rcyA6IGluZml4aXRpZXMgLT4gc3RyaW5nIGxpc3Qg
PSBtYXAgKGZuIHt0b2ssIC4uLn0gPT4gb3BfY2xlYW4gdG9rKTsKCmZ1biBw
YXJzZV9nZW5faW5maXggdXBkYXRlIHNvZiB0b2tzIHBhcnNlIGlucCA9CiAg
bGV0CiAgICB2YWwgKGUsIHJlc3QpID0gcGFyc2UgaW5wCiAgICB2YWwgY29u
dGludWUgPQogICAgICBjYXNlIHJlc3Qgb2YgUy5OSUwgPT4gTk9ORQogICAg
ICB8IFMuQ09OUyAoaCwgdCkgPT4gaWYgbWVtIGggdG9rcyB0aGVuIFNPTUUg
KGgsIHQpIGVsc2UgTk9ORQogIGluCiAgICBjYXNlIGNvbnRpbnVlIG9mIE5P
TkUgPT4gKHNvZiBlLCByZXN0KQogICAgfCBTT01FIChoLCB0KSA9PiBwYXJz
ZV9nZW5faW5maXggdXBkYXRlICh1cGRhdGUgc29mIGggZSkgdG9rcyBwYXJz
ZSAodCAoKSkKICBlbmQ7CgpmdW4gcGFyc2VfbGVmdF9pbmZpeCB0b2tzIGNv
biA9CiAgcGFyc2VfZ2VuX2luZml4IChmbiBmID0+IGZuIHQgPT4gZm4gYSA9
PiBmbiBiID0+IGNvbiAodCwgZiBhLCBiKSkgSSB0b2tzOwoKZnVuIHBhcnNl
X3JpZ2h0X2luZml4IHRva3MgY29uID0KICBwYXJzZV9nZW5faW5maXggKGZu
IGYgPT4gZm4gdCA9PiBmbiBhID0+IGZuIGIgPT4gZiAoY29uICh0LCBhLCBi
KSkpIEkgdG9rczsKCmZ1biBwYXJzZV9pbmZpeGVzIG9wcyA9CiAgbGV0CiAg
ICB2YWwgbGF5ZXJlZG9wcyA9IG1hcCAoSSAjIyBtYXAgb3BfY2xlYW4pIChs
YXllcm9wcyBvcHMpCiAgICBmdW4gaXBhcnNlciAoYSwgdCkgPSAoaWYgYSB0
aGVuIHBhcnNlX2xlZnRfaW5maXggZWxzZSBwYXJzZV9yaWdodF9pbmZpeCkg
dAogICAgdmFsIGlwYXJzZXJzID0gbWFwIGlwYXJzZXIgbGF5ZXJlZG9wcwog
IGluCiAgICBmbiBjb24gPT4gZm4gc3VicGFyc2VyID0+IGZvbGRsIChmbiAo
cCwgc3ApID0+IHAgY29uIHNwKSBzdWJwYXJzZXIgaXBhcnNlcnMKICBlbmQ7
CgpmdW4gcHBfZ2VuX2luZml4IGxlZnQgdG9rcyA6ICdhIGRlcyAtPiAnYSBp
cHJpbnRlciAtPiAnYSBpcHJpbnRlciA9CiAgbGV0CiAgICB2YWwgc3BjID0g
bWFwIG9wX3NwYWNlcyB0b2tzCiAgaW4KICAgIGZuIGRlc3QgPT4gZm4gcHBf
c3ViID0+CiAgICBsZXQKICAgICAgZnVuIGRlc3QnIHRtID0KICAgICAgICBj
YXNlIGRlc3QgdG0gb2YgTk9ORSA9PiBOT05FCiAgICAgICAgfCBTT01FICh0
LCBhLCBiKSA9PiBvbWFwIChwYWlyIChhLCBiKSkgKExpc3QuZmluZCAoZXF1
YWwgdCBvIHNuZCkgc3BjKQogICAgICBvcGVuIFBQCiAgICAgIGZ1biBwcF9n
byBwcCAodG1yIGFzICh0bSwgcikpID0KICAgICAgICBjYXNlIGRlc3QnIHRt
IG9mIE5PTkUgPT4gcHBfc3ViIHBwIHRtcgogICAgICAgIHwgU09NRSAoKGEs
IGIpLCAoKGxzcGMsIHJzcGMpLCB0b2spKQogICAgICAgICAgPT4gKChpZiBs
ZWZ0IHRoZW4gcHBfZ28gZWxzZSBwcF9zdWIpIHBwIChhLCB0cnVlKTsKICAg
ICAgICAgICAgICBsc3BjIHBwOyBhZGRfc3RyaW5nIHBwIHRvazsgcnNwYyBw
cDsKICAgICAgICAgICAgICAoaWYgbGVmdCB0aGVuIHBwX3N1YiBlbHNlIHBw
X2dvKSBwcCAoYiwgcikpCiAgICBpbgogICAgICBmbiBwcCA9PiBmbiB0bXIg
YXMgKHRtLCBfKSA9PgogICAgICBjYXNlIGRlc3QnIHRtIG9mIE5PTkUgPT4g
cHBfc3ViIHBwIHRtcgogICAgICB8IFNPTUUgXyA9PiAoYmVnaW5fYmxvY2sg
cHAgSU5DT05TSVNURU5UIDA7IHBwX2dvIHBwIHRtcjsgZW5kX2Jsb2NrIHBw
KQogICAgZW5kCiAgZW5kOwoKZnVuIHBwX2xlZnRfaW5maXggdG9rcyA9IHBw
X2dlbl9pbmZpeCB0cnVlIHRva3M7CgpmdW4gcHBfcmlnaHRfaW5maXggdG9r
cyA9IHBwX2dlbl9pbmZpeCBmYWxzZSB0b2tzOwoKZnVuIHBwX2luZml4ZXMg
b3BzID0KICBsZXQKICAgIHZhbCBsYXllcmVkb3BzID0gbGF5ZXJvcHMgb3Bz
CiAgICB2YWwgdG9rcyA9IExpc3QuY29uY2F0IChtYXAgKG1hcCBvcF9jbGVh
biBvIHNuZCkgbGF5ZXJlZG9wcykKICAgIGZ1biBpcHJpbnRlciAoYSwgdCkg
PSAoaWYgYSB0aGVuIHBwX2xlZnRfaW5maXggZWxzZSBwcF9yaWdodF9pbmZp
eCkgdAogICAgdmFsIGlwcmludGVycyA9IG1hcCBpcHJpbnRlciBsYXllcmVk
b3BzCiAgaW4KICAgIGZuIGRlc3QgPT4gZm4gcHBfc3ViID0+CiAgICBsZXQK
ICAgICAgZnVuIHByaW50ZXIgc3ViID0gZm9sZGwgKGZuIChpcCwgcCkgPT4g
aXAgZGVzdCBwKSBzdWIgaXByaW50ZXJzCiAgICAgIGZ1biBpc19vcCB0ID0g
Y2FzZSBkZXN0IHQgb2YgU09NRSAoeCwgXywgXykgPT4gbWVtIHggdG9rcyB8
IF8gPT4gZmFsc2UKICAgICAgb3BlbiBQUAogICAgICBmdW4gc3VicHIgcHAg
KHRtciBhcyAodG0sIF8pKSA9CiAgICAgICAgaWYgaXNfb3AgdG0gdGhlbgog
ICAgICAgICAgKGJlZ2luX2Jsb2NrIHBwIElOQ09OU0lTVEVOVCAxOyBhZGRf
c3RyaW5nIHBwICIoIjsKICAgICAgICAgICBwcmludGVyIHN1YnByIHBwICh0
bSwgZmFsc2UpOyBhZGRfc3RyaW5nIHBwICIpIjsgZW5kX2Jsb2NrIHBwKQog
ICAgICAgIGVsc2UgcHBfc3ViIHBwIHRtcgogICAgaW4KICAgICAgZm4gcHAg
PT4gZm4gdG1yID0+CiAgICAgIChiZWdpbl9ibG9jayBwcCBJTkNPTlNJU1RF
TlQgMDsgcHJpbnRlciBzdWJwciBwcCB0bXI7IGVuZF9ibG9jayBwcCkKICAg
IGVuZAogIGVuZDsKCigqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0g
KikKKCogTGV4aW5nLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKQooKiAtLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICopCgp2YWwgc3BhY2UgPSBDaGFy
LmlzU3BhY2U7CnZhbCBkaWdpdCA9IENoYXIuaXNEaWdpdDsKdmFsIGxvd2Vy
ID0gQ2hhci5pc0xvd2VyOwp2YWwgdXBwZXIgPSBDaGFyLmlzVXBwZXI7CnZh
bCBhbHBoYSA9IENoYXIuaXNBbHBoYTsKdmFsIGFscGhhbnVtID0gZm4gYyA9
PiBhbHBoYSBjIG9yZWxzZSBkaWdpdCBjIG9yZWxzZSBjID0gIyInIiBvcmVs
c2UgYyA9ICMiXyI7CnZhbCBzeW1ib2wgPSBDaGFyLmNvbnRhaW5zICI8Pj0t
KisvXFw/QHwhJCUmfiNeOiI7CnZhbCBwdW5jdCA9IENoYXIuY29udGFpbnMg
IigpW117fS4sOyI7CgooKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
ICopCigqIFF1b3RhdGlvbnMuICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKikKKCogLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqKQoKdHlwZSAnYSBxdW90YXRp
b24gPSAnYSBmcmFnIGxpc3Q7CgpmdW4gcXVvdGF0aW9uX3BhcnNlciBwYXJz
ZXIgcHBfYSA9CiAgbGV0IHZhbCBmID0gUFAucHBfdG9fc3RyaW5nICghTElO
RV9MRU5HVEgpIHBwX2EKICBpbiBwYXJzZXIgbyBmb2xkbCAoZm4gKFFVT1RF
IHEsIHMpID0+IHMgXiBxIHwgKEFOVElRVU9URSBhLCBzKSA9PiBzIF4gZiBh
KSAiIgogIGVuZDsKCmVuZAooKiNsaW5lIDAuMCAiZm9sL1Rlcm0xLnNpZyIq
KQooKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICopCigqIEJBU0lD
IEZJUlNULU9SREVSIExPR0lDIE1BTklQVUxBVElPTlMgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgKikKKCogQ3JlYXRlZCBieSBKb2Ug
SHVyZCwgU2VwdGVtYmVyIDIwMDEgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAqKQooKiBQYXJ0bHkgcG9ydGVkIGZyb20gdGhlIENB
TUwtTGlnaHQgY29kZSBhY2NvbXBhbnlpbmcgSm9obiBIYXJyaXNvbidzIGJv
b2sgICopCigqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKikKCnNp
Z25hdHVyZSBUZXJtMSA9CnNpZwoKdHlwZSAnYSBwcCAgICAgICAgICAgPSAn
YSBVc2VmdWwucHAKdHlwZSAoJ2EsICdiKSBtYXBsZXQgPSAoJ2EsICdiKSBV
c2VmdWwubWFwbGV0CnR5cGUgJ2EgcXVvdGF0aW9uICAgID0gJ2EgUGFyc2Vy
LnF1b3RhdGlvbgp0eXBlIGluZml4aXRpZXMgICAgICA9IFBhcnNlci5pbmZp
eGl0aWVzCgooKiBEYXRhdHlwZXMgZm9yIHRlcm1zIGFuZCBmb3JtdWxhcyAq
KQpkYXRhdHlwZSB0ZXJtID0KICBWYXIgb2Ygc3RyaW5nCnwgRm4gIG9mIHN0
cmluZyAqIHRlcm0gbGlzdAoKZGF0YXR5cGUgZm9ybXVsYSA9CiAgVHJ1ZQp8
IEZhbHNlCnwgQXRvbSAgIG9mIHRlcm0KfCBOb3QgICAgb2YgZm9ybXVsYQp8
IEFuZCAgICBvZiBmb3JtdWxhICogZm9ybXVsYQp8IE9yICAgICBvZiBmb3Jt
dWxhICogZm9ybXVsYQp8IEltcCAgICBvZiBmb3JtdWxhICogZm9ybXVsYQp8
IElmZiAgICBvZiBmb3JtdWxhICogZm9ybXVsYQp8IEZvcmFsbCBvZiBzdHJp
bmcgKiBmb3JtdWxhCnwgRXhpc3RzIG9mIHN0cmluZyAqIGZvcm11bGEKCigq
IENvbnRydWN0b3JzIGFuZCBkZXN0cnVjdG9ycyAqKQp2YWwgZGVzdF92YXIg
ICAgICAgIDogdGVybSAtPiBzdHJpbmcKdmFsIGlzX3ZhciAgICAgICAgICA6
IHRlcm0gLT4gYm9vbAoKdmFsIGRlc3RfZm4gICAgICAgICA6IHRlcm0gLT4g
c3RyaW5nICogdGVybSBsaXN0CnZhbCBpc19mbiAgICAgICAgICAgOiB0ZXJt
IC0+IGJvb2wKdmFsIGZuX25hbWUgICAgICAgICA6IHRlcm0gLT4gc3RyaW5n
CnZhbCBmbl9hcmdzICAgICAgICAgOiB0ZXJtIC0+IHRlcm0gbGlzdAp2YWwg
Zm5fYXJpdHkgICAgICAgIDogdGVybSAtPiBpbnQKdmFsIGZuX2Z1bmN0aW9u
ICAgICA6IHRlcm0gLT4gc3RyaW5nICogaW50Cgp2YWwgbWtfY29uc3QgICAg
ICAgIDogc3RyaW5nIC0+IHRlcm0KdmFsIGRlc3RfY29uc3QgICAgICA6IHRl
cm0gLT4gc3RyaW5nCnZhbCBpc19jb25zdCAgICAgICAgOiB0ZXJtIC0+IGJv
b2wKCnZhbCBta19iaW5vcCAgICAgICAgOiBzdHJpbmcgLT4gdGVybSAqIHRl
cm0gLT4gdGVybQp2YWwgZGVzdF9iaW5vcCAgICAgIDogc3RyaW5nIC0+IHRl
cm0gLT4gdGVybSAqIHRlcm0KdmFsIGlzX2Jpbm9wICAgICAgICA6IHN0cmlu
ZyAtPiB0ZXJtIC0+IGJvb2wKCnZhbCBkZXN0X2F0b20gICAgICAgOiBmb3Jt
dWxhIC0+IHRlcm0KdmFsIGlzX2F0b20gICAgICAgICA6IGZvcm11bGEgLT4g
Ym9vbAoKdmFsIGxpc3RfbWtfY29uaiAgICA6IGZvcm11bGEgbGlzdCAtPiBm
b3JtdWxhCnZhbCBzdHJpcF9jb25qICAgICAgOiBmb3JtdWxhIC0+IGZvcm11
bGEgbGlzdAp2YWwgZmxhdHRlbl9jb25qICAgIDogZm9ybXVsYSAtPiBmb3Jt
dWxhIGxpc3QKCnZhbCBsaXN0X21rX2Rpc2ogICAgOiBmb3JtdWxhIGxpc3Qg
LT4gZm9ybXVsYQp2YWwgc3RyaXBfZGlzaiAgICAgIDogZm9ybXVsYSAtPiBm
b3JtdWxhIGxpc3QKdmFsIGZsYXR0ZW5fZGlzaiAgICA6IGZvcm11bGEgLT4g
Zm9ybXVsYSBsaXN0Cgp2YWwgbGlzdF9ta19mb3JhbGwgIDogc3RyaW5nIGxp
c3QgKiBmb3JtdWxhIC0+IGZvcm11bGEKdmFsIHN0cmlwX2ZvcmFsbCAgICA6
IGZvcm11bGEgLT4gc3RyaW5nIGxpc3QgKiBmb3JtdWxhCgp2YWwgbGlzdF9t
a19leGlzdHMgIDogc3RyaW5nIGxpc3QgKiBmb3JtdWxhIC0+IGZvcm11bGEK
dmFsIHN0cmlwX2V4aXN0cyAgICA6IGZvcm11bGEgLT4gc3RyaW5nIGxpc3Qg
KiBmb3JtdWxhCgooKiBOZXcgdmFyaWFibGVzICopCnZhbCBuZXdfdmFyICA6
IHVuaXQgLT4gdGVybQp2YWwgbmV3X3ZhcnMgOiBpbnQgLT4gdGVybSBsaXN0
CgooKiBTaXplcyBvZiB0ZXJtcyBhbmQgZm9ybXVsYXMgKikKdmFsIHRlcm1f
c2l6ZSAgICA6IHRlcm0gLT4gaW50CnZhbCBmb3JtdWxhX3NpemUgOiBmb3Jt
dWxhIC0+IGludAoKKCogVG90YWwgY29tcGFyaXNvbiBmdW5jdGlvbnMgZm9y
IHRlcm1zIGFuZCBmb3JtdWxhcyAqKQp2YWwgdGVybV9jb21wYXJlICAgIDog
dGVybSAqIHRlcm0gLT4gb3JkZXIKdmFsIGZvcm11bGFfY29tcGFyZSA6IGZv
cm11bGEgKiBmb3JtdWxhIC0+IG9yZGVyCgooKiBPcGVyYXRpb25zIG9uIGxp
dGVyYWxzICopCnZhbCBta19saXRlcmFsICAgOiBib29sICogZm9ybXVsYSAt
PiBmb3JtdWxhCnZhbCBkZXN0X2xpdGVyYWwgOiBmb3JtdWxhIC0+IGJvb2wg
KiBmb3JtdWxhCnZhbCBpc19saXRlcmFsICAgOiBmb3JtdWxhIC0+IGJvb2wK
dmFsIGxpdGVyYWxfYXRvbSA6IGZvcm11bGEgLT4gZm9ybXVsYQoKKCogT3Bl
cmF0aW9ucyBvbiBmb3JtdWxhIG5lZ2F0aW9ucyAqKQp2YWwgbmVnYXRpdmUg
OiBmb3JtdWxhIC0+IGJvb2wKdmFsIHBvc2l0aXZlIDogZm9ybXVsYSAtPiBi
b29sCnZhbCBuZWdhdGUgICA6IGZvcm11bGEgLT4gZm9ybXVsYQoKKCogRnVu
Y3Rpb25zIGFuZCByZWxhdGlvbnMgaW4gYSBmb3JtdWxhICopCnZhbCBmdW5j
dGlvbnMgICAgICA6IGZvcm11bGEgLT4gKHN0cmluZyAqIGludCkgbGlzdAp2
YWwgZnVuY3Rpb25fbmFtZXMgOiBmb3JtdWxhIC0+IHN0cmluZyBsaXN0CnZh
bCByZWxhdGlvbnMgICAgICA6IGZvcm11bGEgLT4gKHN0cmluZyAqIGludCkg
bGlzdAp2YWwgcmVsYXRpb25fbmFtZXMgOiBmb3JtdWxhIC0+IHN0cmluZyBs
aXN0CgooKiBUaGUgZXF1YWxpdHkgcmVsYXRpb24gaGFzIGEgc3BlY2lhbCBz
dGF0dXMgKikKdmFsIGVxX3JlbCAgICAgICAgICA6IHN0cmluZyAqIGludAp2
YWwgbWtfZXEgICAgICAgICAgIDogdGVybSAqIHRlcm0gLT4gZm9ybXVsYQp2
YWwgZGVzdF9lcSAgICAgICAgIDogZm9ybXVsYSAtPiB0ZXJtICogdGVybQp2
YWwgaXNfZXEgICAgICAgICAgIDogZm9ybXVsYSAtPiBib29sCnZhbCBsaHMg
ICAgICAgICAgICAgOiBmb3JtdWxhIC0+IHRlcm0KdmFsIHJocyAgICAgICAg
ICAgICA6IGZvcm11bGEgLT4gdGVybQp2YWwgZXFfb2NjdXJzICAgICAgIDog
Zm9ybXVsYSAtPiBib29sCnZhbCByZWxhdGlvbnNfbm9fZXEgOiBmb3JtdWxh
IC0+IChzdHJpbmcgKiBpbnQpIGxpc3QKCigqIEZyZWUgdmFyaWFibGVzICop
CnZhbCBGVlQgICAgICAgIDogdGVybSAtPiBzdHJpbmcgbGlzdAp2YWwgRlYg
ICAgICAgICA6IGZvcm11bGEgLT4gc3RyaW5nIGxpc3QKdmFsIEZWTCAgICAg
ICAgOiBmb3JtdWxhIGxpc3QgLT4gc3RyaW5nIGxpc3QKdmFsIHNwZWNpYWxp
emUgOiBmb3JtdWxhIC0+IGZvcm11bGEKdmFsIGdlbmVyYWxpemUgOiBmb3Jt
dWxhIC0+IGZvcm11bGEKCigqIFN1YnRlcm1zICopCnZhbCBzdWJ0ZXJtICAg
ICAgICAgOiBpbnQgbGlzdCAtPiB0ZXJtIC0+IHRlcm0KdmFsIHJld3JpdGUg
ICAgICAgICA6IChpbnQgbGlzdCwgdGVybSkgbWFwbGV0IC0+IHRlcm0gLT4g
dGVybQp2YWwgbGl0ZXJhbF9zdWJ0ZXJtIDogaW50IGxpc3QgLT4gZm9ybXVs
YSAtPiB0ZXJtCnZhbCBsaXRlcmFsX3Jld3JpdGUgOiAoaW50IGxpc3QsIHRl
cm0pIG1hcGxldCAtPiBmb3JtdWxhIC0+IGZvcm11bGEKCigqIFRoZSBLbnV0
aC1CZW5kaXggb3JkZXJpbmcgKikKdHlwZSBXZWlnaHQgPSBzdHJpbmcgKiBp
bnQgLT4gaW50CnR5cGUgUHJlYyAgID0gKHN0cmluZyAqIGludCkgKiAoc3Ry
aW5nICogaW50KSAtPiBvcmRlcgp2YWwga2Jfd2VpZ2h0ICA6IFdlaWdodCAt
PiB0ZXJtIC0+IGludCAqIHN0cmluZyBNdWx0aXNldC5tc2V0CnZhbCBrYl9j
b21wYXJlIDogV2VpZ2h0IC0+IFByZWMgLT4gdGVybSAqIHRlcm0gLT4gb3Jk
ZXIgb3B0aW9uCgooKiBBIGRhdGF0eXBlIHRvIGFudGlxdW90ZSBib3RoIHRl
cm1zIGFuZCBmb3JtdWxhcyAqKQpkYXRhdHlwZSB0aGluZyA9IFRlcm0gb2Yg
dGVybSB8IEZvcm11bGEgb2YgZm9ybXVsYTsKCigqIE9wZXJhdG9ycyBwYXJz
ZWQgYW5kIHByaW50ZWQgaW5maXggKikKdmFsIGluZml4ZXMgOiBpbmZpeGl0
aWVzIHJlZgoKKCogRGVjaWRpbmcgd2hldGhlciBhIHN0cmluZyBkZW5vdGVz
IGEgdmFyaWFibGUgb3IgY29uc3RhbnQgKikKdmFsIHZhcl9zdHJpbmcgOiAo
c3RyaW5nIC0+IGJvb2wpIHJlZgoKKCogUGFyc2luZyAqKQp2YWwgc3RyaW5n
X3RvX3Rlcm0nICAgIDogaW5maXhpdGllcyAtPiBzdHJpbmcgLT4gdGVybSAg
KCogcHVyZWx5IGZ1bmN0aW9uYWwgKikKdmFsIHN0cmluZ190b19mb3JtdWxh
JyA6IGluZml4aXRpZXMgLT4gc3RyaW5nIC0+IGZvcm11bGEKdmFsIHBhcnNl
X3Rlcm0nICAgICAgICA6IGluZml4aXRpZXMgLT4gdGhpbmcgcXVvdGF0aW9u
IC0+IHRlcm0KdmFsIHBhcnNlX2Zvcm11bGEnICAgICA6IGluZml4aXRpZXMg
LT4gdGhpbmcgcXVvdGF0aW9uIC0+IGZvcm11bGEKdmFsIHN0cmluZ190b190
ZXJtICAgICA6IHN0cmluZyAtPiB0ZXJtICAgICAgICAgICAgICAgICgqIHVz
aW5nICFpbmZpeGVzICopCnZhbCBzdHJpbmdfdG9fZm9ybXVsYSAgOiBzdHJp
bmcgLT4gZm9ybXVsYQp2YWwgcGFyc2VfdGVybSAgICAgICAgIDogdGhpbmcg
cXVvdGF0aW9uIC0+IHRlcm0KdmFsIHBhcnNlX2Zvcm11bGEgICAgICA6IHRo
aW5nIHF1b3RhdGlvbiAtPiBmb3JtdWxhCgooKiBQcmV0dHktcHJpbnRpbmcg
KikKdmFsIHBwX3Rlcm0nICAgICAgICAgICA6IGluZml4aXRpZXMgLT4gdGVy
bSBwcCAgICAgICAgICgqIHB1cmVseSBmdW5jdGlvbmFsICopCnZhbCBwcF9m
b3JtdWxhJyAgICAgICAgOiBpbmZpeGl0aWVzIC0+IGZvcm11bGEgcHAKdmFs
IHRlcm1fdG9fc3RyaW5nJyAgICA6IGluZml4aXRpZXMgLT4gaW50IC0+IHRl
cm0gLT4gc3RyaW5nCnZhbCBmb3JtdWxhX3RvX3N0cmluZycgOiBpbmZpeGl0
aWVzIC0+IGludCAtPiBmb3JtdWxhIC0+IHN0cmluZwp2YWwgcHBfdGVybSAg
ICAgICAgICAgIDogdGVybSBwcCAgICAgICAgICAgICAgICAgICAgICAgKCog
dXNpbmcgIWluZml4ZXMgICAqKQp2YWwgcHBfZm9ybXVsYSAgICAgICAgIDog
Zm9ybXVsYSBwcCAgICAgICAgICAgICAgICAgICAgKCogYW5kICFMSU5FX0xF
TkdUSCAqKQp2YWwgdGVybV90b19zdHJpbmcgICAgIDogdGVybSAtPiBzdHJp
bmcKdmFsIGZvcm11bGFfdG9fc3RyaW5nICA6IGZvcm11bGEgLT4gc3RyaW5n
CgplbmQKKCojbGluZSAwLjAgImZvbC9UZXJtMS5zbWwiKikKKCogPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PSAqKQooKiBCQVNJQyBGSVJTVC1PUkRF
UiBMT0dJQyBNQU5JUFVMQVRJT05TICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICopCigqIENyZWF0ZWQgYnkgSm9lIEh1cmQsIFNlcHRl
bWJlciAyMDAxICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgKikKKCogUGFydGx5IHBvcnRlZCBmcm9tIHRoZSBDQU1MLUxpZ2h0IGNv
ZGUgYWNjb21wYW55aW5nIEpvaG4gSGFycmlzb24ncyBib29rICAqKQooKiA9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09ICopCgooKgphcHAgbG9hZCBb
IlVzZWZ1bCIsICJTdHJlYW0iLCAiUGFyc2VyIiwgIk1vc21sIiwgIkJpbmFy
eW1hcCJdOwoqKQoKKCoKKikKc3RydWN0dXJlIFRlcm0xIDo+IFRlcm0xID0K
c3RydWN0CgpvcGVuIFBhcnNlciBVc2VmdWw7CgppbmZpeHIgOCArKzsKaW5m
aXhyIDcgPj47CmluZml4ciA2IHx8OwppbmZpeHIgfC0+IDo6PiBAPiBvbyAj
IzsKCigqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKikKKCogRGF0
YXR5cGVzIGZvciBzdG9yaW5nIGZpcnN0LW9yZGVyIHRlcm1zIGFuZCBmb3Jt
dWxhcy4gICAgICAgICAgICAgICAgICAgICAqKQooKiAtLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tICopCgpkYXRhdHlwZSB0ZXJtID0KICBWYXIgb2Yg
c3RyaW5nCnwgRm4gIG9mIHN0cmluZyAqIHRlcm0gbGlzdDsKCmRhdGF0eXBl
IGZvcm11bGEgPQogIFRydWUKfCBGYWxzZQp8IEF0b20gICBvZiB0ZXJtCnwg
Tm90ICAgIG9mIGZvcm11bGEKfCBBbmQgICAgb2YgZm9ybXVsYSAqIGZvcm11
bGEKfCBPciAgICAgb2YgZm9ybXVsYSAqIGZvcm11bGEKfCBJbXAgICAgb2Yg
Zm9ybXVsYSAqIGZvcm11bGEKfCBJZmYgICAgb2YgZm9ybXVsYSAqIGZvcm11
bGEKfCBGb3JhbGwgb2Ygc3RyaW5nICogZm9ybXVsYQp8IEV4aXN0cyBvZiBz
dHJpbmcgKiBmb3JtdWxhOwoKKCogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLSAqKQooKiBDb25zdHJ1Y3RvcnMgYW5kIGRlc3RydWN0b3JzLiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopCigq
IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKikKCigqIFZhcmlhYmxl
cyAqKQoKZnVuIGRlc3RfdmFyIChWYXIgdikgPSB2CiAgfCBkZXN0X3ZhciAo
Rm4gXykgPSByYWlzZSBFUlIgImRlc3RfdmFyIiAiIjsKCnZhbCBpc192YXIg
PSBjYW4gZGVzdF92YXI7CgooKiBGdW5jdGlvbnMgKikKCmZ1biBkZXN0X2Zu
IChGbiBmKSA9IGYKICB8IGRlc3RfZm4gKFZhciBfKSA9IHJhaXNlIEVSUiAi
ZGVzdF9mbiIgIiI7Cgp2YWwgaXNfZm4gPSBjYW4gZGVzdF9mbjsKCnZhbCBm
bl9uYW1lID0gZnN0IG8gZGVzdF9mbjsKCnZhbCBmbl9hcmdzID0gc25kIG8g
ZGVzdF9mbjsKCnZhbCBmbl9hcml0eSA9IGxlbmd0aCBvIGZuX2FyZ3M7Cgpm
dW4gZm5fZnVuY3Rpb24gdG0gPSAoZm5fbmFtZSB0bSwgZm5fYXJpdHkgdG0p
OwoKKCogQ29uc3RhbnRzICopCgpmdW4gbWtfY29uc3QgYyA9IChGbiAoYywg
W10pKTsKCmZ1biBkZXN0X2NvbnN0IChGbiAoYywgW10pKSA9IGMKICB8IGRl
c3RfY29uc3QgXyA9IHJhaXNlIEVSUiAiZGVzdF9jb25zdCIgIiI7Cgp2YWwg
aXNfY29uc3QgPSBjYW4gZGVzdF9jb25zdDsKCigqIEJpbmFyeSBmdW5jdGlv
bnMgKikKCmZ1biBta19iaW5vcCBmIChhLCBiKSA9IEZuIChmLCBbYSwgYl0p
OwoKZnVuIGRlc3RfYmlub3AgZiAoRm4gKHgsIFthLCBiXSkpID0KICBpZiB4
ID0gZiB0aGVuIChhLCBiKSBlbHNlIHJhaXNlIEVSUiAiZGVzdF9iaW5vcCIg
Indyb25nIGJpbm9wIgogIHwgZGVzdF9iaW5vcCBfIF8gPSByYWlzZSBFUlIg
ImRlc3RfYmlub3AiICJub3QgYSBiaW5vcCI7CgpmdW4gaXNfYmlub3AgZiA9
IGNhbiAoZGVzdF9iaW5vcCBmKTsKCigqIEF0b21zICopCgpmdW4gZGVzdF9h
dG9tIChBdG9tIGEpID0gYQogIHwgZGVzdF9hdG9tIF8gPSByYWlzZSBFUlIg
ImRlc3RfYXRvbSIgIiI7Cgp2YWwgaXNfYXRvbSA9IGNhbiBkZXN0X2F0b207
CgooKiBDb25qdW5jdGlvbnMgKikKCmZ1biBsaXN0X21rX2NvbmogbCA9IChj
YXNlIHJldiBsIG9mIFtdID0+IFRydWUgfCBoIDo6IHQgPT4gZm9sZGwgQW5k
IGggdCk7Cgpsb2NhbAogIGZ1biBjb25qIGNzIChBbmQgKGEsIGIpKSA9IGNv
bmogKGEgOjogY3MpIGIKICAgIHwgY29uaiBjcyBmbSA9IHJldiAoZm0gOjog
Y3MpOwppbgogIGZ1biBzdHJpcF9jb25qIFRydWUgPSBbXQogICAgfCBzdHJp
cF9jb25qIGZtID0gY29uaiBbXSBmbTsKZW5kOwoKdmFsIGZsYXR0ZW5fY29u
aiA9CiAgbGV0CiAgICBmdW4gZmxhdCBhY2MgW10gICAgICAgICAgICAgICAg
ICA9IGFjYwogICAgICB8IGZsYXQgYWNjIChBbmQgKHAsIHEpIDo6IGZtcykg
PSBmbGF0IGFjYyAocSA6OiBwIDo6IGZtcykKICAgICAgfCBmbGF0IGFjYyAo
VHJ1ZSAgICAgICA6OiBmbXMpID0gZmxhdCBhY2MgZm1zCiAgICAgIHwgZmxh
dCBhY2MgKGZtICAgICAgICAgOjogZm1zKSA9IGZsYXQgKGZtIDo6IGFjYykg
Zm1zCiAgaW4KICAgIGZuIGZtID0+IGZsYXQgW10gW2ZtXQogIGVuZDsKCigq
IERpc2p1bmN0aW9ucyAqKQoKZnVuIGxpc3RfbWtfZGlzaiBsID0gKGNhc2Ug
cmV2IGwgb2YgW10gPT4gRmFsc2UgfCBoIDo6IHQgPT4gZm9sZGwgT3IgaCB0
KTsKCmxvY2FsCiAgZnVuIGRpc2ogY3MgKE9yIChhLCBiKSkgPSBkaXNqIChh
IDo6IGNzKSBiCiAgICB8IGRpc2ogY3MgZm0gPSByZXYgKGZtIDo6IGNzKTsK
aW4KICBmdW4gc3RyaXBfZGlzaiBGYWxzZSA9IFtdCiAgICB8IHN0cmlwX2Rp
c2ogZm0gPSBkaXNqIFtdIGZtOwplbmQ7Cgp2YWwgZmxhdHRlbl9kaXNqID0K
ICBsZXQKICAgIGZ1biBmbGF0IGFjYyBbXSAgICAgICAgICAgICAgICAgPSBh
Y2MKICAgICAgfCBmbGF0IGFjYyAoT3IgKHAsIHEpIDo6IGZtcykgPSBmbGF0
IGFjYyAocSA6OiBwIDo6IGZtcykKICAgICAgfCBmbGF0IGFjYyAoRmFsc2Ug
ICAgIDo6IGZtcykgPSBmbGF0IGFjYyBmbXMKICAgICAgfCBmbGF0IGFjYyAo
Zm0gICAgICAgIDo6IGZtcykgPSBmbGF0IChmbSA6OiBhY2MpIGZtcwogIGlu
CiAgICBmbiBmbSA9PiBmbGF0IFtdIFtmbV0KICBlbmQ7CgooKiBVbml2ZXJz
YWwgcXVhbnRpZmllcnMgKikKCmZ1biBsaXN0X21rX2ZvcmFsbCAoW10sIGJv
ZHkpID0gYm9keQogIHwgbGlzdF9ta19mb3JhbGwgKHYgOjogdnMsIGJvZHkp
ID0gRm9yYWxsICh2LCBsaXN0X21rX2ZvcmFsbCAodnMsIGJvZHkpKTsKCmxv
Y2FsCiAgZnVuIGRlc3QgdnMgKEZvcmFsbCAodiwgYikpID0gZGVzdCAodiA6
OiB2cykgYgogICAgfCBkZXN0IHZzIHRtID0gKHJldiB2cywgdG0pOwppbgog
IHZhbCBzdHJpcF9mb3JhbGwgPSBkZXN0IFtdOwplbmQ7CgooKiBFeGlzdGVu
dGlhbCBxdWFudGlmaWVycyAqKQoKZnVuIGxpc3RfbWtfZXhpc3RzIChbXSwg
Ym9keSkgPSBib2R5CiAgfCBsaXN0X21rX2V4aXN0cyAodiA6OiB2cywgYm9k
eSkgPSBFeGlzdHMgKHYsIGxpc3RfbWtfZXhpc3RzICh2cywgYm9keSkpOwoK
bG9jYWwKICBmdW4gZGVzdCB2cyAoRXhpc3RzICh2LCBiKSkgPSBkZXN0ICh2
IDo6IHZzKSBiCiAgICB8IGRlc3QgdnMgdG0gPSAocmV2IHZzLCB0bSk7Cmlu
CiAgdmFsIHN0cmlwX2V4aXN0cyA9IGRlc3QgW107CmVuZDsKCigqIC0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKikKKCogQSBkYXRhdHlwZSB0byBh
bnRpcXVvdGUgYm90aCB0ZXJtcyBhbmQgZm9ybXVsYXMuICAgICAgICAgICAg
ICAgICAgICAgICAgICAqKQooKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tICopCgpkYXRhdHlwZSB0aGluZyA9IFRlcm0gb2YgdGVybSB8IEZvcm11
bGEgb2YgZm9ybXVsYTsKCigqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0gKikKKCogQnVpbHQtaW4gaW5maXggb3BlcmF0b3JzIGFuZCByZXNlcnZl
ZCBzeW1ib2xzLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKQooKiAt
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICopCgp2YWwgaW5maXhlcyA6
IGluZml4aXRpZXMgcmVmID0gcmVmCiAgWygqIE1MIHN0eWxlICopCiAgIHt0
b2sgPSAiIC8gIiwgICBwcmVjID0gNywgIGxlZnRfYXNzb2MgPSB0cnVlfSwK
ICAge3RvayA9ICIgZGl2ICIsIHByZWMgPSA3LCAgbGVmdF9hc3NvYyA9IHRy
dWV9LAogICB7dG9rID0gIiBtb2QgIiwgcHJlYyA9IDcsICBsZWZ0X2Fzc29j
ID0gdHJ1ZX0sCiAgIHt0b2sgPSAiICogIiwgICBwcmVjID0gNywgIGxlZnRf
YXNzb2MgPSB0cnVlfSwKICAge3RvayA9ICIgKyAiLCAgIHByZWMgPSA2LCAg
bGVmdF9hc3NvYyA9IHRydWV9LAogICB7dG9rID0gIiAtICIsICAgcHJlYyA9
IDYsICBsZWZ0X2Fzc29jID0gdHJ1ZX0sCiAgIHt0b2sgPSAiIF4gIiwgICBw
cmVjID0gNiwgIGxlZnRfYXNzb2MgPSB0cnVlfSwKICAge3RvayA9ICIgQCAi
LCAgIHByZWMgPSA1LCAgbGVmdF9hc3NvYyA9IGZhbHNlfSwKICAge3RvayA9
ICIgOjogIiwgIHByZWMgPSA1LCAgbGVmdF9hc3NvYyA9IGZhbHNlfSwKICAg
e3RvayA9ICIgPSAiLCAgIHByZWMgPSA0LCAgbGVmdF9hc3NvYyA9IHRydWV9
LCAgICAoKiBtYXkgYmUgaW50ZXJwcmV0ZWQgKikKICAge3RvayA9ICIgPT0g
IiwgIHByZWMgPSA0LCAgbGVmdF9hc3NvYyA9IHRydWV9LCAgICAoKiB3b24n
dCBiZSBpbnRlcnByZXRlZCAqKQogICB7dG9rID0gIiA8PiAiLCAgcHJlYyA9
IDQsICBsZWZ0X2Fzc29jID0gdHJ1ZX0sCiAgIHt0b2sgPSAiIDw9ICIsICBw
cmVjID0gNCwgIGxlZnRfYXNzb2MgPSB0cnVlfSwKICAge3RvayA9ICIgPCAi
LCAgIHByZWMgPSA0LCAgbGVmdF9hc3NvYyA9IHRydWV9LAogICB7dG9rID0g
IiA+PSAiLCAgcHJlYyA9IDQsICBsZWZ0X2Fzc29jID0gdHJ1ZX0sCiAgIHt0
b2sgPSAiID4gIiwgICBwcmVjID0gNCwgIGxlZnRfYXNzb2MgPSB0cnVlfSwK
ICAge3RvayA9ICIgbyAiLCAgIHByZWMgPSA4LCAgbGVmdF9hc3NvYyA9IHRy
dWV9LCAgICAoKiBNTCBwcmVjID0gMyAqKQogICAoKiBIT0wgc3R5bGUgKikK
ICAge3RvayA9ICIgJSAiLCAgIHByZWMgPSA5LCAgbGVmdF9hc3NvYyA9IHRy
dWV9LCAgICAoKiBmdW5jdGlvbiBhcHBsaWNhdGlvbiAqKQogICB7dG9rID0g
IiAtPiAiLCAgcHJlYyA9IDIsICBsZWZ0X2Fzc29jID0gZmFsc2V9LCAgICgq
IEhPTCB0eSBwcmVjID0gNTAgKikKICAge3RvayA9ICIgOiAiLCAgIHByZWMg
PSAxLCAgbGVmdF9hc3NvYyA9IGZhbHNlfSwgICAoKiBub3QgaW4gSE9MIGdy
YW1tYXJzICopCiAgIHt0b2sgPSAgIiwgIiwgICBwcmVjID0gMCwgIGxlZnRf
YXNzb2MgPSBmYWxzZX0sICAgKCogSE9MIHRtIHByZWMgPSA1MCAqKQogICAo
KiBDb252ZW5pZW50IGFsdGVybmF0aXZlIHN5bWJvbHMgKikKICAge3RvayA9
ICIgKiogIiwgIHByZWMgPSA3LCAgbGVmdF9hc3NvYyA9IHRydWV9LAogICB7
dG9rID0gIiArKyAiLCAgcHJlYyA9IDYsICBsZWZ0X2Fzc29jID0gdHJ1ZX0s
CiAgIHt0b2sgPSAiIC0tICIsICBwcmVjID0gNiwgIGxlZnRfYXNzb2MgPSB0
cnVlfV07Cgp2YWwgY29ubmVjdGl2ZXMgPQogIFt7dG9rID0gIiAvXFwgIiwg
cHJlYyA9IH4xLCBsZWZ0X2Fzc29jID0gZmFsc2V9LAogICB7dG9rID0gIiBc
XC8gIiwgcHJlYyA9IH4yLCBsZWZ0X2Fzc29jID0gZmFsc2V9LAogICB7dG9r
ID0gIiA9PT4gIiwgcHJlYyA9IH4zLCBsZWZ0X2Fzc29jID0gZmFsc2V9LAog
ICB7dG9rID0gIiA8PT4gIiwgcHJlYyA9IH40LCBsZWZ0X2Fzc29jID0gZmFs
c2V9XTsKCnZhbCByZXNlcnZlZCA9IFsiISIsICI/IiwgIigiLCAiKSIsICIu
IiwgIn4iXTsKCigqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKikK
KCogRGVjaWRpbmcgd2hldGhlciBhIHN0cmluZyBkZW5vdGVzIGEgdmFyaWFi
bGUgb3IgY29uc3RhbnQuICAgICAgICAgICAgICAgICAqKQooKiAtLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tICopCgp2YWwgdmFyX3N0cmluZyA9CiAg
cmVmIChDIG1lbSBbIyJfIiwjInYiLCMidyIsIyJ4IiwjInkiLCMieiJdIG8g
Q2hhci50b0xvd2VyIG8gaGQgbyBleHBsb2RlKTsKCigqIC0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0gKikKKCogUHJldHR5LXByaW50aW5nLiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAqKQooKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICop
CgooKiBQdXJlbHkgZnVuY3Rpb25hbCBwcmV0dHktcHJpbnRpbmcgKikKCnZh
bCBwcF92bmFtZSA9CiAgcHBfbWFwIChmbiBzID0+IGlmICF2YXJfc3RyaW5n
IHMgdGhlbiBzIGVsc2UgInZhci0+IiBeIHMgXiAiPC12YXIiKSBwcF9zdHJp
bmc7Cgp2YWwgcHBfY25hbWUgPQogIHBwX21hcCAoZm4gcyA9PiBpZiAhdmFy
X3N0cmluZyBzIHRoZW4gImNvbnN0LT4iIF4gcyBeICI8LWNvbnN0IiBlbHNl
IHMpCiAgcHBfc3RyaW5nOwoKdmFsIHBwX2ZuYW1lID0KICBwcF9tYXAgKGZu
IHMgPT4gaWYgIXZhcl9zdHJpbmcgcyB0aGVuICJmbi0+IiBeIHMgXiAiPC1m
biIgZWxzZSBzKSBwcF9zdHJpbmc7CgpmdW4gcHBfdGVybScgb3BzID0KICBs
ZXQKICAgIHZhbCBvcHMgPSBvcHMgQCBjb25uZWN0aXZlcwogICAgdmFsIGlw
cmludGVyID0gcHBfaW5maXhlcyBvcHMKICAgIHZhbCBpdG9rcyA9IG9wdG9r
cyBvcHMKICAgIGZ1biBwcF91bmluZml4IHBwX3MgcHAgcyA9CiAgICAgIGlm
IG1lbSBzIGl0b2tzIHRoZW4gUFAuYWRkX3N0cmluZyBwcCAoIigiIF4gcyBe
ICIpIikgZWxzZSBwcF9zIHBwIHMKICAgIGZ1biBpZGVzdCAoRm4gKGYsIFth
LCBiXSkpID0gU09NRSAoZiwgYSwgYikgfCBpZGVzdCBfID0gTk9ORQogICAg
ZnVuIGlzX29wIHQgPSBjYXNlIGlkZXN0IHQgb2YgU09NRSAoZiwgXywgXykg
PT4gbWVtIGYgaXRva3MgfCBOT05FID0+IGZhbHNlCiAgICBmdW4gaXNfcSAo
Rm4gKCIhIiwgXykpID0gdHJ1ZSB8IGlzX3EgKEZuICgiPyIsIF8pKSA9IHRy
dWUgfCBpc19xIF8gPSBmYWxzZQogICAgZnVuIG5lZ3MgKEZuICgifiIsIFth
XSkpID0gKGN1cnJ5IG9wKyAxICMjIEkpIChuZWdzIGEpIHwgbmVncyB0bSA9
ICgwLCB0bSkKICAgIGZ1biBiaW5kcyBzICh0bSBhcyBGbiAobiwgW1ZhciB2
LCBiXSkpID0KICAgICAgaWYgcyA9IG4gdGhlbiAoY29ucyB2ICMjIEkpIChi
aW5kcyBzIGIpIGVsc2UgKFtdLCB0bSkKICAgICAgfCBiaW5kcyBfIHRtID0g
KFtdLCB0bSkKICAgIG9wZW4gUFAKICAgIGZ1biBiYXNpYyBwcCAoVmFyIHYp
ID0gcHBfdm5hbWUgcHAgdgogICAgICB8IGJhc2ljIHBwIChGbiAoYywgW10p
KSA9IHBwX3VuaW5maXggcHBfY25hbWUgcHAgYwogICAgICB8IGJhc2ljIHBw
IChGbiAoZiwgYSkpID0KICAgICAgKHBwX3VuaW5maXggcHBfZm5hbWUgcHAg
ZjsKICAgICAgIGFwcCAoZm4geCA9PiAoYWRkX2JyZWFrIHBwICgxLCAwKTsg
YXJndW1lbnQgcHAgeCkpIGEpCiAgICBhbmQgYXJndW1lbnQgcHAgdG0gPQog
ICAgICBpZiBpc192YXIgdG0gb3JlbHNlIGlzX2NvbnN0IHRtIHRoZW4gYmFz
aWMgcHAgdG0gZWxzZSBwcF9idG0gcHAgdG0KICAgIGFuZCBxdWFudCBwcCAo
dG0sIHIpID0KICAgICAgbGV0CiAgICAgICAgZnVuIHByIHBwIChGbiAocSwg
W1ZhciB2LCB0bV0pKSA9CiAgICAgICAgICBsZXQKICAgICAgICAgICAgdmFs
ICh2cywgYm9keSkgPSBiaW5kcyBxIHRtCiAgICAgICAgICBpbgogICAgICAg
ICAgICBhZGRfc3RyaW5nIHBwIHE7CiAgICAgICAgICAgIHBwX3ZuYW1lIHBw
IHY7CiAgICAgICAgICAgIGFwcCAoZm4gYSA9PiAoYWRkX2JyZWFrIHBwICgx
LCAwKTsgcHBfdm5hbWUgcHAgYSkpIHZzOwogICAgICAgICAgICBhZGRfc3Ry
aW5nIHBwICIuIjsKICAgICAgICAgICAgYWRkX2JyZWFrIHBwICgxLCAwKTsK
ICAgICAgICAgICAgaWYgaXNfcSBib2R5IHRoZW4gcHIgcHAgYm9keSBlbHNl
IHBwX3RtIHBwIChib2R5LCBmYWxzZSkKICAgICAgICAgIGVuZAogICAgICAg
ICAgfCBwciBwcCB0bSA9IHJhaXNlIEJVRyAicHBfdGVybSIgIm5vdCBhIHF1
YW50aWZpZXIiCiAgICAgICAgZnVuIHBwX3EgcHAgdCA9IChiZWdpbl9ibG9j
ayBwcCBJTkNPTlNJU1RFTlQgMjsgcHIgcHAgdDsgZW5kX2Jsb2NrIHBwKQog
ICAgICBpbgogICAgICAgIChpZiBpc19xIHRtIHRoZW4gKGlmIHIgdGhlbiBw
cF9icmFja2V0ICgiKCIsICIpIikgZWxzZSBJKSBwcF9xCiAgICAgICAgIGVs
c2UgYmFzaWMpIHBwIHRtCiAgICAgIGVuZAogICAgYW5kIG1vbGVjdWxlIHBw
ICh0bSwgcikgPQogICAgICBsZXQKICAgICAgICB2YWwgKG4sIHgpID0gbmVn
cyB0bQogICAgICBpbgogICAgICAgIGJlZ2luX2Jsb2NrIHBwIElOQ09OU0lT
VEVOVCBuOwogICAgICAgIE4gbiAoZm4gKCkgPT4gYWRkX3N0cmluZyBwcCAi
fiIpICgpOwogICAgICAgIGlmIGlzX29wIHggdGhlbiBwcF9idG0gcHAgeCBl
bHNlIHF1YW50IHBwICh4LCByKTsKICAgICAgICBlbmRfYmxvY2sgcHAKICAg
ICAgZW5kCiAgICBhbmQgcHBfYnRtIHBwIHRtID0gcHBfYnJhY2tldCAoIigi
LCAiKSIpIHBwX3RtIHBwICh0bSwgZmFsc2UpCiAgICBhbmQgcHBfdG0gcHAg
dG1yID0gaXByaW50ZXIgaWRlc3QgbW9sZWN1bGUgcHAgdG1yCiAgaW4KICAg
IHBwX21hcCAoQyBwYWlyIGZhbHNlKSBwcF90bQogIGVuZDsKCmxvY2FsCiAg
ZnVuIGRlbW90ZSBUcnVlICAgICAgICAgICAgPSBGbiAoIlQiLCAgIFtdICAg
ICAgICAgICAgICAgICAgKQogICAgfCBkZW1vdGUgRmFsc2UgICAgICAgICAg
ID0gRm4gKCJGIiwgICBbXSAgICAgICAgICAgICAgICAgICkKICAgIHwgZGVt
b3RlIChOb3QgYSkgICAgICAgICA9IEZuICgifiIsICAgW2RlbW90ZSBhXSAg
ICAgICAgICApCiAgICB8IGRlbW90ZSAoQW5kIChhLCBiKSkgICAgPSBGbiAo
Ii9cXCIsIFtkZW1vdGUgYSwgZGVtb3RlIGJdKQogICAgfCBkZW1vdGUgKE9y
ICAoYSwgYikpICAgID0gRm4gKCJcXC8iLCBbZGVtb3RlIGEsIGRlbW90ZSBi
XSkKICAgIHwgZGVtb3RlIChJbXAgKGEsIGIpKSAgICA9IEZuICgiPT0+Iiwg
W2RlbW90ZSBhLCBkZW1vdGUgYl0pCiAgICB8IGRlbW90ZSAoSWZmIChhLCBi
KSkgICAgPSBGbiAoIjw9PiIsIFtkZW1vdGUgYSwgZGVtb3RlIGJdKQogICAg
fCBkZW1vdGUgKEZvcmFsbCAodiwgYikpID0gRm4gKCIhIiwgICBbVmFyIHYs
ICAgIGRlbW90ZSBiXSkKICAgIHwgZGVtb3RlIChFeGlzdHMgKHYsIGIpKSA9
IEZuICgiPyIsICAgW1ZhciB2LCAgICBkZW1vdGUgYl0pCiAgICB8IGRlbW90
ZSAoQXRvbSB0KSAgICAgICAgPSB0OwppbgogIGZ1biBwcF9mb3JtdWxhJyBv
cHMgPSBwcF9tYXAgZGVtb3RlIChwcF90ZXJtJyBvcHMpOwplbmQ7CgpmdW4g
dGVybV90b19zdHJpbmcnICAgIG9wcyBsZW4gdG0gPSBQUC5wcF90b19zdHJp
bmcgbGVuIChwcF90ZXJtJyAgICBvcHMpIHRtOwpmdW4gZm9ybXVsYV90b19z
dHJpbmcnIG9wcyBsZW4gZm0gPSBQUC5wcF90b19zdHJpbmcgbGVuIChwcF9m
b3JtdWxhJyBvcHMpIGZtOwoKKCogUHJldHR5LXByaW50aW5nIHRoaW5ncyBp
cyBuZWVkZWQgZm9yIHBhcnNpbmcgdGhpbmcgcXVvdGF0aW9ucyAqKQoKZnVu
IHBwX3RoaW5nIG9wcyBwcCAoVGVybSB0bSkgICAgPSBwcF90ZXJtJyAgICBv
cHMgcHAgdG0KICB8IHBwX3RoaW5nIG9wcyBwcCAoRm9ybXVsYSBmbSkgPSBw
cF9mb3JtdWxhJyBvcHMgcHAgZm07CgpmdW4gcHBfYnJhY2tldGVkX3RoaW5n
IG9wcyBwcCB0aCA9CiAgKFBQLmJlZ2luX2Jsb2NrIHBwIFBQLklOQ09OU0lT
VEVOVCAxOyBQUC5hZGRfc3RyaW5nIHBwICIoIjsKICAgcHBfdGhpbmcgb3Bz
IHBwIHRoOyBQUC5hZGRfc3RyaW5nIHBwICIpIjsgUFAuZW5kX2Jsb2NrIHBw
KTsKCigqIFByZXR0eS1wcmludGluZyB1c2luZyAhaW5maXhlcyBhbmQgIUxJ
TkVfTEVOR1RIICopCgpmdW4gcHBfdGVybSAgICAgICAgcHAgdG0gPSBwcF90
ZXJtJyAgICAgICAgICAgKCFpbmZpeGVzKSBwcCAgICAgICAgICAgICB0bTsK
ZnVuIHBwX2Zvcm11bGEgICAgIHBwIGZtID0gcHBfZm9ybXVsYScgICAgICAg
ICghaW5maXhlcykgcHAgICAgICAgICAgICAgZm07CmZ1biB0ZXJtX3RvX3N0
cmluZyAgICB0bSA9IHRlcm1fdG9fc3RyaW5nJyAgICAoIWluZml4ZXMpICgh
TElORV9MRU5HVEgpIHRtOwpmdW4gZm9ybXVsYV90b19zdHJpbmcgZm0gPSBm
b3JtdWxhX3RvX3N0cmluZycgKCFpbmZpeGVzKSAoIUxJTkVfTEVOR1RIKSBm
bTsKCigqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKikKKCogUGFy
c2luZy4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAqKQooKiAtLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tICopCgooKiBMZXhpbmcgKikKCnZhbCBsZXhlciA9
CiAgKGZuICgoXywgKHRva3MsIF8pKSwgXykgPT4gdG9rcykgbwogIChtYW55
IChzb21lIHNwYWNlKSArKwogICAobWFueQogICAgKCgoKGF0bGVhc3RvbmUg
KHNvbWUgYWxwaGFudW0pIHx8CiAgICAgICAgKHNvbWUgKGZuIGMgPT4gc3lt
Ym9sIGMgYW5kYWxzbyBjIDw+ICMifiIpICsrIG1hbnkgKHNvbWUgc3ltYm9s
KSkgPj4KICAgICAgICBvcCA6OikgPj4gaW1wbG9kZQogICAgICAgfHwgc29t
ZSAoZm4gYyA9PiBjID0gIyJ+IiBvcmVsc2UgcHVuY3QgYykgPj4gc3RyKSAr
KwogICAgICBtYW55IChzb21lIHNwYWNlKSkgPj4gZnN0KSkgKysKICAgZmlu
aXNoZWQpOwoKdmFsIGxleF9zdHIgPSBsZXhlciBvIFN0cmVhbS5mcm9tX2xp
c3QgbyBleHBsb2RlOwoKKCogUHVyZWx5IGZ1bmN0aW9uYWwgcGFyc2luZyAq
KQoKdmFsIHZuYW1lX3BhcnNlciA9CiAgc29tZSAoZm4gdG9rID0+IG5vdCAo
bWVtIHRvayByZXNlcnZlZCkgYW5kYWxzbyAhdmFyX3N0cmluZyB0b2spOwoK
ZnVuIHRlcm1fcGFyc2VyIG9wcyA9CiAgbGV0CiAgICB2YWwgb3BzICAgICAg
ICAgICAgPSBvcHMgQCBjb25uZWN0aXZlcwogICAgdmFsIGlwYXJzZXIgICAg
ICAgID0gcGFyc2VfaW5maXhlcyBvcHMKICAgIHZhbCBpdG9rcyAgICAgICAg
ICA9IG9wdG9rcyBvcHMKICAgIHZhbCBhdm9pZCAgICAgICAgICA9IGl0b2tz
IEAgcmVzZXJ2ZWQKICAgIGZ1biBmbmFtZSB0b2sgICAgICA9IG5vdCAobWVt
IHRvayBhdm9pZCkgYW5kYWxzbyBub3QgKCF2YXJfc3RyaW5nIHRvaykKICAg
IGZ1biB1bmluZml4IHRvayAgICA9IG1lbSB0b2sgaXRva3MKICAgIHZhbCB1
bmluZml4X3BhcnNlciA9IChleGFjdCAiKCIgKysgc29tZSB1bmluZml4ICsr
IGV4YWN0ICIpIikgPj4gKGZzdCBvIHNuZCkKICAgIHZhbCBmbmFtZV9wYXJz
ZXIgICA9IHNvbWUgZm5hbWUgfHwgdW5pbmZpeF9wYXJzZXIKICAgIGZ1biBi
aW5kIHMgKHYsIHQpICA9IEZuIChzLCBbVmFyIHYsIHRdKQogICAgZnVuIGJh
c2ljIGlucCAgICAgID0KICAgICAgKChleGFjdCAiKCIgKysgdG1fcGFyc2Vy
ICsrIGV4YWN0ICIpIikgPj4gKGZuIChfLCAodCwgXykpID0+IHQpIHx8CiAg
ICAgICAoZXhhY3QgIiEiICsrIGF0bGVhc3RvbmUgdm5hbWVfcGFyc2VyICsr
IGV4YWN0ICIuIiArKyB0bV9wYXJzZXIpID4+CiAgICAgICAoZm4gKF8sICh2
cywgKF8sIGJvZHkpKSkgPT4gZm9sZHIgKGJpbmQgIiEiKSBib2R5IHZzKSB8
fAogICAgICAgKGV4YWN0ICI/IiArKyBhdGxlYXN0b25lIHZuYW1lX3BhcnNl
ciArKyBleGFjdCAiLiIgKysgdG1fcGFyc2VyKSA+PgogICAgICAgKGZuIChf
LCAodnMsIChfLCBib2R5KSkpID0+IGZvbGRyIChiaW5kICI/IikgYm9keSB2
cykgfHwKICAgICAgIGZuYW1lX3BhcnNlciA+PiAoZm4gZiA9PiBGbiAoZiwg
W10pKSB8fAogICAgICAgdm5hbWVfcGFyc2VyID4+IFZhcikgaW5wCiAgICBh
bmQgbW9sZWN1bGUgaW5wICAgICAgPQogICAgICAoKG1hbnkgKGV4YWN0ICJ+
IikgKysgKChmbmFtZV9wYXJzZXIgKysgbWFueSBiYXNpYykgPj4gRm4gfHwg
YmFzaWMpKSA+PgogICAgICAgKGZuIChsLCB0KSA9PiBOIChsZW5ndGggbCkg
KGZuIHggPT4gRm4gKCJ+IiwgW3hdKSkgdCkpIGlucAogICAgYW5kIHRtX3Bh
cnNlciBpbnAgID0gaXBhcnNlciAoZm4gKGYsIGEsIGIpID0+IEZuIChmLCBb
YSwgYl0pKSBtb2xlY3VsZSBpbnAKICBpbgogICAgdG1fcGFyc2VyCiAgZW5k
OwoKbG9jYWwKICBmdW4gcHJvbW90ZSAoRm4gKCJUIiwgICBbXSAgICAgICAg
KSkgPSBUcnVlCiAgICB8IHByb21vdGUgKEZuICgiRiIsICAgW10gICAgICAg
ICkpID0gRmFsc2UKICAgIHwgcHJvbW90ZSAoRm4gKCJ+IiwgICBbYV0gICAg
ICAgKSkgPSBOb3QgKHByb21vdGUgYSkKICAgIHwgcHJvbW90ZSAoRm4gKCIv
XFwiLCBbYSwgYl0gICAgKSkgPSBBbmQgKHByb21vdGUgYSwgcHJvbW90ZSBi
KQogICAgfCBwcm9tb3RlIChGbiAoIlxcLyIsIFthLCBiXSAgICApKSA9IE9y
ICAocHJvbW90ZSBhLCBwcm9tb3RlIGIpCiAgICB8IHByb21vdGUgKEZuICgi
PT0+IiwgW2EsIGJdICAgICkpID0gSW1wIChwcm9tb3RlIGEsIHByb21vdGUg
YikKICAgIHwgcHJvbW90ZSAoRm4gKCI8PT4iLCBbYSwgYl0gICAgKSkgPSBJ
ZmYgKHByb21vdGUgYSwgcHJvbW90ZSBiKQogICAgfCBwcm9tb3RlIChGbiAo
IiEiLCAgIFtWYXIgdiwgYl0pKSA9IEZvcmFsbCAodiwgcHJvbW90ZSBiKQog
ICAgfCBwcm9tb3RlIChGbiAoIj8iLCAgIFtWYXIgdiwgYl0pKSA9IEV4aXN0
cyAodiwgcHJvbW90ZSBiKQogICAgfCBwcm9tb3RlIHRtICAgICAgICAgICAg
ICAgICAgICAgICA9IEF0b20gdG07CmluCiAgZnVuIGZvcm11bGFfcGFyc2Vy
IG9wcyA9IHRlcm1fcGFyc2VyIG9wcyA+PiBwcm9tb3RlOwplbmQ7CgpmdW4g
c3RyaW5nX3RvX3Rlcm0nIG9wcyA9CiAgZnN0IG8gKCh0ZXJtX3BhcnNlciBv
cHMgKysgZmluaXNoZWQpID4+IGZzdCkgbyBTdHJlYW0uZnJvbV9saXN0IG8g
bGV4X3N0cjsKCmZ1biBzdHJpbmdfdG9fZm9ybXVsYScgb3BzID0KICBmc3Qg
byAoKGZvcm11bGFfcGFyc2VyIG9wcyArKyBmaW5pc2hlZCkgPj4gZnN0KSBv
IFN0cmVhbS5mcm9tX2xpc3QgbyBsZXhfc3RyOwoKZnVuIHBhcnNlX3Rlcm0n
IG9wcyA9CiAgcXVvdGF0aW9uX3BhcnNlciAoc3RyaW5nX3RvX3Rlcm0nIG9w
cykgKHBwX2JyYWNrZXRlZF90aGluZyBvcHMpOwoKZnVuIHBhcnNlX2Zvcm11
bGEnIG9wcyA9CiAgcXVvdGF0aW9uX3BhcnNlciAoc3RyaW5nX3RvX2Zvcm11
bGEnIG9wcykgKHBwX2JyYWNrZXRlZF90aGluZyBvcHMpOwoKKCogUGFyc2lu
ZyB1c2luZyAhaW5maXhlcyAqKQoKZnVuIHN0cmluZ190b190ZXJtICAgIHMg
PSBzdHJpbmdfdG9fdGVybScgICAgKCFpbmZpeGVzKSBzOwpmdW4gc3RyaW5n
X3RvX2Zvcm11bGEgcyA9IHN0cmluZ190b19mb3JtdWxhJyAoIWluZml4ZXMp
IHM7CmZ1biBwYXJzZV90ZXJtICAgICAgICBxID0gcGFyc2VfdGVybScgICAg
ICAgICghaW5maXhlcykgcTsKZnVuIHBhcnNlX2Zvcm11bGEgICAgIHEgPSBw
YXJzZV9mb3JtdWxhJyAgICAgKCFpbmZpeGVzKSBxOwoKKCogLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLSAqKQooKiBOZXcgdmFyaWFibGVzLiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICopCigqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0g
KikKCmxvY2FsCiAgdmFsIHByZWZpeCAgPSAiXyI7CiAgdmFsIG51bV92YXIg
PSBWYXIgbyBta19wcmVmaXggcHJlZml4IG8gaW50X3RvX3N0cmluZzsKaW4K
ICB2YWwgbmV3X3ZhciAgPSBudW1fdmFyIG8gbmV3X2ludDsKICB2YWwgbmV3
X3ZhcnMgPSBtYXAgbnVtX3ZhciBvIG5ld19pbnRzOwplbmQ7CgooKiAtLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICopCigqIFNpemVzIG9mIHRlcm1z
IGFuZCBmb3JtdWxhcy4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgKikKKCogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLSAqKQoKbG9jYWwKICBmdW4gc3p0IG4gW10gICAgICAgICAgICAgICAg
ICAgID0gbgogICAgfCBzenQgbiAoVmFyIF8gICAgICAgIDo6IHRtcykgPSBz
enQgKG4gKyAxKSB0bXMKICAgIHwgc3p0IG4gKEZuIChfLCBhcmdzKSA6OiB0
bXMpID0gc3p0IChuICsgMSkgKGFyZ3MgQCB0bXMpOwoKICBmdW4gc3ogbiBb
XSAgICAgICAgICAgICAgICAgICAgID0gbgogICAgfCBzeiBuIChUcnVlICAg
ICAgICAgIDo6IGZtcykgPSBzeiAobiArIDEpIGZtcwogICAgfCBzeiBuIChG
YWxzZSAgICAgICAgIDo6IGZtcykgPSBzeiAobiArIDEpIGZtcwogICAgfCBz
eiBuIChBdG9tIHQgICAgICAgIDo6IGZtcykgPSBzeiAoc3p0IChuICsgMSkg
W3RdKSBmbXMKICAgIHwgc3ogbiAoTm90IHAgICAgICAgICA6OiBmbXMpID0g
c3ogKG4gKyAxKSAocCA6OiBmbXMpCiAgICB8IHN6IG4gKEFuZCAocCwgcSkg
ICAgOjogZm1zKSA9IHN6IChuICsgMSkgKHAgOjogcSA6OiBmbXMpCiAgICB8
IHN6IG4gKE9yICAocCwgcSkgICAgOjogZm1zKSA9IHN6IChuICsgMSkgKHAg
OjogcSA6OiBmbXMpCiAgICB8IHN6IG4gKEltcCAocCwgcSkgICAgOjogZm1z
KSA9IHN6IChuICsgMSkgKHAgOjogcSA6OiBmbXMpCiAgICB8IHN6IG4gKElm
ZiAocCwgcSkgICAgOjogZm1zKSA9IHN6IChuICsgMSkgKHAgOjogcSA6OiBm
bXMpCiAgICB8IHN6IG4gKEZvcmFsbCAoXywgcCkgOjogZm1zKSA9IHN6IChu
ICsgMSkgKHAgOjogZm1zKQogICAgfCBzeiBuIChFeGlzdHMgKF8sIHApIDo6
IGZtcykgPSBzeiAobiArIDEpIChwIDo6IGZtcyk7CmluCiAgdmFsIHRlcm1f
c2l6ZSAgICA9IHN6dCAwIG8gd3JhcDsKICB2YWwgZm9ybXVsYV9zaXplID0g
c3ogIDAgbyB3cmFwOwplbmQ7CgooKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tICopCigqIFRvdGFsIGNvbXBhcmlzb24gZnVuY3Rpb25zIGZvciB0
ZXJtcyBhbmQgZm9ybXVsYXMuICAgICAgICAgICAgICAgICAgICAgICAgKikK
KCogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqKQoKbG9jYWwKICBm
dW4gbGV4IEVRVUFMIGYgeCA9IGYgeCB8IGxleCB4IF8gXyA9IHg7CgogIGZ1
biBjbXQgW10gPSBFUVVBTAogICAgfCBjbXQgKChWYXIgXywgRm4gXykgOjog
XykgPSBMRVNTCiAgICB8IGNtdCAoKEZuIF8sIFZhciBfKSA6OiBfKSA9IEdS
RUFURVIKICAgIHwgY210ICgoVmFyIHYsIFZhciB3KSA6OiBsKSA9IGxleCAo
U3RyaW5nLmNvbXBhcmUgKHYsIHcpKSBjbXQgbAogICAgfCBjbXQgKChGbiAo
ZiwgYSksIEZuIChnLCBiKSkgOjogbCkgPQogICAgKGNhc2UgbGV4IChTdHJp
bmcuY29tcGFyZSAoZiwgZykpIChJbnQuY29tcGFyZSBvIERmIGxlbmd0aCkg
KGEsIGIpIG9mIEVRVUFMCiAgICAgICA9PiBjbXQgKHppcCBhIGIgQCBsKQog
ICAgIHwgeCA9PiB4KTsKCiAgZnVuIGNtIFtdID0gRVFVQUwKICAgIHwgY20g
KChUcnVlLCAgICAgICAgICBUcnVlICAgICAgICAgKSA6OiBsKSA9IGNtIGwK
ICAgIHwgY20gKChUcnVlLCAgICAgICAgICBfICAgICAgICAgICAgKSA6OiBf
KSA9IExFU1MKICAgIHwgY20gKChfLCAgICAgICAgICAgICBUcnVlICAgICAg
ICAgKSA6OiBfKSA9IEdSRUFURVIKICAgIHwgY20gKChGYWxzZSwgICAgICAg
ICBGYWxzZSAgICAgICAgKSA6OiBsKSA9IGNtIGwKICAgIHwgY20gKChGYWxz
ZSwgICAgICAgICBfICAgICAgICAgICAgKSA6OiBfKSA9IExFU1MKICAgIHwg
Y20gKChfLCAgICAgICAgICAgICBGYWxzZSAgICAgICAgKSA6OiBfKSA9IEdS
RUFURVIKICAgIHwgY20gKChBdG9tIHQsICAgICAgICBBdG9tIHUgICAgICAg
KSA6OiBsKSA9IGxleCAoY210IFsodCwgdSldKSBjbSBsCiAgICB8IGNtICgo
QXRvbSBfLCAgICAgICAgXyAgICAgICAgICAgICkgOjogXykgPSBMRVNTCiAg
ICB8IGNtICgoXywgICAgICAgICAgICAgQXRvbSBfICAgICAgICkgOjogXykg
PSBHUkVBVEVSCiAgICB8IGNtICgoTm90IHAsICAgICAgICAgTm90IHEgICAg
ICAgICkgOjogbCkgPSBjbSAoKHAsIHEpIDo6IGwpCiAgICB8IGNtICgoTm90
IF8gLCAgICAgICAgXyAgICAgICAgICAgICkgOjogXykgPSBMRVNTCiAgICB8
IGNtICgoXywgICAgICAgICAgICAgTm90IF8gICAgICAgICkgOjogXykgPSBH
UkVBVEVSCiAgICB8IGNtICgoQW5kIChwMSwgcTEpLCAgQW5kIChwMiwgcTIp
ICkgOjogbCkgPSBjbSAoKHAxLCBwMikgOjogKHExLCBxMikgOjogbCkKICAg
IHwgY20gKChBbmQgXywgICAgICAgICBfICAgICAgICAgICAgKSA6OiBfKSA9
IExFU1MKICAgIHwgY20gKChfLCAgICAgICAgICAgICBBbmQgXyAgICAgICAg
KSA6OiBfKSA9IEdSRUFURVIKICAgIHwgY20gKChPciAocDEsIHExKSwgICBP
ciAocDIsIHEyKSAgKSA6OiBsKSA9IGNtICgocDEsIHAyKSA6OiAocTEsIHEy
KSA6OiBsKQogICAgfCBjbSAoKE9yIF8sICAgICAgICAgIF8gICAgICAgICAg
ICApIDo6IF8pID0gTEVTUwogICAgfCBjbSAoKF8sICAgICAgICAgICAgIE9y
IF8gICAgICAgICApIDo6IF8pID0gR1JFQVRFUgogICAgfCBjbSAoKEltcCAo
cDEsIHExKSwgIEltcCAocDIsIHEyKSApIDo6IGwpID0gY20gKChwMSwgcDIp
IDo6IChxMSwgcTIpIDo6IGwpCiAgICB8IGNtICgoSW1wIF8sICAgICAgICAg
XyAgICAgICAgICAgICkgOjogXykgPSBMRVNTCiAgICB8IGNtICgoXywgICAg
ICAgICAgICAgSW1wIF8gICAgICAgICkgOjogXykgPSBHUkVBVEVSCiAgICB8
IGNtICgoSWZmIChwMSwgcTEpLCAgSWZmIChwMiwgcTIpICkgOjogbCkgPSBj
bSAoKHAxLCBwMikgOjogKHExLCBxMikgOjogbCkKICAgIHwgY20gKChJZmYg
XywgICAgICAgICBfICAgICAgICAgICAgKSA6OiBfKSA9IExFU1MKICAgIHwg
Y20gKChfLCAgICAgICAgICAgICBJZmYgXyAgICAgICAgKSA6OiBfKSA9IEdS
RUFURVIKICAgIHwgY20gKChGb3JhbGwgKHYsIHApLCBGb3JhbGwgKHcsIHEp
KSA6OiBsKSA9CiAgICBsZXggKFN0cmluZy5jb21wYXJlICh2LCB3KSkgKGNt
IG8gY29ucyAocCwgcSkpIGwKICAgIHwgY20gKChGb3JhbGwgXywgICAgICBF
eGlzdHMgXyAgICAgKSA6OiBfKSA9IExFU1MKICAgIHwgY20gKChFeGlzdHMg
XywgICAgICBGb3JhbGwgXyAgICAgKSA6OiBfKSA9IEdSRUFURVIKICAgIHwg
Y20gKChFeGlzdHMgKHYsIHApLCBFeGlzdHMgKHcsIHEpKSA6OiBsKSA9CiAg
ICBsZXggKFN0cmluZy5jb21wYXJlICh2LCB3KSkgKGNtIG8gY29ucyAocCwg
cSkpIGw7CmluCiAgdmFsIHRlcm1fY29tcGFyZSAgICA9IGNtdCBvIHdyYXA7
CiAgdmFsIGZvcm11bGFfY29tcGFyZSA9IGNtIG8gd3JhcDsKZW5kOwogIAoo
KiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICopCigqIEJhc2ljIG9w
ZXJhdGlvbnMgb24gbGl0ZXJhbHMuICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgKikKKCogLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLSAqKQoKZnVuIG1rX2xpdGVyYWwgKHRydWUsICBhKSA9IGEK
ICB8IG1rX2xpdGVyYWwgKGZhbHNlLCBhKSA9IE5vdCBhOwoKZnVuIGRlc3Rf
bGl0ZXJhbCAoYSBhcyBBdG9tIF8pICAgICAgID0gKHRydWUsICBhKQogIHwg
ZGVzdF9saXRlcmFsIChOb3QgKGEgYXMgQXRvbSBfKSkgPSAoZmFsc2UsIGEp
CiAgfCBkZXN0X2xpdGVyYWwgXyAgICAgICAgICAgICAgICAgICA9IHJhaXNl
IEVSUiAiZGVzdF9saXRlcmFsIiAiIjsKCnZhbCBpc19saXRlcmFsID0gY2Fu
IGRlc3RfbGl0ZXJhbDsKCnZhbCBsaXRlcmFsX2F0b20gPSBzbmQgbyBkZXN0
X2xpdGVyYWw7CgooKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICop
CigqIERlYWxpbmcgd2l0aCBmb3JtdWxhIG5lZ2F0aW9ucy4gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKikKKCogLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqKQoKZnVuIG5lZ2F0aXZlIChOb3Qg
cCkgPSB0cnVlCiAgfCBuZWdhdGl2ZSBfICAgICAgID0gZmFsc2U7Cgp2YWwg
cG9zaXRpdmUgPSBub24gbmVnYXRpdmU7CgpmdW4gbmVnYXRlIChOb3QgcCkg
PSBwCiAgfCBuZWdhdGUgcCAgICAgICA9IE5vdCBwOwoKKCogLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLSAqKQooKiBGdW5jdGlvbnMgYW5kIHJlbGF0
aW9ucyBpbiBhIGZvcm11bGEuICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICopCigqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0g
KikKCmxvY2FsCiAgZnVuIGZuYyBmcyBbXSAgICAgICAgICAgICAgICAgPSBm
cwogICAgfCBmbmMgZnMgKFZhciBfICAgICA6OiB0bXMpID0gZm5jIGZzIHRt
cwogICAgfCBmbmMgZnMgKEZuIChuLCBhKSA6OiB0bXMpID0gZm5jIChpbnNl
cnQgKG4sIGxlbmd0aCBhKSBmcykgKGEgQCB0bXMpOwoKICBmdW4gZnVuYyBm
cyBbXSAgICAgICAgICAgICAgICAgICAgICAgICAgPSBmcwogICAgfCBmdW5j
IGZzIChUcnVlICAgICAgICAgICAgICAgOjogZm1zKSA9IGZ1bmMgZnMgZm1z
CiAgICB8IGZ1bmMgZnMgKEZhbHNlICAgICAgICAgICAgICA6OiBmbXMpID0g
ZnVuYyBmcyBmbXMKICAgIHwgZnVuYyBmcyAoQXRvbSAoVmFyIF8pICAgICAg
IDo6IGZtcykgPSBmdW5jIGZzIGZtcwogICAgfCBmdW5jIGZzIChBdG9tIChG
biAoXywgdG1zKSkgOjogZm1zKSA9IGZ1bmMgKGZuYyBmcyB0bXMpIGZtcwog
ICAgfCBmdW5jIGZzIChOb3QgcCAgICAgICAgICAgICAgOjogZm1zKSA9IGZ1
bmMgZnMgKHAgOjogZm1zKQogICAgfCBmdW5jIGZzIChBbmQgKHAsIHEpICAg
ICAgICAgOjogZm1zKSA9IGZ1bmMgZnMgKHAgOjogcSA6OiBmbXMpCiAgICB8
IGZ1bmMgZnMgKE9yICAocCwgcSkgICAgICAgICA6OiBmbXMpID0gZnVuYyBm
cyAocCA6OiBxIDo6IGZtcykKICAgIHwgZnVuYyBmcyAoSW1wIChwLCBxKSAg
ICAgICAgIDo6IGZtcykgPSBmdW5jIGZzIChwIDo6IHEgOjogZm1zKQogICAg
fCBmdW5jIGZzIChJZmYgKHAsIHEpICAgICAgICAgOjogZm1zKSA9IGZ1bmMg
ZnMgKHAgOjogcSA6OiBmbXMpCiAgICB8IGZ1bmMgZnMgKEZvcmFsbCAoXywg
cCkgICAgICA6OiBmbXMpID0gZnVuYyBmcyAocCA6OiBmbXMpCiAgICB8IGZ1
bmMgZnMgKEV4aXN0cyAoXywgcCkgICAgICA6OiBmbXMpID0gZnVuYyBmcyAo
cCA6OiBmbXMpOwppbgogIHZhbCBmdW5jdGlvbnMgPSBmdW5jIFtdIG8gd3Jh
cDsKZW5kOwoKdmFsIGZ1bmN0aW9uX25hbWVzID0gbWFwIGZzdCBvIGZ1bmN0
aW9uczsKCmxvY2FsCiAgZnVuIHJlbCBycyBbXSAgICAgICAgICAgICAgICAg
ICAgICAgID0gcnMKICAgIHwgcmVsIHJzIChUcnVlICAgICAgICAgICAgIDo6
IGZtcykgPSByZWwgcnMgZm1zCiAgICB8IHJlbCBycyAoRmFsc2UgICAgICAg
ICAgICA6OiBmbXMpID0gcmVsIHJzIGZtcwogICAgfCByZWwgcnMgKEF0b20g
KFZhciBfKSAgICAgOjogZm1zKSA9IHJlbCBycyBmbXMKICAgIHwgcmVsIHJz
IChBdG9tIChmIGFzIEZuIF8pIDo6IGZtcykgPSByZWwgKGluc2VydCAoZm5f
ZnVuY3Rpb24gZikgcnMpIGZtcwogICAgfCByZWwgcnMgKE5vdCBwICAgICAg
ICAgICAgOjogZm1zKSA9IHJlbCBycyAocCA6OiBmbXMpCiAgICB8IHJlbCBy
cyAoQW5kIChwLCBxKSAgICAgICA6OiBmbXMpID0gcmVsIHJzIChwIDo6IHEg
OjogZm1zKQogICAgfCByZWwgcnMgKE9yICAocCwgcSkgICAgICAgOjogZm1z
KSA9IHJlbCBycyAocCA6OiBxIDo6IGZtcykKICAgIHwgcmVsIHJzIChJbXAg
KHAsIHEpICAgICAgIDo6IGZtcykgPSByZWwgcnMgKHAgOjogcSA6OiBmbXMp
CiAgICB8IHJlbCBycyAoSWZmIChwLCBxKSAgICAgICA6OiBmbXMpID0gcmVs
IHJzIChwIDo6IHEgOjogZm1zKQogICAgfCByZWwgcnMgKEZvcmFsbCAoXywg
cCkgICAgOjogZm1zKSA9IHJlbCBycyAocCA6OiBmbXMpCiAgICB8IHJlbCBy
cyAoRXhpc3RzIChfLCBwKSAgICA6OiBmbXMpID0gcmVsIHJzIChwIDo6IGZt
cyk7CmluCiAgdmFsIHJlbGF0aW9ucyA9IHJlbCBbXSBvIHdyYXA7CmVuZDsK
CnZhbCByZWxhdGlvbl9uYW1lcyA9IG1hcCBmc3QgbyByZWxhdGlvbnM7Cgoo
KiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICopCigqIFRoZSBlcXVh
bGl0eSByZWxhdGlvbiBoYXMgYSBzcGVjaWFsIHN0YXR1cy4gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgKikKKCogLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLSAqKQoKdmFsIGVxX3JlbCA9ICgiPSIsIDIpOwoKZnVuIG1r
X2VxIChhLCBiKSA9IEF0b20gKEZuICgiPSIsIFthLCBiXSkpOwoKZnVuIGRl
c3RfZXEgKEF0b20gKEZuICgiPSIsIFthLCBiXSkpKSA9IChhLCBiKQogIHwg
ZGVzdF9lcSBfID0gcmFpc2UgRVJSICJkZXN0X2VxIiAiIjsKCnZhbCBpc19l
cSA9IGNhbiBkZXN0X2VxOwoKdmFsIGxocyA9IGZzdCBvIGRlc3RfZXE7Cgp2
YWwgcmhzID0gc25kIG8gZGVzdF9lcTsKCnZhbCBlcV9vY2N1cnMgPSBtZW0g
ZXFfcmVsIG8gcmVsYXRpb25zOwoKdmFsIHJlbGF0aW9uc19ub19lcSA9IExp
c3QuZmlsdGVyIChub24gKGVxdWFsIGVxX3JlbCkpIG8gcmVsYXRpb25zOwoK
KCogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqKQooKiBGcmVlIHZh
cmlhYmxlcyBpbiB0ZXJtcyBhbmQgZm9ybXVsYXMuICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICopCigqIC0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0gKikKCmxvY2FsCiAgZnVuIGZ2dCBhdiA9CiAgICBsZXQK
ICAgICAgdmFsIHNlZW4gPQogICAgICAgIGlmIG51bGwgYXYgdGhlbiBtZW0g
ZWxzZSAoZm4gdiA9PiBmbiB2cyA9PiBtZW0gdiBhdiBvcmVsc2UgbWVtIHYg
dnMpCiAgICAgIGZ1biBmIHZzIFtdID0gdnMKICAgICAgICB8IGYgdnMgKFZh
ciB2IDo6IHRtcykgPSBmIChpZiBzZWVuIHYgdnMgdGhlbiB2cyBlbHNlIHYg
OjogdnMpIHRtcwogICAgICAgIHwgZiB2cyAoRm4gKF8sIGFyZ3MpIDo6IHRt
cykgPSBmIHZzIChhcmdzIEAgdG1zKQogICAgaW4KICAgICAgZgogICAgZW5k
OwoKICBmdW4gZnYgdnMgW10gICAgICAgICAgICAgICAgICAgICAgICAgICA9
IHZzCiAgICB8IGZ2IHZzICgoXyAsIFRydWUgICAgICAgICApIDo6IGZtcykg
PSBmdiB2cyBmbXMKICAgIHwgZnYgdnMgKChfICwgRmFsc2UgICAgICAgICkg
OjogZm1zKSA9IGZ2IHZzIGZtcwogICAgfCBmdiB2cyAoKGF2LCBBdG9tIHQg
ICAgICAgKSA6OiBmbXMpID0gZnYgKGZ2dCBhdiB2cyBbdF0pIGZtcwogICAg
fCBmdiB2cyAoKGF2LCBOb3QgcCAgICAgICAgKSA6OiBmbXMpID0gZnYgdnMg
KChhdiwgcCkgOjogZm1zKQogICAgfCBmdiB2cyAoKGF2LCBBbmQgKHAsIHEp
ICAgKSA6OiBmbXMpID0gZnYgdnMgKChhdiwgcCkgOjogKGF2LCBxKSA6OiBm
bXMpCiAgICB8IGZ2IHZzICgoYXYsIE9yICAocCwgcSkgICApIDo6IGZtcykg
PSBmdiB2cyAoKGF2LCBwKSA6OiAoYXYsIHEpIDo6IGZtcykKICAgIHwgZnYg
dnMgKChhdiwgSW1wIChwLCBxKSAgICkgOjogZm1zKSA9IGZ2IHZzICgoYXYs
IHApIDo6IChhdiwgcSkgOjogZm1zKQogICAgfCBmdiB2cyAoKGF2LCBJZmYg
KHAsIHEpICAgKSA6OiBmbXMpID0gZnYgdnMgKChhdiwgcCkgOjogKGF2LCBx
KSA6OiBmbXMpCiAgICB8IGZ2IHZzICgoYXYsIEZvcmFsbCAoeCwgcCkpIDo6
IGZtcykgPSBmdiB2cyAoKGluc2VydCB4IGF2LCBwKSA6OiBmbXMpCiAgICB8
IGZ2IHZzICgoYXYsIEV4aXN0cyAoeCwgcCkpIDo6IGZtcykgPSBmdiB2cyAo
KGluc2VydCB4IGF2LCBwKSA6OiBmbXMpOwppbiAgICAKICBmdW4gRlZUIHRt
ICA9IHJldiAoZnZ0IFtdIFtdIFt0bV0pOwogIGZ1biBGViAgZm0gID0gcmV2
IChmdiAgW10gWyhbXSwgZm0pXSk7CiAgZnVuIEZWTCBmbXMgPSByZXYgKGZ2
ICBbXSAobWFwIChwYWlyIFtdKSBmbXMpKTsKZW5kOwoKdmFsIHNwZWNpYWxp
emUgPSBzbmQgbyBzdHJpcF9mb3JhbGw7CgpmdW4gZ2VuZXJhbGl6ZSBmbSA9
IGxpc3RfbWtfZm9yYWxsIChGViBmbSwgZm0pOwoKKCogLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLSAqKQooKiBTdWJ0ZXJtcy4gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICopCigqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKikK
CmZ1biBzdWJ0ZXJtIFtdIHRtID0gdG0KICB8IHN1YnRlcm0gKF8gOjogXykg
KFZhciBfKSA9IHJhaXNlIEVSUiAic3VidGVybSIgIlZhciIKICB8IHN1YnRl
cm0gKGggOjogdCkgKEZuIChfLCBhcmdzKSkgPQogIHN1YnRlcm0gdCAoTGlz
dC5udGggKGFyZ3MsIGgpKQogIGhhbmRsZSBTdWJzY3JpcHQgPT4gcmFpc2Ug
RVJSICJzdWJ0ZXJtIiAiYmFkIHBhdGgiOwoKbG9jYWwKICBmdW4gdXBkYXRl
IF8gXyBbXSA9IHJhaXNlIEVSUiAicmV3cml0ZSIgImJhZCBwYXRoIgogICAg
fCB1cGRhdGUgZiBuIChoIDo6IHQpID0gaWYgbiA9IDAgdGhlbiBmIGggOjog
dCBlbHNlIGggOjogdXBkYXRlIGYgKG4gLSAxKSB0OwppbgogIGZ1biByZXdy
aXRlIChbXSB8LT4gcmVzKSBfID0gcmVzCiAgICB8IHJld3JpdGUgXyAoVmFy
IF8pID0gcmFpc2UgRVJSICJyZXdyaXRlIiAiVmFyIgogICAgfCByZXdyaXRl
ICgoaCA6OiB0KSB8LT4gcmVzKSAoRm4gKGYsIGFyZ3MpKSA9CiAgICBGbiAo
ZiwgdXBkYXRlIChyZXdyaXRlICh0IHwtPiByZXMpKSBoIGFyZ3MpOwplbmQ7
Cgpsb2NhbAogIGZ1biBhdG9tX3Jld3JpdGUgciA9IEF0b20gbyByZXdyaXRl
IHIgbyBkZXN0X2F0b207CmluCiAgZnVuIGxpdGVyYWxfc3VidGVybSBwID0g
c3VidGVybSBwIG8gZGVzdF9hdG9tIG8gbGl0ZXJhbF9hdG9tOwogIGZ1biBs
aXRlcmFsX3Jld3JpdGUgciA9IG1rX2xpdGVyYWwgbyAoSSAjIyBhdG9tX3Jl
d3JpdGUgcikgbyBkZXN0X2xpdGVyYWw7CmVuZDsKCigqIC0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0gKikKKCogVGhlIEtudXRoLUJlbmRpeCBvcmRl
cmluZy4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAqKQooKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICop
Cgp0eXBlIFdlaWdodCA9IHN0cmluZyAqIGludCAtPiBpbnQ7CnR5cGUgUHJl
YyAgID0gKHN0cmluZyAqIGludCkgKiAoc3RyaW5nICogaW50KSAtPiBvcmRl
cjsKCnZhbCBub192YXJzID0gTXVsdGlzZXQuZW1wdHkgU3RyaW5nLmNvbXBh
cmU7CmZ1biBvbmVfdmFyIHYgPSBNdWx0aXNldC5pbnNlcnQgKHYsIDEpIG5v
X3ZhcnM7CgpmdW4ga2Jfd2VpZ2h0IHcgPQogIGxldAogICAgZnVuIHdlaWdo
dCAoVmFyIHYpID0gKDAsIG9uZV92YXIgdikKICAgICAgfCB3ZWlnaHQgKEZu
IChmLCBhKSkgPSBmb2xkbCB3Z2h0ICh3IChmLCBsZW5ndGggYSksIG5vX3Zh
cnMpIGEKICAgIGFuZCB3Z2h0ICh0LCAobiwgdikpID0gKGN1cnJ5IG9wKyBu
ICMjIE11bHRpc2V0LnVuaW9uIHYpICh3ZWlnaHQgdCkKICBpbgogICAgd2Vp
Z2h0CiAgZW5kOwoKKCogVGhlIEtudXRoLUJlbmRpeCBvcmRlcmluZyBpcyBw
YXJ0aWFsIHdoZW4gdGVybXMgY29udGFpbiB2YXJpYWJsZXMgKikKCmZ1biBr
Yl9jb21wYXJlIHcgcCA9CiAgbGV0CiAgICBmdW4ga2JvIFtdID0gU09NRSBF
UVVBTAogICAgICB8IGtibyAodHUgOjogcmVzdCkgPQogICAgICBpZiBvcD0g
dHUgdGhlbiBTT01FIEVRVUFMCiAgICAgIGVsc2UKICAgICAgICBsZXQgdmFs
ICgod3QsIHZ0KSwgKHd1LCB2dSkpID0gRGYgKGtiX3dlaWdodCB3KSB0dQog
ICAgICAgIGluIGtibzEgKEludC5jb21wYXJlICh3dCwgd3UpKSAoTXVsdGlz
ZXQuY29tcGFyZSAodnQsIHZ1KSkgdHUgcmVzdAogICAgICAgIGVuZAogICAg
YW5kIGtibzEgXyAgICAgICBOT05FICAgICAgICAgICBfICAgICAgXyAgICA9
IE5PTkUKICAgICAgfCBrYm8xIExFU1MgICAgKFNPTUUgTEVTUykgICAgXyAg
ICAgIF8gICAgPSBTT01FIExFU1MKICAgICAgfCBrYm8xIEdSRUFURVIgKFNP
TUUgTEVTUykgICAgXyAgICAgIF8gICAgPSBOT05FCiAgICAgIHwga2JvMSBF
UVVBTCAgIChTT01FIExFU1MpICAgIF8gICAgICBfICAgID0gU09NRSBMRVNT
CiAgICAgIHwga2JvMSBMRVNTICAgIChTT01FIEdSRUFURVIpIF8gICAgICBf
ICAgID0gTk9ORQogICAgICB8IGtibzEgR1JFQVRFUiAoU09NRSBHUkVBVEVS
KSBfICAgICAgXyAgICA9IFNPTUUgR1JFQVRFUgogICAgICB8IGtibzEgRVFV
QUwgICAoU09NRSBHUkVBVEVSKSBfICAgICAgXyAgICA9IFNPTUUgR1JFQVRF
UgogICAgICB8IGtibzEgTEVTUyAgICAoU09NRSBFUVVBTCkgICBfICAgICAg
XyAgICA9IFNPTUUgTEVTUwogICAgICB8IGtibzEgR1JFQVRFUiAoU09NRSBF
UVVBTCkgICBfICAgICAgXyAgICA9IFNPTUUgR1JFQVRFUgogICAgICB8IGti
bzEgRVFVQUwgICAoU09NRSBFUVVBTCkgICAodCwgdSkgcmVzdCA9IGtibzIg
dCB1IHJlc3QKICAgIGFuZCBrYm8yIChGbiAoZiwgYSkpIChGbiAoZywgYikp
IHJlc3QgPQogICAgICAoY2FzZSBwICgoZiwgbGVuZ3RoIGEpLCAoZywgbGVu
Z3RoIGIpKSBvZiBMRVNTID0+IFNPTUUgTEVTUwogICAgICAgfCBHUkVBVEVS
ID0+IFNPTUUgR1JFQVRFUgogICAgICAgfCBFUVVBTCA9PiBrYm8gKHppcCBh
IGIgQCByZXN0KSkKICAgICAgfCBrYm8yIF8gXyBfID0gcmFpc2UgQlVHICJr
Ym8iICJ2YXJpYWJsZSIKICBpbgogICAga2JvIG8gd3JhcAogIGVuZDsKCmVu
ZAooKiNsaW5lIDAuMCAiZm9sL1N1YnN0MS5zaWciKikKKCogPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PSAqKQooKiBTVUJTVElUVVRJT05TIE9OIEZJ
UlNULU9SREVSIFRFUk1TIEFORCBGT1JNVUxBUyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICopCigqIENyZWF0ZWQgYnkgSm9lIEh1cmQsIEp1bmUgMjAw
MiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
KikKKCogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqKQoKc2lnbmF0
dXJlIFN1YnN0MSA9CnNpZwoKdHlwZSAnYSBwcCAgICAgICAgICAgPSAnYSBV
c2VmdWwucHAKdHlwZSAoJ2EsICdiKSBtYXBsZXQgPSAoJ2EsICdiKSBVc2Vm
dWwubWFwbGV0CnR5cGUgdGVybSAgICAgICAgICAgID0gVGVybTEudGVybQp0
eXBlIGZvcm11bGEgICAgICAgICA9IFRlcm0xLmZvcm11bGEKCnR5cGUgc3Vi
c3QKCnZhbCB8PD58ICAgICAgICAgIDogc3Vic3QKdmFsIDo6PiAgICAgICAg
ICAgOiAoc3RyaW5nLCB0ZXJtKSBtYXBsZXQgKiBzdWJzdCAtPiBzdWJzdAp2
YWwgQD4gICAgICAgICAgICA6IHN1YnN0ICogc3Vic3QgLT4gc3Vic3QKdmFs
IG51bGwgICAgICAgICAgOiBzdWJzdCAtPiBib29sCnZhbCB0ZXJtX3N1YnN0
ICAgIDogc3Vic3QgLT4gdGVybSAtPiB0ZXJtCnZhbCBmb3JtdWxhX3N1YnN0
IDogc3Vic3QgLT4gZm9ybXVsYSAtPiBmb3JtdWxhCnZhbCBmaW5kX3JlZGV4
ICAgIDogc3RyaW5nIC0+IHN1YnN0IC0+IHRlcm0gb3B0aW9uCnZhbCBub3Jt
ICAgICAgICAgIDogc3Vic3QgLT4gc3Vic3QgICAgICAgKCogUmVtb3ZlcyBp
ZGVudGl0eSBzdWJzdGl0dXRpb25zICopCnZhbCByZXN0cmljdCAgICAgIDog
c3RyaW5nIGxpc3QgLT4gc3Vic3QgLT4gc3Vic3QKdmFsIHJlZmluZSAgICAg
ICAgOiBzdWJzdCAtPiBzdWJzdCAtPiBzdWJzdAp2YWwgaXNfcmVuYW1pbmcg
ICA6IHN1YnN0IC0+IGJvb2wKdmFsIHRvX21hcGxldHMgICAgOiBzdWJzdCAt
PiAoc3RyaW5nLCB0ZXJtKSBtYXBsZXQgbGlzdAp2YWwgZnJvbV9tYXBsZXRz
ICA6IChzdHJpbmcsIHRlcm0pIG1hcGxldCBsaXN0IC0+IHN1YnN0CnZhbCBm
b2xkbCAgICAgICAgIDogKChzdHJpbmcsIHRlcm0pIG1hcGxldCAtPiAnYSAt
PiAnYSkgLT4gJ2EgLT4gc3Vic3QgLT4gJ2EKdmFsIGZvbGRyICAgICAgICAg
OiAoKHN0cmluZywgdGVybSkgbWFwbGV0IC0+ICdhIC0+ICdhKSAtPiAnYSAt
PiBzdWJzdCAtPiAnYQp2YWwgcHBfc3Vic3QgICAgICA6IHN1YnN0IHBwCgpl
bmQKCigqI2xpbmUgMC4wICJmb2wvU3Vic3QxLnNtbCIqKQooKiA9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09ICopCigqIFNVQlNUSVRVVElPTlMgT04g
RklSU1QtT1JERVIgVEVSTVMgQU5EIEZPUk1VTEFTICAgICAgICAgICAgICAg
ICAgICAgICAgICAgKikKKCogQ3JlYXRlZCBieSBKb2UgSHVyZCwgSnVuZSAy
MDAyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAqKQooKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICopCgooKgph
cHAgbG9hZCBbIkJpbmFyeW1hcCIsICJVc2VmdWwiLCAiVGVybTEiXTsKKikK
CigqCiopCnN0cnVjdHVyZSBTdWJzdDEgOj4gU3Vic3QxID0Kc3RydWN0Cgpv
cGVuIFVzZWZ1bCBUZXJtMTsKCmluZml4ciA4ICsrOwppbmZpeHIgNyA+PjsK
aW5maXhyIDYgfHw7CmluZml4ciB8LT4gOjo+IEA+IG9vICMjOwoKc3RydWN0
dXJlIE0gPSBCaW5hcnltYXA7CgooKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tICopCigqIEhlbHBlciBmdW5jdGlvbnMuICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKikK
KCogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqKQoKZnVuIE1wdXJn
ZSAoZCwgaykgPSBmc3QgKE0ucmVtb3ZlIChkLCBrKSkgaGFuZGxlIE5vdEZv
dW5kID0+IGQ7CgooKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICop
CigqIFRoZSB1bmRlcmx5aW5nIHJlcHJlc2VudGF0aW9uLiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKikKKCogLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqKQoKZGF0YXR5cGUgc3Vic3QgPSBT
dWJzdCBvZiAoc3RyaW5nLCB0ZXJtKSBNLmRpY3Q7CgooKiAtLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tICopCigqIE9wZXJhdGlvbnMuICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgKikKKCogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAq
KQoKdmFsIHw8PnwgPSBTdWJzdCAoTS5ta0RpY3QgU3RyaW5nLmNvbXBhcmUp
OwoKZnVuIChhIHwtPiBiKSA6Oj4gKFN1YnN0IGQpID0gU3Vic3QgKE0uaW5z
ZXJ0IChkLCBhLCBiKSk7CgpmdW4gKFN1YnN0IHN1YjEpIEA+IChTdWJzdCBz
dWIyKSA9CiAgU3Vic3QgKE0uZm9sZGwgKGZuIChhLCBiLCBkKSA9PiBNLmlu
c2VydCAoZCwgYSwgYikpIHN1YjIgc3ViMSk7CgpmdW4gbnVsbCAoU3Vic3Qg
cykgPSBNLm51bUl0ZW1zIHMgPSAwOwoKZnVuIGZpbmRfcmVkZXggciAoU3Vi
c3QgZCkgPSBNLnBlZWsgKGQsIHIpOwoKZnVuIHB1cmdlIHYgKFN1YnN0IGQp
ID0gU3Vic3QgKE1wdXJnZSAoZCwgdikpOwoKbG9jYWwKICBleGNlcHRpb24g
VW5jaGFuZ2VkOwoKICBmdW4gYWx3YXlzIGYgeCA9IGYgeCBoYW5kbGUgVW5j
aGFuZ2VkID0+IHg7CgogIGZ1biBwYWlyX3VuY2hhbmdlZCBmICh4LCB5KSA9
CiAgICBsZXQKICAgICAgdmFsIChjLCB4KSA9ICh0cnVlLCBmIHgpIGhhbmRs
ZSBVbmNoYW5nZWQgPT4gKGZhbHNlLCB4KQogICAgICB2YWwgKGMsIHkpID0g
KHRydWUsIGYgeSkgaGFuZGxlIFVuY2hhbmdlZCA9PiAoYywgeSkKICAgIGlu
CiAgICAgIGlmIGMgdGhlbiAoeCwgeSkgZWxzZSByYWlzZSBVbmNoYW5nZWQK
ICAgIGVuZDsKCiAgZnVuIGxpc3RfdW5jaGFuZ2VkIGYgPQogICAgbGV0CiAg
ICAgIGZ1biBnICh4LCAoYiwgbCkpID0gKHRydWUsIGYgeCA6OiBsKSBoYW5k
bGUgVW5jaGFuZ2VkID0+IChiLCB4IDo6IGwpCiAgICAgIGZ1biBoICh0cnVl
LCBsKSA9IHJldiBsIHwgaCAoZmFsc2UsIF8pID0gcmFpc2UgVW5jaGFuZ2Vk
CiAgICBpbgogICAgICBoIG8gZm9sZGwgZyAoZmFsc2UsIFtdKQogICAgZW5k
OwoKICBmdW4gZmluZF91bmNoYW5nZWQgdiByID0KICAgIGNhc2UgZmluZF9y
ZWRleCB2IHIgb2YgU09NRSB0ID0+IHQgfCBOT05FID0+IHJhaXNlIFVuY2hh
bmdlZDsKCiAgZnVuIHRtX3N1YnN0IHIgPQogICAgbGV0CiAgICAgIGZ1biBm
IChWYXIgdikgICAgID0gZmluZF91bmNoYW5nZWQgdiByCiAgICAgICAgfCBm
IChGbiAobiwgYSkpID0gRm4gKG4sIGxpc3RfdW5jaGFuZ2VkIGYgYSkKICAg
IGluCiAgICAgIGYKICAgIGVuZDsKCiAgZnVuIGZtX3N1YnN0IHIgPQogICAg
bGV0CiAgICAgIGZ1biBmIEZhbHNlICAgICAgID0gcmFpc2UgVW5jaGFuZ2Vk
CiAgICAgICAgfCBmIFRydWUgICAgICAgID0gcmFpc2UgVW5jaGFuZ2VkCiAg
ICAgICAgfCBmIChBdG9tIHRtICApID0gQXRvbSAodG1fc3Vic3QgciB0bSkK
ICAgICAgICB8IGYgKE5vdCBwICAgICkgPSBOb3QgKGYgcCkKICAgICAgICB8
IGYgKEFuZCBwcSAgICkgPSBBbmQgKHBhaXJfdW5jaGFuZ2VkIGYgcHEpCiAg
ICAgICAgfCBmIChPciAgcHEgICApID0gT3IgIChwYWlyX3VuY2hhbmdlZCBm
IHBxKQogICAgICAgIHwgZiAoSW1wIHBxICAgKSA9IEltcCAocGFpcl91bmNo
YW5nZWQgZiBwcSkKICAgICAgICB8IGYgKElmZiBwcSAgICkgPSBJZmYgKHBh
aXJfdW5jaGFuZ2VkIGYgcHEpCiAgICAgICAgfCBmIChGb3JhbGwgdnApID0g
Zm1fc3Vic3RxIHIgRm9yYWxsIHZwCiAgICAgICAgfCBmIChFeGlzdHMgdnAp
ID0gZm1fc3Vic3RxIHIgRXhpc3RzIHZwCiAgICBpbgogICAgICBpZiBudWxs
IHIgdGhlbiBJIGVsc2UgYWx3YXlzIGYKICAgIGVuZAogIGFuZCBmbV9zdWJz
dHEgciBRICh2LCBwKSA9CiAgICBsZXQgdmFsIHYnID0gdmFyaWFudCB2IChG
ViAoZm1fc3Vic3QgKHB1cmdlIHYgcikgcCkpCiAgICBpbiBRICh2JywgZm1f
c3Vic3QgKCh2IHwtPiBWYXIgdicpIDo6PiByKSBwKQogICAgZW5kOwppbgog
IGZ1biB0ZXJtX3N1YnN0ICAgIGVudiB0bSA9IGlmIG51bGwgZW52IHRoZW4g
dG0gZWxzZSBhbHdheXMgKHRtX3N1YnN0IGVudikgdG07CiAgZnVuIGZvcm11
bGFfc3Vic3QgZW52IGZtID0gZm1fc3Vic3QgZW52IGZtOwplbmQ7CiAgCmZ1
biBub3JtIChzdWIgYXMgU3Vic3QgZGljdCkgPQogIGxldAogICAgZnVuIGNo
ZWNrIChhLCBiLCAoYywgZCkpID0KICAgICAgaWYgVmFyIGEgPSBiIHRoZW4g
KHRydWUsIGZzdCAoTS5yZW1vdmUgKGQsIGEpKSkgZWxzZSAoYywgZCkKICAg
IHZhbCAocmVtb3ZlZCwgZGljdCcpID0gTS5mb2xkbCBjaGVjayAoZmFsc2Us
IGRpY3QpIGRpY3QKICBpbgogICAgaWYgcmVtb3ZlZCB0aGVuIFN1YnN0IGRp
Y3QnIGVsc2Ugc3ViCiAgZW5kOwoKZnVuIHRvX21hcGxldHMgKFN1YnN0IHMp
ID0gbWFwIChvcHwtPikgKE0ubGlzdEl0ZW1zIHMpOwoKZnVuIGZyb21fbWFw
bGV0cyBtcyA9IGZvbGRsIChvcCA6Oj4pIHw8PnwgKHJldiBtcyk7CgpmdW4g
cmVzdHJpY3QgdnMgPQogIGZyb21fbWFwbGV0cyBvIExpc3QuZmlsdGVyIChm
biAoYSB8LT4gXykgPT4gbWVtIGEgdnMpIG8gdG9fbWFwbGV0czsKCigqIE5v
dGU6IHRoaXMganVzdCBkb2Vzbid0IHdvcmsgd2l0aCBjeWNsaWMgc3Vic3Rp
dHV0aW9ucyEgKikKZnVuIHJlZmluZSAoU3Vic3Qgc3ViMSkgc3ViMiA9CiAg
bGV0CiAgICBmdW4gZiAoKGEsIGIpLCBzKSA9CiAgICAgIGxldCB2YWwgYicg
PSB0ZXJtX3N1YnN0IHN1YjIgYgogICAgICBpbiBpZiBWYXIgYSA9IGInIHRo
ZW4gcyBlbHNlIChhIHwtPiBiJykgOjo+IHMKICAgICAgZW5kCiAgaW4KICAg
IGZvbGRsIGYgc3ViMiAoTS5saXN0SXRlbXMgc3ViMSkKICBlbmQ7Cgpsb2Nh
bAogIGV4Y2VwdGlvbiBRRgogIGZ1biBycyAodiwgVmFyIHcsIGwpID0gaWYg
bWVtIHcgbCB0aGVuIHJhaXNlIFFGIGVsc2UgdyA6OiBsCiAgICB8IHJzIChf
LCBGbiBfLCBfKSA9IHJhaXNlIFFGCmluCiAgZnVuIGlzX3JlbmFtaW5nIChT
dWJzdCBzdWIpID0gKE0uZm9sZGwgcnMgW10gc3ViOyB0cnVlKSBoYW5kbGUg
UUYgPT4gZmFsc2U7CmVuZDsKCmZ1biBmb2xkbCBmIGIgKFN1YnN0IHN1Yikg
PSBNLmZvbGRsIChmbiAocywgdCwgYSkgPT4gZiAocyB8LT4gdCkgYSkgYiBz
dWI7CgpmdW4gZm9sZHIgZiBiIChTdWJzdCBzdWIpID0gTS5mb2xkciAoZm4g
KHMsIHQsIGEpID0+IGYgKHMgfC0+IHQpIGEpIGIgc3ViOwoKdmFsIHBwX3N1
YnN0ID0KICBwcF9tYXAgdG9fbWFwbGV0cwogIChmbiBwcCA9PgogICAoZm4g
W10gPT4gcHBfc3RyaW5nIHBwICJ8PD58IgogICAgIHwgbCA9PiBwcF9saXN0
IChwcF9tYXBsZXQgcHBfc3RyaW5nIHBwX3Rlcm0pIHBwIGwpKTsKCmVuZAoo
KiNsaW5lIDAuMCAiZm9sL0tlcm5lbDEuc2lnIiopCigqID09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0gKikKKCogQSBMQ0YtU1RZTEUgTE9HSUNBTCBL
RVJORUwgRk9SIEZJUlNULU9SREVSIENMQVVTRVMgICAgICAgICAgICAgICAg
ICAgICAgICAqKQooKiBDcmVhdGVkIGJ5IEpvZSBIdXJkLCBTZXB0ZW1iZXIg
MjAwMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICop
CigqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKikKCnNpZ25hdHVy
ZSBLZXJuZWwxID0Kc2lnCgp0eXBlIHRlcm0gICAgPSBUZXJtMS50ZXJtCnR5
cGUgZm9ybXVsYSA9IFRlcm0xLmZvcm11bGEKdHlwZSBzdWJzdCAgID0gU3Vi
c3QxLnN1YnN0CgooKiBBbiBBQlNUUkFDVCB0eXBlIGZvciB0aGVvcmVtcyAq
KQplcXR5cGUgdGhtCmRhdGF0eXBlIGluZmVyZW5jZSA9IEF4aW9tIHwgUmVm
bCB8IEFzc3VtZSB8IEluc3QgfCBGYWN0b3IgfCBSZXNvbHZlIHwgRXF1YWxp
dHkKCigqIERlc3RydWN0aW9uIG9mIHRoZW9yZW1zIGlzIGZpbmUgKikKdmFs
IGRlc3RfdGhtIDogdGhtIC0+IGZvcm11bGEgbGlzdCAqIChpbmZlcmVuY2Ug
KiB0aG0gbGlzdCkKCigqIEJ1dCBjcmVhdGlvbiBpcyBvbmx5IGFsbG93ZWQg
YnkgdGhlIHByaW1pdGl2ZSBydWxlcyBvZiBpbmZlcmVuY2UgKikKdmFsIEFY
SU9NICAgIDogZm9ybXVsYSBsaXN0IC0+IHRobQp2YWwgUkVGTCAgICAgOiB0
ZXJtIC0+IHRobQp2YWwgQVNTVU1FICAgOiBmb3JtdWxhIC0+IHRobQp2YWwg
SU5TVCAgICAgOiBzdWJzdCAtPiB0aG0gLT4gdGhtCnZhbCBGQUNUT1IgICA6
IHRobSAtPiB0aG0KdmFsIFJFU09MVkUgIDogZm9ybXVsYSAtPiB0aG0gLT4g
dGhtIC0+IHRobQp2YWwgRVFVQUxJVFkgOiBmb3JtdWxhIC0+IGludCBsaXN0
IC0+IHRlcm0gLT4gYm9vbCAtPiB0aG0gLT4gdGhtCgplbmQKKCojbGluZSAw
LjAgImZvbC9LZXJuZWwxLnNtbCIqKQooKiA9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09ICopCigqIEEgTENGLVNUWUxFIExPR0lDQUwgS0VSTkVMIEZP
UiBGSVJTVC1PUkRFUiBDTEFVU0VTICAgICAgICAgICAgICAgICAgICAgICAg
KikKKCogQ3JlYXRlZCBieSBKb2UgSHVyZCwgU2VwdGVtYmVyIDIwMDEgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKQooKiA9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09ICopCgpzdHJ1Y3R1cmUgS2VybmVs
MSA6PiBLZXJuZWwxID0Kc3RydWN0CgpvcGVuIFVzZWZ1bCBUZXJtMTsKCmlu
Zml4ciB8LT4gOjo+IG9vOwoKdHlwZSBzdWJzdCAgICAgICAgPSBTdWJzdDEu
c3Vic3Q7CnZhbCBmb3JtdWxhX3N1YnN0ID0gU3Vic3QxLmZvcm11bGFfc3Vi
c3Q7CgooKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICopCigqIEFu
IEFCU1RSQUNUIHR5cGUgZm9yIHRoZW9yZW1zLiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgKikKKCogLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLSAqKQoKZGF0YXR5cGUgaW5mZXJlbmNlID0gQXhp
b20gfCBSZWZsIHwgQXNzdW1lIHwgSW5zdCB8IEZhY3RvciB8IFJlc29sdmUg
fCBFcXVhbGl0eTsKCmRhdGF0eXBlIHRobSA9IFRobSBvZiBmb3JtdWxhIGxp
c3QgKiAoaW5mZXJlbmNlICogdGhtIGxpc3QpOwoKKCogLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLSAqKQooKiBEZXN0cnVjdGlvbiBvZiB0aGVvcmVt
cyBpcyBmaW5lLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICopCigqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKikK
CmZ1biBkZXN0X3RobSAoVGhtIHRoKSA9IHRoOwoKdmFsIGNsYXVzZSA9IGZz
dCBvIGRlc3RfdGhtOwoKKCogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LSAqKQooKiBCdXQgY3JlYXRpb24gaXMgb25seSBhbGxvd2VkIGJ5IHRoZSBw
cmltaXRpdmUgcnVsZXMgb2YgaW5mZXJlbmNlLiAgICAgICAgICopCigqIC0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKikKCmZ1biBBWElPTSBjbCA9
CiAgaWYgTGlzdC5hbGwgaXNfbGl0ZXJhbCBjbCB0aGVuIFRobSAoY2wsIChB
eGlvbSwgW10pKQogIGVsc2UgcmFpc2UgRVJSICJBWElPTSIgImFyZ3VtZW50
IG5vdCBhIGxpc3Qgb2YgbGl0ZXJhbHMiOwoKZnVuIFJFRkwgdG0gPSBUaG0g
KFtta19lcSAodG0sIHRtKV0sIChSZWZsLCBbXSkpOwoKZnVuIEFTU1VNRSBm
bSA9CiAgaWYgaXNfbGl0ZXJhbCBmbSB0aGVuIFRobSAoW2ZtLCBuZWdhdGUg
Zm1dLCAoQXNzdW1lLCBbXSkpCiAgZWxzZSByYWlzZSBFUlIgIkFTU1VNRSIg
ImFyZ3VtZW50IG5vdCBhIGxpdGVyYWwiOwoKZnVuIElOU1QgZW52ICh0aCBh
cyBUaG0gKGNsLCBwcikpID0KICBsZXQKICAgIHZhbCBjbCcgPSBtYXAgKGZv
cm11bGFfc3Vic3QgZW52KSBjbAogIGluCiAgICBpZiBjbCcgPSBjbCB0aGVu
IHRoIGVsc2UKICAgICAgY2FzZSBwciBvZiAoSW5zdCwgW3RoJ10pCiAgICAg
ICAgPT4gaWYgY2wnID0gY2xhdXNlIHRoJyB0aGVuIHRoJyBlbHNlIFRobSAo
Y2wnLCAoSW5zdCwgW3RoJ10pKQogICAgICB8IF8gPT4gVGhtIChjbCcsIChJ
bnN0LCBbdGhdKSkKICBlbmQ7CgpmdW4gRkFDVE9SIHRoID0KICBsZXQgdmFs
IGNsID0gcmV2IChzZXRpZnkgKGNsYXVzZSB0aCkpCiAgaW4gaWYgY2wgPSBj
bGF1c2UgdGggdGhlbiB0aCBlbHNlIFRobSAoY2wsIChGYWN0b3IsIFt0aF0p
KQogIGVuZDsKCmZ1biBSRVNPTFZFIGZtIHRoMSB0aDIgPQogIGxldAogICAg
dmFsIGNsMSAgPSBjbGF1c2UgdGgxCiAgICB2YWwgY2wxJyA9IExpc3QuZmls
dGVyIChub3QgbyBlcXVhbCBmbSkgY2wxCiAgICB2YWwgY2wyICA9IGNsYXVz
ZSB0aDIKICAgIHZhbCBjbDInID0gTGlzdC5maWx0ZXIgKG5vdCBvIGVxdWFs
IChuZWdhdGUgZm0pKSBjbDIKICAgIHZhbCAoKSAgID0KICAgICAgYXNzZXJ0
IChjbDEgPD4gY2wxJyBvcmVsc2UgY2wyIDw+IGNsMicpCiAgICAgIChFUlIg
IlJFU09MVkUiICJyZXNvbHZhbnQgZG9lcyBub3QgZmVhdHVyZSBpbiBlaXRo
ZXIgY2xhdXNlIikKICBpbgogICAgVGhtIChjbDEnIEAgY2wyJywgKFJlc29s
dmUsIFt0aDEsIHRoMl0pKQogIGVuZDsKCmZ1biBFUVVBTElUWSBmbSBwIHJl
cyBsciB0aCA9CiAgbGV0CiAgICB2YWwgZXFfbGl0ID0KICAgICAgbGV0CiAg
ICAgICAgdmFsIHJlZCA9IGxpdGVyYWxfc3VidGVybSBwIGZtCiAgICAgIGlu
CiAgICAgICAgTm90IChta19lcSAoaWYgbHIgdGhlbiAocmVkLCByZXMpIGVs
c2UgKHJlcywgcmVkKSkpCiAgICAgIGVuZAogICAgdmFsIG90aGVyX2xpdHMg
PQogICAgICBsZXQKICAgICAgICB2YWwgbCA9IGNsYXVzZSB0aAogICAgICBp
bgogICAgICAgIGNhc2UgaW5kZXggKGVxdWFsIGZtKSBsIG9mIE5PTkUKICAg
ICAgICAgID0+IHJhaXNlIEVSUiAiRVFVQUxJVFkiICJsaXRlcmFsIGRvZXMg
bm90IG9jY3VyIGluIGNsYXVzZSIKICAgICAgICB8IFNPTUUgbiA9PiB1cGRh
dGVfbnRoIChsaXRlcmFsX3Jld3JpdGUgKHAgfC0+IHJlcykpIG4gbAogICAg
ICBlbmQKICBpbgogICAgVGhtIChlcV9saXQgOjogb3RoZXJfbGl0cywgKEVx
dWFsaXR5LCBbdGhdKSkKICBlbmQ7CgplbmQKKCojbGluZSAwLjAgImZvbC9N
YXRjaDEuc2lnIiopCigqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0g
KikKKCogTUFUQ0hJTkcgQU5EIFVOSUZJQ0FUSU9OICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKQooKiBDcmVh
dGVkIGJ5IEpvZSBIdXJkLCBTZXB0ZW1iZXIgMjAwMSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICopCigqID09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0gKikKCnNpZ25hdHVyZSBNYXRjaDEgPQpzaWcKCnR5
cGUgdGVybSAgICA9IFRlcm0xLnRlcm0KdHlwZSBmb3JtdWxhID0gVGVybTEu
Zm9ybXVsYQp0eXBlIHN1YnN0ICAgPSBTdWJzdDEuc3Vic3QKCigqIE1hdGNo
aW5nICopCnZhbCBtYXRjaGwgICAgICAgICAgOiBzdWJzdCAtPiAodGVybSAq
IHRlcm0pIGxpc3QgLT4gc3Vic3QKdmFsIG1hdGNoICAgICAgICAgICA6IHRl
cm0gLT4gdGVybSAtPiBzdWJzdAp2YWwgbWF0Y2hsX2xpdGVyYWxzIDogc3Vi
c3QgLT4gKGZvcm11bGEgKiBmb3JtdWxhKSBsaXN0IC0+IHN1YnN0CnZhbCBt
YXRjaF9saXRlcmFscyAgOiBmb3JtdWxhIC0+IGZvcm11bGEgLT4gc3Vic3QK
CigqIFVuaWZpY2F0aW9uICopCnZhbCB1bmlmeWwgICAgICAgICAgOiBzdWJz
dCAtPiAodGVybSAqIHRlcm0pIGxpc3QgLT4gc3Vic3QKdmFsIHVuaWZ5ICAg
ICAgICAgICA6IHN1YnN0IC0+IHRlcm0gLT4gdGVybSAtPiBzdWJzdAp2YWwg
dW5pZnlfYW5kX2FwcGx5IDogdGVybSAtPiB0ZXJtIC0+IHRlcm0KdmFsIHVu
aWZ5bF9saXRlcmFscyA6IHN1YnN0IC0+IChmb3JtdWxhICogZm9ybXVsYSkg
bGlzdCAtPiBzdWJzdAp2YWwgdW5pZnlfbGl0ZXJhbHMgIDogc3Vic3QgLT4g
Zm9ybXVsYSAtPiBmb3JtdWxhIC0+IHN1YnN0CgplbmQKKCojbGluZSAwLjAg
ImZvbC9NYXRjaDEuc21sIiopCigqID09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0gKikKKCogTUFUQ0hJTkcgQU5EIFVOSUZJQ0FUSU9OICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKQoo
KiBDcmVhdGVkIGJ5IEpvZSBIdXJkLCBTZXB0ZW1iZXIgMjAwMSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopCigqID09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0gKikKCigqCmFwcCBsb2FkIFsiVXNlZnVs
IiwgIk1vc21sIiwgIlRlcm0xIl07CiopCgooKgoqKQpzdHJ1Y3R1cmUgTWF0
Y2gxIDo+IE1hdGNoMSA9CnN0cnVjdAoKb3BlbiBVc2VmdWwgVGVybTE7Cgpp
bmZpeHIgfC0+IDo6PjsKCnR5cGUgc3Vic3QgICAgICAgID0gU3Vic3QxLnN1
YnN0Owp2YWwgfDw+fCAgICAgICAgICA9IFN1YnN0MS58PD58Owp2YWwgb3Ag
Ojo+ICAgICAgICA9IFN1YnN0MS46Oj47CnZhbCB0ZXJtX3N1YnN0ICAgID0g
U3Vic3QxLnRlcm1fc3Vic3Q7CnZhbCBmb3JtdWxhX3N1YnN0ID0gU3Vic3Qx
LmZvcm11bGFfc3Vic3Q7CgooKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tICopCigqIE1hdGNoaW5nLiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKikKKCog
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqKQoKZnVuIHJhd19tYXRj
aCBlbnYgeCB0bSA9CiAgKGNhc2UgU3Vic3QxLmZpbmRfcmVkZXggeCBlbnYg
b2YgTk9ORSA9PiAoeCB8LT4gdG0pIDo6PiBlbnYKICAgfCBTT01FIHRtJyA9
PgogICAgIGlmIHRtID0gdG0nIHRoZW4gZW52CiAgICAgZWxzZSByYWlzZSBF
UlIgIm1hdGNoIiAib25lIHZhciB0cnlpbmcgdG8gbWF0Y2ggdHdvIGRpZmZl
cmVudCB0ZXJtcyIpOwoKZnVuIG1hdGNobCBlbnYgW10gPSBlbnYKICB8IG1h
dGNobCBlbnYgKChWYXIgeCwgdG0pIDo6IHJlc3QpID0gbWF0Y2hsIChyYXdf
bWF0Y2ggZW52IHggdG0pIHJlc3QKICB8IG1hdGNobCBlbnYgKChGbiAoZiwg
YXJncyksIEZuIChmJywgYXJncycpKSA6OiByZXN0KSA9CiAgaWYgZiA9IGYn
IGFuZGFsc28gbGVuZ3RoIGFyZ3MgPSBsZW5ndGggYXJncycgdGhlbgogICAg
bWF0Y2hsIGVudiAoemlwIGFyZ3MgYXJncycgQCByZXN0KQogIGVsc2UgcmFp
c2UgRVJSICJtYXRjaCIgImNhbid0IG1hdGNoIHR3byBkaWZmZXJlbnQgZnVu
Y3Rpb25zIgogIHwgbWF0Y2hsIF8gXyA9IHJhaXNlIEVSUiAibWF0Y2giICJk
aWZmZXJlbnQgc3RydWN0dXJlIjsKCmZ1biBtYXRjaCB0bSB0bScgPSBTdWJz
dDEubm9ybSAobWF0Y2hsIHw8PnwgWyh0bSwgdG0nKV0pOwoKbG9jYWwKICBm
dW4gY29udiAoQXRvbSB0LCBBdG9tIHQnKSA9IFNPTUUgKHQsIHQnKQogICAg
fCBjb252IChOb3QgcCwgIE5vdCBxKSAgID0gY29udiAocCwgcSkKICAgIHwg
Y29udiAoVHJ1ZSwgICBUcnVlKSAgICA9IE5PTkUKICAgIHwgY29udiAoRmFs
c2UsICBGYWxzZSkgICA9IE5PTkUKICAgIHwgY29udiBfICAgICAgICAgICAg
ICAgICA9IHJhaXNlIEVSUiAibWF0Y2hfbGl0ZXJhbHMiICJpbmNvbXBhdGli
bGUiOwppbgogIGZ1biBtYXRjaGxfbGl0ZXJhbHMgc3ViID0gbWF0Y2hsIHN1
YiBvIExpc3QubWFwUGFydGlhbCBjb252OwplbmQ7CgpmdW4gbWF0Y2hfbGl0
ZXJhbHMgbGl0IGxpdCcgPSBTdWJzdDEubm9ybSAobWF0Y2hsX2xpdGVyYWxz
IHw8PnwgWyhsaXQsIGxpdCcpXSk7CgooKiAtLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tICopCigqIFVuaWZpY2F0aW9uLiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
KikKKCogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqKQoKbG9jYWwK
ICBmdW4gb2NjdXJzIHYgdG0gPSBtZW0gdiAoRlZUIHRtKTsKCiAgZnVuIHNv
bHZlIGVudiBbXSA9IGVudgogICAgfCBzb2x2ZSBlbnYgKCh0bTEsIHRtMikg
OjogcmVzdCkgPQogICAgc29sdmUnIGVudiAodGVybV9zdWJzdCBlbnYgdG0x
KSAodGVybV9zdWJzdCBlbnYgdG0yKSByZXN0CiAgYW5kIHNvbHZlJyBlbnYg
KFZhciB4KSB0bSByZXN0ID0KICAgIGlmIFZhciB4ID0gdG0gdGhlbiBzb2x2
ZSBlbnYgcmVzdAogICAgZWxzZSBpZiBvY2N1cnMgeCB0bSB0aGVuIHJhaXNl
IEVSUiAidW5pZnkiICJvY2N1cnMgY2hlY2siCiAgICBlbHNlCiAgICAgIChj
YXNlIFN1YnN0MS5maW5kX3JlZGV4IHggZW52IG9mIE5PTkUKICAgICAgICAg
PT4gc29sdmUgKFN1YnN0MS5yZWZpbmUgZW52ICgoeCB8LT4gdG0pIDo6PiB8
PD58KSkgcmVzdAogICAgICAgfCBTT01FIHRtJyA9PiBzb2x2ZScgZW52IHRt
JyB0bSByZXN0KQogICAgfCBzb2x2ZScgZW52IHRtICh0bScgYXMgVmFyIF8p
IHJlc3QgPSBzb2x2ZScgZW52IHRtJyB0bSByZXN0CiAgICB8IHNvbHZlJyBl
bnYgKEZuIChmLCBhcmdzKSkgKEZuIChmJywgYXJncycpKSByZXN0ID0KICAg
IGlmIGYgPSBmJyBhbmRhbHNvIGxlbmd0aCBhcmdzID0gbGVuZ3RoIGFyZ3Mn
IHRoZW4KICAgICAgc29sdmUgZW52ICh6aXAgYXJncyBhcmdzJyBAIHJlc3Qp
CiAgICBlbHNlIHJhaXNlIEVSUiAidW5pZnkiICJkaWZmZXJlbnQgc3RydWN0
dXJlIjsKaW4KICB2YWwgdW5pZnlsID0gc29sdmU7CmVuZDsKCmZ1biB1bmlm
eSBlbnYgdG0gdG0nID0gdW5pZnlsIGVudiBbKHRtLCB0bScpXTsKCmZ1biB1
bmlmeV9hbmRfYXBwbHkgdG0gdG0nID0gdGVybV9zdWJzdCAodW5pZnkgfDw+
fCB0bSB0bScpIHRtOwoKbG9jYWwKICBmdW4gY29udiAoQXRvbSB0LCBBdG9t
IHQnKSA9IFNPTUUgKHQsIHQnKQogICAgfCBjb252IChOb3QgcCwgIE5vdCBx
KSAgID0gY29udiAocCwgcSkKICAgIHwgY29udiAoVHJ1ZSwgICBUcnVlKSAg
ICA9IE5PTkUKICAgIHwgY29udiAoRmFsc2UsICBGYWxzZSkgICA9IE5PTkUK
ICAgIHwgY29udiBfICAgICAgICAgICAgICAgICA9IHJhaXNlIEVSUiAidW5p
ZnlfbGl0ZXJhbHMiICJpbmNvbXBhdGlibGUiOwppbgogIGZ1biB1bmlmeWxf
bGl0ZXJhbHMgZW52ID0gdW5pZnlsIGVudiBvIExpc3QubWFwUGFydGlhbCBj
b252OwplbmQ7CgpmdW4gdW5pZnlfbGl0ZXJhbHMgZW52IGxpdCBsaXQnID0g
dW5pZnlsX2xpdGVyYWxzIGVudiBbKGxpdCwgbGl0JyldOwoKZW5kCigqI2xp
bmUgMC4wICJmb2wvVGVybU5ldDEuc2lnIiopCigqID09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0gKikKKCogTUFUQ0hJTkcgQU5EIFVOSUZJQ0FUSU9O
IEZPUiBTRVRTIE9GIFRFUk1TICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAqKQooKiBDcmVhdGVkIGJ5IEpvZSBIdXJkLCBTZXB0ZW1iZXIgMjAw
MSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopCigq
ID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKikKCnNpZ25hdHVyZSBU
ZXJtTmV0MSA9CnNpZwoKdHlwZSAnYSBwcCAgICAgICAgICAgPSAnYSBVc2Vm
dWwucHAKdHlwZSAoJ2EsICdiKSBtYXBsZXQgPSAoJ2EsICdiKSBVc2VmdWwu
bWFwbGV0CnR5cGUgdGVybSAgICAgICAgICAgID0gVGVybTEudGVybQoKdHlw
ZSAnYSB0ZXJtX21hcAoKdmFsIGVtcHR5ICAgICAgICA6ICdhIHRlcm1fbWFw
CnZhbCBpbnNlcnQgICAgICAgOiAodGVybSwgJ2EpIG1hcGxldCAtPiAnYSB0
ZXJtX21hcCAtPiAnYSB0ZXJtX21hcAp2YWwgbWF0Y2ggICAgICAgIDogJ2Eg
dGVybV9tYXAgLT4gdGVybSAtPiAnYSBsaXN0CnZhbCBtYXRjaGVkICAgICAg
OiAnYSB0ZXJtX21hcCAtPiB0ZXJtIC0+ICdhIGxpc3QKdmFsIHVuaWZ5ICAg
ICAgICA6ICdhIHRlcm1fbWFwIC0+IHRlcm0gLT4gJ2EgbGlzdAp2YWwgc2l6
ZSAgICAgICAgIDogJ2EgdGVybV9tYXAgLT4gaW50CnZhbCBmcm9tX21hcGxl
dHMgOiAodGVybSwgJ2EpIG1hcGxldCBsaXN0IC0+ICdhIHRlcm1fbWFwCnZh
bCB0b19saXN0ICAgICAgOiAnYSB0ZXJtX21hcCAtPiAnYSBsaXN0CnZhbCBw
cF90ZXJtX21hcCAgOiAnYSBwcCAtPiAnYSB0ZXJtX21hcCBwcAoKZW5kCigq
I2xpbmUgMC4wICJmb2wvVGVybU5ldDEuc21sIiopCigqID09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0gKikKKCogTUFUQ0hJTkcgQU5EIFVOSUZJQ0FU
SU9OIEZPUiBTRVRTIE9GIFRFUk1TICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAqKQooKiBDcmVhdGVkIGJ5IEpvZSBIdXJkLCBTZXB0ZW1iZXIg
MjAwMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICop
CigqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKikKCigqCmFwcCBs
b2FkIFsiVXNlZnVsIiwgIk1vc21sIiwgIlRlcm0xIl07CiopCgooKgoqKQpz
dHJ1Y3R1cmUgVGVybU5ldDEgOj4gVGVybU5ldDEgPQpzdHJ1Y3QKCm9wZW4g
VXNlZnVsIFRlcm0xOwoKaW5maXhyIHwtPiA6Oj4gb287Cgp2YWwgZmxhdHRl
biA9IExpc3QuY29uY2F0OwoKKCogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLSAqKQooKiBIZWxwZXIgZnVuY3Rpb25zLiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopCigq
IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKikKCmxvY2FsCiAgZnVu
IGZpZm9fb3JkZXIgKG0sIF8pIChuLCBfKSA9IG0gPD0gbjsKaW4KICBmdW4g
cmVzdG9yZV9maWZvX29yZGVyIGwgPSBtYXAgc25kIChzb3J0IGZpZm9fb3Jk
ZXIgbCk7CmVuZDsKCmZ1biBwYXJ0aXRpb25fZmluZCBmIGwgPQogIGxldAog
ICAgZnVuIHBmIF8gW10gPSAoTk9ORSwgbCkKICAgICAgfCBwZiBkZWFsdCAo
eCA6OiB4cykgPQogICAgICBpZiBmIHggdGhlbiAoU09NRSB4LCBMaXN0LnJl
dkFwcGVuZCAoZGVhbHQsIHhzKSkgZWxzZSBwZiAoeCA6OiBkZWFsdCkgeHMK
ICBpbgogICAgcGYgW10gbAogIGVuZDsKCigqIC0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0gKikKKCogVGVybSBkaXNjcmltaW5hdGlvbiB0cmVlcyBh
cmUgb3B0aW1pemVkIGZvciBtYXRjaCBxdWVyaWVzLiAgICAgICAgICAgICAg
ICAqKQooKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICopCgpkYXRh
dHlwZSBwYXR0ZXJuID0gVkFSIHwgRk4gb2Ygc3RyaW5nICogaW50OwoKdHlw
ZSAnYSBtYXAgPSAocGF0dGVybiwgJ2EpIHRyZWU7CgpkYXRhdHlwZSAnYSB0
ZXJtX21hcCA9IE1BUCBvZiBpbnQgKiAoaW50ICogJ2EpIG1hcCBsaXN0OwoK
dmFsIGVtcHR5ID0gTUFQICgwLCBbXSk7CgpmdW4gc2l6ZSAoTUFQIChpLCBf
KSkgPSBpOwoKZnVuIHRvX2xpc3QgKE1BUCAoXywgbikpID0KICByZXN0b3Jl
X2ZpZm9fb3JkZXIgKGZsYXR0ZW4gKG1hcCAodHJlZV9mb2xkciAoSyBmbGF0
dGVuKSB3cmFwKSBuKSk7CgpmdW4gcHBfdGVybV9tYXAgcHBfYSA9IHBwX21h
cCB0b19saXN0IChwcF9saXN0IHBwX2EpOwoKbG9jYWwKICBmdW4gZmluZF9w
YXQgeCAoQlJBTkNIIChwLCBfKSkgPSBwID0geAogICAgfCBmaW5kX3BhdCBf
IChMRUFGIF8pID0gcmFpc2UgQlVHICJmaW5kX3BhdCIgIm1pc3BsYWNlZCBM
RUFGIjsKCiAgZnVuIGFkZCBhIFtdIGwgPSBMRUFGIGEgOjogbAogICAgfCBh
ZGQgYSAodG0gOjogcmVzdCkgbCA9CiAgICBsZXQKICAgICAgdmFsIChwYXQs
IHJlc3QpID0KICAgICAgICBjYXNlIHRtIG9mIFZhciBfID0+IChWQVIsIHJl
c3QpCiAgICAgICAgfCBGbiAoZiwgYXJncykgPT4gKEZOIChmLCBsZW5ndGgg
YXJncyksIGFyZ3MgQCByZXN0KQogICAgICB2YWwgKHRoaXMsIG90aGVycykg
PSBwYXJ0aXRpb25fZmluZCAoZmluZF9wYXQgcGF0KSBsCiAgICAgIHZhbCBu
ZXh0ID0KICAgICAgICBjYXNlIHRoaXMgb2YgTk9ORSA9PiBbXQogICAgICAg
IHwgU09NRSAoQlJBTkNIIChfLCBsKSkgPT4gbAogICAgICAgIHwgU09NRSAo
TEVBRiBfKSA9PiByYWlzZSBCVUcgImFkZCIgIm1pc3BsYWNlZCBMRUFGIgog
ICAgaW4KICAgICAgQlJBTkNIIChwYXQsIGFkZCBhIHJlc3QgbmV4dCkgOjog
b3RoZXJzCiAgICBlbmQ7CmluCiAgZnVuIGluc2VydCAodG0gfC0+IGEpIChN
QVAgKGksIG4pKSA9IE1BUCAoaSArIDEsIGFkZCAoaSwgYSkgW3RtXSBuKQog
IGhhbmRsZSBFUlJfRVhOIF8gPT4gcmFpc2UgQlVHICJpbnNlcnQiICJzaG91
bGQgbmV2ZXIgZmFpbCI7CmVuZDsKCmZ1biBmcm9tX21hcGxldHMgbCA9IGZv
bGRsICh1bmN1cnJ5IGluc2VydCkgZW1wdHkgbDsKCmxvY2FsCiAgZnVuIG1h
dCBWQVIgKF8gOjogcmVzdCkgPSBTT01FIHJlc3QKICAgIHwgbWF0IChGTiAo
ZiwgbikpIChGbiAoZywgYXJncykgOjogcmVzdCkgPQogICAgaWYgZiA9IGcg
YW5kYWxzbyBuID0gbGVuZ3RoIGFyZ3MgdGhlbiBTT01FIChhcmdzIEAgcmVz
dCkgZWxzZSBOT05FCiAgICB8IG1hdCAoRk4gXykgKFZhciBfIDo6IF8pID0g
Tk9ORQogICAgfCBtYXQgXyBbXSA9IHJhaXNlIEJVRyAibWF0Y2giICJyYW4g
b3V0IG9mIHN1YnRlcm1zIjsKCiAgZnVuIGZpbmFsIGEgW10gPSBTT01FIGEK
ICAgIHwgZmluYWwgXyAoXyA6OiBfKSA9IHJhaXNlIEJVRyAibWF0Y2giICJ0
b28gbWFueSBzdWJ0ZXJtcyI7CmluCiAgZnVuIG1hdGNoIChNQVAgKF8sIG4p
KSB0bSA9CiAgICByZXN0b3JlX2ZpZm9fb3JkZXIgKGZsYXR0ZW4gKG1hcCAo
dHJlZV9wYXJ0aWFsX2ZvbGRsIG1hdCBmaW5hbCBbdG1dKSBuKSkKICBoYW5k
bGUgRVJSX0VYTiBfID0+IHJhaXNlIEJVRyAibWF0Y2giICJzaG91bGQgbmV2
ZXIgZmFpbCI7CmVuZDsKCmxvY2FsCiAgZnVuIG1vcmUgVkFSID0gMCB8IG1v
cmUgKEZOIChmLCBuKSkgPSBuOwogIGZ1biBtYXQgcGF0ICgwLCBWYXIgXyA6
OiByZXN0KSA9IFNPTUUgKG1vcmUgcGF0LCByZXN0KQogICAgfCBtYXQgVkFS
ICgwLCBGbiBfIDo6IF8pID0gTk9ORQogICAgfCBtYXQgKEZOIChmLCBuKSkg
KDAsIEZuIChnLCBhcmdzKSA6OiByZXN0KSA9CiAgICBpZiBmID0gZyBhbmRh
bHNvIG4gPSBsZW5ndGggYXJncyB0aGVuIFNPTUUgKDAsIGFyZ3MgQCByZXN0
KSBlbHNlIE5PTkUKICAgIHwgbWF0IF8gKDAsIFtdKSA9IHJhaXNlIEJVRyAi
bWF0Y2hlZCIgInJhbiBvdXQgb2Ygc3VidGVybXMiCiAgICB8IG1hdCBwYXQg
KG4sIHJlc3QpID0gU09NRSAobW9yZSBwYXQgKyBuIC0gMSwgcmVzdCk7Cgog
IGZ1biBmaW5hbCBhICgwLCBbXSkgPSBTT01FIGEKICAgIHwgZmluYWwgXyAo
MCwgXyA6OiBfKSA9IHJhaXNlIEJVRyAibWF0Y2hlZCIgInRvbyBtYW55IHN1
YnRlcm1zIgogICAgfCBmaW5hbCBfIChuLCBfKSA9IHJhaXNlIEJVRyAibWF0
Y2hlZCIgInN0aWxsIHNraXBwaW5nIjsKaW4KICBmdW4gbWF0Y2hlZCAoTUFQ
IChfLCBuKSkgdG0gPQogICAgcmVzdG9yZV9maWZvX29yZGVyIChmbGF0dGVu
IChtYXAgKHRyZWVfcGFydGlhbF9mb2xkbCBtYXQgZmluYWwgKDAsW3RtXSkp
IG4pKQogIGhhbmRsZSBFUlJfRVhOIF8gPT4gcmFpc2UgQlVHICJtYXRjaGVk
IiAic2hvdWxkIG5ldmVyIGZhaWwiOwplbmQ7Cgpsb2NhbAogIGZ1biBtb3Jl
IFZBUiA9IDAgfCBtb3JlIChGTiAoZiwgbikpID0gbjsKICBmdW4gbWF0IHBh
dCAoMCwgVmFyIF8gOjogcmVzdCkgPSBTT01FIChtb3JlIHBhdCwgcmVzdCkK
ICAgIHwgbWF0IFZBUiAoMCwgRm4gXyA6OiByZXN0KSA9IFNPTUUgKDAsIHJl
c3QpCiAgICB8IG1hdCAoRk4gKGYsIG4pKSAoMCwgRm4gKGcsIGFyZ3MpIDo6
IHJlc3QpID0KICAgIGlmIGYgPSBnIGFuZGFsc28gbiA9IGxlbmd0aCBhcmdz
IHRoZW4gU09NRSAoMCwgYXJncyBAIHJlc3QpIGVsc2UgTk9ORQogICAgfCBt
YXQgXyAoMCwgW10pID0gcmFpc2UgQlVHICJ1bmlmeSIgInJhbiBvdXQgb2Yg
c3VidGVybXMiCiAgICB8IG1hdCBwYXQgKG4sIHJlc3QpID0gU09NRSAobW9y
ZSBwYXQgKyBuIC0gMSwgcmVzdCk7CgogIGZ1biBmaW5hbCBhICgwLCBbXSkg
PSBTT01FIGEKICAgIHwgZmluYWwgXyAoMCwgXyA6OiBfKSA9IHJhaXNlIEJV
RyAidW5pZnkiICJ0b28gbWFueSBzdWJ0ZXJtcyIKICAgIHwgZmluYWwgXyAo
biwgXykgPSByYWlzZSBCVUcgInVuaWZ5IiAic3RpbGwgc2tpcHBpbmciOwpp
bgogIGZ1biB1bmlmeSAoTUFQIChfLCBuKSkgdG0gPQogICAgcmVzdG9yZV9m
aWZvX29yZGVyIChmbGF0dGVuIChtYXAgKHRyZWVfcGFydGlhbF9mb2xkbCBt
YXQgZmluYWwgKDAsW3RtXSkpIG4pKQogIGhhbmRsZSBFUlJfRVhOIF8gPT4g
cmFpc2UgQlVHICJ1bmlmeSIgInNob3VsZCBuZXZlciBmYWlsIjsKZW5kOwoK
KCogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqKQooKiBXZSBjYW4g
b3ZlcmxheSB0aGUgYWJvdmUgdHlwZSB3aXRoIGEgc2ltcGxlIGxpc3QgdHlw
ZS4gICAgICAgICAgICAgICAgICAgICopCigqIC0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0gKikKKCoKdHlwZSAnYSBzaW1wbGUgPSBpbnQgKiBpbnQg
KiB0ZXJtIGxpc3QgKiAnYSBsaXN0OwoKdHlwZSAnYSB0ZXJtX21hcCA9ICgn
YSBzaW1wbGUsICdhIHRlcm1fbWFwKSBzdW07CgpmdW4gY2hlY2sgKDAsIF8s
IHQsIGEpID0KICBJTlIgKGZyb21fbWFwbGV0cyAoZm9sZGwgKGZuICh4LCB4
cykgPT4gb3B8LT4geCA6OiB4cykgW10gKHppcCB0IGEpKSkKICB8IGNoZWNr
IHAgPSBJTkwgcDsKCnZhbCBlbXB0eSA6ICdhIHRlcm1fbWFwID0gSU5SIGVt
cHR5OwoKZnVuIG5ldyBuID0gY2hlY2sgKG4sIDAsIFtdLCBbXSk7Cgp2YWwg
aW5zZXJ0ID0gZm4gbSA9PgogIChmbiBJTkwgKG4sIHMsIHRzLCB4cykgPT4K
ICAgICAgKGNhc2UgbSBvZiB0IHwtPiB4ID0+IGNoZWNrIChuIC0gMSwgcyAr
IDEsIHQgOjogdHMsIHggOjogeHMpKQogICAgfCBJTlIgZCA9PiBJTlIgKGlu
c2VydCBtIGQpKTsKCnZhbCBtYXRjaCA9IGZuIElOTCAoXywgXywgXywgeHMp
ID0+IEsgKHJldiB4cykgfCBJTlIgZCA9PiBtYXRjaCBkOwoKdmFsIG1hdGNo
ZWQgPSBmbiBJTkwgKF8sIF8sIF8sIHhzKSA9PiBLIChyZXYgeHMpIHwgSU5S
IGQgPT4gbWF0Y2hlZCBkOwoKdmFsIHVuaWZ5ID0gZm4gSU5MIChfLCBfLCBf
LCB4cykgPT4gSyAocmV2IHhzKSB8IElOUiBkID0+IHVuaWZ5IGQ7Cgp2YWwg
c2l6ZSA9IGZuIElOTCAoXywgcywgXywgXykgPT4gcyB8IElOUiBkID0+IHNp
emUgZDsKCnZhbCBmcm9tX21hcGxldHMgPSBJTlIgbyBmcm9tX21hcGxldHM7
Cgp2YWwgdG9fbGlzdCA9IGZuIElOTCAoXywgXywgXywgeHMpID0+IHJldiB4
cyB8IElOUiBkID0+IHRvX2xpc3QgZDsKCnZhbCBwcF90ZXJtX21hcCA9CiAg
Zm4gcHBfYSA9PiBmbiBwcCA9PgogIChmbiBJTkwgKF8sIF8sIF8sIHhzKSA9
PiBwcF9saXN0IHBwX2EgcHAgeHMgfCBJTlIgZCA9PiBwcF90ZXJtX21hcCBw
cF9hIHBwIGQpOwoqKQoKZW5kCigqI2xpbmUgMC4wICJmb2wvTGl0ZXJhbE5l
dDEuc2lnIiopCigqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKikK
KCogTUFUQ0hJTkcgQU5EIFVOSUZJQ0FUSU9OIEZPUiBTRVRTIE9GIExJVEVS
QUxTICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKQooKiBDcmVhdGVk
IGJ5IEpvZSBIdXJkLCBKdW5lIDIwMDIgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICopCigqID09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0gKikKCnNpZ25hdHVyZSBMaXRlcmFsTmV0MSA9CnNpZwoK
dHlwZSAnYSBwcCAgICAgICAgICAgPSAnYSBVc2VmdWwucHAKdHlwZSBmb3Jt
dWxhICAgICAgICAgPSBUZXJtMS5mb3JtdWxhCnR5cGUgKCdhLCAnYikgbWFw
bGV0ID0gKCdhLCAnYikgVGVybTEubWFwbGV0Cgp0eXBlICdhIGxpdGVyYWxf
bWFwCgp2YWwgZW1wdHkgICAgICAgICAgOiAnYSBsaXRlcmFsX21hcAp2YWwg
aW5zZXJ0ICAgICAgICAgOiAoZm9ybXVsYSwgJ2EpIG1hcGxldCAtPiAnYSBs
aXRlcmFsX21hcCAtPiAnYSBsaXRlcmFsX21hcAp2YWwgbWF0Y2ggICAgICAg
ICAgOiAnYSBsaXRlcmFsX21hcCAtPiBmb3JtdWxhIC0+ICdhIGxpc3QKdmFs
IG1hdGNoZWQgICAgICAgIDogJ2EgbGl0ZXJhbF9tYXAgLT4gZm9ybXVsYSAt
PiAnYSBsaXN0CnZhbCB1bmlmeSAgICAgICAgICA6ICdhIGxpdGVyYWxfbWFw
IC0+IGZvcm11bGEgLT4gJ2EgbGlzdAp2YWwgc2l6ZSAgICAgICAgICAgOiAn
YSBsaXRlcmFsX21hcCAtPiBpbnQKdmFsIHNpemVfcHJvZmlsZSAgIDogJ2Eg
bGl0ZXJhbF9tYXAgLT4ge3QgOiBpbnQsIGYgOiBpbnQsIHAgOiBpbnQsIG4g
OiBpbnR9CnZhbCBmcm9tX21hcGxldHMgICA6IChmb3JtdWxhLCAnYSkgbWFw
bGV0IGxpc3QgLT4gJ2EgbGl0ZXJhbF9tYXAKdmFsIHRvX2xpc3QgICAgICAg
IDogJ2EgbGl0ZXJhbF9tYXAgLT4gJ2EgbGlzdAp2YWwgcHBfbGl0ZXJhbF9t
YXAgOiAnYSBwcCAtPiAnYSBsaXRlcmFsX21hcCBwcAoKZW5kCigqI2xpbmUg
MC4wICJmb2wvTGl0ZXJhbE5ldDEuc21sIiopCigqID09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0gKikKKCogTUFUQ0hJTkcgQU5EIFVOSUZJQ0FUSU9O
IEZPUiBTRVRTIE9GIExJVEVSQUxTICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAqKQooKiBDcmVhdGVkIGJ5IEpvZSBIdXJkLCBKdW5lIDIwMDIgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopCigq
ID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKikKCigqCmFwcCBsb2Fk
IFsiVXNlZnVsIiwgIk1vc21sIiwgIlRlcm0xIl07CiopCgooKgoqKQpzdHJ1
Y3R1cmUgTGl0ZXJhbE5ldDEgOj4gTGl0ZXJhbE5ldDEgPQpzdHJ1Y3QKCm9w
ZW4gVXNlZnVsIFRlcm0xOwoKaW5maXhyIHwtPiA6Oj4gb287CgpzdHJ1Y3R1
cmUgVCA9IFRlcm1OZXQxOwoKKCogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLSAqKQooKiBMaXRlcmFsIG5ldHMuICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopCigq
IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKikKCnR5cGUgJ2EgbGl0
ZXJhbF9tYXAgPQogICgnYSBULnRlcm1fbWFwICogJ2EgVC50ZXJtX21hcCkg
KiAoKGludCAqICdhIGxpc3QpICogKGludCAqICdhIGxpc3QpKTsKCnZhbCBl
bXB0eSA9ICgoVC5lbXB0eSwgVC5lbXB0eSksICgoMCwgW10pLCAoMCwgW10p
KSk7CgpmdW4gaW5zZXJ0IChBdG9tIGEgfC0+IGIpICgocCwgbiksIHRmKSAg
ICAgICA9ICgoVC5pbnNlcnQgKGEgfC0+IGIpIHAsIG4pLCB0ZikKICB8IGlu
c2VydCAoTm90IChBdG9tIGEpIHwtPiBiKSAoKHAsIG4pLCB0ZikgPSAoKHAs
IFQuaW5zZXJ0IChhIHwtPiBiKSBuKSwgdGYpCiAgfCBpbnNlcnQgKFRydWUg
fC0+IGIpIChwbiwgKChuLCBsKSwgZikpICAgID0gKHBuLCAoKG4gKyAxLCBi
IDo6IGwpLCBmKSkKICB8IGluc2VydCAoRmFsc2UgfC0+IGIpIChwbiwgKHQs
IChuLCBsKSkpICAgPSAocG4sICh0LCAobiArIDEsIGIgOjogbCkpKQogIHwg
aW5zZXJ0IChmIHwtPiBfKSBfID0gcmFpc2UgQlVHICJpbnNlcnQiICgibm90
IGEgbGl0OiAiXmZvcm11bGFfdG9fc3RyaW5nIGYpOwoKZnVuIGZyb21fbWFw
bGV0cyBsID0gZm9sZGwgKHVuY3VycnkgaW5zZXJ0KSBlbXB0eSBsOwoKZnVu
IHRvX2xpc3QgKChwb3MsIG5lZyksICgoXywgdCksIChfLCBmKSkpID0KICBy
ZXYgdCBAIHJldiBmIEAgVC50b19saXN0IHBvcyBAIFQudG9fbGlzdCBuZWc7
CgpmdW4gcHBfbGl0ZXJhbF9tYXAgcHBfYSA9IHBwX21hcCB0b19saXN0IChw
cF9saXN0IHBwX2EpOwoKbG9jYWwKICBmdW4gcG9zICAgICAoKHBvcywgXyAg
KSwgXyAgICAgICAgICAgICAgICkgPSBULnNpemUgcG9zOwogIGZ1biBuZWcg
ICAgICgoXywgICBuZWcpLCBfICAgICAgICAgICAgICAgKSA9IFQuc2l6ZSBu
ZWc7CiAgZnVuIHRydXRoICAgKF8sICAgICAgICAgICgobiwgXyksIF8gICAg
ICkpID0gbjsKICBmdW4gZmFsc2l0eSAoXywgICAgICAgICAgKF8sICAgICAg
KG4sIF8pKSkgPSBuOwppbgogIGZ1biBzaXplIGwgICAgICAgICA9IHRydXRo
IGwgKyBmYWxzaXR5IGwgKyBwb3MgbCArIG5lZyBsOwogIGZ1biBzaXplX3By
b2ZpbGUgbCA9IHt0ID0gdHJ1dGggbCwgZiA9IGZhbHNpdHkgbCwgcCA9IHBv
cyBsLCBuID0gbmVnIGx9OwplbmQ7CgpmdW4gbWF0Y2ggKChwb3MsIF8pLCBf
KSAoQXRvbSBhKSA9IFQubWF0Y2ggcG9zIGEKICB8IG1hdGNoICgoXywgbmVn
KSwgXykgKE5vdCAoQXRvbSBhKSkgPSBULm1hdGNoIG5lZyBhCiAgfCBtYXRj
aCAoXywgKChfLCB0KSwgXykpIFRydWUgPSByZXYgdAogIHwgbWF0Y2ggKF8s
IChfLCAoXywgZikpKSBGYWxzZSA9IHJldiBmCiAgfCBtYXRjaCBfIF8gPSBy
YWlzZSBCVUcgIm1hdGNoIiAibm90IGEgbGl0ZXJhbCI7CgpmdW4gbWF0Y2hl
ZCAoKHBvcywgXyksIF8pIChBdG9tIGEpID0gVC5tYXRjaGVkIHBvcyBhCiAg
fCBtYXRjaGVkICgoXywgbmVnKSwgXykgKE5vdCAoQXRvbSBhKSkgPSBULm1h
dGNoZWQgbmVnIGEKICB8IG1hdGNoZWQgKF8sICgoXywgdCksIF8pKSBUcnVl
ID0gcmV2IHQKICB8IG1hdGNoZWQgKF8sIChfLCAoXywgZikpKSBGYWxzZSA9
IHJldiBmCiAgfCBtYXRjaGVkIF8gXyA9IHJhaXNlIEJVRyAibWF0Y2hlZCIg
Im5vdCBhIGxpdGVyYWwiOwoKZnVuIHVuaWZ5ICgocG9zLCBfKSwgXykgKEF0
b20gYSkgPSBULnVuaWZ5IHBvcyBhCiAgfCB1bmlmeSAoKF8sIG5lZyksIF8p
IChOb3QgKEF0b20gYSkpID0gVC51bmlmeSBuZWcgYQogIHwgdW5pZnkgKF8s
ICgoXywgdCksIF8pKSBUcnVlID0gcmV2IHQKICB8IHVuaWZ5IChfLCAoXywg
KF8sIGYpKSkgRmFsc2UgPSByZXYgZgogIHwgdW5pZnkgXyBfID0gcmFpc2Ug
QlVHICJ1bmlmeSIgIm5vdCBhIGxpdGVyYWwiOwoKZW5kCigqI2xpbmUgMC4w
ICJmb2wvU3Vic3VtZTEuc2lnIiopCigqID09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0gKikKKCogQSBUWVBFIEZPUiBTVUJTVU1QVElPTiBDSEVDS0lO
RyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAq
KQooKiBDcmVhdGVkIGJ5IEpvZSBIdXJkLCBBcHJpbCAyMDAyICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopCigqID09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0gKikKCnNpZ25hdHVyZSBTdWJzdW1l
MSA9CnNpZwoKdHlwZSAnYSBwcCAgICAgICAgICAgPSAnYSBVc2VmdWwucHAK
dHlwZSAoJ2EsICdiKSBtYXBsZXQgPSAoJ2EsICdiKSBVc2VmdWwubWFwbGV0
CnR5cGUgZm9ybXVsYSAgICAgICAgID0gVGVybTEuZm9ybXVsYQp0eXBlIHN1
YnN0ICAgICAgICAgICA9IFN1YnN0MS5zdWJzdAoKdHlwZSAnYSBzdWJzdW1l
Cgp2YWwgZW1wdHkgICAgICAgICAgICAgOiAnYSBzdWJzdW1lCnZhbCBhZGQg
ICAgICAgICAgICAgICA6IChmb3JtdWxhIGxpc3QsICdhKSBtYXBsZXQgLT4g
J2Egc3Vic3VtZSAtPiAnYSBzdWJzdW1lCnZhbCBzdWJzdW1lZCAgICAgICAg
ICA6ICdhIHN1YnN1bWUgLT4gZm9ybXVsYSBsaXN0IC0+IChzdWJzdCAqICdh
KSBsaXN0CnZhbCBzdHJpY3RseV9zdWJzdW1lZCA6ICdhIHN1YnN1bWUgLT4g
Zm9ybXVsYSBsaXN0IC0+IChzdWJzdCAqICdhKSBsaXN0CnZhbCBpbmZvICAg
ICAgICAgICAgICA6ICdhIHN1YnN1bWUgLT4gc3RyaW5nCnZhbCBwcF9zdWJz
dW0gICAgICAgICA6ICdhIHN1YnN1bWUgcHAKCmVuZAooKiNsaW5lIDAuMCAi
Zm9sL1N1YnN1bWUxLnNtbCIqKQooKiA9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09ICopCigqIEEgVFlQRSBGT1IgU1VCU1VNUFRJT04gQ0hFQ0tJTkcg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKikK
KCogQ3JlYXRlZCBieSBKb2UgSHVyZCwgQXByaWwgMjAwMiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKQooKiA9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09ICopCgooKgphcHAgbG9hZCBbIlRobTEi
LCAiTWF0Y2gxIl07CiopCgooKgoqKQpzdHJ1Y3R1cmUgU3Vic3VtZTEgOj4g
U3Vic3VtZTEgPQpzdHJ1Y3QKCmluZml4IHwtPiA6Oj47CgpvcGVuIFVzZWZ1
bCBUZXJtMSBNYXRjaDE7CgpzdHJ1Y3R1cmUgTiA9IExpdGVyYWxOZXQxOwoK
dmFsIG9maWx0ZXIgICAgICAgPSBPcHRpb24uZmlsdGVyOwp0eXBlIHN1YnN0
ICAgICAgICA9IFN1YnN0MS5zdWJzdDsKdmFsIHw8PnwgICAgICAgICAgPSBT
dWJzdDEufDw+fDsKdmFsIG9wIDo6PiAgICAgICAgPSBTdWJzdDEuOjo+Owp2
YWwgdGVybV9zdWJzdCAgICA9IFN1YnN0MS50ZXJtX3N1YnN0Owp2YWwgZm9y
bXVsYV9zdWJzdCA9IFN1YnN0MS5mb3JtdWxhX3N1YnN0OwoKKCogLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqKQooKiBDaGF0dGluZy4gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICopCigqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0gKikKCnZhbCAoKSA9IHRyYWNlcyA6PSB7bW9kdWxlID0gIlN1YnN1bWUx
IiwgYWxpZ25tZW50ID0gSyAxfSA6OiAhdHJhY2VzOwoKZnVuIGNoYXQgbCBt
ID0gdHJhY2Uge21vZHVsZSA9ICJTdWJzdW1lMSIsIG1lc3NhZ2UgPSBtLCBs
ZXZlbCA9IGx9OwoKKCogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAq
KQooKiBIZWxwZXIgZnVuY3Rpb25zLiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopCigqIC0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKikKCnZhbCBmcm96ZW5fcHJlZml4
ID0gIkZST1pFTl9fIjsKCmZ1biBta19mcm96ZW4gdiA9IEZuIChmcm96ZW5f
cHJlZml4IF4gdiwgW10pOwoKbG9jYWwKICB2YWwgY2hrID0gU3RyaW5nLmlz
UHJlZml4IGZyb3plbl9wcmVmaXg7CiAgdmFsIGRlc3QgPQogICAgbGV0IHZh
bCBsID0gc2l6ZSBmcm96ZW5fcHJlZml4IGluIGZuIHMgPT4gU3RyaW5nLmV4
dHJhY3QgKHMsIGwsIE5PTkUpIGVuZDsKaW4KICBmdW4gZGVzdF9mcm96ZW4g
KEZuIChzLCBbXSkpID0KICAgIChhc3NlcnQgKGNoayBzKSAoRVJSICJkZXN0
X2Zyb3plbiIgIm5vdCBhIGZyb3plbiB2YXIiKTsgZGVzdCBzKQogICAgfCBk
ZXN0X2Zyb3plbiBfID0gcmFpc2UgRVJSICJkZXN0X2Zyb3plbiIgImJhZCBz
dHJ1Y3R1cmUiOwplbmQ7Cgp2YWwgaXNfZnJvemVuID0gY2FuIGRlc3RfZnJv
emVuOwoKZnVuIGZyZWV6ZV92YXJzIGZtcyA9CiAgbGV0CiAgICB2YWwgdmFy
cyA9IEZWIChsaXN0X21rX2Rpc2ogZm1zKQogICAgdmFsIHN1YiA9IGZvbGRs
IChmbiAodiwgcykgPT4gKHYgfC0+IG1rX2Zyb3plbiB2KSA6Oj4gcykgfDw+
fCB2YXJzCiAgaW4KICAgIG1hcCAoZm9ybXVsYV9zdWJzdCBzdWIpIGZtcwog
IGVuZDsKCmxvY2FsCiAgZnVuIGYgKHYgfC0+IGEpID0gKHYgfC0+IChpZiBp
c19mcm96ZW4gYSB0aGVuIFZhciAoZGVzdF9mcm96ZW4gYSkgZWxzZSBhKSk7
CmluCiAgdmFsIGRlZnJvc3RfdmFycyA9IFN1YnN0MS5mcm9tX21hcGxldHMg
byBtYXAgZiBvIFN1YnN0MS50b19tYXBsZXRzOwplbmQ7Cgp2YWwgbGl0X3Np
emUgPSBmb3JtdWxhX3NpemUgbyBsaXRlcmFsX2F0b207Cgp2YWwgc29ydF9s
aXRlcmFsc19ieV9zaXplID0KICBtYXAgc25kIG8gc29ydCAoZm4gKG0sIF8p
ID0+IGZuIChuLCBfKSA9PiBtIDw9IG4pIG8KICBtYXAgKGZuIGxpdCA9PiAo
bGl0X3NpemUgbGl0LCBsaXQpKTsKCigqIC0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0gKikKKCogVGhlIGNvcmUgZW5naW5lIGZvciBzdWJzdW1wdGlv
biBjaGVja2luZy4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAq
KQooKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICopCgp0eXBlICdh
IHNpbmZvID0ge3N1YiA6IHN1YnN0LCBoZCA6IGZvcm11bGEsIHRsIDogZm9y
bXVsYSBsaXN0LCBmaW4gOiAnYX07Cgp0eXBlICdhIHN1YnMgPSAnYSBzaW5m
byBOLmxpdGVyYWxfbWFwOwoKZnVuIGFkZF9saXRzIChpIGFzIHtoZCwgLi4u
fSkgKG5ldCA6ICdhIHN1YnMpID0gTi5pbnNlcnQgKGhkIHwtPiBpKSBuZXQ7
Cgpsb2NhbAogIGZ1biBzdWJzdW0gc3RyaWN0IGxpdHMgPQogICAgbGV0CiAg
ICAgIHZhbCBhY2NlcHQgPQogICAgICAgIChpZiBzdHJpY3QgdGhlbiBvZmls
dGVyIChub24gU3Vic3QxLmlzX3JlbmFtaW5nKSBlbHNlIFNPTUUpIG8KICAg
ICAgICBkZWZyb3N0X3ZhcnMKICAgICAgdmFsIGltcG9zc2libGUgPQogICAg
ICAgIGxldCB2YWwgbGl0X25ldCA9IE4uZnJvbV9tYXBsZXRzIChtYXAgKGZu
IGwgPT4gKGwgfC0+ICgpKSkgbGl0cykKICAgICAgICBpbiBMaXN0LmV4aXN0
cyAobnVsbCBvIE4ubWF0Y2hlZCBsaXRfbmV0KQogICAgICAgIGVuZAogICAg
ICBmdW4gZXh0ZW5kIHN1YiBsaXRzIGZpbiBuZXQgPQogICAgICAgIGlmIGlt
cG9zc2libGUgbGl0cyB0aGVuIG5ldAogICAgICAgIGVsc2UKICAgICAgICAg
IGNhc2Ugc29ydF9saXRlcmFsc19ieV9zaXplIGxpdHMgb2YgW10gPT4gcmFp
c2UgQlVHICJleHRlbmQiICJudWxsIgogICAgICAgICAgfCBoZCA6OiB0bCA9
PiBhZGRfbGl0cyB7c3ViID0gc3ViLCBoZCA9IGhkLCB0bCA9IHRsLCBmaW4g
PSBmaW59IG5ldAogICAgICBmdW4gZXhhbWluZSBsaXQgKHtzdWIsIGhkLCB0
bCwgZmlufSwgcyBhcyAobmV0LCByZXMpKSA9CiAgICAgICAgY2FzZSB0b3Rh
bCAobWF0Y2hsX2xpdGVyYWxzIHN1YikgWyhoZCwgbGl0KV0gb2YgTk9ORSA9
PiBzCiAgICAgICAgfCBTT01FIHN1YiA9PgogICAgICAgICAgaWYgbnVsbCB0
bCB0aGVuCiAgICAgICAgICAgIGNhc2UgYWNjZXB0IHN1YiBvZiBTT01FIHN1
YiA9PiAobmV0LCAoc3ViLCBmaW4pIDo6IHJlcykgfCBOT05FID0+IHMKICAg
ICAgICAgIGVsc2UgKGV4dGVuZCBzdWIgKG1hcCAoZm9ybXVsYV9zdWJzdCBz
dWIpIHRsKSBmaW4gbmV0LCByZXMpCiAgICAgIGZ1biBuYXJyb3cxIG5ldCAo
bGl0LCBzKSA9IGZvbGRsIChleGFtaW5lIGxpdCkgcyAoTi5tYXRjaCBuZXQg
bGl0KQogICAgICBmdW4gbmFycm93IChuZXQsIHJlcykgPQogICAgICAgIGlm
IE4uc2l6ZSBuZXQgPSAwIHRoZW4gcmVzCiAgICAgICAgZWxzZSBuYXJyb3cg
KGZvbGRsIChuYXJyb3cxIG5ldCkgKE4uZW1wdHksIHJlcykgbGl0cykKICAg
IGluCiAgICAgIG5hcnJvdwogICAgZW5kOwppbgogIGZ1biBzdWJzdW1lcyBz
dHJpY3QgbmV0IGxpdHMgPQogICAgc3Vic3VtIHN0cmljdCAoZnJlZXplX3Zh
cnMgbGl0cykgKG5ldCwgW10pCiAgICBoYW5kbGUgRVJSX0VYTiBfID0+IHJh
aXNlIEJVRyAic3Vic3VtZXMiICJzaG91bGRuJ3QgZmFpbCI7CmVuZDsKCigq
IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKikKKCogVGhlIHVzZXIg
aW50ZXJmYWNlLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAqKQooKiAtLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tICopCgp0eXBlICdhIHN1YnN1bWUgPSAoJ2EsICdhIHN1YnMp
IHN1bTsKCnZhbCBlbXB0eSA6ICdhIHN1YnN1bWUgPSBJTlIgTi5lbXB0eTsK
CmZ1biBhZGQgXyAocyBhcyBJTkwgXykgPSBzCiAgfCBhZGQgKGZtcyB8LT4g
ZmluKSAoSU5SIG5ldCkgPQogIGNhc2Ugc29ydF9saXRlcmFsc19ieV9zaXpl
IGZtcyBvZiBbXSA9PiBJTkwgZmluCiAgfCBoIDo6IHQgPT4gSU5SIChhZGRf
bGl0cyB7c3ViID0gfDw+fCwgaGQgPSBoLCB0bCA9IHQsIGZpbiA9IGZpbn0g
bmV0KTsKCmZ1biBzdWJzdW1lZCAoSU5MIGZpbikgXyA9IFsofDw+fCwgZmlu
KV0KICB8IHN1YnN1bWVkIChJTlIgXykgW10gPSBbXQogIHwgc3Vic3VtZWQg
KElOUiBuZXQpIGxpdHMgPSBzdWJzdW1lcyBmYWxzZSBuZXQgbGl0czsKCmZ1
biBzdHJpY3RseV9zdWJzdW1lZCBfIFtdID0gW10KICB8IHN0cmljdGx5X3N1
YnN1bWVkIChJTkwgZmluKSBfID0gWyh8PD58LCBmaW4pXQogIHwgc3RyaWN0
bHlfc3Vic3VtZWQgKElOUiBuZXQpIGxpdHMgPSBzdWJzdW1lcyB0cnVlIG5l
dCBsaXRzOwoKZnVuIGluZm8gKChJTkwgXykgOiAnYSBzdWJzdW1lKSA9ICIq
IgogIHwgaW5mbyAoSU5SIG5ldCkgPSBpbnRfdG9fc3RyaW5nIChOLnNpemUg
bmV0KTsKCnZhbCBwcF9zdWJzdW0gPSBwcF9tYXAgaW5mbyBwcF9zdHJpbmc7
CgooKiBRdWljayB0ZXN0aW5nCnF1b3RhdGlvbiA6PSB0cnVlOwppbnN0YWxs
UFAgcHBfZm9ybXVsYTsKaW5zdGFsbFBQIHBwX3Rlcm07Cmluc3RhbGxQUCBw
cF9zdWJzdDsKaW5zdGFsbFBQIHBwX3RobTsKZnJlZXplX3ZhcnMgKG1hcCBw
YXJzZSBbYHggKyB5IDw9IDBgLCBgeCA9IF9feCgpYF0pOwp2YWwgcyA9IGFk
ZF9zdWJzdW1lciAoQVhJT00gKG1hcCBwYXJzZSBbYHAoeCwzKWAsIGBwKDIs
eSlgXSkpIGVtcHR5X3N1YnN1bTsKc3Vic3VtZWQgcyAobWFwIHBhcnNlIFtg
cCgyLDMpYF0pOwoqKQoKZW5kCigqI2xpbmUgMC4wICJmb2wvVHB0cDEuc2ln
IiopCigqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKikKKCogSU5U
RVJGQUNFIFRPIFRQVFAgUFJPQkxFTSBGSUxFUyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAqKQooKiBDcmVhdGVkIGJ5IEpv
ZSBIdXJkLCBEZWNlbWJlciAyMDAxICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICopCigqID09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0gKikKCnNpZ25hdHVyZSBUcHRwMSA9CnNpZwoKdHlwZSB0ZXJtICAg
ID0gVGVybTEudGVybQp0eXBlIGZvcm11bGEgPSBUZXJtMS5mb3JtdWxhCgoo
KiBNYWludGFpbmluZyBkaWZmZXJlbnQgcmVsYXRpb24gYW5kIGZ1bmN0aW9u
IG5hbWVzIGluIFRQVFAgcHJvYmxlbXMgKikKdmFsIHJlbmFtaW5nIDoge3Rw
dHAgOiBzdHJpbmcsIGZvbCA6IHN0cmluZywgYXJpdHkgOiBpbnR9IGxpc3Qg
cmVmCgooKiBQYXJzaW5nOiBwYXNzIGluIGEgZmlsZW5hbWUgKikKdmFsIHBh
cnNlX2NuZiA6IHN0cmluZyAtPiBmb3JtdWxhCgplbmQKKCojbGluZSAwLjAg
ImZvbC9UcHRwMS5zbWwiKikKKCogPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PSAqKQooKiBJTlRFUkZBQ0UgVE8gVFBUUCBQUk9CTEVNIEZJTEVTICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopCigq
IENyZWF0ZWQgYnkgSm9lIEh1cmQsIERlY2VtYmVyIDIwMDEgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKikKKCogPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PSAqKQoKKCoKYXBwIGxvYWQgWyJTdHJlYW0i
LCAiVXNlZnVsIiwgIlBhcnNlciIsICJUZXJtMSJdOwoqKQoKKCoKKikKc3Ry
dWN0dXJlIFRwdHAxIDo+IFRwdHAxID0Kc3RydWN0CgpvcGVuIFBhcnNlciBV
c2VmdWwgVGVybTE7CgppbmZpeHIgOSA+PisrOwppbmZpeHIgOCArKzsKaW5m
aXhyIDcgPj47CmluZml4ciA2IHx8OwppbmZpeCB8LT47CgpzdHJ1Y3R1cmUg
UyA9IFN0cmVhbTsKCigqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0g
KikKKCogQWJicmV2aWF0aW5nIHJlbGF0aW9uIGFuZCBmdW5jdGlvbiBuYW1l
cyBpbiBUUFRQIHByb2JsZW1zLiAgICAgICAgICAgICAgICAqKQooKiAtLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICopCgp0eXBlIHJlbmFtZSA9IHt0
cHRwIDogc3RyaW5nLCBmb2wgOiBzdHJpbmcsIGFyaXR5IDogaW50fTsKCnZh
bCByZW5hbWluZyA6IHJlbmFtZSBsaXN0IHJlZiA9IHJlZiBbe3RwdHAgPSAi
ZXF1YWwiLCBmb2wgPSAiPSIsIGFyaXR5ID0gMn1dOwoKKCogLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLSAqKQooKiBQYXJzaW5nOiBwYXNzIGluIGEg
ZmlsZW5hbWUuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICopCigqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0g
KikKCnZhbCBjb21tZW50ID0gZXF1YWwgIyIlIiBvIGhkIG8gZXhwbG9kZTsK
CnZhbCBpbnB1dF9saW5lcyA9IFMuZmlsdGVyIChub24gY29tbWVudCkgbyBT
LmZyb21fdGV4dGZpbGU7Cgp2YWwgaW5wdXRfY2hhcnMgPSBTLmZsYXR0ZW4g
byBTLm1hcCAoUy5mcm9tX2xpc3QgbyBleHBsb2RlKTsKCmRhdGF0eXBlIHRv
a190eXBlID0gTG93ZXIgfCBVcHBlciB8IFN5bWJvbCB8IFB1bmN0OwoKdmFs
IGxleGVyID0KICAobWFueSAoc29tZSBzcGFjZSkgKysKICAgKCgoc29tZSBs
b3dlciB8fCBzb21lIGRpZ2l0KSArKyBtYW55IChzb21lIGFscGhhbnVtKSA+
PgogICAgIChmbiAoYSwgYikgPT4gKExvd2VyLCBpbXBsb2RlIChhIDo6IGIp
KSkpIHx8CiAgICAoc29tZSB1cHBlciArKyBtYW55IChzb21lIGFscGhhbnVt
KSA+PgogICAgIChmbiAoYSwgYikgPT4gKFVwcGVyLCBpbXBsb2RlIChhIDo6
IGIpKSkpIHx8CiAgICAoYXRsZWFzdG9uZSAoc29tZSBzeW1ib2wpID4+IChm
biBsID0+IChTeW1ib2wsIGltcGxvZGUgbCkpKSB8fAogICAgKHNvbWUgcHVu
Y3QgPj4gKGZuIGMgPT4gKFB1bmN0LCBzdHIgYykpKSkpID4+IHNuZDsKCnZh
bCBsZXggPSBtYW55IGxleGVyICsrIChtYW55IChzb21lIHNwYWNlKSArKyBm
aW5pc2hlZCkgPj4gZnN0OwoKdmFsIGlucHV0X3Rva3MgPSBTLmZyb21fbGlz
dCBvIGZzdCBvIGxleDsKCmZ1biBWYXInICJUIiA9IFZhciAiVCciCiAgfCBW
YXInICJGIiA9IFZhciAiRiciCiAgfCBWYXInIHYgPSBWYXIgKGlmICF2YXJf
c3RyaW5nIHYgdGhlbiB2IGVsc2UgInZfIiBeIHYpOwoKbG9jYWwKICBmdW4g
dmVyaWZ5IChmLCBhKSA9CiAgICAoaWYgIXZhcl9zdHJpbmcgZiB0aGVuIChp
ZiBudWxsIGEgdGhlbiAiY18iIGVsc2UgImZfIikgXiBmIGVsc2UgZiwgYSk7
CiAgZnVuIG1hcHBlZCAoZiwgYSkgKG0gOiByZW5hbWUgbGlzdCkgPQogICAg
bGV0IGZ1biBnIHt0cHRwLCBhcml0eSwgLi4ufSA9IHRwdHAgPSBmIGFuZGFs
c28gYXJpdHkgPSBsZW5ndGggYQogICAgaW4gY2FzZSBMaXN0LmZpbmQgZyBt
IG9mIFNPTUUge2ZvbCwgLi4ufSA9PiAoZm9sLCBhKSB8IE5PTkUgPT4gdmVy
aWZ5IChmLCBhKQogICAgZW5kOwppbgogIGZ1biBGbicgICBBID0gRm4gICAo
bWFwcGVkIEEgKCFyZW5hbWluZykpOwplbmQ7CgpmdW4gdGVybV9wYXJzZXIg
aW5wdXQgPQogICgoc29tZSAoZXF1YWwgVXBwZXIgbyBmc3QpID4+IChWYXIn
IG8gc25kKSkgfHwKICAgKChzb21lIChlcXVhbCBMb3dlciBvIGZzdCkgPj4g
c25kKSArKwogICAgKG9wdGlvbmFsCiAgICAgKGV4YWN0IChQdW5jdCwgIigi
KSArKyB0ZXJtX3BhcnNlciArKwogICAgICBtYW55ICgoZXhhY3QgKFB1bmN0
LCAiLCIpICsrIHRlcm1fcGFyc2VyKSA+PiBzbmQpICsrCiAgICAgIGV4YWN0
IChQdW5jdCwgIikiKSkgPj4KICAgICAoZm4gU09NRSAoXywgKHQsICh0cywg
XykpKSA9PiB0IDo6IHRzIHwgTk9ORSA9PiBbXSkpID4+CiAgICBGbicpKSBp
bnB1dDsKCnZhbCBsaXRlcmFsX3BhcnNlciA9CiAgKChleGFjdCAoU3ltYm9s
LCAiKysiKSA+PiBLIHRydWUgfHwgZXhhY3QgKFN5bWJvbCwgIi0tIikgPj4g
SyBmYWxzZSkgKysKICAgdGVybV9wYXJzZXIpID4+CiAgKGZuIChzLCB0KSA9
PiBta19saXRlcmFsIChzLCBBdG9tIChjYXNlIHQgb2YgVmFyIHYgPT4gRm4g
KHYsIFtdKSB8IF8gPT4gdCkpKTsKCnZhbCBjbGF1c2VfcGFyc2VyID0KICAo
ZXhhY3QgKExvd2VyLCAiaW5wdXRfY2xhdXNlIikgKysgZXhhY3QgKFB1bmN0
LCAiKCIpICsrIGFueSArKwogICBleGFjdCAoUHVuY3QsICIsIikgKysgYW55
ICsrIGV4YWN0IChQdW5jdCwgIiwiKSArKyBleGFjdCAoUHVuY3QsICJbIikg
KysKICAgbGl0ZXJhbF9wYXJzZXIgKysgbWFueSAoKGV4YWN0IChQdW5jdCwg
IiwiKSArKyBsaXRlcmFsX3BhcnNlcikgPj4gc25kKSArKwogICBleGFjdCAo
UHVuY3QsICJdIikgKysgZXhhY3QgKFB1bmN0LCAiKSIpICsrIGV4YWN0IChQ
dW5jdCwgIi4iKSkgPj4KICAoZm4gKF8sIChfLCAobmFtZSwgKF8sICh0eXAs
IChfLCAoXywgKGwsIChscywgXykpKSkpKSkpKSA9PgogICAoc25kIG5hbWUs
IHNuZCB0eXAsIGwgOjogbHMpKTsKCnZhbCBjbmZfcGFyc2VyID0gZnN0IG8g
KChtYW55IGNsYXVzZV9wYXJzZXIgKysgZmluaXNoZWQpID4+IGZzdCk7Cgps
b2NhbAogIGZ1biBjeWNsZSBfIF8gKFtdLCBfKSA9IHJhaXNlIEJVRyAiY3lj
bGUiICIiCiAgICB8IGN5Y2xlIGYgdiAoaCA6OiB0LCBhdm9pZCkgPQogICAg
bGV0IHZhbCBoJyA9IGYgaCBhdm9pZCBpbiAoaCcsICh0IEAgW2hdLCBoJyA6
OiBhdm9pZCkpIGVuZDsKaW4gICAgCiAgZnVuIGdlbmVyYWxpemVfY2xhdXNl
IGZtID0KICAgIGxldAogICAgICBvcGVuIFN1YnN0MQogICAgICB2YWwgdmFy
cyA9IEZWIGZtCiAgICAgIHZhbCBudmFycyA9IGxlbmd0aCB2YXJzCiAgICAg
IHZhbCB2YXJfZm4gPSBpZiBudmFycyA8PSAxNSB0aGVuIHZhcmlhbnQgZWxz
ZSB2YXJpYW50X251bQogICAgICB2YWwgbmV3cyA9CiAgICAgICAgaWYgbnZh
cnMgPSA2IHRoZW4gWyJ4IiwgInkiLCAieiIsICJ4JyIsICJ5JyIsICJ6JyJd
CiAgICAgICAgZWxzZSBmc3QgKG1hcHMgKGN5Y2xlIHZhcl9mbikgdmFycyAo
WyJ4IiwgInkiLCAieiIsICJ2IiwgInciXSwgW10pKQogICAgICB2YWwgc3Vi
ID0gZnJvbV9tYXBsZXRzICh6aXB3aXRoIChmbiB2ID0+IGZuIHggPT4gdiB8
LT4gVmFyIHgpIHZhcnMgbmV3cykKICAgIGluCiAgICAgIGdlbmVyYWxpemUg
KGZvcm11bGFfc3Vic3Qgc3ViIGZtKQogICAgZW5kOwplbmQ7Cgp2YWwgaW5w
dXRfY25mID0KICAoZm4gKGEsIGIpID0+IEltcCAoYSwgSW1wIChiLCBGYWxz
ZSkpKSBvCiAgRGYgKGxpc3RfbWtfY29uaiBvIG1hcCAoZ2VuZXJhbGl6ZV9j
bGF1c2UgbyBsaXN0X21rX2Rpc2ogbyAjMykpIG8KICBMaXN0LnBhcnRpdGlv
biAobm90IG8gZXF1YWwgImNvbmplY3R1cmUiIG8gIzIpIG8gY25mX3BhcnNl
cjsKCnZhbCBwYXJzZV9jbmYgPSBpbnB1dF9jbmYgbyBpbnB1dF90b2tzIG8g
aW5wdXRfY2hhcnMgbyBpbnB1dF9saW5lczsKCmVuZAooKiNsaW5lIDAuMCAi
Zm9sL1RobTEuc2lnIiopCigqID09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0gKikKKCogSU5URVJGQUNFIFRPIFRIRSBMQ0YtU1RZTEUgTE9HSUNBTCBL
RVJORUwsIFBMVVMgU09NRSBERVJJVkVEIFJVTEVTICAgICAgICAqKQooKiBD
cmVhdGVkIGJ5IEpvZSBIdXJkLCBTZXB0ZW1iZXIgMjAwMSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICopCigqID09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0gKikKCnNpZ25hdHVyZSBUaG0xID0Kc2lnCgp0
eXBlICdhIHBwID0gJ2EgVXNlZnVsLnBwCgppbmNsdWRlIEtlcm5lbDEKCigq
IEFubm90YXRlZCBwcmltaXRpdmUgaW5mZXJlbmNlcyAqKQpkYXRhdHlwZSBp
bmZlcmVuY2UnID0KICBBeGlvbScgICAgb2YgZm9ybXVsYSBsaXN0CnwgUmVm
bCcgICAgIG9mIHRlcm0KfCBBc3N1bWUnICAgb2YgZm9ybXVsYQp8IEluc3Qn
ICAgICBvZiBzdWJzdCAqIHRobQp8IEZhY3RvcicgICBvZiB0aG0KfCBSZXNv
bHZlJyAgb2YgZm9ybXVsYSAqIHRobSAqIHRobQp8IEVxdWFsaXR5JyBvZiBm
b3JtdWxhICogaW50IGxpc3QgKiB0ZXJtICogYm9vbCAqIHRobQoKdmFsIHBy
aW1pdGl2ZV9pbmZlcmVuY2UgOiBpbmZlcmVuY2UnIC0+IHRobQoKKCogVXNl
ci1mcmllbmRseSBkZXN0cnVjdG9ycyAqKQp2YWwgY2xhdXNlICAgIDogdGht
IC0+IGZvcm11bGEgbGlzdAp2YWwgaW5mZXJlbmNlIDogdGhtIC0+IGluZmVy
ZW5jZScKdmFsIHByb29mICAgICA6IHRobSAtPiAodGhtICogaW5mZXJlbmNl
JykgbGlzdAoKKCogUHJldHR5LXByaW50aW5nIG9mIHRoZW9yZW1zIGFuZCBp
bmZlcmVuY2VzICopCnZhbCBwcF90aG0gICAgICAgICAgICAgICA6IHRobSBw
cAp2YWwgcHBfaW5mZXJlbmNlICAgICAgICAgOiBpbmZlcmVuY2UgcHAKdmFs
IHBwX2luZmVyZW5jZScgICAgICAgIDogaW5mZXJlbmNlJyBwcAp2YWwgcHBf
cHJvb2YgICAgICAgICAgICAgOiAodGhtICogaW5mZXJlbmNlJykgbGlzdCBw
cAp2YWwgdGhtX3RvX3N0cmluZycgICAgICAgOiBpbnQgLT4gdGhtIC0+IHN0
cmluZyAgICAgICAgKCogcHVyZWx5IGZ1bmN0aW9uYWwgKikKdmFsIGluZmVy
ZW5jZV90b19zdHJpbmcnIDogaW50IC0+IGluZmVyZW5jZScgLT4gc3RyaW5n
CnZhbCB0aG1fdG9fc3RyaW5nICAgICAgICA6IHRobSAtPiBzdHJpbmcgICAg
ICAgICAgICAgICAoKiB1c2luZyAhTElORV9MRU5HVEggKikKdmFsIGluZmVy
ZW5jZV90b19zdHJpbmcgIDogaW5mZXJlbmNlJyAtPiBzdHJpbmcKCigqIEEg
dG90YWwgY29tcGFyaXNvbiBmdW5jdGlvbiBmb3IgdGhlb3JlbXMgKikKdmFs
IHRobV9jb21wYXJlIDogdGhtICogdGhtIC0+IG9yZGVyCgooKiBDb250cmFk
aWN0aW9ucyBhbmQgdW5pdCBjbGF1c2VzICopCnZhbCBpc19jb250cmFkaWN0
aW9uIDogdGhtIC0+IGJvb2wKdmFsIGRlc3RfdW5pdCAgICAgICAgOiB0aG0g
LT4gZm9ybXVsYQp2YWwgaXNfdW5pdCAgICAgICAgICA6IHRobSAtPiBib29s
CgooKiBEZXJpdmVkIHJ1bGVzIGFuZCB0aGVvcmVtcyAqKQp2YWwgQ09OVFIg
ICAgICAgICAgOiBmb3JtdWxhIC0+IHRobSAtPiB0aG0KdmFsIFdFQUtFTiAg
ICAgICAgIDogZm9ybXVsYSBsaXN0IC0+IHRobSAtPiB0aG0KdmFsIEZSRVNI
X1ZBUlMgICAgIDogdGhtIC0+IHRobQp2YWwgRlJFU0hfVkFSU0wgICAgOiB0
aG0gbGlzdCAtPiB0aG0gbGlzdAp2YWwgVU5JVF9TUVVBU0ggICAgOiB0aG0g
LT4gdGhtCnZhbCBSRUZMRVhJVklUWSAgICA6IHRobQp2YWwgU1lNTUVUUlkg
ICAgICAgOiB0aG0KdmFsIFRSQU5TSVRJVklUWSAgIDogdGhtCnZhbCBGVU5f
Q09OR1JVRU5DRSA6IHN0cmluZyAqIGludCAtPiB0aG0KdmFsIFJFTF9DT05H
UlVFTkNFIDogc3RyaW5nICogaW50IC0+IHRobQoKZW5kCigqI2xpbmUgMC4w
ICJmb2wvVGhtMS5zbWwiKikKKCogPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PSAqKQooKiBJTlRFUkZBQ0UgVE8gVEhFIExDRi1TVFlMRSBMT0dJQ0FM
IEtFUk5FTCwgUExVUyBTT01FIERFUklWRUQgUlVMRVMgICAgICAgICopCigq
IENyZWF0ZWQgYnkgSm9lIEh1cmQsIFNlcHRlbWJlciAyMDAxICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKikKKCogPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PSAqKQoKKCoKYXBwIGxvYWQgWyJVc2VmdWwi
LCAiVGVybTEiLCAiS2VybmVsMSIsICJNYXRjaDEiXTsKKikKCigqCiopCnN0
cnVjdHVyZSBUaG0xIDo+IFRobTEgPQpzdHJ1Y3QKCm9wZW4gVXNlZnVsIFRl
cm0xIEtlcm5lbDEgTWF0Y2gxOwoKaW5maXhyIHwtPiA6Oj4gb28gIyM7Cgp0
eXBlIHN1YnN0ICAgICAgICA9IFN1YnN0MS5zdWJzdDsKdmFsIHw8PnwgICAg
ICAgICAgPSBTdWJzdDEufDw+fDsKdmFsIG9wIDo6PiAgICAgICAgPSBTdWJz
dDEuOjo+Owp2YWwgdGVybV9zdWJzdCAgICA9IFN1YnN0MS50ZXJtX3N1YnN0
Owp2YWwgZm9ybXVsYV9zdWJzdCA9IFN1YnN0MS5mb3JtdWxhX3N1YnN0Owp2
YWwgcHBfc3Vic3QgICAgICA9IFN1YnN0MS5wcF9zdWJzdDsKCigqIC0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKikKKCogQW5ub3RhdGVkIHByaW1p
dGl2ZSBpbmZlcmVuY2VzLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAqKQooKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tICopCgpkYXRhdHlwZSBpbmZlcmVuY2UnID0KICBBeGlvbScgICAgb2Yg
Zm9ybXVsYSBsaXN0CnwgUmVmbCcgICAgIG9mIHRlcm0KfCBBc3N1bWUnICAg
b2YgZm9ybXVsYQp8IEluc3QnICAgICBvZiBzdWJzdCAqIHRobQp8IEZhY3Rv
cicgICBvZiB0aG0KfCBSZXNvbHZlJyAgb2YgZm9ybXVsYSAqIHRobSAqIHRo
bQp8IEVxdWFsaXR5JyBvZiBmb3JtdWxhICogaW50IGxpc3QgKiB0ZXJtICog
Ym9vbCAqIHRobQoKZnVuIHByaW1pdGl2ZV9pbmZlcmVuY2UgKEF4aW9tJyAg
ICBjbCAgICAgICAgICAgICAgKSA9IEFYSU9NIGNsCiAgfCBwcmltaXRpdmVf
aW5mZXJlbmNlIChSZWZsJyAgICAgdG0gICAgICAgICAgICAgICkgPSBSRUZM
IHRtCiAgfCBwcmltaXRpdmVfaW5mZXJlbmNlIChBc3N1bWUnICAgbCAgICAg
ICAgICAgICAgICkgPSBBU1NVTUUgbAogIHwgcHJpbWl0aXZlX2luZmVyZW5j
ZSAoSW5zdCcgICAgIChzLCB0aCkgICAgICAgICApID0gSU5TVCBzIHRoCiAg
fCBwcmltaXRpdmVfaW5mZXJlbmNlIChGYWN0b3InICAgdGggICAgICAgICAg
ICAgICkgPSBGQUNUT1IgdGgKICB8IHByaW1pdGl2ZV9pbmZlcmVuY2UgKFJl
c29sdmUnICAobCwgdGgxLCB0aDIpICAgKSA9IFJFU09MVkUgbCB0aDEgdGgy
CiAgfCBwcmltaXRpdmVfaW5mZXJlbmNlIChFcXVhbGl0eScgKGwsIHAsIHQs
IHMsIHRoKSkgPSBFUVVBTElUWSBsIHAgdCBzIHRoOwoKdmFsIGNsYXVzZSA9
IGZzdCBvIGRlc3RfdGhtOwoKKCogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLSAqKQooKiBQcmV0dHktcHJpbnRpbmcgb2YgdGhlb3JlbXMgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopCigq
IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKikKCmZ1biBwcF90aG0g
cHAgdGggPQogIChQUC5iZWdpbl9ibG9jayBwcCBQUC5JTkNPTlNJU1RFTlQg
MzsKICAgUFAuYWRkX3N0cmluZyBwcCAifC0gIjsKICAgcHBfZm9ybXVsYSBw
cCAobGlzdF9ta19kaXNqIChjbGF1c2UgdGgpKTsKICAgUFAuZW5kX2Jsb2Nr
IHBwKTsKCmxvY2FsCiAgZnVuIGluZl90b19zdHJpbmcgQXhpb20gICAgPSAi
QXhpb20iCiAgICB8IGluZl90b19zdHJpbmcgUmVmbCAgICAgPSAiUmVmbCIK
ICAgIHwgaW5mX3RvX3N0cmluZyBBc3N1bWUgICA9ICJBc3N1bWUiCiAgICB8
IGluZl90b19zdHJpbmcgSW5zdCAgICAgPSAiSW5zdCIKICAgIHwgaW5mX3Rv
X3N0cmluZyBGYWN0b3IgICA9ICJGYWN0b3IiCiAgICB8IGluZl90b19zdHJp
bmcgUmVzb2x2ZSAgPSAiUmVzb2x2ZSIKICAgIHwgaW5mX3RvX3N0cmluZyBF
cXVhbGl0eSA9ICJFcXVhbGl0eSI7CmluCiAgdmFsIHBwX2luZmVyZW5jZSA9
IHBwX21hcCBpbmZfdG9fc3RyaW5nIHBwX3N0cmluZzsKZW5kOwoKbG9jYWwK
ICBmdW4gcHBfaW5mIChBeGlvbScgICAgYSkgPSAoQXhpb20sICAgQyAocHBf
bGlzdCBwcF9mb3JtdWxhKSAgICAgICAgICAgICAgICAgYSkKICAgIHwgcHBf
aW5mIChSZWZsJyAgICAgYSkgPSAoUmVmbCwgICAgQyBwcF90ZXJtICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgYSkKICAgIHwgcHBfaW5mIChBc3N1
bWUnICAgYSkgPSAoQXNzdW1lLCAgQyBwcF9mb3JtdWxhICAgICAgICAgICAg
ICAgICAgICAgICAgICAgYSkKICAgIHwgcHBfaW5mIChJbnN0JyAgICAgYSkg
PSAoSW5zdCwgICAgQyAocHBfcGFpciBwcF9zdWJzdCBwcF90aG0pICAgICAg
ICAgICAgYSkKICAgIHwgcHBfaW5mIChGYWN0b3InICAgYSkgPSAoRmFjdG9y
LCAgQyBwcF90aG0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYSkK
ICAgIHwgcHBfaW5mIChSZXNvbHZlJyAgYSkgPSAoUmVzb2x2ZSwgQyAocHBf
dHJpcGxlIHBwX2Zvcm11bGEgcHBfdGhtIHBwX3RobSkgYSkKICAgIHwgcHBf
aW5mIChFcXVhbGl0eScgKGxpdCwgcCwgciwgbHIsIHRoKSkgPQogICAgKEVx
dWFsaXR5LAogICAgIEMgKHBwX3JlY29yZCBbKCJsaXQiLCAgdW5pdF9wcCBw
cF9mb3JtdWxhIGxpdCksCiAgICAgICAgICAgICAgICAgICAoInBhdGgiLCB1
bml0X3BwIChwcF9saXN0IHBwX2ludCkgcCksCiAgICAgICAgICAgICAgICAg
ICAoInJlcyIsICB1bml0X3BwIHBwX3Rlcm0gciksCiAgICAgICAgICAgICAg
ICAgICAoImxyIiwgICB1bml0X3BwIHBwX2Jvb2wgbHIpLAogICAgICAgICAg
ICAgICAgICAgKCJ0aG0iLCAgdW5pdF9wcCBwcF90aG0gdGgpXSkgKCkpOwpp
bgogIGZ1biBwcF9pbmZlcmVuY2UnIHBwIGluZiA9CiAgbGV0CiAgICBvcGVu
IFBQCiAgICB2YWwgKGksIHBwZikgPSBwcF9pbmYgaW5mCiAgaW4KICAgIChi
ZWdpbl9ibG9jayBwcCBJTkNPTlNJU1RFTlQgMDsKICAgICBwcF9pbmZlcmVu
Y2UgcHAgaTsKICAgICBhZGRfYnJlYWsgcHAgKDEsIDApOwogICAgIHBwZiBw
cDsKICAgICBlbmRfYmxvY2sgcHApCiAgZW5kOwplbmQ7Cgp2YWwgcHBfcHJv
b2YgPSBwcF9saXN0IChwcF9wYWlyIHBwX3RobSBwcF9pbmZlcmVuY2UnKTsK
CigqIFB1cmVseSBmdW5jdGlvbmFsIHByZXR0eS1wcmludGluZyAqKQoKZnVu
IHRobV90b19zdHJpbmcnICAgICAgIGxlbiA9IFBQLnBwX3RvX3N0cmluZyBs
ZW4gcHBfdGhtOwpmdW4gaW5mZXJlbmNlX3RvX3N0cmluZycgbGVuID0gUFAu
cHBfdG9fc3RyaW5nIGxlbiBwcF9pbmZlcmVuY2UnOwoKKCogUHJldHR5LXBy
aW50aW5nIHVzaW5nICFMSU5FX0xFTkdUSCAqKQoKZnVuIHRobV90b19zdHJp
bmcgICAgICAgdGggID0gdGhtX3RvX3N0cmluZycgICAgICAgKCFMSU5FX0xF
TkdUSCkgdGg7CmZ1biBpbmZlcmVuY2VfdG9fc3RyaW5nIGluZiA9IGluZmVy
ZW5jZV90b19zdHJpbmcnICghTElORV9MRU5HVEgpIGluZjsKCigqIC0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKikKKCogQSB0b3RhbCBjb21wYXJp
c29uIGZ1bmN0aW9uIGZvciB0aGVvcmVtcy4gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAqKQooKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tICopCgpsb2NhbAogIGZ1biBjbXAgQXhpb20gICAgQXhpb20gICAgPSBF
UVVBTAogICAgfCBjbXAgQXhpb20gICAgXyAgICAgICAgPSBMRVNTCiAgICB8
IGNtcCBfICAgICAgICBBeGlvbSAgICA9IEdSRUFURVIKICAgIHwgY21wIFJl
ZmwgICAgIFJlZmwgICAgID0gRVFVQUwKICAgIHwgY21wIFJlZmwgICAgIF8g
ICAgICAgID0gTEVTUwogICAgfCBjbXAgXyAgICAgICAgUmVmbCAgICAgPSBH
UkVBVEVSCiAgICB8IGNtcCBBc3N1bWUgICBBc3N1bWUgICA9IEVRVUFMCiAg
ICB8IGNtcCBBc3N1bWUgICBfICAgICAgICA9IExFU1MKICAgIHwgY21wIF8g
ICAgICAgIEFzc3VtZSAgID0gR1JFQVRFUgogICAgfCBjbXAgSW5zdCAgICAg
SW5zdCAgICAgPSBFUVVBTAogICAgfCBjbXAgSW5zdCAgICAgXyAgICAgICAg
PSBMRVNTCiAgICB8IGNtcCBfICAgICAgICBJbnN0ICAgICA9IEdSRUFURVIK
ICAgIHwgY21wIEZhY3RvciAgIEZhY3RvciAgID0gRVFVQUwKICAgIHwgY21w
IEZhY3RvciAgIF8gICAgICAgID0gTEVTUwogICAgfCBjbXAgXyAgICAgICAg
RmFjdG9yICAgPSBHUkVBVEVSCiAgICB8IGNtcCBSZXNvbHZlICBSZXNvbHZl
ICA9IEVRVUFMCiAgICB8IGNtcCBSZXNvbHZlICBFcXVhbGl0eSA9IExFU1MK
ICAgIHwgY21wIEVxdWFsaXR5IFJlc29sdmUgID0gR1JFQVRFUgogICAgfCBj
bXAgRXF1YWxpdHkgRXF1YWxpdHkgPSBFUVVBTDsKCiAgZnVuIGNtIFtdID0g
RVFVQUwKICAgIHwgY20gKCh0aDEsIHRoMikgOjogbCkgPQogICAgbGV0CiAg
ICAgIHZhbCAobDEsIChwMSwgdGhzMSkpID0gZGVzdF90aG0gdGgxCiAgICAg
IHZhbCAobDIsIChwMiwgdGhzMikpID0gZGVzdF90aG0gdGgyCiAgICBpbgog
ICAgICBjYXNlIEludC5jb21wYXJlIChsZW5ndGggbDEsIGxlbmd0aCBsMikg
b2YgRVFVQUwKICAgICAgICA9PiAoY2FzZSBsZXhfY29tcGFyZSBmb3JtdWxh
X2NvbXBhcmUgKHppcCBsMSBsMikgb2YgRVFVQUwKICAgICAgICAgICAgICA9
PiAoY2FzZSBjbXAgcDEgcDIgb2YgRVFVQUwKICAgICAgICAgICAgICAgICAg
ICA9PiBjbSAoemlwIHRoczEgdGhzMiBAIGwpCiAgICAgICAgICAgICAgICAg
IHwgeCA9PiB4KQogICAgICAgICAgICB8IHggPT4geCkKICAgICAgfCB4ID0+
IHgKICAgIGVuZAppbgogIHZhbCB0aG1fY29tcGFyZSA9IGNtIG8gd3JhcDsK
ZW5kOwoKKCogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqKQooKiBS
ZWNvbnN0cnVjdGluZyBwcm9vZnMuICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICopCigqIC0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0gKikKCmZ1biByZWNvbnN0cnVjdF9yZXNvbHZh
bnQgY2wxIGNsMiAoY2wxJywgY2wyJykgPQogIGNhc2UgKHN1YnRyYWN0IChz
ZXRpZnkgY2wxKSBjbDEnLCBzdWJ0cmFjdCAoc2V0aWZ5IGNsMikgY2wyJykg
b2YKICAgIChfIDo6IF8gOjogXywgXykgPT4gTk9ORQogIHwgKF8sIF8gOjog
XyA6OiBfKSA9PiBOT05FCiAgfCAoW2xdLCBbXSkgPT4gU09NRSBsCiAgfCAo
W10sIFtsJ10pID0+IFNPTUUgKG5lZ2F0ZSBsJykKICB8IChbbF0sIFtsJ10p
ID0+IGlmIG5lZ2F0ZSBsID0gbCcgdGhlbiBTT01FIGwgZWxzZSBOT05FCiAg
fCAoW10sIFtdKSA9PiBOT05FOwoKZnVuIHJlY29uc3RydWN0X2VxdWFsaXR5
IGwgciA9CiAgbGV0CiAgICBmdW4gcmVjb25fZm4gcCAoZiwgYXJncykgKGYn
LCBhcmdzJykgcmVzdCA9CiAgICAgIHJlY29uX3RtCiAgICAgIChpZiBmIDw+
IGYnIG9yZWxzZSBsZW5ndGggYXJncyA8PiBsZW5ndGggYXJncycgdGhlbiBy
ZXN0CiAgICAgICBlbHNlIG1hcCAoQyBjb25zIHAgIyMgSSkgKGVudW1lcmF0
ZSAwICh6aXAgYXJncyBhcmdzJykpIEAgcmVzdCkKICAgIGFuZCByZWNvbl90
bSBbXSA9IE5PTkUKICAgICAgfCByZWNvbl90bSAoKHAsICh0bSwgdG0nKSkg
OjogcmVzdCkgPQogICAgICBpZiB0bSA9IGwgYW5kYWxzbyB0bScgPSByIHRo
ZW4gU09NRSAocmV2IHApCiAgICAgIGVsc2UKICAgICAgICBjYXNlICh0bSwg
dG0nKSBvZiAoRm4gYSwgRm4gYScpID0+IHJlY29uX2ZuIHAgYSBhJyByZXN0
CiAgICAgICAgfCBfID0+IHJlY29uX3RtIHJlc3QKCiAgICBmdW4gcmVjb25f
bGl0IChOb3QgYSkgKE5vdCBhJykgPSByZWNvbl9saXQgYSBhJwogICAgICB8
IHJlY29uX2xpdCAoQXRvbSBhKSAoQXRvbSBhJykgPQogICAgICBpZiBsIDw+
IHIgYW5kYWxzbyBhID0gYScgdGhlbiBOT05FIGVsc2UgcmVjb25fdG0gWyhb
XSwgKGEsIGEnKSldCiAgICAgIHwgcmVjb25fbGl0IF8gXyA9IE5PTkUKICBp
bgogICAgZm4gKGxpdCwgbGl0JykgPT4KICAgIGNhc2UgcmVjb25fbGl0IGxp
dCBsaXQnIG9mIFNPTUUgcCA9PiBTT01FIChsaXQsIHApIHwgTk9ORSA9PiBO
T05FCiAgZW5kOwoKZnVuIHJlY29uc3RydWN0IChjbCwgKEF4aW9tLCBbXSkp
ID0gQXhpb20nIGNsCiAgfCByZWNvbnN0cnVjdCAoW2xpdF0sIChSZWZsLCBb
XSkpID0gUmVmbCcgKGxocyBsaXQpCiAgfCByZWNvbnN0cnVjdCAoW2ZtLCBf
XSwgKEFzc3VtZSwgW10pKSA9IEFzc3VtZScgZm0KICB8IHJlY29uc3RydWN0
IChjbCwgKEluc3QsIFt0aF0pKSA9CiAgSW5zdCcgKG1hdGNobF9saXRlcmFs
cyB8PD58ICh6aXAgKGNsYXVzZSB0aCkgY2wpLCB0aCkKICB8IHJlY29uc3Ry
dWN0IChfLCAoRmFjdG9yLCBbdGhdKSkgPSBGYWN0b3InIHRoCiAgfCByZWNv
bnN0cnVjdCAoY2wsIChSZXNvbHZlLCBbdGgxLCB0aDJdKSkgPQogIGxldAog
ICAgdmFsIGYgPSByZWNvbnN0cnVjdF9yZXNvbHZhbnQgKGNsYXVzZSB0aDEp
IChjbGF1c2UgdGgyKQogICAgdmFsIGwgPQogICAgICBjYXNlIGYgKGNsLCBj
bCkgb2YgU09NRSBsID0+IGwKICAgICAgfCBOT05FID0+CiAgICAgICAgY2Fz
ZSBmaXJzdCBmIChMaXN0LnRhYnVsYXRlIChsZW5ndGggY2wsIHNwbGl0IGNs
KSkgb2YgU09NRSBsID0+IGwKICAgICAgICB8IE5PTkUgPT4gcmFpc2UgQlVH
ICJpbmZlcmVuY2UiICJjb3VsZG4ndCByZWNvbnN0cnVjdCByZXNvbHZhbnQi
CiAgaW4KICAgIFJlc29sdmUnIChsLCB0aDEsIHRoMikKICBlbmQKICB8IHJl
Y29uc3RydWN0IChOb3QgZm0gOjogY2wsIChFcXVhbGl0eSwgW3RoXSkpID0K
ICBsZXQKICAgIHZhbCAodG0xLCB0bTIpID0gZGVzdF9lcSBmbQogIGluCiAg
ICBjYXNlIGZpcnN0IChyZWNvbnN0cnVjdF9lcXVhbGl0eSB0bTEgdG0yKSAo
emlwIChjbGF1c2UgdGgpIGNsKSBvZgogICAgICBTT01FIChsLCBwKSA9PiBF
cXVhbGl0eScgKGwsIHAsIHRtMiwgdHJ1ZSwgdGgpCiAgICB8IE5PTkUgPT4K
ICAgICAgY2FzZSBmaXJzdCAocmVjb25zdHJ1Y3RfZXF1YWxpdHkgdG0yIHRt
MSkgKHppcCAoY2xhdXNlIHRoKSBjbCkgb2YKICAgICAgICBTT01FIChsLCBw
KSA9PiBFcXVhbGl0eScgKGwsIHAsIHRtMSwgZmFsc2UsIHRoKQogICAgICB8
IE5PTkUgPT4gcmFpc2UgQlVHICJpbmZlcmVuY2UiICJjb3VsZG4ndCByZWNv
bnN0cnVjdCBlcXVhbGl0eSBzdGVwIgogIGVuZAogIHwgcmVjb25zdHJ1Y3Qg
XyA9IHJhaXNlIEJVRyAiaW5mZXJlbmNlIiAibWFsZm9ybWVkIGluZmVyZW5j
ZSI7CgpmdW4gaW5mZXJlbmNlIHRoID0KICBsZXQKICAgIHZhbCBpID0gcmVj
b25zdHJ1Y3QgKGRlc3RfdGhtIHRoKQogICAgdmFsIF8gPQogICAgICAocHJp
bWl0aXZlX2luZmVyZW5jZSBpID0gdGgpIG9yZWxzZQogICAgICByYWlzZSBC
VUcgImluZmVyZW5jZSIKICAgICAgKCJmYWlsZWQ6XG50aCA9ICIgXiB0aG1f
dG9fc3RyaW5nIHRoIF4gIlxuaW5mID0gIiBeIGluZmVyZW5jZV90b19zdHJp
bmcgaQogICAgICAgXiAiXG5pbmZfdGggPSAiIF4gdGhtX3RvX3N0cmluZyAo
cHJpbWl0aXZlX2luZmVyZW5jZSBpKSkKICBpbgogICAgaQogIGVuZDsKCmxv
Y2FsCiAgdmFsIGVtcHR5ID0gKEJpbmFyeW1hcC5ta0RpY3QgdGhtX2NvbXBh
cmUsIFtdKTsKICBmdW4gY29udGFpbnMgKG0sIF8pIHRoID0gT3B0aW9uLmlz
U29tZSAoQmluYXJ5bWFwLnBlZWsgKG0sIHRoKSk7CiAgZnVuIGFkZCB0aCAo
bSwgcCkgPSAoQmluYXJ5bWFwLmluc2VydCAobSwgdGgsICgpKSwgKHRoLCBp
bmZlcmVuY2UgdGgpIDo6IHApOwogIHZhbCBmaW5hbGl6ZSA9IHNuZDsKCiAg
ZnVuIHJlZHVjZSAodGgsIHBmKSA9CiAgICBpZiBjb250YWlucyBwZiB0aCB0
aGVuIHBmCiAgICBlbHNlIGFkZCB0aCAoZm9sZGwgcmVkdWNlIHBmIChzbmQg
KHNuZCAoZGVzdF90aG0gdGgpKSkpOwppbgogIGZ1biBwcm9vZiB0aCA9IGZp
bmFsaXplIChyZWR1Y2UgKHRoLCBlbXB0eSkpOwplbmQ7CgooKiAtLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tICopCigqIENvbnRyYWRpY3Rpb25zIGFu
ZCB1bml0IGNsYXVzZXMuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgKikKKCogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LSAqKQoKdmFsIGlzX2NvbnRyYWRpY3Rpb24gPSBudWxsIG8gY2xhdXNlOwoK
ZnVuIGRlc3RfdW5pdCB0aCA9CiAgY2FzZSBjbGF1c2UgdGggb2YgW2xpdF0g
PT4gbGl0IHwgXyA9PiByYWlzZSBFUlIgImRlc3RfdW5pdCIgIm5vdCBhIHVu
aXQiOwoKdmFsIGlzX3VuaXQgPSBjYW4gZGVzdF91bml0OwoKKCogLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqKQooKiBEZXJpdmVkIHJ1bGVzICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICopCigqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0gKikKCmZ1biBDT05UUiBsaXQgdGggPSBSRVNPTFZFIChuZWdhdGUgbGl0
KSAoQVNTVU1FIGxpdCkgdGg7CgpmdW4gV0VBS0VOIGxpdHMgdGggPSBmb2xk
bCAodW5jdXJyeSBDT05UUikgdGggKHJldiBsaXRzKTsKCmZ1biBGUkVTSF9W
QVJTTCB0aHMgPQogIGxldAogICAgdmFsIGZ2cyA9IEZWTCAoTGlzdC5jb25j
YXQgKG1hcCBjbGF1c2UgdGhzKSkKICAgIHZhbCB2dnMgPSBuZXdfdmFycyAo
bGVuZ3RoIGZ2cykKICAgIHZhbCBzdWIgPSBTdWJzdDEuZnJvbV9tYXBsZXRz
ICh6aXB3aXRoIChjdXJyeSBvcCB8LT4pIGZ2cyB2dnMpCiAgaW4KICAgIG1h
cCAoSU5TVCBzdWIpIHRocwogIGVuZDsKCnZhbCBGUkVTSF9WQVJTID0gdW53
cmFwIG8gRlJFU0hfVkFSU0wgbyB3cmFwOwoKZnVuIFVOSVRfU1FVQVNIIHRo
ID0KICBsZXQKICAgIGZ1biBzcXVhc2ggZW52ICh4IDo6ICh4cyBhcyB5IDo6
IF8pKSA9IHNxdWFzaCAodW5pZnlfbGl0ZXJhbHMgZW52IHggeSkgeHMKICAg
ICAgfCBzcXVhc2ggZW52IF8gPSBlbnYKICBpbgogICAgRkFDVE9SIChJTlNU
IChzcXVhc2ggfDw+fCAoY2xhdXNlIHRoKSkgdGgpCiAgZW5kOwogIAp2YWwg
UkVGTEVYSVZJVFkgPSBSRUZMIChWYXIgIngiKTsKCnZhbCBTWU1NRVRSWSA9
CiAgRVFVQUxJVFkgKG1rX2VxIChWYXIgIngiLCBWYXIgIngiKSkgWzBdIChW
YXIgInkiKSB0cnVlIFJFRkxFWElWSVRZOwoKdmFsIFRSQU5TSVRJVklUWSA9
CiAgRVFVQUxJVFkgKG1rX2VxIChWYXIgInkiLCBWYXIgInoiKSkgWzBdIChW
YXIgIngiKSBmYWxzZQogIChBU1NVTUUgKE5vdCAobWtfZXEgKFZhciAieSIs
IFZhciAieiIpKSkpOwoKZnVuIEZVTl9DT05HUlVFTkNFIChmdW5jdGlvbiwg
YXJpdHkpID0KICBsZXQKICAgIHZhbCB4cyA9IExpc3QudGFidWxhdGUgKGFy
aXR5LCBmbiBpID0+IFZhciAoIngiIF4gaW50X3RvX3N0cmluZyBpKSkKICAg
IHZhbCB5cyA9IExpc3QudGFidWxhdGUgKGFyaXR5LCBmbiBpID0+IFZhciAo
InkiIF4gaW50X3RvX3N0cmluZyBpKSkKICAgIGZ1biBmIChpLCB0aCkgPQog
ICAgICBFUVVBTElUWSAoTGlzdC5sYXN0IChjbGF1c2UgdGgpKSBbMSxpXSAo
TGlzdC5udGggKHlzLCBpKSkgdHJ1ZSB0aAogICAgdmFsIHJlZmwgPSBJTlNU
ICgoIngiIHwtPiBGbiAoZnVuY3Rpb24sIHhzKSkgOjo+IHw8PnwpIFJFRkxF
WElWSVRZCiAgaW4KICAgIGZvbGRsIGYgcmVmbCAocmV2IChpbnRlcnZhbCAw
IGFyaXR5KSkKICBlbmQ7CgpmdW4gUkVMX0NPTkdSVUVOQ0UgKHJlbGF0aW9u
LCBhcml0eSkgPQogIGxldAogICAgdmFsIHhzID0gTGlzdC50YWJ1bGF0ZSAo
YXJpdHksIGZuIGkgPT4gVmFyICgieCIgXiBpbnRfdG9fc3RyaW5nIGkpKQog
ICAgdmFsIHlzID0gTGlzdC50YWJ1bGF0ZSAoYXJpdHksIGZuIGkgPT4gVmFy
ICgieSIgXiBpbnRfdG9fc3RyaW5nIGkpKQogICAgZnVuIGYgKGksIHRoKSA9
CiAgICAgIEVRVUFMSVRZIChMaXN0Lmxhc3QgKGNsYXVzZSB0aCkpIFtpXSAo
TGlzdC5udGggKHlzLCBpKSkgdHJ1ZSB0aAogICAgdmFsIHJlZmwgPSBBU1NV
TUUgKE5vdCAoQXRvbSAoRm4gKHJlbGF0aW9uLCB4cykpKSkKICBpbgogICAg
Zm9sZGwgZiByZWZsIChyZXYgKGludGVydmFsIDAgYXJpdHkpKQogIGVuZDsK
CmVuZAooKiNsaW5lIDAuMCAiZm9sL0Nhbm9uMS5zaWciKikKKCogPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PSAqKQooKiBGSVJTVC1PUkRFUiBMT0dJ
QyBDQU5PTklDQUxJWkFUSU9OICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICopCigqIENyZWF0ZWQgYnkgSm9lIEh1cmQsIFNlcHRl
bWJlciAyMDAxICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgKikKKCogUGFydGx5IHBvcnRlZCBmcm9tIHRoZSBDQU1MLUxpZ2h0IGNv
ZGUgYWNjb21wYW55aW5nIEpvaG4gSGFycmlzb24ncyBib29rICAqKQooKiA9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09ICopCgpzaWduYXR1cmUgQ2Fu
b24xID0Kc2lnCgp0eXBlIHRlcm0gICAgPSBUZXJtMS50ZXJtCnR5cGUgZm9y
bXVsYSA9IFRlcm0xLmZvcm11bGEKdHlwZSB0aG0gICAgID0gVGhtMS50aG0K
CigqIFNpbXBsaWZpY2F0aW9uICopCnZhbCBzaW1wbGlmeSA6IGZvcm11bGEg
LT4gZm9ybXVsYQoKKCogTmVnYXRpb24gbm9ybWFsIGZvcm0gKikKdmFsIG5u
ZiA6IGZvcm11bGEgLT4gZm9ybXVsYQoKKCogUHJlbmV4IG5vcm1hbCBmb3Jt
ICopCnZhbCBwcmVuZXggOiBmb3JtdWxhIC0+IGZvcm11bGEKdmFsIHBuZiAg
ICA6IGZvcm11bGEgLT4gZm9ybXVsYQoKKCogU2tvbGVtaXphdGlvbiAqKQp2
YWwgc2tvbGVtaXplICAgICAgOiBmb3JtdWxhIC0+IGZvcm11bGEKdmFsIGZ1
bGxfc2tvbGVtaXplIDogZm9ybXVsYSAtPiBmb3JtdWxhCgooKiBBIHRhdXRv
bG9neSBmaWx0ZXIgZm9yIGNsYXVzZXMgKikKdmFsIHRhdXRvbG9nb3VzIDog
Zm9ybXVsYSBsaXN0IC0+IGJvb2wKCigqIENvbmp1bmN0aXZlIG5vcm1hbCBm
b3JtICopCnZhbCBwdXJlY25mICAgICAgICA6IGZvcm11bGEgLT4gZm9ybXVs
YSBsaXN0IGxpc3QKdmFsIHNpbXBjbmYgICAgICAgIDogZm9ybXVsYSAtPiBm
b3JtdWxhIGxpc3QgbGlzdAp2YWwgY2xhdXNhbCAgICAgICAgOiBmb3JtdWxh
IC0+IGZvcm11bGEgbGlzdCBsaXN0CnZhbCBjbmYgICAgICAgICAgICA6IGZv
cm11bGEgLT4gZm9ybXVsYQp2YWwgYXhpb21hdGl6ZSAgICAgOiBmb3JtdWxh
IC0+IHRobSBsaXN0CnZhbCBlcV9heGlvbWF0aXplICA6IGZvcm11bGEgLT4g
dGhtIGxpc3QgICAgICAgICAgKCogQWRkcyBlcXVhbGl0eSBheGlvbXMgKikK
dmFsIGVxX2F4aW9tYXRpemUnIDogZm9ybXVsYSAtPiB0aG0gbGlzdCAgICAg
ICAgICAoKiBBZGRzIGlmIGVxdWFsaXR5IG9jY3VycyAqKQoKZW5kCigqI2xp
bmUgMC4wICJmb2wvQ2Fub24xLnNtbCIqKQooKiA9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09ICopCigqIEZJUlNULU9SREVSIExPR0lDIENBTk9OSUNB
TElaQVRJT04gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgKikKKCogQ3JlYXRlZCBieSBKb2UgSHVyZCwgU2VwdGVtYmVyIDIwMDEg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKQooKiBQ
YXJ0bHkgcG9ydGVkIGZyb20gdGhlIENBTUwtTGlnaHQgY29kZSBhY2NvbXBh
bnlpbmcgSm9obiBIYXJyaXNvbidzIGJvb2sgICopCigqID09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0gKikKCigqCmFwcCBsb2FkIFsiVXNlZnVsIiwg
IlRlcm0xIl07CiopCgpzdHJ1Y3R1cmUgQ2Fub24xIDo+IENhbm9uMSA9CnN0
cnVjdAoKb3BlbiBVc2VmdWwgVGVybTEgVGhtMTsKCmluZml4ciB8LT4gOjo+
IG9vOwoKdHlwZSBzdWJzdCAgICAgICAgPSBTdWJzdDEuc3Vic3Q7CnZhbCB8
PD58ICAgICAgICAgID0gU3Vic3QxLnw8Pnw7CnZhbCBvcCA6Oj4gICAgICAg
ID0gU3Vic3QxLjo6PjsKdmFsIHRlcm1fc3Vic3QgICAgPSBTdWJzdDEudGVy
bV9zdWJzdDsKdmFsIGZvcm11bGFfc3Vic3QgPSBTdWJzdDEuZm9ybXVsYV9z
dWJzdDsKCigqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKikKKCog
U2ltcGxpZmljYXRpb24uICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKQooKiAtLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tICopCgpmdW4gc2ltcGxpZnkxIChOb3QgRmFs
c2UpICAgICAgICAgICA9IFRydWUKICB8IHNpbXBsaWZ5MSAoTm90IFRydWUp
ICAgICAgICAgICAgPSBGYWxzZQogIHwgc2ltcGxpZnkxIChOb3QgKE5vdCBm
bSkpICAgICAgICA9IGZtCiAgfCBzaW1wbGlmeTEgKEFuZCAoRmFsc2UsIHEp
KSAgICAgID0gRmFsc2UKICB8IHNpbXBsaWZ5MSAoQW5kIChwLCAgICAgRmFs
c2UpKSAgPSBGYWxzZQogIHwgc2ltcGxpZnkxIChBbmQgKFRydWUsICBxKSkg
ICAgICA9IHEKICB8IHNpbXBsaWZ5MSAoQW5kIChwLCAgICAgVHJ1ZSkpICAg
PSBwCiAgfCBzaW1wbGlmeTEgKE9yICAoRmFsc2UsIHEpKSAgICAgID0gcQog
IHwgc2ltcGxpZnkxIChPciAgKHAsICAgICBGYWxzZSkpICA9IHAKICB8IHNp
bXBsaWZ5MSAoT3IgIChUcnVlLCAgcSkpICAgICAgPSBUcnVlCiAgfCBzaW1w
bGlmeTEgKE9yICAocCwgICAgIFRydWUpKSAgID0gVHJ1ZQogIHwgc2ltcGxp
ZnkxIChJbXAgKEZhbHNlLCBxKSkgICAgICA9IFRydWUKICB8IHNpbXBsaWZ5
MSAoSW1wIChUcnVlLCAgcSkpICAgICAgPSBxCiAgfCBzaW1wbGlmeTEgKElt
cCAocCwgICAgIFRydWUpKSAgID0gVHJ1ZQogIHwgc2ltcGxpZnkxIChJbXAg
KE5vdCBwLCBGYWxzZSkpICA9IHAKICB8IHNpbXBsaWZ5MSAoSW1wIChwLCAg
ICAgRmFsc2UpKSAgPSBOb3QgcAogIHwgc2ltcGxpZnkxIChJZmYgKFRydWUs
ICBxKSkgICAgICA9IHEKICB8IHNpbXBsaWZ5MSAoSWZmIChwLCAgICAgVHJ1
ZSkpICAgPSBwCiAgfCBzaW1wbGlmeTEgKElmZiAoRmFsc2UsIE5vdCBxKSkg
ID0gcQogIHwgc2ltcGxpZnkxIChJZmYgKEZhbHNlLCBxKSkgICAgICA9IE5v
dCBxCiAgfCBzaW1wbGlmeTEgKElmZiAoTm90IHAsIEZhbHNlKSkgID0gcAog
IHwgc2ltcGxpZnkxIChJZmYgKHAsICAgICBGYWxzZSkpICA9IE5vdCBwCiAg
fCBzaW1wbGlmeTEgKGZtIGFzIEZvcmFsbCAoeCwgcCkpID0gaWYgbWVtIHgg
KEZWIHApIHRoZW4gZm0gZWxzZSBwCiAgfCBzaW1wbGlmeTEgKGZtIGFzIEV4
aXN0cyAoeCwgcCkpID0gaWYgbWVtIHggKEZWIHApIHRoZW4gZm0gZWxzZSBw
CiAgfCBzaW1wbGlmeTEgZm0gICAgICAgICAgICAgICAgICAgID0gZm07Cgpm
dW4gc2ltcGxpZnkgKE5vdCAgICBwKSAgICAgID0gc2ltcGxpZnkxIChOb3Qg
KHNpbXBsaWZ5IHApKQogIHwgc2ltcGxpZnkgKEFuZCAgICAocCwgcSkpID0g
c2ltcGxpZnkxIChBbmQgKHNpbXBsaWZ5IHAsIHNpbXBsaWZ5IHEpKQogIHwg
c2ltcGxpZnkgKE9yICAgICAocCwgcSkpID0gc2ltcGxpZnkxIChPciAgKHNp
bXBsaWZ5IHAsIHNpbXBsaWZ5IHEpKQogIHwgc2ltcGxpZnkgKEltcCAgICAo
cCwgcSkpID0gc2ltcGxpZnkxIChJbXAgKHNpbXBsaWZ5IHAsIHNpbXBsaWZ5
IHEpKQogIHwgc2ltcGxpZnkgKElmZiAgICAocCwgcSkpID0gc2ltcGxpZnkx
IChJZmYgKHNpbXBsaWZ5IHAsIHNpbXBsaWZ5IHEpKQogIHwgc2ltcGxpZnkg
KEZvcmFsbCAoeCwgcCkpID0gc2ltcGxpZnkxIChGb3JhbGwgKHgsIHNpbXBs
aWZ5IHApKQogIHwgc2ltcGxpZnkgKEV4aXN0cyAoeCwgcCkpID0gc2ltcGxp
ZnkxIChFeGlzdHMgKHgsIHNpbXBsaWZ5IHApKQogIHwgc2ltcGxpZnkgZm0g
ICAgICAgICAgICAgID0gZm07CgooKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tICopCigqIE5lZ2F0aW9uIG5vcm1hbCBmb3JtLiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKikK
KCogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqKQoKZnVuIG5uZiAo
QW5kIChwLCBxKSkgICAgID0gQW5kIChubmYgcCwgbm5mIHEpCiAgfCBubmYg
KE9yIChwLCBxKSkgICAgICA9IE9yIChubmYgcCwgbm5mIHEpCiAgfCBubmYg
KEltcCAocCwgcSkpICAgICA9IE9yIChubmYnIHAsIG5uZiBxKQogIHwgbm5m
IChJZmYgKHAsIHEpKSAgICAgPSBPciAoQW5kIChubmYgcCwgbm5mIHEpLCBB
bmQgKG5uZicgcCwgbm5mJyBxKSkKICB8IG5uZiAoRm9yYWxsICh4LCBwKSkg
ID0gRm9yYWxsICh4LCBubmYgcCkKICB8IG5uZiAoRXhpc3RzICh4LCBwKSkg
ID0gRXhpc3RzICh4LCBubmYgcCkKICB8IG5uZiAoTm90IHgpICAgICAgICAg
ID0gbm5mJyB4CiAgfCBubmYgZm0gICAgICAgICAgICAgICA9IGZtCmFuZCBu
bmYnIFRydWUgICAgICAgICAgICA9IEZhbHNlCiAgfCBubmYnIEZhbHNlICAg
ICAgICAgICA9IFRydWUKICB8IG5uZicgKEFuZCAocCwgcSkpICAgID0gT3Ig
KG5uZicgcCwgbm5mJyBxKQogIHwgbm5mJyAoT3IgKHAsIHEpKSAgICAgPSBB
bmQgKG5uZicgcCwgbm5mJyBxKQogIHwgbm5mJyAoSW1wIChwLCBxKSkgICAg
PSBBbmQgKG5uZiBwLCBubmYnIHEpCiAgfCBubmYnIChJZmYgKHAsIHEpKSAg
ICA9IE9yIChBbmQgKG5uZiBwLCBubmYnIHEpLCBBbmQgKG5uZicgcCwgbm5m
IHEpKQogIHwgbm5mJyAoRm9yYWxsICh4LCBwKSkgPSBFeGlzdHMgKHgsIG5u
ZicgcCkKICB8IG5uZicgKEV4aXN0cyAoeCwgcCkpID0gRm9yYWxsICh4LCBu
bmYnIHApCiAgfCBubmYnIChOb3QgeCkgICAgICAgICA9IG5uZiB4CiAgfCBu
bmYnIGZtICAgICAgICAgICAgICA9IE5vdCBmbTsKCigqIC0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0gKikKKCogUHJlbmV4IG5vcm1hbCBmb3JtLiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAqKQooKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICop
CgpmdW4gcHVsbHF1YW50cyBmbSA9CiAgKGNhc2UgZm0gb2YKICAgICBBbmQg
KEZvcmFsbCAoeCwgcCksIEZvcmFsbCAoeSwgcSkpID0+IHB1bGxxdWFudF8y
IGZtIEZvcmFsbCBBbmQgeCB5IHAgcQogICB8IE9yIChFeGlzdHMgKHgsIHAp
LCBFeGlzdHMgKHksIHEpKSA9PiBwdWxscXVhbnRfMiBmbSBFeGlzdHMgT3Ig
eCB5IHAgcQogICB8IEFuZCAoRm9yYWxsICh4LCBwKSwgcSkgPT4gcHVsbHF1
YW50X2wgZm0gRm9yYWxsIEFuZCB4IHAgcQogICB8IEFuZCAocCwgRm9yYWxs
ICh4LCBxKSkgPT4gcHVsbHF1YW50X3IgZm0gRm9yYWxsIEFuZCB4IHAgcQog
ICB8IE9yIChGb3JhbGwgKHgsIHApLCBxKSA9PiBwdWxscXVhbnRfbCBmbSBG
b3JhbGwgT3IgeCBwIHEKICAgfCBPciAocCwgRm9yYWxsICh4LCBxKSkgPT4g
cHVsbHF1YW50X3IgZm0gRm9yYWxsIE9yIHggcCBxCiAgIHwgQW5kIChFeGlz
dHMgKHgsIHApLCBxKSA9PiBwdWxscXVhbnRfbCBmbSBFeGlzdHMgQW5kIHgg
cCBxCiAgIHwgQW5kIChwLCBFeGlzdHMgKHgsIHEpKSA9PiBwdWxscXVhbnRf
ciBmbSBFeGlzdHMgQW5kIHggcCBxCiAgIHwgT3IgKEV4aXN0cyAoeCwgcCks
IHEpID0+IHB1bGxxdWFudF9sIGZtIEV4aXN0cyBPciB4IHAgcQogICB8IE9y
IChwLCBFeGlzdHMgKHgsIHEpKSA9PiBwdWxscXVhbnRfciBmbSBFeGlzdHMg
T3IgeCBwIHEKICAgfCBfID0+IGZtKQphbmQgcHVsbHF1YW50X2wgZm0gUSBD
IHggcCBxID0KICBsZXQKICAgIHZhbCB4JyA9IHZhcmlhbnQgeCAoRlYgZm0p
CiAgaW4KICAgIFEgKHgnLCBwdWxscXVhbnRzIChDIChmb3JtdWxhX3N1YnN0
ICgoeCB8LT4gVmFyIHgnKSA6Oj4gfDw+fCkgcCwgcSkpKQogIGVuZAphbmQg
cHVsbHF1YW50X3IgZm0gUSBDIHggcCBxID0KICBsZXQKICAgIHZhbCB4JyA9
IHZhcmlhbnQgeCAoRlYgZm0pCiAgaW4KICAgIFEgKHgnLCBwdWxscXVhbnRz
IChDIChwLCBmb3JtdWxhX3N1YnN0ICgoeCB8LT4gVmFyIHgnKSA6Oj4gfDw+
fCkgcSkpKQogIGVuZAphbmQgcHVsbHF1YW50XzIgZm0gUSBDIHggeSBwIHEg
PQogIGxldAogICAgdmFsIHgnID0gdmFyaWFudCB4IChGViBmbSkKICBpbgog
ICAgUSAoeCcsIHB1bGxxdWFudHMoQyAoZm9ybXVsYV9zdWJzdCAoKHggfC0+
IFZhciB4JykgOjo+IHw8PnwpIHAsCiAgICAgICAgICAgICAgICAgICAgICAg
ICBmb3JtdWxhX3N1YnN0ICgoeCB8LT4gVmFyIHgnKSA6Oj4gfDw+fCkgcSkp
KQogIGVuZDsKCmZ1biBwcmVuZXggKEZvcmFsbCAoeCwgcCkpID0gRm9yYWxs
ICh4LCBwcmVuZXggcCkKICB8IHByZW5leCAoRXhpc3RzICh4LCBwKSkgPSBF
eGlzdHMgKHgsIHByZW5leCBwKQogIHwgcHJlbmV4IChBbmQgKHAsIHEpKSA9
IHB1bGxxdWFudHMgKEFuZCAocHJlbmV4IHAsIHByZW5leCBxKSkKICB8IHBy
ZW5leCAoT3IgKHAsIHEpKSA9IHB1bGxxdWFudHMgKE9yIChwcmVuZXggcCwg
cHJlbmV4IHEpKQogIHwgcHJlbmV4IGZtID0gZm07Cgp2YWwgcG5mID0gcHJl
bmV4IG8gbm5mIG8gc2ltcGxpZnk7CgooKiAtLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tICopCigqIFNrb2xlbWl6YXRpb24gZnVuY3Rpb24uICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
KikKKCogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqKQoKZnVuIHNr
b2xlbSBhdm9pZCAoRXhpc3RzICh5LCBwKSkgPQogIGxldAogICAgdmFsIHhz
ID0gc3VidHJhY3QgKEZWIHApIFt5XQogICAgdmFsIGYgPSB2YXJpYW50IChp
ZiB4cyA9IFtdIHRoZW4gImNfIiBeIHkgZWxzZSAiZl8iIF4geSkgYXZvaWQK
ICBpbgogICAgc2tvbGVtIGF2b2lkIChmb3JtdWxhX3N1YnN0ICgoeSB8LT4g
Rm4gKGYsIG1hcCBWYXIgeHMpKSA6Oj4gfDw+fCkgcCkKICBlbmQKICB8IHNr
b2xlbSBhdm9pZCAoRm9yYWxsICh4LCBwKSkgPSBGb3JhbGwgKHgsIHNrb2xl
bSBhdm9pZCBwKQogIHwgc2tvbGVtIGF2b2lkIChBbmQgKHAsIHEpKSA9IHNr
b2xlbTIgYXZvaWQgQW5kIHAgcQogIHwgc2tvbGVtIGF2b2lkIChPciAocCwg
cSkpID0gc2tvbGVtMiBhdm9pZCBPciBwIHEKICB8IHNrb2xlbSBfIGZtID0g
Zm0KYW5kIHNrb2xlbTIgYXZvaWQgQyBwIHEgPQogIGxldAogICAgdmFsIHAn
ID0gc2tvbGVtIGF2b2lkIHAKICAgIHZhbCBxJyA9IHNrb2xlbSAodW5pb24g
YXZvaWQgKGZ1bmN0aW9uX25hbWVzIHAnKSkgcQogIGluCiAgICBDIChwJywg
cScpCiAgZW5kOwoKZnVuIHNrb2xlbWl6ZSBmbSA9IHNrb2xlbSAoZnVuY3Rp
b25fbmFtZXMgZm0pIGZtOwoKdmFsIGZ1bGxfc2tvbGVtaXplID0gc3BlY2lh
bGl6ZSBvIHByZW5leCBvIHNrb2xlbWl6ZSBvIG5uZiBvIHNpbXBsaWZ5OwoK
KCogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqKQooKiBBIHRhdXRv
bG9neSBmaWx0ZXIgZm9yIGNsYXVzZXMuICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICopCigqIC0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0gKikKCmZ1biB0YXV0b2xvZ291cyBjbHMgPQogIGxldAog
ICAgdmFsIChwb3MsIG5lZykgPSBMaXN0LnBhcnRpdGlvbiBwb3NpdGl2ZSBj
bHMKICBpbgogICAgaW50ZXJzZWN0IHBvcyAobWFwIG5lZ2F0ZSBuZWcpIDw+
IFtdCiAgZW5kOwoKKCogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAq
KQooKiBDb25qdW5jdGl2ZSBOb3JtYWwgRm9ybS4gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopCigqIC0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKikKCmZ1biBkaXN0cmliIHMxIHMy
ID0gY2FydHdpdGggdW5pb24gczEgczI7CgpmdW4gcHVyZWNuZiAoT3IgKHAs
IHEpKSAgPSBkaXN0cmliIChwdXJlY25mIHApIChwdXJlY25mIHEpCiAgfCBw
dXJlY25mIChBbmQgKHAsIHEpKSA9IHVuaW9uIChwdXJlY25mIHApIChwdXJl
Y25mIHEpCiAgfCBwdXJlY25mIGZtID0gW1tmbV1dOwoKZnVuIHNpbXBjbmYg
VHJ1ZSA9IFtdCiAgfCBzaW1wY25mIEZhbHNlID0gW1tdXQogIHwgc2ltcGNu
ZiBmbSA9IExpc3QuZmlsdGVyIChub24gdGF1dG9sb2dvdXMpIChwdXJlY25m
IGZtKTsKCnZhbCBjbGF1c2FsID0KICBMaXN0LmNvbmNhdCBvIG1hcCAoc2lt
cGNuZiBvIHNwZWNpYWxpemUgbyBwcmVuZXgpIG8gZmxhdHRlbl9jb25qIG8K
ICBza29sZW1pemUgbyBubmYgbyBzaW1wbGlmeQoKdmFsIGNuZiA9IGxpc3Rf
bWtfY29uaiBvIG1hcCBsaXN0X21rX2Rpc2ogbyBjbGF1c2FsOwoKdmFsIGF4
aW9tYXRpemUgPSBtYXAgQVhJT00gbyBjbGF1c2FsOwoKZnVuIGVxX2F4aW9t
YXRpemUgZm0gPQogIGxldAogICAgdmFsIGVxcyA9IFtSRUZMRVhJVklUWSwg
U1lNTUVUUlksIFRSQU5TSVRJVklUWV0KICAgIHZhbCByZWxzID0gbWFwIFJF
TF9DT05HUlVFTkNFIChyZWxhdGlvbnNfbm9fZXEgZm0pCiAgICB2YWwgZnVu
cyA9IG1hcCBGVU5fQ09OR1JVRU5DRSAoZnVuY3Rpb25zIGZtKQogIGluCiAg
ICBlcXMgQCBmdW5zIEAgcmVscyBAIGF4aW9tYXRpemUgZm0KICBlbmQ7Cgpm
dW4gZXFfYXhpb21hdGl6ZScgZm0gPSAoaWYgZXFfb2NjdXJzIGZtIHRoZW4g
ZXFfYXhpb21hdGl6ZSBlbHNlIGF4aW9tYXRpemUpIGZtOwoKZW5kCigqI2xp
bmUgMC4wICJmb2wvVW5pdHMxLnNpZyIqKQooKiA9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09ICopCigqIEEgU1RPUkUgSU4gV0hJQ0ggVE8gQ0FDSEUg
VU5JVCBUSEVPUkVNUyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgKikKKCogQ3JlYXRlZCBieSBKb2UgSHVyZCwgTm92ZW1iZXIgMjAwMSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKQooKiA9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09ICopCgpzaWduYXR1cmUgVW5p
dHMxID0Kc2lnCgp0eXBlICdhIHBwICAgPSAnYSBVc2VmdWwucHAKdHlwZSBm
b3JtdWxhID0gVGVybTEuZm9ybXVsYQp0eXBlIHRobSAgICAgPSBUaG0xLnRo
bQoKdHlwZSB1bml0cwoKdmFsIGVtcHR5ICAgIDogdW5pdHMKdmFsIGFkZCAg
ICAgIDogdGhtIC0+IHVuaXRzIC0+IHVuaXRzCnZhbCBhZGRsICAgICA6IHRo
bSBsaXN0IC0+IHVuaXRzIC0+IHVuaXRzCnZhbCBzdWJzdW1lcyA6IHVuaXRz
IC0+IGZvcm11bGEgLT4gdGhtIG9wdGlvbgp2YWwgcHJvdmUgICAgOiB1bml0
cyAtPiBmb3JtdWxhIGxpc3QgLT4gdGhtIGxpc3Qgb3B0aW9uCnZhbCBkZW1v
ZCAgICA6IHVuaXRzIC0+IHRobSAtPiB0aG0KdmFsIGluZm8gICAgIDogdW5p
dHMgLT4gc3RyaW5nCnZhbCBwcF91bml0cyA6IHVuaXRzIHBwCgplbmQKKCoj
bGluZSAwLjAgImZvbC9Vbml0czEuc21sIiopCigqID09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0gKikKKCogQSBTVE9SRSBJTiBXSElDSCBUTyBDQUNI
RSBVTklUIFRIRU9SRU1TICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAqKQooKiBDcmVhdGVkIGJ5IEpvZSBIdXJkLCBOb3ZlbWJlciAyMDAx
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopCigq
ID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKikKCigqCmFwcCBsb2Fk
CiBbIlVzZWZ1bCIsICJNb3NtbCIsICJUZXJtMSIsICJUaG0xIiwgIkNhbm9u
MSIsICJNYXRjaDEiXTsKKikKCigqCiopCnN0cnVjdHVyZSBVbml0czEgOj4g
VW5pdHMxID0Kc3RydWN0CgpvcGVuIFVzZWZ1bCBUZXJtMSBUaG0xIE1hdGNo
MTsKCmluZml4IHwtPiA6Oj4gQD4gb28gIyM7CgpzdHJ1Y3R1cmUgTiA9IExp
dGVyYWxOZXQxOwoKKCogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAq
KQooKiBBdXhpbGlhcnkgZnVuY3Rpb25zLiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopCigqIC0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKikKCmZ1biBsaWZ0X29wdGlvbnMg
ZiA9CiAgbGV0CiAgICBmdW4gZyByZXMgW10gPSBTT01FIChyZXYgcmVzKQog
ICAgICB8IGcgcmVzICh4IDo6IHhzKSA9IGNhc2UgZiB4IG9mIFNPTUUgeSA9
PiBnICh5IDo6IHJlcykgeHMgfCBOT05FID0+IE5PTkUKICBpbgogICAgZyBb
XQogIGVuZDsKCigqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKikK
KCogT3BlcmF0aW9ucyBvbiB0aGUgcmF3IHVuaXQgY2FjaGUuICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKQooKiAtLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tICopCgp0eXBlIHVucyA9IHRobSBOLmxp
dGVyYWxfbWFwOwoKdmFsIHVlbXB0eSA6IHVucyA9IE4uZW1wdHk7CgpmdW4g
dWFkZCB0aCB1bnMgPSBOLmluc2VydCAoZGVzdF91bml0IHRoIHwtPiB0aCkg
dW5zOwoKZnVuIHVzdWJzdW1lcyB1bnMgbGl0ID0KICBMaXN0LmZpbmQgKGNh
biAoQyBtYXRjaF9saXRlcmFscyBsaXQpIG8gZGVzdF91bml0KQogIChyZXYg
KE4ubWF0Y2ggdW5zIGxpdCkpOwoKZnVuIHVwcm92ZSB1bnMgPQogIGxldAog
ICAgZnVuIHByIGxpdCA9CiAgICAgIE9wdGlvbi5tYXAgKGZuIHRoID0+IElO
U1QgKG1hdGNoX2xpdGVyYWxzIChkZXN0X3VuaXQgdGgpIGxpdCkgdGgpCiAg
ICAgICh1c3Vic3VtZXMgdW5zIGxpdCkKICBpbgogICAgbGlmdF9vcHRpb25z
IHByCiAgZW5kOwoKZnVuIHVkZW1vZCB1bnMgPQogIGxldAogICAgZnVuIGRl
bW9kIChsaXQsIHRoKSA9CiAgICAgIGNhc2UgdXByb3ZlIHVucyBbbmVnYXRl
IGxpdF0gb2YgTk9ORSA9PiB0aAogICAgICB8IFNPTUUgW2R0aF0gPT4gUkVT
T0xWRSBsaXQgdGggZHRoCiAgICAgIHwgU09NRSBfID0+IHJhaXNlIEJVRyAi
dW5pdF9kZW1vZCIgImNvcnJ1cHQiCiAgaW4KICAgIGZuIHRoID0+IGZvbGRs
IGRlbW9kIHRoIChjbGF1c2UgdGgpCiAgZW5kOwoKKCogLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLSAqKQooKiBUaGUgdXNlciBpbnRlcmZhY2UuICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICopCigqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKikK
CnR5cGUgdW5pdHMgPSAodGhtLCB1bnMpIHN1bTsKCnZhbCBlbXB0eSA9IElO
UiB1ZW1wdHk7CgpmdW4gc3Vic3VtZXMgKElOTCB0aCkgPSBLIChTT01FIHRo
KQogIHwgc3Vic3VtZXMgKElOUiB1bnMpID0gdXN1YnN1bWVzIHVuczsKCmZ1
biBwcm92ZSAoSU5MIHRoKSA9IFNPTUUgbyBtYXAgKGZuIEZhbHNlID0+IHRo
IHwgbGl0ID0+IENPTlRSIGxpdCB0aCkKICB8IHByb3ZlIChJTlIgdW5zKSA9
IHVwcm92ZSB1bnM7CgpmdW4gZGVtb2QgKElOTCB0aCkgPSBLIHRoCiAgfCBk
ZW1vZCAoSU5SIHVucykgPSB1ZGVtb2QgdW5zOwoKZnVuIGluZm8gKChJTkwg
XykgOiB1bml0cykgPSAiKiIKICB8IGluZm8gKElOUiB1bnMpID0gaW50X3Rv
X3N0cmluZyAoTi5zaXplIHVucyk7Cgp2YWwgcHBfdW5pdHMgPSBwcF9tYXAg
aW5mbyBwcF9zdHJpbmc7CgooKiBBZGRpbmcgYSB0aGVvcmVtIGludm9sdmVz
IHNxdWFzaGluZyBpdCB0byBhIHVuaXQsIGlmIHBvc3NpYmxlLiAqKQoKZnVu
IGFkZCBfIChVIGFzIElOTCBfKSA9IFUKICB8IGFkZCB0aCAoVSBhcyBJTlIg
dW5zKSA9CiAgaWYgTGlzdC5leGlzdHMgKE9wdGlvbi5pc1NvbWUgbyB1c3Vi
c3VtZXMgdW5zKSAoY2xhdXNlIHRoKSB0aGVuIFUKICBlbHNlCiAgICBsZXQK
ICAgICAgdmFsIHRoID0gdWRlbW9kIHVucyB0aAogICAgaW4KICAgICAgaWYg
aXNfY29udHJhZGljdGlvbiB0aCB0aGVuIElOTCB0aAogICAgICBlbHNlIGNh
c2UgdG90YWwgVU5JVF9TUVVBU0ggdGggb2YgTk9ORSA9PiBVIHwgU09NRSB0
aCA9PiBJTlIgKHVhZGQgdGggdW5zKQogICAgZW5kOwoKdmFsIGFkZGwgPSBD
IChmb2xkbCAodW5jdXJyeSBhZGQpKTsKCmVuZAooKiNsaW5lIDAuMCAiZm9s
L1Byb2JsZW0xLnNpZyIqKQooKiA9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09ICopCigqIFNPTUUgU0FNUExFIFBST0JMRU1TIFRPIFRFU1QgUFJPT0Yg
UFJPQ0VEVVJFUyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKikKKCog
Q3JlYXRlZCBieSBKb2UgSHVyZCwgU2VwdGVtYmVyIDIwMDEgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKQooKiBQYXJ0bHkgcG9y
dGVkIGZyb20gdGhlIENBTUwtTGlnaHQgY29kZSBhY2NvbXBhbnlpbmcgSm9o
biBIYXJyaXNvbidzIGJvb2sgICopCigqID09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0gKikKCnNpZ25hdHVyZSBQcm9ibGVtMSA9CnNpZwoKdHlwZSAn
YSBxdW90YXRpb24gPSAnYSBmcmFnIGxpc3QKdHlwZSAnYSBwcm9ibGVtICAg
PSB7bmFtZSA6IHN0cmluZywgZ29hbCA6ICdhIHF1b3RhdGlvbn0KCigqIEFj
Y2Vzc2luZyBpbmRpdmlkdWFsIHByb2JsZW1zICopCnZhbCBnZXQgOiAnYSBw
cm9ibGVtIGxpc3QgLT4gc3RyaW5nIC0+ICdhIHF1b3RhdGlvbgoKKCogVGhl
IG1hc3RlciBjb2xsZWN0aW9ucyAqKQp2YWwgbm9uZXF1YWxpdHkgOiAnYSBw
cm9ibGVtIGxpc3QKdmFsIGVxdWFsaXR5ICAgIDogJ2EgcHJvYmxlbSBsaXN0
CnZhbCB0cHRwICAgICAgICA6ICdhIHByb2JsZW0gbGlzdAoKKCogU29tZSBj
b21waWxhdGlvbnMgKikKdmFsIHF1aWNrIDogJ2EgcHJvYmxlbSBsaXN0Cgpl
bmQKKCojbGluZSAwLjAgImZvbC9Qcm9ibGVtMS5zbWwiKikKKCogPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PSAqKQooKiBTT01FIFNBTVBMRSBQUk9C
TEVNUyBUTyBURVNUIFBST09GIFBST0NFRFVSRVMgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICopCigqIENyZWF0ZWQgYnkgSm9lIEh1cmQsIFNlcHRl
bWJlciAyMDAxICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgKikKKCogUGFydGx5IHBvcnRlZCBmcm9tIHRoZSBDQU1MLUxpZ2h0IGNv
ZGUgYWNjb21wYW55aW5nIEpvaG4gSGFycmlzb24ncyBib29rICAqKQooKiA9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09ICopCgpzdHJ1Y3R1cmUgUHJv
YmxlbTEgOj4gUHJvYmxlbTEgPQpzdHJ1Y3QKCnR5cGUgJ2EgcXVvdGF0aW9u
ID0gJ2EgZnJhZyBsaXN0OwoKdHlwZSAnYSBwcm9ibGVtID0ge25hbWUgOiBz
dHJpbmcsIGdvYWwgOiAnYSBxdW90YXRpb259OwoKKCogPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PSAqKQooKiBBY2Nlc3NpbmcgaW5kaXZpZHVhbCBw
cm9ibGVtcy4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICopCigqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKikK
CmZ1biBleHRyYWN0IChwIDogJ2EgcHJvYmxlbSBsaXN0KSBuID0KICBPcHRp
b24udmFsT2YgKExpc3QuZmluZCAoZm4ge25hbWUsIC4uLn0gPT4gbmFtZSA9
IG4pIHApOwoKZnVuIGdldCBwID0gI2dvYWwgbyBleHRyYWN0IHA7CgooKiA9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09ICopCigqIFByb2JsZW1zIHdp
dGhvdXQgZXF1YWxpdHkuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgKikKKCogPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PSAqKQoKdmFsIG5vbmVxdWFsaXR5ID0gWwoKKCogLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLSAqKQooKiBUcml2aWEgKHNvbWUgb2Ygd2hp
Y2ggZGVtb25zdHJhdGUgZXgtYnVncyBpbiBwcm92ZXJzKS4gICAgICAgICAg
ICAgICAgICAgICopCigqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0g
KikKCntuYW1lID0gIlRSVUUiLAogZ29hbCA9IFsKUVVPVEUgIlxuVCJdfSwK
CntuYW1lID0gIlBfb3Jfbm90X1AiLAogZ29hbCA9IFsKUVVPVEUgIlxucCBc
XC8gfnAiXX0sCgp7bmFtZSA9ICJKSF90ZXN0IiwKIGdvYWwgPSBbClFVT1RF
ICJcbiF4IHkuID96LiBwIHggXFwvIHAgeSA9PT4gcCB6Il19LAoKe25hbWUg
PSAiQ1lDTElDIiwKIGdvYWwgPSBbClFVT1RFICJcbigheC4gcCAoZyAoYyB4
KSkpID09PiA/ei4gcCAoZyB6KSJdfSwKCntuYW1lID0gIk1OX2J1ZyIsCiBn
b2FsID0gWwpRVU9URSAiXG4oIXguID95LiBmIHkgeCB4KSA9PT4gP3ouIGYg
eiAwIDAiXX0sCgp7bmFtZSA9ICJFUklDIiwKIGdvYWwgPSBbClFVT1RFICJc
biF4LiA/diB3LiAheSB6LiBwIHggL1xcIHEgeSA9PT4gKHAgdiBcXC8gciB3
KSAvXFwgKHIgeiA9PT4gcSB2KSJdfSwKCigqIC0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0gKikKKCogUHJvcG9zaXRpb25hbCBMb2dpYy4gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAqKQooKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICopCgp7bmFt
ZSA9ICJQUk9QXzEiLAogZ29hbCA9IFsKUVVPVEUgIlxucCA9PT4gcSA8PT4g
fnEgPT0+IH5wIl19LAoKe25hbWUgPSAiUFJPUF8yIiwKIGdvYWwgPSBbClFV
T1RFICJcbn5+cCA8PT4gcCJdfSwKCntuYW1lID0gIlBST1BfMyIsCiBnb2Fs
ID0gWwpRVU9URSAiXG5+KHAgPT0+IHEpID09PiBxID09PiBwIl19LAoKe25h
bWUgPSAiUFJPUF80IiwKIGdvYWwgPSBbClFVT1RFICJcbn5wID09PiBxIDw9
PiB+cSA9PT4gcCJdfSwKCntuYW1lID0gIlBST1BfNSIsCiBnb2FsID0gWwpR
VU9URSAiXG4ocCBcXC8gcSA9PT4gcCBcXC8gcikgPT0+IHAgXFwvIChxID09
PiByKSJdfSwKCntuYW1lID0gIlBST1BfNiIsCiBnb2FsID0gWwpRVU9URSAi
XG5wIFxcLyB+cCJdfSwKCntuYW1lID0gIlBST1BfNyIsCiBnb2FsID0gWwpR
VU9URSAiXG5wIFxcLyB+fn5wIl19LAoKe25hbWUgPSAiUFJPUF84IiwKIGdv
YWwgPSBbClFVT1RFICJcbigocCA9PT4gcSkgPT0+IHApID09PiBwIl19LAoK
e25hbWUgPSAiUFJPUF85IiwKIGdvYWwgPSBbClFVT1RFICJcbihwIFxcLyBx
KSAvXFwgKH5wIFxcLyBxKSAvXFwgKHAgXFwvIH5xKSA9PT4gfih+cSBcXC8g
fnEpIl19LAoKe25hbWUgPSAiUFJPUF8xMCIsCiBnb2FsID0gWwpRVU9URSAi
XG4ocSA9PT4gcikgL1xcIChyID09PiBwIC9cXCBxKSAvXFwgKHAgPT0+IHEg
L1xcIHIpID09PiAocCA8PT4gcSkiXX0sCgp7bmFtZSA9ICJQUk9QXzExIiwK
IGdvYWwgPSBbClFVT1RFICJcbnAgPD0+IHAiXX0sCgp7bmFtZSA9ICJQUk9Q
XzEyIiwKIGdvYWwgPSBbClFVT1RFICJcbigocCA8PT4gcSkgPD0+IHIpIDw9
PiBwIDw9PiBxIDw9PiByIl19LAoKe25hbWUgPSAiUFJPUF8xMyIsCiBnb2Fs
ID0gWwpRVU9URSAiXG5wIFxcLyBxIC9cXCByIDw9PiAocCBcXC8gcSkgL1xc
IChwIFxcLyByKSJdfSwKCntuYW1lID0gIlBST1BfMTQiLAogZ29hbCA9IFsK
UVVPVEUgIlxuKHAgPD0+IHEpIDw9PiAocSBcXC8gfnApIC9cXCAofnEgXFwv
IHApIl19LAoKe25hbWUgPSAiUFJPUF8xNSIsCiBnb2FsID0gWwpRVU9URSAi
XG5wID09PiBxIDw9PiB+cCBcXC8gcSJdfSwKCntuYW1lID0gIlBST1BfMTYi
LAogZ29hbCA9IFsKUVVPVEUgIlxuKHAgPT0+IHEpIFxcLyAocSA9PT4gcCki
XX0sCgp7bmFtZSA9ICJQUk9QXzE3IiwKIGdvYWwgPSBbClFVT1RFICJcbnAg
L1xcIChxID09PiByKSA9PT4gcyA8PT4gKH5wIFxcLyBxIFxcLyBzKSAvXFwg
KH5wIFxcLyB+ciBcXC8gcykiXX0sCgp7bmFtZSA9ICJNQVRIUzRfRVhBTVBM
RSIsCiBnb2FsID0gWwpRVU9URSAiXG4oYSBcXC8gfmsgPT0+IGcpIC9cXCAo
ZyA9PT4gcSkgL1xcIH5xID09PiBrIl19LAoKe25hbWUgPSAiWE9SX0FTU09D
IiwKIGdvYWwgPSBbClFVT1RFICJcbn4ofihwIDw9PiBxKSA8PT4gcikgPD0+
IH4ocCA8PT4gfihxIDw9PiByKSkiXX0sCgooKiAtLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tICopCigqIE1vbmFkaWMgUHJlZGljYXRlIExvZ2ljLiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgKikKKCogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqKQoKKCog
VGhlIGRyaW5rZXIncyBwcmluY2lwbGUgKikKe25hbWUgPSAiUDE4IiwKIGdv
YWwgPSBbClFVT1RFICJcbj92ZXJ5X3BvcHVsYXJfZ3V5LiAhd2hvbGVfcHVi
LiBkcmlua3MgdmVyeV9wb3B1bGFyX2d1eSA9PT4gZHJpbmtzIHdob2xlX3B1
YiJdfSwKCntuYW1lID0gIlAxOSIsCiBnb2FsID0gWwpRVU9URSAiXG4/eC4g
IXkgei4gKHAgeSA9PT4gcSB6KSA9PT4gcCB4ID09PiBxIHgiXX0sCgp7bmFt
ZSA9ICJQMjAiLAogZ29hbCA9IFsKUVVPVEUgIlxuKCF4IHkuID96LiAhdy4g
cCB4IC9cXCBxIHkgPT0+IHIgeiAvXFwgdSB3KSAvXFwgKCF4IHkuIHAgeCAv
XFwgcSB5KSA9PT4gP3ouIHIgeiJdfSwKCntuYW1lID0gIlAyMSIsCiBnb2Fs
ID0gWwpRVU9URSAiXG4oP3guIHAgPT0+IHEgeCkgL1xcICg/eC4gcSB4ID09
PiBwKSA9PT4gP3guIHAgPD0+IHEgeCJdfSwKCntuYW1lID0gIlAyMiIsCiBn
b2FsID0gWwpRVU9URSAiXG4oIXguIHAgPD0+IHEgeCkgPT0+IChwIDw9PiAh
eC4gcSB4KSJdfSwKCntuYW1lID0gIlAyMyIsCiBnb2FsID0gWwpRVU9URSAi
XG4oIXguIHAgXFwvIHEgeCkgPD0+IHAgXFwvICF4LiBxIHgiXX0sCgp7bmFt
ZSA9ICJQMjQiLAogZ29hbCA9IFsKClFVT1RFICJcbn4oP3guIHUgeCAvXFwg
cSB4KSAvXFwgKCF4LiBwIHggPT0+IHEgeCBcXC8gciB4KSAvXFwgfig/eC4g
cCB4ID09PiA/eC4gcSB4KSAvXFxcbigheC4gcSB4IC9cXCByIHggPT0+IHUg
eCkgPT0+ID94LiBwIHggL1xcIHIgeCJdfSwKCntuYW1lID0gIlAyNSIsCiBn
b2FsID0gWwoKUVVPVEUgIlxuKD94LiBwIHgpIC9cXCAoIXguIHUgeCA9PT4g
fmcgeCAvXFwgciB4KSAvXFwgKCF4LiBwIHggPT0+IGcgeCAvXFwgdSB4KSAv
XFxcbigoIXguIHAgeCA9PT4gcSB4KSBcXC8gP3guIHEgeCAvXFwgcCB4KSA9
PT4gP3guIHEgeCAvXFwgcCB4Il19LAoKe25hbWUgPSAiUDI2IiwKIGdvYWwg
PSBbCgpRVU9URSAiXG4oKD94LiBwIHgpIDw9PiA/eC4gcSB4KSAvXFwgKCF4
IHkuIHAgeCAvXFwgcSB5ID09PiAociB4IDw9PiB1IHkpKSA9PT5cbigoIXgu
IHAgeCA9PT4gciB4KSA8PT4gIXguIHEgeCA9PT4gdSB4KSJdfSwKCntuYW1l
ID0gIlAyNyIsCiBnb2FsID0gWwoKUVVPVEUgIlxuKD94LiBwIHggL1xcIH5x
IHgpIC9cXCAoIXguIHAgeCA9PT4gciB4KSAvXFwgKCF4LiB1IHggL1xcIHMg
eCA9PT4gcCB4KSAvXFxcbig/eC4gciB4IC9cXCB+cSB4KSA9PT4gKCF4LiB1
IHggPT0+IH5yIHgpID09PiAheC4gdSB4ID09PiB+cyB4Il19LAoKe25hbWUg
PSAiUDI4IiwKIGdvYWwgPSBbCgpRVU9URSAiXG4oIXguIHAgeCA9PT4gIXgu
IHEgeCkgL1xcICgoIXguIHEgeCBcXC8gciB4KSA9PT4gP3guIHEgeCAvXFwg
ciB4KSAvXFxcbigoP3guIHIgeCkgPT0+ICF4LiBsIHggPT0+IG0geCkgPT0+
ICF4LiBwIHggL1xcIGwgeCA9PT4gbSB4Il19LAoKe25hbWUgPSAiUDI5IiwK
IGdvYWwgPSBbCgoKUVVPVEUgIlxuKD94LiBwIHgpIC9cXCAoP3guIGcgeCkg
PT0+XG4oKCF4LiBwIHggPT0+IGggeCkgL1xcICgheC4gZyB4ID09PiBqIHgp
IDw9PlxuICF4IHkuIHAgeCAvXFwgZyB5ID09PiBoIHggL1xcIGogeSkiXX0s
Cgp7bmFtZSA9ICJQMzAiLAogZ29hbCA9IFsKClFVT1RFICJcbigheC4gcCB4
IFxcLyBnIHggPT0+IH5oIHgpIC9cXCAoIXguIChnIHggPT0+IH51IHgpID09
PiBwIHggL1xcIGggeCkgPT0+XG4heC4gdSB4Il19LAoKe25hbWUgPSAiUDMx
IiwKIGdvYWwgPSBbCgpRVU9URSAiXG5+KD94LiBwIHggL1xcIChnIHggXFwv
IGggeCkpIC9cXCAoP3guIHEgeCAvXFwgcCB4KSAvXFwgKCF4LiB+aCB4ID09
PiBqIHgpID09PlxuP3guIHEgeCAvXFwgaiB4Il19LAoKe25hbWUgPSAiUDMy
IiwKIGdvYWwgPSBbCgpRVU9URSAiXG4oIXguIHAgeCAvXFwgKGcgeCBcXC8g
aCB4KSA9PT4gcSB4KSAvXFwgKCF4LiBxIHggL1xcIGggeCA9PT4gaiB4KSAv
XFxcbigheC4gciB4ID09PiBoIHgpID09PiAheC4gcCB4IC9cXCByIHggPT0+
IGogeCJdfSwKCntuYW1lID0gIlAzMyIsCiBnb2FsID0gWwoKUVVPVEUgIlxu
KCF4LiBwIGEgL1xcIChwIHggPT0+IHAgYikgPT0+IHAgYykgPD0+XG4oIXgu
IHAgYSA9PT4gcCB4IFxcLyBwIGMpIC9cXCAocCBhID09PiBwIGIgPT0+IHAg
YykiXX0sCgooKiBUaGlzIGdpdmVzIHJpc2UgdG8gNTE4NCBjbGF1c2VzIHdo
ZW4gY29udmVydGVkIHRvIENORiEgKikKe25hbWUgPSAiUDM0IiwKIGdvYWwg
PSBbCgpRVU9URSAiXG4oKD94LiAheS4gcCB4IDw9PiBwIHkpIDw9PiAoP3gu
IHEgeCkgPD0+ICF5LiBxIHkpIDw9PlxuKD94LiAheS4gcSB4IDw9PiBxIHkp
IDw9PiAoP3guIHAgeCkgPD0+ICF5LiBwIHkiXX0sCgp7bmFtZSA9ICJQMzUi
LAogZ29hbCA9IFsKUVVPVEUgIlxuP3ggeS4gcCB4IHkgPT0+ICF4IHkuIHAg
eCB5Il19LAoKKCogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqKQoo
KiBGdWxsIHByZWRpY2F0ZSBsb2dpYyAod2l0aG91dCBJZGVudGl0eSBhbmQg
RnVuY3Rpb25zKSAgICAgICAgICAgICAgICAgICAgICopCigqIC0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0gKikKCntuYW1lID0gIlAzNiIsCiBnb2Fs
ID0gWwoKUVVPVEUgIlxuKCF4LiA/eS4gcCB4IHkpIC9cXCAoIXguID95LiBn
IHggeSkgL1xcXG4oIXggeS4gcCB4IHkgXFwvIGcgeCB5ID09PiAhei4gcCB5
IHogXFwvIGcgeSB6ID09PiBoIHggeikgPT0+ICF4LiA/eS4gaCB4IHkiXX0s
Cgp7bmFtZSA9ICJQMzciLAogZ29hbCA9IFsKCgpRVU9URSAiXG4oIXouID93
LiAheC4gP3kuIChwIHggeiA9PT4gcCB5IHcpIC9cXCBwIHkgeiAvXFwgKHAg
eSB3ID09PiA/di4gcSB2IHcpKSAvXFxcbigheCB6LiB+cCB4IHogPT0+ID95
LiBxIHkgeikgL1xcICgoP3ggeS4gcSB4IHkpID09PiAheC4gciB4IHgpID09
PlxuIXguID95LiByIHggeSJdfSwKCntuYW1lID0gIlAzOCIsCiBnb2FsID0g
WwoKCgpRVU9URSAiXG4oIXguIHAgYSAvXFwgKHAgeCA9PT4gP3kuIHAgeSAv
XFwgciB4IHkpID09PiA/eiB3LiBwIHogL1xcIHIgeCB3IC9cXCByIHcgeikg
PD0+XG4heC5cbiAgKH5wIGEgXFwvIHAgeCBcXC8gP3ogdy4gcCB6IC9cXCBy
IHggdyAvXFwgciB3IHopIC9cXFxuICAofnAgYSBcXC8gfig/eS4gcCB5IC9c
XCByIHggeSkgXFwvID96IHcuIHAgeiAvXFwgciB4IHcgL1xcIHIgdyB6KSJd
fSwKCntuYW1lID0gIlAzOSIsCiBnb2FsID0gWwpRVU9URSAiXG5+P3guICF5
LiBwIHkgeCA8PT4gfnAgeSB5Il19LAoKe25hbWUgPSAiUDQwIiwKIGdvYWwg
PSBbClFVT1RFICJcbig/eS4gIXguIHAgeCB5IDw9PiBwIHggeCkgPT0+IH4h
eC4gP3kuICF6LiBwIHogeSA8PT4gfnAgeiB4Il19LAoKe25hbWUgPSAiUDQx
IiwKIGdvYWwgPSBbClFVT1RFICJcbighei4gP3kuICF4LiBwIHggeSA8PT4g
cCB4IHogL1xcIH5wIHggeCkgPT0+IH4/ei4gIXguIHAgeCB6Il19LAoKe25h
bWUgPSAiUDQyIiwKIGdvYWwgPSBbClFVT1RFICJcbn4/eS4gIXguIHAgeCB5
IDw9PiB+P3ouIHAgeCB6IC9cXCBwIHogeCJdfSwKCntuYW1lID0gIlA0MyIs
CiBnb2FsID0gWwpRVU9URSAiXG4oIXggeS4gcSB4IHkgPD0+ICF6LiBwIHog
eCA8PT4gcCB6IHkpID09PiAheCB5LiBxIHggeSA8PT4gcSB5IHgiXX0sCgp7
bmFtZSA9ICJQNDQiLAogZ29hbCA9IFsKClFVT1RFICJcbigheC4gcCB4ID09
PiAoP3kuIGcgeSAvXFwgaCB4IHkpIC9cXCA/eS4gZyB5IC9cXCB+aCB4IHkp
IC9cXFxuKD94LiBqIHggL1xcICF5LiBnIHkgPT0+IGggeCB5KSA9PT4gP3gu
IGogeCAvXFwgfnAgeCJdfSwKCntuYW1lID0gIlA0NSIsCiBnb2FsID0gWwoK
CgpRVU9URSAiXG4oIXguIHAgeCAvXFwgKCF5LiBnIHkgL1xcIGggeCB5ID09
PiBqIHggeSkgPT0+ICF5LiBnIHkgL1xcIGggeCB5ID09PiByIHkpIC9cXFxu
fig/eS4gbCB5IC9cXCByIHkpIC9cXFxuKD94LiBwIHggL1xcICgheS4gaCB4
IHkgPT0+IGwgeSkgL1xcICF5LiBnIHkgL1xcIGggeCB5ID09PiBqIHggeSkg
PT0+XG4/eC4gcCB4IC9cXCB+P3kuIGcgeSAvXFwgaCB4IHkiXX0sCgp7bmFt
ZSA9ICJQNDYiLAogZ29hbCA9IFsKCgpRVU9URSAiXG4oIXguIHAgeCAvXFwg
KCF5LiBwIHkgL1xcIGggeSB4ID09PiBnIHkpID09PiBnIHgpIC9cXFxuKCg/
eC4gcCB4IC9cXCB+ZyB4KSA9PT4gP3guIHAgeCAvXFwgfmcgeCAvXFwgIXku
IHAgeSAvXFwgfmcgeSA9PT4gaiB4IHkpIC9cXFxuKCF4IHkuIHAgeCAvXFwg
cCB5IC9cXCBoIHggeSA9PT4gfmogeSB4KSA9PT4gIXguIHAgeCA9PT4gZyB4
Il19LAoKe25hbWUgPSAiUDUwIiwKIGdvYWwgPSBbClFVT1RFICJcbigheC4g
ZjAgYSB4IFxcLyAheS4gZjAgeCB5KSA9PT4gP3guICF5LiBmMCB4IHkiXX0s
CgooKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICopCigqIEV4YW1w
bGUgZnJvbSBNYW50aGV5IGFuZCBCcnksIENBREUtOS4gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgKikKKCogLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLSAqKQoKe25hbWUgPSAiUDU1IiwKIGdvYWwgPSBbCgoK
CgoKCgoKUVVPVEUgIlxubGl2ZXMgYWdhdGhhIC9cXCBsaXZlcyBidXRsZXIg
L1xcIGxpdmVzIGNoYXJsZXMgL1xcXG4oa2lsbGVkIGFnYXRoYSBhZ2F0aGEg
XFwvIGtpbGxlZCBidXRsZXIgYWdhdGhhIFxcLyBraWxsZWQgY2hhcmxlcyBh
Z2F0aGEpIC9cXFxuKCF4IHkuIGtpbGxlZCB4IHkgPT0+IGhhdGVzIHggeSAv
XFwgfnJpY2hlciB4IHkpIC9cXFxuKCF4LiBoYXRlcyBhZ2F0aGEgeCA9PT4g
fmhhdGVzIGNoYXJsZXMgeCkgL1xcXG4oaGF0ZXMgYWdhdGhhIGFnYXRoYSAv
XFwgaGF0ZXMgYWdhdGhhIGNoYXJsZXMpIC9cXFxuKCF4LiBsaXZlcyB4IC9c
XCB+cmljaGVyIHggYWdhdGhhID09PiBoYXRlcyBidXRsZXIgeCkgL1xcXG4o
IXguIGhhdGVzIGFnYXRoYSB4ID09PiBoYXRlcyBidXRsZXIgeCkgL1xcXG4o
IXguIH5oYXRlcyB4IGFnYXRoYSBcXC8gfmhhdGVzIHggYnV0bGVyIFxcLyB+
aGF0ZXMgeCBjaGFybGVzKSA9PT5cbmtpbGxlZCBhZ2F0aGEgYWdhdGhhIC9c
XCB+a2lsbGVkIGJ1dGxlciBhZ2F0aGEgL1xcIH5raWxsZWQgY2hhcmxlcyBh
Z2F0aGEiXX0sCgp7bmFtZSA9ICJQNTciLAogZ29hbCA9IFsKClFVT1RFICJc
bnAgKGYgYSBiKSAoZiBiIGMpIC9cXCBwIChmIGIgYykgKGYgYSBjKSAvXFxc
bigheCB5IHouIHAgeCB5IC9cXCBwIHkgeiA9PT4gcCB4IHopID09PiBwIChm
IGEgYikgKGYgYSBjKSJdfSwKCigqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0gKikKKCogU2VlIGluZm8taG9sLCBjaXJjYSAxNTAwLiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKQoo
KiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICopCgp7bmFtZSA9ICJQ
NTgiLAogZ29hbCA9IFsKUVVPVEUgIlxuIXguID92IHcuICF5IHouIHAgeCAv
XFwgcSB5ID09PiAocCB2IFxcLyByIHcpIC9cXCAociB6ID09PiBxIHYpIl19
LAoKe25hbWUgPSAiUDU5IiwKIGdvYWwgPSBbClFVT1RFICJcbigheC4gcCB4
IDw9PiB+cCAoZiB4KSkgPT0+ID94LiBwIHggL1xcIH5wIChmIHgpIl19LAoK
e25hbWUgPSAiUDYwIiwKIGdvYWwgPSBbClFVT1RFICJcbiF4LiBwIHggKGYg
eCkgPD0+ID95LiAoIXouIHAgeiB5ID09PiBwIHogKGYgeCkpIC9cXCBwIHgg
eSJdfSwKCigqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKikKKCog
RnJvbSBHaWxtb3JlJ3MgY2xhc3NpYyBwYXBlci4gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKQooKiAtLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tICopCgooKgpKUkg6IEFtYXppbmdseSwgdGhp
cyBzdGlsbCBzZWVtcyBub24tdHJpdmlhbC4uLiBpbiBIT0wgaXQgd29ya3Mg
YXQgZGVwdGggNDUhCkpvZTogQ29uZmlybWVkIChkZXB0aD00NSwgaW5mZXJl
bmNlcz0yNjM3MDIsIHRpbWU9MTQ4cyksIHRob3VnaCBpZiBsZW1tYWl6aW5n
CiAgICAgaXMgdXNlZCB0aGVuIGEgbGVtbWEgaXMgZGlzY292ZXJlZCBhdCBk
ZXB0aCAyOSB0aGF0IGFsbG93cyBhIG11Y2ggcXVpY2tlcgogICAgIHByb29m
IChkZXB0aD0zMCwgaW5mZXJlbmNlcz0xMDAzOSwgdGltZT01LjVzKS4gWzEz
IE9jdCAyMDAxXQoqKQp7bmFtZSA9ICJHSUxNT1JFXzEiLAogZ29hbCA9IFsK
CgpRVU9URSAiXG4/eC4gIXkgei5cbiAgKGYgeSA9PT4gZyB5IDw9PiBmIHgp
IC9cXCAoZiB5ID09PiBoIHkgPD0+IGcgeCkgL1xcXG4gICgoZiB5ID09PiBn
IHkpID09PiBoIHkgPD0+IGggeCkgPT0+IGYgeiAvXFwgZyB6IC9cXCBoIHoi
XX0sCgooKgpKUkg6IFRoaXMgaXMgbm90IHZhbGlkLCBhY2NvcmRpbmcgdG8g
R2lsbW9yZQp7bmFtZSA9ICJHSUxNT1JFXzIiLAogZ29hbCA9IGAKP3ggeS4g
IXouCiAgKGYgeCB6IDw9PiBmIHogeSkgL1wgKGYgeiB5IDw9PiBmIHogeikg
L1wgKGYgeCB5IDw9PiBmIHkgeCkgPT0+CiAgKGYgeCB5IDw9PiBmIHggeilg
fSwKKikKCntuYW1lID0gIkdJTE1PUkVfMyIsCiBnb2FsID0gWwoKClFVT1RF
ICJcbj94LiAheSB6LlxuICAoKGYgeSB6ID09PiBnIHkgPT0+IGggeCkgPT0+
IGYgeCB4KSAvXFwgKChmIHogeCA9PT4gZyB4KSA9PT4gaCB6KSAvXFxcbiAg
ZiB4IHkgPT0+IGYgeiB6Il19LAoKe25hbWUgPSAiR0lMTU9SRV80IiwKIGdv
YWwgPSBbClFVT1RFICJcbj94IHkuICF6LiAoZiB4IHkgPT0+IGYgeSB6IC9c
XCBmIHogeikgL1xcIChmIHggeSAvXFwgZyB4IHkgPT0+IGcgeCB6IC9cXCBn
IHogeikiXX0sCgp7bmFtZSA9ICJHSUxNT1JFXzUiLAogZ29hbCA9IFsKUVVP
VEUgIlxuKCF4LiA/eS4gZiB4IHkgXFwvIGYgeSB4KSAvXFwgKCF4IHkuIGYg
eSB4ID09PiBmIHkgeSkgPT0+ID96LiBmIHogeiJdfSwKCntuYW1lID0gIkdJ
TE1PUkVfNiIsCiBnb2FsID0gWwoKCgpRVU9URSAiXG4heC4gP3kuXG4gICg/
dy4gIXYuIGYgdyB4ID09PiBnIHYgdyAvXFwgZyB3IHgpID09PlxuICAoP3cu
ICF2LiBmIHcgeSA9PT4gZyB2IHcgL1xcIGcgdyB5KSBcXC9cbiAgIXogdi4g
P3cuIGcgdiB6IFxcLyBoIHcgeSB6ID09PiBnIHogdyJdfSwKCntuYW1lID0g
IkdJTE1PUkVfNyIsCiBnb2FsID0gWwoKUVVPVEUgIlxuKCF4LiBrIHggPT0+
ID95LiBsIHkgL1xcIChmIHggeSA9PT4gZyB4IHkpKSAvXFxcbig/ei4gayB6
IC9cXCAhdy4gbCB3ID09PiBmIHogdykgPT0+ID92IHcuIGsgdiAvXFwgbCB3
IC9cXCBnIHYgdyJdfSwKCntuYW1lID0gIkdJTE1PUkVfOCIsCiBnb2FsID0g
WwoKClFVT1RFICJcbj94LiAheSB6LlxuICAoKGYgeSB6ID09PiBnIHkgPT0+
ICF3LiA/di4gaCB3IHYgeCkgPT0+IGYgeCB4KSAvXFxcbiAgKChmIHogeCA9
PT4gZyB4KSA9PT4gIXcuID92LiBoIHcgdiB6KSAvXFwgZiB4IHkgPT0+IGYg
eiB6Il19LAoKKCoKSlJIOiBUaGlzIGlzIHN0aWxsIGEgdmVyeSBoYXJkIGdv
YWwKSm9lOiBXaXRoIGxlbW1haXppbmcgKGluIEhPTCk6IChkZXB0aD0xOCwg
aW5mZXJlbmNlcz0xNTYzMiwgdGltZT0yMXMpCiAgICAgV2l0aG91dDogZ2F2
ZSB1cCB3YWl0aW5nIGFmdGVyIChkZXB0aD0yNSwgaW5mZXJlbmNlcz0yMTI1
MDcyLCB0aW1lPTMwMDBzKQogICAgIFsxMyBPY3QgMjAwMV0KKikKe25hbWUg
PSAiR0lMTU9SRV85IiwKIGdvYWwgPSBbCgoKCgoKCgpRVU9URSAiXG4heC4g
P3kuICF6LlxuICAoKCF3LiA/di4gZiB5IHcgdiAvXFwgZyB5IHcgL1xcIH5o
IHkgeCkgPT0+XG4gICAoIXcuID92LiBmIHggdyB2IC9cXCBnIHogdSAvXFwg
fmggeCB6KSA9PT5cbiAgICF3LiA/di4gZiB4IHcgdiAvXFwgZyB5IHcgL1xc
IH5oIHggeSkgL1xcXG4gICgoIXcuID92LiBmIHggdyB2IC9cXCBnIHkgdyAv
XFwgfmggeCB5KSA9PT5cbiAgIH4oIXcuID92LiBmIHggdyB2IC9cXCBnIHog
dyAvXFwgfmggeCB6KSA9PT5cbiAgICghdy4gP3YuIGYgeSB3IHYgL1xcIGcg
eSB3IC9cXCB+aCB5IHgpIC9cXFxuICAgIXcuID92LiBmIHogdyB2IC9cXCBn
IHkgdyAvXFwgfmggeiB5KSJdfSwKCigqIC0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0gKikKKCogVHJhbnNsYXRpb24gb2YgR2lsbW9yZSBwcm9jZWR1
cmUgdXNpbmcgc2VwYXJhdGUgZGVmaW5pdGlvbnMuICAgICAgICAgICAgICAq
KQooKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICopCgp7bmFtZSA9
ICJHSUxNT1JFXzlhIiwKIGdvYWwgPSBbCgoKUVVPVEUgIlxuKCF4IHkuIHAg
eCB5IDw9PiAhdy4gP3YuIGYgeCB3IHYgL1xcIGcgeSB3IC9cXCB+aCB4IHkp
ID09PlxuIXguID95LiAhei5cbiAgKHAgeSB4ID09PiBwIHggeiA9PT4gcCB4
IHkpIC9cXCAocCB4IHkgPT0+IH5wIHggeiA9PT4gcCB5IHggL1xcIHAgeiB5
KSJdfSwKCigqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKikKKCog
RXhhbXBsZSBmcm9tIERhdmlzLVB1dG5hbSBwYXBlcnMgd2hlcmUgR2lsbW9y
ZSBwcm9jZWR1cmUgaXMgcG9vci4gICAgICAgICAqKQooKiAtLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tICopCgp7bmFtZSA9ICJEQVZJU19QVVROQU1f
RVhBTVBMRSIsCiBnb2FsID0gWwpRVU9URSAiXG4/eCB5LiAhei4gKGYgeCB5
ID09PiBmIHkgeiAvXFwgZiB6IHopIC9cXCAoZiB4IHkgL1xcIGcgeCB5ID09
PiBnIHggeiAvXFwgZyB6IHopIl19LAoKKCogLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLSAqKQooKiBUaGUgaW50ZXJlc3RpbmcgZXhhbXBsZSB3aGVy
ZSBjb25uZWN0aW9ucyBtYWtlIHRoZSBwcm9vZiBsb25nZXIuICAgICAgICAg
ICopCigqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKikKCntuYW1l
ID0gIkJBRF9DT05ORUNUSU9OUyIsCiBnb2FsID0gWwoKUVVPVEUgIlxufmEg
L1xcIChhIFxcLyBiKSAvXFwgKGMgXFwvIGQpIC9cXCAofmIgXFwvIGUgXFwv
IGYpIC9cXCAofmMgXFwvIH5lKSAvXFwgKH5jIFxcLyB+ZikgL1xcXG4ofmIg
XFwvIGcgXFwvIGgpIC9cXCAofmQgXFwvIH5nKSAvXFwgKH5kIFxcLyB+aCkg
PT0+IEYiXX0sCgooKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICop
CigqIFRoZSBjbGFzc2ljIExvcyBwdXp6bGUuIChDbGF1c2FsIHZlcnNpb24g
TVNDMDA2LTEgaW4gdGhlIFRQVFAgbGlicmFyeS4pICAgKikKKCogTm90ZTog
dGhpcyBpcyBhY3R1YWxseSBpbiB0aGUgZGVjaWRhYmxlICJBRSIgc3Vic2V0
LCAgdGhvdWdoIHRoYXQgZG9lc24ndCAqKQooKiB5aWVsZCBhIHZlcnkgZWZm
aWNpZW50IHByb29mLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICopCigqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0gKikKCntuYW1lID0gIkxPUyIsCiBnb2FsID0gWwoKClFVT1RFICJcbigh
eCB5IHouIHAgeCB5ID09PiBwIHkgeiA9PT4gcCB4IHopIC9cXFxuKCF4IHkg
ei4gcSB4IHkgPT0+IHEgeSB6ID09PiBxIHggeikgL1xcICgheCB5LiBxIHgg
eSA9PT4gcSB5IHgpIC9cXFxuKCF4IHkuIHAgeCB5IFxcLyBxIHggeSkgPT0+
ICgheCB5LiBwIHggeSkgXFwvICF4IHkuIHEgeCB5Il19LAoKKCogLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqKQooKiBUaGUgc3RlYW1yb2xsZXIu
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICopCigqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0gKikKCntuYW1lID0gIlNURUFNX1JPTExFUiIsCiBnb2FsID0gWwoKCgoK
CgoKCgoKCgpRVU9URSAiXG4oKCF4LiBwMSB4ID09PiBwMCB4KSAvXFwgP3gu
IHAxIHgpIC9cXCAoKCF4LiBwMiB4ID09PiBwMCB4KSAvXFwgP3guIHAyIHgp
IC9cXFxuKCgheC4gcDMgeCA9PT4gcDAgeCkgL1xcID94LiBwMyB4KSAvXFwg
KCgheC4gcDQgeCA9PT4gcDAgeCkgL1xcID94LiBwNCB4KSAvXFxcbigoIXgu
IHA1IHggPT0+IHAwIHgpIC9cXCA/eC4gcDUgeCkgL1xcICgoP3guIHExIHgp
IC9cXCAheC4gcTEgeCA9PT4gcTAgeCkgL1xcXG4oIXguXG4gICBwMCB4ID09
PlxuICAgKCF5LiBxMCB5ID09PiByIHggeSkgXFwvXG4gICAheS4gcDAgeSAv
XFwgczAgeSB4IC9cXCAoP3ouIHEwIHogL1xcIHIgeSB6KSA9PT4gciB4IHkp
IC9cXFxuKCF4IHkuIHAzIHkgL1xcIChwNSB4IFxcLyBwNCB4KSA9PT4gczAg
eCB5KSAvXFxcbigheCB5LiBwMyB4IC9cXCBwMiB5ID09PiBzMCB4IHkpIC9c
XCAoIXggeS4gcDIgeCAvXFwgcDEgeSA9PT4gczAgeCB5KSAvXFxcbigheCB5
LiBwMSB4IC9cXCAocDIgeSBcXC8gcTEgeSkgPT0+IH5yIHggeSkgL1xcXG4o
IXggeS4gcDMgeCAvXFwgcDQgeSA9PT4gciB4IHkpIC9cXCAoIXggeS4gcDMg
eCAvXFwgcDUgeSA9PT4gfnIgeCB5KSAvXFxcbigheC4gcDQgeCBcXC8gcDUg
eCA9PT4gP3kuIHEwIHkgL1xcIHIgeCB5KSA9PT5cbj94IHkuIHAwIHggL1xc
IHAwIHkgL1xcID96LiBxMSB6IC9cXCByIHkgeiAvXFwgciB4IHkiXX0sCgoo
KiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICopCigqIEFuIGluY2Vz
dHVvdXMgZXhhbXBsZSB1c2VkIHRvIGVzdGFibGlzaCBjb21wbGV0ZW5lc3Mg
Y2hhcmFjdGVyaXphdGlvbi4gICAgKikKKCogLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLSAqKQoKe25hbWUgPSAiTU9ERUxfQ09NUExFVEVORVNTIiwK
IGdvYWwgPSBbCgoKCgoKCgoKUVVPVEUgIlxuKCF3IHguIHNlbnRlbmNlIHgg
PT0+IGhvbGRzIHcgeCBcXC8gaG9sZHMgdyAobm90IHgpKSAvXFxcbighdyB4
LiB+KGhvbGRzIHcgeCAvXFwgaG9sZHMgdyAobm90IHgpKSkgPT0+XG4oKCF4
LlxuICAgIHNlbnRlbmNlIHggPT0+XG4gICAgKCF3LiBtb2RlbHMgdyBzID09
PiBob2xkcyB3IHgpIFxcL1xuICAgICF3LiBtb2RlbHMgdyBzID09PiBob2xk
cyB3IChub3QgeCkpIDw9PlxuICF3IHYuXG4gICBtb2RlbHMgdyBzIC9cXCBt
b2RlbHMgdiBzID09PlxuICAgIXguIHNlbnRlbmNlIHggPT0+IChob2xkcyB3
IHggPD0+IGhvbGRzIHYgeCkpIl19CgpdOwoKKCogPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PSAqKQooKiBQcm9ibGVtcyB3aXRoIGVxdWFsaXR5LiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICopCigqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKikKCnZh
bCBlcXVhbGl0eSA9IFsKIAooKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tICopCigqIFRyaXZpYSAoc29tZSBvZiB3aGljaCBkZW1vbnN0cmF0ZSBl
eC1idWdzIGluIHRoZSBwcm92ZXIpLiAgICAgICAgICAgICAgICAgKikKKCog
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqKQoKe25hbWUgPSAiUkVG
TEVYSVZJVFkiLAogZ29hbCA9IFsKUVVPVEUgIlxuYyA9IGMiXX0sCgp7bmFt
ZSA9ICJTWU1NRVRSWSIsCiBnb2FsID0gWwpRVU9URSAiXG4heCB5LiB4ID0g
eSA9PT4geSA9IHgiXX0sCgp7bmFtZSA9ICJUUkFOU0lUSVZJVFkiLAogZ29h
bCA9IFsKUVVPVEUgIlxuIXggeSB6LiB4ID0geSAvXFwgeSA9IHogPT0+IHgg
PSB6Il19LAoKe25hbWUgPSAiVFJBTlNfU1lNTSIsCiBnb2FsID0gWwpRVU9U
RSAiXG4heCB5IHouIHggPSB5IC9cXCB5ID0geiA9PT4geiA9IHgiXX0sCgp7
bmFtZSA9ICJTVUJTVElUVVRJVklUWSIsCiBnb2FsID0gWwpRVU9URSAiXG4h
eCB5LiBmIHggL1xcIHggPSB5ID09PiBmIHkiXX0sCgp7bmFtZSA9ICJDWUNM
SUNfU1VCU1RJVFVUSU9OX0JVRyIsCiBnb2FsID0gWwpRVU9URSAiXG4oIXgu
IHkgPSBnIChjIHgpKSA9PT4gP3ouIHkgPSBnIHoiXX0sCgooKiAtLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tICopCigqIFNpbXBsZSBlcXVhbGl0eSBw
cm9ibGVtcy4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgKikKKCogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LSAqKQoKe25hbWUgPSAiUDQ4IiwKIGdvYWwgPSBbClFVT1RFICJcbihhID0g
YiBcXC8gYyA9IGQpIC9cXCAoYSA9IGMgXFwvIGIgPSBkKSA9PT4gYSA9IGQg
XFwvIGIgPSBjIl19LAoKe25hbWUgPSAiUDQ5IiwKIGdvYWwgPSBbClFVT1RF
ICJcbig/eCB5LiAhei4geiA9IHggXFwvIHogPSB5KSAvXFwgcCBhIC9cXCBw
IGIgL1xcIH4oYSA9IGIpID09PiAheC4gcCB4Il19LAoKe25hbWUgPSAiUDUx
IiwKIGdvYWwgPSBbCgpRVU9URSAiXG4oP3ogdy4gIXggeS4gZjAgeCB5IDw9
PiB4ID0geiAvXFwgeSA9IHcpID09PlxuP3ouICF4LiAoP3cuICF5LiBmMCB4
IHkgPD0+IHkgPSB3KSA8PT4geCA9IHoiXX0sCgp7bmFtZSA9ICJQNTIiLAog
Z29hbCA9IFsKClFVT1RFICJcbig/eiB3LiAheCB5LiBmMCB4IHkgPD0+IHgg
PSB6IC9cXCB5ID0gdykgPT0+XG4/dy4gIXkuICg/ei4gIXguIGYwIHggeSA8
PT4geCA9IHopIDw9PiB5ID0gdyJdfSwKCigqIC0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0gKikKKCogVGhlIE1lbGhhbSBwcm9ibGVtIGFmdGVyIGFu
IGludmVyc2Ugc2tvbGVtaXphdGlvbiBzdGVwLiAgICAgICAgICAgICAgICAg
ICAqKQooKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICopCgp7bmFt
ZSA9ICJVTlNLT0xFTUlaRURfTUVMSEFNIiwKIGdvYWwgPSBbClFVT1RFICJc
bigheCB5LiBnIHggPSBnIHkgPT0+IGYgeCA9IGYgeSkgPT0+ICF5LiA/dy4g
IXguIHkgPSBnIHggPT0+IHcgPSBmIHgiXX0sCiAKKCogLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLSAqKQooKiBUaGUgZXhhbXBsZSBhbHdheXMgZ2l2
ZW4gZm9yIGNvbmdydWVuY2UgY2xvc3VyZS4gICAgICAgICAgICAgICAgICAg
ICAgICAgICopCigqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKikK
CntuYW1lID0gIkNPTkdSVUVOQ0VfQ0xPU1VSRV9FWEFNUExFIiwKIGdvYWwg
PSBbClFVT1RFICJcbiF4LiBmIChmIChmIChmIChmIHgpKSkpID0geCAvXFwg
ZiAoZiAoZiB4KSkgPSB4ID09PiBmIHggPSB4Il19LAoKKCogLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLSAqKQooKiBBIHNpbXBsZSBleGFtcGxlIChz
ZWUgRVdEMTI2NmEgYW5kIHRoZSBhcHBsaWNhdGlvbiB0byBNb3JsZXkncyB0
aGVvcmVtKS4gICopCigqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0g
KikKCntuYW1lID0gIkVXRCIsCiBnb2FsID0gWwoKUVVPVEUgIlxuKCF4LiBm
IHggPT0+IGcgeCkgL1xcICg/eC4gZiB4KSAvXFwgKCF4IHkuIGcgeCAvXFwg
ZyB5ID09PiB4ID0geSkgPT0+XG4heS4gZyB5ID09PiBmIHkiXX0sCgp7bmFt
ZSA9ICJFV0QnIiwKIGdvYWwgPSBbClFVT1RFICJcbigheC4gZiAoZiB4KSA9
IGYgeCkgL1xcICgheC4gP3kuIGYgeSA9IHgpID09PiAheC4gZiB4ID0geCJd
fSwKCigqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKikKKCogV2lz
aG51IFByYXNldHlhJ3MgZXhhbXBsZS4gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAqKQooKiAtLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tICopCgp7bmFtZSA9ICJXSVNITlUiLAogZ29hbCA9
IFsKClFVT1RFICJcbig/eC4geCA9IGYgKGcgeCkgL1xcICF4Jy4geCcgPSBm
IChnIHgnKSA9PT4geCA9IHgnKSA8PT5cbj95LiB5ID0gZyAoZiB5KSAvXFwg
IXknLiB5JyA9IGcgKGYgeScpID09PiB5ID0geSciXX0sCgooKiAtLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tICopCigqIEFuIGVxdWFsaXR5IHZlcnNp
b24gb2YgdGhlIEFnYXRoYSBwdXp6bGUuICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgKikKKCogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LSAqKQoKe25hbWUgPSAiQUdBVEhBIiwKIGdvYWwgPSBbCgoKCgoKCgoKClFV
T1RFICJcbig/eC4gbGl2ZXMgeCAvXFwga2lsbGVkIHggYWdhdGhhKSAvXFxc
bihsaXZlcyBhZ2F0aGEgL1xcIGxpdmVzIGJ1dGxlciAvXFwgbGl2ZXMgY2hh
cmxlcykgL1xcXG4oIXguIGxpdmVzIHggPT0+IHggPSBhZ2F0aGEgXFwvIHgg
PSBidXRsZXIgXFwvIHggPSBjaGFybGVzKSAvXFxcbigheCB5LiBraWxsZWQg
eCB5ID09PiBoYXRlcyB4IHkpIC9cXCAoIXggeS4ga2lsbGVkIHggeSA9PT4g
fnJpY2hlciB4IHkpIC9cXFxuKCF4LiBoYXRlcyBhZ2F0aGEgeCA9PT4gfmhh
dGVzIGNoYXJsZXMgeCkgL1xcXG4oIXguIH4oeCA9IGJ1dGxlcikgPT0+IGhh
dGVzIGFnYXRoYSB4KSAvXFxcbigheC4gfnJpY2hlciB4IGFnYXRoYSA9PT4g
aGF0ZXMgYnV0bGVyIHgpIC9cXFxuKCF4LiBoYXRlcyBhZ2F0aGEgeCA9PT4g
aGF0ZXMgYnV0bGVyIHgpIC9cXCAoIXguID95LiB+aGF0ZXMgeCB5KSAvXFxc
bn4oYWdhdGhhID0gYnV0bGVyKSA9PT5cbmtpbGxlZCBhZ2F0aGEgYWdhdGhh
IC9cXCB+a2lsbGVkIGJ1dGxlciBhZ2F0aGEgL1xcIH5raWxsZWQgY2hhcmxl
cyBhZ2F0aGEiXX0sCgooKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
ICopCigqIEdyb3VwIHRoZW9yeSBleGFtcGxlcy4gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKikKKCogLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqKQoKKCogSlJIOiAoU2l6ZSAx
OCwgNjE4MTQgc2Vjb25kcy4pICopCntuYW1lID0gIkdST1VQX1JJR0hUX0lO
VkVSU0UiLAogZ29hbCA9IFsKClFVT1RFICJcbigheCB5IHouIHggKiAoeSAq
IHopID0geCAqIHkgKiB6KSAvXFwgKCF4LiBlICogeCA9IHgpIC9cXFxuKCF4
LiBpIHggKiB4ID0gZSkgPT0+ICF4LiB4ICogaSB4ID0gZSJdfSwKCntuYW1l
ID0gIkdST1VQX1JJR0hUX0lERU5USVRZIiwKIGdvYWwgPSBbCgpRVU9URSAi
XG4oIXggeSB6LiB4ICogKHkgKiB6KSA9IHggKiB5ICogeikgL1xcICgheC4g
ZSAqIHggPSB4KSAvXFxcbigheC4gaSB4ICogeCA9IGUpID09PiAheC4geCAq
IGUgPSB4Il19LAoKe25hbWUgPSAiS0xFSU5fR1JPVVBfQ09NTVVUQVRJVkUi
LAogZ29hbCA9IFsKClFVT1RFICJcbigheCB5IHouIHggKiAoeSAqIHopID0g
eCAqIHkgKiB6KSAvXFwgKCF4LiBlICogeCA9IHgpIC9cXCAoIXguIHggKiBl
ID0geCkgL1xcXG4oIXguIHggKiB4ID0gZSkgPT0+ICF4IHkuIHggKiB5ID0g
eSAqIHgiXX0KCl07CgooKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
ICopCigqIFNvbWUgc2FtcGxlIHByb2JsZW1zIGZyb20gdGhlIFRQVFAgYXJj
aGl2ZS4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKikKKCogTm90
ZTogZm9yIGJyZXZpdHkgc29tZSByZWxhdGlvbi9mdW5jdGlvbiBuYW1lcyBo
YXZlIGJlZW4gc2hvcnRlbmVkLiAgICAgICAqKQooKiA9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09ICopCgp2YWwgdHB0cCA9IFsKCigqIC0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0gKikKKCogVFBUUCBwcm9ibGVtcyB0aGF0
IGhhdmUgZGVtb25zdHJhdGVkIGJ1Z3MgaW4gdGhlIHByb3Zlci4gICAgICAg
ICAgICAgICAgICAqKQooKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
ICopCgooKiBTb2x2ZWQgdHJpdmlhbGx5IGJ5IG1lc29uIHdpdGhvdXQgY2Fj
aGUgY3V0dGluZywgYnV0IG5vdCB3aXRoLiAqKQp7bmFtZSA9ICJQVVowMTEt
MSIsCiBnb2FsID0gWwoKCgoKCgoKCgoKClFVT1RFICJcbm9jZWFuIGF0bGFu
dGljIC9cXCBvY2VhbiBpbmRpYW4gL1xcIGJvcmRlcnMgYXRsYW50aWMgYnJh
emlsIC9cXFxuYm9yZGVycyBhdGxhbnRpYyB1cnVndWF5IC9cXCBib3JkZXJz
IGF0bGFudGljIGNfdmVuZXN1ZWxhIC9cXFxuYm9yZGVycyBhdGxhbnRpYyBj
X3phaXJlIC9cXCBib3JkZXJzIGF0bGFudGljIG5pZ2VyaWEgL1xcXG5ib3Jk
ZXJzIGF0bGFudGljIGFuZ29sYSAvXFwgYm9yZGVycyBpbmRpYW4gaW5kaWEg
L1xcXG5ib3JkZXJzIGluZGlhbiBwYWtpc3RhbiAvXFwgYm9yZGVycyBpbmRp
YW4gaXJhbiAvXFwgYm9yZGVycyBpbmRpYW4gc29tYWxpYSAvXFxcbmJvcmRl
cnMgaW5kaWFuIGtlbnlhIC9cXCBib3JkZXJzIGluZGlhbiB0YW56YW5pYSAv
XFwgc291dGhfYW1lcmljYW4gYnJhemlsIC9cXFxuc291dGhfYW1lcmljYW4g
dXJ1Z3VheSAvXFwgc291dGhfYW1lcmljYW4gY192ZW5lc3VlbGEgL1xcIGFm
cmljYW4gY196YWlyZSAvXFxcbmFmcmljYW4gbmlnZXJpYSAvXFwgYWZyaWNh
biBhbmdvbGEgL1xcIGFmcmljYW4gc29tYWxpYSAvXFwgYWZyaWNhbiBrZW55
YSAvXFxcbmFmcmljYW4gdGFuemFuaWEgL1xcIGFzaWFuIGluZGlhIC9cXCBh
c2lhbiBwYWtpc3RhbiAvXFwgYXNpYW4gaXJhbiA9PT5cbigheCB5IHouXG4g
ICB+b2NlYW4geCBcXC8gfmJvcmRlcnMgeCB5IFxcLyB+YWZyaWNhbiB5IFxc
LyB+Ym9yZGVycyB4IHogXFwvIH5hc2lhbiB6KSA9PT5cbkYiXX0sCgooKiAt
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICopCigqIFByb2JsZW1zIHVz
ZWQgYnkgdGhlIGZvbCB1bml0IHRlc3QgdG8gZXhlcmNpc2UgdGhlIFRQVFAg
cGFyc2VyLiAgICAgICAgICAgKikKKCogLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLSAqKQogCntuYW1lID0gIlBVWjAwMS0xIiwKIGdvYWwgPSBbCgoK
CgoKCgoKUVVPVEUgIlxubGl2ZXMgYWdhdGhhIC9cXCBsaXZlcyBidXRsZXIg
L1xcIGxpdmVzIGNoYXJsZXMgL1xcXG4oIXggeS4gfmtpbGxlZCB4IHkgXFwv
IH5yaWNoZXIgeCB5KSAvXFxcbigheC4gfmhhdGVzIGFnYXRoYSB4IFxcLyB+
aGF0ZXMgY2hhcmxlcyB4KSAvXFxcbigheC4gfmhhdGVzIHggYWdhdGhhIFxc
LyB+aGF0ZXMgeCBidXRsZXIgXFwvIH5oYXRlcyB4IGNoYXJsZXMpIC9cXFxu
aGF0ZXMgYWdhdGhhIGFnYXRoYSAvXFwgaGF0ZXMgYWdhdGhhIGNoYXJsZXMg
L1xcXG4oIXggeS4gfmtpbGxlZCB4IHkgXFwvIGhhdGVzIHggeSkgL1xcXG4o
IXguIH5oYXRlcyBhZ2F0aGEgeCBcXC8gaGF0ZXMgYnV0bGVyIHgpIC9cXFxu
KCF4LiB+bGl2ZXMgeCBcXC8gcmljaGVyIHggYWdhdGhhIFxcLyBoYXRlcyBi
dXRsZXIgeCkgPT0+XG5raWxsZWQgYnV0bGVyIGFnYXRoYSBcXC8ga2lsbGVk
IGNoYXJsZXMgYWdhdGhhID09PiBGIl19LAoKe25hbWUgPSAiUFVaMDIwLTEi
LAogZ29hbCA9IFsKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKUVVPVEUgIlxu
KCF4LiB4ID0geCkgL1xcICgheCB5LiB+KHggPSB5KSBcXC8geSA9IHgpIC9c
XFxuKCF4IHkgei4gfih4ID0geSkgXFwvIH4oeSA9IHopIFxcLyB4ID0geikg
L1xcXG4oIXggeS4gfih4ID0geSkgXFwvIHN0YXRlbWVudF9ieSB4ID0gc3Rh
dGVtZW50X2J5IHkpIC9cXFxuKCF4LiB+cGVyc29uIHggXFwvIGtuaWdodCB4
IFxcLyBrbmF2ZSB4KSAvXFxcbigheC4gfnBlcnNvbiB4IFxcLyB+a25pZ2h0
IHggXFwvIH5rbmF2ZSB4KSAvXFxcbigheCB5LiB+c2F5cyB4IHkgXFwvIGFf
dHJ1dGggeSBcXC8gfmFfdHJ1dGggeSkgL1xcXG4oIXggeS4gfnNheXMgeCB5
IFxcLyB+KHggPSB5KSkgL1xcICgheCB5LiB+c2F5cyB4IHkgXFwvIHkgPSBz
dGF0ZW1lbnRfYnkgeCkgL1xcXG4oIXggeS4gfnBlcnNvbiB4IFxcLyB+KHgg
PSBzdGF0ZW1lbnRfYnkgeSkpIC9cXFxuKCF4LiB+cGVyc29uIHggXFwvIH5h
X3RydXRoIChzdGF0ZW1lbnRfYnkgeCkgXFwvIGtuaWdodCB4KSAvXFxcbigh
eC4gfnBlcnNvbiB4IFxcLyBhX3RydXRoIChzdGF0ZW1lbnRfYnkgeCkgXFwv
IGtuYXZlIHgpIC9cXFxuKCF4IHkuIH4oeCA9IHkpIFxcLyB+a25pZ2h0IHgg
XFwvIGtuaWdodCB5KSAvXFxcbigheCB5LiB+KHggPSB5KSBcXC8gfmtuYXZl
IHggXFwvIGtuYXZlIHkpIC9cXFxuKCF4IHkuIH4oeCA9IHkpIFxcLyB+cGVy
c29uIHggXFwvIHBlcnNvbiB5KSAvXFxcbigheCB5IHouIH4oeCA9IHkpIFxc
LyB+c2F5cyB4IHogXFwvIHNheXMgeSB6KSAvXFxcbigheCB5IHouIH4oeCA9
IHkpIFxcLyB+c2F5cyB6IHggXFwvIHNheXMgeiB5KSAvXFxcbigheCB5LiB+
KHggPSB5KSBcXC8gfmFfdHJ1dGggeCBcXC8gYV90cnV0aCB5KSAvXFxcbigh
eCB5LiB+a25pZ2h0IHggXFwvIH5zYXlzIHggeSBcXC8gYV90cnV0aCB5KSAv
XFxcbigheCB5LiB+a25hdmUgeCBcXC8gfnNheXMgeCB5IFxcLyB+YV90cnV0
aCB5KSAvXFwgcGVyc29uIGh1c2JhbmQgL1xcXG5wZXJzb24gY193aWZlIC9c
XCB+KGh1c2JhbmQgPSBjX3dpZmUpIC9cXFxuc2F5cyBodXNiYW5kIChzdGF0
ZW1lbnRfYnkgaHVzYmFuZCkgL1xcXG4ofmFfdHJ1dGggKHN0YXRlbWVudF9i
eSBodXNiYW5kKSBcXC8gfmtuaWdodCBodXNiYW5kIFxcLyBrbmlnaHQgY193
aWZlKSAvXFxcbihhX3RydXRoIChzdGF0ZW1lbnRfYnkgaHVzYmFuZCkgXFwv
IH5rbmlnaHQgaHVzYmFuZCkgL1xcXG4oYV90cnV0aCAoc3RhdGVtZW50X2J5
IGh1c2JhbmQpIFxcLyBrbmlnaHQgY193aWZlKSAvXFxcbih+a25pZ2h0IGNf
d2lmZSBcXC8gYV90cnV0aCAoc3RhdGVtZW50X2J5IGh1c2JhbmQpKSA9PT4g
fmtuaWdodCBodXNiYW5kID09PlxuRiJdfSwKCntuYW1lID0gIk5VTTAwMS0x
IiwKIGdvYWwgPSBbCgoKCgoKCgoKUVVPVEUgIlxuKCF4LiB4ID09IHgpIC9c
XCAoIXggeSB6LiB+KHggPT0geSkgXFwvIH4oeSA9PSB6KSBcXC8geCA9PSB6
KSAvXFxcbigheCB5LiB4ICsgeSA9PSB5ICsgeCkgL1xcICgheCB5IHouIHgg
KyAoeSArIHopID09IHggKyB5ICsgeikgL1xcXG4oIXggeS4geCArIHkgLSB5
ID09IHgpIC9cXCAoIXggeS4geCA9PSB4ICsgeSAtIHkpIC9cXFxuKCF4IHkg
ei4geCAtIHkgKyB6ID09IHggKyB6IC0geSkgL1xcICgheCB5IHouIHggKyB5
IC0geiA9PSB4IC0geiArIHkpIC9cXFxuKCF4IHkgeiB2LiB+KHggPT0geSkg
XFwvIH4oeiA9PSB4ICsgdikgXFwvIHogPT0geSArIHYpIC9cXFxuKCF4IHkg
eiB2LiB+KHggPT0geSkgXFwvIH4oeiA9PSB2ICsgeCkgXFwvIHogPT0gdiAr
IHkpIC9cXFxuKCF4IHkgeiB2LiB+KHggPT0geSkgXFwvIH4oeiA9PSB4IC0g
dikgXFwvIHogPT0geSAtIHYpIC9cXFxuKCF4IHkgeiB2LiB+KHggPT0geSkg
XFwvIH4oeiA9PSB2IC0geCkgXFwvIHogPT0gdiAtIHkpID09PlxufihhICsg
YiArIGMgPT0gYSArIChiICsgYykpID09PiBGIl19LAoKe25hbWUgPSAiQUxH
MDA1LTEiLAogZ29hbCA9IFsKCgoKCgoKCgpRVU9URSAiXG4oIXguIHggPSB4
KSAvXFwgKCF4IHkuIH4oeCA9IHkpIFxcLyB5ID0geCkgL1xcXG4oIXggeSB6
LiB+KHggPSB5KSBcXC8gfih5ID0geikgXFwvIHggPSB6KSAvXFxcbigheCB5
IHouIH4oeCA9IHkpIFxcLyB4ICsgeiA9IHkgKyB6KSAvXFxcbigheCB5IHou
IH4oeCA9IHkpIFxcLyB6ICsgeCA9IHogKyB5KSAvXFxcbigheCB5IHouIH4o
eCA9IHkpIFxcLyB4ICogeiA9IHkgKiB6KSAvXFxcbigheCB5IHouIH4oeCA9
IHkpIFxcLyB6ICogeCA9IHogKiB5KSAvXFwgKCF4IHkuIHggKyAoeSArIHgp
ID0geCkgL1xcXG4oIXggeS4geCArICh4ICsgeSkgPSB5ICsgKHkgKyB4KSkg
L1xcXG4oIXggeSB6LiB4ICsgeSArIHogPSB4ICsgeiArICh5ICsgeikpIC9c
XCAoIXggeS4geCAqIHkgPSB4ICsgKHggKyB5KSkgPT0+XG5+KGEgKiBiICog
YyA9IGEgKiAoYiAqIGMpKSA9PT4gRiJdfSwKCntuYW1lID0gIkdSUDA1Ny0x
IiwKIGdvYWwgPSBbCgoKCgoKClFVT1RFICJcbigheC4geCA9IHgpIC9cXCAo
IXggeS4gfih4ID0geSkgXFwvIHkgPSB4KSAvXFxcbigheCB5IHouIH4oeCA9
IHkpIFxcLyB+KHkgPSB6KSBcXC8geCA9IHopIC9cXFxuKCF4IHkgeiB2LiB4
ICogaSAoaSAoaSB5ICogKGkgeCAqIHopKSAqIHYgKiBpICh5ICogdikpID0g
eikgL1xcXG4oIXggeS4gfih4ID0geSkgXFwvIGkgeCA9IGkgeSkgL1xcICgh
eCB5IHouIH4oeCA9IHkpIFxcLyB4ICogeiA9IHkgKiB6KSAvXFxcbigheCB5
IHouIH4oeCA9IHkpIFxcLyB6ICogeCA9IHogKiB5KSA9PT5cbn4oaSBhMSAq
IGExID0gaSBiMSAqIGIxKSBcXC8gfihpIGIyICogYjIgKiBhMiA9IGEyKSBc
XC9cbn4oYTMgKiBiMyAqIGMzID0gYTMgKiAoYjMgKiBjMykpID09PiBGIl19
LAoKe25hbWUgPSAiTENMMDA5LTEiLAogZ29hbCA9IFsKCgpRVU9URSAiXG4o
IXggeS4gfnAgKHggLSB5KSBcXC8gfnAgeCBcXC8gcCB5KSAvXFxcbigheCB5
IHouIHAgKHggLSB5IC0gKHogLSB5IC0gKHggLSB6KSkpKSA9PT5cbn5wIChh
IC0gYiAtIGMgLSAoYSAtIChiIC0gYykpKSA9PT4gRiJdfSwKCigqIC0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKikKKCogU21hbGwgcHJvYmxlbXMg
dGhhdCBhcmUgdHJpY2t5IHRvIHByb3ZlLiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAqKQooKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tICopCgp7bmFtZSA9ICJDT0wwNjAtMyIsCiBnb2FsID0gWwoKCgoKClFV
T1RFICJcbigheC4geCA9IHgpIC9cXCAoIXggeS4gfih4ID0geSkgXFwvIHkg
PSB4KSAvXFxcbigheCB5IHouIH4oeCA9IHkpIFxcLyB+KHkgPSB6KSBcXC8g
eCA9IHopIC9cXFxuKCF4IHkgei4gYiAlIHggJSB5ICUgeiA9IHggJSAoeSAl
IHopKSAvXFwgKCF4IHkuIHQgJSB4ICUgeSA9IHkgJSB4KSAvXFxcbigheCB5
IHouIH4oeCA9IHkpIFxcLyB4ICUgeiA9IHkgJSB6KSAvXFxcbigheCB5IHou
IH4oeCA9IHkpIFxcLyB6ICUgeCA9IHogJSB5KSA9PT5cbn4oYiAlIChiICUg
KHQgJSBiKSAlIGIpICUgdCAlIGNfeCAlIGNfeSAlIGNfeiA9IGNfeSAlIChj
X3ggJSBjX3opKSA9PT4gRiJdfSwKCntuYW1lID0gIkNPTDA1OC0yIiwKIGdv
YWwgPSBbCgoKCgoKClFVT1RFICJcbigheC4geCA9IHgpIC9cXCAoIXggeS4g
fih4ID0geSkgXFwvIHkgPSB4KSAvXFxcbigheCB5IHouIH4oeCA9IHkpIFxc
LyB+KHkgPSB6KSBcXC8geCA9IHopIC9cXFxuKCF4IHkuIHIgKHIgMCB4KSB5
ID0gciB4IChyIHkgeSkpIC9cXCAoIXggeSB6LiB+KHggPSB5KSBcXC8gciB4
IHogPSByIHkgeikgL1xcXG4oIXggeSB6LiB+KHggPSB5KSBcXC8gciB6IHgg
PSByIHogeSkgPT0+XG5+KHIgKHIgKHIgMCAociAociAwIChyIDAgMCkpIChy
IDAgKHIgMCAwKSkpKSAociAwIChyIDAgMCkpKVxuICAociAociAwIChyIChy
IDAgKHIgMCAwKSkgKHIgMCAociAwIDApKSkpIChyIDAgKHIgMCAwKSkpID1c
biAgciAociAwIChyIChyIDAgKHIgMCAwKSkgKHIgMCAociAwIDApKSkpIChy
IDAgKHIgMCAwKSkpID09PiBGIl19LAoKe25hbWUgPSAiTENMMTA3LTEiLAog
Z29hbCA9IFsKCgoKClFVT1RFICJcbigheCB5LiB+cCAoeCAtIHkpIFxcLyB+
cCB4IFxcLyBwIHkpIC9cXFxuKCF4IHkgeiB2IHcgeCcgeScuXG4gICBwXG4g
ICAoeCAtIHkgLSB6IC0gKHYgLSB3IC0gKHgnIC0gdyAtICh4JyAtIHYpIC0g
eScpKSAtXG4gICAgKHogLSAoeSAtIHggLSB5JykpKSkgPT0+IH5wIChhIC0g
YiAtIGMgLSAoZSAtIGIgLSAoYSAtIGUgLSBjKSkpID09PiBGIl19LAoKe25h
bWUgPSAiTERBMDA3LTMiLAogZ29hbCA9IFsKCgoKCgoKUVVPVEUgIlxuKCF4
LiB4ID0geCkgL1xcICgheCB5LiB+KHggPSB5KSBcXC8geSA9IHgpIC9cXFxu
KCF4IHkgei4gfih4ID0geSkgXFwvIH4oeSA9IHopIFxcLyB4ID0geikgL1xc
XG4oIXggeSB6LiBmIHggKGYgeSB6KSA9IGYgKGYgeCB5KSAoZiB4IHopKSAv
XFxcbigheCB5IHouIH4oeCA9IHkpIFxcLyBmIHggeiA9IGYgeSB6KSAvXFxc
bigheCB5IHouIH4oeCA9IHkpIFxcLyBmIHogeCA9IGYgeiB5KSAvXFwgdHQg
PSBmIHQgdCAvXFwgdHMgPSBmIHQgcyAvXFxcbnR0X3RzID0gZiB0dCB0cyAv
XFwgdGsgPSBmIHQgayAvXFwgdHNrID0gZiB0cyBrID09PlxufihmIHQgdHNr
ID0gZiB0dF90cyB0aykgPT0+IEYiXX0sCgp7bmFtZSA9ICJHUlAwMTAtNCIs
CiBnb2FsID0gWwoKCgoKUVVPVEUgIlxuKCF4LiB4ID0geCkgL1xcICgheCB5
LiB+KHggPSB5KSBcXC8geSA9IHgpIC9cXFxuKCF4IHkgei4gfih4ID0geSkg
XFwvIH4oeSA9IHopIFxcLyB4ID0geikgL1xcICgheCB5LiB+KHggPSB5KSBc
XC8gaSB4ID0gaSB5KSAvXFxcbigheCB5IHouIH4oeCA9IHkpIFxcLyB4ICog
eiA9IHkgKiB6KSAvXFxcbigheCB5IHouIH4oeCA9IHkpIFxcLyB6ICogeCA9
IHogKiB5KSAvXFwgKCF4IHkgei4geCAqIHkgKiB6ID0geCAqICh5ICogeikp
IC9cXFxuKCF4LiAxICogeCA9IHgpIC9cXCAoIXguIGkgeCAqIHggPSAxKSAv
XFwgYyAqIGIgPSAxID09PiB+KGIgKiBjID0gMSkgPT0+IEYiXX0sCgp7bmFt
ZSA9ICJBTEcwMDYtMSIsCiBnb2FsID0gWwoKCgoKClFVT1RFICJcbigheC4g
eCA9IHgpIC9cXCAoIXggeS4gfih4ID0geSkgXFwvIHkgPSB4KSAvXFxcbigh
eCB5IHouIH4oeCA9IHkpIFxcLyB+KHkgPSB6KSBcXC8geCA9IHopIC9cXFxu
KCF4IHkgei4gfih4ID0geSkgXFwvIHggKyB6ID0geSArIHopIC9cXFxuKCF4
IHkgei4gfih4ID0geSkgXFwvIHogKyB4ID0geiArIHkpIC9cXCAoIXggeS4g
eCArICh5ICsgeCkgPSB4KSAvXFxcbigheCB5LiB4ICsgKHggKyB5KSA9IHkg
KyAoeSArIHgpKSAvXFxcbigheCB5IHouIHggKyB5ICsgeiA9IHggKyB6ICsg
KHkgKyB6KSkgPT0+IH4oYSArIGMgKyBiID0gYSArIGIgKyBjKSA9PT4gRiJd
fSwKCntuYW1lID0gIkJPTzAyMS0xIiwKIGdvYWwgPSBbCgoKCgoKCgoKUVVP
VEUgIlxuKCF4LiB4ID0geCkgL1xcICgheCB5LiB+KHggPSB5KSBcXC8geSA9
IHgpIC9cXFxuKCF4IHkgei4gfih4ID0geSkgXFwvIH4oeSA9IHopIFxcLyB4
ID0geikgL1xcXG4oIXggeSB6LiB+KHggPSB5KSBcXC8geCArIHogPSB5ICsg
eikgL1xcXG4oIXggeSB6LiB+KHggPSB5KSBcXC8geiArIHggPSB6ICsgeSkg
L1xcICgheCB5LiB+KHggPSB5KSBcXC8gaSB4ID0gaSB5KSAvXFxcbigheCB5
IHouIH4oeCA9IHkpIFxcLyB4ICogeiA9IHkgKiB6KSAvXFxcbigheCB5IHou
IH4oeCA9IHkpIFxcLyB6ICogeCA9IHogKiB5KSAvXFwgKCF4IHkuICh4ICsg
eSkgKiB5ID0geSkgL1xcXG4oIXggeSB6LiB4ICogKHkgKyB6KSA9IHkgKiB4
ICsgeiAqIHgpIC9cXCAoIXguIHggKyBpIHggPSAxKSAvXFxcbigheCB5LiB4
ICogeSArIHkgPSB5KSAvXFwgKCF4IHkgei4geCArIHkgKiB6ID0gKHkgKyB4
KSAqICh6ICsgeCkpIC9cXFxuKCF4LiB4ICogaSB4ID0gMCkgPT0+IH4oYiAq
IGEgPSBhICogYikgPT0+IEYiXX0sCgp7bmFtZSA9ICJHRU8wMDItNCIsCiBn
b2FsID0gWwoKCgoKCgoKCgoKClFVT1RFICJcbigheCB5IHogdi4gfmJldHdl
ZW4geCB5IHogXFwvIH5iZXR3ZWVuIHkgdiB6IFxcLyBiZXR3ZWVuIHggeSB2
KSAvXFxcbigheCB5IHouIH5lcXVpZGlzdGFudCB4IHkgeiB6IFxcLyB4ID09
IHkpIC9cXFxuKCF4IHkgeiB2IHcuXG4gICB+YmV0d2VlbiB4IHkgeiBcXC8g
fmJldHdlZW4gdiB6IHcgXFwvXG4gICBiZXR3ZWVuIHggKG91dGVyX3Bhc2No
IHkgeCB2IHcgeikgdikgL1xcXG4oIXggeSB6IHYgdy5cbiAgIH5iZXR3ZWVu
IHggeSB6IFxcLyB+YmV0d2VlbiB2IHogdyBcXC9cbiAgIGJldHdlZW4gdyB5
IChvdXRlcl9wYXNjaCB5IHggdiB3IHopKSAvXFxcbigheCB5IHogdi4gYmV0
d2VlbiB4IHkgKGV4dGVuc2lvbiB4IHkgeiB2KSkgL1xcXG4oIXggeSB6IHYu
IGVxdWlkaXN0YW50IHggKGV4dGVuc2lvbiB5IHggeiB2KSB6IHYpIC9cXFxu
KCF4IHkgeiB2LiB+KHggPT0geSkgXFwvIH5iZXR3ZWVuIHogdiB4IFxcLyBi
ZXR3ZWVuIHogdiB5KSA9PT5cbn5iZXR3ZWVuIGEgYSBiID09PiBGIl19LAoK
e25hbWUgPSAiR1JQMDU3LTEiLAogZ29hbCA9IFsKCgoKCgoKUVVPVEUgIlxu
KCF4LiB4ID0geCkgL1xcICgheCB5LiB+KHggPSB5KSBcXC8geSA9IHgpIC9c
XFxuKCF4IHkgei4gfih4ID0geSkgXFwvIH4oeSA9IHopIFxcLyB4ID0geikg
L1xcXG4oIXggeSB6IHYuIHggKiBpIChpIChpIHkgKiAoaSB4ICogeikpICog
diAqIGkgKHkgKiB2KSkgPSB6KSAvXFxcbigheCB5LiB+KHggPSB5KSBcXC8g
aSB4ID0gaSB5KSAvXFwgKCF4IHkgei4gfih4ID0geSkgXFwvIHggKiB6ID0g
eSAqIHopIC9cXFxuKCF4IHkgei4gfih4ID0geSkgXFwvIHogKiB4ID0geiAq
IHkpID09PlxufihpIGExICogYTEgPSBpIGIxICogYjEpIFxcLyB+KGkgYjIg
KiBiMiAqIGEyID0gYTIpIFxcL1xufihhMyAqIGIzICogYzMgPSBhMyAqIChi
MyAqIGMzKSkgPT0+IEYiXX0sCgp7bmFtZSA9ICJIRU4wMDYtMyIsCiBnb2Fs
ID0gWwoKCgoKCgoKCgpRVU9URSAiXG4oIXguIHggPSB4KSAvXFwgKCF4IHku
IH4oeCA9IHkpIFxcLyB5ID0geCkgL1xcXG4oIXggeSB6LiB+KHggPSB5KSBc
XC8gfih5ID0geikgXFwvIHggPSB6KSAvXFxcbigheCB5LiB+KHggPD0geSkg
XFwvIHggLyB5ID0gMCkgL1xcICgheCB5LiB+KHggLyB5ID0gMCkgXFwvIHgg
PD0geSkgL1xcXG4oIXggeS4geCAvIHkgPD0geCkgL1xcICgheCB5IHouIHgg
LyB5IC8gKHogLyB5KSA8PSB4IC8geiAvIHkpIC9cXFxuKCF4LiAwIDw9IHgp
IC9cXCAoIXggeS4gfih4IDw9IHkpIFxcLyB+KHkgPD0geCkgXFwvIHggPSB5
KSAvXFwgKCF4LiB4IDw9IDEpIC9cXFxuKCF4IHkgei4gfih4ID0geSkgXFwv
IHggLyB6ID0geSAvIHopIC9cXFxuKCF4IHkgei4gfih4ID0geSkgXFwvIHog
LyB4ID0geiAvIHkpIC9cXFxuKCF4IHkgei4gfih4ID0geSkgXFwvIH4oeCA8
PSB6KSBcXC8geSA8PSB6KSAvXFxcbigheCB5IHouIH4oeCA9IHkpIFxcLyB+
KHogPD0geCkgXFwvIHogPD0geSkgL1xcIGEgLyBiIDw9IGQgPT0+XG5+KGEg
LyBkIDw9IGIpID09PiBGIl19LAoKe25hbWUgPSAiUk5HMDM1LTciLAogZ29h
bCA9IFsKCgoKCgoKCgoKCgpRVU9URSAiXG4oIXguIHggPSB4KSAvXFwgKCF4
IHkuIH4oeCA9IHkpIFxcLyB5ID0geCkgL1xcXG4oIXggeSB6LiB+KHggPSB5
KSBcXC8gfih5ID0geikgXFwvIHggPSB6KSAvXFwgKCF4LiAwICsgeCA9IHgp
IC9cXFxuKCF4LiB4ICsgMCA9IHgpIC9cXCAoIXguIG4geCArIHggPSAwKSAv
XFwgKCF4LiB4ICsgbiB4ID0gMCkgL1xcXG4oIXggeSB6LiB4ICsgKHkgKyB6
KSA9IHggKyB5ICsgeikgL1xcICgheCB5LiB4ICsgeSA9IHkgKyB4KSAvXFxc
bigheCB5IHouIHggKiAoeSAqIHopID0geCAqIHkgKiB6KSAvXFxcbigheCB5
IHouIHggKiAoeSArIHopID0geCAqIHkgKyB4ICogeikgL1xcXG4oIXggeSB6
LiAoeCArIHkpICogeiA9IHggKiB6ICsgeSAqIHopIC9cXFxuKCF4IHkgei4g
fih4ID0geSkgXFwvIHggKyB6ID0geSArIHopIC9cXFxuKCF4IHkgei4gfih4
ID0geSkgXFwvIHogKyB4ID0geiArIHkpIC9cXCAoIXggeS4gfih4ID0geSkg
XFwvIG4geCA9IG4geSkgL1xcXG4oIXggeSB6LiB+KHggPSB5KSBcXC8geCAq
IHogPSB5ICogeikgL1xcXG4oIXggeSB6LiB+KHggPSB5KSBcXC8geiAqIHgg
PSB6ICogeSkgL1xcICgheC4geCAqICh4ICogKHggKiB4KSkgPSB4KSA9PT5c
bmEgKiBiID0gYyAvXFwgfihiICogYSA9IGMpID09PiBGIl19LAoKe25hbWUg
PSAiUk9CMDAxLTEiLAogZ29hbCA9IFsKCgoKCgoKUVVPVEUgIlxuKCF4LiB4
ID0geCkgL1xcICgheCB5LiB+KHggPSB5KSBcXC8geSA9IHgpIC9cXFxuKCF4
IHkgei4gfih4ID0geSkgXFwvIH4oeSA9IHopIFxcLyB4ID0geikgL1xcICgh
eCB5LiB4ICsgeSA9IHkgKyB4KSAvXFxcbigheCB5IHouIHggKyB5ICsgeiA9
IHggKyAoeSArIHopKSAvXFxcbigheCB5LiBuIChuICh4ICsgeSkgKyBuICh4
ICsgbiB5KSkgPSB4KSAvXFxcbigheCB5IHouIH4oeCA9IHkpIFxcLyB4ICsg
eiA9IHkgKyB6KSAvXFxcbigheCB5IHouIH4oeCA9IHkpIFxcLyB6ICsgeCA9
IHogKyB5KSAvXFwgKCF4IHkuIH4oeCA9IHkpIFxcLyBuIHggPSBuIHkpID09
PlxufihuIChhICsgbiBiKSArIG4gKG4gYSArIG4gYikgPSBiKSA9PT4gRiJd
fSwKCntuYW1lID0gIkdSUDEyOC00LjAwMyIsCiBnb2FsID0gWwoKCgoKCgoK
CgoKCgoKCgoKUVVPVEUgIlxuKCF4IHkuXG4gICB+ZWx0IHggXFwvIH5lbHQg
eSBcXC8gcHJvZHVjdCBlXzEgeCB5IFxcLyBwcm9kdWN0IGVfMiB4IHkgXFwv
XG4gICBwcm9kdWN0IGVfMyB4IHkpIC9cXFxuKCF4IHkuXG4gICB+ZWx0IHgg
XFwvIH5lbHQgeSBcXC8gcHJvZHVjdCB4IGVfMSB5IFxcLyBwcm9kdWN0IHgg
ZV8yIHkgXFwvXG4gICBwcm9kdWN0IHggZV8zIHkpIC9cXCBlbHQgZV8xIC9c
XCBlbHQgZV8yIC9cXCBlbHQgZV8zIC9cXCB+KGVfMSA9PSBlXzIpIC9cXFxu
fihlXzEgPT0gZV8zKSAvXFwgfihlXzIgPT0gZV8xKSAvXFwgfihlXzIgPT0g
ZV8zKSAvXFwgfihlXzMgPT0gZV8xKSAvXFxcbn4oZV8zID09IGVfMikgL1xc
XG4oIXggeS5cbiAgIH5lbHQgeCBcXC8gfmVsdCB5IFxcLyBwcm9kdWN0IHgg
eSBlXzEgXFwvIHByb2R1Y3QgeCB5IGVfMiBcXC9cbiAgIHByb2R1Y3QgeCB5
IGVfMykgL1xcXG4oIXggeSB6IHYuIH5wcm9kdWN0IHggeSB6IFxcLyB+cHJv
ZHVjdCB4IHkgdiBcXC8geiA9PSB2KSAvXFxcbigheCB5IHogdi4gfnByb2R1
Y3QgeCB5IHogXFwvIH5wcm9kdWN0IHggdiB6IFxcLyB5ID09IHYpIC9cXFxu
KCF4IHkgeiB2LiB+cHJvZHVjdCB4IHkgeiBcXC8gfnByb2R1Y3QgdiB5IHog
XFwvIHggPT0gdikgPT0+XG4oIXggeSB6IHYuIHByb2R1Y3QgeCB5IHogXFwv
IH5wcm9kdWN0IHggeiB2IFxcLyB+cHJvZHVjdCB6IHkgdikgL1xcXG4oIXgg
eSB6IHYuIHByb2R1Y3QgeCB5IHogXFwvIH5wcm9kdWN0IHYgeCB6IFxcLyB+
cHJvZHVjdCB2IHkgeCkgL1xcXG4oIXggeSB6IHYuIH5wcm9kdWN0IHggeSB6
IFxcLyB+cHJvZHVjdCB6IHkgdiBcXC8gcHJvZHVjdCB4IHogdikgPT0+IEYi
XX0sCgp7bmFtZSA9ICJOVU0wMTQtMSIsCiBnb2FsID0gWwoKCgoKCgpRVU9U
RSAiXG4oIXguIHByb2R1Y3QgeCB4IChzcXVhcmUgeCkpIC9cXFxuKCF4IHkg
ei4gfnByb2R1Y3QgeCB5IHogXFwvIHByb2R1Y3QgeSB4IHopIC9cXFxuKCF4
IHkgei4gfnByb2R1Y3QgeCB5IHogXFwvIGRpdmlkZXMgeCB6KSAvXFxcbigh
eCB5IHogdi5cbiAgIH5wcmltZSB4IFxcLyB+cHJvZHVjdCB5IHogdiBcXC8g
fmRpdmlkZXMgeCB2IFxcLyBkaXZpZGVzIHggeSBcXC9cbiAgIGRpdmlkZXMg
eCB6KSAvXFwgcHJpbWUgYSAvXFwgcHJvZHVjdCBhIChzcXVhcmUgYykgKHNx
dWFyZSBiKSA9PT5cbn5kaXZpZGVzIGEgYiA9PT4gRiJdfQoKXTsKCigqID09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0gKikKKCogQSBGRVcgU0FNUExF
IFRIRU9SRU1TIFRPIENIRUNLIExBUkdFIFJVTlMgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAqKQooKiA9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09ICopCgp2YWwgcXVpY2sgPQogIFtleHRyYWN0IG5vbmVxdWFsaXR5
ICJUUlVFIiwKICAgZXh0cmFjdCBub25lcXVhbGl0eSAiUF9vcl9ub3RfUCIs
CiAgIGV4dHJhY3Qgbm9uZXF1YWxpdHkgIkpIX3Rlc3QiLAogICBleHRyYWN0
IG5vbmVxdWFsaXR5ICJDWUNMSUMiLAogICBleHRyYWN0IG5vbmVxdWFsaXR5
ICJNTl9idWciLAogICBleHRyYWN0IG5vbmVxdWFsaXR5ICJFUklDIiwKICAg
ZXh0cmFjdCBub25lcXVhbGl0eSAiTUFUSFM0X0VYQU1QTEUiLAogICBleHRy
YWN0IG5vbmVxdWFsaXR5ICJQMTgiLAogICBleHRyYWN0IG5vbmVxdWFsaXR5
ICJQMzkiLAogICBleHRyYWN0IG5vbmVxdWFsaXR5ICJQNTkiLAogICBleHRy
YWN0IG5vbmVxdWFsaXR5ICJEQVZJU19QVVROQU1fRVhBTVBMRSIsCiAgIGV4
dHJhY3Qgbm9uZXF1YWxpdHkgIkJBRF9DT05ORUNUSU9OUyIsCgogICBleHRy
YWN0IGVxdWFsaXR5ICJUUkFOU19TWU1NIiwKICAgZXh0cmFjdCBlcXVhbGl0
eSAiQ1lDTElDX1NVQlNUSVRVVElPTl9CVUciLAogICBleHRyYWN0IGVxdWFs
aXR5ICJQNDgiXTsKCmVuZAooKiNsaW5lIDAuMCAic3JjL01ldGVyMS5zaWci
KikKKCogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqKQooKiBNRVRF
UklORyBUSU1FIEFORCBJTkZFUkVOQ0VTICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICopCigqIENyZWF0ZWQgYnkgSm9l
IEh1cmQsIE5vdmVtYmVyIDIwMDEgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgKikKKCogPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PSAqKQoKc2lnbmF0dXJlIE1ldGVyMSA9CnNpZwoKdHlwZSAnYSBwcCA9
ICdhIFVzZWZ1bC5wcAoKKCogU2VhcmNoIGxpbWl0cyAqKQp0eXBlIGxpbWl0
ICAgICAgICAgID0ge3RpbWUgOiByZWFsIG9wdGlvbiwgaW5mcyA6IGludCBv
cHRpb259CnZhbCB1bmxpbWl0ZWQgICAgICAgOiBsaW1pdAp2YWwgZXhwaXJl
ZCAgICAgICAgIDogbGltaXQKdmFsIGxpbWl0X3RvX3N0cmluZyA6IGxpbWl0
IC0+IHN0cmluZwoKKCogTWV0ZXIgcmVhZGluZ3MgKikKdHlwZSBtZXRlcl9y
ZWFkaW5nICAgICAgICAgID0ge3RpbWUgOiByZWFsLCBpbmZzIDogaW50fQp2
YWwgemVyb19yZWFkaW5nICAgICAgICAgICAgOiBtZXRlcl9yZWFkaW5nCnZh
bCBhZGRfcmVhZGluZ3MgICAgICAgICAgICA6IG1ldGVyX3JlYWRpbmcgLT4g
bWV0ZXJfcmVhZGluZyAtPiBtZXRlcl9yZWFkaW5nCnZhbCBwcF9tZXRlcl9y
ZWFkaW5nICAgICAgICA6IG1ldGVyX3JlYWRpbmcgcHAKdmFsIG1ldGVyX3Jl
YWRpbmdfdG9fc3RyaW5nIDogbWV0ZXJfcmVhZGluZyAtPiBzdHJpbmcKCigq
IE1ldGVycyByZWNvcmQgdGltZSBhbmQgaW5mZXJlbmNlcyAqKQp0eXBlIG1l
dGVyCnZhbCBuZXdfbWV0ZXIgICA6IGxpbWl0IC0+IG1ldGVyCnZhbCBzdWJf
bWV0ZXIgICA6IG1ldGVyIC0+IGxpbWl0IC0+IG1ldGVyCnZhbCByZWNvcmRf
aW5mcyA6IG1ldGVyIC0+IGludCAtPiB1bml0CnZhbCByZWFkX21ldGVyICA6
IG1ldGVyIC0+IG1ldGVyX3JlYWRpbmcKdmFsIGNoZWNrX21ldGVyIDogbWV0
ZXIgLT4gYm9vbAp2YWwgcHBfbWV0ZXIgICAgOiBtZXRlciBwcAoKZW5kCigq
I2xpbmUgMC4wICJzcmMvTWV0ZXIxLnNtbCIqKQooKiA9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09ICopCigqIE1FVEVSSU5HIFRJTUUgQU5EIElORkVS
RU5DRVMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgKikKKCogQ3JlYXRlZCBieSBKb2UgSHVyZCwgTm92ZW1iZXIgMjAw
MSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKQoo
KiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICopCgooKgphcHAgbG9h
ZAogWyJVc2VmdWwiLCAiTW9zbWwiLCAiVGVybTEiLCAiVGhtMSIsICJDYW5v
bjEiLCAiTWF0Y2gxIl07CiopCgooKgoqKQpzdHJ1Y3R1cmUgTWV0ZXIxIDo+
IE1ldGVyMSA9CnN0cnVjdAoKb3BlbiBVc2VmdWw7CgppbmZpeCB8LT4gOjo+
IEA+IG9vICMjIDo6KiA6OkA7CgooKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tICopCigqIFNlYXJjaCBsaW1pdHMgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKikK
KCogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqKQoKdHlwZSBsaW1p
dCA9IHt0aW1lIDogcmVhbCBvcHRpb24sIGluZnMgOiBpbnQgb3B0aW9ufTsK
CnZhbCB1bmxpbWl0ZWQgPSB7dGltZSA9IE5PTkUsIGluZnMgPSBOT05FfTsK
CnZhbCBleHBpcmVkID0ge3RpbWUgPSBTT01FIDAuMCwgaW5mcyA9IFNPTUUg
MH07CgpmdW4gbGltaXRfdG9fc3RyaW5nIHt0aW1lLCBpbmZzfSA9CiAgInt0
aW1lID0gIiBeCiAgIChjYXNlIHRpbWUgb2YgTk9ORSA9PiAidW5saW1pdGVk
IgogICAgfCBTT01FIHIgPT4gUmVhbC5mbXQgKFN0cmluZ0N2dC5GSVggKFNP
TUUgMykpIHIgXiAicyIpIF4KICAgIiwgaW5mcyA9ICIgXgogICAoY2FzZSBp
bmZzIG9mIE5PTkUgPT4gInVubGltaXRlZCIgfCBTT01FIGkgPT4gaW50X3Rv
X3N0cmluZyBpKSBeCiAgICJ9IjsKCigqIC0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0gKikKKCogTWV0ZXIgcmVhZGluZ3MuICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAq
KQooKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICopCgp0eXBlIG1l
dGVyX3JlYWRpbmcgPSB7dGltZSA6IHJlYWwsIGluZnMgOiBpbnR9OwoKdmFs
IHplcm9fcmVhZGluZyA9IHt0aW1lID0gMC4wLCBpbmZzID0gMH07CgpmdW4g
YWRkX3JlYWRpbmdzIHt0aW1lIDogcmVhbCwgaW5mc30ge3RpbWUgPSB0aW1l
JywgaW5mcyA9IGluZnMnfSA9CiAge3RpbWUgPSB0aW1lICsgdGltZScsIGlu
ZnMgPSBpbmZzICsgaW5mcyd9OwoKZnVuIHBwX21ldGVyX3JlYWRpbmcgcHAg
e3RpbWUsIGluZnN9ID0KICBsZXQKICAgIG9wZW4gUFAKICAgIHZhbCAoKSA9
IGJlZ2luX2Jsb2NrIHBwIElOQ09OU0lTVEVOVCAxCiAgICB2YWwgKCkgPSBh
ZGRfc3RyaW5nIHBwICJ7IjsKICAgIHZhbCAoKSA9IGJlZ2luX2Jsb2NrIHBw
IElOQ09OU0lTVEVOVCAyCiAgICB2YWwgKCkgPSBhZGRfc3RyaW5nIHBwICJ0
aW1lID0iCiAgICB2YWwgKCkgPSBhZGRfYnJlYWsgcHAgKDEsIDApCiAgICB2
YWwgKCkgPSBhZGRfc3RyaW5nIHBwIChSZWFsLmZtdCAoU3RyaW5nQ3Z0LkZJ
WCAoU09NRSAzKSkgdGltZSkKICAgIHZhbCAoKSA9IGVuZF9ibG9jayBwcAog
ICAgdmFsICgpID0gYWRkX3N0cmluZyBwcCAiLCIKICAgIHZhbCAoKSA9IGFk
ZF9icmVhayBwcCAoMSwgMCkKICAgIHZhbCAoKSA9IGJlZ2luX2Jsb2NrIHBw
IElOQ09OU0lTVEVOVCAyCiAgICB2YWwgKCkgPSBhZGRfc3RyaW5nIHBwICJp
bmZzID0iCiAgICB2YWwgKCkgPSBhZGRfYnJlYWsgcHAgKDEsIDApCiAgICB2
YWwgKCkgPSBwcF9pbnQgcHAgaW5mcwogICAgdmFsICgpID0gZW5kX2Jsb2Nr
IHBwCiAgICB2YWwgKCkgPSBhZGRfc3RyaW5nIHBwICJ9IgogICAgdmFsICgp
ID0gZW5kX2Jsb2NrIHBwCiAgaW4KICAgICgpCiAgZW5kOwoKZnVuIG1ldGVy
X3JlYWRpbmdfdG9fc3RyaW5nIHIgPQogIFBQLnBwX3RvX3N0cmluZyAoIUxJ
TkVfTEVOR1RIKSBwcF9tZXRlcl9yZWFkaW5nIHI7CgooKiAtLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tICopCigqIE1ldGVycyByZWNvcmQgdGltZSBh
bmQgaW5mZXJlbmNlcy4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgKikKKCogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAq
KQoKdHlwZSBtZXRlciA9IHtyZWFkIDogdW5pdCAtPiBtZXRlcl9yZWFkaW5n
LCBsb2cgOiAoaW50IC0+IHVuaXQpLCBsaW0gOiBsaW1pdH07CgpmdW4gbmV3
X3RpbWVfbWV0ZXIgKCkgPQogIGxldAogICAgdmFsIHRtciA9IFRpbWVyLnN0
YXJ0Q1BVVGltZXIgKCkKICAgIGZ1biByZWFkICgpID0KICAgICAgKGZuIHt1
c3IsIHN5cywgLi4ufSA9PiBUaW1lLnRvUmVhbCAoVGltZS4rICh1c3IsIHN5
cykpKQogICAgICAoVGltZXIuY2hlY2tDUFVUaW1lciB0bXIpCiAgaW4KICAg
IHJlYWQKICBlbmQ7CgpmdW4gbmV3X2luZmVyZW5jZV9tZXRlciAoKSA9CiAg
bGV0CiAgICB2YWwgaW5mcyA9IHJlZiAwCiAgICBmdW4gcmVhZCAoKSA9ICFp
bmZzCiAgaW4KICAgIChyZWFkLCBmbiBuID0+IGluZnMgOj0gIWluZnMgKyBu
KQogIGVuZDsKCmZ1biBuZXdfbWV0ZXIgbGltIDogbWV0ZXIgPQogIGxldAog
ICAgdmFsIHRyZWFkID0gbmV3X3RpbWVfbWV0ZXIgKCkKICAgIHZhbCAoaXJl
YWQsIGlsb2cpID0gbmV3X2luZmVyZW5jZV9tZXRlciAoKQogIGluCiAgICB7
cmVhZCA9IChmbiAoKSA9PiB7dGltZSA9IHRyZWFkICgpLCBpbmZzID0gaXJl
YWQgKCl9KSwKICAgICBsb2cgPSBpbG9nLCBsaW0gPSBsaW19CiAgZW5kOwoK
ZnVuIHN1Yl9tZXRlciB7cmVhZCwgbG9nLCBsaW0gPSBffSBsaW0gPQogIGxl
dAogICAgdmFsIHt0aW1lID0gaW5pdF90aW1lIDogcmVhbCwgaW5mcyA9IGlu
aXRfaW5mc30gPSByZWFkICgpCiAgICBmdW4gc3ViIHt0aW1lLCBpbmZzfSA9
IHt0aW1lID0gdGltZSAtIGluaXRfdGltZSwgaW5mcyA9IGluZnMgLSBpbml0
X2luZnN9CiAgaW4KICAgIHtyZWFkID0gc3ViIG8gcmVhZCwgbG9nID0gbG9n
LCBsaW0gPSBsaW19CiAgZW5kOwoKdmFsIHJlYWRfbWV0ZXIgPSBmbiAoe3Jl
YWQsIC4uLn0gOiBtZXRlcikgPT4gcmVhZCAoKTsKCnZhbCBjaGVja19tZXRl
ciA9IGZuICh7cmVhZCwgbGltID0ge3RpbWUsIGluZnN9LCAuLi59IDogbWV0
ZXIpID0+CiAgbGV0CiAgICB2YWwge3RpbWUgPSB0LCBpbmZzID0gaX0gPSBy
ZWFkICgpCiAgaW4KICAgIChjYXNlIHRpbWUgb2YgTk9ORSA9PiB0cnVlIHwg
U09NRSB0aW1lID0+IHQgPCB0aW1lKSBhbmRhbHNvCiAgICAoY2FzZSBpbmZz
IG9mIE5PTkUgPT4gdHJ1ZSB8IFNPTUUgaW5mcyA9PiBpIDwgaW5mcykKICBl
bmQ7Cgp2YWwgcmVjb3JkX2luZnMgPSBmbiAoe2xvZywgLi4ufSA6IG1ldGVy
KSA9PiBsb2c7Cgp2YWwgcHBfbWV0ZXIgPSBwcF9tYXAgcmVhZF9tZXRlciBw
cF9tZXRlcl9yZWFkaW5nOwoKZW5kCigqI2xpbmUgMC4wICJzcmMvU29sdmVy
MS5zaWciKikKKCogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqKQoo
KiBQQUNLQUdJTkcgVVAgU09MVkVSUyBUTyBBTExPVyBUSEVNIFRPIENPT1BF
UkFURSBVTklGT1JNTFkgICAgICAgICAgICAgICAgICopCigqIENyZWF0ZWQg
YnkgSm9lIEh1cmQsIE1hcmNoIDIwMDIgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgKikKKCogPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PSAqKQoKc2lnbmF0dXJlIFNvbHZlcjEgPQpzaWcKCnR5cGUg
J2EgcHAgICAgICAgICA9ICdhIFVzZWZ1bC5wcAp0eXBlICdhIHN0cmVhbSAg
ICAgPSAnYSBTdHJlYW0uc3RyZWFtCnR5cGUgZm9ybXVsYSAgICAgICA9IFRl
cm0xLmZvcm11bGEKdHlwZSB0aG0gICAgICAgICAgID0gVGhtMS50aG0KdHlw
ZSBsaW1pdCAgICAgICAgID0gTWV0ZXIxLmxpbWl0CnR5cGUgbWV0ZXIgICAg
ICAgICA9IE1ldGVyMS5tZXRlcgp0eXBlIG1ldGVyX3JlYWRpbmcgPSBNZXRl
cjEubWV0ZXJfcmVhZGluZwp0eXBlIHVuaXRzICAgICAgICAgPSBVbml0czEu
dW5pdHMKCigqIFRoZSB0eXBlIG9mIGEgZ2VuZXJpYyBzb2x2ZXIgKikKCnR5
cGUgc29sdmVyID0gZm9ybXVsYSBsaXN0IC0+IHRobSBsaXN0IG9wdGlvbiBz
dHJlYW0KCnZhbCBjb250cmFkaWN0aW9uX3NvbHZlciA6IHRobSAtPiBzb2x2
ZXIKCigqIEZpbHRlcnMgdG8gY3V0IG9mZiBzZWFyY2hpbmcgb3IgZHJvcCBz
dWJzdW1lZCBzb2x1dGlvbnMgKikKCnZhbCBzb2x2ZWRfZmlsdGVyICAgOiBz
b2x2ZXIgLT4gc29sdmVyCnZhbCBzdWJzdW1lZF9maWx0ZXIgOiBzb2x2ZXIg
LT4gc29sdmVyCgooKiBVc2VyLWZyaWVuZGx5IGludGVyZmFjZSB0byBnZW5l
cmljIHNvbHZlcnMgKikKCnZhbCBzb2x2ZSAgOiBzb2x2ZXIgLT4gZm9ybXVs
YSBsaXN0IC0+IHRobSBsaXN0IGxpc3QKdmFsIGZpbmQgICA6IHNvbHZlciAt
PiBmb3JtdWxhIGxpc3QgLT4gdGhtIGxpc3Qgb3B0aW9uCnZhbCByZWZ1dGUg
OiBzb2x2ZXIgLT4gdGhtIG9wdGlvbgoKKCogU29sdmVyIG5vZGVzIG11c3Qg
Y29uc3RydWN0IHRoZW1zZWx2ZXMgZnJvbSB0aGUgZm9sbG93aW5nIGZvcm0u
ICopCgp0eXBlIGZvcm0gPQogIHtzbGljZSA6IG1ldGVyIHJlZiwgICAgICAg
ICAgICAgICAgICAgKCogQSBtZXRlciB0byBzdG9wIGFmdGVyIGVhY2ggc2xp
Y2UgKikKICAgdW5pdHMgOiB1bml0cyByZWYsICAgICAgICAgICAgICAgICAg
ICgqIFNvbHZlcnMgc2hhcmUgYSB1bml0IGNhY2hlICopCiAgIHRobXMgIDog
dGhtIGxpc3QsICAgICAgICAgICAgICAgICAgICAoKiBDb250ZXh0LCBhc3N1
bWVkIGNvbnNpc3RlbnQgKikKICAgaHlwcyAgOiB0aG0gbGlzdH0gICAgICAg
ICAgICAgICAgICAgICgqIEh5cG90aGVzaXMsIG9yIHNldCBvZiBzdXBwb3J0
ICopCgooKiBTb2x2ZXIgbm9kZXMgYWxzbyBpbmNvcnBvcmF0ZSBhIG5hbWUu
ICopCgp0eXBlIG5vZGVfZGF0YSA9IHtuYW1lIDogc3RyaW5nLCBzb2x2ZXJf
Y29uIDogZm9ybSAtPiBzb2x2ZXJ9CnR5cGUgc29sdmVyX25vZGUKCnZhbCBt
a19zb2x2ZXJfbm9kZSA6IG5vZGVfZGF0YSAtPiBzb2x2ZXJfbm9kZQp2YWwg
cHBfc29sdmVyX25vZGUgOiBzb2x2ZXJfbm9kZSBwcAoKKCogQXQgZWFjaCBz
dGVwIHdlIHNjaGVkdWxlIGEgdGltZSBzbGljZSB0byB0aGUgbGVhc3QgY29z
dCBzb2x2ZXIgbm9kZS4gKikKCnZhbCBTTElDRSA6IGxpbWl0IHJlZgoKdHlw
ZSBjb3N0X2ZuID0gbWV0ZXJfcmVhZGluZyAtPiByZWFsCgp2YWwgdGltZTEg
OiBjb3N0X2ZuICAgICAgICAgICAgICAgICAgICAgKCogVGltZSB0YWtlbiAo
aW4gc2Vjb25kcykgKikKdmFsIHRpbWUyIDogY29zdF9mbiAgICAgICAgICAg
ICAgICAgICAgICgqIFRpbWUgc3F1YXJlZCAqKQp2YWwgaW5mczEgOiBjb3N0
X2ZuICAgICAgICAgICAgICAgICAgICAgKCogTnVtYmVyIG9mIGluZmVyZW5j
ZXMgbWFkZSopCnZhbCBpbmZzMiA6IGNvc3RfZm4gICAgICAgICAgICAgICAg
ICAgICAoKiBJbmZlcmVuY2VzIHNxdWFyZWQgKikKCigqIFRoaXMgYWxsb3dz
IHVzIHRvIGhpZXJhcmNoaWNhbGx5IGFycmFuZ2Ugc29sdmVyIG5vZGVzLiAq
KQoKdmFsIGNvbWJpbmUgOiAoY29zdF9mbiAqIHNvbHZlcl9ub2RlKSBsaXN0
IC0+IHNvbHZlcl9ub2RlCgooKiBPdmVycmlkaW5nIHRoZSAnbmF0dXJhbCcg
c2V0IG9mIHN1cHBvcnQgZnJvbSB0aGUgcHJvYmxlbS4gKikKCnZhbCBzZXRf
b2Zfc3VwcG9ydCA6ICh0aG0gLT4gYm9vbCkgLT4gc29sdmVyX25vZGUgLT4g
c29sdmVyX25vZGUKdmFsIGV2ZXJ5dGhpbmcgICAgIDogdGhtIC0+IGJvb2wK
dmFsIG9uZV9uZWdhdGl2ZSAgIDogdGhtIC0+IGJvb2wKdmFsIG9uZV9wb3Np
dGl2ZSAgIDogdGhtIC0+IGJvb2wKdmFsIGFsbF9uZWdhdGl2ZSAgIDogdGht
IC0+IGJvb2wgICAgICAgICgqIFRoaXMgb25lIGlzIHVzZWQgYnkgTWV0aXMx
LnByb3ZlICopCnZhbCBhbGxfcG9zaXRpdmUgICA6IHRobSAtPiBib29sCnZh
bCBub3RoaW5nICAgICAgICA6IHRobSAtPiBib29sCgooKiBJbml0aWFsaXpp
bmcgYSBzb2x2ZXIgbm9kZSBtYWtlcyBpdCByZWFkeSBmb3IgYWN0aW9uLiAq
KQoKdHlwZSBpbml0X2RhdGEgPSB7bGltaXQgOiBsaW1pdCwgdGhtcyA6IHRo
bSBsaXN0LCBoeXBzIDogdGhtIGxpc3R9Cgp2YWwgaW5pdGlhbGl6ZSA6IHNv
bHZlcl9ub2RlIC0+IGluaXRfZGF0YSAtPiBzb2x2ZXIKCmVuZAooKiNsaW5l
IDAuMCAic3JjL1NvbHZlcjEuc21sIiopCigqID09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0gKikKKCogUEFDS0FHSU5HIFVQIFNPTFZFUlMgVE8gQUxM
T1cgVEhFTSBUTyBDT09QRVJBVEUgVU5JRk9STUxZICAgICAgICAgICAgICAg
ICAqKQooKiBDcmVhdGVkIGJ5IEpvZSBIdXJkLCBNYXJjaCAyMDAyICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopCigqID09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0gKikKCigqCmFwcCBsb2FkCiBb
IlVzZWZ1bCIsICJNb3NtbCIsICJUZXJtMSIsICJUaG0xIiwgIkNhbm9uMSIs
ICJNYXRjaDEiLCAiTWV0ZXIxIiwgIlVuaXRzMSIsCiAgIlNvbHZlcjEiXTsK
KikKCigqCiopCnN0cnVjdHVyZSBTb2x2ZXIxIDo+IFNvbHZlcjEgPQpzdHJ1
Y3QKCm9wZW4gVXNlZnVsIFRlcm0xIE1hdGNoMSBUaG0xIE1ldGVyMTsKCmlu
Zml4IHwtPiA6Oj4gQD4gb28gIyM7CgpzdHJ1Y3R1cmUgUyA9IFN0cmVhbTsK
c3RydWN0dXJlIFUgPSBVbml0czE7Cgp0eXBlICdhIHN0cmVhbSA9ICdhIFMu
c3RyZWFtOwp0eXBlIHVuaXRzICAgICA9IFUudW5pdHM7Cgp2YWwgfDw+fCAg
ID0gU3Vic3QxLnw8Pnw7CnZhbCBvcCA6Oj4gPSBTdWJzdDEuOjo+OwoKKCog
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqKQooKiBDaGF0dGluZy4g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICopCigqIC0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0gKikKCnZhbCAoKSA9IHRyYWNlcyA6PSB7bW9kdWxlID0gIlNv
bHZlcjEiLCBhbGlnbm1lbnQgPSBLIDF9IDo6ICF0cmFjZXM7CgpmdW4gY2hh
dCBsIG0gPSB0cmFjZSB7bW9kdWxlID0gIlNvbHZlcjEiLCBtZXNzYWdlID0g
bSwgbGV2ZWwgPSBsfTsKCigqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0gKikKKCogSGVscGVyIGZ1bmN0aW9ucy4gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKQooKiAt
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICopCgpmdW4gZHJvcF9hZnRl
ciBmID0KICBTLmZvbGQgKGZuIHggPT4gZm4geHMgPT4gUy5DT05TICh4LCBp
ZiBmIHggdGhlbiBLIFMuTklMIGVsc2UgeHMpKSBTLk5JTDsKCmZ1biB0aW1l
X3RvX3N0cmluZyB0ID0KICBsZXQgdmFsIGRwID0gaWYgdCA8IDEwLjAgdGhl
biAyIGVsc2UgaWYgdCA8IDEwMDAuMCB0aGVuIDEgZWxzZSAwCiAgaW4gUmVh
bC5mbXQgKFN0cmluZ0N2dC5GSVggKFNPTUUgZHApKSB0CiAgZW5kOwoKZnVu
IGluZnNfdG9fc3RyaW5nIGkgPQogIGlmIGkgPCAxMDAwMCB0aGVuIGludF90
b19zdHJpbmcgaQogIGVsc2UgaWYgaSA8IDEwMDAwMDAwIHRoZW4gaW50X3Rv
X3N0cmluZyAoaSBkaXYgMTAwMCkgXiAiSyIKICBlbHNlIGludF90b19zdHJp
bmcgKGkgZGl2IDEwMDAwMDApIF4gIk0iOwoKdmFsIG5hbWVfdG9fc3RyaW5n
ID0gc3RyIG8gaGQgbyBleHBsb2RlOwoKZnVuIG9wdGlvbl9jYXNlIG4gXyBO
T05FID0gbgogIHwgb3B0aW9uX2Nhc2UgXyBzIChTT01FIF8pID0gczsKCigq
IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKikKKCogVGhlIHR5cGUg
b2YgYSBnZW5lcmljIHNvbHZlci4gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAqKQooKiAtLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tICopCgp0eXBlIHNvbHZlciA9IGZvcm11bGEgbGlzdCAtPiB0
aG0gbGlzdCBvcHRpb24gc3RyZWFtOwoKbG9jYWwKICBmdW4gY29udHIgdGgg
W0ZhbHNlXSA9IFt0aF0KICAgIHwgY29udHIgdGggZ3MgPSBtYXAgKEMgQ09O
VFIgdGgpIGdzOwppbgogIGZ1biBjb250cmFkaWN0aW9uX3NvbHZlciB0aCA9
CiAgICAoYXNzZXJ0IChpc19jb250cmFkaWN0aW9uIHRoKSAoRVJSICJjb250
cmFkaWN0aW9uX3NvbHZlciIgInRobSBub3QgfC0gRiIpOwogICAgIGZuIGdz
ID0+IFMuQ09OUyAoU09NRSAoY29udHIgdGggZ3MpLCBLIFMuTklMKSk7CmVu
ZDsKCigqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKikKKCogRmls
dGVycyB0byBjdXQgb2ZmIHNlYXJjaGluZyBvciBkcm9wIHN1YnN1bWVkIHNv
bHV0aW9ucy4gICAgICAgICAgICAgICAgICAqKQooKiAtLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tICopCgpsb2NhbAogIGZ1biBjb25jbCBbXSA9IEZh
bHNlCiAgICB8IGNvbmNsIFtsaXRdID0gbGl0CiAgICB8IGNvbmNsIF8gPSBy
YWlzZSBCVUcgImNvbmNsIiAibm90IGEgbGl0ZXJhbCI7CmluCiAgZnVuIHNv
bHZlZF9maWx0ZXIgc29sdmVyIGdvYWxzID0KICAgIGxldAogICAgICBmdW4g
c29sdmVzIGdvYWxzJyA9IGNhbiAobWF0Y2hsX2xpdGVyYWxzIHw8PnwpICh6
aXAgZ29hbHMnIGdvYWxzKQogICAgICBmdW4gZmluYWwgTk9ORSA9IGZhbHNl
CiAgICAgICAgfCBmaW5hbCAoU09NRSB0aHMpID0gc29sdmVzIChtYXAgKGNv
bmNsIG8gY2xhdXNlKSB0aHMpCiAgICBpbgogICAgICBkcm9wX2FmdGVyIGZp
bmFsIChzb2x2ZXIgZ29hbHMpCiAgICBlbmQ7CmVuZDsKCmxvY2FsCiAgZnVu
IG11bmdlIHMgbiA9ICJNVU5HRURfXyIgXiBpbnRfdG9fc3RyaW5nIG4gXiAi
X18iIF4gczsKICBmdW4gbXVuZ2VfbGl0IChuLCBBdG9tIChGbiAocCwgYSkp
KSA9IEF0b20gKEZuIChtdW5nZSBwIG4sIGEpKQogICAgfCBtdW5nZV9saXQg
KG4sIE5vdCAoQXRvbSAoRm4gKHAsIGEpKSkpID0gTm90IChBdG9tIChGbiAo
bXVuZ2UgcCBuLCBhKSkpCiAgICB8IG11bmdlX2xpdCBfID0gcmFpc2UgQlVH
ICJtdW5nZV9saXQiICJiYWQgbGl0ZXJhbCI7CiAgZnVuIGRpc3RpbmN0aXZp
emUgZm1zID0gbWFwIG11bmdlX2xpdCAoZW51bWVyYXRlIDAgZm1zKTsgICAg
CiAgZnVuIGFkdmFuY2UgTk9ORSBzID0gKFNPTUUgTk9ORSwgcykKICAgIHwg
YWR2YW5jZSAoU09NRSB0aHMpIHMgPQogICAgbGV0CiAgICAgIHZhbCBmbXMg
PSBkaXN0aW5jdGl2aXplIChMaXN0Lm1hcFBhcnRpYWwgKHRvdGFsIGRlc3Rf
dW5pdCkgdGhzKQogICAgaW4KICAgICAgaWYgbm9uIG51bGwgKFN1YnN1bWUx
LnN1YnN1bWVkIHMgZm1zKSB0aGVuIChOT05FLCBzKQogICAgICBlbHNlIChT
T01FIChTT01FIHRocyksIFN1YnN1bWUxLmFkZCAoZm1zIHwtPiAoKSkgcykK
ICAgIGVuZAogICAgaGFuZGxlIEVSUl9FWE4gXyA9PiByYWlzZSBCVUcgImFk
dmFuY2UiICJzaG91bGRuJ3QgZmFpbCI7CmluCiAgZnVuIHN1YnN1bWVkX2Zp
bHRlciBzIGcgPSBTLnBhcnRpYWxfbWFwcyBhZHZhbmNlIFN1YnN1bWUxLmVt
cHR5IChzIGcpOwplbmQ7CgooKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tICopCigqIFVzZXItZnJpZW5kbHkgaW50ZXJmYWNlIHRvIGdlbmVyaWMg
c29sdmVycyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKikKKCog
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqKQoKZnVuIHJhd19zb2x2
ZSBzID0gUy5wYXJ0aWFsX21hcCBJIG8gKHN1YnN1bWVkX2ZpbHRlciAoc29s
dmVkX2ZpbHRlciBzKSk7CgpmdW4gc29sdmUgcyA9IFMudG9fbGlzdCBvIChy
YXdfc29sdmUgcyk7CgpmdW4gZmluZCBzID0gKGZuIFMuTklMID0+IE5PTkUg
fCBTLkNPTlMgKHgsIF8pID0+IFNPTUUgeCkgbyByYXdfc29sdmUgczsKCmZ1
biByZWZ1dGUgcyA9IE9wdGlvbi5tYXAgdW53cmFwIChmaW5kIHMgW0ZhbHNl
XSk7CgooKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICopCigqIFNv
bHZlciBub2RlcyBtdXN0IGNvbnN0cnVjdCB0aGVtc2VsdmVzIGZyb20gdGhl
IGZvbGxvd2luZyBmb3JtLiAgICAgICAgICAgKikKKCogLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLSAqKQoKdHlwZSBmb3JtID0KICB7c2xpY2UgOiBt
ZXRlciByZWYsICAgICAgICAgICAgICAgICAgICgqIEEgbWV0ZXIgdG8gc3Rv
cCBhZnRlciBlYWNoIHNsaWNlICopCiAgIHVuaXRzIDogdW5pdHMgcmVmLCAg
ICAgICAgICAgICAgICAgICAoKiBTb2x2ZXJzIHNoYXJlIGEgdW5pdCBjYWNo
ZSAqKQogICB0aG1zICA6IHRobSBsaXN0LCAgICAgICAgICAgICAgICAgICAg
KCogQ29udGV4dCwgYXNzdW1lZCBjb25zaXN0ZW50ICopCiAgIGh5cHMgIDog
dGhtIGxpc3R9OyAgICAgICAgICAgICAgICAgICAoKiBIeXBvdGhlc2lzLCBu
byBhc3N1bXB0aW9ucyAqKQoKKCogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLSAqKQooKiBTb2x2ZXIgbm9kZXMgYWxzbyBpbmNvcnBvcmF0ZSBhIG5h
bWUuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopCigq
IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKikKCnR5cGUgbm9kZV9k
YXRhID0ge25hbWUgOiBzdHJpbmcsIHNvbHZlcl9jb24gOiBmb3JtIC0+IHNv
bHZlcn07CgpkYXRhdHlwZSBzb2x2ZXJfbm9kZSA9CiAgU29sdmVyX25vZGUg
b2Yge25hbWUgOiBzdHJpbmcsIGluaXRpYWwgOiBzdHJpbmcsIHNvbHZlcl9j
b24gOiBmb3JtIC0+IHNvbHZlcn07CgpmdW4gbWtfc29sdmVyX25vZGUge25h
bWUsIHNvbHZlcl9jb259ID0KICBTb2x2ZXJfbm9kZQogIHtuYW1lID0gbmFt
ZSwgaW5pdGlhbCA9IChzdHIgbyBoZCBvIGV4cGxvZGUpIG5hbWUsIHNvbHZl
cl9jb24gPSBzb2x2ZXJfY29ufTsKCnZhbCBwcF9zb2x2ZXJfbm9kZSA9IHBw
X21hcCAoZm4gU29sdmVyX25vZGUge25hbWUsIC4uLn0gPT4gbmFtZSkgcHBf
c3RyaW5nOwoKKCogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqKQoo
KiBBdCBlYWNoIHN0ZXAgd2Ugc2NoZWR1bGUgYSB0aW1lIHNsaWNlIHRvIHRo
ZSBsZWFzdCBjb3N0IHNvbHZlciBub2RlLiAgICAgICopCigqIC0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0gKikKCnZhbCBTTElDRSA6IGxpbWl0IHJl
ZiA9IHJlZiB7dGltZSA9IFNPTUUgKDEuMCAvIDMuMCksIGluZnMgPSBOT05F
fTsKCnR5cGUgY29zdF9mbiA9IE1ldGVyMS5tZXRlcl9yZWFkaW5nIC0+IHJl
YWw7Cgpsb2NhbAogIGZ1biBzcSB4IDogcmVhbCA9IHggKiB4OwppbgogIHZh
bCB0aW1lMSA6IGNvc3RfZm4gPSBmbiB7dGltZSwgLi4ufSA9PiB0aW1lOwog
IHZhbCB0aW1lMiA6IGNvc3RfZm4gPSBmbiB7dGltZSwgLi4ufSA9PiBzcSB0
aW1lOwogIHZhbCBpbmZzMSA6IGNvc3RfZm4gPSBmbiB7aW5mcywgLi4ufSA9
PiBSZWFsLmZyb21JbnQgaW5mczsKICB2YWwgaW5mczIgOiBjb3N0X2ZuID0g
Zm4ge2luZnMsIC4uLn0gPT4gc3EgKFJlYWwuZnJvbUludCBpbmZzKTsKZW5k
OwoKKCogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqKQooKiBUaGlz
IGFsbG93cyB1cyB0byBoaWVyYXJjaGljYWxseSBhcnJhbmdlIHNvbHZlciBu
b2Rlcy4gICAgICAgICAgICAgICAgICAgICopCigqIC0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0gKikKCmxvY2FsCiAgZnVuIG5hbWUgKFNvbHZlcl9u
b2RlIHtuYW1lLCAuLi59KSA9IG5hbWU7CiAgZnVuIGluaXRpYWwgKFNvbHZl
cl9ub2RlIHtpbml0aWFsLCAuLi59KSA9IGluaXRpYWw7CiAgZnVuIHNlcSBm
IFtdID0gIiIKICAgIHwgc2VxIGYgKGggOjogdCkgPSBmb2xkbCAoZm4gKG4s
IHMpID0+IHMgXiAiLCIgXiBmIG4pIChmIGgpIHQ7CmluCiAgZnVuIGNvbWJp
bmVfbmFtZXMgY3NvbHZlcnMgPSAiWyIgXiBzZXEgKG5hbWUgbyBzbmQpIGNz
b2x2ZXJzIF4gIl0iOwogIGZ1biBjb21iaW5lX2luaXRpYWxzIGNzb2x2ZXJz
ID0gIlsiIF4gc2VxIChpbml0aWFsIG8gc25kKSBjc29sdmVycyBeICJdIjsK
ZW5kOwoKZGF0YXR5cGUgc3Vibm9kZSA9IFN1Ym5vZGUgb2YKICB7bmFtZSAg
IDogc3RyaW5nLAogICB1c2VkICAgOiBtZXRlcl9yZWFkaW5nLAogICBjb3N0
ICAgOiBtZXRlcl9yZWFkaW5nIC0+IHJlYWwsCiAgIHNvbG5zICA6ICh1bml0
IC0+IHRobSBsaXN0IG9wdGlvbiBzdHJlYW0pIG9wdGlvbn07CgpmdW4gaW5p
dF9zdWJub2RlIChjb3N0LCAobmFtZSwgc29sdmVyIDogc29sdmVyKSkgZ29h
bCA9CiAgU3Vibm9kZQogIHtuYW1lID0gbmFtZSwKICAgdXNlZCA9IHplcm9f
cmVhZGluZywKICAgY29zdCA9IGNvc3QsCiAgIHNvbG5zID0gU09NRSAoZm4g
KCkgPT4gc29sdmVyIGdvYWwpfTsKCmZ1biBsZWFzdF9jb3N0IFtdID0gSyBO
T05FCiAgfCBsZWFzdF9jb3N0IF8gPQogIChTT01FIG8gc25kIG8gbWluIChm
biAociwgXykgPT4gZm4gKHMsIF8pID0+IHIgPD0gcykgbwogICBtYXAgKGZu
IChuLCBTdWJub2RlIHt1c2VkLCBjb3N0LCAuLi59KSA9PiAoY29zdCB1c2Vk
LCBuKSkpCgp2YWwgY2hvb3NlX3N1Ym5vZGUgPQogIFcgbGVhc3RfY29zdCBv
CiAgTGlzdC5maWx0ZXIgKGZuIChfLCBTdWJub2RlIHtzb2xucywgLi4ufSkg
PT4gT3B0aW9uLmlzU29tZSBzb2xucykgbwogIGVudW1lcmF0ZSAwOwoKZnVu
IHN1Ym5vZGVfaW5mbyAoU3Vibm9kZSB7bmFtZSwgdXNlZCA9IHt0aW1lLCBp
bmZzfSwgc29sbnMsIC4uLn0pID0KICBuYW1lX3RvX3N0cmluZyBuYW1lIF4g
IigiIF4gdGltZV90b19zdHJpbmcgdGltZSBeICIsIiBeCiAgaW5mc190b19z
dHJpbmcgaW5mcyBeICIpIiBeIChjYXNlIHNvbG5zIG9mIE5PTkUgPT4gIioi
IHwgU09NRSBfID0+ICIiKTsKCmxvY2FsCiAgZnVuIHNlcSBmIFtdID0gIiIK
ICAgIHwgc2VxIGYgKGggOjogdCkgPSBmb2xkbCAoZm4gKG4sIHMpID0+IHMg
XiAiLS0iIF4gZiBuKSAoZiBoKSB0OwppbgogIGZ1biBzdGF0dXNfaW5mbyBz
dWJub2RlcyB1bml0cyA9CiAgICAiWyIgXiBzZXEgc3Vibm9kZV9pbmZvIHN1
Ym5vZGVzIF4gIl0tLXU9IiBeIFUuaW5mbyB1bml0cyBeICItLSI7CmVuZDsK
CmZ1biBzY2hlZHVsZSBjaGVjayByZWFkIHN0YXQgPQogIGxldAogICAgZnVu
IHNjaGVkIG5vZGVzID0KICAgICAgKGNoYXQgMiAoc3RhdCBub2Rlcyk7CiAg
ICAgICBpZiBub3QgKGNoZWNrICgpKSB0aGVuCiAgICAgICAgIChjaGF0IDEg
Ij9cbiI7IFMuQ09OUyAoTk9ORSwgZm4gKCkgPT4gc2NoZWQgbm9kZXMpKQog
ICAgICAgZWxzZQogICAgICAgICBjYXNlIGNob29zZV9zdWJub2RlIG5vZGVz
IG9mIE5PTkUgPT4gKGNoYXQgMSAiIVxuIjsgUy5OSUwpCiAgICAgICAgIHwg
U09NRSBuID0+CiAgICAgICAgICAgbGV0CiAgICAgICAgICAgICB2YWwgU3Vi
bm9kZSB7bmFtZSwgdXNlZCwgc29sbnMsIGNvc3R9ID0gTGlzdC5udGggKG5v
ZGVzLCBuKQogICAgICAgICAgICAgdmFsICgpID0gY2hhdCAxIG5hbWUKICAg
ICAgICAgICAgIHZhbCBzZXEgPSAoT3B0aW9uLnZhbE9mIHNvbG5zKSAoKQog
ICAgICAgICAgICAgdmFsIHIgPSByZWFkICgpCiAgICAgICAgICAgICB2YWwg
KCkgPSBjaGF0IDIgKCItLXQ9IiBeIHRpbWVfdG9fc3RyaW5nICgjdGltZSBy
KSBeICJcbiIpCiAgICAgICAgICAgICB2YWwgdXNlZCA9IGFkZF9yZWFkaW5n
cyB1c2VkIHIKICAgICAgICAgICAgIHZhbCAocmVzLCBzb2xucykgPQogICAg
ICAgICAgICAgICBjYXNlIHNlcSBvZiBTLk5JTCA9PiAoTk9ORSwgTk9ORSkg
fCBTLkNPTlMgKGEsIHIpID0+IChhLCBTT01FIHIpCiAgICAgICAgICAgICB2
YWwgbm9kZSA9CiAgICAgICAgICAgICAgIFN1Ym5vZGUge25hbWUgPSBuYW1l
LCB1c2VkID0gdXNlZCwgY29zdCA9IGNvc3QsIHNvbG5zID0gc29sbnN9CiAg
ICAgICAgICAgICB2YWwgbm9kZXMgPSB1cGRhdGVfbnRoIChLIG5vZGUpIG4g
bm9kZXMKICAgICAgICAgICAgIHZhbCAoKSA9CiAgICAgICAgICAgICAgIGNh
c2UgcmVzIG9mIE5PTkUgPT4gKCkKICAgICAgICAgICAgICAgfCBTT01FIF8g
PT4gKGNoYXQgMiAoc3RhdCBub2Rlcyk7IGNoYXQgMSAiJFxuIikKICAgICAg
ICAgICBpbgogICAgICAgICAgICAgUy5DT05TIChyZXMsIGZuICgpID0+IHNj
aGVkIG5vZGVzKQogICAgICAgICAgIGVuZCkKICBpbgogICAgc2NoZWQKICBl
bmQ7CgpmdW4gY29tYmluZV9zb2x2ZXJzIChuLCBpKSBjc29sdmVycyB7c2xp
Y2UsIHVuaXRzLCB0aG1zLCBoeXBzfSA9CiAgbGV0CiAgICB2YWwgKCkgPSBj
aGF0IDIKICAgICAgKG4gXiAiLS1pbml0aWFsaXppbmctLSN0aG1zPSIgXiBp
bnRfdG9fc3RyaW5nIChsZW5ndGggdGhtcykgXgogICAgICAgIi0tI2h5cHM9
IiBeIGludF90b19zdHJpbmcgKGxlbmd0aCBoeXBzKSBeICIuXG4iKQogICAg
dmFsIG1ldGVyID0gcmVmIChuZXdfbWV0ZXIgZXhwaXJlZCkKICAgIGZ1biBm
IChTb2x2ZXJfbm9kZSB7aW5pdGlhbCwgc29sdmVyX2NvbiwgLi4ufSkgPQog
ICAgICAoaW5pdGlhbCwKICAgICAgIHNvbHZlcl9jb24ge3NsaWNlID0gbWV0
ZXIsIHVuaXRzID0gdW5pdHMsIHRobXMgPSB0aG1zLCBoeXBzID0gaHlwc30p
CiAgICB2YWwgY25vZGVzID0gbWFwIChJICMjIGYpIGNzb2x2ZXJzCiAgICBm
dW4gY2hlY2sgKCkgPQogICAgICBjaGVja19tZXRlciAoIXNsaWNlKSBhbmRh
bHNvIChtZXRlciA6PSBzdWJfbWV0ZXIgKCFzbGljZSkgKCFTTElDRSk7IHRy
dWUpCiAgICBmdW4gcmVhZCAoKSA9IHJlYWRfbWV0ZXIgKCFtZXRlcikKICAg
IGZ1biBzdGF0IHMgPSBzdGF0dXNfaW5mbyBzICghdW5pdHMpCiAgaW4KICAg
IGZuIGdvYWwgPT4gc2NoZWR1bGUgY2hlY2sgcmVhZCBzdGF0IChtYXAgKEMg
aW5pdF9zdWJub2RlIGdvYWwpIGNub2RlcykKICBlbmQ7CgpmdW4gY29tYmlu
ZSBjc29sdmVycyA9CiAgbGV0CiAgICB2YWwgbiA9IGNvbWJpbmVfbmFtZXMg
Y3NvbHZlcnMKICAgIHZhbCBpID0gY29tYmluZV9pbml0aWFscyBjc29sdmVy
cwogIGluCiAgICBTb2x2ZXJfbm9kZQogICAge25hbWUgPSBuLCBpbml0aWFs
ID0gaSwgc29sdmVyX2NvbiA9IGNvbWJpbmVfc29sdmVycyAobiwgaSkgY3Nv
bHZlcnN9CiAgZW5kOwoKKCogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LSAqKQooKiBPdmVycmlkaW5nIHRoZSAnbmF0dXJhbCcgc2V0IG9mIHN1cHBv
cnQgZnJvbSB0aGUgcHJvYmxlbS4gICAgICAgICAgICAgICAgICopCigqIC0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKikKCmZ1biBzb3Nfc29sdmVy
X2NvbiBmaWx0IG5hbWUgc29sdmVyX2NvbiB7c2xpY2UsIHVuaXRzLCB0aG1z
LCBoeXBzfSA9CiAgbGV0CiAgICB2YWwgKCkgPSBjaGF0IDIKICAgICAgKG5h
bWUgXiAiLS1pbml0aWFsaXppbmctLSN0aG1zPSIgXiBpbnRfdG9fc3RyaW5n
IChsZW5ndGggdGhtcykgXgogICAgICAgIi0tI2h5cHM9IiBeIGludF90b19z
dHJpbmcgKGxlbmd0aCBoeXBzKSBeICIuXG4iKQogICAgdmFsIChoeXBzJywg
dGhtcycpID0gTGlzdC5wYXJ0aXRpb24gZmlsdCAodGhtcyBAIGh5cHMpCiAg
aW4KICAgIHNvbHZlcl9jb24ge3NsaWNlID0gc2xpY2UsIHVuaXRzID0gdW5p
dHMsIHRobXMgPSB0aG1zJywgaHlwcyA9IGh5cHMnfQogIGVuZDsKCmZ1biBz
ZXRfb2Zfc3VwcG9ydCBmaWx0IChTb2x2ZXJfbm9kZSB7bmFtZSwgaW5pdGlh
bCwgc29sdmVyX2Nvbn0pID0KICBsZXQgdmFsIG5hbWUnID0gIiEiIF4gbmFt
ZQogIGluCiAgICBTb2x2ZXJfbm9kZQogICAge25hbWUgPSBuYW1lJywgaW5p
dGlhbCA9IGluaXRpYWwsCiAgICAgc29sdmVyX2NvbiA9IHNvc19zb2x2ZXJf
Y29uIGZpbHQgbmFtZScgc29sdmVyX2Nvbn0KICBlbmQ7Cgp2YWwgZXZlcnl0
aGluZyA6IHRobSAtPiBib29sID0gSyB0cnVlOwoKdmFsIG9uZV9uZWdhdGl2
ZSA9IChmbiB4ID0+IG51bGwgeCBvcmVsc2UgTGlzdC5leGlzdHMgbmVnYXRp
dmUgeCkgbyBjbGF1c2U7Cgp2YWwgb25lX3Bvc2l0aXZlID0gKGZuIHggPT4g
bnVsbCB4IG9yZWxzZSBMaXN0LmV4aXN0cyBwb3NpdGl2ZSB4KSBvIGNsYXVz
ZTsKCnZhbCBhbGxfbmVnYXRpdmUgPSBMaXN0LmFsbCBuZWdhdGl2ZSBvIGNs
YXVzZTsKCnZhbCBhbGxfcG9zaXRpdmUgPSBMaXN0LmFsbCBwb3NpdGl2ZSBv
IGNsYXVzZTsKCnZhbCBub3RoaW5nIDogdGhtIC0+IGJvb2wgPSBLIGZhbHNl
OwoKKCogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqKQooKiBJbml0
aWFsaXppbmcgYSBzb2x2ZXIgbm9kZSBtYWtlcyBpdCByZWFkeSBmb3IgYWN0
aW9uLiAgICAgICAgICAgICAgICAgICAgICopCigqIC0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0gKikKCnR5cGUgaW5pdF9kYXRhID0ge2xpbWl0IDog
bGltaXQsIHRobXMgOiB0aG0gbGlzdCwgaHlwcyA6IHRobSBsaXN0fQoKZnVu
IGluaXRpYWxpemUgKFNvbHZlcl9ub2RlIHtzb2x2ZXJfY29uLCAuLi59KSB7
bGltaXQsIHRobXMsIGh5cHN9ID0KICBjYXNlIExpc3QuZmluZCBpc19jb250
cmFkaWN0aW9uICh0aG1zIEAgaHlwcykgb2YgU09NRSB0aAogICAgPT4gY29u
dHJhZGljdGlvbl9zb2x2ZXIgdGgKICB8IE5PTkUgPT4KICAgIGxldAogICAg
ICB2YWwgbWV0ZXIgPSByZWYgKG5ld19tZXRlciBleHBpcmVkKQogICAgICB2
YWwgdW5pdHMgPSByZWYgVS5lbXB0eQogICAgICB2YWwgc29sdmVyID0KICAg
ICAgICBzb2x2ZXJfY29uIHtzbGljZSA9IG1ldGVyLCB1bml0cyA9IHVuaXRz
LCB0aG1zID0gdGhtcywgaHlwcyA9IGh5cHN9CiAgICBpbgogICAgICBmbiBn
ID0+CiAgICAgIGxldCB2YWwgKCkgPSBtZXRlciA6PSBuZXdfbWV0ZXIgbGlt
aXQKICAgICAgaW4gZHJvcF9hZnRlciAoZm4gXyA9PiBub3QgKGNoZWNrX21l
dGVyICghbWV0ZXIpKSkgKHNvbHZlciBnKQogICAgICBlbmQKICAgIGVuZDsK
CmVuZAooKiNsaW5lIDAuMCAic3JjL01lc29uMS5zaWciKikKKCogPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PSAqKQooKiBUSEUgTUVTT04gUFJPT0Yg
UFJPQ0VEVVJFICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICopCigqIENyZWF0ZWQgYnkgSm9lIEh1cmQsIE5vdmVt
YmVyIDIwMDEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgKikKKCogUGFydGx5IHBvcnRlZCBmcm9tIHRoZSBDQU1MLUxpZ2h0IGNv
ZGUgYWNjb21wYW55aW5nIEpvaG4gSGFycmlzb24ncyBib29rICAqKQooKiA9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09ICopCgpzaWduYXR1cmUgTWVz
b24xID0Kc2lnCgp0eXBlIHNvbHZlcl9ub2RlID0gU29sdmVyMS5zb2x2ZXJf
bm9kZQoKKCogVHVuaW5nIHBhcmFtZXRlcnMgKikKdHlwZSBwYXJhbWV0ZXJz
ID0KICB7YW5jZXN0b3JfcHJ1bmluZyA6IGJvb2wsCiAgIGFuY2VzdG9yX2N1
dHRpbmcgOiBib29sLAogICBzdGF0ZV9zaW1wbGlmeSAgIDogYm9vbCwKICAg
Y2FjaGVfY3V0dGluZyAgICA6IGJvb2wsCiAgIGRpdmlkZV9jb25xdWVyICAg
OiBib29sLAogICB1bml0X2xlbW1haXppbmcgIDogYm9vbH0KCnZhbCBkZWZh
dWx0cyA6IHBhcmFtZXRlcnMKCigqIFRoZSBtZXNvbiBzb2x2ZXIgKikKdmFs
IG1lc29uJyA6IHBhcmFtZXRlcnMgLT4gc29sdmVyX25vZGUKdmFsIG1lc29u
ICA6IHNvbHZlcl9ub2RlICAgICAgICAgICAgICAgICAgICAgICAgICAoKiBV
c2VzIGRlZmF1bHRzICopCgooKiBUaGUgZGVsdGEgcHJlcHJvY2Vzc29yIGFz
IGEgc29sdmVyICopCnZhbCBkZWx0YScgOiBwYXJhbWV0ZXJzIC0+IHNvbHZl
cl9ub2RlCnZhbCBkZWx0YSAgOiBzb2x2ZXJfbm9kZSAgICAgICAgICAgICAg
ICAgICAgICAgICAgKCogVXNlcyBkZWZhdWx0cyAqKQoKKCogVGhlIHByb2xv
ZyBzb2x2ZXIgKikKdmFsIHByb2xvZycgOiBwYXJhbWV0ZXJzIC0+IHNvbHZl
cl9ub2RlCnZhbCBwcm9sb2cgIDogc29sdmVyX25vZGUgICAgICAgICAgICAg
ICAgICAgICAgICAgKCogVXNlcyBkZWZhdWx0cyAqKQoKZW5kCigqI2xpbmUg
MC4wICJzcmMvTWVzb24xLnNtbCIqKQooKiA9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09ICopCigqIFRIRSBNRVNPTiBQUk9PRiBQUk9DRURVUkUgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
KikKKCogQ3JlYXRlZCBieSBKb2UgSHVyZCwgTm92ZW1iZXIgMjAwMSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKQooKiBQYXJ0
bHkgcG9ydGVkIGZyb20gdGhlIENBTUwtTGlnaHQgY29kZSBhY2NvbXBhbnlp
bmcgSm9obiBIYXJyaXNvbidzIGJvb2sgICopCigqID09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0gKikKCigqCmFwcCBsb2FkCiBbIlVzZWZ1bCIsICJT
dHJlYW0iLCAiTW9zbWwiLCAiVGVybTEiLCAiVGhtMSIsICJDYW5vbjEiLCAi
TWF0Y2gxIiwKICAiU29sdmVyMSIsICJNZXRlcjEiLCAiVW5pdHMxIl07Ciop
CgooKgoqKQpzdHJ1Y3R1cmUgTWVzb24xIDo+IE1lc29uMSA9CnN0cnVjdAoK
b3BlbiBVc2VmdWwgVGVybTEgTWF0Y2gxIFRobTEgQ2Fub24xIE1ldGVyMSBT
b2x2ZXIxOwoKaW5maXggfC0+IDo6PiBAPiBvbyAjIzsKCnN0cnVjdHVyZSBT
ID0gU3RyZWFtOwpzdHJ1Y3R1cmUgTiA9IExpdGVyYWxOZXQxOwpzdHJ1Y3R1
cmUgVSA9IFVuaXRzMTsKCnZhbCB8PD58ICAgICAgICAgID0gU3Vic3QxLnw8
Pnw7CnZhbCBvcCA6Oj4gICAgICAgID0gU3Vic3QxLjo6PjsKdmFsIGZvcm11
bGFfc3Vic3QgPSBTdWJzdDEuZm9ybXVsYV9zdWJzdDsKCigqIC0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0gKikKKCogQ2hhdHRpbmcuICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAqKQooKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
ICopCgp2YWwgKCkgPSB0cmFjZXMgOj0ge21vZHVsZSA9ICJNZXNvbjEiLCBh
bGlnbm1lbnQgPSBLIDF9IDo6ICF0cmFjZXM7CgpmdW4gY2hhdCBsIG0gPSB0
cmFjZSB7bW9kdWxlID0gIk1lc29uMSIsIG1lc3NhZ2UgPSBtLCBsZXZlbCA9
IGx9OwoKKCogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqKQooKiBU
dW5pbmcgcGFyYW1ldGVycy4gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICopCigqIC0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0gKikKCnR5cGUgcGFyYW1ldGVycyA9CiAge2Fu
Y2VzdG9yX3BydW5pbmcgOiBib29sLAogICBhbmNlc3Rvcl9jdXR0aW5nIDog
Ym9vbCwKICAgc3RhdGVfc2ltcGxpZnkgICA6IGJvb2wsCiAgIGNhY2hlX2N1
dHRpbmcgICAgOiBib29sLAogICBkaXZpZGVfY29ucXVlciAgIDogYm9vbCwK
ICAgdW5pdF9sZW1tYWl6aW5nICA6IGJvb2x9OwoKdmFsIGRlZmF1bHRzID0g
CiAge2FuY2VzdG9yX3BydW5pbmcgPSB0cnVlLAogICBhbmNlc3Rvcl9jdXR0
aW5nID0gdHJ1ZSwKICAgc3RhdGVfc2ltcGxpZnkgICA9IHRydWUsCiAgIGNh
Y2hlX2N1dHRpbmcgICAgPSB0cnVlLAogICBkaXZpZGVfY29ucXVlciAgID0g
dHJ1ZSwKICAgdW5pdF9sZW1tYWl6aW5nICA9IHRydWV9OwoKKCogLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqKQooKiBIZWxwZXIgZnVuY3Rpb25z
LiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICopCigqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0gKikKCmZ1biBoYWx2ZXMgbiA9IGxldCB2YWwgbjEgPSBuIGRpdiAyIGlu
IChuMSwgbiAtIG4xKSBlbmQ7CgpmdW4gc3BsaXR0YWJsZSBbXSA9IGZhbHNl
CiAgfCBzcGxpdHRhYmxlIFtfXSA9IGZhbHNlCiAgfCBzcGxpdHRhYmxlIF8g
PSB0cnVlOwoKKCoKZnVuIHByb3RlY3QgciBmIHggPQogIGxldAogICAgdmFs
IHYgPSAhcgogICAgdmFsIHkgPSBmIHggaGFuZGxlIGUgYXMgRVJSX0VYTiBf
ID0+IChyIDo9IHY7IHJhaXNlIGUpCiAgICB2YWwgKCkgPSByIDo9IHYKICBp
bgogICAgeQogIGVuZDsKCmZ1biB1bnRpbCBwID0KICBsZXQKICAgIG9wZW4g
U3RyZWFtCiAgICBmdW4gdSBOSUwgPSBOSUwKICAgICAgfCB1IChDT05TICh4
LCB4cykpID0gQ09OUyAoeCwgaWYgcCB4IHRoZW4gSyBOSUwgZWxzZSBmbiAo
KSA9PiB1ICh4cyAoKSkpCiAgaW4KICAgIHUKICBlbmQ7CiopCgpsb2NhbAog
IHZhbCBwcmVmaXggPSAiX20iOwppbgogIHZhbCBta19tdmFyICAgICAgPSBt
a19wcmVmaXggcHJlZml4IG8gaW50X3RvX3N0cmluZzsKICBmdW4gbWtfbXZh
cnMgbiBpID0gbWFwIChWYXIgbyBta19tdmFyKSAoaW50ZXJ2YWwgbiBpKTsK
ICB2YWwgZGVzdF9tdmFyICAgID0gc3RyaW5nX3RvX2ludCBvIGRlc3RfcHJl
Zml4IHByZWZpeDsKZW5kOwoKZGF0YXR5cGUgJ2EgY2hvaWNlID0gQ0hPSUNF
IG9mIHVuaXQgLT4gJ2EgKiAnYSBjaG9pY2U7CgpmdW4gZGVzdF9jaG9pY2Ug
KENIT0lDRSBjKSA9IGM7Cgp2YWwgbm9fY2hvaWNlID0gKGZuICgpID0+IHJh
aXNlIEVSUiAibm9fY2hvaWNlIiAiYWx3YXlzIGZhaWxzIik7CgpmdW4gYmlu
YXJ5X2Nob2ljZSBmIGcgPQogIChmbiAoKSA9PgogICBsZXQgdmFsIChhLCBj
KSA9IGYgKCkgaW4gKGEsIENIT0lDRSAoYmluYXJ5X2Nob2ljZSAoZGVzdF9j
aG9pY2UgYykgZykpIGVuZAogICBoYW5kbGUgRVJSX0VYTiBfID0+IGcgKCkp
OwoKZnVuIGZpcnN0X2Nob2ljZSBbXSA9IG5vX2Nob2ljZQogIHwgZmlyc3Rf
Y2hvaWNlIFtmXSA9IGYKICB8IGZpcnN0X2Nob2ljZSAoZiA6OiBmcykgPSBi
aW5hcnlfY2hvaWNlIGYgKGZpcnN0X2Nob2ljZSBmcyk7CgpmdW4gY2hvaWNl
X3N0cmVhbSBmID0KICBsZXQgdmFsIChhLCBDSE9JQ0UgYykgPSBmICgpIGlu
IFMuQ09OUyAoYSwgZm4gKCkgPT4gY2hvaWNlX3N0cmVhbSBjKSBlbmQKICBo
YW5kbGUgRVJSX0VYTiBfID0+IFMuTklMOwoKZnVuIHN3aXZlbCBtIG4gbCA9
CiAgbGV0CiAgICB2YWwgKGwxLCBsJykgPSBzcGxpdCBsIG0KICAgIHZhbCAo
bDIsIGwzKSA9IHNwbGl0IGwnIG4KICBpbgogICAgbDIgQCBsMSBAIGwzCiAg
ZW5kOwoKZnVuIHRobV9wcm92ZXMgdGggRmFsc2UgPSBpc19jb250cmFkaWN0
aW9uIHRoCiAgfCB0aG1fcHJvdmVzIHRoIGdvYWwgPQogIGNhc2UgY2xhdXNl
IHRoIG9mIFtsaXRdID0+IGxpdCA9IGdvYWwgfCBbXSA9PiB0cnVlIHwgXyA9
PiBmYWxzZTsKCmZ1biBmaWx0ZXJfbWV0ZXIgbWV0ZXIgPQogIFMuZmlsdGVy
IChmbiBhID0+IE9wdGlvbi5pc1NvbWUgYSBvcmVsc2Ugbm90IChjaGVja19t
ZXRlciAoIW1ldGVyKSkpOwoKKCogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLSAqKQooKiBDb21waWxpbmcgdGhlIHJ1bGUgc2V0IHVzZWQgYnkgbWVz
b24uICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopCigq
IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKikKCnR5cGUgcnVsZSA9
IHthc21zIDogZm9ybXVsYSBsaXN0LCBjIDogZm9ybXVsYSwgdGhtIDogdGht
LCBhc21uIDogaW50fTsKCmRhdGF0eXBlIHJ1bGVzID0gUnVsZXMgb2YgcnVs
ZSBOLmxpdGVyYWxfbWFwOwoKZnVuIGRlc3RfcnVsZXMgKFJ1bGVzIHIpID0g
cjsKdmFsIGVtcHR5X3J1bGVzID0gUnVsZXMgTi5lbXB0eTsKdmFsIG51bV9h
bGxfcnVsZXMgPSBOLnNpemUgbyBkZXN0X3J1bGVzOwp2YWwgbnVtX2luaXRp
YWxfcnVsZXMgPSAjZiBvIE4uc2l6ZV9wcm9maWxlIG8gZGVzdF9ydWxlczsK
ZnVuIG51bV9ydWxlcyByID0gbnVtX2FsbF9ydWxlcyByIC0gbnVtX2luaXRp
YWxfcnVsZXMgcjsKdmFsIHJ1bGVzX3VuaWZ5ID0gTi51bmlmeSBvIGRlc3Rf
cnVsZXM7Cgp2YWwgcHBfcnVsZXMgPQogIHBwX21hcCBkZXN0X3J1bGVzCiAg
KE4ucHBfbGl0ZXJhbF9tYXAKICAgKHBwX21hcCAoZm4ge2FzbXMsIGMsIC4u
Ln0gPT4gKGFzbXMsIGMpKQogICAgKHBwX2Jpbm9wICIgPT0+IiAocHBfbGlz
dCBwcF9mb3JtdWxhKSBwcF9mb3JtdWxhKSkpOwoKZnVuIGFkZF9jb250cmFw
b3NpdGl2ZXMgY2hvc2VuIHNvcyB0aCAoUnVsZXMgcnVscykgPQogIGxldAog
ICAgdmFsIHRoID0gRlJFU0hfVkFSUyB0aAogICAgdmFsIGxpdHMgPSBjbGF1
c2UgdGgKICAgIHZhbCBsaXRzJyA9IG1hcCBuZWdhdGUgbGl0cwogICAgdmFs
IGJhc2UgPSBtYXAgKGZuIGwgPT4gKHN1YnRyYWN0IGxpdHMnIFtuZWdhdGUg
bF0sIGwpKSAoY2hvc2VuIGxpdHMpCiAgICB2YWwgY29udHJzID0gaWYgc29z
IHRoZW4gKGxpdHMnLCBGYWxzZSkgOjogYmFzZSBlbHNlIGJhc2UKICAgIGZ1
biBmIChhLCBjKSA9IGMgfC0+IHthc21zID0gYSwgYyA9IGMsIHRobSA9IHRo
LCBhc21uID0gbGVuZ3RoIGF9CiAgaW4KICAgIFJ1bGVzIChmb2xkbCAoZm4g
KGgsIHQpID0+IE4uaW5zZXJ0IChmIGgpIHQpIHJ1bHMgY29udHJzKQogIGVu
ZDsKCmZ1biB0aG1zX3RvX3J1bGVzIGNob3NlbiB0aG1zIGh5cHMgPQogIGxl
dCB2YWwgZiA9IHVuY3VycnkgbyBhZGRfY29udHJhcG9zaXRpdmVzIGNob3Nl
bgogIGluIGZvbGRsIChmIHRydWUpIChmb2xkbCAoZiBmYWxzZSkgZW1wdHlf
cnVsZXMgdGhtcykgaHlwcwogIGVuZDsKCnZhbCBtZXNvbl9ydWxlcyA9IHRo
bXNfdG9fcnVsZXMgSTsKCnZhbCBwcm9sb2dfcnVsZXMgPSB0aG1zX3RvX3J1
bGVzICh3cmFwIG8gaGQpOwoKKCogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLSAqKQooKiBDcmVhdGluZyB0aGUgZGVsdGEgZ29hbHMuICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopCigq
IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKikKCnZhbCB0aG1zX3Rv
X2RlbHRhX2dvYWxzID0KICBMaXN0LmNvbmNhdCBvCiAgbWFwIChmbiAoZixu
KSA9PiBbQXRvbSAoRm4gKGYsbmV3X3ZhcnMgbikpLCBOb3QgKEF0b20gKEZu
IChmLG5ld192YXJzIG4pKSldKSBvCiAgZm9sZGwgKHVuY3VycnkgdW5pb24p
IFtdIG8KICBtYXAgcmVsYXRpb25zIG8KICBMaXN0LmNvbmNhdCBvCiAgbWFw
IGNsYXVzZTsKCigqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKikK
KCogVGhlIHN0YXRlIHBhc3NlZCBhcm91bmQgYnkgbWVzb24uICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKQooKiAtLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tICopCgp0eXBlIHN0YXRlID0ge2VudiA6
IHN1YnN0LCBkZXB0aCA6IGludCwgcHJvb2YgOiB0aG0gbGlzdCwgb2Zmc2V0
IDogaW50fTsKCmZ1biB1cGRhdGVfZW52IGYgKHtlbnYsIGRlcHRoLCBwcm9v
Ziwgb2Zmc2V0fSA6IHN0YXRlKSA9CiAge2VudiA9IGYgZW52LCBkZXB0aCA9
IGRlcHRoLCBwcm9vZiA9IHByb29mLCBvZmZzZXQgPSBvZmZzZXR9OwoKZnVu
IHVwZGF0ZV9kZXB0aCBmICh7ZW52LCBkZXB0aCwgcHJvb2YsIG9mZnNldH0g
OiBzdGF0ZSkgPQogIHtlbnYgPSBlbnYsIGRlcHRoID0gZiBkZXB0aCwgcHJv
b2YgPSBwcm9vZiwgb2Zmc2V0ID0gb2Zmc2V0fTsKCmZ1biB1cGRhdGVfcHJv
b2YgZiAoe2VudiwgZGVwdGgsIHByb29mLCBvZmZzZXR9IDogc3RhdGUpID0K
ICB7ZW52ID0gZW52LCBkZXB0aCA9IGRlcHRoLCBwcm9vZiA9IGYgcHJvb2Ys
IG9mZnNldCA9IG9mZnNldH07CgpmdW4gdXBkYXRlX29mZnNldCBmICh7ZW52
LCBkZXB0aCwgcHJvb2YsIG9mZnNldH0gOiBzdGF0ZSkgPQogIHtlbnYgPSBl
bnYsIGRlcHRoID0gZGVwdGgsIHByb29mID0gcHJvb2YsIG9mZnNldCA9IGYg
b2Zmc2V0fTsKCigqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKikK
KCogQW5jZXN0b3IgcHJ1bmluZy4gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKQooKiAtLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tICopCgpmdW4gYW5jZXN0b3JfcHJ1bmUg
ZmFsc2UgXyBfID0gSyBmYWxzZQogIHwgYW5jZXN0b3JfcHJ1bmUgdHJ1ZSBl
bnYgZyA9CiAgbGV0CiAgICB2YWwgZycgPSBmb3JtdWxhX3N1YnN0IGVudiBn
CiAgICBmdW4gY2hlY2sgYScgPSBhJyA9IGcnCiAgaW4KICAgIExpc3QuZXhp
c3RzIChjaGVjayBvIGZvcm11bGFfc3Vic3QgZW52KQogIGVuZDsKCigqIC0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKikKKCogQW5jZXN0b3IgY3V0
dGluZy4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAqKQooKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tICopCgpmdW4gYW5jZXN0b3JfY3V0IGZhbHNlIF8gXyA9IEsgZmFs
c2UKICB8IGFuY2VzdG9yX2N1dCB0cnVlIGVudiBnID0KICBsZXQKICAgIHZh
bCBnJyA9IG5lZ2F0ZSAoZm9ybXVsYV9zdWJzdCBlbnYgZykKICAgIGZ1biBj
aGVjayBhJyA9IGEnID0gZycKICBpbgogICAgTGlzdC5leGlzdHMgKGNoZWNr
IG8gZm9ybXVsYV9zdWJzdCBlbnYpCiAgZW5kOwoKKCogLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLSAqKQooKiBDYWNoZSBjdXR0aW5nLiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICopCigqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKikK
CmZ1biBjYWNoZV9jb250IGMgKHtvZmZzZXQsIC4uLn0gOiBzdGF0ZSkgPQog
IGxldAogICAgZnVuIGYgdiA9IGNhc2UgdG90YWwgZGVzdF9tdmFyIHYgb2Yg
Tk9ORSA9PiB0cnVlIHwgU09NRSBuID0+IG4gPCBvZmZzZXQKICAgIHZhbCBs
aXN0aWZ5ID0gU3Vic3QxLmZvbGRyIChmbiBtIGFzIHYgfC0+IF8gPT4gaWYg
ZiB2IHRoZW4gY29ucyBtIGVsc2UgSSkgW10KICAgIHZhbCBtZW0gPSByZWYg
W10KICAgIGZ1biBwdXJpZnkgKHMgYXMge2VudiwgZGVwdGggPSBuLCAuLi59
IDogc3RhdGUpID0KICAgICAgbGV0CiAgICAgICAgdmFsIGwgPSBsaXN0aWZ5
IGVudgogICAgICAgIGZ1biBwIChuJywgbCcpID0gbiA8PSBuJyBhbmRhbHNv
IGwgPSBsJwogICAgICBpbgogICAgICAgIGlmIExpc3QuZXhpc3RzIHAgKCFt
ZW0pIHRoZW4gcmFpc2UgRVJSICJjYWNoZV9jdXQiICJyZXBldGl0aW9uIgog
ICAgICAgIGVsc2UgKG1lbSA6PSAobiwgbCkgOjogKCFtZW0pOyB1cGRhdGVf
ZW52IChLIChTdWJzdDEuZnJvbV9tYXBsZXRzIGwpKSBzKQogICAgICBlbmQK
ICBpbgogICAgYyBvIHB1cmlmeQogIGVuZDsKCmZ1biBjYWNoZV9jdXQgZmFs
c2UgPSBJCiAgfCBjYWNoZV9jdXQgdHJ1ZSA9CiAgZm4gZiA9PiBmbiBhID0+
IGZuIGcgPT4gZm4gYyA9PiBmbiBzID0+IGYgYSBnIChjYWNoZV9jb250IGMg
cykgczsKCigqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKikKKCog
VW5pdCBjbGF1c2Ugc2hvcnRjdXQuICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKQooKiAtLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tICopCgpmdW4gZ3JhYl91bml0IHVuaXRzIChz
IGFzIHtwcm9vZiA9IHRoIDo6IF8sIC4uLn0gOiBzdGF0ZSkgPQogICh1bml0
cyA6PSBVLmFkZCB0aCAoIXVuaXRzKTsgcykKICB8IGdyYWJfdW5pdCBfIHtw
cm9vZiA9IFtdLCAuLi59ID0gcmFpc2UgQlVHICJncmFiX3VuaXQiICJubyB0
aG1zIjsKCmZ1biB1c2VfdW5pdCB1bml0cyBnIGMgKHMgYXMge2VudiwgLi4u
fSkgPQogIGxldCB2YWwgcHJvdmUgPSBwYXJ0aWFsIChFUlIgInVzZV91bml0
IiAiTk9ORSIpIChVLnByb3ZlICghdW5pdHMpKQogIGluIGMgKHVwZGF0ZV9w
cm9vZiAoY29ucyAodW53cmFwIChwcm92ZSBbZm9ybXVsYV9zdWJzdCBlbnYg
Z10pKSkgcykKICBlbmQ7CgpmdW4gdW5pdF9jdXQgZmFsc2UgXyA9IEkKICB8
IHVuaXRfY3V0IHRydWUgdW5pdHMgPQogIGZuIGYgPT4gZm4gYSA9PiBmbiBn
ID0+IGZuIGMgPT4gZm4gcyA9PgogIHVzZV91bml0IHVuaXRzIGcgYyBzIGhh
bmRsZSBFUlJfRVhOIF8gPT4gZiBhIGcgKGMgbyBncmFiX3VuaXQgdW5pdHMp
IHM7CgooKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICopCigqIFRo
ZSBjb3JlIG9mIG1lc29uOiBhbmNlc3RvciB1bmlmaWNhdGlvbiBvciBQcm9s
b2ctc3R5bGUgZXh0ZW5zaW9uLiAgICAgICAgKikKKCogLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLSAqKQoKZnVuIGZyZXNoZW5fcnVsZSAoe3RobSwg
YXNtcywgYywgLi4ufSA6IHJ1bGUpIGkgPQogIGxldAogICAgdmFsIGZ2cyA9
IEZWTCAoYyA6OiBhc21zKQogICAgdmFsIGZ2biA9IGxlbmd0aCBmdnMKICAg
IHZhbCBtdnMgPSBta19tdmFycyBpIGZ2bgogICAgdmFsIHN1YiA9IFN1YnN0
MS5mcm9tX21hcGxldHMgKHppcHdpdGggKGN1cnJ5IG9wfC0+KSBmdnMgbXZz
KQogIGluCiAgICAoKElOU1Qgc3ViIHRobSwgbWFwIChmb3JtdWxhX3N1YnN0
IHN1YikgYXNtcywgZm9ybXVsYV9zdWJzdCBzdWIgYyksIGkgKyBmdm4pCiAg
ZW5kOwoKZnVuIHJld2FyZCByID0gdXBkYXRlX2RlcHRoIChmbiBuID0+IG4g
KyByKTsKCmZ1biBzcGVuZCBtIGYgYyAocyBhcyB7ZGVwdGggPSBuLCAuLi59
IDogc3RhdGUpID0KICBsZXQKICAgIHZhbCBsb3cgPSBuIC0gbQogICAgdmFs
ICgpID0gYXNzZXJ0ICgwIDw9IGxvdykgKEVSUiAibWVzb24iICJpbXBvc3Np
YmxlIGRpdmlkZSBhbmQgY29ucXVlciIpCiAgICBmdW4gY2hlY2sgKHMnIGFz
IHtkZXB0aCA9IG4nLCAuLi59IDogc3RhdGUpID0KICAgICAgaWYgbicgPD0g
bG93IHRoZW4gcycgZWxzZSByYWlzZSBFUlIgIm1lc29uIiAiZGl2aWRlIGFu
ZCBjb25xdWVyIgogIGluCiAgICBmIChjIG8gY2hlY2spIHMKICBlbmQ7Cgps
b2NhbAogIGZ1biB1bmlmeSBlbnYgKHRoLCBhc21zLCBjKSBnID0gKHRoLCBh
c21zLCB1bmlmeV9saXRlcmFscyBlbnYgYyBnKQoKICBmdW4gbWF0Y2ggZW52
ICh0aCwgYXNtcywgYykgZyA9CiAgICBsZXQgdmFsIHN1YiA9IG1hdGNoX2xp
dGVyYWxzIGMgZwogICAgaW4gKElOU1Qgc3ViIHRoLCBtYXAgKGZvcm11bGFf
c3Vic3Qgc3ViKSBhc21zLCBlbnYpCiAgICBlbmQ7CmluCiAgZnVuIG5leHRf
c3RhdGUgZmFsc2UgZW52IHIgZyA9IHVuaWZ5IGVudiByIGcKICAgIHwgbmV4
dF9zdGF0ZSB0cnVlIGVudiByIGcgPSBtYXRjaCBlbnYgciBnIGhhbmRsZSBF
UlJfRVhOIF8gPT4gdW5pZnkgZW52IHIgZzsKZW5kOwoKbG9jYWwKICBmdW4g
bXAgXyB0aCBbXSBwID0gRkFDVE9SIHRoIDo6IHAKICAgIHwgbXAgZW52IHRo
IChnIDo6IGdzKSAodGgxIDo6IHApID0KICAgIG1wIGVudiAoUkVTT0xWRSAo
Zm9ybXVsYV9zdWJzdCBlbnYgZykgKElOU1QgZW52IHRoMSkgdGgpIGdzIHAK
ICAgIHwgbXAgXyBfIChfIDo6IF8pIFtdID0gcmFpc2UgQlVHICJtb2R1c19w
b25lbnMiICJmcmVzaCBvdXQgb2YgdGhtcyIKaW4KICBmdW4gbW9kdXNfcG9u
ZW5zIHRoIGdzIChzdGF0ZSBhcyB7ZW52LCAuLi59KSA9CiAgICB1cGRhdGVf
cHJvb2YgKG1wIGVudiAoSU5TVCBlbnYgdGgpIChyZXYgZ3MpKSBzdGF0ZTsK
ZW5kOwoKZnVuIHN3aXZlbHAgbSBuID0gdXBkYXRlX3Byb29mIChzd2l2ZWwg
bSBuKTsKCmZ1biBtZXNvbl9leHBhbmQge3Bhcm0gOiBwYXJhbWV0ZXJzLCBy
dWxlcywgY3V0LCBtZXRlciwgc2F0dXJhdGVkfSA9CiAgbGV0CiAgICBmdW4g
ZXhwYW5kIGFuY2VzdG9ycyBnIGNvbnQgKHN0YXRlIGFzIHtlbnYsIC4uLn0p
ID0KICAgICAgaWYgbm90IChjaGVja19tZXRlciAoIW1ldGVyKSkgdGhlbgog
ICAgICAgIChOT05FLCBDSE9JQ0UgKGZuICgpID0+IGV4cGFuZCBhbmNlc3Rv
cnMgZyBjb250IHN0YXRlKSkKICAgICAgZWxzZSBpZiBhbmNlc3Rvcl9wcnVu
ZSAoI2FuY2VzdG9yX3BydW5pbmcgcGFybSkgZW52IGcgYW5jZXN0b3JzIHRo
ZW4KICAgICAgICByYWlzZSBFUlIgIm1lc29uIiAiYW5jZXN0b3IgcHJ1bmlu
ZyIKICAgICAgZWxzZSBpZiBhbmNlc3Rvcl9jdXQgKCNhbmNlc3Rvcl9jdXR0
aW5nIHBhcm0pIGVudiBnIGFuY2VzdG9ycyB0aGVuCiAgICAgICAgKHJlY29y
ZF9pbmZzICghbWV0ZXIpIDE7IGNvbnQgKHVwZGF0ZV9wcm9vZiAoY29ucyAo
QVNTVU1FIGcpKSBzdGF0ZSkpCiAgICAgIGVsc2UKICAgICAgICBsZXQKICAg
ICAgICAoKnZhbCAoKSA9IHByaW50ICgibWVzb246ICIgXiBmb3JtdWxhX3Rv
X3N0cmluZyBnIF4gIi5cbiIpKikKICAgICAgICAgIGZ1biByZWR1Y3Rpb24g
YSAoKSA9CiAgICAgICAgICAgIGxldAogICAgICAgICAgICAgIHZhbCBzdGF0
ZSA9IHVwZGF0ZV9lbnYgKEsgKHVuaWZ5X2xpdGVyYWxzIGVudiBnIChuZWdh
dGUgYSkpKSBzdGF0ZQogICAgICAgICAgICAgIHZhbCBzdGF0ZSA9IHVwZGF0
ZV9wcm9vZiAoY29ucyAoQVNTVU1FIGcpKSBzdGF0ZQogICAgICAgICAgICBp
bgogICAgICAgICAgICAgIChyZWNvcmRfaW5mcyAoIW1ldGVyKSAxOyBjb250
IHN0YXRlKQogICAgICAgICAgICBlbmQKICAgICAgICAgIHZhbCBleHBhbnNp
b24gPSBleHBhbmRfcnVsZSBhbmNlc3RvcnMgZyBjb250IHN0YXRlCiAgICAg
ICAgaW4KICAgICAgICAgIGZpcnN0X2Nob2ljZQogICAgICAgICAgKG1hcCBy
ZWR1Y3Rpb24gYW5jZXN0b3JzIEAKICAgICAgICAgICBtYXAgZXhwYW5zaW9u
IChydWxlc191bmlmeSBydWxlcyAoZm9ybXVsYV9zdWJzdCBlbnYgZykpKSAo
KQogICAgICAgIGVuZAogICAgYW5kIGV4cGFuZF9ydWxlIGFuY2VzdG9ycyBn
IGNvbnQge2VudiwgZGVwdGgsIHByb29mLCBvZmZzZXR9IHIgKCkgPQogICAg
ICBsZXQKICAgICAgICB2YWwgZGVwdGggPSBkZXB0aCAtICNhc21uIHIKICAg
ICAgICB2YWwgKCkgPQogICAgICAgICAgaWYgMCA8PSBkZXB0aCB0aGVuICgp
CiAgICAgICAgICBlbHNlIChzYXR1cmF0ZWQgOj0gZmFsc2U7IHJhaXNlIEVS
UiAibWVzb24iICJ0b28gZGVlcCIpCiAgICAgICAgdmFsIChyLCBvZmZzZXQp
ID0gZnJlc2hlbl9ydWxlIHIgb2Zmc2V0CiAgICAgICAgdmFsICh0aCwgYXNt
cywgZW52KSA9IG5leHRfc3RhdGUgKCNzdGF0ZV9zaW1wbGlmeSBwYXJtKSBl
bnYgciBnCiAgICAgICAgdmFsICgpID0gcmVjb3JkX2luZnMgKCFtZXRlcikg
MQogICAgICBpbgogICAgICAgIGV4cGFuZHMgKGcgOjogYW5jZXN0b3JzKSBh
c21zIChjb250IG8gbW9kdXNfcG9uZW5zIHRoIGFzbXMpCiAgICAgICAge2Vu
diA9IGVudiwgZGVwdGggPSBkZXB0aCwgcHJvb2YgPSBwcm9vZiwgb2Zmc2V0
ID0gb2Zmc2V0fQogICAgICBlbmQKICAgIGFuZCBleHBhbmRzIGFuY2VzdG9y
cyBnIGMgKHMgYXMge2RlcHRoID0gbiwgLi4ufSkgPQogICAgICBpZiAjZGl2
aWRlX2NvbnF1ZXIgcGFybSBhbmRhbHNvIHNwbGl0dGFibGUgZyB0aGVuCiAg
ICAgICAgbGV0CiAgICAgICAgICB2YWwgKGwxLCBsMikgPSBoYWx2ZXMgKGxl
bmd0aCBnKQogICAgICAgICAgdmFsIChnMSwgZzIpID0gc3BsaXQgZyBsMQog
ICAgICAgICAgdmFsIChmMSwgZjIpID0gRGYgKGV4cGFuZHMgYW5jZXN0b3Jz
KSAoZzEsIGcyKQogICAgICAgICAgdmFsIChuMSwgbjIpID0gaGFsdmVzIG4K
ICAgICAgICAgIHZhbCBzID0gdXBkYXRlX2RlcHRoIChLIG4xKSBzCiAgICAg
ICAgaW4KICAgICAgICAgIGJpbmFyeV9jaG9pY2UKICAgICAgICAgIChmbiAo
KSA9PiBmMSAoZjIgYyBvIHJld2FyZCBuMikgcykKICAgICAgICAgIChmbiAo
KSA9PiBmMiAoc3BlbmQgKG4xICsgMSkgZjEgKGMgbyBzd2l2ZWxwIGwxIGwy
KSBvIHJld2FyZCBuMikgcykgKCkKICAgICAgICBlbmQKICAgICAgZWxzZSBm
b2xkbCAodW5jdXJyeSAoY3V0IGV4cGFuZCBhbmNlc3RvcnMpKSBjIChyZXYg
ZykgcwogIGluCiAgICBjdXQgZXhwYW5kIFtdCiAgZW5kOwoKKCogLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqKQooKiBGdWxsIG1lc29uIHByb2Nl
ZHVyZS4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICopCigqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0gKikKCmZ1biBtZXNvbl9maW5hbGx5IGcgKHtlbnYsIHByb29mLCAuLi59
IDogc3RhdGUpID0KICBsZXQKICAgIHZhbCAoKSA9IGFzc2VydCAobGVuZ3Ro
IHByb29mID0gbGVuZ3RoIGcpIChCVUcgIm1lc29uIiAiYmFkIGZpbmFsIHN0
YXRlIikKICAgIHZhbCBnJyA9IG1hcCAoZm9ybXVsYV9zdWJzdCBlbnYpIGcK
ICAgIHZhbCBwcm9vZicgPSBtYXAgKElOU1QgZW52KSAocmV2IHByb29mKQog
ICgqdmFsICgpID0gKHByaW50ICJtZXNvbl9maW5hbGx5OiAiOyBwcmludFZh
bCAoZycsIHByb29mJyk7IHByaW50ICIuXG4iKSopCiAgICB2YWwgKCkgPQog
ICAgICBhc3NlcnQgKExpc3QuYWxsICh1bmN1cnJ5IHRobV9wcm92ZXMpICh6
aXAgcHJvb2YnIGcnKSkKICAgICAgKEJVRyAibWVzb24iICJkaWQgbm90IHBy
b3ZlIGdvYWwgbGlzdCIpCiAgaW4KICAgIChTT01FIChGUkVTSF9WQVJTTCBw
cm9vZicpLCBDSE9JQ0Ugbm9fY2hvaWNlKQogIGVuZDsKCmZ1biByYXdfbWVz
b24gc3lzdGVtIGdvYWxzIGRlcHRoID0KICBjaG9pY2Vfc3RyZWFtCiAgKGZu
ICgpID0+CiAgIGZvbGRsICh1bmN1cnJ5IChtZXNvbl9leHBhbmQgc3lzdGVt
KSkgKG1lc29uX2ZpbmFsbHkgZ29hbHMpIChyZXYgZ29hbHMpCiAgIHtlbnYg
PSB8PD58LCBkZXB0aCA9IGRlcHRoLCBwcm9vZiA9IFtdLCBvZmZzZXQgPSAw
fSk7CgooKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICopCigqIFJh
dyBzb2x2ZXJzLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgKikKKCogLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLSAqKQoKdHlwZSAnYSBzeXN0ZW0gPQogIHtwYXJt
IDogcGFyYW1ldGVycywgcnVsZXMgOiBydWxlcywgbWV0ZXIgOiBtZXRlciBy
ZWYsIHNhdHVyYXRlZCA6IGJvb2wgcmVmLAogICBjdXQgOgogICAgIChmb3Jt
dWxhIGxpc3QgLT4gZm9ybXVsYSAtPiAoc3RhdGUgLT4gJ2EpIC0+IHN0YXRl
IC0+ICdhKSAtPgogICAgICBmb3JtdWxhIGxpc3QgLT4gZm9ybXVsYSAtPiAo
c3RhdGUgLT4gJ2EpIC0+IHN0YXRlIC0+ICdhfTsKCmZ1biBta19zeXN0ZW0g
cGFybSB1bml0cyBtZXRlciBydWxlcyA6ICdhIHN5c3RlbSA9CiAgbGV0CiAg
ICB2YWwge2NhY2hlX2N1dHRpbmcgPSBjYWNoaW5nLCB1bml0X2xlbW1haXpp
bmcgPSBsZW1tYWl6aW5nLCAuLi59ID0gcGFybQogIGluCiAgICB7cGFybSAg
ICAgID0gcGFybSwKICAgICBydWxlcyAgICAgPSBydWxlcywKICAgICBtZXRl
ciAgICAgPSBtZXRlciwKICAgICBzYXR1cmF0ZWQgPSByZWYgZmFsc2UsCiAg
ICAgY3V0ICAgICAgID0gdW5pdF9jdXQgbGVtbWFpemluZyB1bml0cyBvIGNh
Y2hlX2N1dCBjYWNoaW5nfQogIGVuZDsKCmZ1biBtZXNvbicgcGFybSA9CiAg
bWtfc29sdmVyX25vZGUKICB7bmFtZSA9ICJtZXNvbiIsCiAgIHNvbHZlcl9j
b24gPQogICBmbiB7c2xpY2UsIHVuaXRzLCB0aG1zLCBoeXBzfSA9PgogICBs
ZXQKICAgICB2YWwgcnVscyA9IG1lc29uX3J1bGVzIHRobXMgaHlwcwogICAg
IHZhbCAoKSA9IGNoYXQgMgogICAgICAgKCJtZXNvbi0taW5pdGlhbGl6aW5n
LS0jdGhtcz0iIF4gaW50X3RvX3N0cmluZyAobGVuZ3RoIHRobXMpIF4KICAg
ICAgICAiLS0jaHlwcz0iIF4gaW50X3RvX3N0cmluZyAobGVuZ3RoIGh5cHMp
IF4KICAgICAgICAiLS0jcnVsZXM9IiBeIGludF90b19zdHJpbmcgKG51bV9y
dWxlcyBydWxzKSBeCiAgICAgICAgIi0tI2luaXRpYWxfcnVsZXM9IiBeIGlu
dF90b19zdHJpbmcgKG51bV9pbml0aWFsX3J1bGVzIHJ1bHMpIF4gIi5cbiIp
CiAgICAgdmFsIHN5c3RlbSBhcyB7c2F0dXJhdGVkID0gYiwgLi4ufSA9IG1r
X3N5c3RlbSBwYXJtIHVuaXRzIHNsaWNlIHJ1bHMKICAgICBmdW4gZCBuID0g
aWYgIWIgdGhlbiBTLk5JTCBlbHNlIChiIDo9IHRydWU7IFMuQ09OUyAobiwg
Zm4gKCkgPT4gZCAobiArIDEpKSkKICAgICBmdW4gZiBxIGQgPSAoY2hhdCAx
ICgiLSIgXiBpbnRfdG9fc3RyaW5nIGQpOyByYXdfbWVzb24gc3lzdGVtIHEg
ZCkKICAgICBmdW4gdW5pdF9jaGVjayBnb2FscyBOT05FID0gVS5wcm92ZSAo
IXVuaXRzKSBnb2FscyB8IHVuaXRfY2hlY2sgXyBzID0gcwogICBpbgogICAg
IGZuIGdvYWxzID0+CiAgICAgZmlsdGVyX21ldGVyIHNsaWNlCiAgICAgKFMu
bWFwICh1bml0X2NoZWNrIGdvYWxzKSAoUy5mbGF0dGVuIChTLm1hcCAoZiBn
b2FscykgKGQgMCkpKSkKICAgZW5kfTsKCnZhbCBtZXNvbiA9IG1lc29uJyBk
ZWZhdWx0czsKCmZ1biBkZWx0YScgcGFybSA9CiAgbWtfc29sdmVyX25vZGUK
ICB7bmFtZSA9ICJkZWx0YSIsCiAgIHNvbHZlcl9jb24gPQogICBmbiB7c2xp
Y2UsIHVuaXRzLCB0aG1zLCBoeXBzfSA9PgogICBsZXQKICAgICB2YWwgcnVs
cyA9IG1lc29uX3J1bGVzIHRobXMgaHlwcwogICAgIHZhbCBkZ29hbHMgPSB0
aG1zX3RvX2RlbHRhX2dvYWxzIGh5cHMKICAgICB2YWwgKCkgPSBjaGF0IDIK
ICAgICAgICgiZGVsdGEtLWluaXRpYWxpemluZy0tI3RobXM9IiBeIGludF90
b19zdHJpbmcgKGxlbmd0aCB0aG1zKSBeCiAgICAgICAgIi0tI2h5cHM9IiBe
IGludF90b19zdHJpbmcgKGxlbmd0aCBoeXBzKSBeCiAgICAgICAgIi0tI3J1
bGVzPSIgXiBpbnRfdG9fc3RyaW5nIChudW1fcnVsZXMgcnVscykgXgogICAg
ICAgICItLSNkZWx0YV9nb2Fscz0iIF4gaW50X3RvX3N0cmluZyAobGVuZ3Ro
IGRnb2FscykgXiAiLlxuIikKICAgICB2YWwgc3lzdGVtIGFzIHtzYXR1cmF0
ZWQgPSBiLCAuLi59ID0gbWtfc3lzdGVtIHBhcm0gdW5pdHMgc2xpY2UgcnVs
cwogICAgIHZhbCBkZWx0YV9nb2FscyA9IFMuZnJvbV9saXN0IGRnb2Fscwog
ICAgIGZ1biBkIG4gPSBpZiAhYiB0aGVuIFMuTklMIGVsc2UgKGIgOj0gdHJ1
ZTsgUy5DT05TIChuLCBmbiAoKSA9PiBkIChuICsgMSkpKQogICAgIGZ1biBm
IGQgZyA9IChjaGF0IDEgIisiOyBTLm1hcCAoSyBOT05FKSAocmF3X21lc29u
IHN5c3RlbSBbZ10gZCkpCiAgICAgZnVuIGcgZCA9IChjaGF0IDEgKGludF90
b19zdHJpbmcgZCk7IFMuZmxhdHRlbiAoUy5tYXAgKGYgZCkgZGVsdGFfZ29h
bHMpKQogICAgIGZ1biBoICgpID0gUy5mbGF0dGVuIChTLm1hcCBnIChkIDAp
KQogICAgIGZ1biB1bml0X2NoZWNrIGdvYWxzIE5PTkUgPSBVLnByb3ZlICgh
dW5pdHMpIGdvYWxzIHwgdW5pdF9jaGVjayBfIHMgPSBzCiAgIGluCiAgICAg
Y2FzZSBkZWx0YV9nb2FscyBvZiBTLk5JTCA9PiBLIFMuTklMCiAgICAgfCBf
ID0+IGZuIGdvYWxzID0+IGZpbHRlcl9tZXRlciBzbGljZSAoUy5tYXAgKHVu
aXRfY2hlY2sgZ29hbHMpIChoICgpKSkKICAgZW5kfTsKCnZhbCBkZWx0YSA9
IGRlbHRhJyBkZWZhdWx0czsKCnZhbCBwcm9sb2dfZGVwdGggPSBjYXNlIElu
dC5tYXhJbnQgb2YgTk9ORSA9PiAxMDAwMDAwIHwgU09NRSBpID0+IGk7Cgpm
dW4gcHJvbG9nJyBwYXJtID0KICBta19zb2x2ZXJfbm9kZQogIHtuYW1lID0g
InByb2xvZyIsCiAgIHNvbHZlcl9jb24gPQogICBmbiB7c2xpY2UsIHVuaXRz
LCB0aG1zLCBoeXBzfSA9PgogICBsZXQKICAgICB2YWwgc3lzdGVtID0gbWtf
c3lzdGVtIHBhcm0gdW5pdHMgc2xpY2UgKHByb2xvZ19ydWxlcyB0aG1zIGh5
cHMpCiAgICAgZnVuIGNvbW1lbnQgUy5OSUwgPSAiIVxuIgogICAgICAgfCBj
b21tZW50IChTLkNPTlMgKE5PTkUsIF8pKSA9ICItIgogICAgICAgfCBjb21t
ZW50IChTLkNPTlMgKFNPTUUgXywgXykpID0gIiRcbiIKICAgICBmdW4gZiB0
ICgpID0gbGV0IHZhbCB4ID0gdCAoKSBpbiBjaGF0IDEgKGNvbW1lbnQgeCk7
IHggZW5kCiAgIGluCiAgICAgZm4gZ29hbHMgPT4gUy5tYXBfdGhrIGYgKGZu
ICgpID0+IHJhd19tZXNvbiBzeXN0ZW0gZ29hbHMgcHJvbG9nX2RlcHRoKSAo
KQogICBlbmR9OwoKdmFsIHByb2xvZyA9IHByb2xvZycgZGVmYXVsdHM7Cgoo
KiBxdWljayB0ZXN0aW5nCmxvYWQgIlByb2JsZW0xIjsKb3BlbiBQcm9ibGVt
MTsKdmFsIHRpbWUgPSBNb3NtbC50aW1lOwpxdW90YXRpb24gOj0gdHJ1ZTsK
aW5zdGFsbFBQIHBwX3Rlcm07Cmluc3RhbGxQUCBwcF9mb3JtdWxhOwppbnN0
YWxsUFAgU3Vic3QxLnBwX3N1YnN0OwppbnN0YWxsUFAgcHBfcnVsZXM7Cmlu
c3RhbGxQUCBwcF90aG07Cgp2YWwgbGltaXQgOiBsaW1pdCByZWYgPSByZWYg
e2luZnMgPSBOT05FLCB0aW1lID0gU09NRSAzMC4wfTsKZnVuIHByb2xvZ19z
b2x2ZSBkIHEgPQogIHRyeQogIChzb2x2ZQogICAoaW5pdGlhbGl6ZSBwcm9s
b2cge2xpbWl0ID0gIWxpbWl0LCB0aG1zID0gZCwgaHlwcyA9IFtdfSkpIHE7
CmZ1biBtZXNvbl9wcm92ZSBnID0KICB0cnkgKHRpbWUgcmVmdXRlKQogIChp
bml0aWFsaXplIChzZXRfb2Zfc3VwcG9ydCBhbGxfbmVnYXRpdmUgbWVzb24p
CiAgIHtsaW1pdCA9ICFsaW1pdCwgdGhtcyA9IFtdLCBoeXBzID0gYXhpb21h
dGl6ZSAoTm90IChnZW5lcmFsaXplIGcpKX0pOwpmdW4gZGVsdGFfcHJvdmUg
ZyA9CiAgdHJ5ICh0aW1lIHJlZnV0ZSkKICAoaW5pdGlhbGl6ZSAgKHNldF9v
Zl9zdXBwb3J0IGFsbF9uZWdhdGl2ZSBkZWx0YSkKICAge2xpbWl0ID0gIWxp
bWl0LCB0aG1zID0gW10sIGh5cHMgPSBlcV9heGlvbWF0aXplIChOb3QgKGdl
bmVyYWxpemUgZykpfSk7CgooKiBUZXN0aW5nIHRoZSBkZWx0YSBwcm92ZXIg
KikKCnZhbCBwNDggPSBwYXJzZV9mb3JtdWxhIChnZXQgZXF1YWxpdHkgIlA0
OCIpOwpkZWx0YV9wcm92ZSBwNDg7CgooKiBUZXN0aW5nIHRoZSBwcm9sb2cg
c29sdmVyICopCgp2YWwgZGF0YWJhc2UgPSAoYXhpb21hdGl6ZSBvIHBhcnNl
X2Zvcm11bGEpCiAgWwoKUVVPVEUgInN1YnNldCBuaWwgbmlsIC9cXFxuICAg
KCF2IHggeS4gc3Vic2V0IHggeSA9PT4gc3Vic2V0ICh2IDo6IHgpICh2IDo6
IHkpKSAvXFxcbiAgICghdiB4IHkuIHN1YnNldCB4IHkgPT0+IHN1YnNldCB4
ICAgICAgICAodiA6OiB5KSkiXTsKCnRyeSAocHJvbG9nX3NvbHZlIGRhdGFi
YXNlKSBbcGFyc2VfZm9ybXVsYSBbUVVPVEUgInN1YnNldCB4ICgwIDo6IDEg
OjogMiA6OiBuaWwpIl1dOwooKiB0YWtlcyBhZ2VzCnRyeSAocHJvbG9nX3Nv
bHZlIGRhdGFiYXNlKSBbcGFyc2VfZm9ybXVsYSBgc3Vic2V0ICgwIDo6IDEg
OjogMiA6OiBuaWwpIHhgXTsKKikKCnZhbCBkYXRhYmFzZSA9IChheGlvbWF0
aXplIG8gcGFyc2VfZm9ybXVsYSkKICBbCgoKUVVPVEUgInAgMCAzIC9cXFxu
ICAgKCF4LiBwIHggNCkgL1xcXG4gICAoIXguIHAgeCAzID09PiBwIChzIChz
IChzIHgpKSkgMykgL1xcXG4gICAoIXguIHAgKHMgeCkgMyA9PT4gcCB4IDMp
Il07Cgp0cnkgKHByb2xvZ19zb2x2ZSBkYXRhYmFzZSkgW3BhcnNlX2Zvcm11
bGEgW1FVT1RFICJwIChzIDApIDMiXV07CgooKiBUZXN0aW5nIHRoZSBtZXNv
biBwcm92ZXIgKikKCm1lc29uX3Byb3ZlIFRydWU7Cgp2YWwgcDU5ID0gcGFy
c2VfZm9ybXVsYSAoZ2V0IG5vbmVxdWFsaXR5ICJQNTkiKTsKdmFsIHRocyA9
IGF4aW9tYXRpemUgKE5vdCAoZ2VuZXJhbGl6ZSBwNTkpKTsKdmFsIHJ1bGVz
ID0gbWVzb25fcnVsZXMgW10gdGhzOwpydWxlc191bmlmeSBydWxlcyAocGFy
c2VfZm9ybXVsYSBbUVVPVEUgIn5QIDAiXSk7Cm1lc29uX3Byb3ZlIHA1OTsK
CnZhbCBwMzkgPSBwYXJzZV9mb3JtdWxhIChnZXQgbm9uZXF1YWxpdHkgIlAz
OSIpOwpjbGF1c2FsIChOb3QgKGdlbmVyYWxpemUgcDM5KSk7CmF4aW9tYXRp
emUgKE5vdCAoZ2VuZXJhbGl6ZSBwMzkpKTsKbWVzb25fcHJvdmUgcDM5OwoK
dmFsIG51bTE0ID0gcGFyc2VfZm9ybXVsYSAoZ2V0IHRwdHAgIk5VTTAxNC0x
Iik7Cm1lc29uX3Byb3ZlIG51bTE0OwoKdmFsIHA1NSA9IHBhcnNlX2Zvcm11
bGEgKGdldCBub25lcXVhbGl0eSAiUDU1Iik7Cm1lc29uX3Byb3ZlIHA1NTsK
CnZhbCBwMjYgPSBwYXJzZV9mb3JtdWxhIChnZXQgbm9uZXF1YWxpdHkgIlAy
NiIpOwpjbGF1c2FsIChOb3QgKGdlbmVyYWxpemUgcDI2KSk7Cm1lc29uX3By
b3ZlIHAyNjsKCnZhbCBsb3MgPSBwYXJzZV9mb3JtdWxhIChnZXQgbm9uZXF1
YWxpdHkgIkxPUyIpOwptZXNvbl9wcm92ZSBsb3M7Cgp2YWwgcmVkdWNlZF9u
dW0yODQgPSBwYXJzZV9mb3JtdWxhCiAgWwoKCgoKClFVT1RFICJmaWJvbmFj
Y2kgMCAocyAwKSAvXFwgZmlib25hY2NpIChzIDApIChzIDApIC9cXFxuICAg
KCF4IHkgeiB4JyB5JyB6Jy5cbiAgICAgIH5zdW0geCAocyAocyAwKSkgeiBc
XC8gfnN1bSB5IChzIDApIHogXFwvXG4gICAgICB+Zmlib25hY2NpIHggeCcg
XFwvIH5maWJvbmFjY2kgeSB5JyBcXC8gfnN1bSB4JyB5JyB6JyBcXC9cbiAg
ICAgIGZpYm9uYWNjaSB6IHonKSAvXFwgKCF4LiBzdW0geCAwIHgpIC9cXFxu
ICAgKCF4IHkgei4gfnN1bSB4IHkgeiBcXC8gc3VtIHggKHMgeSkgKHMgeikp
IC9cXFxuICAgKCF4LiB+Zmlib25hY2NpIChzIChzIChzIChzIChzIChzIChz
IChzIDApKSkpKSkpKSB4KSA9PT4gRiJdOwptZXNvbl9wcm92ZSByZWR1Y2Vk
X251bTI4NDsKCnZhbCBwMjkgPSBwYXJzZV9mb3JtdWxhIChnZXQgbm9uZXF1
YWxpdHkgIlAyOSIpOwpjbGF1c2FsIChOb3QgKGdlbmVyYWxpemUgcDI5KSk7
Cm1lc29uX3Byb3ZlIHAyOTsKCnZhbCBudW0xID0gcGFyc2VfZm9ybXVsYSAo
Z2V0IHRwdHAgIk5VTTAwMS0xIik7Cm1lc29uX3Byb3ZlIG51bTE7Cgp2YWwg
bW9kZWxfY29tcGxldGVuZXNzID0gcGFyc2VfZm9ybXVsYSAoZ2V0IG5vbmVx
dWFsaXR5ICJNT0RFTF9DT01QTEVURU5FU1MiKTsKbWVzb25fcHJvdmUgbW9k
ZWxfY29tcGxldGVuZXNzOwoqKQoKZW5kCigqI2xpbmUgMC4wICJzcmMvUmVz
b2x2ZXJzMS5zaWciKikKKCogPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PSAqKQooKiBBIFRZUEUgVE8gRklORCBSRVNPTFZBTlQgQ0xBVVNFUyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopCigqIENy
ZWF0ZWQgYnkgSm9lIEh1cmQsIEFwcmlsIDIwMDIgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgKikKKCogPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PSAqKQoKc2lnbmF0dXJlIFJlc29sdmVyczEgPQpz
aWcKCnR5cGUgJ2EgcHAgICA9ICdhIFVzZWZ1bC5wcAp0eXBlIGZvcm11bGEg
PSBUZXJtMS5mb3JtdWxhCnR5cGUgc3Vic3QgICA9IFN1YnN0MS5zdWJzdAp0
eXBlIHRobSAgICAgPSBUaG0xLnRobQoKdHlwZSByZXNvbHZlcnMKdHlwZSBy
ZXNvbHZhbnQgPSB7bWF0ZSA6IHRobSwgc3ViIDogc3Vic3QsIHJlcyA6IHRo
bX0KCnZhbCBlbXB0eV9yZXNvbHZlcnMgOiByZXNvbHZlcnMKdmFsIGFkZF9y
ZXNvbHZlciAgICA6IHRobSAtPiByZXNvbHZlcnMgLT4gcmVzb2x2ZXJzCnZh
bCBmaW5kX3Jlc29sdmFudHMgOiByZXNvbHZlcnMgLT4gdGhtIC0+IHJlc29s
dmFudCBsaXN0CnZhbCByZXNvbHZlcnNfaW5mbyAgOiByZXNvbHZlcnMgLT4g
c3RyaW5nCnZhbCBwcF9yZXNvbHZlcnMgICAgOiByZXNvbHZlcnMgcHAKCmVu
ZAooKiNsaW5lIDAuMCAic3JjL1Jlc29sdmVyczEuc21sIiopCigqID09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0gKikKKCogQSBUWVBFIFRPIEZJTkQg
UkVTT0xWQU5UIENMQVVTRVMgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAqKQooKiBDcmVhdGVkIGJ5IEpvZSBIdXJkLCBBcHJp
bCAyMDAyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICopCigqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKikKCigq
CmFwcCBsb2FkIFsiVGhtMSIsICJNYXRjaDEiXTsKKikKCigqCiopCnN0cnVj
dHVyZSBSZXNvbHZlcnMxIDo+IFJlc29sdmVyczEgPQpzdHJ1Y3QKCmluZml4
IHwtPiA6Oj47CgpvcGVuIFVzZWZ1bCBUZXJtMSBNYXRjaDEgVGhtMSBDYW5v
bjE7CgpzdHJ1Y3R1cmUgTiA9IExpdGVyYWxOZXQxOwoKdmFsIHw8PnwgICAg
ICAgICAgPSBTdWJzdDEufDw+fDsKdmFsIG9wIDo6PiAgICAgICAgPSBTdWJz
dDEuOjo+Owp2YWwgZm9ybXVsYV9zdWJzdCA9IFN1YnN0MS5mb3JtdWxhX3N1
YnN0OwoKKCogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqKQooKiBD
aGF0dGluZy4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICopCigqIC0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0gKikKCnZhbCAoKSA9IHRyYWNlcyA6PSB7bW9k
dWxlID0gIlJlc29sdmVyczEiLCBhbGlnbm1lbnQgPSBLIDF9IDo6ICF0cmFj
ZXM7CgpmdW4gY2hhdCBsIG0gPSB0cmFjZSB7bW9kdWxlID0gIlJlc29sdmVy
czEiLCBtZXNzYWdlID0gbSwgbGV2ZWwgPSBsfTsKCigqIC0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0gKikKKCogSGVscGVyIGZ1bmN0aW9ucy4gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAqKQooKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICop
CgpmdW4gdHJpY2ggbCBuID0KICBjYXNlIHNwbGl0IGwgbiBvZiAoXywgW10p
ID0+IHJhaXNlIEVSUiAidHJpY2giICJubyBleGFjdCIKICB8IChsLCBoIDo6
IHQpID0+IChsLCBoLCB0KTsKCigqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0gKikKKCogVGhlIHR5cGUgZGVmaW5pdGlvbiB3aXRoIHNvbWUgc2lt
cGxlIG9wZXJhdGlvbnMuICAgICAgICAgICAgICAgICAgICAgICAgICAqKQoo
KiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICopCgp0eXBlIHJlc29s
dmVycyA9IChpbnQgKiB0aG0pIE4ubGl0ZXJhbF9tYXA7Cgp0eXBlIHJlc29s
dmFudCA9IHttYXRlIDogdGhtLCBzdWIgOiBzdWJzdCwgcmVzIDogdGhtfTsK
CnZhbCBlbXB0eV9yZXNvbHZlcnMgOiByZXNvbHZlcnMgPSBOLmVtcHR5OwoK
ZnVuIGFkZF9yZXNvbHZlciB0aCA9CiAgbGV0IGZ1biBhZGRfbGl0ICgobiwg
bGl0KSwgbmV0KSA9IE4uaW5zZXJ0IChsaXQgfC0+IChuLCB0aCkpIG5ldAog
IGluIGZuIG5ldCA9PiBmb2xkbCBhZGRfbGl0IG5ldCAoZW51bWVyYXRlIDAg
KGNsYXVzZSB0aCkpCiAgZW5kOwoKZnVuIHJlc29sdmVyc19pbmZvIChuZXQg
OiByZXNvbHZlcnMpID0gaW50X3RvX3N0cmluZyAoTi5zaXplIG5ldCk7Cgp2
YWwgcHBfcmVzb2x2ZXJzID0gcHBfbWFwIHJlc29sdmVyc19pbmZvIHBwX3N0
cmluZzsKCnZhbCBkZXN0X3Jlc29sdmVycyA6IHJlc29sdmVycyAtPiB0aG0g
bGlzdCA9IAogIG1hcCBzbmQgbyBMaXN0LmZpbHRlciAoZXF1YWwgMCBvIGZz
dCkgbyBOLnRvX2xpc3Q7CgooKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tICopCigqIEEgcmVmZXJlbmNlIGltcGxlbWVudGF0aW9uIGZvciBkZWJ1
Z2dpbmcuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKikKKCog
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqKQoKZnVuIGNhbm9uaXpl
IGxpdHMgPQogIGxldAogICAgdmFsIG52YXJzID0gZW51bWVyYXRlIDAgKEZW
IChsaXN0X21rX2NvbmogbGl0cykpCiAgICB2YWwgbXMgPSBtYXAgKGZuIChu
LCB2KSA9PiB2IHwtPiBWYXIgKCJfXyIgXiAoaW50X3RvX3N0cmluZyBuKSkp
IG52YXJzCiAgaW4KICAgIG1hcCAoZm9ybXVsYV9zdWJzdCAoU3Vic3QxLmZy
b21fbWFwbGV0cyBtcykpIGxpdHMKICBlbmQ7Cgpsb2NhbAogIGZ1biBzdWJz
IGFjYyBbXSA9IGFjYwogICAgfCBzdWJzIGFjYyAoKHByZXYsIFtdKSA6OiBv
dGhlcnMpID0gc3VicyAocHJldiA6OiBhY2MpIG90aGVycwogICAgfCBzdWJz
IGFjYyAoKHByZXYsIGggOjogdCkgOjogb3RoZXJzKSA9CiAgICBzdWJzIGFj
YyAoKGggOjogcHJldiwgdCkgOjogKHByZXYsIHQpIDo6IG90aGVycyk7Cmlu
CiAgZnVuIGFsbF9ub25lbXB0eV9zdWJzZXRzIGwgPSB0bCAoc3VicyBbXSBb
KFtdLCBsKV0pOwplbmQ7CgpmdW4gcGFpcnMgW10gPSByYWlzZSBFUlIgInBh
aXJzIiAiZW1wdHkiCiAgfCBwYWlycyBbaF0gPSBbXQogIHwgcGFpcnMgKGgg
OjogKHQgYXMgaCcgOjogXykpID0gKGgsIGgnKSA6OiBwYWlycyB0OwoKZnVu
IHNhbml0eV9yZXNvbHZlX29uIHRoIHRoJyBzIHMnID0KICBsZXQKICAgIHZh
bCBzdWIgPSB1bmlmeWxfbGl0ZXJhbHMgfDw+fCAocGFpcnMgKHMgQCBzJykp
CiAgICB2YWwgbGl0ID0gZm9ybXVsYV9zdWJzdCBzdWIgKGhkIHMpCiAgICB2
YWwgcmVzID0gRkFDVE9SIChSRVNPTFZFIGxpdCAoSU5TVCBzdWIgdGgpIChJ
TlNUIHN1YiB0aCcpKQogIGluCiAgICB7bWF0ZSA9IHRoJywgc3ViID0gc3Vi
LCByZXMgPSByZXN9CiAgZW5kOwoKZnVuIHNhbml0eV9yZXNvbHZlIHRoIHRo
JyA9CiAgTGlzdC5tYXBQYXJ0aWFsIEkKICAoY2FydHdpdGggKHRvdGFsIG8g
c2FuaXR5X3Jlc29sdmVfb24gdGggdGgnKQogICAoYWxsX25vbmVtcHR5X3N1
YnNldHMgKGNsYXVzZSB0aCkpCiAgIChhbGxfbm9uZW1wdHlfc3Vic2V0cyAo
bWFwIG5lZ2F0ZSAoY2xhdXNlIHRoJykpKSk7CgpmdW4gc2FuaXR5X3Jlc29s
dmFudHMgbmV0IHRoID0KICBMaXN0LmNvbmNhdCAobWFwIChzYW5pdHlfcmVz
b2x2ZSB0aCkgKGRlc3RfcmVzb2x2ZXJzIG5ldCkpOwoKZnVuIHNhbml0eV9j
aGVjayBuZXQgdGggKHJlcyA6IHJlc29sdmFudCBsaXN0KSA9CiAgbGV0CiAg
ICB2YWwgKCkgPSBjaGF0IDEgIlgiCiAgICB2YWwgZiA9IFBQLnBwX3RvX3N0
cmluZyAoIUxJTkVfTEVOR1RIKSAocHBfbGlzdCAocHBfbWFwIEFYSU9NIHBw
X3RobSkpCiAgICB2YWwgZmFzdCA9IG1hcCAoY2Fub25pemUgbyBjbGF1c2Ug
byAjcmVzKSByZXMKICAgIHZhbCBzbG93ID0gbWFwIChjYW5vbml6ZSBvIGNs
YXVzZSBvICNyZXMpIChzYW5pdHlfcmVzb2x2YW50cyBuZXQgdGgpCiAgICB2
YWwgKCkgPQogICAgICBpZiBzdWJzZXQgZmFzdCBzbG93IHRoZW4gKCkKICAg
ICAgZWxzZQogICAgICAgIChwcmludCAoIlxuc2FuaXR5X2NoZWNrOiBleHRy
YSBjbGF1c2VzOlxubmV0ID0gIiBeCiAgICAgICAgICAgICAgICBmIChtYXAg
Y2xhdXNlIChkZXN0X3Jlc29sdmVycyBuZXQpKSBeICJcbnRoID0gIiBeCiAg
ICAgICAgICAgICAgICB0aG1fdG9fc3RyaW5nIHRoIF4gIlxuZmFzdCA9ICIg
XiBmIGZhc3QgXiAiXG5zbG93ID0gIiBeIGYgc2xvdyBeCiAgICAgICAgICAg
ICAgICAiXG5leHRyYSA9ICIgXiBmIChzdWJ0cmFjdCBmYXN0IHNsb3cpIF4K
ICAgICAgICAgICAgICAgICJcbm1pc3NpbmcgPSAiIF4gZiAoc3VidHJhY3Qg
c2xvdyBmYXN0KSBeICJcbiIpOwogICAgICAgICByYWlzZSBCVUcgImZpbmRf
cmVzb2x2YW50cyIgImV4dHJhIGNsYXVzZXMhIikKICAgIHZhbCAoKSA9CiAg
ICAgIGlmIHN1YnNldCBzbG93IGZhc3QgdGhlbiAoKQogICAgICBlbHNlCiAg
ICAgICAgKHByaW50ICgiXG5zYW5pdHlfY2hlY2s6IG1pc3NpbmcgY2xhdXNl
czpcbm5ldCA9ICIgXgogICAgICAgICAgICAgICAgZiAobWFwIGNsYXVzZSAo
ZGVzdF9yZXNvbHZlcnMgbmV0KSkgXiAiXG50aCA9ICIgXgogICAgICAgICAg
ICAgICAgdGhtX3RvX3N0cmluZyB0aCBeICJcbmZhc3QgPSAiIF4gZiBmYXN0
IF4gIlxuc2xvdyA9ICIgXiBmIHNsb3cgXgogICAgICAgICAgICAgICAgIlxu
bWlzc2luZyA9ICIgXiBmIChzdWJ0cmFjdCBzbG93IGZhc3QpIF4KICAgICAg
ICAgICAgICAgICJcbmV4dHJhID0gIiBeIGYgKHN1YnRyYWN0IGZhc3Qgc2xv
dykgXiAiXG4iKTsKICAgICAgICAgcmFpc2UgQlVHICJmaW5kX3Jlc29sdmFu
dHMiICJtaXNzaW5nIGNsYXVzZXMiKQooKgogICAgdmFsICgpID0KICAgICAg
KHByaW50ICgiXG5zYW5pdHlfY2hlY2s6IG9rOlxubmV0ID0gIiBeCiAgICAg
ICAgICAgICAgZiAobWFwIGNsYXVzZSAoZGVzdF9yZXNvbHZlcnMgbmV0KSkg
XiAiXG50aCA9ICIgXgogICAgICAgICAgICAgIHRobV90b19zdHJpbmcgdGgg
XiAiXG5yZXMgPSAiIF4gZiBmYXN0IF4gIlxuIikpCiopCiAgaW4KICAgICgp
CiAgZW5kOwoKKCogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqKQoo
KiBUaGUgY29yZSBlbmdpbmUgZm9yIGNvbWJpbmVkIGZhY3Rvci9yZXNvbHV0
aW9uIHN0ZXBzLiAgICAgICAgICAgICAgICAgICAgICopCigqIC0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0gKikKCmZ1biByZXNvbHZlX29uIHMgciB0
aCB0aCcgPQogIFNPTUUgKEZBQ1RPUiAoUkVTT0xWRSByIChJTlNUIHMgdGgp
IChJTlNUIHMgdGgnKSkpOwoKZnVuIHJlc29sdmUgYWNjIFtdID0gYWNjCiAg
fCByZXNvbHZlIGFjYyAoKGF2b2lkLCBzdWIsIHJlcywgW10pIDo6IG90aGVy
cykgPQogIHJlc29sdmUKICAoaWYgbWVtIHJlcyAobWFwIChmb3JtdWxhX3N1
YnN0IHN1YikgYXZvaWQpIHRoZW4gYWNjCiAgIGVsc2UgKHJlcywgc3ViKSA6
OiBhY2MpIG90aGVycwogIHwgcmVzb2x2ZSBhY2MgKChhdm9pZCwgc3ViLCBy
ZXMsIHggOjogeHMpIDo6IG90aGVycykgPQogIGxldAogICAgZnVuIGYgYyA9
IHJlc29sdmUgYWNjIChjICgoeCA6OiBhdm9pZCwgc3ViLCByZXMsIHhzKSA6
OiBvdGhlcnMpKQogIGluCiAgICBjYXNlIHRvdGFsICh1bmlmeV9saXRlcmFs
cyBzdWIgcmVzKSB4IG9mIE5PTkUgPT4gZiBJCiAgICB8IFNPTUUgc3ViJwog
ICAgICA9PiBmIChjb25zIChhdm9pZCwgU3Vic3QxLnJlZmluZSBzdWIgc3Vi
JywgZm9ybXVsYV9zdWJzdCBzdWInIHJlcywgeHMpKQogIGVuZDsKCmZ1biBy
ZXNvbHZlX2Zyb20gKG4sIHRoKSAobicsIHRoJykgPQogIGxldAogICAgdmFs
IChwcmV2LCBsaXQsIHN1Y2MpID0gdHJpY2ggKGNsYXVzZSB0aCkgbgogICAg
dmFsIChwcmV2JywgbGl0Jywgc3VjYycpID0gdHJpY2ggKG1hcCBuZWdhdGUg
KGNsYXVzZSB0aCcpKSBuJwogICAgdmFsIHN1YiA9IHVuaWZ5X2xpdGVyYWxz
IHw8PnwgbGl0IGxpdCcKICAgIHZhbCByZXMgPSBmb3JtdWxhX3N1YnN0IHN1
YiBsaXQKICAgIGZ1biBmIChyLCBzKSA9IE9wdGlvbi5tYXAgKHBhaXIgcykg
KHJlc29sdmVfb24gcyByIHRoIHRoJykKICBpbgogICAgTGlzdC5tYXBQYXJ0
aWFsIGYgKHJlc29sdmUgW10gWyhwcmV2IEAgcHJldicsIHN1YiwgcmVzLCBz
dWNjIEAgc3VjYycpXSkKICBlbmQ7CgpmdW4gcmVzb2x2YW50cyBuZXQgdGgg
PQogIGxldAogICAgZnVuIGcgKF8sIG1hdGUpICgoc3ViLCByZXMpLCBsKSA9
IHttYXRlID0gbWF0ZSwgc3ViID0gc3ViLCByZXMgPSByZXN9IDo6IGwKICAg
IGZ1biByIG0gKHUsIGFjYykgPQogICAgICBjYXNlIHRvdGFsIChyZXNvbHZl
X2Zyb20gKG0sIHRoKSkgdSBvZiBOT05FID0+IGFjYwogICAgICB8IFNPTUUg
bCA9PiBmb2xkbCAoZyB1KSBhY2MgbAogICAgZnVuIGYgKChtLCBsaXQpLCBh
Y2MpID0gZm9sZGwgKHIgbSkgYWNjIChOLnVuaWZ5IG5ldCAobmVnYXRlIGxp
dCkpCiAgICB2YWwgcmVzID0gZm9sZGwgZiBbXSAoZW51bWVyYXRlIDAgKGNs
YXVzZSB0aCkpCiAgKCp2YWwgKCkgPSBzYW5pdHlfY2hlY2sgbmV0IHRoIHJl
cyopCiAgaW4KICAgIHJlcwogIGVuZAoKZnVuIGZpbmRfcmVzb2x2YW50cyBu
ZXQgdGggPQogIExpc3QuZmlsdGVyIChub24gdGF1dG9sb2dvdXMgbyBjbGF1
c2UgbyAjcmVzKSAocmVzb2x2YW50cyBuZXQgdGgpCiAgaGFuZGxlIEVSUl9F
WE4gXyA9PiByYWlzZSBCVUcgImZpbmRfcmVzb2x2YW50cyIgInNob3VsZCBu
ZXZlciBmYWlsIjsKCigqIFF1aWNrIHRlc3RpbmcKcXVvdGF0aW9uIDo9IHRy
dWU7Cmluc3RhbGxQUCBwcF9mb3JtdWxhOwppbnN0YWxsUFAgcHBfdGVybTsK
aW5zdGFsbFBQIHBwX3N1YnN0OwppbnN0YWxsUFAgcHBfdGhtOwp2YWwgdGgg
PSBBWElPTSAobWFwIHBhcnNlIFtgcCgzLCB4LCB2KWAsIGBxKHgpYCwgYHAo
MywgeCwgeilgXSk7CnZhbCB0aCcgPSBBWElPTSAobWFwIHBhcnNlIFtgfnAo
MywgZih5KSwgdylgLCBgfnEoeSlgLCBgfnAoMywgZih5KSwgNClgXSk7CnRy
eSAocmVzb2x2ZV9mcm9tICgwLCB0aCkpICgwLCB0aCcpOwp0cnkgKHJlc29s
dmVfZnJvbSAoMiwgdGgpKSAoMCwgdGgnKTsKdHJ5IChyZXNvbHZlX2Zyb20g
KDAsIHRoKSkgKDIsIHRoJyk7CnRyeSAocmVzb2x2ZV9mcm9tICgyLCB0aCkp
ICgyLCB0aCcpOwp2YWwgciA9IGFkZF9yZXNvbHZlciB0aCcgZW1wdHlfcmVz
b2x2ZXJzOwptYXAgI3JlcyAoZmluZF9yZXNvbHZhbnRzIHIgdGgpOwoqKQoK
ZW5kCigqI2xpbmUgMC4wICJzcmMvVGhlYXAxLnNpZyIqKQooKiA9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09ICopCigqIEEgVFlQRSBUTyBTVE9SRSBD
TEFVU0VTIFdBSVRJTkcgVE8gQkUgVVNFRCAoVEhFQVAgPSBUSEVPUkVNIEhF
QVApICAgICAgICAgKikKKCogQ3JlYXRlZCBieSBKb2UgSHVyZCwgQXByaWwg
MjAwMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAqKQooKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICopCgpzaWdu
YXR1cmUgVGhlYXAxID0Kc2lnCgp0eXBlICdhIHN1YnN1bWUgPSAnYSBTdWJz
dW1lMS5zdWJzdW1lCnR5cGUgdGhtICAgICAgICA9IFRobTEudGhtCgooKiBU
dW5pbmcgcGFyYW1ldGVycyAqKQp0eXBlIHBhcmFtZXRlcnMgPSB7Zmlmb19z
a2V3IDogaW50LCBjbGVhbmluZ19mcmVxIDogaW50fQp2YWwgZGVmYXVsdHMg
OiBwYXJhbWV0ZXJzCgooKiBUaGVvcmVtIEhFQVBzICopCnR5cGUgdGhlYXAK
dmFsIG5ld190aGVhcCAgICAgICA6IHBhcmFtZXRlcnMgLT4gdGhlYXAKdmFs
IGVtcHR5X3RoZWFwICAgICA6IHRoZWFwICAgICAgICAgICAgICAgICAgICAg
ICAoKiBVc2VzIGRlZmF1bHRzICopCnZhbCB0aGVhcF9zaXplICAgICAgOiB0
aGVhcCAtPiBpbnQKdmFsIHRoZWFwX2FkZCAgICAgICA6IHRobSAtPiB0aGVh
cCAtPiB0aGVhcAp2YWwgdGhlYXBfYWRkbCAgICAgIDogdGhtIGxpc3QgLT4g
dGhlYXAgLT4gdGhlYXAKdmFsIHRoZWFwX3JlbW92ZSAgICA6IHRoZWFwIC0+
ICh0aG0gKiB0aGVhcCkgb3B0aW9uCnZhbCB0aGVhcF9zdWJzdW1lcnMgOiB0
aGVhcCAtPiB0aG0gc3Vic3VtZQp2YWwgdGhlYXBfaW5mbyAgICAgIDogdGhl
YXAgLT4gc3RyaW5nICAgKCogT3V0cHV0cyAiKHNpemUsd2VpZ2h0KSIgKikK
CmVuZAooKiNsaW5lIDAuMCAic3JjL1RoZWFwMS5zbWwiKikKKCogPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PSAqKQooKiBBIFRZUEUgVE8gU1RPUkUg
Q0xBVVNFUyBXQUlUSU5HIFRPIEJFIFVTRUQgKFRIRUFQID0gVEhFT1JFTSBI
RUFQKSAgICAgICAgICopCigqIENyZWF0ZWQgYnkgSm9lIEh1cmQsIEFwcmls
IDIwMDIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgKikKKCogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqKQoKKCoK
YXBwIGxvYWQgWyJIZWFwIiwgIlF1ZXVlIiwgIlRobTEiLCAiU3Vic3VtZXJz
MSJdOwoqKQoKKCoKKikKc3RydWN0dXJlIFRoZWFwMSA6PiBUaGVhcDEgPQpz
dHJ1Y3QKCmluZml4IHwtPjsKCm9wZW4gVXNlZnVsIFRlcm0xIFRobTE7Cgpz
dHJ1Y3R1cmUgUSA9IFF1ZXVlOwpzdHJ1Y3R1cmUgSCA9IEhlYXA7CnN0cnVj
dHVyZSBTID0gU3Vic3VtZTE7Cgp0eXBlICdhIHF1ZXVlICAgPSAnYSBRLnF1
ZXVlOwp0eXBlICdhIGhlYXAgICAgPSAnYSBILmhlYXA7CnR5cGUgJ2Egc3Vi
c3VtZSA9ICdhIFMuc3Vic3VtZTsKCigqIC0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0gKikKKCogVHVuaW5nIHBhcmFtZXRlcnMuICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAq
KQooKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICopCgp0eXBlIHBh
cmFtZXRlcnMgPSB7Zmlmb19za2V3IDogaW50LCBjbGVhbmluZ19mcmVxIDog
aW50fQoKdmFsIGRlZmF1bHRzID0ge2ZpZm9fc2tldyA9IDMsIGNsZWFuaW5n
X2ZyZXEgPSAxMDAwfTsKCigqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0gKikKKCogVGhlb3JlbSBIRUFQcy4gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKQooKiAt
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICopCgp0eXBlIHRoZWFwID0K
ICAoKGludCAqIGludCkgKiAoaW50ICogaW50KSkgKiB0aG0gcXVldWUgKiAo
aW50ICogKGludCAqIHRobSkgaGVhcCkgKgogIHRobSBzdWJzdW1lOwoKbG9j
YWwgZnVuIG9yZGVyICgobSwgXyA6IHRobSksIChuLCBfIDogdGhtKSkgPSBJ
bnQuY29tcGFyZSAobSwgbik7CmluIHZhbCBlbXB0eV90aGVhcF9oZWFwID0g
SC5lbXB0eSBvcmRlcjsKZW5kOwoKZnVuIG5ld190aGVhcCB7Zmlmb19za2V3
LCBjbGVhbmluZ19mcmVxfSA9CiAgKChEIGNsZWFuaW5nX2ZyZXEsIEQgZmlm
b19za2V3KSwgUS5lbXB0eSwgKDAsIGVtcHR5X3RoZWFwX2hlYXApLCBTLmVt
cHR5KTsKCnZhbCBlbXB0eV90aGVhcCA9IG5ld190aGVhcCBkZWZhdWx0czsK
CmZ1biB0aGVhcF9zaXplIChfLCBfLCAoXywgaCksIF8pID0gSC5zaXplIGg7
CmZ1biB0aGVhcF93ZWlnaHQgKF8sIF8sICh3LCBfKSwgXykgPSB3OwoKKCoK
ZnVuIGNsZWFuX3RoZWFwICgoKF8sIEMpLCBGKSwgUSwgKF8sIEgpLCBfKSA9
CiAgbGV0CiAgICB2YWwgaGFzaCA9IFBvbHloYXNoLm1rUG9seVRhYmxlICgx
MDAwMCwgRVJSICJjbGVhcF90aGVhcCIgIm5vdCBmb3VuZCIpCiAgICBmdW4g
bWFyayAodiwgdGgpID0gUG9seWhhc2guaW5zZXJ0IGhhc2ggKGNsYXVzZSB0
aCwgdikKICAgIHZhbCAoKSA9IEguYXBwIG1hcmsgSAogICAgZnVuIGFkZCAo
diwgdGgpIChxLCB3LCBoLCBsKSA9CiAgICAgIChRLmFkZCB0aCBxLCB3ICsg
diwgSC5hZGQgKHYsIHRoKSBoLCBTLmFkZCAoY2xhdXNlIHRoIHwtPiB0aCkg
bCkKICAgIGZ1biBjaGVjayBxIG4gPQogICAgICBpZiBRLmlzX2VtcHR5IHEg
dGhlbiBuCiAgICAgIGVsc2UKICAgICAgICBsZXQKICAgICAgICAgIHZhbCB0
aCA9IFEuaGQgcQogICAgICAgIGluCiAgICAgICAgICBjaGVjayAoUS50bCBx
KQogICAgICAgICAgKGNhc2UgdG90YWwgKFBvbHloYXNoLnJlbW92ZSBoYXNo
KSAoY2xhdXNlIHRoKSBvZiBOT05FID0+IG4KICAgICAgICAgICB8IFNPTUUg
diA9PiBhZGQgKHYsIHRoKSBuKQogICAgICAgIGVuZAogIGluCiAgICAoZm4g
KHEsIHcsIGgsIGwpID0+ICgoKEMsIEMpLCBGKSwgcSwgKHcsIGgpLCBsKSkK
ICAgIChjaGVjayBRIChRLmVtcHR5LCAwLCBlbXB0eV90aGVhcF9oZWFwLCBT
LmVtcHR5KSkKICBlbmQ7CiopCgooKmZ1biB0aGVhcF9hZGQgdGggKGggYXMg
KCgoMCxfKSwgXyksIF8sIF8sIF8pKSA9IHRoZWFwX2FkZCB0aCAoY2xlYW5f
dGhlYXAgaCkqKQpmdW4gdGhlYXBfYWRkIHRoICgoKGMsIGNtKSwgZiksIHEs
ICh3LCBoKSwgbCkgPQogIGxldAogICAgdmFsIGNsID0gY2xhdXNlIHRoCiAg
ICB2YWwgdiA9IGZvcm11bGFfc2l6ZSAobGlzdF9ta19kaXNqIGNsKQogICAg
dmFsIGgnID0gSC5hZGQgKHYsIHRoKSBoCiAgaW4KICAgICgoKGMgLSAxLCBj
bSksIGYpLCBRLmFkZCB0aCBxLCAodyArIHYsIGgnKSwgUy5hZGQgKGNsYXVz
ZSB0aCB8LT4gdGgpIGwpCiAgZW5kOwoKZnVuIHRoZWFwX2FkZGwgdGhzIGgg
PSBmb2xkbCAodW5jdXJyeSB0aGVhcF9hZGQpIGggdGhzOwoKZnVuIHRoZWFw
X3JlbW92ZSAoKGMsICgwLCBmKSksIHEsIGgsIGwpID0KICBpZiBRLmlzX2Vt
cHR5IHEgdGhlbiBOT05FCiAgZWxzZSBTT01FIChRLmhkIHEsICgoYywgKGYs
IGYpKSwgUS50bCBxLCBoLCBsKSkKICB8IHRoZWFwX3JlbW92ZSAoKGMsIChu
LCBmKSksIHEsICh3LCBoKSwgbCkgPQogIGlmIEguaXNfZW1wdHkgaCB0aGVu
IE5PTkUKICBlbHNlCiAgICBsZXQgdmFsICgodiwgeCksIGgpID0gSC5yZW1v
dmUgaAogICAgaW4gU09NRSAoeCwgKChjLCAobiAtIDEsIGYpKSwgcSwgKHcg
LSB2LCBoKSwgbCkpCiAgICBlbmQ7CgpmdW4gdGhlYXBfc3Vic3VtZXJzIChf
LCBfLCBfLCBsKSA9IGw7CgpmdW4gdGhlYXBfaW5mbyB0aHAgPQogICIoIiBe
IGludF90b19zdHJpbmcgKHRoZWFwX3NpemUgdGhwKSBeICIsIiBeCiAgaW50
X3RvX3N0cmluZyAodGhlYXBfd2VpZ2h0IHRocCkgXiAiKSI7CgplbmQKKCoj
bGluZSAwLjAgInNyYy9SZXNvbHV0aW9uMS5zaWciKikKKCogPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PSAqKQooKiBUSEUgUkVTT0xVVElPTiBQUk9P
RiBQUk9DRURVUkUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICopCigqIENyZWF0ZWQgYnkgSm9lIEh1cmQsIE5vdmVtYmVy
IDIwMDEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
KikKKCogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqKQoKc2lnbmF0
dXJlIFJlc29sdXRpb24xID0Kc2lnCgp0eXBlIHNvbHZlcl9ub2RlID0gU29s
dmVyMS5zb2x2ZXJfbm9kZQoKKCogVHVuaW5nIHBhcmFtZXRlcnMgKikKdHlw
ZSBwYXJhbWV0ZXJzID0KICB7c3Vic3VtcHRpb25fY2hlY2tpbmcgOiBpbnQs
ICAgICAgICAgICAgICAgICAgICAoKiBpbiB0aGUgcmFuZ2UgMC4uMyAqKQog
ICBwb3NpdGl2ZV9yZWZpbmVtZW50ICA6IGJvb2wsCiAgIHRoZWFwX3Bhcm0g
ICAgICAgICAgIDogVGhlYXAxLnBhcmFtZXRlcnN9Cgp2YWwgZGVmYXVsdHMg
OiBwYXJhbWV0ZXJzCgooKiBSZXNvbHV0aW9uICopCnZhbCByZXNvbHV0aW9u
JyA6IHBhcmFtZXRlcnMgLT4gc29sdmVyX25vZGUKdmFsIHJlc29sdXRpb24g
IDogc29sdmVyX25vZGUgICAgICAgICAgICAgICAgICAgICAoKiBVc2VzIGRl
ZmF1bHRzICopCgplbmQKKCojbGluZSAwLjAgInNyYy9SZXNvbHV0aW9uMS5z
bWwiKikKKCogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqKQooKiBU
SEUgUkVTT0xVVElPTiBQUk9PRiBQUk9DRURVUkUgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICopCigqIENyZWF0ZWQgYnkg
Sm9lIEh1cmQsIE5vdmVtYmVyIDIwMDEgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgKikKKCogPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PSAqKQoKKCoKYXBwIGxvYWQKIFsiVXNlZnVsIiwgIk1vc21sIiwg
IlRlcm0xIiwgIlRobTEiLCAiQ2Fub24xIiwgIlRoZWFwMSIsCiAgIlN0cmVh
bSIsICJTb2x2ZXIxIiwgIk1ldGVyMSIsICJVbml0czEiLCAiUmVzb2x2ZXJz
MSJdOwoqKQoKKCoKKikKc3RydWN0dXJlIFJlc29sdXRpb24xIDo+IFJlc29s
dXRpb24xID0Kc3RydWN0CgpvcGVuIFVzZWZ1bCBUZXJtMSBUaG0xIENhbm9u
MSBNZXRlcjEgU29sdmVyMSBSZXNvbHZlcnMxIFRoZWFwMTsKCmluZml4IHwt
PiA6Oj4gQD4gb28gIyMgOjoqIDo6QDsKCnN0cnVjdHVyZSBTID0gU3RyZWFt
OwpzdHJ1Y3R1cmUgVSA9IFVuaXRzMTsKCnR5cGUgJ2Egc3Vic3VtZSA9ICdh
IFN1YnN1bWUxLnN1YnN1bWU7CgooKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tICopCigqIENoYXR0aW5nLiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKikK
KCogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqKQoKdmFsICgpID0g
dHJhY2VzIDo9IHttb2R1bGUgPSAiUmVzb2x1dGlvbjEiLCBhbGlnbm1lbnQg
PSBLIDF9IDo6ICF0cmFjZXM7CgpmdW4gY2hhdCBsIG0gPSB0cmFjZSB7bW9k
dWxlID0gIlJlc29sdXRpb24xIiwgbWVzc2FnZSA9IG0sIGxldmVsID0gbH07
CgooKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICopCigqIFR1bmlu
ZyBwYXJhbWV0ZXJzLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgKikKKCogLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLSAqKQoKdHlwZSBwYXJhbWV0ZXJzID0KICB7c3Vic3Vt
cHRpb25fY2hlY2tpbmcgOiBpbnQsICAgICAgICAgICgqIGluIHRoZSByYW5n
ZSAwLi4zICopCiAgIHBvc2l0aXZlX3JlZmluZW1lbnQgIDogYm9vbCwKICAg
dGhlYXBfcGFybSAgICAgICAgICAgOiBUaGVhcDEucGFyYW1ldGVyc30KCnZh
bCBkZWZhdWx0cyA9CiAge3N1YnN1bXB0aW9uX2NoZWNraW5nID0gMSwKICAg
cG9zaXRpdmVfcmVmaW5lbWVudCAgPSB0cnVlLAogICB0aGVhcF9wYXJtICAg
ICAgICAgICA9IFRoZWFwMS5kZWZhdWx0c307CgooKiAtLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tICopCigqIENsYXVzZSBzdG9yZXMuICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgKikKKCogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqKQoK
dHlwZSBzdG9yZSA9IHRobSBzdWJzdW1lICogcmVzb2x2ZXJzOwoKdmFsIGVt
cHR5X3N0b3JlIDogc3RvcmUgPSAoU3Vic3VtZTEuZW1wdHksIGVtcHR5X3Jl
c29sdmVycyk7CgpmdW4gc3RvcmVfYWRkIHRoIChzLCByKSA9CiAgKFN1YnN1
bWUxLmFkZCAoY2xhdXNlIHRoIHwtPiB0aCkgcywgYWRkX3Jlc29sdmVyIHRo
IHIpOwoKZnVuIHN0b3JlX3Jlc29sdmFudHMgKChfLCByKSA6IHN0b3JlKSA9
IGZpbmRfcmVzb2x2YW50cyByOwoKZnVuIHN0b3JlX3N1YnN1bWVkICgocywg
XykgOiBzdG9yZSkgPSBTdWJzdW1lMS5zdWJzdW1lZCBzIG8gY2xhdXNlOwoK
ZnVuIHN0b3JlX2luZm8gKHMsIHIpID0gIigiIF4gU3Vic3VtZTEuaW5mbyBz
IF4gIiwiIF4gcmVzb2x2ZXJzX2luZm8gciBeICIpIjsKCigqIC0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0gKikKKCogUG9zaXRpdmUgcmVmaW5lbWVu
dC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAqKQooKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
ICopCgpsb2NhbAogIHZhbCBwb3NfdGggPSBMaXN0LmFsbCBwb3NpdGl2ZSBv
IGNsYXVzZTsKCiAgZnVuIGNoZWNrIHRydWUgPSBLIHRydWUKICAgIHwgY2hl
Y2sgZmFsc2UgPSBmbiAoe21hdGUsIC4uLn0gOiByZXNvbHZhbnQpID0+IHBv
c190aCBtYXRlOwppbgogIGZ1biBwb3NpdGl2ZV9jaGVjayBmYWxzZSA9IEsg
KEsgdHJ1ZSkKICAgIHwgcG9zaXRpdmVfY2hlY2sgdHJ1ZSA9IGNoZWNrIG8g
cG9zX3RoOwplbmQ7CgooKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
ICopCigqIEZ1bGwgcmVzb2x1dGlvbiBwcm9jZWR1cmUuICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKikKKCogLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqKQoKZXhjZXB0aW9uIENvbnRy
YWRpY3Rpb24gb2YgdGhtOwoKZnVuIHVuaXRfc3RyZW5ndGhlbiB1bml0cyB0
aCA9CiAgKGNhc2UgZmlyc3QgKFUuc3Vic3VtZXMgdW5pdHMpIChjbGF1c2Ug
dGgpIG9mIFNPTUUgdGggPT4gdGgKICAgfCBOT05FID0+IFUuZGVtb2QgdW5p
dHMgdGgpOwoKZnVuIHN1YnN1bXB0aW9uX2NoZWNrIHN0b3JlIHRoID0KICBj
YXNlIHN0b3JlX3N1YnN1bWVkIHN0b3JlIHRoIG9mIFtdID0+IFNPTUUgdGgg
fCBfIDo6IF8gPT4gTk9ORTsKCmZ1biB0aGVhcF9zdHJlbmd0aGVuIHRoZWFw
IHRoID0KICAoY2FzZSBTdWJzdW1lMS5zdHJpY3RseV9zdWJzdW1lZCAodGhl
YXBfc3Vic3VtZXJzIHRoZWFwKSAoY2xhdXNlIHRoKSBvZiBbXQogICAgID0+
IHRoCiAgIHwgKF8sIHRoKSA6OiBfID0+IHRoKTsKCmZ1biByZXNvbHZlIChw
YXJtIDogcGFyYW1ldGVycykgPQogIGxldAogICAgZnVuIGZlZWRiYWNrIGsg
ciA9CiAgICAgIGludF90b19zdHJpbmcgayBeIChpZiBrID0gciB0aGVuICIi
IGVsc2UgIi8iIF4gaW50X3RvX3N0cmluZyByKQoKICAgIGZ1biBMIG4gPSBu
IDw9ICNzdWJzdW1wdGlvbl9jaGVja2luZyBwYXJtCiAgICB2YWwgcG9zX2Zp
bHQgPSBPcHRpb24uZmlsdGVyIG8gcG9zaXRpdmVfY2hlY2sgKCNwb3NpdGl2
ZV9yZWZpbmVtZW50IHBhcm0pCgogICAgZnVuIGZ0ZXN0IGIgZiA9IGlmIGIg
dGhlbiBPcHRpb24ubWFwUGFydGlhbCAoc3Vic3VtcHRpb25fY2hlY2sgZikg
ZWxzZSBJCiAgICBmdW4gc3Rlc3QgYiBzID0gaWYgYiB0aGVuIHN1YnN1bXB0
aW9uX2NoZWNrIHMgZWxzZSBTT01FCiAgICBmdW4gd3Bhc3MgYiB3ID0gaWYg
YiB0aGVuIHRoZWFwX3N0cmVuZ3RoZW4gdyBlbHNlIEkKICAgIGZ1biB1cGFz
cyB1ID0gdW5pdF9zdHJlbmd0aGVuIHUKCiAgICBmdW4gbmV4dF9jYW5kaWRh
dGUgdSBmIHMgdyA9CiAgICAgIGNhc2UgdGhlYXBfcmVtb3ZlIHcgb2YgTk9O
RSA9PiBOT05FCiAgICAgIHwgU09NRSAodGgsIHcpID0+CiAgICAgICAgKGNh
c2UgKGZ0ZXN0IChMIDEpIGYgbyBzdGVzdCAoTCAxKSBzIG8gd3Bhc3MgKEwg
MikgdyBvIHVwYXNzIHUpIHRoIG9mCiAgICAgICAgICAgTk9ORSA9PiBuZXh0
X2NhbmRpZGF0ZSB1IGYgcyB3CiAgICAgICAgIHwgU09NRSB0aCA9PiBTT01F
ICh0aCwgdykpCgogICAgZnVuIHJldGVudGlvbl90ZXN0IHUgZiBzIHRoID0K
ICAgICAgTGlzdC5tYXBQYXJ0aWFsCiAgICAgIChPcHRpb24ubWFwUGFydGlh
bCAoZnRlc3QgKEwgMykgZiBvIHN0ZXN0IChMIDMpIHMgbyB1cGFzcyB1IG8g
I3JlcykgbwogICAgICAgcG9zX2ZpbHQgdGgpCgogICAgZnVuIGNoZWNrX2Fk
ZCB0aCA9CiAgICAgIGlmIGlzX2NvbnRyYWRpY3Rpb24gdGggdGhlbiByYWlz
ZSBDb250cmFkaWN0aW9uIHRoIGVsc2UgVS5hZGQgdGgKICBpbgogICAgZm4g
cmVjb3JkID0+IGZuIChmYWN0cywgdXNlZCwgdW51c2VkKSA9PiBmbiB1bml0
cyA9PgogICAgKGNhc2UgbmV4dF9jYW5kaWRhdGUgdW5pdHMgZmFjdHMgdXNl
ZCB1bnVzZWQgb2YgTk9ORSA9PiBOT05FCiAgICAgfCBTT01FICh0aCwgdW51
c2VkKSA9PgogICAgICAgbGV0CiAgICAgICAgIHZhbCB1bml0cyA9IGNoZWNr
X2FkZCB0aCB1bml0cwogICAgICAgICB2YWwgdXNlZCA9IHN0b3JlX2FkZCB0
aCB1c2VkCiAgICAgICAgIHZhbCB0aCA9IEZSRVNIX1ZBUlMgdGgKICAgICAg
ICAgdmFsIHJlc29sdmFudHMgPQogICAgICAgICAgIHN0b3JlX3Jlc29sdmFu
dHMgZmFjdHMgdGggQCBzdG9yZV9yZXNvbHZhbnRzIHVzZWQgdGgKICAgICAg
ICAgdmFsICgpID0gcmVjb3JkIChsZW5ndGggcmVzb2x2YW50cykKICAgICAg
ICAgdmFsIHVuaXRzID0gZm9sZGwgKHVuY3VycnkgY2hlY2tfYWRkKSB1bml0
cyAobWFwICNyZXMgcmVzb2x2YW50cykKICAgICAgICAgdmFsIGtlZXAgPSBy
ZXRlbnRpb25fdGVzdCB1bml0cyBmYWN0cyB1c2VkIHRoIHJlc29sdmFudHMK
ICAgICAgICAgdmFsICgpID0gY2hhdCAyIChmZWVkYmFjayAobGVuZ3RoIGtl
ZXApIChsZW5ndGggcmVzb2x2YW50cykpCiAgICAgICAgIHZhbCB1bnVzZWQg
PSB0aGVhcF9hZGRsIGtlZXAgdW51c2VkCiAgICAgICBpbgogICAgICAgICBT
T01FICgoZmFjdHMsIHVzZWQsIHVudXNlZCksIHVuaXRzKQogICAgICAgZW5k
KQogICAgICAgaGFuZGxlIEVSUl9FWE4gXyA9PiByYWlzZSBCVUcgInJlc29s
dmUiICJzaG91bGRuJ3QgZmFpbCIKICBlbmQ7CgpmdW4gcmF3X3Jlc29sdXRp
b24gcGFybSA9CiAgbWtfc29sdmVyX25vZGUKICB7bmFtZSA9ICJyZXNvbHV0
aW9uIiwKICAgc29sdmVyX2NvbiA9CiAgIGZuIHtzbGljZSwgdW5pdHMsIHRo
bXMsIGh5cHN9ID0+CiAgIGxldAogICAgIHZhbCByZXNvbHZlJyA9IHJlc29s
dmUgcGFybQogICAgIGZ1biBydW4gd3JhcCBzdGF0ZSA9CiAgICAgICBpZiBu
b3QgKGNoZWNrX21ldGVyICghc2xpY2UpKSB0aGVuIFMuQ09OUyAoTk9ORSwg
d3JhcCBzdGF0ZSkKICAgICAgIGVsc2UKICAgICAgICAgKGNoYXQgMSAiKyI7
CiAgICAgICAgICBjYXNlIHJlc29sdmUnIChyZWNvcmRfaW5mcyAoIXNsaWNl
KSkgc3RhdGUgKCF1bml0cykgb2YgTk9ORSA9PiBTLk5JTAogICAgICAgICAg
fCBTT01FIChzdGF0ZSwgdW5pdHMnKSA9PiAodW5pdHMgOj0gdW5pdHMnOyBy
dW4gd3JhcCBzdGF0ZSkpCiAgICAgZnVuIHdyYXBwZXIgZyAoYSBhcyAoXywg
XywgdykpICgpID0KICAgICAgIChjaGF0IDIgKHRoZWFwX2luZm8gdyk7IHJ1
biAod3JhcHBlciBnKSBhKQogICAgICAgaGFuZGxlIENvbnRyYWRpY3Rpb24g
dGggPT4gY29udHJhZGljdGlvbl9zb2x2ZXIgdGggZwogICAgIHZhbCBmYWN0
cyA9IGZvbGRsIChmbiAodCwgbCkgPT4gc3RvcmVfYWRkIHQgbCkgZW1wdHlf
c3RvcmUgdGhtcwogICAgIHZhbCB1c2VkID0gZW1wdHlfc3RvcmUKICAgICB2
YWwgdW51c2VkID0gdGhlYXBfYWRkbCBoeXBzIChuZXdfdGhlYXAgKCN0aGVh
cF9wYXJtIHBhcm0pKQogICAgIHZhbCAoKSA9IGNoYXQgMgogICAgICAgKCJy
ZXNvbHV0aW9uLS1pbml0aWFsaXppbmctLSN0aG1zPSIgXiBpbnRfdG9fc3Ry
aW5nIChsZW5ndGggdGhtcykgXgogICAgICAgICItLSNoeXBzPSIgXiBpbnRf
dG9fc3RyaW5nIChsZW5ndGggaHlwcykgXgogICAgICAgICItLWZhY3RzPSIg
XiBzdG9yZV9pbmZvIGZhY3RzIF4KICAgICAgICAiLS11bnVzZWQ9IiBeIHRo
ZWFwX2luZm8gdW51c2VkIF4gIi5cbiIpCiAgIGluCiAgICAgZm4gZ29hbHMg
PT4gd3JhcHBlciBnb2FscyAoZmFjdHMsIHVzZWQsIHVudXNlZCkgKCkKICAg
ZW5kfTsKCmZ1biByZXNvbHV0aW9uJyBwYXJtID0KICAoaWYgI3Bvc2l0aXZl
X3JlZmluZW1lbnQgcGFybSB0aGVuIHNldF9vZl9zdXBwb3J0IGV2ZXJ5dGhp
bmcgZWxzZSBJKQogIChyYXdfcmVzb2x1dGlvbiBwYXJtKTsKCnZhbCByZXNv
bHV0aW9uID0gcmVzb2x1dGlvbicgZGVmYXVsdHM7CgooKiBxdWljayB0ZXN0
aW5nCmxvYWQgIlByb2JsZW0xIjsKb3BlbiBQcm9ibGVtMTsKdmFsIHRpbWUg
PSBNb3NtbC50aW1lOwpxdW90YXRpb24gOj0gdHJ1ZTsKaW5zdGFsbFBQIHBw
X3Rlcm07Cmluc3RhbGxQUCBwcF9mb3JtdWxhOwppbnN0YWxsUFAgU3Vic3Qx
LnBwX3N1YnN0OwppbnN0YWxsUFAgcHBfdGhtOwoKKCogVGVzdGluZyB0aGUg
cmVzb2x1dGlvbiBwcm92ZXIgKikKCnZhbCBsaW1pdCA6IGxpbWl0IHJlZiA9
IHJlZiB7aW5mcyA9IE5PTkUsIHRpbWUgPSBTT01FIDMwLjB9OwpmdW4gcmVz
b2x1dGlvbl9wcm92ZSBnID0KICB0cnkgKHRpbWUgcmVmdXRlKQogIChpbml0
aWFsaXplIChzZXRfb2Zfc3VwcG9ydCBhbGxfbmVnYXRpdmUgcmVzb2x1dGlv
bikKICAge2xpbWl0ID0gIWxpbWl0LCB0aG1zID0gW10sIGh5cHMgPSBheGlv
bWF0aXplIChOb3QgKGdlbmVyYWxpemUgZykpfSk7CgpheGlvbWF0aXplIChO
b3QgKGdlbmVyYWxpemUgVHJ1ZSkpOwpyZXNvbHV0aW9uX3Byb3ZlIFRydWU7
Cgp2YWwgcHJvcDEzID0gcGFyc2VfZm9ybXVsYSAoZ2V0IG5vbmVxdWFsaXR5
ICJQUk9QXzEzIik7CmF4aW9tYXRpemUgKE5vdCAoZ2VuZXJhbGl6ZSBwcm9w
MTMpKTsKcmVzb2x1dGlvbl9wcm92ZSBwcm9wMTM7Cgp2YWwgcDMzID0gcGFy
c2VfZm9ybXVsYSAoZ2V0IG5vbmVxdWFsaXR5ICJQMzMiKTsKYXhpb21hdGl6
ZSAoTm90IChnZW5lcmFsaXplIHAzMykpOwpyZXNvbHV0aW9uX3Byb3ZlIHAz
MzsKCnZhbCBwNTkgPSBwYXJzZV9mb3JtdWxhIChnZXQgbm9uZXF1YWxpdHkg
IlA1OSIpOwp2YWwgdGhzID0gYXhpb21hdGl6ZSAoTm90IChnZW5lcmFsaXpl
IHA1OSkpOwpyZXNvbHV0aW9uX3Byb3ZlIHA1OTsKCnZhbCBwMzkgPSBwYXJz
ZV9mb3JtdWxhIChnZXQgbm9uZXF1YWxpdHkgIlAzOSIpOwpjbGF1c2FsIChO
b3QgKGdlbmVyYWxpemUgcDM5KSk7CmF4aW9tYXRpemUgKE5vdCAoZ2VuZXJh
bGl6ZSBwMzkpKTsKcmVzb2x1dGlvbl9wcm92ZSBwMzk7Cgp2YWwgbnVtMTQg
PSBwYXJzZV9mb3JtdWxhIChnZXQgdHB0cCAiTlVNMDE0LTEiKTsKcmVzb2x1
dGlvbl9wcm92ZSBudW0xNDsKCnZhbCBwNTUgPSBwYXJzZV9mb3JtdWxhIChn
ZXQgbm9uZXF1YWxpdHkgIlA1NSIpOwpyZXNvbHV0aW9uX3Byb3ZlIHA1NTsK
CnZhbCBwMjYgPSBwYXJzZV9mb3JtdWxhIChnZXQgbm9uZXF1YWxpdHkgIlAy
NiIpOwpjbGF1c2FsIChOb3QgKGdlbmVyYWxpemUgcDI2KSk7CnJlc29sdXRp
b25fcHJvdmUgcDI2OwoKdmFsIGxvcyA9IHBhcnNlX2Zvcm11bGEgKGdldCBu
b25lcXVhbGl0eSAiTE9TIik7CnJlc29sdXRpb25fcHJvdmUgbG9zOwoKdmFs
IHJlZHVjZWRfbnVtMjg0ID0gcGFyc2VfZm9ybXVsYQogIFsKCgoKCgpRVU9U
RSAiZmlib25hY2NpIDAgKHMgMCkgL1xcIGZpYm9uYWNjaSAocyAwKSAocyAw
KSAvXFxcbiAgICgheCB5IHogeCcgeScgeicuXG4gICAgICB+c3VtIHggKHMg
KHMgMCkpIHogXFwvIH5zdW0geSAocyAwKSB6IFxcL1xuICAgICAgfmZpYm9u
YWNjaSB4IHgnIFxcLyB+Zmlib25hY2NpIHkgeScgXFwvIH5zdW0geCcgeScg
eicgXFwvXG4gICAgICBmaWJvbmFjY2kgeiB6JykgL1xcICgheC4gc3VtIHgg
MCB4KSAvXFxcbiAgICgheCB5IHouIH5zdW0geCB5IHogXFwvIHN1bSB4IChz
IHkpIChzIHopKSAvXFxcbiAgICgheC4gfmZpYm9uYWNjaSAocyAocyAocyAo
cyAocyAocyAocyAocyAwKSkpKSkpKSkgeCkgPT0+IEYiXTsKcmVzb2x1dGlv
bl9wcm92ZSByZWR1Y2VkX251bTI4NDsKCnZhbCBwMjkgPSBwYXJzZV9mb3Jt
dWxhIChnZXQgbm9uZXF1YWxpdHkgIlAyOSIpOwpjbGF1c2FsIChOb3QgKGdl
bmVyYWxpemUgcDI5KSk7CnJlc29sdXRpb25fcHJvdmUgcDI5OwoKdmFsIG51
bTEgPSBwYXJzZV9mb3JtdWxhIChnZXQgdHB0cCAiTlVNMDAxLTEiKTsKcmVz
b2x1dGlvbl9wcm92ZSBudW0xOwoKdmFsIGdpbG1vcmU5ID0gcGFyc2VfZm9y
bXVsYSAoZ2V0IG5vbmVxdWFsaXR5ICJHSUxNT1JFXzkiKTsKYXhpb21hdGl6
ZSAoTm90IChnZW5lcmFsaXplIGdpbG1vcmU5KSk7CnJlc29sdXRpb25fcHJv
dmUgZ2lsbW9yZTk7Cgp2YWwgbW9kZWxfY29tcGxldGVuZXNzID0gcGFyc2Vf
Zm9ybXVsYSAoZ2V0IG5vbmVxdWFsaXR5ICJNT0RFTF9DT01QTEVURU5FU1Mi
KTsKcmVzb2x1dGlvbl9wcm92ZSBtb2RlbF9jb21wbGV0ZW5lc3M7CiopCgpl
bmQKKCojbGluZSAwLjAgInNyYy9NZXRpczEuc2lnIiopCigqID09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0gKikKKCogVEhFIE1FVElTIENPTUJJTkFU
SU9OIE9GIFBST09GIFBST0NFRFVSRVMgRk9SIEZJUlNULU9SREVSIExPR0lD
ICAgICAgICAgICAqKQooKiBDcmVhdGVkIGJ5IEpvZSBIdXJkLCBTZXB0ZW1i
ZXIgMjAwMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICopCigqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKikKCnNpZ25h
dHVyZSBNZXRpczEgPQpzaWcKCnR5cGUgZm9ybXVsYSAgICAgPSBUZXJtMS5m
b3JtdWxhCnR5cGUgdGhtICAgICAgICAgPSBUaG0xLnRobQp0eXBlIGxpbWl0
ICAgICAgID0gTWV0ZXIxLmxpbWl0CnR5cGUgc29sdmVyICAgICAgPSBTb2x2
ZXIxLnNvbHZlcgp0eXBlIHNvbHZlcl9ub2RlID0gU29sdmVyMS5zb2x2ZXJf
bm9kZQoKKCogVHVuaW5nIHBhcmFtZXRlcnMgKikKdHlwZSBNcGFybSA9IE1l
c29uMS5wYXJhbWV0ZXJzCnR5cGUgUnBhcm0gPSBSZXNvbHV0aW9uMS5wYXJh
bWV0ZXJzCnR5cGUgcGFyYW1ldGVycyA9CiAge21lc29uICAgICAgICAgICA6
IGJvb2wsCiAgIGRlbHRhICAgICAgICAgICA6IGJvb2wsCiAgIHJlc29sdXRp
b24gICAgICA6IGJvb2wsCiAgIG1lc29uX3Bhcm0gICAgICA6IE1wYXJtLAog
ICByZXNvbHV0aW9uX3Bhcm0gOiBScGFybX0KCnZhbCBkZWZhdWx0cyAgICAg
ICAgICAgICAgICAgICAgOiBwYXJhbWV0ZXJzCnZhbCB1cGRhdGVfcGFybV9t
ZXNvbiAgICAgICAgICAgOiAoYm9vbCAtPiBib29sKSAtPiBwYXJhbWV0ZXJz
IC0+IHBhcmFtZXRlcnMKdmFsIHVwZGF0ZV9wYXJtX2RlbHRhICAgICAgICAg
ICA6IChib29sIC0+IGJvb2wpIC0+IHBhcmFtZXRlcnMgLT4gcGFyYW1ldGVy
cwp2YWwgdXBkYXRlX3Bhcm1fcmVzb2x1dGlvbiAgICAgIDogKGJvb2wgLT4g
Ym9vbCkgLT4gcGFyYW1ldGVycyAtPiBwYXJhbWV0ZXJzCnZhbCB1cGRhdGVf
cGFybV9tZXNvbl9wYXJtICAgICAgOiAoTXBhcm0gLT4gTXBhcm0pIC0+IHBh
cmFtZXRlcnMgLT4gcGFyYW1ldGVycwp2YWwgdXBkYXRlX3Bhcm1fcmVzb2x1
dGlvbl9wYXJtIDogKFJwYXJtIC0+IFJwYXJtKSAtPiBwYXJhbWV0ZXJzIC0+
IHBhcmFtZXRlcnMKCigqIFRoZSBtZXRpcyBjb21iaW5hdGlvbiBvZiBzb2x2
ZXJzICopCnZhbCBtZXRpcycgOiBwYXJhbWV0ZXJzIC0+IHNvbHZlcl9ub2Rl
CnZhbCBtZXRpcyAgOiBzb2x2ZXJfbm9kZSAgICAgICAgICAgICAgICAoKiBV
c2VzIGRlZmF1bHRzICopCgooKiBBIHVzZXItZnJpZW5kbHkgaW50ZXJmYWNl
ICopCnZhbCBzZXR0aW5ncyAgOiBwYXJhbWV0ZXJzIHJlZiAgICAgICAgICAo
KiBTdGFydHMgb2ZmIGFzIGRlZmF1bHRzICopCnZhbCBsaW1pdCAgICAgOiBs
aW1pdCByZWYgICAgICAgICAgICAgICAoKiBTdGFydHMgb2ZmIGFzIDEwIHNl
Y29uZHMgKikKdmFsIHJhd19wcm92ZSA6IGZvcm11bGEgLT4gdGhtIG9wdGlv
biAgICgqIEV4cGVjdHMgYSA9PT4gYiA9PT4gRiAqKQp2YWwgcHJvdmUgICAg
IDogZm9ybXVsYSAtPiB0aG0gb3B0aW9uICAgKCogQWRkcyBlcSBheGlvbXMs
IGNvbnZlcnRzIHRvIENORiAqKQp2YWwgcXVlcnkgICAgIDogZm9ybXVsYSAt
PiBzb2x2ZXIgICAgICAgKCogUHJvbG9nIHF1ZXJ5IGVuZ2luZSAqKQoKZW5k
CigqI2xpbmUgMC4wICJzcmMvTWV0aXMxLnNtbCIqKQooKiA9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09ICopCigqIFRIRSBNRVRJUyBDT01CSU5BVElP
TiBPRiBQUk9PRiBQUk9DRURVUkVTIEZPUiBGSVJTVC1PUkRFUiBMT0dJQyAg
ICAgICAgICAgKikKKCogQ3JlYXRlZCBieSBKb2UgSHVyZCwgU2VwdGVtYmVy
IDIwMDEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAq
KQooKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICopCgooKgphcHAg
bG9hZAogWyJVc2VmdWwiLCAiTW9zbWwiLCAiVGVybTEiLCAiVGhtMSIsICJD
YW5vbjEiLAogICJTb2x2ZXIxIiwgIk1lc29uMSIsICJSZXNvbHV0aW9uMSJd
OwoqKQoKKCoKKikKc3RydWN0dXJlIE1ldGlzMSA6PiBNZXRpczEgPQpzdHJ1
Y3QKCm9wZW4gVXNlZnVsIFRlcm0xIFRobTEgTWV0ZXIxIENhbm9uMSBTb2x2
ZXIxIE1lc29uMSBSZXNvbHV0aW9uMTsKCmluZml4IHwtPiA6Oj4gQD4gb28g
IyMgOjoqIDo6QDsKCigqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0g
KikKKCogVHVuaW5nIHBhcmFtZXRlcnMuICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKQooKiAtLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICopCgp0eXBlIE1wYXJtID0gTWVz
b24xLnBhcmFtZXRlcnM7CnR5cGUgUnBhcm0gPSBSZXNvbHV0aW9uMS5wYXJh
bWV0ZXJzOwoKdHlwZSBwYXJhbWV0ZXJzID0KICB7bWVzb24gICAgICAgICAg
IDogYm9vbCwKICAgZGVsdGEgICAgICAgICAgIDogYm9vbCwKICAgcmVzb2x1
dGlvbiAgICAgIDogYm9vbCwKICAgbWVzb25fcGFybSAgICAgIDogTXBhcm0s
CiAgIHJlc29sdXRpb25fcGFybSA6IFJwYXJtfTsKCnZhbCBkZWZhdWx0cyA9
CiAge21lc29uICAgICAgICAgICA9IHRydWUsCiAgIGRlbHRhICAgICAgICAg
ICA9IHRydWUsCiAgIHJlc29sdXRpb24gICAgICA9IHRydWUsCiAgIG1lc29u
X3Bhcm0gICAgICA9IE1lc29uMS5kZWZhdWx0cywKICAgcmVzb2x1dGlvbl9w
YXJtID0gUmVzb2x1dGlvbjEuZGVmYXVsdHN9OwoKZnVuIHVwZGF0ZV9wYXJt
X21lc29uIGYgcGFybSA9CiAgbGV0CiAgICB2YWwge21lc29uLCBkZWx0YSwg
cmVzb2x1dGlvbiwgbWVzb25fcGFybSwgcmVzb2x1dGlvbl9wYXJtfSA9IHBh
cm0KICBpbgogICAge21lc29uID0gZiBtZXNvbiwgZGVsdGEgPSBkZWx0YSwg
cmVzb2x1dGlvbiA9IHJlc29sdXRpb24sCiAgICAgbWVzb25fcGFybSA9IG1l
c29uX3Bhcm0sIHJlc29sdXRpb25fcGFybSA9IHJlc29sdXRpb25fcGFybX0K
ICBlbmQ7CgpmdW4gdXBkYXRlX3Bhcm1fZGVsdGEgZiBwYXJtID0KICBsZXQK
ICAgIHZhbCB7bWVzb24sIGRlbHRhLCByZXNvbHV0aW9uLCBtZXNvbl9wYXJt
LCByZXNvbHV0aW9uX3Bhcm19ID0gcGFybQogIGluCiAgICB7bWVzb24gPSBt
ZXNvbiwgZGVsdGEgPSBmIGRlbHRhLCByZXNvbHV0aW9uID0gcmVzb2x1dGlv
biwKICAgICBtZXNvbl9wYXJtID0gbWVzb25fcGFybSwgcmVzb2x1dGlvbl9w
YXJtID0gcmVzb2x1dGlvbl9wYXJtfQogIGVuZDsKCmZ1biB1cGRhdGVfcGFy
bV9yZXNvbHV0aW9uIGYgcGFybSA9CiAgbGV0CiAgICB2YWwge21lc29uLCBk
ZWx0YSwgcmVzb2x1dGlvbiwgbWVzb25fcGFybSwgcmVzb2x1dGlvbl9wYXJt
fSA9IHBhcm0KICBpbgogICAge21lc29uID0gbWVzb24sIGRlbHRhID0gZGVs
dGEsIHJlc29sdXRpb24gPSBmIHJlc29sdXRpb24sCiAgICAgbWVzb25fcGFy
bSA9IG1lc29uX3Bhcm0sIHJlc29sdXRpb25fcGFybSA9IHJlc29sdXRpb25f
cGFybX0KICBlbmQ7CgpmdW4gdXBkYXRlX3Bhcm1fbWVzb25fcGFybSBmIHBh
cm0gPQogIGxldAogICAgdmFsIHttZXNvbiwgZGVsdGEsIHJlc29sdXRpb24s
IG1lc29uX3Bhcm0sIHJlc29sdXRpb25fcGFybX0gPSBwYXJtCiAgaW4KICAg
IHttZXNvbiA9IG1lc29uLCBkZWx0YSA9IGRlbHRhLCByZXNvbHV0aW9uID0g
cmVzb2x1dGlvbiwKICAgICBtZXNvbl9wYXJtID0gZiBtZXNvbl9wYXJtLCBy
ZXNvbHV0aW9uX3Bhcm0gPSByZXNvbHV0aW9uX3Bhcm19CiAgZW5kOwoKZnVu
IHVwZGF0ZV9wYXJtX3Jlc29sdXRpb25fcGFybSBmIHBhcm0gPQogIGxldAog
ICAgdmFsIHttZXNvbiwgZGVsdGEsIHJlc29sdXRpb24sIG1lc29uX3Bhcm0s
IHJlc29sdXRpb25fcGFybX0gPSBwYXJtCiAgaW4KICAgIHttZXNvbiA9IG1l
c29uLCBkZWx0YSA9IGRlbHRhLCByZXNvbHV0aW9uID0gcmVzb2x1dGlvbiwK
ICAgICBtZXNvbl9wYXJtID0gbWVzb25fcGFybSwgcmVzb2x1dGlvbl9wYXJt
ID0gZiByZXNvbHV0aW9uX3Bhcm19CiAgZW5kOwoKKCogLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLSAqKQooKiBUaGUgbWV0aXMgY29tYmluYXRpb24g
b2Ygc29sdmVycy4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICopCigqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKikK
CmZ1biBtZXRpcycge21lc29uID0gbSwgZGVsdGEgPSBkLCByZXNvbHV0aW9u
ID0gciwgbWVzb25fcGFybSwgcmVzb2x1dGlvbl9wYXJtfSA9CiAgY29tYmlu
ZQogICgoaWYgbSB0aGVuIGNvbnMgKHRpbWUxLCBtZXNvbicgbWVzb25fcGFy
bSkgZWxzZSBJKQogICAoKGlmIHIgdGhlbiBjb25zICh0aW1lMSwgcmVzb2x1
dGlvbicgcmVzb2x1dGlvbl9wYXJtKSBlbHNlIEkpCiAgICAoKGlmIGQgdGhl
biBjb25zICh0aW1lMiwgZGVsdGEnIG1lc29uX3Bhcm0pIGVsc2UgSSkKICAg
ICBbXSkpKTsKCnZhbCBtZXRpcyA9IG1ldGlzJyBkZWZhdWx0czsKCigqIC0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKikKKCogQSB1c2VyLWZyaWVu
ZGx5IGludGVyZmFjZS4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAqKQooKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tICopCgp2YWwgc2V0dGluZ3MgPSByZWYgZGVmYXVsdHM7Cgp2YWwg
bGltaXQgOiBsaW1pdCByZWYgPSByZWYge3RpbWUgPSBOT05FLCBpbmZzID0g
Tk9ORX07CgpmdW4gcmF3X3Byb3ZlIChJbXAgKGEsIEltcCAoYiwgRmFsc2Up
KSkgPQogIGxldAogICAgdmFsICh0aG1zLCBoeXBzKSA9IChheGlvbWF0aXpl
IGEsIGF4aW9tYXRpemUgYikKICAgIHZhbCBzb2x2ID0gbWV0aXMnICghc2V0
dGluZ3MpCiAgaW4KICAgIHJlZnV0ZSAoaW5pdGlhbGl6ZSBzb2x2IHtsaW1p
dCA9ICFsaW1pdCwgdGhtcyA9IHRobXMsIGh5cHMgPSBoeXBzfSkKICBlbmQK
ICB8IHJhd19wcm92ZSBfID0gcmFpc2UgRVJSICJyYXdfcHJvdmUiICJmb3Jt
dWxhIG5vdCBvZiB0eXBlIGEgPT0+IGIgPT0+IEYiOwoKZnVuIHByb3ZlIGcg
PQogIGxldAogICAgdmFsIGh5cHMgPSBlcV9heGlvbWF0aXplJyAoTm90IChn
ZW5lcmFsaXplIGcpKQogICAgdmFsIHNvbHYgPSBzZXRfb2Zfc3VwcG9ydCBh
bGxfbmVnYXRpdmUgKG1ldGlzJyAoIXNldHRpbmdzKSkKICBpbgogICAgcmVm
dXRlIChpbml0aWFsaXplIHNvbHYge2xpbWl0ID0gIWxpbWl0LCB0aG1zID0g
W10sIGh5cHMgPSBoeXBzfSkKICBlbmQ7CgpmdW4gcXVlcnkgZGF0YWJhc2Ug
PQogIGluaXRpYWxpemUgcHJvbG9nIHt0aG1zID0gYXhpb21hdGl6ZSBkYXRh
YmFzZSwgaHlwcyA9IFtdLCBsaW1pdCA9IHVubGltaXRlZH07CgooKiBxdWlj
ayB0ZXN0aW5nCnZhbCB0aW1lID0gTW9zbWwudGltZTsKcXVvdGF0aW9uIDo9
IHRydWU7Cmluc3RhbGxQUCBwcF90ZXJtOwppbnN0YWxsUFAgcHBfZm9ybXVs
YTsKaW5zdGFsbFBQIFN1YnN0MS5wcF9zdWJzdDsKaW5zdGFsbFBQIHBwX3Ro
bTsKCigqIFRlc3RpbmcgdGhlIG1ldGlzIHByb3ZlciAqKQoKcHJvdmUgVHJ1
ZTsKCnZhbCBwNTkgPSBwYXJzZV9mb3JtdWxhIFtRVU9URSAiKCF4LiBQKHgp
IDw9PiB+UChmKHgpKSkgPT0+ICg/eC4gUCh4KSAvXFwgflAoZih4KSkpIl07
CnZhbCB0aHMgPSBheGlvbWF0aXplIChOb3QgKGdlbmVyYWxpemUgcDU5KSk7
CnByb3ZlIHA1OTsKCnZhbCBwMzkgPSBwYXJzZV9mb3JtdWxhIFtRVU9URSAi
fig/eC4gIXkuIFAoeSx4KSA8PT4gflAoeSx5KSkiXTsKY2xhdXNhbCAoTm90
IChnZW5lcmFsaXplIHAzOSkpOwpheGlvbWF0aXplIChOb3QgKGdlbmVyYWxp
emUgcDM5KSk7CnByb3ZlIHAzOTsKCnZhbCBudW0xNCA9IHBhcnNlX2Zvcm11
bGEKICBbCgoKCgoKUVVPVEUgIighWC4gcHJvZHVjdChYLCBYLCBzcXVhcmUo
WCkpKSAvXFxcbiAgICghWiBYIFkuIH5wcm9kdWN0KFgsIFksIFopIFxcLyBw
cm9kdWN0KFksIFgsIFopKSAvXFxcbiAgICghWiBYIFkuIH5wcm9kdWN0KFgs
IFksIFopIFxcLyBkaXZpZGVzKFgsIFopKSAvXFxcbiAgICghWSBYIFYgWi5c
biAgICAgIH5wcmltZShYKSBcXC8gfnByb2R1Y3QoWSwgWiwgVikgXFwvIH5k
aXZpZGVzKFgsIFYpIFxcLyBkaXZpZGVzKFgsIFkpIFxcL1xuICAgICAgZGl2
aWRlcyhYLCBaKSkgL1xcIHByaW1lKGEpIC9cXFxuICAgcHJvZHVjdChhLCBz
cXVhcmUoYyksIHNxdWFyZShiKSkgL1xcIH5kaXZpZGVzKGEsIGIpID09PiBG
Il07CnByb3ZlIG51bTE0OwoKdmFsIHAyNiA9IHBhcnNlX2Zvcm11bGEKIFsK
ClFVT1RFICIoKD94LiBQKHgpKSA8PT4gKD94LiBRKHgpKSkgL1xcXG4gICAo
IXggeS4gUCh4KSAvXFwgUSh5KSA9PT4gKFIoeCkgPD0+IFUoeSkpKSA9PT5c
biAgICgoIXguIFAoeCkgPT0+IFIoeCkpIDw9PiAoIXguIFEoeCkgPT0+IFUo
eCkpKSJdOwpjbGF1c2FsIChOb3QgKGdlbmVyYWxpemUgcDI2KSk7CnByb3Zl
IHAyNjsKCnZhbCBsb3MgPSBwYXJzZV9mb3JtdWxhCiBbCgpRVU9URSAiKCF4
IHkgei4gUCB4IHkgPT0+IFAgeSB6ID09PiBQIHggeikgL1xcXG4gICgheCB5
IHouIFEgeCB5ID09PiBRIHkgeiA9PT4gUSB4IHopIC9cXCAoIXggeS4gUSB4
IHkgPT0+IFEgeSB4KSAvXFxcbiAgKCF4IHkuIFAgeCB5IFxcLyBRIHggeSkg
PT0+ICgheCB5LiBQIHggeSkgXFwvICF4IHkuIFEgeCB5Il07CnRyeSBwcm92
ZSBsb3M7Cgp2YWwgcHV6MiA9IHBhcnNlX2Zvcm11bGEKICBbCgoKCgoKCgoK
CgoKCgoKCgoKCgoKCgoKCgoKUVVPVEUgIighWC4gZXF1YWwoWCwgWCkpIC9c
XCAoIVkgWC4gfmVxdWFsKFgsIFkpIFxcLyBlcXVhbChZLCBYKSkgL1xcXG4g
ICAoIVogWCBZLiB+ZXF1YWwoWCwgWSkgXFwvIH5lcXVhbChZLCBaKSBcXC8g
ZXF1YWwoWCwgWikpIC9cXFxuICAgKCFCIEEuIH5lcXVhbChBLCBCKSBcXC8g
ZXF1YWwoZXZlcnlfb25lX2J1dChBKSwgZXZlcnlfb25lX2J1dChCKSkpIC9c
XFxuICAgKCFFIEMgRC4gfmVxdWFsKEMsIEQpIFxcLyB+aGF0ZXMoQywgRSkg
XFwvIGhhdGVzKEQsIEUpKSAvXFxcbiAgICghSCBGX2F2b2lkIEcuXG4gICAg
ICB+ZXF1YWwoRl9hdm9pZCwgRykgXFwvIH5oYXRlcyhILCBGX2F2b2lkKSBc
XC8gaGF0ZXMoSCwgRykpIC9cXFxuICAgKCFLIEkgSi4gfmVxdWFsKEksIEop
IFxcLyB+a2lsbGVkKEksIEspIFxcLyBraWxsZWQoSiwgSykpIC9cXFxuICAg
KCFOIEwgTS4gfmVxdWFsKEwsIE0pIFxcLyB+a2lsbGVkKE4sIEwpIFxcLyBr
aWxsZWQoTiwgTSkpIC9cXFxuICAgKCFQIE8uXG4gICAgICB+ZXF1YWwoTywg
UCkgXFwvIH5saXZlc19hdF9kcmVhZHNidXJ5KE8pIFxcLyBsaXZlc19hdF9k
cmVhZHNidXJ5KFApKSAvXFxcbiAgICghUyBRIFIuIH5lcXVhbChRLCBSKSBc
XC8gfnJpY2hlcihRLCBTKSBcXC8gcmljaGVyKFIsIFMpKSAvXFxcbiAgICgh
ViBUX2F2b2lkIFUuXG4gICAgICB+ZXF1YWwoVF9hdm9pZCwgVSkgXFwvIH5y
aWNoZXIoViwgVF9hdm9pZCkgXFwvIHJpY2hlcihWLCBVKSkgL1xcXG4gICBs
aXZlc19hdF9kcmVhZHNidXJ5KHNvbWVvbmUoKSkgL1xcIGtpbGxlZChzb21l
b25lKCksIGF1bnRfYWdhdGhhKCkpIC9cXFxuICAgbGl2ZXNfYXRfZHJlYWRz
YnVyeShhdW50X2FnYXRoYSgpKSAvXFwgbGl2ZXNfYXRfZHJlYWRzYnVyeShi
dXRsZXIoKSkgL1xcXG4gICBsaXZlc19hdF9kcmVhZHNidXJ5KGNoYXJsZXMo
KSkgL1xcXG4gICAoIVBlcnNvbi5cbiAgICAgIH5saXZlc19hdF9kcmVhZHNi
dXJ5KFBlcnNvbikgXFwvIGVxdWFsKFBlcnNvbiwgYXVudF9hZ2F0aGEoKSkg
XFwvXG4gICAgICBlcXVhbChQZXJzb24sIGJ1dGxlcigpKSBcXC8gZXF1YWwo
UGVyc29uLCBjaGFybGVzKCkpKSAvXFxcbiAgICghVmljdGltIEtpbGxlci4g
fmtpbGxlZChLaWxsZXIsIFZpY3RpbSkgXFwvIGhhdGVzKEtpbGxlciwgVmlj
dGltKSkgL1xcXG4gICAoIVZpY3RpbSBLaWxsZXIuIH5raWxsZWQoS2lsbGVy
LCBWaWN0aW0pIFxcLyB+cmljaGVyKEtpbGxlciwgVmljdGltKSkgL1xcXG4g
ICAoIVBlcnNvbi4gfmhhdGVzKGF1bnRfYWdhdGhhKCksIFBlcnNvbikgXFwv
IH5oYXRlcyhjaGFybGVzKCksIFBlcnNvbikpIC9cXFxuICAgKCFQZXJzb24u
IGVxdWFsKFBlcnNvbiwgYnV0bGVyKCkpIFxcLyBoYXRlcyhhdW50X2FnYXRo
YSgpLCBQZXJzb24pKSAvXFxcbiAgICghUGVyc29uLiByaWNoZXIoUGVyc29u
LCBhdW50X2FnYXRoYSgpKSBcXC8gaGF0ZXMoYnV0bGVyKCksIFBlcnNvbikp
IC9cXFxuICAgKCFQZXJzb24uIH5oYXRlcyhhdW50X2FnYXRoYSgpLCBQZXJz
b24pIFxcLyBoYXRlcyhidXRsZXIoKSwgUGVyc29uKSkgL1xcXG4gICAoIVBl
cnNvbi4gfmhhdGVzKFBlcnNvbiwgZXZlcnlfb25lX2J1dChQZXJzb24pKSkg
L1xcXG4gICB+ZXF1YWwoYXVudF9hZ2F0aGEoKSwgYnV0bGVyKCkpIC9cXFxu
ICAgfmtpbGxlZChhdW50X2FnYXRoYSgpLCBhdW50X2FnYXRoYSgpKSA9PT4g
RiJdOwpwcm92ZSBwdXoyOwoKdmFsIG51bTI4NCA9IHBhcnNlX2Zvcm11bGEK
ICBbCgoKCgoKCgpRVU9URSAiZmlib25hY2NpKDAsIHN1Y2Nlc3NvcigwKSkg
L1xcIGZpYm9uYWNjaShzdWNjZXNzb3IoMCksIHN1Y2Nlc3NvcigwKSkgL1xc
XG4gICAoIU4yIE4xIE4gRjEgRk4gRjIuXG4gICAgICB+c3VtKE4xLCBzdWNj
ZXNzb3IoMCksIE4pIFxcLyB+c3VtKE4yLCBzdWNjZXNzb3Ioc3VjY2Vzc29y
KDApKSwgTikgXFwvXG4gICAgICB+Zmlib25hY2NpKE4xLCBGMSkgXFwvIH5m
aWJvbmFjY2koTjIsIEYyKSBcXC8gfnN1bShGMSwgRjIsIEZOKSBcXC9cbiAg
ICAgIGZpYm9uYWNjaShOLCBGTikpIC9cXCAoIVguIHN1bShYLCAwLCBYKSkg
L1xcXG4gICAoIVogWCBZLiB+c3VtKFgsIFksIFopIFxcLyBzdW0oWCwgc3Vj
Y2Vzc29yKFkpLCBzdWNjZXNzb3IoWikpKSAvXFxcbiAgICghUmVzdWx0Llxu
ICAgICAgfmZpYm9uYWNjaShzdWNjZXNzb3Ioc3VjY2Vzc29yKHN1Y2Nlc3Nv
cihzdWNjZXNzb3Ioc3VjY2Vzc29yKHN1Y2Nlc3NvcihzdWNjZXNzb3Ioc3Vj
Y2Vzc29yKDApKSkpKSkpKSxcbiAgICAgICAgICAgICAgICAgUmVzdWx0KSkg
PT0+IEYiXTsKcHJvdmUgbnVtMjg0OwoKdmFsIHAyOSA9IHBhcnNlX2Zvcm11
bGEKICBbCgpRVU9URSAiKD94LiBQKHgpKSAvXFwgKD94LiBHKHgpKSA9PT5c
biAgICgoIXguIFAoeCkgPT0+IEgoeCkpIC9cXCAoIXguIEcoeCkgPT0+IEoo
eCkpIDw9PlxuICAgICgheCB5LiBQKHgpIC9cXCBHKHkpID09PiBIKHgpIC9c
XCBKKHkpKSkiXTsKY2xhdXNhbCAoTm90IChnZW5lcmFsaXplIHAyOSkpOwpw
cm92ZSBwMjk7Cgp2YWwgbnVtMjcgPSBwYXJzZV9mb3JtdWxhCiAgWwoKCgoK
CgoKCgoKCgoKCgoKCgoKCgpRVU9URSAiKCFBLiBlcXVhbGlzaChhZGQoQSwg
MCksIEEpKSAvXFxcbiAgICghQSBCLiBlcXVhbGlzaChhZGQoQSwgc3VjY2Vz
c29yKEIpKSwgc3VjY2Vzc29yKGFkZChBLCBCKSkpKSAvXFxcbiAgICghQS4g
ZXF1YWxpc2gobXVsdGlwbHkoQSwgMCksIDApKSAvXFxcbiAgICghQSBCLiBl
cXVhbGlzaChtdWx0aXBseShBLCBzdWNjZXNzb3IoQikpLCBhZGQobXVsdGlw
bHkoQSwgQiksIEEpKSkgL1xcXG4gICAoIUIgQS4gfmVxdWFsaXNoKHN1Y2Nl
c3NvcihBKSwgc3VjY2Vzc29yKEIpKSBcXC8gZXF1YWxpc2goQSwgQikpIC9c
XFxuICAgKCFCIEEuIH5lcXVhbGlzaChBLCBCKSBcXC8gZXF1YWxpc2goc3Vj
Y2Vzc29yKEEpLCBzdWNjZXNzb3IoQikpKSAvXFxcbiAgICghQyBBIEIuIH5s
ZXNzKEEsIEIpIFxcLyB+bGVzcyhDLCBBKSBcXC8gbGVzcyhDLCBCKSkgL1xc
XG4gICAoIUMgQiBBLiB+ZXF1YWxpc2goYWRkKHN1Y2Nlc3NvcihBKSwgQiks
IEMpIFxcLyBsZXNzKEIsIEMpKSAvXFxcbiAgICghQiBBLlxuICAgICAgfmxl
c3MoQSwgQikgXFwvXG4gICAgICBlcXVhbGlzaChhZGQoc3VjY2Vzc29yKHBy
ZWRlY2Vzc29yX29mXzFzdF9taW51c18ybmQoQiwgQSkpLCBBKSxcbiAgICAg
ICAgQikpIC9cXCAoIVguIGVxdWFsaXNoKFgsIFgpKSAvXFxcbiAgICghWSBY
LiB+ZXF1YWxpc2goWCwgWSkgXFwvIGVxdWFsaXNoKFksIFgpKSAvXFxcbiAg
ICghWiBYIFkuIH5lcXVhbGlzaChYLCBZKSBcXC8gfmVxdWFsaXNoKFksIFop
IFxcLyBlcXVhbGlzaChYLCBaKSkgL1xcXG4gICAoIUMgQSBCLiB+ZXF1YWxp
c2goQSwgQikgXFwvIGVxdWFsaXNoKG11bHRpcGx5KEEsIEMpLCBtdWx0aXBs
eShCLCBDKSkpIC9cXFxuICAgKCFCIEEuIH5sZXNzKEEsIEIpIFxcLyB+ZXF1
YWxpc2goQSwgQikpIC9cXFxuICAgKCFCIEEuIGxlc3MoQSwgQikgXFwvIGVx
dWFsaXNoKEIsIEEpIFxcLyBsZXNzKEIsIEEpKSAvXFxcbiAgICghQS4gfmxl
c3MoQSwgQSkpIC9cXCAoIUEuIH5lcXVhbGlzaChzdWNjZXNzb3IoQSksIDAp
KSAvXFxcbiAgICghQyBBIEIuXG4gICAgICB+bGVzcyhBLCBCKSBcXC8gZXF1
YWxpc2goQywgMCkgXFwvXG4gICAgICBsZXNzKG11bHRpcGx5KEEsIEMpLCBt
dWx0aXBseShCLCBDKSkpIC9cXCB+bGVzcyhiKCksIGEoKSkgL1xcXG4gICBs
ZXNzKG11bHRpcGx5KGIoKSwgYygpKSwgbXVsdGlwbHkoYSgpLCBjKCkpKSAv
XFwgfmVxdWFsaXNoKGMoKSwgMCkgPT0+XG4gICBGIl07CnByb3ZlIG51bTI3
OwoKdmFsIG1vZGVsX2NvbXBsZXRlbmVzcyA9IHBhcnNlX2Zvcm11bGEKICBb
CgoKCgoKCgpRVU9URSAiKCFNIHAuIHNlbnRlbmNlKHApID09PiBob2xkcyhN
LHApIFxcLyBob2xkcyhNLG5vdChwKSkpIC9cXFxuICAgKCFNIHAuIH4oaG9s
ZHMoTSxwKSAvXFwgaG9sZHMoTSxub3QocCkpKSkgPT0+XG4gICAoKCFwLlxu
ICAgICAgIHNlbnRlbmNlKHApID09PlxuICAgICAgICghTS4gbW9kZWxzKE0s
UykgPT0+IGhvbGRzKE0scCkpIFxcL1xuICAgICAgICghTS4gbW9kZWxzKE0s
UykgPT0+IGhvbGRzKE0sbm90KHApKSkpIDw9PlxuICAgICghTSBNJy5cbiAg
ICAgICBtb2RlbHMoTSxTKSAvXFwgbW9kZWxzKE0nLFMpID09PlxuICAgICAg
ICghcC4gc2VudGVuY2UocCkgPT0+IChob2xkcyhNLHApIDw9PiBob2xkcyhN
JyxwKSkpKSkiXTsKcHJvdmUgbW9kZWxfY29tcGxldGVuZXNzOwoKdmFsIGFn
YXRoYSA9IHBhcnNlX2Zvcm11bGEKICBbCgoKCgoKCgoKCgpRVU9URSAibGl2
ZXMoYWdhdGhhKCkpIC9cXCBsaXZlcyhidXRsZXIoKSkgL1xcIGxpdmVzKGNo
YXJsZXMoKSkgL1xcXG4gICAoa2lsbGVkKGFnYXRoYSgpLGFnYXRoYSgpKSBc
XC8ga2lsbGVkKGJ1dGxlcigpLGFnYXRoYSgpKSBcXC9cbiAgICBraWxsZWQo
Y2hhcmxlcygpLGFnYXRoYSgpKSkgL1xcXG4gICAoIXggeS4ga2lsbGVkKHgs
eSkgPT0+IGhhdGVzKHgseSkgL1xcIH5yaWNoZXIoeCx5KSkgL1xcXG4gICAo
IXguIGhhdGVzKGFnYXRoYSgpLHgpID09PiB+aGF0ZXMoY2hhcmxlcygpLHgp
KSAvXFxcbiAgIChoYXRlcyhhZ2F0aGEoKSxhZ2F0aGEoKSkgL1xcIGhhdGVz
KGFnYXRoYSgpLGNoYXJsZXMoKSkpIC9cXFxuICAgKCF4LiBsaXZlcyh4KSAv
XFwgfnJpY2hlcih4LGFnYXRoYSgpKSA9PT4gaGF0ZXMoYnV0bGVyKCkseCkp
IC9cXFxuICAgKCF4LiBoYXRlcyhhZ2F0aGEoKSx4KSA9PT4gaGF0ZXMoYnV0
bGVyKCkseCkpIC9cXFxuICAgKCF4LiB+aGF0ZXMoeCxhZ2F0aGEoKSkgXFwv
IH5oYXRlcyh4LGJ1dGxlcigpKSBcXC8gfmhhdGVzKHgsY2hhcmxlcygpKSlc
biAgID09PlxuICAga2lsbGVkKGFnYXRoYSgpLGFnYXRoYSgpKSAvXFwgfmtp
bGxlZChidXRsZXIoKSxhZ2F0aGEoKSkgL1xcXG4gICB+a2lsbGVkKGNoYXJs
ZXMoKSxhZ2F0aGEoKSkiXTsKcHJvdmUgYWdhdGhhOwoKdmFsIGJvbzMgPSBw
YXJzZV9mb3JtdWxhCiBbCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoK
CgoKCgoKCgoKCgoKCgoKCgoKCgpRVU9URSAiKCFYLiBlcXVhbChYLCBYKSkg
L1xcICghWSBYLiB+ZXF1YWwoWCwgWSkgXFwvIGVxdWFsKFksIFgpKSAvXFxc
biAgKCFaIFggWS4gfmVxdWFsKFgsIFkpIFxcLyB+ZXF1YWwoWSwgWikgXFwv
IGVxdWFsKFgsIFopKSAvXFxcbiAgKCFZIFguIHN1bShYLCBZLCBhZGQoWCwg
WSkpKSAvXFwgKCFZIFguIHByb2R1Y3QoWCwgWSwgbXVsdGlwbHkoWCwgWSkp
KSAvXFxcbiAgKCFaIFggWS4gfnN1bShYLCBZLCBaKSBcXC8gc3VtKFksIFgs
IFopKSAvXFxcbiAgKCFaIFggWS4gfnByb2R1Y3QoWCwgWSwgWikgXFwvIHBy
b2R1Y3QoWSwgWCwgWikpIC9cXFxuICAoIVguIHN1bShhZGRpdGl2ZV9pZGVu
dGl0eSgpLCBYLCBYKSkgL1xcXG4gICghWC4gc3VtKFgsIGFkZGl0aXZlX2lk
ZW50aXR5KCksIFgpKSAvXFxcbiAgKCFYLiBwcm9kdWN0KG11bHRpcGxpY2F0
aXZlX2lkZW50aXR5KCksIFgsIFgpKSAvXFxcbiAgKCFYLiBwcm9kdWN0KFgs
IG11bHRpcGxpY2F0aXZlX2lkZW50aXR5KCksIFgpKSAvXFxcbiAgKCFaIFgg
WSBWMSBWMyBWNCBWMi5cbiAgICAgfnByb2R1Y3QoWCwgWSwgVjEpIFxcLyB+
cHJvZHVjdChYLCBaLCBWMikgXFwvIH5zdW0oWSwgWiwgVjMpIFxcL1xuICAg
ICB+cHJvZHVjdChYLCBWMywgVjQpIFxcLyBzdW0oVjEsIFYyLCBWNCkpIC9c
XFxuICAoIVogWCBZIFYxIFYzIFY0IFYyLlxuICAgICB+cHJvZHVjdChYLCBZ
LCBWMSkgXFwvIH5wcm9kdWN0KFgsIFosIFYyKSBcXC8gfnN1bShZLCBaLCBW
MykgXFwvXG4gICAgIH5zdW0oVjEsIFYyLCBWNCkgXFwvIHByb2R1Y3QoWCwg
VjMsIFY0KSkgL1xcXG4gICghWiBZIFggVjEgVjMgVjQgVjIuXG4gICAgIH5w
cm9kdWN0KFksIFgsIFYxKSBcXC8gfnByb2R1Y3QoWiwgWCwgVjIpIFxcLyB+
c3VtKFksIFosIFYzKSBcXC9cbiAgICAgfnByb2R1Y3QoVjMsIFgsIFY0KSBc
XC8gc3VtKFYxLCBWMiwgVjQpKSAvXFxcbiAgKCFaIFkgWCBWMSBWMyBWNCBW
Mi5cbiAgICAgfnByb2R1Y3QoWSwgWCwgVjEpIFxcLyB+cHJvZHVjdChaLCBY
LCBWMikgXFwvIH5zdW0oWSwgWiwgVjMpIFxcL1xuICAgICB+c3VtKFYxLCBW
MiwgVjQpIFxcLyBwcm9kdWN0KFYzLCBYLCBWNCkpIC9cXFxuICAoIVogWCBZ
IFYxIFYzIFY0IFYyLlxuICAgICB+c3VtKFgsIFksIFYxKSBcXC8gfnN1bShY
LCBaLCBWMikgXFwvIH5wcm9kdWN0KFksIFosIFYzKSBcXC9cbiAgICAgfnN1
bShYLCBWMywgVjQpIFxcLyBwcm9kdWN0KFYxLCBWMiwgVjQpKSAvXFxcbiAg
KCFaIFggWSBWMSBWMyBWNCBWMi5cbiAgICAgfnN1bShYLCBZLCBWMSkgXFwv
IH5zdW0oWCwgWiwgVjIpIFxcLyB+cHJvZHVjdChZLCBaLCBWMykgXFwvXG4g
ICAgIH5wcm9kdWN0KFYxLCBWMiwgVjQpIFxcLyBzdW0oWCwgVjMsIFY0KSkg
L1xcXG4gICghWiBZIFggVjEgVjMgVjQgVjIuXG4gICAgIH5zdW0oWSwgWCwg
VjEpIFxcLyB+c3VtKFosIFgsIFYyKSBcXC8gfnByb2R1Y3QoWSwgWiwgVjMp
IFxcL1xuICAgICB+c3VtKFYzLCBYLCBWNCkgXFwvIHByb2R1Y3QoVjEsIFYy
LCBWNCkpIC9cXFxuICAoIVogWSBYIFYxIFYzIFY0IFYyLlxuICAgICB+c3Vt
KFksIFgsIFYxKSBcXC8gfnN1bShaLCBYLCBWMikgXFwvIH5wcm9kdWN0KFks
IFosIFYzKSBcXC9cbiAgICAgfnByb2R1Y3QoVjEsIFYyLCBWNCkgXFwvIHN1
bShWMywgWCwgVjQpKSAvXFxcbiAgKCFYLiBzdW0oaW52ZXJzZShYKSwgWCwg
bXVsdGlwbGljYXRpdmVfaWRlbnRpdHkoKSkpIC9cXFxuICAoIVguIHN1bShY
LCBpbnZlcnNlKFgpLCBtdWx0aXBsaWNhdGl2ZV9pZGVudGl0eSgpKSkgL1xc
XG4gICghWC4gcHJvZHVjdChpbnZlcnNlKFgpLCBYLCBhZGRpdGl2ZV9pZGVu
dGl0eSgpKSkgL1xcXG4gICghWC4gcHJvZHVjdChYLCBpbnZlcnNlKFgpLCBh
ZGRpdGl2ZV9pZGVudGl0eSgpKSkgL1xcXG4gICghViBYIFkgVS4gfnN1bShY
LCBZLCBVKSBcXC8gfnN1bShYLCBZLCBWKSBcXC8gZXF1YWwoVSwgVikpIC9c
XFxuICAoIVYgWCBZIFUuIH5wcm9kdWN0KFgsIFksIFUpIFxcLyB+cHJvZHVj
dChYLCBZLCBWKSBcXC8gZXF1YWwoVSwgVikpIC9cXFxuICAoIVcgWCBZIFou
IH5lcXVhbChYLCBZKSBcXC8gfnN1bShYLCBXLCBaKSBcXC8gc3VtKFksIFcs
IFopKSAvXFxcbiAgKCFXIFggWSBaLiB+ZXF1YWwoWCwgWSkgXFwvIH5zdW0o
VywgWCwgWikgXFwvIHN1bShXLCBZLCBaKSkgL1xcXG4gICghVyBYIFkgWi4g
fmVxdWFsKFgsIFkpIFxcLyB+c3VtKFcsIFosIFgpIFxcLyBzdW0oVywgWiwg
WSkpIC9cXFxuICAoIVcgWCBZIFouIH5lcXVhbChYLCBZKSBcXC8gfnByb2R1
Y3QoWCwgVywgWikgXFwvIHByb2R1Y3QoWSwgVywgWikpIC9cXFxuICAoIVcg
WCBZIFouIH5lcXVhbChYLCBZKSBcXC8gfnByb2R1Y3QoVywgWCwgWikgXFwv
IHByb2R1Y3QoVywgWSwgWikpIC9cXFxuICAoIVcgWCBZIFouIH5lcXVhbChY
LCBZKSBcXC8gfnByb2R1Y3QoVywgWiwgWCkgXFwvIHByb2R1Y3QoVywgWiwg
WSkpIC9cXFxuICAoIVcgWCBZLiB+ZXF1YWwoWCwgWSkgXFwvIGVxdWFsKGFk
ZChYLCBXKSwgYWRkKFksIFcpKSkgL1xcXG4gICghVyBYIFkuIH5lcXVhbChY
LCBZKSBcXC8gZXF1YWwoYWRkKFcsIFgpLCBhZGQoVywgWSkpKSAvXFxcbiAg
KCFXIFggWS4gfmVxdWFsKFgsIFkpIFxcLyBlcXVhbChtdWx0aXBseShYLCBX
KSwgbXVsdGlwbHkoWSwgVykpKSAvXFxcbiAgKCFXIFggWS4gfmVxdWFsKFgs
IFkpIFxcLyBlcXVhbChtdWx0aXBseShXLCBYKSwgbXVsdGlwbHkoVywgWSkp
KSAvXFxcbiAgKCFZIFguIH5lcXVhbChYLCBZKSBcXC8gZXF1YWwoaW52ZXJz
ZShYKSwgaW52ZXJzZShZKSkpIC9cXFxuICB+cHJvZHVjdCh4KCksIHgoKSwg
eCgpKSA9PT4gRiJdOwpwcm92ZSBib28zOwoKdmFsIGZsZDUgPSBwYXJzZV9m
b3JtdWxhCiBbCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoK
CgoKCgoKCgoKCgoKCgoKClFVT1RFICIoIVkgWCBWIFcgWiBVLlxuICAgICBz
dW0oWCwgViwgVykgXFwvIH5zdW0oWCwgWSwgVSkgXFwvIH5zdW0oWSwgWiwg
VikgXFwvIH5zdW0oVSwgWiwgVykpIC9cXFxuICAoIVggVSBaIFcgViBZLlxu
ICAgICBzdW0oVSwgWiwgVykgXFwvIH5zdW0oWCwgWSwgVSkgXFwvIH5zdW0o
WSwgWiwgVikgXFwvIH5zdW0oWCwgViwgVykpIC9cXFxuICAoIVguIHN1bShh
ZGRpdGl2ZV9pZGVudGl0eSgpLCBYLCBYKSBcXC8gfmRlZmluZWQoWCkpIC9c
XFxuICAoIVguIHN1bShhZGRpdGl2ZV9pbnZlcnNlKFgpLCBYLCBhZGRpdGl2
ZV9pZGVudGl0eSgpKSBcXC8gfmRlZmluZWQoWCkpIC9cXFxuICAoIVogWSBY
LiBzdW0oWSwgWCwgWikgXFwvIH5zdW0oWCwgWSwgWikpIC9cXFxuICAoIVkg
WCBWIFcgWiBVLlxuICAgICBwcm9kdWN0KFgsIFYsIFcpIFxcLyB+cHJvZHVj
dChYLCBZLCBVKSBcXC8gfnByb2R1Y3QoWSwgWiwgVikgXFwvXG4gICAgIH5w
cm9kdWN0KFUsIFosIFcpKSAvXFxcbiAgKCFYIFUgWiBXIFYgWS5cbiAgICAg
cHJvZHVjdChVLCBaLCBXKSBcXC8gfnByb2R1Y3QoWCwgWSwgVSkgXFwvIH5w
cm9kdWN0KFksIFosIFYpIFxcL1xuICAgICB+cHJvZHVjdChYLCBWLCBXKSkg
L1xcXG4gICghWC4gcHJvZHVjdChtdWx0aXBsaWNhdGl2ZV9pZGVudGl0eSgp
LCBYLCBYKSBcXC8gfmRlZmluZWQoWCkpIC9cXFxuICAoIVguXG4gICAgIHBy
b2R1Y3QobXVsdGlwbGljYXRpdmVfaW52ZXJzZShYKSwgWCwgbXVsdGlwbGlj
YXRpdmVfaWRlbnRpdHkoKSkgXFwvXG4gICAgIHN1bShhZGRpdGl2ZV9pZGVu
dGl0eSgpLCBYLCBhZGRpdGl2ZV9pZGVudGl0eSgpKSBcXC8gfmRlZmluZWQo
WCkpIC9cXFxuICAoIVogWSBYLiBwcm9kdWN0KFksIFgsIFopIFxcLyB+cHJv
ZHVjdChYLCBZLCBaKSkgL1xcXG4gICghWCBDIEQgQiBaIEEgWS5cbiAgICAg
c3VtKEMsIEQsIEIpIFxcLyB+c3VtKFgsIFksIEEpIFxcLyB+cHJvZHVjdChB
LCBaLCBCKSBcXC9cbiAgICAgfnByb2R1Y3QoWCwgWiwgQykgXFwvIH5wcm9k
dWN0KFksIFosIEQpKSAvXFxcbiAgKCFYIEEgWiBCIEMgRCBZLlxuICAgICBw
cm9kdWN0KEEsIFosIEIpIFxcLyB+c3VtKFgsIFksIEEpIFxcLyB+cHJvZHVj
dChYLCBaLCBDKSBcXC9cbiAgICAgfnByb2R1Y3QoWSwgWiwgRCkgXFwvIH5z
dW0oQywgRCwgQikpIC9cXFxuICAoIVggWS4gZGVmaW5lZChhZGQoWCwgWSkp
IFxcLyB+ZGVmaW5lZChYKSBcXC8gfmRlZmluZWQoWSkpIC9cXFxuICBkZWZp
bmVkKGFkZGl0aXZlX2lkZW50aXR5KCkpIC9cXFxuICAoIVguIGRlZmluZWQo
YWRkaXRpdmVfaW52ZXJzZShYKSkgXFwvIH5kZWZpbmVkKFgpKSAvXFxcbiAg
KCFYIFkuIGRlZmluZWQobXVsdGlwbHkoWCwgWSkpIFxcLyB+ZGVmaW5lZChY
KSBcXC8gfmRlZmluZWQoWSkpIC9cXFxuICBkZWZpbmVkKG11bHRpcGxpY2F0
aXZlX2lkZW50aXR5KCkpIC9cXFxuICAoIVguXG4gICAgIGRlZmluZWQobXVs
dGlwbGljYXRpdmVfaW52ZXJzZShYKSkgXFwvIH5kZWZpbmVkKFgpIFxcL1xu
ICAgICBzdW0oYWRkaXRpdmVfaWRlbnRpdHkoKSwgWCwgYWRkaXRpdmVfaWRl
bnRpdHkoKSkpIC9cXFxuICAoIVkgWC4gc3VtKFgsIFksIGFkZChYLCBZKSkg
XFwvIH5kZWZpbmVkKFgpIFxcLyB+ZGVmaW5lZChZKSkgL1xcXG4gICghWSBY
LiBwcm9kdWN0KFgsIFksIG11bHRpcGx5KFgsIFkpKSBcXC8gfmRlZmluZWQo
WCkgXFwvIH5kZWZpbmVkKFkpKSAvXFxcbiAgKCFZIFguXG4gICAgIHN1bShh
ZGRpdGl2ZV9pZGVudGl0eSgpLCBYLCBZKSBcXC8gfmxlc3Nfb3JfZXF1YWwo
WCwgWSkgXFwvXG4gICAgIH5sZXNzX29yX2VxdWFsKFksIFgpKSAvXFxcbiAg
KCFZIFggWi5cbiAgICAgbGVzc19vcl9lcXVhbChYLCBaKSBcXC8gfmxlc3Nf
b3JfZXF1YWwoWCwgWSkgXFwvXG4gICAgIH5sZXNzX29yX2VxdWFsKFksIFop
KSAvXFxcbiAgKCFZIFguXG4gICAgIGxlc3Nfb3JfZXF1YWwoWCwgWSkgXFwv
IGxlc3Nfb3JfZXF1YWwoWSwgWCkgXFwvIH5kZWZpbmVkKFgpIFxcL1xuICAg
ICB+ZGVmaW5lZChZKSkgL1xcXG4gICghWCBVIFYgWiBZLlxuICAgICBsZXNz
X29yX2VxdWFsKFUsIFYpIFxcLyB+bGVzc19vcl9lcXVhbChYLCBZKSBcXC8g
fnN1bShYLCBaLCBVKSBcXC9cbiAgICAgfnN1bShZLCBaLCBWKSkgL1xcXG4g
ICghWCBaIFkuXG4gICAgIGxlc3Nfb3JfZXF1YWwoYWRkaXRpdmVfaWRlbnRp
dHkoKSwgWikgXFwvXG4gICAgIH5sZXNzX29yX2VxdWFsKGFkZGl0aXZlX2lk
ZW50aXR5KCksIFgpIFxcL1xuICAgICB+bGVzc19vcl9lcXVhbChhZGRpdGl2
ZV9pZGVudGl0eSgpLCBZKSBcXC8gfnByb2R1Y3QoWCwgWSwgWikpIC9cXFxu
ICB+c3VtKGFkZGl0aXZlX2lkZW50aXR5KCksIGFkZGl0aXZlX2lkZW50aXR5
KCksXG4gICAgIG11bHRpcGxpY2F0aXZlX2lkZW50aXR5KCkpIC9cXCBkZWZp
bmVkKGEoKSkgL1xcIGRlZmluZWQoYigpKSAvXFxcbiAgKCFYLiB+c3VtKGEo
KSwgWCwgYigpKSkgPT0+IEYiXTsKcHJvdmUgZmxkNTsKKikKCmVuZAooKiNs
aW5lIDAuMCAiZGF0YS9wcmVhbWJsZS5zbWwiKikKKCogPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PSAqKQooKiBTRVRUSU5HIFVQIFRIRSBFTlZJUk9O
TUVOVCBJTiBXSElDSCBXRSBDQU4gRVhFQ1VURSBUSEUgTUVUSVMgUFJPVkVS
ICAgICAgICopCigqIENyZWF0ZWQgYnkgSm9lIEh1cmQsIFNlcHRlbWJlciAy
MDAxICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKikK
KCogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqKQoKKCogTG9hZGlu
ZyB0aGUgbW9kdWxlcyB3ZSB1c2UgKikKCnZhbCAoKSA9IGFwcCBsb2FkCiAg
WyJDb21tYW5kTGluZSIsCiAgICJNaWx0b24iLAogICAiVXNlZnVsIiwgIlRl
cm0xIiwgIkNhbm9uMSIsICJUcHRwMSIsICJNZXRpczEiLCAiUHJvYmxlbTEi
XTsKCigqIEluZml4IG9wZXJhdG9ycyAqKQoKaW5maXhyICMjIHwtPiA6Oj4g
QD4gb287CgooKiBQcmV0dHkgcHJpbnRlcnMgKikKCnZhbCAoKSA9IGluc3Rh
bGxQUCBUZXJtMS5wcF90ZXJtOwp2YWwgKCkgPSBpbnN0YWxsUFAgVGVybTEu
cHBfZm9ybXVsYTsKdmFsICgpID0gaW5zdGFsbFBQIFN1YnN0MS5wcF9zdWJz
dDsKdmFsICgpID0gaW5zdGFsbFBQIFRobTEucHBfdGhtOwoKKCogUGFyc2lu
ZyBxdW90YXRpb25zICopCgp2YWwgKCkgPSBxdW90YXRpb24gOj0gdHJ1ZTsK
CigqIENyZWF0aW5nIG5pY2Ugb3V0cHV0ICopCgpsb2NhbAogIGZ1biBkdXAg
XyAwIGwgPSBsIHwgZHVwIHggbiBsID0gZHVwIHggKG4gLSAxKSAoeCA6OiBs
KTsKICBmdW4gY2hzIHggbiA9IGltcGxvZGUgKGR1cCB4IG4gW10pOwppbgog
IGZ1biBhZHZlcnRpemUgcyA9IHByaW50ICgiPT0iIF4gcyBeIGNocyAjIj0i
ICg3NyAtIHNpemUgcykgXiAiXG5cbiIpOwogIGZ1biBzZXBhcmF0b3IgKCkg
PSBwcmludCAoY2hzICMiLSIgNzkgXiAiXG5cbiIpOwplbmQ7CgpmdW4gY3V0
b2ZmIG1heCA9CiAgbGV0CiAgICBmdW4gY3V0IGZlYXMgc29mYSBsID0KICAg
ICAgbGV0IHZhbCBwb3NzID0gc29mYSBeICIgLi4uICIgXiBVc2VmdWwuaW50
X3RvX3N0cmluZyAobGVuZ3RoIGwpIF4gIiBtb3JlIgogICAgICBpbiBjdXQn
IChpZiBzaXplIHBvc3MgPCBtYXggdGhlbiBwb3NzIGVsc2UgZmVhcykgc29m
YSBsCiAgICAgIGVuZAogICAgYW5kIGN1dCcgXyBzb2ZhIFtdID0gc29mYQog
ICAgICB8IGN1dCcgZmVhcyBzb2ZhIChoIDo6IHQpID0KICAgICAgbGV0IHZh
bCBzb2ZhJyA9IGlmIHNvZmEgPSAiIiB0aGVuIGggZWxzZSBzb2ZhIF4gIiAi
IF4gaAogICAgICBpbiBpZiBzaXplIHNvZmEnIDwgbWF4IHRoZW4gY3V0IGZl
YXMgc29mYScgdCBlbHNlIGZlYXMKICAgICAgZW5kCiAgaW4KICAgIGN1dCAi
IiAiIgogIGVuZDsKCmxvY2FsCiAgZnVuIGIycyB0cnVlID0gIm9uIiB8IGIy
cyBmYWxzZSA9ICJvZmYiOwogIHZhbCBpMnMgPSBVc2VmdWwuaW50X3RvX3N0
cmluZzsKICB2YWwgbDJzID0gTWV0ZXIxLmxpbWl0X3RvX3N0cmluZzsKaW4K
ICBmdW4gc2hvdyAoc2V0dGluZ3MgOiBNZXRpczEucGFyYW1ldGVycykgPQog
ICAgbGV0CiAgICAgIHZhbCB7bWVzb24gPSBNYWN0aXZlLCBkZWx0YSA9IERh
Y3RpdmUsIHJlc29sdXRpb24gPSBSYWN0aXZlLAogICAgICAgICAgIG1lc29u
X3Bhcm0gPSBNcGFybSwgcmVzb2x1dGlvbl9wYXJtID0gUnBhcm19ID0gc2V0
dGluZ3MKICAgIGluCiAgICAgICJyZXNvbHV0aW9uICAgICAgICAgICAgID0g
IiBeIGIycyBSYWN0aXZlIF4gIlxuIiBeCiAgICAgICJtZXNvbiAgICAgICAg
ICAgICAgICAgID0gIiBeIGIycyBNYWN0aXZlIF4gIlxuIiBeCiAgICAgICJk
ZWx0YSAgICAgICAgICAgICAgICAgID0gIiBeIGIycyBEYWN0aXZlIF4gIlxu
IiBeCiAgICAgICJcbiIgXgogICAgICAicmVzb2x1dGlvbl9wYXJtOlxuIiBe
CiAgICAgICIgIHN1YnN1bXB0aW9uX2NoZWNraW5nID0gIiBeIGkycyAoI3N1
YnN1bXB0aW9uX2NoZWNraW5nIFJwYXJtKSBeICJcbiIgXgogICAgICAiICBw
b3NpdGl2ZV9yZWZpbmVtZW50ICA9ICIgXiBiMnMgKCNwb3NpdGl2ZV9yZWZp
bmVtZW50IFJwYXJtKSBeICJcbiIgXgogICAgICAiICB0aGVhcF9wYXJtOlxu
IiBeCiAgICAgICIgICAgZmlmb19za2V3ICAgICAgICAgID0gIiBeIGkycyAo
I2ZpZm9fc2tldyAoI3RoZWFwX3Bhcm0gUnBhcm0pKSBeICJcbiIgXgogICAg
ICAiICAgIHRoZWFwX2NsZWFuaW5nICAgICA9ICIgXiBpMnMgKCNjbGVhbmlu
Z19mcmVxICgjdGhlYXBfcGFybSBScGFybSkpIF4iXG4iXgogICAgICAiXG4i
IF4KICAgICAgIm1lc29uX3Bhcm06XG4iIF4KICAgICAgIiAgYW5jZXN0b3Jf
cHJ1bmluZyAgICAgPSAiIF4gYjJzICgjYW5jZXN0b3JfcHJ1bmluZyBNcGFy
bSkgXiAiXG4iIF4KICAgICAgIiAgYW5jZXN0b3JfY3V0dGluZyAgICAgPSAi
IF4gYjJzICgjYW5jZXN0b3JfY3V0dGluZyBNcGFybSkgXiAiXG4iIF4KICAg
ICAgIiAgc3RhdGVfc2ltcGxpZnkgICAgICAgPSAiIF4gYjJzICgjc3RhdGVf
c2ltcGxpZnkgTXBhcm0pIF4gIlxuIiBeCiAgICAgICIgIGNhY2hlX2N1dHRp
bmcgICAgICAgID0gIiBeIGIycyAoI2NhY2hlX2N1dHRpbmcgTXBhcm0pIF4g
IlxuIiBeCiAgICAgICIgIGRpdmlkZV9jb25xdWVyICAgICAgID0gIiBeIGIy
cyAoI2RpdmlkZV9jb25xdWVyIE1wYXJtKSBeICJcbiIgXgogICAgICAiICB1
bml0X2xlbW1haXppbmcgICAgICA9ICIgXiBiMnMgKCN1bml0X2xlbW1haXpp
bmcgTXBhcm0pIF4gIlxuIiBeCiAgICAgICJcbiIgXgogICAgICAibGltaXQg
ICAgICAgICAgICAgICAgICA9ICIgXiBsMnMgKCFNZXRpczEubGltaXQpIF4g
IlxuXG4iCiAgICBlbmQ7CmVuZDsKCigqIFRoZSBjb3JlIHByb3ZpbmcgZnVu
Y3Rpb24gKikKCnZhbCBjbmZfbm9ybWFsaXphdGlvbiA9IHJlZiBmYWxzZTsK
CmZ1biB3aXRoX2NuZiBiID0gVXNlZnVsLndpdGhfZmxhZyAoY25mX25vcm1h
bGl6YXRpb24sIFVzZWZ1bC5LIGIpOwoKZnVuIGNvcmVfcHJvdmUgZm0gPQog
IGxldAogICAgdmFsIHByb3ZlciA9IGlmICFjbmZfbm9ybWFsaXphdGlvbiB0
aGVuIE1ldGlzMS5wcm92ZSBlbHNlIE1ldGlzMS5yYXdfcHJvdmUKICBpbgog
ICAgY2FzZSBVc2VmdWwudHJ5IHByb3ZlciBmbSBvZiBTT01FIF8KICAgICAg
PT4gcHJpbnQgIk1FVElTOiBTVUNDRVNTRlVMTFkgUFJPVkVEXG5NRVRJUzog
IgogICAgfCBOT05FID0+IHByaW50ICJNRVRJUzogRkFJTEVEIFRPIFBST1ZF
XG5NRVRJUzogIgogIGVuZDsKCmZ1biBwcm9jZXNzIG5hbWUgZ29hbCA9CiAg
KHByaW50ICgiTUVUSVM6IFByb2JsZW0gIiBeIG5hbWUgXiAiXG4iKTsKICAg
TWlsdG9uLnRpbWUgY29yZV9wcm92ZSBnb2FsOwogICBwcmludCAiXG4iKTsK
CmZ1biBwcm9jZXNzX3NldCAobiwgcykgPQogIGxldAogICAgdmFsICgpID0g
YWR2ZXJ0aXplIG4KICAgIGZ1biBmIHtuYW1lLCBnb2FsfSA9IHByb2Nlc3Mg
bmFtZSAoVGVybTEucGFyc2VfZm9ybXVsYSBnb2FsKQogIGluCiAgICBjYXNl
IHMgb2YgW10gPT4gKCkKICAgIHwgcCA6OiBwcyA9PiAoZiBwOyBhcHAgKGZu
IHggPT4gKHNlcGFyYXRvciAoKTsgZiB4KSkgcHMpCiAgZW5kOwoKKCogR2V0
IG9wdGlvbnMgZnJvbSB0aGUgY29tbWFuZCBsaW5lICopCgpsb2NhbAogIG9w
ZW4gVXNlZnVsIE1ldGlzMTsKCiAgZnVuIHRsaW1pdCAiLSIgPSBOT05FIHwg
dGxpbWl0IHMgPSBTT01FIChSZWFsLmZyb21JbnQgKHN0cmluZ190b19pbnQg
cykpOwoKICBmdW4gb3B0cyBbXSA9IDAKICAgIHwgb3B0cyAoeCA6OiB4cykg
PQogICAgaWYgeCA9ICItdCIgb3JlbHNlIHggPSAiLS10aW1lIiB0aGVuCiAg
ICAgIGNhc2UgeHMgb2YgW10gPT4gcmFpc2UgRmFpbCAib3B0aW9uczogbGFz
dCBhcmd1bWVudCAtdCAvIC0tdGltZSIKICAgICAgfCB5IDo6IHlzID0+IChs
aW1pdCA6PSB7dGltZSA9IHRsaW1pdCB5LCBpbmZzID0gTk9ORX07IG9wdHMg
eXMpCiAgICBlbHNlIGlmIHggPSAiLW0iIG9yZWxzZSB4ID0gIi0tbWVzb24i
IHRoZW4KICAgICAgKHNldHRpbmdzIDo9IHVwZGF0ZV9wYXJtX21lc29uIG5v
dCAoIXNldHRpbmdzKTsgb3B0cyB4cykKICAgIGVsc2UgaWYgeCA9ICItciIg
b3JlbHNlIHggPSAiLS1yZXNvbHV0aW9uIiB0aGVuCiAgICAgIChzZXR0aW5n
cyA6PSB1cGRhdGVfcGFybV9yZXNvbHV0aW9uIG5vdCAoIXNldHRpbmdzKTsg
b3B0cyB4cykKICAgIGVsc2UgaWYgeCA9ICItZCIgb3JlbHNlIHggPSAiLS1k
ZWx0YSIgdGhlbgogICAgICAoc2V0dGluZ3MgOj0gdXBkYXRlX3Bhcm1fZGVs
dGEgbm90ICghc2V0dGluZ3MpOyBvcHRzIHhzKQogICAgZWxzZSBpZiB4ID0g
Ii0tIiB0aGVuIGxlbmd0aCB4cwogICAgZWxzZSBpZiBoZCAoZXhwbG9kZSB4
KSA9ICMiLSIgdGhlbiByYWlzZSBGYWlsICgidW5rbm93biBwYXJhbWV0ZXI6
ICIgXiB4KQogICAgZWxzZSAxICsgbGVuZ3RoIHhzOwppbgogIGZ1biBvcHRp
b25zICgpID0KICAgIGxldAogICAgICB2YWwgKCkgPSBzZXR0aW5ncyA6PSB1
cGRhdGVfcGFybV9yZXNvbHV0aW9uIChLIGZhbHNlKSAoIXNldHRpbmdzKTsK
ICAgICAgdmFsICgpID0gc2V0dGluZ3MgOj0gdXBkYXRlX3Bhcm1fbWVzb24g
ICAgICAoSyBmYWxzZSkgKCFzZXR0aW5ncyk7CiAgICAgIHZhbCAoKSA9IHNl
dHRpbmdzIDo9IHVwZGF0ZV9wYXJtX2RlbHRhICAgICAgKEsgZmFsc2UpICgh
c2V0dGluZ3MpOwoKICAgICAgdmFsIGwgPSBDb21tYW5kTGluZS5hcmd1bWVu
dHMgKCkKICAgICAgdmFsIG4gPSBvcHRzIGwKICAgIGluCiAgICAgIHNwbGl0
IGwgKGxlbmd0aCBsIC0gbikKICAgIGVuZDsKZW5kOwoKdmFsIChvcHRzLCB3
b3JrKSA9IGlmIE1pbHRvbi5tbCA9ICJNTHRvbiIgdGhlbiBvcHRpb25zICgp
IGVsc2UgKFtdLCBbXSk7CigqI2xpbmUgMC4wICJkYXRhL2JlbmNobWFyay5z
bWwiKikKdmFsIHB1cmUgPSBudWxsIChDb21tYW5kTGluZS5hcmd1bWVudHMg
KCkpOwoKbG9jYWwgb3BlbiBVc2VmdWwgTWV0aXMxOwppbiB2YWwoKT1pZiBw
dXJlIHRoZW4gc2V0dGluZ3M6PSB1cGRhdGVfcGFybV9tZXNvbiAoSyB0cnVl
KSAoIXNldHRpbmdzKSBlbHNlICgpOwplbmQ7Cgp2YWwgKCkgPSBhZHZlcnRp
emUgKCJiZW5jaG1hcmsiIF4gKGlmIHB1cmUgdGhlbiAiKiIgZWxzZSAiIikg
XiAiPT1zdGFydGluZyIpOwoKdmFsICgpID0gYWR2ZXJ0aXplICJzZXR0aW5n
cyI7Cgp2YWwgKCkgPSBwcmludCAoc2hvdyAoIU1ldGlzMS5zZXR0aW5ncykp
OwoKbG9jYWwKICBvcGVuIFVzZWZ1bCBQcm9ibGVtMTsKICBmdW4gZXh0cmFj
dCBwIG4gPSAoT3B0aW9uLnZhbE9mIG8gTGlzdC5maW5kIChmbiB7bmFtZSwg
Li4ufSA9PiBuYW1lID0gbikpIHA7CgogIHZhbCBwcnVuZSA9CiAgICBsZXQK
ICAgICAgdmFsIHttZXNvbiwgcmVzb2x1dGlvbiwgLi4ufSA9ICFNZXRpczEu
c2V0dGluZ3MKICAgIGluCiAgICAgIChmbiBmID0+IExpc3QuZmlsdGVyIChu
b3QgbyBmKSkKICAgICAgKGNhc2UgKG1lc29uLCByZXNvbHV0aW9uKSBvZiAo
ZmFsc2UsIGZhbHNlKSA9PiBLIHRydWUKICAgICAgIHwgKGZhbHNlLCB0cnVl
KSA9PiBDIG1lbSBbIkNPTDA2MC0zIl0KICAgICAgIHwgKHRydWUsIGZhbHNl
KSA9PiBDIG1lbSAoaWYgcHVyZSB0aGVuIFtdIGVsc2UgWyJHRU8wMDItNCJd
KQogICAgICAgfCAodHJ1ZSwgdHJ1ZSkgPT4gSyBmYWxzZSkKICAgIGVuZDsK
CiAgdmFsIHNyYzAgPSBbIlAyNiIsICJQMjkiLCAiUDQ2IiwgIkdJTE1PUkVf
MSIsICJMT1MiLCAiU1RFQU1fUk9MTEVSIl07CgogIHZhbCBzcmMxID0gWyJQ
NDgiLCAiUDQ5IiwgIkFHQVRIQSJdOwoKICB2YWwgc3JjMiA9CiAgICBbIkxD
TDAwOS0xIiwgIkNPTDA2MC0zIiwgIkNPTDA1OC0yIiwgIkxDTDEwNy0xIiwg
IkxEQTAwNy0zIiwKICAgICAiR1JQMDEwLTQiLCAiQk9PMDIxLTEiLCAiR0VP
MDAyLTQiLCAiR1JQMTI4LTQuMDAzIl07CgogIHZhbCBzZXQwID0gbWFwIChl
eHRyYWN0IG5vbmVxdWFsaXR5KSAocHJ1bmUgc3JjMCk7CiAgdmFsIHNldDEg
PSBtYXAgKGV4dHJhY3QgZXF1YWxpdHkpICAgIChwcnVuZSBzcmMxKTsKICB2
YWwgc2V0MiA9IG1hcCAoZXh0cmFjdCB0cHRwKSAgICAgICAgKHBydW5lIHNy
YzIpOwppbgogIHZhbCAoKSA9IHdpdGhfY25mIHRydWUgIHByb2Nlc3Nfc2V0
ICgibm9uZXF1YWxpdHkiLCBzZXQwKTsKICB2YWwgKCkgPSB3aXRoX2NuZiB0
cnVlICBwcm9jZXNzX3NldCAoImVxdWFsaXR5IiwgICAgc2V0MSk7CiAgdmFs
ICgpID0gd2l0aF9jbmYgZmFsc2UgcHJvY2Vzc19zZXQgKCJ0cHRwIiwgICAg
ICAgIHNldDIpOwplbmQ7Cgp2YWwgKCkgPSBhZHZlcnRpemUgKCJiZW5jaG1h
cmsiIF4gKGlmIHB1cmUgdGhlbiAiKiIgZWxzZSAiIikgXiAiPT1maW5pc2hp
bmciKTsK
---559023410-851401618-1032914184=:4625--


-------------------------------------------------------
This sf.net email is sponsored by:ThinkGeek
Welcome to geek heaven.
http://thinkgeek.com/sf
_______________________________________________
MLton-devel mailing list
MLton-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mlton-devel