[MLton-devel] Porting from Moscow ML

Stephen Weeks MLton@mlton.org
Wed, 25 Sep 2002 12:23:22 -0700


--yGupo2WAxL
Content-Type: text/plain; charset=us-ascii
Content-Description: message body text
Content-Transfer-Encoding: 7bit


> OK, I think this version of the benchmark satisfies all your
> conditions. 

Thanks very much.  With a little more work, I ported it to the ML Kit,
PolyML, and SML/NJ.  Although, it tickles a bug in the ML Kit, so I
don't have any results for that.  Anyways, here are the benchmark
results.

compile time
benchmark          MLton Moscow-ML Poly/ML SML/NJ
model-elimination   14.5       2.3     2.9   21.0

run time
benchmark          MLton Moscow-ML Poly/ML SML/NJ
model-elimination   46.7     349.5   142.2   79.7

run time ratio
benchmark         Moscow-ML Poly/ML SML/NJ
model-elimination       7.5     3.0    1.7

size
benchmark           MLton Moscow-ML   Poly/ML  SML/NJ
model-elimination 635,968   175,885 2,187,264 892,040

Porting required some eta-expansion to handle the value restriction
and filling in some flexible record patterns.  Here's the final
benchmark I used.


--yGupo2WAxL
Content-Type: application/octet-stream
Content-Disposition: attachment;
	filename="model-elimination.sml"
Content-Transfer-Encoding: base64

KCogQmVuY2htYXJrIGZyb20gSm9lIEh1cmQgPGpvZS5odXJkQGNsLmNhbS5hYy51az4gb24g
MjAwMi0wOS0yNC4KICoKICogSGUgd3JpdGVzOgogKgogKiBGWUk6IHRoaXMgYmVuY2htYXJr
IGF0dGFja3MgYSBidW5jaCBvZiBub24tdHJpdmlhbCBwcm9ibGVtcyB1c2luZyB0aGUKICog
bW9kZWwgZWxpbWluYXRpb24gZmlyc3Qtb3JkZXIgcHJvb2YgcHJvY2VkdXJlLiBJJ3ZlIHNw
ZW50IGEgZmFpcmx5CiAqIGxvbmcgdGltZSBvcHRpbWl6aW5nIHRoaXMgYXQgYSAiaGlnaC1s
ZXZlbCIgKG1lYW5pbmcgZGF0YS1zdHJ1Y3R1cmVzCiAqIGFuZCBhbGdvcml0aG1zIG9wdGlt
aXphdGlvbnMsIGFzIHdlbGwgYXMgZXhwbG9pdGluZyBkb21haW4ga25vd2xlZGdlLAogKiBi
dXQgbm8gdHJpY2tzIHRoYXQgc3BlZWQgdGhpbmdzIHVwIGZvciBhIHBhcnRpY3VsYXIgTUwK
ICogaW1wbGVtZW50YXRpb24pLgogKikKZXhjZXB0aW9uIEVtcHR5CgooKiNsaW5lIDAuMCAi
JEhPTUUvZGV2L3NtbC9iYXNpYy9zcmMvUFAuc2lnIiopCigqIFBQIC0tIHByZXR0eS1wcmlu
dGluZyAtLSBmcm9tIHRoZSBTTUwvTkogbGlicmFyeSAqKQoKc2lnbmF0dXJlIFBQID0KICAg
c2lnCiAgICAgIHR5cGUgcHBzdHJlYW0KICAgICAgdHlwZSBwcGNvbnN1bWVyID0geyBjb25z
dW1lciAgOiBzdHJpbmcgLT4gdW5pdCwKCQkJIGxpbmV3aWR0aCA6IGludCwKCQkJIGZsdXNo
ICAgICA6IHVuaXQgLT4gdW5pdCB9CgogICAgICBkYXRhdHlwZSBicmVha19zdHlsZSA9IAoJ
IENPTlNJU1RFTlQKICAgICAgIHwgSU5DT05TSVNURU5UCgogICAgICB2YWwgbWtfcHBzdHJl
YW0gICAgOiBwcGNvbnN1bWVyIC0+IHBwc3RyZWFtCiAgICAgIHZhbCBkZXN0X3Bwc3RyZWFt
ICA6IHBwc3RyZWFtIC0+IHBwY29uc3VtZXIKICAgICAgdmFsIGFkZF9icmVhayAgICAgIDog
cHBzdHJlYW0gLT4gaW50ICogaW50IC0+IHVuaXQKICAgICAgdmFsIGFkZF9uZXdsaW5lICAg
IDogcHBzdHJlYW0gLT4gdW5pdAogICAgICB2YWwgYWRkX3N0cmluZyAgICAgOiBwcHN0cmVh
bSAtPiBzdHJpbmcgLT4gdW5pdAogICAgICB2YWwgYmVnaW5fYmxvY2sgICAgOiBwcHN0cmVh
bSAtPiBicmVha19zdHlsZSAtPiBpbnQgLT4gdW5pdAogICAgICB2YWwgZW5kX2Jsb2NrICAg
ICAgOiBwcHN0cmVhbSAtPiB1bml0CiAgICAgIHZhbCBjbGVhcl9wcHN0cmVhbSA6IHBwc3Ry
ZWFtIC0+IHVuaXQKICAgICAgdmFsIGZsdXNoX3Bwc3RyZWFtIDogcHBzdHJlYW0gLT4gdW5p
dAogICAgICB2YWwgd2l0aF9wcCAgICAgICAgOiBwcGNvbnN1bWVyIC0+IChwcHN0cmVhbSAt
PiB1bml0KSAtPiB1bml0CiAgICAgIHZhbCBwcF90b19zdHJpbmcgICA6IGludCAtPiAocHBz
dHJlYW0gLT4gJ2EgLT4gdW5pdCkgLT4gJ2EgLT4gc3RyaW5nCiAgIGVuZAoKKCogCiAgIFRo
aXMgc3RydWN0dXJlIHByb3ZpZGVzIHRvb2xzIGZvciBjcmVhdGluZyBjdXN0b21pemVkIE9w
cGVuLXN0eWxlCiAgIHByZXR0eS1wcmludGVycywgYmFzZWQgb24gdGhlIHR5cGUgcHBzdHJl
YW0uICBBIHBwc3RyZWFtIGlzIGFuCiAgIG91dHB1dCBzdHJlYW0gdGhhdCBjb250YWlucyBw
cmV0dHlwcmludGluZyBjb21tYW5kcy4gIFRoZSBjb21tYW5kcwogICBhcmUgcGxhY2VkIGlu
IHRoZSBzdHJlYW0gYnkgdmFyaW91cyBmdW5jdGlvbiBjYWxscyBsaXN0ZWQgYmVsb3cuCgog
ICBUaGVyZSBmb2xsb3dpbmcgcHJpbWl0aXZlcyBhZGQgY29tbWFuZHMgdG8gdGhlIHN0cmVh
bToKICAgYmVnaW5fYmxvY2ssIGVuZF9ibG9jaywgYWRkX3N0cmluZywgYWRkX2JyZWFrLCBh
bmQgYWRkX25ld2xpbmUuCiAgIEFsbCBjYWxscyB0byBhZGRfc3RyaW5nLCBhZGRfYnJlYWss
IGFuZCBhZGRfbmV3bGluZSBtdXN0IGhhcHBlbgogICBiZXR3ZWVuIGEgcGFpciBvZiBjYWxs
cyB0byBiZWdpbl9ibG9jayBhbmQgZW5kX2Jsb2NrIG11c3QgYmUKICAgcHJvcGVybHkgbmVz
dGVkIGR5bmFtaWNhbGx5LiAgQWxsIGNhbGxzIHRvIGJlZ2luX2Jsb2NrIGFuZAogICBlbmRf
YmxvY2sgbXVzdCBiZSBwcm9wZXJseSBuZXN0ZWQgKGR5bmFtaWNhbGx5KS4KCiAgIFtwcGNv
bnN1bWVyXSBpcyB0aGUgdHlwZSBvZiBzaW5rcyBmb3IgcHJldHR5LXByaW50aW5nLiAgQSB2
YWx1ZSBvZiAKICAgdHlwZSBwcGNvbnN1bWVyIGlzIGEgcmVjb3JkIAogICAgICAgICAgICAg
ICAgIHsgY29uc3VtZXIgIDogc3RyaW5nIC0+IHVuaXQsCiAgICAgICAgICAgICAgICAgICBs
aW5ld2lkdGggOiBpbnQsCiAgICAgICAgICAgICAgICAgICBmbHVzaCAgICAgOiB1bml0IC0+
IHVuaXQgfQogICBvZiBhIHN0cmluZyBjb25zdW1lciwgYSBzcGVjaWZpZWQgbGluZXdpZHRo
LCBhbmQgYSBmbHVzaCBmdW5jdGlvbgogICB3aGljaCBpcyBjYWxsZWQgd2hlbmV2ZXIgZmx1
c2hfcHBzdHJlYW0gaXMgY2FsbGVkLgoKICAgQSBwcmV0dHlwcmludGVyIGNhbiBiZSBjYWxs
ZWQgb3V0cmlnaHQgdG8gcHJpbnQgYSB2YWx1ZS4gIEluCiAgIGFkZGl0aW9uLCBhIHByZXR0
eXByaW50ZXIgZm9yIGEgYmFzZSB0eXBlIG9yIG51bGxhcnkgZGF0YXR5cGUgdHkKICAgY2Fu
IGJlIGluc3RhbGxlZCBpbiB0aGUgdG9wLWxldmVsIHN5c3RlbS4gIFRoZW4gdGhlIGluc3Rh
bGxlZAogICBwcmV0dHlwcmludGVyIHdpbGwgYmUgaW52b2tlZCBhdXRvbWF0aWNhbGx5IHdo
ZW5ldmVyIGEgdmFsdWUgb2YKICAgdHlwZSB0eSBpcyB0byBiZSBwcmludGVkLgoKICAgW2Jy
ZWFrX3N0eWxlXSBpcyB0aGUgdHlwZSBvZiBsaW5lIGJyZWFrIHN0eWxlcyBmb3IgYmxvY2tz
OgoKICAgW0NPTlNJU1RFTlRdIHNwZWNpZmllcyB0aGF0IGlmIGFueSBsaW5lIGJyZWFrIG9j
Y3VycyBpbnNpZGUgdGhlCiAgIGJsb2NrLCB0aGVuIGFsbCBpbmRpY2F0ZWQgbGluZSBicmVh
a3Mgb2NjdXIuCgogICBbSU5DT05TSVNURU5UXSBzcGVjaWZpZXMgdGhhdCBicmVha3Mgd2ls
bCBiZSBpbnNlcnRlZCB0byBvbmx5IHRvCiAgIGF2b2lkIG92ZXJmdWxsIGxpbmVzLgoKICAg
W21rX3Bwc3RyZWFtIHtjb25zdW1lciwgbGluZXdpZHRoLCBmbHVzaH1dIGNyZWF0ZXMgYSBu
ZXcgcHBzdHJlYW0KICAgd2hpY2ggaW52b2tlcyB0aGUgY29uc3VtZXIgdG8gb3V0cHV0IHRl
eHQsIHB1dHRpbmcgYXQgbW9zdAogICBsaW5ld2lkdGggY2hhcmFjdGVycyBvbiBlYWNoIGxp
bmUuCgogICBbZGVzdF9wcHN0cmVhbSBwcHN0cm1dIGV4dHJhY3RzIHRoZSBsaW5ld2lkdGgs
IGZsdXNoIGZ1bmN0aW9uLCBhbmQKICAgY29uc3VtZXIgZnJvbSBhIHBwc3RyZWFtLgoKICAg
W2FkZF9icmVhayBwcHN0cm0gKHNpemUsIG9mZnNldCldIG5vdGlmaWVzIHRoZSBwcmV0dHkt
cHJpbnRlciB0aGF0CiAgIGEgbGluZSBicmVhayBpcyBwb3NzaWJsZSBhdCB0aGlzIHBvaW50
LiAgCiAgICogV2hlbiB0aGUgY3VycmVudCBibG9jayBzdHlsZSBpcyBDT05TSVNURU5UOgog
ICAgICAqKiBpZiB0aGUgZW50aXJlIGJsb2NrIGZpdHMgb24gdGhlIHJlbWFpbmRlciBvZiB0
aGUgbGluZSwgdGhlbgogICAgICAgICBvdXRwdXQgc2l6ZSBzcGFjZXM7IGVsc2UKICAgICAg
KiogaW5jcmVhc2UgdGhlIGN1cnJlbnQgaW5kZW50YXRpb24gYnkgdGhlIGJsb2NrIG9mZnNl
dDsKICAgICAgICAgZnVydGhlciBpbmRlbnQgZXZlcnkgaXRlbSBvZiB0aGUgYmxvY2sgYnkg
b2Zmc2V0LCBhbmQgYWRkCiAgICAgICAgIG9uZSBuZXdsaW5lIGF0IGV2ZXJ5IGFkZF9icmVh
ayBpbiB0aGUgYmxvY2suCiAgICogV2hlbiB0aGUgY3VycmVudCBibG9jayBzdHlsZSBpcyBJ
TkNPTlNJU1RFTlQ6CiAgICAgICoqIGlmIHRoZSBuZXh0IGNvbXBvbmVudCBvZiB0aGUgYmxv
Y2sgZml0cyBvbiB0aGUgcmVtYWluZGVyIG9mCiAgICAgICAgIHRoZSBsaW5lLCB0aGVuIG91
dHB1dCBzaXplIHNwYWNlczsgZWxzZQogICAgICAqKiBpc3N1ZSBhIG5ld2xpbmUgYW5kIGlu
ZGVudCB0byB0aGUgY3VycmVudCBpbmRlbnRhdGlvbiBsZXZlbAogICAgICAgICBwbHVzIHRo
ZSBibG9jayBvZmZzZXQgcGx1cyB0aGUgb2Zmc2V0LgoKICAgW2FkZF9uZXdsaW5lIHBwc3Ry
bV0gaXNzdWVzIGEgbmV3bGluZS4KCiAgIFthZGRfc3RyaW5nIHBwc3RybSBzdHJdIG91dHB1
dHMgdGhlIHN0cmluZyBzdHIgdG8gdGhlIHBwc3RyZWFtLgoKICAgW2JlZ2luX2Jsb2NrIHBw
c3RybSBzdHlsZSBibG9ja29mZnNldF0gYmVnaW5zIGEgbmV3IGJsb2NrIGFuZAogICBsZXZl
bCBvZiBpbmRlbnRhdGlvbiwgd2l0aCB0aGUgZ2l2ZW4gc3R5bGUgYW5kIGJsb2NrIG9mZnNl
dC4KCiAgIFtlbmRfYmxvY2sgcHBzdHJtXSBjbG9zZXMgdGhlIGN1cnJlbnQgYmxvY2suICAK
CiAgIFtjbGVhcl9wcHN0cmVhbSBwcHN0cm1dIHJlc3RhcnRzIHRoZSBzdHJlYW0sIHdpdGhv
dXQgYWZmZWN0aW5nIHRoZQogICB1bmRlcmx5aW5nIGNvbnN1bWVyLgoKICAgW2ZsdXNoX3Bw
c3RyZWFtIHBwc3RybV0gZXhlY3V0ZXMgYW55IHJlbWFpbmluZyBjb21tYW5kcyBpbiB0aGUK
ICAgcHBzdHJlYW0gKHRoYXQgaXMsIGZsdXNoZXMgY3VycmVudGx5IGFjY3VtdWxhdGVkIG91
dHB1dCB0byB0aGUKICAgY29uc3VtZXIgYXNzb2NpYXRlZCB3aXRoIHBwc3RybSk7IGV4ZWN1
dGVzIHRoZSBmbHVzaCBmdW5jdGlvbgogICBhc3NvY2lhdGVkIHdpdGggdGhlIGNvbnN1bWVy
OyBhbmQgY2FsbHMgY2xlYXJfcHBzdHJlYW0uCgogICBbd2l0aF9wcCBjb25zdW1lciBmXSBt
YWtlcyBhIG5ldyBwcHN0cmVhbSBmcm9tIHRoZSBjb25zdW1lciBhbmQKICAgYXBwbGllcyBm
ICh3aGljaCBjYW4gYmUgdGhvdWdodCBvZiBhcyBhIHByb2R1Y2VyKSB0byB0aGF0CiAgIHBw
c3RyZWFtLCB0aGVuIGZsdXNoZWQgdGhlIHBwc3RyZWFtIGFuZCByZXR1cm5zIHRoZSB2YWx1
ZSBvZiBmLgoKICAgW3BwX3RvX3N0cmluZyBsaW5ld2lkdGggcHJpbnRpdCB4XSBjb25zdHJ1
Y3RzIGEgbmV3IHBwc3RyZWFtCiAgIHBwc3RybSB3aG9zZSBjb25zdW1lciBhY2N1bXVsYXRl
cyB0aGUgb3V0cHV0IGluIGEgc3RyaW5nIHMuICBUaGVuCiAgIGV2YWx1YXRlcyAocHJpbnRp
dCBwcHN0cm0geCkgYW5kIGZpbmFsbHkgcmV0dXJucyB0aGUgc3RyaW5nIHMuCgogICAKICAg
RXhhbXBsZSAxOiBBIHNpbXBsZSBwcmV0dHlwcmludGVyIGZvciBCb29sZWFuczoKCiAgICAg
ICBsb2FkICJQUCI7CiAgICAgICBmdW4gcHBib29sIHBwcyBkID0gCiAgICAgICAgICAgbGV0
IG9wZW4gUFAKICAgICAgICAgICBpbgogICAgICAgICAgICAgICBiZWdpbl9ibG9jayBwcHMg
SU5DT05TSVNURU5UIDY7IAogICAgICAgICAgICAgICBhZGRfc3RyaW5nIHBwcyAoaWYgZCB0
aGVuICJyaWdodCIgZWxzZSAid3JvbmciKTsKICAgICAgICAgICAgICAgZW5kX2Jsb2NrIHBw
cwogICAgICAgICAgIGVuZDsKCiAgIE5vdyBvbmUgbWF5IGRlZmluZSBhIHBwc3RyZWFtIHRv
IHByaW50IHRvLCBhbmQgZXhlcmNpc2UgaXQ6CgogICAgICAgdmFsIHBwc3RybSA9IFBQLm1r
X3Bwc3RyZWFtIHtjb25zdW1lciAgPSAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgZm4gcyA9PiBUZXh0SU8ub3V0cHV0KFRleHRJTy5zdGRPdXQsIHMpLCAKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGluZXdpZHRoID0gNzIsCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZsdXNoICAgICA9IAogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgZm4gKCkgPT4gVGV4dElPLmZsdXNoT3V0IFRleHRJ
Ty5zdGRPdXR9OwoKICAgICAgIGZ1biBwcGIgYiA9IChwcGJvb2wgcHBzdHJtIGI7IFBQLmZs
dXNoX3Bwc3RyZWFtIHBwc3RybSk7CgogICAgICAgLSBwcGIgZmFsc2U7CiAgICAgICB3cm9u
Zz4gdmFsIGl0ID0gKCkgOiB1bml0ICAgCgogICBUaGUgcHJldHR5cHJpbnRlciBtYXkgYWxz
byBiZSBpbnN0YWxsZWQgaW4gdGhlIHRvcGxldmVsIHN5c3RlbTsKICAgdGhlbiBpdCB3aWxs
IGJlIHVzZWQgdG8gcHJpbnQgYWxsIGV4cHJlc3Npb25zIG9mIHR5cGUgYm9vbAogICBzdWJz
ZXF1ZW50bHkgY29tcHV0ZWQ6CgogICAgICAgLSBpbnN0YWxsUFAgcHBib29sOwogICAgICAg
PiB2YWwgaXQgPSAoKSA6IHVuaXQKICAgICAgIC0gMT0wOwogICAgICAgPiB2YWwgaXQgPSB3
cm9uZyA6IGJvb2wKICAgICAgIC0gMT0xOwogICAgICAgPiB2YWwgaXQgPSByaWdodCA6IGJv
b2wKCiAgIFNlZSBsaWJyYXJ5IE1ldGEgZm9yIGEgZGVzY3JpcHRpb24gb2YgaW5zdGFsbFBQ
LgoKCiAgIEV4YW1wbGUgMjogUHJldHR5cHJpbnRpbmcgc2ltcGxlIGV4cHJlc3Npb25zIChl
eGFtcGxlcy9wcmV0dHkvcHBleHByLnNtbCk6CgogICAgICAgZGF0YXR5cGUgZXhwciA9IAog
ICAgICAgICAgIENzdCBvZiBpbnQgCiAgICAgICAgIHwgTmVnIG9mIGV4cHIKICAgICAgICAg
fCBQbHVzIG9mIGV4cHIgKiBleHByCgogICAgICAgZnVuIHBwZXhwciBwcHMgZTAgPSAKICAg
ICAgICAgICBsZXQgb3BlbiBQUAogICAgICAgICAgICAgICBmdW4gcHBlIChDc3QgaSkgICAg
ICAgID0gYWRkX3N0cmluZyBwcHMgKEludC50b1N0cmluZyBpKQogICAgICAgICAgICAgICAg
IHwgcHBlIChOZWcgZSkgICAgICAgID0gKGFkZF9zdHJpbmcgcHBzICJ+IjsgcHBlIGUpCiAg
ICAgICAgICAgICAgICAgfCBwcGUgKFBsdXMoZTEsIGUyKSkgPSAoYmVnaW5fYmxvY2sgcHBz
IENPTlNJU1RFTlQgMDsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBhZGRfc3RyaW5nIHBwcyAiKCI7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgcHBlIGUxOyAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBhZGRfc3RyaW5nIHBwcyAiICsgIjsKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBhZGRfYnJlYWsgcHBzICgwLCAxKTsKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBwcGUgZTI7IAogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGFkZF9zdHJpbmcgcHBzICIpIjsKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfYmxvY2sgcHBzKQogICAgICAgICAgIGlu
CiAgICAgICAgICAgICAgIGJlZ2luX2Jsb2NrIHBwcyBJTkNPTlNJU1RFTlQgMDsgCiAgICAg
ICAgICAgICAgIHBwZSBlMDsKICAgICAgICAgICAgICAgZW5kX2Jsb2NrIHBwcwogICAgICAg
ICAgIGVuZAoKICAgICAgIHZhbCBfID0gaW5zdGFsbFBQIHBwZXhwcjsKCiAgICAgICAoKiBT
b21lIGV4YW1wbGUgdmFsdWVzOiAqKQoKICAgICAgIHZhbCBlMSA9IENzdCAxOwogICAgICAg
dmFsIGUyID0gQ3N0IDI7CiAgICAgICB2YWwgZTMgPSBQbHVzKGUxLCBOZWcgZTIpOwogICAg
ICAgdmFsIGU0ID0gUGx1cyhOZWcgZTMsIGUzKTsKICAgICAgIHZhbCBlNSA9IFBsdXMoTmVn
IGU0LCBlNCk7CiAgICAgICB2YWwgZTYgPSBQbHVzKGU1LCBlNSk7CiAgICAgICB2YWwgZTcg
PSBQbHVzKGU2LCBlNik7CiAgICAgICB2YWwgZTggPSAKICAgICAgICAgICBQbHVzKGUzLCBQ
bHVzKGUzLCBQbHVzKGUzLCBQbHVzKGUzLCBQbHVzKGUzLCBQbHVzKGUzLCBlNykpKSkpKTsK
KikKKCojbGluZSAwLjAgIiRIT01FL2Rldi9zbWwvYmFzaWMvc3JjL1BQLnNtbCIqKQooKiBQ
UCAtLSBPcHBlbi1zdHlsZSBwcmV0dHlwcmludGVycy4KICoKICogTW9kaWZpZWQgZm9yIE1p
bHRvbiBNTCBmcm9tIFNNTC9OSiBMaWJyYXJ5IHZlcnNpb24gMC4yCiAqCiAqIENPUFlSSUdI
VCAoYykgMTk5MiBieSBBVCZUIEJlbGwgTGFib3JhdG9yaWVzLgogKiBTZWUgZmlsZSBtb3Nt
bC9jb3B5cmdodC9jb3B5cmdodC5hdHQgZm9yIGRldGFpbHMuCiAqKQoKKCogdGhlIGZ1bmN0
aW9ucyBhbmQgZGF0YSBmb3IgYWN0dWFsbHkgZG9pbmcgcHJpbnRpbmcuICopCgpzdHJ1Y3R1
cmUgUFAgOj4gUFAgPQpzdHJ1Y3QKCm9wZW4gQXJyYXkgCmluZml4IDkgc3ViCgooKiB0aGUg
cXVldWUgbGlicmFyeSwgZm9ybWVybHkgaW4gdW5pdCBQcHF1ZXVlICopCgpkYXRhdHlwZSBR
ZW5kID0gUWJhY2sgfCBRZnJvbnQKCmV4Y2VwdGlvbiBRVUVVRV9GVUxMCmV4Y2VwdGlvbiBR
VUVVRV9FTVBUWQpleGNlcHRpb24gUkVRVUVTVEVEX1FVRVVFX1NJWkVfVE9PX1NNQUxMCgps
b2NhbCAKICAgIGZ1biArKyBpIG4gPSAoaSArIDEpIG1vZCBuCiAgICBmdW4gLS0gaSBuID0g
KGkgLSAxKSBtb2QgbgppbgoKYWJzdHlwZSAnYSBxdWV1ZSA9IFFVRVVFIG9mIHtlbGVtczog
J2EgYXJyYXksICgqIHRoZSBjb250ZW50cyAqKQogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGZyb250OiBpbnQgcmVmLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJhY2s6
IGludCByZWYsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZTogaW50fSAgKCog
Zml4ZWQgc2l6ZSBvZiBlbGVtZW50IGFycmF5ICopCndpdGgKCiAgZnVuIGlzX2VtcHR5IChR
VUVVRXtmcm9udD1yZWYgfjEsIGJhY2s9cmVmIH4xLC4uLn0pID0gdHJ1ZQogICAgfCBpc19l
bXB0eSBfID0gZmFsc2UKCiAgZnVuIG1rX3F1ZXVlIG4gaW5pdF92YWwgPQogICAgICBpZiAo
biA8IDIpCiAgICAgIHRoZW4gcmFpc2UgUkVRVUVTVEVEX1FVRVVFX1NJWkVfVE9PX1NNQUxM
CiAgICAgIGVsc2UgUVVFVUV7ZWxlbXM9YXJyYXkobiwgaW5pdF92YWwpLCBmcm9udD1yZWYg
fjEsIGJhY2s9cmVmIH4xLCBzaXplPW59CgogIGZ1biBjbGVhcl9xdWV1ZSAoUVVFVUV7ZnJv
bnQsYmFjaywuLi59KSA9IChmcm9udCA6PSB+MTsgYmFjayA6PSB+MSkKCiAgZnVuIHF1ZXVl
X2F0IFFmcm9udCAoUVVFVUV7ZWxlbXMsZnJvbnQsLi4ufSkgPSBlbGVtcyBzdWIgIWZyb250
CiAgICB8IHF1ZXVlX2F0IFFiYWNrIChRVUVVRXtlbGVtcyxiYWNrLC4uLn0pID0gZWxlbXMg
c3ViICFiYWNrCgogIGZ1biBlbl9xdWV1ZSBRZnJvbnQgaXRlbSAoUSBhcyBRVUVVRXtlbGVt
cyxmcm9udCxiYWNrLHNpemV9KSA9CiAgICAgICAgaWYgKGlzX2VtcHR5IFEpCiAgICAgICAg
dGhlbiAoZnJvbnQgOj0gMDsgYmFjayA6PSAwOwogICAgICAgICAgICAgIHVwZGF0ZShlbGVt
cywwLGl0ZW0pKQogICAgICAgIGVsc2UgbGV0IHZhbCBpID0gLS0oIWZyb250KSBzaXplCiAg
ICAgICAgICAgICBpbiAgaWYgKGkgPSAhYmFjaykKICAgICAgICAgICAgICAgICB0aGVuIHJh
aXNlIFFVRVVFX0ZVTEwKICAgICAgICAgICAgICAgICBlbHNlICh1cGRhdGUoZWxlbXMsaSxp
dGVtKTsgZnJvbnQgOj0gaSkKICAgICAgICAgICAgIGVuZAogICAgfCBlbl9xdWV1ZSBRYmFj
ayBpdGVtIChRIGFzIFFVRVVFe2VsZW1zLGZyb250LGJhY2ssc2l6ZX0pID0KICAgICAgICBp
ZiAoaXNfZW1wdHkgUSkKICAgICAgICB0aGVuIChmcm9udCA6PSAwOyBiYWNrIDo9IDA7CiAg
ICAgICAgICAgICAgdXBkYXRlKGVsZW1zLDAsaXRlbSkpCiAgICAgICAgZWxzZSBsZXQgdmFs
IGkgPSArKyghYmFjaykgc2l6ZQogICAgICAgICAgICAgaW4gIGlmIChpID0gIWZyb250KQog
ICAgICAgICAgICAgICAgIHRoZW4gcmFpc2UgUVVFVUVfRlVMTAogICAgICAgICAgICAgICAg
IGVsc2UgKHVwZGF0ZShlbGVtcyxpLGl0ZW0pOyBiYWNrIDo9IGkpCiAgICAgICAgICAgICBl
bmQKCiAgZnVuIGRlX3F1ZXVlIFFmcm9udCAoUSBhcyBRVUVVRXtmcm9udCxiYWNrLHNpemUs
Li4ufSkgPQogICAgICAgIGlmICghZnJvbnQgPSAhYmFjaykgKCogdW5pdGFyeSBxdWV1ZSAq
KQogICAgICAgIHRoZW4gY2xlYXJfcXVldWUgUQogICAgICAgIGVsc2UgZnJvbnQgOj0gKyso
IWZyb250KSBzaXplCiAgICB8IGRlX3F1ZXVlIFFiYWNrIChRIGFzIFFVRVVFe2Zyb250LGJh
Y2ssc2l6ZSwuLi59KSA9CiAgICAgICAgaWYgKCFmcm9udCA9ICFiYWNrKQogICAgICAgIHRo
ZW4gY2xlYXJfcXVldWUgUQogICAgICAgIGVsc2UgYmFjayA6PSAtLSghYmFjaykgc2l6ZQoK
ZW5kICgqIGFic3R5cGUgcXVldWUgKikKZW5kICgqIGxvY2FsICAgKikKCgp2YWwgbWFnaWM6
ICdhIC0+ICdhID0gZm4geCA9PiB4CgooKiBleGNlcHRpb24gUFBfRkFJTCBvZiBzdHJpbmcg
KikKCmRhdGF0eXBlIGJyZWFrX3N0eWxlID0gQ09OU0lTVEVOVCB8IElOQ09OU0lTVEVOVAoK
ZGF0YXR5cGUgYnJlYWtfaW5mbwogID0gRklUUwogIHwgUEFDS19PTlRPX0xJTkUgb2YgaW50
CiAgfCBPTkVfUEVSX0xJTkUgb2YgaW50CgooKiBTb21lIGdsb2JhbCB2YWx1ZXMgKikKdmFs
IElORklOSVRZID0gOTk5OTk5CgphYnN0eXBlIGluZGVudF9zdGFjayA9IElzdGFjayBvZiBi
cmVha19pbmZvIGxpc3QgcmVmCndpdGgKICBmdW4gbWtfaW5kZW50X3N0YWNrKCkgPSBJc3Rh
Y2sgKHJlZihbXTpicmVha19pbmZvIGxpc3QpKQogIGZ1biBjbGVhcl9pbmRlbnRfc3RhY2sg
KElzdGFjayBzdGspID0gKHN0ayA6PSAoW106YnJlYWtfaW5mbyBsaXN0KSkKICBmdW4gdG9w
IChJc3RhY2sgc3RrKSA9CiAgICAgIGNhc2UgIXN0awogICAgICAgIG9mIG5pbCA9PiByYWlz
ZSBGYWlsICJQUC1lcnJvcjogdG9wOiBiYWRseSBmb3JtZWQgYmxvY2siCgkgfCB4OjpfID0+
IHgKICBmdW4gcHVzaCAoeCwoSXN0YWNrIHN0aykpID0gc3RrIDo9IHg6Oighc3RrKQogIGZ1
biBwb3AgKElzdGFjayBzdGspID0KICAgICAgY2FzZSAhc3RrCiAgICAgICAgb2YgbmlsID0+
IHJhaXNlIEZhaWwgIlBQLWVycm9yOiBwb3A6IGJhZGx5IGZvcm1lZCBibG9jayIKCSB8IF86
OnJlc3QgPT4gc3RrIDo9IHJlc3QKZW5kCgooKiBUaGUgZGVsaW1fc3RhY2sgaXMgdXNlZCB0
byBjb21wdXRlIHRoZSBzaXplIG9mIGJsb2Nrcy4gSXQgaXMKICAgYSBzdGFjayBvZiBpbmRp
Y2VzIGludG8gdGhlIHRva2VuIGJ1ZmZlci4gVGhlIGluZGljZXMgb25seSBwb2ludCB0bwog
ICBCQnMsIEVzLCBhbmQgQlJzLiBXZSBwdXNoIEJCcyBhbmQgRXMgb250byB0aGUgc3RhY2sg
dW50aWwgYSBCUgogICBpcyBlbmNvdW50ZXJlZC4gVGhlbiB3ZSBjb21wdXRlIHNpemVzIGFu
ZCBwb3AuIFdoZW4gd2UgZW5jb3VudGVyCiAgIGEgQlIgaW4gdGhlIG1pZGRsZSBvZiBhIGJs
b2NrLCB3ZSBjb21wdXRlIHRoZSBEaXN0YW5jZV90b19uZXh0X2JyZWFrCiAgIG9mIHRoZSBw
cmV2aW91cyBCUiBpbiB0aGUgYmxvY2ssIGlmIHRoZXJlIHdhcyBvbmUuCgogICBXZSBuZWVk
IHRvIGJlIGFibGUgdG8gZGVsZXRlIGZyb20gdGhlIGJvdHRvbSBvZiB0aGUgZGVsaW1fc3Rh
Y2ssIHNvCiAgIHdlIHVzZSBhIHF1ZXVlLCB0cmVhdGVkIHdpdGggYSBzdGFjayBkaXNjaXBs
aW5lLCBpLmUuLCB3ZSBvbmx5IGFkZAogICBpdGVtcyBhdCB0aGUgaGVhZCBvZiB0aGUgcXVl
dWUsIGJ1dCBjYW4gZGVsZXRlIGZyb20gdGhlIGZyb250IG9yCiAgIGJhY2sgb2YgdGhlIHF1
ZXVlLgoqKQphYnN0eXBlIGRlbGltX3N0YWNrID0gRHN0YWNrIG9mIGludCBxdWV1ZQp3aXRo
CiAgZnVuIG5ld19kZWxpbV9zdGFjayBpID0gRHN0YWNrKG1rX3F1ZXVlIGkgfjEpCiAgZnVu
IHJlc2V0X2RlbGltX3N0YWNrIChEc3RhY2sgcSkgPSBjbGVhcl9xdWV1ZSBxCgogIGZ1biBw
b3BfZGVsaW1fc3RhY2sgKERzdGFjayBkKSA9IGRlX3F1ZXVlIFFmcm9udCBkCiAgZnVuIHBv
cF9ib3R0b21fZGVsaW1fc3RhY2sgKERzdGFjayBkKSA9IGRlX3F1ZXVlIFFiYWNrIGQKCiAg
ZnVuIHB1c2hfZGVsaW1fc3RhY2soaSxEc3RhY2sgZCkgPSBlbl9xdWV1ZSBRZnJvbnQgaSBk
CiAgZnVuIHRvcF9kZWxpbV9zdGFjayAoRHN0YWNrIGQpID0gcXVldWVfYXQgUWZyb250IGQK
ICBmdW4gYm90dG9tX2RlbGltX3N0YWNrIChEc3RhY2sgZCkgPSBxdWV1ZV9hdCBRYmFjayBk
CiAgZnVuIGRlbGltX3N0YWNrX2lzX2VtcHR5IChEc3RhY2sgZCkgPSBpc19lbXB0eSBkCmVu
ZAoKCnR5cGUgYmxvY2tfaW5mbyA9IHsgQmxvY2tfc2l6ZSA6IGludCByZWYsCiAgICAgICAg
ICAgICAgICAgICAgQmxvY2tfb2Zmc2V0IDogaW50LAogICAgICAgICAgICAgICAgICAgIEhv
d190b19pbmRlbnQgOiBicmVha19zdHlsZSB9CgoKKCogRGlzdGFuY2VfdG9fbmV4dF9icmVh
ayBpbmNsdWRlcyBOdW1iZXJfb2ZfYmxhbmtzLiBCcmVha19vZmZzZXQgaXMKICAgYSBsb2Nh
bCBvZmZzZXQgZm9yIHRoZSBicmVhay4gQkIgcmVwcmVzZW50cyBhIHNlcXVlbmNlIG9mIGNv
bnRpZ3VvdXMKICAgQmVnaW5zLiBFIHJlcHJlc2VudHMgYSBzZXF1ZW5jZSBvZiBjb250aWd1
b3VzIEVuZHMuCiopCmRhdGF0eXBlIHBwX3Rva2VuCiAgPSBTIG9mICB7U3RyaW5nIDogc3Ry
aW5nLCBMZW5ndGggOiBpbnR9CiAgfCBCQiBvZiB7UGJsb2NrcyA6IGJsb2NrX2luZm8gbGlz
dCByZWYsICAgKCogUHJvY2Vzc2VkICAgKikKICAgICAgICAgICBVYmxvY2tzIDogYmxvY2tf
aW5mbyBsaXN0IHJlZn0gICgqIFVucHJvY2Vzc2VkICopCiAgfCBFIG9mICB7UGVuZCA6IGlu
dCByZWYsIFVlbmQgOiBpbnQgcmVmfQogIHwgQlIgb2Yge0Rpc3RhbmNlX3RvX25leHRfYnJl
YWsgOiBpbnQgcmVmLAogICAgICAgICAgIE51bWJlcl9vZl9ibGFua3MgOiBpbnQsCiAgICAg
ICAgICAgQnJlYWtfb2Zmc2V0IDogaW50fQoKCigqIFRoZSBpbml0aWFsIHZhbHVlcyBpbiB0
aGUgdG9rZW4gYnVmZmVyICopCnZhbCBpbml0aWFsX3Rva2VuX3ZhbHVlID0gU3tTdHJpbmcg
PSAiIiwgTGVuZ3RoID0gMH0KCigqIHR5cGUgcHBzdHJlYW0gPSBHZW5lcmFsLnBwc3RyZWFt
OyAqKQpkYXRhdHlwZSBwcHN0cmVhbV8gPQogIFBQUyBvZgogICAgIHtjb25zdW1lciA6IHN0
cmluZyAtPiB1bml0LAogICAgICBsaW5ld2lkdGggOiBpbnQsCiAgICAgIGZsdXNoIDogdW5p
dCAtPiB1bml0LAogICAgICB0aGVfdG9rZW5fYnVmZmVyIDogcHBfdG9rZW4gYXJyYXksCiAg
ICAgIHRoZV9kZWxpbV9zdGFjayA6IGRlbGltX3N0YWNrLAogICAgICB0aGVfaW5kZW50X3N0
YWNrIDogaW5kZW50X3N0YWNrLAogICAgICArKyA6IGludCByZWYgLT4gdW5pdCwgICAgKCog
aW5jcmVtZW50IGNpcmN1bGFyIGJ1ZmZlciBpbmRleCAqKQogICAgICBzcGFjZV9sZWZ0IDog
aW50IHJlZiwgICAgKCogcmVtYWluaW5nIGNvbHVtbnMgb24gcGFnZSAqKQogICAgICBsZWZ0
X2luZGV4IDogaW50IHJlZiwgICAgKCogaW5zZXJ0aW9uIGluZGV4ICopCiAgICAgIHJpZ2h0
X2luZGV4IDogaW50IHJlZiwgICAoKiBvdXRwdXQgaW5kZXggKikKICAgICAgbGVmdF9zdW0g
OiBpbnQgcmVmLCAgICAgICgqIHNpemUgb2Ygc3RyaW5ncyBhbmQgc3BhY2VzIGluc2VydGVk
ICopCiAgICAgIHJpZ2h0X3N1bSA6IGludCByZWZ9ICAgICAoKiBzaXplIG9mIHN0cmluZ3Mg
YW5kIHNwYWNlcyBwcmludGVkICopCgp0eXBlIHBwc3RyZWFtID0gcHBzdHJlYW1fCgp0eXBl
IHBwY29uc3VtZXIgPSB7Y29uc3VtZXIgOiBzdHJpbmcgLT4gdW5pdCwKCQkgICBsaW5ld2lk
dGggOiBpbnQsCgkJICAgZmx1c2ggOiB1bml0IC0+IHVuaXR9CgpmdW4gbWtfcHBzdHJlYW0g
e2NvbnN1bWVyLGxpbmV3aWR0aCxmbHVzaH0gPQogICAgaWYgKGxpbmV3aWR0aDw1KQogICAg
dGhlbiByYWlzZSBGYWlsICJQUC1lcnJvcjogbGluZXdpZHRoIHRvb19zbWFsbCIKICAgIGVs
c2UgbGV0IHZhbCBidWZfc2l6ZSA9IDMqbGluZXdpZHRoCiAgICAgICAgICBpbiBtYWdpYygK
ICAgICAgICAgICAgIFBQU3tjb25zdW1lciA9IGNvbnN1bWVyLAoJCSBsaW5ld2lkdGggPSBs
aW5ld2lkdGgsCgkJIGZsdXNoID0gZmx1c2gsCgkJIHRoZV90b2tlbl9idWZmZXIgPSBhcnJh
eShidWZfc2l6ZSwgaW5pdGlhbF90b2tlbl92YWx1ZSksCgkJIHRoZV9kZWxpbV9zdGFjayA9
IG5ld19kZWxpbV9zdGFjayBidWZfc2l6ZSwKCQkgdGhlX2luZGVudF9zdGFjayA9IG1rX2lu
ZGVudF9zdGFjayAoKSwKCQkgKysgPSBmbiBpID0+IGkgOj0gKCghaSArIDEpIG1vZCBidWZf
c2l6ZSksCgkJIHNwYWNlX2xlZnQgPSByZWYgbGluZXdpZHRoLAoJCSBsZWZ0X2luZGV4ID0g
cmVmIDAsIHJpZ2h0X2luZGV4ID0gcmVmIDAsCgkJIGxlZnRfc3VtID0gcmVmIDAsIHJpZ2h0
X3N1bSA9IHJlZiAwfQogICAgICAgICAgICAgICAgICkgOiBwcHN0cmVhbQoJIGVuZAoKZnVu
IGRlc3RfcHBzdHJlYW0ocHBzIDogcHBzdHJlYW0pID0KICBsZXQgdmFsIFBQU3tjb25zdW1l
cixsaW5ld2lkdGgsZmx1c2gsIC4uLn0gPSBtYWdpYyBwcHMKICBpbiB7Y29uc3VtZXI9Y29u
c3VtZXIsbGluZXdpZHRoPWxpbmV3aWR0aCxmbHVzaD1mbHVzaH0gZW5kCgpsb2NhbAogIHZh
bCBzcGFjZSA9ICIgIgogIGZ1biBta19zcGFjZSAoMCxzKSA9IFN0cmluZy5jb25jYXQgcwog
ICAgfCBta19zcGFjZSAobixzKSA9IG1rX3NwYWNlKChuLTEpLCAoc3BhY2U6OnMpKQogIHZh
bCBzcGFjZV90YWJsZSA9IFZlY3Rvci50YWJ1bGF0ZSgxMDAsIGZuIGkgPT4gbWtfc3BhY2Uo
aSxbXSkpCiAgZnVuIG5zcGFjZXMgbiA9IFZlY3Rvci5zdWIoc3BhY2VfdGFibGUsIG4pCiAg
ICAgIGhhbmRsZSBHZW5lcmFsLlN1YnNjcmlwdCA9PgoJaWYgbiA8IDAKCXRoZW4gIiIKCWVs
c2UgbGV0IHZhbCBuMiA9IG4gZGl2IDIKCQkgdmFsIG4yX3NwYWNlcyA9IG5zcGFjZXMgbjIK
CQkgdmFsIGV4dHJhID0gaWYgKG4gPSAoMipuMikpIHRoZW4gIiIgZWxzZSBzcGFjZQogICAg
ICAgICAgICAgIGluIFN0cmluZy5jb25jYXQgW24yX3NwYWNlcywgbjJfc3BhY2VzLCBleHRy
YV0KCSAgICAgZW5kCmluCiAgZnVuIGNyX2luZGVudCAob2ZuLCBpKSA9IG9mbiAoIlxuIl4o
bnNwYWNlcyBpKSkKICBmdW4gaW5kZW50IChvZm4saSkgPSBvZm4gKG5zcGFjZXMgaSkKZW5k
CgoKKCogUHJpbnQgYSB0aGUgZmlyc3QgbWVtYmVyIG9mIGEgY29udGlndW91cyBzZXF1ZW5j
ZSBvZiBCZWdpbnMuIElmIHRoZXJlCiAgIGFyZSAicHJvY2Vzc2VkIiBCZWdpbnMsIHRoZW4g
dGFrZSB0aGUgZmlyc3Qgb2ZmIHRoZSBsaXN0LiBJZiB0aGVyZSBhcmUKICAgbm8gcHJvY2Vz
c2VkIEJlZ2lucywgdGFrZSB0aGUgbGFzdCBtZW1iZXIgb2ZmIHRoZSAidW5wcm9jZXNzZWQi
IGxpc3QuCiAgIFRoaXMgd29ya3MgYmVjYXVzZSB0aGUgdW5wcm9jZXNzZWQgbGlzdCBpcyB0
cmVhdGVkIGFzIGEgc3RhY2ssIHRoZQogICBwcm9jZXNzZWQgbGlzdCBhcyBhIEZJRk8gcXVl
dWUuIEhvdyBjYW4gYW4gaXRlbSBvbiB0aGUgdW5wcm9jZXNzZWQgbGlzdAogICBiZSBwcmlu
dGFibGU/IEJlY2F1c2Ugb2Ygd2hhdCBnb2VzIG9uIGluIGFkZF9zdHJpbmcuIFNlZSB0aGVy
ZSBmb3IgZGV0YWlscy4KKikKCmZ1biBwcmludF9CQiAoXyx7UGJsb2NrcyA9IHJlZiBbXSwg
VWJsb2NrcyA9IHJlZiBbXX0pID0KICAgICAgICAgICAgIHJhaXNlIEZhaWwgIlBQLWVycm9y
OiBwcmludF9CQiIKICB8IHByaW50X0JCIChQUFN7dGhlX2luZGVudF9zdGFjayxsaW5ld2lk
dGgsc3BhY2VfbGVmdD1yZWYgc3BfbGVmdCwuLi59LAogICAgICAgICAgICAge1BibG9ja3Mg
YXMgcmVmKHtIb3dfdG9faW5kZW50PUNPTlNJU1RFTlQsQmxvY2tfc2l6ZSwKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgQmxvY2tfb2Zmc2V0fTo6cnN0KSwKICAgICAgICAgICAg
ICBVYmxvY2tzPXJlZltdfSkgPQogICAgICAgKHB1c2ggKChpZiAoIUJsb2NrX3NpemUgPiBz
cF9sZWZ0KQogICAgICAgICAgICAgICB0aGVuIE9ORV9QRVJfTElORSAobGluZXdpZHRoIC0g
KHNwX2xlZnQgLSBCbG9ja19vZmZzZXQpKQogICAgICAgICAgICAgICBlbHNlIEZJVFMpLAoJ
ICAgICAgdGhlX2luZGVudF9zdGFjayk7CiAgICAgICAgUGJsb2NrcyA6PSByc3QpCiAgfCBw
cmludF9CQihQUFN7dGhlX2luZGVudF9zdGFjayxsaW5ld2lkdGgsc3BhY2VfbGVmdD1yZWYg
c3BfbGVmdCwuLi59LAogICAgICAgICAgICAge1BibG9ja3MgYXMgcmVmKHtCbG9ja19zaXpl
LEJsb2NrX29mZnNldCwuLi59Ojpyc3QpLFVibG9ja3M9cmVmW119KSA9CiAgICAgICAocHVz
aCAoKGlmICghQmxvY2tfc2l6ZSA+IHNwX2xlZnQpCiAgICAgICAgICAgICAgIHRoZW4gUEFD
S19PTlRPX0xJTkUgKGxpbmV3aWR0aCAtIChzcF9sZWZ0IC0gQmxvY2tfb2Zmc2V0KSkKICAg
ICAgICAgICAgICAgZWxzZSBGSVRTKSwKCSAgICAgIHRoZV9pbmRlbnRfc3RhY2spOwogICAg
ICAgIFBibG9ja3MgOj0gcnN0KQogIHwgcHJpbnRfQkIgKFBQU3t0aGVfaW5kZW50X3N0YWNr
LCBsaW5ld2lkdGgsIHNwYWNlX2xlZnQ9cmVmIHNwX2xlZnQsLi4ufSwKICAgICAgICAgICAg
ICB7VWJsb2NrcywuLi59KSA9CiAgICAgIGxldCBmdW4gcHJfZW5kX1VibG9jayBbe0hvd190
b19pbmRlbnQ9Q09OU0lTVEVOVCxCbG9ja19zaXplLEJsb2NrX29mZnNldH1dIGwgPQoJCShw
dXNoICgoaWYgKCFCbG9ja19zaXplID4gc3BfbGVmdCkKCQkJdGhlbiBPTkVfUEVSX0xJTkUg
KGxpbmV3aWR0aCAtIChzcF9sZWZ0IC0gQmxvY2tfb2Zmc2V0KSkKCQkJZWxzZSBGSVRTKSwK
CQkgICAgICAgdGhlX2luZGVudF9zdGFjayk7CiAgICAgICAgICAgICAgICAgTGlzdC5yZXYg
bCkKCSAgICB8IHByX2VuZF9VYmxvY2sgW3tCbG9ja19zaXplLEJsb2NrX29mZnNldCwuLi59
XSBsID0KCQkocHVzaCAoKGlmICghQmxvY2tfc2l6ZSA+IHNwX2xlZnQpCgkJCXRoZW4gUEFD
S19PTlRPX0xJTkUgKGxpbmV3aWR0aCAtIChzcF9sZWZ0IC0gQmxvY2tfb2Zmc2V0KSkKCQkJ
ZWxzZSBGSVRTKSwKCQkgICAgICAgdGhlX2luZGVudF9zdGFjayk7CiAgICAgICAgICAgICAg
ICAgTGlzdC5yZXYgbCkKCSAgICB8IHByX2VuZF9VYmxvY2sgKGE6OnJzdCkgbCA9IHByX2Vu
ZF9VYmxvY2sgcnN0IChhOjpsKQogICAgICAgICAgICB8IHByX2VuZF9VYmxvY2sgXyBfID0K
ICAgICAgICAgICAgICAgIHJhaXNlIEZhaWwgIlBQLWVycm9yOiBwcmludF9CQjogaW50ZXJu
YWwgZXJyb3IiCiAgICAgICBpbiBVYmxvY2tzIDo9IHByX2VuZF9VYmxvY2soIVVibG9ja3Mp
IFtdCiAgICAgIGVuZAoKCigqIFVlbmQgc2hvdWxkIGFsd2F5cyBiZSAwIHdoZW4gcHJpbnRf
RSBpcyBjYWxsZWQuICopCmZ1biBwcmludF9FIChfLHtQZW5kID0gcmVmIDAsIFVlbmQgPSBy
ZWYgMH0pID0KICAgICAgcmFpc2UgRmFpbCAiUFAtZXJyb3I6IHByaW50X0UiCiAgfCBwcmlu
dF9FIChpc3RhY2sse1BlbmQsIC4uLn0pID0KICAgICAgbGV0IGZ1biBwb3Bfbl90aW1lcyAw
ID0gKCkKCSAgICB8IHBvcF9uX3RpbWVzIG4gPSAocG9wIGlzdGFjazsgcG9wX25fdGltZXMo
bi0xKSkKICAgICAgIGluIHBvcF9uX3RpbWVzKCFQZW5kKTsgUGVuZCA6PSAwCiAgICAgIGVu
ZAoKCigqICJjdXJzb3IiIGlzIGhvdyBtYW55IHNwYWNlcyBhY3Jvc3MgdGhlIHBhZ2Ugd2Ug
YXJlLiAqKQoKZnVuIHByaW50X3Rva2VuKFBQU3tjb25zdW1lcixzcGFjZV9sZWZ0LC4uLn0s
IFN7U3RyaW5nLExlbmd0aH0pID0KICAgICAgKGNvbnN1bWVyIFN0cmluZzsKICAgICAgIHNw
YWNlX2xlZnQgOj0gKCFzcGFjZV9sZWZ0KSAtIExlbmd0aCkKICB8IHByaW50X3Rva2VuKHBw
c3RybSxCQiBiKSA9IHByaW50X0JCKHBwc3RybSxiKQogIHwgcHJpbnRfdG9rZW4oUFBTe3Ro
ZV9pbmRlbnRfc3RhY2ssLi4ufSxFIGUpID0KICAgICAgcHJpbnRfRSAodGhlX2luZGVudF9z
dGFjayxlKQogIHwgcHJpbnRfdG9rZW4gKFBQU3t0aGVfaW5kZW50X3N0YWNrLHNwYWNlX2xl
ZnQsY29uc3VtZXIsbGluZXdpZHRoLC4uLn0sCiAgICAgICAgICAgICAgICAgQlJ7RGlzdGFu
Y2VfdG9fbmV4dF9icmVhayxOdW1iZXJfb2ZfYmxhbmtzLEJyZWFrX29mZnNldH0pID0KICAg
ICAoY2FzZSAodG9wIHRoZV9pbmRlbnRfc3RhY2spCiAgICAgICAgb2YgRklUUyA9PgoJICAg
ICAoc3BhY2VfbGVmdCA6PSAoIXNwYWNlX2xlZnQpIC0gTnVtYmVyX29mX2JsYW5rczsKICAg
ICAgICAgICAgICBpbmRlbnQgKGNvbnN1bWVyLE51bWJlcl9vZl9ibGFua3MpKQogICAgICAg
ICB8IChPTkVfUEVSX0xJTkUgY3Vyc29yKSA9PgogICAgICAgICAgICAgbGV0IHZhbCBuZXdf
Y3Vyc29yID0gY3Vyc29yICsgQnJlYWtfb2Zmc2V0CiAgICAgICAgICAgICAgaW4gc3BhY2Vf
bGVmdCA6PSBsaW5ld2lkdGggLSBuZXdfY3Vyc29yOwogICAgICAgICAgICAgICAgIGNyX2lu
ZGVudCAoY29uc3VtZXIsbmV3X2N1cnNvcikKCSAgICAgZW5kCiAgICAgICAgIHwgKFBBQ0tf
T05UT19MSU5FIGN1cnNvcikgPT4KCSAgICAgaWYgKCFEaXN0YW5jZV90b19uZXh0X2JyZWFr
ID4gKCFzcGFjZV9sZWZ0KSkKCSAgICAgdGhlbiBsZXQgdmFsIG5ld19jdXJzb3IgPSBjdXJz
b3IgKyBCcmVha19vZmZzZXQKCQkgICBpbiBzcGFjZV9sZWZ0IDo9IGxpbmV3aWR0aCAtIG5l
d19jdXJzb3I7CgkJICAgICAgY3JfaW5kZW50KGNvbnN1bWVyLG5ld19jdXJzb3IpCgkJICBl
bmQKCSAgICAgZWxzZSAoc3BhY2VfbGVmdCA6PSAhc3BhY2VfbGVmdCAtIE51bWJlcl9vZl9i
bGFua3M7CgkJICAgaW5kZW50IChjb25zdW1lcixOdW1iZXJfb2ZfYmxhbmtzKSkpCgoKZnVu
IGNsZWFyX3Bwc3RyZWFtKHBwcyA6IHBwc3RyZWFtKSA9CiAgICBsZXQgdmFsIFBQU3t0aGVf
dG9rZW5fYnVmZmVyLCB0aGVfZGVsaW1fc3RhY2ssCiAgICAgICAgICAgICAgICB0aGVfaW5k
ZW50X3N0YWNrLGxlZnRfc3VtLCByaWdodF9zdW0sCiAgICAgICAgICAgICAgICBsZWZ0X2lu
ZGV4LCByaWdodF9pbmRleCxzcGFjZV9sZWZ0LGxpbmV3aWR0aCwuLi59CiAgICAgICAgICAg
ICAgPSBtYWdpYyBwcHMKICAgICAgICB2YWwgYnVmX3NpemUgPSAzKmxpbmV3aWR0aAoJZnVu
IHNldCBpID0KCSAgICBpZiAoaSA9IGJ1Zl9zaXplKQoJICAgIHRoZW4gKCkKCSAgICBlbHNl
ICh1cGRhdGUodGhlX3Rva2VuX2J1ZmZlcixpLGluaXRpYWxfdG9rZW5fdmFsdWUpOwoJCSAg
c2V0IChpKzEpKQogICAgIGluIHNldCAwOwoJY2xlYXJfaW5kZW50X3N0YWNrIHRoZV9pbmRl
bnRfc3RhY2s7CglyZXNldF9kZWxpbV9zdGFjayB0aGVfZGVsaW1fc3RhY2s7CglsZWZ0X3N1
bSA6PSAwOyByaWdodF9zdW0gOj0gMDsKCWxlZnRfaW5kZXggOj0gMDsgcmlnaHRfaW5kZXgg
Oj0gMDsKCXNwYWNlX2xlZnQgOj0gbGluZXdpZHRoCiAgICBlbmQKCgooKiBNb3ZlIGluc2Vy
dGlvbiBoZWFkIHRvIHJpZ2h0IHVubGVzcyBhZGRpbmcgYSBCQiBhbmQgYWxyZWFkeSBhdCBh
IEJCLAogICBvciB1bmxlc3MgYWRkaW5nIGFuIEUgYW5kIGFscmVhZHkgYXQgYW4gRS4KKikK
ZnVuIEJCX2luY19yaWdodF9pbmRleChQUFN7dGhlX3Rva2VuX2J1ZmZlciwgcmlnaHRfaW5k
ZXgsICsrLC4uLn0pPQogICAgY2FzZSAodGhlX3Rva2VuX2J1ZmZlciBzdWIgKCFyaWdodF9p
bmRleCkpCiAgICAgIG9mIChCQiBfKSA9PiAoKQogICAgICAgfCBfID0+ICsrcmlnaHRfaW5k
ZXgKCmZ1biBFX2luY19yaWdodF9pbmRleChQUFN7dGhlX3Rva2VuX2J1ZmZlcixyaWdodF9p
bmRleCwgKyssLi4ufSk9CiAgICBjYXNlICh0aGVfdG9rZW5fYnVmZmVyIHN1YiAoIXJpZ2h0
X2luZGV4KSkKICAgICAgb2YgKEUgXykgPT4gKCkKICAgICAgIHwgXyA9PiArK3JpZ2h0X2lu
ZGV4CgoKZnVuIHBvaW50ZXJzX2NvaW5jaWRlKFBQU3tsZWZ0X2luZGV4LHJpZ2h0X2luZGV4
LHRoZV90b2tlbl9idWZmZXIsLi4ufSkgPQogICAgKCFsZWZ0X2luZGV4ID0gIXJpZ2h0X2lu
ZGV4KSBhbmRhbHNvCiAgICAoY2FzZSAodGhlX3Rva2VuX2J1ZmZlciBzdWIgKCFsZWZ0X2lu
ZGV4KSkKICAgICAgIG9mIChCQiB7UGJsb2NrcyA9IHJlZiBbXSwgVWJsb2NrcyA9IHJlZiBb
XX0pID0+IHRydWUKCXwgKEJCIF8pID0+IGZhbHNlCgl8IChFIHtQZW5kID0gcmVmIDAsIFVl
bmQgPSByZWYgMH0pID0+IHRydWUKCXwgKEUgXykgPT4gZmFsc2UKCXwgXyA9PiB0cnVlKQoK
ZnVuIGFkdmFuY2VfbGVmdCAocHBzdHJtIGFzIFBQU3tjb25zdW1lcixsZWZ0X2luZGV4LGxl
ZnRfc3VtLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoZV90b2tlbl9idWZm
ZXIsKyssLi4ufSwKICAgICAgICAgICAgICAgICAgaW5zdHIpID0KICAgIGxldCB2YWwgTkVH
ID0gfjEKCXZhbCBQT1MgPSAwCglmdW4gaW5jX2xlZnRfc3VtIChCUntOdW1iZXJfb2ZfYmxh
bmtzLCAuLi59KSA9CgkJIGxlZnRfc3VtIDo9ICghbGVmdF9zdW0pICsgTnVtYmVyX29mX2Js
YW5rcwoJICB8IGluY19sZWZ0X3N1bSAoU3tMZW5ndGgsIC4uLn0pID0gbGVmdF9zdW0gOj0g
KCFsZWZ0X3N1bSkgKyBMZW5ndGgKCSAgfCBpbmNfbGVmdF9zdW0gXyA9ICgpCgoJZnVuIGxh
c3Rfc2l6ZSBbe0Jsb2NrX3NpemUsIC4uLn06YmxvY2tfaW5mb10gPSAhQmxvY2tfc2l6ZQoJ
ICB8IGxhc3Rfc2l6ZSAoXzo6cnN0KSA9IGxhc3Rfc2l6ZSByc3QKICAgICAgICAgIHwgbGFz
dF9zaXplIF8gPSByYWlzZSBGYWlsICJQUC1lcnJvcjogbGFzdF9zaXplOiBpbnRlcm5hbCBl
cnJvciIKCWZ1biB0b2tlbl9zaXplIChTe0xlbmd0aCwgLi4ufSkgPSBMZW5ndGgKCSAgfCB0
b2tlbl9zaXplIChCQiBiKSA9CgkgICAgIChjYXNlIGIKICAgICAgICAgICAgICAgIG9mIHtQ
YmxvY2tzID0gcmVmIFtdLCBVYmxvY2tzID0gcmVmIFtdfSA9PgogICAgICAgICAgICAgICAg
ICAgICByYWlzZSBGYWlsICJQUC1lcnJvcjogQkJfc2l6ZSIKCSAgICAgICAgIHwge1BibG9j
a3MgYXMgcmVmKF86Ol8pLFVibG9ja3M9cmVmW119ID0+IFBPUwoJCSB8IHtVYmxvY2tzLCAu
Li59ID0+IGxhc3Rfc2l6ZSAoIVVibG9ja3MpKQoJICB8IHRva2VuX3NpemUgKEV7UGVuZCA9
IHJlZiAwLCBVZW5kID0gcmVmIDB9KSA9CiAgICAgICAgICAgICAgcmFpc2UgRmFpbCAiUFAt
ZXJyb3I6IHRva2VuX3NpemUuRSIKCSAgfCB0b2tlbl9zaXplIChFe1BlbmQgPSByZWYgMCwg
Li4ufSkgPSBORUcKCSAgfCB0b2tlbl9zaXplIChFIF8pID0gUE9TCgkgIHwgdG9rZW5fc2l6
ZSAoQlIge0Rpc3RhbmNlX3RvX25leHRfYnJlYWssIC4uLn0pID0gIURpc3RhbmNlX3RvX25l
eHRfYnJlYWsKCWZ1biBsb29wIChpbnN0cikgPQoJICAgIGlmICh0b2tlbl9zaXplIGluc3Ry
IDwgMCkgICgqIHN5bmNocm9uaXphdGlvbiBwb2ludDsgY2Fubm90IGFkdmFuY2UgKikKCSAg
ICB0aGVuICgpCgkgICAgZWxzZSAocHJpbnRfdG9rZW4ocHBzdHJtLGluc3RyKTsKCQkgIGlu
Y19sZWZ0X3N1bSBpbnN0cjsKCQkgIGlmIChwb2ludGVyc19jb2luY2lkZSBwcHN0cm0pCgkJ
ICB0aGVuICgpCgkJICBlbHNlICgqIGluY3JlbWVudCBsZWZ0IGluZGV4ICopCgogICAgKCog
V2hlbiB0aGlzIGlzIGV2YWx1YXRlZCwgd2Uga25vdyB0aGF0IHRoZSBsZWZ0X2luZGV4IGhh
cyBub3QgeWV0CiAgICAgICBjYXVnaHQgdXAgdG8gdGhlIHJpZ2h0X2luZGV4LiBJZiB3ZSBh
cmUgYXQgYSBCQiBvciBhbiBFLCB3ZSBjYW4KICAgICAgIGluY3JlbWVudCBsZWZ0X2luZGV4
IGlmIHRoZXJlIGlzIG5vIHdvcmsgdG8gYmUgZG9uZSwgaS5lLiwgYWxsIEJlZ2lucwogICAg
ICAgb3IgRW5kcyBoYXZlIGJlZW4gZGVhbHQgd2l0aC4gQWxzbywgd2Ugc2hvdWxkIGRvIHNv
bWUgaG91c2VrZWVwaW5nIGFuZAogICAgICAgY2xlYXIgdGhlIGJ1ZmZlciBhdCBsZWZ0X2lu
ZGV4LCBvdGhlcndpc2Ugd2UgY2FuIGdldCBlcnJvcnMgd2hlbgogICAgICAgbGVmdF9pbmRl
eCBjYXRjaGVzIHVwIHRvIHJpZ2h0X2luZGV4IGFuZCB3ZSByZXNldCB0aGUgaW5kaWNlcyB0
byAwLgogICAgICAgKFdlIG1pZ2h0IGZpbmQgb3Vyc2VsdmVzIGFkZGluZyBhIEJCIHRvIGFu
ICJvbGQiIEJCLCB3aXRoIHRoZSByZXN1bHQKICAgICAgIHRoYXQgdGhlIGluZGV4IGlzIG5v
dCBwdXNoZWQgb250byB0aGUgZGVsaW1fc3RhY2suIFRoaXMgY2FuIGxlYWQgdG8KICAgICAg
IG1hbmdsZWQgb3V0cHV0LikKICAgICopCgkJICAgICAgIChjYXNlICh0aGVfdG9rZW5fYnVm
ZmVyIHN1YiAoIWxlZnRfaW5kZXgpKQoJCQkgIG9mIChCQiB7UGJsb2NrcyA9IHJlZiBbXSwg
VWJsb2NrcyA9IHJlZiBbXX0pID0+CgkJCSAgICAgICAodXBkYXRlKHRoZV90b2tlbl9idWZm
ZXIsIWxlZnRfaW5kZXgsCgkJCQkgICAgICAgaW5pdGlhbF90b2tlbl92YWx1ZSk7CgkJCQkr
K2xlZnRfaW5kZXgpCgkJCSAgIHwgKEJCIF8pID0+ICgpCgkJCSAgIHwgKEUge1BlbmQgPSBy
ZWYgMCwgVWVuZCA9IHJlZiAwfSkgPT4KCQkJICAgICAgICh1cGRhdGUodGhlX3Rva2VuX2J1
ZmZlciwhbGVmdF9pbmRleCwKCQkJCSAgICAgICBpbml0aWFsX3Rva2VuX3ZhbHVlKTsKCQkJ
CSsrbGVmdF9pbmRleCkKCQkJICAgfCAoRSBfKSA9PiAoKQoJCQkgICB8IF8gPT4gKytsZWZ0
X2luZGV4OwoJCQlsb29wICh0aGVfdG9rZW5fYnVmZmVyIHN1YiAoIWxlZnRfaW5kZXgpKSkp
CiAgICAgaW4gbG9vcCBpbnN0cgogICAgZW5kCgoKZnVuIGJlZ2luX2Jsb2NrIChwcHMgOiBw
cHN0cmVhbSkgc3R5bGUgb2Zmc2V0ID0KICBsZXQgdmFsIHBwc3RybSA9IG1hZ2ljIHBwcyA6
IHBwc3RyZWFtXwogICAgICB2YWwgUFBTe3RoZV90b2tlbl9idWZmZXIsIHRoZV9kZWxpbV9z
dGFjayxsZWZ0X2luZGV4LAogICAgICAgICAgICAgIGxlZnRfc3VtLCByaWdodF9pbmRleCwg
cmlnaHRfc3VtLC4uLn0KICAgICAgICAgICAgPSBwcHN0cm0KICBpbgogICAoaWYgKGRlbGlt
X3N0YWNrX2lzX2VtcHR5IHRoZV9kZWxpbV9zdGFjaykKICAgIHRoZW4gKGxlZnRfaW5kZXgg
Oj0gMDsKCSAgbGVmdF9zdW0gOj0gMTsKCSAgcmlnaHRfaW5kZXggOj0gMDsKCSAgcmlnaHRf
c3VtIDo9IDEpCiAgICBlbHNlIEJCX2luY19yaWdodF9pbmRleCBwcHN0cm07CiAgICBjYXNl
ICh0aGVfdG9rZW5fYnVmZmVyIHN1YiAoIXJpZ2h0X2luZGV4KSkKICAgICAgb2YgKEJCIHtV
YmxvY2tzLCAuLi59KSA9PgoJICAgVWJsb2NrcyA6PSB7QmxvY2tfc2l6ZSA9IHJlZiAofigh
cmlnaHRfc3VtKSksCgkJICAgICAgIEJsb2NrX29mZnNldCA9IG9mZnNldCwKCQkgICAgICAg
SG93X3RvX2luZGVudCA9IHN0eWxlfTo6KCFVYmxvY2tzKQogICAgICAgfCBfID0+ICh1cGRh
dGUodGhlX3Rva2VuX2J1ZmZlciwgIXJpZ2h0X2luZGV4LAoJCSAgICAgIEJCe1BibG9ja3Mg
PSByZWYgW10sCgkJCSBVYmxvY2tzID0gcmVmIFt7QmxvY2tfc2l6ZSA9IHJlZiAofighcmln
aHRfc3VtKSksCgkJCQkJIEJsb2NrX29mZnNldCA9IG9mZnNldCwKCQkJCQkgSG93X3RvX2lu
ZGVudCA9IHN0eWxlfV19KTsKCSAgICAgICBwdXNoX2RlbGltX3N0YWNrICghcmlnaHRfaW5k
ZXgsIHRoZV9kZWxpbV9zdGFjaykpKQogIGVuZAoKZnVuIGVuZF9ibG9jayhwcHMgOiBwcHN0
cmVhbSkgPQogIGxldCB2YWwgcHBzdHJtID0gbWFnaWMgcHBzIDogcHBzdHJlYW1fCiAgICAg
IHZhbCBQUFN7dGhlX3Rva2VuX2J1ZmZlcix0aGVfZGVsaW1fc3RhY2sscmlnaHRfaW5kZXgs
Li4ufQogICAgICAgICAgICA9IHBwc3RybQogIGluCiAgICBpZiAoZGVsaW1fc3RhY2tfaXNf
ZW1wdHkgdGhlX2RlbGltX3N0YWNrKQogICAgdGhlbiBwcmludF90b2tlbihwcHN0cm0sKEV7
UGVuZCA9IHJlZiAxLCBVZW5kID0gcmVmIDB9KSkKICAgIGVsc2UgKEVfaW5jX3JpZ2h0X2lu
ZGV4IHBwc3RybTsKCSAgY2FzZSAodGhlX3Rva2VuX2J1ZmZlciBzdWIgKCFyaWdodF9pbmRl
eCkpCiAgICAgICAgICAgIG9mIChFe1VlbmQsIC4uLn0pID0+IFVlbmQgOj0gIVVlbmQgKyAx
CgkgICAgIHwgXyA9PiAodXBkYXRlKHRoZV90b2tlbl9idWZmZXIsIXJpZ2h0X2luZGV4LAoJ
CQkgICAgRXtVZW5kID0gcmVmIDEsIFBlbmQgPSByZWYgMH0pOwoJCSAgICAgcHVzaF9kZWxp
bV9zdGFjayAoIXJpZ2h0X2luZGV4LCB0aGVfZGVsaW1fc3RhY2spKSkKICBlbmQKCmxvY2Fs
CiAgZnVuIGNoZWNrX2RlbGltX3N0YWNrKFBQU3t0aGVfdG9rZW5fYnVmZmVyLHRoZV9kZWxp
bV9zdGFjayxyaWdodF9zdW0sLi4ufSkgPQogICAgICBsZXQgZnVuIGNoZWNrIGsgPQoJICAg
ICAgaWYgKGRlbGltX3N0YWNrX2lzX2VtcHR5IHRoZV9kZWxpbV9zdGFjaykKCSAgICAgIHRo
ZW4gKCkKCSAgICAgIGVsc2UgY2FzZSh0aGVfdG9rZW5fYnVmZmVyIHN1YiAodG9wX2RlbGlt
X3N0YWNrIHRoZV9kZWxpbV9zdGFjaykpCgkJICAgICBvZiAoQkJ7VWJsb2NrcyBhcyByZWYg
KChiIGFzIHtCbG9ja19zaXplLCAuLi59KTo6cnN0KSwKCQkJICAgIFBibG9ja3N9KSA9PgoJ
CQkgICBpZiAoaz4wKQoJCQkgICB0aGVuIChCbG9ja19zaXplIDo9ICFyaWdodF9zdW0gKyAh
QmxvY2tfc2l6ZTsKCQkJCSBQYmxvY2tzIDo9IGIgOjogKCFQYmxvY2tzKTsKCQkJCSBVYmxv
Y2tzIDo9IHJzdDsKCQkJCSBpZiAoTGlzdC5sZW5ndGggcnN0ID0gMCkKCQkJCSB0aGVuIHBv
cF9kZWxpbV9zdGFjayB0aGVfZGVsaW1fc3RhY2sKCQkJCSBlbHNlICgpOwoJCQkJIGNoZWNr
KGstMSkpCgkJCSAgIGVsc2UgKCkKCQkgICAgICB8IChFe1BlbmQsVWVuZH0pID0+CgkJCSAg
IChQZW5kIDo9ICghUGVuZCkgKyAoIVVlbmQpOwoJCQkgICAgVWVuZCA6PSAwOwoJCQkgICAg
cG9wX2RlbGltX3N0YWNrIHRoZV9kZWxpbV9zdGFjazsKCQkJICAgIGNoZWNrKGsgKyAhUGVu
ZCkpCgkJICAgICAgfCAoQlJ7RGlzdGFuY2VfdG9fbmV4dF9icmVhaywgLi4ufSkgPT4KCQkJ
ICAgKERpc3RhbmNlX3RvX25leHRfYnJlYWsgOj0KCQkJICAgICAgIXJpZ2h0X3N1bSArICFE
aXN0YW5jZV90b19uZXh0X2JyZWFrOwoJCQkgICAgcG9wX2RlbGltX3N0YWNrIHRoZV9kZWxp
bV9zdGFjazsKCQkJICAgIGlmIChrPjApCgkJCSAgICB0aGVuIGNoZWNrIGsKCQkJICAgIGVs
c2UgKCkpCiAgICAgICAgICAgICAgICAgICAgICB8IF8gPT4gcmFpc2UgRmFpbCAiUFAtZXJy
b3I6IGNoZWNrX2RlbGltX3N0YWNrLmNhdGNoYWxsIgogICAgICAgaW4gY2hlY2sgMAogICAg
ICBlbmQKaW4KCiAgZnVuIGFkZF9icmVhayAocHBzIDogcHBzdHJlYW0pIChuLCBicmVha19v
ZmZzZXQpID0KICAgIGxldCB2YWwgcHBzdHJtID0gbWFnaWMgcHBzIDogcHBzdHJlYW1fCiAg
ICAgICAgdmFsIFBQU3t0aGVfdG9rZW5fYnVmZmVyLHRoZV9kZWxpbV9zdGFjayxsZWZ0X2lu
ZGV4LAogICAgICAgICAgICAgICAgcmlnaHRfaW5kZXgsbGVmdF9zdW0scmlnaHRfc3VtLCAr
KywgLi4ufQogICAgICAgICAgICAgID0gcHBzdHJtCiAgICBpbgogICAgICAoaWYgKGRlbGlt
X3N0YWNrX2lzX2VtcHR5IHRoZV9kZWxpbV9zdGFjaykKICAgICAgIHRoZW4gKGxlZnRfaW5k
ZXggOj0gMDsgcmlnaHRfaW5kZXggOj0gMDsKCSAgICAgbGVmdF9zdW0gOj0gMTsgICByaWdo
dF9zdW0gOj0gMSkKICAgICAgIGVsc2UgKytyaWdodF9pbmRleDsKICAgICAgIHVwZGF0ZSh0
aGVfdG9rZW5fYnVmZmVyLCAhcmlnaHRfaW5kZXgsCgkgICAgICBCUntEaXN0YW5jZV90b19u
ZXh0X2JyZWFrID0gcmVmICh+KCFyaWdodF9zdW0pKSwKCQkgTnVtYmVyX29mX2JsYW5rcyA9
IG4sCgkJIEJyZWFrX29mZnNldCA9IGJyZWFrX29mZnNldH0pOwogICAgICAgY2hlY2tfZGVs
aW1fc3RhY2sgcHBzdHJtOwogICAgICAgcmlnaHRfc3VtIDo9ICghcmlnaHRfc3VtKSArIG47
CiAgICAgICBwdXNoX2RlbGltX3N0YWNrICghcmlnaHRfaW5kZXgsdGhlX2RlbGltX3N0YWNr
KSkKICAgIGVuZAoKICBmdW4gZmx1c2hfcHBzdHJlYW0wKHBwcyA6IHBwc3RyZWFtKSA9CiAg
ICBsZXQgdmFsIHBwc3RybSA9IG1hZ2ljIHBwcyA6IHBwc3RyZWFtXwogICAgICAgIHZhbCBQ
UFN7dGhlX2RlbGltX3N0YWNrLHRoZV90b2tlbl9idWZmZXIsIGZsdXNoLCBsZWZ0X2luZGV4
LC4uLn0KICAgICAgICAgICAgICA9IHBwc3RybQogICAgaW4KICAgICAgKGlmIChkZWxpbV9z
dGFja19pc19lbXB0eSB0aGVfZGVsaW1fc3RhY2spCiAgICAgICB0aGVuICgpCiAgICAgICBl
bHNlIChjaGVja19kZWxpbV9zdGFjayBwcHN0cm07CgkgICAgIGFkdmFuY2VfbGVmdChwcHN0
cm0sIHRoZV90b2tlbl9idWZmZXIgc3ViICghbGVmdF9pbmRleCkpKTsKICAgICAgIGZsdXNo
KCkpCiAgICBlbmQKCmVuZCAoKiBsb2NhbCAqKQoKCmZ1biBmbHVzaF9wcHN0cmVhbSBwcHN0
cm0gPQogICAgKGZsdXNoX3Bwc3RyZWFtMCBwcHN0cm07CiAgICAgY2xlYXJfcHBzdHJlYW0g
cHBzdHJtKQoKZnVuIGFkZF9zdHJpbmcgKHBwcyA6IHBwc3RyZWFtKSBzID0KICAgIGxldCB2
YWwgcHBzdHJtID0gbWFnaWMgcHBzIDogcHBzdHJlYW1fCiAgICAgICAgdmFsIFBQU3t0aGVf
dG9rZW5fYnVmZmVyLHRoZV9kZWxpbV9zdGFjayxjb25zdW1lciwKICAgICAgICAgICAgICAg
IHJpZ2h0X2luZGV4LHJpZ2h0X3N1bSxsZWZ0X3N1bSwKICAgICAgICAgICAgICAgIGxlZnRf
aW5kZXgsc3BhY2VfbGVmdCwrKywuLi59CiAgICAgICAgICAgICAgPSBwcHN0cm0KICAgICAg
ICBmdW4gZm5sIFt7QmxvY2tfc2l6ZSwgLi4ufTpibG9ja19pbmZvXSA9IEJsb2NrX3NpemUg
Oj0gSU5GSU5JVFkKCSAgfCBmbmwgKF86OnJzdCkgPSBmbmwgcnN0CiAgICAgICAgICB8IGZu
bCBfID0gcmFpc2UgRmFpbCAiUFAtZXJyb3I6IGZubDogaW50ZXJuYWwgZXJyb3IiCgoJZnVu
IHNldChkc3RhY2ssQkJ7VWJsb2NrcyBhcyByZWZbe0Jsb2NrX3NpemUsLi4ufTpibG9ja19p
bmZvXSwuLi59KSA9CgkgICAgICAocG9wX2JvdHRvbV9kZWxpbV9zdGFjayBkc3RhY2s7Cgkg
ICAgICAgQmxvY2tfc2l6ZSA6PSBJTkZJTklUWSkKCSAgfCBzZXQgKF8sQkIge1VibG9ja3Mg
PSByZWYoXzo6cnN0KSwgLi4ufSkgPSBmbmwgcnN0CgkgIHwgc2V0IChkc3RhY2ssIEV7UGVu
ZCxVZW5kfSkgPQoJICAgICAgKFBlbmQgOj0gKCFQZW5kKSArICghVWVuZCk7CgkgICAgICAg
VWVuZCA6PSAwOwoJICAgICAgIHBvcF9ib3R0b21fZGVsaW1fc3RhY2sgZHN0YWNrKQoJICB8
IHNldCAoZHN0YWNrLEJSe0Rpc3RhbmNlX3RvX25leHRfYnJlYWssLi4ufSkgPQoJICAgICAg
KHBvcF9ib3R0b21fZGVsaW1fc3RhY2sgZHN0YWNrOwoJICAgICAgIERpc3RhbmNlX3RvX25l
eHRfYnJlYWsgOj0gSU5GSU5JVFkpCiAgICAgICAgICB8IHNldCBfID0gcmFpc2UgKEZhaWwg
IlBQLWVycm9yOiBhZGRfc3RyaW5nLnNldCIpCgoJZnVuIGNoZWNrX3N0cmVhbSAoKSA9Cgkg
ICAgaWYgKCghcmlnaHRfc3VtIC0gIWxlZnRfc3VtKSA+ICFzcGFjZV9sZWZ0KQoJICAgIHRo
ZW4gaWYgKGRlbGltX3N0YWNrX2lzX2VtcHR5IHRoZV9kZWxpbV9zdGFjaykKCQkgdGhlbiAo
KQoJCSBlbHNlIGxldCB2YWwgaSA9IGJvdHRvbV9kZWxpbV9zdGFjayB0aGVfZGVsaW1fc3Rh
Y2sKCQkgICAgICAgaW4gaWYgKCFsZWZ0X2luZGV4ID0gaSkKCQkJICB0aGVuIHNldCAodGhl
X2RlbGltX3N0YWNrLCB0aGVfdG9rZW5fYnVmZmVyIHN1YiBpKQoJCQkgIGVsc2UgKCk7CgkJ
CSAgYWR2YW5jZV9sZWZ0KHBwc3RybSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgdGhlX3Rva2VuX2J1ZmZlciBzdWIgKCFsZWZ0X2luZGV4KSk7CgkJICAgICAg
ICAgIGlmIChwb2ludGVyc19jb2luY2lkZSBwcHN0cm0pCgkJICAgICAgICAgIHRoZW4gKCkK
CQkgICAgICAgICAgZWxzZSBjaGVja19zdHJlYW0gKCkKCQkgICAgICBlbmQKCSAgICBlbHNl
ICgpCgoJdmFsIHNsZW4gPSBTdHJpbmcuc2l6ZSBzCgl2YWwgU190b2tlbiA9IFN7U3RyaW5n
ID0gcywgTGVuZ3RoID0gc2xlbn0KCiAgICBpbiBpZiAoZGVsaW1fc3RhY2tfaXNfZW1wdHkg
dGhlX2RlbGltX3N0YWNrKQogICAgICAgdGhlbiBwcmludF90b2tlbihwcHN0cm0sU190b2tl
bikKICAgICAgIGVsc2UgKCsrcmlnaHRfaW5kZXg7CiAgICAgICAgICAgICB1cGRhdGUodGhl
X3Rva2VuX2J1ZmZlciwgIXJpZ2h0X2luZGV4LCBTX3Rva2VuKTsKICAgICAgICAgICAgIHJp
Z2h0X3N1bSA6PSAoIXJpZ2h0X3N1bSkrc2xlbjsKICAgICAgICAgICAgIGNoZWNrX3N0cmVh
bSAoKSkKICAgZW5kCgoKKCogRGVyaXZlZCBmb3JtLiBUaGUgKzIgaXMgZm9yIHBlYWNlIG9m
IG1pbmQgKikKZnVuIGFkZF9uZXdsaW5lIChwcHMgOiBwcHN0cmVhbSkgPQogIGxldCB2YWwg
UFBTe2xpbmV3aWR0aCwgLi4ufSA9IG1hZ2ljIHBwcwogIGluIGFkZF9icmVhayBwcHMgKGxp
bmV3aWR0aCsyLDApIGVuZAoKKCogRGVyaXZlZCBmb3JtLiBCdWlsZHMgYSBwcHN0cmVhbSwg
c2VuZHMgcHJldHR5IHByaW50aW5nIGNvbW1hbmRzIGNhbGxlZCBpbgogICBmIHRvIHRoZSBw
cHN0cmVhbSwgdGhlbiBmbHVzaGVzIHBwc3RyZWFtLgoqKQoKZnVuIHdpdGhfcHAgcHBjb25z
dW1lciBwcGZuID0KICAgbGV0IHZhbCBwcHN0cm0gPSBta19wcHN0cmVhbSBwcGNvbnN1bWVy
CiAgICBpbiBwcGZuIHBwc3RybTsKICAgICAgIGZsdXNoX3Bwc3RyZWFtMCBwcHN0cm0KICAg
ZW5kCiAgIGhhbmRsZSBGYWlsIG1zZyA9PgogICAgIChUZXh0SU8ucHJpbnQgKCI+Pj4+IFBy
ZXR0eS1wcmludGVyIGZhaWx1cmU6ICIgXiBtc2cgXiAiXG4iKSkKCmZ1biBwcF90b19zdHJp
bmcgbGluZXdpZHRoIHBwZm4gb2IgPQogICAgbGV0IHZhbCBsID0gcmVmIChbXTpzdHJpbmcg
bGlzdCkKCWZ1biBhdHRhY2ggcyA9IGwgOj0gKHM6OighbCkpCiAgICAgaW4gd2l0aF9wcCB7
Y29uc3VtZXIgPSBhdHRhY2gsIGxpbmV3aWR0aD1saW5ld2lkdGgsIGZsdXNoID0gZm4oKT0+
KCl9CgkJKGZuIHBwc3RybSA9PiAgcHBmbiBwcHN0cm0gb2IpOwoJU3RyaW5nLmNvbmNhdChM
aXN0LnJldighbCkpCiAgICBlbmQKZW5kCigqI2xpbmUgMC4wICIkSE9NRS9kZXYvc21sL2Jh
c2ljL3NyYy9CaW5hcnltYXAuc2lnIiopCigqIEJpbmFyeW1hcCAtLSBhcHBsaWNhdGl2ZSBt
YXBzIGFzIGJhbGFuY2VkIG9yZGVyZWQgYmluYXJ5IHRyZWVzICopCigqIEZyb20gU01ML05K
IGxpYiAwLjIsIGNvcHlyaWdodCAxOTkzIGJ5IEFUJlQgQmVsbCBMYWJvcmF0b3JpZXMgICop
CigqIE9yaWdpbmFsIGltcGxlbWVudGF0aW9uIGR1ZSB0byBTdGVwaGVuIEFkYW1zLCBTb3V0
aGFtcHRvbiwgVUsgICopCgpzaWduYXR1cmUgQmluYXJ5bWFwID0Kc2lnCgp0eXBlICgna2V5
LCAnYSkgZGljdAoKZXhjZXB0aW9uIE5vdEZvdW5kCgp2YWwgbWtEaWN0ICAgIDogKCdrZXkg
KiAna2V5IC0+IG9yZGVyKSAtPiAoJ2tleSwgJ2EpIGRpY3QKdmFsIGluc2VydCAgICA6ICgn
a2V5LCAnYSkgZGljdCAqICdrZXkgKiAnYSAtPiAoJ2tleSwgJ2EpIGRpY3QKdmFsIGZpbmQg
ICAgICA6ICgna2V5LCAnYSkgZGljdCAqICdrZXkgLT4gJ2EKdmFsIHBlZWsgICAgICA6ICgn
a2V5LCAnYSkgZGljdCAqICdrZXkgLT4gJ2Egb3B0aW9uCnZhbCByZW1vdmUgICAgOiAoJ2tl
eSwgJ2EpIGRpY3QgKiAna2V5IC0+ICgna2V5LCAnYSkgZGljdCAqICdhCnZhbCBudW1JdGVt
cyAgOiAoJ2tleSwgJ2EpIGRpY3QgLT4gaW50CnZhbCBsaXN0SXRlbXMgOiAoJ2tleSwgJ2Ep
IGRpY3QgLT4gKCdrZXkgKiAnYSkgbGlzdAp2YWwgYXBwICAgICAgIDogKCdrZXkgKiAnYSAt
PiB1bml0KSAtPiAoJ2tleSwnYSkgZGljdCAtPiB1bml0CnZhbCByZXZhcHAgICAgOiAoJ2tl
eSAqICdhIC0+IHVuaXQpIC0+ICgna2V5LCdhKSBkaWN0IC0+IHVuaXQKdmFsIGZvbGRyICAg
ICA6ICgna2V5ICogJ2EgKiAnYiAtPiAnYiktPiAnYiAtPiAoJ2tleSwnYSkgZGljdCAtPiAn
Ygp2YWwgZm9sZGwgICAgIDogKCdrZXkgKiAnYSAqICdiIC0+ICdiKSAtPiAnYiAtPiAoJ2tl
eSwnYSkgZGljdCAtPiAnYgp2YWwgbWFwICAgICAgIDogKCdrZXkgKiAnYSAtPiAnYikgLT4g
KCdrZXksJ2EpIGRpY3QgLT4gKCdrZXksICdiKSBkaWN0CnZhbCB0cmFuc2Zvcm0gOiAoJ2Eg
LT4gJ2IpIC0+ICgna2V5LCdhKSBkaWN0IC0+ICgna2V5LCAnYikgZGljdAoKZW5kCgooKiAK
ICAgWygna2V5LCAnYSkgZGljdF0gaXMgdGhlIHR5cGUgb2YgYXBwbGljYXRpdmUgbWFwcyBm
cm9tIGRvbWFpbiB0eXBlCiAgICdrZXkgdG8gcmFuZ2UgdHlwZSAnYSwgb3IgZXF1aXZhbGVu
dGx5LCBhcHBsaWNhdGl2ZSBkaWN0aW9uYXJpZXMKICAgd2l0aCBrZXlzIG9mIHR5cGUgJ2tl
eSBhbmQgdmFsdWVzIG9mIHR5cGUgJ2EuICBUaGV5IGFyZSBpbXBsZW1lbnRlZAogICBhcyBv
cmRlcmVkIGJhbGFuY2VkIGJpbmFyeSB0cmVlcy4KCiAgIFtta0RpY3Qgb3Jkcl0gcmV0dXJu
cyBhIG5ldywgZW1wdHkgbWFwIHdob3NlIGtleXMgaGF2ZSBvcmRlcmluZwogICBvcmRyLgoK
ICAgW2luc2VydChtLCBpLCB2KV0gZXh0ZW5kcyAob3IgbW9kaWZpZXMpIG1hcCBtIHRvIG1h
cCBpIHRvIHYuCgogICBbZmluZCAobSwgayldIHJldHVybnMgdiBpZiBtIG1hcHMgayB0byB2
OyBvdGhlcndpc2UgcmFpc2VzIE5vdEZvdW5kLgogICAKICAgW3BlZWsobSwgayldIHJldHVy
bnMgU09NRSB2IGlmIG0gbWFwcyBrIHRvIHY7IG90aGVyd2lzZSByZXR1cm5zIE5PTkUuCgog
ICBbcmVtb3ZlKG0sIGspXSByZW1vdmVzIGsgZnJvbSB0aGUgZG9tYWluIG9mIG0gYW5kIHJl
dHVybnMgdGhlCiAgIG1vZGlmaWVkIG1hcCBhbmQgdGhlIGVsZW1lbnQgdiBjb3JyZXNwb25k
aW5nIHRvIGsuICBSYWlzZXMgTm90Rm91bmQKICAgaWYgayBpcyBub3QgaW4gdGhlIGRvbWFp
biBvZiBtLgoKICAgW251bUl0ZW1zIG1dIHJldHVybnMgdGhlIG51bWJlciBvZiBlbnRyaWVz
IGluIG0gKHRoYXQgaXMsIHRoZSBzaXplCiAgIG9mIHRoZSBkb21haW4gb2YgbSkuCgogICBb
bGlzdEl0ZW1zIG1dIHJldHVybnMgYSBsaXN0IG9mIHRoZSBlbnRyaWVzIChrLCB2KSBvZiBr
ZXlzIGsgYW5kCiAgIHRoZSBjb3JyZXNwb25kaW5nIHZhbHVlcyB2IGluIG0sIGluIG9yZGVy
IG9mIGluY3JlYXNpbmcga2V5IHZhbHVlcy4KCiAgIFthcHAgZiBtXSBhcHBsaWVzIGZ1bmN0
aW9uIGYgdG8gdGhlIGVudHJpZXMgKGssIHYpIGluIG0sIGluCiAgIGluY3JlYXNpbmcgb3Jk
ZXIgb2YgayAoYWNjb3JkaW5nIHRvIHRoZSBvcmRlcmluZyBvcmRyIHVzZWQgdG8KICAgY3Jl
YXRlIHRoZSBtYXAgb3IgZGljdGlvbmFyeSkuCgogICBbcmV2YXBwIGYgbV0gYXBwbGllcyBm
dW5jdGlvbiBmIHRvIHRoZSBlbnRyaWVzIChrLCB2KSBpbiBtLCBpbgogICBkZWNyZWFzaW5n
IG9yZGVyIG9mIGsuCgogICBbZm9sZGwgZiBlIG1dIGFwcGxpZXMgdGhlIGZvbGRpbmcgZnVu
Y3Rpb24gZiB0byB0aGUgZW50cmllcyAoaywgdikKICAgaW4gbSwgaW4gaW5jcmVhc2luZyBv
cmRlciBvZiBrLgoKICAgW2ZvbGRyIGYgZSBtXSBhcHBsaWVzIHRoZSBmb2xkaW5nIGZ1bmN0
aW9uIGYgdG8gdGhlIGVudHJpZXMgKGssIHYpCiAgIGluIG0sIGluIGRlY3JlYXNpbmcgb3Jk
ZXIgb2Ygay4KCiAgIFttYXAgZiBtXSByZXR1cm5zIGEgbmV3IG1hcCB3aG9zZSBlbnRyaWVz
IGhhdmUgZm9ybSAoaywgZihrLHYpKSwKICAgd2hlcmUgKGssIHYpIGlzIGFuIGVudHJ5IGlu
IG0uCgogICBbdHJhbnNmb3JtIGYgbV0gcmV0dXJucyBhIG5ldyBtYXAgd2hvc2UgZW50cmll
cyBoYXZlIGZvcm0gKGssIGYgdiksCiAgIHdoZXJlIChrLCB2KSBpcyBhbiBlbnRyeSBpbiBt
LgoqKQooKiNsaW5lIDAuMCAiJEhPTUUvZGV2L3NtbC9iYXNpYy9zcmMvQmluYXJ5bWFwLnNt
bCIqKQooKiBCaW5hcnltYXAgLS0gbW9kaWZpZWQgZm9yIE1pbHRvbiBNTCAKICogZnJvbSBT
TUwvTkogbGlicmFyeSB2LiAwLjIgZmlsZSBiaW5hcnktZGljdC5zbWwuCiAqIENPUFlSSUdI
VCAoYykgMTk5MyBieSBBVCZUIEJlbGwgTGFib3JhdG9yaWVzLiAgCiAqIFNlZSBmaWxlIG1v
c21sL2NvcHlyZ2h0L2NvcHlyZ2h0LmF0dCBmb3IgZGV0YWlscy4KICoKICogVGhpcyBjb2Rl
IHdhcyBhZGFwdGVkIGZyb20gU3RlcGhlbiBBZGFtcycgYmluYXJ5IHRyZWUgaW1wbGVtZW50
YXRpb24KICogb2YgYXBwbGljYXRpdmUgaW50ZWdlciBzZXRzLgogKgogKiAgIENvcHlyaWdo
dCAxOTkyIFN0ZXBoZW4gQWRhbXMuCiAqCiAqICAgIFRoaXMgc29mdHdhcmUgbWF5IGJlIHVz
ZWQgZnJlZWx5IHByb3ZpZGVkIHRoYXQ6CiAqICAgICAgMS4gVGhpcyBjb3B5cmlnaHQgbm90
aWNlIGlzIGF0dGFjaGVkIHRvIGFueSBjb3B5LCBkZXJpdmVkIHdvcmssCiAqICAgICAgICAg
b3Igd29yayBpbmNsdWRpbmcgYWxsIG9yIHBhcnQgb2YgdGhpcyBzb2Z0d2FyZS4KICogICAg
ICAyLiBBbnkgZGVyaXZlZCB3b3JrIG11c3QgY29udGFpbiBhIHByb21pbmVudCBub3RpY2Ug
c3RhdGluZyB0aGF0CiAqICAgICAgICAgaXQgaGFzIGJlZW4gYWx0ZXJlZCBmcm9tIHRoZSBv
cmlnaW5hbC4KICoKICoKICogICBOYW1lKHMpOiBTdGVwaGVuIEFkYW1zLgogKiAgIERlcGFy
dG1lbnQsIEluc3RpdHV0aW9uOiBFbGVjdHJvbmljcyAmIENvbXB1dGVyIFNjaWVuY2UsCiAq
ICAgICAgVW5pdmVyc2l0eSBvZiBTb3V0aGFtcHRvbgogKiAgIEFkZHJlc3M6ICBFbGVjdHJv
bmljcyAmIENvbXB1dGVyIFNjaWVuY2UKICogICAgICAgICAgICAgVW5pdmVyc2l0eSBvZiBT
b3V0aGFtcHRvbgogKgkgICAgIFNvdXRoYW1wdG9uICBTTzkgNU5ICiAqCSAgICAgR3JlYXQg
QnJpdGlhbgogKiAgIEUtbWFpbDogICBzcmFAZWNzLnNvdG9uLmFjLnVrCiAqCiAqICAgQ29t
bWVudHM6CiAqCiAqICAgICAxLiAgVGhlIGltcGxlbWVudGF0aW9uIGlzIGJhc2VkIG9uIEJp
bmFyeSBzZWFyY2ggdHJlZXMgb2YgQm91bmRlZAogKiAgICAgICAgIEJhbGFuY2UsIHNpbWls
YXIgdG8gTmlldmVyZ2VsdCAmIFJlaW5nb2xkLCBTSUFNIEouIENvbXB1dGluZwogKiAgICAg
ICAgIDIoMSksIE1hcmNoIDE5NzMuICBUaGUgbWFpbiBhZHZhbnRhZ2Ugb2YgdGhlc2UgdHJl
ZXMgaXMgdGhhdAogKiAgICAgICAgIHRoZXkga2VlcCB0aGUgc2l6ZSBvZiB0aGUgdHJlZSBp
biB0aGUgbm9kZSwgZ2l2aW5nIGEgY29uc3RhbnQKICogICAgICAgICB0aW1lIHNpemUgb3Bl
cmF0aW9uLgogKgogKiAgICAgMi4gIFRoZSBib3VuZGVkIGJhbGFuY2UgY3JpdGVyaW9uIGlz
IHNpbXBsZXIgdGhhbiBOJlIncyBhbHBoYS4KICogICAgICAgICBTaW1wbHksIG9uZSBzdWJ0
cmVlIG11c3Qgbm90IGhhdmUgbW9yZSB0aGFuIGB3ZWlnaHQnIHRpbWVzIGFzCiAqICAgICAg
ICAgbWFueSBlbGVtZW50cyBhcyB0aGUgb3Bwb3NpdGUgc3VidHJlZS4gIFJlYmFsYW5jaW5n
IGlzCiAqICAgICAgICAgZ3VhcmFudGVlZCB0byByZWluc3RhdGUgdGhlIGNyaXRlcmlvbiBm
b3Igd2VpZ2h0PjIuMjMsIGJ1dAogKiAgICAgICAgIHRoZSBvY2Nhc2lvbmFsIGluY29ycmVj
dCBiZWhhdmlvdXIgZm9yIHdlaWdodD0yIGlzIG5vdAogKiAgICAgICAgIGRldHJpbWVudGFs
IHRvIHBlcmZvcm1hbmNlLgogKgogKikKCnN0cnVjdHVyZSBCaW5hcnltYXAgOj4gQmluYXJ5
bWFwID0Kc3RydWN0CiAKZXhjZXB0aW9uIE5vdEZvdW5kCgpmdW4gd3QgKGkgOiBpbnQpID0g
MyAqIGkKCmRhdGF0eXBlICgna2V5LCAnYSkgZGljdCA9IAogICAgRElDVCBvZiAoJ2tleSAq
ICdrZXkgLT4gb3JkZXIpICogKCdrZXksICdhKSB0cmVlCmFuZCAoJ2tleSwgJ2EpIHRyZWUg
PQogICAgRSAKICB8IFQgb2Yge2tleSAgIDogJ2tleSwgCgkgIHZhbHVlIDogJ2EsIAoJICBj
bnQgICA6IGludCwgCgkgIGxlZnQgIDogKCdrZXksICdhKSB0cmVlLCAKCSAgcmlnaHQgOiAo
J2tleSwgJ2EpIHRyZWV9CgpmdW4gdHJlZVNpemUgRSAgICAgICAgICAgID0gMAogIHwgdHJl
ZVNpemUgKFR7Y250LC4uLn0pID0gY250CgpmdW4gbnVtSXRlbXMgKERJQ1QoXywgdCkpID0g
dHJlZVNpemUgdAoKbG9jYWwKICAgIGZ1biBOKGssdixFLEUpID0gVHtrZXk9ayx2YWx1ZT12
LGNudD0xLGxlZnQ9RSxyaWdodD1FfQogICAgICB8IE4oayx2LEUsciBhcyBUIG4pID0gVHtr
ZXk9ayx2YWx1ZT12LGNudD0xKygjY250IG4pLGxlZnQ9RSxyaWdodD1yfQogICAgICB8IE4o
ayx2LGwgYXMgVCBuLEUpID0gVHtrZXk9ayx2YWx1ZT12LGNudD0xKygjY250IG4pLGxlZnQ9
bCxyaWdodD1FfQogICAgICB8IE4oayx2LGwgYXMgVCBuLHIgYXMgVCBuJykgPSAKICAgICAg
ICAgIFR7a2V5PWssdmFsdWU9dixjbnQ9MSsoI2NudCBuKSsoI2NudCBuJyksbGVmdD1sLHJp
Z2h0PXJ9CgogICAgZnVuIHNpbmdsZV9MIChhLGF2LHgsVHtrZXk9Yix2YWx1ZT1idixsZWZ0
PXkscmlnaHQ9eiwuLi59KSA9IAogICAgICAgICAgTihiLGJ2LE4oYSxhdix4LHkpLHopCiAg
ICAgIHwgc2luZ2xlX0wgXyA9IHJhaXNlIE1hdGNoCiAgICBmdW4gc2luZ2xlX1IgKGIsYnYs
VHtrZXk9YSx2YWx1ZT1hdixsZWZ0PXgscmlnaHQ9eSwuLi59LHopID0gCiAgICAgICAgICBO
KGEsYXYseCxOKGIsYnYseSx6KSkKICAgICAgfCBzaW5nbGVfUiBfID0gcmFpc2UgTWF0Y2gK
ICAgIGZ1biBkb3VibGVfTCAoYSxhdix3LFR7a2V5PWMsdmFsdWU9Y3YsIAoJCQkgICBsZWZ0
PVR7a2V5PWIsdmFsdWU9YnYsbGVmdD14LHJpZ2h0PXksLi4ufSwKCQkJICAgcmlnaHQ9eiwu
Li59KSA9CiAgICAgICAgICBOKGIsYnYsTihhLGF2LHcseCksTihjLGN2LHkseikpCiAgICAg
IHwgZG91YmxlX0wgXyA9IHJhaXNlIE1hdGNoCiAgICBmdW4gZG91YmxlX1IgKGMsY3YsVHtr
ZXk9YSx2YWx1ZT1hdixsZWZ0PXcsCgkJCSByaWdodD1Ue2tleT1iLHZhbHVlPWJ2LGxlZnQ9
eCxyaWdodD15LC4uLn0sLi4ufSx6KSA9IAogICAgICAgICAgTihiLGJ2LE4oYSxhdix3LHgp
LE4oYyxjdix5LHopKQogICAgICB8IGRvdWJsZV9SIF8gPSByYWlzZSBNYXRjaAoKICAgIGZ1
biBUJyAoayx2LEUsRSkgPSBUe2tleT1rLHZhbHVlPXYsY250PTEsbGVmdD1FLHJpZ2h0PUV9
CiAgICAgIHwgVCcgKGssdixFLHIgYXMgVHtyaWdodD1FLGxlZnQ9RSwuLi59KSA9CiAgICAg
ICAgICBUe2tleT1rLHZhbHVlPXYsY250PTIsbGVmdD1FLHJpZ2h0PXJ9CiAgICAgIHwgVCcg
KGssdixsIGFzIFR7cmlnaHQ9RSxsZWZ0PUUsLi4ufSxFKSA9CiAgICAgICAgICBUe2tleT1r
LHZhbHVlPXYsY250PTIsbGVmdD1sLHJpZ2h0PUV9CgogICAgICB8IFQnIChwIGFzIChfLF8s
RSxUe2xlZnQ9VCBfLHJpZ2h0PUUsLi4ufSkpID0gZG91YmxlX0wgcAogICAgICB8IFQnIChw
IGFzIChfLF8sVHtsZWZ0PUUscmlnaHQ9VCBfLC4uLn0sRSkpID0gZG91YmxlX1IgcAoKICAg
ICAgICAoKiB0aGVzZSBjYXNlcyBhbG1vc3QgbmV2ZXIgaGFwcGVuIHdpdGggc21hbGwgd2Vp
Z2h0KikKICAgICAgfCBUJyAocCBhcyAoXyxfLEUsVHtsZWZ0PVR7Y250PWxuLC4uLn0scmln
aHQ9VHtjbnQ9cm4sLi4ufSwuLi59KSkgPQogICAgICAgICAgaWYgbG4gPCBybiB0aGVuIHNp
bmdsZV9MIHAgZWxzZSBkb3VibGVfTCBwCiAgICAgIHwgVCcgKHAgYXMgKF8sXyxUe2xlZnQ9
VHtjbnQ9bG4sLi4ufSxyaWdodD1Ue2NudD1ybiwuLi59LC4uLn0sRSkpID0KICAgICAgICAg
IGlmIGxuID4gcm4gdGhlbiBzaW5nbGVfUiBwIGVsc2UgZG91YmxlX1IgcAoKICAgICAgfCBU
JyAocCBhcyAoXyxfLEUsVHtsZWZ0PUUsLi4ufSkpID0gc2luZ2xlX0wgcAogICAgICB8IFQn
IChwIGFzIChfLF8sVHtyaWdodD1FLC4uLn0sRSkpID0gc2luZ2xlX1IgcAoKICAgICAgfCBU
JyAocCBhcyAoayx2LGwgYXMgVHtjbnQ9bG4sbGVmdD1sbCxyaWdodD1sciwuLi59LAogICAg
ICAgICAgICAgICAgICAgICAgciBhcyBUe2NudD1ybixsZWZ0PXJsLHJpZ2h0PXJyLC4uLn0p
KSA9CiAgICAgICAgICBpZiBybiA+PSB3dCBsbiB0aGVuICgqcmlnaHQgaXMgdG9vIGJpZyop
CiAgICAgICAgICAgIGxldCB2YWwgcmxuID0gdHJlZVNpemUgcmwKICAgICAgICAgICAgICAg
IHZhbCBycm4gPSB0cmVlU2l6ZSBycgogICAgICAgICAgICBpbgogICAgICAgICAgICAgIGlm
IHJsbiA8IHJybiB0aGVuICBzaW5nbGVfTCBwICBlbHNlICBkb3VibGVfTCBwCiAgICAgICAg
ICAgIGVuZAogICAgICAgIAogICAgICAgICAgZWxzZSBpZiBsbiA+PSB3dCBybiB0aGVuICAo
KmxlZnQgaXMgdG9vIGJpZyopCiAgICAgICAgICAgIGxldCB2YWwgbGxuID0gdHJlZVNpemUg
bGwKICAgICAgICAgICAgICAgIHZhbCBscm4gPSB0cmVlU2l6ZSBscgogICAgICAgICAgICBp
bgogICAgICAgICAgICAgIGlmIGxybiA8IGxsbiB0aGVuICBzaW5nbGVfUiBwICBlbHNlICBk
b3VibGVfUiBwCiAgICAgICAgICAgIGVuZAogICAgCiAgICAgICAgICBlbHNlIFR7a2V5PWss
dmFsdWU9dixjbnQ9bG4rcm4rMSxsZWZ0PWwscmlnaHQ9cn0KCiAgICBsb2NhbAogICAgICBm
dW4gbWluIChUe2xlZnQ9RSxrZXksdmFsdWUsLi4ufSkgPSAoa2V5LHZhbHVlKQogICAgICAg
IHwgbWluIChUe2xlZnQsLi4ufSkgPSBtaW4gbGVmdAogICAgICAgIHwgbWluIF8gPSByYWlz
ZSBNYXRjaAogIAogICAgICBmdW4gZGVsbWluIChUe2xlZnQ9RSxyaWdodCwuLi59KSA9IHJp
Z2h0CiAgICAgICAgfCBkZWxtaW4gKFR7a2V5LHZhbHVlLGxlZnQscmlnaHQsLi4ufSkgPSAK
CSAgVCcoa2V5LHZhbHVlLGRlbG1pbiBsZWZ0LHJpZ2h0KQogICAgICAgIHwgZGVsbWluIF8g
PSByYWlzZSBNYXRjaAogICAgaW4KICAgICAgZnVuIGRlbGV0ZScgKEUscikgPSByCiAgICAg
ICAgfCBkZWxldGUnIChsLEUpID0gbAogICAgICAgIHwgZGVsZXRlJyAobCxyKSA9IGxldCB2
YWwgKG1pbmssbWludikgPSBtaW4gciAKCQkJICBpbiBUJyhtaW5rLG1pbnYsbCxkZWxtaW4g
cikgZW5kCiAgICBlbmQKaW4KICAgIGZ1biBta0RpY3QgY21wS2V5ID0gRElDVChjbXBLZXks
IEUpCiAgICAKICAgIGZ1biBpbnNlcnQgKERJQ1QgKGNtcEtleSwgdCkseCx2KSA9IAoJbGV0
IGZ1biBpbnMgRSA9IFR7a2V5PXgsdmFsdWU9dixjbnQ9MSxsZWZ0PUUscmlnaHQ9RX0KCSAg
ICAgIHwgaW5zIChUKHNldCBhcyB7a2V5LGxlZnQscmlnaHQsdmFsdWUsLi4ufSkpID0KCQlj
YXNlIGNtcEtleSAoa2V5LHgpIG9mCgkJICAgIEdSRUFURVIgPT4gVCcoa2V5LHZhbHVlLGlu
cyBsZWZ0LHJpZ2h0KQoJCSAgfCBMRVNTICAgID0+IFQnKGtleSx2YWx1ZSxsZWZ0LGlucyBy
aWdodCkKCQkgIHwgXyAgICAgICA9PiAKCQkJVHtrZXk9eCx2YWx1ZT12LGxlZnQ9bGVmdCxy
aWdodD1yaWdodCxjbnQ9ICNjbnQgc2V0fQoJaW4gRElDVChjbXBLZXksIGlucyB0KSBlbmQK
CiAgICBmdW4gZmluZCAoRElDVChjbXBLZXksIHQpLCB4KSA9CglsZXQgZnVuIG1lbSBFID0g
cmFpc2UgTm90Rm91bmQKCSAgICAgIHwgbWVtIChUKG4gYXMge2tleSxsZWZ0LHJpZ2h0LC4u
Ln0pKSA9CgkJY2FzZSBjbXBLZXkgKHgsa2V5KSBvZgoJCSAgICBHUkVBVEVSID0+IG1lbSBy
aWdodAoJCSAgfCBMRVNTICAgID0+IG1lbSBsZWZ0CgkJICB8IF8gICAgICAgPT4gI3ZhbHVl
IG4KCWluIG1lbSB0IGVuZAoKICAgIGZ1biBwZWVrIGFyZyA9IChTT01FKGZpbmQgYXJnKSkg
aGFuZGxlIE5vdEZvdW5kID0+IE5PTkUKCiAgICBmdW4gcmVtb3ZlIChESUNUKGNtcEtleSwg
dCksIHgpID0gCglsZXQgZnVuIHJtIEUgPSByYWlzZSBOb3RGb3VuZAoJICAgICAgfCBybSAo
c2V0IGFzIFR7a2V5LGxlZnQscmlnaHQsdmFsdWUsLi4ufSkgPSAKCQkoY2FzZSBjbXBLZXkg
KGtleSx4KSBvZgoJCSAgICAgR1JFQVRFUiA9PiBsZXQgdmFsIChsZWZ0JywgdikgPSBybSBs
ZWZ0CgkJCQlpbiAoVCcoa2V5LCB2YWx1ZSwgbGVmdCcsIHJpZ2h0KSwgdikgZW5kCgkJICAg
fCBMRVNTICAgID0+IGxldCB2YWwgKHJpZ2h0JywgdikgPSBybSByaWdodAoJCQkJaW4gKFQn
KGtleSwgdmFsdWUsIGxlZnQsIHJpZ2h0JyksIHYpIGVuZAoJCSAgIHwgXyAgICAgICA9PiAo
ZGVsZXRlJyhsZWZ0LHJpZ2h0KSx2YWx1ZSkpCgkgICAgdmFsIChuZXd0cmVlLCB2YWxybSkg
PSBybSB0CglpbiAoRElDVChjbXBLZXksIG5ld3RyZWUpLCB2YWxybSkgZW5kCgogICAgZnVu
IGxpc3RJdGVtcyAoRElDVChfLCBkKSkgPSAKCWxldCBmdW4gZDJsIEUgcmVzID0gcmVzCgkg
ICAgICB8IGQybCAoVHtrZXksdmFsdWUsbGVmdCxyaWdodCwuLi59KSByZXMgPQoJCWQybCBs
ZWZ0ICgoa2V5LHZhbHVlKSA6OiBkMmwgcmlnaHQgcmVzKQoJaW4gZDJsIGQgW10gZW5kCgog
ICAgZnVuIHJldmFwcCBmIChESUNUKF8sIGQpKSA9IGxldAogICAgICBmdW4gYSBFID0gKCkK
ICAgICAgICB8IGEgKFR7a2V5LHZhbHVlLGxlZnQscmlnaHQsLi4ufSkgPSAoYSByaWdodDsg
ZihrZXksdmFsdWUpOyBhIGxlZnQpCiAgICAgIGluIGEgZCBlbmQKCiAgICBmdW4gYXBwIGYg
KERJQ1QoXywgZCkpID0gbGV0CiAgICAgIGZ1biBhIEUgPSAoKQogICAgICAgIHwgYSAoVHtr
ZXksdmFsdWUsbGVmdCxyaWdodCwuLi59KSA9IChhIGxlZnQ7IGYoa2V5LHZhbHVlKTsgYSBy
aWdodCkKICAgICAgaW4gYSBkIGVuZAoKICAgIGZ1biBmb2xkciBmIGluaXQgKERJQ1QoXywg
ZCkpID0gbGV0CiAgICAgIGZ1biBhIEUgdiA9IHYKICAgICAgICB8IGEgKFR7a2V5LHZhbHVl
LGxlZnQscmlnaHQsLi4ufSkgdiA9IGEgbGVmdCAoZihrZXksdmFsdWUsYSByaWdodCB2KSkK
ICAgICAgaW4gYSBkIGluaXQgZW5kCgogICAgZnVuIGZvbGRsIGYgaW5pdCAoRElDVChfLCBk
KSkgPSBsZXQKICAgICAgZnVuIGEgRSB2ID0gdgogICAgICAgIHwgYSAoVHtrZXksdmFsdWUs
bGVmdCxyaWdodCwuLi59KSB2ID0gYSByaWdodCAoZihrZXksdmFsdWUsYSBsZWZ0IHYpKQog
ICAgICBpbiBhIGQgaW5pdCBlbmQKCiAgICBmdW4gbWFwIGYgKERJQ1QoY21wS2V5LCBkKSkg
PSBsZXQKICAgICAgZnVuIGEgRSA9IEUKICAgICAgICB8IGEgKFR7a2V5LHZhbHVlLGxlZnQs
cmlnaHQsY250fSkgPSBsZXQKICAgICAgICAgICAgdmFsIGxlZnQnID0gYSBsZWZ0CiAgICAg
ICAgICAgIHZhbCB2YWx1ZScgPSBmKGtleSx2YWx1ZSkKICAgICAgICAgICAgaW4KICAgICAg
ICAgICAgICBUe2NudD1jbnQsIGtleT1rZXksdmFsdWU9dmFsdWUnLGxlZnQgPSBsZWZ0Jywg
cmlnaHQgPSBhIHJpZ2h0fQogICAgICAgICAgICBlbmQKICAgICAgaW4gRElDVChjbXBLZXks
IGEgZCkgZW5kCgogICAgZnVuIHRyYW5zZm9ybSBmIChESUNUKGNtcEtleSwgZCkpID0gCgls
ZXQgZnVuIGEgRSA9IEUKCSAgICAgIHwgYSAoVHtrZXksdmFsdWUsbGVmdCxyaWdodCxjbnR9
KSA9IAoJCWxldCB2YWwgbGVmdCcgPSBhIGxlZnQKCQlpbgoJCSAgICBUe2NudD1jbnQsIGtl
eT1rZXksIHZhbHVlPWYgdmFsdWUsIGxlZnQgPSBsZWZ0JywgCgkJICAgICAgcmlnaHQgPSBh
IHJpZ2h0fQoJCWVuZAogICAgICBpbiBESUNUKGNtcEtleSwgYSBkKSBlbmQKZW5kCgplbmQK
KCojbGluZSAwLjAgIiRIT01FL2Rldi9zbWwvYmFzaWMvc3JjL1N1c3Auc2lnIiopCigqIFN1
c3AgLS0gc3VwcG9ydCBmb3IgbGF6eSBldmFsdWF0aW9uICopCgpzaWduYXR1cmUgU3VzcCA9
CnNpZwoKdHlwZSAnYSBzdXNwCgp2YWwgZGVsYXkgOiAodW5pdCAtPiAnYSkgLT4gJ2Egc3Vz
cAp2YWwgZm9yY2UgOiAnYSBzdXNwIC0+ICdhCgplbmQKCigqIAogICBbJ2Egc3VzcF0gaXMg
dGhlIHR5cGUgb2YgbGF6aWx5IGV2YWx1YXRlZCBleHByZXNzaW9ucyB3aXRoIHJlc3VsdAog
ICB0eXBlICdhLgoKICAgW2RlbGF5IChmbiAoKSA9PiBlKV0gY3JlYXRlcyBhIHN1c3BlbnNp
b24gZm9yIHRoZSBleHByZXNzaW9uIGUuCiAgIFRoZSBmaXJzdCB0aW1lIHRoZSBzdXNwZW5z
aW9uIGlzIGZvcmNlZCwgdGhlIGV4cHJlc3Npb24gZSB3aWxsIGJlCiAgIGV2YWx1YXRlZCwg
YW5kIHRoZSByZXN1bHQgc3RvcmVkIGluIHRoZSBzdXNwZW5zaW9uLiAgQWxsIHN1YnNlcXVl
bnQKICAgZm9yY2luZyBvZiB0aGUgc3VzcGVuc2lvbiB3aWxsIGp1c3QgcmV0dXJuIHRoaXMg
cmVzdWx0LCBzbyBlIGlzCiAgIGV2YWx1YXRlZCBhdCBtb3N0IG9uY2UuICBJZiB0aGUgc3Vz
cGVuc2lvbiBpcyBuZXZlciBmb3JjZWQsIHRoZW4gZQogICBpcyBuZXZlciBldmFsdWF0ZWQu
CgogICBbZm9yY2Ugc3VdIGZvcmNlcyB0aGUgc3VzcGVuc2lvbiBzdSBhbmQgcmV0dXJucyB0
aGUgcmVzdWx0IG9mIHRoZQogICBleHByZXNzaW9uIGUgc3RvcmVkIGluIHRoZSBzdXNwZW5z
aW9uLgoqKQooKiNsaW5lIDAuMCAiJEhPTUUvZGV2L3NtbC9iYXNpYy9zcmMvU3VzcC5zbWwi
KikKKCogU3VzcCAtLSBzdXBwb3J0IGZvciBsYXp5IGV2YWx1YXRpb24gMTk5NS0wNS0yMiAq
KQoKc3RydWN0dXJlIFN1c3AgOj4gU3VzcCA9CnN0cnVjdAoKZGF0YXR5cGUgJ2EgdGh1bmsg
PSBWQUwgb2YgJ2EgfCBUSFVOSyBvZiB1bml0IC0+ICdhOwoKdHlwZSAnYSBzdXNwID0gJ2Eg
dGh1bmsgcmVmOwoKZnVuIGRlbGF5IChmIDogdW5pdCAtPiAnYSkgPSByZWYgKFRIVU5LIGYp
OwoKZnVuIGZvcmNlIChzdSA6ICdhIHN1c3ApIDogJ2EgPSAKICBjYXNlICFzdSBvZgogICAg
VkFMIHYgICA9PiB2IAogIHwgVEhVTksgZiA9PiBsZXQgdmFsIHYgPSBmICgpIGluIHN1IDo9
IFZBTCB2OyB2IGVuZAoKZW5kCigqI2xpbmUgMC4wICIkSE9NRS9kZXYvc21sL2Jhc2ljL3Ny
Yy9NaWx0b24uc2lnIiopCigqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKikKKCogTUx0b24gU1BF
Q0lGSUMgRlVOQ1RJT05TICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAqKQooKiBDcmVhdGVkIGJ5IEpvZSBIdXJkLCBTZXB0ZW1iZXIgMjAwMiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopCigqID09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0gKikKCnNpZ25hdHVyZSBNaWx0b24gPQpzaWcKCigqIFRoZSBNTCBpbXBsZW1l
bnRhdGlvbiAqKQp2YWwgbWwgOiBzdHJpbmcKCigqIFBvaW50ZXIgZXF1YWxpdHkgdXNpbmcg
dGhlIHJ1bi10aW1lIHN5c3RlbSAqKQoKKCogUXVvdGF0aW9ucyBhIGxhIE1vc21sICopCmRh
dGF0eXBlICdhIGZyYWcgPSBRVU9URSBvZiBzdHJpbmcgfCBBTlRJUVVPVEUgb2YgJ2EKCigq
IFRpbWluZyBmdW5jdGlvbiBhcHBsaWNhdGlvbnMgYSBsYSBNb3NtbC50aW1lICopCnZhbCB0
aW1lIDogKCdhIC0+ICdiKSAtPiAnYSAtPiAnYgoKKCogQnJpbmcgY2VydGFpbiBkZWNsYXJh
dGlvbnMgdG8gdGhlIHRvcC1sZXZlbCAqKQp0eXBlIHBwc3RyZWFtID0gUFAucHBzdHJlYW0K
CigqIER1bW15IHZlcnNpb25zIG9mIE1vc21sIGRlY2xhcmF0aW9ucyB0byBzdG9wIE1MdG9u
IGJhcmZpbmcgKikKdmFsIHF1b3RhdGlvbiA6IGJvb2wgcmVmCnZhbCBsb2FkICAgICAgOiBz
dHJpbmcgLT4gdW5pdAp2YWwgaW5zdGFsbFBQIDogKHBwc3RyZWFtIC0+ICdhIC0+IHVuaXQp
IC0+IHVuaXQKCmVuZAooKiNsaW5lIDAuMCAiJEhPTUUvZGV2L3NtbC9iYXNpYy9zcmMvTWls
dG9uLnNtbCIqKQooKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICopCigqIE1MdG9uIFNQRUNJRklD
IEZVTkNUSU9OUyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgKikKKCogQ3JlYXRlZCBieSBKb2UgSHVyZCwgU2VwdGVtYmVyIDIwMDIgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKQooKiA9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09ICopCgpzdHJ1Y3R1cmUgTWlsdG9uIDo+IE1pbHRvbiA9CnN0cnVjdAoKKCogLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLSAqKQooKiBUaGUgTUwgaW1wbGVtZW50YXRpb24uICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopCigqIC0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0gKikKCnZhbCBtbCA9ICJNTHRvbiI7CgooKiAtLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tICopCigqIFBvaW50ZXIgZXF1YWxpdHkgdXNpbmcgdGhlIHJ1bi10aW1lIHN5c3RlbS4g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKikKKCogLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LSAqKQoKKCogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqKQooKiBRdW90YXRpb25zIGEgbGEgTW9z
bWwuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICopCigqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKikKCmRhdGF0eXBlICdhIGZyYWcgPSBRVU9U
RSBvZiBzdHJpbmcgfCBBTlRJUVVPVEUgb2YgJ2E7CgooKiAtLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
ICopCigqIFRpbWluZyBmdW5jdGlvbiBhcHBsaWNhdGlvbnMgYSBsYSBNb3NtbC50aW1lLiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgKikKKCogLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAq
KQoKZnVuIHRpbWUgZiB4ID0KICBsZXQKICAgIGZ1biBwIHQgPQogICAgICBsZXQKICAgICAg
ICB2YWwgcyA9IFRpbWUuZm10IDMgdAogICAgICBpbgogICAgICAgIGNhc2Ugc2l6ZSAoTGlz
dC5sYXN0IChTdHJpbmcuZmllbGRzIChmbiB4ID0+IHggPSAjIi4iKSBzKSkgb2YgMyA9PiBz
CiAgICAgICAgfCAyID0+IHMgXiAiMCIKICAgICAgICB8IDEgPT4gcyBeICIwMCIKICAgICAg
ICB8IF8gPT4gcmFpc2UgRmFpbCAiTWlsdG9uLnRpbWUiCiAgICAgIGVuZAogICAgdmFsIGMg
PSBUaW1lci5zdGFydENQVVRpbWVyICgpCiAgICB2YWwgciA9IFRpbWVyLnN0YXJ0UmVhbFRp
bWVyICgpCiAgICBmdW4gcHQgKCkgPQogICAgICBsZXQKICAgICAgICB2YWwge3Vzciwgc3lz
LCAuLi59ID0gVGltZXIuY2hlY2tDUFVUaW1lciBjCiAgICAgICAgdmFsIHJlYWwgPSBUaW1l
ci5jaGVja1JlYWxUaW1lciByCiAgICAgIGluCiAgICAgICAgcHJpbnQKICAgICAgICAoIlVz
ZXI6ICIgXiBwIHVzciBeICIgIFN5c3RlbTogIiBeIHAgc3lzIF4gIiAgUmVhbDogIiBeIHAg
cmVhbCBeICJcbiIpCiAgICAgIGVuZAogICAgdmFsIHkgPSBmIHggaGFuZGxlIGUgPT4gKHB0
ICgpOyByYWlzZSBlKQogICAgdmFsICgpID0gcHQgKCkKICBpbgogICAgeQogIGVuZDsKCigq
IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0gKikKKCogQnJpbmcgY2VydGFpbiBkZWNsYXJhdGlvbnMg
dG8gdGhlIHRvcC1sZXZlbC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKQooKiAt
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tICopCgp0eXBlIHBwc3RyZWFtID0gUFAucHBzdHJlYW07Cgoo
KiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tICopCigqIER1bW15IHZlcnNpb25zIG9mIE1vc21sIGRl
Y2xhcmF0aW9ucyB0byBzdG9wIE1MdG9uIGJhcmZpbmcuICAgICAgICAgICAgICAgKikKKCog
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLSAqKQoKdmFsIHF1b3RhdGlvbiA9IHJlZiBmYWxzZTsKdmFs
IGxvYWQgICAgICA9IGZuIChfIDogc3RyaW5nKSA9PiAoKTsKdmFsIGluc3RhbGxQUCA9IGZu
IChfIDogcHBzdHJlYW0gLT4gJ2EgLT4gdW5pdCkgPT4gKCk7CgplbmQKb3BlbiBNaWx0b247
CigqI2xpbmUgMC4wICJiYXNpYy9Vc2VmdWwuc2lnIiopCigqID09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0gKikKKCogTUwgVVRJTElUWSBGVU5DVElPTlMgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKQooKiBDcmVhdGVkIGJ5IEpvZSBIdXJk
LCBBcHJpbCAyMDAxICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICopCigqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0gKikKCnNpZ25hdHVyZSBVc2VmdWwgPQpzaWcK
CigqIEV4Y2VwdGlvbnMsIHByb2ZpbGluZyBhbmQgdHJhY2luZyAqKQpleGNlcHRpb24gRVJS
X0VYTiBvZiB7b3JpZ2luX2Z1bmN0aW9uIDogc3RyaW5nLCBtZXNzYWdlIDogc3RyaW5nfQpl
eGNlcHRpb24gQlVHX0VYTiBvZiB7b3JpZ2luX2Z1bmN0aW9uIDogc3RyaW5nLCBtZXNzYWdl
IDogc3RyaW5nfQp2YWwgRVJSICAgICAgOiBzdHJpbmcgLT4gc3RyaW5nIC0+IGV4bgp2YWwg
QlVHICAgICAgOiBzdHJpbmcgLT4gc3RyaW5nIC0+IGV4bgp2YWwgYXNzZXJ0ICAgOiBib29s
IC0+IGV4biAtPiB1bml0CnZhbCB0cnkgICAgICA6ICgnYSAtPiAnYikgLT4gJ2EgLT4gJ2IK
dmFsIHRvdGFsICAgIDogKCdhIC0+ICdiKSAtPiAnYSAtPiAnYiBvcHRpb24KdmFsIGNhbiAg
ICAgIDogKCdhIC0+ICdiKSAtPiAnYSAtPiBib29sCnZhbCBwYXJ0aWFsICA6IGV4biAtPiAo
J2EgLT4gJ2Igb3B0aW9uKSAtPiAnYSAtPiAnYgp2YWwgdGltZWQgICAgOiAoJ2EgLT4gJ2Ip
IC0+ICdhIC0+IHJlYWwgKiAnYgp2YWwgdHJhY2luZyAgOiBpbnQgcmVmCnZhbCB0cmFjZXMg
ICA6IHttb2R1bGUgOiBzdHJpbmcsIGFsaWdubWVudCA6IGludCAtPiBpbnR9IGxpc3QgcmVm
CnZhbCB0cmFjZSAgICA6IHttb2R1bGUgOiBzdHJpbmcsIG1lc3NhZ2UgOiBzdHJpbmcsIGxl
dmVsIDogaW50fSAtPiB1bml0CgooKiBDb21iaW5hdG9ycyAqKQp2YWwgQyAgOiAoJ2EgLT4g
J2IgLT4gJ2MpIC0+ICdiIC0+ICdhIC0+ICdjCnZhbCBJICA6ICdhIC0+ICdhCnZhbCBLICA6
ICdhIC0+ICdiIC0+ICdhCnZhbCBOICA6IGludCAtPiAoJ2EgLT4gJ2EpIC0+ICdhIC0+ICdh
CnZhbCBTICA6ICgnYSAtPiAnYiAtPiAnYykgLT4gKCdhIC0+ICdiKSAtPiAnYSAtPiAnYwp2
YWwgVyAgOiAoJ2EgLT4gJ2EgLT4gJ2IpIC0+ICdhIC0+ICdiCnZhbCBvbyA6ICgnYSAtPiAn
YikgKiAoJ2MgLT4gJ2QgLT4gJ2EpIC0+ICdjIC0+ICdkIC0+ICdiCnZhbCAjIyA6ICgnYSAt
PiAnYikgKiAoJ2MgLT4gJ2QpIC0+ICdhICogJ2MgLT4gJ2IgKiAnZAoKKCogQm9vbGVhbnMg
KikKdmFsIGJvb2xfdG9fc3RyaW5nIDogYm9vbCAtPiBzdHJpbmcKdmFsIG5vbiAgICAgICAg
ICAgIDogKCdhIC0+IGJvb2wpIC0+ICdhIC0+IGJvb2wKCigqIFBhaXJzICopCnZhbCBEICAg
ICAgIDogJ2EgLT4gJ2EgKiAnYQp2YWwgRGYgICAgICA6ICgnYSAtPiAnYikgLT4gJ2EgKiAn
YSAtPiAnYiAqICdiCnZhbCBmc3QgICAgIDogJ2EgKiAnYiAtPiAnYQp2YWwgc25kICAgICA6
ICdhICogJ2IgLT4gJ2IKdmFsIHBhaXIgICAgOiAnYSAtPiAnYiAtPiAnYSAqICdiCnZhbCBj
dXJyeSAgIDogKCdhICogJ2IgLT4gJ2MpIC0+ICdhIC0+ICdiIC0+ICdjCnZhbCB1bmN1cnJ5
IDogKCdhIC0+ICdiIC0+ICdjKSAtPiAnYSAqICdiIC0+ICdjCnZhbCBlcXVhbCAgIDogJydh
IC0+ICcnYSAtPiBib29sCgooKiBTdGF0ZSB0cmFuc2Zvcm1lcnMgKikKdmFsIHVuaXQgICA6
ICdhIC0+ICdzIC0+ICdhICogJ3MKdmFsIGJpbmQgICA6ICgncyAtPiAnYSAqICdzKSAtPiAo
J2EgLT4gJ3MgLT4gJ2IgKiAncykgLT4gJ3MgLT4gJ2IgKiAncwp2YWwgbW1hcCAgIDogKCdh
IC0+ICdiKSAtPiAoJ3MgLT4gJ2EgKiAncykgLT4gJ3MgLT4gJ2IgKiAncwp2YWwgam9pbiAg
IDogKCdzIC0+ICgncyAtPiAnYSAqICdzKSAqICdzKSAtPiAncyAtPiAnYSAqICdzCnZhbCBt
d2hpbGUgOiAoJ2EgLT4gYm9vbCkgLT4gKCdhIC0+ICdzIC0+ICdhICogJ3MpIC0+ICdhIC0+
ICdzIC0+ICdhICogJ3MKCigqIExpc3RzOiBub3RlIHdlIGNvdW50IGVsZW1lbnRzIGZyb20g
MCAqKQp2YWwgY29ucyAgICAgICAgIDogJ2EgLT4gJ2EgbGlzdCAtPiAnYSBsaXN0CnZhbCBh
cHBlbmQgICAgICAgOiAnYSBsaXN0IC0+ICdhIGxpc3QgLT4gJ2EgbGlzdAp2YWwgd3JhcCAg
ICAgICAgIDogJ2EgLT4gJ2EgbGlzdAp2YWwgdW53cmFwICAgICAgIDogJ2EgbGlzdCAtPiAn
YQp2YWwgZmlyc3QgICAgICAgIDogKCdhIC0+ICdiIG9wdGlvbikgLT4gJ2EgbGlzdCAtPiAn
YiBvcHRpb24KdmFsIGluZGV4ICAgICAgICA6ICgnYSAtPiBib29sKSAtPiAnYSBsaXN0IC0+
IGludCBvcHRpb24KdmFsIG1hcHMgICAgICAgICA6ICgnYSAtPiAncyAtPiAnYiAqICdzKSAt
PiAnYSBsaXN0IC0+ICdzIC0+ICdiIGxpc3QgKiAncwp2YWwgcGFydGlhbF9tYXBzIDogKCdh
IC0+ICdzIC0+ICdiIG9wdGlvbiAqICdzKSAtPiAnYSBsaXN0IC0+ICdzIC0+ICdiIGxpc3Qg
KiAncwp2YWwgZW51bWVyYXRlICAgIDogaW50IC0+ICdhIGxpc3QgLT4gKGludCAqICdhKSBs
aXN0CnZhbCBjYXJ0d2l0aCAgICAgOiAoJ2EgLT4gJ2IgLT4gJ2MpIC0+ICdhIGxpc3QgLT4g
J2IgbGlzdCAtPiAnYyBsaXN0CnZhbCB6aXB3aXRoICAgICAgOiAoJ2EgLT4gJ2IgLT4gJ2Mp
IC0+ICdhIGxpc3QgLT4gJ2IgbGlzdCAtPiAnYyBsaXN0CnZhbCB6aXAgICAgICAgICAgOiAn
YSBsaXN0IC0+ICdiIGxpc3QgLT4gKCdhICogJ2IpIGxpc3QKdmFsIHVuemlwICAgICAgICA6
ICgnYSAqICdiKSBsaXN0IC0+ICdhIGxpc3QgKiAnYiBsaXN0CnZhbCBzcGxpdCAgICAgICAg
OiAnYSBsaXN0IC0+IGludCAtPiAnYSBsaXN0ICogJ2EgbGlzdCAgICAgICgqIFN1YnNjcmlw
dCAqKQp2YWwgdXBkYXRlX250aCAgIDogKCdhIC0+ICdhKSAtPiBpbnQgLT4gJ2EgbGlzdCAt
PiAnYSBsaXN0ICAoKiBTdWJzY3JpcHQgKikKCigqIExpc3RzLWFzLXNldHMgKikKdmFsIG1l
bSAgICAgICA6ICcnYSAtPiAnJ2EgbGlzdCAtPiBib29sCnZhbCBpbnNlcnQgICAgOiAnJ2Eg
LT4gJydhIGxpc3QgLT4gJydhIGxpc3QKdmFsIGRlbGV0ZSAgICA6ICcnYSAtPiAnJ2EgbGlz
dCAtPiAnJ2EgbGlzdAp2YWwgdW5pb24gICAgIDogJydhIGxpc3QgLT4gJydhIGxpc3QgLT4g
JydhIGxpc3QKdmFsIGludGVyc2VjdCA6ICcnYSBsaXN0IC0+ICcnYSBsaXN0IC0+ICcnYSBs
aXN0CnZhbCBzdWJ0cmFjdCAgOiAnJ2EgbGlzdCAtPiAnJ2EgbGlzdCAtPiAnJ2EgbGlzdAp2
YWwgc2V0aWZ5ICAgIDogJydhIGxpc3QgLT4gJydhIGxpc3QKdmFsIHN1YnNldCAgICA6ICcn
YSBsaXN0IC0+ICcnYSBsaXN0IC0+IGJvb2wKdmFsIGRpc3RpbmN0ICA6ICcnYSBsaXN0IC0+
IGJvb2wKCigqIENvbXBhcmlzb25zICopCnZhbCBsZXhfY29tcGFyZSA6ICgnYSAqICdhIC0+
IG9yZGVyKSAtPiAoJ2EgKiAnYSkgbGlzdCAtPiBvcmRlcgoKKCogU29ydGluZyBhbmQgc2Vh
cmNoaW5nICopCnZhbCBtaW4gICA6ICgnYSAtPiAnYSAtPiBib29sKSAtPiAnYSBsaXN0IC0+
ICdhCnZhbCBtZXJnZSA6ICgnYSAtPiAnYSAtPiBib29sKSAtPiAnYSBsaXN0IC0+ICdhIGxp
c3QgLT4gJ2EgbGlzdAp2YWwgc29ydCAgOiAoJ2EgLT4gJ2EgLT4gYm9vbCkgLT4gJ2EgbGlz
dCAtPiAnYSBsaXN0CgooKiBJbnRlZ2VycyAqKQp2YWwgaW50X3RvX3N0cmluZyA6IGludCAt
PiBzdHJpbmcKdmFsIHN0cmluZ190b19pbnQgOiBzdHJpbmcgLT4gaW50ICAgICAgICAgICAg
ICAgICAoKiBPdmVyZmxvdywgT3B0aW9uICopCnZhbCBpbnRfdG9fYml0cyAgIDogaW50IC0+
IGJvb2wgbGlzdAp2YWwgYml0c190b19pbnQgICA6IGJvb2wgbGlzdCAtPiBpbnQgICAgICAg
ICAgICAgICgqIE92ZXJmbG93ICopCnZhbCBpbnRlcnZhbCAgICAgIDogaW50IC0+IGludCAt
PiBpbnQgbGlzdAp2YWwgZGl2aWRlcyAgICAgICA6IGludCAtPiBpbnQgLT4gYm9vbAp2YWwg
cHJpbWVzICAgICAgICA6IGludCAtPiBpbnQgbGlzdAoKKCogU3RyaW5ncyAqKQp2YWwgdmFy
aWFudCAgICAgOiBzdHJpbmcgLT4gc3RyaW5nIGxpc3QgLT4gc3RyaW5nCnZhbCB2YXJpYW50
X251bSA6IHN0cmluZyAtPiBzdHJpbmcgbGlzdCAtPiBzdHJpbmcKdmFsIGRlc3RfcHJlZml4
IDogc3RyaW5nIC0+IHN0cmluZyAtPiBzdHJpbmcKdmFsIGlzX3ByZWZpeCAgIDogc3RyaW5n
IC0+IHN0cmluZyAtPiBib29sCnZhbCBta19wcmVmaXggICA6IHN0cmluZyAtPiBzdHJpbmcg
LT4gc3RyaW5nCgooKiBSZWFscyAqKQp2YWwgcmVhbF90b19zdHJpbmcgOiByZWFsIC0+IHN0
cmluZzsKCigqIFByZXR0eS1wcmludGluZyAqKQp0eXBlICdhIHBwID0gcHBzdHJlYW0gLT4g
J2EgLT4gdW5pdAp2YWwgTElORV9MRU5HVEggIDogaW50IHJlZgp2YWwgdW5pdF9wcCAgICAg
IDogJ2EgcHAgLT4gJ2EgLT4gdW5pdCBwcAp2YWwgcHBfdW5pdF9wcCAgIDogdW5pdCBwcCBw
cAp2YWwgcHBfbWFwICAgICAgIDogKCdhIC0+ICdiKSAtPiAnYiBwcCAtPiAnYSBwcAp2YWwg
cHBfYnJhY2tldCAgIDogc3RyaW5nICogc3RyaW5nIC0+ICdhIHBwIC0+ICdhIHBwCnZhbCBw
cF9zZXF1ZW5jZSAgOiBzdHJpbmcgLT4gJ2EgcHAgLT4gJ2EgbGlzdCBwcAp2YWwgcHBfdW5v
cCAgICAgIDogc3RyaW5nIC0+ICdhIHBwIC0+ICdhIHBwCnZhbCBwcF9iaW5vcCAgICAgOiBz
dHJpbmcgLT4gJ2EgcHAgLT4gJ2IgcHAgLT4gKCdhICogJ2IpIHBwCnZhbCBwcF9ub3RoaW5n
ICAgOiAnYSBwcAp2YWwgcHBfc3RyaW5nICAgIDogc3RyaW5nIHBwCnZhbCBwcF91bml0ICAg
ICAgOiB1bml0IHBwCnZhbCBwcF9ib29sICAgICAgOiBib29sIHBwCnZhbCBwcF9pbnQgICAg
ICAgOiBpbnQgcHAKdmFsIHBwX3JlYWwgICAgICA6IHJlYWwgcHAKdmFsIHBwX29yZGVyICAg
ICA6IG9yZGVyIHBwCnZhbCBwcF9saXN0ICAgICAgOiAnYSBwcCAtPiAnYSBsaXN0IHBwCnZh
bCBwcF9wYWlyICAgICAgOiAnYSBwcCAtPiAnYiBwcCAtPiAoJ2EgKiAnYikgcHAKdmFsIHBw
X3RyaXBsZSAgICA6ICdhIHBwIC0+ICdiIHBwIC0+ICdjIHBwIC0+ICgnYSAqICdiICogJ2Mp
IHBwCnZhbCBwcF9yZWNvcmQgICAgOiAoc3RyaW5nICogdW5pdCBwcCkgbGlzdCAtPiB1bml0
IHBwCnZhbCBwcF9vcHRpb24gICAgOiAnYSBwcCAtPiAnYSBvcHRpb24gcHAKCigqIFN1bSBk
YXRhdHlwZSAqKQpkYXRhdHlwZSAoJ2EsICdiKSBzdW0gPSBJTkwgb2YgJ2EgfCBJTlIgb2Yg
J2IKdmFsIGlzX2lubCA6ICgnYSwgJ2IpIHN1bSAtPiBib29sCnZhbCBpc19pbnIgOiAoJ2Es
ICdiKSBzdW0gLT4gYm9vbAoKKCogTWFwbGV0cyAqKQpkYXRhdHlwZSAoJ2EsICdiKSBtYXBs
ZXQgPSB8LT4gb2YgJ2EgKiAnYgp2YWwgcHBfbWFwbGV0IDogJ2EgcHAgLT4gJ2IgcHAgLT4g
KCdhLCAnYikgbWFwbGV0IHBwCgooKiBUcmVlcyAqKQpkYXRhdHlwZSAoJ2EsICdiKSB0cmVl
ID0gQlJBTkNIIG9mICdhICogKCdhLCAnYikgdHJlZSBsaXN0IHwgTEVBRiBvZiAnYgp2YWwg
dHJlZV9zaXplICA6ICgnYSwgJ2IpIHRyZWUgLT4gaW50CnZhbCB0cmVlX2ZvbGRyIDogKCdh
IC0+ICdjIGxpc3QgLT4gJ2MpIC0+ICgnYiAtPiAnYykgLT4gKCdhLCAnYikgdHJlZSAtPiAn
Ywp2YWwgdHJlZV9mb2xkbCA6CiAgKCdhIC0+ICdjIC0+ICdjKSAtPiAoJ2IgLT4gJ2MgLT4g
J2QpIC0+ICdjIC0+ICgnYSwgJ2IpIHRyZWUgLT4gJ2QgbGlzdAp2YWwgdHJlZV9wYXJ0aWFs
X2ZvbGRsIDoKICAoJ2EgLT4gJ2MgLT4gJ2Mgb3B0aW9uKSAtPiAoJ2IgLT4gJ2MgLT4gJ2Qg
b3B0aW9uKSAtPiAnYyAtPiAoJ2EsICdiKSB0cmVlIC0+CiAgJ2QgbGlzdAoKKCogVXNlZnVs
IGltcGVyYXRpdmUgZmVhdHVyZXMgKikKdmFsIGxhemlmeV90aHVuayA6ICh1bml0IC0+ICdh
KSAtPiB1bml0IC0+ICdhCnZhbCBuZXdfaW50ICAgICAgOiB1bml0IC0+IGludAp2YWwgbmV3
X2ludHMgICAgIDogaW50IC0+IGludCBsaXN0CnZhbCB3aXRoX2ZsYWcgICAgOiAnciByZWYg
KiAoJ3IgLT4gJ3IpIC0+ICgnYSAtPiAnYikgLT4gJ2EgLT4gJ2IKCigqIEluZm9ybWF0aW9u
IGFib3V0IHRoZSBlbnZpcm9ubWVudCAqKQp2YWwgaG9zdCA6IHN0cmluZwp2YWwgZGF0ZSA6
IHVuaXQgLT4gc3RyaW5nCgplbmQKKCojbGluZSAwLjAgImJhc2ljL1VzZWZ1bC5zbWwiKikK
KCogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PSAqKQooKiBNTCBVVElMSVRZIEZVTkNUSU9OUyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopCigq
IENyZWF0ZWQgYnkgSm9lIEh1cmQsIEFwcmlsIDIwMDEgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgKikKKCogPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqKQoKc3Ry
dWN0dXJlIFVzZWZ1bCA6PiBVc2VmdWwgPQpzdHJ1Y3QKCmluZml4ciAwIG9vICMjIHwtPjsK
CigqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKikKKCogRXhjZXB0aW9ucywgcHJvZmlsaW5nIGFu
ZCB0cmFjaW5nLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKQoo
KiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tICopCgpleGNlcHRpb24gRVJSX0VYTiBvZiB7b3JpZ2lu
X2Z1bmN0aW9uIDogc3RyaW5nLCBtZXNzYWdlIDogc3RyaW5nfTsKZXhjZXB0aW9uIEJVR19F
WE4gb2Yge29yaWdpbl9mdW5jdGlvbiA6IHN0cmluZywgbWVzc2FnZSA6IHN0cmluZ307Cgpm
dW4gRVJSIGYgcyA9IEVSUl9FWE4ge29yaWdpbl9mdW5jdGlvbiA9IGYsIG1lc3NhZ2UgPSBz
fTsKZnVuIEJVRyBmIHMgPSBCVUdfRVhOIHtvcmlnaW5fZnVuY3Rpb24gPSBmLCBtZXNzYWdl
ID0gc307CgpmdW4gRVJSX3RvX3N0cmluZyAoRVJSX0VYTiB7b3JpZ2luX2Z1bmN0aW9uLCBt
ZXNzYWdlfSkgPQogICJcbkVSUiBpbiBmdW5jdGlvbiAiIF4gb3JpZ2luX2Z1bmN0aW9uIF4g
IjpcbiIgXiBtZXNzYWdlIF4gIlxuIgogIHwgRVJSX3RvX3N0cmluZyBfID0gcmFpc2UgQlVH
ICJFUlJfdG9fc3RyaW5nIiAibm90IGEgRVJSX0VYTiI7CgpmdW4gQlVHX3RvX3N0cmluZyAo
QlVHX0VYTiB7b3JpZ2luX2Z1bmN0aW9uLCBtZXNzYWdlfSkgPQogICJcbkJVRyBpbiBmdW5j
dGlvbiAiIF4gb3JpZ2luX2Z1bmN0aW9uIF4gIjpcbiIgXiBtZXNzYWdlIF4gIlxuIgogIHwg
QlVHX3RvX3N0cmluZyBfID0gcmFpc2UgQlVHICJCVUdfdG9fc3RyaW5nIiAibm90IGEgQlVH
X0VYTiI7CgpmdW4gYXNzZXJ0IGIgZSA9IGlmIGIgdGhlbiAoKSBlbHNlIHJhaXNlIGU7Cgpm
dW4gdHJ5IGYgYSA9IGYgYQogIGhhbmRsZSBoIGFzIEVSUl9FWE4gXyA9PiAocHJpbnQgKEVS
Ul90b19zdHJpbmcgaCk7IHJhaXNlIGgpCiAgICAgICB8IGIgYXMgQlVHX0VYTiBfID0+IChw
cmludCAoQlVHX3RvX3N0cmluZyBiKTsgcmFpc2UgYikKICAgICAgIHwgZSA9PiAocHJpbnQg
IlxudHJ5OiBzdHJhbmdlIGV4Y2VwdGlvbiByYWlzZWRcbiI7IHJhaXNlIGUpOwoKZnVuIHRv
dGFsIGYgeCA9IFNPTUUgKGYgeCkgaGFuZGxlIEVSUl9FWE4gXyA9PiBOT05FOwoKZnVuIGNh
biBmID0gT3B0aW9uLmlzU29tZSBvIHRvdGFsIGY7CgpmdW4gcGFydGlhbCAoZSBhcyBFUlJf
RVhOIF8pIGYgeCA9IChjYXNlIGYgeCBvZiBTT01FIHkgPT4geSB8IE5PTkUgPT4gcmFpc2Ug
ZSkKICB8IHBhcnRpYWwgXyBfIF8gPSByYWlzZSBCVUcgInBhcnRpYWwiICJtdXN0IHRha2Ug
YSBFUlJfRVhOIjsKCmZ1biB0aW1lZCBmIGEgPQogIGxldAogICAgdmFsIHRtciA9IFRpbWVy
LnN0YXJ0Q1BVVGltZXIgKCkKICAgIHZhbCByZXMgPSBmIGEKICAgIHZhbCB7dXNyLCBzeXMs
IC4uLn0gPSBUaW1lci5jaGVja0NQVVRpbWVyIHRtcgogIGluCiAgICAoVGltZS50b1JlYWwg
dXNyICsgVGltZS50b1JlYWwgc3lzLCByZXMpCiAgZW5kOwoKdmFsIHRyYWNpbmcgPSByZWYg
MTsKCnZhbCB0cmFjZXMgOiB7bW9kdWxlIDogc3RyaW5nLCBhbGlnbm1lbnQgOiBpbnQgLT4g
aW50fSBsaXN0IHJlZiA9IHJlZiBbXTsKCmxvY2FsCiAgdmFsIE1BWCA9IDEwOwogIHZhbCB0
cmFjZV9wcmludGVyID0gcHJpbnQ7CiAgZnVuIHF1ZXJ5IG0gbCA9CiAgICBsZXQgdmFsIHQg
PSBMaXN0LmZpbmQgKGZuIHttb2R1bGUsIC4uLn0gPT4gbW9kdWxlID0gbSkgKCF0cmFjZXMp
CiAgICBpbiBjYXNlIHQgb2YgTk9ORSA9PiBNQVggfCBTT01FIHthbGlnbm1lbnQsIC4uLn0g
PT4gYWxpZ25tZW50IGwKICAgIGVuZDsKaW4KICBmdW4gdHJhY2Uge21vZHVsZSA9IG0sIG1l
c3NhZ2UgPSBzLCBsZXZlbCA9IGx9ID0KICAgIGlmIDAgPCAhdHJhY2luZyBhbmRhbHNvIChN
QVggPD0gIXRyYWNpbmcgb3JlbHNlIHF1ZXJ5IG0gbCA8PSAhdHJhY2luZykKICAgIHRoZW4g
dHJhY2VfcHJpbnRlciBzCiAgICBlbHNlICgpOwplbmQ7CgooKiAtLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tICopCigqIENvbWJpbmF0b3JzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKikKKCogLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LSAqKQoKZnVuIEMgZiB4IHkgPSBmIHkgeDsKZnVuIEkgeCA9IHg7CmZ1biBLIHggeSA9IHg7
CmZ1biBOIDAgXyB4ID0geCB8IE4gbiBmIHggPSBOIChuIC0gMSkgZiAoZiB4KTsKZnVuIFMg
ZiBnIHggPSBmIHggKGcgeCk7CmZ1biBXIGYgeCA9IGYgeCB4OwpmdW4gZiBvbyBnID0gZm4g
eCA9PiBmIG8gKGcgeCk7CgooKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICopCigqIEJvb2xlYW5z
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgKikKKCogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqKQoKZnVuIGJvb2xfdG9f
c3RyaW5nIHRydWUgPSAidHJ1ZSIKICB8IGJvb2xfdG9fc3RyaW5nIGZhbHNlID0gImZhbHNl
IjsKCmZ1biBub24gZiA9IG5vdCBvIGY7CgooKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICopCigq
IFBhaXJzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgKikKKCogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqKQoKZnVu
IG9wIyMgKGYsIGcpICh4LCB5KSA9IChmIHgsIGcgeSk7CmZ1biBEIHggPSAoeCwgeCk7CmZ1
biBEZiBmID0gZiAjIyBmOwpmdW4gZnN0ICh4LF8pID0geDsKZnVuIHNuZCAoXyx5KSA9IHk7
CmZ1biBwYWlyIHggeSA9ICh4LCB5KQooKiBOb3RlOiB2YWwgYWRkX2ZzdCA9IHBhaXIgYW5k
IGFkZF9zbmQgPSBDIHBhaXI7ICopCmZ1biBjdXJyeSBmIHggeSA9IGYgKHgsIHkpOwpmdW4g
dW5jdXJyeSBmICh4LCB5KSA9IGYgeCB5OwpmdW4gZXF1YWwgeCB5ID0gKHggPSB5KTsKCigq
IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0gKikKKCogU3RhdGUgdHJhbnNmb3JtZXJzLiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKQooKiAt
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tICopCgp2YWwgdW5pdCA6ICdhIC0+ICdzIC0+ICdhICogJ3Mg
PSBwYWlyOwoKZnVuIGJpbmQgZiAoZyA6ICdhIC0+ICdzIC0+ICdiICogJ3MpID0gdW5jdXJy
eSBnIG8gZjsKCmZ1biBtbWFwIGYgKG0gOiAncyAtPiAnYSAqICdzKSA9IGJpbmQgbSAodW5p
dCBvIGYpOwoKZnVuIGpvaW4gKGYgOiAncyAtPiAoJ3MgLT4gJ2EgKiAncykgKiAncykgPSBi
aW5kIGYgSTsKCmZ1biBtd2hpbGUgYyBiID0gbGV0IGZ1biBmIGEgPSBpZiBjIGEgdGhlbiBi
aW5kIChiIGEpIGYgZWxzZSB1bml0IGEgaW4gZiBlbmQ7CgooKiAtLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tICopCigqIExpc3RzLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKikKKCogLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LSAqKQoKZnVuIGNvbnMgeCB5ID0geCA6OiB5OwpmdW4gYXBwZW5kIHhzIHlzID0geHMgQCB5
czsKZnVuIHdyYXAgYSA9IFthXTsKZnVuIHVud3JhcCBbYV0gPSBhIHwgdW53cmFwIF8gPSBy
YWlzZSBFUlIgInVud3JhcCIgIm5vdCBhIHNpbmdsZXRvbiI7CgpmdW4gZmlyc3QgZiBbXSA9
IE5PTkUKICB8IGZpcnN0IGYgKHggOjogeHMpID0gKGNhc2UgZiB4IG9mIE5PTkUgPT4gZmly
c3QgZiB4cyB8IHMgPT4gcyk7CgpmdW4gaW5kZXggcCA9CiAgbGV0CiAgICBmdW4gaWR4IF8g
W10gPSBOT05FCiAgICAgIHwgaWR4IG4gKHggOjogeHMpID0gaWYgcCB4IHRoZW4gU09NRSBu
IGVsc2UgaWR4IChuICsgMSkgeHMKICBpbgogICAgaWR4IDAKICBlbmQ7CgooKiBUaGlzIGlz
IHRoZSBwdXJlIHZlcnNpb24KZnVuIG1hcHMgKF8gOiAnYSAtPiAncyAtPiAnYiAqICdzKSBb
XSA9IHVuaXQgW10KICB8IG1hcHMgZiAoeCA6OiB4cykgPQogIGJpbmQgKGYgeCkgKGZuIHkg
PT4gYmluZCAobWFwcyBmIHhzKSAoZm4geXMgPT4gdW5pdCAoeSA6OiB5cykpKTsKKikKCigq
IFRoaXMgaXMgYW4gb3B0aW1pemVkIHZlcnNpb24gKikKZnVuIG1hcHMgZiA9CiAgbGV0IGZ1
biBnICh4LCAoeXMsIHMpKSA9IGxldCB2YWwgKHksIHMpID0gZiB4IHMgaW4gKHkgOjogeXMs
IHMpIGVuZAogIGluIGZuIGwgPT4gZm4gKHMgOiAncykgPT4gKHJldiAjIyBJKSAoZm9sZGwg
ZyAoW10sIHMpIGwpCiAgZW5kOwoKKCogVGhpcyBpcyB0aGUgcHVyZSB2ZXJzaW9uCmZ1biBw
YXJ0aWFsX21hcHMgKF8gOiAnYSAtPiAncyAtPiAnYiBvcHRpb24gKiAncykgW10gPSB1bml0
IFtdCiAgfCBwYXJ0aWFsX21hcHMgZiAoeCA6OiB4cykgPQogIGJpbmQgKGYgeCkKICAoZm4g
eW8gPT4gYmluZCAocGFydGlhbF9tYXBzIGYgeHMpCiAgIChmbiB5cyA9PiB1bml0IChjYXNl
IHlvIG9mIE5PTkUgPT4geXMgfCBTT01FIHkgPT4geSA6OiB5cykpKTsKKikKCigqIFRoaXMg
aXMgYW4gb3B0aW1pemVkIHZlcnNpb24gKikKZnVuIHBhcnRpYWxfbWFwcyBmID0KICBsZXQK
ICAgIGZ1biBnICh4LCAoeXMsIHMpKSA9CiAgICAgIGxldCB2YWwgKHlvLCBzKSA9IGYgeCBz
CiAgICAgIGluIChjYXNlIHlvIG9mIE5PTkUgPT4geXMgfCBTT01FIHkgPT4geSA6OiB5cywg
cykKICAgICAgZW5kCiAgaW4KICAgIGZuIGwgPT4gZm4gKHMgOiAncykgPT4gKHJldiAjIyBJ
KSAoZm9sZGwgZyAoW10sIHMpIGwpCiAgZW5kOwoKZnVuIGVudW1lcmF0ZSBuID0gZnN0IG8g
QyAobWFwcyAoZm4geCA9PiBmbiBtID0+ICgobSwgeCksIG0gKyAxKSkpIG47CgpmdW4gemlw
d2l0aCBmID0KICBsZXQKICAgIGZ1biB6IGwgW10gW10gPSBsCiAgICAgIHwgeiBsICh4IDo6
IHhzKSAoeSA6OiB5cykgPSB6IChmIHggeSA6OiBsKSB4cyB5cwogICAgICB8IHogXyBfIF8g
PSByYWlzZSBFUlIgInppcHdpdGgiICJsaXN0cyBkaWZmZXJlbnQgbGVuZ3RocyI7CiAgaW4K
ICAgIGZuIHhzID0+IGZuIHlzID0+IHJldiAoeiBbXSB4cyB5cykKICBlbmQ7CgpmdW4gemlw
IHhzIHlzID0gemlwd2l0aCBwYWlyIHhzIHlzOwoKZnVuIHVuemlwIGFiID0KICBmb2xkbCAo
Zm4gKCh4LCB5KSwgKHhzLCB5cykpID0+ICh4IDo6IHhzLCB5IDo6IHlzKSkgKFtdLCBbXSkg
KHJldiBhYik7CgpmdW4gY2FydHdpdGggZiA9CiAgbGV0CiAgICBmdW4gYXV4IF8gcmVzIF8g
W10gPSByZXMKICAgICAgfCBhdXggeHNfY29weSByZXMgW10gKHkgOjogeXQpID0gYXV4IHhz
X2NvcHkgcmVzIHhzX2NvcHkgeXQKICAgICAgfCBhdXggeHNfY29weSByZXMgKHggOjogeHQp
ICh5cyBhcyB5IDo6IF8pID0KICAgICAgYXV4IHhzX2NvcHkgKGYgeCB5IDo6IHJlcykgeHQg
eXMKICBpbgogICAgZm4geHMgPT4gZm4geXMgPT4KICAgIGxldCB2YWwgeHMnID0gcmV2IHhz
IGluIGF1eCB4cycgW10geHMnIChyZXYgeXMpIGVuZAogIGVuZDsKCmxvY2FsCiAgZnVuIGF1
eCByZXMgbCAwID0gKHJldiByZXMsIGwpCiAgICB8IGF1eCBfIFtdIF8gPSByYWlzZSBTdWJz
Y3JpcHQKICAgIHwgYXV4IHJlcyAoaCA6OiB0KSBuID0gYXV4IChoIDo6IHJlcykgdCAobiAt
IDEpOwppbgogIGZ1biBzcGxpdCBsIG4gPSBhdXggW10gbCBuOwplbmQ7CgpmdW4gdXBkYXRl
X250aCBmIG4gbCA9CiAgbGV0CiAgICB2YWwgKGEsIGIpID0gc3BsaXQgbCBuCiAgaW4KICAg
IGNhc2UgYiBvZiBbXSA9PiByYWlzZSBTdWJzY3JpcHQKICAgIHwgaCA6OiB0ID0+IGEgQCAo
ZiBoIDo6IHQpCiAgZW5kOwoKKCogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqKQooKiBMaXN0cy1h
cy1zZXRzLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICopCigqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKikKCmZ1biBtZW0geCA9
IExpc3QuZXhpc3RzIChlcXVhbCB4KTsKCmZ1biBpbnNlcnQgeCBzID0gaWYgbWVtIHggcyB0
aGVuIHMgZWxzZSB4IDo6IHM7CmZ1biBkZWxldGUgeCBzID0gTGlzdC5maWx0ZXIgKG5vdCBv
IGVxdWFsIHgpIHM7CgooKiBSZW1vdmVzIGR1cGxpY2F0ZXMgKikKZnVuIHNldGlmeSBzID0g
Zm9sZGwgKGZuICh2LCB4KSA9PiBpZiBtZW0gdiB4IHRoZW4geCBlbHNlIHYgOjogeCkgW10g
czsKCigqIEZvciBhbGwgdGhyZWUgc2V0IG9wZXJhdGlvbnM6IGlmIHMgaGFzIGR1cGxpY2F0
ZXMsIHNvIG1heSB0aGUgcmVzdWx0LiAqKQpmdW4gdW5pb24gcyB0ID0gZm9sZGwgKGZuICh2
LCB4KSA9PiBpZiBtZW0gdiB4IHRoZW4geCBlbHNlIHYgOjogeCkgcyB0OwpmdW4gaW50ZXJz
ZWN0IHMgdCA9IGZvbGRsIChmbiAodiwgeCkgPT4gaWYgbWVtIHYgdCB0aGVuIHYgOjogeCBl
bHNlIHgpIFtdIHM7CmZ1biBzdWJ0cmFjdCBzIHQgPSBmb2xkbCAoZm4gKHYsIHgpID0+IGlm
IG1lbSB2IHQgdGhlbiB4IGVsc2UgdiA6OiB4KSBbXSBzOwoKZnVuIHN1YnNldCBzIHQgPSBM
aXN0LmFsbCAoZm4geCA9PiBtZW0geCB0KSBzOwoKZnVuIGRpc3RpbmN0IFtdID0gdHJ1ZQog
IHwgZGlzdGluY3QgKHggOjogcmVzdCkgPSBub3QgKG1lbSB4IHJlc3QpIGFuZGFsc28gZGlz
dGluY3QgcmVzdDsKCigqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKikKKCogQ29tcGFyaXNvbnMu
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAqKQooKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICopCgpmdW4gbGV4X2NvbXBhcmUg
ZiA9CiAgbGV0CiAgICBmdW4gbGV4IFtdID0gRVFVQUwKICAgICAgfCBsZXggKHggOjogbCkg
PSBjYXNlIGYgeCBvZiBFUVVBTCA9PiBsZXggbCB8IHkgPT4geQogIGluCiAgICBsZXgKICBl
bmQ7CgooKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICopCigqIEZpbmRpbmcgdGhlIG1pbmltYWwg
ZWxlbWVudCBvZiBhIGxpc3QsIHdydCBzb21lIG9yZGVyLiAgICAgICAgICAgICAgICAgICAg
KikKKCogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqKQoKZnVuIG1pbiBmID0KICBsZXQKICAgIGZ1
biBtaW5fYWNjIGJlc3QgW10gPSBiZXN0CiAgICAgIHwgbWluX2FjYyBiZXN0IChoIDo6IHQp
ID0gbWluX2FjYyAoaWYgZiBiZXN0IGggdGhlbiBiZXN0IGVsc2UgaCkgdAogIGluCiAgICBm
biBbXSA9PiByYWlzZSBFUlIgIm1pbiIgImVtcHR5IGxpc3QiCiAgICAgfCBoIDo6IHQgPT4g
bWluX2FjYyBoIHQKICBlbmQ7CgooKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICopCigqIE1lcmdl
IChmb3IgdGhlIGZvbGxvd2luZyBtZXJnZS1zb3J0LCBidXQgZ2VuZXJhbGx5IHVzZWZ1bCB0
b28pLiAgICAgICAgICAgKikKKCogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqKQoKZnVuIG1lcmdl
IGYgPQogIGxldAogICAgZnVuIG1yZyByZXMgW10geXMgPSBmb2xkbCAob3AgOjopIHlzIHJl
cwogICAgICB8IG1yZyByZXMgeHMgW10gPSBmb2xkbCAob3AgOjopIHhzIHJlcwogICAgICB8
IG1yZyByZXMgKHhzIGFzIHggOjogeHQpICh5cyBhcyB5IDo6IHl0KSA9CiAgICAgIGlmIGYg
eCB5IHRoZW4gbXJnICh4IDo6IHJlcykgeHQgeXMgZWxzZSBtcmcgKHkgOjogcmVzKSB4cyB5
dAogIGluCiAgICBtcmcgW10KICBlbmQ7CgooKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICopCigq
IE9yZGVyIGZ1bmN0aW9uIGhlcmUgc2hvdWxkIGJlIDw9IGZvciBhIHN0YWJsZSBzb3J0Li4u
ICAgICAgICAgICAgICAgICAgICAgKikKKCogLi4uYW5kIEkgdGhpbmsgPCBnaXZlcyBhIHJl
dmVyc2Ugc3RhYmxlIHNvcnQgKGJ1dCBkb24ndCBxdW90ZSBtZSkuICAgICAgICAqKQooKiAt
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tICopCgpmdW4gc29ydCBmID0KICBsZXQKICAgIGZ1biBzcnQg
W10gPSBbXQogICAgICB8IHNydCAobCBhcyBbeF0pID0gbAogICAgICB8IHNydCBsID0KICAg
ICAgbGV0CiAgICAgICAgdmFsIGhhbGZ3YXkgPSBsZW5ndGggbCBkaXYgMgogICAgICBpbgog
ICAgICAgIG1lcmdlIGYgKHNydCAoTGlzdC50YWtlIChsLCBoYWxmd2F5KSkpIChzcnQgKExp
c3QuZHJvcCAobCwgaGFsZndheSkpKQogICAgICBlbmQKICBpbgogICAgc3J0CiAgZW5kOwoK
KCogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqKQooKiBJbnRlZ2Vycy4gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopCigq
IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0gKikKCnZhbCBpbnRfdG9fc3RyaW5nID0gSW50LnRvU3Ry
aW5nOwp2YWwgc3RyaW5nX3RvX2ludCA9IE9wdGlvbi52YWxPZiBvIEludC5mcm9tU3RyaW5n
OwoKZnVuIGludF90b19iaXRzIDAgPSBbXQogIHwgaW50X3RvX2JpdHMgbiA9IChuIG1vZCAy
IDw+IDApIDo6IChpbnRfdG9fYml0cyAobiBkaXYgMikpOwoKZnVuIGJpdHNfdG9faW50IFtd
ID0gMAogIHwgYml0c190b19pbnQgKGggOjogdCkgPSAoaWYgaCB0aGVuIGN1cnJ5IG9wKyAx
IGVsc2UgSSkgKDIgKiBiaXRzX3RvX2ludCB0KTsKCmZ1biBpbnRlcnZhbCBtIDAgPSBbXQog
IHwgaW50ZXJ2YWwgbSBsZW4gPSBtIDo6IGludGVydmFsIChtICsgMSkgKGxlbiAtIDEpOwoK
ZnVuIGRpdmlkZXMgYSBiID0gaWYgYSA9IDAgdGhlbiBiID0gMCBlbHNlIGIgbW9kIChJbnQu
YWJzIGEpID0gMDsKCmxvY2FsCiAgZnVuIGJvdGggZiBnIG4gPSBmIG4gYW5kYWxzbyBnIG47
CiAgZnVuIG5leHQgZiA9IGxldCBmdW4gbnggeCA9IGlmIGYgeCB0aGVuIHggZWxzZSBueCAo
eCArIDEpIGluIG54IGVuZDsKCiAgZnVuIGxvb2tpbmcgcmVzIDAgXyBfID0gcmV2IHJlcwog
ICAgfCBsb29raW5nIHJlcyBuIGYgeCA9CiAgICBsZXQKICAgICAgdmFsIHAgPSBuZXh0IGYg
eAogICAgICB2YWwgcmVzJyA9IHAgOjogcmVzCiAgICAgIHZhbCBmJyA9IGJvdGggZiAobm90
IG8gZGl2aWRlcyBwKQogICAgaW4KICAgICAgbG9va2luZyByZXMnIChuIC0gMSkgZicgKHAg
KyAxKQogICAgZW5kCmluCiAgZnVuIHByaW1lcyBuID0gbG9va2luZyBbXSBuIChLIHRydWUp
IDIKZW5kOwoKKCogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqKQooKiBTdHJpbmdzLiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICopCigqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKikKCmZ1biB2YXJpYW50IHggdmFycyA9
IGlmIG1lbSB4IHZhcnMgdGhlbiB2YXJpYW50ICh4IF4gIiciKSB2YXJzIGVsc2UgeDsKCmZ1
biB2YXJpYW50X251bSB4IHZhcnMgPQogIGxldAogICAgZnVuIHhuIG4gPSB4IF4gaW50X3Rv
X3N0cmluZyBuCiAgICBmdW4gdiBuID0gbGV0IHZhbCB4JyA9IHhuIG4gaW4gaWYgbWVtIHgn
IHZhcnMgdGhlbiB2IChuICsgMSkgZWxzZSB4JyBlbmQKICBpbgogICAgaWYgbWVtIHggdmFy
cyB0aGVuIHYgMSBlbHNlIHgKICBlbmQ7CgpmdW4gZGVzdF9wcmVmaXggcCA9CiAgbGV0CiAg
ICBmdW4gY2hlY2sgcyA9IGFzc2VydCAoU3RyaW5nLmlzUHJlZml4IHAgcykgKEVSUiAiZGVz
dF9wcmVmaXgiICIiKQogICAgdmFsIHNpemVfcCA9IHNpemUgcAogIGluCiAgICBmbiBzID0+
IChjaGVjayBzOyBTdHJpbmcuZXh0cmFjdCAocywgc2l6ZV9wLCBOT05FKSkKICBlbmQ7Cgpm
dW4gaXNfcHJlZml4IHAgPSBjYW4gKGRlc3RfcHJlZml4IHApOwoKZnVuIG1rX3ByZWZpeCBw
IHMgPSBwIF4gczsKCigqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKikKKCogUmVhbHMuICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAqKQooKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICopCgp2YWwgcmVhbF90b19zdHJp
bmcgPSBSZWFsLnRvU3RyaW5nOwoKKCogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqKQooKiBQcmV0
dHktcHJpbnRpbmcuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICopCigqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKikKCnR5cGUgJ2Eg
cHAgPSBwcHN0cmVhbSAtPiAnYSAtPiB1bml0OwoKdmFsIExJTkVfTEVOR1RIID0gcmVmIDc1
OwoKZnVuIHVuaXRfcHAgcHBfYSBhIHBwICgpID0gcHBfYSBwcCBhOwoKZnVuIHBwX3VuaXRf
cHAgcHAgdXBwID0gdXBwIHBwICgpOwoKZnVuIHBwX21hcCBmIHBwX2EgKHBwc3RybSA6IHBw
c3RyZWFtKSB4IDogdW5pdCA9IHBwX2EgcHBzdHJtIChmIHgpOwoKZnVuIHBwX2JyYWNrZXQg
KGwsIHIpIHBwX2EgcHAgYSA9CiAgKFBQLmJlZ2luX2Jsb2NrIHBwIFBQLklOQ09OU0lTVEVO
VCAoc2l6ZSBsKTsgUFAuYWRkX3N0cmluZyBwcCBsOyBwcF9hIHBwIGE7CiAgIFBQLmFkZF9z
dHJpbmcgcHAgcjsgUFAuZW5kX2Jsb2NrIHBwKTsKCmZ1biBwcF9zZXF1ZW5jZSBzZXAgcHBf
YSA9CiAgbGV0CiAgICBmdW4gcHBfZWx0IHBwIHggPSAoUFAuYWRkX3N0cmluZyBwcCBzZXA7
IFBQLmFkZF9icmVhayBwcCAoMSwgMCk7IHBwX2EgcHAgeCkKICAgIGZ1biBwcF9zZXEgcHAg
W10gICAgICAgPSAoKQogICAgICB8IHBwX3NlcSBwcCAoaCA6OiB0KSA9IChwcF9hIHBwIGg7
IGFwcCAocHBfZWx0IHBwKSB0KQogIGluCiAgICBmbiBwcCA9PiBmbiBsID0+CiAgICAoUFAu
YmVnaW5fYmxvY2sgcHAgUFAuSU5DT05TSVNURU5UIDA7IHBwX3NlcSBwcCBsOyBQUC5lbmRf
YmxvY2sgcHApCiAgZW5kOwoKZnVuIHBwX3Vub3AgcyBwcF9hIHBwIGEgPQogIChQUC5iZWdp
bl9ibG9jayBwcCBQUC5DT05TSVNURU5UIDA7CiAgIFBQLmFkZF9zdHJpbmcgcHAgczsKICAg
UFAuYWRkX2JyZWFrIHBwICgxLCAwKTsKICAgcHBfYSBwcCBhOwogICBQUC5lbmRfYmxvY2sg
cHApOwoKZnVuIHBwX2Jpbm9wIHMgcHBfYSBwcF9iIHBwIChhLCBiKSA9CiAgKFBQLmJlZ2lu
X2Jsb2NrIHBwIFBQLkNPTlNJU1RFTlQgMDsKICAgcHBfYSBwcCBhOwogICBQUC5hZGRfc3Ry
aW5nIHBwIHM7CiAgIFBQLmFkZF9icmVhayBwcCAoMSwgMCk7CiAgIHBwX2IgcHAgYjsKICAg
UFAuZW5kX2Jsb2NrIHBwKTsKCmZ1biBwcF9ub3RoaW5nIHBwIF8gPSAoUFAuYmVnaW5fYmxv
Y2sgcHAgUFAuQ09OU0lTVEVOVCAwOyBQUC5lbmRfYmxvY2sgcHApOwoKZnVuIHBwX3N0cmlu
ZyBwcCBzID0KICAoUFAuYmVnaW5fYmxvY2sgcHAgUFAuQ09OU0lTVEVOVCAwOyBQUC5hZGRf
c3RyaW5nIHBwIHM7IFBQLmVuZF9ibG9jayBwcCk7Cgp2YWwgcHBfdW5pdCA9IGZuIHogPT4g
KHBwX21hcCAoSyAiKCkiKSBwcF9zdHJpbmcpIHo7Cgp2YWwgcHBfYm9vbCA9IHBwX21hcCBi
b29sX3RvX3N0cmluZyBwcF9zdHJpbmc7Cgp2YWwgcHBfaW50ID0gcHBfbWFwIGludF90b19z
dHJpbmcgcHBfc3RyaW5nOwoKdmFsIHBwX3JlYWwgPSBwcF9tYXAgcmVhbF90b19zdHJpbmcg
cHBfc3RyaW5nOwoKdmFsIHBwX29yZGVyID0KICBwcF9tYXAgKGZuIExFU1MgPT4gIkxFU1Mi
IHwgRVFVQUwgPT4gIkVRVUFMIiB8IEdSRUFURVIgPT4gIkdSRUFURVIiKQogIHBwX3N0cmlu
ZzsKCmZ1biBwcF9saXN0IHBwX2EgPSBwcF9icmFja2V0ICgiWyIsICJdIikgKHBwX3NlcXVl
bmNlICIsIiBwcF9hKTsKCmZ1biBwcF9wYWlyIHBwX2EgcHBfYiA9IHBwX2JyYWNrZXQgKCIo
IiwgIikiKSAocHBfYmlub3AgIiwiIHBwX2EgcHBfYik7CgpmdW4gcHBfdHJpcGxlIHBwX2Eg
cHBfYiBwcF9jID0KICBwcF9icmFja2V0ICgiKCIsICIpIikKICAocHBfbWFwIChmbiAoYSwg
YiwgYykgPT4gKGEsIChiLCBjKSkpCiAgIChwcF9iaW5vcCAiLCIgcHBfYSAocHBfYmlub3Ag
IiwiIHBwX2IgcHBfYykpKTsKCmxvY2FsCiAgdmFsIHBwX2wgPSBmbiB6ID0+IChwcF9zZXF1
ZW5jZSAiLCIgKHBwX2Jpbm9wICIgPSIgcHBfc3RyaW5nIHBwX3VuaXRfcHApKSB6Owppbgog
IGZ1biBwcF9yZWNvcmQgbCA9IHBwX2JyYWNrZXQgKCJ7IiwgIn0iKSAodW5pdF9wcCBwcF9s
IGwpOwplbmQ7CgpmdW4gcHBfb3B0aW9uIHBwX2EgcHAgTk9ORSA9IHBwX3N0cmluZyBwcCAi
Tk9ORSIKICB8IHBwX29wdGlvbiBwcF9hIHBwIChTT01FIGEpID0gcHBfdW5vcCAiU09NRSIg
cHBfYSBwcCBhOwoKKCogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqKQooKiBTdW1zLiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICopCigqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKikKCmRhdGF0eXBlICgnYSwgJ2Ip
IHN1bSA9IElOTCBvZiAnYSB8IElOUiBvZiAnYgoKZnVuIGlzX2lubCAoSU5MIF8pID0gdHJ1
ZSB8IGlzX2lubCAoSU5SIF8pID0gZmFsc2U7CgpmdW4gaXNfaW5yIChJTlIgXykgPSB0cnVl
IHwgaXNfaW5yIChJTkwgXykgPSBmYWxzZTsKCigqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKikK
KCogTWFwbGV0cy4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAqKQooKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICopCgpk
YXRhdHlwZSAoJ2EsICdiKSBtYXBsZXQgPSB8LT4gb2YgJ2EgKiAnYjsKCmZ1biBwcF9tYXBs
ZXQgcHBfYSBwcF9iID0KICBwcF9tYXAgKGZuIGEgfC0+IGIgPT4gKGEsIGIpKSAocHBfYmlu
b3AgIiB8LT4iIHBwX2EgcHBfYik7CgooKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICopCigqIFRy
ZWVzLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgKikKKCogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqKQoKZGF0YXR5
cGUgKCdhLCAnYikgdHJlZSA9IEJSQU5DSCBvZiAnYSAqICgnYSwgJ2IpIHRyZWUgbGlzdCB8
IExFQUYgb2YgJ2I7CgpmdW4gdHJlZV9zaXplIChMRUFGIF8pID0gMQogIHwgdHJlZV9zaXpl
IChCUkFOQ0ggKF8sIHQpKSA9IGZvbGRsIChvcCsgbyAodHJlZV9zaXplICMjIEkpKSAxIHQ7
CgpmdW4gdHJlZV9mb2xkciBmX2IgZl9sIChMRUFGIGwpID0gZl9sIGwKICB8IHRyZWVfZm9s
ZHIgZl9iIGZfbCAoQlJBTkNIIChwLCBzKSkgPSBmX2IgcCAobWFwICh0cmVlX2ZvbGRyIGZf
YiBmX2wpIHMpOwoKZnVuIHRyZWVfZm9sZGwgZl9iIGZfbCA9CiAgbGV0CiAgICBmdW4gZm9s
ZCBzdGF0ZSAoTEVBRiBsLCByZXMpID0gZl9sIGwgc3RhdGUgOjogcmVzCiAgICAgIHwgZm9s
ZCBzdGF0ZSAoQlJBTkNIIChwLCB0cyksIHJlcykgPSBmb2xkbCAoZm9sZCAoZl9iIHAgc3Rh
dGUpKSByZXMgdHMKICBpbgogICAgZm4gc3RhdGUgPT4gZm4gdCA9PiBmb2xkIHN0YXRlICh0
LCBbXSkKICBlbmQ7CgpmdW4gdHJlZV9wYXJ0aWFsX2ZvbGRsIGZfYiBmX2wgPQogIGxldAog
ICAgZnVuIGZvbGQgc3RhdGUgKExFQUYgbCwgcmVzKSA9CiAgICAgIChjYXNlIGZfbCBsIHN0
YXRlIG9mIE5PTkUgPT4gcmVzIHwgU09NRSB4ID0+IHggOjogcmVzKQogICAgICB8IGZvbGQg
c3RhdGUgKEJSQU5DSCAocCwgdHMpLCByZXMpID0KICAgICAgKGNhc2UgZl9iIHAgc3RhdGUg
b2YgTk9ORSA9PiByZXMgfCBTT01FIHMgPT4gZm9sZGwgKGZvbGQgcykgcmVzIHRzKQogIGlu
CiAgICBmbiBzdGF0ZSA9PiBmbiB0ID0+IGZvbGQgc3RhdGUgKHQsIFtdKQogIGVuZDsKCigq
IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0gKikKKCogVXNlZnVsIGltcGVyYXRpdmUgZmVhdHVyZXMu
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKQooKiAt
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tICopCgpmdW4gbGF6aWZ5X3RodW5rIGYgPSBsZXQgdmFsIHMg
PSBTdXNwLmRlbGF5IGYgaW4gZm4gKCkgPT4gU3VzcC5mb3JjZSBzIGVuZDsKCmxvY2FsCiAg
dmFsIGdlbmVyYXRvciA9IHJlZiAwCmluCiAgZnVuIG5ld19pbnQgKCkgPSBsZXQgdmFsIG4g
PSAhZ2VuZXJhdG9yIHZhbCAoKSA9IGdlbmVyYXRvciA6PSBuICsgMSBpbiBuIGVuZDsKCiAg
ZnVuIG5ld19pbnRzIDAgPSBbXQogICAgfCBuZXdfaW50cyBrID0KICAgIGxldCB2YWwgbiA9
ICFnZW5lcmF0b3IgdmFsICgpID0gZ2VuZXJhdG9yIDo9IG4gKyBrIGluIGludGVydmFsIG4g
ayBlbmQ7CmVuZDsKCmZ1biB3aXRoX2ZsYWcgKHIsIHVwZGF0ZSkgZiB4ID0KICBsZXQKICAg
IHZhbCBvbGQgPSAhcgogICAgdmFsICgpID0gciA6PSB1cGRhdGUgb2xkCiAgICB2YWwgeSA9
IGYgeCBoYW5kbGUgZSA9PiAociA6PSBvbGQ7IHJhaXNlIGUpCiAgICB2YWwgKCkgPSByIDo9
IG9sZAogIGluCiAgICB5CiAgZW5kOwoKKCogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqKQooKiBJ
bmZvcm1hdGlvbiBhYm91dCB0aGUgZW52aXJvbm1lbnQuICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICopCigqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKikKCnZhbCBo
b3N0ID0gT3B0aW9uLmdldE9wdCAoT1MuUHJvY2Vzcy5nZXRFbnYgIkhPU1ROQU1FIiwgInVu
a25vd24iKTsKCnZhbCBkYXRlID0gRGF0ZS5mbXQgIiVIOiVNOiVTICVkLyVtLyVZIiBvIERh
dGUuZnJvbVRpbWVMb2NhbCBvIFRpbWUubm93OwoKZW5kCigqI2xpbmUgMC4wICJiYXNpYy9R
dWV1ZS5zaWciKikKKCogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqKQooKiBBIFFVRVVFIERBVEFU
WVBFIEZPUiBNTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICopCigqIENyZWF0ZWQgYnkgSm9lIEh1cmQsIE9jdG9iZXIgMjAwMSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKikKKCogPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PSAqKQoKc2lnbmF0dXJlIFF1ZXVlID0Kc2lnCgp0eXBlICdhIHF1ZXVlCgp2YWwgZW1w
dHkgICAgIDogJ2EgcXVldWUKdmFsIGFkZCAgICAgICA6ICdhIC0+ICdhIHF1ZXVlIC0+ICdh
IHF1ZXVlCnZhbCBpc19lbXB0eSAgOiAnYSBxdWV1ZSAtPiBib29sCnZhbCBoZCAgICAgICAg
OiAnYSBxdWV1ZSAtPiAnYSAgICAgICAgICAgICAgICgqIHJhaXNlcyBFbXB0eSAqKQp2YWwg
dGwgICAgICAgIDogJ2EgcXVldWUgLT4gJ2EgcXVldWUgICAgICAgICAoKiByYWlzZXMgRW1w
dHkgKikKdmFsIGxlbmd0aCAgICA6ICdhIHF1ZXVlIC0+IGludAp2YWwgZnJvbV9saXN0IDog
J2EgbGlzdCAtPiAnYSBxdWV1ZQp2YWwgdG9fbGlzdCAgIDogJ2EgcXVldWUgLT4gJ2EgbGlz
dAp2YWwgcHBfcXVldWUgIDogJ2EgVXNlZnVsLnBwIC0+ICdhIHF1ZXVlIFVzZWZ1bC5wcAoK
ZW5kCigqI2xpbmUgMC4wICJiYXNpYy9RdWV1ZS5zbWwiKikKKCogPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PSAqKQooKiBBIFFVRVVFIERBVEFUWVBFIEZPUiBNTCAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopCigqIENyZWF0ZWQgYnkgSm9lIEh1
cmQsIE9jdG9iZXIgMjAwMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgKikKKCogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqKQoKc3RydWN0dXJlIFF1ZXVlIDo+IFF1
ZXVlID0Kc3RydWN0Cgp0eXBlICdhIHF1ZXVlID0gJ2EgbGlzdCAqICdhIGxpc3Q7Cgp2YWwg
ZW1wdHkgOiAnYSBxdWV1ZSA9IChbXSwgW10pOwoKZnVuIG5vcm0gKFtdLCB5cyBhcyBfIDo6
IF8pID0gKHJldiB5cywgW10pCiAgfCBub3JtIHEgPSBxOwoKZnVuIGFkZCB6ICh4cywgeXMp
ID0gbm9ybSAoeHMsIHogOjogeXMpOwoKZnVuIGlzX2VtcHR5IChbXSwgXykgPSB0cnVlCiAg
fCBpc19lbXB0eSAoXyA6OiBfLCBfKSA9IGZhbHNlOwoKZnVuIGhkIChbXSwgXykgPSByYWlz
ZSBFbXB0eQogIHwgaGQgKHggOjogXywgXykgPSB4OwoKZnVuIHRsIChbXSwgXykgPSByYWlz
ZSBFbXB0eQogIHwgdGwgKF8gOjogeHMsIHlzKSA9IG5vcm0gKHhzLCB5cyk7Cgp2YWwgbGVu
Z3RoID0gZm4gKHhzLCB5cykgPT4gbGVuZ3RoIHhzICsgbGVuZ3RoIHlzOwoKZnVuIGZyb21f
bGlzdCBsID0gKHJldiBsLCBbXSk7CgpmdW4gdG9fbGlzdCAoeHMsIHlzKSA9IHhzIEAgcmV2
IHlzOwoKbG9jYWwKICBvcGVuIFVzZWZ1bDsKaW4KICBmdW4gcHBfcXVldWUgcHBfYSA9CiAg
ICBwcF9tYXAgdG9fbGlzdCAocHBfYnJhY2tldCAoIlFbIiwgIl0iKSAocHBfc2VxdWVuY2Ug
IiwiIHBwX2EpKTsKZW5kOwoKZW5kCigqI2xpbmUgMC4wICJiYXNpYy9IZWFwLnNpZyIqKQoo
KiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09ICopCigqIEEgSEVBUCBEQVRBVFlQRSBGT1IgTUwgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKikKKCog
Q3JlYXRlZCBieSBKb2UgSHVyZCwgT2N0b2JlciAyMDAxICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAqKQooKiBUYWtlbiBmcm9tIFB1cmVseSBGdW5jdGlvbmFs
IERhdGEgU3RydWN0dXJlcywgYnkgQ2hyaXMgT2thc2FraS4gICAgICAgICAgICopCigqID09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0gKikKCnNpZ25hdHVyZSBIZWFwID0Kc2lnCgp0eXBlICdhIGhl
YXAKCnZhbCBlbXB0eSAgICA6ICgnYSAqICdhIC0+IG9yZGVyKSAtPiAnYSBoZWFwCnZhbCBh
ZGQgICAgICA6ICdhIC0+ICdhIGhlYXAgLT4gJ2EgaGVhcAp2YWwgaXNfZW1wdHkgOiAnYSBo
ZWFwIC0+IGJvb2wKdmFsIHRvcCAgICAgIDogJ2EgaGVhcCAtPiAnYSAgICAgICAgICAgICgq
IHJhaXNlcyBFbXB0eSAqKQp2YWwgcmVtb3ZlICAgOiAnYSBoZWFwIC0+ICdhICogJ2EgaGVh
cCAgKCogcmFpc2VzIEVtcHR5ICopCnZhbCBzaXplICAgICA6ICdhIGhlYXAgLT4gaW50CnZh
bCBhcHAgICAgICA6ICgnYSAtPiB1bml0KSAtPiAnYSBoZWFwIC0+IHVuaXQKdmFsIHRvX2xp
c3QgIDogJ2EgaGVhcCAtPiAnYSBsaXN0CnZhbCBwcF9oZWFwICA6ICdhIFVzZWZ1bC5wcCAt
PiAnYSBoZWFwIFVzZWZ1bC5wcAoKZW5kCigqI2xpbmUgMC4wICJiYXNpYy9IZWFwLnNtbCIq
KQooKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09ICopCigqIEEgSEVBUCBEQVRBVFlQRSBGT1IgTUwg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKikK
KCogQ3JlYXRlZCBieSBKb2UgSHVyZCwgT2N0b2JlciAyMDAxICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAqKQooKiBUYWtlbiBmcm9tIFB1cmVseSBGdW5jdGlv
bmFsIERhdGEgU3RydWN0dXJlcywgYnkgQ2hyaXMgT2thc2FraS4gICAgICAgICAgICopCigq
ID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0gKikKCigqCiopCnN0cnVjdHVyZSBIZWFwIDo+IEhlYXAg
PQpzdHJ1Y3QKCmRhdGF0eXBlICdhIG5vZGUgPSBFIHwgVCBvZiBpbnQgKiAnYSAqICdhIG5v
ZGUgKiAnYSBub2RlOwoKZGF0YXR5cGUgJ2EgaGVhcCA9IEhlYXAgb2YgKCdhICogJ2EgLT4g
b3JkZXIpICogaW50ICogJ2Egbm9kZTsKCmZ1biByYW5rIEUgPSAwCiAgfCByYW5rIChUIChy
LCBfLCBfLCBfKSkgPSByOwoKZnVuIG1ha2VUICh4LCBhLCBiKSA9CiAgaWYgcmFuayBhID49
IHJhbmsgYiB0aGVuIFQgKHJhbmsgYiArIDEsIHgsIGEsIGIpIGVsc2UgVCAocmFuayBhICsg
MSwgeCwgYiwgYSk7CgpmdW4gbWVyZ2UgZiA9CiAgbGV0CiAgICBmdW4gbXJnIChoLCBFKSA9
IGgKICAgICAgfCBtcmcgKEUsIGgpID0gaAogICAgICB8IG1yZyAoaDEgYXMgVCAoXywgeCwg
YTEsIGIxKSwgaDIgYXMgVCAoXywgeSwgYTIsIGIyKSkgPQogICAgICAoY2FzZSBmICh4LCB5
KSBvZiBHUkVBVEVSID0+IG1ha2VUICh5LCBhMiwgbXJnIChoMSwgYjIpKQogICAgICAgfCBf
ID0+IG1ha2VUICh4LCBhMSwgbXJnIChiMSwgaDIpKSkKICBpbgogICAgbXJnCiAgZW5kOwoK
ZnVuIGVtcHR5IGYgPSBIZWFwIChmLCAwLCBFKTsKCmZ1biBhZGQgeCAoSGVhcCAoZiwgbiwg
YSkpID0gSGVhcCAoZiwgbiArIDEsIG1lcmdlIGYgKFQgKDEsIHgsIEUsIEUpLCBhKSk7Cgpm
dW4gaXNfZW1wdHkgKEhlYXAgKF8sIF8sIEUpKSA9IHRydWUKICB8IGlzX2VtcHR5IChIZWFw
IChfLCBfLCBUIF8pKSA9IGZhbHNlOwoKZnVuIHRvcCAoSGVhcCAoXywgXywgRSkpID0gcmFp
c2UgRW1wdHkKICB8IHRvcCAoSGVhcCAoXywgXywgVCAoXywgeCwgXywgXykpKSA9IHg7Cgpm
dW4gcmVtb3ZlIChIZWFwIChfLCBfLCBFKSkgPSByYWlzZSBFbXB0eQogIHwgcmVtb3ZlIChI
ZWFwIChmLCBuLCBUIChfLCB4LCBhLCBiKSkpID0gKHgsIEhlYXAgKGYsIG4gLSAxLCBtZXJn
ZSBmIChhLCBiKSkpOwoKZnVuIHNpemUgKEhlYXAgKF8sIG4sIF8pKSA9IG47CgpmdW4gYXBw
IGYgPQogIGxldAogICAgZnVuIGFwIFtdID0gKCkKICAgICAgfCBhcCAoRSA6OiByZXN0KSA9
IGFwIHJlc3QKICAgICAgfCBhcCAoVCAoXywgZCwgYSwgYikgOjogcmVzdCkgPSAoZiBkOyBh
cCAoYSA6OiBiIDo6IHJlc3QpKQogIGluCiAgICBmbiBIZWFwIChfLCBfLCBhKSA9PiBhcCBb
YV0KICBlbmQ7Cgpsb2NhbAogIGZ1biB0b19sc3QgcmVzIGggPQogICAgaWYgaXNfZW1wdHkg
aCB0aGVuIHJldiByZXMKICAgIGVsc2UgbGV0IHZhbCAoeCwgaCkgPSByZW1vdmUgaCBpbiB0
b19sc3QgKHggOjogcmVzKSBoIGVuZDsKaW4KICBmdW4gdG9fbGlzdCBoID0gdG9fbHN0IFtd
IGg7CmVuZDsKCmxvY2FsCiAgb3BlbiBVc2VmdWw7CmluCiAgZnVuIHBwX2hlYXAgcHBfYSA9
CiAgICBwcF9tYXAgdG9fbGlzdCAocHBfYnJhY2tldCAoIkhbIiwgIl0iKSAocHBfc2VxdWVu
Y2UgIiwiIHBwX2EpKTsKZW5kOwoKZW5kCigqI2xpbmUgMC4wICJiYXNpYy9NdWx0aXNldC5z
aWciKikKKCogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqKQooKiBBIE1VTFRJU0VUIERBVEFUWVBF
IEZPUiBNTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICopCigqIENyZWF0ZWQgYnkgSm9lIEh1cmQsIEp1bHkgMjAwMiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgKikKKCogPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAq
KQoKc2lnbmF0dXJlIE11bHRpc2V0ID0Kc2lnCgp0eXBlICdhIG1zZXQKCnZhbCBlbXB0eSAg
ICA6ICgnYSAqICdhIC0+IG9yZGVyKSAtPiAnYSBtc2V0CnZhbCBpbnNlcnQgICA6ICdhICog
aW50IC0+ICdhIG1zZXQgLT4gJ2EgbXNldAp2YWwgY291bnQgICAgOiAnYSBtc2V0IC0+ICdh
IC0+IGludAp2YWwgdW5pb24gICAgOiAnYSBtc2V0IC0+ICdhIG1zZXQgLT4gJ2EgbXNldAp2
YWwgY29tcGwgICAgOiAnYSBtc2V0IC0+ICdhIG1zZXQKdmFsIHN1YnRyYWN0IDogJ2EgbXNl
dCAtPiAnYSBtc2V0IC0+ICdhIG1zZXQKdmFsIHN1YnNldCAgIDogJ2EgbXNldCAtPiAnYSBt
c2V0IC0+IGJvb2wKdmFsIGNvbXBhcmUgIDogJ2EgbXNldCAqICdhIG1zZXQgLT4gb3JkZXIg
b3B0aW9uCnZhbCBhcHAgICAgICA6ICgnYSAqIGludCAtPiB1bml0KSAtPiAnYSBtc2V0IC0+
IHVuaXQKdmFsIHRvX2xpc3QgIDogJ2EgbXNldCAtPiAoJ2EgKiBpbnQpIGxpc3QKdmFsIHBw
X21zZXQgIDogJ2EgVXNlZnVsLnBwIC0+ICdhIG1zZXQgVXNlZnVsLnBwCgplbmQKKCojbGlu
ZSAwLjAgImJhc2ljL011bHRpc2V0LnNtbCIqKQooKiA9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICop
CigqIEEgTVVMVElTRVQgREFUQVRZUEUgRk9SIE1MICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgKikKKCogQ3JlYXRlZCBieSBKb2UgSHVyZCwgSnVs
eSAyMDAyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKQoo
KiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09ICopCgooKgpMaXN0LmFwcCBsb2FkIFsiQmluYXJ5bWFw
IiwgIlVzZWZ1bCJdOwoqKQoKKCoKKikKc3RydWN0dXJlIE11bHRpc2V0IDo+IE11bHRpc2V0
ID0Kc3RydWN0CgpzdHJ1Y3R1cmUgTSA9IEJpbmFyeW1hcDsKCmZ1biBNcHVyZ2UgbSBrID0g
bGV0IHZhbCAobSwgXykgPSBNLnJlbW92ZSAobSwgaykgaW4gbSBlbmQ7CgpmdW4gTWFsbCBw
ID0KICBsZXQKICAgIGV4Y2VwdGlvbiBDdXQKICAgIGZ1biBmICh4LCB5LCAoKSkgPSBpZiBw
ICh4LCB5KSB0aGVuICgpIGVsc2UgcmFpc2UgQ3V0CiAgaW4KICAgIGZuIGEgPT4gKE0uZm9s
ZGwgZiAoKSBhOyB0cnVlKSBoYW5kbGUgQ3V0ID0+IGZhbHNlCiAgZW5kOwoKdHlwZSAnYSBt
c2V0ID0gKCdhLCBpbnQpIE0uZGljdDsKCmZ1biBlbXB0eSBvcmQgOiAnYSBtc2V0ID0gTS5t
a0RpY3Qgb3JkOwoKZnVuIGluc2VydCAoXywgMCkgYSA9IGEKICB8IGluc2VydCAoeCwgbikg
YSA9CiAgKGNhc2UgTS5wZWVrIChhLCB4KSBvZiBOT05FID0+IE0uaW5zZXJ0IChhLCB4LCBu
KQogICB8IFNPTUUgbicgPT4KICAgbGV0IHZhbCBuJycgPSBuICsgbicKICAgaW4gaWYgbicn
ID0gMCB0aGVuIE1wdXJnZSBhIHggZWxzZSBNLmluc2VydCAoYSwgeCwgbicnKQogICBlbmQp
OwoKZnVuIGNvdW50IG0geCA9IGNhc2UgTS5wZWVrIChtLCB4KSBvZiBTT01FIG4gPT4gbiB8
IE5PTkUgPT4gMDsKCmxvY2FsIGZ1biB1biBhIGIgPSBNLmZvbGRsIChmbiAoeCA6ICdhLCBu
IDogaW50LCBkKSA9PiBpbnNlcnQgKHgsIG4pIGQpIGEgYjsKaW4gZnVuIHVuaW9uIGEgYiA9
IGlmIE0ubnVtSXRlbXMgYSA8IE0ubnVtSXRlbXMgYiB0aGVuIHVuIGIgYSBlbHNlIHVuIGEg
YjsKZW5kOwoKZnVuIGNvbXBsIGEgOiAnYSBtc2V0ID0gTS50cmFuc2Zvcm0gfiBhOwoKZnVu
IHN1YnRyYWN0IGEgYiA9IHVuaW9uIGEgKGNvbXBsIGIpOwoKbG9jYWwKICBmdW4gc2lnbiBh
ID0gKE1hbGwgKGZuIChfLCBuKSA9PiAwIDw9IG4pIGEsIE1hbGwgKGZuIChfLCBuKSA9PiBu
IDw9IDApIGEpOwppbgogIGZ1biBjb21wYXJlIChhLCBiKSA9CiAgICAoY2FzZSBzaWduIChz
dWJ0cmFjdCBhIGIpIG9mICh0cnVlLCB0cnVlKSA9PiBTT01FIEVRVUFMCiAgICAgfCAodHJ1
ZSwgZmFsc2UpID0+IFNPTUUgR1JFQVRFUgogICAgIHwgKGZhbHNlLCB0cnVlKSA9PiBTT01F
IExFU1MKICAgICB8IChmYWxzZSwgZmFsc2UpID0+IE5PTkUpOwplbmQ7CgpmdW4gc3Vic2V0
IGEgYiA9CiAgKGNhc2UgY29tcGFyZSAoYSwgYikgb2YgU09NRSBMRVNTID0+IHRydWUKICAg
fCBTT01FIEVRVUFMID0+IHRydWUKICAgfCBfID0+IGZhbHNlKTsKCmZ1biBhcHAgZiAoYSA6
ICdhIG1zZXQpID0gTS5hcHAgZiBhOwoKZnVuIHRvX2xpc3QgKGEgOiAnYSBtc2V0KSA9IE0u
bGlzdEl0ZW1zIGE7Cgpsb2NhbAogIG9wZW4gVXNlZnVsOwppbgogIGZ1biBwcF9tc2V0IHBw
X2EgPQogICAgcHBfbWFwIChtYXAgVXNlZnVsLnwtPiBvIHRvX2xpc3QpCiAgICAocHBfYnJh
Y2tldCAoIk1bIiwgIl0iKSAocHBfc2VxdWVuY2UgIiwiIChVc2VmdWwucHBfbWFwbGV0IHBw
X2EgcHBfaW50KSkpOwplbmQ7CgplbmQKKCojbGluZSAwLjAgImJhc2ljL1N0cmVhbS5zaWci
KikKKCogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PSAqKQooKiBBIFBPU1NJQkxZLUlORklOSVRFIFNU
UkVBTSBEQVRBVFlQRSBGT1IgTUwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICop
CigqIENyZWF0ZWQgYnkgSm9lIEh1cmQsIEFwcmlsIDIwMDEgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgKikKKCogPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqKQoK
c2lnbmF0dXJlIFN0cmVhbSA9CnNpZwoKZGF0YXR5cGUgJ2Egc3RyZWFtID0gTklMIHwgQ09O
UyBvZiAnYSAqICh1bml0IC0+ICdhIHN0cmVhbSkKdHlwZSAnYSBTdGhrID0gdW5pdCAtPiAn
YSBzdHJlYW0KCigqIElmIHlvdSdyZSB3b25kZXJpbmcgaG93IHRvIGNyZWF0ZSBhbiBpbmZp
bml0ZSBzdHJlYW06ICopCigqIHZhbCBzdHJlYW00ID0gbGV0IGZ1biBzNCAoKSA9IENPTlMg
NCBzNCBpbiBzNCAoKSBlbmQ7ICopCgp2YWwgY29ucyAgICAgICAgICA6ICdhIC0+ICh1bml0
IC0+ICdhIHN0cmVhbSkgLT4gJ2Egc3RyZWFtCnZhbCBudWxsICAgICAgICAgIDogJ2Egc3Ry
ZWFtIC0+IGJvb2wKdmFsIGhkICAgICAgICAgICAgOiAnYSBzdHJlYW0gLT4gJ2EgICAgICAg
ICAgICAgICAgICAgICgqIHJhaXNlcyBFbXB0eSAqKQp2YWwgdGwgICAgICAgICAgICA6ICdh
IHN0cmVhbSAtPiAnYSBzdHJlYW0gICAgICAgICAgICAgKCogcmFpc2VzIEVtcHR5ICopCnZh
bCBkZXN0ICAgICAgICAgIDogJ2Egc3RyZWFtIC0+ICdhICogJ2Egc3RyZWFtICAgICAgICAo
KiByYWlzZXMgRW1wdHkgKikKdmFsIHJlcGVhdCAgICAgICAgOiAnYSAtPiAnYSBzdHJlYW0K
dmFsIGNvdW50ICAgICAgICAgOiBpbnQgLT4gaW50IHN0cmVhbQp2YWwgZm9sZCAgICAgICAg
ICA6ICgnYSAtPiAodW5pdCAtPiAnYikgLT4gJ2IpIC0+ICdiIC0+ICdhIHN0cmVhbSAtPiAn
Ygp2YWwgbWFwICAgICAgICAgICA6ICgnYSAtPiAnYikgLT4gJ2Egc3RyZWFtIC0+ICdiIHN0
cmVhbQp2YWwgbWFwX3RoayAgICAgICA6ICgnYSBTdGhrIC0+ICdhIFN0aGspIC0+ICdhIFN0
aGsgLT4gJ2EgU3Roawp2YWwgcGFydGlhbF9tYXAgICA6ICgnYSAtPiAnYiBvcHRpb24pIC0+
ICdhIHN0cmVhbSAtPiAnYiBzdHJlYW0KdmFsIG1hcHMgICAgICAgICAgOiAoJ2EgLT4gJ2Mg
LT4gJ2IgKiAnYykgLT4gJ2MgLT4gJ2Egc3RyZWFtIC0+ICdiIHN0cmVhbQp2YWwgcGFydGlh
bF9tYXBzICA6ICgnYSAtPiAnYyAtPiAnYiBvcHRpb24gKiAnYykgLT4gJ2MgLT4gJ2Egc3Ry
ZWFtIC0+ICdiIHN0cmVhbQp2YWwgZmlsdGVyICAgICAgICA6ICgnYSAtPiBib29sKSAtPiAn
YSBzdHJlYW0gLT4gJ2Egc3RyZWFtCnZhbCBmbGF0dGVuICAgICAgIDogJ2Egc3RyZWFtIHN0
cmVhbSAtPiAnYSBzdHJlYW0KdmFsIHppcHdpdGggICAgICAgOiAoJ2EgLT4gJ2IgLT4gJ2Mp
IC0+ICdhIHN0cmVhbSAtPiAnYiBzdHJlYW0gLT4gJ2Mgc3RyZWFtCnZhbCB6aXAgICAgICAg
ICAgIDogJ2Egc3RyZWFtIC0+ICdiIHN0cmVhbSAtPiAoJ2EgKiAnYikgc3RyZWFtCnZhbCB0
YWtlICAgICAgICAgIDogaW50IC0+ICdhIHN0cmVhbSAtPiAnYSBzdHJlYW0gICAgICAoKiBy
YWlzZXMgU3Vic2NyaXB0ICopCnZhbCBkcm9wICAgICAgICAgIDogaW50IC0+ICdhIHN0cmVh
bSAtPiAnYSBzdHJlYW0gICAgICAoKiByYWlzZXMgU3Vic2NyaXB0ICopCnZhbCB0b19saXN0
ICAgICAgIDogJ2Egc3RyZWFtIC0+ICdhIGxpc3QKdmFsIGZyb21fbGlzdCAgICAgOiAnYSBs
aXN0IC0+ICdhIHN0cmVhbQp2YWwgZnJvbV90ZXh0ZmlsZSA6IHN0cmluZyAtPiBzdHJpbmcg
c3RyZWFtICAgICAgICAgICAgKCogbGluZXMgb2YgdGhlIGZpbGUgKikKCmVuZAooKiNsaW5l
IDAuMCAiYmFzaWMvU3RyZWFtLnNtbCIqKQooKiA9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICopCigq
IEEgUE9TU0lCTFktSU5GSU5JVEUgU1RSRUFNIERBVEFUWVBFIEZPUiBNTCAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgKikKKCogQ3JlYXRlZCBieSBKb2UgSHVyZCwgQXByaWwg
MjAwMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKQooKiA9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09ICopCgpzdHJ1Y3R1cmUgU3RyZWFtIDo+IFN0cmVhbSA9CnN0
cnVjdAoKb3BlbiBVc2VmdWw7CgppbmZpeHIgMCBvbyAjIzsKCigqIC0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0gKikKKCogVGhlIGRhdGF0eXBlIGRlY2xhcmF0aW9uIGVuY2Fwc3VsYXRlcyBhbGwg
dGhlIHByaW1pdGl2ZSBvcGVyYXRpb25zLiAgICAgICAqKQooKiAtLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tICopCgpkYXRhdHlwZSAnYSBzdHJlYW0gPSBOSUwgfCBDT05TIG9mICdhICogKHVuaXQg
LT4gJ2Egc3RyZWFtKTsKCnR5cGUgJ2EgU3RoayA9IHVuaXQgLT4gJ2Egc3RyZWFtOwoKKCog
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLSAqKQooKiBVc2VmdWwgZnVuY3Rpb25zLiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopCigqIC0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0gKikKCnZhbCBjb25zID0gZm4geiA9PiBjdXJyeSBDT05TIHo7
CgpmdW4gbnVsbCBOSUwgPSB0cnVlIHwgbnVsbCAoQ09OUyBfKSA9IGZhbHNlOwoKZnVuIGhk
IE5JTCA9IHJhaXNlIEVtcHR5IHwgaGQgKENPTlMgKGgsIF8pKSA9IGg7CgpmdW4gdGwgTklM
ID0gcmFpc2UgRW1wdHkgfCB0bCAoQ09OUyAoXywgdCkpID0gdCAoKTsKCmZ1biBkZXN0IHMg
PSAoaGQgcywgdGwgcyk7CgpmdW4gcmVwZWF0IHggPSBsZXQgZnVuIHJlcCAoKSA9IENPTlMg
KHgsIHJlcCkgaW4gcmVwICgpIGVuZDsKCmZ1biBjb3VudCBuID0gQ09OUyAobiwgZm4gKCkg
PT4gY291bnQgKG4gKyAxKSk7CgpmdW4gZm9sZCBiIGMgPQogIGxldCBmdW4gZiBOSUwgPSBj
IHwgZiAoQ09OUyAoeCwgeHMpKSA9IGIgeCAoZm4gKCkgPT4gZiAoeHMgKCkpKSBpbiBmIGVu
ZDsKCmZ1biBtYXAgZiA9CiAgbGV0CiAgICBmdW4gbSBOSUwgPSBOSUwKICAgICAgfCBtIChD
T05TIChoLCB0KSkgPSBDT05TIChmIGgsIGZuICgpID0+IG0gKHQgKCkpKQogIGluCiAgICBt
CiAgZW5kOwoKZnVuIG1hcF90aGsgZiA9CiAgbGV0CiAgICBmdW4gbXQgTklMID0gTklMCiAg
ICAgIHwgbXQgKENPTlMgKGgsIHQpKSA9IENPTlMgKGgsIG10JyB0KQogICAgYW5kIG10JyB0
ID0gZiAoZm4gKCkgPT4gbXQgKHQgKCkpKQogIGluCiAgICBtdCcKICBlbmQ7CgpmdW4gcGFy
dGlhbF9tYXAgZiA9CiAgbGV0CiAgICBmdW4gbXAgTklMID0gTklMCiAgICAgIHwgbXAgKENP
TlMgKGgsIHQpKSA9CiAgICAgIGNhc2UgZiBoIG9mIE5PTkUgPT4gbXAgKHQgKCkpCiAgICAg
IHwgU09NRSBoJyA9PiBDT05TIChoJywgZm4gKCkgPT4gbXAgKHQgKCkpKQogIGluCiAgICBt
cAogIGVuZDsKCmZ1biBtYXBzIGYgPQogIGxldAogICAgZnVuIG1tIF8gTklMID0gTklMCiAg
ICAgIHwgbW0gcyAoQ09OUyAoeCwgeHMpKSA9CiAgICAgIGxldCB2YWwgKHksIHMnKSA9IGYg
eCBzCiAgICAgIGluIENPTlMgKHksIGZuICgpID0+IG1tIHMnICh4cyAoKSkpCiAgICAgIGVu
ZAogIGluCiAgICBtbQogIGVuZDsKCmZ1biBwYXJ0aWFsX21hcHMgZiA9CiAgbGV0CiAgICBm
dW4gbW0gXyBOSUwgPSBOSUwKICAgICAgfCBtbSBzIChDT05TICh4LCB4cykpID0KICAgICAg
bGV0CiAgICAgICAgdmFsICh5bywgcycpID0gZiB4IHMKICAgICAgICB2YWwgdCA9IG1tIHMn
IG8geHMKICAgICAgaW4KICAgICAgICBjYXNlIHlvIG9mIE5PTkUgPT4gdCAoKSB8IFNPTUUg
eSA9PiBDT05TICh5LCB0KQogICAgICBlbmQKICBpbgogICAgbW0KICBlbmQ7CgpmdW4gZmls
dGVyIGYgPSBwYXJ0aWFsX21hcCAoZm4geCA9PiBpZiBmIHggdGhlbiBTT01FIHggZWxzZSBO
T05FKTsKCmZ1biBmbGF0dGVuIE5JTCA9IE5JTAogIHwgZmxhdHRlbiAoQ09OUyAoTklMLCBz
cykpID0gZmxhdHRlbiAoc3MgKCkpCiAgfCBmbGF0dGVuIChDT05TIChDT05TICh4LCB4cyks
IHNzKSkgPQogIENPTlMgKHgsIGZuICgpID0+IGZsYXR0ZW4gKENPTlMgKHhzICgpLCBzcykp
KTsKCmZ1biB6aXB3aXRoIGYgPQogIGxldAogICAgZnVuIHogTklMIF8gPSBOSUwKICAgICAg
fCB6IF8gTklMID0gTklMCiAgICAgIHwgeiAoQ09OUyAoeCwgeHMpKSAoQ09OUyAoeSwgeXMp
KSA9CiAgICAgIENPTlMgKGYgeCB5LCBmbiAoKSA9PiB6ICh4cyAoKSkgKHlzICgpKSkKICBp
bgogICAgegogIGVuZDsKCmZ1biB6aXAgcyB0ID0gemlwd2l0aCBwYWlyIHMgdDsKCmZ1biB0
YWtlIDAgcyA9IE5JTAogIHwgdGFrZSBuIE5JTCA9IHJhaXNlIFN1YnNjcmlwdAogIHwgdGFr
ZSAxIChDT05TICh4LCBfKSkgPSBDT05TICh4LCBLIE5JTCkKICB8IHRha2UgbiAoQ09OUyAo
eCwgeHMpKSA9IENPTlMgKHgsIGZuICgpID0+IHRha2UgKG4gLSAxKSAoeHMgKCkpKTsKCmZ1
biBkcm9wIG4gcyA9IE4gbiB0bCBzIGhhbmRsZSBFbXB0eSA9PiByYWlzZSBTdWJzY3JpcHQ7
Cgpsb2NhbAogIGZ1biB0b19sc3QgcmVzIE5JTCA9IHJlcwogICAgfCB0b19sc3QgcmVzIChD
T05TICh4LCB4cykpID0gdG9fbHN0ICh4IDo6IHJlcykgKHhzICgpKTsKaW4KICB2YWwgdG9f
bGlzdCA9IGZuIHogPT4gKHJldiBvIHRvX2xzdCBbXSkgegplbmQ7CgpmdW4gZnJvbV9saXN0
IFtdID0gTklMCiAgfCBmcm9tX2xpc3QgKHggOjogeHMpID0gQ09OUyAoeCwgZm4gKCkgPT4g
ZnJvbV9saXN0IHhzKTsKCmZ1biBmcm9tX3RleHRmaWxlIGZpbGVuYW1lID0KICBsZXQKICAg
IG9wZW4gVGV4dElPCiAgICB2YWwgZmggPSBvcGVuSW4gZmlsZW5hbWUKICAgIGZ1biByZXMg
KCkgPQogICAgICBjYXNlIGlucHV0TGluZSBmaCBvZiAiIiA9PiAoY2xvc2VJbiBmaDsgTklM
KQogICAgICB8IHMgPT4gQ09OUyAocywgbGF6aWZ5X3RodW5rIHJlcykKICBpbgogICAgcmVz
ICgpCiAgZW5kOwoKZW5kCigqI2xpbmUgMC4wICJiYXNpYy9QYXJzZXIuc2lnIiopCigqID09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0gKikKKCogUEFSU0VSIENPTUJJTkFUT1JTICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKQooKiBDcmVh
dGVkIGJ5IEpvZSBIdXJkLCBBcHJpbCAyMDAxICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICopCigqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKikKCnNpZ25hdHVy
ZSBQYXJzZXIgPQpzaWcKCigqIFJlY29tbWVuZGVkIGZpeGl0aWVzCiAgaW5maXhyIDkgPj4r
KzsKICBpbmZpeHIgOCArKzsKICBpbmZpeHIgNyA+PjsKICBpbmZpeHIgNiB8fDsKKikKCnR5
cGUgJ2EgcHAgICAgID0gJ2EgVXNlZnVsLnBwCnR5cGUgJ2Egc3RyZWFtID0gJ2EgU3RyZWFt
LnN0cmVhbQoKKCogR2VuZXJpYyAqKQpleGNlcHRpb24gTm9wYXJzZQp2YWwgKysgICAgICAg
ICA6ICgnYSAtPiAnYiAqICdhKSAqICgnYSAtPiAnYyAqICdhKSAtPiAnYSAtPiAoJ2IgKiAn
YykgKiAnYQp2YWwgPj4gICAgICAgICA6ICgnYSAtPiAnYiAqICdhKSAqICgnYiAtPiAnYykg
LT4gJ2EgLT4gJ2MgKiAnYQp2YWwgPj4rKyAgICAgICA6ICgnYSAtPiAnYiAqICdhKSAqICgn
YiAtPiAnYSAtPiAnYyAqICdhKSAtPiAnYSAtPiAnYyAqICdhCnZhbCB8fCAgICAgICAgIDog
KCdhIC0+ICdiICogJ2EpICogKCdhIC0+ICdiICogJ2EpIC0+ICdhIC0+ICdiICogJ2EKdmFs
IG1hbnkgICAgICAgOiAoJ2EgLT4gJ2IgKiAnYSkgLT4gJ2EgLT4gJ2IgbGlzdCAqICdhCnZh
bCBhdGxlYXN0b25lIDogKCdhIC0+ICdiICogJ2EpIC0+ICdhIC0+ICdiIGxpc3QgKiAnYQp2
YWwgbm90aGluZyAgICA6ICdhIC0+IHVuaXQgKiAnYQp2YWwgb3B0aW9uYWwgICA6ICgnYSAt
PiAnYiAqICdhKSAtPiAnYSAtPiAnYiBvcHRpb24gKiAnYQoKKCogU3RyZWFtLWJhc2VkICop
CnR5cGUgKCdhLCAnYikgcGFyc2VyID0gJ2Egc3RyZWFtIC0+ICdiICogJ2Egc3RyZWFtCnZh
bCBtYXliZSAgICA6ICgnYSAtPiAnYiBvcHRpb24pIC0+ICgnYSwgJ2IpIHBhcnNlcgp2YWwg
ZmluaXNoZWQgOiAoJ2EsIHVuaXQpIHBhcnNlcgp2YWwgc29tZSAgICAgOiAoJ2EgLT4gYm9v
bCkgLT4gKCdhLCAnYSkgcGFyc2VyCnZhbCBhbnkgICAgICA6ICgnYSwgJ2EpIHBhcnNlcgp2
YWwgZXhhY3QgICAgOiAnJ2EgLT4gKCcnYSwgJydhKSBwYXJzZXIKCigqIFBhcnNpbmcgYW5k
IHByZXR0eS1wcmludGluZyBmb3IgaW5maXggb3BlcmF0b3JzICopCnR5cGUgaW5maXhpdGll
cyAgPSB7dG9rIDogc3RyaW5nLCBwcmVjIDogaW50LCBsZWZ0X2Fzc29jIDogYm9vbH0gbGlz
dAp0eXBlICdhIGNvbiAgICAgID0gc3RyaW5nICogJ2EgKiAnYSAtPiAnYQp0eXBlICdhIGRl
cyAgICAgID0gJ2EgLT4gKHN0cmluZyAqICdhICogJ2EpIG9wdGlvbgp0eXBlICdhIGlwYXJz
ZXIgID0gKHN0cmluZywgJ2EpIHBhcnNlcgp0eXBlICdhIGlwcmludGVyID0gKCdhICogYm9v
bCkgcHAKdmFsIG9wdG9rcyAgICAgICAgICAgIDogaW5maXhpdGllcyAtPiBzdHJpbmcgbGlz
dAp2YWwgcGFyc2VfbGVmdF9pbmZpeCAgOiBzdHJpbmcgbGlzdCAtPiAnYSBjb24gLT4gJ2Eg
aXBhcnNlciAtPiAnYSBpcGFyc2VyCnZhbCBwYXJzZV9yaWdodF9pbmZpeCA6IHN0cmluZyBs
aXN0IC0+ICdhIGNvbiAtPiAnYSBpcGFyc2VyIC0+ICdhIGlwYXJzZXIKdmFsIHBhcnNlX2lu
Zml4ZXMgICAgIDogaW5maXhpdGllcyAgLT4gJ2EgY29uIC0+ICdhIGlwYXJzZXIgLT4gJ2Eg
aXBhcnNlcgp2YWwgcHBfbGVmdF9pbmZpeCAgICAgOiBzdHJpbmcgbGlzdCAtPiAnYSBkZXMg
LT4gJ2EgaXByaW50ZXIgLT4gJ2EgaXByaW50ZXIKdmFsIHBwX3JpZ2h0X2luZml4ICAgIDog
c3RyaW5nIGxpc3QgLT4gJ2EgZGVzIC0+ICdhIGlwcmludGVyIC0+ICdhIGlwcmludGVyCnZh
bCBwcF9pbmZpeGVzICAgICAgICA6IGluZml4aXRpZXMgIC0+ICdhIGRlcyAtPiAnYSBpcHJp
bnRlciAtPiAnYSBpcHJpbnRlcgoKKCogTGV4aW5nICopCnZhbCBzcGFjZSAgICA6IGNoYXIg
LT4gYm9vbAp2YWwgZGlnaXQgICAgOiBjaGFyIC0+IGJvb2wKdmFsIGxvd2VyICAgIDogY2hh
ciAtPiBib29sCnZhbCB1cHBlciAgICA6IGNoYXIgLT4gYm9vbAp2YWwgYWxwaGEgICAgOiBj
aGFyIC0+IGJvb2wKdmFsIGFscGhhbnVtIDogY2hhciAtPiBib29sICAgICAgICAgICAgICgq
IGFscGhhICsgZGlnaXQgKyBfICsgJyAqKQp2YWwgc3ltYm9sICAgOiBjaGFyIC0+IGJvb2wg
ICAgICAgICAgICAgKCogPD49LSorL1w/QHwhJCUmfiNeOiAqKQp2YWwgcHVuY3QgICAgOiBj
aGFyIC0+IGJvb2wgICAgICAgICAgICAgKCogKClbXXt9Liw7ICopCgooKiBRdW90YXRpb25z
ICopCnR5cGUgJ2EgcXVvdGF0aW9uID0gJ2EgZnJhZyBsaXN0CnZhbCBxdW90YXRpb25fcGFy
c2VyIDogKHN0cmluZyAtPiAnYSkgLT4gJ2IgcHAgLT4gJ2IgcXVvdGF0aW9uIC0+ICdhCgpl
bmQKKCojbGluZSAwLjAgImJhc2ljL1BhcnNlci5zbWwiKikKKCogPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PSAqKQooKiBQQVJTRVIgQ09NQklOQVRPUlMgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopCigqIENyZWF0ZWQgYnkgSm9lIEh1
cmQsIEFwcmlsIDIwMDEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgKikKKCogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqKQoKKCoKYXBwIGxvYWQgWyJVc2VmdWwi
LCAiU3RyZWFtIl07CiopCgooKgoqKQpzdHJ1Y3R1cmUgUGFyc2VyIDo+IFBhcnNlciA9CnN0
cnVjdAoKb3BlbiBVc2VmdWw7CgpzdHJ1Y3R1cmUgUyA9IFN0cmVhbTsKCmluZml4ciA5ID4+
Kys7CmluZml4ciA4ICsrOwppbmZpeHIgNyA+PjsKaW5maXhyIDYgfHw7CmluZml4ICMjOwoK
dHlwZSAnYSBzdHJlYW0gPSAnYSBTdHJlYW0uc3RyZWFtOwp2YWwgb21hcCAgICAgICA9IE9w
dGlvbi5tYXA7CgooKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICopCigqIEdlbmVyaWMuICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgKikKKCogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqKQoKZXhjZXB0aW9uIE5vcGFyc2U7
CgpmdW4gb3AgKysgKHBhcnNlcjEsIHBhcnNlcjIpIGlucHV0ID0KICBsZXQKICAgIHZhbCAo
cmVzdWx0MSwgcmVzdDEpID0gcGFyc2VyMSBpbnB1dAogICAgdmFsIChyZXN1bHQyLCByZXN0
MikgPSBwYXJzZXIyIHJlc3QxCiAgaW4KICAgICgocmVzdWx0MSwgcmVzdWx0MiksIHJlc3Qy
KQogIGVuZDsKCmZ1biBvcCA+PiAocGFyc2VyLCB0cmVhdG1lbnQpIGlucHV0ID0KICBsZXQK
ICAgIHZhbCAocmVzdWx0LCByZXN0KSA9IHBhcnNlciBpbnB1dAogIGluCiAgICAodHJlYXRt
ZW50IHJlc3VsdCwgcmVzdCkKICBlbmQ7CgpmdW4gb3AgPj4rKyAocGFyc2VyLCB0cmVhdG1l
bnQpIGlucHV0ID0KICBsZXQKICAgIHZhbCAocmVzdWx0LCByZXN0KSA9IHBhcnNlciBpbnB1
dAogIGluCiAgICB0cmVhdG1lbnQgcmVzdWx0IHJlc3QKICBlbmQ7CgpmdW4gb3AgfHwgKHBh
cnNlcjEsIHBhcnNlcjIpIGlucHV0ID0gcGFyc2VyMSBpbnB1dApoYW5kbGUgTm9wYXJzZSA9
PiBwYXJzZXIyIGlucHV0OwoKZnVuIG1hbnkgcGFyc2VyIGlucHV0ID0KICBsZXQKICAgIHZh
bCAocmVzdWx0LCBuZXh0KSA9IHBhcnNlciBpbnB1dAogICAgdmFsIChyZXN1bHRzLCByZXN0
KSA9IG1hbnkgcGFyc2VyIG5leHQKICBpbgogICAgKChyZXN1bHQgOjogcmVzdWx0cyksIHJl
c3QpCiAgZW5kCiAgaGFuZGxlIE5vcGFyc2UgPT4gKFtdLCBpbnB1dCk7CgpmdW4gYXRsZWFz
dG9uZSBwID0gKHAgKysgbWFueSBwKSA+PiBvcDo6OwoKZnVuIG5vdGhpbmcgaW5wdXQgPSAo
KCksIGlucHV0KTsKCmZ1biBvcHRpb25hbCBwID0gKHAgPj4gU09NRSkgfHwgKG5vdGhpbmcg
Pj4gSyBOT05FKTsKCigqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKikKKCogU3RyZWFtLWJhc2Vk
LiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAqKQooKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICopCgp0eXBlICgnYSwgJ2IpIHBh
cnNlciA9ICdhIHN0cmVhbSAtPiAnYiAqICdhIHN0cmVhbQoKZnVuIG1heWJlIHAgUy5OSUwg
PSByYWlzZSBOb3BhcnNlCiAgfCBtYXliZSBwIChTLkNPTlMgKGgsIHQpKSA9CiAgY2FzZSBw
IGggb2YgU09NRSByID0+IChyLCB0ICgpKSB8IE5PTkUgPT4gcmFpc2UgTm9wYXJzZTsKCmZ1
biBmaW5pc2hlZCBTLk5JTCA9ICgoKSwgUy5OSUwpCiAgfCBmaW5pc2hlZCAoUy5DT05TIF8p
ID0gcmFpc2UgTm9wYXJzZTsKCmZ1biBzb21lIHAgPSBtYXliZSAoZm4geCA9PiBpZiBwIHgg
dGhlbiBTT01FIHggZWxzZSBOT05FKTsKCmZ1biBhbnkgaW5wdXQgPSBzb21lIChLIHRydWUp
IGlucHV0OwoKZnVuIGV4YWN0IHRvayA9IHNvbWUgKGZuIGl0ZW0gPT4gaXRlbSA9IHRvayk7
CgooKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICopCigqIFBhcnNpbmcgYW5kIHByZXR0eS1wcmlu
dGluZyBmb3IgaW5maXggb3BlcmF0b3JzLiAgICAgICAgICAgICAgICAgICAgICAgICAgKikK
KCogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqKQoKdHlwZSBpbmZpeGl0aWVzID0ge3RvayA6IHN0
cmluZywgcHJlYyA6IGludCwgbGVmdF9hc3NvYyA6IGJvb2x9IGxpc3Q7CnR5cGUgJ2EgY29u
ICAgICAgPSBzdHJpbmcgKiAnYSAqICdhIC0+ICdhOwp0eXBlICdhIGRlcyAgICAgID0gJ2Eg
LT4gKHN0cmluZyAqICdhICogJ2EpIG9wdGlvbjsKdHlwZSAnYSBpcGFyc2VyICA9IChzdHJp
bmcsICdhKSBwYXJzZXI7CnR5cGUgJ2EgaXByaW50ZXIgPSAoJ2EgKiBib29sKSBwcDsKCmxv
Y2FsCiAgdmFsIHNvcnRfb3BzIDogaW5maXhpdGllcyAtPiBpbmZpeGl0aWVzID0KICAgIGxl
dAogICAgICAgZnVuIG9yZGVyIHtwcmVjLCB0b2sgPSBfLCBsZWZ0X2Fzc29jID0gX30KCSAg
e3ByZWMgPSBwcmVjJywgdG9rID0gXywgbGVmdF9hc3NvYyA9IF99ID0KCSAgcHJlYyA8IHBy
ZWMnCiAgICBpbiBzb3J0IG9yZGVyCiAgICBlbmQ7CiAgZnVuIHVuZmxhdHRlbiAoe3Rvaywg
cHJlYywgbGVmdF9hc3NvY30sIChbXSwgXykpID0KICAgIChbKGxlZnRfYXNzb2MsIFt0b2td
KV0sIHByZWMpCiAgICB8IHVuZmxhdHRlbiAoe3RvaywgcHJlYywgbGVmdF9hc3NvY30sICgo
YSwgbCkgOjogZGVhbHQsIHApKSA9CiAgICBpZiBwID0gcHJlYyB0aGVuCiAgICAgIChhc3Nl
cnQgKGxlZnRfYXNzb2MgPSBhKSAoQlVHICJpbmZpeCBwYXJzZXIvcHJpbnRlciIgIm1peGVk
IGFzc29jcyIpOwogICAgICAgKChhLCB0b2sgOjogbCkgOjogZGVhbHQsIHApKQogICAgZWxz
ZQogICAgICAoKGxlZnRfYXNzb2MsIFt0b2tdKSA6OiAoYSwgbCkgOjogZGVhbHQsIHByZWMp
OwppbgogIHZhbCBsYXllcm9wcyA9IGZzdCBvIGZvbGRsIHVuZmxhdHRlbiAoW10sIDApIG8g
c29ydF9vcHM7CmVuZDsKCmxvY2FsCiAgZnVuIGNob3AgKCMiICIgOjogY2hzKSA9IChjdXJy
eSBvcCsgMSAjIyBJKSAoY2hvcCBjaHMpIHwgY2hvcCBjaHMgPSAoMCwgY2hzKTsKICBmdW4g
bnNwYWNlcyBuID0gTiBuIChjdXJyeSBvcF4gIiAiKSAiIjsKICBmdW4gc3BhY2lmeSB0b2sg
PQogICAgbGV0CiAgICAgIHZhbCBjaHMgPSBleHBsb2RlIHRvawogICAgICB2YWwgKHIsIGNo
cykgPSBjaG9wIChyZXYgY2hzKQogICAgICB2YWwgKGwsIGNocykgPSBjaG9wIChyZXYgY2hz
KQogICAgaW4KICAgICAgKChsLCByKSwgaW1wbG9kZSBjaHMpCiAgICBlbmQ7CiAgZnVuIGxy
c3BhY2VzIChsLCByKSA9CiAgICAoaWYgbCA9IDAgdGhlbiBLICgpIGVsc2UgQyBQUC5hZGRf
c3RyaW5nIChuc3BhY2VzIGwpLAogICAgIGlmIHIgPSAwIHRoZW4gSyAoKSBlbHNlIEMgUFAu
YWRkX2JyZWFrIChyLCAwKSk7CmluCiAgdmFsIG9wX3NwYWNlcyA9IChscnNwYWNlcyAjIyBJ
KSBvIHNwYWNpZnk7CiAgdmFsIG9wX2NsZWFuICA9IHNuZCAgICAgICAgICAgICBvIHNwYWNp
Znk7CmVuZDsKCnZhbCBvcHRva3MgOiBpbmZpeGl0aWVzIC0+IHN0cmluZyBsaXN0ID0gbWFw
IChmbiB7dG9rLCAuLi59ID0+IG9wX2NsZWFuIHRvayk7CgpmdW4gcGFyc2VfZ2VuX2luZml4
IHVwZGF0ZSBzb2YgdG9rcyBwYXJzZSBpbnAgPQogIGxldAogICAgdmFsIChlLCByZXN0KSA9
IHBhcnNlIGlucAogICAgdmFsIGNvbnRpbnVlID0KICAgICAgY2FzZSByZXN0IG9mIFMuTklM
ID0+IE5PTkUKICAgICAgfCBTLkNPTlMgKGgsIHQpID0+IGlmIG1lbSBoIHRva3MgdGhlbiBT
T01FIChoLCB0KSBlbHNlIE5PTkUKICBpbgogICAgY2FzZSBjb250aW51ZSBvZiBOT05FID0+
IChzb2YgZSwgcmVzdCkKICAgIHwgU09NRSAoaCwgdCkgPT4gcGFyc2VfZ2VuX2luZml4IHVw
ZGF0ZSAodXBkYXRlIHNvZiBoIGUpIHRva3MgcGFyc2UgKHQgKCkpCiAgZW5kOwoKZnVuIHBh
cnNlX2xlZnRfaW5maXggdG9rcyBjb24gPQogIHBhcnNlX2dlbl9pbmZpeCAoZm4gZiA9PiBm
biB0ID0+IGZuIGEgPT4gZm4gYiA9PiBjb24gKHQsIGYgYSwgYikpIEkgdG9rczsKCmZ1biBw
YXJzZV9yaWdodF9pbmZpeCB0b2tzIGNvbiA9CiAgcGFyc2VfZ2VuX2luZml4IChmbiBmID0+
IGZuIHQgPT4gZm4gYSA9PiBmbiBiID0+IGYgKGNvbiAodCwgYSwgYikpKSBJIHRva3M7Cgpm
dW4gcGFyc2VfaW5maXhlcyBvcHMgPQogIGxldAogICAgdmFsIGxheWVyZWRvcHMgPSBtYXAg
KEkgIyMgbWFwIG9wX2NsZWFuKSAobGF5ZXJvcHMgb3BzKQogICAgZnVuIGlwYXJzZXIgKGEs
IHQpID0gKGlmIGEgdGhlbiBwYXJzZV9sZWZ0X2luZml4IGVsc2UgcGFyc2VfcmlnaHRfaW5m
aXgpIHQKICAgIHZhbCBpcGFyc2VycyA9IG1hcCBpcGFyc2VyIGxheWVyZWRvcHMKICBpbgog
ICAgZm4gY29uID0+IGZuIHN1YnBhcnNlciA9PiBmb2xkbCAoZm4gKHAsIHNwKSA9PiBwIGNv
biBzcCkgc3VicGFyc2VyIGlwYXJzZXJzCiAgZW5kOwoKZnVuIHBwX2dlbl9pbmZpeCBsZWZ0
IHRva3MgOiAnYSBkZXMgLT4gJ2EgaXByaW50ZXIgLT4gJ2EgaXByaW50ZXIgPQogIGxldAog
ICAgdmFsIHNwYyA9IG1hcCBvcF9zcGFjZXMgdG9rcwogIGluCiAgICBmbiBkZXN0ID0+IGZu
IHBwX3N1YiA9PgogICAgbGV0CiAgICAgIGZ1biBkZXN0JyB0bSA9CiAgICAgICAgY2FzZSBk
ZXN0IHRtIG9mIE5PTkUgPT4gTk9ORQogICAgICAgIHwgU09NRSAodCwgYSwgYikgPT4gb21h
cCAocGFpciAoYSwgYikpIChMaXN0LmZpbmQgKGVxdWFsIHQgbyBzbmQpIHNwYykKICAgICAg
b3BlbiBQUAogICAgICBmdW4gcHBfZ28gcHAgKHRtciBhcyAodG0sIHIpKSA9CiAgICAgICAg
Y2FzZSBkZXN0JyB0bSBvZiBOT05FID0+IHBwX3N1YiBwcCB0bXIKICAgICAgICB8IFNPTUUg
KChhLCBiKSwgKChsc3BjLCByc3BjKSwgdG9rKSkKICAgICAgICAgID0+ICgoaWYgbGVmdCB0
aGVuIHBwX2dvIGVsc2UgcHBfc3ViKSBwcCAoYSwgdHJ1ZSk7CiAgICAgICAgICAgICAgbHNw
YyBwcDsgYWRkX3N0cmluZyBwcCB0b2s7IHJzcGMgcHA7CiAgICAgICAgICAgICAgKGlmIGxl
ZnQgdGhlbiBwcF9zdWIgZWxzZSBwcF9nbykgcHAgKGIsIHIpKQogICAgaW4KICAgICAgZm4g
cHAgPT4gZm4gdG1yIGFzICh0bSwgXykgPT4KICAgICAgY2FzZSBkZXN0JyB0bSBvZiBOT05F
ID0+IHBwX3N1YiBwcCB0bXIKICAgICAgfCBTT01FIF8gPT4gKGJlZ2luX2Jsb2NrIHBwIElO
Q09OU0lTVEVOVCAwOyBwcF9nbyBwcCB0bXI7IGVuZF9ibG9jayBwcCkKICAgIGVuZAogIGVu
ZDsKCmZ1biBwcF9sZWZ0X2luZml4IHRva3MgPSBwcF9nZW5faW5maXggdHJ1ZSB0b2tzOwoK
ZnVuIHBwX3JpZ2h0X2luZml4IHRva3MgPSBwcF9nZW5faW5maXggZmFsc2UgdG9rczsKCmZ1
biBwcF9pbmZpeGVzIG9wcyA9CiAgbGV0CiAgICB2YWwgbGF5ZXJlZG9wcyA9IGxheWVyb3Bz
IG9wcwogICAgdmFsIHRva3MgPSBMaXN0LmNvbmNhdCAobWFwIChtYXAgb3BfY2xlYW4gbyBz
bmQpIGxheWVyZWRvcHMpCiAgICBmdW4gaXByaW50ZXIgKGEsIHQpID0gKGlmIGEgdGhlbiBw
cF9sZWZ0X2luZml4IGVsc2UgcHBfcmlnaHRfaW5maXgpIHQKICAgIHZhbCBpcHJpbnRlcnMg
PSBtYXAgaXByaW50ZXIgbGF5ZXJlZG9wcwogIGluCiAgICBmbiBkZXN0ID0+IGZuIHBwX3N1
YiA9PgogICAgbGV0CiAgICAgIGZ1biBwcmludGVyIHN1YiA9IGZvbGRsIChmbiAoaXAsIHAp
ID0+IGlwIGRlc3QgcCkgc3ViIGlwcmludGVycwogICAgICBmdW4gaXNfb3AgdCA9IGNhc2Ug
ZGVzdCB0IG9mIFNPTUUgKHgsIF8sIF8pID0+IG1lbSB4IHRva3MgfCBfID0+IGZhbHNlCiAg
ICAgIG9wZW4gUFAKICAgICAgZnVuIHN1YnByIHBwICh0bXIgYXMgKHRtLCBfKSkgPQogICAg
ICAgIGlmIGlzX29wIHRtIHRoZW4KICAgICAgICAgIChiZWdpbl9ibG9jayBwcCBJTkNPTlNJ
U1RFTlQgMTsgYWRkX3N0cmluZyBwcCAiKCI7CiAgICAgICAgICAgcHJpbnRlciBzdWJwciBw
cCAodG0sIGZhbHNlKTsgYWRkX3N0cmluZyBwcCAiKSI7IGVuZF9ibG9jayBwcCkKICAgICAg
ICBlbHNlIHBwX3N1YiBwcCB0bXIKICAgIGluCiAgICAgIGZuIHBwID0+IGZuIHRtciA9Pgog
ICAgICAoYmVnaW5fYmxvY2sgcHAgSU5DT05TSVNURU5UIDA7IHByaW50ZXIgc3VicHIgcHAg
dG1yOyBlbmRfYmxvY2sgcHApCiAgICBlbmQKICBlbmQ7CgooKiAtLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tICopCigqIExleGluZy4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKikKKCogLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LSAqKQoKdmFsIHNwYWNlID0gQ2hhci5pc1NwYWNlOwp2YWwgZGlnaXQgPSBDaGFyLmlzRGln
aXQ7CnZhbCBsb3dlciA9IENoYXIuaXNMb3dlcjsKdmFsIHVwcGVyID0gQ2hhci5pc1VwcGVy
Owp2YWwgYWxwaGEgPSBDaGFyLmlzQWxwaGE7CnZhbCBhbHBoYW51bSA9IGZuIGMgPT4gYWxw
aGEgYyBvcmVsc2UgZGlnaXQgYyBvcmVsc2UgYyA9ICMiJyIgb3JlbHNlIGMgPSAjIl8iOwp2
YWwgc3ltYm9sID0gQ2hhci5jb250YWlucyAiPD49LSorL1xcP0B8ISQlJn4jXjoiOwp2YWwg
cHVuY3QgPSBDaGFyLmNvbnRhaW5zICIoKVtde30uLDsiOwoKKCogLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLSAqKQooKiBRdW90YXRpb25zLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopCigqIC0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0gKikKCnR5cGUgJ2EgcXVvdGF0aW9uID0gJ2EgZnJhZyBsaXN0OwoKZnVuIHF1b3RhdGlv
bl9wYXJzZXIgcGFyc2VyIHBwX2EgPQogIGxldCB2YWwgZiA9IFBQLnBwX3RvX3N0cmluZyAo
IUxJTkVfTEVOR1RIKSBwcF9hCiAgaW4gcGFyc2VyIG8gZm9sZGwgKGZuIChRVU9URSBxLCBz
KSA9PiBzIF4gcSB8IChBTlRJUVVPVEUgYSwgcykgPT4gcyBeIGYgYSkgIiIKICBlbmQ7Cgpl
bmQKKCojbGluZSAwLjAgImZvbC9UZXJtMS5zaWciKikKKCogPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PSAqKQooKiBCQVNJQyBGSVJTVC1PUkRFUiBMT0dJQyBNQU5JUFVMQVRJT05TICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICopCigqIENyZWF0ZWQgYnkgSm9lIEh1cmQs
IFNlcHRlbWJlciAyMDAxICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
KikKKCogUGFydGx5IHBvcnRlZCBmcm9tIHRoZSBDQU1MLUxpZ2h0IGNvZGUgYWNjb21wYW55
aW5nIEpvaG4gSGFycmlzb24ncyBib29rICAqKQooKiA9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICop
CgpzaWduYXR1cmUgVGVybTEgPQpzaWcKCnR5cGUgJ2EgcHAgICAgICAgICAgID0gJ2EgVXNl
ZnVsLnBwCnR5cGUgKCdhLCAnYikgbWFwbGV0ID0gKCdhLCAnYikgVXNlZnVsLm1hcGxldAp0
eXBlICdhIHF1b3RhdGlvbiAgICA9ICdhIFBhcnNlci5xdW90YXRpb24KdHlwZSBpbmZpeGl0
aWVzICAgICAgPSBQYXJzZXIuaW5maXhpdGllcwoKKCogRGF0YXR5cGVzIGZvciB0ZXJtcyBh
bmQgZm9ybXVsYXMgKikKZGF0YXR5cGUgdGVybSA9CiAgVmFyIG9mIHN0cmluZwp8IEZuICBv
ZiBzdHJpbmcgKiB0ZXJtIGxpc3QKCmRhdGF0eXBlIGZvcm11bGEgPQogIFRydWUKfCBGYWxz
ZQp8IEF0b20gICBvZiB0ZXJtCnwgTm90ICAgIG9mIGZvcm11bGEKfCBBbmQgICAgb2YgZm9y
bXVsYSAqIGZvcm11bGEKfCBPciAgICAgb2YgZm9ybXVsYSAqIGZvcm11bGEKfCBJbXAgICAg
b2YgZm9ybXVsYSAqIGZvcm11bGEKfCBJZmYgICAgb2YgZm9ybXVsYSAqIGZvcm11bGEKfCBG
b3JhbGwgb2Ygc3RyaW5nICogZm9ybXVsYQp8IEV4aXN0cyBvZiBzdHJpbmcgKiBmb3JtdWxh
CgooKiBDb250cnVjdG9ycyBhbmQgZGVzdHJ1Y3RvcnMgKikKdmFsIGRlc3RfdmFyICAgICAg
ICA6IHRlcm0gLT4gc3RyaW5nCnZhbCBpc192YXIgICAgICAgICAgOiB0ZXJtIC0+IGJvb2wK
CnZhbCBkZXN0X2ZuICAgICAgICAgOiB0ZXJtIC0+IHN0cmluZyAqIHRlcm0gbGlzdAp2YWwg
aXNfZm4gICAgICAgICAgIDogdGVybSAtPiBib29sCnZhbCBmbl9uYW1lICAgICAgICAgOiB0
ZXJtIC0+IHN0cmluZwp2YWwgZm5fYXJncyAgICAgICAgIDogdGVybSAtPiB0ZXJtIGxpc3QK
dmFsIGZuX2FyaXR5ICAgICAgICA6IHRlcm0gLT4gaW50CnZhbCBmbl9mdW5jdGlvbiAgICAg
OiB0ZXJtIC0+IHN0cmluZyAqIGludAoKdmFsIG1rX2NvbnN0ICAgICAgICA6IHN0cmluZyAt
PiB0ZXJtCnZhbCBkZXN0X2NvbnN0ICAgICAgOiB0ZXJtIC0+IHN0cmluZwp2YWwgaXNfY29u
c3QgICAgICAgIDogdGVybSAtPiBib29sCgp2YWwgbWtfYmlub3AgICAgICAgIDogc3RyaW5n
IC0+IHRlcm0gKiB0ZXJtIC0+IHRlcm0KdmFsIGRlc3RfYmlub3AgICAgICA6IHN0cmluZyAt
PiB0ZXJtIC0+IHRlcm0gKiB0ZXJtCnZhbCBpc19iaW5vcCAgICAgICAgOiBzdHJpbmcgLT4g
dGVybSAtPiBib29sCgp2YWwgZGVzdF9hdG9tICAgICAgIDogZm9ybXVsYSAtPiB0ZXJtCnZh
bCBpc19hdG9tICAgICAgICAgOiBmb3JtdWxhIC0+IGJvb2wKCnZhbCBsaXN0X21rX2Nvbmog
ICAgOiBmb3JtdWxhIGxpc3QgLT4gZm9ybXVsYQp2YWwgc3RyaXBfY29uaiAgICAgIDogZm9y
bXVsYSAtPiBmb3JtdWxhIGxpc3QKdmFsIGZsYXR0ZW5fY29uaiAgICA6IGZvcm11bGEgLT4g
Zm9ybXVsYSBsaXN0Cgp2YWwgbGlzdF9ta19kaXNqICAgIDogZm9ybXVsYSBsaXN0IC0+IGZv
cm11bGEKdmFsIHN0cmlwX2Rpc2ogICAgICA6IGZvcm11bGEgLT4gZm9ybXVsYSBsaXN0CnZh
bCBmbGF0dGVuX2Rpc2ogICAgOiBmb3JtdWxhIC0+IGZvcm11bGEgbGlzdAoKdmFsIGxpc3Rf
bWtfZm9yYWxsICA6IHN0cmluZyBsaXN0ICogZm9ybXVsYSAtPiBmb3JtdWxhCnZhbCBzdHJp
cF9mb3JhbGwgICAgOiBmb3JtdWxhIC0+IHN0cmluZyBsaXN0ICogZm9ybXVsYQoKdmFsIGxp
c3RfbWtfZXhpc3RzICA6IHN0cmluZyBsaXN0ICogZm9ybXVsYSAtPiBmb3JtdWxhCnZhbCBz
dHJpcF9leGlzdHMgICAgOiBmb3JtdWxhIC0+IHN0cmluZyBsaXN0ICogZm9ybXVsYQoKKCog
TmV3IHZhcmlhYmxlcyAqKQp2YWwgbmV3X3ZhciAgOiB1bml0IC0+IHRlcm0KdmFsIG5ld192
YXJzIDogaW50IC0+IHRlcm0gbGlzdAoKKCogU2l6ZXMgb2YgdGVybXMgYW5kIGZvcm11bGFz
ICopCnZhbCB0ZXJtX3NpemUgICAgOiB0ZXJtIC0+IGludAp2YWwgZm9ybXVsYV9zaXplIDog
Zm9ybXVsYSAtPiBpbnQKCigqIFRvdGFsIGNvbXBhcmlzb24gZnVuY3Rpb25zIGZvciB0ZXJt
cyBhbmQgZm9ybXVsYXMgKikKdmFsIHRlcm1fY29tcGFyZSAgICA6IHRlcm0gKiB0ZXJtIC0+
IG9yZGVyCnZhbCBmb3JtdWxhX2NvbXBhcmUgOiBmb3JtdWxhICogZm9ybXVsYSAtPiBvcmRl
cgoKKCogT3BlcmF0aW9ucyBvbiBsaXRlcmFscyAqKQp2YWwgbWtfbGl0ZXJhbCAgIDogYm9v
bCAqIGZvcm11bGEgLT4gZm9ybXVsYQp2YWwgZGVzdF9saXRlcmFsIDogZm9ybXVsYSAtPiBi
b29sICogZm9ybXVsYQp2YWwgaXNfbGl0ZXJhbCAgIDogZm9ybXVsYSAtPiBib29sCnZhbCBs
aXRlcmFsX2F0b20gOiBmb3JtdWxhIC0+IGZvcm11bGEKCigqIE9wZXJhdGlvbnMgb24gZm9y
bXVsYSBuZWdhdGlvbnMgKikKdmFsIG5lZ2F0aXZlIDogZm9ybXVsYSAtPiBib29sCnZhbCBw
b3NpdGl2ZSA6IGZvcm11bGEgLT4gYm9vbAp2YWwgbmVnYXRlICAgOiBmb3JtdWxhIC0+IGZv
cm11bGEKCigqIEZ1bmN0aW9ucyBhbmQgcmVsYXRpb25zIGluIGEgZm9ybXVsYSAqKQp2YWwg
ZnVuY3Rpb25zICAgICAgOiBmb3JtdWxhIC0+IChzdHJpbmcgKiBpbnQpIGxpc3QKdmFsIGZ1
bmN0aW9uX25hbWVzIDogZm9ybXVsYSAtPiBzdHJpbmcgbGlzdAp2YWwgcmVsYXRpb25zICAg
ICAgOiBmb3JtdWxhIC0+IChzdHJpbmcgKiBpbnQpIGxpc3QKdmFsIHJlbGF0aW9uX25hbWVz
IDogZm9ybXVsYSAtPiBzdHJpbmcgbGlzdAoKKCogVGhlIGVxdWFsaXR5IHJlbGF0aW9uIGhh
cyBhIHNwZWNpYWwgc3RhdHVzICopCnZhbCBlcV9yZWwgICAgICAgICAgOiBzdHJpbmcgKiBp
bnQKdmFsIG1rX2VxICAgICAgICAgICA6IHRlcm0gKiB0ZXJtIC0+IGZvcm11bGEKdmFsIGRl
c3RfZXEgICAgICAgICA6IGZvcm11bGEgLT4gdGVybSAqIHRlcm0KdmFsIGlzX2VxICAgICAg
ICAgICA6IGZvcm11bGEgLT4gYm9vbAp2YWwgbGhzICAgICAgICAgICAgIDogZm9ybXVsYSAt
PiB0ZXJtCnZhbCByaHMgICAgICAgICAgICAgOiBmb3JtdWxhIC0+IHRlcm0KdmFsIGVxX29j
Y3VycyAgICAgICA6IGZvcm11bGEgLT4gYm9vbAp2YWwgcmVsYXRpb25zX25vX2VxIDogZm9y
bXVsYSAtPiAoc3RyaW5nICogaW50KSBsaXN0CgooKiBGcmVlIHZhcmlhYmxlcyAqKQp2YWwg
RlZUICAgICAgICA6IHRlcm0gLT4gc3RyaW5nIGxpc3QKdmFsIEZWICAgICAgICAgOiBmb3Jt
dWxhIC0+IHN0cmluZyBsaXN0CnZhbCBGVkwgICAgICAgIDogZm9ybXVsYSBsaXN0IC0+IHN0
cmluZyBsaXN0CnZhbCBzcGVjaWFsaXplIDogZm9ybXVsYSAtPiBmb3JtdWxhCnZhbCBnZW5l
cmFsaXplIDogZm9ybXVsYSAtPiBmb3JtdWxhCgooKiBTdWJ0ZXJtcyAqKQp2YWwgc3VidGVy
bSAgICAgICAgIDogaW50IGxpc3QgLT4gdGVybSAtPiB0ZXJtCnZhbCByZXdyaXRlICAgICAg
ICAgOiAoaW50IGxpc3QsIHRlcm0pIG1hcGxldCAtPiB0ZXJtIC0+IHRlcm0KdmFsIGxpdGVy
YWxfc3VidGVybSA6IGludCBsaXN0IC0+IGZvcm11bGEgLT4gdGVybQp2YWwgbGl0ZXJhbF9y
ZXdyaXRlIDogKGludCBsaXN0LCB0ZXJtKSBtYXBsZXQgLT4gZm9ybXVsYSAtPiBmb3JtdWxh
CgooKiBUaGUgS251dGgtQmVuZGl4IG9yZGVyaW5nICopCnR5cGUgV2VpZ2h0ID0gc3RyaW5n
ICogaW50IC0+IGludAp0eXBlIFByZWMgICA9IChzdHJpbmcgKiBpbnQpICogKHN0cmluZyAq
IGludCkgLT4gb3JkZXIKdmFsIGtiX3dlaWdodCAgOiBXZWlnaHQgLT4gdGVybSAtPiBpbnQg
KiBzdHJpbmcgTXVsdGlzZXQubXNldAp2YWwga2JfY29tcGFyZSA6IFdlaWdodCAtPiBQcmVj
IC0+IHRlcm0gKiB0ZXJtIC0+IG9yZGVyIG9wdGlvbgoKKCogQSBkYXRhdHlwZSB0byBhbnRp
cXVvdGUgYm90aCB0ZXJtcyBhbmQgZm9ybXVsYXMgKikKZGF0YXR5cGUgdGhpbmcgPSBUZXJt
IG9mIHRlcm0gfCBGb3JtdWxhIG9mIGZvcm11bGE7CgooKiBPcGVyYXRvcnMgcGFyc2VkIGFu
ZCBwcmludGVkIGluZml4ICopCnZhbCBpbmZpeGVzIDogaW5maXhpdGllcyByZWYKCigqIERl
Y2lkaW5nIHdoZXRoZXIgYSBzdHJpbmcgZGVub3RlcyBhIHZhcmlhYmxlIG9yIGNvbnN0YW50
ICopCnZhbCB2YXJfc3RyaW5nIDogKHN0cmluZyAtPiBib29sKSByZWYKCigqIFBhcnNpbmcg
KikKdmFsIHN0cmluZ190b190ZXJtJyAgICA6IGluZml4aXRpZXMgLT4gc3RyaW5nIC0+IHRl
cm0gICgqIHB1cmVseSBmdW5jdGlvbmFsICopCnZhbCBzdHJpbmdfdG9fZm9ybXVsYScgOiBp
bmZpeGl0aWVzIC0+IHN0cmluZyAtPiBmb3JtdWxhCnZhbCBwYXJzZV90ZXJtJyAgICAgICAg
OiBpbmZpeGl0aWVzIC0+IHRoaW5nIHF1b3RhdGlvbiAtPiB0ZXJtCnZhbCBwYXJzZV9mb3Jt
dWxhJyAgICAgOiBpbmZpeGl0aWVzIC0+IHRoaW5nIHF1b3RhdGlvbiAtPiBmb3JtdWxhCnZh
bCBzdHJpbmdfdG9fdGVybSAgICAgOiBzdHJpbmcgLT4gdGVybSAgICAgICAgICAgICAgICAo
KiB1c2luZyAhaW5maXhlcyAqKQp2YWwgc3RyaW5nX3RvX2Zvcm11bGEgIDogc3RyaW5nIC0+
IGZvcm11bGEKdmFsIHBhcnNlX3Rlcm0gICAgICAgICA6IHRoaW5nIHF1b3RhdGlvbiAtPiB0
ZXJtCnZhbCBwYXJzZV9mb3JtdWxhICAgICAgOiB0aGluZyBxdW90YXRpb24gLT4gZm9ybXVs
YQoKKCogUHJldHR5LXByaW50aW5nICopCnZhbCBwcF90ZXJtJyAgICAgICAgICAgOiBpbmZp
eGl0aWVzIC0+IHRlcm0gcHAgICAgICAgICAoKiBwdXJlbHkgZnVuY3Rpb25hbCAqKQp2YWwg
cHBfZm9ybXVsYScgICAgICAgIDogaW5maXhpdGllcyAtPiBmb3JtdWxhIHBwCnZhbCB0ZXJt
X3RvX3N0cmluZycgICAgOiBpbmZpeGl0aWVzIC0+IGludCAtPiB0ZXJtIC0+IHN0cmluZwp2
YWwgZm9ybXVsYV90b19zdHJpbmcnIDogaW5maXhpdGllcyAtPiBpbnQgLT4gZm9ybXVsYSAt
PiBzdHJpbmcKdmFsIHBwX3Rlcm0gICAgICAgICAgICA6IHRlcm0gcHAgICAgICAgICAgICAg
ICAgICAgICAgICgqIHVzaW5nICFpbmZpeGVzICAgKikKdmFsIHBwX2Zvcm11bGEgICAgICAg
ICA6IGZvcm11bGEgcHAgICAgICAgICAgICAgICAgICAgICgqIGFuZCAhTElORV9MRU5HVEgg
KikKdmFsIHRlcm1fdG9fc3RyaW5nICAgICA6IHRlcm0gLT4gc3RyaW5nCnZhbCBmb3JtdWxh
X3RvX3N0cmluZyAgOiBmb3JtdWxhIC0+IHN0cmluZwoKZW5kCigqI2xpbmUgMC4wICJmb2wv
VGVybTEuc21sIiopCigqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKikKKCogQkFTSUMgRklSU1Qt
T1JERVIgTE9HSUMgTUFOSVBVTEFUSU9OUyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAqKQooKiBDcmVhdGVkIGJ5IEpvZSBIdXJkLCBTZXB0ZW1iZXIgMjAwMSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopCigqIFBhcnRseSBwb3J0ZWQg
ZnJvbSB0aGUgQ0FNTC1MaWdodCBjb2RlIGFjY29tcGFueWluZyBKb2huIEhhcnJpc29uJ3Mg
Ym9vayAgKikKKCogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqKQoKKCoKYXBwIGxvYWQgWyJVc2Vm
dWwiLCAiU3RyZWFtIiwgIlBhcnNlciIsICJNb3NtbCIsICJCaW5hcnltYXAiXTsKKikKCigq
CiopCnN0cnVjdHVyZSBUZXJtMSA6PiBUZXJtMSA9CnN0cnVjdAoKb3BlbiBQYXJzZXIgVXNl
ZnVsOwoKaW5maXhyIDggKys7CmluZml4ciA3ID4+OwppbmZpeHIgNiB8fDsKaW5maXhyIHwt
PiA6Oj4gQD4gb28gIyM7CgooKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICopCigqIERhdGF0eXBl
cyBmb3Igc3RvcmluZyBmaXJzdC1vcmRlciB0ZXJtcyBhbmQgZm9ybXVsYXMuICAgICAgICAg
ICAgICAgICAgICAgKikKKCogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqKQoKZGF0YXR5cGUgdGVy
bSA9CiAgVmFyIG9mIHN0cmluZwp8IEZuICBvZiBzdHJpbmcgKiB0ZXJtIGxpc3Q7CgpkYXRh
dHlwZSBmb3JtdWxhID0KICBUcnVlCnwgRmFsc2UKfCBBdG9tICAgb2YgdGVybQp8IE5vdCAg
ICBvZiBmb3JtdWxhCnwgQW5kICAgIG9mIGZvcm11bGEgKiBmb3JtdWxhCnwgT3IgICAgIG9m
IGZvcm11bGEgKiBmb3JtdWxhCnwgSW1wICAgIG9mIGZvcm11bGEgKiBmb3JtdWxhCnwgSWZm
ICAgIG9mIGZvcm11bGEgKiBmb3JtdWxhCnwgRm9yYWxsIG9mIHN0cmluZyAqIGZvcm11bGEK
fCBFeGlzdHMgb2Ygc3RyaW5nICogZm9ybXVsYTsKCigqIC0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0g
KikKKCogQ29uc3RydWN0b3JzIGFuZCBkZXN0cnVjdG9ycy4gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAqKQooKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICop
CgooKiBWYXJpYWJsZXMgKikKCmZ1biBkZXN0X3ZhciAoVmFyIHYpID0gdgogIHwgZGVzdF92
YXIgKEZuIF8pID0gcmFpc2UgRVJSICJkZXN0X3ZhciIgIiI7Cgp2YWwgaXNfdmFyID0gY2Fu
IGRlc3RfdmFyOwoKKCogRnVuY3Rpb25zICopCgpmdW4gZGVzdF9mbiAoRm4gZikgPSBmCiAg
fCBkZXN0X2ZuIChWYXIgXykgPSByYWlzZSBFUlIgImRlc3RfZm4iICIiOwoKdmFsIGlzX2Zu
ID0gY2FuIGRlc3RfZm47Cgp2YWwgZm5fbmFtZSA9IGZzdCBvIGRlc3RfZm47Cgp2YWwgZm5f
YXJncyA9IHNuZCBvIGRlc3RfZm47Cgp2YWwgZm5fYXJpdHkgPSBsZW5ndGggbyBmbl9hcmdz
OwoKZnVuIGZuX2Z1bmN0aW9uIHRtID0gKGZuX25hbWUgdG0sIGZuX2FyaXR5IHRtKTsKCigq
IENvbnN0YW50cyAqKQoKZnVuIG1rX2NvbnN0IGMgPSAoRm4gKGMsIFtdKSk7CgpmdW4gZGVz
dF9jb25zdCAoRm4gKGMsIFtdKSkgPSBjCiAgfCBkZXN0X2NvbnN0IF8gPSByYWlzZSBFUlIg
ImRlc3RfY29uc3QiICIiOwoKdmFsIGlzX2NvbnN0ID0gY2FuIGRlc3RfY29uc3Q7CgooKiBC
aW5hcnkgZnVuY3Rpb25zICopCgpmdW4gbWtfYmlub3AgZiAoYSwgYikgPSBGbiAoZiwgW2Es
IGJdKTsKCmZ1biBkZXN0X2Jpbm9wIGYgKEZuICh4LCBbYSwgYl0pKSA9CiAgaWYgeCA9IGYg
dGhlbiAoYSwgYikgZWxzZSByYWlzZSBFUlIgImRlc3RfYmlub3AiICJ3cm9uZyBiaW5vcCIK
ICB8IGRlc3RfYmlub3AgXyBfID0gcmFpc2UgRVJSICJkZXN0X2Jpbm9wIiAibm90IGEgYmlu
b3AiOwoKZnVuIGlzX2Jpbm9wIGYgPSBjYW4gKGRlc3RfYmlub3AgZik7CgooKiBBdG9tcyAq
KQoKZnVuIGRlc3RfYXRvbSAoQXRvbSBhKSA9IGEKICB8IGRlc3RfYXRvbSBfID0gcmFpc2Ug
RVJSICJkZXN0X2F0b20iICIiOwoKdmFsIGlzX2F0b20gPSBjYW4gZGVzdF9hdG9tOwoKKCog
Q29uanVuY3Rpb25zICopCgpmdW4gbGlzdF9ta19jb25qIGwgPSAoY2FzZSByZXYgbCBvZiBb
XSA9PiBUcnVlIHwgaCA6OiB0ID0+IGZvbGRsIEFuZCBoIHQpOwoKbG9jYWwKICBmdW4gY29u
aiBjcyAoQW5kIChhLCBiKSkgPSBjb25qIChhIDo6IGNzKSBiCiAgICB8IGNvbmogY3MgZm0g
PSByZXYgKGZtIDo6IGNzKTsKaW4KICBmdW4gc3RyaXBfY29uaiBUcnVlID0gW10KICAgIHwg
c3RyaXBfY29uaiBmbSA9IGNvbmogW10gZm07CmVuZDsKCnZhbCBmbGF0dGVuX2NvbmogPQog
IGxldAogICAgZnVuIGZsYXQgYWNjIFtdICAgICAgICAgICAgICAgICAgPSBhY2MKICAgICAg
fCBmbGF0IGFjYyAoQW5kIChwLCBxKSA6OiBmbXMpID0gZmxhdCBhY2MgKHEgOjogcCA6OiBm
bXMpCiAgICAgIHwgZmxhdCBhY2MgKFRydWUgICAgICAgOjogZm1zKSA9IGZsYXQgYWNjIGZt
cwogICAgICB8IGZsYXQgYWNjIChmbSAgICAgICAgIDo6IGZtcykgPSBmbGF0IChmbSA6OiBh
Y2MpIGZtcwogIGluCiAgICBmbiBmbSA9PiBmbGF0IFtdIFtmbV0KICBlbmQ7CgooKiBEaXNq
dW5jdGlvbnMgKikKCmZ1biBsaXN0X21rX2Rpc2ogbCA9IChjYXNlIHJldiBsIG9mIFtdID0+
IEZhbHNlIHwgaCA6OiB0ID0+IGZvbGRsIE9yIGggdCk7Cgpsb2NhbAogIGZ1biBkaXNqIGNz
IChPciAoYSwgYikpID0gZGlzaiAoYSA6OiBjcykgYgogICAgfCBkaXNqIGNzIGZtID0gcmV2
IChmbSA6OiBjcyk7CmluCiAgZnVuIHN0cmlwX2Rpc2ogRmFsc2UgPSBbXQogICAgfCBzdHJp
cF9kaXNqIGZtID0gZGlzaiBbXSBmbTsKZW5kOwoKdmFsIGZsYXR0ZW5fZGlzaiA9CiAgbGV0
CiAgICBmdW4gZmxhdCBhY2MgW10gICAgICAgICAgICAgICAgID0gYWNjCiAgICAgIHwgZmxh
dCBhY2MgKE9yIChwLCBxKSA6OiBmbXMpID0gZmxhdCBhY2MgKHEgOjogcCA6OiBmbXMpCiAg
ICAgIHwgZmxhdCBhY2MgKEZhbHNlICAgICA6OiBmbXMpID0gZmxhdCBhY2MgZm1zCiAgICAg
IHwgZmxhdCBhY2MgKGZtICAgICAgICA6OiBmbXMpID0gZmxhdCAoZm0gOjogYWNjKSBmbXMK
ICBpbgogICAgZm4gZm0gPT4gZmxhdCBbXSBbZm1dCiAgZW5kOwoKKCogVW5pdmVyc2FsIHF1
YW50aWZpZXJzICopCgpmdW4gbGlzdF9ta19mb3JhbGwgKFtdLCBib2R5KSA9IGJvZHkKICB8
IGxpc3RfbWtfZm9yYWxsICh2IDo6IHZzLCBib2R5KSA9IEZvcmFsbCAodiwgbGlzdF9ta19m
b3JhbGwgKHZzLCBib2R5KSk7Cgpsb2NhbAogIGZ1biBkZXN0IHZzIChGb3JhbGwgKHYsIGIp
KSA9IGRlc3QgKHYgOjogdnMpIGIKICAgIHwgZGVzdCB2cyB0bSA9IChyZXYgdnMsIHRtKTsK
aW4KICB2YWwgc3RyaXBfZm9yYWxsID0gZGVzdCBbXTsKZW5kOwoKKCogRXhpc3RlbnRpYWwg
cXVhbnRpZmllcnMgKikKCmZ1biBsaXN0X21rX2V4aXN0cyAoW10sIGJvZHkpID0gYm9keQog
IHwgbGlzdF9ta19leGlzdHMgKHYgOjogdnMsIGJvZHkpID0gRXhpc3RzICh2LCBsaXN0X21r
X2V4aXN0cyAodnMsIGJvZHkpKTsKCmxvY2FsCiAgZnVuIGRlc3QgdnMgKEV4aXN0cyAodiwg
YikpID0gZGVzdCAodiA6OiB2cykgYgogICAgfCBkZXN0IHZzIHRtID0gKHJldiB2cywgdG0p
OwppbgogIHZhbCBzdHJpcF9leGlzdHMgPSBkZXN0IFtdOwplbmQ7CgooKiAtLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tICopCigqIEEgZGF0YXR5cGUgdG8gYW50aXF1b3RlIGJvdGggdGVybXMgYW5k
IGZvcm11bGFzLiAgICAgICAgICAgICAgICAgICAgICAgICAgKikKKCogLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLSAqKQoKZGF0YXR5cGUgdGhpbmcgPSBUZXJtIG9mIHRlcm0gfCBGb3JtdWxhIG9m
IGZvcm11bGE7CgooKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICopCigqIEJ1aWx0LWluIGluZml4
IG9wZXJhdG9ycyBhbmQgcmVzZXJ2ZWQgc3ltYm9scy4gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgKikKKCogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqKQoKdmFsIGluZml4ZXMgOiBpbmZp
eGl0aWVzIHJlZiA9IHJlZgogIFsoKiBNTCBzdHlsZSAqKQogICB7dG9rID0gIiAvICIsICAg
cHJlYyA9IDcsICBsZWZ0X2Fzc29jID0gdHJ1ZX0sCiAgIHt0b2sgPSAiIGRpdiAiLCBwcmVj
ID0gNywgIGxlZnRfYXNzb2MgPSB0cnVlfSwKICAge3RvayA9ICIgbW9kICIsIHByZWMgPSA3
LCAgbGVmdF9hc3NvYyA9IHRydWV9LAogICB7dG9rID0gIiAqICIsICAgcHJlYyA9IDcsICBs
ZWZ0X2Fzc29jID0gdHJ1ZX0sCiAgIHt0b2sgPSAiICsgIiwgICBwcmVjID0gNiwgIGxlZnRf
YXNzb2MgPSB0cnVlfSwKICAge3RvayA9ICIgLSAiLCAgIHByZWMgPSA2LCAgbGVmdF9hc3Nv
YyA9IHRydWV9LAogICB7dG9rID0gIiBeICIsICAgcHJlYyA9IDYsICBsZWZ0X2Fzc29jID0g
dHJ1ZX0sCiAgIHt0b2sgPSAiIEAgIiwgICBwcmVjID0gNSwgIGxlZnRfYXNzb2MgPSBmYWxz
ZX0sCiAgIHt0b2sgPSAiIDo6ICIsICBwcmVjID0gNSwgIGxlZnRfYXNzb2MgPSBmYWxzZX0s
CiAgIHt0b2sgPSAiID0gIiwgICBwcmVjID0gNCwgIGxlZnRfYXNzb2MgPSB0cnVlfSwgICAg
KCogbWF5IGJlIGludGVycHJldGVkICopCiAgIHt0b2sgPSAiID09ICIsICBwcmVjID0gNCwg
IGxlZnRfYXNzb2MgPSB0cnVlfSwgICAgKCogd29uJ3QgYmUgaW50ZXJwcmV0ZWQgKikKICAg
e3RvayA9ICIgPD4gIiwgIHByZWMgPSA0LCAgbGVmdF9hc3NvYyA9IHRydWV9LAogICB7dG9r
ID0gIiA8PSAiLCAgcHJlYyA9IDQsICBsZWZ0X2Fzc29jID0gdHJ1ZX0sCiAgIHt0b2sgPSAi
IDwgIiwgICBwcmVjID0gNCwgIGxlZnRfYXNzb2MgPSB0cnVlfSwKICAge3RvayA9ICIgPj0g
IiwgIHByZWMgPSA0LCAgbGVmdF9hc3NvYyA9IHRydWV9LAogICB7dG9rID0gIiA+ICIsICAg
cHJlYyA9IDQsICBsZWZ0X2Fzc29jID0gdHJ1ZX0sCiAgIHt0b2sgPSAiIG8gIiwgICBwcmVj
ID0gOCwgIGxlZnRfYXNzb2MgPSB0cnVlfSwgICAgKCogTUwgcHJlYyA9IDMgKikKICAgKCog
SE9MIHN0eWxlICopCiAgIHt0b2sgPSAiICUgIiwgICBwcmVjID0gOSwgIGxlZnRfYXNzb2Mg
PSB0cnVlfSwgICAgKCogZnVuY3Rpb24gYXBwbGljYXRpb24gKikKICAge3RvayA9ICIgLT4g
IiwgIHByZWMgPSAyLCAgbGVmdF9hc3NvYyA9IGZhbHNlfSwgICAoKiBIT0wgdHkgcHJlYyA9
IDUwICopCiAgIHt0b2sgPSAiIDogIiwgICBwcmVjID0gMSwgIGxlZnRfYXNzb2MgPSBmYWxz
ZX0sICAgKCogbm90IGluIEhPTCBncmFtbWFycyAqKQogICB7dG9rID0gICIsICIsICAgcHJl
YyA9IDAsICBsZWZ0X2Fzc29jID0gZmFsc2V9LCAgICgqIEhPTCB0bSBwcmVjID0gNTAgKikK
ICAgKCogQ29udmVuaWVudCBhbHRlcm5hdGl2ZSBzeW1ib2xzICopCiAgIHt0b2sgPSAiICoq
ICIsICBwcmVjID0gNywgIGxlZnRfYXNzb2MgPSB0cnVlfSwKICAge3RvayA9ICIgKysgIiwg
IHByZWMgPSA2LCAgbGVmdF9hc3NvYyA9IHRydWV9LAogICB7dG9rID0gIiAtLSAiLCAgcHJl
YyA9IDYsICBsZWZ0X2Fzc29jID0gdHJ1ZX1dOwoKdmFsIGNvbm5lY3RpdmVzID0KICBbe3Rv
ayA9ICIgL1xcICIsIHByZWMgPSB+MSwgbGVmdF9hc3NvYyA9IGZhbHNlfSwKICAge3RvayA9
ICIgXFwvICIsIHByZWMgPSB+MiwgbGVmdF9hc3NvYyA9IGZhbHNlfSwKICAge3RvayA9ICIg
PT0+ICIsIHByZWMgPSB+MywgbGVmdF9hc3NvYyA9IGZhbHNlfSwKICAge3RvayA9ICIgPD0+
ICIsIHByZWMgPSB+NCwgbGVmdF9hc3NvYyA9IGZhbHNlfV07Cgp2YWwgcmVzZXJ2ZWQgPSBb
IiEiLCAiPyIsICIoIiwgIikiLCAiLiIsICJ+Il07CgooKiAtLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
ICopCigqIERlY2lkaW5nIHdoZXRoZXIgYSBzdHJpbmcgZGVub3RlcyBhIHZhcmlhYmxlIG9y
IGNvbnN0YW50LiAgICAgICAgICAgICAgICAgKikKKCogLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAq
KQoKdmFsIHZhcl9zdHJpbmcgPQogIHJlZiAoQyBtZW0gWyMiXyIsIyJ2IiwjInciLCMieCIs
IyJ5IiwjInoiXSBvIENoYXIudG9Mb3dlciBvIGhkIG8gZXhwbG9kZSk7CgooKiAtLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tICopCigqIFByZXR0eS1wcmludGluZy4gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKikKKCogLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLSAqKQoKKCogUHVyZWx5IGZ1bmN0aW9uYWwgcHJldHR5LXByaW50aW5nICop
Cgp2YWwgcHBfdm5hbWUgPQogIHBwX21hcCAoZm4gcyA9PiBpZiAhdmFyX3N0cmluZyBzIHRo
ZW4gcyBlbHNlICJ2YXItPiIgXiBzIF4gIjwtdmFyIikgcHBfc3RyaW5nOwoKdmFsIHBwX2Nu
YW1lID0KICBwcF9tYXAgKGZuIHMgPT4gaWYgIXZhcl9zdHJpbmcgcyB0aGVuICJjb25zdC0+
IiBeIHMgXiAiPC1jb25zdCIgZWxzZSBzKQogIHBwX3N0cmluZzsKCnZhbCBwcF9mbmFtZSA9
CiAgcHBfbWFwIChmbiBzID0+IGlmICF2YXJfc3RyaW5nIHMgdGhlbiAiZm4tPiIgXiBzIF4g
IjwtZm4iIGVsc2UgcykgcHBfc3RyaW5nOwoKZnVuIHBwX3Rlcm0nIG9wcyA9CiAgbGV0CiAg
ICB2YWwgb3BzID0gb3BzIEAgY29ubmVjdGl2ZXMKICAgIHZhbCBpcHJpbnRlciA9IHBwX2lu
Zml4ZXMgb3BzCiAgICB2YWwgaXRva3MgPSBvcHRva3Mgb3BzCiAgICBmdW4gcHBfdW5pbmZp
eCBwcF9zIHBwIHMgPQogICAgICBpZiBtZW0gcyBpdG9rcyB0aGVuIFBQLmFkZF9zdHJpbmcg
cHAgKCIoIiBeIHMgXiAiKSIpIGVsc2UgcHBfcyBwcCBzCiAgICBmdW4gaWRlc3QgKEZuIChm
LCBbYSwgYl0pKSA9IFNPTUUgKGYsIGEsIGIpIHwgaWRlc3QgXyA9IE5PTkUKICAgIGZ1biBp
c19vcCB0ID0gY2FzZSBpZGVzdCB0IG9mIFNPTUUgKGYsIF8sIF8pID0+IG1lbSBmIGl0b2tz
IHwgTk9ORSA9PiBmYWxzZQogICAgZnVuIGlzX3EgKEZuICgiISIsIF8pKSA9IHRydWUgfCBp
c19xIChGbiAoIj8iLCBfKSkgPSB0cnVlIHwgaXNfcSBfID0gZmFsc2UKICAgIGZ1biBuZWdz
IChGbiAoIn4iLCBbYV0pKSA9IChjdXJyeSBvcCsgMSAjIyBJKSAobmVncyBhKSB8IG5lZ3Mg
dG0gPSAoMCwgdG0pCiAgICBmdW4gYmluZHMgcyAodG0gYXMgRm4gKG4sIFtWYXIgdiwgYl0p
KSA9CiAgICAgIGlmIHMgPSBuIHRoZW4gKGNvbnMgdiAjIyBJKSAoYmluZHMgcyBiKSBlbHNl
IChbXSwgdG0pCiAgICAgIHwgYmluZHMgXyB0bSA9IChbXSwgdG0pCiAgICBvcGVuIFBQCiAg
ICBmdW4gYmFzaWMgcHAgKFZhciB2KSA9IHBwX3ZuYW1lIHBwIHYKICAgICAgfCBiYXNpYyBw
cCAoRm4gKGMsIFtdKSkgPSBwcF91bmluZml4IHBwX2NuYW1lIHBwIGMKICAgICAgfCBiYXNp
YyBwcCAoRm4gKGYsIGEpKSA9CiAgICAgIChwcF91bmluZml4IHBwX2ZuYW1lIHBwIGY7CiAg
ICAgICBhcHAgKGZuIHggPT4gKGFkZF9icmVhayBwcCAoMSwgMCk7IGFyZ3VtZW50IHBwIHgp
KSBhKQogICAgYW5kIGFyZ3VtZW50IHBwIHRtID0KICAgICAgaWYgaXNfdmFyIHRtIG9yZWxz
ZSBpc19jb25zdCB0bSB0aGVuIGJhc2ljIHBwIHRtIGVsc2UgcHBfYnRtIHBwIHRtCiAgICBh
bmQgcXVhbnQgcHAgKHRtLCByKSA9CiAgICAgIGxldAogICAgICAgIGZ1biBwciBwcCAoRm4g
KHEsIFtWYXIgdiwgdG1dKSkgPQogICAgICAgICAgbGV0CiAgICAgICAgICAgIHZhbCAodnMs
IGJvZHkpID0gYmluZHMgcSB0bQogICAgICAgICAgaW4KICAgICAgICAgICAgYWRkX3N0cmlu
ZyBwcCBxOwogICAgICAgICAgICBwcF92bmFtZSBwcCB2OwogICAgICAgICAgICBhcHAgKGZu
IGEgPT4gKGFkZF9icmVhayBwcCAoMSwgMCk7IHBwX3ZuYW1lIHBwIGEpKSB2czsKICAgICAg
ICAgICAgYWRkX3N0cmluZyBwcCAiLiI7CiAgICAgICAgICAgIGFkZF9icmVhayBwcCAoMSwg
MCk7CiAgICAgICAgICAgIGlmIGlzX3EgYm9keSB0aGVuIHByIHBwIGJvZHkgZWxzZSBwcF90
bSBwcCAoYm9keSwgZmFsc2UpCiAgICAgICAgICBlbmQKICAgICAgICAgIHwgcHIgcHAgdG0g
PSByYWlzZSBCVUcgInBwX3Rlcm0iICJub3QgYSBxdWFudGlmaWVyIgogICAgICAgIGZ1biBw
cF9xIHBwIHQgPSAoYmVnaW5fYmxvY2sgcHAgSU5DT05TSVNURU5UIDI7IHByIHBwIHQ7IGVu
ZF9ibG9jayBwcCkKICAgICAgaW4KICAgICAgICAoaWYgaXNfcSB0bSB0aGVuIChpZiByIHRo
ZW4gcHBfYnJhY2tldCAoIigiLCAiKSIpIGVsc2UgSSkgcHBfcQogICAgICAgICBlbHNlIGJh
c2ljKSBwcCB0bQogICAgICBlbmQKICAgIGFuZCBtb2xlY3VsZSBwcCAodG0sIHIpID0KICAg
ICAgbGV0CiAgICAgICAgdmFsIChuLCB4KSA9IG5lZ3MgdG0KICAgICAgaW4KICAgICAgICBi
ZWdpbl9ibG9jayBwcCBJTkNPTlNJU1RFTlQgbjsKICAgICAgICBOIG4gKGZuICgpID0+IGFk
ZF9zdHJpbmcgcHAgIn4iKSAoKTsKICAgICAgICBpZiBpc19vcCB4IHRoZW4gcHBfYnRtIHBw
IHggZWxzZSBxdWFudCBwcCAoeCwgcik7CiAgICAgICAgZW5kX2Jsb2NrIHBwCiAgICAgIGVu
ZAogICAgYW5kIHBwX2J0bSBwcCB0bSA9IHBwX2JyYWNrZXQgKCIoIiwgIikiKSBwcF90bSBw
cCAodG0sIGZhbHNlKQogICAgYW5kIHBwX3RtIHBwIHRtciA9IGlwcmludGVyIGlkZXN0IG1v
bGVjdWxlIHBwIHRtcgogIGluCiAgICBwcF9tYXAgKEMgcGFpciBmYWxzZSkgcHBfdG0KICBl
bmQ7Cgpsb2NhbAogIGZ1biBkZW1vdGUgVHJ1ZSAgICAgICAgICAgID0gRm4gKCJUIiwgICBb
XSAgICAgICAgICAgICAgICAgICkKICAgIHwgZGVtb3RlIEZhbHNlICAgICAgICAgICA9IEZu
ICgiRiIsICAgW10gICAgICAgICAgICAgICAgICApCiAgICB8IGRlbW90ZSAoTm90IGEpICAg
ICAgICAgPSBGbiAoIn4iLCAgIFtkZW1vdGUgYV0gICAgICAgICAgKQogICAgfCBkZW1vdGUg
KEFuZCAoYSwgYikpICAgID0gRm4gKCIvXFwiLCBbZGVtb3RlIGEsIGRlbW90ZSBiXSkKICAg
IHwgZGVtb3RlIChPciAgKGEsIGIpKSAgICA9IEZuICgiXFwvIiwgW2RlbW90ZSBhLCBkZW1v
dGUgYl0pCiAgICB8IGRlbW90ZSAoSW1wIChhLCBiKSkgICAgPSBGbiAoIj09PiIsIFtkZW1v
dGUgYSwgZGVtb3RlIGJdKQogICAgfCBkZW1vdGUgKElmZiAoYSwgYikpICAgID0gRm4gKCI8
PT4iLCBbZGVtb3RlIGEsIGRlbW90ZSBiXSkKICAgIHwgZGVtb3RlIChGb3JhbGwgKHYsIGIp
KSA9IEZuICgiISIsICAgW1ZhciB2LCAgICBkZW1vdGUgYl0pCiAgICB8IGRlbW90ZSAoRXhp
c3RzICh2LCBiKSkgPSBGbiAoIj8iLCAgIFtWYXIgdiwgICAgZGVtb3RlIGJdKQogICAgfCBk
ZW1vdGUgKEF0b20gdCkgICAgICAgID0gdDsKaW4KICBmdW4gcHBfZm9ybXVsYScgb3BzID0g
cHBfbWFwIGRlbW90ZSAocHBfdGVybScgb3BzKTsKZW5kOwoKZnVuIHRlcm1fdG9fc3RyaW5n
JyAgICBvcHMgbGVuIHRtID0gUFAucHBfdG9fc3RyaW5nIGxlbiAocHBfdGVybScgICAgb3Bz
KSB0bTsKZnVuIGZvcm11bGFfdG9fc3RyaW5nJyBvcHMgbGVuIGZtID0gUFAucHBfdG9fc3Ry
aW5nIGxlbiAocHBfZm9ybXVsYScgb3BzKSBmbTsKCigqIFByZXR0eS1wcmludGluZyB0aGlu
Z3MgaXMgbmVlZGVkIGZvciBwYXJzaW5nIHRoaW5nIHF1b3RhdGlvbnMgKikKCmZ1biBwcF90
aGluZyBvcHMgcHAgKFRlcm0gdG0pICAgID0gcHBfdGVybScgICAgb3BzIHBwIHRtCiAgfCBw
cF90aGluZyBvcHMgcHAgKEZvcm11bGEgZm0pID0gcHBfZm9ybXVsYScgb3BzIHBwIGZtOwoK
ZnVuIHBwX2JyYWNrZXRlZF90aGluZyBvcHMgcHAgdGggPQogIChQUC5iZWdpbl9ibG9jayBw
cCBQUC5JTkNPTlNJU1RFTlQgMTsgUFAuYWRkX3N0cmluZyBwcCAiKCI7CiAgIHBwX3RoaW5n
IG9wcyBwcCB0aDsgUFAuYWRkX3N0cmluZyBwcCAiKSI7IFBQLmVuZF9ibG9jayBwcCk7Cgoo
KiBQcmV0dHktcHJpbnRpbmcgdXNpbmcgIWluZml4ZXMgYW5kICFMSU5FX0xFTkdUSCAqKQoK
ZnVuIHBwX3Rlcm0gICAgICAgIHBwIHRtID0gcHBfdGVybScgICAgICAgICAgICghaW5maXhl
cykgcHAgICAgICAgICAgICAgdG07CmZ1biBwcF9mb3JtdWxhICAgICBwcCBmbSA9IHBwX2Zv
cm11bGEnICAgICAgICAoIWluZml4ZXMpIHBwICAgICAgICAgICAgIGZtOwpmdW4gdGVybV90
b19zdHJpbmcgICAgdG0gPSB0ZXJtX3RvX3N0cmluZycgICAgKCFpbmZpeGVzKSAoIUxJTkVf
TEVOR1RIKSB0bTsKZnVuIGZvcm11bGFfdG9fc3RyaW5nIGZtID0gZm9ybXVsYV90b19zdHJp
bmcnICghaW5maXhlcykgKCFMSU5FX0xFTkdUSCkgZm07CgooKiAtLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tICopCigqIFBhcnNpbmcuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKikKKCogLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LSAqKQoKKCogTGV4aW5nICopCgp2YWwgbGV4ZXIgPQogIChmbiAoKF8sICh0b2tzLCBfKSks
IF8pID0+IHRva3MpIG8KICAobWFueSAoc29tZSBzcGFjZSkgKysKICAgKG1hbnkKICAgICgo
KChhdGxlYXN0b25lIChzb21lIGFscGhhbnVtKSB8fAogICAgICAgIChzb21lIChmbiBjID0+
IHN5bWJvbCBjIGFuZGFsc28gYyA8PiAjIn4iKSArKyBtYW55IChzb21lIHN5bWJvbCkpID4+
CiAgICAgICAgb3AgOjopID4+IGltcGxvZGUKICAgICAgIHx8IHNvbWUgKGZuIGMgPT4gYyA9
ICMifiIgb3JlbHNlIHB1bmN0IGMpID4+IHN0cikgKysKICAgICAgbWFueSAoc29tZSBzcGFj
ZSkpID4+IGZzdCkpICsrCiAgIGZpbmlzaGVkKTsKCnZhbCBsZXhfc3RyID0gbGV4ZXIgbyBT
dHJlYW0uZnJvbV9saXN0IG8gZXhwbG9kZTsKCigqIFB1cmVseSBmdW5jdGlvbmFsIHBhcnNp
bmcgKikKCnZhbCB2bmFtZV9wYXJzZXIgPQogIHNvbWUgKGZuIHRvayA9PiBub3QgKG1lbSB0
b2sgcmVzZXJ2ZWQpIGFuZGFsc28gIXZhcl9zdHJpbmcgdG9rKTsKCmZ1biB0ZXJtX3BhcnNl
ciBvcHMgPQogIGxldAogICAgdmFsIG9wcyAgICAgICAgICAgID0gb3BzIEAgY29ubmVjdGl2
ZXMKICAgIHZhbCBpcGFyc2VyICAgICAgICA9IHBhcnNlX2luZml4ZXMgb3BzCiAgICB2YWwg
aXRva3MgICAgICAgICAgPSBvcHRva3Mgb3BzCiAgICB2YWwgYXZvaWQgICAgICAgICAgPSBp
dG9rcyBAIHJlc2VydmVkCiAgICBmdW4gZm5hbWUgdG9rICAgICAgPSBub3QgKG1lbSB0b2sg
YXZvaWQpIGFuZGFsc28gbm90ICghdmFyX3N0cmluZyB0b2spCiAgICBmdW4gdW5pbmZpeCB0
b2sgICAgPSBtZW0gdG9rIGl0b2tzCiAgICB2YWwgdW5pbmZpeF9wYXJzZXIgPSAoZXhhY3Qg
IigiICsrIHNvbWUgdW5pbmZpeCArKyBleGFjdCAiKSIpID4+IChmc3QgbyBzbmQpCiAgICB2
YWwgZm5hbWVfcGFyc2VyICAgPSBzb21lIGZuYW1lIHx8IHVuaW5maXhfcGFyc2VyCiAgICBm
dW4gYmluZCBzICh2LCB0KSAgPSBGbiAocywgW1ZhciB2LCB0XSkKICAgIGZ1biBiYXNpYyBp
bnAgICAgICA9CiAgICAgICgoZXhhY3QgIigiICsrIHRtX3BhcnNlciArKyBleGFjdCAiKSIp
ID4+IChmbiAoXywgKHQsIF8pKSA9PiB0KSB8fAogICAgICAgKGV4YWN0ICIhIiArKyBhdGxl
YXN0b25lIHZuYW1lX3BhcnNlciArKyBleGFjdCAiLiIgKysgdG1fcGFyc2VyKSA+PgogICAg
ICAgKGZuIChfLCAodnMsIChfLCBib2R5KSkpID0+IGZvbGRyIChiaW5kICIhIikgYm9keSB2
cykgfHwKICAgICAgIChleGFjdCAiPyIgKysgYXRsZWFzdG9uZSB2bmFtZV9wYXJzZXIgKysg
ZXhhY3QgIi4iICsrIHRtX3BhcnNlcikgPj4KICAgICAgIChmbiAoXywgKHZzLCAoXywgYm9k
eSkpKSA9PiBmb2xkciAoYmluZCAiPyIpIGJvZHkgdnMpIHx8CiAgICAgICBmbmFtZV9wYXJz
ZXIgPj4gKGZuIGYgPT4gRm4gKGYsIFtdKSkgfHwKICAgICAgIHZuYW1lX3BhcnNlciA+PiBW
YXIpIGlucAogICAgYW5kIG1vbGVjdWxlIGlucCAgICAgID0KICAgICAgKChtYW55IChleGFj
dCAifiIpICsrICgoZm5hbWVfcGFyc2VyICsrIG1hbnkgYmFzaWMpID4+IEZuIHx8IGJhc2lj
KSkgPj4KICAgICAgIChmbiAobCwgdCkgPT4gTiAobGVuZ3RoIGwpIChmbiB4ID0+IEZuICgi
fiIsIFt4XSkpIHQpKSBpbnAKICAgIGFuZCB0bV9wYXJzZXIgaW5wICA9IGlwYXJzZXIgKGZu
IChmLCBhLCBiKSA9PiBGbiAoZiwgW2EsIGJdKSkgbW9sZWN1bGUgaW5wCiAgaW4KICAgIHRt
X3BhcnNlcgogIGVuZDsKCmxvY2FsCiAgZnVuIHByb21vdGUgKEZuICgiVCIsICAgW10gICAg
ICAgICkpID0gVHJ1ZQogICAgfCBwcm9tb3RlIChGbiAoIkYiLCAgIFtdICAgICAgICApKSA9
IEZhbHNlCiAgICB8IHByb21vdGUgKEZuICgifiIsICAgW2FdICAgICAgICkpID0gTm90IChw
cm9tb3RlIGEpCiAgICB8IHByb21vdGUgKEZuICgiL1xcIiwgW2EsIGJdICAgICkpID0gQW5k
IChwcm9tb3RlIGEsIHByb21vdGUgYikKICAgIHwgcHJvbW90ZSAoRm4gKCJcXC8iLCBbYSwg
Yl0gICAgKSkgPSBPciAgKHByb21vdGUgYSwgcHJvbW90ZSBiKQogICAgfCBwcm9tb3RlIChG
biAoIj09PiIsIFthLCBiXSAgICApKSA9IEltcCAocHJvbW90ZSBhLCBwcm9tb3RlIGIpCiAg
ICB8IHByb21vdGUgKEZuICgiPD0+IiwgW2EsIGJdICAgICkpID0gSWZmIChwcm9tb3RlIGEs
IHByb21vdGUgYikKICAgIHwgcHJvbW90ZSAoRm4gKCIhIiwgICBbVmFyIHYsIGJdKSkgPSBG
b3JhbGwgKHYsIHByb21vdGUgYikKICAgIHwgcHJvbW90ZSAoRm4gKCI/IiwgICBbVmFyIHYs
IGJdKSkgPSBFeGlzdHMgKHYsIHByb21vdGUgYikKICAgIHwgcHJvbW90ZSB0bSAgICAgICAg
ICAgICAgICAgICAgICAgPSBBdG9tIHRtOwppbgogIGZ1biBmb3JtdWxhX3BhcnNlciBvcHMg
PSB0ZXJtX3BhcnNlciBvcHMgPj4gcHJvbW90ZTsKZW5kOwoKZnVuIHN0cmluZ190b190ZXJt
JyBvcHMgPQogIGZzdCBvICgodGVybV9wYXJzZXIgb3BzICsrIGZpbmlzaGVkKSA+PiBmc3Qp
IG8gU3RyZWFtLmZyb21fbGlzdCBvIGxleF9zdHI7CgpmdW4gc3RyaW5nX3RvX2Zvcm11bGEn
IG9wcyA9CiAgZnN0IG8gKChmb3JtdWxhX3BhcnNlciBvcHMgKysgZmluaXNoZWQpID4+IGZz
dCkgbyBTdHJlYW0uZnJvbV9saXN0IG8gbGV4X3N0cjsKCmZ1biBwYXJzZV90ZXJtJyBvcHMg
PQogIHF1b3RhdGlvbl9wYXJzZXIgKHN0cmluZ190b190ZXJtJyBvcHMpIChwcF9icmFja2V0
ZWRfdGhpbmcgb3BzKTsKCmZ1biBwYXJzZV9mb3JtdWxhJyBvcHMgPQogIHF1b3RhdGlvbl9w
YXJzZXIgKHN0cmluZ190b19mb3JtdWxhJyBvcHMpIChwcF9icmFja2V0ZWRfdGhpbmcgb3Bz
KTsKCigqIFBhcnNpbmcgdXNpbmcgIWluZml4ZXMgKikKCmZ1biBzdHJpbmdfdG9fdGVybSAg
ICBzID0gc3RyaW5nX3RvX3Rlcm0nICAgICghaW5maXhlcykgczsKZnVuIHN0cmluZ190b19m
b3JtdWxhIHMgPSBzdHJpbmdfdG9fZm9ybXVsYScgKCFpbmZpeGVzKSBzOwpmdW4gcGFyc2Vf
dGVybSAgICAgICAgcSA9IHBhcnNlX3Rlcm0nICAgICAgICAoIWluZml4ZXMpIHE7CmZ1biBw
YXJzZV9mb3JtdWxhICAgICBxID0gcGFyc2VfZm9ybXVsYScgICAgICghaW5maXhlcykgcTsK
CigqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKikKKCogTmV3IHZhcmlhYmxlcy4gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKQoo
KiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tICopCgpsb2NhbAogIHZhbCBwcmVmaXggID0gIl8iOwog
IHZhbCBudW1fdmFyID0gVmFyIG8gbWtfcHJlZml4IHByZWZpeCBvIGludF90b19zdHJpbmc7
CmluCiAgdmFsIG5ld192YXIgID0gbnVtX3ZhciBvIG5ld19pbnQ7CiAgdmFsIG5ld192YXJz
ID0gbWFwIG51bV92YXIgbyBuZXdfaW50czsKZW5kOwoKKCogLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LSAqKQooKiBTaXplcyBvZiB0ZXJtcyBhbmQgZm9ybXVsYXMuICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICopCigqIC0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0g
KikKCmxvY2FsCiAgZnVuIHN6dCBuIFtdICAgICAgICAgICAgICAgICAgICA9IG4KICAgIHwg
c3p0IG4gKFZhciBfICAgICAgICA6OiB0bXMpID0gc3p0IChuICsgMSkgdG1zCiAgICB8IHN6
dCBuIChGbiAoXywgYXJncykgOjogdG1zKSA9IHN6dCAobiArIDEpIChhcmdzIEAgdG1zKTsK
CiAgZnVuIHN6IG4gW10gICAgICAgICAgICAgICAgICAgICA9IG4KICAgIHwgc3ogbiAoVHJ1
ZSAgICAgICAgICA6OiBmbXMpID0gc3ogKG4gKyAxKSBmbXMKICAgIHwgc3ogbiAoRmFsc2Ug
ICAgICAgICA6OiBmbXMpID0gc3ogKG4gKyAxKSBmbXMKICAgIHwgc3ogbiAoQXRvbSB0ICAg
ICAgICA6OiBmbXMpID0gc3ogKHN6dCAobiArIDEpIFt0XSkgZm1zCiAgICB8IHN6IG4gKE5v
dCBwICAgICAgICAgOjogZm1zKSA9IHN6IChuICsgMSkgKHAgOjogZm1zKQogICAgfCBzeiBu
IChBbmQgKHAsIHEpICAgIDo6IGZtcykgPSBzeiAobiArIDEpIChwIDo6IHEgOjogZm1zKQog
ICAgfCBzeiBuIChPciAgKHAsIHEpICAgIDo6IGZtcykgPSBzeiAobiArIDEpIChwIDo6IHEg
OjogZm1zKQogICAgfCBzeiBuIChJbXAgKHAsIHEpICAgIDo6IGZtcykgPSBzeiAobiArIDEp
IChwIDo6IHEgOjogZm1zKQogICAgfCBzeiBuIChJZmYgKHAsIHEpICAgIDo6IGZtcykgPSBz
eiAobiArIDEpIChwIDo6IHEgOjogZm1zKQogICAgfCBzeiBuIChGb3JhbGwgKF8sIHApIDo6
IGZtcykgPSBzeiAobiArIDEpIChwIDo6IGZtcykKICAgIHwgc3ogbiAoRXhpc3RzIChfLCBw
KSA6OiBmbXMpID0gc3ogKG4gKyAxKSAocCA6OiBmbXMpOwppbgogIHZhbCB0ZXJtX3NpemUg
ICAgPSBzenQgMCBvIHdyYXA7CiAgdmFsIGZvcm11bGFfc2l6ZSA9IHN6ICAwIG8gd3JhcDsK
ZW5kOwoKKCogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqKQooKiBUb3RhbCBjb21wYXJpc29uIGZ1
bmN0aW9ucyBmb3IgdGVybXMgYW5kIGZvcm11bGFzLiAgICAgICAgICAgICAgICAgICAgICAg
ICopCigqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKikKCmxvY2FsCiAgZnVuIGxleCBFUVVBTCBm
IHggPSBmIHggfCBsZXggeCBfIF8gPSB4OwoKICBmdW4gY210IFtdID0gRVFVQUwKICAgIHwg
Y210ICgoVmFyIF8sIEZuIF8pIDo6IF8pID0gTEVTUwogICAgfCBjbXQgKChGbiBfLCBWYXIg
XykgOjogXykgPSBHUkVBVEVSCiAgICB8IGNtdCAoKFZhciB2LCBWYXIgdykgOjogbCkgPSBs
ZXggKFN0cmluZy5jb21wYXJlICh2LCB3KSkgY210IGwKICAgIHwgY210ICgoRm4gKGYsIGEp
LCBGbiAoZywgYikpIDo6IGwpID0KICAgIChjYXNlIGxleCAoU3RyaW5nLmNvbXBhcmUgKGYs
IGcpKSAoSW50LmNvbXBhcmUgbyBEZiBsZW5ndGgpIChhLCBiKSBvZiBFUVVBTAogICAgICAg
PT4gY210ICh6aXAgYSBiIEAgbCkKICAgICB8IHggPT4geCk7CgogIGZ1biBjbSBbXSA9IEVR
VUFMCiAgICB8IGNtICgoVHJ1ZSwgICAgICAgICAgVHJ1ZSAgICAgICAgICkgOjogbCkgPSBj
bSBsCiAgICB8IGNtICgoVHJ1ZSwgICAgICAgICAgXyAgICAgICAgICAgICkgOjogXykgPSBM
RVNTCiAgICB8IGNtICgoXywgICAgICAgICAgICAgVHJ1ZSAgICAgICAgICkgOjogXykgPSBH
UkVBVEVSCiAgICB8IGNtICgoRmFsc2UsICAgICAgICAgRmFsc2UgICAgICAgICkgOjogbCkg
PSBjbSBsCiAgICB8IGNtICgoRmFsc2UsICAgICAgICAgXyAgICAgICAgICAgICkgOjogXykg
PSBMRVNTCiAgICB8IGNtICgoXywgICAgICAgICAgICAgRmFsc2UgICAgICAgICkgOjogXykg
PSBHUkVBVEVSCiAgICB8IGNtICgoQXRvbSB0LCAgICAgICAgQXRvbSB1ICAgICAgICkgOjog
bCkgPSBsZXggKGNtdCBbKHQsIHUpXSkgY20gbAogICAgfCBjbSAoKEF0b20gXywgICAgICAg
IF8gICAgICAgICAgICApIDo6IF8pID0gTEVTUwogICAgfCBjbSAoKF8sICAgICAgICAgICAg
IEF0b20gXyAgICAgICApIDo6IF8pID0gR1JFQVRFUgogICAgfCBjbSAoKE5vdCBwLCAgICAg
ICAgIE5vdCBxICAgICAgICApIDo6IGwpID0gY20gKChwLCBxKSA6OiBsKQogICAgfCBjbSAo
KE5vdCBfICwgICAgICAgIF8gICAgICAgICAgICApIDo6IF8pID0gTEVTUwogICAgfCBjbSAo
KF8sICAgICAgICAgICAgIE5vdCBfICAgICAgICApIDo6IF8pID0gR1JFQVRFUgogICAgfCBj
bSAoKEFuZCAocDEsIHExKSwgIEFuZCAocDIsIHEyKSApIDo6IGwpID0gY20gKChwMSwgcDIp
IDo6IChxMSwgcTIpIDo6IGwpCiAgICB8IGNtICgoQW5kIF8sICAgICAgICAgXyAgICAgICAg
ICAgICkgOjogXykgPSBMRVNTCiAgICB8IGNtICgoXywgICAgICAgICAgICAgQW5kIF8gICAg
ICAgICkgOjogXykgPSBHUkVBVEVSCiAgICB8IGNtICgoT3IgKHAxLCBxMSksICAgT3IgKHAy
LCBxMikgICkgOjogbCkgPSBjbSAoKHAxLCBwMikgOjogKHExLCBxMikgOjogbCkKICAgIHwg
Y20gKChPciBfLCAgICAgICAgICBfICAgICAgICAgICAgKSA6OiBfKSA9IExFU1MKICAgIHwg
Y20gKChfLCAgICAgICAgICAgICBPciBfICAgICAgICAgKSA6OiBfKSA9IEdSRUFURVIKICAg
IHwgY20gKChJbXAgKHAxLCBxMSksICBJbXAgKHAyLCBxMikgKSA6OiBsKSA9IGNtICgocDEs
IHAyKSA6OiAocTEsIHEyKSA6OiBsKQogICAgfCBjbSAoKEltcCBfLCAgICAgICAgIF8gICAg
ICAgICAgICApIDo6IF8pID0gTEVTUwogICAgfCBjbSAoKF8sICAgICAgICAgICAgIEltcCBf
ICAgICAgICApIDo6IF8pID0gR1JFQVRFUgogICAgfCBjbSAoKElmZiAocDEsIHExKSwgIElm
ZiAocDIsIHEyKSApIDo6IGwpID0gY20gKChwMSwgcDIpIDo6IChxMSwgcTIpIDo6IGwpCiAg
ICB8IGNtICgoSWZmIF8sICAgICAgICAgXyAgICAgICAgICAgICkgOjogXykgPSBMRVNTCiAg
ICB8IGNtICgoXywgICAgICAgICAgICAgSWZmIF8gICAgICAgICkgOjogXykgPSBHUkVBVEVS
CiAgICB8IGNtICgoRm9yYWxsICh2LCBwKSwgRm9yYWxsICh3LCBxKSkgOjogbCkgPQogICAg
bGV4IChTdHJpbmcuY29tcGFyZSAodiwgdykpIChjbSBvIGNvbnMgKHAsIHEpKSBsCiAgICB8
IGNtICgoRm9yYWxsIF8sICAgICAgRXhpc3RzIF8gICAgICkgOjogXykgPSBMRVNTCiAgICB8
IGNtICgoRXhpc3RzIF8sICAgICAgRm9yYWxsIF8gICAgICkgOjogXykgPSBHUkVBVEVSCiAg
ICB8IGNtICgoRXhpc3RzICh2LCBwKSwgRXhpc3RzICh3LCBxKSkgOjogbCkgPQogICAgbGV4
IChTdHJpbmcuY29tcGFyZSAodiwgdykpIChjbSBvIGNvbnMgKHAsIHEpKSBsOwppbgogIHZh
bCB0ZXJtX2NvbXBhcmUgICAgPSBjbXQgbyB3cmFwOwogIHZhbCBmb3JtdWxhX2NvbXBhcmUg
PSBjbSBvIHdyYXA7CmVuZDsKICAKKCogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqKQooKiBCYXNp
YyBvcGVyYXRpb25zIG9uIGxpdGVyYWxzLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICopCigqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKikKCmZ1biBta19s
aXRlcmFsICh0cnVlLCAgYSkgPSBhCiAgfCBta19saXRlcmFsIChmYWxzZSwgYSkgPSBOb3Qg
YTsKCmZ1biBkZXN0X2xpdGVyYWwgKGEgYXMgQXRvbSBfKSAgICAgICA9ICh0cnVlLCAgYSkK
ICB8IGRlc3RfbGl0ZXJhbCAoTm90IChhIGFzIEF0b20gXykpID0gKGZhbHNlLCBhKQogIHwg
ZGVzdF9saXRlcmFsIF8gICAgICAgICAgICAgICAgICAgPSByYWlzZSBFUlIgImRlc3RfbGl0
ZXJhbCIgIiI7Cgp2YWwgaXNfbGl0ZXJhbCA9IGNhbiBkZXN0X2xpdGVyYWw7Cgp2YWwgbGl0
ZXJhbF9hdG9tID0gc25kIG8gZGVzdF9saXRlcmFsOwoKKCogLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LSAqKQooKiBEZWFsaW5nIHdpdGggZm9ybXVsYSBuZWdhdGlvbnMuICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICopCigqIC0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0g
KikKCmZ1biBuZWdhdGl2ZSAoTm90IHApID0gdHJ1ZQogIHwgbmVnYXRpdmUgXyAgICAgICA9
IGZhbHNlOwoKdmFsIHBvc2l0aXZlID0gbm9uIG5lZ2F0aXZlOwoKZnVuIG5lZ2F0ZSAoTm90
IHApID0gcAogIHwgbmVnYXRlIHAgICAgICAgPSBOb3QgcDsKCigqIC0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0gKikKKCogRnVuY3Rpb25zIGFuZCByZWxhdGlvbnMgaW4gYSBmb3JtdWxhLiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKQooKiAtLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tICopCgpsb2NhbAogIGZ1biBmbmMgZnMgW10gICAgICAgICAgICAgICAgID0gZnMKICAg
IHwgZm5jIGZzIChWYXIgXyAgICAgOjogdG1zKSA9IGZuYyBmcyB0bXMKICAgIHwgZm5jIGZz
IChGbiAobiwgYSkgOjogdG1zKSA9IGZuYyAoaW5zZXJ0IChuLCBsZW5ndGggYSkgZnMpIChh
IEAgdG1zKTsKCiAgZnVuIGZ1bmMgZnMgW10gICAgICAgICAgICAgICAgICAgICAgICAgID0g
ZnMKICAgIHwgZnVuYyBmcyAoVHJ1ZSAgICAgICAgICAgICAgIDo6IGZtcykgPSBmdW5jIGZz
IGZtcwogICAgfCBmdW5jIGZzIChGYWxzZSAgICAgICAgICAgICAgOjogZm1zKSA9IGZ1bmMg
ZnMgZm1zCiAgICB8IGZ1bmMgZnMgKEF0b20gKFZhciBfKSAgICAgICA6OiBmbXMpID0gZnVu
YyBmcyBmbXMKICAgIHwgZnVuYyBmcyAoQXRvbSAoRm4gKF8sIHRtcykpIDo6IGZtcykgPSBm
dW5jIChmbmMgZnMgdG1zKSBmbXMKICAgIHwgZnVuYyBmcyAoTm90IHAgICAgICAgICAgICAg
IDo6IGZtcykgPSBmdW5jIGZzIChwIDo6IGZtcykKICAgIHwgZnVuYyBmcyAoQW5kIChwLCBx
KSAgICAgICAgIDo6IGZtcykgPSBmdW5jIGZzIChwIDo6IHEgOjogZm1zKQogICAgfCBmdW5j
IGZzIChPciAgKHAsIHEpICAgICAgICAgOjogZm1zKSA9IGZ1bmMgZnMgKHAgOjogcSA6OiBm
bXMpCiAgICB8IGZ1bmMgZnMgKEltcCAocCwgcSkgICAgICAgICA6OiBmbXMpID0gZnVuYyBm
cyAocCA6OiBxIDo6IGZtcykKICAgIHwgZnVuYyBmcyAoSWZmIChwLCBxKSAgICAgICAgIDo6
IGZtcykgPSBmdW5jIGZzIChwIDo6IHEgOjogZm1zKQogICAgfCBmdW5jIGZzIChGb3JhbGwg
KF8sIHApICAgICAgOjogZm1zKSA9IGZ1bmMgZnMgKHAgOjogZm1zKQogICAgfCBmdW5jIGZz
IChFeGlzdHMgKF8sIHApICAgICAgOjogZm1zKSA9IGZ1bmMgZnMgKHAgOjogZm1zKTsKaW4K
ICB2YWwgZnVuY3Rpb25zID0gZnVuYyBbXSBvIHdyYXA7CmVuZDsKCnZhbCBmdW5jdGlvbl9u
YW1lcyA9IG1hcCBmc3QgbyBmdW5jdGlvbnM7Cgpsb2NhbAogIGZ1biByZWwgcnMgW10gICAg
ICAgICAgICAgICAgICAgICAgICA9IHJzCiAgICB8IHJlbCBycyAoVHJ1ZSAgICAgICAgICAg
ICA6OiBmbXMpID0gcmVsIHJzIGZtcwogICAgfCByZWwgcnMgKEZhbHNlICAgICAgICAgICAg
OjogZm1zKSA9IHJlbCBycyBmbXMKICAgIHwgcmVsIHJzIChBdG9tIChWYXIgXykgICAgIDo6
IGZtcykgPSByZWwgcnMgZm1zCiAgICB8IHJlbCBycyAoQXRvbSAoZiBhcyBGbiBfKSA6OiBm
bXMpID0gcmVsIChpbnNlcnQgKGZuX2Z1bmN0aW9uIGYpIHJzKSBmbXMKICAgIHwgcmVsIHJz
IChOb3QgcCAgICAgICAgICAgIDo6IGZtcykgPSByZWwgcnMgKHAgOjogZm1zKQogICAgfCBy
ZWwgcnMgKEFuZCAocCwgcSkgICAgICAgOjogZm1zKSA9IHJlbCBycyAocCA6OiBxIDo6IGZt
cykKICAgIHwgcmVsIHJzIChPciAgKHAsIHEpICAgICAgIDo6IGZtcykgPSByZWwgcnMgKHAg
OjogcSA6OiBmbXMpCiAgICB8IHJlbCBycyAoSW1wIChwLCBxKSAgICAgICA6OiBmbXMpID0g
cmVsIHJzIChwIDo6IHEgOjogZm1zKQogICAgfCByZWwgcnMgKElmZiAocCwgcSkgICAgICAg
OjogZm1zKSA9IHJlbCBycyAocCA6OiBxIDo6IGZtcykKICAgIHwgcmVsIHJzIChGb3JhbGwg
KF8sIHApICAgIDo6IGZtcykgPSByZWwgcnMgKHAgOjogZm1zKQogICAgfCByZWwgcnMgKEV4
aXN0cyAoXywgcCkgICAgOjogZm1zKSA9IHJlbCBycyAocCA6OiBmbXMpOwppbgogIHZhbCBy
ZWxhdGlvbnMgPSByZWwgW10gbyB3cmFwOwplbmQ7Cgp2YWwgcmVsYXRpb25fbmFtZXMgPSBt
YXAgZnN0IG8gcmVsYXRpb25zOwoKKCogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqKQooKiBUaGUg
ZXF1YWxpdHkgcmVsYXRpb24gaGFzIGEgc3BlY2lhbCBzdGF0dXMuICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICopCigqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKikKCnZhbCBlcV9y
ZWwgPSAoIj0iLCAyKTsKCmZ1biBta19lcSAoYSwgYikgPSBBdG9tIChGbiAoIj0iLCBbYSwg
Yl0pKTsKCmZ1biBkZXN0X2VxIChBdG9tIChGbiAoIj0iLCBbYSwgYl0pKSkgPSAoYSwgYikK
ICB8IGRlc3RfZXEgXyA9IHJhaXNlIEVSUiAiZGVzdF9lcSIgIiI7Cgp2YWwgaXNfZXEgPSBj
YW4gZGVzdF9lcTsKCnZhbCBsaHMgPSBmc3QgbyBkZXN0X2VxOwoKdmFsIHJocyA9IHNuZCBv
IGRlc3RfZXE7Cgp2YWwgZXFfb2NjdXJzID0gbWVtIGVxX3JlbCBvIHJlbGF0aW9uczsKCnZh
bCByZWxhdGlvbnNfbm9fZXEgPSBMaXN0LmZpbHRlciAobm9uIChlcXVhbCBlcV9yZWwpKSBv
IHJlbGF0aW9uczsKCigqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKikKKCogRnJlZSB2YXJpYWJs
ZXMgaW4gdGVybXMgYW5kIGZvcm11bGFzLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAqKQooKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICopCgpsb2NhbAogIGZ1biBmdnQg
YXYgPQogICAgbGV0CiAgICAgIHZhbCBzZWVuID0KICAgICAgICBpZiBudWxsIGF2IHRoZW4g
bWVtIGVsc2UgKGZuIHYgPT4gZm4gdnMgPT4gbWVtIHYgYXYgb3JlbHNlIG1lbSB2IHZzKQog
ICAgICBmdW4gZiB2cyBbXSA9IHZzCiAgICAgICAgfCBmIHZzIChWYXIgdiA6OiB0bXMpID0g
ZiAoaWYgc2VlbiB2IHZzIHRoZW4gdnMgZWxzZSB2IDo6IHZzKSB0bXMKICAgICAgICB8IGYg
dnMgKEZuIChfLCBhcmdzKSA6OiB0bXMpID0gZiB2cyAoYXJncyBAIHRtcykKICAgIGluCiAg
ICAgIGYKICAgIGVuZDsKCiAgZnVuIGZ2IHZzIFtdICAgICAgICAgICAgICAgICAgICAgICAg
ICAgPSB2cwogICAgfCBmdiB2cyAoKF8gLCBUcnVlICAgICAgICAgKSA6OiBmbXMpID0gZnYg
dnMgZm1zCiAgICB8IGZ2IHZzICgoXyAsIEZhbHNlICAgICAgICApIDo6IGZtcykgPSBmdiB2
cyBmbXMKICAgIHwgZnYgdnMgKChhdiwgQXRvbSB0ICAgICAgICkgOjogZm1zKSA9IGZ2IChm
dnQgYXYgdnMgW3RdKSBmbXMKICAgIHwgZnYgdnMgKChhdiwgTm90IHAgICAgICAgICkgOjog
Zm1zKSA9IGZ2IHZzICgoYXYsIHApIDo6IGZtcykKICAgIHwgZnYgdnMgKChhdiwgQW5kIChw
LCBxKSAgICkgOjogZm1zKSA9IGZ2IHZzICgoYXYsIHApIDo6IChhdiwgcSkgOjogZm1zKQog
ICAgfCBmdiB2cyAoKGF2LCBPciAgKHAsIHEpICAgKSA6OiBmbXMpID0gZnYgdnMgKChhdiwg
cCkgOjogKGF2LCBxKSA6OiBmbXMpCiAgICB8IGZ2IHZzICgoYXYsIEltcCAocCwgcSkgICAp
IDo6IGZtcykgPSBmdiB2cyAoKGF2LCBwKSA6OiAoYXYsIHEpIDo6IGZtcykKICAgIHwgZnYg
dnMgKChhdiwgSWZmIChwLCBxKSAgICkgOjogZm1zKSA9IGZ2IHZzICgoYXYsIHApIDo6IChh
diwgcSkgOjogZm1zKQogICAgfCBmdiB2cyAoKGF2LCBGb3JhbGwgKHgsIHApKSA6OiBmbXMp
ID0gZnYgdnMgKChpbnNlcnQgeCBhdiwgcCkgOjogZm1zKQogICAgfCBmdiB2cyAoKGF2LCBF
eGlzdHMgKHgsIHApKSA6OiBmbXMpID0gZnYgdnMgKChpbnNlcnQgeCBhdiwgcCkgOjogZm1z
KTsKaW4gICAgCiAgZnVuIEZWVCB0bSAgPSByZXYgKGZ2dCBbXSBbXSBbdG1dKTsKICBmdW4g
RlYgIGZtICA9IHJldiAoZnYgIFtdIFsoW10sIGZtKV0pOwogIGZ1biBGVkwgZm1zID0gcmV2
IChmdiAgW10gKG1hcCAocGFpciBbXSkgZm1zKSk7CmVuZDsKCnZhbCBzcGVjaWFsaXplID0g
c25kIG8gc3RyaXBfZm9yYWxsOwoKZnVuIGdlbmVyYWxpemUgZm0gPSBsaXN0X21rX2ZvcmFs
bCAoRlYgZm0sIGZtKTsKCigqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKikKKCogU3VidGVybXMu
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAqKQooKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICopCgpmdW4gc3VidGVybSBb
XSB0bSA9IHRtCiAgfCBzdWJ0ZXJtIChfIDo6IF8pIChWYXIgXykgPSByYWlzZSBFUlIgInN1
YnRlcm0iICJWYXIiCiAgfCBzdWJ0ZXJtIChoIDo6IHQpIChGbiAoXywgYXJncykpID0KICBz
dWJ0ZXJtIHQgKExpc3QubnRoIChhcmdzLCBoKSkKICBoYW5kbGUgU3Vic2NyaXB0ID0+IHJh
aXNlIEVSUiAic3VidGVybSIgImJhZCBwYXRoIjsKCmxvY2FsCiAgZnVuIHVwZGF0ZSBfIF8g
W10gPSByYWlzZSBFUlIgInJld3JpdGUiICJiYWQgcGF0aCIKICAgIHwgdXBkYXRlIGYgbiAo
aCA6OiB0KSA9IGlmIG4gPSAwIHRoZW4gZiBoIDo6IHQgZWxzZSBoIDo6IHVwZGF0ZSBmIChu
IC0gMSkgdDsKaW4KICBmdW4gcmV3cml0ZSAoW10gfC0+IHJlcykgXyA9IHJlcwogICAgfCBy
ZXdyaXRlIF8gKFZhciBfKSA9IHJhaXNlIEVSUiAicmV3cml0ZSIgIlZhciIKICAgIHwgcmV3
cml0ZSAoKGggOjogdCkgfC0+IHJlcykgKEZuIChmLCBhcmdzKSkgPQogICAgRm4gKGYsIHVw
ZGF0ZSAocmV3cml0ZSAodCB8LT4gcmVzKSkgaCBhcmdzKTsKZW5kOwoKbG9jYWwKICBmdW4g
YXRvbV9yZXdyaXRlIHIgPSBBdG9tIG8gcmV3cml0ZSByIG8gZGVzdF9hdG9tOwppbgogIGZ1
biBsaXRlcmFsX3N1YnRlcm0gcCA9IHN1YnRlcm0gcCBvIGRlc3RfYXRvbSBvIGxpdGVyYWxf
YXRvbTsKICBmdW4gbGl0ZXJhbF9yZXdyaXRlIHIgPSBta19saXRlcmFsIG8gKEkgIyMgYXRv
bV9yZXdyaXRlIHIpIG8gZGVzdF9saXRlcmFsOwplbmQ7CgooKiAtLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tICopCigqIFRoZSBLbnV0aC1CZW5kaXggb3JkZXJpbmcuICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKikKKCogLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LSAqKQoKdHlwZSBXZWlnaHQgPSBzdHJpbmcgKiBpbnQgLT4gaW50Owp0eXBlIFByZWMgICA9
IChzdHJpbmcgKiBpbnQpICogKHN0cmluZyAqIGludCkgLT4gb3JkZXI7Cgp2YWwgbm9fdmFy
cyA9IE11bHRpc2V0LmVtcHR5IFN0cmluZy5jb21wYXJlOwpmdW4gb25lX3ZhciB2ID0gTXVs
dGlzZXQuaW5zZXJ0ICh2LCAxKSBub192YXJzOwoKZnVuIGtiX3dlaWdodCB3ID0KICBsZXQK
ICAgIGZ1biB3ZWlnaHQgKFZhciB2KSA9ICgwLCBvbmVfdmFyIHYpCiAgICAgIHwgd2VpZ2h0
IChGbiAoZiwgYSkpID0gZm9sZGwgd2dodCAodyAoZiwgbGVuZ3RoIGEpLCBub192YXJzKSBh
CiAgICBhbmQgd2dodCAodCwgKG4sIHYpKSA9IChjdXJyeSBvcCsgbiAjIyBNdWx0aXNldC51
bmlvbiB2KSAod2VpZ2h0IHQpCiAgaW4KICAgIHdlaWdodAogIGVuZDsKCigqIFRoZSBLbnV0
aC1CZW5kaXggb3JkZXJpbmcgaXMgcGFydGlhbCB3aGVuIHRlcm1zIGNvbnRhaW4gdmFyaWFi
bGVzICopCgpmdW4ga2JfY29tcGFyZSB3IHAgPQogIGxldAogICAgZnVuIGtibyBbXSA9IFNP
TUUgRVFVQUwKICAgICAgfCBrYm8gKHR1IDo6IHJlc3QpID0KICAgICAgaWYgb3A9IHR1IHRo
ZW4gU09NRSBFUVVBTAogICAgICBlbHNlCiAgICAgICAgbGV0IHZhbCAoKHd0LCB2dCksICh3
dSwgdnUpKSA9IERmIChrYl93ZWlnaHQgdykgdHUKICAgICAgICBpbiBrYm8xIChJbnQuY29t
cGFyZSAod3QsIHd1KSkgKE11bHRpc2V0LmNvbXBhcmUgKHZ0LCB2dSkpIHR1IHJlc3QKICAg
ICAgICBlbmQKICAgIGFuZCBrYm8xIF8gICAgICAgTk9ORSAgICAgICAgICAgXyAgICAgIF8g
ICAgPSBOT05FCiAgICAgIHwga2JvMSBMRVNTICAgIChTT01FIExFU1MpICAgIF8gICAgICBf
ICAgID0gU09NRSBMRVNTCiAgICAgIHwga2JvMSBHUkVBVEVSIChTT01FIExFU1MpICAgIF8g
ICAgICBfICAgID0gTk9ORQogICAgICB8IGtibzEgRVFVQUwgICAoU09NRSBMRVNTKSAgICBf
ICAgICAgXyAgICA9IFNPTUUgTEVTUwogICAgICB8IGtibzEgTEVTUyAgICAoU09NRSBHUkVB
VEVSKSBfICAgICAgXyAgICA9IE5PTkUKICAgICAgfCBrYm8xIEdSRUFURVIgKFNPTUUgR1JF
QVRFUikgXyAgICAgIF8gICAgPSBTT01FIEdSRUFURVIKICAgICAgfCBrYm8xIEVRVUFMICAg
KFNPTUUgR1JFQVRFUikgXyAgICAgIF8gICAgPSBTT01FIEdSRUFURVIKICAgICAgfCBrYm8x
IExFU1MgICAgKFNPTUUgRVFVQUwpICAgXyAgICAgIF8gICAgPSBTT01FIExFU1MKICAgICAg
fCBrYm8xIEdSRUFURVIgKFNPTUUgRVFVQUwpICAgXyAgICAgIF8gICAgPSBTT01FIEdSRUFU
RVIKICAgICAgfCBrYm8xIEVRVUFMICAgKFNPTUUgRVFVQUwpICAgKHQsIHUpIHJlc3QgPSBr
Ym8yIHQgdSByZXN0CiAgICBhbmQga2JvMiAoRm4gKGYsIGEpKSAoRm4gKGcsIGIpKSByZXN0
ID0KICAgICAgKGNhc2UgcCAoKGYsIGxlbmd0aCBhKSwgKGcsIGxlbmd0aCBiKSkgb2YgTEVT
UyA9PiBTT01FIExFU1MKICAgICAgIHwgR1JFQVRFUiA9PiBTT01FIEdSRUFURVIKICAgICAg
IHwgRVFVQUwgPT4ga2JvICh6aXAgYSBiIEAgcmVzdCkpCiAgICAgIHwga2JvMiBfIF8gXyA9
IHJhaXNlIEJVRyAia2JvIiAidmFyaWFibGUiCiAgaW4KICAgIGtibyBvIHdyYXAKICBlbmQ7
CgplbmQKKCojbGluZSAwLjAgImZvbC9TdWJzdDEuc2lnIiopCigqID09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0gKikKKCogU1VCU1RJVFVUSU9OUyBPTiBGSVJTVC1PUkRFUiBURVJNUyBBTkQgRk9S
TVVMQVMgICAgICAgICAgICAgICAgICAgICAgICAgICAqKQooKiBDcmVhdGVkIGJ5IEpvZSBI
dXJkLCBKdW5lIDIwMDIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICopCigqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKikKCnNpZ25hdHVyZSBTdWJzdDEgPQpz
aWcKCnR5cGUgJ2EgcHAgICAgICAgICAgID0gJ2EgVXNlZnVsLnBwCnR5cGUgKCdhLCAnYikg
bWFwbGV0ID0gKCdhLCAnYikgVXNlZnVsLm1hcGxldAp0eXBlIHRlcm0gICAgICAgICAgICA9
IFRlcm0xLnRlcm0KdHlwZSBmb3JtdWxhICAgICAgICAgPSBUZXJtMS5mb3JtdWxhCgp0eXBl
IHN1YnN0Cgp2YWwgfDw+fCAgICAgICAgICA6IHN1YnN0CnZhbCA6Oj4gICAgICAgICAgIDog
KHN0cmluZywgdGVybSkgbWFwbGV0ICogc3Vic3QgLT4gc3Vic3QKdmFsIEA+ICAgICAgICAg
ICAgOiBzdWJzdCAqIHN1YnN0IC0+IHN1YnN0CnZhbCBudWxsICAgICAgICAgIDogc3Vic3Qg
LT4gYm9vbAp2YWwgdGVybV9zdWJzdCAgICA6IHN1YnN0IC0+IHRlcm0gLT4gdGVybQp2YWwg
Zm9ybXVsYV9zdWJzdCA6IHN1YnN0IC0+IGZvcm11bGEgLT4gZm9ybXVsYQp2YWwgZmluZF9y
ZWRleCAgICA6IHN0cmluZyAtPiBzdWJzdCAtPiB0ZXJtIG9wdGlvbgp2YWwgbm9ybSAgICAg
ICAgICA6IHN1YnN0IC0+IHN1YnN0ICAgICAgICgqIFJlbW92ZXMgaWRlbnRpdHkgc3Vic3Rp
dHV0aW9ucyAqKQp2YWwgcmVzdHJpY3QgICAgICA6IHN0cmluZyBsaXN0IC0+IHN1YnN0IC0+
IHN1YnN0CnZhbCByZWZpbmUgICAgICAgIDogc3Vic3QgLT4gc3Vic3QgLT4gc3Vic3QKdmFs
IGlzX3JlbmFtaW5nICAgOiBzdWJzdCAtPiBib29sCnZhbCB0b19tYXBsZXRzICAgIDogc3Vi
c3QgLT4gKHN0cmluZywgdGVybSkgbWFwbGV0IGxpc3QKdmFsIGZyb21fbWFwbGV0cyAgOiAo
c3RyaW5nLCB0ZXJtKSBtYXBsZXQgbGlzdCAtPiBzdWJzdAp2YWwgZm9sZGwgICAgICAgICA6
ICgoc3RyaW5nLCB0ZXJtKSBtYXBsZXQgLT4gJ2EgLT4gJ2EpIC0+ICdhIC0+IHN1YnN0IC0+
ICdhCnZhbCBmb2xkciAgICAgICAgIDogKChzdHJpbmcsIHRlcm0pIG1hcGxldCAtPiAnYSAt
PiAnYSkgLT4gJ2EgLT4gc3Vic3QgLT4gJ2EKdmFsIHBwX3N1YnN0ICAgICAgOiBzdWJzdCBw
cAoKZW5kCgooKiNsaW5lIDAuMCAiZm9sL1N1YnN0MS5zbWwiKikKKCogPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PSAqKQooKiBTVUJTVElUVVRJT05TIE9OIEZJUlNULU9SREVSIFRFUk1TIEFORCBG
T1JNVUxBUyAgICAgICAgICAgICAgICAgICAgICAgICAgICopCigqIENyZWF0ZWQgYnkgSm9l
IEh1cmQsIEp1bmUgMjAwMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgKikKKCogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqKQoKKCoKYXBwIGxvYWQgWyJCaW5h
cnltYXAiLCAiVXNlZnVsIiwgIlRlcm0xIl07CiopCgooKgoqKQpzdHJ1Y3R1cmUgU3Vic3Qx
IDo+IFN1YnN0MSA9CnN0cnVjdAoKb3BlbiBVc2VmdWwgVGVybTE7CgppbmZpeHIgOCArKzsK
aW5maXhyIDcgPj47CmluZml4ciA2IHx8OwppbmZpeHIgfC0+IDo6PiBAPiBvbyAjIzsKCnN0
cnVjdHVyZSBNID0gQmluYXJ5bWFwOwoKKCogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqKQooKiBI
ZWxwZXIgZnVuY3Rpb25zLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICopCigqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKikKCmZ1biBN
cHVyZ2UgKGQsIGspID0gZnN0IChNLnJlbW92ZSAoZCwgaykpIGhhbmRsZSBOb3RGb3VuZCA9
PiBkOwoKKCogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqKQooKiBUaGUgdW5kZXJseWluZyByZXBy
ZXNlbnRhdGlvbi4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICopCigqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKikKCmRhdGF0eXBlIHN1YnN0ID0gU3Vic3Qg
b2YgKHN0cmluZywgdGVybSkgTS5kaWN0OwoKKCogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqKQoo
KiBPcGVyYXRpb25zLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICopCigqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKikKCnZh
bCB8PD58ID0gU3Vic3QgKE0ubWtEaWN0IFN0cmluZy5jb21wYXJlKTsKCmZ1biAoYSB8LT4g
YikgOjo+IChTdWJzdCBkKSA9IFN1YnN0IChNLmluc2VydCAoZCwgYSwgYikpOwoKZnVuIChT
dWJzdCBzdWIxKSBAPiAoU3Vic3Qgc3ViMikgPQogIFN1YnN0IChNLmZvbGRsIChmbiAoYSwg
YiwgZCkgPT4gTS5pbnNlcnQgKGQsIGEsIGIpKSBzdWIyIHN1YjEpOwoKZnVuIG51bGwgKFN1
YnN0IHMpID0gTS5udW1JdGVtcyBzID0gMDsKCmZ1biBmaW5kX3JlZGV4IHIgKFN1YnN0IGQp
ID0gTS5wZWVrIChkLCByKTsKCmZ1biBwdXJnZSB2IChTdWJzdCBkKSA9IFN1YnN0IChNcHVy
Z2UgKGQsIHYpKTsKCmxvY2FsCiAgZXhjZXB0aW9uIFVuY2hhbmdlZDsKCiAgZnVuIGFsd2F5
cyBmIHggPSBmIHggaGFuZGxlIFVuY2hhbmdlZCA9PiB4OwoKICBmdW4gcGFpcl91bmNoYW5n
ZWQgZiAoeCwgeSkgPQogICAgbGV0CiAgICAgIHZhbCAoYywgeCkgPSAodHJ1ZSwgZiB4KSBo
YW5kbGUgVW5jaGFuZ2VkID0+IChmYWxzZSwgeCkKICAgICAgdmFsIChjLCB5KSA9ICh0cnVl
LCBmIHkpIGhhbmRsZSBVbmNoYW5nZWQgPT4gKGMsIHkpCiAgICBpbgogICAgICBpZiBjIHRo
ZW4gKHgsIHkpIGVsc2UgcmFpc2UgVW5jaGFuZ2VkCiAgICBlbmQ7CgogIGZ1biBsaXN0X3Vu
Y2hhbmdlZCBmID0KICAgIGxldAogICAgICBmdW4gZyAoeCwgKGIsIGwpKSA9ICh0cnVlLCBm
IHggOjogbCkgaGFuZGxlIFVuY2hhbmdlZCA9PiAoYiwgeCA6OiBsKQogICAgICBmdW4gaCAo
dHJ1ZSwgbCkgPSByZXYgbCB8IGggKGZhbHNlLCBfKSA9IHJhaXNlIFVuY2hhbmdlZAogICAg
aW4KICAgICAgaCBvIGZvbGRsIGcgKGZhbHNlLCBbXSkKICAgIGVuZDsKCiAgZnVuIGZpbmRf
dW5jaGFuZ2VkIHYgciA9CiAgICBjYXNlIGZpbmRfcmVkZXggdiByIG9mIFNPTUUgdCA9PiB0
IHwgTk9ORSA9PiByYWlzZSBVbmNoYW5nZWQ7CgogIGZ1biB0bV9zdWJzdCByID0KICAgIGxl
dAogICAgICBmdW4gZiAoVmFyIHYpICAgICA9IGZpbmRfdW5jaGFuZ2VkIHYgcgogICAgICAg
IHwgZiAoRm4gKG4sIGEpKSA9IEZuIChuLCBsaXN0X3VuY2hhbmdlZCBmIGEpCiAgICBpbgog
ICAgICBmCiAgICBlbmQ7CgogIGZ1biBmbV9zdWJzdCByID0KICAgIGxldAogICAgICBmdW4g
ZiBGYWxzZSAgICAgICA9IHJhaXNlIFVuY2hhbmdlZAogICAgICAgIHwgZiBUcnVlICAgICAg
ICA9IHJhaXNlIFVuY2hhbmdlZAogICAgICAgIHwgZiAoQXRvbSB0bSAgKSA9IEF0b20gKHRt
X3N1YnN0IHIgdG0pCiAgICAgICAgfCBmIChOb3QgcCAgICApID0gTm90IChmIHApCiAgICAg
ICAgfCBmIChBbmQgcHEgICApID0gQW5kIChwYWlyX3VuY2hhbmdlZCBmIHBxKQogICAgICAg
IHwgZiAoT3IgIHBxICAgKSA9IE9yICAocGFpcl91bmNoYW5nZWQgZiBwcSkKICAgICAgICB8
IGYgKEltcCBwcSAgICkgPSBJbXAgKHBhaXJfdW5jaGFuZ2VkIGYgcHEpCiAgICAgICAgfCBm
IChJZmYgcHEgICApID0gSWZmIChwYWlyX3VuY2hhbmdlZCBmIHBxKQogICAgICAgIHwgZiAo
Rm9yYWxsIHZwKSA9IGZtX3N1YnN0cSByIEZvcmFsbCB2cAogICAgICAgIHwgZiAoRXhpc3Rz
IHZwKSA9IGZtX3N1YnN0cSByIEV4aXN0cyB2cAogICAgaW4KICAgICAgaWYgbnVsbCByIHRo
ZW4gSSBlbHNlIGFsd2F5cyBmCiAgICBlbmQKICBhbmQgZm1fc3Vic3RxIHIgUSAodiwgcCkg
PQogICAgbGV0IHZhbCB2JyA9IHZhcmlhbnQgdiAoRlYgKGZtX3N1YnN0IChwdXJnZSB2IHIp
IHApKQogICAgaW4gUSAodicsIGZtX3N1YnN0ICgodiB8LT4gVmFyIHYnKSA6Oj4gcikgcCkK
ICAgIGVuZDsKaW4KICBmdW4gdGVybV9zdWJzdCAgICBlbnYgdG0gPSBpZiBudWxsIGVudiB0
aGVuIHRtIGVsc2UgYWx3YXlzICh0bV9zdWJzdCBlbnYpIHRtOwogIGZ1biBmb3JtdWxhX3N1
YnN0IGVudiBmbSA9IGZtX3N1YnN0IGVudiBmbTsKZW5kOwogIApmdW4gbm9ybSAoc3ViIGFz
IFN1YnN0IGRpY3QpID0KICBsZXQKICAgIGZ1biBjaGVjayAoYSwgYiwgKGMsIGQpKSA9CiAg
ICAgIGlmIFZhciBhID0gYiB0aGVuICh0cnVlLCBmc3QgKE0ucmVtb3ZlIChkLCBhKSkpIGVs
c2UgKGMsIGQpCiAgICB2YWwgKHJlbW92ZWQsIGRpY3QnKSA9IE0uZm9sZGwgY2hlY2sgKGZh
bHNlLCBkaWN0KSBkaWN0CiAgaW4KICAgIGlmIHJlbW92ZWQgdGhlbiBTdWJzdCBkaWN0JyBl
bHNlIHN1YgogIGVuZDsKCmZ1biB0b19tYXBsZXRzIChTdWJzdCBzKSA9IG1hcCAob3B8LT4p
IChNLmxpc3RJdGVtcyBzKTsKCmZ1biBmcm9tX21hcGxldHMgbXMgPSBmb2xkbCAob3AgOjo+
KSB8PD58IChyZXYgbXMpOwoKZnVuIHJlc3RyaWN0IHZzID0KICBmcm9tX21hcGxldHMgbyBM
aXN0LmZpbHRlciAoZm4gKGEgfC0+IF8pID0+IG1lbSBhIHZzKSBvIHRvX21hcGxldHM7Cgoo
KiBOb3RlOiB0aGlzIGp1c3QgZG9lc24ndCB3b3JrIHdpdGggY3ljbGljIHN1YnN0aXR1dGlv
bnMhICopCmZ1biByZWZpbmUgKFN1YnN0IHN1YjEpIHN1YjIgPQogIGxldAogICAgZnVuIGYg
KChhLCBiKSwgcykgPQogICAgICBsZXQgdmFsIGInID0gdGVybV9zdWJzdCBzdWIyIGIKICAg
ICAgaW4gaWYgVmFyIGEgPSBiJyB0aGVuIHMgZWxzZSAoYSB8LT4gYicpIDo6PiBzCiAgICAg
IGVuZAogIGluCiAgICBmb2xkbCBmIHN1YjIgKE0ubGlzdEl0ZW1zIHN1YjEpCiAgZW5kOwoK
bG9jYWwKICBleGNlcHRpb24gUUYKICBmdW4gcnMgKHYsIFZhciB3LCBsKSA9IGlmIG1lbSB3
IGwgdGhlbiByYWlzZSBRRiBlbHNlIHcgOjogbAogICAgfCBycyAoXywgRm4gXywgXykgPSBy
YWlzZSBRRgppbgogIGZ1biBpc19yZW5hbWluZyAoU3Vic3Qgc3ViKSA9IChNLmZvbGRsIHJz
IFtdIHN1YjsgdHJ1ZSkgaGFuZGxlIFFGID0+IGZhbHNlOwplbmQ7CgpmdW4gZm9sZGwgZiBi
IChTdWJzdCBzdWIpID0gTS5mb2xkbCAoZm4gKHMsIHQsIGEpID0+IGYgKHMgfC0+IHQpIGEp
IGIgc3ViOwoKZnVuIGZvbGRyIGYgYiAoU3Vic3Qgc3ViKSA9IE0uZm9sZHIgKGZuIChzLCB0
LCBhKSA9PiBmIChzIHwtPiB0KSBhKSBiIHN1YjsKCnZhbCBwcF9zdWJzdCA9CiAgcHBfbWFw
IHRvX21hcGxldHMKICAoZm4gcHAgPT4KICAgKGZuIFtdID0+IHBwX3N0cmluZyBwcCAifDw+
fCIKICAgICB8IGwgPT4gcHBfbGlzdCAocHBfbWFwbGV0IHBwX3N0cmluZyBwcF90ZXJtKSBw
cCBsKSk7CgplbmQKKCojbGluZSAwLjAgImZvbC9LZXJuZWwxLnNpZyIqKQooKiA9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09ICopCigqIEEgTENGLVNUWUxFIExPR0lDQUwgS0VSTkVMIEZPUiBGSVJT
VC1PUkRFUiBDTEFVU0VTICAgICAgICAgICAgICAgICAgICAgICAgKikKKCogQ3JlYXRlZCBi
eSBKb2UgSHVyZCwgU2VwdGVtYmVyIDIwMDEgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAqKQooKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICopCgpzaWduYXR1cmUgS2Vy
bmVsMSA9CnNpZwoKdHlwZSB0ZXJtICAgID0gVGVybTEudGVybQp0eXBlIGZvcm11bGEgPSBU
ZXJtMS5mb3JtdWxhCnR5cGUgc3Vic3QgICA9IFN1YnN0MS5zdWJzdAoKKCogQW4gQUJTVFJB
Q1QgdHlwZSBmb3IgdGhlb3JlbXMgKikKZXF0eXBlIHRobQpkYXRhdHlwZSBpbmZlcmVuY2Ug
PSBBeGlvbSB8IFJlZmwgfCBBc3N1bWUgfCBJbnN0IHwgRmFjdG9yIHwgUmVzb2x2ZSB8IEVx
dWFsaXR5CgooKiBEZXN0cnVjdGlvbiBvZiB0aGVvcmVtcyBpcyBmaW5lICopCnZhbCBkZXN0
X3RobSA6IHRobSAtPiBmb3JtdWxhIGxpc3QgKiAoaW5mZXJlbmNlICogdGhtIGxpc3QpCgoo
KiBCdXQgY3JlYXRpb24gaXMgb25seSBhbGxvd2VkIGJ5IHRoZSBwcmltaXRpdmUgcnVsZXMg
b2YgaW5mZXJlbmNlICopCnZhbCBBWElPTSAgICA6IGZvcm11bGEgbGlzdCAtPiB0aG0KdmFs
IFJFRkwgICAgIDogdGVybSAtPiB0aG0KdmFsIEFTU1VNRSAgIDogZm9ybXVsYSAtPiB0aG0K
dmFsIElOU1QgICAgIDogc3Vic3QgLT4gdGhtIC0+IHRobQp2YWwgRkFDVE9SICAgOiB0aG0g
LT4gdGhtCnZhbCBSRVNPTFZFICA6IGZvcm11bGEgLT4gdGhtIC0+IHRobSAtPiB0aG0KdmFs
IEVRVUFMSVRZIDogZm9ybXVsYSAtPiBpbnQgbGlzdCAtPiB0ZXJtIC0+IGJvb2wgLT4gdGht
IC0+IHRobQoKZW5kCigqI2xpbmUgMC4wICJmb2wvS2VybmVsMS5zbWwiKikKKCogPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PSAqKQooKiBBIExDRi1TVFlMRSBMT0dJQ0FMIEtFUk5FTCBGT1IgRklS
U1QtT1JERVIgQ0xBVVNFUyAgICAgICAgICAgICAgICAgICAgICAgICopCigqIENyZWF0ZWQg
YnkgSm9lIEh1cmQsIFNlcHRlbWJlciAyMDAxICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgKikKKCogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqKQoKc3RydWN0dXJlIEtl
cm5lbDEgOj4gS2VybmVsMSA9CnN0cnVjdAoKb3BlbiBVc2VmdWwgVGVybTE7CgppbmZpeHIg
fC0+IDo6PiBvbzsKCnR5cGUgc3Vic3QgICAgICAgID0gU3Vic3QxLnN1YnN0Owp2YWwgZm9y
bXVsYV9zdWJzdCA9IFN1YnN0MS5mb3JtdWxhX3N1YnN0OwoKKCogLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLSAqKQooKiBBbiBBQlNUUkFDVCB0eXBlIGZvciB0aGVvcmVtcy4gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopCigqIC0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0gKikKCmRhdGF0eXBlIGluZmVyZW5jZSA9IEF4aW9tIHwgUmVmbCB8IEFzc3VtZSB8IElu
c3QgfCBGYWN0b3IgfCBSZXNvbHZlIHwgRXF1YWxpdHk7CgpkYXRhdHlwZSB0aG0gPSBUaG0g
b2YgZm9ybXVsYSBsaXN0ICogKGluZmVyZW5jZSAqIHRobSBsaXN0KTsKCigqIC0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0gKikKKCogRGVzdHJ1Y3Rpb24gb2YgdGhlb3JlbXMgaXMgZmluZS4gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKQooKiAtLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tICopCgpmdW4gZGVzdF90aG0gKFRobSB0aCkgPSB0aDsKCnZhbCBjbGF1c2Ug
PSBmc3QgbyBkZXN0X3RobTsKCigqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKikKKCogQnV0IGNy
ZWF0aW9uIGlzIG9ubHkgYWxsb3dlZCBieSB0aGUgcHJpbWl0aXZlIHJ1bGVzIG9mIGluZmVy
ZW5jZS4gICAgICAgICAqKQooKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICopCgpmdW4gQVhJT00g
Y2wgPQogIGlmIExpc3QuYWxsIGlzX2xpdGVyYWwgY2wgdGhlbiBUaG0gKGNsLCAoQXhpb20s
IFtdKSkKICBlbHNlIHJhaXNlIEVSUiAiQVhJT00iICJhcmd1bWVudCBub3QgYSBsaXN0IG9m
IGxpdGVyYWxzIjsKCmZ1biBSRUZMIHRtID0gVGhtIChbbWtfZXEgKHRtLCB0bSldLCAoUmVm
bCwgW10pKTsKCmZ1biBBU1NVTUUgZm0gPQogIGlmIGlzX2xpdGVyYWwgZm0gdGhlbiBUaG0g
KFtmbSwgbmVnYXRlIGZtXSwgKEFzc3VtZSwgW10pKQogIGVsc2UgcmFpc2UgRVJSICJBU1NV
TUUiICJhcmd1bWVudCBub3QgYSBsaXRlcmFsIjsKCmZ1biBJTlNUIGVudiAodGggYXMgVGht
IChjbCwgcHIpKSA9CiAgbGV0CiAgICB2YWwgY2wnID0gbWFwIChmb3JtdWxhX3N1YnN0IGVu
dikgY2wKICBpbgogICAgaWYgY2wnID0gY2wgdGhlbiB0aCBlbHNlCiAgICAgIGNhc2UgcHIg
b2YgKEluc3QsIFt0aCddKQogICAgICAgID0+IGlmIGNsJyA9IGNsYXVzZSB0aCcgdGhlbiB0
aCcgZWxzZSBUaG0gKGNsJywgKEluc3QsIFt0aCddKSkKICAgICAgfCBfID0+IFRobSAoY2wn
LCAoSW5zdCwgW3RoXSkpCiAgZW5kOwoKZnVuIEZBQ1RPUiB0aCA9CiAgbGV0IHZhbCBjbCA9
IHJldiAoc2V0aWZ5IChjbGF1c2UgdGgpKQogIGluIGlmIGNsID0gY2xhdXNlIHRoIHRoZW4g
dGggZWxzZSBUaG0gKGNsLCAoRmFjdG9yLCBbdGhdKSkKICBlbmQ7CgpmdW4gUkVTT0xWRSBm
bSB0aDEgdGgyID0KICBsZXQKICAgIHZhbCBjbDEgID0gY2xhdXNlIHRoMQogICAgdmFsIGNs
MScgPSBMaXN0LmZpbHRlciAobm90IG8gZXF1YWwgZm0pIGNsMQogICAgdmFsIGNsMiAgPSBj
bGF1c2UgdGgyCiAgICB2YWwgY2wyJyA9IExpc3QuZmlsdGVyIChub3QgbyBlcXVhbCAobmVn
YXRlIGZtKSkgY2wyCiAgICB2YWwgKCkgICA9CiAgICAgIGFzc2VydCAoY2wxIDw+IGNsMScg
b3JlbHNlIGNsMiA8PiBjbDInKQogICAgICAoRVJSICJSRVNPTFZFIiAicmVzb2x2YW50IGRv
ZXMgbm90IGZlYXR1cmUgaW4gZWl0aGVyIGNsYXVzZSIpCiAgaW4KICAgIFRobSAoY2wxJyBA
IGNsMicsIChSZXNvbHZlLCBbdGgxLCB0aDJdKSkKICBlbmQ7CgpmdW4gRVFVQUxJVFkgZm0g
cCByZXMgbHIgdGggPQogIGxldAogICAgdmFsIGVxX2xpdCA9CiAgICAgIGxldAogICAgICAg
IHZhbCByZWQgPSBsaXRlcmFsX3N1YnRlcm0gcCBmbQogICAgICBpbgogICAgICAgIE5vdCAo
bWtfZXEgKGlmIGxyIHRoZW4gKHJlZCwgcmVzKSBlbHNlIChyZXMsIHJlZCkpKQogICAgICBl
bmQKICAgIHZhbCBvdGhlcl9saXRzID0KICAgICAgbGV0CiAgICAgICAgdmFsIGwgPSBjbGF1
c2UgdGgKICAgICAgaW4KICAgICAgICBjYXNlIGluZGV4IChlcXVhbCBmbSkgbCBvZiBOT05F
CiAgICAgICAgICA9PiByYWlzZSBFUlIgIkVRVUFMSVRZIiAibGl0ZXJhbCBkb2VzIG5vdCBv
Y2N1ciBpbiBjbGF1c2UiCiAgICAgICAgfCBTT01FIG4gPT4gdXBkYXRlX250aCAobGl0ZXJh
bF9yZXdyaXRlIChwIHwtPiByZXMpKSBuIGwKICAgICAgZW5kCiAgaW4KICAgIFRobSAoZXFf
bGl0IDo6IG90aGVyX2xpdHMsIChFcXVhbGl0eSwgW3RoXSkpCiAgZW5kOwoKZW5kCigqI2xp
bmUgMC4wICJmb2wvTWF0Y2gxLnNpZyIqKQooKiA9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICopCigq
IE1BVENISU5HIEFORCBVTklGSUNBVElPTiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgKikKKCogQ3JlYXRlZCBieSBKb2UgSHVyZCwgU2VwdGVt
YmVyIDIwMDEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKQooKiA9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09ICopCgpzaWduYXR1cmUgTWF0Y2gxID0Kc2lnCgp0eXBlIHRl
cm0gICAgPSBUZXJtMS50ZXJtCnR5cGUgZm9ybXVsYSA9IFRlcm0xLmZvcm11bGEKdHlwZSBz
dWJzdCAgID0gU3Vic3QxLnN1YnN0CgooKiBNYXRjaGluZyAqKQp2YWwgbWF0Y2hsICAgICAg
ICAgIDogc3Vic3QgLT4gKHRlcm0gKiB0ZXJtKSBsaXN0IC0+IHN1YnN0CnZhbCBtYXRjaCAg
ICAgICAgICAgOiB0ZXJtIC0+IHRlcm0gLT4gc3Vic3QKdmFsIG1hdGNobF9saXRlcmFscyA6
IHN1YnN0IC0+IChmb3JtdWxhICogZm9ybXVsYSkgbGlzdCAtPiBzdWJzdAp2YWwgbWF0Y2hf
bGl0ZXJhbHMgIDogZm9ybXVsYSAtPiBmb3JtdWxhIC0+IHN1YnN0CgooKiBVbmlmaWNhdGlv
biAqKQp2YWwgdW5pZnlsICAgICAgICAgIDogc3Vic3QgLT4gKHRlcm0gKiB0ZXJtKSBsaXN0
IC0+IHN1YnN0CnZhbCB1bmlmeSAgICAgICAgICAgOiBzdWJzdCAtPiB0ZXJtIC0+IHRlcm0g
LT4gc3Vic3QKdmFsIHVuaWZ5X2FuZF9hcHBseSA6IHRlcm0gLT4gdGVybSAtPiB0ZXJtCnZh
bCB1bmlmeWxfbGl0ZXJhbHMgOiBzdWJzdCAtPiAoZm9ybXVsYSAqIGZvcm11bGEpIGxpc3Qg
LT4gc3Vic3QKdmFsIHVuaWZ5X2xpdGVyYWxzICA6IHN1YnN0IC0+IGZvcm11bGEgLT4gZm9y
bXVsYSAtPiBzdWJzdAoKZW5kCigqI2xpbmUgMC4wICJmb2wvTWF0Y2gxLnNtbCIqKQooKiA9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09ICopCigqIE1BVENISU5HIEFORCBVTklGSUNBVElPTiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKikKKCogQ3Jl
YXRlZCBieSBKb2UgSHVyZCwgU2VwdGVtYmVyIDIwMDEgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAqKQooKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICopCgooKgphcHAg
bG9hZCBbIlVzZWZ1bCIsICJNb3NtbCIsICJUZXJtMSJdOwoqKQoKKCoKKikKc3RydWN0dXJl
IE1hdGNoMSA6PiBNYXRjaDEgPQpzdHJ1Y3QKCm9wZW4gVXNlZnVsIFRlcm0xOwoKaW5maXhy
IHwtPiA6Oj47Cgp0eXBlIHN1YnN0ICAgICAgICA9IFN1YnN0MS5zdWJzdDsKdmFsIHw8Pnwg
ICAgICAgICAgPSBTdWJzdDEufDw+fDsKdmFsIG9wIDo6PiAgICAgICAgPSBTdWJzdDEuOjo+
Owp2YWwgdGVybV9zdWJzdCAgICA9IFN1YnN0MS50ZXJtX3N1YnN0Owp2YWwgZm9ybXVsYV9z
dWJzdCA9IFN1YnN0MS5mb3JtdWxhX3N1YnN0OwoKKCogLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAq
KQooKiBNYXRjaGluZy4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICopCigqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKikK
CmZ1biByYXdfbWF0Y2ggZW52IHggdG0gPQogIChjYXNlIFN1YnN0MS5maW5kX3JlZGV4IHgg
ZW52IG9mIE5PTkUgPT4gKHggfC0+IHRtKSA6Oj4gZW52CiAgIHwgU09NRSB0bScgPT4KICAg
ICBpZiB0bSA9IHRtJyB0aGVuIGVudgogICAgIGVsc2UgcmFpc2UgRVJSICJtYXRjaCIgIm9u
ZSB2YXIgdHJ5aW5nIHRvIG1hdGNoIHR3byBkaWZmZXJlbnQgdGVybXMiKTsKCmZ1biBtYXRj
aGwgZW52IFtdID0gZW52CiAgfCBtYXRjaGwgZW52ICgoVmFyIHgsIHRtKSA6OiByZXN0KSA9
IG1hdGNobCAocmF3X21hdGNoIGVudiB4IHRtKSByZXN0CiAgfCBtYXRjaGwgZW52ICgoRm4g
KGYsIGFyZ3MpLCBGbiAoZicsIGFyZ3MnKSkgOjogcmVzdCkgPQogIGlmIGYgPSBmJyBhbmRh
bHNvIGxlbmd0aCBhcmdzID0gbGVuZ3RoIGFyZ3MnIHRoZW4KICAgIG1hdGNobCBlbnYgKHpp
cCBhcmdzIGFyZ3MnIEAgcmVzdCkKICBlbHNlIHJhaXNlIEVSUiAibWF0Y2giICJjYW4ndCBt
YXRjaCB0d28gZGlmZmVyZW50IGZ1bmN0aW9ucyIKICB8IG1hdGNobCBfIF8gPSByYWlzZSBF
UlIgIm1hdGNoIiAiZGlmZmVyZW50IHN0cnVjdHVyZSI7CgpmdW4gbWF0Y2ggdG0gdG0nID0g
U3Vic3QxLm5vcm0gKG1hdGNobCB8PD58IFsodG0sIHRtJyldKTsKCmxvY2FsCiAgZnVuIGNv
bnYgKEF0b20gdCwgQXRvbSB0JykgPSBTT01FICh0LCB0JykKICAgIHwgY29udiAoTm90IHAs
ICBOb3QgcSkgICA9IGNvbnYgKHAsIHEpCiAgICB8IGNvbnYgKFRydWUsICAgVHJ1ZSkgICAg
PSBOT05FCiAgICB8IGNvbnYgKEZhbHNlLCAgRmFsc2UpICAgPSBOT05FCiAgICB8IGNvbnYg
XyAgICAgICAgICAgICAgICAgPSByYWlzZSBFUlIgIm1hdGNoX2xpdGVyYWxzIiAiaW5jb21w
YXRpYmxlIjsKaW4KICBmdW4gbWF0Y2hsX2xpdGVyYWxzIHN1YiA9IG1hdGNobCBzdWIgbyBM
aXN0Lm1hcFBhcnRpYWwgY29udjsKZW5kOwoKZnVuIG1hdGNoX2xpdGVyYWxzIGxpdCBsaXQn
ID0gU3Vic3QxLm5vcm0gKG1hdGNobF9saXRlcmFscyB8PD58IFsobGl0LCBsaXQnKV0pOwoK
KCogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqKQooKiBVbmlmaWNhdGlvbi4gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopCigq
IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0gKikKCmxvY2FsCiAgZnVuIG9jY3VycyB2IHRtID0gbWVt
IHYgKEZWVCB0bSk7CgogIGZ1biBzb2x2ZSBlbnYgW10gPSBlbnYKICAgIHwgc29sdmUgZW52
ICgodG0xLCB0bTIpIDo6IHJlc3QpID0KICAgIHNvbHZlJyBlbnYgKHRlcm1fc3Vic3QgZW52
IHRtMSkgKHRlcm1fc3Vic3QgZW52IHRtMikgcmVzdAogIGFuZCBzb2x2ZScgZW52IChWYXIg
eCkgdG0gcmVzdCA9CiAgICBpZiBWYXIgeCA9IHRtIHRoZW4gc29sdmUgZW52IHJlc3QKICAg
IGVsc2UgaWYgb2NjdXJzIHggdG0gdGhlbiByYWlzZSBFUlIgInVuaWZ5IiAib2NjdXJzIGNo
ZWNrIgogICAgZWxzZQogICAgICAoY2FzZSBTdWJzdDEuZmluZF9yZWRleCB4IGVudiBvZiBO
T05FCiAgICAgICAgID0+IHNvbHZlIChTdWJzdDEucmVmaW5lIGVudiAoKHggfC0+IHRtKSA6
Oj4gfDw+fCkpIHJlc3QKICAgICAgIHwgU09NRSB0bScgPT4gc29sdmUnIGVudiB0bScgdG0g
cmVzdCkKICAgIHwgc29sdmUnIGVudiB0bSAodG0nIGFzIFZhciBfKSByZXN0ID0gc29sdmUn
IGVudiB0bScgdG0gcmVzdAogICAgfCBzb2x2ZScgZW52IChGbiAoZiwgYXJncykpIChGbiAo
ZicsIGFyZ3MnKSkgcmVzdCA9CiAgICBpZiBmID0gZicgYW5kYWxzbyBsZW5ndGggYXJncyA9
IGxlbmd0aCBhcmdzJyB0aGVuCiAgICAgIHNvbHZlIGVudiAoemlwIGFyZ3MgYXJncycgQCBy
ZXN0KQogICAgZWxzZSByYWlzZSBFUlIgInVuaWZ5IiAiZGlmZmVyZW50IHN0cnVjdHVyZSI7
CmluCiAgdmFsIHVuaWZ5bCA9IHNvbHZlOwplbmQ7CgpmdW4gdW5pZnkgZW52IHRtIHRtJyA9
IHVuaWZ5bCBlbnYgWyh0bSwgdG0nKV07CgpmdW4gdW5pZnlfYW5kX2FwcGx5IHRtIHRtJyA9
IHRlcm1fc3Vic3QgKHVuaWZ5IHw8PnwgdG0gdG0nKSB0bTsKCmxvY2FsCiAgZnVuIGNvbnYg
KEF0b20gdCwgQXRvbSB0JykgPSBTT01FICh0LCB0JykKICAgIHwgY29udiAoTm90IHAsICBO
b3QgcSkgICA9IGNvbnYgKHAsIHEpCiAgICB8IGNvbnYgKFRydWUsICAgVHJ1ZSkgICAgPSBO
T05FCiAgICB8IGNvbnYgKEZhbHNlLCAgRmFsc2UpICAgPSBOT05FCiAgICB8IGNvbnYgXyAg
ICAgICAgICAgICAgICAgPSByYWlzZSBFUlIgInVuaWZ5X2xpdGVyYWxzIiAiaW5jb21wYXRp
YmxlIjsKaW4KICBmdW4gdW5pZnlsX2xpdGVyYWxzIGVudiA9IHVuaWZ5bCBlbnYgbyBMaXN0
Lm1hcFBhcnRpYWwgY29udjsKZW5kOwoKZnVuIHVuaWZ5X2xpdGVyYWxzIGVudiBsaXQgbGl0
JyA9IHVuaWZ5bF9saXRlcmFscyBlbnYgWyhsaXQsIGxpdCcpXTsKCmVuZAooKiNsaW5lIDAu
MCAiZm9sL1Rlcm1OZXQxLnNpZyIqKQooKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICopCigqIE1B
VENISU5HIEFORCBVTklGSUNBVElPTiBGT1IgU0VUUyBPRiBURVJNUyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgKikKKCogQ3JlYXRlZCBieSBKb2UgSHVyZCwgU2VwdGVtYmVy
IDIwMDEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKQooKiA9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09ICopCgpzaWduYXR1cmUgVGVybU5ldDEgPQpzaWcKCnR5cGUgJ2Eg
cHAgICAgICAgICAgID0gJ2EgVXNlZnVsLnBwCnR5cGUgKCdhLCAnYikgbWFwbGV0ID0gKCdh
LCAnYikgVXNlZnVsLm1hcGxldAp0eXBlIHRlcm0gICAgICAgICAgICA9IFRlcm0xLnRlcm0K
CnR5cGUgJ2EgdGVybV9tYXAKCnZhbCBlbXB0eSAgICAgICAgOiAnYSB0ZXJtX21hcAp2YWwg
aW5zZXJ0ICAgICAgIDogKHRlcm0sICdhKSBtYXBsZXQgLT4gJ2EgdGVybV9tYXAgLT4gJ2Eg
dGVybV9tYXAKdmFsIG1hdGNoICAgICAgICA6ICdhIHRlcm1fbWFwIC0+IHRlcm0gLT4gJ2Eg
bGlzdAp2YWwgbWF0Y2hlZCAgICAgIDogJ2EgdGVybV9tYXAgLT4gdGVybSAtPiAnYSBsaXN0
CnZhbCB1bmlmeSAgICAgICAgOiAnYSB0ZXJtX21hcCAtPiB0ZXJtIC0+ICdhIGxpc3QKdmFs
IHNpemUgICAgICAgICA6ICdhIHRlcm1fbWFwIC0+IGludAp2YWwgZnJvbV9tYXBsZXRzIDog
KHRlcm0sICdhKSBtYXBsZXQgbGlzdCAtPiAnYSB0ZXJtX21hcAp2YWwgdG9fbGlzdCAgICAg
IDogJ2EgdGVybV9tYXAgLT4gJ2EgbGlzdAp2YWwgcHBfdGVybV9tYXAgIDogJ2EgcHAgLT4g
J2EgdGVybV9tYXAgcHAKCmVuZAooKiNsaW5lIDAuMCAiZm9sL1Rlcm1OZXQxLnNtbCIqKQoo
KiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09ICopCigqIE1BVENISU5HIEFORCBVTklGSUNBVElPTiBG
T1IgU0VUUyBPRiBURVJNUyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKikKKCog
Q3JlYXRlZCBieSBKb2UgSHVyZCwgU2VwdGVtYmVyIDIwMDEgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAqKQooKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICopCgooKgph
cHAgbG9hZCBbIlVzZWZ1bCIsICJNb3NtbCIsICJUZXJtMSJdOwoqKQoKKCoKKikKc3RydWN0
dXJlIFRlcm1OZXQxIDo+IFRlcm1OZXQxID0Kc3RydWN0CgpvcGVuIFVzZWZ1bCBUZXJtMTsK
CmluZml4ciB8LT4gOjo+IG9vOwoKdmFsIGZsYXR0ZW4gPSBMaXN0LmNvbmNhdDsKCigqIC0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0gKikKKCogSGVscGVyIGZ1bmN0aW9ucy4gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKQooKiAtLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tICopCgpsb2NhbAogIGZ1biBmaWZvX29yZGVyIChtLCBfKSAobiwg
XykgPSBtIDw9IG47CmluCiAgZnVuIHJlc3RvcmVfZmlmb19vcmRlciBsID0gbWFwIHNuZCAo
c29ydCBmaWZvX29yZGVyIGwpOwplbmQ7CgpmdW4gcGFydGl0aW9uX2ZpbmQgZiBsID0KICBs
ZXQKICAgIGZ1biBwZiBfIFtdID0gKE5PTkUsIGwpCiAgICAgIHwgcGYgZGVhbHQgKHggOjog
eHMpID0KICAgICAgaWYgZiB4IHRoZW4gKFNPTUUgeCwgTGlzdC5yZXZBcHBlbmQgKGRlYWx0
LCB4cykpIGVsc2UgcGYgKHggOjogZGVhbHQpIHhzCiAgaW4KICAgIHBmIFtdIGwKICBlbmQ7
CgooKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICopCigqIFRlcm0gZGlzY3JpbWluYXRpb24gdHJl
ZXMgYXJlIG9wdGltaXplZCBmb3IgbWF0Y2ggcXVlcmllcy4gICAgICAgICAgICAgICAgKikK
KCogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqKQoKZGF0YXR5cGUgcGF0dGVybiA9IFZBUiB8IEZO
IG9mIHN0cmluZyAqIGludDsKCnR5cGUgJ2EgbWFwID0gKHBhdHRlcm4sICdhKSB0cmVlOwoK
ZGF0YXR5cGUgJ2EgdGVybV9tYXAgPSBNQVAgb2YgaW50ICogKGludCAqICdhKSBtYXAgbGlz
dDsKCnZhbCBlbXB0eSA9IE1BUCAoMCwgW10pOwoKZnVuIHNpemUgKE1BUCAoaSwgXykpID0g
aTsKCmZ1biB0b19saXN0IChNQVAgKF8sIG4pKSA9CiAgcmVzdG9yZV9maWZvX29yZGVyIChm
bGF0dGVuIChtYXAgKHRyZWVfZm9sZHIgKEsgZmxhdHRlbikgd3JhcCkgbikpOwoKZnVuIHBw
X3Rlcm1fbWFwIHBwX2EgPSBwcF9tYXAgdG9fbGlzdCAocHBfbGlzdCBwcF9hKTsKCmxvY2Fs
CiAgZnVuIGZpbmRfcGF0IHggKEJSQU5DSCAocCwgXykpID0gcCA9IHgKICAgIHwgZmluZF9w
YXQgXyAoTEVBRiBfKSA9IHJhaXNlIEJVRyAiZmluZF9wYXQiICJtaXNwbGFjZWQgTEVBRiI7
CgogIGZ1biBhZGQgYSBbXSBsID0gTEVBRiBhIDo6IGwKICAgIHwgYWRkIGEgKHRtIDo6IHJl
c3QpIGwgPQogICAgbGV0CiAgICAgIHZhbCAocGF0LCByZXN0KSA9CiAgICAgICAgY2FzZSB0
bSBvZiBWYXIgXyA9PiAoVkFSLCByZXN0KQogICAgICAgIHwgRm4gKGYsIGFyZ3MpID0+IChG
TiAoZiwgbGVuZ3RoIGFyZ3MpLCBhcmdzIEAgcmVzdCkKICAgICAgdmFsICh0aGlzLCBvdGhl
cnMpID0gcGFydGl0aW9uX2ZpbmQgKGZpbmRfcGF0IHBhdCkgbAogICAgICB2YWwgbmV4dCA9
CiAgICAgICAgY2FzZSB0aGlzIG9mIE5PTkUgPT4gW10KICAgICAgICB8IFNPTUUgKEJSQU5D
SCAoXywgbCkpID0+IGwKICAgICAgICB8IFNPTUUgKExFQUYgXykgPT4gcmFpc2UgQlVHICJh
ZGQiICJtaXNwbGFjZWQgTEVBRiIKICAgIGluCiAgICAgIEJSQU5DSCAocGF0LCBhZGQgYSBy
ZXN0IG5leHQpIDo6IG90aGVycwogICAgZW5kOwppbgogIGZ1biBpbnNlcnQgKHRtIHwtPiBh
KSAoTUFQIChpLCBuKSkgPSBNQVAgKGkgKyAxLCBhZGQgKGksIGEpIFt0bV0gbikKICBoYW5k
bGUgRVJSX0VYTiBfID0+IHJhaXNlIEJVRyAiaW5zZXJ0IiAic2hvdWxkIG5ldmVyIGZhaWwi
OwplbmQ7CgpmdW4gZnJvbV9tYXBsZXRzIGwgPSBmb2xkbCAodW5jdXJyeSBpbnNlcnQpIGVt
cHR5IGw7Cgpsb2NhbAogIGZ1biBtYXQgVkFSIChfIDo6IHJlc3QpID0gU09NRSByZXN0CiAg
ICB8IG1hdCAoRk4gKGYsIG4pKSAoRm4gKGcsIGFyZ3MpIDo6IHJlc3QpID0KICAgIGlmIGYg
PSBnIGFuZGFsc28gbiA9IGxlbmd0aCBhcmdzIHRoZW4gU09NRSAoYXJncyBAIHJlc3QpIGVs
c2UgTk9ORQogICAgfCBtYXQgKEZOIF8pIChWYXIgXyA6OiBfKSA9IE5PTkUKICAgIHwgbWF0
IF8gW10gPSByYWlzZSBCVUcgIm1hdGNoIiAicmFuIG91dCBvZiBzdWJ0ZXJtcyI7CgogIGZ1
biBmaW5hbCBhIFtdID0gU09NRSBhCiAgICB8IGZpbmFsIF8gKF8gOjogXykgPSByYWlzZSBC
VUcgIm1hdGNoIiAidG9vIG1hbnkgc3VidGVybXMiOwppbgogIGZ1biBtYXRjaCAoTUFQIChf
LCBuKSkgdG0gPQogICAgcmVzdG9yZV9maWZvX29yZGVyIChmbGF0dGVuIChtYXAgKHRyZWVf
cGFydGlhbF9mb2xkbCBtYXQgZmluYWwgW3RtXSkgbikpCiAgaGFuZGxlIEVSUl9FWE4gXyA9
PiByYWlzZSBCVUcgIm1hdGNoIiAic2hvdWxkIG5ldmVyIGZhaWwiOwplbmQ7Cgpsb2NhbAog
IGZ1biBtb3JlIFZBUiA9IDAgfCBtb3JlIChGTiAoZiwgbikpID0gbjsKICBmdW4gbWF0IHBh
dCAoMCwgVmFyIF8gOjogcmVzdCkgPSBTT01FIChtb3JlIHBhdCwgcmVzdCkKICAgIHwgbWF0
IFZBUiAoMCwgRm4gXyA6OiBfKSA9IE5PTkUKICAgIHwgbWF0IChGTiAoZiwgbikpICgwLCBG
biAoZywgYXJncykgOjogcmVzdCkgPQogICAgaWYgZiA9IGcgYW5kYWxzbyBuID0gbGVuZ3Ro
IGFyZ3MgdGhlbiBTT01FICgwLCBhcmdzIEAgcmVzdCkgZWxzZSBOT05FCiAgICB8IG1hdCBf
ICgwLCBbXSkgPSByYWlzZSBCVUcgIm1hdGNoZWQiICJyYW4gb3V0IG9mIHN1YnRlcm1zIgog
ICAgfCBtYXQgcGF0IChuLCByZXN0KSA9IFNPTUUgKG1vcmUgcGF0ICsgbiAtIDEsIHJlc3Qp
OwoKICBmdW4gZmluYWwgYSAoMCwgW10pID0gU09NRSBhCiAgICB8IGZpbmFsIF8gKDAsIF8g
OjogXykgPSByYWlzZSBCVUcgIm1hdGNoZWQiICJ0b28gbWFueSBzdWJ0ZXJtcyIKICAgIHwg
ZmluYWwgXyAobiwgXykgPSByYWlzZSBCVUcgIm1hdGNoZWQiICJzdGlsbCBza2lwcGluZyI7
CmluCiAgZnVuIG1hdGNoZWQgKE1BUCAoXywgbikpIHRtID0KICAgIHJlc3RvcmVfZmlmb19v
cmRlciAoZmxhdHRlbiAobWFwICh0cmVlX3BhcnRpYWxfZm9sZGwgbWF0IGZpbmFsICgwLFt0
bV0pKSBuKSkKICBoYW5kbGUgRVJSX0VYTiBfID0+IHJhaXNlIEJVRyAibWF0Y2hlZCIgInNo
b3VsZCBuZXZlciBmYWlsIjsKZW5kOwoKbG9jYWwKICBmdW4gbW9yZSBWQVIgPSAwIHwgbW9y
ZSAoRk4gKGYsIG4pKSA9IG47CiAgZnVuIG1hdCBwYXQgKDAsIFZhciBfIDo6IHJlc3QpID0g
U09NRSAobW9yZSBwYXQsIHJlc3QpCiAgICB8IG1hdCBWQVIgKDAsIEZuIF8gOjogcmVzdCkg
PSBTT01FICgwLCByZXN0KQogICAgfCBtYXQgKEZOIChmLCBuKSkgKDAsIEZuIChnLCBhcmdz
KSA6OiByZXN0KSA9CiAgICBpZiBmID0gZyBhbmRhbHNvIG4gPSBsZW5ndGggYXJncyB0aGVu
IFNPTUUgKDAsIGFyZ3MgQCByZXN0KSBlbHNlIE5PTkUKICAgIHwgbWF0IF8gKDAsIFtdKSA9
IHJhaXNlIEJVRyAidW5pZnkiICJyYW4gb3V0IG9mIHN1YnRlcm1zIgogICAgfCBtYXQgcGF0
IChuLCByZXN0KSA9IFNPTUUgKG1vcmUgcGF0ICsgbiAtIDEsIHJlc3QpOwoKICBmdW4gZmlu
YWwgYSAoMCwgW10pID0gU09NRSBhCiAgICB8IGZpbmFsIF8gKDAsIF8gOjogXykgPSByYWlz
ZSBCVUcgInVuaWZ5IiAidG9vIG1hbnkgc3VidGVybXMiCiAgICB8IGZpbmFsIF8gKG4sIF8p
ID0gcmFpc2UgQlVHICJ1bmlmeSIgInN0aWxsIHNraXBwaW5nIjsKaW4KICBmdW4gdW5pZnkg
KE1BUCAoXywgbikpIHRtID0KICAgIHJlc3RvcmVfZmlmb19vcmRlciAoZmxhdHRlbiAobWFw
ICh0cmVlX3BhcnRpYWxfZm9sZGwgbWF0IGZpbmFsICgwLFt0bV0pKSBuKSkKICBoYW5kbGUg
RVJSX0VYTiBfID0+IHJhaXNlIEJVRyAidW5pZnkiICJzaG91bGQgbmV2ZXIgZmFpbCI7CmVu
ZDsKCigqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKikKKCogV2UgY2FuIG92ZXJsYXkgdGhlIGFi
b3ZlIHR5cGUgd2l0aCBhIHNpbXBsZSBsaXN0IHR5cGUuICAgICAgICAgICAgICAgICAgICAq
KQooKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICopCigqCnR5cGUgJ2Egc2ltcGxlID0gaW50ICog
aW50ICogdGVybSBsaXN0ICogJ2EgbGlzdDsKCnR5cGUgJ2EgdGVybV9tYXAgPSAoJ2Egc2lt
cGxlLCAnYSB0ZXJtX21hcCkgc3VtOwoKZnVuIGNoZWNrICgwLCBfLCB0LCBhKSA9CiAgSU5S
IChmcm9tX21hcGxldHMgKGZvbGRsIChmbiAoeCwgeHMpID0+IG9wfC0+IHggOjogeHMpIFtd
ICh6aXAgdCBhKSkpCiAgfCBjaGVjayBwID0gSU5MIHA7Cgp2YWwgZW1wdHkgOiAnYSB0ZXJt
X21hcCA9IElOUiBlbXB0eTsKCmZ1biBuZXcgbiA9IGNoZWNrIChuLCAwLCBbXSwgW10pOwoK
dmFsIGluc2VydCA9IGZuIG0gPT4KICAoZm4gSU5MIChuLCBzLCB0cywgeHMpID0+CiAgICAg
IChjYXNlIG0gb2YgdCB8LT4geCA9PiBjaGVjayAobiAtIDEsIHMgKyAxLCB0IDo6IHRzLCB4
IDo6IHhzKSkKICAgIHwgSU5SIGQgPT4gSU5SIChpbnNlcnQgbSBkKSk7Cgp2YWwgbWF0Y2gg
PSBmbiBJTkwgKF8sIF8sIF8sIHhzKSA9PiBLIChyZXYgeHMpIHwgSU5SIGQgPT4gbWF0Y2gg
ZDsKCnZhbCBtYXRjaGVkID0gZm4gSU5MIChfLCBfLCBfLCB4cykgPT4gSyAocmV2IHhzKSB8
IElOUiBkID0+IG1hdGNoZWQgZDsKCnZhbCB1bmlmeSA9IGZuIElOTCAoXywgXywgXywgeHMp
ID0+IEsgKHJldiB4cykgfCBJTlIgZCA9PiB1bmlmeSBkOwoKdmFsIHNpemUgPSBmbiBJTkwg
KF8sIHMsIF8sIF8pID0+IHMgfCBJTlIgZCA9PiBzaXplIGQ7Cgp2YWwgZnJvbV9tYXBsZXRz
ID0gSU5SIG8gZnJvbV9tYXBsZXRzOwoKdmFsIHRvX2xpc3QgPSBmbiBJTkwgKF8sIF8sIF8s
IHhzKSA9PiByZXYgeHMgfCBJTlIgZCA9PiB0b19saXN0IGQ7Cgp2YWwgcHBfdGVybV9tYXAg
PQogIGZuIHBwX2EgPT4gZm4gcHAgPT4KICAoZm4gSU5MIChfLCBfLCBfLCB4cykgPT4gcHBf
bGlzdCBwcF9hIHBwIHhzIHwgSU5SIGQgPT4gcHBfdGVybV9tYXAgcHBfYSBwcCBkKTsKKikK
CmVuZAooKiNsaW5lIDAuMCAiZm9sL0xpdGVyYWxOZXQxLnNpZyIqKQooKiA9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09ICopCigqIE1BVENISU5HIEFORCBVTklGSUNBVElPTiBGT1IgU0VUUyBPRiBM
SVRFUkFMUyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKikKKCogQ3JlYXRlZCBieSBK
b2UgSHVyZCwgSnVuZSAyMDAyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAqKQooKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICopCgpzaWduYXR1cmUgTGl0ZXJh
bE5ldDEgPQpzaWcKCnR5cGUgJ2EgcHAgICAgICAgICAgID0gJ2EgVXNlZnVsLnBwCnR5cGUg
Zm9ybXVsYSAgICAgICAgID0gVGVybTEuZm9ybXVsYQp0eXBlICgnYSwgJ2IpIG1hcGxldCA9
ICgnYSwgJ2IpIFRlcm0xLm1hcGxldAoKdHlwZSAnYSBsaXRlcmFsX21hcAoKdmFsIGVtcHR5
ICAgICAgICAgIDogJ2EgbGl0ZXJhbF9tYXAKdmFsIGluc2VydCAgICAgICAgIDogKGZvcm11
bGEsICdhKSBtYXBsZXQgLT4gJ2EgbGl0ZXJhbF9tYXAgLT4gJ2EgbGl0ZXJhbF9tYXAKdmFs
IG1hdGNoICAgICAgICAgIDogJ2EgbGl0ZXJhbF9tYXAgLT4gZm9ybXVsYSAtPiAnYSBsaXN0
CnZhbCBtYXRjaGVkICAgICAgICA6ICdhIGxpdGVyYWxfbWFwIC0+IGZvcm11bGEgLT4gJ2Eg
bGlzdAp2YWwgdW5pZnkgICAgICAgICAgOiAnYSBsaXRlcmFsX21hcCAtPiBmb3JtdWxhIC0+
ICdhIGxpc3QKdmFsIHNpemUgICAgICAgICAgIDogJ2EgbGl0ZXJhbF9tYXAgLT4gaW50CnZh
bCBzaXplX3Byb2ZpbGUgICA6ICdhIGxpdGVyYWxfbWFwIC0+IHt0IDogaW50LCBmIDogaW50
LCBwIDogaW50LCBuIDogaW50fQp2YWwgZnJvbV9tYXBsZXRzICAgOiAoZm9ybXVsYSwgJ2Ep
IG1hcGxldCBsaXN0IC0+ICdhIGxpdGVyYWxfbWFwCnZhbCB0b19saXN0ICAgICAgICA6ICdh
IGxpdGVyYWxfbWFwIC0+ICdhIGxpc3QKdmFsIHBwX2xpdGVyYWxfbWFwIDogJ2EgcHAgLT4g
J2EgbGl0ZXJhbF9tYXAgcHAKCmVuZAooKiNsaW5lIDAuMCAiZm9sL0xpdGVyYWxOZXQxLnNt
bCIqKQooKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09ICopCigqIE1BVENISU5HIEFORCBVTklGSUNB
VElPTiBGT1IgU0VUUyBPRiBMSVRFUkFMUyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
KikKKCogQ3JlYXRlZCBieSBKb2UgSHVyZCwgSnVuZSAyMDAyICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAqKQooKiA9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICop
CgooKgphcHAgbG9hZCBbIlVzZWZ1bCIsICJNb3NtbCIsICJUZXJtMSJdOwoqKQoKKCoKKikK
c3RydWN0dXJlIExpdGVyYWxOZXQxIDo+IExpdGVyYWxOZXQxID0Kc3RydWN0CgpvcGVuIFVz
ZWZ1bCBUZXJtMTsKCmluZml4ciB8LT4gOjo+IG9vOwoKc3RydWN0dXJlIFQgPSBUZXJtTmV0
MTsKCigqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKikKKCogTGl0ZXJhbCBuZXRzLiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAq
KQooKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICopCgp0eXBlICdhIGxpdGVyYWxfbWFwID0KICAo
J2EgVC50ZXJtX21hcCAqICdhIFQudGVybV9tYXApICogKChpbnQgKiAnYSBsaXN0KSAqIChp
bnQgKiAnYSBsaXN0KSk7Cgp2YWwgZW1wdHkgPSAoKFQuZW1wdHksIFQuZW1wdHkpLCAoKDAs
IFtdKSwgKDAsIFtdKSkpOwoKZnVuIGluc2VydCAoQXRvbSBhIHwtPiBiKSAoKHAsIG4pLCB0
ZikgICAgICAgPSAoKFQuaW5zZXJ0IChhIHwtPiBiKSBwLCBuKSwgdGYpCiAgfCBpbnNlcnQg
KE5vdCAoQXRvbSBhKSB8LT4gYikgKChwLCBuKSwgdGYpID0gKChwLCBULmluc2VydCAoYSB8
LT4gYikgbiksIHRmKQogIHwgaW5zZXJ0IChUcnVlIHwtPiBiKSAocG4sICgobiwgbCksIGYp
KSAgICA9IChwbiwgKChuICsgMSwgYiA6OiBsKSwgZikpCiAgfCBpbnNlcnQgKEZhbHNlIHwt
PiBiKSAocG4sICh0LCAobiwgbCkpKSAgID0gKHBuLCAodCwgKG4gKyAxLCBiIDo6IGwpKSkK
ICB8IGluc2VydCAoZiB8LT4gXykgXyA9IHJhaXNlIEJVRyAiaW5zZXJ0IiAoIm5vdCBhIGxp
dDogIl5mb3JtdWxhX3RvX3N0cmluZyBmKTsKCmZ1biBmcm9tX21hcGxldHMgbCA9IGZvbGRs
ICh1bmN1cnJ5IGluc2VydCkgZW1wdHkgbDsKCmZ1biB0b19saXN0ICgocG9zLCBuZWcpLCAo
KF8sIHQpLCAoXywgZikpKSA9CiAgcmV2IHQgQCByZXYgZiBAIFQudG9fbGlzdCBwb3MgQCBU
LnRvX2xpc3QgbmVnOwoKZnVuIHBwX2xpdGVyYWxfbWFwIHBwX2EgPSBwcF9tYXAgdG9fbGlz
dCAocHBfbGlzdCBwcF9hKTsKCmxvY2FsCiAgZnVuIHBvcyAgICAgKChwb3MsIF8gICksIF8g
ICAgICAgICAgICAgICApID0gVC5zaXplIHBvczsKICBmdW4gbmVnICAgICAoKF8sICAgbmVn
KSwgXyAgICAgICAgICAgICAgICkgPSBULnNpemUgbmVnOwogIGZ1biB0cnV0aCAgIChfLCAg
ICAgICAgICAoKG4sIF8pLCBfICAgICApKSA9IG47CiAgZnVuIGZhbHNpdHkgKF8sICAgICAg
ICAgIChfLCAgICAgIChuLCBfKSkpID0gbjsKaW4KICBmdW4gc2l6ZSBsICAgICAgICAgPSB0
cnV0aCBsICsgZmFsc2l0eSBsICsgcG9zIGwgKyBuZWcgbDsKICBmdW4gc2l6ZV9wcm9maWxl
IGwgPSB7dCA9IHRydXRoIGwsIGYgPSBmYWxzaXR5IGwsIHAgPSBwb3MgbCwgbiA9IG5lZyBs
fTsKZW5kOwoKZnVuIG1hdGNoICgocG9zLCBfKSwgXykgKEF0b20gYSkgPSBULm1hdGNoIHBv
cyBhCiAgfCBtYXRjaCAoKF8sIG5lZyksIF8pIChOb3QgKEF0b20gYSkpID0gVC5tYXRjaCBu
ZWcgYQogIHwgbWF0Y2ggKF8sICgoXywgdCksIF8pKSBUcnVlID0gcmV2IHQKICB8IG1hdGNo
IChfLCAoXywgKF8sIGYpKSkgRmFsc2UgPSByZXYgZgogIHwgbWF0Y2ggXyBfID0gcmFpc2Ug
QlVHICJtYXRjaCIgIm5vdCBhIGxpdGVyYWwiOwoKZnVuIG1hdGNoZWQgKChwb3MsIF8pLCBf
KSAoQXRvbSBhKSA9IFQubWF0Y2hlZCBwb3MgYQogIHwgbWF0Y2hlZCAoKF8sIG5lZyksIF8p
IChOb3QgKEF0b20gYSkpID0gVC5tYXRjaGVkIG5lZyBhCiAgfCBtYXRjaGVkIChfLCAoKF8s
IHQpLCBfKSkgVHJ1ZSA9IHJldiB0CiAgfCBtYXRjaGVkIChfLCAoXywgKF8sIGYpKSkgRmFs
c2UgPSByZXYgZgogIHwgbWF0Y2hlZCBfIF8gPSByYWlzZSBCVUcgIm1hdGNoZWQiICJub3Qg
YSBsaXRlcmFsIjsKCmZ1biB1bmlmeSAoKHBvcywgXyksIF8pIChBdG9tIGEpID0gVC51bmlm
eSBwb3MgYQogIHwgdW5pZnkgKChfLCBuZWcpLCBfKSAoTm90IChBdG9tIGEpKSA9IFQudW5p
ZnkgbmVnIGEKICB8IHVuaWZ5IChfLCAoKF8sIHQpLCBfKSkgVHJ1ZSA9IHJldiB0CiAgfCB1
bmlmeSAoXywgKF8sIChfLCBmKSkpIEZhbHNlID0gcmV2IGYKICB8IHVuaWZ5IF8gXyA9IHJh
aXNlIEJVRyAidW5pZnkiICJub3QgYSBsaXRlcmFsIjsKCmVuZAooKiNsaW5lIDAuMCAiZm9s
L1N1YnN1bWUxLnNpZyIqKQooKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICopCigqIEEgVFlQRSBG
T1IgU1VCU1VNUFRJT04gQ0hFQ0tJTkcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgKikKKCogQ3JlYXRlZCBieSBKb2UgSHVyZCwgQXByaWwgMjAwMiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKQooKiA9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09ICopCgpzaWduYXR1cmUgU3Vic3VtZTEgPQpzaWcKCnR5cGUgJ2EgcHAgICAg
ICAgICAgID0gJ2EgVXNlZnVsLnBwCnR5cGUgKCdhLCAnYikgbWFwbGV0ID0gKCdhLCAnYikg
VXNlZnVsLm1hcGxldAp0eXBlIGZvcm11bGEgICAgICAgICA9IFRlcm0xLmZvcm11bGEKdHlw
ZSBzdWJzdCAgICAgICAgICAgPSBTdWJzdDEuc3Vic3QKCnR5cGUgJ2Egc3Vic3VtZQoKdmFs
IGVtcHR5ICAgICAgICAgICAgIDogJ2Egc3Vic3VtZQp2YWwgYWRkICAgICAgICAgICAgICAg
OiAoZm9ybXVsYSBsaXN0LCAnYSkgbWFwbGV0IC0+ICdhIHN1YnN1bWUgLT4gJ2Egc3Vic3Vt
ZQp2YWwgc3Vic3VtZWQgICAgICAgICAgOiAnYSBzdWJzdW1lIC0+IGZvcm11bGEgbGlzdCAt
PiAoc3Vic3QgKiAnYSkgbGlzdAp2YWwgc3RyaWN0bHlfc3Vic3VtZWQgOiAnYSBzdWJzdW1l
IC0+IGZvcm11bGEgbGlzdCAtPiAoc3Vic3QgKiAnYSkgbGlzdAp2YWwgaW5mbyAgICAgICAg
ICAgICAgOiAnYSBzdWJzdW1lIC0+IHN0cmluZwp2YWwgcHBfc3Vic3VtICAgICAgICAgOiAn
YSBzdWJzdW1lIHBwCgplbmQKKCojbGluZSAwLjAgImZvbC9TdWJzdW1lMS5zbWwiKikKKCog
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PSAqKQooKiBBIFRZUEUgRk9SIFNVQlNVTVBUSU9OIENIRUNL
SU5HICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopCigqIENy
ZWF0ZWQgYnkgSm9lIEh1cmQsIEFwcmlsIDIwMDIgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgKikKKCogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqKQoKKCoKYXBw
IGxvYWQgWyJUaG0xIiwgIk1hdGNoMSJdOwoqKQoKKCoKKikKc3RydWN0dXJlIFN1YnN1bWUx
IDo+IFN1YnN1bWUxID0Kc3RydWN0CgppbmZpeCB8LT4gOjo+OwoKb3BlbiBVc2VmdWwgVGVy
bTEgTWF0Y2gxOwoKc3RydWN0dXJlIE4gPSBMaXRlcmFsTmV0MTsKCnZhbCBvZmlsdGVyICAg
ICAgID0gT3B0aW9uLmZpbHRlcjsKdHlwZSBzdWJzdCAgICAgICAgPSBTdWJzdDEuc3Vic3Q7
CnZhbCB8PD58ICAgICAgICAgID0gU3Vic3QxLnw8Pnw7CnZhbCBvcCA6Oj4gICAgICAgID0g
U3Vic3QxLjo6PjsKdmFsIHRlcm1fc3Vic3QgICAgPSBTdWJzdDEudGVybV9zdWJzdDsKdmFs
IGZvcm11bGFfc3Vic3QgPSBTdWJzdDEuZm9ybXVsYV9zdWJzdDsKCigqIC0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0gKikKKCogQ2hhdHRpbmcuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKQooKiAtLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tICopCgp2YWwgKCkgPSB0cmFjZXMgOj0ge21vZHVsZSA9ICJTdWJzdW1lMSIsIGFs
aWdubWVudCA9IEsgMX0gOjogIXRyYWNlczsKCmZ1biBjaGF0IGwgbSA9IHRyYWNlIHttb2R1
bGUgPSAiU3Vic3VtZTEiLCBtZXNzYWdlID0gbSwgbGV2ZWwgPSBsfTsKCigqIC0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0gKikKKCogSGVscGVyIGZ1bmN0aW9ucy4gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKQooKiAtLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tICopCgp2YWwgZnJvemVuX3ByZWZpeCA9ICJGUk9aRU5fXyI7CgpmdW4gbWtf
ZnJvemVuIHYgPSBGbiAoZnJvemVuX3ByZWZpeCBeIHYsIFtdKTsKCmxvY2FsCiAgdmFsIGNo
ayA9IFN0cmluZy5pc1ByZWZpeCBmcm96ZW5fcHJlZml4OwogIHZhbCBkZXN0ID0KICAgIGxl
dCB2YWwgbCA9IHNpemUgZnJvemVuX3ByZWZpeCBpbiBmbiBzID0+IFN0cmluZy5leHRyYWN0
IChzLCBsLCBOT05FKSBlbmQ7CmluCiAgZnVuIGRlc3RfZnJvemVuIChGbiAocywgW10pKSA9
CiAgICAoYXNzZXJ0IChjaGsgcykgKEVSUiAiZGVzdF9mcm96ZW4iICJub3QgYSBmcm96ZW4g
dmFyIik7IGRlc3QgcykKICAgIHwgZGVzdF9mcm96ZW4gXyA9IHJhaXNlIEVSUiAiZGVzdF9m
cm96ZW4iICJiYWQgc3RydWN0dXJlIjsKZW5kOwoKdmFsIGlzX2Zyb3plbiA9IGNhbiBkZXN0
X2Zyb3plbjsKCmZ1biBmcmVlemVfdmFycyBmbXMgPQogIGxldAogICAgdmFsIHZhcnMgPSBG
ViAobGlzdF9ta19kaXNqIGZtcykKICAgIHZhbCBzdWIgPSBmb2xkbCAoZm4gKHYsIHMpID0+
ICh2IHwtPiBta19mcm96ZW4gdikgOjo+IHMpIHw8PnwgdmFycwogIGluCiAgICBtYXAgKGZv
cm11bGFfc3Vic3Qgc3ViKSBmbXMKICBlbmQ7Cgpsb2NhbAogIGZ1biBmICh2IHwtPiBhKSA9
ICh2IHwtPiAoaWYgaXNfZnJvemVuIGEgdGhlbiBWYXIgKGRlc3RfZnJvemVuIGEpIGVsc2Ug
YSkpOwppbgogIHZhbCBkZWZyb3N0X3ZhcnMgPSBTdWJzdDEuZnJvbV9tYXBsZXRzIG8gbWFw
IGYgbyBTdWJzdDEudG9fbWFwbGV0czsKZW5kOwoKdmFsIGxpdF9zaXplID0gZm9ybXVsYV9z
aXplIG8gbGl0ZXJhbF9hdG9tOwoKdmFsIHNvcnRfbGl0ZXJhbHNfYnlfc2l6ZSA9CiAgbWFw
IHNuZCBvIHNvcnQgKGZuIChtLCBfKSA9PiBmbiAobiwgXykgPT4gbSA8PSBuKSBvCiAgbWFw
IChmbiBsaXQgPT4gKGxpdF9zaXplIGxpdCwgbGl0KSk7CgooKiAtLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tICopCigqIFRoZSBjb3JlIGVuZ2luZSBmb3Igc3Vic3VtcHRpb24gY2hlY2tpbmcuICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKikKKCogLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LSAqKQoKdHlwZSAnYSBzaW5mbyA9IHtzdWIgOiBzdWJzdCwgaGQgOiBmb3JtdWxhLCB0bCA6
IGZvcm11bGEgbGlzdCwgZmluIDogJ2F9OwoKdHlwZSAnYSBzdWJzID0gJ2Egc2luZm8gTi5s
aXRlcmFsX21hcDsKCmZ1biBhZGRfbGl0cyAoaSBhcyB7aGQsIC4uLn0pIChuZXQgOiAnYSBz
dWJzKSA9IE4uaW5zZXJ0IChoZCB8LT4gaSkgbmV0OwoKbG9jYWwKICBmdW4gc3Vic3VtIHN0
cmljdCBsaXRzID0KICAgIGxldAogICAgICB2YWwgYWNjZXB0ID0KICAgICAgICAoaWYgc3Ry
aWN0IHRoZW4gb2ZpbHRlciAobm9uIFN1YnN0MS5pc19yZW5hbWluZykgZWxzZSBTT01FKSBv
CiAgICAgICAgZGVmcm9zdF92YXJzCiAgICAgIHZhbCBpbXBvc3NpYmxlID0KICAgICAgICBs
ZXQgdmFsIGxpdF9uZXQgPSBOLmZyb21fbWFwbGV0cyAobWFwIChmbiBsID0+IChsIHwtPiAo
KSkpIGxpdHMpCiAgICAgICAgaW4gTGlzdC5leGlzdHMgKG51bGwgbyBOLm1hdGNoZWQgbGl0
X25ldCkKICAgICAgICBlbmQKICAgICAgZnVuIGV4dGVuZCBzdWIgbGl0cyBmaW4gbmV0ID0K
ICAgICAgICBpZiBpbXBvc3NpYmxlIGxpdHMgdGhlbiBuZXQKICAgICAgICBlbHNlCiAgICAg
ICAgICBjYXNlIHNvcnRfbGl0ZXJhbHNfYnlfc2l6ZSBsaXRzIG9mIFtdID0+IHJhaXNlIEJV
RyAiZXh0ZW5kIiAibnVsbCIKICAgICAgICAgIHwgaGQgOjogdGwgPT4gYWRkX2xpdHMge3N1
YiA9IHN1YiwgaGQgPSBoZCwgdGwgPSB0bCwgZmluID0gZmlufSBuZXQKICAgICAgZnVuIGV4
YW1pbmUgbGl0ICh7c3ViLCBoZCwgdGwsIGZpbn0sIHMgYXMgKG5ldCwgcmVzKSkgPQogICAg
ICAgIGNhc2UgdG90YWwgKG1hdGNobF9saXRlcmFscyBzdWIpIFsoaGQsIGxpdCldIG9mIE5P
TkUgPT4gcwogICAgICAgIHwgU09NRSBzdWIgPT4KICAgICAgICAgIGlmIG51bGwgdGwgdGhl
bgogICAgICAgICAgICBjYXNlIGFjY2VwdCBzdWIgb2YgU09NRSBzdWIgPT4gKG5ldCwgKHN1
YiwgZmluKSA6OiByZXMpIHwgTk9ORSA9PiBzCiAgICAgICAgICBlbHNlIChleHRlbmQgc3Vi
IChtYXAgKGZvcm11bGFfc3Vic3Qgc3ViKSB0bCkgZmluIG5ldCwgcmVzKQogICAgICBmdW4g
bmFycm93MSBuZXQgKGxpdCwgcykgPSBmb2xkbCAoZXhhbWluZSBsaXQpIHMgKE4ubWF0Y2gg
bmV0IGxpdCkKICAgICAgZnVuIG5hcnJvdyAobmV0LCByZXMpID0KICAgICAgICBpZiBOLnNp
emUgbmV0ID0gMCB0aGVuIHJlcwogICAgICAgIGVsc2UgbmFycm93IChmb2xkbCAobmFycm93
MSBuZXQpIChOLmVtcHR5LCByZXMpIGxpdHMpCiAgICBpbgogICAgICBuYXJyb3cKICAgIGVu
ZDsKaW4KICBmdW4gc3Vic3VtZXMgc3RyaWN0IG5ldCBsaXRzID0KICAgIHN1YnN1bSBzdHJp
Y3QgKGZyZWV6ZV92YXJzIGxpdHMpIChuZXQsIFtdKQogICAgaGFuZGxlIEVSUl9FWE4gXyA9
PiByYWlzZSBCVUcgInN1YnN1bWVzIiAic2hvdWxkbid0IGZhaWwiOwplbmQ7CgooKiAtLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tICopCigqIFRoZSB1c2VyIGludGVyZmFjZS4gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKikKKCogLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLSAqKQoKdHlwZSAnYSBzdWJzdW1lID0gKCdhLCAnYSBzdWJzKSBzdW07
Cgp2YWwgZW1wdHkgOiAnYSBzdWJzdW1lID0gSU5SIE4uZW1wdHk7CgpmdW4gYWRkIF8gKHMg
YXMgSU5MIF8pID0gcwogIHwgYWRkIChmbXMgfC0+IGZpbikgKElOUiBuZXQpID0KICBjYXNl
IHNvcnRfbGl0ZXJhbHNfYnlfc2l6ZSBmbXMgb2YgW10gPT4gSU5MIGZpbgogIHwgaCA6OiB0
ID0+IElOUiAoYWRkX2xpdHMge3N1YiA9IHw8PnwsIGhkID0gaCwgdGwgPSB0LCBmaW4gPSBm
aW59IG5ldCk7CgpmdW4gc3Vic3VtZWQgKElOTCBmaW4pIF8gPSBbKHw8PnwsIGZpbildCiAg
fCBzdWJzdW1lZCAoSU5SIF8pIFtdID0gW10KICB8IHN1YnN1bWVkIChJTlIgbmV0KSBsaXRz
ID0gc3Vic3VtZXMgZmFsc2UgbmV0IGxpdHM7CgpmdW4gc3RyaWN0bHlfc3Vic3VtZWQgXyBb
XSA9IFtdCiAgfCBzdHJpY3RseV9zdWJzdW1lZCAoSU5MIGZpbikgXyA9IFsofDw+fCwgZmlu
KV0KICB8IHN0cmljdGx5X3N1YnN1bWVkIChJTlIgbmV0KSBsaXRzID0gc3Vic3VtZXMgdHJ1
ZSBuZXQgbGl0czsKCmZ1biBpbmZvICgoSU5MIF8pIDogJ2Egc3Vic3VtZSkgPSAiKiIKICB8
IGluZm8gKElOUiBuZXQpID0gaW50X3RvX3N0cmluZyAoTi5zaXplIG5ldCk7Cgp2YWwgcHBf
c3Vic3VtID0gZm4geiA9PiBwcF9tYXAgaW5mbyBwcF9zdHJpbmcgejsKCigqIFF1aWNrIHRl
c3RpbmcKcXVvdGF0aW9uIDo9IHRydWU7Cmluc3RhbGxQUCBwcF9mb3JtdWxhOwppbnN0YWxs
UFAgcHBfdGVybTsKaW5zdGFsbFBQIHBwX3N1YnN0OwppbnN0YWxsUFAgcHBfdGhtOwpmcmVl
emVfdmFycyAobWFwIHBhcnNlIFtgeCArIHkgPD0gMGAsIGB4ID0gX194KClgXSk7CnZhbCBz
ID0gYWRkX3N1YnN1bWVyIChBWElPTSAobWFwIHBhcnNlIFtgcCh4LDMpYCwgYHAoMix5KWBd
KSkgZW1wdHlfc3Vic3VtOwpzdWJzdW1lZCBzIChtYXAgcGFyc2UgW2BwKDIsMylgXSk7Ciop
CgplbmQKKCojbGluZSAwLjAgImZvbC9UcHRwMS5zaWciKikKKCogPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PSAqKQooKiBJTlRFUkZBQ0UgVE8gVFBUUCBQUk9CTEVNIEZJTEVTICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopCigqIENyZWF0ZWQgYnkgSm9lIEh1
cmQsIERlY2VtYmVyIDIwMDEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgKikKKCogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqKQoKc2lnbmF0dXJlIFRwdHAxID0Kc2ln
Cgp0eXBlIHRlcm0gICAgPSBUZXJtMS50ZXJtCnR5cGUgZm9ybXVsYSA9IFRlcm0xLmZvcm11
bGEKCigqIE1haW50YWluaW5nIGRpZmZlcmVudCByZWxhdGlvbiBhbmQgZnVuY3Rpb24gbmFt
ZXMgaW4gVFBUUCBwcm9ibGVtcyAqKQp2YWwgcmVuYW1pbmcgOiB7dHB0cCA6IHN0cmluZywg
Zm9sIDogc3RyaW5nLCBhcml0eSA6IGludH0gbGlzdCByZWYKCigqIFBhcnNpbmc6IHBhc3Mg
aW4gYSBmaWxlbmFtZSAqKQp2YWwgcGFyc2VfY25mIDogc3RyaW5nIC0+IGZvcm11bGEKCmVu
ZAooKiNsaW5lIDAuMCAiZm9sL1RwdHAxLnNtbCIqKQooKiA9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
ICopCigqIElOVEVSRkFDRSBUTyBUUFRQIFBST0JMRU0gRklMRVMgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgKikKKCogQ3JlYXRlZCBieSBKb2UgSHVyZCwg
RGVjZW1iZXIgMjAwMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAq
KQooKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09ICopCgooKgphcHAgbG9hZCBbIlN0cmVhbSIsICJV
c2VmdWwiLCAiUGFyc2VyIiwgIlRlcm0xIl07CiopCgooKgoqKQpzdHJ1Y3R1cmUgVHB0cDEg
Oj4gVHB0cDEgPQpzdHJ1Y3QKCm9wZW4gUGFyc2VyIFVzZWZ1bCBUZXJtMTsKCmluZml4ciA5
ID4+Kys7CmluZml4ciA4ICsrOwppbmZpeHIgNyA+PjsKaW5maXhyIDYgfHw7CmluZml4IHwt
PjsKCnN0cnVjdHVyZSBTID0gU3RyZWFtOwoKKCogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqKQoo
KiBBYmJyZXZpYXRpbmcgcmVsYXRpb24gYW5kIGZ1bmN0aW9uIG5hbWVzIGluIFRQVFAgcHJv
YmxlbXMuICAgICAgICAgICAgICAgICopCigqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKikKCnR5
cGUgcmVuYW1lID0ge3RwdHAgOiBzdHJpbmcsIGZvbCA6IHN0cmluZywgYXJpdHkgOiBpbnR9
OwoKdmFsIHJlbmFtaW5nIDogcmVuYW1lIGxpc3QgcmVmID0gcmVmIFt7dHB0cCA9ICJlcXVh
bCIsIGZvbCA9ICI9IiwgYXJpdHkgPSAyfV07CgooKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICop
CigqIFBhcnNpbmc6IHBhc3MgaW4gYSBmaWxlbmFtZS4gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgKikKKCogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqKQoK
dmFsIGNvbW1lbnQgPSBlcXVhbCAjIiUiIG8gaGQgbyBleHBsb2RlOwoKdmFsIGlucHV0X2xp
bmVzID0gUy5maWx0ZXIgKG5vbiBjb21tZW50KSBvIFMuZnJvbV90ZXh0ZmlsZTsKCnZhbCBp
bnB1dF9jaGFycyA9IFMuZmxhdHRlbiBvIFMubWFwIChTLmZyb21fbGlzdCBvIGV4cGxvZGUp
OwoKZGF0YXR5cGUgdG9rX3R5cGUgPSBMb3dlciB8IFVwcGVyIHwgU3ltYm9sIHwgUHVuY3Q7
Cgp2YWwgbGV4ZXIgPQogIChtYW55IChzb21lIHNwYWNlKSArKwogICAoKChzb21lIGxvd2Vy
IHx8IHNvbWUgZGlnaXQpICsrIG1hbnkgKHNvbWUgYWxwaGFudW0pID4+CiAgICAgKGZuIChh
LCBiKSA9PiAoTG93ZXIsIGltcGxvZGUgKGEgOjogYikpKSkgfHwKICAgIChzb21lIHVwcGVy
ICsrIG1hbnkgKHNvbWUgYWxwaGFudW0pID4+CiAgICAgKGZuIChhLCBiKSA9PiAoVXBwZXIs
IGltcGxvZGUgKGEgOjogYikpKSkgfHwKICAgIChhdGxlYXN0b25lIChzb21lIHN5bWJvbCkg
Pj4gKGZuIGwgPT4gKFN5bWJvbCwgaW1wbG9kZSBsKSkpIHx8CiAgICAoc29tZSBwdW5jdCA+
PiAoZm4gYyA9PiAoUHVuY3QsIHN0ciBjKSkpKSkgPj4gc25kOwoKdmFsIGxleCA9IG1hbnkg
bGV4ZXIgKysgKG1hbnkgKHNvbWUgc3BhY2UpICsrIGZpbmlzaGVkKSA+PiBmc3Q7Cgp2YWwg
aW5wdXRfdG9rcyA9IFMuZnJvbV9saXN0IG8gZnN0IG8gbGV4OwoKZnVuIFZhcicgIlQiID0g
VmFyICJUJyIKICB8IFZhcicgIkYiID0gVmFyICJGJyIKICB8IFZhcicgdiA9IFZhciAoaWYg
IXZhcl9zdHJpbmcgdiB0aGVuIHYgZWxzZSAidl8iIF4gdik7Cgpsb2NhbAogIGZ1biB2ZXJp
ZnkgKGYsIGEpID0KICAgIChpZiAhdmFyX3N0cmluZyBmIHRoZW4gKGlmIG51bGwgYSB0aGVu
ICJjXyIgZWxzZSAiZl8iKSBeIGYgZWxzZSBmLCBhKTsKICBmdW4gbWFwcGVkIChmLCBhKSAo
bSA6IHJlbmFtZSBsaXN0KSA9CiAgICBsZXQKICAgICAgIGZ1biBnIHt0cHRwLCBhcml0eSwg
Zm9sID0gX30gPSB0cHRwID0gZiBhbmRhbHNvIGFyaXR5ID0gbGVuZ3RoIGEKICAgIGluIGNh
c2UgTGlzdC5maW5kIGcgbSBvZiBTT01FIHtmb2wsIC4uLn0gPT4gKGZvbCwgYSkgfCBOT05F
ID0+IHZlcmlmeSAoZiwgYSkKICAgIGVuZDsKaW4KICBmdW4gRm4nICAgQSA9IEZuICAgKG1h
cHBlZCBBICghcmVuYW1pbmcpKTsKZW5kOwoKZnVuIHRlcm1fcGFyc2VyIGlucHV0ID0KICAo
KHNvbWUgKGVxdWFsIFVwcGVyIG8gZnN0KSA+PiAoVmFyJyBvIHNuZCkpIHx8CiAgICgoc29t
ZSAoZXF1YWwgTG93ZXIgbyBmc3QpID4+IHNuZCkgKysKICAgIChvcHRpb25hbAogICAgIChl
eGFjdCAoUHVuY3QsICIoIikgKysgdGVybV9wYXJzZXIgKysKICAgICAgbWFueSAoKGV4YWN0
IChQdW5jdCwgIiwiKSArKyB0ZXJtX3BhcnNlcikgPj4gc25kKSArKwogICAgICBleGFjdCAo
UHVuY3QsICIpIikpID4+CiAgICAgKGZuIFNPTUUgKF8sICh0LCAodHMsIF8pKSkgPT4gdCA6
OiB0cyB8IE5PTkUgPT4gW10pKSA+PgogICAgRm4nKSkgaW5wdXQ7Cgp2YWwgbGl0ZXJhbF9w
YXJzZXIgPQogICgoZXhhY3QgKFN5bWJvbCwgIisrIikgPj4gSyB0cnVlIHx8IGV4YWN0IChT
eW1ib2wsICItLSIpID4+IEsgZmFsc2UpICsrCiAgIHRlcm1fcGFyc2VyKSA+PgogIChmbiAo
cywgdCkgPT4gbWtfbGl0ZXJhbCAocywgQXRvbSAoY2FzZSB0IG9mIFZhciB2ID0+IEZuICh2
LCBbXSkgfCBfID0+IHQpKSk7Cgp2YWwgY2xhdXNlX3BhcnNlciA9CiAgKGV4YWN0IChMb3dl
ciwgImlucHV0X2NsYXVzZSIpICsrIGV4YWN0IChQdW5jdCwgIigiKSArKyBhbnkgKysKICAg
ZXhhY3QgKFB1bmN0LCAiLCIpICsrIGFueSArKyBleGFjdCAoUHVuY3QsICIsIikgKysgZXhh
Y3QgKFB1bmN0LCAiWyIpICsrCiAgIGxpdGVyYWxfcGFyc2VyICsrIG1hbnkgKChleGFjdCAo
UHVuY3QsICIsIikgKysgbGl0ZXJhbF9wYXJzZXIpID4+IHNuZCkgKysKICAgZXhhY3QgKFB1
bmN0LCAiXSIpICsrIGV4YWN0IChQdW5jdCwgIikiKSArKyBleGFjdCAoUHVuY3QsICIuIikp
ID4+CiAgKGZuIChfLCAoXywgKG5hbWUsIChfLCAodHlwLCAoXywgKF8sIChsLCAobHMsIF8p
KSkpKSkpKSkgPT4KICAgKHNuZCBuYW1lLCBzbmQgdHlwLCBsIDo6IGxzKSk7Cgp2YWwgY25m
X3BhcnNlciA9IGZzdCBvICgobWFueSBjbGF1c2VfcGFyc2VyICsrIGZpbmlzaGVkKSA+PiBm
c3QpOwoKbG9jYWwKICBmdW4gY3ljbGUgXyBfIChbXSwgXykgPSByYWlzZSBCVUcgImN5Y2xl
IiAiIgogICAgfCBjeWNsZSBmIHYgKGggOjogdCwgYXZvaWQpID0KICAgIGxldCB2YWwgaCcg
PSBmIGggYXZvaWQgaW4gKGgnLCAodCBAIFtoXSwgaCcgOjogYXZvaWQpKSBlbmQ7CmluICAg
IAogIGZ1biBnZW5lcmFsaXplX2NsYXVzZSBmbSA9CiAgICBsZXQKICAgICAgb3BlbiBTdWJz
dDEKICAgICAgdmFsIHZhcnMgPSBGViBmbQogICAgICB2YWwgbnZhcnMgPSBsZW5ndGggdmFy
cwogICAgICB2YWwgdmFyX2ZuID0gaWYgbnZhcnMgPD0gMTUgdGhlbiB2YXJpYW50IGVsc2Ug
dmFyaWFudF9udW0KICAgICAgdmFsIG5ld3MgPQogICAgICAgIGlmIG52YXJzID0gNiB0aGVu
IFsieCIsICJ5IiwgInoiLCAieCciLCAieSciLCAieiciXQogICAgICAgIGVsc2UgZnN0ICht
YXBzIChjeWNsZSB2YXJfZm4pIHZhcnMgKFsieCIsICJ5IiwgInoiLCAidiIsICJ3Il0sIFtd
KSkKICAgICAgdmFsIHN1YiA9IGZyb21fbWFwbGV0cyAoemlwd2l0aCAoZm4gdiA9PiBmbiB4
ID0+IHYgfC0+IFZhciB4KSB2YXJzIG5ld3MpCiAgICBpbgogICAgICBnZW5lcmFsaXplIChm
b3JtdWxhX3N1YnN0IHN1YiBmbSkKICAgIGVuZDsKZW5kOwoKdmFsIGlucHV0X2NuZiA9CiAg
KGZuIChhLCBiKSA9PiBJbXAgKGEsIEltcCAoYiwgRmFsc2UpKSkgbwogIERmIChsaXN0X21r
X2NvbmogbyBtYXAgKGdlbmVyYWxpemVfY2xhdXNlIG8gbGlzdF9ta19kaXNqIG8gIzMpKSBv
CiAgTGlzdC5wYXJ0aXRpb24gKG5vdCBvIGVxdWFsICJjb25qZWN0dXJlIiBvICMyKSBvIGNu
Zl9wYXJzZXI7Cgp2YWwgcGFyc2VfY25mID0gaW5wdXRfY25mIG8gaW5wdXRfdG9rcyBvIGlu
cHV0X2NoYXJzIG8gaW5wdXRfbGluZXM7CgplbmQKKCojbGluZSAwLjAgImZvbC9UaG0xLnNp
ZyIqKQooKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09ICopCigqIElOVEVSRkFDRSBUTyBUSEUgTENG
LVNUWUxFIExPR0lDQUwgS0VSTkVMLCBQTFVTIFNPTUUgREVSSVZFRCBSVUxFUyAgICAgICAg
KikKKCogQ3JlYXRlZCBieSBKb2UgSHVyZCwgU2VwdGVtYmVyIDIwMDEgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAqKQooKiA9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICop
CgpzaWduYXR1cmUgVGhtMSA9CnNpZwoKdHlwZSAnYSBwcCA9ICdhIFVzZWZ1bC5wcAoKaW5j
bHVkZSBLZXJuZWwxCgooKiBBbm5vdGF0ZWQgcHJpbWl0aXZlIGluZmVyZW5jZXMgKikKZGF0
YXR5cGUgaW5mZXJlbmNlJyA9CiAgQXhpb20nICAgIG9mIGZvcm11bGEgbGlzdAp8IFJlZmwn
ICAgICBvZiB0ZXJtCnwgQXNzdW1lJyAgIG9mIGZvcm11bGEKfCBJbnN0JyAgICAgb2Ygc3Vi
c3QgKiB0aG0KfCBGYWN0b3InICAgb2YgdGhtCnwgUmVzb2x2ZScgIG9mIGZvcm11bGEgKiB0
aG0gKiB0aG0KfCBFcXVhbGl0eScgb2YgZm9ybXVsYSAqIGludCBsaXN0ICogdGVybSAqIGJv
b2wgKiB0aG0KCnZhbCBwcmltaXRpdmVfaW5mZXJlbmNlIDogaW5mZXJlbmNlJyAtPiB0aG0K
CigqIFVzZXItZnJpZW5kbHkgZGVzdHJ1Y3RvcnMgKikKdmFsIGNsYXVzZSAgICA6IHRobSAt
PiBmb3JtdWxhIGxpc3QKdmFsIGluZmVyZW5jZSA6IHRobSAtPiBpbmZlcmVuY2UnCnZhbCBw
cm9vZiAgICAgOiB0aG0gLT4gKHRobSAqIGluZmVyZW5jZScpIGxpc3QKCigqIFByZXR0eS1w
cmludGluZyBvZiB0aGVvcmVtcyBhbmQgaW5mZXJlbmNlcyAqKQp2YWwgcHBfdGhtICAgICAg
ICAgICAgICAgOiB0aG0gcHAKdmFsIHBwX2luZmVyZW5jZSAgICAgICAgIDogaW5mZXJlbmNl
IHBwCnZhbCBwcF9pbmZlcmVuY2UnICAgICAgICA6IGluZmVyZW5jZScgcHAKdmFsIHBwX3By
b29mICAgICAgICAgICAgIDogKHRobSAqIGluZmVyZW5jZScpIGxpc3QgcHAKdmFsIHRobV90
b19zdHJpbmcnICAgICAgIDogaW50IC0+IHRobSAtPiBzdHJpbmcgICAgICAgICgqIHB1cmVs
eSBmdW5jdGlvbmFsICopCnZhbCBpbmZlcmVuY2VfdG9fc3RyaW5nJyA6IGludCAtPiBpbmZl
cmVuY2UnIC0+IHN0cmluZwp2YWwgdGhtX3RvX3N0cmluZyAgICAgICAgOiB0aG0gLT4gc3Ry
aW5nICAgICAgICAgICAgICAgKCogdXNpbmcgIUxJTkVfTEVOR1RIICopCnZhbCBpbmZlcmVu
Y2VfdG9fc3RyaW5nICA6IGluZmVyZW5jZScgLT4gc3RyaW5nCgooKiBBIHRvdGFsIGNvbXBh
cmlzb24gZnVuY3Rpb24gZm9yIHRoZW9yZW1zICopCnZhbCB0aG1fY29tcGFyZSA6IHRobSAq
IHRobSAtPiBvcmRlcgoKKCogQ29udHJhZGljdGlvbnMgYW5kIHVuaXQgY2xhdXNlcyAqKQp2
YWwgaXNfY29udHJhZGljdGlvbiA6IHRobSAtPiBib29sCnZhbCBkZXN0X3VuaXQgICAgICAg
IDogdGhtIC0+IGZvcm11bGEKdmFsIGlzX3VuaXQgICAgICAgICAgOiB0aG0gLT4gYm9vbAoK
KCogRGVyaXZlZCBydWxlcyBhbmQgdGhlb3JlbXMgKikKdmFsIENPTlRSICAgICAgICAgIDog
Zm9ybXVsYSAtPiB0aG0gLT4gdGhtCnZhbCBXRUFLRU4gICAgICAgICA6IGZvcm11bGEgbGlz
dCAtPiB0aG0gLT4gdGhtCnZhbCBGUkVTSF9WQVJTICAgICA6IHRobSAtPiB0aG0KdmFsIEZS
RVNIX1ZBUlNMICAgIDogdGhtIGxpc3QgLT4gdGhtIGxpc3QKdmFsIFVOSVRfU1FVQVNIICAg
IDogdGhtIC0+IHRobQp2YWwgUkVGTEVYSVZJVFkgICAgOiB0aG0KdmFsIFNZTU1FVFJZICAg
ICAgIDogdGhtCnZhbCBUUkFOU0lUSVZJVFkgICA6IHRobQp2YWwgRlVOX0NPTkdSVUVOQ0Ug
OiBzdHJpbmcgKiBpbnQgLT4gdGhtCnZhbCBSRUxfQ09OR1JVRU5DRSA6IHN0cmluZyAqIGlu
dCAtPiB0aG0KCmVuZAooKiNsaW5lIDAuMCAiZm9sL1RobTEuc21sIiopCigqID09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0gKikKKCogSU5URVJGQUNFIFRPIFRIRSBMQ0YtU1RZTEUgTE9HSUNBTCBL
RVJORUwsIFBMVVMgU09NRSBERVJJVkVEIFJVTEVTICAgICAgICAqKQooKiBDcmVhdGVkIGJ5
IEpvZSBIdXJkLCBTZXB0ZW1iZXIgMjAwMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICopCigqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKikKCigqCmFwcCBsb2FkIFsi
VXNlZnVsIiwgIlRlcm0xIiwgIktlcm5lbDEiLCAiTWF0Y2gxIl07CiopCgooKgoqKQpzdHJ1
Y3R1cmUgVGhtMSA6PiBUaG0xID0Kc3RydWN0CgpvcGVuIFVzZWZ1bCBUZXJtMSBLZXJuZWwx
IE1hdGNoMTsKCmluZml4ciB8LT4gOjo+IG9vICMjOwoKdHlwZSBzdWJzdCAgICAgICAgPSBT
dWJzdDEuc3Vic3Q7CnZhbCB8PD58ICAgICAgICAgID0gU3Vic3QxLnw8Pnw7CnZhbCBvcCA6
Oj4gICAgICAgID0gU3Vic3QxLjo6PjsKdmFsIHRlcm1fc3Vic3QgICAgPSBTdWJzdDEudGVy
bV9zdWJzdDsKdmFsIGZvcm11bGFfc3Vic3QgPSBTdWJzdDEuZm9ybXVsYV9zdWJzdDsKdmFs
IHBwX3N1YnN0ICAgICAgPSBTdWJzdDEucHBfc3Vic3Q7CgooKiAtLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tICopCigqIEFubm90YXRlZCBwcmltaXRpdmUgaW5mZXJlbmNlcy4gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKikKKCogLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LSAqKQoKZGF0YXR5cGUgaW5mZXJlbmNlJyA9CiAgQXhpb20nICAgIG9mIGZvcm11bGEgbGlz
dAp8IFJlZmwnICAgICBvZiB0ZXJtCnwgQXNzdW1lJyAgIG9mIGZvcm11bGEKfCBJbnN0JyAg
ICAgb2Ygc3Vic3QgKiB0aG0KfCBGYWN0b3InICAgb2YgdGhtCnwgUmVzb2x2ZScgIG9mIGZv
cm11bGEgKiB0aG0gKiB0aG0KfCBFcXVhbGl0eScgb2YgZm9ybXVsYSAqIGludCBsaXN0ICog
dGVybSAqIGJvb2wgKiB0aG0KCmZ1biBwcmltaXRpdmVfaW5mZXJlbmNlIChBeGlvbScgICAg
Y2wgICAgICAgICAgICAgICkgPSBBWElPTSBjbAogIHwgcHJpbWl0aXZlX2luZmVyZW5jZSAo
UmVmbCcgICAgIHRtICAgICAgICAgICAgICApID0gUkVGTCB0bQogIHwgcHJpbWl0aXZlX2lu
ZmVyZW5jZSAoQXNzdW1lJyAgIGwgICAgICAgICAgICAgICApID0gQVNTVU1FIGwKICB8IHBy
aW1pdGl2ZV9pbmZlcmVuY2UgKEluc3QnICAgICAocywgdGgpICAgICAgICAgKSA9IElOU1Qg
cyB0aAogIHwgcHJpbWl0aXZlX2luZmVyZW5jZSAoRmFjdG9yJyAgIHRoICAgICAgICAgICAg
ICApID0gRkFDVE9SIHRoCiAgfCBwcmltaXRpdmVfaW5mZXJlbmNlIChSZXNvbHZlJyAgKGws
IHRoMSwgdGgyKSAgICkgPSBSRVNPTFZFIGwgdGgxIHRoMgogIHwgcHJpbWl0aXZlX2luZmVy
ZW5jZSAoRXF1YWxpdHknIChsLCBwLCB0LCBzLCB0aCkpID0gRVFVQUxJVFkgbCBwIHQgcyB0
aDsKCnZhbCBjbGF1c2UgPSBmc3QgbyBkZXN0X3RobTsKCigqIC0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0gKikKKCogUHJldHR5LXByaW50aW5nIG9mIHRoZW9yZW1zICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKQooKiAtLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
ICopCgpmdW4gcHBfdGhtIHBwIHRoID0KICAoUFAuYmVnaW5fYmxvY2sgcHAgUFAuSU5DT05T
SVNURU5UIDM7CiAgIFBQLmFkZF9zdHJpbmcgcHAgInwtICI7CiAgIHBwX2Zvcm11bGEgcHAg
KGxpc3RfbWtfZGlzaiAoY2xhdXNlIHRoKSk7CiAgIFBQLmVuZF9ibG9jayBwcCk7Cgpsb2Nh
bAogIGZ1biBpbmZfdG9fc3RyaW5nIEF4aW9tICAgID0gIkF4aW9tIgogICAgfCBpbmZfdG9f
c3RyaW5nIFJlZmwgICAgID0gIlJlZmwiCiAgICB8IGluZl90b19zdHJpbmcgQXNzdW1lICAg
PSAiQXNzdW1lIgogICAgfCBpbmZfdG9fc3RyaW5nIEluc3QgICAgID0gIkluc3QiCiAgICB8
IGluZl90b19zdHJpbmcgRmFjdG9yICAgPSAiRmFjdG9yIgogICAgfCBpbmZfdG9fc3RyaW5n
IFJlc29sdmUgID0gIlJlc29sdmUiCiAgICB8IGluZl90b19zdHJpbmcgRXF1YWxpdHkgPSAi
RXF1YWxpdHkiOwppbgogIHZhbCBwcF9pbmZlcmVuY2UgPSBwcF9tYXAgaW5mX3RvX3N0cmlu
ZyBwcF9zdHJpbmc7CmVuZDsKCmxvY2FsCiAgZnVuIHBwX2luZiAoQXhpb20nICAgIGEpID0g
KEF4aW9tLCAgIEMgKHBwX2xpc3QgcHBfZm9ybXVsYSkgICAgICAgICAgICAgICAgIGEpCiAg
ICB8IHBwX2luZiAoUmVmbCcgICAgIGEpID0gKFJlZmwsICAgIEMgcHBfdGVybSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGEpCiAgICB8IHBwX2luZiAoQXNzdW1lJyAgIGEpID0g
KEFzc3VtZSwgIEMgcHBfZm9ybXVsYSAgICAgICAgICAgICAgICAgICAgICAgICAgIGEpCiAg
ICB8IHBwX2luZiAoSW5zdCcgICAgIGEpID0gKEluc3QsICAgIEMgKHBwX3BhaXIgcHBfc3Vi
c3QgcHBfdGhtKSAgICAgICAgICAgIGEpCiAgICB8IHBwX2luZiAoRmFjdG9yJyAgIGEpID0g
KEZhY3RvciwgIEMgcHBfdGhtICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGEpCiAg
ICB8IHBwX2luZiAoUmVzb2x2ZScgIGEpID0gKFJlc29sdmUsIEMgKHBwX3RyaXBsZSBwcF9m
b3JtdWxhIHBwX3RobSBwcF90aG0pIGEpCiAgICB8IHBwX2luZiAoRXF1YWxpdHknIChsaXQs
IHAsIHIsIGxyLCB0aCkpID0KICAgIChFcXVhbGl0eSwKICAgICBDIChwcF9yZWNvcmQgWygi
bGl0IiwgIHVuaXRfcHAgcHBfZm9ybXVsYSBsaXQpLAogICAgICAgICAgICAgICAgICAgKCJw
YXRoIiwgdW5pdF9wcCAocHBfbGlzdCBwcF9pbnQpIHApLAogICAgICAgICAgICAgICAgICAg
KCJyZXMiLCAgdW5pdF9wcCBwcF90ZXJtIHIpLAogICAgICAgICAgICAgICAgICAgKCJsciIs
ICAgdW5pdF9wcCBwcF9ib29sIGxyKSwKICAgICAgICAgICAgICAgICAgICgidGhtIiwgIHVu
aXRfcHAgcHBfdGhtIHRoKV0pICgpKTsKaW4KICBmdW4gcHBfaW5mZXJlbmNlJyBwcCBpbmYg
PQogIGxldAogICAgb3BlbiBQUAogICAgdmFsIChpLCBwcGYpID0gcHBfaW5mIGluZgogIGlu
CiAgICAoYmVnaW5fYmxvY2sgcHAgSU5DT05TSVNURU5UIDA7CiAgICAgcHBfaW5mZXJlbmNl
IHBwIGk7CiAgICAgYWRkX2JyZWFrIHBwICgxLCAwKTsKICAgICBwcGYgcHA7CiAgICAgZW5k
X2Jsb2NrIHBwKQogIGVuZDsKZW5kOwoKdmFsIHBwX3Byb29mID0gcHBfbGlzdCAocHBfcGFp
ciBwcF90aG0gcHBfaW5mZXJlbmNlJyk7CgooKiBQdXJlbHkgZnVuY3Rpb25hbCBwcmV0dHkt
cHJpbnRpbmcgKikKCmZ1biB0aG1fdG9fc3RyaW5nJyAgICAgICBsZW4gPSBQUC5wcF90b19z
dHJpbmcgbGVuIHBwX3RobTsKZnVuIGluZmVyZW5jZV90b19zdHJpbmcnIGxlbiA9IFBQLnBw
X3RvX3N0cmluZyBsZW4gcHBfaW5mZXJlbmNlJzsKCigqIFByZXR0eS1wcmludGluZyB1c2lu
ZyAhTElORV9MRU5HVEggKikKCmZ1biB0aG1fdG9fc3RyaW5nICAgICAgIHRoICA9IHRobV90
b19zdHJpbmcnICAgICAgICghTElORV9MRU5HVEgpIHRoOwpmdW4gaW5mZXJlbmNlX3RvX3N0
cmluZyBpbmYgPSBpbmZlcmVuY2VfdG9fc3RyaW5nJyAoIUxJTkVfTEVOR1RIKSBpbmY7Cgoo
KiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tICopCigqIEEgdG90YWwgY29tcGFyaXNvbiBmdW5jdGlv
biBmb3IgdGhlb3JlbXMuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKikKKCog
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLSAqKQoKbG9jYWwKICBmdW4gY21wIEF4aW9tICAgIEF4aW9t
ICAgID0gRVFVQUwKICAgIHwgY21wIEF4aW9tICAgIF8gICAgICAgID0gTEVTUwogICAgfCBj
bXAgXyAgICAgICAgQXhpb20gICAgPSBHUkVBVEVSCiAgICB8IGNtcCBSZWZsICAgICBSZWZs
ICAgICA9IEVRVUFMCiAgICB8IGNtcCBSZWZsICAgICBfICAgICAgICA9IExFU1MKICAgIHwg
Y21wIF8gICAgICAgIFJlZmwgICAgID0gR1JFQVRFUgogICAgfCBjbXAgQXNzdW1lICAgQXNz
dW1lICAgPSBFUVVBTAogICAgfCBjbXAgQXNzdW1lICAgXyAgICAgICAgPSBMRVNTCiAgICB8
IGNtcCBfICAgICAgICBBc3N1bWUgICA9IEdSRUFURVIKICAgIHwgY21wIEluc3QgICAgIElu
c3QgICAgID0gRVFVQUwKICAgIHwgY21wIEluc3QgICAgIF8gICAgICAgID0gTEVTUwogICAg
fCBjbXAgXyAgICAgICAgSW5zdCAgICAgPSBHUkVBVEVSCiAgICB8IGNtcCBGYWN0b3IgICBG
YWN0b3IgICA9IEVRVUFMCiAgICB8IGNtcCBGYWN0b3IgICBfICAgICAgICA9IExFU1MKICAg
IHwgY21wIF8gICAgICAgIEZhY3RvciAgID0gR1JFQVRFUgogICAgfCBjbXAgUmVzb2x2ZSAg
UmVzb2x2ZSAgPSBFUVVBTAogICAgfCBjbXAgUmVzb2x2ZSAgRXF1YWxpdHkgPSBMRVNTCiAg
ICB8IGNtcCBFcXVhbGl0eSBSZXNvbHZlICA9IEdSRUFURVIKICAgIHwgY21wIEVxdWFsaXR5
IEVxdWFsaXR5ID0gRVFVQUw7CgogIGZ1biBjbSBbXSA9IEVRVUFMCiAgICB8IGNtICgodGgx
LCB0aDIpIDo6IGwpID0KICAgIGxldAogICAgICB2YWwgKGwxLCAocDEsIHRoczEpKSA9IGRl
c3RfdGhtIHRoMQogICAgICB2YWwgKGwyLCAocDIsIHRoczIpKSA9IGRlc3RfdGhtIHRoMgog
ICAgaW4KICAgICAgY2FzZSBJbnQuY29tcGFyZSAobGVuZ3RoIGwxLCBsZW5ndGggbDIpIG9m
IEVRVUFMCiAgICAgICAgPT4gKGNhc2UgbGV4X2NvbXBhcmUgZm9ybXVsYV9jb21wYXJlICh6
aXAgbDEgbDIpIG9mIEVRVUFMCiAgICAgICAgICAgICAgPT4gKGNhc2UgY21wIHAxIHAyIG9m
IEVRVUFMCiAgICAgICAgICAgICAgICAgICAgPT4gY20gKHppcCB0aHMxIHRoczIgQCBsKQog
ICAgICAgICAgICAgICAgICB8IHggPT4geCkKICAgICAgICAgICAgfCB4ID0+IHgpCiAgICAg
IHwgeCA9PiB4CiAgICBlbmQKaW4KICB2YWwgdGhtX2NvbXBhcmUgPSBjbSBvIHdyYXA7CmVu
ZDsKCigqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKikKKCogUmVjb25zdHJ1Y3RpbmcgcHJvb2Zz
LiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAq
KQooKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICopCgpmdW4gcmVjb25zdHJ1Y3RfcmVzb2x2YW50
IGNsMSBjbDIgKGNsMScsIGNsMicpID0KICBjYXNlIChzdWJ0cmFjdCAoc2V0aWZ5IGNsMSkg
Y2wxJywgc3VidHJhY3QgKHNldGlmeSBjbDIpIGNsMicpIG9mCiAgICAoXyA6OiBfIDo6IF8s
IF8pID0+IE5PTkUKICB8IChfLCBfIDo6IF8gOjogXykgPT4gTk9ORQogIHwgKFtsXSwgW10p
ID0+IFNPTUUgbAogIHwgKFtdLCBbbCddKSA9PiBTT01FIChuZWdhdGUgbCcpCiAgfCAoW2xd
LCBbbCddKSA9PiBpZiBuZWdhdGUgbCA9IGwnIHRoZW4gU09NRSBsIGVsc2UgTk9ORQogIHwg
KFtdLCBbXSkgPT4gTk9ORTsKCmZ1biByZWNvbnN0cnVjdF9lcXVhbGl0eSBsIHIgPQogIGxl
dAogICAgZnVuIHJlY29uX2ZuIHAgKGYsIGFyZ3MpIChmJywgYXJncycpIHJlc3QgPQogICAg
ICByZWNvbl90bQogICAgICAoaWYgZiA8PiBmJyBvcmVsc2UgbGVuZ3RoIGFyZ3MgPD4gbGVu
Z3RoIGFyZ3MnIHRoZW4gcmVzdAogICAgICAgZWxzZSBtYXAgKEMgY29ucyBwICMjIEkpIChl
bnVtZXJhdGUgMCAoemlwIGFyZ3MgYXJncycpKSBAIHJlc3QpCiAgICBhbmQgcmVjb25fdG0g
W10gPSBOT05FCiAgICAgIHwgcmVjb25fdG0gKChwLCAodG0sIHRtJykpIDo6IHJlc3QpID0K
ICAgICAgaWYgdG0gPSBsIGFuZGFsc28gdG0nID0gciB0aGVuIFNPTUUgKHJldiBwKQogICAg
ICBlbHNlCiAgICAgICAgY2FzZSAodG0sIHRtJykgb2YgKEZuIGEsIEZuIGEnKSA9PiByZWNv
bl9mbiBwIGEgYScgcmVzdAogICAgICAgIHwgXyA9PiByZWNvbl90bSByZXN0CgogICAgZnVu
IHJlY29uX2xpdCAoTm90IGEpIChOb3QgYScpID0gcmVjb25fbGl0IGEgYScKICAgICAgfCBy
ZWNvbl9saXQgKEF0b20gYSkgKEF0b20gYScpID0KICAgICAgaWYgbCA8PiByIGFuZGFsc28g
YSA9IGEnIHRoZW4gTk9ORSBlbHNlIHJlY29uX3RtIFsoW10sIChhLCBhJykpXQogICAgICB8
IHJlY29uX2xpdCBfIF8gPSBOT05FCiAgaW4KICAgIGZuIChsaXQsIGxpdCcpID0+CiAgICBj
YXNlIHJlY29uX2xpdCBsaXQgbGl0JyBvZiBTT01FIHAgPT4gU09NRSAobGl0LCBwKSB8IE5P
TkUgPT4gTk9ORQogIGVuZDsKCmZ1biByZWNvbnN0cnVjdCAoY2wsIChBeGlvbSwgW10pKSA9
IEF4aW9tJyBjbAogIHwgcmVjb25zdHJ1Y3QgKFtsaXRdLCAoUmVmbCwgW10pKSA9IFJlZmwn
IChsaHMgbGl0KQogIHwgcmVjb25zdHJ1Y3QgKFtmbSwgX10sIChBc3N1bWUsIFtdKSkgPSBB
c3N1bWUnIGZtCiAgfCByZWNvbnN0cnVjdCAoY2wsIChJbnN0LCBbdGhdKSkgPQogIEluc3Qn
IChtYXRjaGxfbGl0ZXJhbHMgfDw+fCAoemlwIChjbGF1c2UgdGgpIGNsKSwgdGgpCiAgfCBy
ZWNvbnN0cnVjdCAoXywgKEZhY3RvciwgW3RoXSkpID0gRmFjdG9yJyB0aAogIHwgcmVjb25z
dHJ1Y3QgKGNsLCAoUmVzb2x2ZSwgW3RoMSwgdGgyXSkpID0KICBsZXQKICAgIHZhbCBmID0g
cmVjb25zdHJ1Y3RfcmVzb2x2YW50IChjbGF1c2UgdGgxKSAoY2xhdXNlIHRoMikKICAgIHZh
bCBsID0KICAgICAgY2FzZSBmIChjbCwgY2wpIG9mIFNPTUUgbCA9PiBsCiAgICAgIHwgTk9O
RSA9PgogICAgICAgIGNhc2UgZmlyc3QgZiAoTGlzdC50YWJ1bGF0ZSAobGVuZ3RoIGNsLCBz
cGxpdCBjbCkpIG9mIFNPTUUgbCA9PiBsCiAgICAgICAgfCBOT05FID0+IHJhaXNlIEJVRyAi
aW5mZXJlbmNlIiAiY291bGRuJ3QgcmVjb25zdHJ1Y3QgcmVzb2x2YW50IgogIGluCiAgICBS
ZXNvbHZlJyAobCwgdGgxLCB0aDIpCiAgZW5kCiAgfCByZWNvbnN0cnVjdCAoTm90IGZtIDo6
IGNsLCAoRXF1YWxpdHksIFt0aF0pKSA9CiAgbGV0CiAgICB2YWwgKHRtMSwgdG0yKSA9IGRl
c3RfZXEgZm0KICBpbgogICAgY2FzZSBmaXJzdCAocmVjb25zdHJ1Y3RfZXF1YWxpdHkgdG0x
IHRtMikgKHppcCAoY2xhdXNlIHRoKSBjbCkgb2YKICAgICAgU09NRSAobCwgcCkgPT4gRXF1
YWxpdHknIChsLCBwLCB0bTIsIHRydWUsIHRoKQogICAgfCBOT05FID0+CiAgICAgIGNhc2Ug
Zmlyc3QgKHJlY29uc3RydWN0X2VxdWFsaXR5IHRtMiB0bTEpICh6aXAgKGNsYXVzZSB0aCkg
Y2wpIG9mCiAgICAgICAgU09NRSAobCwgcCkgPT4gRXF1YWxpdHknIChsLCBwLCB0bTEsIGZh
bHNlLCB0aCkKICAgICAgfCBOT05FID0+IHJhaXNlIEJVRyAiaW5mZXJlbmNlIiAiY291bGRu
J3QgcmVjb25zdHJ1Y3QgZXF1YWxpdHkgc3RlcCIKICBlbmQKICB8IHJlY29uc3RydWN0IF8g
PSByYWlzZSBCVUcgImluZmVyZW5jZSIgIm1hbGZvcm1lZCBpbmZlcmVuY2UiOwoKZnVuIGlu
ZmVyZW5jZSB0aCA9CiAgbGV0CiAgICB2YWwgaSA9IHJlY29uc3RydWN0IChkZXN0X3RobSB0
aCkKICAgIHZhbCBfID0KICAgICAgKHByaW1pdGl2ZV9pbmZlcmVuY2UgaSA9IHRoKSBvcmVs
c2UKICAgICAgcmFpc2UgQlVHICJpbmZlcmVuY2UiCiAgICAgICgiZmFpbGVkOlxudGggPSAi
IF4gdGhtX3RvX3N0cmluZyB0aCBeICJcbmluZiA9ICIgXiBpbmZlcmVuY2VfdG9fc3RyaW5n
IGkKICAgICAgIF4gIlxuaW5mX3RoID0gIiBeIHRobV90b19zdHJpbmcgKHByaW1pdGl2ZV9p
bmZlcmVuY2UgaSkpCiAgaW4KICAgIGkKICBlbmQ7Cgpsb2NhbAogIHZhbCBlbXB0eSA9IChC
aW5hcnltYXAubWtEaWN0IHRobV9jb21wYXJlLCBbXSk7CiAgZnVuIGNvbnRhaW5zIChtLCBf
KSB0aCA9IE9wdGlvbi5pc1NvbWUgKEJpbmFyeW1hcC5wZWVrIChtLCB0aCkpOwogIGZ1biBh
ZGQgdGggKG0sIHApID0gKEJpbmFyeW1hcC5pbnNlcnQgKG0sIHRoLCAoKSksICh0aCwgaW5m
ZXJlbmNlIHRoKSA6OiBwKTsKICB2YWwgZmluYWxpemUgPSBzbmQ7CgogIGZ1biByZWR1Y2Ug
KHRoLCBwZikgPQogICAgaWYgY29udGFpbnMgcGYgdGggdGhlbiBwZgogICAgZWxzZSBhZGQg
dGggKGZvbGRsIHJlZHVjZSBwZiAoc25kIChzbmQgKGRlc3RfdGhtIHRoKSkpKTsKaW4KICBm
dW4gcHJvb2YgdGggPSBmaW5hbGl6ZSAocmVkdWNlICh0aCwgZW1wdHkpKTsKZW5kOwoKKCog
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLSAqKQooKiBDb250cmFkaWN0aW9ucyBhbmQgdW5pdCBjbGF1
c2VzLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopCigqIC0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0gKikKCnZhbCBpc19jb250cmFkaWN0aW9uID0gbnVsbCBvIGNs
YXVzZTsKCmZ1biBkZXN0X3VuaXQgdGggPQogIGNhc2UgY2xhdXNlIHRoIG9mIFtsaXRdID0+
IGxpdCB8IF8gPT4gcmFpc2UgRVJSICJkZXN0X3VuaXQiICJub3QgYSB1bml0IjsKCnZhbCBp
c191bml0ID0gY2FuIGRlc3RfdW5pdDsKCigqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKikKKCog
RGVyaXZlZCBydWxlcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAqKQooKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICopCgpmdW4g
Q09OVFIgbGl0IHRoID0gUkVTT0xWRSAobmVnYXRlIGxpdCkgKEFTU1VNRSBsaXQpIHRoOwoK
ZnVuIFdFQUtFTiBsaXRzIHRoID0gZm9sZGwgKHVuY3VycnkgQ09OVFIpIHRoIChyZXYgbGl0
cyk7CgpmdW4gRlJFU0hfVkFSU0wgdGhzID0KICBsZXQKICAgIHZhbCBmdnMgPSBGVkwgKExp
c3QuY29uY2F0IChtYXAgY2xhdXNlIHRocykpCiAgICB2YWwgdnZzID0gbmV3X3ZhcnMgKGxl
bmd0aCBmdnMpCiAgICB2YWwgc3ViID0gU3Vic3QxLmZyb21fbWFwbGV0cyAoemlwd2l0aCAo
Y3Vycnkgb3AgfC0+KSBmdnMgdnZzKQogIGluCiAgICBtYXAgKElOU1Qgc3ViKSB0aHMKICBl
bmQ7Cgp2YWwgRlJFU0hfVkFSUyA9IHVud3JhcCBvIEZSRVNIX1ZBUlNMIG8gd3JhcDsKCmZ1
biBVTklUX1NRVUFTSCB0aCA9CiAgbGV0CiAgICBmdW4gc3F1YXNoIGVudiAoeCA6OiAoeHMg
YXMgeSA6OiBfKSkgPSBzcXVhc2ggKHVuaWZ5X2xpdGVyYWxzIGVudiB4IHkpIHhzCiAgICAg
IHwgc3F1YXNoIGVudiBfID0gZW52CiAgaW4KICAgIEZBQ1RPUiAoSU5TVCAoc3F1YXNoIHw8
PnwgKGNsYXVzZSB0aCkpIHRoKQogIGVuZDsKICAKdmFsIFJFRkxFWElWSVRZID0gUkVGTCAo
VmFyICJ4Iik7Cgp2YWwgU1lNTUVUUlkgPQogIEVRVUFMSVRZIChta19lcSAoVmFyICJ4Iiwg
VmFyICJ4IikpIFswXSAoVmFyICJ5IikgdHJ1ZSBSRUZMRVhJVklUWTsKCnZhbCBUUkFOU0lU
SVZJVFkgPQogIEVRVUFMSVRZIChta19lcSAoVmFyICJ5IiwgVmFyICJ6IikpIFswXSAoVmFy
ICJ4IikgZmFsc2UKICAoQVNTVU1FIChOb3QgKG1rX2VxIChWYXIgInkiLCBWYXIgInoiKSkp
KTsKCmZ1biBGVU5fQ09OR1JVRU5DRSAoZnVuY3Rpb24sIGFyaXR5KSA9CiAgbGV0CiAgICB2
YWwgeHMgPSBMaXN0LnRhYnVsYXRlIChhcml0eSwgZm4gaSA9PiBWYXIgKCJ4IiBeIGludF90
b19zdHJpbmcgaSkpCiAgICB2YWwgeXMgPSBMaXN0LnRhYnVsYXRlIChhcml0eSwgZm4gaSA9
PiBWYXIgKCJ5IiBeIGludF90b19zdHJpbmcgaSkpCiAgICBmdW4gZiAoaSwgdGgpID0KICAg
ICAgRVFVQUxJVFkgKExpc3QubGFzdCAoY2xhdXNlIHRoKSkgWzEsaV0gKExpc3QubnRoICh5
cywgaSkpIHRydWUgdGgKICAgIHZhbCByZWZsID0gSU5TVCAoKCJ4IiB8LT4gRm4gKGZ1bmN0
aW9uLCB4cykpIDo6PiB8PD58KSBSRUZMRVhJVklUWQogIGluCiAgICBmb2xkbCBmIHJlZmwg
KHJldiAoaW50ZXJ2YWwgMCBhcml0eSkpCiAgZW5kOwoKZnVuIFJFTF9DT05HUlVFTkNFIChy
ZWxhdGlvbiwgYXJpdHkpID0KICBsZXQKICAgIHZhbCB4cyA9IExpc3QudGFidWxhdGUgKGFy
aXR5LCBmbiBpID0+IFZhciAoIngiIF4gaW50X3RvX3N0cmluZyBpKSkKICAgIHZhbCB5cyA9
IExpc3QudGFidWxhdGUgKGFyaXR5LCBmbiBpID0+IFZhciAoInkiIF4gaW50X3RvX3N0cmlu
ZyBpKSkKICAgIGZ1biBmIChpLCB0aCkgPQogICAgICBFUVVBTElUWSAoTGlzdC5sYXN0IChj
bGF1c2UgdGgpKSBbaV0gKExpc3QubnRoICh5cywgaSkpIHRydWUgdGgKICAgIHZhbCByZWZs
ID0gQVNTVU1FIChOb3QgKEF0b20gKEZuIChyZWxhdGlvbiwgeHMpKSkpCiAgaW4KICAgIGZv
bGRsIGYgcmVmbCAocmV2IChpbnRlcnZhbCAwIGFyaXR5KSkKICBlbmQ7CgplbmQKKCojbGlu
ZSAwLjAgImZvbC9DYW5vbjEuc2lnIiopCigqID09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKikKKCog
RklSU1QtT1JERVIgTE9HSUMgQ0FOT05JQ0FMSVpBVElPTiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAqKQooKiBDcmVhdGVkIGJ5IEpvZSBIdXJkLCBTZXB0ZW1i
ZXIgMjAwMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopCigqIFBh
cnRseSBwb3J0ZWQgZnJvbSB0aGUgQ0FNTC1MaWdodCBjb2RlIGFjY29tcGFueWluZyBKb2hu
IEhhcnJpc29uJ3MgYm9vayAgKikKKCogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqKQoKc2lnbmF0
dXJlIENhbm9uMSA9CnNpZwoKdHlwZSB0ZXJtICAgID0gVGVybTEudGVybQp0eXBlIGZvcm11
bGEgPSBUZXJtMS5mb3JtdWxhCnR5cGUgdGhtICAgICA9IFRobTEudGhtCgooKiBTaW1wbGlm
aWNhdGlvbiAqKQp2YWwgc2ltcGxpZnkgOiBmb3JtdWxhIC0+IGZvcm11bGEKCigqIE5lZ2F0
aW9uIG5vcm1hbCBmb3JtICopCnZhbCBubmYgOiBmb3JtdWxhIC0+IGZvcm11bGEKCigqIFBy
ZW5leCBub3JtYWwgZm9ybSAqKQp2YWwgcHJlbmV4IDogZm9ybXVsYSAtPiBmb3JtdWxhCnZh
bCBwbmYgICAgOiBmb3JtdWxhIC0+IGZvcm11bGEKCigqIFNrb2xlbWl6YXRpb24gKikKdmFs
IHNrb2xlbWl6ZSAgICAgIDogZm9ybXVsYSAtPiBmb3JtdWxhCnZhbCBmdWxsX3Nrb2xlbWl6
ZSA6IGZvcm11bGEgLT4gZm9ybXVsYQoKKCogQSB0YXV0b2xvZ3kgZmlsdGVyIGZvciBjbGF1
c2VzICopCnZhbCB0YXV0b2xvZ291cyA6IGZvcm11bGEgbGlzdCAtPiBib29sCgooKiBDb25q
dW5jdGl2ZSBub3JtYWwgZm9ybSAqKQp2YWwgcHVyZWNuZiAgICAgICAgOiBmb3JtdWxhIC0+
IGZvcm11bGEgbGlzdCBsaXN0CnZhbCBzaW1wY25mICAgICAgICA6IGZvcm11bGEgLT4gZm9y
bXVsYSBsaXN0IGxpc3QKdmFsIGNsYXVzYWwgICAgICAgIDogZm9ybXVsYSAtPiBmb3JtdWxh
IGxpc3QgbGlzdAp2YWwgY25mICAgICAgICAgICAgOiBmb3JtdWxhIC0+IGZvcm11bGEKdmFs
IGF4aW9tYXRpemUgICAgIDogZm9ybXVsYSAtPiB0aG0gbGlzdAp2YWwgZXFfYXhpb21hdGl6
ZSAgOiBmb3JtdWxhIC0+IHRobSBsaXN0ICAgICAgICAgICgqIEFkZHMgZXF1YWxpdHkgYXhp
b21zICopCnZhbCBlcV9heGlvbWF0aXplJyA6IGZvcm11bGEgLT4gdGhtIGxpc3QgICAgICAg
ICAgKCogQWRkcyBpZiBlcXVhbGl0eSBvY2N1cnMgKikKCmVuZAooKiNsaW5lIDAuMCAiZm9s
L0Nhbm9uMS5zbWwiKikKKCogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqKQooKiBGSVJTVC1PUkRF
UiBMT0dJQyBDQU5PTklDQUxJWkFUSU9OICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICopCigqIENyZWF0ZWQgYnkgSm9lIEh1cmQsIFNlcHRlbWJlciAyMDAxICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKikKKCogUGFydGx5IHBvcnRl
ZCBmcm9tIHRoZSBDQU1MLUxpZ2h0IGNvZGUgYWNjb21wYW55aW5nIEpvaG4gSGFycmlzb24n
cyBib29rICAqKQooKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICopCgooKgphcHAgbG9hZCBbIlVz
ZWZ1bCIsICJUZXJtMSJdOwoqKQoKc3RydWN0dXJlIENhbm9uMSA6PiBDYW5vbjEgPQpzdHJ1
Y3QKCm9wZW4gVXNlZnVsIFRlcm0xIFRobTE7CgppbmZpeHIgfC0+IDo6PiBvbzsKCnR5cGUg
c3Vic3QgICAgICAgID0gU3Vic3QxLnN1YnN0Owp2YWwgfDw+fCAgICAgICAgICA9IFN1YnN0
MS58PD58Owp2YWwgb3AgOjo+ICAgICAgICA9IFN1YnN0MS46Oj47CnZhbCB0ZXJtX3N1YnN0
ICAgID0gU3Vic3QxLnRlcm1fc3Vic3Q7CnZhbCBmb3JtdWxhX3N1YnN0ID0gU3Vic3QxLmZv
cm11bGFfc3Vic3Q7CgooKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICopCigqIFNpbXBsaWZpY2F0
aW9uLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgKikKKCogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqKQoKZnVuIHNpbXBsaWZ5MSAo
Tm90IEZhbHNlKSAgICAgICAgICAgPSBUcnVlCiAgfCBzaW1wbGlmeTEgKE5vdCBUcnVlKSAg
ICAgICAgICAgID0gRmFsc2UKICB8IHNpbXBsaWZ5MSAoTm90IChOb3QgZm0pKSAgICAgICAg
PSBmbQogIHwgc2ltcGxpZnkxIChBbmQgKEZhbHNlLCBxKSkgICAgICA9IEZhbHNlCiAgfCBz
aW1wbGlmeTEgKEFuZCAocCwgICAgIEZhbHNlKSkgID0gRmFsc2UKICB8IHNpbXBsaWZ5MSAo
QW5kIChUcnVlLCAgcSkpICAgICAgPSBxCiAgfCBzaW1wbGlmeTEgKEFuZCAocCwgICAgIFRy
dWUpKSAgID0gcAogIHwgc2ltcGxpZnkxIChPciAgKEZhbHNlLCBxKSkgICAgICA9IHEKICB8
IHNpbXBsaWZ5MSAoT3IgIChwLCAgICAgRmFsc2UpKSAgPSBwCiAgfCBzaW1wbGlmeTEgKE9y
ICAoVHJ1ZSwgIHEpKSAgICAgID0gVHJ1ZQogIHwgc2ltcGxpZnkxIChPciAgKHAsICAgICBU
cnVlKSkgICA9IFRydWUKICB8IHNpbXBsaWZ5MSAoSW1wIChGYWxzZSwgcSkpICAgICAgPSBU
cnVlCiAgfCBzaW1wbGlmeTEgKEltcCAoVHJ1ZSwgIHEpKSAgICAgID0gcQogIHwgc2ltcGxp
ZnkxIChJbXAgKHAsICAgICBUcnVlKSkgICA9IFRydWUKICB8IHNpbXBsaWZ5MSAoSW1wIChO
b3QgcCwgRmFsc2UpKSAgPSBwCiAgfCBzaW1wbGlmeTEgKEltcCAocCwgICAgIEZhbHNlKSkg
ID0gTm90IHAKICB8IHNpbXBsaWZ5MSAoSWZmIChUcnVlLCAgcSkpICAgICAgPSBxCiAgfCBz
aW1wbGlmeTEgKElmZiAocCwgICAgIFRydWUpKSAgID0gcAogIHwgc2ltcGxpZnkxIChJZmYg
KEZhbHNlLCBOb3QgcSkpICA9IHEKICB8IHNpbXBsaWZ5MSAoSWZmIChGYWxzZSwgcSkpICAg
ICAgPSBOb3QgcQogIHwgc2ltcGxpZnkxIChJZmYgKE5vdCBwLCBGYWxzZSkpICA9IHAKICB8
IHNpbXBsaWZ5MSAoSWZmIChwLCAgICAgRmFsc2UpKSAgPSBOb3QgcAogIHwgc2ltcGxpZnkx
IChmbSBhcyBGb3JhbGwgKHgsIHApKSA9IGlmIG1lbSB4IChGViBwKSB0aGVuIGZtIGVsc2Ug
cAogIHwgc2ltcGxpZnkxIChmbSBhcyBFeGlzdHMgKHgsIHApKSA9IGlmIG1lbSB4IChGViBw
KSB0aGVuIGZtIGVsc2UgcAogIHwgc2ltcGxpZnkxIGZtICAgICAgICAgICAgICAgICAgICA9
IGZtOwoKZnVuIHNpbXBsaWZ5IChOb3QgICAgcCkgICAgICA9IHNpbXBsaWZ5MSAoTm90IChz
aW1wbGlmeSBwKSkKICB8IHNpbXBsaWZ5IChBbmQgICAgKHAsIHEpKSA9IHNpbXBsaWZ5MSAo
QW5kIChzaW1wbGlmeSBwLCBzaW1wbGlmeSBxKSkKICB8IHNpbXBsaWZ5IChPciAgICAgKHAs
IHEpKSA9IHNpbXBsaWZ5MSAoT3IgIChzaW1wbGlmeSBwLCBzaW1wbGlmeSBxKSkKICB8IHNp
bXBsaWZ5IChJbXAgICAgKHAsIHEpKSA9IHNpbXBsaWZ5MSAoSW1wIChzaW1wbGlmeSBwLCBz
aW1wbGlmeSBxKSkKICB8IHNpbXBsaWZ5IChJZmYgICAgKHAsIHEpKSA9IHNpbXBsaWZ5MSAo
SWZmIChzaW1wbGlmeSBwLCBzaW1wbGlmeSBxKSkKICB8IHNpbXBsaWZ5IChGb3JhbGwgKHgs
IHApKSA9IHNpbXBsaWZ5MSAoRm9yYWxsICh4LCBzaW1wbGlmeSBwKSkKICB8IHNpbXBsaWZ5
IChFeGlzdHMgKHgsIHApKSA9IHNpbXBsaWZ5MSAoRXhpc3RzICh4LCBzaW1wbGlmeSBwKSkK
ICB8IHNpbXBsaWZ5IGZtICAgICAgICAgICAgICA9IGZtOwoKKCogLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLSAqKQooKiBOZWdhdGlvbiBub3JtYWwgZm9ybS4gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopCigqIC0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0gKikKCmZ1biBubmYgKEFuZCAocCwgcSkpICAgICA9IEFuZCAobm5mIHAsIG5uZiBxKQog
IHwgbm5mIChPciAocCwgcSkpICAgICAgPSBPciAobm5mIHAsIG5uZiBxKQogIHwgbm5mIChJ
bXAgKHAsIHEpKSAgICAgPSBPciAobm5mJyBwLCBubmYgcSkKICB8IG5uZiAoSWZmIChwLCBx
KSkgICAgID0gT3IgKEFuZCAobm5mIHAsIG5uZiBxKSwgQW5kIChubmYnIHAsIG5uZicgcSkp
CiAgfCBubmYgKEZvcmFsbCAoeCwgcCkpICA9IEZvcmFsbCAoeCwgbm5mIHApCiAgfCBubmYg
KEV4aXN0cyAoeCwgcCkpICA9IEV4aXN0cyAoeCwgbm5mIHApCiAgfCBubmYgKE5vdCB4KSAg
ICAgICAgICA9IG5uZicgeAogIHwgbm5mIGZtICAgICAgICAgICAgICAgPSBmbQphbmQgbm5m
JyBUcnVlICAgICAgICAgICAgPSBGYWxzZQogIHwgbm5mJyBGYWxzZSAgICAgICAgICAgPSBU
cnVlCiAgfCBubmYnIChBbmQgKHAsIHEpKSAgICA9IE9yIChubmYnIHAsIG5uZicgcSkKICB8
IG5uZicgKE9yIChwLCBxKSkgICAgID0gQW5kIChubmYnIHAsIG5uZicgcSkKICB8IG5uZicg
KEltcCAocCwgcSkpICAgID0gQW5kIChubmYgcCwgbm5mJyBxKQogIHwgbm5mJyAoSWZmIChw
LCBxKSkgICAgPSBPciAoQW5kIChubmYgcCwgbm5mJyBxKSwgQW5kIChubmYnIHAsIG5uZiBx
KSkKICB8IG5uZicgKEZvcmFsbCAoeCwgcCkpID0gRXhpc3RzICh4LCBubmYnIHApCiAgfCBu
bmYnIChFeGlzdHMgKHgsIHApKSA9IEZvcmFsbCAoeCwgbm5mJyBwKQogIHwgbm5mJyAoTm90
IHgpICAgICAgICAgPSBubmYgeAogIHwgbm5mJyBmbSAgICAgICAgICAgICAgPSBOb3QgZm07
CgooKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICopCigqIFByZW5leCBub3JtYWwgZm9ybS4gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKikK
KCogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqKQoKZnVuIHB1bGxxdWFudHMgZm0gPQogIChjYXNl
IGZtIG9mCiAgICAgQW5kIChGb3JhbGwgKHgsIHApLCBGb3JhbGwgKHksIHEpKSA9PiBwdWxs
cXVhbnRfMiBmbSBGb3JhbGwgQW5kIHggeSBwIHEKICAgfCBPciAoRXhpc3RzICh4LCBwKSwg
RXhpc3RzICh5LCBxKSkgPT4gcHVsbHF1YW50XzIgZm0gRXhpc3RzIE9yIHggeSBwIHEKICAg
fCBBbmQgKEZvcmFsbCAoeCwgcCksIHEpID0+IHB1bGxxdWFudF9sIGZtIEZvcmFsbCBBbmQg
eCBwIHEKICAgfCBBbmQgKHAsIEZvcmFsbCAoeCwgcSkpID0+IHB1bGxxdWFudF9yIGZtIEZv
cmFsbCBBbmQgeCBwIHEKICAgfCBPciAoRm9yYWxsICh4LCBwKSwgcSkgPT4gcHVsbHF1YW50
X2wgZm0gRm9yYWxsIE9yIHggcCBxCiAgIHwgT3IgKHAsIEZvcmFsbCAoeCwgcSkpID0+IHB1
bGxxdWFudF9yIGZtIEZvcmFsbCBPciB4IHAgcQogICB8IEFuZCAoRXhpc3RzICh4LCBwKSwg
cSkgPT4gcHVsbHF1YW50X2wgZm0gRXhpc3RzIEFuZCB4IHAgcQogICB8IEFuZCAocCwgRXhp
c3RzICh4LCBxKSkgPT4gcHVsbHF1YW50X3IgZm0gRXhpc3RzIEFuZCB4IHAgcQogICB8IE9y
IChFeGlzdHMgKHgsIHApLCBxKSA9PiBwdWxscXVhbnRfbCBmbSBFeGlzdHMgT3IgeCBwIHEK
ICAgfCBPciAocCwgRXhpc3RzICh4LCBxKSkgPT4gcHVsbHF1YW50X3IgZm0gRXhpc3RzIE9y
IHggcCBxCiAgIHwgXyA9PiBmbSkKYW5kIHB1bGxxdWFudF9sIGZtIFEgQyB4IHAgcSA9CiAg
bGV0CiAgICB2YWwgeCcgPSB2YXJpYW50IHggKEZWIGZtKQogIGluCiAgICBRICh4JywgcHVs
bHF1YW50cyAoQyAoZm9ybXVsYV9zdWJzdCAoKHggfC0+IFZhciB4JykgOjo+IHw8PnwpIHAs
IHEpKSkKICBlbmQKYW5kIHB1bGxxdWFudF9yIGZtIFEgQyB4IHAgcSA9CiAgbGV0CiAgICB2
YWwgeCcgPSB2YXJpYW50IHggKEZWIGZtKQogIGluCiAgICBRICh4JywgcHVsbHF1YW50cyAo
QyAocCwgZm9ybXVsYV9zdWJzdCAoKHggfC0+IFZhciB4JykgOjo+IHw8PnwpIHEpKSkKICBl
bmQKYW5kIHB1bGxxdWFudF8yIGZtIFEgQyB4IHkgcCBxID0KICBsZXQKICAgIHZhbCB4JyA9
IHZhcmlhbnQgeCAoRlYgZm0pCiAgaW4KICAgIFEgKHgnLCBwdWxscXVhbnRzKEMgKGZvcm11
bGFfc3Vic3QgKCh4IHwtPiBWYXIgeCcpIDo6PiB8PD58KSBwLAogICAgICAgICAgICAgICAg
ICAgICAgICAgZm9ybXVsYV9zdWJzdCAoKHggfC0+IFZhciB4JykgOjo+IHw8PnwpIHEpKSkK
ICBlbmQ7CgpmdW4gcHJlbmV4IChGb3JhbGwgKHgsIHApKSA9IEZvcmFsbCAoeCwgcHJlbmV4
IHApCiAgfCBwcmVuZXggKEV4aXN0cyAoeCwgcCkpID0gRXhpc3RzICh4LCBwcmVuZXggcCkK
ICB8IHByZW5leCAoQW5kIChwLCBxKSkgPSBwdWxscXVhbnRzIChBbmQgKHByZW5leCBwLCBw
cmVuZXggcSkpCiAgfCBwcmVuZXggKE9yIChwLCBxKSkgPSBwdWxscXVhbnRzIChPciAocHJl
bmV4IHAsIHByZW5leCBxKSkKICB8IHByZW5leCBmbSA9IGZtOwoKdmFsIHBuZiA9IHByZW5l
eCBvIG5uZiBvIHNpbXBsaWZ5OwoKKCogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqKQooKiBTa29s
ZW1pemF0aW9uIGZ1bmN0aW9uLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICopCigqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKikKCmZ1biBza29s
ZW0gYXZvaWQgKEV4aXN0cyAoeSwgcCkpID0KICBsZXQKICAgIHZhbCB4cyA9IHN1YnRyYWN0
IChGViBwKSBbeV0KICAgIHZhbCBmID0gdmFyaWFudCAoaWYgeHMgPSBbXSB0aGVuICJjXyIg
XiB5IGVsc2UgImZfIiBeIHkpIGF2b2lkCiAgaW4KICAgIHNrb2xlbSBhdm9pZCAoZm9ybXVs
YV9zdWJzdCAoKHkgfC0+IEZuIChmLCBtYXAgVmFyIHhzKSkgOjo+IHw8PnwpIHApCiAgZW5k
CiAgfCBza29sZW0gYXZvaWQgKEZvcmFsbCAoeCwgcCkpID0gRm9yYWxsICh4LCBza29sZW0g
YXZvaWQgcCkKICB8IHNrb2xlbSBhdm9pZCAoQW5kIChwLCBxKSkgPSBza29sZW0yIGF2b2lk
IEFuZCBwIHEKICB8IHNrb2xlbSBhdm9pZCAoT3IgKHAsIHEpKSA9IHNrb2xlbTIgYXZvaWQg
T3IgcCBxCiAgfCBza29sZW0gXyBmbSA9IGZtCmFuZCBza29sZW0yIGF2b2lkIEMgcCBxID0K
ICBsZXQKICAgIHZhbCBwJyA9IHNrb2xlbSBhdm9pZCBwCiAgICB2YWwgcScgPSBza29sZW0g
KHVuaW9uIGF2b2lkIChmdW5jdGlvbl9uYW1lcyBwJykpIHEKICBpbgogICAgQyAocCcsIHEn
KQogIGVuZDsKCmZ1biBza29sZW1pemUgZm0gPSBza29sZW0gKGZ1bmN0aW9uX25hbWVzIGZt
KSBmbTsKCnZhbCBmdWxsX3Nrb2xlbWl6ZSA9IHNwZWNpYWxpemUgbyBwcmVuZXggbyBza29s
ZW1pemUgbyBubmYgbyBzaW1wbGlmeTsKCigqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKikKKCog
QSB0YXV0b2xvZ3kgZmlsdGVyIGZvciBjbGF1c2VzLiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAqKQooKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICopCgpmdW4g
dGF1dG9sb2dvdXMgY2xzID0KICBsZXQKICAgIHZhbCAocG9zLCBuZWcpID0gTGlzdC5wYXJ0
aXRpb24gcG9zaXRpdmUgY2xzCiAgaW4KICAgIGludGVyc2VjdCBwb3MgKG1hcCBuZWdhdGUg
bmVnKSA8PiBbXQogIGVuZDsKCigqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKikKKCogQ29uanVu
Y3RpdmUgTm9ybWFsIEZvcm0uICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAqKQooKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICopCgpmdW4gZGlzdHJp
YiBzMSBzMiA9IGNhcnR3aXRoIHVuaW9uIHMxIHMyOwoKZnVuIHB1cmVjbmYgKE9yIChwLCBx
KSkgID0gZGlzdHJpYiAocHVyZWNuZiBwKSAocHVyZWNuZiBxKQogIHwgcHVyZWNuZiAoQW5k
IChwLCBxKSkgPSB1bmlvbiAocHVyZWNuZiBwKSAocHVyZWNuZiBxKQogIHwgcHVyZWNuZiBm
bSA9IFtbZm1dXTsKCmZ1biBzaW1wY25mIFRydWUgPSBbXQogIHwgc2ltcGNuZiBGYWxzZSA9
IFtbXV0KICB8IHNpbXBjbmYgZm0gPSBMaXN0LmZpbHRlciAobm9uIHRhdXRvbG9nb3VzKSAo
cHVyZWNuZiBmbSk7Cgp2YWwgY2xhdXNhbCA9CiAgTGlzdC5jb25jYXQgbyBtYXAgKHNpbXBj
bmYgbyBzcGVjaWFsaXplIG8gcHJlbmV4KSBvIGZsYXR0ZW5fY29uaiBvCiAgc2tvbGVtaXpl
IG8gbm5mIG8gc2ltcGxpZnkKCnZhbCBjbmYgPSBsaXN0X21rX2NvbmogbyBtYXAgbGlzdF9t
a19kaXNqIG8gY2xhdXNhbDsKCnZhbCBheGlvbWF0aXplID0gbWFwIEFYSU9NIG8gY2xhdXNh
bDsKCmZ1biBlcV9heGlvbWF0aXplIGZtID0KICBsZXQKICAgIHZhbCBlcXMgPSBbUkVGTEVY
SVZJVFksIFNZTU1FVFJZLCBUUkFOU0lUSVZJVFldCiAgICB2YWwgcmVscyA9IG1hcCBSRUxf
Q09OR1JVRU5DRSAocmVsYXRpb25zX25vX2VxIGZtKQogICAgdmFsIGZ1bnMgPSBtYXAgRlVO
X0NPTkdSVUVOQ0UgKGZ1bmN0aW9ucyBmbSkKICBpbgogICAgZXFzIEAgZnVucyBAIHJlbHMg
QCBheGlvbWF0aXplIGZtCiAgZW5kOwoKZnVuIGVxX2F4aW9tYXRpemUnIGZtID0gKGlmIGVx
X29jY3VycyBmbSB0aGVuIGVxX2F4aW9tYXRpemUgZWxzZSBheGlvbWF0aXplKSBmbTsKCmVu
ZAooKiNsaW5lIDAuMCAiZm9sL1VuaXRzMS5zaWciKikKKCogPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PSAqKQooKiBBIFNUT1JFIElOIFdISUNIIFRPIENBQ0hFIFVOSVQgVEhFT1JFTVMgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICopCigqIENyZWF0ZWQgYnkgSm9lIEh1cmQs
IE5vdmVtYmVyIDIwMDEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
KikKKCogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PSAqKQoKc2lnbmF0dXJlIFVuaXRzMSA9CnNpZwoK
dHlwZSAnYSBwcCAgID0gJ2EgVXNlZnVsLnBwCnR5cGUgZm9ybXVsYSA9IFRlcm0xLmZvcm11
bGEKdHlwZSB0aG0gICAgID0gVGhtMS50aG0KCnR5cGUgdW5pdHMKCnZhbCBlbXB0eSAgICA6
IHVuaXRzCnZhbCBhZGQgICAgICA6IHRobSAtPiB1bml0cyAtPiB1bml0cwp2YWwgYWRkbCAg
ICAgOiB0aG0gbGlzdCAtPiB1bml0cyAtPiB1bml0cwp2YWwgc3Vic3VtZXMgOiB1bml0cyAt
PiBmb3JtdWxhIC0+IHRobSBvcHRpb24KdmFsIHByb3ZlICAgIDogdW5pdHMgLT4gZm9ybXVs
YSBsaXN0IC0+IHRobSBsaXN0IG9wdGlvbgp2YWwgZGVtb2QgICAgOiB1bml0cyAtPiB0aG0g
LT4gdGhtCnZhbCBpbmZvICAgICA6IHVuaXRzIC0+IHN0cmluZwp2YWwgcHBfdW5pdHMgOiB1
bml0cyBwcAoKZW5kCigqI2xpbmUgMC4wICJmb2wvVW5pdHMxLnNtbCIqKQooKiA9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09ICopCigqIEEgU1RPUkUgSU4gV0hJQ0ggVE8gQ0FDSEUgVU5JVCBUSEVP
UkVNUyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKikKKCogQ3JlYXRlZCBi
eSBKb2UgSHVyZCwgTm92ZW1iZXIgMjAwMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAqKQooKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICopCgooKgphcHAgbG9hZAog
WyJVc2VmdWwiLCAiTW9zbWwiLCAiVGVybTEiLCAiVGhtMSIsICJDYW5vbjEiLCAiTWF0Y2gx
Il07CiopCgooKgoqKQpzdHJ1Y3R1cmUgVW5pdHMxIDo+IFVuaXRzMSA9CnN0cnVjdAoKb3Bl
biBVc2VmdWwgVGVybTEgVGhtMSBNYXRjaDE7CgppbmZpeCB8LT4gOjo+IEA+IG9vICMjOwoK
c3RydWN0dXJlIE4gPSBMaXRlcmFsTmV0MTsKCigqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKikK
KCogQXV4aWxpYXJ5IGZ1bmN0aW9ucy4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAqKQooKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICopCgpm
dW4gbGlmdF9vcHRpb25zIGYgPQogIGxldAogICAgZnVuIGcgcmVzIFtdID0gU09NRSAocmV2
IHJlcykKICAgICAgfCBnIHJlcyAoeCA6OiB4cykgPSBjYXNlIGYgeCBvZiBTT01FIHkgPT4g
ZyAoeSA6OiByZXMpIHhzIHwgTk9ORSA9PiBOT05FCiAgaW4KICAgIGcgW10KICBlbmQ7Cgoo
KiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tICopCigqIE9wZXJhdGlvbnMgb24gdGhlIHJhdyB1bml0
IGNhY2hlLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKikKKCog
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLSAqKQoKdHlwZSB1bnMgPSB0aG0gTi5saXRlcmFsX21hcDsK
CnZhbCB1ZW1wdHkgOiB1bnMgPSBOLmVtcHR5OwoKZnVuIHVhZGQgdGggdW5zID0gTi5pbnNl
cnQgKGRlc3RfdW5pdCB0aCB8LT4gdGgpIHVuczsKCmZ1biB1c3Vic3VtZXMgdW5zIGxpdCA9
CiAgTGlzdC5maW5kIChjYW4gKEMgbWF0Y2hfbGl0ZXJhbHMgbGl0KSBvIGRlc3RfdW5pdCkK
ICAocmV2IChOLm1hdGNoIHVucyBsaXQpKTsKCmZ1biB1cHJvdmUgdW5zID0KICBsZXQKICAg
IGZ1biBwciBsaXQgPQogICAgICBPcHRpb24ubWFwIChmbiB0aCA9PiBJTlNUIChtYXRjaF9s
aXRlcmFscyAoZGVzdF91bml0IHRoKSBsaXQpIHRoKQogICAgICAodXN1YnN1bWVzIHVucyBs
aXQpCiAgaW4KICAgIGxpZnRfb3B0aW9ucyBwcgogIGVuZDsKCmZ1biB1ZGVtb2QgdW5zID0K
ICBsZXQKICAgIGZ1biBkZW1vZCAobGl0LCB0aCkgPQogICAgICBjYXNlIHVwcm92ZSB1bnMg
W25lZ2F0ZSBsaXRdIG9mIE5PTkUgPT4gdGgKICAgICAgfCBTT01FIFtkdGhdID0+IFJFU09M
VkUgbGl0IHRoIGR0aAogICAgICB8IFNPTUUgXyA9PiByYWlzZSBCVUcgInVuaXRfZGVtb2Qi
ICJjb3JydXB0IgogIGluCiAgICBmbiB0aCA9PiBmb2xkbCBkZW1vZCB0aCAoY2xhdXNlIHRo
KQogIGVuZDsKCigqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKikKKCogVGhlIHVzZXIgaW50ZXJm
YWNlLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAqKQooKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICopCgp0eXBlIHVuaXRzID0gKHRobSwg
dW5zKSBzdW07Cgp2YWwgZW1wdHkgPSBJTlIgdWVtcHR5OwoKZnVuIHN1YnN1bWVzIChJTkwg
dGgpID0gSyAoU09NRSB0aCkKICB8IHN1YnN1bWVzIChJTlIgdW5zKSA9IHVzdWJzdW1lcyB1
bnM7CgpmdW4gcHJvdmUgKElOTCB0aCkgPSBTT01FIG8gbWFwIChmbiBGYWxzZSA9PiB0aCB8
IGxpdCA9PiBDT05UUiBsaXQgdGgpCiAgfCBwcm92ZSAoSU5SIHVucykgPSB1cHJvdmUgdW5z
OwoKZnVuIGRlbW9kIChJTkwgdGgpID0gSyB0aAogIHwgZGVtb2QgKElOUiB1bnMpID0gdWRl
bW9kIHVuczsKCmZ1biBpbmZvICgoSU5MIF8pIDogdW5pdHMpID0gIioiCiAgfCBpbmZvIChJ
TlIgdW5zKSA9IGludF90b19zdHJpbmcgKE4uc2l6ZSB1bnMpOwoKdmFsIHBwX3VuaXRzID0g
cHBfbWFwIGluZm8gcHBfc3RyaW5nOwoKKCogQWRkaW5nIGEgdGhlb3JlbSBpbnZvbHZlcyBz
cXVhc2hpbmcgaXQgdG8gYSB1bml0LCBpZiBwb3NzaWJsZS4gKikKCmZ1biBhZGQgXyAoVSBh
cyBJTkwgXykgPSBVCiAgfCBhZGQgdGggKFUgYXMgSU5SIHVucykgPQogIGlmIExpc3QuZXhp
c3RzIChPcHRpb24uaXNTb21lIG8gdXN1YnN1bWVzIHVucykgKGNsYXVzZSB0aCkgdGhlbiBV
CiAgZWxzZQogICAgbGV0CiAgICAgIHZhbCB0aCA9IHVkZW1vZCB1bnMgdGgKICAgIGluCiAg
ICAgIGlmIGlzX2NvbnRyYWRpY3Rpb24gdGggdGhlbiBJTkwgdGgKICAgICAgZWxzZSBjYXNl
IHRvdGFsIFVOSVRfU1FVQVNIIHRoIG9mIE5PTkUgPT4gVSB8IFNPTUUgdGggPT4gSU5SICh1
YWRkIHRoIHVucykKICAgIGVuZDsKCnZhbCBhZGRsID0gQyAoZm9sZGwgKHVuY3VycnkgYWRk
KSk7CgplbmQKKCojbGluZSAwLjAgImZvbC9Qcm9ibGVtMS5zaWciKikKKCogPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PSAqKQooKiBTT01FIFNBTVBMRSBQUk9CTEVNUyBUTyBURVNUIFBST09GIFBS
T0NFRFVSRVMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopCigqIENyZWF0ZWQgYnkg
Sm9lIEh1cmQsIFNlcHRlbWJlciAyMDAxICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgKikKKCogUGFydGx5IHBvcnRlZCBmcm9tIHRoZSBDQU1MLUxpZ2h0IGNvZGUg
YWNjb21wYW55aW5nIEpvaG4gSGFycmlzb24ncyBib29rICAqKQooKiA9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09ICopCgpzaWduYXR1cmUgUHJvYmxlbTEgPQpzaWcKCnR5cGUgJ2EgcXVvdGF0aW9u
ID0gJ2EgZnJhZyBsaXN0CnR5cGUgJ2EgcHJvYmxlbSAgID0ge25hbWUgOiBzdHJpbmcsIGdv
YWwgOiAnYSBxdW90YXRpb259CgooKiBBY2Nlc3NpbmcgaW5kaXZpZHVhbCBwcm9ibGVtcyAq
KQp2YWwgZ2V0IDogJ2EgcHJvYmxlbSBsaXN0IC0+IHN0cmluZyAtPiAnYSBxdW90YXRpb24K
CigqIFRoZSBtYXN0ZXIgY29sbGVjdGlvbnMgKikKdmFsIG5vbmVxdWFsaXR5IDogJ2EgcHJv
YmxlbSBsaXN0CnZhbCBlcXVhbGl0eSAgICA6ICdhIHByb2JsZW0gbGlzdAp2YWwgdHB0cCAg
ICAgICAgOiAnYSBwcm9ibGVtIGxpc3QKCigqIFNvbWUgY29tcGlsYXRpb25zICopCigqdmFs
IHF1aWNrIDogJ2EgcHJvYmxlbSBsaXN0ICopCgplbmQKKCojbGluZSAwLjAgImZvbC9Qcm9i
bGVtMS5zbWwiKikKKCogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqKQooKiBTT01FIFNBTVBMRSBQ
Uk9CTEVNUyBUTyBURVNUIFBST09GIFBST0NFRFVSRVMgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICopCigqIENyZWF0ZWQgYnkgSm9lIEh1cmQsIFNlcHRlbWJlciAyMDAxICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKikKKCogUGFydGx5IHBvcnRlZCBm
cm9tIHRoZSBDQU1MLUxpZ2h0IGNvZGUgYWNjb21wYW55aW5nIEpvaG4gSGFycmlzb24ncyBi
b29rICAqKQooKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICopCgpzdHJ1Y3R1cmUgUHJvYmxlbTEg
Oj4gUHJvYmxlbTEgPQpzdHJ1Y3QKCnR5cGUgJ2EgcXVvdGF0aW9uID0gJ2EgZnJhZyBsaXN0
OwoKdHlwZSAnYSBwcm9ibGVtID0ge25hbWUgOiBzdHJpbmcsIGdvYWwgOiAnYSBxdW90YXRp
b259OwoKKCogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqKQooKiBBY2Nlc3NpbmcgaW5kaXZpZHVh
bCBwcm9ibGVtcy4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICopCigqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0gKikKCmZ1biBleHRyYWN0IChwIDogJ2EgcHJv
YmxlbSBsaXN0KSBuID0KICBPcHRpb24udmFsT2YgKExpc3QuZmluZCAoZm4ge25hbWUsIC4u
Ln0gPT4gbmFtZSA9IG4pIHApOwoKZnVuIGdldCBwID0gI2dvYWwgbyBleHRyYWN0IHA7Cgoo
KiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09ICopCigqIFByb2JsZW1zIHdpdGhvdXQgZXF1YWxpdHku
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKikKKCog
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PSAqKQoKdmFsIG5vbmVxdWFsaXR5ID0gWwoKKCogLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLSAqKQooKiBUcml2aWEgKHNvbWUgb2Ygd2hpY2ggZGVtb25zdHJhdGUg
ZXgtYnVncyBpbiBwcm92ZXJzKS4gICAgICAgICAgICAgICAgICAgICopCigqIC0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0gKikKCntuYW1lID0gIlRSVUUiLAogZ29hbCA9IFsKUVVPVEUgIlxuVCJd
fSwKCntuYW1lID0gIlBfb3Jfbm90X1AiLAogZ29hbCA9IFsKUVVPVEUgIlxucCBcXC8gfnAi
XX0sCgp7bmFtZSA9ICJKSF90ZXN0IiwKIGdvYWwgPSBbClFVT1RFICJcbiF4IHkuID96LiBw
IHggXFwvIHAgeSA9PT4gcCB6Il19LAoKe25hbWUgPSAiQ1lDTElDIiwKIGdvYWwgPSBbClFV
T1RFICJcbigheC4gcCAoZyAoYyB4KSkpID09PiA/ei4gcCAoZyB6KSJdfSwKCntuYW1lID0g
Ik1OX2J1ZyIsCiBnb2FsID0gWwpRVU9URSAiXG4oIXguID95LiBmIHkgeCB4KSA9PT4gP3ou
IGYgeiAwIDAiXX0sCgp7bmFtZSA9ICJFUklDIiwKIGdvYWwgPSBbClFVT1RFICJcbiF4LiA/
diB3LiAheSB6LiBwIHggL1xcIHEgeSA9PT4gKHAgdiBcXC8gciB3KSAvXFwgKHIgeiA9PT4g
cSB2KSJdfSwKCigqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKikKKCogUHJvcG9zaXRpb25hbCBM
b2dpYy4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAqKQooKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICopCgp7bmFtZSA9ICJQUk9QXzEiLAog
Z29hbCA9IFsKUVVPVEUgIlxucCA9PT4gcSA8PT4gfnEgPT0+IH5wIl19LAoKe25hbWUgPSAi
UFJPUF8yIiwKIGdvYWwgPSBbClFVT1RFICJcbn5+cCA8PT4gcCJdfSwKCntuYW1lID0gIlBS
T1BfMyIsCiBnb2FsID0gWwpRVU9URSAiXG5+KHAgPT0+IHEpID09PiBxID09PiBwIl19LAoK
e25hbWUgPSAiUFJPUF80IiwKIGdvYWwgPSBbClFVT1RFICJcbn5wID09PiBxIDw9PiB+cSA9
PT4gcCJdfSwKCntuYW1lID0gIlBST1BfNSIsCiBnb2FsID0gWwpRVU9URSAiXG4ocCBcXC8g
cSA9PT4gcCBcXC8gcikgPT0+IHAgXFwvIChxID09PiByKSJdfSwKCntuYW1lID0gIlBST1Bf
NiIsCiBnb2FsID0gWwpRVU9URSAiXG5wIFxcLyB+cCJdfSwKCntuYW1lID0gIlBST1BfNyIs
CiBnb2FsID0gWwpRVU9URSAiXG5wIFxcLyB+fn5wIl19LAoKe25hbWUgPSAiUFJPUF84IiwK
IGdvYWwgPSBbClFVT1RFICJcbigocCA9PT4gcSkgPT0+IHApID09PiBwIl19LAoKe25hbWUg
PSAiUFJPUF85IiwKIGdvYWwgPSBbClFVT1RFICJcbihwIFxcLyBxKSAvXFwgKH5wIFxcLyBx
KSAvXFwgKHAgXFwvIH5xKSA9PT4gfih+cSBcXC8gfnEpIl19LAoKe25hbWUgPSAiUFJPUF8x
MCIsCiBnb2FsID0gWwpRVU9URSAiXG4ocSA9PT4gcikgL1xcIChyID09PiBwIC9cXCBxKSAv
XFwgKHAgPT0+IHEgL1xcIHIpID09PiAocCA8PT4gcSkiXX0sCgp7bmFtZSA9ICJQUk9QXzEx
IiwKIGdvYWwgPSBbClFVT1RFICJcbnAgPD0+IHAiXX0sCgp7bmFtZSA9ICJQUk9QXzEyIiwK
IGdvYWwgPSBbClFVT1RFICJcbigocCA8PT4gcSkgPD0+IHIpIDw9PiBwIDw9PiBxIDw9PiBy
Il19LAoKe25hbWUgPSAiUFJPUF8xMyIsCiBnb2FsID0gWwpRVU9URSAiXG5wIFxcLyBxIC9c
XCByIDw9PiAocCBcXC8gcSkgL1xcIChwIFxcLyByKSJdfSwKCntuYW1lID0gIlBST1BfMTQi
LAogZ29hbCA9IFsKUVVPVEUgIlxuKHAgPD0+IHEpIDw9PiAocSBcXC8gfnApIC9cXCAofnEg
XFwvIHApIl19LAoKe25hbWUgPSAiUFJPUF8xNSIsCiBnb2FsID0gWwpRVU9URSAiXG5wID09
PiBxIDw9PiB+cCBcXC8gcSJdfSwKCntuYW1lID0gIlBST1BfMTYiLAogZ29hbCA9IFsKUVVP
VEUgIlxuKHAgPT0+IHEpIFxcLyAocSA9PT4gcCkiXX0sCgp7bmFtZSA9ICJQUk9QXzE3IiwK
IGdvYWwgPSBbClFVT1RFICJcbnAgL1xcIChxID09PiByKSA9PT4gcyA8PT4gKH5wIFxcLyBx
IFxcLyBzKSAvXFwgKH5wIFxcLyB+ciBcXC8gcykiXX0sCgp7bmFtZSA9ICJNQVRIUzRfRVhB
TVBMRSIsCiBnb2FsID0gWwpRVU9URSAiXG4oYSBcXC8gfmsgPT0+IGcpIC9cXCAoZyA9PT4g
cSkgL1xcIH5xID09PiBrIl19LAoKe25hbWUgPSAiWE9SX0FTU09DIiwKIGdvYWwgPSBbClFV
T1RFICJcbn4ofihwIDw9PiBxKSA8PT4gcikgPD0+IH4ocCA8PT4gfihxIDw9PiByKSkiXX0s
CgooKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICopCigqIE1vbmFkaWMgUHJlZGljYXRlIExvZ2lj
LiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKikK
KCogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqKQoKKCogVGhlIGRyaW5rZXIncyBwcmluY2lwbGUg
KikKe25hbWUgPSAiUDE4IiwKIGdvYWwgPSBbClFVT1RFICJcbj92ZXJ5X3BvcHVsYXJfZ3V5
LiAhd2hvbGVfcHViLiBkcmlua3MgdmVyeV9wb3B1bGFyX2d1eSA9PT4gZHJpbmtzIHdob2xl
X3B1YiJdfSwKCntuYW1lID0gIlAxOSIsCiBnb2FsID0gWwpRVU9URSAiXG4/eC4gIXkgei4g
KHAgeSA9PT4gcSB6KSA9PT4gcCB4ID09PiBxIHgiXX0sCgp7bmFtZSA9ICJQMjAiLAogZ29h
bCA9IFsKUVVPVEUgIlxuKCF4IHkuID96LiAhdy4gcCB4IC9cXCBxIHkgPT0+IHIgeiAvXFwg
dSB3KSAvXFwgKCF4IHkuIHAgeCAvXFwgcSB5KSA9PT4gP3ouIHIgeiJdfSwKCntuYW1lID0g
IlAyMSIsCiBnb2FsID0gWwpRVU9URSAiXG4oP3guIHAgPT0+IHEgeCkgL1xcICg/eC4gcSB4
ID09PiBwKSA9PT4gP3guIHAgPD0+IHEgeCJdfSwKCntuYW1lID0gIlAyMiIsCiBnb2FsID0g
WwpRVU9URSAiXG4oIXguIHAgPD0+IHEgeCkgPT0+IChwIDw9PiAheC4gcSB4KSJdfSwKCntu
YW1lID0gIlAyMyIsCiBnb2FsID0gWwpRVU9URSAiXG4oIXguIHAgXFwvIHEgeCkgPD0+IHAg
XFwvICF4LiBxIHgiXX0sCgp7bmFtZSA9ICJQMjQiLAogZ29hbCA9IFsKClFVT1RFICJcbn4o
P3guIHUgeCAvXFwgcSB4KSAvXFwgKCF4LiBwIHggPT0+IHEgeCBcXC8gciB4KSAvXFwgfig/
eC4gcCB4ID09PiA/eC4gcSB4KSAvXFxcbigheC4gcSB4IC9cXCByIHggPT0+IHUgeCkgPT0+
ID94LiBwIHggL1xcIHIgeCJdfSwKCntuYW1lID0gIlAyNSIsCiBnb2FsID0gWwoKUVVPVEUg
IlxuKD94LiBwIHgpIC9cXCAoIXguIHUgeCA9PT4gfmcgeCAvXFwgciB4KSAvXFwgKCF4LiBw
IHggPT0+IGcgeCAvXFwgdSB4KSAvXFxcbigoIXguIHAgeCA9PT4gcSB4KSBcXC8gP3guIHEg
eCAvXFwgcCB4KSA9PT4gP3guIHEgeCAvXFwgcCB4Il19LAoKe25hbWUgPSAiUDI2IiwKIGdv
YWwgPSBbCgpRVU9URSAiXG4oKD94LiBwIHgpIDw9PiA/eC4gcSB4KSAvXFwgKCF4IHkuIHAg
eCAvXFwgcSB5ID09PiAociB4IDw9PiB1IHkpKSA9PT5cbigoIXguIHAgeCA9PT4gciB4KSA8
PT4gIXguIHEgeCA9PT4gdSB4KSJdfSwKCntuYW1lID0gIlAyNyIsCiBnb2FsID0gWwoKUVVP
VEUgIlxuKD94LiBwIHggL1xcIH5xIHgpIC9cXCAoIXguIHAgeCA9PT4gciB4KSAvXFwgKCF4
LiB1IHggL1xcIHMgeCA9PT4gcCB4KSAvXFxcbig/eC4gciB4IC9cXCB+cSB4KSA9PT4gKCF4
LiB1IHggPT0+IH5yIHgpID09PiAheC4gdSB4ID09PiB+cyB4Il19LAoKe25hbWUgPSAiUDI4
IiwKIGdvYWwgPSBbCgpRVU9URSAiXG4oIXguIHAgeCA9PT4gIXguIHEgeCkgL1xcICgoIXgu
IHEgeCBcXC8gciB4KSA9PT4gP3guIHEgeCAvXFwgciB4KSAvXFxcbigoP3guIHIgeCkgPT0+
ICF4LiBsIHggPT0+IG0geCkgPT0+ICF4LiBwIHggL1xcIGwgeCA9PT4gbSB4Il19LAoKe25h
bWUgPSAiUDI5IiwKIGdvYWwgPSBbCgoKUVVPVEUgIlxuKD94LiBwIHgpIC9cXCAoP3guIGcg
eCkgPT0+XG4oKCF4LiBwIHggPT0+IGggeCkgL1xcICgheC4gZyB4ID09PiBqIHgpIDw9Plxu
ICF4IHkuIHAgeCAvXFwgZyB5ID09PiBoIHggL1xcIGogeSkiXX0sCgp7bmFtZSA9ICJQMzAi
LAogZ29hbCA9IFsKClFVT1RFICJcbigheC4gcCB4IFxcLyBnIHggPT0+IH5oIHgpIC9cXCAo
IXguIChnIHggPT0+IH51IHgpID09PiBwIHggL1xcIGggeCkgPT0+XG4heC4gdSB4Il19LAoK
e25hbWUgPSAiUDMxIiwKIGdvYWwgPSBbCgpRVU9URSAiXG5+KD94LiBwIHggL1xcIChnIHgg
XFwvIGggeCkpIC9cXCAoP3guIHEgeCAvXFwgcCB4KSAvXFwgKCF4LiB+aCB4ID09PiBqIHgp
ID09PlxuP3guIHEgeCAvXFwgaiB4Il19LAoKe25hbWUgPSAiUDMyIiwKIGdvYWwgPSBbCgpR
VU9URSAiXG4oIXguIHAgeCAvXFwgKGcgeCBcXC8gaCB4KSA9PT4gcSB4KSAvXFwgKCF4LiBx
IHggL1xcIGggeCA9PT4gaiB4KSAvXFxcbigheC4gciB4ID09PiBoIHgpID09PiAheC4gcCB4
IC9cXCByIHggPT0+IGogeCJdfSwKCntuYW1lID0gIlAzMyIsCiBnb2FsID0gWwoKUVVPVEUg
IlxuKCF4LiBwIGEgL1xcIChwIHggPT0+IHAgYikgPT0+IHAgYykgPD0+XG4oIXguIHAgYSA9
PT4gcCB4IFxcLyBwIGMpIC9cXCAocCBhID09PiBwIGIgPT0+IHAgYykiXX0sCgooKiBUaGlz
IGdpdmVzIHJpc2UgdG8gNTE4NCBjbGF1c2VzIHdoZW4gY29udmVydGVkIHRvIENORiEgKikK
e25hbWUgPSAiUDM0IiwKIGdvYWwgPSBbCgpRVU9URSAiXG4oKD94LiAheS4gcCB4IDw9PiBw
IHkpIDw9PiAoP3guIHEgeCkgPD0+ICF5LiBxIHkpIDw9PlxuKD94LiAheS4gcSB4IDw9PiBx
IHkpIDw9PiAoP3guIHAgeCkgPD0+ICF5LiBwIHkiXX0sCgp7bmFtZSA9ICJQMzUiLAogZ29h
bCA9IFsKUVVPVEUgIlxuP3ggeS4gcCB4IHkgPT0+ICF4IHkuIHAgeCB5Il19LAoKKCogLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLSAqKQooKiBGdWxsIHByZWRpY2F0ZSBsb2dpYyAod2l0aG91dCBJ
ZGVudGl0eSBhbmQgRnVuY3Rpb25zKSAgICAgICAgICAgICAgICAgICAgICopCigqIC0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0gKikKCntuYW1lID0gIlAzNiIsCiBnb2FsID0gWwoKUVVPVEUgIlxu
KCF4LiA/eS4gcCB4IHkpIC9cXCAoIXguID95LiBnIHggeSkgL1xcXG4oIXggeS4gcCB4IHkg
XFwvIGcgeCB5ID09PiAhei4gcCB5IHogXFwvIGcgeSB6ID09PiBoIHggeikgPT0+ICF4LiA/
eS4gaCB4IHkiXX0sCgp7bmFtZSA9ICJQMzciLAogZ29hbCA9IFsKCgpRVU9URSAiXG4oIXou
ID93LiAheC4gP3kuIChwIHggeiA9PT4gcCB5IHcpIC9cXCBwIHkgeiAvXFwgKHAgeSB3ID09
PiA/di4gcSB2IHcpKSAvXFxcbigheCB6LiB+cCB4IHogPT0+ID95LiBxIHkgeikgL1xcICgo
P3ggeS4gcSB4IHkpID09PiAheC4gciB4IHgpID09PlxuIXguID95LiByIHggeSJdfSwKCntu
YW1lID0gIlAzOCIsCiBnb2FsID0gWwoKCgpRVU9URSAiXG4oIXguIHAgYSAvXFwgKHAgeCA9
PT4gP3kuIHAgeSAvXFwgciB4IHkpID09PiA/eiB3LiBwIHogL1xcIHIgeCB3IC9cXCByIHcg
eikgPD0+XG4heC5cbiAgKH5wIGEgXFwvIHAgeCBcXC8gP3ogdy4gcCB6IC9cXCByIHggdyAv
XFwgciB3IHopIC9cXFxuICAofnAgYSBcXC8gfig/eS4gcCB5IC9cXCByIHggeSkgXFwvID96
IHcuIHAgeiAvXFwgciB4IHcgL1xcIHIgdyB6KSJdfSwKCntuYW1lID0gIlAzOSIsCiBnb2Fs
ID0gWwpRVU9URSAiXG5+P3guICF5LiBwIHkgeCA8PT4gfnAgeSB5Il19LAoKe25hbWUgPSAi
UDQwIiwKIGdvYWwgPSBbClFVT1RFICJcbig/eS4gIXguIHAgeCB5IDw9PiBwIHggeCkgPT0+
IH4heC4gP3kuICF6LiBwIHogeSA8PT4gfnAgeiB4Il19LAoKe25hbWUgPSAiUDQxIiwKIGdv
YWwgPSBbClFVT1RFICJcbighei4gP3kuICF4LiBwIHggeSA8PT4gcCB4IHogL1xcIH5wIHgg
eCkgPT0+IH4/ei4gIXguIHAgeCB6Il19LAoKe25hbWUgPSAiUDQyIiwKIGdvYWwgPSBbClFV
T1RFICJcbn4/eS4gIXguIHAgeCB5IDw9PiB+P3ouIHAgeCB6IC9cXCBwIHogeCJdfSwKCntu
YW1lID0gIlA0MyIsCiBnb2FsID0gWwpRVU9URSAiXG4oIXggeS4gcSB4IHkgPD0+ICF6LiBw
IHogeCA8PT4gcCB6IHkpID09PiAheCB5LiBxIHggeSA8PT4gcSB5IHgiXX0sCgp7bmFtZSA9
ICJQNDQiLAogZ29hbCA9IFsKClFVT1RFICJcbigheC4gcCB4ID09PiAoP3kuIGcgeSAvXFwg
aCB4IHkpIC9cXCA/eS4gZyB5IC9cXCB+aCB4IHkpIC9cXFxuKD94LiBqIHggL1xcICF5LiBn
IHkgPT0+IGggeCB5KSA9PT4gP3guIGogeCAvXFwgfnAgeCJdfSwKCntuYW1lID0gIlA0NSIs
CiBnb2FsID0gWwoKCgpRVU9URSAiXG4oIXguIHAgeCAvXFwgKCF5LiBnIHkgL1xcIGggeCB5
ID09PiBqIHggeSkgPT0+ICF5LiBnIHkgL1xcIGggeCB5ID09PiByIHkpIC9cXFxufig/eS4g
bCB5IC9cXCByIHkpIC9cXFxuKD94LiBwIHggL1xcICgheS4gaCB4IHkgPT0+IGwgeSkgL1xc
ICF5LiBnIHkgL1xcIGggeCB5ID09PiBqIHggeSkgPT0+XG4/eC4gcCB4IC9cXCB+P3kuIGcg
eSAvXFwgaCB4IHkiXX0sCgp7bmFtZSA9ICJQNDYiLAogZ29hbCA9IFsKCgpRVU9URSAiXG4o
IXguIHAgeCAvXFwgKCF5LiBwIHkgL1xcIGggeSB4ID09PiBnIHkpID09PiBnIHgpIC9cXFxu
KCg/eC4gcCB4IC9cXCB+ZyB4KSA9PT4gP3guIHAgeCAvXFwgfmcgeCAvXFwgIXkuIHAgeSAv
XFwgfmcgeSA9PT4gaiB4IHkpIC9cXFxuKCF4IHkuIHAgeCAvXFwgcCB5IC9cXCBoIHggeSA9
PT4gfmogeSB4KSA9PT4gIXguIHAgeCA9PT4gZyB4Il19LAoKe25hbWUgPSAiUDUwIiwKIGdv
YWwgPSBbClFVT1RFICJcbigheC4gZjAgYSB4IFxcLyAheS4gZjAgeCB5KSA9PT4gP3guICF5
LiBmMCB4IHkiXX0sCgooKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICopCigqIEV4YW1wbGUgZnJv
bSBNYW50aGV5IGFuZCBCcnksIENBREUtOS4gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgKikKKCogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqKQoKe25hbWUgPSAiUDU1IiwK
IGdvYWwgPSBbCgoKCgoKCgoKUVVPVEUgIlxubGl2ZXMgYWdhdGhhIC9cXCBsaXZlcyBidXRs
ZXIgL1xcIGxpdmVzIGNoYXJsZXMgL1xcXG4oa2lsbGVkIGFnYXRoYSBhZ2F0aGEgXFwvIGtp
bGxlZCBidXRsZXIgYWdhdGhhIFxcLyBraWxsZWQgY2hhcmxlcyBhZ2F0aGEpIC9cXFxuKCF4
IHkuIGtpbGxlZCB4IHkgPT0+IGhhdGVzIHggeSAvXFwgfnJpY2hlciB4IHkpIC9cXFxuKCF4
LiBoYXRlcyBhZ2F0aGEgeCA9PT4gfmhhdGVzIGNoYXJsZXMgeCkgL1xcXG4oaGF0ZXMgYWdh
dGhhIGFnYXRoYSAvXFwgaGF0ZXMgYWdhdGhhIGNoYXJsZXMpIC9cXFxuKCF4LiBsaXZlcyB4
IC9cXCB+cmljaGVyIHggYWdhdGhhID09PiBoYXRlcyBidXRsZXIgeCkgL1xcXG4oIXguIGhh
dGVzIGFnYXRoYSB4ID09PiBoYXRlcyBidXRsZXIgeCkgL1xcXG4oIXguIH5oYXRlcyB4IGFn
YXRoYSBcXC8gfmhhdGVzIHggYnV0bGVyIFxcLyB+aGF0ZXMgeCBjaGFybGVzKSA9PT5cbmtp
bGxlZCBhZ2F0aGEgYWdhdGhhIC9cXCB+a2lsbGVkIGJ1dGxlciBhZ2F0aGEgL1xcIH5raWxs
ZWQgY2hhcmxlcyBhZ2F0aGEiXX0sCgp7bmFtZSA9ICJQNTciLAogZ29hbCA9IFsKClFVT1RF
ICJcbnAgKGYgYSBiKSAoZiBiIGMpIC9cXCBwIChmIGIgYykgKGYgYSBjKSAvXFxcbigheCB5
IHouIHAgeCB5IC9cXCBwIHkgeiA9PT4gcCB4IHopID09PiBwIChmIGEgYikgKGYgYSBjKSJd
fSwKCigqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKikKKCogU2VlIGluZm8taG9sLCBjaXJjYSAx
NTAwLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAq
KQooKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICopCgp7bmFtZSA9ICJQNTgiLAogZ29hbCA9IFsK
UVVPVEUgIlxuIXguID92IHcuICF5IHouIHAgeCAvXFwgcSB5ID09PiAocCB2IFxcLyByIHcp
IC9cXCAociB6ID09PiBxIHYpIl19LAoKe25hbWUgPSAiUDU5IiwKIGdvYWwgPSBbClFVT1RF
ICJcbigheC4gcCB4IDw9PiB+cCAoZiB4KSkgPT0+ID94LiBwIHggL1xcIH5wIChmIHgpIl19
LAoKe25hbWUgPSAiUDYwIiwKIGdvYWwgPSBbClFVT1RFICJcbiF4LiBwIHggKGYgeCkgPD0+
ID95LiAoIXouIHAgeiB5ID09PiBwIHogKGYgeCkpIC9cXCBwIHggeSJdfSwKCigqIC0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0gKikKKCogRnJvbSBHaWxtb3JlJ3MgY2xhc3NpYyBwYXBlci4gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKQooKiAtLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tICopCgooKgpKUkg6IEFtYXppbmdseSwgdGhpcyBzdGlsbCBzZWVtcyBu
b24tdHJpdmlhbC4uLiBpbiBIT0wgaXQgd29ya3MgYXQgZGVwdGggNDUhCkpvZTogQ29uZmly
bWVkIChkZXB0aD00NSwgaW5mZXJlbmNlcz0yNjM3MDIsIHRpbWU9MTQ4cyksIHRob3VnaCBp
ZiBsZW1tYWl6aW5nCiAgICAgaXMgdXNlZCB0aGVuIGEgbGVtbWEgaXMgZGlzY292ZXJlZCBh
dCBkZXB0aCAyOSB0aGF0IGFsbG93cyBhIG11Y2ggcXVpY2tlcgogICAgIHByb29mIChkZXB0
aD0zMCwgaW5mZXJlbmNlcz0xMDAzOSwgdGltZT01LjVzKS4gWzEzIE9jdCAyMDAxXQoqKQp7
bmFtZSA9ICJHSUxNT1JFXzEiLAogZ29hbCA9IFsKCgpRVU9URSAiXG4/eC4gIXkgei5cbiAg
KGYgeSA9PT4gZyB5IDw9PiBmIHgpIC9cXCAoZiB5ID09PiBoIHkgPD0+IGcgeCkgL1xcXG4g
ICgoZiB5ID09PiBnIHkpID09PiBoIHkgPD0+IGggeCkgPT0+IGYgeiAvXFwgZyB6IC9cXCBo
IHoiXX0sCgooKgpKUkg6IFRoaXMgaXMgbm90IHZhbGlkLCBhY2NvcmRpbmcgdG8gR2lsbW9y
ZQp7bmFtZSA9ICJHSUxNT1JFXzIiLAogZ29hbCA9IGAKP3ggeS4gIXouCiAgKGYgeCB6IDw9
PiBmIHogeSkgL1wgKGYgeiB5IDw9PiBmIHogeikgL1wgKGYgeCB5IDw9PiBmIHkgeCkgPT0+
CiAgKGYgeCB5IDw9PiBmIHggeilgfSwKKikKCntuYW1lID0gIkdJTE1PUkVfMyIsCiBnb2Fs
ID0gWwoKClFVT1RFICJcbj94LiAheSB6LlxuICAoKGYgeSB6ID09PiBnIHkgPT0+IGggeCkg
PT0+IGYgeCB4KSAvXFwgKChmIHogeCA9PT4gZyB4KSA9PT4gaCB6KSAvXFxcbiAgZiB4IHkg
PT0+IGYgeiB6Il19LAoKe25hbWUgPSAiR0lMTU9SRV80IiwKIGdvYWwgPSBbClFVT1RFICJc
bj94IHkuICF6LiAoZiB4IHkgPT0+IGYgeSB6IC9cXCBmIHogeikgL1xcIChmIHggeSAvXFwg
ZyB4IHkgPT0+IGcgeCB6IC9cXCBnIHogeikiXX0sCgp7bmFtZSA9ICJHSUxNT1JFXzUiLAog
Z29hbCA9IFsKUVVPVEUgIlxuKCF4LiA/eS4gZiB4IHkgXFwvIGYgeSB4KSAvXFwgKCF4IHku
IGYgeSB4ID09PiBmIHkgeSkgPT0+ID96LiBmIHogeiJdfSwKCntuYW1lID0gIkdJTE1PUkVf
NiIsCiBnb2FsID0gWwoKCgpRVU9URSAiXG4heC4gP3kuXG4gICg/dy4gIXYuIGYgdyB4ID09
PiBnIHYgdyAvXFwgZyB3IHgpID09PlxuICAoP3cuICF2LiBmIHcgeSA9PT4gZyB2IHcgL1xc
IGcgdyB5KSBcXC9cbiAgIXogdi4gP3cuIGcgdiB6IFxcLyBoIHcgeSB6ID09PiBnIHogdyJd
fSwKCntuYW1lID0gIkdJTE1PUkVfNyIsCiBnb2FsID0gWwoKUVVPVEUgIlxuKCF4LiBrIHgg
PT0+ID95LiBsIHkgL1xcIChmIHggeSA9PT4gZyB4IHkpKSAvXFxcbig/ei4gayB6IC9cXCAh
dy4gbCB3ID09PiBmIHogdykgPT0+ID92IHcuIGsgdiAvXFwgbCB3IC9cXCBnIHYgdyJdfSwK
CntuYW1lID0gIkdJTE1PUkVfOCIsCiBnb2FsID0gWwoKClFVT1RFICJcbj94LiAheSB6Llxu
ICAoKGYgeSB6ID09PiBnIHkgPT0+ICF3LiA/di4gaCB3IHYgeCkgPT0+IGYgeCB4KSAvXFxc
biAgKChmIHogeCA9PT4gZyB4KSA9PT4gIXcuID92LiBoIHcgdiB6KSAvXFwgZiB4IHkgPT0+
IGYgeiB6Il19LAoKKCoKSlJIOiBUaGlzIGlzIHN0aWxsIGEgdmVyeSBoYXJkIGdvYWwKSm9l
OiBXaXRoIGxlbW1haXppbmcgKGluIEhPTCk6IChkZXB0aD0xOCwgaW5mZXJlbmNlcz0xNTYz
MiwgdGltZT0yMXMpCiAgICAgV2l0aG91dDogZ2F2ZSB1cCB3YWl0aW5nIGFmdGVyIChkZXB0
aD0yNSwgaW5mZXJlbmNlcz0yMTI1MDcyLCB0aW1lPTMwMDBzKQogICAgIFsxMyBPY3QgMjAw
MV0KKikKe25hbWUgPSAiR0lMTU9SRV85IiwKIGdvYWwgPSBbCgoKCgoKCgpRVU9URSAiXG4h
eC4gP3kuICF6LlxuICAoKCF3LiA/di4gZiB5IHcgdiAvXFwgZyB5IHcgL1xcIH5oIHkgeCkg
PT0+XG4gICAoIXcuID92LiBmIHggdyB2IC9cXCBnIHogdSAvXFwgfmggeCB6KSA9PT5cbiAg
ICF3LiA/di4gZiB4IHcgdiAvXFwgZyB5IHcgL1xcIH5oIHggeSkgL1xcXG4gICgoIXcuID92
LiBmIHggdyB2IC9cXCBnIHkgdyAvXFwgfmggeCB5KSA9PT5cbiAgIH4oIXcuID92LiBmIHgg
dyB2IC9cXCBnIHogdyAvXFwgfmggeCB6KSA9PT5cbiAgICghdy4gP3YuIGYgeSB3IHYgL1xc
IGcgeSB3IC9cXCB+aCB5IHgpIC9cXFxuICAgIXcuID92LiBmIHogdyB2IC9cXCBnIHkgdyAv
XFwgfmggeiB5KSJdfSwKCigqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKikKKCogVHJhbnNsYXRp
b24gb2YgR2lsbW9yZSBwcm9jZWR1cmUgdXNpbmcgc2VwYXJhdGUgZGVmaW5pdGlvbnMuICAg
ICAgICAgICAgICAqKQooKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICopCgp7bmFtZSA9ICJHSUxN
T1JFXzlhIiwKIGdvYWwgPSBbCgoKUVVPVEUgIlxuKCF4IHkuIHAgeCB5IDw9PiAhdy4gP3Yu
IGYgeCB3IHYgL1xcIGcgeSB3IC9cXCB+aCB4IHkpID09PlxuIXguID95LiAhei5cbiAgKHAg
eSB4ID09PiBwIHggeiA9PT4gcCB4IHkpIC9cXCAocCB4IHkgPT0+IH5wIHggeiA9PT4gcCB5
IHggL1xcIHAgeiB5KSJdfSwKCigqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKikKKCogRXhhbXBs
ZSBmcm9tIERhdmlzLVB1dG5hbSBwYXBlcnMgd2hlcmUgR2lsbW9yZSBwcm9jZWR1cmUgaXMg
cG9vci4gICAgICAgICAqKQooKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICopCgp7bmFtZSA9ICJE
QVZJU19QVVROQU1fRVhBTVBMRSIsCiBnb2FsID0gWwpRVU9URSAiXG4/eCB5LiAhei4gKGYg
eCB5ID09PiBmIHkgeiAvXFwgZiB6IHopIC9cXCAoZiB4IHkgL1xcIGcgeCB5ID09PiBnIHgg
eiAvXFwgZyB6IHopIl19LAoKKCogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqKQooKiBUaGUgaW50
ZXJlc3RpbmcgZXhhbXBsZSB3aGVyZSBjb25uZWN0aW9ucyBtYWtlIHRoZSBwcm9vZiBsb25n
ZXIuICAgICAgICAgICopCigqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKikKCntuYW1lID0gIkJB
RF9DT05ORUNUSU9OUyIsCiBnb2FsID0gWwoKUVVPVEUgIlxufmEgL1xcIChhIFxcLyBiKSAv
XFwgKGMgXFwvIGQpIC9cXCAofmIgXFwvIGUgXFwvIGYpIC9cXCAofmMgXFwvIH5lKSAvXFwg
KH5jIFxcLyB+ZikgL1xcXG4ofmIgXFwvIGcgXFwvIGgpIC9cXCAofmQgXFwvIH5nKSAvXFwg
KH5kIFxcLyB+aCkgPT0+IEYiXX0sCgooKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICopCigqIFRo
ZSBjbGFzc2ljIExvcyBwdXp6bGUuIChDbGF1c2FsIHZlcnNpb24gTVNDMDA2LTEgaW4gdGhl
IFRQVFAgbGlicmFyeS4pICAgKikKKCogTm90ZTogdGhpcyBpcyBhY3R1YWxseSBpbiB0aGUg
ZGVjaWRhYmxlICJBRSIgc3Vic2V0LCAgdGhvdWdoIHRoYXQgZG9lc24ndCAqKQooKiB5aWVs
ZCBhIHZlcnkgZWZmaWNpZW50IHByb29mLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICopCigqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKikKCntuYW1lID0g
IkxPUyIsCiBnb2FsID0gWwoKClFVT1RFICJcbigheCB5IHouIHAgeCB5ID09PiBwIHkgeiA9
PT4gcCB4IHopIC9cXFxuKCF4IHkgei4gcSB4IHkgPT0+IHEgeSB6ID09PiBxIHggeikgL1xc
ICgheCB5LiBxIHggeSA9PT4gcSB5IHgpIC9cXFxuKCF4IHkuIHAgeCB5IFxcLyBxIHggeSkg
PT0+ICgheCB5LiBwIHggeSkgXFwvICF4IHkuIHEgeCB5Il19LAoKKCogLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLSAqKQooKiBUaGUgc3RlYW1yb2xsZXIuICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopCigqIC0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0gKikKCntuYW1lID0gIlNURUFNX1JPTExFUiIsCiBnb2FsID0gWwoKCgoKCgoKCgoK
CgpRVU9URSAiXG4oKCF4LiBwMSB4ID09PiBwMCB4KSAvXFwgP3guIHAxIHgpIC9cXCAoKCF4
LiBwMiB4ID09PiBwMCB4KSAvXFwgP3guIHAyIHgpIC9cXFxuKCgheC4gcDMgeCA9PT4gcDAg
eCkgL1xcID94LiBwMyB4KSAvXFwgKCgheC4gcDQgeCA9PT4gcDAgeCkgL1xcID94LiBwNCB4
KSAvXFxcbigoIXguIHA1IHggPT0+IHAwIHgpIC9cXCA/eC4gcDUgeCkgL1xcICgoP3guIHEx
IHgpIC9cXCAheC4gcTEgeCA9PT4gcTAgeCkgL1xcXG4oIXguXG4gICBwMCB4ID09PlxuICAg
KCF5LiBxMCB5ID09PiByIHggeSkgXFwvXG4gICAheS4gcDAgeSAvXFwgczAgeSB4IC9cXCAo
P3ouIHEwIHogL1xcIHIgeSB6KSA9PT4gciB4IHkpIC9cXFxuKCF4IHkuIHAzIHkgL1xcIChw
NSB4IFxcLyBwNCB4KSA9PT4gczAgeCB5KSAvXFxcbigheCB5LiBwMyB4IC9cXCBwMiB5ID09
PiBzMCB4IHkpIC9cXCAoIXggeS4gcDIgeCAvXFwgcDEgeSA9PT4gczAgeCB5KSAvXFxcbigh
eCB5LiBwMSB4IC9cXCAocDIgeSBcXC8gcTEgeSkgPT0+IH5yIHggeSkgL1xcXG4oIXggeS4g
cDMgeCAvXFwgcDQgeSA9PT4gciB4IHkpIC9cXCAoIXggeS4gcDMgeCAvXFwgcDUgeSA9PT4g
fnIgeCB5KSAvXFxcbigheC4gcDQgeCBcXC8gcDUgeCA9PT4gP3kuIHEwIHkgL1xcIHIgeCB5
KSA9PT5cbj94IHkuIHAwIHggL1xcIHAwIHkgL1xcID96LiBxMSB6IC9cXCByIHkgeiAvXFwg
ciB4IHkiXX0sCgooKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICopCigqIEFuIGluY2VzdHVvdXMg
ZXhhbXBsZSB1c2VkIHRvIGVzdGFibGlzaCBjb21wbGV0ZW5lc3MgY2hhcmFjdGVyaXphdGlv
bi4gICAgKikKKCogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqKQoKe25hbWUgPSAiTU9ERUxfQ09N
UExFVEVORVNTIiwKIGdvYWwgPSBbCgoKCgoKCgoKUVVPVEUgIlxuKCF3IHguIHNlbnRlbmNl
IHggPT0+IGhvbGRzIHcgeCBcXC8gaG9sZHMgdyAobm90IHgpKSAvXFxcbighdyB4LiB+KGhv
bGRzIHcgeCAvXFwgaG9sZHMgdyAobm90IHgpKSkgPT0+XG4oKCF4LlxuICAgIHNlbnRlbmNl
IHggPT0+XG4gICAgKCF3LiBtb2RlbHMgdyBzID09PiBob2xkcyB3IHgpIFxcL1xuICAgICF3
LiBtb2RlbHMgdyBzID09PiBob2xkcyB3IChub3QgeCkpIDw9PlxuICF3IHYuXG4gICBtb2Rl
bHMgdyBzIC9cXCBtb2RlbHMgdiBzID09PlxuICAgIXguIHNlbnRlbmNlIHggPT0+IChob2xk
cyB3IHggPD0+IGhvbGRzIHYgeCkpIl19CgpdOwoKKCogPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAq
KQooKiBQcm9ibGVtcyB3aXRoIGVxdWFsaXR5LiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICopCigqID09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKikK
CnZhbCBlcXVhbGl0eSA9IFsKIAooKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICopCigqIFRyaXZp
YSAoc29tZSBvZiB3aGljaCBkZW1vbnN0cmF0ZSBleC1idWdzIGluIHRoZSBwcm92ZXIpLiAg
ICAgICAgICAgICAgICAgKikKKCogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqKQoKe25hbWUgPSAi
UkVGTEVYSVZJVFkiLAogZ29hbCA9IFsKUVVPVEUgIlxuYyA9IGMiXX0sCgp7bmFtZSA9ICJT
WU1NRVRSWSIsCiBnb2FsID0gWwpRVU9URSAiXG4heCB5LiB4ID0geSA9PT4geSA9IHgiXX0s
Cgp7bmFtZSA9ICJUUkFOU0lUSVZJVFkiLAogZ29hbCA9IFsKUVVPVEUgIlxuIXggeSB6LiB4
ID0geSAvXFwgeSA9IHogPT0+IHggPSB6Il19LAoKe25hbWUgPSAiVFJBTlNfU1lNTSIsCiBn
b2FsID0gWwpRVU9URSAiXG4heCB5IHouIHggPSB5IC9cXCB5ID0geiA9PT4geiA9IHgiXX0s
Cgp7bmFtZSA9ICJTVUJTVElUVVRJVklUWSIsCiBnb2FsID0gWwpRVU9URSAiXG4heCB5LiBm
IHggL1xcIHggPSB5ID09PiBmIHkiXX0sCgp7bmFtZSA9ICJDWUNMSUNfU1VCU1RJVFVUSU9O
X0JVRyIsCiBnb2FsID0gWwpRVU9URSAiXG4oIXguIHkgPSBnIChjIHgpKSA9PT4gP3ouIHkg
PSBnIHoiXX0sCgooKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICopCigqIFNpbXBsZSBlcXVhbGl0
eSBwcm9ibGVtcy4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgKikKKCogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqKQoKe25hbWUgPSAiUDQ4IiwKIGdv
YWwgPSBbClFVT1RFICJcbihhID0gYiBcXC8gYyA9IGQpIC9cXCAoYSA9IGMgXFwvIGIgPSBk
KSA9PT4gYSA9IGQgXFwvIGIgPSBjIl19LAoKe25hbWUgPSAiUDQ5IiwKIGdvYWwgPSBbClFV
T1RFICJcbig/eCB5LiAhei4geiA9IHggXFwvIHogPSB5KSAvXFwgcCBhIC9cXCBwIGIgL1xc
IH4oYSA9IGIpID09PiAheC4gcCB4Il19LAoKe25hbWUgPSAiUDUxIiwKIGdvYWwgPSBbCgpR
VU9URSAiXG4oP3ogdy4gIXggeS4gZjAgeCB5IDw9PiB4ID0geiAvXFwgeSA9IHcpID09Plxu
P3ouICF4LiAoP3cuICF5LiBmMCB4IHkgPD0+IHkgPSB3KSA8PT4geCA9IHoiXX0sCgp7bmFt
ZSA9ICJQNTIiLAogZ29hbCA9IFsKClFVT1RFICJcbig/eiB3LiAheCB5LiBmMCB4IHkgPD0+
IHggPSB6IC9cXCB5ID0gdykgPT0+XG4/dy4gIXkuICg/ei4gIXguIGYwIHggeSA8PT4geCA9
IHopIDw9PiB5ID0gdyJdfSwKCigqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKikKKCogVGhlIE1l
bGhhbSBwcm9ibGVtIGFmdGVyIGFuIGludmVyc2Ugc2tvbGVtaXphdGlvbiBzdGVwLiAgICAg
ICAgICAgICAgICAgICAqKQooKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICopCgp7bmFtZSA9ICJV
TlNLT0xFTUlaRURfTUVMSEFNIiwKIGdvYWwgPSBbClFVT1RFICJcbigheCB5LiBnIHggPSBn
IHkgPT0+IGYgeCA9IGYgeSkgPT0+ICF5LiA/dy4gIXguIHkgPSBnIHggPT0+IHcgPSBmIHgi
XX0sCiAKKCogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqKQooKiBUaGUgZXhhbXBsZSBhbHdheXMg
Z2l2ZW4gZm9yIGNvbmdydWVuY2UgY2xvc3VyZS4gICAgICAgICAgICAgICAgICAgICAgICAg
ICopCigqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKikKCntuYW1lID0gIkNPTkdSVUVOQ0VfQ0xP
U1VSRV9FWEFNUExFIiwKIGdvYWwgPSBbClFVT1RFICJcbiF4LiBmIChmIChmIChmIChmIHgp
KSkpID0geCAvXFwgZiAoZiAoZiB4KSkgPSB4ID09PiBmIHggPSB4Il19LAoKKCogLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLSAqKQooKiBBIHNpbXBsZSBleGFtcGxlIChzZWUgRVdEMTI2NmEgYW5k
IHRoZSBhcHBsaWNhdGlvbiB0byBNb3JsZXkncyB0aGVvcmVtKS4gICopCigqIC0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0gKikKCntuYW1lID0gIkVXRCIsCiBnb2FsID0gWwoKUVVPVEUgIlxuKCF4
LiBmIHggPT0+IGcgeCkgL1xcICg/eC4gZiB4KSAvXFwgKCF4IHkuIGcgeCAvXFwgZyB5ID09
PiB4ID0geSkgPT0+XG4heS4gZyB5ID09PiBmIHkiXX0sCgp7bmFtZSA9ICJFV0QnIiwKIGdv
YWwgPSBbClFVT1RFICJcbigheC4gZiAoZiB4KSA9IGYgeCkgL1xcICgheC4gP3kuIGYgeSA9
IHgpID09PiAheC4gZiB4ID0geCJdfSwKCigqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKikKKCog
V2lzaG51IFByYXNldHlhJ3MgZXhhbXBsZS4gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAqKQooKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICopCgp7bmFt
ZSA9ICJXSVNITlUiLAogZ29hbCA9IFsKClFVT1RFICJcbig/eC4geCA9IGYgKGcgeCkgL1xc
ICF4Jy4geCcgPSBmIChnIHgnKSA9PT4geCA9IHgnKSA8PT5cbj95LiB5ID0gZyAoZiB5KSAv
XFwgIXknLiB5JyA9IGcgKGYgeScpID09PiB5ID0geSciXX0sCgooKiAtLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tICopCigqIEFuIGVxdWFsaXR5IHZlcnNpb24gb2YgdGhlIEFnYXRoYSBwdXp6bGUu
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKikKKCogLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLSAqKQoKe25hbWUgPSAiQUdBVEhBIiwKIGdvYWwgPSBbCgoKCgoKCgoKClFVT1RFICJc
big/eC4gbGl2ZXMgeCAvXFwga2lsbGVkIHggYWdhdGhhKSAvXFxcbihsaXZlcyBhZ2F0aGEg
L1xcIGxpdmVzIGJ1dGxlciAvXFwgbGl2ZXMgY2hhcmxlcykgL1xcXG4oIXguIGxpdmVzIHgg
PT0+IHggPSBhZ2F0aGEgXFwvIHggPSBidXRsZXIgXFwvIHggPSBjaGFybGVzKSAvXFxcbigh
eCB5LiBraWxsZWQgeCB5ID09PiBoYXRlcyB4IHkpIC9cXCAoIXggeS4ga2lsbGVkIHggeSA9
PT4gfnJpY2hlciB4IHkpIC9cXFxuKCF4LiBoYXRlcyBhZ2F0aGEgeCA9PT4gfmhhdGVzIGNo
YXJsZXMgeCkgL1xcXG4oIXguIH4oeCA9IGJ1dGxlcikgPT0+IGhhdGVzIGFnYXRoYSB4KSAv
XFxcbigheC4gfnJpY2hlciB4IGFnYXRoYSA9PT4gaGF0ZXMgYnV0bGVyIHgpIC9cXFxuKCF4
LiBoYXRlcyBhZ2F0aGEgeCA9PT4gaGF0ZXMgYnV0bGVyIHgpIC9cXCAoIXguID95LiB+aGF0
ZXMgeCB5KSAvXFxcbn4oYWdhdGhhID0gYnV0bGVyKSA9PT5cbmtpbGxlZCBhZ2F0aGEgYWdh
dGhhIC9cXCB+a2lsbGVkIGJ1dGxlciBhZ2F0aGEgL1xcIH5raWxsZWQgY2hhcmxlcyBhZ2F0
aGEiXX0sCgooKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICopCigqIEdyb3VwIHRoZW9yeSBleGFt
cGxlcy4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgKikKKCogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqKQoKKCogSlJIOiAoU2l6ZSAxOCwgNjE4
MTQgc2Vjb25kcy4pICopCntuYW1lID0gIkdST1VQX1JJR0hUX0lOVkVSU0UiLAogZ29hbCA9
IFsKClFVT1RFICJcbigheCB5IHouIHggKiAoeSAqIHopID0geCAqIHkgKiB6KSAvXFwgKCF4
LiBlICogeCA9IHgpIC9cXFxuKCF4LiBpIHggKiB4ID0gZSkgPT0+ICF4LiB4ICogaSB4ID0g
ZSJdfSwKCntuYW1lID0gIkdST1VQX1JJR0hUX0lERU5USVRZIiwKIGdvYWwgPSBbCgpRVU9U
RSAiXG4oIXggeSB6LiB4ICogKHkgKiB6KSA9IHggKiB5ICogeikgL1xcICgheC4gZSAqIHgg
PSB4KSAvXFxcbigheC4gaSB4ICogeCA9IGUpID09PiAheC4geCAqIGUgPSB4Il19LAoKe25h
bWUgPSAiS0xFSU5fR1JPVVBfQ09NTVVUQVRJVkUiLAogZ29hbCA9IFsKClFVT1RFICJcbigh
eCB5IHouIHggKiAoeSAqIHopID0geCAqIHkgKiB6KSAvXFwgKCF4LiBlICogeCA9IHgpIC9c
XCAoIXguIHggKiBlID0geCkgL1xcXG4oIXguIHggKiB4ID0gZSkgPT0+ICF4IHkuIHggKiB5
ID0geSAqIHgiXX0KCl07CgooKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICopCigqIFNvbWUgc2Ft
cGxlIHByb2JsZW1zIGZyb20gdGhlIFRQVFAgYXJjaGl2ZS4gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgKikKKCogTm90ZTogZm9yIGJyZXZpdHkgc29tZSByZWxhdGlvbi9mdW5j
dGlvbiBuYW1lcyBoYXZlIGJlZW4gc2hvcnRlbmVkLiAgICAgICAqKQooKiA9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09ICopCgp2YWwgdHB0cCA9IFsKCigqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKikK
KCogVFBUUCBwcm9ibGVtcyB0aGF0IGhhdmUgZGVtb25zdHJhdGVkIGJ1Z3MgaW4gdGhlIHBy
b3Zlci4gICAgICAgICAgICAgICAgICAqKQooKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICopCgoo
KiBTb2x2ZWQgdHJpdmlhbGx5IGJ5IG1lc29uIHdpdGhvdXQgY2FjaGUgY3V0dGluZywgYnV0
IG5vdCB3aXRoLiAqKQp7bmFtZSA9ICJQVVowMTEtMSIsCiBnb2FsID0gWwoKCgoKCgoKCgoK
ClFVT1RFICJcbm9jZWFuIGF0bGFudGljIC9cXCBvY2VhbiBpbmRpYW4gL1xcIGJvcmRlcnMg
YXRsYW50aWMgYnJhemlsIC9cXFxuYm9yZGVycyBhdGxhbnRpYyB1cnVndWF5IC9cXCBib3Jk
ZXJzIGF0bGFudGljIGNfdmVuZXN1ZWxhIC9cXFxuYm9yZGVycyBhdGxhbnRpYyBjX3phaXJl
IC9cXCBib3JkZXJzIGF0bGFudGljIG5pZ2VyaWEgL1xcXG5ib3JkZXJzIGF0bGFudGljIGFu
Z29sYSAvXFwgYm9yZGVycyBpbmRpYW4gaW5kaWEgL1xcXG5ib3JkZXJzIGluZGlhbiBwYWtp
c3RhbiAvXFwgYm9yZGVycyBpbmRpYW4gaXJhbiAvXFwgYm9yZGVycyBpbmRpYW4gc29tYWxp
YSAvXFxcbmJvcmRlcnMgaW5kaWFuIGtlbnlhIC9cXCBib3JkZXJzIGluZGlhbiB0YW56YW5p
YSAvXFwgc291dGhfYW1lcmljYW4gYnJhemlsIC9cXFxuc291dGhfYW1lcmljYW4gdXJ1Z3Vh
eSAvXFwgc291dGhfYW1lcmljYW4gY192ZW5lc3VlbGEgL1xcIGFmcmljYW4gY196YWlyZSAv
XFxcbmFmcmljYW4gbmlnZXJpYSAvXFwgYWZyaWNhbiBhbmdvbGEgL1xcIGFmcmljYW4gc29t
YWxpYSAvXFwgYWZyaWNhbiBrZW55YSAvXFxcbmFmcmljYW4gdGFuemFuaWEgL1xcIGFzaWFu
IGluZGlhIC9cXCBhc2lhbiBwYWtpc3RhbiAvXFwgYXNpYW4gaXJhbiA9PT5cbigheCB5IHou
XG4gICB+b2NlYW4geCBcXC8gfmJvcmRlcnMgeCB5IFxcLyB+YWZyaWNhbiB5IFxcLyB+Ym9y
ZGVycyB4IHogXFwvIH5hc2lhbiB6KSA9PT5cbkYiXX0sCgooKiAtLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tICopCigqIFByb2JsZW1zIHVzZWQgYnkgdGhlIGZvbCB1bml0IHRlc3QgdG8gZXhlcmNp
c2UgdGhlIFRQVFAgcGFyc2VyLiAgICAgICAgICAgKikKKCogLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LSAqKQogCntuYW1lID0gIlBVWjAwMS0xIiwKIGdvYWwgPSBbCgoKCgoKCgoKUVVPVEUgIlxu
bGl2ZXMgYWdhdGhhIC9cXCBsaXZlcyBidXRsZXIgL1xcIGxpdmVzIGNoYXJsZXMgL1xcXG4o
IXggeS4gfmtpbGxlZCB4IHkgXFwvIH5yaWNoZXIgeCB5KSAvXFxcbigheC4gfmhhdGVzIGFn
YXRoYSB4IFxcLyB+aGF0ZXMgY2hhcmxlcyB4KSAvXFxcbigheC4gfmhhdGVzIHggYWdhdGhh
IFxcLyB+aGF0ZXMgeCBidXRsZXIgXFwvIH5oYXRlcyB4IGNoYXJsZXMpIC9cXFxuaGF0ZXMg
YWdhdGhhIGFnYXRoYSAvXFwgaGF0ZXMgYWdhdGhhIGNoYXJsZXMgL1xcXG4oIXggeS4gfmtp
bGxlZCB4IHkgXFwvIGhhdGVzIHggeSkgL1xcXG4oIXguIH5oYXRlcyBhZ2F0aGEgeCBcXC8g
aGF0ZXMgYnV0bGVyIHgpIC9cXFxuKCF4LiB+bGl2ZXMgeCBcXC8gcmljaGVyIHggYWdhdGhh
IFxcLyBoYXRlcyBidXRsZXIgeCkgPT0+XG5raWxsZWQgYnV0bGVyIGFnYXRoYSBcXC8ga2ls
bGVkIGNoYXJsZXMgYWdhdGhhID09PiBGIl19LAoKe25hbWUgPSAiUFVaMDIwLTEiLAogZ29h
bCA9IFsKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKUVVPVEUgIlxuKCF4LiB4ID0geCkgL1xc
ICgheCB5LiB+KHggPSB5KSBcXC8geSA9IHgpIC9cXFxuKCF4IHkgei4gfih4ID0geSkgXFwv
IH4oeSA9IHopIFxcLyB4ID0geikgL1xcXG4oIXggeS4gfih4ID0geSkgXFwvIHN0YXRlbWVu
dF9ieSB4ID0gc3RhdGVtZW50X2J5IHkpIC9cXFxuKCF4LiB+cGVyc29uIHggXFwvIGtuaWdo
dCB4IFxcLyBrbmF2ZSB4KSAvXFxcbigheC4gfnBlcnNvbiB4IFxcLyB+a25pZ2h0IHggXFwv
IH5rbmF2ZSB4KSAvXFxcbigheCB5LiB+c2F5cyB4IHkgXFwvIGFfdHJ1dGggeSBcXC8gfmFf
dHJ1dGggeSkgL1xcXG4oIXggeS4gfnNheXMgeCB5IFxcLyB+KHggPSB5KSkgL1xcICgheCB5
LiB+c2F5cyB4IHkgXFwvIHkgPSBzdGF0ZW1lbnRfYnkgeCkgL1xcXG4oIXggeS4gfnBlcnNv
biB4IFxcLyB+KHggPSBzdGF0ZW1lbnRfYnkgeSkpIC9cXFxuKCF4LiB+cGVyc29uIHggXFwv
IH5hX3RydXRoIChzdGF0ZW1lbnRfYnkgeCkgXFwvIGtuaWdodCB4KSAvXFxcbigheC4gfnBl
cnNvbiB4IFxcLyBhX3RydXRoIChzdGF0ZW1lbnRfYnkgeCkgXFwvIGtuYXZlIHgpIC9cXFxu
KCF4IHkuIH4oeCA9IHkpIFxcLyB+a25pZ2h0IHggXFwvIGtuaWdodCB5KSAvXFxcbigheCB5
LiB+KHggPSB5KSBcXC8gfmtuYXZlIHggXFwvIGtuYXZlIHkpIC9cXFxuKCF4IHkuIH4oeCA9
IHkpIFxcLyB+cGVyc29uIHggXFwvIHBlcnNvbiB5KSAvXFxcbigheCB5IHouIH4oeCA9IHkp
IFxcLyB+c2F5cyB4IHogXFwvIHNheXMgeSB6KSAvXFxcbigheCB5IHouIH4oeCA9IHkpIFxc
LyB+c2F5cyB6IHggXFwvIHNheXMgeiB5KSAvXFxcbigheCB5LiB+KHggPSB5KSBcXC8gfmFf
dHJ1dGggeCBcXC8gYV90cnV0aCB5KSAvXFxcbigheCB5LiB+a25pZ2h0IHggXFwvIH5zYXlz
IHggeSBcXC8gYV90cnV0aCB5KSAvXFxcbigheCB5LiB+a25hdmUgeCBcXC8gfnNheXMgeCB5
IFxcLyB+YV90cnV0aCB5KSAvXFwgcGVyc29uIGh1c2JhbmQgL1xcXG5wZXJzb24gY193aWZl
IC9cXCB+KGh1c2JhbmQgPSBjX3dpZmUpIC9cXFxuc2F5cyBodXNiYW5kIChzdGF0ZW1lbnRf
YnkgaHVzYmFuZCkgL1xcXG4ofmFfdHJ1dGggKHN0YXRlbWVudF9ieSBodXNiYW5kKSBcXC8g
fmtuaWdodCBodXNiYW5kIFxcLyBrbmlnaHQgY193aWZlKSAvXFxcbihhX3RydXRoIChzdGF0
ZW1lbnRfYnkgaHVzYmFuZCkgXFwvIH5rbmlnaHQgaHVzYmFuZCkgL1xcXG4oYV90cnV0aCAo
c3RhdGVtZW50X2J5IGh1c2JhbmQpIFxcLyBrbmlnaHQgY193aWZlKSAvXFxcbih+a25pZ2h0
IGNfd2lmZSBcXC8gYV90cnV0aCAoc3RhdGVtZW50X2J5IGh1c2JhbmQpKSA9PT4gfmtuaWdo
dCBodXNiYW5kID09PlxuRiJdfSwKCntuYW1lID0gIk5VTTAwMS0xIiwKIGdvYWwgPSBbCgoK
CgoKCgoKUVVPVEUgIlxuKCF4LiB4ID09IHgpIC9cXCAoIXggeSB6LiB+KHggPT0geSkgXFwv
IH4oeSA9PSB6KSBcXC8geCA9PSB6KSAvXFxcbigheCB5LiB4ICsgeSA9PSB5ICsgeCkgL1xc
ICgheCB5IHouIHggKyAoeSArIHopID09IHggKyB5ICsgeikgL1xcXG4oIXggeS4geCArIHkg
LSB5ID09IHgpIC9cXCAoIXggeS4geCA9PSB4ICsgeSAtIHkpIC9cXFxuKCF4IHkgei4geCAt
IHkgKyB6ID09IHggKyB6IC0geSkgL1xcICgheCB5IHouIHggKyB5IC0geiA9PSB4IC0geiAr
IHkpIC9cXFxuKCF4IHkgeiB2LiB+KHggPT0geSkgXFwvIH4oeiA9PSB4ICsgdikgXFwvIHog
PT0geSArIHYpIC9cXFxuKCF4IHkgeiB2LiB+KHggPT0geSkgXFwvIH4oeiA9PSB2ICsgeCkg
XFwvIHogPT0gdiArIHkpIC9cXFxuKCF4IHkgeiB2LiB+KHggPT0geSkgXFwvIH4oeiA9PSB4
IC0gdikgXFwvIHogPT0geSAtIHYpIC9cXFxuKCF4IHkgeiB2LiB+KHggPT0geSkgXFwvIH4o
eiA9PSB2IC0geCkgXFwvIHogPT0gdiAtIHkpID09PlxufihhICsgYiArIGMgPT0gYSArIChi
ICsgYykpID09PiBGIl19LAoKe25hbWUgPSAiQUxHMDA1LTEiLAogZ29hbCA9IFsKCgoKCgoK
CgpRVU9URSAiXG4oIXguIHggPSB4KSAvXFwgKCF4IHkuIH4oeCA9IHkpIFxcLyB5ID0geCkg
L1xcXG4oIXggeSB6LiB+KHggPSB5KSBcXC8gfih5ID0geikgXFwvIHggPSB6KSAvXFxcbigh
eCB5IHouIH4oeCA9IHkpIFxcLyB4ICsgeiA9IHkgKyB6KSAvXFxcbigheCB5IHouIH4oeCA9
IHkpIFxcLyB6ICsgeCA9IHogKyB5KSAvXFxcbigheCB5IHouIH4oeCA9IHkpIFxcLyB4ICog
eiA9IHkgKiB6KSAvXFxcbigheCB5IHouIH4oeCA9IHkpIFxcLyB6ICogeCA9IHogKiB5KSAv
XFwgKCF4IHkuIHggKyAoeSArIHgpID0geCkgL1xcXG4oIXggeS4geCArICh4ICsgeSkgPSB5
ICsgKHkgKyB4KSkgL1xcXG4oIXggeSB6LiB4ICsgeSArIHogPSB4ICsgeiArICh5ICsgeikp
IC9cXCAoIXggeS4geCAqIHkgPSB4ICsgKHggKyB5KSkgPT0+XG5+KGEgKiBiICogYyA9IGEg
KiAoYiAqIGMpKSA9PT4gRiJdfSwKCntuYW1lID0gIkdSUDA1Ny0xIiwKIGdvYWwgPSBbCgoK
CgoKClFVT1RFICJcbigheC4geCA9IHgpIC9cXCAoIXggeS4gfih4ID0geSkgXFwvIHkgPSB4
KSAvXFxcbigheCB5IHouIH4oeCA9IHkpIFxcLyB+KHkgPSB6KSBcXC8geCA9IHopIC9cXFxu
KCF4IHkgeiB2LiB4ICogaSAoaSAoaSB5ICogKGkgeCAqIHopKSAqIHYgKiBpICh5ICogdikp
ID0geikgL1xcXG4oIXggeS4gfih4ID0geSkgXFwvIGkgeCA9IGkgeSkgL1xcICgheCB5IHou
IH4oeCA9IHkpIFxcLyB4ICogeiA9IHkgKiB6KSAvXFxcbigheCB5IHouIH4oeCA9IHkpIFxc
LyB6ICogeCA9IHogKiB5KSA9PT5cbn4oaSBhMSAqIGExID0gaSBiMSAqIGIxKSBcXC8gfihp
IGIyICogYjIgKiBhMiA9IGEyKSBcXC9cbn4oYTMgKiBiMyAqIGMzID0gYTMgKiAoYjMgKiBj
MykpID09PiBGIl19LAoKe25hbWUgPSAiTENMMDA5LTEiLAogZ29hbCA9IFsKCgpRVU9URSAi
XG4oIXggeS4gfnAgKHggLSB5KSBcXC8gfnAgeCBcXC8gcCB5KSAvXFxcbigheCB5IHouIHAg
KHggLSB5IC0gKHogLSB5IC0gKHggLSB6KSkpKSA9PT5cbn5wIChhIC0gYiAtIGMgLSAoYSAt
IChiIC0gYykpKSA9PT4gRiJdfSwKCigqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKikKKCogU21h
bGwgcHJvYmxlbXMgdGhhdCBhcmUgdHJpY2t5IHRvIHByb3ZlLiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAqKQooKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICopCgp7bmFtZSA9
ICJDT0wwNjAtMyIsCiBnb2FsID0gWwoKCgoKClFVT1RFICJcbigheC4geCA9IHgpIC9cXCAo
IXggeS4gfih4ID0geSkgXFwvIHkgPSB4KSAvXFxcbigheCB5IHouIH4oeCA9IHkpIFxcLyB+
KHkgPSB6KSBcXC8geCA9IHopIC9cXFxuKCF4IHkgei4gYiAlIHggJSB5ICUgeiA9IHggJSAo
eSAlIHopKSAvXFwgKCF4IHkuIHQgJSB4ICUgeSA9IHkgJSB4KSAvXFxcbigheCB5IHouIH4o
eCA9IHkpIFxcLyB4ICUgeiA9IHkgJSB6KSAvXFxcbigheCB5IHouIH4oeCA9IHkpIFxcLyB6
ICUgeCA9IHogJSB5KSA9PT5cbn4oYiAlIChiICUgKHQgJSBiKSAlIGIpICUgdCAlIGNfeCAl
IGNfeSAlIGNfeiA9IGNfeSAlIChjX3ggJSBjX3opKSA9PT4gRiJdfSwKCntuYW1lID0gIkNP
TDA1OC0yIiwKIGdvYWwgPSBbCgoKCgoKClFVT1RFICJcbigheC4geCA9IHgpIC9cXCAoIXgg
eS4gfih4ID0geSkgXFwvIHkgPSB4KSAvXFxcbigheCB5IHouIH4oeCA9IHkpIFxcLyB+KHkg
PSB6KSBcXC8geCA9IHopIC9cXFxuKCF4IHkuIHIgKHIgMCB4KSB5ID0gciB4IChyIHkgeSkp
IC9cXCAoIXggeSB6LiB+KHggPSB5KSBcXC8gciB4IHogPSByIHkgeikgL1xcXG4oIXggeSB6
LiB+KHggPSB5KSBcXC8gciB6IHggPSByIHogeSkgPT0+XG5+KHIgKHIgKHIgMCAociAociAw
IChyIDAgMCkpIChyIDAgKHIgMCAwKSkpKSAociAwIChyIDAgMCkpKVxuICAociAociAwIChy
IChyIDAgKHIgMCAwKSkgKHIgMCAociAwIDApKSkpIChyIDAgKHIgMCAwKSkpID1cbiAgciAo
ciAwIChyIChyIDAgKHIgMCAwKSkgKHIgMCAociAwIDApKSkpIChyIDAgKHIgMCAwKSkpID09
PiBGIl19LAoKe25hbWUgPSAiTENMMTA3LTEiLAogZ29hbCA9IFsKCgoKClFVT1RFICJcbigh
eCB5LiB+cCAoeCAtIHkpIFxcLyB+cCB4IFxcLyBwIHkpIC9cXFxuKCF4IHkgeiB2IHcgeCcg
eScuXG4gICBwXG4gICAoeCAtIHkgLSB6IC0gKHYgLSB3IC0gKHgnIC0gdyAtICh4JyAtIHYp
IC0geScpKSAtXG4gICAgKHogLSAoeSAtIHggLSB5JykpKSkgPT0+IH5wIChhIC0gYiAtIGMg
LSAoZSAtIGIgLSAoYSAtIGUgLSBjKSkpID09PiBGIl19LAoKe25hbWUgPSAiTERBMDA3LTMi
LAogZ29hbCA9IFsKCgoKCgoKUVVPVEUgIlxuKCF4LiB4ID0geCkgL1xcICgheCB5LiB+KHgg
PSB5KSBcXC8geSA9IHgpIC9cXFxuKCF4IHkgei4gfih4ID0geSkgXFwvIH4oeSA9IHopIFxc
LyB4ID0geikgL1xcXG4oIXggeSB6LiBmIHggKGYgeSB6KSA9IGYgKGYgeCB5KSAoZiB4IHop
KSAvXFxcbigheCB5IHouIH4oeCA9IHkpIFxcLyBmIHggeiA9IGYgeSB6KSAvXFxcbigheCB5
IHouIH4oeCA9IHkpIFxcLyBmIHogeCA9IGYgeiB5KSAvXFwgdHQgPSBmIHQgdCAvXFwgdHMg
PSBmIHQgcyAvXFxcbnR0X3RzID0gZiB0dCB0cyAvXFwgdGsgPSBmIHQgayAvXFwgdHNrID0g
ZiB0cyBrID09PlxufihmIHQgdHNrID0gZiB0dF90cyB0aykgPT0+IEYiXX0sCgp7bmFtZSA9
ICJHUlAwMTAtNCIsCiBnb2FsID0gWwoKCgoKUVVPVEUgIlxuKCF4LiB4ID0geCkgL1xcICgh
eCB5LiB+KHggPSB5KSBcXC8geSA9IHgpIC9cXFxuKCF4IHkgei4gfih4ID0geSkgXFwvIH4o
eSA9IHopIFxcLyB4ID0geikgL1xcICgheCB5LiB+KHggPSB5KSBcXC8gaSB4ID0gaSB5KSAv
XFxcbigheCB5IHouIH4oeCA9IHkpIFxcLyB4ICogeiA9IHkgKiB6KSAvXFxcbigheCB5IHou
IH4oeCA9IHkpIFxcLyB6ICogeCA9IHogKiB5KSAvXFwgKCF4IHkgei4geCAqIHkgKiB6ID0g
eCAqICh5ICogeikpIC9cXFxuKCF4LiAxICogeCA9IHgpIC9cXCAoIXguIGkgeCAqIHggPSAx
KSAvXFwgYyAqIGIgPSAxID09PiB+KGIgKiBjID0gMSkgPT0+IEYiXX0sCgp7bmFtZSA9ICJB
TEcwMDYtMSIsCiBnb2FsID0gWwoKCgoKClFVT1RFICJcbigheC4geCA9IHgpIC9cXCAoIXgg
eS4gfih4ID0geSkgXFwvIHkgPSB4KSAvXFxcbigheCB5IHouIH4oeCA9IHkpIFxcLyB+KHkg
PSB6KSBcXC8geCA9IHopIC9cXFxuKCF4IHkgei4gfih4ID0geSkgXFwvIHggKyB6ID0geSAr
IHopIC9cXFxuKCF4IHkgei4gfih4ID0geSkgXFwvIHogKyB4ID0geiArIHkpIC9cXCAoIXgg
eS4geCArICh5ICsgeCkgPSB4KSAvXFxcbigheCB5LiB4ICsgKHggKyB5KSA9IHkgKyAoeSAr
IHgpKSAvXFxcbigheCB5IHouIHggKyB5ICsgeiA9IHggKyB6ICsgKHkgKyB6KSkgPT0+IH4o
YSArIGMgKyBiID0gYSArIGIgKyBjKSA9PT4gRiJdfSwKCntuYW1lID0gIkJPTzAyMS0xIiwK
IGdvYWwgPSBbCgoKCgoKCgoKUVVPVEUgIlxuKCF4LiB4ID0geCkgL1xcICgheCB5LiB+KHgg
PSB5KSBcXC8geSA9IHgpIC9cXFxuKCF4IHkgei4gfih4ID0geSkgXFwvIH4oeSA9IHopIFxc
LyB4ID0geikgL1xcXG4oIXggeSB6LiB+KHggPSB5KSBcXC8geCArIHogPSB5ICsgeikgL1xc
XG4oIXggeSB6LiB+KHggPSB5KSBcXC8geiArIHggPSB6ICsgeSkgL1xcICgheCB5LiB+KHgg
PSB5KSBcXC8gaSB4ID0gaSB5KSAvXFxcbigheCB5IHouIH4oeCA9IHkpIFxcLyB4ICogeiA9
IHkgKiB6KSAvXFxcbigheCB5IHouIH4oeCA9IHkpIFxcLyB6ICogeCA9IHogKiB5KSAvXFwg
KCF4IHkuICh4ICsgeSkgKiB5ID0geSkgL1xcXG4oIXggeSB6LiB4ICogKHkgKyB6KSA9IHkg
KiB4ICsgeiAqIHgpIC9cXCAoIXguIHggKyBpIHggPSAxKSAvXFxcbigheCB5LiB4ICogeSAr
IHkgPSB5KSAvXFwgKCF4IHkgei4geCArIHkgKiB6ID0gKHkgKyB4KSAqICh6ICsgeCkpIC9c
XFxuKCF4LiB4ICogaSB4ID0gMCkgPT0+IH4oYiAqIGEgPSBhICogYikgPT0+IEYiXX0sCgp7
bmFtZSA9ICJHRU8wMDItNCIsCiBnb2FsID0gWwoKCgoKCgoKCgoKClFVT1RFICJcbigheCB5
IHogdi4gfmJldHdlZW4geCB5IHogXFwvIH5iZXR3ZWVuIHkgdiB6IFxcLyBiZXR3ZWVuIHgg
eSB2KSAvXFxcbigheCB5IHouIH5lcXVpZGlzdGFudCB4IHkgeiB6IFxcLyB4ID09IHkpIC9c
XFxuKCF4IHkgeiB2IHcuXG4gICB+YmV0d2VlbiB4IHkgeiBcXC8gfmJldHdlZW4gdiB6IHcg
XFwvXG4gICBiZXR3ZWVuIHggKG91dGVyX3Bhc2NoIHkgeCB2IHcgeikgdikgL1xcXG4oIXgg
eSB6IHYgdy5cbiAgIH5iZXR3ZWVuIHggeSB6IFxcLyB+YmV0d2VlbiB2IHogdyBcXC9cbiAg
IGJldHdlZW4gdyB5IChvdXRlcl9wYXNjaCB5IHggdiB3IHopKSAvXFxcbigheCB5IHogdi4g
YmV0d2VlbiB4IHkgKGV4dGVuc2lvbiB4IHkgeiB2KSkgL1xcXG4oIXggeSB6IHYuIGVxdWlk
aXN0YW50IHggKGV4dGVuc2lvbiB5IHggeiB2KSB6IHYpIC9cXFxuKCF4IHkgeiB2LiB+KHgg
PT0geSkgXFwvIH5iZXR3ZWVuIHogdiB4IFxcLyBiZXR3ZWVuIHogdiB5KSA9PT5cbn5iZXR3
ZWVuIGEgYSBiID09PiBGIl19LAoKe25hbWUgPSAiR1JQMDU3LTEiLAogZ29hbCA9IFsKCgoK
CgoKUVVPVEUgIlxuKCF4LiB4ID0geCkgL1xcICgheCB5LiB+KHggPSB5KSBcXC8geSA9IHgp
IC9cXFxuKCF4IHkgei4gfih4ID0geSkgXFwvIH4oeSA9IHopIFxcLyB4ID0geikgL1xcXG4o
IXggeSB6IHYuIHggKiBpIChpIChpIHkgKiAoaSB4ICogeikpICogdiAqIGkgKHkgKiB2KSkg
PSB6KSAvXFxcbigheCB5LiB+KHggPSB5KSBcXC8gaSB4ID0gaSB5KSAvXFwgKCF4IHkgei4g
fih4ID0geSkgXFwvIHggKiB6ID0geSAqIHopIC9cXFxuKCF4IHkgei4gfih4ID0geSkgXFwv
IHogKiB4ID0geiAqIHkpID09PlxufihpIGExICogYTEgPSBpIGIxICogYjEpIFxcLyB+KGkg
YjIgKiBiMiAqIGEyID0gYTIpIFxcL1xufihhMyAqIGIzICogYzMgPSBhMyAqIChiMyAqIGMz
KSkgPT0+IEYiXX0sCgp7bmFtZSA9ICJIRU4wMDYtMyIsCiBnb2FsID0gWwoKCgoKCgoKCgpR
VU9URSAiXG4oIXguIHggPSB4KSAvXFwgKCF4IHkuIH4oeCA9IHkpIFxcLyB5ID0geCkgL1xc
XG4oIXggeSB6LiB+KHggPSB5KSBcXC8gfih5ID0geikgXFwvIHggPSB6KSAvXFxcbigheCB5
LiB+KHggPD0geSkgXFwvIHggLyB5ID0gMCkgL1xcICgheCB5LiB+KHggLyB5ID0gMCkgXFwv
IHggPD0geSkgL1xcXG4oIXggeS4geCAvIHkgPD0geCkgL1xcICgheCB5IHouIHggLyB5IC8g
KHogLyB5KSA8PSB4IC8geiAvIHkpIC9cXFxuKCF4LiAwIDw9IHgpIC9cXCAoIXggeS4gfih4
IDw9IHkpIFxcLyB+KHkgPD0geCkgXFwvIHggPSB5KSAvXFwgKCF4LiB4IDw9IDEpIC9cXFxu
KCF4IHkgei4gfih4ID0geSkgXFwvIHggLyB6ID0geSAvIHopIC9cXFxuKCF4IHkgei4gfih4
ID0geSkgXFwvIHogLyB4ID0geiAvIHkpIC9cXFxuKCF4IHkgei4gfih4ID0geSkgXFwvIH4o
eCA8PSB6KSBcXC8geSA8PSB6KSAvXFxcbigheCB5IHouIH4oeCA9IHkpIFxcLyB+KHogPD0g
eCkgXFwvIHogPD0geSkgL1xcIGEgLyBiIDw9IGQgPT0+XG5+KGEgLyBkIDw9IGIpID09PiBG
Il19LAoKe25hbWUgPSAiUk5HMDM1LTciLAogZ29hbCA9IFsKCgoKCgoKCgoKCgpRVU9URSAi
XG4oIXguIHggPSB4KSAvXFwgKCF4IHkuIH4oeCA9IHkpIFxcLyB5ID0geCkgL1xcXG4oIXgg
eSB6LiB+KHggPSB5KSBcXC8gfih5ID0geikgXFwvIHggPSB6KSAvXFwgKCF4LiAwICsgeCA9
IHgpIC9cXFxuKCF4LiB4ICsgMCA9IHgpIC9cXCAoIXguIG4geCArIHggPSAwKSAvXFwgKCF4
LiB4ICsgbiB4ID0gMCkgL1xcXG4oIXggeSB6LiB4ICsgKHkgKyB6KSA9IHggKyB5ICsgeikg
L1xcICgheCB5LiB4ICsgeSA9IHkgKyB4KSAvXFxcbigheCB5IHouIHggKiAoeSAqIHopID0g
eCAqIHkgKiB6KSAvXFxcbigheCB5IHouIHggKiAoeSArIHopID0geCAqIHkgKyB4ICogeikg
L1xcXG4oIXggeSB6LiAoeCArIHkpICogeiA9IHggKiB6ICsgeSAqIHopIC9cXFxuKCF4IHkg
ei4gfih4ID0geSkgXFwvIHggKyB6ID0geSArIHopIC9cXFxuKCF4IHkgei4gfih4ID0geSkg
XFwvIHogKyB4ID0geiArIHkpIC9cXCAoIXggeS4gfih4ID0geSkgXFwvIG4geCA9IG4geSkg
L1xcXG4oIXggeSB6LiB+KHggPSB5KSBcXC8geCAqIHogPSB5ICogeikgL1xcXG4oIXggeSB6
LiB+KHggPSB5KSBcXC8geiAqIHggPSB6ICogeSkgL1xcICgheC4geCAqICh4ICogKHggKiB4
KSkgPSB4KSA9PT5cbmEgKiBiID0gYyAvXFwgfihiICogYSA9IGMpID09PiBGIl19LAoKe25h
bWUgPSAiUk9CMDAxLTEiLAogZ29hbCA9IFsKCgoKCgoKUVVPVEUgIlxuKCF4LiB4ID0geCkg
L1xcICgheCB5LiB+KHggPSB5KSBcXC8geSA9IHgpIC9cXFxuKCF4IHkgei4gfih4ID0geSkg
XFwvIH4oeSA9IHopIFxcLyB4ID0geikgL1xcICgheCB5LiB4ICsgeSA9IHkgKyB4KSAvXFxc
bigheCB5IHouIHggKyB5ICsgeiA9IHggKyAoeSArIHopKSAvXFxcbigheCB5LiBuIChuICh4
ICsgeSkgKyBuICh4ICsgbiB5KSkgPSB4KSAvXFxcbigheCB5IHouIH4oeCA9IHkpIFxcLyB4
ICsgeiA9IHkgKyB6KSAvXFxcbigheCB5IHouIH4oeCA9IHkpIFxcLyB6ICsgeCA9IHogKyB5
KSAvXFwgKCF4IHkuIH4oeCA9IHkpIFxcLyBuIHggPSBuIHkpID09PlxufihuIChhICsgbiBi
KSArIG4gKG4gYSArIG4gYikgPSBiKSA9PT4gRiJdfSwKCntuYW1lID0gIkdSUDEyOC00LjAw
MyIsCiBnb2FsID0gWwoKCgoKCgoKCgoKCgoKCgoKUVVPVEUgIlxuKCF4IHkuXG4gICB+ZWx0
IHggXFwvIH5lbHQgeSBcXC8gcHJvZHVjdCBlXzEgeCB5IFxcLyBwcm9kdWN0IGVfMiB4IHkg
XFwvXG4gICBwcm9kdWN0IGVfMyB4IHkpIC9cXFxuKCF4IHkuXG4gICB+ZWx0IHggXFwvIH5l
bHQgeSBcXC8gcHJvZHVjdCB4IGVfMSB5IFxcLyBwcm9kdWN0IHggZV8yIHkgXFwvXG4gICBw
cm9kdWN0IHggZV8zIHkpIC9cXCBlbHQgZV8xIC9cXCBlbHQgZV8yIC9cXCBlbHQgZV8zIC9c
XCB+KGVfMSA9PSBlXzIpIC9cXFxufihlXzEgPT0gZV8zKSAvXFwgfihlXzIgPT0gZV8xKSAv
XFwgfihlXzIgPT0gZV8zKSAvXFwgfihlXzMgPT0gZV8xKSAvXFxcbn4oZV8zID09IGVfMikg
L1xcXG4oIXggeS5cbiAgIH5lbHQgeCBcXC8gfmVsdCB5IFxcLyBwcm9kdWN0IHggeSBlXzEg
XFwvIHByb2R1Y3QgeCB5IGVfMiBcXC9cbiAgIHByb2R1Y3QgeCB5IGVfMykgL1xcXG4oIXgg
eSB6IHYuIH5wcm9kdWN0IHggeSB6IFxcLyB+cHJvZHVjdCB4IHkgdiBcXC8geiA9PSB2KSAv
XFxcbigheCB5IHogdi4gfnByb2R1Y3QgeCB5IHogXFwvIH5wcm9kdWN0IHggdiB6IFxcLyB5
ID09IHYpIC9cXFxuKCF4IHkgeiB2LiB+cHJvZHVjdCB4IHkgeiBcXC8gfnByb2R1Y3QgdiB5
IHogXFwvIHggPT0gdikgPT0+XG4oIXggeSB6IHYuIHByb2R1Y3QgeCB5IHogXFwvIH5wcm9k
dWN0IHggeiB2IFxcLyB+cHJvZHVjdCB6IHkgdikgL1xcXG4oIXggeSB6IHYuIHByb2R1Y3Qg
eCB5IHogXFwvIH5wcm9kdWN0IHYgeCB6IFxcLyB+cHJvZHVjdCB2IHkgeCkgL1xcXG4oIXgg
eSB6IHYuIH5wcm9kdWN0IHggeSB6IFxcLyB+cHJvZHVjdCB6IHkgdiBcXC8gcHJvZHVjdCB4
IHogdikgPT0+IEYiXX0sCgp7bmFtZSA9ICJOVU0wMTQtMSIsCiBnb2FsID0gWwoKCgoKCgpR
VU9URSAiXG4oIXguIHByb2R1Y3QgeCB4IChzcXVhcmUgeCkpIC9cXFxuKCF4IHkgei4gfnBy
b2R1Y3QgeCB5IHogXFwvIHByb2R1Y3QgeSB4IHopIC9cXFxuKCF4IHkgei4gfnByb2R1Y3Qg
eCB5IHogXFwvIGRpdmlkZXMgeCB6KSAvXFxcbigheCB5IHogdi5cbiAgIH5wcmltZSB4IFxc
LyB+cHJvZHVjdCB5IHogdiBcXC8gfmRpdmlkZXMgeCB2IFxcLyBkaXZpZGVzIHggeSBcXC9c
biAgIGRpdmlkZXMgeCB6KSAvXFwgcHJpbWUgYSAvXFwgcHJvZHVjdCBhIChzcXVhcmUgYykg
KHNxdWFyZSBiKSA9PT5cbn5kaXZpZGVzIGEgYiA9PT4gRiJdfQoKXTsKCigqID09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0gKikKKCogQSBGRVcgU0FNUExFIFRIRU9SRU1TIFRPIENIRUNLIExBUkdF
IFJVTlMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKQooKiA9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09ICopCgooKiB2YWwgcXVpY2sgPQogKiAgIFtleHRyYWN0IG5vbmVxdWFsaXR5
ICJUUlVFIiwKICogICAgZXh0cmFjdCBub25lcXVhbGl0eSAiUF9vcl9ub3RfUCIsCiAqICAg
IGV4dHJhY3Qgbm9uZXF1YWxpdHkgIkpIX3Rlc3QiLAogKiAgICBleHRyYWN0IG5vbmVxdWFs
aXR5ICJDWUNMSUMiLAogKiAgICBleHRyYWN0IG5vbmVxdWFsaXR5ICJNTl9idWciLAogKiAg
ICBleHRyYWN0IG5vbmVxdWFsaXR5ICJFUklDIiwKICogICAgZXh0cmFjdCBub25lcXVhbGl0
eSAiTUFUSFM0X0VYQU1QTEUiLAogKiAgICBleHRyYWN0IG5vbmVxdWFsaXR5ICJQMTgiLAog
KiAgICBleHRyYWN0IG5vbmVxdWFsaXR5ICJQMzkiLAogKiAgICBleHRyYWN0IG5vbmVxdWFs
aXR5ICJQNTkiLAogKiAgICBleHRyYWN0IG5vbmVxdWFsaXR5ICJEQVZJU19QVVROQU1fRVhB
TVBMRSIsCiAqICAgIGV4dHJhY3Qgbm9uZXF1YWxpdHkgIkJBRF9DT05ORUNUSU9OUyIsCiAq
IAogKiAgICBleHRyYWN0IGVxdWFsaXR5ICJUUkFOU19TWU1NIiwKICogICAgZXh0cmFjdCBl
cXVhbGl0eSAiQ1lDTElDX1NVQlNUSVRVVElPTl9CVUciLAogKiAgICBleHRyYWN0IGVxdWFs
aXR5ICJQNDgiXTsKICopCmVuZAooKiNsaW5lIDAuMCAic3JjL01ldGVyMS5zaWciKikKKCog
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PSAqKQooKiBNRVRFUklORyBUSU1FIEFORCBJTkZFUkVOQ0VT
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopCigqIENy
ZWF0ZWQgYnkgSm9lIEh1cmQsIE5vdmVtYmVyIDIwMDEgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgKikKKCogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqKQoKc2lnbmF0
dXJlIE1ldGVyMSA9CnNpZwoKdHlwZSAnYSBwcCA9ICdhIFVzZWZ1bC5wcAoKKCogU2VhcmNo
IGxpbWl0cyAqKQp0eXBlIGxpbWl0ICAgICAgICAgID0ge3RpbWUgOiByZWFsIG9wdGlvbiwg
aW5mcyA6IGludCBvcHRpb259CnZhbCB1bmxpbWl0ZWQgICAgICAgOiBsaW1pdAp2YWwgZXhw
aXJlZCAgICAgICAgIDogbGltaXQKdmFsIGxpbWl0X3RvX3N0cmluZyA6IGxpbWl0IC0+IHN0
cmluZwoKKCogTWV0ZXIgcmVhZGluZ3MgKikKdHlwZSBtZXRlcl9yZWFkaW5nICAgICAgICAg
ID0ge3RpbWUgOiByZWFsLCBpbmZzIDogaW50fQp2YWwgemVyb19yZWFkaW5nICAgICAgICAg
ICAgOiBtZXRlcl9yZWFkaW5nCnZhbCBhZGRfcmVhZGluZ3MgICAgICAgICAgICA6IG1ldGVy
X3JlYWRpbmcgLT4gbWV0ZXJfcmVhZGluZyAtPiBtZXRlcl9yZWFkaW5nCnZhbCBwcF9tZXRl
cl9yZWFkaW5nICAgICAgICA6IG1ldGVyX3JlYWRpbmcgcHAKdmFsIG1ldGVyX3JlYWRpbmdf
dG9fc3RyaW5nIDogbWV0ZXJfcmVhZGluZyAtPiBzdHJpbmcKCigqIE1ldGVycyByZWNvcmQg
dGltZSBhbmQgaW5mZXJlbmNlcyAqKQp0eXBlIG1ldGVyCnZhbCBuZXdfbWV0ZXIgICA6IGxp
bWl0IC0+IG1ldGVyCnZhbCBzdWJfbWV0ZXIgICA6IG1ldGVyIC0+IGxpbWl0IC0+IG1ldGVy
CnZhbCByZWNvcmRfaW5mcyA6IG1ldGVyIC0+IGludCAtPiB1bml0CnZhbCByZWFkX21ldGVy
ICA6IG1ldGVyIC0+IG1ldGVyX3JlYWRpbmcKdmFsIGNoZWNrX21ldGVyIDogbWV0ZXIgLT4g
Ym9vbAp2YWwgcHBfbWV0ZXIgICAgOiBtZXRlciBwcAoKZW5kCigqI2xpbmUgMC4wICJzcmMv
TWV0ZXIxLnNtbCIqKQooKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICopCigqIE1FVEVSSU5HIFRJ
TUUgQU5EIElORkVSRU5DRVMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgKikKKCogQ3JlYXRlZCBieSBKb2UgSHVyZCwgTm92ZW1iZXIgMjAwMSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKQooKiA9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09ICopCgooKgphcHAgbG9hZAogWyJVc2VmdWwiLCAiTW9zbWwiLCAiVGVybTEiLCAi
VGhtMSIsICJDYW5vbjEiLCAiTWF0Y2gxIl07CiopCgooKgoqKQpzdHJ1Y3R1cmUgTWV0ZXIx
IDo+IE1ldGVyMSA9CnN0cnVjdAoKb3BlbiBVc2VmdWw7CgppbmZpeCB8LT4gOjo+IEA+IG9v
ICMjIDo6KiA6OkA7CgooKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICopCigqIFNlYXJjaCBsaW1p
dHMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgKikKKCogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqKQoKdHlwZSBsaW1pdCA9IHt0
aW1lIDogcmVhbCBvcHRpb24sIGluZnMgOiBpbnQgb3B0aW9ufTsKCnZhbCB1bmxpbWl0ZWQg
PSB7dGltZSA9IE5PTkUsIGluZnMgPSBOT05FfTsKCnZhbCBleHBpcmVkID0ge3RpbWUgPSBT
T01FIDAuMCwgaW5mcyA9IFNPTUUgMH07CgpmdW4gbGltaXRfdG9fc3RyaW5nIHt0aW1lLCBp
bmZzfSA9CiAgInt0aW1lID0gIiBeCiAgIChjYXNlIHRpbWUgb2YgTk9ORSA9PiAidW5saW1p
dGVkIgogICAgfCBTT01FIHIgPT4gUmVhbC5mbXQgKFN0cmluZ0N2dC5GSVggKFNPTUUgMykp
IHIgXiAicyIpIF4KICAgIiwgaW5mcyA9ICIgXgogICAoY2FzZSBpbmZzIG9mIE5PTkUgPT4g
InVubGltaXRlZCIgfCBTT01FIGkgPT4gaW50X3RvX3N0cmluZyBpKSBeCiAgICJ9IjsKCigq
IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0gKikKKCogTWV0ZXIgcmVhZGluZ3MuICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKQooKiAt
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tICopCgp0eXBlIG1ldGVyX3JlYWRpbmcgPSB7dGltZSA6IHJl
YWwsIGluZnMgOiBpbnR9OwoKdmFsIHplcm9fcmVhZGluZyA9IHt0aW1lID0gMC4wLCBpbmZz
ID0gMH07CgpmdW4gYWRkX3JlYWRpbmdzIHt0aW1lIDogcmVhbCwgaW5mc30ge3RpbWUgPSB0
aW1lJywgaW5mcyA9IGluZnMnfSA9CiAge3RpbWUgPSB0aW1lICsgdGltZScsIGluZnMgPSBp
bmZzICsgaW5mcyd9OwoKZnVuIHBwX21ldGVyX3JlYWRpbmcgcHAge3RpbWUsIGluZnN9ID0K
ICBsZXQKICAgIG9wZW4gUFAKICAgIHZhbCAoKSA9IGJlZ2luX2Jsb2NrIHBwIElOQ09OU0lT
VEVOVCAxCiAgICB2YWwgKCkgPSBhZGRfc3RyaW5nIHBwICJ7IjsKICAgIHZhbCAoKSA9IGJl
Z2luX2Jsb2NrIHBwIElOQ09OU0lTVEVOVCAyCiAgICB2YWwgKCkgPSBhZGRfc3RyaW5nIHBw
ICJ0aW1lID0iCiAgICB2YWwgKCkgPSBhZGRfYnJlYWsgcHAgKDEsIDApCiAgICB2YWwgKCkg
PSBhZGRfc3RyaW5nIHBwIChSZWFsLmZtdCAoU3RyaW5nQ3Z0LkZJWCAoU09NRSAzKSkgdGlt
ZSkKICAgIHZhbCAoKSA9IGVuZF9ibG9jayBwcAogICAgdmFsICgpID0gYWRkX3N0cmluZyBw
cCAiLCIKICAgIHZhbCAoKSA9IGFkZF9icmVhayBwcCAoMSwgMCkKICAgIHZhbCAoKSA9IGJl
Z2luX2Jsb2NrIHBwIElOQ09OU0lTVEVOVCAyCiAgICB2YWwgKCkgPSBhZGRfc3RyaW5nIHBw
ICJpbmZzID0iCiAgICB2YWwgKCkgPSBhZGRfYnJlYWsgcHAgKDEsIDApCiAgICB2YWwgKCkg
PSBwcF9pbnQgcHAgaW5mcwogICAgdmFsICgpID0gZW5kX2Jsb2NrIHBwCiAgICB2YWwgKCkg
PSBhZGRfc3RyaW5nIHBwICJ9IgogICAgdmFsICgpID0gZW5kX2Jsb2NrIHBwCiAgaW4KICAg
ICgpCiAgZW5kOwoKZnVuIG1ldGVyX3JlYWRpbmdfdG9fc3RyaW5nIHIgPQogIFBQLnBwX3Rv
X3N0cmluZyAoIUxJTkVfTEVOR1RIKSBwcF9tZXRlcl9yZWFkaW5nIHI7CgooKiAtLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tICopCigqIE1ldGVycyByZWNvcmQgdGltZSBhbmQgaW5mZXJlbmNlcy4g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKikKKCogLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLSAqKQoKdHlwZSBtZXRlciA9IHtyZWFkIDogdW5pdCAtPiBtZXRlcl9yZWFk
aW5nLCBsb2cgOiAoaW50IC0+IHVuaXQpLCBsaW0gOiBsaW1pdH07CgpmdW4gbmV3X3RpbWVf
bWV0ZXIgKCkgPQogIGxldAogICAgdmFsIHRtciA9IFRpbWVyLnN0YXJ0Q1BVVGltZXIgKCkK
ICAgIGZ1biByZWFkICgpID0KICAgICAgKGZuIHt1c3IsIHN5cywgLi4ufSA9PiBUaW1lLnRv
UmVhbCAoVGltZS4rICh1c3IsIHN5cykpKQogICAgICAoVGltZXIuY2hlY2tDUFVUaW1lciB0
bXIpCiAgaW4KICAgIHJlYWQKICBlbmQ7CgpmdW4gbmV3X2luZmVyZW5jZV9tZXRlciAoKSA9
CiAgbGV0CiAgICB2YWwgaW5mcyA9IHJlZiAwCiAgICBmdW4gcmVhZCAoKSA9ICFpbmZzCiAg
aW4KICAgIChyZWFkLCBmbiBuID0+IGluZnMgOj0gIWluZnMgKyBuKQogIGVuZDsKCmZ1biBu
ZXdfbWV0ZXIgbGltIDogbWV0ZXIgPQogIGxldAogICAgdmFsIHRyZWFkID0gbmV3X3RpbWVf
bWV0ZXIgKCkKICAgIHZhbCAoaXJlYWQsIGlsb2cpID0gbmV3X2luZmVyZW5jZV9tZXRlciAo
KQogIGluCiAgICB7cmVhZCA9IChmbiAoKSA9PiB7dGltZSA9IHRyZWFkICgpLCBpbmZzID0g
aXJlYWQgKCl9KSwKICAgICBsb2cgPSBpbG9nLCBsaW0gPSBsaW19CiAgZW5kOwoKZnVuIHN1
Yl9tZXRlciB7cmVhZCwgbG9nLCBsaW0gPSBffSBsaW0gPQogIGxldAogICAgdmFsIHt0aW1l
ID0gaW5pdF90aW1lIDogcmVhbCwgaW5mcyA9IGluaXRfaW5mc30gPSByZWFkICgpCiAgICBm
dW4gc3ViIHt0aW1lLCBpbmZzfSA9IHt0aW1lID0gdGltZSAtIGluaXRfdGltZSwgaW5mcyA9
IGluZnMgLSBpbml0X2luZnN9CiAgaW4KICAgIHtyZWFkID0gc3ViIG8gcmVhZCwgbG9nID0g
bG9nLCBsaW0gPSBsaW19CiAgZW5kOwoKdmFsIHJlYWRfbWV0ZXIgPSBmbiAoe3JlYWQsIC4u
Ln0gOiBtZXRlcikgPT4gcmVhZCAoKTsKCnZhbCBjaGVja19tZXRlciA9IGZuICh7cmVhZCwg
bGltID0ge3RpbWUsIGluZnN9LCAuLi59IDogbWV0ZXIpID0+CiAgbGV0CiAgICB2YWwge3Rp
bWUgPSB0LCBpbmZzID0gaX0gPSByZWFkICgpCiAgaW4KICAgIChjYXNlIHRpbWUgb2YgTk9O
RSA9PiB0cnVlIHwgU09NRSB0aW1lID0+IHQgPCB0aW1lKSBhbmRhbHNvCiAgICAoY2FzZSBp
bmZzIG9mIE5PTkUgPT4gdHJ1ZSB8IFNPTUUgaW5mcyA9PiBpIDwgaW5mcykKICBlbmQ7Cgp2
YWwgcmVjb3JkX2luZnMgPSBmbiAoe2xvZywgLi4ufSA6IG1ldGVyKSA9PiBsb2c7Cgp2YWwg
cHBfbWV0ZXIgPSBwcF9tYXAgcmVhZF9tZXRlciBwcF9tZXRlcl9yZWFkaW5nOwoKZW5kCigq
I2xpbmUgMC4wICJzcmMvU29sdmVyMS5zaWciKikKKCogPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAq
KQooKiBQQUNLQUdJTkcgVVAgU09MVkVSUyBUTyBBTExPVyBUSEVNIFRPIENPT1BFUkFURSBV
TklGT1JNTFkgICAgICAgICAgICAgICAgICopCigqIENyZWF0ZWQgYnkgSm9lIEh1cmQsIE1h
cmNoIDIwMDIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKikK
KCogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PSAqKQoKc2lnbmF0dXJlIFNvbHZlcjEgPQpzaWcKCnR5
cGUgJ2EgcHAgICAgICAgICA9ICdhIFVzZWZ1bC5wcAp0eXBlICdhIHN0cmVhbSAgICAgPSAn
YSBTdHJlYW0uc3RyZWFtCnR5cGUgZm9ybXVsYSAgICAgICA9IFRlcm0xLmZvcm11bGEKdHlw
ZSB0aG0gICAgICAgICAgID0gVGhtMS50aG0KdHlwZSBsaW1pdCAgICAgICAgID0gTWV0ZXIx
LmxpbWl0CnR5cGUgbWV0ZXIgICAgICAgICA9IE1ldGVyMS5tZXRlcgp0eXBlIG1ldGVyX3Jl
YWRpbmcgPSBNZXRlcjEubWV0ZXJfcmVhZGluZwp0eXBlIHVuaXRzICAgICAgICAgPSBVbml0
czEudW5pdHMKCigqIFRoZSB0eXBlIG9mIGEgZ2VuZXJpYyBzb2x2ZXIgKikKCnR5cGUgc29s
dmVyID0gZm9ybXVsYSBsaXN0IC0+IHRobSBsaXN0IG9wdGlvbiBzdHJlYW0KCnZhbCBjb250
cmFkaWN0aW9uX3NvbHZlciA6IHRobSAtPiBzb2x2ZXIKCigqIEZpbHRlcnMgdG8gY3V0IG9m
ZiBzZWFyY2hpbmcgb3IgZHJvcCBzdWJzdW1lZCBzb2x1dGlvbnMgKikKCnZhbCBzb2x2ZWRf
ZmlsdGVyICAgOiBzb2x2ZXIgLT4gc29sdmVyCnZhbCBzdWJzdW1lZF9maWx0ZXIgOiBzb2x2
ZXIgLT4gc29sdmVyCgooKiBVc2VyLWZyaWVuZGx5IGludGVyZmFjZSB0byBnZW5lcmljIHNv
bHZlcnMgKikKCnZhbCBzb2x2ZSAgOiBzb2x2ZXIgLT4gZm9ybXVsYSBsaXN0IC0+IHRobSBs
aXN0IGxpc3QKdmFsIGZpbmQgICA6IHNvbHZlciAtPiBmb3JtdWxhIGxpc3QgLT4gdGhtIGxp
c3Qgb3B0aW9uCnZhbCByZWZ1dGUgOiBzb2x2ZXIgLT4gdGhtIG9wdGlvbgoKKCogU29sdmVy
IG5vZGVzIG11c3QgY29uc3RydWN0IHRoZW1zZWx2ZXMgZnJvbSB0aGUgZm9sbG93aW5nIGZv
cm0uICopCgp0eXBlIGZvcm0gPQogIHtzbGljZSA6IG1ldGVyIHJlZiwgICAgICAgICAgICAg
ICAgICAgKCogQSBtZXRlciB0byBzdG9wIGFmdGVyIGVhY2ggc2xpY2UgKikKICAgdW5pdHMg
OiB1bml0cyByZWYsICAgICAgICAgICAgICAgICAgICgqIFNvbHZlcnMgc2hhcmUgYSB1bml0
IGNhY2hlICopCiAgIHRobXMgIDogdGhtIGxpc3QsICAgICAgICAgICAgICAgICAgICAoKiBD
b250ZXh0LCBhc3N1bWVkIGNvbnNpc3RlbnQgKikKICAgaHlwcyAgOiB0aG0gbGlzdH0gICAg
ICAgICAgICAgICAgICAgICgqIEh5cG90aGVzaXMsIG9yIHNldCBvZiBzdXBwb3J0ICopCgoo
KiBTb2x2ZXIgbm9kZXMgYWxzbyBpbmNvcnBvcmF0ZSBhIG5hbWUuICopCgp0eXBlIG5vZGVf
ZGF0YSA9IHtuYW1lIDogc3RyaW5nLCBzb2x2ZXJfY29uIDogZm9ybSAtPiBzb2x2ZXJ9CnR5
cGUgc29sdmVyX25vZGUKCnZhbCBta19zb2x2ZXJfbm9kZSA6IG5vZGVfZGF0YSAtPiBzb2x2
ZXJfbm9kZQp2YWwgcHBfc29sdmVyX25vZGUgOiBzb2x2ZXJfbm9kZSBwcAoKKCogQXQgZWFj
aCBzdGVwIHdlIHNjaGVkdWxlIGEgdGltZSBzbGljZSB0byB0aGUgbGVhc3QgY29zdCBzb2x2
ZXIgbm9kZS4gKikKCnZhbCBTTElDRSA6IGxpbWl0IHJlZgoKdHlwZSBjb3N0X2ZuID0gbWV0
ZXJfcmVhZGluZyAtPiByZWFsCgp2YWwgdGltZTEgOiBjb3N0X2ZuICAgICAgICAgICAgICAg
ICAgICAgKCogVGltZSB0YWtlbiAoaW4gc2Vjb25kcykgKikKdmFsIHRpbWUyIDogY29zdF9m
biAgICAgICAgICAgICAgICAgICAgICgqIFRpbWUgc3F1YXJlZCAqKQp2YWwgaW5mczEgOiBj
b3N0X2ZuICAgICAgICAgICAgICAgICAgICAgKCogTnVtYmVyIG9mIGluZmVyZW5jZXMgbWFk
ZSopCnZhbCBpbmZzMiA6IGNvc3RfZm4gICAgICAgICAgICAgICAgICAgICAoKiBJbmZlcmVu
Y2VzIHNxdWFyZWQgKikKCigqIFRoaXMgYWxsb3dzIHVzIHRvIGhpZXJhcmNoaWNhbGx5IGFy
cmFuZ2Ugc29sdmVyIG5vZGVzLiAqKQoKdmFsIGNvbWJpbmUgOiAoY29zdF9mbiAqIHNvbHZl
cl9ub2RlKSBsaXN0IC0+IHNvbHZlcl9ub2RlCgooKiBPdmVycmlkaW5nIHRoZSAnbmF0dXJh
bCcgc2V0IG9mIHN1cHBvcnQgZnJvbSB0aGUgcHJvYmxlbS4gKikKCnZhbCBzZXRfb2Zfc3Vw
cG9ydCA6ICh0aG0gLT4gYm9vbCkgLT4gc29sdmVyX25vZGUgLT4gc29sdmVyX25vZGUKdmFs
IGV2ZXJ5dGhpbmcgICAgIDogdGhtIC0+IGJvb2wKdmFsIG9uZV9uZWdhdGl2ZSAgIDogdGht
IC0+IGJvb2wKdmFsIG9uZV9wb3NpdGl2ZSAgIDogdGhtIC0+IGJvb2wKdmFsIGFsbF9uZWdh
dGl2ZSAgIDogdGhtIC0+IGJvb2wgICAgICAgICgqIFRoaXMgb25lIGlzIHVzZWQgYnkgTWV0
aXMxLnByb3ZlICopCnZhbCBhbGxfcG9zaXRpdmUgICA6IHRobSAtPiBib29sCnZhbCBub3Ro
aW5nICAgICAgICA6IHRobSAtPiBib29sCgooKiBJbml0aWFsaXppbmcgYSBzb2x2ZXIgbm9k
ZSBtYWtlcyBpdCByZWFkeSBmb3IgYWN0aW9uLiAqKQoKdHlwZSBpbml0X2RhdGEgPSB7bGlt
aXQgOiBsaW1pdCwgdGhtcyA6IHRobSBsaXN0LCBoeXBzIDogdGhtIGxpc3R9Cgp2YWwgaW5p
dGlhbGl6ZSA6IHNvbHZlcl9ub2RlIC0+IGluaXRfZGF0YSAtPiBzb2x2ZXIKCmVuZAooKiNs
aW5lIDAuMCAic3JjL1NvbHZlcjEuc21sIiopCigqID09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKikK
KCogUEFDS0FHSU5HIFVQIFNPTFZFUlMgVE8gQUxMT1cgVEhFTSBUTyBDT09QRVJBVEUgVU5J
Rk9STUxZICAgICAgICAgICAgICAgICAqKQooKiBDcmVhdGVkIGJ5IEpvZSBIdXJkLCBNYXJj
aCAyMDAyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopCigq
ID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0gKikKCigqCmFwcCBsb2FkCiBbIlVzZWZ1bCIsICJNb3Nt
bCIsICJUZXJtMSIsICJUaG0xIiwgIkNhbm9uMSIsICJNYXRjaDEiLCAiTWV0ZXIxIiwgIlVu
aXRzMSIsCiAgIlNvbHZlcjEiXTsKKikKCigqCiopCnN0cnVjdHVyZSBTb2x2ZXIxIDo+IFNv
bHZlcjEgPQpzdHJ1Y3QKCm9wZW4gVXNlZnVsIFRlcm0xIE1hdGNoMSBUaG0xIE1ldGVyMTsK
CmluZml4IHwtPiA6Oj4gQD4gb28gIyM7CgpzdHJ1Y3R1cmUgUyA9IFN0cmVhbTsKc3RydWN0
dXJlIFUgPSBVbml0czE7Cgp0eXBlICdhIHN0cmVhbSA9ICdhIFMuc3RyZWFtOwp0eXBlIHVu
aXRzICAgICA9IFUudW5pdHM7Cgp2YWwgfDw+fCAgID0gU3Vic3QxLnw8Pnw7CnZhbCBvcCA6
Oj4gPSBTdWJzdDEuOjo+OwoKKCogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqKQooKiBDaGF0dGlu
Zy4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICopCigqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKikKCnZhbCAoKSA9IHRy
YWNlcyA6PSB7bW9kdWxlID0gIlNvbHZlcjEiLCBhbGlnbm1lbnQgPSBLIDF9IDo6ICF0cmFj
ZXM7CgpmdW4gY2hhdCBsIG0gPSB0cmFjZSB7bW9kdWxlID0gIlNvbHZlcjEiLCBtZXNzYWdl
ID0gbSwgbGV2ZWwgPSBsfTsKCigqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKikKKCogSGVscGVy
IGZ1bmN0aW9ucy4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAqKQooKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICopCgpmdW4gZHJvcF9h
ZnRlciBmID0KICBTLmZvbGQgKGZuIHggPT4gZm4geHMgPT4gUy5DT05TICh4LCBpZiBmIHgg
dGhlbiBLIFMuTklMIGVsc2UgeHMpKSBTLk5JTDsKCmZ1biB0aW1lX3RvX3N0cmluZyB0ID0K
ICBsZXQgdmFsIGRwID0gaWYgdCA8IDEwLjAgdGhlbiAyIGVsc2UgaWYgdCA8IDEwMDAuMCB0
aGVuIDEgZWxzZSAwCiAgaW4gUmVhbC5mbXQgKFN0cmluZ0N2dC5GSVggKFNPTUUgZHApKSB0
CiAgZW5kOwoKZnVuIGluZnNfdG9fc3RyaW5nIGkgPQogIGlmIGkgPCAxMDAwMCB0aGVuIGlu
dF90b19zdHJpbmcgaQogIGVsc2UgaWYgaSA8IDEwMDAwMDAwIHRoZW4gaW50X3RvX3N0cmlu
ZyAoaSBkaXYgMTAwMCkgXiAiSyIKICBlbHNlIGludF90b19zdHJpbmcgKGkgZGl2IDEwMDAw
MDApIF4gIk0iOwoKdmFsIG5hbWVfdG9fc3RyaW5nID0gc3RyIG8gaGQgbyBleHBsb2RlOwoK
ZnVuIG9wdGlvbl9jYXNlIG4gXyBOT05FID0gbgogIHwgb3B0aW9uX2Nhc2UgXyBzIChTT01F
IF8pID0gczsKCigqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKikKKCogVGhlIHR5cGUgb2YgYSBn
ZW5lcmljIHNvbHZlci4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAqKQooKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICopCgp0eXBlIHNvbHZlciA9IGZvcm11
bGEgbGlzdCAtPiB0aG0gbGlzdCBvcHRpb24gc3RyZWFtOwoKbG9jYWwKICBmdW4gY29udHIg
dGggW0ZhbHNlXSA9IFt0aF0KICAgIHwgY29udHIgdGggZ3MgPSBtYXAgKEMgQ09OVFIgdGgp
IGdzOwppbgogIGZ1biBjb250cmFkaWN0aW9uX3NvbHZlciB0aCA9CiAgICAoYXNzZXJ0IChp
c19jb250cmFkaWN0aW9uIHRoKSAoRVJSICJjb250cmFkaWN0aW9uX3NvbHZlciIgInRobSBu
b3QgfC0gRiIpOwogICAgIGZuIGdzID0+IFMuQ09OUyAoU09NRSAoY29udHIgdGggZ3MpLCBL
IFMuTklMKSk7CmVuZDsKCigqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKikKKCogRmlsdGVycyB0
byBjdXQgb2ZmIHNlYXJjaGluZyBvciBkcm9wIHN1YnN1bWVkIHNvbHV0aW9ucy4gICAgICAg
ICAgICAgICAgICAqKQooKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICopCgpsb2NhbAogIGZ1biBj
b25jbCBbXSA9IEZhbHNlCiAgICB8IGNvbmNsIFtsaXRdID0gbGl0CiAgICB8IGNvbmNsIF8g
PSByYWlzZSBCVUcgImNvbmNsIiAibm90IGEgbGl0ZXJhbCI7CmluCiAgZnVuIHNvbHZlZF9m
aWx0ZXIgc29sdmVyIGdvYWxzID0KICAgIGxldAogICAgICBmdW4gc29sdmVzIGdvYWxzJyA9
IGNhbiAobWF0Y2hsX2xpdGVyYWxzIHw8PnwpICh6aXAgZ29hbHMnIGdvYWxzKQogICAgICBm
dW4gZmluYWwgTk9ORSA9IGZhbHNlCiAgICAgICAgfCBmaW5hbCAoU09NRSB0aHMpID0gc29s
dmVzIChtYXAgKGNvbmNsIG8gY2xhdXNlKSB0aHMpCiAgICBpbgogICAgICBkcm9wX2FmdGVy
IGZpbmFsIChzb2x2ZXIgZ29hbHMpCiAgICBlbmQ7CmVuZDsKCmxvY2FsCiAgZnVuIG11bmdl
IHMgbiA9ICJNVU5HRURfXyIgXiBpbnRfdG9fc3RyaW5nIG4gXiAiX18iIF4gczsKICBmdW4g
bXVuZ2VfbGl0IChuLCBBdG9tIChGbiAocCwgYSkpKSA9IEF0b20gKEZuIChtdW5nZSBwIG4s
IGEpKQogICAgfCBtdW5nZV9saXQgKG4sIE5vdCAoQXRvbSAoRm4gKHAsIGEpKSkpID0gTm90
IChBdG9tIChGbiAobXVuZ2UgcCBuLCBhKSkpCiAgICB8IG11bmdlX2xpdCBfID0gcmFpc2Ug
QlVHICJtdW5nZV9saXQiICJiYWQgbGl0ZXJhbCI7CiAgZnVuIGRpc3RpbmN0aXZpemUgZm1z
ID0gbWFwIG11bmdlX2xpdCAoZW51bWVyYXRlIDAgZm1zKTsgICAgCiAgZnVuIGFkdmFuY2Ug
Tk9ORSBzID0gKFNPTUUgTk9ORSwgcykKICAgIHwgYWR2YW5jZSAoU09NRSB0aHMpIHMgPQog
ICAgbGV0CiAgICAgIHZhbCBmbXMgPSBkaXN0aW5jdGl2aXplIChMaXN0Lm1hcFBhcnRpYWwg
KHRvdGFsIGRlc3RfdW5pdCkgdGhzKQogICAgaW4KICAgICAgaWYgbm9uIG51bGwgKFN1YnN1
bWUxLnN1YnN1bWVkIHMgZm1zKSB0aGVuIChOT05FLCBzKQogICAgICBlbHNlIChTT01FIChT
T01FIHRocyksIFN1YnN1bWUxLmFkZCAoZm1zIHwtPiAoKSkgcykKICAgIGVuZAogICAgaGFu
ZGxlIEVSUl9FWE4gXyA9PiByYWlzZSBCVUcgImFkdmFuY2UiICJzaG91bGRuJ3QgZmFpbCI7
CmluCiAgZnVuIHN1YnN1bWVkX2ZpbHRlciBzIGcgPSBTLnBhcnRpYWxfbWFwcyBhZHZhbmNl
IFN1YnN1bWUxLmVtcHR5IChzIGcpOwplbmQ7CgooKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICop
CigqIFVzZXItZnJpZW5kbHkgaW50ZXJmYWNlIHRvIGdlbmVyaWMgc29sdmVycyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgKikKKCogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqKQoK
ZnVuIHJhd19zb2x2ZSBzID0gUy5wYXJ0aWFsX21hcCBJIG8gKHN1YnN1bWVkX2ZpbHRlciAo
c29sdmVkX2ZpbHRlciBzKSk7CgpmdW4gc29sdmUgcyA9IFMudG9fbGlzdCBvIChyYXdfc29s
dmUgcyk7CgpmdW4gZmluZCBzID0gKGZuIFMuTklMID0+IE5PTkUgfCBTLkNPTlMgKHgsIF8p
ID0+IFNPTUUgeCkgbyByYXdfc29sdmUgczsKCmZ1biByZWZ1dGUgcyA9IE9wdGlvbi5tYXAg
dW53cmFwIChmaW5kIHMgW0ZhbHNlXSk7CgooKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICopCigq
IFNvbHZlciBub2RlcyBtdXN0IGNvbnN0cnVjdCB0aGVtc2VsdmVzIGZyb20gdGhlIGZvbGxv
d2luZyBmb3JtLiAgICAgICAgICAgKikKKCogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqKQoKdHlw
ZSBmb3JtID0KICB7c2xpY2UgOiBtZXRlciByZWYsICAgICAgICAgICAgICAgICAgICgqIEEg
bWV0ZXIgdG8gc3RvcCBhZnRlciBlYWNoIHNsaWNlICopCiAgIHVuaXRzIDogdW5pdHMgcmVm
LCAgICAgICAgICAgICAgICAgICAoKiBTb2x2ZXJzIHNoYXJlIGEgdW5pdCBjYWNoZSAqKQog
ICB0aG1zICA6IHRobSBsaXN0LCAgICAgICAgICAgICAgICAgICAgKCogQ29udGV4dCwgYXNz
dW1lZCBjb25zaXN0ZW50ICopCiAgIGh5cHMgIDogdGhtIGxpc3R9OyAgICAgICAgICAgICAg
ICAgICAoKiBIeXBvdGhlc2lzLCBubyBhc3N1bXB0aW9ucyAqKQoKKCogLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLSAqKQooKiBTb2x2ZXIgbm9kZXMgYWxzbyBpbmNvcnBvcmF0ZSBhIG5hbWUuICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopCigqIC0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0gKikKCnR5cGUgbm9kZV9kYXRhID0ge25hbWUgOiBzdHJpbmcsIHNvbHZlcl9jb24g
OiBmb3JtIC0+IHNvbHZlcn07CgpkYXRhdHlwZSBzb2x2ZXJfbm9kZSA9CiAgU29sdmVyX25v
ZGUgb2Yge25hbWUgOiBzdHJpbmcsIGluaXRpYWwgOiBzdHJpbmcsIHNvbHZlcl9jb24gOiBm
b3JtIC0+IHNvbHZlcn07CgpmdW4gbWtfc29sdmVyX25vZGUge25hbWUsIHNvbHZlcl9jb259
ID0KICBTb2x2ZXJfbm9kZQogIHtuYW1lID0gbmFtZSwgaW5pdGlhbCA9IChzdHIgbyBoZCBv
IGV4cGxvZGUpIG5hbWUsIHNvbHZlcl9jb24gPSBzb2x2ZXJfY29ufTsKCnZhbCBwcF9zb2x2
ZXJfbm9kZSA9IHBwX21hcCAoZm4gU29sdmVyX25vZGUge25hbWUsIC4uLn0gPT4gbmFtZSkg
cHBfc3RyaW5nOwoKKCogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqKQooKiBBdCBlYWNoIHN0ZXAg
d2Ugc2NoZWR1bGUgYSB0aW1lIHNsaWNlIHRvIHRoZSBsZWFzdCBjb3N0IHNvbHZlciBub2Rl
LiAgICAgICopCigqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKikKCnZhbCBTTElDRSA6IGxpbWl0
IHJlZiA9IHJlZiB7dGltZSA9IFNPTUUgKDEuMCAvIDMuMCksIGluZnMgPSBOT05FfTsKCnR5
cGUgY29zdF9mbiA9IE1ldGVyMS5tZXRlcl9yZWFkaW5nIC0+IHJlYWw7Cgpsb2NhbAogIGZ1
biBzcSB4IDogcmVhbCA9IHggKiB4OwppbgogIHZhbCB0aW1lMSA6IGNvc3RfZm4gPSBmbiB7
dGltZSwgLi4ufSA9PiB0aW1lOwogIHZhbCB0aW1lMiA6IGNvc3RfZm4gPSBmbiB7dGltZSwg
Li4ufSA9PiBzcSB0aW1lOwogIHZhbCBpbmZzMSA6IGNvc3RfZm4gPSBmbiB7aW5mcywgLi4u
fSA9PiBSZWFsLmZyb21JbnQgaW5mczsKICB2YWwgaW5mczIgOiBjb3N0X2ZuID0gZm4ge2lu
ZnMsIC4uLn0gPT4gc3EgKFJlYWwuZnJvbUludCBpbmZzKTsKZW5kOwoKKCogLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLSAqKQooKiBUaGlzIGFsbG93cyB1cyB0byBoaWVyYXJjaGljYWxseSBhcnJh
bmdlIHNvbHZlciBub2Rlcy4gICAgICAgICAgICAgICAgICAgICopCigqIC0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0gKikKCmxvY2FsCiAgZnVuIG5hbWUgKFNvbHZlcl9ub2RlIHtuYW1lLCAuLi59
KSA9IG5hbWU7CiAgZnVuIGluaXRpYWwgKFNvbHZlcl9ub2RlIHtpbml0aWFsLCAuLi59KSA9
IGluaXRpYWw7CiAgZnVuIHNlcSBmIFtdID0gIiIKICAgIHwgc2VxIGYgKGggOjogdCkgPSBm
b2xkbCAoZm4gKG4sIHMpID0+IHMgXiAiLCIgXiBmIG4pIChmIGgpIHQ7CmluCiAgZnVuIGNv
bWJpbmVfbmFtZXMgY3NvbHZlcnMgPSAiWyIgXiBzZXEgKG5hbWUgbyBzbmQpIGNzb2x2ZXJz
IF4gIl0iOwogIGZ1biBjb21iaW5lX2luaXRpYWxzIGNzb2x2ZXJzID0gIlsiIF4gc2VxIChp
bml0aWFsIG8gc25kKSBjc29sdmVycyBeICJdIjsKZW5kOwoKZGF0YXR5cGUgc3Vibm9kZSA9
IFN1Ym5vZGUgb2YKICB7bmFtZSAgIDogc3RyaW5nLAogICB1c2VkICAgOiBtZXRlcl9yZWFk
aW5nLAogICBjb3N0ICAgOiBtZXRlcl9yZWFkaW5nIC0+IHJlYWwsCiAgIHNvbG5zICA6ICh1
bml0IC0+IHRobSBsaXN0IG9wdGlvbiBzdHJlYW0pIG9wdGlvbn07CgpmdW4gaW5pdF9zdWJu
b2RlIChjb3N0LCAobmFtZSwgc29sdmVyIDogc29sdmVyKSkgZ29hbCA9CiAgU3Vibm9kZQog
IHtuYW1lID0gbmFtZSwKICAgdXNlZCA9IHplcm9fcmVhZGluZywKICAgY29zdCA9IGNvc3Qs
CiAgIHNvbG5zID0gU09NRSAoZm4gKCkgPT4gc29sdmVyIGdvYWwpfTsKCmZ1biBsZWFzdF9j
b3N0IFtdID0gSyBOT05FCiAgfCBsZWFzdF9jb3N0IF8gPQogIChTT01FIG8gc25kIG8gbWlu
IChmbiAociwgXykgPT4gZm4gKHMsIF8pID0+IHIgPD0gcykgbwogICBtYXAgKGZuIChuLCBT
dWJub2RlIHt1c2VkLCBjb3N0LCAuLi59KSA9PiAoY29zdCB1c2VkLCBuKSkpCgp2YWwgY2hv
b3NlX3N1Ym5vZGUgPQogIFcgbGVhc3RfY29zdCBvCiAgTGlzdC5maWx0ZXIgKGZuIChfLCBT
dWJub2RlIHtzb2xucywgLi4ufSkgPT4gT3B0aW9uLmlzU29tZSBzb2xucykgbwogIGVudW1l
cmF0ZSAwOwoKZnVuIHN1Ym5vZGVfaW5mbyAoU3Vibm9kZSB7bmFtZSwgdXNlZCA9IHt0aW1l
LCBpbmZzfSwgc29sbnMsIC4uLn0pID0KICBuYW1lX3RvX3N0cmluZyBuYW1lIF4gIigiIF4g
dGltZV90b19zdHJpbmcgdGltZSBeICIsIiBeCiAgaW5mc190b19zdHJpbmcgaW5mcyBeICIp
IiBeIChjYXNlIHNvbG5zIG9mIE5PTkUgPT4gIioiIHwgU09NRSBfID0+ICIiKTsKCmxvY2Fs
CiAgZnVuIHNlcSBmIFtdID0gIiIKICAgIHwgc2VxIGYgKGggOjogdCkgPSBmb2xkbCAoZm4g
KG4sIHMpID0+IHMgXiAiLS0iIF4gZiBuKSAoZiBoKSB0OwppbgogIGZ1biBzdGF0dXNfaW5m
byBzdWJub2RlcyB1bml0cyA9CiAgICAiWyIgXiBzZXEgc3Vibm9kZV9pbmZvIHN1Ym5vZGVz
IF4gIl0tLXU9IiBeIFUuaW5mbyB1bml0cyBeICItLSI7CmVuZDsKCmZ1biBzY2hlZHVsZSBj
aGVjayByZWFkIHN0YXQgPQogIGxldAogICAgZnVuIHNjaGVkIG5vZGVzID0KICAgICAgKGNo
YXQgMiAoc3RhdCBub2Rlcyk7CiAgICAgICBpZiBub3QgKGNoZWNrICgpKSB0aGVuCiAgICAg
ICAgIChjaGF0IDEgIj9cbiI7IFMuQ09OUyAoTk9ORSwgZm4gKCkgPT4gc2NoZWQgbm9kZXMp
KQogICAgICAgZWxzZQogICAgICAgICBjYXNlIGNob29zZV9zdWJub2RlIG5vZGVzIG9mIE5P
TkUgPT4gKGNoYXQgMSAiIVxuIjsgUy5OSUwpCiAgICAgICAgIHwgU09NRSBuID0+CiAgICAg
ICAgICAgbGV0CiAgICAgICAgICAgICB2YWwgU3Vibm9kZSB7bmFtZSwgdXNlZCwgc29sbnMs
IGNvc3R9ID0gTGlzdC5udGggKG5vZGVzLCBuKQogICAgICAgICAgICAgdmFsICgpID0gY2hh
dCAxIG5hbWUKICAgICAgICAgICAgIHZhbCBzZXEgPSAoT3B0aW9uLnZhbE9mIHNvbG5zKSAo
KQogICAgICAgICAgICAgdmFsIHIgPSByZWFkICgpCiAgICAgICAgICAgICB2YWwgKCkgPSBj
aGF0IDIgKCItLXQ9IiBeIHRpbWVfdG9fc3RyaW5nICgjdGltZSByKSBeICJcbiIpCiAgICAg
ICAgICAgICB2YWwgdXNlZCA9IGFkZF9yZWFkaW5ncyB1c2VkIHIKICAgICAgICAgICAgIHZh
bCAocmVzLCBzb2xucykgPQogICAgICAgICAgICAgICBjYXNlIHNlcSBvZiBTLk5JTCA9PiAo
Tk9ORSwgTk9ORSkgfCBTLkNPTlMgKGEsIHIpID0+IChhLCBTT01FIHIpCiAgICAgICAgICAg
ICB2YWwgbm9kZSA9CiAgICAgICAgICAgICAgIFN1Ym5vZGUge25hbWUgPSBuYW1lLCB1c2Vk
ID0gdXNlZCwgY29zdCA9IGNvc3QsIHNvbG5zID0gc29sbnN9CiAgICAgICAgICAgICB2YWwg
bm9kZXMgPSB1cGRhdGVfbnRoIChLIG5vZGUpIG4gbm9kZXMKICAgICAgICAgICAgIHZhbCAo
KSA9CiAgICAgICAgICAgICAgIGNhc2UgcmVzIG9mIE5PTkUgPT4gKCkKICAgICAgICAgICAg
ICAgfCBTT01FIF8gPT4gKGNoYXQgMiAoc3RhdCBub2Rlcyk7IGNoYXQgMSAiJFxuIikKICAg
ICAgICAgICBpbgogICAgICAgICAgICAgUy5DT05TIChyZXMsIGZuICgpID0+IHNjaGVkIG5v
ZGVzKQogICAgICAgICAgIGVuZCkKICBpbgogICAgc2NoZWQKICBlbmQ7CgpmdW4gY29tYmlu
ZV9zb2x2ZXJzIChuLCBpKSBjc29sdmVycyB7c2xpY2UsIHVuaXRzLCB0aG1zLCBoeXBzfSA9
CiAgbGV0CiAgICB2YWwgKCkgPSBjaGF0IDIKICAgICAgKG4gXiAiLS1pbml0aWFsaXppbmct
LSN0aG1zPSIgXiBpbnRfdG9fc3RyaW5nIChsZW5ndGggdGhtcykgXgogICAgICAgIi0tI2h5
cHM9IiBeIGludF90b19zdHJpbmcgKGxlbmd0aCBoeXBzKSBeICIuXG4iKQogICAgdmFsIG1l
dGVyID0gcmVmIChuZXdfbWV0ZXIgZXhwaXJlZCkKICAgIGZ1biBmIChTb2x2ZXJfbm9kZSB7
aW5pdGlhbCwgc29sdmVyX2NvbiwgLi4ufSkgPQogICAgICAoaW5pdGlhbCwKICAgICAgIHNv
bHZlcl9jb24ge3NsaWNlID0gbWV0ZXIsIHVuaXRzID0gdW5pdHMsIHRobXMgPSB0aG1zLCBo
eXBzID0gaHlwc30pCiAgICB2YWwgY25vZGVzID0gbWFwIChJICMjIGYpIGNzb2x2ZXJzCiAg
ICBmdW4gY2hlY2sgKCkgPQogICAgICBjaGVja19tZXRlciAoIXNsaWNlKSBhbmRhbHNvICht
ZXRlciA6PSBzdWJfbWV0ZXIgKCFzbGljZSkgKCFTTElDRSk7IHRydWUpCiAgICBmdW4gcmVh
ZCAoKSA9IHJlYWRfbWV0ZXIgKCFtZXRlcikKICAgIGZ1biBzdGF0IHMgPSBzdGF0dXNfaW5m
byBzICghdW5pdHMpCiAgaW4KICAgIGZuIGdvYWwgPT4gc2NoZWR1bGUgY2hlY2sgcmVhZCBz
dGF0IChtYXAgKEMgaW5pdF9zdWJub2RlIGdvYWwpIGNub2RlcykKICBlbmQ7CgpmdW4gY29t
YmluZSBjc29sdmVycyA9CiAgbGV0CiAgICB2YWwgbiA9IGNvbWJpbmVfbmFtZXMgY3NvbHZl
cnMKICAgIHZhbCBpID0gY29tYmluZV9pbml0aWFscyBjc29sdmVycwogIGluCiAgICBTb2x2
ZXJfbm9kZQogICAge25hbWUgPSBuLCBpbml0aWFsID0gaSwgc29sdmVyX2NvbiA9IGNvbWJp
bmVfc29sdmVycyAobiwgaSkgY3NvbHZlcnN9CiAgZW5kOwoKKCogLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLSAqKQooKiBPdmVycmlkaW5nIHRoZSAnbmF0dXJhbCcgc2V0IG9mIHN1cHBvcnQgZnJv
bSB0aGUgcHJvYmxlbS4gICAgICAgICAgICAgICAgICopCigqIC0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0gKikKCmZ1biBzb3Nfc29sdmVyX2NvbiBmaWx0IG5hbWUgc29sdmVyX2NvbiB7c2xpY2Us
IHVuaXRzLCB0aG1zLCBoeXBzfSA9CiAgbGV0CiAgICB2YWwgKCkgPSBjaGF0IDIKICAgICAg
KG5hbWUgXiAiLS1pbml0aWFsaXppbmctLSN0aG1zPSIgXiBpbnRfdG9fc3RyaW5nIChsZW5n
dGggdGhtcykgXgogICAgICAgIi0tI2h5cHM9IiBeIGludF90b19zdHJpbmcgKGxlbmd0aCBo
eXBzKSBeICIuXG4iKQogICAgdmFsIChoeXBzJywgdGhtcycpID0gTGlzdC5wYXJ0aXRpb24g
ZmlsdCAodGhtcyBAIGh5cHMpCiAgaW4KICAgIHNvbHZlcl9jb24ge3NsaWNlID0gc2xpY2Us
IHVuaXRzID0gdW5pdHMsIHRobXMgPSB0aG1zJywgaHlwcyA9IGh5cHMnfQogIGVuZDsKCmZ1
biBzZXRfb2Zfc3VwcG9ydCBmaWx0IChTb2x2ZXJfbm9kZSB7bmFtZSwgaW5pdGlhbCwgc29s
dmVyX2Nvbn0pID0KICBsZXQgdmFsIG5hbWUnID0gIiEiIF4gbmFtZQogIGluCiAgICBTb2x2
ZXJfbm9kZQogICAge25hbWUgPSBuYW1lJywgaW5pdGlhbCA9IGluaXRpYWwsCiAgICAgc29s
dmVyX2NvbiA9IHNvc19zb2x2ZXJfY29uIGZpbHQgbmFtZScgc29sdmVyX2Nvbn0KICBlbmQ7
Cgp2YWwgZXZlcnl0aGluZyA6IHRobSAtPiBib29sID0gSyB0cnVlOwoKdmFsIG9uZV9uZWdh
dGl2ZSA9IChmbiB4ID0+IG51bGwgeCBvcmVsc2UgTGlzdC5leGlzdHMgbmVnYXRpdmUgeCkg
byBjbGF1c2U7Cgp2YWwgb25lX3Bvc2l0aXZlID0gKGZuIHggPT4gbnVsbCB4IG9yZWxzZSBM
aXN0LmV4aXN0cyBwb3NpdGl2ZSB4KSBvIGNsYXVzZTsKCnZhbCBhbGxfbmVnYXRpdmUgPSBM
aXN0LmFsbCBuZWdhdGl2ZSBvIGNsYXVzZTsKCnZhbCBhbGxfcG9zaXRpdmUgPSBMaXN0LmFs
bCBwb3NpdGl2ZSBvIGNsYXVzZTsKCnZhbCBub3RoaW5nIDogdGhtIC0+IGJvb2wgPSBLIGZh
bHNlOwoKKCogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqKQooKiBJbml0aWFsaXppbmcgYSBzb2x2
ZXIgbm9kZSBtYWtlcyBpdCByZWFkeSBmb3IgYWN0aW9uLiAgICAgICAgICAgICAgICAgICAg
ICopCigqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKikKCnR5cGUgaW5pdF9kYXRhID0ge2xpbWl0
IDogbGltaXQsIHRobXMgOiB0aG0gbGlzdCwgaHlwcyA6IHRobSBsaXN0fQoKZnVuIGluaXRp
YWxpemUgKFNvbHZlcl9ub2RlIHtzb2x2ZXJfY29uLCAuLi59KSB7bGltaXQsIHRobXMsIGh5
cHN9ID0KICBjYXNlIExpc3QuZmluZCBpc19jb250cmFkaWN0aW9uICh0aG1zIEAgaHlwcykg
b2YgU09NRSB0aAogICAgPT4gY29udHJhZGljdGlvbl9zb2x2ZXIgdGgKICB8IE5PTkUgPT4K
ICAgIGxldAogICAgICB2YWwgbWV0ZXIgPSByZWYgKG5ld19tZXRlciBleHBpcmVkKQogICAg
ICB2YWwgdW5pdHMgPSByZWYgVS5lbXB0eQogICAgICB2YWwgc29sdmVyID0KICAgICAgICBz
b2x2ZXJfY29uIHtzbGljZSA9IG1ldGVyLCB1bml0cyA9IHVuaXRzLCB0aG1zID0gdGhtcywg
aHlwcyA9IGh5cHN9CiAgICBpbgogICAgICBmbiBnID0+CiAgICAgIGxldCB2YWwgKCkgPSBt
ZXRlciA6PSBuZXdfbWV0ZXIgbGltaXQKICAgICAgaW4gZHJvcF9hZnRlciAoZm4gXyA9PiBu
b3QgKGNoZWNrX21ldGVyICghbWV0ZXIpKSkgKHNvbHZlciBnKQogICAgICBlbmQKICAgIGVu
ZDsKCmVuZAooKiNsaW5lIDAuMCAic3JjL01lc29uMS5zaWciKikKKCogPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PSAqKQooKiBUSEUgTUVTT04gUFJPT0YgUFJPQ0VEVVJFICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopCigqIENyZWF0ZWQgYnkgSm9l
IEh1cmQsIE5vdmVtYmVyIDIwMDEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgKikKKCogUGFydGx5IHBvcnRlZCBmcm9tIHRoZSBDQU1MLUxpZ2h0IGNvZGUgYWNj
b21wYW55aW5nIEpvaG4gSGFycmlzb24ncyBib29rICAqKQooKiA9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09ICopCgpzaWduYXR1cmUgTWVzb24xID0Kc2lnCgp0eXBlIHNvbHZlcl9ub2RlID0gU29s
dmVyMS5zb2x2ZXJfbm9kZQoKKCogVHVuaW5nIHBhcmFtZXRlcnMgKikKdHlwZSBwYXJhbWV0
ZXJzID0KICB7YW5jZXN0b3JfcHJ1bmluZyA6IGJvb2wsCiAgIGFuY2VzdG9yX2N1dHRpbmcg
OiBib29sLAogICBzdGF0ZV9zaW1wbGlmeSAgIDogYm9vbCwKICAgY2FjaGVfY3V0dGluZyAg
ICA6IGJvb2wsCiAgIGRpdmlkZV9jb25xdWVyICAgOiBib29sLAogICB1bml0X2xlbW1haXpp
bmcgIDogYm9vbH0KCnZhbCBkZWZhdWx0cyA6IHBhcmFtZXRlcnMKCigqIFRoZSBtZXNvbiBz
b2x2ZXIgKikKdmFsIG1lc29uJyA6IHBhcmFtZXRlcnMgLT4gc29sdmVyX25vZGUKdmFsIG1l
c29uICA6IHNvbHZlcl9ub2RlICAgICAgICAgICAgICAgICAgICAgICAgICAoKiBVc2VzIGRl
ZmF1bHRzICopCgooKiBUaGUgZGVsdGEgcHJlcHJvY2Vzc29yIGFzIGEgc29sdmVyICopCnZh
bCBkZWx0YScgOiBwYXJhbWV0ZXJzIC0+IHNvbHZlcl9ub2RlCnZhbCBkZWx0YSAgOiBzb2x2
ZXJfbm9kZSAgICAgICAgICAgICAgICAgICAgICAgICAgKCogVXNlcyBkZWZhdWx0cyAqKQoK
KCogVGhlIHByb2xvZyBzb2x2ZXIgKikKdmFsIHByb2xvZycgOiBwYXJhbWV0ZXJzIC0+IHNv
bHZlcl9ub2RlCnZhbCBwcm9sb2cgIDogc29sdmVyX25vZGUgICAgICAgICAgICAgICAgICAg
ICAgICAgKCogVXNlcyBkZWZhdWx0cyAqKQoKZW5kCigqI2xpbmUgMC4wICJzcmMvTWVzb24x
LnNtbCIqKQooKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICopCigqIFRIRSBNRVNPTiBQUk9PRiBQ
Uk9DRURVUkUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgKikKKCogQ3JlYXRlZCBieSBKb2UgSHVyZCwgTm92ZW1iZXIgMjAwMSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKQooKiBQYXJ0bHkgcG9ydGVkIGZyb20g
dGhlIENBTUwtTGlnaHQgY29kZSBhY2NvbXBhbnlpbmcgSm9obiBIYXJyaXNvbidzIGJvb2sg
ICopCigqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0gKikKCigqCmFwcCBsb2FkCiBbIlVzZWZ1bCIs
ICJTdHJlYW0iLCAiTW9zbWwiLCAiVGVybTEiLCAiVGhtMSIsICJDYW5vbjEiLCAiTWF0Y2gx
IiwKICAiU29sdmVyMSIsICJNZXRlcjEiLCAiVW5pdHMxIl07CiopCgooKgoqKQpzdHJ1Y3R1
cmUgTWVzb24xIDo+IE1lc29uMSA9CnN0cnVjdAoKb3BlbiBVc2VmdWwgVGVybTEgTWF0Y2gx
IFRobTEgQ2Fub24xIE1ldGVyMSBTb2x2ZXIxOwoKaW5maXggfC0+IDo6PiBAPiBvbyAjIzsK
CnN0cnVjdHVyZSBTID0gU3RyZWFtOwpzdHJ1Y3R1cmUgTiA9IExpdGVyYWxOZXQxOwpzdHJ1
Y3R1cmUgVSA9IFVuaXRzMTsKCnZhbCB8PD58ICAgICAgICAgID0gU3Vic3QxLnw8Pnw7CnZh
bCBvcCA6Oj4gICAgICAgID0gU3Vic3QxLjo6PjsKdmFsIGZvcm11bGFfc3Vic3QgPSBTdWJz
dDEuZm9ybXVsYV9zdWJzdDsKCigqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKikKKCogQ2hhdHRp
bmcuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAqKQooKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICopCgp2YWwgKCkgPSB0
cmFjZXMgOj0ge21vZHVsZSA9ICJNZXNvbjEiLCBhbGlnbm1lbnQgPSBLIDF9IDo6ICF0cmFj
ZXM7CgpmdW4gY2hhdCBsIG0gPSB0cmFjZSB7bW9kdWxlID0gIk1lc29uMSIsIG1lc3NhZ2Ug
PSBtLCBsZXZlbCA9IGx9OwoKKCogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqKQooKiBUdW5pbmcg
cGFyYW1ldGVycy4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICopCigqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKikKCnR5cGUgcGFyYW1l
dGVycyA9CiAge2FuY2VzdG9yX3BydW5pbmcgOiBib29sLAogICBhbmNlc3Rvcl9jdXR0aW5n
IDogYm9vbCwKICAgc3RhdGVfc2ltcGxpZnkgICA6IGJvb2wsCiAgIGNhY2hlX2N1dHRpbmcg
ICAgOiBib29sLAogICBkaXZpZGVfY29ucXVlciAgIDogYm9vbCwKICAgdW5pdF9sZW1tYWl6
aW5nICA6IGJvb2x9OwoKdmFsIGRlZmF1bHRzID0gCiAge2FuY2VzdG9yX3BydW5pbmcgPSB0
cnVlLAogICBhbmNlc3Rvcl9jdXR0aW5nID0gdHJ1ZSwKICAgc3RhdGVfc2ltcGxpZnkgICA9
IHRydWUsCiAgIGNhY2hlX2N1dHRpbmcgICAgPSB0cnVlLAogICBkaXZpZGVfY29ucXVlciAg
ID0gdHJ1ZSwKICAgdW5pdF9sZW1tYWl6aW5nICA9IHRydWV9OwoKKCogLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLSAqKQooKiBIZWxwZXIgZnVuY3Rpb25zLiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopCigqIC0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0gKikKCmZ1biBoYWx2ZXMgbiA9IGxldCB2YWwgbjEgPSBuIGRpdiAyIGluIChuMSwg
biAtIG4xKSBlbmQ7CgpmdW4gc3BsaXR0YWJsZSBbXSA9IGZhbHNlCiAgfCBzcGxpdHRhYmxl
IFtfXSA9IGZhbHNlCiAgfCBzcGxpdHRhYmxlIF8gPSB0cnVlOwoKKCoKZnVuIHByb3RlY3Qg
ciBmIHggPQogIGxldAogICAgdmFsIHYgPSAhcgogICAgdmFsIHkgPSBmIHggaGFuZGxlIGUg
YXMgRVJSX0VYTiBfID0+IChyIDo9IHY7IHJhaXNlIGUpCiAgICB2YWwgKCkgPSByIDo9IHYK
ICBpbgogICAgeQogIGVuZDsKCmZ1biB1bnRpbCBwID0KICBsZXQKICAgIG9wZW4gU3RyZWFt
CiAgICBmdW4gdSBOSUwgPSBOSUwKICAgICAgfCB1IChDT05TICh4LCB4cykpID0gQ09OUyAo
eCwgaWYgcCB4IHRoZW4gSyBOSUwgZWxzZSBmbiAoKSA9PiB1ICh4cyAoKSkpCiAgaW4KICAg
IHUKICBlbmQ7CiopCgpsb2NhbAogIHZhbCBwcmVmaXggPSAiX20iOwppbgogIHZhbCBta19t
dmFyICAgICAgPSBta19wcmVmaXggcHJlZml4IG8gaW50X3RvX3N0cmluZzsKICBmdW4gbWtf
bXZhcnMgbiBpID0gbWFwIChWYXIgbyBta19tdmFyKSAoaW50ZXJ2YWwgbiBpKTsKICB2YWwg
ZGVzdF9tdmFyICAgID0gc3RyaW5nX3RvX2ludCBvIGRlc3RfcHJlZml4IHByZWZpeDsKZW5k
OwoKZGF0YXR5cGUgJ2EgY2hvaWNlID0gQ0hPSUNFIG9mIHVuaXQgLT4gJ2EgKiAnYSBjaG9p
Y2U7CgpmdW4gZGVzdF9jaG9pY2UgKENIT0lDRSBjKSA9IGM7Cgp2YWwgbm9fY2hvaWNlID0g
KGZuICgpID0+IHJhaXNlIEVSUiAibm9fY2hvaWNlIiAiYWx3YXlzIGZhaWxzIik7CgpmdW4g
YmluYXJ5X2Nob2ljZSBmIGcgPQogIChmbiAoKSA9PgogICBsZXQgdmFsIChhLCBjKSA9IGYg
KCkgaW4gKGEsIENIT0lDRSAoYmluYXJ5X2Nob2ljZSAoZGVzdF9jaG9pY2UgYykgZykpIGVu
ZAogICBoYW5kbGUgRVJSX0VYTiBfID0+IGcgKCkpOwoKZnVuIGZpcnN0X2Nob2ljZSBbXSA9
IG5vX2Nob2ljZQogIHwgZmlyc3RfY2hvaWNlIFtmXSA9IGYKICB8IGZpcnN0X2Nob2ljZSAo
ZiA6OiBmcykgPSBiaW5hcnlfY2hvaWNlIGYgKGZpcnN0X2Nob2ljZSBmcyk7CgpmdW4gY2hv
aWNlX3N0cmVhbSBmID0KICBsZXQgdmFsIChhLCBDSE9JQ0UgYykgPSBmICgpIGluIFMuQ09O
UyAoYSwgZm4gKCkgPT4gY2hvaWNlX3N0cmVhbSBjKSBlbmQKICBoYW5kbGUgRVJSX0VYTiBf
ID0+IFMuTklMOwoKZnVuIHN3aXZlbCBtIG4gbCA9CiAgbGV0CiAgICB2YWwgKGwxLCBsJykg
PSBzcGxpdCBsIG0KICAgIHZhbCAobDIsIGwzKSA9IHNwbGl0IGwnIG4KICBpbgogICAgbDIg
QCBsMSBAIGwzCiAgZW5kOwoKZnVuIHRobV9wcm92ZXMgdGggRmFsc2UgPSBpc19jb250cmFk
aWN0aW9uIHRoCiAgfCB0aG1fcHJvdmVzIHRoIGdvYWwgPQogIGNhc2UgY2xhdXNlIHRoIG9m
IFtsaXRdID0+IGxpdCA9IGdvYWwgfCBbXSA9PiB0cnVlIHwgXyA9PiBmYWxzZTsKCmZ1biBm
aWx0ZXJfbWV0ZXIgbWV0ZXIgPQogIFMuZmlsdGVyIChmbiBhID0+IE9wdGlvbi5pc1NvbWUg
YSBvcmVsc2Ugbm90IChjaGVja19tZXRlciAoIW1ldGVyKSkpOwoKKCogLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLSAqKQooKiBDb21waWxpbmcgdGhlIHJ1bGUgc2V0IHVzZWQgYnkgbWVzb24uICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopCigqIC0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0gKikKCnR5cGUgcnVsZSA9IHthc21zIDogZm9ybXVsYSBsaXN0LCBjIDogZm9ybXVs
YSwgdGhtIDogdGhtLCBhc21uIDogaW50fTsKCmRhdGF0eXBlIHJ1bGVzID0gUnVsZXMgb2Yg
cnVsZSBOLmxpdGVyYWxfbWFwOwoKZnVuIGRlc3RfcnVsZXMgKFJ1bGVzIHIpID0gcjsKdmFs
IGVtcHR5X3J1bGVzID0gUnVsZXMgTi5lbXB0eTsKdmFsIG51bV9hbGxfcnVsZXMgPSBOLnNp
emUgbyBkZXN0X3J1bGVzOwp2YWwgbnVtX2luaXRpYWxfcnVsZXMgPSAjZiBvIE4uc2l6ZV9w
cm9maWxlIG8gZGVzdF9ydWxlczsKZnVuIG51bV9ydWxlcyByID0gbnVtX2FsbF9ydWxlcyBy
IC0gbnVtX2luaXRpYWxfcnVsZXMgcjsKdmFsIHJ1bGVzX3VuaWZ5ID0gTi51bmlmeSBvIGRl
c3RfcnVsZXM7Cgp2YWwgcHBfcnVsZXMgPQogIHBwX21hcCBkZXN0X3J1bGVzCiAgKE4ucHBf
bGl0ZXJhbF9tYXAKICAgKHBwX21hcCAoZm4ge2FzbXMsIGMsIC4uLn0gPT4gKGFzbXMsIGMp
KQogICAgKHBwX2Jpbm9wICIgPT0+IiAocHBfbGlzdCBwcF9mb3JtdWxhKSBwcF9mb3JtdWxh
KSkpOwoKZnVuIGFkZF9jb250cmFwb3NpdGl2ZXMgY2hvc2VuIHNvcyB0aCAoUnVsZXMgcnVs
cykgPQogIGxldAogICAgdmFsIHRoID0gRlJFU0hfVkFSUyB0aAogICAgdmFsIGxpdHMgPSBj
bGF1c2UgdGgKICAgIHZhbCBsaXRzJyA9IG1hcCBuZWdhdGUgbGl0cwogICAgdmFsIGJhc2Ug
PSBtYXAgKGZuIGwgPT4gKHN1YnRyYWN0IGxpdHMnIFtuZWdhdGUgbF0sIGwpKSAoY2hvc2Vu
IGxpdHMpCiAgICB2YWwgY29udHJzID0gaWYgc29zIHRoZW4gKGxpdHMnLCBGYWxzZSkgOjog
YmFzZSBlbHNlIGJhc2UKICAgIGZ1biBmIChhLCBjKSA9IGMgfC0+IHthc21zID0gYSwgYyA9
IGMsIHRobSA9IHRoLCBhc21uID0gbGVuZ3RoIGF9CiAgaW4KICAgIFJ1bGVzIChmb2xkbCAo
Zm4gKGgsIHQpID0+IE4uaW5zZXJ0IChmIGgpIHQpIHJ1bHMgY29udHJzKQogIGVuZDsKCmZ1
biB0aG1zX3RvX3J1bGVzIGNob3NlbiB0aG1zIGh5cHMgPQogIGxldCB2YWwgZiA9IHVuY3Vy
cnkgbyBhZGRfY29udHJhcG9zaXRpdmVzIGNob3NlbgogIGluIGZvbGRsIChmIHRydWUpIChm
b2xkbCAoZiBmYWxzZSkgZW1wdHlfcnVsZXMgdGhtcykgaHlwcwogIGVuZDsKCnZhbCBtZXNv
bl9ydWxlcyA9IHRobXNfdG9fcnVsZXMgSTsKCnZhbCBwcm9sb2dfcnVsZXMgPSB0aG1zX3Rv
X3J1bGVzICh3cmFwIG8gaGQpOwoKKCogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqKQooKiBDcmVh
dGluZyB0aGUgZGVsdGEgZ29hbHMuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICopCigqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKikKCnZhbCB0aG1z
X3RvX2RlbHRhX2dvYWxzID0KICBMaXN0LmNvbmNhdCBvCiAgbWFwIChmbiAoZixuKSA9PiBb
QXRvbSAoRm4gKGYsbmV3X3ZhcnMgbikpLCBOb3QgKEF0b20gKEZuIChmLG5ld192YXJzIG4p
KSldKSBvCiAgZm9sZGwgKHVuY3VycnkgdW5pb24pIFtdIG8KICBtYXAgcmVsYXRpb25zIG8K
ICBMaXN0LmNvbmNhdCBvCiAgbWFwIGNsYXVzZTsKCigqIC0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0g
KikKKCogVGhlIHN0YXRlIHBhc3NlZCBhcm91bmQgYnkgbWVzb24uICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAqKQooKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICop
Cgp0eXBlIHN0YXRlID0ge2VudiA6IHN1YnN0LCBkZXB0aCA6IGludCwgcHJvb2YgOiB0aG0g
bGlzdCwgb2Zmc2V0IDogaW50fTsKCmZ1biB1cGRhdGVfZW52IGYgKHtlbnYsIGRlcHRoLCBw
cm9vZiwgb2Zmc2V0fSA6IHN0YXRlKSA9CiAge2VudiA9IGYgZW52LCBkZXB0aCA9IGRlcHRo
LCBwcm9vZiA9IHByb29mLCBvZmZzZXQgPSBvZmZzZXR9OwoKZnVuIHVwZGF0ZV9kZXB0aCBm
ICh7ZW52LCBkZXB0aCwgcHJvb2YsIG9mZnNldH0gOiBzdGF0ZSkgPQogIHtlbnYgPSBlbnYs
IGRlcHRoID0gZiBkZXB0aCwgcHJvb2YgPSBwcm9vZiwgb2Zmc2V0ID0gb2Zmc2V0fTsKCmZ1
biB1cGRhdGVfcHJvb2YgZiAoe2VudiwgZGVwdGgsIHByb29mLCBvZmZzZXR9IDogc3RhdGUp
ID0KICB7ZW52ID0gZW52LCBkZXB0aCA9IGRlcHRoLCBwcm9vZiA9IGYgcHJvb2YsIG9mZnNl
dCA9IG9mZnNldH07CgpmdW4gdXBkYXRlX29mZnNldCBmICh7ZW52LCBkZXB0aCwgcHJvb2Ys
IG9mZnNldH0gOiBzdGF0ZSkgPQogIHtlbnYgPSBlbnYsIGRlcHRoID0gZGVwdGgsIHByb29m
ID0gcHJvb2YsIG9mZnNldCA9IGYgb2Zmc2V0fTsKCigqIC0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0g
KikKKCogQW5jZXN0b3IgcHJ1bmluZy4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAqKQooKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICop
CgpmdW4gYW5jZXN0b3JfcHJ1bmUgZmFsc2UgXyBfID0gSyBmYWxzZQogIHwgYW5jZXN0b3Jf
cHJ1bmUgdHJ1ZSBlbnYgZyA9CiAgbGV0CiAgICB2YWwgZycgPSBmb3JtdWxhX3N1YnN0IGVu
diBnCiAgICBmdW4gY2hlY2sgYScgPSBhJyA9IGcnCiAgaW4KICAgIExpc3QuZXhpc3RzIChj
aGVjayBvIGZvcm11bGFfc3Vic3QgZW52KQogIGVuZDsKCigqIC0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0gKikKKCogQW5jZXN0b3IgY3V0dGluZy4gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKQooKiAtLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
ICopCgpmdW4gYW5jZXN0b3JfY3V0IGZhbHNlIF8gXyA9IEsgZmFsc2UKICB8IGFuY2VzdG9y
X2N1dCB0cnVlIGVudiBnID0KICBsZXQKICAgIHZhbCBnJyA9IG5lZ2F0ZSAoZm9ybXVsYV9z
dWJzdCBlbnYgZykKICAgIGZ1biBjaGVjayBhJyA9IGEnID0gZycKICBpbgogICAgTGlzdC5l
eGlzdHMgKGNoZWNrIG8gZm9ybXVsYV9zdWJzdCBlbnYpCiAgZW5kOwoKKCogLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLSAqKQooKiBDYWNoZSBjdXR0aW5nLiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopCigqIC0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0gKikKCmZ1biBjYWNoZV9jb250IGMgKHtvZmZzZXQsIC4uLn0gOiBzdGF0ZSkg
PQogIGxldAogICAgZnVuIGYgdiA9IGNhc2UgdG90YWwgZGVzdF9tdmFyIHYgb2YgTk9ORSA9
PiB0cnVlIHwgU09NRSBuID0+IG4gPCBvZmZzZXQKICAgIHZhbCBsaXN0aWZ5ID0gU3Vic3Qx
LmZvbGRyIChmbiBtIGFzIHYgfC0+IF8gPT4gaWYgZiB2IHRoZW4gY29ucyBtIGVsc2UgSSkg
W10KICAgIHZhbCBtZW0gPSByZWYgW10KICAgIGZ1biBwdXJpZnkgKHMgYXMge2VudiwgZGVw
dGggPSBuLCAuLi59IDogc3RhdGUpID0KICAgICAgbGV0CiAgICAgICAgdmFsIGwgPSBsaXN0
aWZ5IGVudgogICAgICAgIGZ1biBwIChuJywgbCcpID0gbiA8PSBuJyBhbmRhbHNvIGwgPSBs
JwogICAgICBpbgogICAgICAgIGlmIExpc3QuZXhpc3RzIHAgKCFtZW0pIHRoZW4gcmFpc2Ug
RVJSICJjYWNoZV9jdXQiICJyZXBldGl0aW9uIgogICAgICAgIGVsc2UgKG1lbSA6PSAobiwg
bCkgOjogKCFtZW0pOyB1cGRhdGVfZW52IChLIChTdWJzdDEuZnJvbV9tYXBsZXRzIGwpKSBz
KQogICAgICBlbmQKICBpbgogICAgYyBvIHB1cmlmeQogIGVuZDsKCmZ1biBjYWNoZV9jdXQg
ZmFsc2UgPSBJCiAgfCBjYWNoZV9jdXQgdHJ1ZSA9CiAgZm4gZiA9PiBmbiBhID0+IGZuIGcg
PT4gZm4gYyA9PiBmbiBzID0+IGYgYSBnIChjYWNoZV9jb250IGMgcykgczsKCigqIC0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0gKikKKCogVW5pdCBjbGF1c2Ugc2hvcnRjdXQuICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKQooKiAtLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tICopCgpmdW4gZ3JhYl91bml0IHVuaXRzIChzIGFzIHtwcm9vZiA9IHRo
IDo6IF8sIC4uLn0gOiBzdGF0ZSkgPQogICh1bml0cyA6PSBVLmFkZCB0aCAoIXVuaXRzKTsg
cykKICB8IGdyYWJfdW5pdCBfIHtwcm9vZiA9IFtdLCAuLi59ID0gcmFpc2UgQlVHICJncmFi
X3VuaXQiICJubyB0aG1zIjsKCmZ1biB1c2VfdW5pdCB1bml0cyBnIGMgKHMgYXMge2Vudiwg
Li4ufSkgPQogIGxldCB2YWwgcHJvdmUgPSBwYXJ0aWFsIChFUlIgInVzZV91bml0IiAiTk9O
RSIpIChVLnByb3ZlICghdW5pdHMpKQogIGluIGMgKHVwZGF0ZV9wcm9vZiAoY29ucyAodW53
cmFwIChwcm92ZSBbZm9ybXVsYV9zdWJzdCBlbnYgZ10pKSkgcykKICBlbmQ7CgpmdW4gdW5p
dF9jdXQgZmFsc2UgXyA9IEkKICB8IHVuaXRfY3V0IHRydWUgdW5pdHMgPQogIGZuIGYgPT4g
Zm4gYSA9PiBmbiBnID0+IGZuIGMgPT4gZm4gcyA9PgogIHVzZV91bml0IHVuaXRzIGcgYyBz
IGhhbmRsZSBFUlJfRVhOIF8gPT4gZiBhIGcgKGMgbyBncmFiX3VuaXQgdW5pdHMpIHM7Cgoo
KiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tICopCigqIFRoZSBjb3JlIG9mIG1lc29uOiBhbmNlc3Rv
ciB1bmlmaWNhdGlvbiBvciBQcm9sb2ctc3R5bGUgZXh0ZW5zaW9uLiAgICAgICAgKikKKCog
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLSAqKQoKZnVuIGZyZXNoZW5fcnVsZSAoe3RobSwgYXNtcywg
YywgLi4ufSA6IHJ1bGUpIGkgPQogIGxldAogICAgdmFsIGZ2cyA9IEZWTCAoYyA6OiBhc21z
KQogICAgdmFsIGZ2biA9IGxlbmd0aCBmdnMKICAgIHZhbCBtdnMgPSBta19tdmFycyBpIGZ2
bgogICAgdmFsIHN1YiA9IFN1YnN0MS5mcm9tX21hcGxldHMgKHppcHdpdGggKGN1cnJ5IG9w
fC0+KSBmdnMgbXZzKQogIGluCiAgICAoKElOU1Qgc3ViIHRobSwgbWFwIChmb3JtdWxhX3N1
YnN0IHN1YikgYXNtcywgZm9ybXVsYV9zdWJzdCBzdWIgYyksIGkgKyBmdm4pCiAgZW5kOwoK
ZnVuIHJld2FyZCByID0gdXBkYXRlX2RlcHRoIChmbiBuID0+IG4gKyByKTsKCmZ1biBzcGVu
ZCBtIGYgYyAocyBhcyB7ZGVwdGggPSBuLCAuLi59IDogc3RhdGUpID0KICBsZXQKICAgIHZh
bCBsb3cgPSBuIC0gbQogICAgdmFsICgpID0gYXNzZXJ0ICgwIDw9IGxvdykgKEVSUiAibWVz
b24iICJpbXBvc3NpYmxlIGRpdmlkZSBhbmQgY29ucXVlciIpCiAgICBmdW4gY2hlY2sgKHMn
IGFzIHtkZXB0aCA9IG4nLCAuLi59IDogc3RhdGUpID0KICAgICAgaWYgbicgPD0gbG93IHRo
ZW4gcycgZWxzZSByYWlzZSBFUlIgIm1lc29uIiAiZGl2aWRlIGFuZCBjb25xdWVyIgogIGlu
CiAgICBmIChjIG8gY2hlY2spIHMKICBlbmQ7Cgpsb2NhbAogIGZ1biB1bmlmeSBlbnYgKHRo
LCBhc21zLCBjKSBnID0gKHRoLCBhc21zLCB1bmlmeV9saXRlcmFscyBlbnYgYyBnKQoKICBm
dW4gbWF0Y2ggZW52ICh0aCwgYXNtcywgYykgZyA9CiAgICBsZXQgdmFsIHN1YiA9IG1hdGNo
X2xpdGVyYWxzIGMgZwogICAgaW4gKElOU1Qgc3ViIHRoLCBtYXAgKGZvcm11bGFfc3Vic3Qg
c3ViKSBhc21zLCBlbnYpCiAgICBlbmQ7CmluCiAgZnVuIG5leHRfc3RhdGUgZmFsc2UgZW52
IHIgZyA9IHVuaWZ5IGVudiByIGcKICAgIHwgbmV4dF9zdGF0ZSB0cnVlIGVudiByIGcgPSBt
YXRjaCBlbnYgciBnIGhhbmRsZSBFUlJfRVhOIF8gPT4gdW5pZnkgZW52IHIgZzsKZW5kOwoK
bG9jYWwKICBmdW4gbXAgXyB0aCBbXSBwID0gRkFDVE9SIHRoIDo6IHAKICAgIHwgbXAgZW52
IHRoIChnIDo6IGdzKSAodGgxIDo6IHApID0KICAgIG1wIGVudiAoUkVTT0xWRSAoZm9ybXVs
YV9zdWJzdCBlbnYgZykgKElOU1QgZW52IHRoMSkgdGgpIGdzIHAKICAgIHwgbXAgXyBfIChf
IDo6IF8pIFtdID0gcmFpc2UgQlVHICJtb2R1c19wb25lbnMiICJmcmVzaCBvdXQgb2YgdGht
cyIKaW4KICBmdW4gbW9kdXNfcG9uZW5zIHRoIGdzIChzdGF0ZSBhcyB7ZW52LCAuLi59KSA9
CiAgICB1cGRhdGVfcHJvb2YgKG1wIGVudiAoSU5TVCBlbnYgdGgpIChyZXYgZ3MpKSBzdGF0
ZTsKZW5kOwoKZnVuIHN3aXZlbHAgbSBuID0gdXBkYXRlX3Byb29mIChzd2l2ZWwgbSBuKTsK
CmZ1biBtZXNvbl9leHBhbmQge3Bhcm0gOiBwYXJhbWV0ZXJzLCBydWxlcywgY3V0LCBtZXRl
ciwgc2F0dXJhdGVkfSA9CiAgbGV0CiAgICBmdW4gZXhwYW5kIGFuY2VzdG9ycyBnIGNvbnQg
KHN0YXRlIGFzIHtlbnYsIC4uLn0pID0KICAgICAgaWYgbm90IChjaGVja19tZXRlciAoIW1l
dGVyKSkgdGhlbgogICAgICAgIChOT05FLCBDSE9JQ0UgKGZuICgpID0+IGV4cGFuZCBhbmNl
c3RvcnMgZyBjb250IHN0YXRlKSkKICAgICAgZWxzZSBpZiBhbmNlc3Rvcl9wcnVuZSAoI2Fu
Y2VzdG9yX3BydW5pbmcgcGFybSkgZW52IGcgYW5jZXN0b3JzIHRoZW4KICAgICAgICByYWlz
ZSBFUlIgIm1lc29uIiAiYW5jZXN0b3IgcHJ1bmluZyIKICAgICAgZWxzZSBpZiBhbmNlc3Rv
cl9jdXQgKCNhbmNlc3Rvcl9jdXR0aW5nIHBhcm0pIGVudiBnIGFuY2VzdG9ycyB0aGVuCiAg
ICAgICAgKHJlY29yZF9pbmZzICghbWV0ZXIpIDE7IGNvbnQgKHVwZGF0ZV9wcm9vZiAoY29u
cyAoQVNTVU1FIGcpKSBzdGF0ZSkpCiAgICAgIGVsc2UKICAgICAgICBsZXQKICAgICAgICAo
KnZhbCAoKSA9IHByaW50ICgibWVzb246ICIgXiBmb3JtdWxhX3RvX3N0cmluZyBnIF4gIi5c
biIpKikKICAgICAgICAgIGZ1biByZWR1Y3Rpb24gYSAoKSA9CiAgICAgICAgICAgIGxldAog
ICAgICAgICAgICAgIHZhbCBzdGF0ZSA9IHVwZGF0ZV9lbnYgKEsgKHVuaWZ5X2xpdGVyYWxz
IGVudiBnIChuZWdhdGUgYSkpKSBzdGF0ZQogICAgICAgICAgICAgIHZhbCBzdGF0ZSA9IHVw
ZGF0ZV9wcm9vZiAoY29ucyAoQVNTVU1FIGcpKSBzdGF0ZQogICAgICAgICAgICBpbgogICAg
ICAgICAgICAgIChyZWNvcmRfaW5mcyAoIW1ldGVyKSAxOyBjb250IHN0YXRlKQogICAgICAg
ICAgICBlbmQKICAgICAgICAgIHZhbCBleHBhbnNpb24gPSBleHBhbmRfcnVsZSBhbmNlc3Rv
cnMgZyBjb250IHN0YXRlCiAgICAgICAgaW4KICAgICAgICAgIGZpcnN0X2Nob2ljZQogICAg
ICAgICAgKG1hcCByZWR1Y3Rpb24gYW5jZXN0b3JzIEAKICAgICAgICAgICBtYXAgZXhwYW5z
aW9uIChydWxlc191bmlmeSBydWxlcyAoZm9ybXVsYV9zdWJzdCBlbnYgZykpKSAoKQogICAg
ICAgIGVuZAogICAgYW5kIGV4cGFuZF9ydWxlIGFuY2VzdG9ycyBnIGNvbnQge2VudiwgZGVw
dGgsIHByb29mLCBvZmZzZXR9IHIgKCkgPQogICAgICBsZXQKICAgICAgICB2YWwgZGVwdGgg
PSBkZXB0aCAtICNhc21uIHIKICAgICAgICB2YWwgKCkgPQogICAgICAgICAgaWYgMCA8PSBk
ZXB0aCB0aGVuICgpCiAgICAgICAgICBlbHNlIChzYXR1cmF0ZWQgOj0gZmFsc2U7IHJhaXNl
IEVSUiAibWVzb24iICJ0b28gZGVlcCIpCiAgICAgICAgdmFsIChyLCBvZmZzZXQpID0gZnJl
c2hlbl9ydWxlIHIgb2Zmc2V0CiAgICAgICAgdmFsICh0aCwgYXNtcywgZW52KSA9IG5leHRf
c3RhdGUgKCNzdGF0ZV9zaW1wbGlmeSBwYXJtKSBlbnYgciBnCiAgICAgICAgdmFsICgpID0g
cmVjb3JkX2luZnMgKCFtZXRlcikgMQogICAgICBpbgogICAgICAgIGV4cGFuZHMgKGcgOjog
YW5jZXN0b3JzKSBhc21zIChjb250IG8gbW9kdXNfcG9uZW5zIHRoIGFzbXMpCiAgICAgICAg
e2VudiA9IGVudiwgZGVwdGggPSBkZXB0aCwgcHJvb2YgPSBwcm9vZiwgb2Zmc2V0ID0gb2Zm
c2V0fQogICAgICBlbmQKICAgIGFuZCBleHBhbmRzIGFuY2VzdG9ycyBnIGMgKHMgYXMge2Rl
cHRoID0gbiwgLi4ufSkgPQogICAgICBpZiAjZGl2aWRlX2NvbnF1ZXIgcGFybSBhbmRhbHNv
IHNwbGl0dGFibGUgZyB0aGVuCiAgICAgICAgbGV0CiAgICAgICAgICB2YWwgKGwxLCBsMikg
PSBoYWx2ZXMgKGxlbmd0aCBnKQogICAgICAgICAgdmFsIChnMSwgZzIpID0gc3BsaXQgZyBs
MQogICAgICAgICAgdmFsIChmMSwgZjIpID0gRGYgKGV4cGFuZHMgYW5jZXN0b3JzKSAoZzEs
IGcyKQogICAgICAgICAgdmFsIChuMSwgbjIpID0gaGFsdmVzIG4KICAgICAgICAgIHZhbCBz
ID0gdXBkYXRlX2RlcHRoIChLIG4xKSBzCiAgICAgICAgaW4KICAgICAgICAgIGJpbmFyeV9j
aG9pY2UKICAgICAgICAgIChmbiAoKSA9PiBmMSAoZjIgYyBvIHJld2FyZCBuMikgcykKICAg
ICAgICAgIChmbiAoKSA9PiBmMiAoc3BlbmQgKG4xICsgMSkgZjEgKGMgbyBzd2l2ZWxwIGwx
IGwyKSBvIHJld2FyZCBuMikgcykgKCkKICAgICAgICBlbmQKICAgICAgZWxzZSBmb2xkbCAo
dW5jdXJyeSAoY3V0IGV4cGFuZCBhbmNlc3RvcnMpKSBjIChyZXYgZykgcwogIGluCiAgICBj
dXQgZXhwYW5kIFtdCiAgZW5kOwoKKCogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqKQooKiBGdWxs
IG1lc29uIHByb2NlZHVyZS4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICopCigqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKikKCmZ1biBtZXNv
bl9maW5hbGx5IGcgKHtlbnYsIHByb29mLCAuLi59IDogc3RhdGUpID0KICBsZXQKICAgIHZh
bCAoKSA9IGFzc2VydCAobGVuZ3RoIHByb29mID0gbGVuZ3RoIGcpIChCVUcgIm1lc29uIiAi
YmFkIGZpbmFsIHN0YXRlIikKICAgIHZhbCBnJyA9IG1hcCAoZm9ybXVsYV9zdWJzdCBlbnYp
IGcKICAgIHZhbCBwcm9vZicgPSBtYXAgKElOU1QgZW52KSAocmV2IHByb29mKQogICgqdmFs
ICgpID0gKHByaW50ICJtZXNvbl9maW5hbGx5OiAiOyBwcmludFZhbCAoZycsIHByb29mJyk7
IHByaW50ICIuXG4iKSopCiAgICB2YWwgKCkgPQogICAgICBhc3NlcnQgKExpc3QuYWxsICh1
bmN1cnJ5IHRobV9wcm92ZXMpICh6aXAgcHJvb2YnIGcnKSkKICAgICAgKEJVRyAibWVzb24i
ICJkaWQgbm90IHByb3ZlIGdvYWwgbGlzdCIpCiAgaW4KICAgIChTT01FIChGUkVTSF9WQVJT
TCBwcm9vZicpLCBDSE9JQ0Ugbm9fY2hvaWNlKQogIGVuZDsKCmZ1biByYXdfbWVzb24gc3lz
dGVtIGdvYWxzIGRlcHRoID0KICBjaG9pY2Vfc3RyZWFtCiAgKGZuICgpID0+CiAgIGZvbGRs
ICh1bmN1cnJ5IChtZXNvbl9leHBhbmQgc3lzdGVtKSkgKG1lc29uX2ZpbmFsbHkgZ29hbHMp
IChyZXYgZ29hbHMpCiAgIHtlbnYgPSB8PD58LCBkZXB0aCA9IGRlcHRoLCBwcm9vZiA9IFtd
LCBvZmZzZXQgPSAwfSk7CgooKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICopCigqIFJhdyBzb2x2
ZXJzLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgKikKKCogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqKQoKdHlwZSAnYSBzeXN0
ZW0gPQogIHtwYXJtIDogcGFyYW1ldGVycywgcnVsZXMgOiBydWxlcywgbWV0ZXIgOiBtZXRl
ciByZWYsIHNhdHVyYXRlZCA6IGJvb2wgcmVmLAogICBjdXQgOgogICAgIChmb3JtdWxhIGxp
c3QgLT4gZm9ybXVsYSAtPiAoc3RhdGUgLT4gJ2EpIC0+IHN0YXRlIC0+ICdhKSAtPgogICAg
ICBmb3JtdWxhIGxpc3QgLT4gZm9ybXVsYSAtPiAoc3RhdGUgLT4gJ2EpIC0+IHN0YXRlIC0+
ICdhfTsKCmZ1biBta19zeXN0ZW0gcGFybSB1bml0cyBtZXRlciBydWxlcyA6ICdhIHN5c3Rl
bSA9CiAgbGV0CiAgICB2YWwge2NhY2hlX2N1dHRpbmcgPSBjYWNoaW5nLCB1bml0X2xlbW1h
aXppbmcgPSBsZW1tYWl6aW5nLCAuLi59ID0gcGFybQogIGluCiAgICB7cGFybSAgICAgID0g
cGFybSwKICAgICBydWxlcyAgICAgPSBydWxlcywKICAgICBtZXRlciAgICAgPSBtZXRlciwK
ICAgICBzYXR1cmF0ZWQgPSByZWYgZmFsc2UsCiAgICAgY3V0ICAgICAgID0gdW5pdF9jdXQg
bGVtbWFpemluZyB1bml0cyBvIGNhY2hlX2N1dCBjYWNoaW5nfQogIGVuZDsKCmZ1biBtZXNv
bicgcGFybSA9CiAgbWtfc29sdmVyX25vZGUKICB7bmFtZSA9ICJtZXNvbiIsCiAgIHNvbHZl
cl9jb24gPQogICBmbiB7c2xpY2UsIHVuaXRzLCB0aG1zLCBoeXBzfSA9PgogICBsZXQKICAg
ICB2YWwgcnVscyA9IG1lc29uX3J1bGVzIHRobXMgaHlwcwogICAgIHZhbCAoKSA9IGNoYXQg
MgogICAgICAgKCJtZXNvbi0taW5pdGlhbGl6aW5nLS0jdGhtcz0iIF4gaW50X3RvX3N0cmlu
ZyAobGVuZ3RoIHRobXMpIF4KICAgICAgICAiLS0jaHlwcz0iIF4gaW50X3RvX3N0cmluZyAo
bGVuZ3RoIGh5cHMpIF4KICAgICAgICAiLS0jcnVsZXM9IiBeIGludF90b19zdHJpbmcgKG51
bV9ydWxlcyBydWxzKSBeCiAgICAgICAgIi0tI2luaXRpYWxfcnVsZXM9IiBeIGludF90b19z
dHJpbmcgKG51bV9pbml0aWFsX3J1bGVzIHJ1bHMpIF4gIi5cbiIpCiAgICAgdmFsIHN5c3Rl
bSBhcyB7c2F0dXJhdGVkID0gYiwgLi4ufSA9IG1rX3N5c3RlbSBwYXJtIHVuaXRzIHNsaWNl
IHJ1bHMKICAgICBmdW4gZCBuID0gaWYgIWIgdGhlbiBTLk5JTCBlbHNlIChiIDo9IHRydWU7
IFMuQ09OUyAobiwgZm4gKCkgPT4gZCAobiArIDEpKSkKICAgICBmdW4gZiBxIGQgPSAoY2hh
dCAxICgiLSIgXiBpbnRfdG9fc3RyaW5nIGQpOyByYXdfbWVzb24gc3lzdGVtIHEgZCkKICAg
ICBmdW4gdW5pdF9jaGVjayBnb2FscyBOT05FID0gVS5wcm92ZSAoIXVuaXRzKSBnb2FscyB8
IHVuaXRfY2hlY2sgXyBzID0gcwogICBpbgogICAgIGZuIGdvYWxzID0+CiAgICAgZmlsdGVy
X21ldGVyIHNsaWNlCiAgICAgKFMubWFwICh1bml0X2NoZWNrIGdvYWxzKSAoUy5mbGF0dGVu
IChTLm1hcCAoZiBnb2FscykgKGQgMCkpKSkKICAgZW5kfTsKCnZhbCBtZXNvbiA9IG1lc29u
JyBkZWZhdWx0czsKCmZ1biBkZWx0YScgcGFybSA9CiAgbWtfc29sdmVyX25vZGUKICB7bmFt
ZSA9ICJkZWx0YSIsCiAgIHNvbHZlcl9jb24gPQogICBmbiB7c2xpY2UsIHVuaXRzLCB0aG1z
LCBoeXBzfSA9PgogICBsZXQKICAgICB2YWwgcnVscyA9IG1lc29uX3J1bGVzIHRobXMgaHlw
cwogICAgIHZhbCBkZ29hbHMgPSB0aG1zX3RvX2RlbHRhX2dvYWxzIGh5cHMKICAgICB2YWwg
KCkgPSBjaGF0IDIKICAgICAgICgiZGVsdGEtLWluaXRpYWxpemluZy0tI3RobXM9IiBeIGlu
dF90b19zdHJpbmcgKGxlbmd0aCB0aG1zKSBeCiAgICAgICAgIi0tI2h5cHM9IiBeIGludF90
b19zdHJpbmcgKGxlbmd0aCBoeXBzKSBeCiAgICAgICAgIi0tI3J1bGVzPSIgXiBpbnRfdG9f
c3RyaW5nIChudW1fcnVsZXMgcnVscykgXgogICAgICAgICItLSNkZWx0YV9nb2Fscz0iIF4g
aW50X3RvX3N0cmluZyAobGVuZ3RoIGRnb2FscykgXiAiLlxuIikKICAgICB2YWwgc3lzdGVt
IGFzIHtzYXR1cmF0ZWQgPSBiLCAuLi59ID0gbWtfc3lzdGVtIHBhcm0gdW5pdHMgc2xpY2Ug
cnVscwogICAgIHZhbCBkZWx0YV9nb2FscyA9IFMuZnJvbV9saXN0IGRnb2FscwogICAgIGZ1
biBkIG4gPSBpZiAhYiB0aGVuIFMuTklMIGVsc2UgKGIgOj0gdHJ1ZTsgUy5DT05TIChuLCBm
biAoKSA9PiBkIChuICsgMSkpKQogICAgIGZ1biBmIGQgZyA9IChjaGF0IDEgIisiOyBTLm1h
cCAoSyBOT05FKSAocmF3X21lc29uIHN5c3RlbSBbZ10gZCkpCiAgICAgZnVuIGcgZCA9IChj
aGF0IDEgKGludF90b19zdHJpbmcgZCk7IFMuZmxhdHRlbiAoUy5tYXAgKGYgZCkgZGVsdGFf
Z29hbHMpKQogICAgIGZ1biBoICgpID0gUy5mbGF0dGVuIChTLm1hcCBnIChkIDApKQogICAg
IGZ1biB1bml0X2NoZWNrIGdvYWxzIE5PTkUgPSBVLnByb3ZlICghdW5pdHMpIGdvYWxzIHwg
dW5pdF9jaGVjayBfIHMgPSBzCiAgIGluCiAgICAgY2FzZSBkZWx0YV9nb2FscyBvZiBTLk5J
TCA9PiBLIFMuTklMCiAgICAgfCBfID0+IGZuIGdvYWxzID0+IGZpbHRlcl9tZXRlciBzbGlj
ZSAoUy5tYXAgKHVuaXRfY2hlY2sgZ29hbHMpIChoICgpKSkKICAgZW5kfTsKCnZhbCBkZWx0
YSA9IGRlbHRhJyBkZWZhdWx0czsKCnZhbCBwcm9sb2dfZGVwdGggPSBjYXNlIEludC5tYXhJ
bnQgb2YgTk9ORSA9PiAxMDAwMDAwIHwgU09NRSBpID0+IGk7CgpmdW4gcHJvbG9nJyBwYXJt
ID0KICBta19zb2x2ZXJfbm9kZQogIHtuYW1lID0gInByb2xvZyIsCiAgIHNvbHZlcl9jb24g
PQogICBmbiB7c2xpY2UsIHVuaXRzLCB0aG1zLCBoeXBzfSA9PgogICBsZXQKICAgICB2YWwg
c3lzdGVtID0gbWtfc3lzdGVtIHBhcm0gdW5pdHMgc2xpY2UgKHByb2xvZ19ydWxlcyB0aG1z
IGh5cHMpCiAgICAgZnVuIGNvbW1lbnQgUy5OSUwgPSAiIVxuIgogICAgICAgfCBjb21tZW50
IChTLkNPTlMgKE5PTkUsIF8pKSA9ICItIgogICAgICAgfCBjb21tZW50IChTLkNPTlMgKFNP
TUUgXywgXykpID0gIiRcbiIKICAgICBmdW4gZiB0ICgpID0gbGV0IHZhbCB4ID0gdCAoKSBp
biBjaGF0IDEgKGNvbW1lbnQgeCk7IHggZW5kCiAgIGluCiAgICAgZm4gZ29hbHMgPT4gUy5t
YXBfdGhrIGYgKGZuICgpID0+IHJhd19tZXNvbiBzeXN0ZW0gZ29hbHMgcHJvbG9nX2RlcHRo
KSAoKQogICBlbmR9OwoKdmFsIHByb2xvZyA9IHByb2xvZycgZGVmYXVsdHM7CgooKiBxdWlj
ayB0ZXN0aW5nCmxvYWQgIlByb2JsZW0xIjsKb3BlbiBQcm9ibGVtMTsKdmFsIHRpbWUgPSBN
b3NtbC50aW1lOwpxdW90YXRpb24gOj0gdHJ1ZTsKaW5zdGFsbFBQIHBwX3Rlcm07Cmluc3Rh
bGxQUCBwcF9mb3JtdWxhOwppbnN0YWxsUFAgU3Vic3QxLnBwX3N1YnN0OwppbnN0YWxsUFAg
cHBfcnVsZXM7Cmluc3RhbGxQUCBwcF90aG07Cgp2YWwgbGltaXQgOiBsaW1pdCByZWYgPSBy
ZWYge2luZnMgPSBOT05FLCB0aW1lID0gU09NRSAzMC4wfTsKZnVuIHByb2xvZ19zb2x2ZSBk
IHEgPQogIHRyeQogIChzb2x2ZQogICAoaW5pdGlhbGl6ZSBwcm9sb2cge2xpbWl0ID0gIWxp
bWl0LCB0aG1zID0gZCwgaHlwcyA9IFtdfSkpIHE7CmZ1biBtZXNvbl9wcm92ZSBnID0KICB0
cnkgKHRpbWUgcmVmdXRlKQogIChpbml0aWFsaXplIChzZXRfb2Zfc3VwcG9ydCBhbGxfbmVn
YXRpdmUgbWVzb24pCiAgIHtsaW1pdCA9ICFsaW1pdCwgdGhtcyA9IFtdLCBoeXBzID0gYXhp
b21hdGl6ZSAoTm90IChnZW5lcmFsaXplIGcpKX0pOwpmdW4gZGVsdGFfcHJvdmUgZyA9CiAg
dHJ5ICh0aW1lIHJlZnV0ZSkKICAoaW5pdGlhbGl6ZSAgKHNldF9vZl9zdXBwb3J0IGFsbF9u
ZWdhdGl2ZSBkZWx0YSkKICAge2xpbWl0ID0gIWxpbWl0LCB0aG1zID0gW10sIGh5cHMgPSBl
cV9heGlvbWF0aXplIChOb3QgKGdlbmVyYWxpemUgZykpfSk7CgooKiBUZXN0aW5nIHRoZSBk
ZWx0YSBwcm92ZXIgKikKCnZhbCBwNDggPSBwYXJzZV9mb3JtdWxhIChnZXQgZXF1YWxpdHkg
IlA0OCIpOwpkZWx0YV9wcm92ZSBwNDg7CgooKiBUZXN0aW5nIHRoZSBwcm9sb2cgc29sdmVy
ICopCgp2YWwgZGF0YWJhc2UgPSAoYXhpb21hdGl6ZSBvIHBhcnNlX2Zvcm11bGEpCiAgWwoK
UVVPVEUgInN1YnNldCBuaWwgbmlsIC9cXFxuICAgKCF2IHggeS4gc3Vic2V0IHggeSA9PT4g
c3Vic2V0ICh2IDo6IHgpICh2IDo6IHkpKSAvXFxcbiAgICghdiB4IHkuIHN1YnNldCB4IHkg
PT0+IHN1YnNldCB4ICAgICAgICAodiA6OiB5KSkiXTsKCnRyeSAocHJvbG9nX3NvbHZlIGRh
dGFiYXNlKSBbcGFyc2VfZm9ybXVsYSBbUVVPVEUgInN1YnNldCB4ICgwIDo6IDEgOjogMiA6
OiBuaWwpIl1dOwooKiB0YWtlcyBhZ2VzCnRyeSAocHJvbG9nX3NvbHZlIGRhdGFiYXNlKSBb
cGFyc2VfZm9ybXVsYSBgc3Vic2V0ICgwIDo6IDEgOjogMiA6OiBuaWwpIHhgXTsKKikKCnZh
bCBkYXRhYmFzZSA9IChheGlvbWF0aXplIG8gcGFyc2VfZm9ybXVsYSkKICBbCgoKUVVPVEUg
InAgMCAzIC9cXFxuICAgKCF4LiBwIHggNCkgL1xcXG4gICAoIXguIHAgeCAzID09PiBwIChz
IChzIChzIHgpKSkgMykgL1xcXG4gICAoIXguIHAgKHMgeCkgMyA9PT4gcCB4IDMpIl07Cgp0
cnkgKHByb2xvZ19zb2x2ZSBkYXRhYmFzZSkgW3BhcnNlX2Zvcm11bGEgW1FVT1RFICJwIChz
IDApIDMiXV07CgooKiBUZXN0aW5nIHRoZSBtZXNvbiBwcm92ZXIgKikKCm1lc29uX3Byb3Zl
IFRydWU7Cgp2YWwgcDU5ID0gcGFyc2VfZm9ybXVsYSAoZ2V0IG5vbmVxdWFsaXR5ICJQNTki
KTsKdmFsIHRocyA9IGF4aW9tYXRpemUgKE5vdCAoZ2VuZXJhbGl6ZSBwNTkpKTsKdmFsIHJ1
bGVzID0gbWVzb25fcnVsZXMgW10gdGhzOwpydWxlc191bmlmeSBydWxlcyAocGFyc2VfZm9y
bXVsYSBbUVVPVEUgIn5QIDAiXSk7Cm1lc29uX3Byb3ZlIHA1OTsKCnZhbCBwMzkgPSBwYXJz
ZV9mb3JtdWxhIChnZXQgbm9uZXF1YWxpdHkgIlAzOSIpOwpjbGF1c2FsIChOb3QgKGdlbmVy
YWxpemUgcDM5KSk7CmF4aW9tYXRpemUgKE5vdCAoZ2VuZXJhbGl6ZSBwMzkpKTsKbWVzb25f
cHJvdmUgcDM5OwoKdmFsIG51bTE0ID0gcGFyc2VfZm9ybXVsYSAoZ2V0IHRwdHAgIk5VTTAx
NC0xIik7Cm1lc29uX3Byb3ZlIG51bTE0OwoKdmFsIHA1NSA9IHBhcnNlX2Zvcm11bGEgKGdl
dCBub25lcXVhbGl0eSAiUDU1Iik7Cm1lc29uX3Byb3ZlIHA1NTsKCnZhbCBwMjYgPSBwYXJz
ZV9mb3JtdWxhIChnZXQgbm9uZXF1YWxpdHkgIlAyNiIpOwpjbGF1c2FsIChOb3QgKGdlbmVy
YWxpemUgcDI2KSk7Cm1lc29uX3Byb3ZlIHAyNjsKCnZhbCBsb3MgPSBwYXJzZV9mb3JtdWxh
IChnZXQgbm9uZXF1YWxpdHkgIkxPUyIpOwptZXNvbl9wcm92ZSBsb3M7Cgp2YWwgcmVkdWNl
ZF9udW0yODQgPSBwYXJzZV9mb3JtdWxhCiAgWwoKCgoKClFVT1RFICJmaWJvbmFjY2kgMCAo
cyAwKSAvXFwgZmlib25hY2NpIChzIDApIChzIDApIC9cXFxuICAgKCF4IHkgeiB4JyB5JyB6
Jy5cbiAgICAgIH5zdW0geCAocyAocyAwKSkgeiBcXC8gfnN1bSB5IChzIDApIHogXFwvXG4g
ICAgICB+Zmlib25hY2NpIHggeCcgXFwvIH5maWJvbmFjY2kgeSB5JyBcXC8gfnN1bSB4JyB5
JyB6JyBcXC9cbiAgICAgIGZpYm9uYWNjaSB6IHonKSAvXFwgKCF4LiBzdW0geCAwIHgpIC9c
XFxuICAgKCF4IHkgei4gfnN1bSB4IHkgeiBcXC8gc3VtIHggKHMgeSkgKHMgeikpIC9cXFxu
ICAgKCF4LiB+Zmlib25hY2NpIChzIChzIChzIChzIChzIChzIChzIChzIDApKSkpKSkpKSB4
KSA9PT4gRiJdOwptZXNvbl9wcm92ZSByZWR1Y2VkX251bTI4NDsKCnZhbCBwMjkgPSBwYXJz
ZV9mb3JtdWxhIChnZXQgbm9uZXF1YWxpdHkgIlAyOSIpOwpjbGF1c2FsIChOb3QgKGdlbmVy
YWxpemUgcDI5KSk7Cm1lc29uX3Byb3ZlIHAyOTsKCnZhbCBudW0xID0gcGFyc2VfZm9ybXVs
YSAoZ2V0IHRwdHAgIk5VTTAwMS0xIik7Cm1lc29uX3Byb3ZlIG51bTE7Cgp2YWwgbW9kZWxf
Y29tcGxldGVuZXNzID0gcGFyc2VfZm9ybXVsYSAoZ2V0IG5vbmVxdWFsaXR5ICJNT0RFTF9D
T01QTEVURU5FU1MiKTsKbWVzb25fcHJvdmUgbW9kZWxfY29tcGxldGVuZXNzOwoqKQoKZW5k
CigqI2xpbmUgMC4wICJzcmMvUmVzb2x2ZXJzMS5zaWciKikKKCogPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PSAqKQooKiBBIFRZUEUgVE8gRklORCBSRVNPTFZBTlQgQ0xBVVNFUyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopCigqIENyZWF0ZWQgYnkgSm9lIEh1
cmQsIEFwcmlsIDIwMDIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgKikKKCogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqKQoKc2lnbmF0dXJlIFJlc29sdmVyczEg
PQpzaWcKCnR5cGUgJ2EgcHAgICA9ICdhIFVzZWZ1bC5wcAp0eXBlIGZvcm11bGEgPSBUZXJt
MS5mb3JtdWxhCnR5cGUgc3Vic3QgICA9IFN1YnN0MS5zdWJzdAp0eXBlIHRobSAgICAgPSBU
aG0xLnRobQoKdHlwZSByZXNvbHZlcnMKdHlwZSByZXNvbHZhbnQgPSB7bWF0ZSA6IHRobSwg
c3ViIDogc3Vic3QsIHJlcyA6IHRobX0KCnZhbCBlbXB0eV9yZXNvbHZlcnMgOiByZXNvbHZl
cnMKdmFsIGFkZF9yZXNvbHZlciAgICA6IHRobSAtPiByZXNvbHZlcnMgLT4gcmVzb2x2ZXJz
CnZhbCBmaW5kX3Jlc29sdmFudHMgOiByZXNvbHZlcnMgLT4gdGhtIC0+IHJlc29sdmFudCBs
aXN0CnZhbCByZXNvbHZlcnNfaW5mbyAgOiByZXNvbHZlcnMgLT4gc3RyaW5nCnZhbCBwcF9y
ZXNvbHZlcnMgICAgOiByZXNvbHZlcnMgcHAKCmVuZAooKiNsaW5lIDAuMCAic3JjL1Jlc29s
dmVyczEuc21sIiopCigqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKikKKCogQSBUWVBFIFRPIEZJ
TkQgUkVTT0xWQU5UIENMQVVTRVMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAqKQooKiBDcmVhdGVkIGJ5IEpvZSBIdXJkLCBBcHJpbCAyMDAyICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopCigqID09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0gKikKCigqCmFwcCBsb2FkIFsiVGhtMSIsICJNYXRjaDEiXTsKKikKCigqCiopCnN0
cnVjdHVyZSBSZXNvbHZlcnMxIDo+IFJlc29sdmVyczEgPQpzdHJ1Y3QKCmluZml4IHwtPiA6
Oj47CgpvcGVuIFVzZWZ1bCBUZXJtMSBNYXRjaDEgVGhtMSBDYW5vbjE7CgpzdHJ1Y3R1cmUg
TiA9IExpdGVyYWxOZXQxOwoKdmFsIHw8PnwgICAgICAgICAgPSBTdWJzdDEufDw+fDsKdmFs
IG9wIDo6PiAgICAgICAgPSBTdWJzdDEuOjo+Owp2YWwgZm9ybXVsYV9zdWJzdCA9IFN1YnN0
MS5mb3JtdWxhX3N1YnN0OwoKKCogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqKQooKiBDaGF0dGlu
Zy4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICopCigqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKikKCnZhbCAoKSA9IHRy
YWNlcyA6PSB7bW9kdWxlID0gIlJlc29sdmVyczEiLCBhbGlnbm1lbnQgPSBLIDF9IDo6ICF0
cmFjZXM7CgpmdW4gY2hhdCBsIG0gPSB0cmFjZSB7bW9kdWxlID0gIlJlc29sdmVyczEiLCBt
ZXNzYWdlID0gbSwgbGV2ZWwgPSBsfTsKCigqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKikKKCog
SGVscGVyIGZ1bmN0aW9ucy4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAqKQooKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICopCgpmdW4g
dHJpY2ggbCBuID0KICBjYXNlIHNwbGl0IGwgbiBvZiAoXywgW10pID0+IHJhaXNlIEVSUiAi
dHJpY2giICJubyBleGFjdCIKICB8IChsLCBoIDo6IHQpID0+IChsLCBoLCB0KTsKCigqIC0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0gKikKKCogVGhlIHR5cGUgZGVmaW5pdGlvbiB3aXRoIHNvbWUg
c2ltcGxlIG9wZXJhdGlvbnMuICAgICAgICAgICAgICAgICAgICAgICAgICAqKQooKiAtLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tICopCgp0eXBlIHJlc29sdmVycyA9IChpbnQgKiB0aG0pIE4ubGl0
ZXJhbF9tYXA7Cgp0eXBlIHJlc29sdmFudCA9IHttYXRlIDogdGhtLCBzdWIgOiBzdWJzdCwg
cmVzIDogdGhtfTsKCnZhbCBlbXB0eV9yZXNvbHZlcnMgOiByZXNvbHZlcnMgPSBOLmVtcHR5
OwoKZnVuIGFkZF9yZXNvbHZlciB0aCA9CiAgbGV0IGZ1biBhZGRfbGl0ICgobiwgbGl0KSwg
bmV0KSA9IE4uaW5zZXJ0IChsaXQgfC0+IChuLCB0aCkpIG5ldAogIGluIGZuIG5ldCA9PiBm
b2xkbCBhZGRfbGl0IG5ldCAoZW51bWVyYXRlIDAgKGNsYXVzZSB0aCkpCiAgZW5kOwoKZnVu
IHJlc29sdmVyc19pbmZvIChuZXQgOiByZXNvbHZlcnMpID0gaW50X3RvX3N0cmluZyAoTi5z
aXplIG5ldCk7Cgp2YWwgcHBfcmVzb2x2ZXJzID0gcHBfbWFwIHJlc29sdmVyc19pbmZvIHBw
X3N0cmluZzsKCnZhbCBkZXN0X3Jlc29sdmVycyA6IHJlc29sdmVycyAtPiB0aG0gbGlzdCA9
IAogIG1hcCBzbmQgbyBMaXN0LmZpbHRlciAoZXF1YWwgMCBvIGZzdCkgbyBOLnRvX2xpc3Q7
CgooKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICopCigqIEEgcmVmZXJlbmNlIGltcGxlbWVudGF0
aW9uIGZvciBkZWJ1Z2dpbmcuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKikK
KCogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqKQoKZnVuIGNhbm9uaXplIGxpdHMgPQogIGxldAog
ICAgdmFsIG52YXJzID0gZW51bWVyYXRlIDAgKEZWIChsaXN0X21rX2NvbmogbGl0cykpCiAg
ICB2YWwgbXMgPSBtYXAgKGZuIChuLCB2KSA9PiB2IHwtPiBWYXIgKCJfXyIgXiAoaW50X3Rv
X3N0cmluZyBuKSkpIG52YXJzCiAgaW4KICAgIG1hcCAoZm9ybXVsYV9zdWJzdCAoU3Vic3Qx
LmZyb21fbWFwbGV0cyBtcykpIGxpdHMKICBlbmQ7Cgpsb2NhbAogIGZ1biBzdWJzIGFjYyBb
XSA9IGFjYwogICAgfCBzdWJzIGFjYyAoKHByZXYsIFtdKSA6OiBvdGhlcnMpID0gc3VicyAo
cHJldiA6OiBhY2MpIG90aGVycwogICAgfCBzdWJzIGFjYyAoKHByZXYsIGggOjogdCkgOjog
b3RoZXJzKSA9CiAgICBzdWJzIGFjYyAoKGggOjogcHJldiwgdCkgOjogKHByZXYsIHQpIDo6
IG90aGVycyk7CmluCiAgZnVuIGFsbF9ub25lbXB0eV9zdWJzZXRzIGwgPSB0bCAoc3VicyBb
XSBbKFtdLCBsKV0pOwplbmQ7CgpmdW4gcGFpcnMgW10gPSByYWlzZSBFUlIgInBhaXJzIiAi
ZW1wdHkiCiAgfCBwYWlycyBbaF0gPSBbXQogIHwgcGFpcnMgKGggOjogKHQgYXMgaCcgOjog
XykpID0gKGgsIGgnKSA6OiBwYWlycyB0OwoKZnVuIHNhbml0eV9yZXNvbHZlX29uIHRoIHRo
JyBzIHMnID0KICBsZXQKICAgIHZhbCBzdWIgPSB1bmlmeWxfbGl0ZXJhbHMgfDw+fCAocGFp
cnMgKHMgQCBzJykpCiAgICB2YWwgbGl0ID0gZm9ybXVsYV9zdWJzdCBzdWIgKGhkIHMpCiAg
ICB2YWwgcmVzID0gRkFDVE9SIChSRVNPTFZFIGxpdCAoSU5TVCBzdWIgdGgpIChJTlNUIHN1
YiB0aCcpKQogIGluCiAgICB7bWF0ZSA9IHRoJywgc3ViID0gc3ViLCByZXMgPSByZXN9CiAg
ZW5kOwoKZnVuIHNhbml0eV9yZXNvbHZlIHRoIHRoJyA9CiAgTGlzdC5tYXBQYXJ0aWFsIEkK
ICAoY2FydHdpdGggKHRvdGFsIG8gc2FuaXR5X3Jlc29sdmVfb24gdGggdGgnKQogICAoYWxs
X25vbmVtcHR5X3N1YnNldHMgKGNsYXVzZSB0aCkpCiAgIChhbGxfbm9uZW1wdHlfc3Vic2V0
cyAobWFwIG5lZ2F0ZSAoY2xhdXNlIHRoJykpKSk7CgpmdW4gc2FuaXR5X3Jlc29sdmFudHMg
bmV0IHRoID0KICBMaXN0LmNvbmNhdCAobWFwIChzYW5pdHlfcmVzb2x2ZSB0aCkgKGRlc3Rf
cmVzb2x2ZXJzIG5ldCkpOwoKZnVuIHNhbml0eV9jaGVjayBuZXQgdGggKHJlcyA6IHJlc29s
dmFudCBsaXN0KSA9CiAgbGV0CiAgICB2YWwgKCkgPSBjaGF0IDEgIlgiCiAgICB2YWwgZiA9
IFBQLnBwX3RvX3N0cmluZyAoIUxJTkVfTEVOR1RIKSAocHBfbGlzdCAocHBfbWFwIEFYSU9N
IHBwX3RobSkpCiAgICB2YWwgZmFzdCA9IG1hcCAoY2Fub25pemUgbyBjbGF1c2UgbyAjcmVz
KSByZXMKICAgIHZhbCBzbG93ID0gbWFwIChjYW5vbml6ZSBvIGNsYXVzZSBvICNyZXMpIChz
YW5pdHlfcmVzb2x2YW50cyBuZXQgdGgpCiAgICB2YWwgKCkgPQogICAgICBpZiBzdWJzZXQg
ZmFzdCBzbG93IHRoZW4gKCkKICAgICAgZWxzZQogICAgICAgIChwcmludCAoIlxuc2FuaXR5
X2NoZWNrOiBleHRyYSBjbGF1c2VzOlxubmV0ID0gIiBeCiAgICAgICAgICAgICAgICBmICht
YXAgY2xhdXNlIChkZXN0X3Jlc29sdmVycyBuZXQpKSBeICJcbnRoID0gIiBeCiAgICAgICAg
ICAgICAgICB0aG1fdG9fc3RyaW5nIHRoIF4gIlxuZmFzdCA9ICIgXiBmIGZhc3QgXiAiXG5z
bG93ID0gIiBeIGYgc2xvdyBeCiAgICAgICAgICAgICAgICAiXG5leHRyYSA9ICIgXiBmIChz
dWJ0cmFjdCBmYXN0IHNsb3cpIF4KICAgICAgICAgICAgICAgICJcbm1pc3NpbmcgPSAiIF4g
ZiAoc3VidHJhY3Qgc2xvdyBmYXN0KSBeICJcbiIpOwogICAgICAgICByYWlzZSBCVUcgImZp
bmRfcmVzb2x2YW50cyIgImV4dHJhIGNsYXVzZXMhIikKICAgIHZhbCAoKSA9CiAgICAgIGlm
IHN1YnNldCBzbG93IGZhc3QgdGhlbiAoKQogICAgICBlbHNlCiAgICAgICAgKHByaW50ICgi
XG5zYW5pdHlfY2hlY2s6IG1pc3NpbmcgY2xhdXNlczpcbm5ldCA9ICIgXgogICAgICAgICAg
ICAgICAgZiAobWFwIGNsYXVzZSAoZGVzdF9yZXNvbHZlcnMgbmV0KSkgXiAiXG50aCA9ICIg
XgogICAgICAgICAgICAgICAgdGhtX3RvX3N0cmluZyB0aCBeICJcbmZhc3QgPSAiIF4gZiBm
YXN0IF4gIlxuc2xvdyA9ICIgXiBmIHNsb3cgXgogICAgICAgICAgICAgICAgIlxubWlzc2lu
ZyA9ICIgXiBmIChzdWJ0cmFjdCBzbG93IGZhc3QpIF4KICAgICAgICAgICAgICAgICJcbmV4
dHJhID0gIiBeIGYgKHN1YnRyYWN0IGZhc3Qgc2xvdykgXiAiXG4iKTsKICAgICAgICAgcmFp
c2UgQlVHICJmaW5kX3Jlc29sdmFudHMiICJtaXNzaW5nIGNsYXVzZXMiKQooKgogICAgdmFs
ICgpID0KICAgICAgKHByaW50ICgiXG5zYW5pdHlfY2hlY2s6IG9rOlxubmV0ID0gIiBeCiAg
ICAgICAgICAgICAgZiAobWFwIGNsYXVzZSAoZGVzdF9yZXNvbHZlcnMgbmV0KSkgXiAiXG50
aCA9ICIgXgogICAgICAgICAgICAgIHRobV90b19zdHJpbmcgdGggXiAiXG5yZXMgPSAiIF4g
ZiBmYXN0IF4gIlxuIikpCiopCiAgaW4KICAgICgpCiAgZW5kOwoKKCogLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLSAqKQooKiBUaGUgY29yZSBlbmdpbmUgZm9yIGNvbWJpbmVkIGZhY3Rvci9yZXNv
bHV0aW9uIHN0ZXBzLiAgICAgICAgICAgICAgICAgICAgICopCigqIC0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0gKikKCmZ1biByZXNvbHZlX29uIHMgciB0aCB0aCcgPQogIFNPTUUgKEZBQ1RPUiAo
UkVTT0xWRSByIChJTlNUIHMgdGgpIChJTlNUIHMgdGgnKSkpOwoKZnVuIHJlc29sdmUgYWNj
IFtdID0gYWNjCiAgfCByZXNvbHZlIGFjYyAoKGF2b2lkLCBzdWIsIHJlcywgW10pIDo6IG90
aGVycykgPQogIHJlc29sdmUKICAoaWYgbWVtIHJlcyAobWFwIChmb3JtdWxhX3N1YnN0IHN1
YikgYXZvaWQpIHRoZW4gYWNjCiAgIGVsc2UgKHJlcywgc3ViKSA6OiBhY2MpIG90aGVycwog
IHwgcmVzb2x2ZSBhY2MgKChhdm9pZCwgc3ViLCByZXMsIHggOjogeHMpIDo6IG90aGVycykg
PQogIGxldAogICAgZnVuIGYgYyA9IHJlc29sdmUgYWNjIChjICgoeCA6OiBhdm9pZCwgc3Vi
LCByZXMsIHhzKSA6OiBvdGhlcnMpKQogIGluCiAgICBjYXNlIHRvdGFsICh1bmlmeV9saXRl
cmFscyBzdWIgcmVzKSB4IG9mIE5PTkUgPT4gZiBJCiAgICB8IFNPTUUgc3ViJwogICAgICA9
PiBmIChjb25zIChhdm9pZCwgU3Vic3QxLnJlZmluZSBzdWIgc3ViJywgZm9ybXVsYV9zdWJz
dCBzdWInIHJlcywgeHMpKQogIGVuZDsKCmZ1biByZXNvbHZlX2Zyb20gKG4sIHRoKSAobics
IHRoJykgPQogIGxldAogICAgdmFsIChwcmV2LCBsaXQsIHN1Y2MpID0gdHJpY2ggKGNsYXVz
ZSB0aCkgbgogICAgdmFsIChwcmV2JywgbGl0Jywgc3VjYycpID0gdHJpY2ggKG1hcCBuZWdh
dGUgKGNsYXVzZSB0aCcpKSBuJwogICAgdmFsIHN1YiA9IHVuaWZ5X2xpdGVyYWxzIHw8Pnwg
bGl0IGxpdCcKICAgIHZhbCByZXMgPSBmb3JtdWxhX3N1YnN0IHN1YiBsaXQKICAgIGZ1biBm
IChyLCBzKSA9IE9wdGlvbi5tYXAgKHBhaXIgcykgKHJlc29sdmVfb24gcyByIHRoIHRoJykK
ICBpbgogICAgTGlzdC5tYXBQYXJ0aWFsIGYgKHJlc29sdmUgW10gWyhwcmV2IEAgcHJldics
IHN1YiwgcmVzLCBzdWNjIEAgc3VjYycpXSkKICBlbmQ7CgpmdW4gcmVzb2x2YW50cyBuZXQg
dGggPQogIGxldAogICAgZnVuIGcgKF8sIG1hdGUpICgoc3ViLCByZXMpLCBsKSA9IHttYXRl
ID0gbWF0ZSwgc3ViID0gc3ViLCByZXMgPSByZXN9IDo6IGwKICAgIGZ1biByIG0gKHUsIGFj
YykgPQogICAgICBjYXNlIHRvdGFsIChyZXNvbHZlX2Zyb20gKG0sIHRoKSkgdSBvZiBOT05F
ID0+IGFjYwogICAgICB8IFNPTUUgbCA9PiBmb2xkbCAoZyB1KSBhY2MgbAogICAgZnVuIGYg
KChtLCBsaXQpLCBhY2MpID0gZm9sZGwgKHIgbSkgYWNjIChOLnVuaWZ5IG5ldCAobmVnYXRl
IGxpdCkpCiAgICB2YWwgcmVzID0gZm9sZGwgZiBbXSAoZW51bWVyYXRlIDAgKGNsYXVzZSB0
aCkpCiAgKCp2YWwgKCkgPSBzYW5pdHlfY2hlY2sgbmV0IHRoIHJlcyopCiAgaW4KICAgIHJl
cwogIGVuZAoKZnVuIGZpbmRfcmVzb2x2YW50cyBuZXQgdGggPQogIExpc3QuZmlsdGVyIChu
b24gdGF1dG9sb2dvdXMgbyBjbGF1c2UgbyAjcmVzKSAocmVzb2x2YW50cyBuZXQgdGgpCiAg
aGFuZGxlIEVSUl9FWE4gXyA9PiByYWlzZSBCVUcgImZpbmRfcmVzb2x2YW50cyIgInNob3Vs
ZCBuZXZlciBmYWlsIjsKCigqIFF1aWNrIHRlc3RpbmcKcXVvdGF0aW9uIDo9IHRydWU7Cmlu
c3RhbGxQUCBwcF9mb3JtdWxhOwppbnN0YWxsUFAgcHBfdGVybTsKaW5zdGFsbFBQIHBwX3N1
YnN0OwppbnN0YWxsUFAgcHBfdGhtOwp2YWwgdGggPSBBWElPTSAobWFwIHBhcnNlIFtgcCgz
LCB4LCB2KWAsIGBxKHgpYCwgYHAoMywgeCwgeilgXSk7CnZhbCB0aCcgPSBBWElPTSAobWFw
IHBhcnNlIFtgfnAoMywgZih5KSwgdylgLCBgfnEoeSlgLCBgfnAoMywgZih5KSwgNClgXSk7
CnRyeSAocmVzb2x2ZV9mcm9tICgwLCB0aCkpICgwLCB0aCcpOwp0cnkgKHJlc29sdmVfZnJv
bSAoMiwgdGgpKSAoMCwgdGgnKTsKdHJ5IChyZXNvbHZlX2Zyb20gKDAsIHRoKSkgKDIsIHRo
Jyk7CnRyeSAocmVzb2x2ZV9mcm9tICgyLCB0aCkpICgyLCB0aCcpOwp2YWwgciA9IGFkZF9y
ZXNvbHZlciB0aCcgZW1wdHlfcmVzb2x2ZXJzOwptYXAgI3JlcyAoZmluZF9yZXNvbHZhbnRz
IHIgdGgpOwoqKQoKZW5kCigqI2xpbmUgMC4wICJzcmMvVGhlYXAxLnNpZyIqKQooKiA9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09ICopCigqIEEgVFlQRSBUTyBTVE9SRSBDTEFVU0VTIFdBSVRJTkcg
VE8gQkUgVVNFRCAoVEhFQVAgPSBUSEVPUkVNIEhFQVApICAgICAgICAgKikKKCogQ3JlYXRl
ZCBieSBKb2UgSHVyZCwgQXByaWwgMjAwMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAqKQooKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICopCgpzaWduYXR1cmUg
VGhlYXAxID0Kc2lnCgp0eXBlICdhIHN1YnN1bWUgPSAnYSBTdWJzdW1lMS5zdWJzdW1lCnR5
cGUgdGhtICAgICAgICA9IFRobTEudGhtCgooKiBUdW5pbmcgcGFyYW1ldGVycyAqKQp0eXBl
IHBhcmFtZXRlcnMgPSB7Zmlmb19za2V3IDogaW50LCBjbGVhbmluZ19mcmVxIDogaW50fQp2
YWwgZGVmYXVsdHMgOiBwYXJhbWV0ZXJzCgooKiBUaGVvcmVtIEhFQVBzICopCnR5cGUgdGhl
YXAKdmFsIG5ld190aGVhcCAgICAgICA6IHBhcmFtZXRlcnMgLT4gdGhlYXAKdmFsIGVtcHR5
X3RoZWFwICAgICA6IHRoZWFwICAgICAgICAgICAgICAgICAgICAgICAoKiBVc2VzIGRlZmF1
bHRzICopCnZhbCB0aGVhcF9zaXplICAgICAgOiB0aGVhcCAtPiBpbnQKdmFsIHRoZWFwX2Fk
ZCAgICAgICA6IHRobSAtPiB0aGVhcCAtPiB0aGVhcAp2YWwgdGhlYXBfYWRkbCAgICAgIDog
dGhtIGxpc3QgLT4gdGhlYXAgLT4gdGhlYXAKdmFsIHRoZWFwX3JlbW92ZSAgICA6IHRoZWFw
IC0+ICh0aG0gKiB0aGVhcCkgb3B0aW9uCnZhbCB0aGVhcF9zdWJzdW1lcnMgOiB0aGVhcCAt
PiB0aG0gc3Vic3VtZQp2YWwgdGhlYXBfaW5mbyAgICAgIDogdGhlYXAgLT4gc3RyaW5nICAg
KCogT3V0cHV0cyAiKHNpemUsd2VpZ2h0KSIgKikKCmVuZAooKiNsaW5lIDAuMCAic3JjL1Ro
ZWFwMS5zbWwiKikKKCogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqKQooKiBBIFRZUEUgVE8gU1RP
UkUgQ0xBVVNFUyBXQUlUSU5HIFRPIEJFIFVTRUQgKFRIRUFQID0gVEhFT1JFTSBIRUFQKSAg
ICAgICAgICopCigqIENyZWF0ZWQgYnkgSm9lIEh1cmQsIEFwcmlsIDIwMDIgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKikKKCogPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PSAqKQoKKCoKYXBwIGxvYWQgWyJIZWFwIiwgIlF1ZXVlIiwgIlRobTEiLCAiU3Vic3Vt
ZXJzMSJdOwoqKQoKKCoKKikKc3RydWN0dXJlIFRoZWFwMSA6PiBUaGVhcDEgPQpzdHJ1Y3QK
CmluZml4IHwtPjsKCm9wZW4gVXNlZnVsIFRlcm0xIFRobTE7CgpzdHJ1Y3R1cmUgUSA9IFF1
ZXVlOwpzdHJ1Y3R1cmUgSCA9IEhlYXA7CnN0cnVjdHVyZSBTID0gU3Vic3VtZTE7Cgp0eXBl
ICdhIHF1ZXVlICAgPSAnYSBRLnF1ZXVlOwp0eXBlICdhIGhlYXAgICAgPSAnYSBILmhlYXA7
CnR5cGUgJ2Egc3Vic3VtZSA9ICdhIFMuc3Vic3VtZTsKCigqIC0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0gKikKKCogVHVuaW5nIHBhcmFtZXRlcnMuICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKQooKiAtLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
ICopCgp0eXBlIHBhcmFtZXRlcnMgPSB7Zmlmb19za2V3IDogaW50LCBjbGVhbmluZ19mcmVx
IDogaW50fQoKdmFsIGRlZmF1bHRzID0ge2ZpZm9fc2tldyA9IDMsIGNsZWFuaW5nX2ZyZXEg
PSAxMDAwfTsKCigqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKikKKCogVGhlb3JlbSBIRUFQcy4g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAqKQooKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICopCgp0eXBlIHRoZWFwID0KICAoKGlu
dCAqIGludCkgKiAoaW50ICogaW50KSkgKiB0aG0gcXVldWUgKiAoaW50ICogKGludCAqIHRo
bSkgaGVhcCkgKgogIHRobSBzdWJzdW1lOwoKbG9jYWwgZnVuIG9yZGVyICgobSwgXyA6IHRo
bSksIChuLCBfIDogdGhtKSkgPSBJbnQuY29tcGFyZSAobSwgbik7CmluIHZhbCBlbXB0eV90
aGVhcF9oZWFwID0gSC5lbXB0eSBvcmRlcjsKZW5kOwoKZnVuIG5ld190aGVhcCB7Zmlmb19z
a2V3LCBjbGVhbmluZ19mcmVxfSA9CiAgKChEIGNsZWFuaW5nX2ZyZXEsIEQgZmlmb19za2V3
KSwgUS5lbXB0eSwgKDAsIGVtcHR5X3RoZWFwX2hlYXApLCBTLmVtcHR5KTsKCnZhbCBlbXB0
eV90aGVhcDogdGhlYXAgPSBuZXdfdGhlYXAgZGVmYXVsdHM7CgpmdW4gdGhlYXBfc2l6ZSAo
XywgXywgKF8sIGgpLCBfKSA9IEguc2l6ZSBoOwpmdW4gdGhlYXBfd2VpZ2h0IChfLCBfLCAo
dywgXyksIF8pID0gdzsKCigqCmZ1biBjbGVhbl90aGVhcCAoKChfLCBDKSwgRiksIFEsIChf
LCBIKSwgXykgPQogIGxldAogICAgdmFsIGhhc2ggPSBQb2x5aGFzaC5ta1BvbHlUYWJsZSAo
MTAwMDAsIEVSUiAiY2xlYXBfdGhlYXAiICJub3QgZm91bmQiKQogICAgZnVuIG1hcmsgKHYs
IHRoKSA9IFBvbHloYXNoLmluc2VydCBoYXNoIChjbGF1c2UgdGgsIHYpCiAgICB2YWwgKCkg
PSBILmFwcCBtYXJrIEgKICAgIGZ1biBhZGQgKHYsIHRoKSAocSwgdywgaCwgbCkgPQogICAg
ICAoUS5hZGQgdGggcSwgdyArIHYsIEguYWRkICh2LCB0aCkgaCwgUy5hZGQgKGNsYXVzZSB0
aCB8LT4gdGgpIGwpCiAgICBmdW4gY2hlY2sgcSBuID0KICAgICAgaWYgUS5pc19lbXB0eSBx
IHRoZW4gbgogICAgICBlbHNlCiAgICAgICAgbGV0CiAgICAgICAgICB2YWwgdGggPSBRLmhk
IHEKICAgICAgICBpbgogICAgICAgICAgY2hlY2sgKFEudGwgcSkKICAgICAgICAgIChjYXNl
IHRvdGFsIChQb2x5aGFzaC5yZW1vdmUgaGFzaCkgKGNsYXVzZSB0aCkgb2YgTk9ORSA9PiBu
CiAgICAgICAgICAgfCBTT01FIHYgPT4gYWRkICh2LCB0aCkgbikKICAgICAgICBlbmQKICBp
bgogICAgKGZuIChxLCB3LCBoLCBsKSA9PiAoKChDLCBDKSwgRiksIHEsICh3LCBoKSwgbCkp
CiAgICAoY2hlY2sgUSAoUS5lbXB0eSwgMCwgZW1wdHlfdGhlYXBfaGVhcCwgUy5lbXB0eSkp
CiAgZW5kOwoqKQoKKCpmdW4gdGhlYXBfYWRkIHRoIChoIGFzICgoKDAsXyksIF8pLCBfLCBf
LCBfKSkgPSB0aGVhcF9hZGQgdGggKGNsZWFuX3RoZWFwIGgpKikKZnVuIHRoZWFwX2FkZCB0
aCAoKChjLCBjbSksIGYpLCBxLCAodywgaCksIGwpID0KICBsZXQKICAgIHZhbCBjbCA9IGNs
YXVzZSB0aAogICAgdmFsIHYgPSBmb3JtdWxhX3NpemUgKGxpc3RfbWtfZGlzaiBjbCkKICAg
IHZhbCBoJyA9IEguYWRkICh2LCB0aCkgaAogIGluCiAgICAoKChjIC0gMSwgY20pLCBmKSwg
US5hZGQgdGggcSwgKHcgKyB2LCBoJyksIFMuYWRkIChjbGF1c2UgdGggfC0+IHRoKSBsKQog
IGVuZDsKCmZ1biB0aGVhcF9hZGRsIHRocyBoID0gZm9sZGwgKHVuY3VycnkgdGhlYXBfYWRk
KSBoIHRoczsKCmZ1biB0aGVhcF9yZW1vdmUgKChjLCAoMCwgZikpLCBxLCBoLCBsKSA9CiAg
aWYgUS5pc19lbXB0eSBxIHRoZW4gTk9ORQogIGVsc2UgU09NRSAoUS5oZCBxLCAoKGMsIChm
LCBmKSksIFEudGwgcSwgaCwgbCkpCiAgfCB0aGVhcF9yZW1vdmUgKChjLCAobiwgZikpLCBx
LCAodywgaCksIGwpID0KICBpZiBILmlzX2VtcHR5IGggdGhlbiBOT05FCiAgZWxzZQogICAg
bGV0IHZhbCAoKHYsIHgpLCBoKSA9IEgucmVtb3ZlIGgKICAgIGluIFNPTUUgKHgsICgoYywg
KG4gLSAxLCBmKSksIHEsICh3IC0gdiwgaCksIGwpKQogICAgZW5kOwoKZnVuIHRoZWFwX3N1
YnN1bWVycyAoXywgXywgXywgbCkgPSBsOwoKZnVuIHRoZWFwX2luZm8gdGhwID0KICAiKCIg
XiBpbnRfdG9fc3RyaW5nICh0aGVhcF9zaXplIHRocCkgXiAiLCIgXgogIGludF90b19zdHJp
bmcgKHRoZWFwX3dlaWdodCB0aHApIF4gIikiOwoKZW5kCigqI2xpbmUgMC4wICJzcmMvUmVz
b2x1dGlvbjEuc2lnIiopCigqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKikKKCogVEhFIFJFU09M
VVRJT04gUFJPT0YgUFJPQ0VEVVJFICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAqKQooKiBDcmVhdGVkIGJ5IEpvZSBIdXJkLCBOb3ZlbWJlciAyMDAxICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopCigqID09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0gKikKCnNpZ25hdHVyZSBSZXNvbHV0aW9uMSA9CnNpZwoKdHlwZSBzb2x2ZXJf
bm9kZSA9IFNvbHZlcjEuc29sdmVyX25vZGUKCigqIFR1bmluZyBwYXJhbWV0ZXJzICopCnR5
cGUgcGFyYW1ldGVycyA9CiAge3N1YnN1bXB0aW9uX2NoZWNraW5nIDogaW50LCAgICAgICAg
ICAgICAgICAgICAgKCogaW4gdGhlIHJhbmdlIDAuLjMgKikKICAgcG9zaXRpdmVfcmVmaW5l
bWVudCAgOiBib29sLAogICB0aGVhcF9wYXJtICAgICAgICAgICA6IFRoZWFwMS5wYXJhbWV0
ZXJzfQoKdmFsIGRlZmF1bHRzIDogcGFyYW1ldGVycwoKKCogUmVzb2x1dGlvbiAqKQp2YWwg
cmVzb2x1dGlvbicgOiBwYXJhbWV0ZXJzIC0+IHNvbHZlcl9ub2RlCnZhbCByZXNvbHV0aW9u
ICA6IHNvbHZlcl9ub2RlICAgICAgICAgICAgICAgICAgICAgKCogVXNlcyBkZWZhdWx0cyAq
KQoKZW5kCigqI2xpbmUgMC4wICJzcmMvUmVzb2x1dGlvbjEuc21sIiopCigqID09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0gKikKKCogVEhFIFJFU09MVVRJT04gUFJPT0YgUFJPQ0VEVVJFICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKQooKiBDcmVhdGVkIGJ5
IEpvZSBIdXJkLCBOb3ZlbWJlciAyMDAxICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICopCigqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKikKCigqCmFwcCBsb2FkCiBb
IlVzZWZ1bCIsICJNb3NtbCIsICJUZXJtMSIsICJUaG0xIiwgIkNhbm9uMSIsICJUaGVhcDEi
LAogICJTdHJlYW0iLCAiU29sdmVyMSIsICJNZXRlcjEiLCAiVW5pdHMxIiwgIlJlc29sdmVy
czEiXTsKKikKCigqCiopCnN0cnVjdHVyZSBSZXNvbHV0aW9uMSA6PiBSZXNvbHV0aW9uMSA9
CnN0cnVjdAoKb3BlbiBVc2VmdWwgVGVybTEgVGhtMSBDYW5vbjEgTWV0ZXIxIFNvbHZlcjEg
UmVzb2x2ZXJzMSBUaGVhcDE7CgppbmZpeCB8LT4gOjo+IEA+IG9vICMjIDo6KiA6OkA7Cgpz
dHJ1Y3R1cmUgUyA9IFN0cmVhbTsKc3RydWN0dXJlIFUgPSBVbml0czE7Cgp0eXBlICdhIHN1
YnN1bWUgPSAnYSBTdWJzdW1lMS5zdWJzdW1lOwoKKCogLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAq
KQooKiBDaGF0dGluZy4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICopCigqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKikK
CnZhbCAoKSA9IHRyYWNlcyA6PSB7bW9kdWxlID0gIlJlc29sdXRpb24xIiwgYWxpZ25tZW50
ID0gSyAxfSA6OiAhdHJhY2VzOwoKZnVuIGNoYXQgbCBtID0gdHJhY2Uge21vZHVsZSA9ICJS
ZXNvbHV0aW9uMSIsIG1lc3NhZ2UgPSBtLCBsZXZlbCA9IGx9OwoKKCogLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLSAqKQooKiBUdW5pbmcgcGFyYW1ldGVycy4gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopCigqIC0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0gKikKCnR5cGUgcGFyYW1ldGVycyA9CiAge3N1YnN1bXB0aW9uX2NoZWNraW5nIDog
aW50LCAgICAgICAgICAoKiBpbiB0aGUgcmFuZ2UgMC4uMyAqKQogICBwb3NpdGl2ZV9yZWZp
bmVtZW50ICA6IGJvb2wsCiAgIHRoZWFwX3Bhcm0gICAgICAgICAgIDogVGhlYXAxLnBhcmFt
ZXRlcnN9Cgp2YWwgZGVmYXVsdHMgPQogIHtzdWJzdW1wdGlvbl9jaGVja2luZyA9IDEsCiAg
IHBvc2l0aXZlX3JlZmluZW1lbnQgID0gdHJ1ZSwKICAgdGhlYXBfcGFybSAgICAgICAgICAg
PSBUaGVhcDEuZGVmYXVsdHN9OwoKKCogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqKQooKiBDbGF1
c2Ugc3RvcmVzLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICopCigqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKikKCnR5cGUgc3Rv
cmUgPSB0aG0gc3Vic3VtZSAqIHJlc29sdmVyczsKCnZhbCBlbXB0eV9zdG9yZSA6IHN0b3Jl
ID0gKFN1YnN1bWUxLmVtcHR5LCBlbXB0eV9yZXNvbHZlcnMpOwoKZnVuIHN0b3JlX2FkZCB0
aCAocywgcikgPQogIChTdWJzdW1lMS5hZGQgKGNsYXVzZSB0aCB8LT4gdGgpIHMsIGFkZF9y
ZXNvbHZlciB0aCByKTsKCmZ1biBzdG9yZV9yZXNvbHZhbnRzICgoXywgcikgOiBzdG9yZSkg
PSBmaW5kX3Jlc29sdmFudHMgcjsKCmZ1biBzdG9yZV9zdWJzdW1lZCAoKHMsIF8pIDogc3Rv
cmUpID0gU3Vic3VtZTEuc3Vic3VtZWQgcyBvIGNsYXVzZTsKCmZ1biBzdG9yZV9pbmZvIChz
LCByKSA9ICIoIiBeIFN1YnN1bWUxLmluZm8gcyBeICIsIiBeIHJlc29sdmVyc19pbmZvIHIg
XiAiKSI7CgooKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICopCigqIFBvc2l0aXZlIHJlZmluZW1l
bnQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgKikKKCogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqKQoKbG9jYWwKICB2YWwgcG9zX3RoID0g
TGlzdC5hbGwgcG9zaXRpdmUgbyBjbGF1c2U7CgogIGZ1biBjaGVjayB0cnVlID0gSyB0cnVl
CiAgICB8IGNoZWNrIGZhbHNlID0gZm4gKHttYXRlLCAuLi59IDogcmVzb2x2YW50KSA9PiBw
b3NfdGggbWF0ZTsKaW4KICBmdW4gcG9zaXRpdmVfY2hlY2sgZmFsc2UgPSBLIChLIHRydWUp
CiAgICB8IHBvc2l0aXZlX2NoZWNrIHRydWUgPSBjaGVjayBvIHBvc190aDsKZW5kOwoKKCog
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLSAqKQooKiBGdWxsIHJlc29sdXRpb24gcHJvY2VkdXJlLiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopCigqIC0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0gKikKCmV4Y2VwdGlvbiBDb250cmFkaWN0aW9uIG9mIHRobTsK
CmZ1biB1bml0X3N0cmVuZ3RoZW4gdW5pdHMgdGggPQogIChjYXNlIGZpcnN0IChVLnN1YnN1
bWVzIHVuaXRzKSAoY2xhdXNlIHRoKSBvZiBTT01FIHRoID0+IHRoCiAgIHwgTk9ORSA9PiBV
LmRlbW9kIHVuaXRzIHRoKTsKCmZ1biBzdWJzdW1wdGlvbl9jaGVjayBzdG9yZSB0aCA9CiAg
Y2FzZSBzdG9yZV9zdWJzdW1lZCBzdG9yZSB0aCBvZiBbXSA9PiBTT01FIHRoIHwgXyA6OiBf
ID0+IE5PTkU7CgpmdW4gdGhlYXBfc3RyZW5ndGhlbiB0aGVhcCB0aCA9CiAgKGNhc2UgU3Vi
c3VtZTEuc3RyaWN0bHlfc3Vic3VtZWQgKHRoZWFwX3N1YnN1bWVycyB0aGVhcCkgKGNsYXVz
ZSB0aCkgb2YgW10KICAgICA9PiB0aAogICB8IChfLCB0aCkgOjogXyA9PiB0aCk7CgpmdW4g
cmVzb2x2ZSAocGFybSA6IHBhcmFtZXRlcnMpID0KICBsZXQKICAgIGZ1biBmZWVkYmFjayBr
IHIgPQogICAgICBpbnRfdG9fc3RyaW5nIGsgXiAoaWYgayA9IHIgdGhlbiAiIiBlbHNlICIv
IiBeIGludF90b19zdHJpbmcgcikKCiAgICBmdW4gTCBuID0gbiA8PSAjc3Vic3VtcHRpb25f
Y2hlY2tpbmcgcGFybQogICAgdmFsIHBvc19maWx0ID0gT3B0aW9uLmZpbHRlciBvIHBvc2l0
aXZlX2NoZWNrICgjcG9zaXRpdmVfcmVmaW5lbWVudCBwYXJtKQoKICAgIGZ1biBmdGVzdCBi
IGYgPSBpZiBiIHRoZW4gT3B0aW9uLm1hcFBhcnRpYWwgKHN1YnN1bXB0aW9uX2NoZWNrIGYp
IGVsc2UgSQogICAgZnVuIHN0ZXN0IGIgcyA9IGlmIGIgdGhlbiBzdWJzdW1wdGlvbl9jaGVj
ayBzIGVsc2UgU09NRQogICAgZnVuIHdwYXNzIGIgdyA9IGlmIGIgdGhlbiB0aGVhcF9zdHJl
bmd0aGVuIHcgZWxzZSBJCiAgICBmdW4gdXBhc3MgdSA9IHVuaXRfc3RyZW5ndGhlbiB1Cgog
ICAgZnVuIG5leHRfY2FuZGlkYXRlIHUgZiBzIHcgPQogICAgICBjYXNlIHRoZWFwX3JlbW92
ZSB3IG9mIE5PTkUgPT4gTk9ORQogICAgICB8IFNPTUUgKHRoLCB3KSA9PgogICAgICAgIChj
YXNlIChmdGVzdCAoTCAxKSBmIG8gc3Rlc3QgKEwgMSkgcyBvIHdwYXNzIChMIDIpIHcgbyB1
cGFzcyB1KSB0aCBvZgogICAgICAgICAgIE5PTkUgPT4gbmV4dF9jYW5kaWRhdGUgdSBmIHMg
dwogICAgICAgICB8IFNPTUUgdGggPT4gU09NRSAodGgsIHcpKQoKICAgIGZ1biByZXRlbnRp
b25fdGVzdCB1IGYgcyB0aCA9CiAgICAgIExpc3QubWFwUGFydGlhbAogICAgICAoT3B0aW9u
Lm1hcFBhcnRpYWwgKGZ0ZXN0IChMIDMpIGYgbyBzdGVzdCAoTCAzKSBzIG8gdXBhc3MgdSBv
ICNyZXMpIG8KICAgICAgIHBvc19maWx0IHRoKQoKICAgIGZ1biBjaGVja19hZGQgdGggPQog
ICAgICBpZiBpc19jb250cmFkaWN0aW9uIHRoIHRoZW4gcmFpc2UgQ29udHJhZGljdGlvbiB0
aCBlbHNlIFUuYWRkIHRoCiAgaW4KICAgIGZuIHJlY29yZCA9PiBmbiAoZmFjdHMsIHVzZWQs
IHVudXNlZCkgPT4gZm4gdW5pdHMgPT4KICAgIChjYXNlIG5leHRfY2FuZGlkYXRlIHVuaXRz
IGZhY3RzIHVzZWQgdW51c2VkIG9mIE5PTkUgPT4gTk9ORQogICAgIHwgU09NRSAodGgsIHVu
dXNlZCkgPT4KICAgICAgIGxldAogICAgICAgICB2YWwgdW5pdHMgPSBjaGVja19hZGQgdGgg
dW5pdHMKICAgICAgICAgdmFsIHVzZWQgPSBzdG9yZV9hZGQgdGggdXNlZAogICAgICAgICB2
YWwgdGggPSBGUkVTSF9WQVJTIHRoCiAgICAgICAgIHZhbCByZXNvbHZhbnRzID0KICAgICAg
ICAgICBzdG9yZV9yZXNvbHZhbnRzIGZhY3RzIHRoIEAgc3RvcmVfcmVzb2x2YW50cyB1c2Vk
IHRoCiAgICAgICAgIHZhbCAoKSA9IHJlY29yZCAobGVuZ3RoIHJlc29sdmFudHMpCiAgICAg
ICAgIHZhbCB1bml0cyA9IGZvbGRsICh1bmN1cnJ5IGNoZWNrX2FkZCkgdW5pdHMgKG1hcCAj
cmVzIHJlc29sdmFudHMpCiAgICAgICAgIHZhbCBrZWVwID0gcmV0ZW50aW9uX3Rlc3QgdW5p
dHMgZmFjdHMgdXNlZCB0aCByZXNvbHZhbnRzCiAgICAgICAgIHZhbCAoKSA9IGNoYXQgMiAo
ZmVlZGJhY2sgKGxlbmd0aCBrZWVwKSAobGVuZ3RoIHJlc29sdmFudHMpKQogICAgICAgICB2
YWwgdW51c2VkID0gdGhlYXBfYWRkbCBrZWVwIHVudXNlZAogICAgICAgaW4KICAgICAgICAg
U09NRSAoKGZhY3RzLCB1c2VkLCB1bnVzZWQpLCB1bml0cykKICAgICAgIGVuZCkKICAgICAg
IGhhbmRsZSBFUlJfRVhOIF8gPT4gcmFpc2UgQlVHICJyZXNvbHZlIiAic2hvdWxkbid0IGZh
aWwiCiAgZW5kOwoKZnVuIHJhd19yZXNvbHV0aW9uIHBhcm0gPQogIG1rX3NvbHZlcl9ub2Rl
CiAge25hbWUgPSAicmVzb2x1dGlvbiIsCiAgIHNvbHZlcl9jb24gPQogICBmbiB7c2xpY2Us
IHVuaXRzLCB0aG1zLCBoeXBzfSA9PgogICBsZXQKICAgICB2YWwgcmVzb2x2ZScgPSByZXNv
bHZlIHBhcm0KICAgICBmdW4gcnVuIHdyYXAgc3RhdGUgPQogICAgICAgaWYgbm90IChjaGVj
a19tZXRlciAoIXNsaWNlKSkgdGhlbiBTLkNPTlMgKE5PTkUsIHdyYXAgc3RhdGUpCiAgICAg
ICBlbHNlCiAgICAgICAgIChjaGF0IDEgIisiOwogICAgICAgICAgY2FzZSByZXNvbHZlJyAo
cmVjb3JkX2luZnMgKCFzbGljZSkpIHN0YXRlICghdW5pdHMpIG9mIE5PTkUgPT4gUy5OSUwK
ICAgICAgICAgIHwgU09NRSAoc3RhdGUsIHVuaXRzJykgPT4gKHVuaXRzIDo9IHVuaXRzJzsg
cnVuIHdyYXAgc3RhdGUpKQogICAgIGZ1biB3cmFwcGVyIGcgKGEgYXMgKF8sIF8sIHcpKSAo
KSA9CiAgICAgICAoY2hhdCAyICh0aGVhcF9pbmZvIHcpOyBydW4gKHdyYXBwZXIgZykgYSkK
ICAgICAgIGhhbmRsZSBDb250cmFkaWN0aW9uIHRoID0+IGNvbnRyYWRpY3Rpb25fc29sdmVy
IHRoIGcKICAgICB2YWwgZmFjdHMgPSBmb2xkbCAoZm4gKHQsIGwpID0+IHN0b3JlX2FkZCB0
IGwpIGVtcHR5X3N0b3JlIHRobXMKICAgICB2YWwgdXNlZCA9IGVtcHR5X3N0b3JlCiAgICAg
dmFsIHVudXNlZCA9IHRoZWFwX2FkZGwgaHlwcyAobmV3X3RoZWFwICgjdGhlYXBfcGFybSBw
YXJtKSkKICAgICB2YWwgKCkgPSBjaGF0IDIKICAgICAgICgicmVzb2x1dGlvbi0taW5pdGlh
bGl6aW5nLS0jdGhtcz0iIF4gaW50X3RvX3N0cmluZyAobGVuZ3RoIHRobXMpIF4KICAgICAg
ICAiLS0jaHlwcz0iIF4gaW50X3RvX3N0cmluZyAobGVuZ3RoIGh5cHMpIF4KICAgICAgICAi
LS1mYWN0cz0iIF4gc3RvcmVfaW5mbyBmYWN0cyBeCiAgICAgICAgIi0tdW51c2VkPSIgXiB0
aGVhcF9pbmZvIHVudXNlZCBeICIuXG4iKQogICBpbgogICAgIGZuIGdvYWxzID0+IHdyYXBw
ZXIgZ29hbHMgKGZhY3RzLCB1c2VkLCB1bnVzZWQpICgpCiAgIGVuZH07CgpmdW4gcmVzb2x1
dGlvbicgcGFybSA9CiAgKGlmICNwb3NpdGl2ZV9yZWZpbmVtZW50IHBhcm0gdGhlbiBzZXRf
b2Zfc3VwcG9ydCBldmVyeXRoaW5nIGVsc2UgSSkKICAocmF3X3Jlc29sdXRpb24gcGFybSk7
Cgp2YWwgcmVzb2x1dGlvbiA9IHJlc29sdXRpb24nIGRlZmF1bHRzOwoKKCogcXVpY2sgdGVz
dGluZwpsb2FkICJQcm9ibGVtMSI7Cm9wZW4gUHJvYmxlbTE7CnZhbCB0aW1lID0gTW9zbWwu
dGltZTsKcXVvdGF0aW9uIDo9IHRydWU7Cmluc3RhbGxQUCBwcF90ZXJtOwppbnN0YWxsUFAg
cHBfZm9ybXVsYTsKaW5zdGFsbFBQIFN1YnN0MS5wcF9zdWJzdDsKaW5zdGFsbFBQIHBwX3Ro
bTsKCigqIFRlc3RpbmcgdGhlIHJlc29sdXRpb24gcHJvdmVyICopCgp2YWwgbGltaXQgOiBs
aW1pdCByZWYgPSByZWYge2luZnMgPSBOT05FLCB0aW1lID0gU09NRSAzMC4wfTsKZnVuIHJl
c29sdXRpb25fcHJvdmUgZyA9CiAgdHJ5ICh0aW1lIHJlZnV0ZSkKICAoaW5pdGlhbGl6ZSAo
c2V0X29mX3N1cHBvcnQgYWxsX25lZ2F0aXZlIHJlc29sdXRpb24pCiAgIHtsaW1pdCA9ICFs
aW1pdCwgdGhtcyA9IFtdLCBoeXBzID0gYXhpb21hdGl6ZSAoTm90IChnZW5lcmFsaXplIGcp
KX0pOwoKYXhpb21hdGl6ZSAoTm90IChnZW5lcmFsaXplIFRydWUpKTsKcmVzb2x1dGlvbl9w
cm92ZSBUcnVlOwoKdmFsIHByb3AxMyA9IHBhcnNlX2Zvcm11bGEgKGdldCBub25lcXVhbGl0
eSAiUFJPUF8xMyIpOwpheGlvbWF0aXplIChOb3QgKGdlbmVyYWxpemUgcHJvcDEzKSk7CnJl
c29sdXRpb25fcHJvdmUgcHJvcDEzOwoKdmFsIHAzMyA9IHBhcnNlX2Zvcm11bGEgKGdldCBu
b25lcXVhbGl0eSAiUDMzIik7CmF4aW9tYXRpemUgKE5vdCAoZ2VuZXJhbGl6ZSBwMzMpKTsK
cmVzb2x1dGlvbl9wcm92ZSBwMzM7Cgp2YWwgcDU5ID0gcGFyc2VfZm9ybXVsYSAoZ2V0IG5v
bmVxdWFsaXR5ICJQNTkiKTsKdmFsIHRocyA9IGF4aW9tYXRpemUgKE5vdCAoZ2VuZXJhbGl6
ZSBwNTkpKTsKcmVzb2x1dGlvbl9wcm92ZSBwNTk7Cgp2YWwgcDM5ID0gcGFyc2VfZm9ybXVs
YSAoZ2V0IG5vbmVxdWFsaXR5ICJQMzkiKTsKY2xhdXNhbCAoTm90IChnZW5lcmFsaXplIHAz
OSkpOwpheGlvbWF0aXplIChOb3QgKGdlbmVyYWxpemUgcDM5KSk7CnJlc29sdXRpb25fcHJv
dmUgcDM5OwoKdmFsIG51bTE0ID0gcGFyc2VfZm9ybXVsYSAoZ2V0IHRwdHAgIk5VTTAxNC0x
Iik7CnJlc29sdXRpb25fcHJvdmUgbnVtMTQ7Cgp2YWwgcDU1ID0gcGFyc2VfZm9ybXVsYSAo
Z2V0IG5vbmVxdWFsaXR5ICJQNTUiKTsKcmVzb2x1dGlvbl9wcm92ZSBwNTU7Cgp2YWwgcDI2
ID0gcGFyc2VfZm9ybXVsYSAoZ2V0IG5vbmVxdWFsaXR5ICJQMjYiKTsKY2xhdXNhbCAoTm90
IChnZW5lcmFsaXplIHAyNikpOwpyZXNvbHV0aW9uX3Byb3ZlIHAyNjsKCnZhbCBsb3MgPSBw
YXJzZV9mb3JtdWxhIChnZXQgbm9uZXF1YWxpdHkgIkxPUyIpOwpyZXNvbHV0aW9uX3Byb3Zl
IGxvczsKCnZhbCByZWR1Y2VkX251bTI4NCA9IHBhcnNlX2Zvcm11bGEKICBbCgoKCgoKUVVP
VEUgImZpYm9uYWNjaSAwIChzIDApIC9cXCBmaWJvbmFjY2kgKHMgMCkgKHMgMCkgL1xcXG4g
ICAoIXggeSB6IHgnIHknIHonLlxuICAgICAgfnN1bSB4IChzIChzIDApKSB6IFxcLyB+c3Vt
IHkgKHMgMCkgeiBcXC9cbiAgICAgIH5maWJvbmFjY2kgeCB4JyBcXC8gfmZpYm9uYWNjaSB5
IHknIFxcLyB+c3VtIHgnIHknIHonIFxcL1xuICAgICAgZmlib25hY2NpIHogeicpIC9cXCAo
IXguIHN1bSB4IDAgeCkgL1xcXG4gICAoIXggeSB6LiB+c3VtIHggeSB6IFxcLyBzdW0geCAo
cyB5KSAocyB6KSkgL1xcXG4gICAoIXguIH5maWJvbmFjY2kgKHMgKHMgKHMgKHMgKHMgKHMg
KHMgKHMgMCkpKSkpKSkpIHgpID09PiBGIl07CnJlc29sdXRpb25fcHJvdmUgcmVkdWNlZF9u
dW0yODQ7Cgp2YWwgcDI5ID0gcGFyc2VfZm9ybXVsYSAoZ2V0IG5vbmVxdWFsaXR5ICJQMjki
KTsKY2xhdXNhbCAoTm90IChnZW5lcmFsaXplIHAyOSkpOwpyZXNvbHV0aW9uX3Byb3ZlIHAy
OTsKCnZhbCBudW0xID0gcGFyc2VfZm9ybXVsYSAoZ2V0IHRwdHAgIk5VTTAwMS0xIik7CnJl
c29sdXRpb25fcHJvdmUgbnVtMTsKCnZhbCBnaWxtb3JlOSA9IHBhcnNlX2Zvcm11bGEgKGdl
dCBub25lcXVhbGl0eSAiR0lMTU9SRV85Iik7CmF4aW9tYXRpemUgKE5vdCAoZ2VuZXJhbGl6
ZSBnaWxtb3JlOSkpOwpyZXNvbHV0aW9uX3Byb3ZlIGdpbG1vcmU5OwoKdmFsIG1vZGVsX2Nv
bXBsZXRlbmVzcyA9IHBhcnNlX2Zvcm11bGEgKGdldCBub25lcXVhbGl0eSAiTU9ERUxfQ09N
UExFVEVORVNTIik7CnJlc29sdXRpb25fcHJvdmUgbW9kZWxfY29tcGxldGVuZXNzOwoqKQoK
ZW5kCigqI2xpbmUgMC4wICJzcmMvTWV0aXMxLnNpZyIqKQooKiA9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09ICopCigqIFRIRSBNRVRJUyBDT01CSU5BVElPTiBPRiBQUk9PRiBQUk9DRURVUkVTIEZP
UiBGSVJTVC1PUkRFUiBMT0dJQyAgICAgICAgICAgKikKKCogQ3JlYXRlZCBieSBKb2UgSHVy
ZCwgU2VwdGVtYmVyIDIwMDEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAqKQooKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09ICopCgpzaWduYXR1cmUgTWV0aXMxID0Kc2ln
Cgp0eXBlIGZvcm11bGEgICAgID0gVGVybTEuZm9ybXVsYQp0eXBlIHRobSAgICAgICAgID0g
VGhtMS50aG0KdHlwZSBsaW1pdCAgICAgICA9IE1ldGVyMS5saW1pdAp0eXBlIHNvbHZlciAg
ICAgID0gU29sdmVyMS5zb2x2ZXIKdHlwZSBzb2x2ZXJfbm9kZSA9IFNvbHZlcjEuc29sdmVy
X25vZGUKCigqIFR1bmluZyBwYXJhbWV0ZXJzICopCnR5cGUgTXBhcm0gPSBNZXNvbjEucGFy
YW1ldGVycwp0eXBlIFJwYXJtID0gUmVzb2x1dGlvbjEucGFyYW1ldGVycwp0eXBlIHBhcmFt
ZXRlcnMgPQogIHttZXNvbiAgICAgICAgICAgOiBib29sLAogICBkZWx0YSAgICAgICAgICAg
OiBib29sLAogICByZXNvbHV0aW9uICAgICAgOiBib29sLAogICBtZXNvbl9wYXJtICAgICAg
OiBNcGFybSwKICAgcmVzb2x1dGlvbl9wYXJtIDogUnBhcm19Cgp2YWwgZGVmYXVsdHMgICAg
ICAgICAgICAgICAgICAgIDogcGFyYW1ldGVycwp2YWwgdXBkYXRlX3Bhcm1fbWVzb24gICAg
ICAgICAgIDogKGJvb2wgLT4gYm9vbCkgLT4gcGFyYW1ldGVycyAtPiBwYXJhbWV0ZXJzCnZh
bCB1cGRhdGVfcGFybV9kZWx0YSAgICAgICAgICAgOiAoYm9vbCAtPiBib29sKSAtPiBwYXJh
bWV0ZXJzIC0+IHBhcmFtZXRlcnMKdmFsIHVwZGF0ZV9wYXJtX3Jlc29sdXRpb24gICAgICA6
IChib29sIC0+IGJvb2wpIC0+IHBhcmFtZXRlcnMgLT4gcGFyYW1ldGVycwp2YWwgdXBkYXRl
X3Bhcm1fbWVzb25fcGFybSAgICAgIDogKE1wYXJtIC0+IE1wYXJtKSAtPiBwYXJhbWV0ZXJz
IC0+IHBhcmFtZXRlcnMKdmFsIHVwZGF0ZV9wYXJtX3Jlc29sdXRpb25fcGFybSA6IChScGFy
bSAtPiBScGFybSkgLT4gcGFyYW1ldGVycyAtPiBwYXJhbWV0ZXJzCgooKiBUaGUgbWV0aXMg
Y29tYmluYXRpb24gb2Ygc29sdmVycyAqKQp2YWwgbWV0aXMnIDogcGFyYW1ldGVycyAtPiBz
b2x2ZXJfbm9kZQp2YWwgbWV0aXMgIDogc29sdmVyX25vZGUgICAgICAgICAgICAgICAgKCog
VXNlcyBkZWZhdWx0cyAqKQoKKCogQSB1c2VyLWZyaWVuZGx5IGludGVyZmFjZSAqKQp2YWwg
c2V0dGluZ3MgIDogcGFyYW1ldGVycyByZWYgICAgICAgICAgKCogU3RhcnRzIG9mZiBhcyBk
ZWZhdWx0cyAqKQp2YWwgbGltaXQgICAgIDogbGltaXQgcmVmICAgICAgICAgICAgICAgKCog
U3RhcnRzIG9mZiBhcyAxMCBzZWNvbmRzICopCnZhbCByYXdfcHJvdmUgOiBmb3JtdWxhIC0+
IHRobSBvcHRpb24gICAoKiBFeHBlY3RzIGEgPT0+IGIgPT0+IEYgKikKdmFsIHByb3ZlICAg
ICA6IGZvcm11bGEgLT4gdGhtIG9wdGlvbiAgICgqIEFkZHMgZXEgYXhpb21zLCBjb252ZXJ0
cyB0byBDTkYgKikKdmFsIHF1ZXJ5ICAgICA6IGZvcm11bGEgLT4gc29sdmVyICAgICAgICgq
IFByb2xvZyBxdWVyeSBlbmdpbmUgKikKCmVuZAooKiNsaW5lIDAuMCAic3JjL01ldGlzMS5z
bWwiKikKKCogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqKQooKiBUSEUgTUVUSVMgQ09NQklOQVRJ
T04gT0YgUFJPT0YgUFJPQ0VEVVJFUyBGT1IgRklSU1QtT1JERVIgTE9HSUMgICAgICAgICAg
ICopCigqIENyZWF0ZWQgYnkgSm9lIEh1cmQsIFNlcHRlbWJlciAyMDAxICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgKikKKCogPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAq
KQoKKCoKYXBwIGxvYWQKIFsiVXNlZnVsIiwgIk1vc21sIiwgIlRlcm0xIiwgIlRobTEiLCAi
Q2Fub24xIiwKICAiU29sdmVyMSIsICJNZXNvbjEiLCAiUmVzb2x1dGlvbjEiXTsKKikKCigq
CiopCnN0cnVjdHVyZSBNZXRpczEgOj4gTWV0aXMxID0Kc3RydWN0CgpvcGVuIFVzZWZ1bCBU
ZXJtMSBUaG0xIE1ldGVyMSBDYW5vbjEgU29sdmVyMSBNZXNvbjEgUmVzb2x1dGlvbjE7Cgpp
bmZpeCB8LT4gOjo+IEA+IG9vICMjIDo6KiA6OkA7CgooKiAtLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
ICopCigqIFR1bmluZyBwYXJhbWV0ZXJzLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgKikKKCogLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAq
KQoKdHlwZSBNcGFybSA9IE1lc29uMS5wYXJhbWV0ZXJzOwp0eXBlIFJwYXJtID0gUmVzb2x1
dGlvbjEucGFyYW1ldGVyczsKCnR5cGUgcGFyYW1ldGVycyA9CiAge21lc29uICAgICAgICAg
ICA6IGJvb2wsCiAgIGRlbHRhICAgICAgICAgICA6IGJvb2wsCiAgIHJlc29sdXRpb24gICAg
ICA6IGJvb2wsCiAgIG1lc29uX3Bhcm0gICAgICA6IE1wYXJtLAogICByZXNvbHV0aW9uX3Bh
cm0gOiBScGFybX07Cgp2YWwgZGVmYXVsdHMgPQogIHttZXNvbiAgICAgICAgICAgPSB0cnVl
LAogICBkZWx0YSAgICAgICAgICAgPSB0cnVlLAogICByZXNvbHV0aW9uICAgICAgPSB0cnVl
LAogICBtZXNvbl9wYXJtICAgICAgPSBNZXNvbjEuZGVmYXVsdHMsCiAgIHJlc29sdXRpb25f
cGFybSA9IFJlc29sdXRpb24xLmRlZmF1bHRzfTsKCmZ1biB1cGRhdGVfcGFybV9tZXNvbiBm
IHBhcm0gPQogIGxldAogICAgdmFsIHttZXNvbiwgZGVsdGEsIHJlc29sdXRpb24sIG1lc29u
X3Bhcm0sIHJlc29sdXRpb25fcGFybX0gPSBwYXJtCiAgaW4KICAgIHttZXNvbiA9IGYgbWVz
b24sIGRlbHRhID0gZGVsdGEsIHJlc29sdXRpb24gPSByZXNvbHV0aW9uLAogICAgIG1lc29u
X3Bhcm0gPSBtZXNvbl9wYXJtLCByZXNvbHV0aW9uX3Bhcm0gPSByZXNvbHV0aW9uX3Bhcm19
CiAgZW5kOwoKZnVuIHVwZGF0ZV9wYXJtX2RlbHRhIGYgcGFybSA9CiAgbGV0CiAgICB2YWwg
e21lc29uLCBkZWx0YSwgcmVzb2x1dGlvbiwgbWVzb25fcGFybSwgcmVzb2x1dGlvbl9wYXJt
fSA9IHBhcm0KICBpbgogICAge21lc29uID0gbWVzb24sIGRlbHRhID0gZiBkZWx0YSwgcmVz
b2x1dGlvbiA9IHJlc29sdXRpb24sCiAgICAgbWVzb25fcGFybSA9IG1lc29uX3Bhcm0sIHJl
c29sdXRpb25fcGFybSA9IHJlc29sdXRpb25fcGFybX0KICBlbmQ7CgpmdW4gdXBkYXRlX3Bh
cm1fcmVzb2x1dGlvbiBmIHBhcm0gPQogIGxldAogICAgdmFsIHttZXNvbiwgZGVsdGEsIHJl
c29sdXRpb24sIG1lc29uX3Bhcm0sIHJlc29sdXRpb25fcGFybX0gPSBwYXJtCiAgaW4KICAg
IHttZXNvbiA9IG1lc29uLCBkZWx0YSA9IGRlbHRhLCByZXNvbHV0aW9uID0gZiByZXNvbHV0
aW9uLAogICAgIG1lc29uX3Bhcm0gPSBtZXNvbl9wYXJtLCByZXNvbHV0aW9uX3Bhcm0gPSBy
ZXNvbHV0aW9uX3Bhcm19CiAgZW5kOwoKZnVuIHVwZGF0ZV9wYXJtX21lc29uX3Bhcm0gZiBw
YXJtID0KICBsZXQKICAgIHZhbCB7bWVzb24sIGRlbHRhLCByZXNvbHV0aW9uLCBtZXNvbl9w
YXJtLCByZXNvbHV0aW9uX3Bhcm19ID0gcGFybQogIGluCiAgICB7bWVzb24gPSBtZXNvbiwg
ZGVsdGEgPSBkZWx0YSwgcmVzb2x1dGlvbiA9IHJlc29sdXRpb24sCiAgICAgbWVzb25fcGFy
bSA9IGYgbWVzb25fcGFybSwgcmVzb2x1dGlvbl9wYXJtID0gcmVzb2x1dGlvbl9wYXJtfQog
IGVuZDsKCmZ1biB1cGRhdGVfcGFybV9yZXNvbHV0aW9uX3Bhcm0gZiBwYXJtID0KICBsZXQK
ICAgIHZhbCB7bWVzb24sIGRlbHRhLCByZXNvbHV0aW9uLCBtZXNvbl9wYXJtLCByZXNvbHV0
aW9uX3Bhcm19ID0gcGFybQogIGluCiAgICB7bWVzb24gPSBtZXNvbiwgZGVsdGEgPSBkZWx0
YSwgcmVzb2x1dGlvbiA9IHJlc29sdXRpb24sCiAgICAgbWVzb25fcGFybSA9IG1lc29uX3Bh
cm0sIHJlc29sdXRpb25fcGFybSA9IGYgcmVzb2x1dGlvbl9wYXJtfQogIGVuZDsKCigqIC0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0gKikKKCogVGhlIG1ldGlzIGNvbWJpbmF0aW9uIG9mIHNvbHZl
cnMuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKQooKiAtLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tICopCgpmdW4gbWV0aXMnIHttZXNvbiA9IG0sIGRlbHRhID0gZCwg
cmVzb2x1dGlvbiA9IHIsIG1lc29uX3Bhcm0sIHJlc29sdXRpb25fcGFybX0gPQogIGNvbWJp
bmUKICAoKGlmIG0gdGhlbiBjb25zICh0aW1lMSwgbWVzb24nIG1lc29uX3Bhcm0pIGVsc2Ug
SSkKICAgKChpZiByIHRoZW4gY29ucyAodGltZTEsIHJlc29sdXRpb24nIHJlc29sdXRpb25f
cGFybSkgZWxzZSBJKQogICAgKChpZiBkIHRoZW4gY29ucyAodGltZTIsIGRlbHRhJyBtZXNv
bl9wYXJtKSBlbHNlIEkpCiAgICAgW10pKSk7Cgp2YWwgbWV0aXMgPSBtZXRpcycgZGVmYXVs
dHM7CgooKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICopCigqIEEgdXNlci1mcmllbmRseSBpbnRl
cmZhY2UuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
KikKKCogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqKQoKdmFsIHNldHRpbmdzID0gcmVmIGRlZmF1
bHRzOwoKdmFsIGxpbWl0IDogbGltaXQgcmVmID0gcmVmIHt0aW1lID0gTk9ORSwgaW5mcyA9
IE5PTkV9OwoKZnVuIHJhd19wcm92ZSAoSW1wIChhLCBJbXAgKGIsIEZhbHNlKSkpID0KICBs
ZXQKICAgIHZhbCAodGhtcywgaHlwcykgPSAoYXhpb21hdGl6ZSBhLCBheGlvbWF0aXplIGIp
CiAgICB2YWwgc29sdiA9IG1ldGlzJyAoIXNldHRpbmdzKQogIGluCiAgICByZWZ1dGUgKGlu
aXRpYWxpemUgc29sdiB7bGltaXQgPSAhbGltaXQsIHRobXMgPSB0aG1zLCBoeXBzID0gaHlw
c30pCiAgZW5kCiAgfCByYXdfcHJvdmUgXyA9IHJhaXNlIEVSUiAicmF3X3Byb3ZlIiAiZm9y
bXVsYSBub3Qgb2YgdHlwZSBhID09PiBiID09PiBGIjsKCmZ1biBwcm92ZSBnID0KICBsZXQK
ICAgIHZhbCBoeXBzID0gZXFfYXhpb21hdGl6ZScgKE5vdCAoZ2VuZXJhbGl6ZSBnKSkKICAg
IHZhbCBzb2x2ID0gc2V0X29mX3N1cHBvcnQgYWxsX25lZ2F0aXZlIChtZXRpcycgKCFzZXR0
aW5ncykpCiAgaW4KICAgIHJlZnV0ZSAoaW5pdGlhbGl6ZSBzb2x2IHtsaW1pdCA9ICFsaW1p
dCwgdGhtcyA9IFtdLCBoeXBzID0gaHlwc30pCiAgZW5kOwoKZnVuIHF1ZXJ5IGRhdGFiYXNl
ID0KICBpbml0aWFsaXplIHByb2xvZyB7dGhtcyA9IGF4aW9tYXRpemUgZGF0YWJhc2UsIGh5
cHMgPSBbXSwgbGltaXQgPSB1bmxpbWl0ZWR9OwoKKCogcXVpY2sgdGVzdGluZwp2YWwgdGlt
ZSA9IE1vc21sLnRpbWU7CnF1b3RhdGlvbiA6PSB0cnVlOwppbnN0YWxsUFAgcHBfdGVybTsK
aW5zdGFsbFBQIHBwX2Zvcm11bGE7Cmluc3RhbGxQUCBTdWJzdDEucHBfc3Vic3Q7Cmluc3Rh
bGxQUCBwcF90aG07CgooKiBUZXN0aW5nIHRoZSBtZXRpcyBwcm92ZXIgKikKCnByb3ZlIFRy
dWU7Cgp2YWwgcDU5ID0gcGFyc2VfZm9ybXVsYSBbUVVPVEUgIigheC4gUCh4KSA8PT4gflAo
Zih4KSkpID09PiAoP3guIFAoeCkgL1xcIH5QKGYoeCkpKSJdOwp2YWwgdGhzID0gYXhpb21h
dGl6ZSAoTm90IChnZW5lcmFsaXplIHA1OSkpOwpwcm92ZSBwNTk7Cgp2YWwgcDM5ID0gcGFy
c2VfZm9ybXVsYSBbUVVPVEUgIn4oP3guICF5LiBQKHkseCkgPD0+IH5QKHkseSkpIl07CmNs
YXVzYWwgKE5vdCAoZ2VuZXJhbGl6ZSBwMzkpKTsKYXhpb21hdGl6ZSAoTm90IChnZW5lcmFs
aXplIHAzOSkpOwpwcm92ZSBwMzk7Cgp2YWwgbnVtMTQgPSBwYXJzZV9mb3JtdWxhCiAgWwoK
CgoKClFVT1RFICIoIVguIHByb2R1Y3QoWCwgWCwgc3F1YXJlKFgpKSkgL1xcXG4gICAoIVog
WCBZLiB+cHJvZHVjdChYLCBZLCBaKSBcXC8gcHJvZHVjdChZLCBYLCBaKSkgL1xcXG4gICAo
IVogWCBZLiB+cHJvZHVjdChYLCBZLCBaKSBcXC8gZGl2aWRlcyhYLCBaKSkgL1xcXG4gICAo
IVkgWCBWIFouXG4gICAgICB+cHJpbWUoWCkgXFwvIH5wcm9kdWN0KFksIFosIFYpIFxcLyB+
ZGl2aWRlcyhYLCBWKSBcXC8gZGl2aWRlcyhYLCBZKSBcXC9cbiAgICAgIGRpdmlkZXMoWCwg
WikpIC9cXCBwcmltZShhKSAvXFxcbiAgIHByb2R1Y3QoYSwgc3F1YXJlKGMpLCBzcXVhcmUo
YikpIC9cXCB+ZGl2aWRlcyhhLCBiKSA9PT4gRiJdOwpwcm92ZSBudW0xNDsKCnZhbCBwMjYg
PSBwYXJzZV9mb3JtdWxhCiBbCgpRVU9URSAiKCg/eC4gUCh4KSkgPD0+ICg/eC4gUSh4KSkp
IC9cXFxuICAgKCF4IHkuIFAoeCkgL1xcIFEoeSkgPT0+IChSKHgpIDw9PiBVKHkpKSkgPT0+
XG4gICAoKCF4LiBQKHgpID09PiBSKHgpKSA8PT4gKCF4LiBRKHgpID09PiBVKHgpKSkiXTsK
Y2xhdXNhbCAoTm90IChnZW5lcmFsaXplIHAyNikpOwpwcm92ZSBwMjY7Cgp2YWwgbG9zID0g
cGFyc2VfZm9ybXVsYQogWwoKUVVPVEUgIigheCB5IHouIFAgeCB5ID09PiBQIHkgeiA9PT4g
UCB4IHopIC9cXFxuICAoIXggeSB6LiBRIHggeSA9PT4gUSB5IHogPT0+IFEgeCB6KSAvXFwg
KCF4IHkuIFEgeCB5ID09PiBRIHkgeCkgL1xcXG4gICgheCB5LiBQIHggeSBcXC8gUSB4IHkp
ID09PiAoIXggeS4gUCB4IHkpIFxcLyAheCB5LiBRIHggeSJdOwp0cnkgcHJvdmUgbG9zOwoK
dmFsIHB1ejIgPSBwYXJzZV9mb3JtdWxhCiAgWwoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoK
ClFVT1RFICIoIVguIGVxdWFsKFgsIFgpKSAvXFwgKCFZIFguIH5lcXVhbChYLCBZKSBcXC8g
ZXF1YWwoWSwgWCkpIC9cXFxuICAgKCFaIFggWS4gfmVxdWFsKFgsIFkpIFxcLyB+ZXF1YWwo
WSwgWikgXFwvIGVxdWFsKFgsIFopKSAvXFxcbiAgICghQiBBLiB+ZXF1YWwoQSwgQikgXFwv
IGVxdWFsKGV2ZXJ5X29uZV9idXQoQSksIGV2ZXJ5X29uZV9idXQoQikpKSAvXFxcbiAgICgh
RSBDIEQuIH5lcXVhbChDLCBEKSBcXC8gfmhhdGVzKEMsIEUpIFxcLyBoYXRlcyhELCBFKSkg
L1xcXG4gICAoIUggRl9hdm9pZCBHLlxuICAgICAgfmVxdWFsKEZfYXZvaWQsIEcpIFxcLyB+
aGF0ZXMoSCwgRl9hdm9pZCkgXFwvIGhhdGVzKEgsIEcpKSAvXFxcbiAgICghSyBJIEouIH5l
cXVhbChJLCBKKSBcXC8gfmtpbGxlZChJLCBLKSBcXC8ga2lsbGVkKEosIEspKSAvXFxcbiAg
ICghTiBMIE0uIH5lcXVhbChMLCBNKSBcXC8gfmtpbGxlZChOLCBMKSBcXC8ga2lsbGVkKE4s
IE0pKSAvXFxcbiAgICghUCBPLlxuICAgICAgfmVxdWFsKE8sIFApIFxcLyB+bGl2ZXNfYXRf
ZHJlYWRzYnVyeShPKSBcXC8gbGl2ZXNfYXRfZHJlYWRzYnVyeShQKSkgL1xcXG4gICAoIVMg
USBSLiB+ZXF1YWwoUSwgUikgXFwvIH5yaWNoZXIoUSwgUykgXFwvIHJpY2hlcihSLCBTKSkg
L1xcXG4gICAoIVYgVF9hdm9pZCBVLlxuICAgICAgfmVxdWFsKFRfYXZvaWQsIFUpIFxcLyB+
cmljaGVyKFYsIFRfYXZvaWQpIFxcLyByaWNoZXIoViwgVSkpIC9cXFxuICAgbGl2ZXNfYXRf
ZHJlYWRzYnVyeShzb21lb25lKCkpIC9cXCBraWxsZWQoc29tZW9uZSgpLCBhdW50X2FnYXRo
YSgpKSAvXFxcbiAgIGxpdmVzX2F0X2RyZWFkc2J1cnkoYXVudF9hZ2F0aGEoKSkgL1xcIGxp
dmVzX2F0X2RyZWFkc2J1cnkoYnV0bGVyKCkpIC9cXFxuICAgbGl2ZXNfYXRfZHJlYWRzYnVy
eShjaGFybGVzKCkpIC9cXFxuICAgKCFQZXJzb24uXG4gICAgICB+bGl2ZXNfYXRfZHJlYWRz
YnVyeShQZXJzb24pIFxcLyBlcXVhbChQZXJzb24sIGF1bnRfYWdhdGhhKCkpIFxcL1xuICAg
ICAgZXF1YWwoUGVyc29uLCBidXRsZXIoKSkgXFwvIGVxdWFsKFBlcnNvbiwgY2hhcmxlcygp
KSkgL1xcXG4gICAoIVZpY3RpbSBLaWxsZXIuIH5raWxsZWQoS2lsbGVyLCBWaWN0aW0pIFxc
LyBoYXRlcyhLaWxsZXIsIFZpY3RpbSkpIC9cXFxuICAgKCFWaWN0aW0gS2lsbGVyLiB+a2ls
bGVkKEtpbGxlciwgVmljdGltKSBcXC8gfnJpY2hlcihLaWxsZXIsIFZpY3RpbSkpIC9cXFxu
ICAgKCFQZXJzb24uIH5oYXRlcyhhdW50X2FnYXRoYSgpLCBQZXJzb24pIFxcLyB+aGF0ZXMo
Y2hhcmxlcygpLCBQZXJzb24pKSAvXFxcbiAgICghUGVyc29uLiBlcXVhbChQZXJzb24sIGJ1
dGxlcigpKSBcXC8gaGF0ZXMoYXVudF9hZ2F0aGEoKSwgUGVyc29uKSkgL1xcXG4gICAoIVBl
cnNvbi4gcmljaGVyKFBlcnNvbiwgYXVudF9hZ2F0aGEoKSkgXFwvIGhhdGVzKGJ1dGxlcigp
LCBQZXJzb24pKSAvXFxcbiAgICghUGVyc29uLiB+aGF0ZXMoYXVudF9hZ2F0aGEoKSwgUGVy
c29uKSBcXC8gaGF0ZXMoYnV0bGVyKCksIFBlcnNvbikpIC9cXFxuICAgKCFQZXJzb24uIH5o
YXRlcyhQZXJzb24sIGV2ZXJ5X29uZV9idXQoUGVyc29uKSkpIC9cXFxuICAgfmVxdWFsKGF1
bnRfYWdhdGhhKCksIGJ1dGxlcigpKSAvXFxcbiAgIH5raWxsZWQoYXVudF9hZ2F0aGEoKSwg
YXVudF9hZ2F0aGEoKSkgPT0+IEYiXTsKcHJvdmUgcHV6MjsKCnZhbCBudW0yODQgPSBwYXJz
ZV9mb3JtdWxhCiAgWwoKCgoKCgoKUVVPVEUgImZpYm9uYWNjaSgwLCBzdWNjZXNzb3IoMCkp
IC9cXCBmaWJvbmFjY2koc3VjY2Vzc29yKDApLCBzdWNjZXNzb3IoMCkpIC9cXFxuICAgKCFO
MiBOMSBOIEYxIEZOIEYyLlxuICAgICAgfnN1bShOMSwgc3VjY2Vzc29yKDApLCBOKSBcXC8g
fnN1bShOMiwgc3VjY2Vzc29yKHN1Y2Nlc3NvcigwKSksIE4pIFxcL1xuICAgICAgfmZpYm9u
YWNjaShOMSwgRjEpIFxcLyB+Zmlib25hY2NpKE4yLCBGMikgXFwvIH5zdW0oRjEsIEYyLCBG
TikgXFwvXG4gICAgICBmaWJvbmFjY2koTiwgRk4pKSAvXFwgKCFYLiBzdW0oWCwgMCwgWCkp
IC9cXFxuICAgKCFaIFggWS4gfnN1bShYLCBZLCBaKSBcXC8gc3VtKFgsIHN1Y2Nlc3NvcihZ
KSwgc3VjY2Vzc29yKFopKSkgL1xcXG4gICAoIVJlc3VsdC5cbiAgICAgIH5maWJvbmFjY2ko
c3VjY2Vzc29yKHN1Y2Nlc3NvcihzdWNjZXNzb3Ioc3VjY2Vzc29yKHN1Y2Nlc3NvcihzdWNj
ZXNzb3Ioc3VjY2Vzc29yKHN1Y2Nlc3NvcigwKSkpKSkpKSksXG4gICAgICAgICAgICAgICAg
IFJlc3VsdCkpID09PiBGIl07CnByb3ZlIG51bTI4NDsKCnZhbCBwMjkgPSBwYXJzZV9mb3Jt
dWxhCiAgWwoKUVVPVEUgIig/eC4gUCh4KSkgL1xcICg/eC4gRyh4KSkgPT0+XG4gICAoKCF4
LiBQKHgpID09PiBIKHgpKSAvXFwgKCF4LiBHKHgpID09PiBKKHgpKSA8PT5cbiAgICAoIXgg
eS4gUCh4KSAvXFwgRyh5KSA9PT4gSCh4KSAvXFwgSih5KSkpIl07CmNsYXVzYWwgKE5vdCAo
Z2VuZXJhbGl6ZSBwMjkpKTsKcHJvdmUgcDI5OwoKdmFsIG51bTI3ID0gcGFyc2VfZm9ybXVs
YQogIFsKCgoKCgoKCgoKCgoKCgoKCgoKCgoKUVVPVEUgIighQS4gZXF1YWxpc2goYWRkKEEs
IDApLCBBKSkgL1xcXG4gICAoIUEgQi4gZXF1YWxpc2goYWRkKEEsIHN1Y2Nlc3NvcihCKSks
IHN1Y2Nlc3NvcihhZGQoQSwgQikpKSkgL1xcXG4gICAoIUEuIGVxdWFsaXNoKG11bHRpcGx5
KEEsIDApLCAwKSkgL1xcXG4gICAoIUEgQi4gZXF1YWxpc2gobXVsdGlwbHkoQSwgc3VjY2Vz
c29yKEIpKSwgYWRkKG11bHRpcGx5KEEsIEIpLCBBKSkpIC9cXFxuICAgKCFCIEEuIH5lcXVh
bGlzaChzdWNjZXNzb3IoQSksIHN1Y2Nlc3NvcihCKSkgXFwvIGVxdWFsaXNoKEEsIEIpKSAv
XFxcbiAgICghQiBBLiB+ZXF1YWxpc2goQSwgQikgXFwvIGVxdWFsaXNoKHN1Y2Nlc3NvcihB
KSwgc3VjY2Vzc29yKEIpKSkgL1xcXG4gICAoIUMgQSBCLiB+bGVzcyhBLCBCKSBcXC8gfmxl
c3MoQywgQSkgXFwvIGxlc3MoQywgQikpIC9cXFxuICAgKCFDIEIgQS4gfmVxdWFsaXNoKGFk
ZChzdWNjZXNzb3IoQSksIEIpLCBDKSBcXC8gbGVzcyhCLCBDKSkgL1xcXG4gICAoIUIgQS5c
biAgICAgIH5sZXNzKEEsIEIpIFxcL1xuICAgICAgZXF1YWxpc2goYWRkKHN1Y2Nlc3Nvcihw
cmVkZWNlc3Nvcl9vZl8xc3RfbWludXNfMm5kKEIsIEEpKSwgQSksXG4gICAgICAgIEIpKSAv
XFwgKCFYLiBlcXVhbGlzaChYLCBYKSkgL1xcXG4gICAoIVkgWC4gfmVxdWFsaXNoKFgsIFkp
IFxcLyBlcXVhbGlzaChZLCBYKSkgL1xcXG4gICAoIVogWCBZLiB+ZXF1YWxpc2goWCwgWSkg
XFwvIH5lcXVhbGlzaChZLCBaKSBcXC8gZXF1YWxpc2goWCwgWikpIC9cXFxuICAgKCFDIEEg
Qi4gfmVxdWFsaXNoKEEsIEIpIFxcLyBlcXVhbGlzaChtdWx0aXBseShBLCBDKSwgbXVsdGlw
bHkoQiwgQykpKSAvXFxcbiAgICghQiBBLiB+bGVzcyhBLCBCKSBcXC8gfmVxdWFsaXNoKEEs
IEIpKSAvXFxcbiAgICghQiBBLiBsZXNzKEEsIEIpIFxcLyBlcXVhbGlzaChCLCBBKSBcXC8g
bGVzcyhCLCBBKSkgL1xcXG4gICAoIUEuIH5sZXNzKEEsIEEpKSAvXFwgKCFBLiB+ZXF1YWxp
c2goc3VjY2Vzc29yKEEpLCAwKSkgL1xcXG4gICAoIUMgQSBCLlxuICAgICAgfmxlc3MoQSwg
QikgXFwvIGVxdWFsaXNoKEMsIDApIFxcL1xuICAgICAgbGVzcyhtdWx0aXBseShBLCBDKSwg
bXVsdGlwbHkoQiwgQykpKSAvXFwgfmxlc3MoYigpLCBhKCkpIC9cXFxuICAgbGVzcyhtdWx0
aXBseShiKCksIGMoKSksIG11bHRpcGx5KGEoKSwgYygpKSkgL1xcIH5lcXVhbGlzaChjKCks
IDApID09PlxuICAgRiJdOwpwcm92ZSBudW0yNzsKCnZhbCBtb2RlbF9jb21wbGV0ZW5lc3Mg
PSBwYXJzZV9mb3JtdWxhCiAgWwoKCgoKCgoKUVVPVEUgIighTSBwLiBzZW50ZW5jZShwKSA9
PT4gaG9sZHMoTSxwKSBcXC8gaG9sZHMoTSxub3QocCkpKSAvXFxcbiAgICghTSBwLiB+KGhv
bGRzKE0scCkgL1xcIGhvbGRzKE0sbm90KHApKSkpID09PlxuICAgKCghcC5cbiAgICAgICBz
ZW50ZW5jZShwKSA9PT5cbiAgICAgICAoIU0uIG1vZGVscyhNLFMpID09PiBob2xkcyhNLHAp
KSBcXC9cbiAgICAgICAoIU0uIG1vZGVscyhNLFMpID09PiBob2xkcyhNLG5vdChwKSkpKSA8
PT5cbiAgICAoIU0gTScuXG4gICAgICAgbW9kZWxzKE0sUykgL1xcIG1vZGVscyhNJyxTKSA9
PT5cbiAgICAgICAoIXAuIHNlbnRlbmNlKHApID09PiAoaG9sZHMoTSxwKSA8PT4gaG9sZHMo
TScscCkpKSkpIl07CnByb3ZlIG1vZGVsX2NvbXBsZXRlbmVzczsKCnZhbCBhZ2F0aGEgPSBw
YXJzZV9mb3JtdWxhCiAgWwoKCgoKCgoKCgoKUVVPVEUgImxpdmVzKGFnYXRoYSgpKSAvXFwg
bGl2ZXMoYnV0bGVyKCkpIC9cXCBsaXZlcyhjaGFybGVzKCkpIC9cXFxuICAgKGtpbGxlZChh
Z2F0aGEoKSxhZ2F0aGEoKSkgXFwvIGtpbGxlZChidXRsZXIoKSxhZ2F0aGEoKSkgXFwvXG4g
ICAga2lsbGVkKGNoYXJsZXMoKSxhZ2F0aGEoKSkpIC9cXFxuICAgKCF4IHkuIGtpbGxlZCh4
LHkpID09PiBoYXRlcyh4LHkpIC9cXCB+cmljaGVyKHgseSkpIC9cXFxuICAgKCF4LiBoYXRl
cyhhZ2F0aGEoKSx4KSA9PT4gfmhhdGVzKGNoYXJsZXMoKSx4KSkgL1xcXG4gICAoaGF0ZXMo
YWdhdGhhKCksYWdhdGhhKCkpIC9cXCBoYXRlcyhhZ2F0aGEoKSxjaGFybGVzKCkpKSAvXFxc
biAgICgheC4gbGl2ZXMoeCkgL1xcIH5yaWNoZXIoeCxhZ2F0aGEoKSkgPT0+IGhhdGVzKGJ1
dGxlcigpLHgpKSAvXFxcbiAgICgheC4gaGF0ZXMoYWdhdGhhKCkseCkgPT0+IGhhdGVzKGJ1
dGxlcigpLHgpKSAvXFxcbiAgICgheC4gfmhhdGVzKHgsYWdhdGhhKCkpIFxcLyB+aGF0ZXMo
eCxidXRsZXIoKSkgXFwvIH5oYXRlcyh4LGNoYXJsZXMoKSkpXG4gICA9PT5cbiAgIGtpbGxl
ZChhZ2F0aGEoKSxhZ2F0aGEoKSkgL1xcIH5raWxsZWQoYnV0bGVyKCksYWdhdGhhKCkpIC9c
XFxuICAgfmtpbGxlZChjaGFybGVzKCksYWdhdGhhKCkpIl07CnByb3ZlIGFnYXRoYTsKCnZh
bCBib28zID0gcGFyc2VfZm9ybXVsYQogWwoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoK
CgoKCgoKCgoKCgoKCgoKCgoKCgoKUVVPVEUgIighWC4gZXF1YWwoWCwgWCkpIC9cXCAoIVkg
WC4gfmVxdWFsKFgsIFkpIFxcLyBlcXVhbChZLCBYKSkgL1xcXG4gICghWiBYIFkuIH5lcXVh
bChYLCBZKSBcXC8gfmVxdWFsKFksIFopIFxcLyBlcXVhbChYLCBaKSkgL1xcXG4gICghWSBY
LiBzdW0oWCwgWSwgYWRkKFgsIFkpKSkgL1xcICghWSBYLiBwcm9kdWN0KFgsIFksIG11bHRp
cGx5KFgsIFkpKSkgL1xcXG4gICghWiBYIFkuIH5zdW0oWCwgWSwgWikgXFwvIHN1bShZLCBY
LCBaKSkgL1xcXG4gICghWiBYIFkuIH5wcm9kdWN0KFgsIFksIFopIFxcLyBwcm9kdWN0KFks
IFgsIFopKSAvXFxcbiAgKCFYLiBzdW0oYWRkaXRpdmVfaWRlbnRpdHkoKSwgWCwgWCkpIC9c
XFxuICAoIVguIHN1bShYLCBhZGRpdGl2ZV9pZGVudGl0eSgpLCBYKSkgL1xcXG4gICghWC4g
cHJvZHVjdChtdWx0aXBsaWNhdGl2ZV9pZGVudGl0eSgpLCBYLCBYKSkgL1xcXG4gICghWC4g
cHJvZHVjdChYLCBtdWx0aXBsaWNhdGl2ZV9pZGVudGl0eSgpLCBYKSkgL1xcXG4gICghWiBY
IFkgVjEgVjMgVjQgVjIuXG4gICAgIH5wcm9kdWN0KFgsIFksIFYxKSBcXC8gfnByb2R1Y3Qo
WCwgWiwgVjIpIFxcLyB+c3VtKFksIFosIFYzKSBcXC9cbiAgICAgfnByb2R1Y3QoWCwgVjMs
IFY0KSBcXC8gc3VtKFYxLCBWMiwgVjQpKSAvXFxcbiAgKCFaIFggWSBWMSBWMyBWNCBWMi5c
biAgICAgfnByb2R1Y3QoWCwgWSwgVjEpIFxcLyB+cHJvZHVjdChYLCBaLCBWMikgXFwvIH5z
dW0oWSwgWiwgVjMpIFxcL1xuICAgICB+c3VtKFYxLCBWMiwgVjQpIFxcLyBwcm9kdWN0KFgs
IFYzLCBWNCkpIC9cXFxuICAoIVogWSBYIFYxIFYzIFY0IFYyLlxuICAgICB+cHJvZHVjdChZ
LCBYLCBWMSkgXFwvIH5wcm9kdWN0KFosIFgsIFYyKSBcXC8gfnN1bShZLCBaLCBWMykgXFwv
XG4gICAgIH5wcm9kdWN0KFYzLCBYLCBWNCkgXFwvIHN1bShWMSwgVjIsIFY0KSkgL1xcXG4g
ICghWiBZIFggVjEgVjMgVjQgVjIuXG4gICAgIH5wcm9kdWN0KFksIFgsIFYxKSBcXC8gfnBy
b2R1Y3QoWiwgWCwgVjIpIFxcLyB+c3VtKFksIFosIFYzKSBcXC9cbiAgICAgfnN1bShWMSwg
VjIsIFY0KSBcXC8gcHJvZHVjdChWMywgWCwgVjQpKSAvXFxcbiAgKCFaIFggWSBWMSBWMyBW
NCBWMi5cbiAgICAgfnN1bShYLCBZLCBWMSkgXFwvIH5zdW0oWCwgWiwgVjIpIFxcLyB+cHJv
ZHVjdChZLCBaLCBWMykgXFwvXG4gICAgIH5zdW0oWCwgVjMsIFY0KSBcXC8gcHJvZHVjdChW
MSwgVjIsIFY0KSkgL1xcXG4gICghWiBYIFkgVjEgVjMgVjQgVjIuXG4gICAgIH5zdW0oWCwg
WSwgVjEpIFxcLyB+c3VtKFgsIFosIFYyKSBcXC8gfnByb2R1Y3QoWSwgWiwgVjMpIFxcL1xu
ICAgICB+cHJvZHVjdChWMSwgVjIsIFY0KSBcXC8gc3VtKFgsIFYzLCBWNCkpIC9cXFxuICAo
IVogWSBYIFYxIFYzIFY0IFYyLlxuICAgICB+c3VtKFksIFgsIFYxKSBcXC8gfnN1bShaLCBY
LCBWMikgXFwvIH5wcm9kdWN0KFksIFosIFYzKSBcXC9cbiAgICAgfnN1bShWMywgWCwgVjQp
IFxcLyBwcm9kdWN0KFYxLCBWMiwgVjQpKSAvXFxcbiAgKCFaIFkgWCBWMSBWMyBWNCBWMi5c
biAgICAgfnN1bShZLCBYLCBWMSkgXFwvIH5zdW0oWiwgWCwgVjIpIFxcLyB+cHJvZHVjdChZ
LCBaLCBWMykgXFwvXG4gICAgIH5wcm9kdWN0KFYxLCBWMiwgVjQpIFxcLyBzdW0oVjMsIFgs
IFY0KSkgL1xcXG4gICghWC4gc3VtKGludmVyc2UoWCksIFgsIG11bHRpcGxpY2F0aXZlX2lk
ZW50aXR5KCkpKSAvXFxcbiAgKCFYLiBzdW0oWCwgaW52ZXJzZShYKSwgbXVsdGlwbGljYXRp
dmVfaWRlbnRpdHkoKSkpIC9cXFxuICAoIVguIHByb2R1Y3QoaW52ZXJzZShYKSwgWCwgYWRk
aXRpdmVfaWRlbnRpdHkoKSkpIC9cXFxuICAoIVguIHByb2R1Y3QoWCwgaW52ZXJzZShYKSwg
YWRkaXRpdmVfaWRlbnRpdHkoKSkpIC9cXFxuICAoIVYgWCBZIFUuIH5zdW0oWCwgWSwgVSkg
XFwvIH5zdW0oWCwgWSwgVikgXFwvIGVxdWFsKFUsIFYpKSAvXFxcbiAgKCFWIFggWSBVLiB+
cHJvZHVjdChYLCBZLCBVKSBcXC8gfnByb2R1Y3QoWCwgWSwgVikgXFwvIGVxdWFsKFUsIFYp
KSAvXFxcbiAgKCFXIFggWSBaLiB+ZXF1YWwoWCwgWSkgXFwvIH5zdW0oWCwgVywgWikgXFwv
IHN1bShZLCBXLCBaKSkgL1xcXG4gICghVyBYIFkgWi4gfmVxdWFsKFgsIFkpIFxcLyB+c3Vt
KFcsIFgsIFopIFxcLyBzdW0oVywgWSwgWikpIC9cXFxuICAoIVcgWCBZIFouIH5lcXVhbChY
LCBZKSBcXC8gfnN1bShXLCBaLCBYKSBcXC8gc3VtKFcsIFosIFkpKSAvXFxcbiAgKCFXIFgg
WSBaLiB+ZXF1YWwoWCwgWSkgXFwvIH5wcm9kdWN0KFgsIFcsIFopIFxcLyBwcm9kdWN0KFks
IFcsIFopKSAvXFxcbiAgKCFXIFggWSBaLiB+ZXF1YWwoWCwgWSkgXFwvIH5wcm9kdWN0KFcs
IFgsIFopIFxcLyBwcm9kdWN0KFcsIFksIFopKSAvXFxcbiAgKCFXIFggWSBaLiB+ZXF1YWwo
WCwgWSkgXFwvIH5wcm9kdWN0KFcsIFosIFgpIFxcLyBwcm9kdWN0KFcsIFosIFkpKSAvXFxc
biAgKCFXIFggWS4gfmVxdWFsKFgsIFkpIFxcLyBlcXVhbChhZGQoWCwgVyksIGFkZChZLCBX
KSkpIC9cXFxuICAoIVcgWCBZLiB+ZXF1YWwoWCwgWSkgXFwvIGVxdWFsKGFkZChXLCBYKSwg
YWRkKFcsIFkpKSkgL1xcXG4gICghVyBYIFkuIH5lcXVhbChYLCBZKSBcXC8gZXF1YWwobXVs
dGlwbHkoWCwgVyksIG11bHRpcGx5KFksIFcpKSkgL1xcXG4gICghVyBYIFkuIH5lcXVhbChY
LCBZKSBcXC8gZXF1YWwobXVsdGlwbHkoVywgWCksIG11bHRpcGx5KFcsIFkpKSkgL1xcXG4g
ICghWSBYLiB+ZXF1YWwoWCwgWSkgXFwvIGVxdWFsKGludmVyc2UoWCksIGludmVyc2UoWSkp
KSAvXFxcbiAgfnByb2R1Y3QoeCgpLCB4KCksIHgoKSkgPT0+IEYiXTsKcHJvdmUgYm9vMzsK
CnZhbCBmbGQ1ID0gcGFyc2VfZm9ybXVsYQogWwoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoK
CgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgpRVU9URSAiKCFZIFggViBXIFogVS5cbiAgICAg
c3VtKFgsIFYsIFcpIFxcLyB+c3VtKFgsIFksIFUpIFxcLyB+c3VtKFksIFosIFYpIFxcLyB+
c3VtKFUsIFosIFcpKSAvXFxcbiAgKCFYIFUgWiBXIFYgWS5cbiAgICAgc3VtKFUsIFosIFcp
IFxcLyB+c3VtKFgsIFksIFUpIFxcLyB+c3VtKFksIFosIFYpIFxcLyB+c3VtKFgsIFYsIFcp
KSAvXFxcbiAgKCFYLiBzdW0oYWRkaXRpdmVfaWRlbnRpdHkoKSwgWCwgWCkgXFwvIH5kZWZp
bmVkKFgpKSAvXFxcbiAgKCFYLiBzdW0oYWRkaXRpdmVfaW52ZXJzZShYKSwgWCwgYWRkaXRp
dmVfaWRlbnRpdHkoKSkgXFwvIH5kZWZpbmVkKFgpKSAvXFxcbiAgKCFaIFkgWC4gc3VtKFks
IFgsIFopIFxcLyB+c3VtKFgsIFksIFopKSAvXFxcbiAgKCFZIFggViBXIFogVS5cbiAgICAg
cHJvZHVjdChYLCBWLCBXKSBcXC8gfnByb2R1Y3QoWCwgWSwgVSkgXFwvIH5wcm9kdWN0KFks
IFosIFYpIFxcL1xuICAgICB+cHJvZHVjdChVLCBaLCBXKSkgL1xcXG4gICghWCBVIFogVyBW
IFkuXG4gICAgIHByb2R1Y3QoVSwgWiwgVykgXFwvIH5wcm9kdWN0KFgsIFksIFUpIFxcLyB+
cHJvZHVjdChZLCBaLCBWKSBcXC9cbiAgICAgfnByb2R1Y3QoWCwgViwgVykpIC9cXFxuICAo
IVguIHByb2R1Y3QobXVsdGlwbGljYXRpdmVfaWRlbnRpdHkoKSwgWCwgWCkgXFwvIH5kZWZp
bmVkKFgpKSAvXFxcbiAgKCFYLlxuICAgICBwcm9kdWN0KG11bHRpcGxpY2F0aXZlX2ludmVy
c2UoWCksIFgsIG11bHRpcGxpY2F0aXZlX2lkZW50aXR5KCkpIFxcL1xuICAgICBzdW0oYWRk
aXRpdmVfaWRlbnRpdHkoKSwgWCwgYWRkaXRpdmVfaWRlbnRpdHkoKSkgXFwvIH5kZWZpbmVk
KFgpKSAvXFxcbiAgKCFaIFkgWC4gcHJvZHVjdChZLCBYLCBaKSBcXC8gfnByb2R1Y3QoWCwg
WSwgWikpIC9cXFxuICAoIVggQyBEIEIgWiBBIFkuXG4gICAgIHN1bShDLCBELCBCKSBcXC8g
fnN1bShYLCBZLCBBKSBcXC8gfnByb2R1Y3QoQSwgWiwgQikgXFwvXG4gICAgIH5wcm9kdWN0
KFgsIFosIEMpIFxcLyB+cHJvZHVjdChZLCBaLCBEKSkgL1xcXG4gICghWCBBIFogQiBDIEQg
WS5cbiAgICAgcHJvZHVjdChBLCBaLCBCKSBcXC8gfnN1bShYLCBZLCBBKSBcXC8gfnByb2R1
Y3QoWCwgWiwgQykgXFwvXG4gICAgIH5wcm9kdWN0KFksIFosIEQpIFxcLyB+c3VtKEMsIEQs
IEIpKSAvXFxcbiAgKCFYIFkuIGRlZmluZWQoYWRkKFgsIFkpKSBcXC8gfmRlZmluZWQoWCkg
XFwvIH5kZWZpbmVkKFkpKSAvXFxcbiAgZGVmaW5lZChhZGRpdGl2ZV9pZGVudGl0eSgpKSAv
XFxcbiAgKCFYLiBkZWZpbmVkKGFkZGl0aXZlX2ludmVyc2UoWCkpIFxcLyB+ZGVmaW5lZChY
KSkgL1xcXG4gICghWCBZLiBkZWZpbmVkKG11bHRpcGx5KFgsIFkpKSBcXC8gfmRlZmluZWQo
WCkgXFwvIH5kZWZpbmVkKFkpKSAvXFxcbiAgZGVmaW5lZChtdWx0aXBsaWNhdGl2ZV9pZGVu
dGl0eSgpKSAvXFxcbiAgKCFYLlxuICAgICBkZWZpbmVkKG11bHRpcGxpY2F0aXZlX2ludmVy
c2UoWCkpIFxcLyB+ZGVmaW5lZChYKSBcXC9cbiAgICAgc3VtKGFkZGl0aXZlX2lkZW50aXR5
KCksIFgsIGFkZGl0aXZlX2lkZW50aXR5KCkpKSAvXFxcbiAgKCFZIFguIHN1bShYLCBZLCBh
ZGQoWCwgWSkpIFxcLyB+ZGVmaW5lZChYKSBcXC8gfmRlZmluZWQoWSkpIC9cXFxuICAoIVkg
WC4gcHJvZHVjdChYLCBZLCBtdWx0aXBseShYLCBZKSkgXFwvIH5kZWZpbmVkKFgpIFxcLyB+
ZGVmaW5lZChZKSkgL1xcXG4gICghWSBYLlxuICAgICBzdW0oYWRkaXRpdmVfaWRlbnRpdHko
KSwgWCwgWSkgXFwvIH5sZXNzX29yX2VxdWFsKFgsIFkpIFxcL1xuICAgICB+bGVzc19vcl9l
cXVhbChZLCBYKSkgL1xcXG4gICghWSBYIFouXG4gICAgIGxlc3Nfb3JfZXF1YWwoWCwgWikg
XFwvIH5sZXNzX29yX2VxdWFsKFgsIFkpIFxcL1xuICAgICB+bGVzc19vcl9lcXVhbChZLCBa
KSkgL1xcXG4gICghWSBYLlxuICAgICBsZXNzX29yX2VxdWFsKFgsIFkpIFxcLyBsZXNzX29y
X2VxdWFsKFksIFgpIFxcLyB+ZGVmaW5lZChYKSBcXC9cbiAgICAgfmRlZmluZWQoWSkpIC9c
XFxuICAoIVggVSBWIFogWS5cbiAgICAgbGVzc19vcl9lcXVhbChVLCBWKSBcXC8gfmxlc3Nf
b3JfZXF1YWwoWCwgWSkgXFwvIH5zdW0oWCwgWiwgVSkgXFwvXG4gICAgIH5zdW0oWSwgWiwg
VikpIC9cXFxuICAoIVggWiBZLlxuICAgICBsZXNzX29yX2VxdWFsKGFkZGl0aXZlX2lkZW50
aXR5KCksIFopIFxcL1xuICAgICB+bGVzc19vcl9lcXVhbChhZGRpdGl2ZV9pZGVudGl0eSgp
LCBYKSBcXC9cbiAgICAgfmxlc3Nfb3JfZXF1YWwoYWRkaXRpdmVfaWRlbnRpdHkoKSwgWSkg
XFwvIH5wcm9kdWN0KFgsIFksIFopKSAvXFxcbiAgfnN1bShhZGRpdGl2ZV9pZGVudGl0eSgp
LCBhZGRpdGl2ZV9pZGVudGl0eSgpLFxuICAgICBtdWx0aXBsaWNhdGl2ZV9pZGVudGl0eSgp
KSAvXFwgZGVmaW5lZChhKCkpIC9cXCBkZWZpbmVkKGIoKSkgL1xcXG4gICghWC4gfnN1bShh
KCksIFgsIGIoKSkpID09PiBGIl07CnByb3ZlIGZsZDU7CiopCgplbmQKKCojbGluZSAwLjAg
ImRhdGEvcHJlYW1ibGUuc21sIiopCigqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKikKKCogU0VU
VElORyBVUCBUSEUgRU5WSVJPTk1FTlQgSU4gV0hJQ0ggV0UgQ0FOIEVYRUNVVEUgVEhFIE1F
VElTIFBST1ZFUiAgICAgICAqKQooKiBDcmVhdGVkIGJ5IEpvZSBIdXJkLCBTZXB0ZW1iZXIg
MjAwMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopCigqID09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0gKikKCigqIExvYWRpbmcgdGhlIG1vZHVsZXMgd2UgdXNlICopCgpz
dHJ1Y3R1cmUgTWFpbiA9CnN0cnVjdAoKZnVuIG1haW4gKCkgPQpsZXQKCnZhbCAoKSA9IGFw
cCBsb2FkCiAgWyJDb21tYW5kTGluZSIsCiAgICJNaWx0b24iLAogICAiVXNlZnVsIiwgIlRl
cm0xIiwgIkNhbm9uMSIsICJUcHRwMSIsICJNZXRpczEiLCAiUHJvYmxlbTEiXTsKCigqIElu
Zml4IG9wZXJhdG9ycyAqKQoKaW5maXhyICMjIHwtPiA6Oj4gQD4gb287CgooKiBQcmV0dHkg
cHJpbnRlcnMgKikKCnZhbCAoKSA9IGluc3RhbGxQUCBUZXJtMS5wcF90ZXJtOwp2YWwgKCkg
PSBpbnN0YWxsUFAgVGVybTEucHBfZm9ybXVsYTsKdmFsICgpID0gaW5zdGFsbFBQIFN1YnN0
MS5wcF9zdWJzdDsKdmFsICgpID0gaW5zdGFsbFBQIFRobTEucHBfdGhtOwoKKCogUGFyc2lu
ZyBxdW90YXRpb25zICopCgp2YWwgKCkgPSBxdW90YXRpb24gOj0gdHJ1ZTsKCigqIENyZWF0
aW5nIG5pY2Ugb3V0cHV0ICopCgpsb2NhbAogIGZ1biBkdXAgXyAwIGwgPSBsIHwgZHVwIHgg
biBsID0gZHVwIHggKG4gLSAxKSAoeCA6OiBsKTsKICBmdW4gY2hzIHggbiA9IGltcGxvZGUg
KGR1cCB4IG4gW10pOwppbgogIGZ1biBhZHZlcnRpemUgcyA9IHByaW50ICgiPT0iIF4gcyBe
IGNocyAjIj0iICg3NyAtIHNpemUgcykgXiAiXG5cbiIpOwogIGZ1biBzZXBhcmF0b3IgKCkg
PSBwcmludCAoY2hzICMiLSIgNzkgXiAiXG5cbiIpOwplbmQ7CgpmdW4gY3V0b2ZmIG1heCA9
CiAgbGV0CiAgICBmdW4gY3V0IGZlYXMgc29mYSBsID0KICAgICAgbGV0IHZhbCBwb3NzID0g
c29mYSBeICIgLi4uICIgXiBVc2VmdWwuaW50X3RvX3N0cmluZyAobGVuZ3RoIGwpIF4gIiBt
b3JlIgogICAgICBpbiBjdXQnIChpZiBzaXplIHBvc3MgPCBtYXggdGhlbiBwb3NzIGVsc2Ug
ZmVhcykgc29mYSBsCiAgICAgIGVuZAogICAgYW5kIGN1dCcgXyBzb2ZhIFtdID0gc29mYQog
ICAgICB8IGN1dCcgZmVhcyBzb2ZhIChoIDo6IHQpID0KICAgICAgbGV0IHZhbCBzb2ZhJyA9
IGlmIHNvZmEgPSAiIiB0aGVuIGggZWxzZSBzb2ZhIF4gIiAiIF4gaAogICAgICBpbiBpZiBz
aXplIHNvZmEnIDwgbWF4IHRoZW4gY3V0IGZlYXMgc29mYScgdCBlbHNlIGZlYXMKICAgICAg
ZW5kCiAgaW4KICAgIGN1dCAiIiAiIgogIGVuZDsKCmxvY2FsCiAgZnVuIGIycyB0cnVlID0g
Im9uIiB8IGIycyBmYWxzZSA9ICJvZmYiOwogIHZhbCBpMnMgPSBVc2VmdWwuaW50X3RvX3N0
cmluZzsKICB2YWwgbDJzID0gTWV0ZXIxLmxpbWl0X3RvX3N0cmluZzsKaW4KICBmdW4gc2hv
dyAoc2V0dGluZ3MgOiBNZXRpczEucGFyYW1ldGVycykgPQogICAgbGV0CiAgICAgIHZhbCB7
bWVzb24gPSBNYWN0aXZlLCBkZWx0YSA9IERhY3RpdmUsIHJlc29sdXRpb24gPSBSYWN0aXZl
LAogICAgICAgICAgIG1lc29uX3Bhcm0gPSBNcGFybSwgcmVzb2x1dGlvbl9wYXJtID0gUnBh
cm19ID0gc2V0dGluZ3MKICAgIGluCiAgICAgICJyZXNvbHV0aW9uICAgICAgICAgICAgID0g
IiBeIGIycyBSYWN0aXZlIF4gIlxuIiBeCiAgICAgICJtZXNvbiAgICAgICAgICAgICAgICAg
ID0gIiBeIGIycyBNYWN0aXZlIF4gIlxuIiBeCiAgICAgICJkZWx0YSAgICAgICAgICAgICAg
ICAgID0gIiBeIGIycyBEYWN0aXZlIF4gIlxuIiBeCiAgICAgICJcbiIgXgogICAgICAicmVz
b2x1dGlvbl9wYXJtOlxuIiBeCiAgICAgICIgIHN1YnN1bXB0aW9uX2NoZWNraW5nID0gIiBe
IGkycyAoI3N1YnN1bXB0aW9uX2NoZWNraW5nIFJwYXJtKSBeICJcbiIgXgogICAgICAiICBw
b3NpdGl2ZV9yZWZpbmVtZW50ICA9ICIgXiBiMnMgKCNwb3NpdGl2ZV9yZWZpbmVtZW50IFJw
YXJtKSBeICJcbiIgXgogICAgICAiICB0aGVhcF9wYXJtOlxuIiBeCiAgICAgICIgICAgZmlm
b19za2V3ICAgICAgICAgID0gIiBeIGkycyAoI2ZpZm9fc2tldyAoI3RoZWFwX3Bhcm0gUnBh
cm0pKSBeICJcbiIgXgogICAgICAiICAgIHRoZWFwX2NsZWFuaW5nICAgICA9ICIgXiBpMnMg
KCNjbGVhbmluZ19mcmVxICgjdGhlYXBfcGFybSBScGFybSkpIF4iXG4iXgogICAgICAiXG4i
IF4KICAgICAgIm1lc29uX3Bhcm06XG4iIF4KICAgICAgIiAgYW5jZXN0b3JfcHJ1bmluZyAg
ICAgPSAiIF4gYjJzICgjYW5jZXN0b3JfcHJ1bmluZyBNcGFybSkgXiAiXG4iIF4KICAgICAg
IiAgYW5jZXN0b3JfY3V0dGluZyAgICAgPSAiIF4gYjJzICgjYW5jZXN0b3JfY3V0dGluZyBN
cGFybSkgXiAiXG4iIF4KICAgICAgIiAgc3RhdGVfc2ltcGxpZnkgICAgICAgPSAiIF4gYjJz
ICgjc3RhdGVfc2ltcGxpZnkgTXBhcm0pIF4gIlxuIiBeCiAgICAgICIgIGNhY2hlX2N1dHRp
bmcgICAgICAgID0gIiBeIGIycyAoI2NhY2hlX2N1dHRpbmcgTXBhcm0pIF4gIlxuIiBeCiAg
ICAgICIgIGRpdmlkZV9jb25xdWVyICAgICAgID0gIiBeIGIycyAoI2RpdmlkZV9jb25xdWVy
IE1wYXJtKSBeICJcbiIgXgogICAgICAiICB1bml0X2xlbW1haXppbmcgICAgICA9ICIgXiBi
MnMgKCN1bml0X2xlbW1haXppbmcgTXBhcm0pIF4gIlxuIiBeCiAgICAgICJcbiIgXgogICAg
ICAibGltaXQgICAgICAgICAgICAgICAgICA9ICIgXiBsMnMgKCFNZXRpczEubGltaXQpIF4g
IlxuXG4iCiAgICBlbmQ7CmVuZDsKCigqIFRoZSBjb3JlIHByb3ZpbmcgZnVuY3Rpb24gKikK
CnZhbCBjbmZfbm9ybWFsaXphdGlvbiA9IHJlZiBmYWxzZTsKCmZ1biB3aXRoX2NuZiBiID0g
VXNlZnVsLndpdGhfZmxhZyAoY25mX25vcm1hbGl6YXRpb24sIFVzZWZ1bC5LIGIpOwoKZnVu
IGNvcmVfcHJvdmUgZm0gPQogIGxldAogICAgdmFsIHByb3ZlciA9IGlmICFjbmZfbm9ybWFs
aXphdGlvbiB0aGVuIE1ldGlzMS5wcm92ZSBlbHNlIE1ldGlzMS5yYXdfcHJvdmUKICBpbgog
ICAgY2FzZSBVc2VmdWwudHJ5IHByb3ZlciBmbSBvZiBTT01FIF8KICAgICAgPT4gcHJpbnQg
Ik1FVElTOiBTVUNDRVNTRlVMTFkgUFJPVkVEXG5NRVRJUzogIgogICAgfCBOT05FID0+IHBy
aW50ICJNRVRJUzogRkFJTEVEIFRPIFBST1ZFXG5NRVRJUzogIgogIGVuZDsKCmZ1biBwcm9j
ZXNzIG5hbWUgZ29hbCA9CiAgKHByaW50ICgiTUVUSVM6IFByb2JsZW0gIiBeIG5hbWUgXiAi
XG4iKTsKICAgTWlsdG9uLnRpbWUgY29yZV9wcm92ZSBnb2FsOwogICBwcmludCAiXG4iKTsK
CmZ1biBwcm9jZXNzX3NldCAobiwgcykgPQogIGxldAogICAgdmFsICgpID0gYWR2ZXJ0aXpl
IG4KICAgIGZ1biBmIHtuYW1lLCBnb2FsfSA9IHByb2Nlc3MgbmFtZSAoVGVybTEucGFyc2Vf
Zm9ybXVsYSBnb2FsKQogIGluCiAgICBjYXNlIHMgb2YgW10gPT4gKCkKICAgIHwgcCA6OiBw
cyA9PiAoZiBwOyBhcHAgKGZuIHggPT4gKHNlcGFyYXRvciAoKTsgZiB4KSkgcHMpCiAgZW5k
OwoKKCogR2V0IG9wdGlvbnMgZnJvbSB0aGUgY29tbWFuZCBsaW5lICopCgpsb2NhbAogIG9w
ZW4gVXNlZnVsIE1ldGlzMTsKCiAgZnVuIHRsaW1pdCAiLSIgPSBOT05FIHwgdGxpbWl0IHMg
PSBTT01FIChSZWFsLmZyb21JbnQgKHN0cmluZ190b19pbnQgcykpOwoKICBmdW4gb3B0cyBb
XSA9IDAKICAgIHwgb3B0cyAoeCA6OiB4cykgPQogICAgaWYgeCA9ICItdCIgb3JlbHNlIHgg
PSAiLS10aW1lIiB0aGVuCiAgICAgIGNhc2UgeHMgb2YgW10gPT4gcmFpc2UgRmFpbCAib3B0
aW9uczogbGFzdCBhcmd1bWVudCAtdCAvIC0tdGltZSIKICAgICAgfCB5IDo6IHlzID0+IChs
aW1pdCA6PSB7dGltZSA9IHRsaW1pdCB5LCBpbmZzID0gTk9ORX07IG9wdHMgeXMpCiAgICBl
bHNlIGlmIHggPSAiLW0iIG9yZWxzZSB4ID0gIi0tbWVzb24iIHRoZW4KICAgICAgKHNldHRp
bmdzIDo9IHVwZGF0ZV9wYXJtX21lc29uIG5vdCAoIXNldHRpbmdzKTsgb3B0cyB4cykKICAg
IGVsc2UgaWYgeCA9ICItciIgb3JlbHNlIHggPSAiLS1yZXNvbHV0aW9uIiB0aGVuCiAgICAg
IChzZXR0aW5ncyA6PSB1cGRhdGVfcGFybV9yZXNvbHV0aW9uIG5vdCAoIXNldHRpbmdzKTsg
b3B0cyB4cykKICAgIGVsc2UgaWYgeCA9ICItZCIgb3JlbHNlIHggPSAiLS1kZWx0YSIgdGhl
bgogICAgICAoc2V0dGluZ3MgOj0gdXBkYXRlX3Bhcm1fZGVsdGEgbm90ICghc2V0dGluZ3Mp
OyBvcHRzIHhzKQogICAgZWxzZSBpZiB4ID0gIi0tIiB0aGVuIGxlbmd0aCB4cwogICAgZWxz
ZSBpZiBoZCAoZXhwbG9kZSB4KSA9ICMiLSIgdGhlbiByYWlzZSBGYWlsICgidW5rbm93biBw
YXJhbWV0ZXI6ICIgXiB4KQogICAgZWxzZSAxICsgbGVuZ3RoIHhzOwppbgogIGZ1biBvcHRp
b25zICgpID0KICAgIGxldAogICAgICB2YWwgKCkgPSBzZXR0aW5ncyA6PSB1cGRhdGVfcGFy
bV9yZXNvbHV0aW9uIChLIGZhbHNlKSAoIXNldHRpbmdzKTsKICAgICAgdmFsICgpID0gc2V0
dGluZ3MgOj0gdXBkYXRlX3Bhcm1fbWVzb24gICAgICAoSyBmYWxzZSkgKCFzZXR0aW5ncyk7
CiAgICAgIHZhbCAoKSA9IHNldHRpbmdzIDo9IHVwZGF0ZV9wYXJtX2RlbHRhICAgICAgKEsg
ZmFsc2UpICghc2V0dGluZ3MpOwoKICAgICAgdmFsIGwgPSBDb21tYW5kTGluZS5hcmd1bWVu
dHMgKCkKICAgICAgdmFsIG4gPSBvcHRzIGwKICAgIGluCiAgICAgIHNwbGl0IGwgKGxlbmd0
aCBsIC0gbikKICAgIGVuZDsKZW5kOwoKdmFsIChvcHRzLCB3b3JrKSA9IGlmIE1pbHRvbi5t
bCA9ICJNTHRvbiIgdGhlbiBvcHRpb25zICgpIGVsc2UgKFtdLCBbXSk7CigqI2xpbmUgMC4w
ICJkYXRhL2JlbmNobWFyay5zbWwiKikKdmFsIHB1cmUgPSBudWxsIChDb21tYW5kTGluZS5h
cmd1bWVudHMgKCkpOwoKbG9jYWwKICBvcGVuIFVzZWZ1bCBNZXRpczE7CmluCiAgdmFsICgp
ID0KICAgIGlmIHB1cmUgdGhlbiBzZXR0aW5nczo9IHVwZGF0ZV9wYXJtX21lc29uIChLIHRy
dWUpICghc2V0dGluZ3MpIGVsc2UgKCk7CmVuZDsKCmxvY2FsCiAgb3BlbiBVc2VmdWwgUHJv
YmxlbTE7CiAgZnVuIGV4dHJhY3QgcCBuID0KICAgICAoT3B0aW9uLnZhbE9mIG8gTGlzdC5m
aW5kIChmbiB7bmFtZSwgZ29hbCA9IF99ID0+IG5hbWUgPSBuKSkgcDsKCiAgdmFsIG1lc29u
X3BydW5lID0KICAgIGlmIHB1cmUgdGhlbiBbIlAyOSIsICJMREEwMDctMyIsICJHUlAwMTAt
NCIsICJHRU8wMDItNCJdIGVsc2UgWyJHRU8wMDItNCJdOwogICAgICAKICB2YWwgcHJ1bmUg
PQogICAgbGV0CiAgICAgIHZhbCB7bWVzb24sIHJlc29sdXRpb24sIC4uLn0gPSAhTWV0aXMx
LnNldHRpbmdzCiAgICBpbgogICAgICAoZm4gZiA9PiBMaXN0LmZpbHRlciAobm90IG8gZikp
CiAgICAgIChjYXNlIChtZXNvbiwgcmVzb2x1dGlvbikgb2YgKGZhbHNlLCBmYWxzZSkgPT4g
SyB0cnVlCiAgICAgICB8IChmYWxzZSwgdHJ1ZSkgPT4gQyBtZW0gWyJDT0wwNjAtMyJdCiAg
ICAgICB8ICh0cnVlLCBmYWxzZSkgPT4gQyBtZW0gbWVzb25fcHJ1bmUKICAgICAgIHwgKHRy
dWUsIHRydWUpID0+IEsgZmFsc2UpCiAgICBlbmQ7CgogIHZhbCBzcmMwID0gWyJQMjYiLCAi
UDI5IiwgIlA0NiIsICJHSUxNT1JFXzEiLCAiTE9TIiwgIlNURUFNX1JPTExFUiJdOwoKICB2
YWwgc3JjMSA9IFsiUDQ4IiwgIlA0OSIsICJBR0FUSEEiXTsKCiAgdmFsIHNyYzIgPQogICAg
WyJMQ0wwMDktMSIsICJDT0wwNjAtMyIsICJDT0wwNTgtMiIsICJMQ0wxMDctMSIsICJMREEw
MDctMyIsCiAgICAgIkdSUDAxMC00IiwgIkJPTzAyMS0xIiwgIkdFTzAwMi00IiwgIkdSUDEy
OC00LjAwMyJdOwppbgogIHZhbCBzZXQwID0gbWFwIChleHRyYWN0IG5vbmVxdWFsaXR5KSAo
cHJ1bmUgc3JjMCk7CiAgdmFsIHNldDEgPSBtYXAgKGV4dHJhY3QgZXF1YWxpdHkpICAgIChw
cnVuZSBzcmMxKTsKICB2YWwgc2V0MiA9IG1hcCAoZXh0cmFjdCB0cHRwKSAgICAgICAgKHBy
dW5lIHNyYzIpOwplbmQ7Cgp2YWwgcHJvZ3JhbSA9ICJiZW5jaG1hcmsiIF4gKGlmIHB1cmUg
dGhlbiAiKiIgZWxzZSAiIik7Cgp2YWwgKCkgPSBhZHZlcnRpemUgKHByb2dyYW0gXiAiPT1z
dGFydGluZyIpOwoKdmFsICgpID0gYWR2ZXJ0aXplICJzZXR0aW5ncyI7Cgp2YWwgKCkgPSBw
cmludCAoc2hvdyAoIU1ldGlzMS5zZXR0aW5ncykpOwoKdmFsICgpID0gd2l0aF9jbmYgdHJ1
ZSBwcm9jZXNzX3NldCAoIm5vbmVxdWFsaXR5Iiwgc2V0MCk7Cgp2YWwgKCkgPSB3aXRoX2Nu
ZiB0cnVlIHByb2Nlc3Nfc2V0ICgiZXF1YWxpdHkiLCBzZXQxKTsKCnZhbCAoKSA9IHdpdGhf
Y25mIGZhbHNlIHByb2Nlc3Nfc2V0ICgidHB0cCIsIHNldDIpOwoKdmFsICgpID0gYWR2ZXJ0
aXplIChwcm9ncmFtIF4gIj09ZmluaXNoaW5nIik7CgppbgogICgpCmVuZDsKCnZhbCBkb2l0
ID0gbWFpbgoKZW5kCgp2YWwgXyA9IE1haW4uZG9pdAo=
--yGupo2WAxL--


-------------------------------------------------------
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