### SYNC-TRANSFER 3/5 -- mit sync-entpacken.bat entpacken
### Base64 - NICHT von Hand bearbeiten.
### FILE: js/import_excel.js | 91225
Ly8gPT09IGltcG9ydC9leGNlbC1pbXBvcnQuanMgPT09Ci8vIEV4Y2VsLUltcG9ydC1XaXphcmQg
ZnVlciBwbGFudW5nLmpzb24gKyBwZXJzb25lbi5qc29uLiBOdXR6dCBTaGVldEpTCi8vICh4bHN4
LmZ1bGwubWluLmpzLCBsb2thbCBpbiBWSTMvKS4gRHJlaS1QaGFzZW4tU2NocmVpYnZvcmdhbmcg
bWl0Ci8vIEF1dG8tQmFja3VwIHZvciBQaGFzZSAxLgoKaW1wb3J0IHsgWiB9IGZyb20gJy4vY29y
ZV9zdGF0ZS5qcyc7CmltcG9ydCB7IGVzY2FwZUhUTUwsIGVzY2FwZUF0dHIsIGRhdHVtU3RyLCBw
aWRLZXkgfSBmcm9tICcuL2NvcmVfdXRpbC5qcyc7CmltcG9ydCB7IGFwaVBvc3QsIGFwaVB1dCB9
IGZyb20gJy4vY29yZV9hcGkuanMnOwppbXBvcnQgeyB0b2FzdCwgbW9kYWxaZWlnZW4sIG1vZGFs
U2NobGllc3NlbiwgYmVzdGFldGlnZW4sIGhpbGZlSWNvbiB9IGZyb20gJy4vdWlfZGlhbG9nLmpz
JzsKaW1wb3J0IHsgYWRtaW5MaXN0ZW5Ob3JtYWxpc2llcmVuIH0gZnJvbSAnLi9jb3JlX2RhdGVu
TGFkZW4uanMnOwppbXBvcnQgeyB0YWdlRXJ6ZXVnZW4sIHRhZ0luZm9zQmVyZWNobmVuLCBncmlk
UmVuZGVybiwga29wZlJlbmRlcm4gfSBmcm9tICcuL2dyaWRfcmVuZGVyLmpzJzsKaW1wb3J0IHsg
aXN0Q29kZUFrdGl2IH0gZnJvbSAnLi9hZG1pbl9jb2Rlcy5qcyc7CmltcG9ydCB7IG1haWxUcmln
Z2VyRmV1ZXJuIH0gZnJvbSAnLi9lbWFpbF92b3JsYWdlbi5qcyc7CgogICAgLy8gPT09PT0gRXhj
ZWwtSW1wb3J0ZXIgPT09PT0KCiAgICAvLyBTdGF0ZSBkZXMgSW1wb3J0ZXJzIHp3aXNjaGVuIERh
dGVpLUF1c3dhaGwgdW5kIGVpZ2VudGxpY2hlbSBJbXBvcnQuCiAgICAvLyBXaXJkIGJlaW0gV2Vj
aHNlbCBkZXIgRGF0ZWkgdmVyd29yZmVuLgogICAgdmFyIGltcFN0YXRlID0gbnVsbDsKCiAgICAv
LyBPcHRpbWlzdGlzY2hlIE5lYmVubGFldWZpZ2tlaXQ6IFZlcnNpb24gKG10aW1lLVRpY2tzKSB2
b24gcGxhbnVuZy5qc29uLAogICAgLy8gYXVmIGRlciBkZXIgVHJhbnNmb3JtIGF1ZmdlYmF1dCBo
YXQuIFdpcmQgYmVpbSBmcmlzY2hlbiBHRVQgdW5taXR0ZWxiYXIKICAgIC8vIHZvciBkZW0gVHJh
bnNmb3JtIGdlc2V0enQgdW5kIGJlaW0gYWJzY2hsaWVzc2VuZGVuIFBVVCBhbHMKICAgIC8vIElm
LVBsYW51bmctVmVyc2lvbiBtaXRnZXNjaGlja3QuIEhhdCBlaW4gYW5kZXJlciBOdXR6ZXIgd2Fl
aHJlbmQgZGVzCiAgICAvLyBJbXBvcnRzIGdlc2NocmllYmVuLCBsZWhudCBkZXIgU2VydmVyIG1p
dCA0MDkgYWIgc3RhdHQgZGVzc2VuIEFlbmRlcnVuZwogICAgLy8genUgdWViZXJzY2hyZWliZW4u
IG51bGwgPSBTZXJ2ZXIgbGllZmVydCBrZWluZSBWZXJzaW9uIChBYndhZXJ0cy1Lb21wYXQsCiAg
ICAvLyBkYW5uIGtlaW4gQ2hlY2spLgogICAgdmFyIGltcExldHp0ZVZlcnNpb24gPSBudWxsOwoK
ICAgIC8vIEdFVCAvYXBpL3BsYW51bmcgaW5rbC4gVmVyc2lvbnMtSGVhZGVyLiBhcGkoKSB2ZXJ3
aXJmdCBIZWFkZXIsIGRhaGVyCiAgICAvLyByYXcgZmV0Y2guCiAgICBmdW5jdGlvbiBpbXBHZXRQ
bGFudW5nTWl0VmVyc2lvbigpIHsKICAgICAgICByZXR1cm4gZmV0Y2goJy9hcGkvcGxhbnVuZycp
LnRoZW4oZnVuY3Rpb24ocikgewogICAgICAgICAgICBpZiAoIXIub2spIHRocm93IG5ldyBFcnJv
cignSFRUUCAnICsgci5zdGF0dXMpOwogICAgICAgICAgICBpbXBMZXR6dGVWZXJzaW9uID0gci5o
ZWFkZXJzLmdldCgnWC1QbGFudW5nLVZlcnNpb24nKSB8fCBudWxsOwogICAgICAgICAgICByZXR1
cm4gci5qc29uKCk7CiAgICAgICAgfSk7CiAgICB9CgogICAgLy8gUmFuZ29yZG51bmcgYXVzIGVp
bmVtIEV4Y2VsLVplbGx3ZXJ0IGV4dHJhaGllcmVuLiBBa3plcHRpZXJ0ICIjMTExIiwKICAgIC8v
ICIxMTEiLCByZWluZSBaYWhsZW4sIGFiZXIgYXVjaCBUZXh0IHdpZSAiIzQyIFZlcnRyZXR1bmci
IChlcnN0ZSBaaWZmZXJuLQogICAgLy8gZ3J1cHBlIHdpcmQgZ2Vub21tZW4pLiBSdWVja2dhYmU6
IGludGVnZXIgb2RlciBudWxsIHdlbm4gbmljaHRzIGxlc2Jhci4KICAgIGZ1bmN0aW9uIGltcFJh
bmdQYXJzZW4ocmF3KSB7CiAgICAgICAgdmFyIHMgPSBTdHJpbmcocmF3ID09IG51bGwgPyAnJyA6
IHJhdykudHJpbSgpOwogICAgICAgIGlmICghcykgcmV0dXJuIG51bGw7CiAgICAgICAgdmFyIG0g
PSBzLm1hdGNoKC8oXGQrKS8pOwogICAgICAgIHJldHVybiBtID8gcGFyc2VJbnQobVsxXSwgMTAp
IDogbnVsbDsKICAgIH0KCiAgICAvLyBFeGNlbC1TZXJpYWwtTnVtYmVyIC0+IFlZWVktTU0tREQu
IEV4Y2VsLUVwb2NoZSBpc3QgMTg5OS0xMi0zMAogICAgLy8gKGtvbXBlbnNpZXJ0IGRpZSBQc2V1
ZG8tMTkwMC1TY2hhbHRqYWhyLUJlc29uZGVyaGVpdCkuCiAgICBmdW5jdGlvbiBpbXBFeGNlbFNl
cmlhbFRvSXNvKHNlcmlhbCkgewogICAgICAgIHZhciBuID0gcGFyc2VGbG9hdChzZXJpYWwpOwog
ICAgICAgIGlmIChpc05hTihuKSkgcmV0dXJuIG51bGw7CiAgICAgICAgdmFyIG1zID0gKG4gLSAy
NTU2OSkgKiA4NjQwMDAwMDsgIC8vIDI1NTY5ID0gVGFnZSB2b24gMTg5OS0xMi0zMCB6dSAxOTcw
LTAxLTAxCiAgICAgICAgdmFyIGQgPSBuZXcgRGF0ZShtcyk7CiAgICAgICAgaWYgKGlzTmFOKGQu
Z2V0VGltZSgpKSkgcmV0dXJuIG51bGw7CiAgICAgICAgLy8gVVRDLURhdHVtIHp1cnVlY2sgYXVm
IGxva2FsZSBEYXR1bXN0ZWlsZSB1bXJlY2huZW4gKEV4Y2VsLVNlcmlhbCBpc3QKICAgICAgICAv
LyBkYXR1bXNsb3Mg4oCUIHdpciBuZWhtZW4gZGFzIHJlaW5lIERhdHVtIG9obmUgWmVpdHpvbmUp
LgogICAgICAgIHZhciB5ID0gZC5nZXRVVENGdWxsWWVhcigpLCBtID0gZC5nZXRVVENNb250aCgp
ICsgMSwgZGQgPSBkLmdldFVUQ0RhdGUoKTsKICAgICAgICB2YXIgcGFkID0gZnVuY3Rpb24oeCkg
eyByZXR1cm4gKHggPCAxMCA/ICcwJyA6ICcnKSArIHg7IH07CiAgICAgICAgcmV0dXJuIHkgKyAn
LScgKyBwYWQobSkgKyAnLScgKyBwYWQoZGQpOwogICAgfQoKICAgIC8vIEhhdXB0ZWluc3RpZWc6
IERhdGVpIC0+IFBhcnNlIC0+IEFuYWx5c2UgLT4gU3RhdHVzLUthcnRlIHJlbmRlcm4uCiAgICBm
dW5jdGlvbiBpbXBEYXRlaVZlcmFyYmVpdGVuKGZpbGUpIHsKICAgICAgICB2YXIgc3RhdHVzRWwg
PSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaW1wLXN0YXR1cycpOwogICAgICAgIHZhciBuYW1l
RWwgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaW1wLWRhdGVpLW5hbWUnKTsKICAgICAgICBp
ZiAobmFtZUVsKSBuYW1lRWwudGV4dENvbnRlbnQgPSBmaWxlLm5hbWUgKyAnICgnICsgTWF0aC5y
b3VuZChmaWxlLnNpemUgLyAxMDI0KSArICcgS0IpJzsKICAgICAgICBzdGF0dXNFbC5pbm5lckhU
TUwgPSAnPGRpdiBjbGFzcz0iaW1wLXN0YXR1cy1rYXJ0ZSI+RGF0ZWkgd2lyZCBnZWxlc2VuIOKA
pjwvZGl2Pic7CiAgICAgICAgaW1wU3RhdGUgPSBudWxsOwoKICAgICAgICBpZiAodHlwZW9mIFhM
U1ggPT09ICd1bmRlZmluZWQnKSB7CiAgICAgICAgICAgIHN0YXR1c0VsLmlubmVySFRNTCA9ICc8
ZGl2IGNsYXNzPSJpbXAtc3RhdHVzLWthcnRlIiBzdHlsZT0iYm9yZGVyLWNvbG9yOnZhcigtLWZh
cmJlLWZlaGxlcikiPjxiPkZlaGxlcjo8L2I+IHhsc3gtQmlibGlvdGhlayBuaWNodCBnZWxhZGVu
LiBCaXR0ZSBTZWl0ZSBuZXUgbGFkZW4uPC9kaXY+JzsKICAgICAgICAgICAgcmV0dXJuOwogICAg
ICAgIH0KCiAgICAgICAgdmFyIHJlYWRlciA9IG5ldyBGaWxlUmVhZGVyKCk7CiAgICAgICAgcmVh
ZGVyLm9ubG9hZCA9IGZ1bmN0aW9uKGUpIHsKICAgICAgICAgICAgdHJ5IHsKICAgICAgICAgICAg
ICAgIHN0YXR1c0VsLmlubmVySFRNTCA9ICc8ZGl2IGNsYXNzPSJpbXAtc3RhdHVzLWthcnRlIj5F
eGNlbCB3aXJkIGFuYWx5c2llcnQg4oCmPC9kaXY+JzsKICAgICAgICAgICAgICAgIHNldFRpbWVv
dXQoZnVuY3Rpb24oKSB7CiAgICAgICAgICAgICAgICAgICAgdHJ5IHsgaW1wQW5hbHlzaWVyZW4o
ZS50YXJnZXQucmVzdWx0LCBzdGF0dXNFbCk7IH0KICAgICAgICAgICAgICAgICAgICBjYXRjaCAo
ZXJyKSB7IGltcEZlaGxlcihzdGF0dXNFbCwgZXJyKTsgfQogICAgICAgICAgICAgICAgfSwgNDAp
OwogICAgICAgICAgICB9IGNhdGNoIChlcnIpIHsgaW1wRmVobGVyKHN0YXR1c0VsLCBlcnIpOyB9
CiAgICAgICAgfTsKICAgICAgICByZWFkZXIub25lcnJvciA9IGZ1bmN0aW9uKCkgeyBpbXBGZWhs
ZXIoc3RhdHVzRWwsIG5ldyBFcnJvcignRGF0ZWkga29ubnRlIG5pY2h0IGdlbGVzZW4gd2VyZGVu
LicpKTsgfTsKICAgICAgICByZWFkZXIucmVhZEFzQXJyYXlCdWZmZXIoZmlsZSk7CiAgICB9Cgog
ICAgZnVuY3Rpb24gaW1wRmVobGVyKHN0YXR1c0VsLCBlcnIpIHsKICAgICAgICBjb25zb2xlLmVy
cm9yKCdJbXBvcnQtRmVobGVyOicsIGVycik7CiAgICAgICAgc3RhdHVzRWwuaW5uZXJIVE1MID0g
JzxkaXYgY2xhc3M9ImltcC1zdGF0dXMta2FydGUiIHN0eWxlPSJib3JkZXItY29sb3I6dmFyKC0t
ZmFyYmUtZmVobGVyKSI+JyArCiAgICAgICAgICAgICc8Yj5GZWhsZXIgYmVpbSBJbXBvcnQ6PC9i
PiAnICsgZXNjYXBlSFRNTChlcnIubWVzc2FnZSB8fCBTdHJpbmcoZXJyKSkgKyAnPC9kaXY+JzsK
ICAgIH0KCiAgICBmdW5jdGlvbiBpbXBBbmFseXNpZXJlbihhcnJheUJ1ZmZlciwgc3RhdHVzRWwp
IHsKICAgICAgICB2YXIgd2IgPSBYTFNYLnJlYWQoYXJyYXlCdWZmZXIsIHsgdHlwZTogJ2FycmF5
JywgY2VsbERhdGVzOiBmYWxzZSwgY2VsbFN0eWxlczogZmFsc2UsIHNoZWV0Um93czogMjAwIH0p
OwogICAgICAgIHZhciBzaGVldE5hbWUgPSB3Yi5TaGVldE5hbWVzLmluZGV4T2YoJ1BsYW51bmcn
KSA+PSAwID8gJ1BsYW51bmcnIDogd2IuU2hlZXROYW1lc1swXTsKICAgICAgICB2YXIgc2hlZXQg
PSB3Yi5TaGVldHNbc2hlZXROYW1lXTsKICAgICAgICBpZiAoIXNoZWV0KSB0aHJvdyBuZXcgRXJy
b3IoJ0tlaW4gU2hlZXQgIlBsYW51bmciIGluIGRlciBEYXRlaS4nKTsKCiAgICAgICAgLy8gUmFu
Z2UgaW4gYW9hIChhcnJheSBvZiBhcnJheXMpIGxlc2VuLCBkYW1pdCB3aXIgZ2V6aWVsdCBhdWYg
WmVpbGVuL1NwYWx0ZW4genVncmVpZmVuLgogICAgICAgIHZhciBhb2EgPSBYTFNYLnV0aWxzLnNo
ZWV0X3RvX2pzb24oc2hlZXQsIHsgaGVhZGVyOiAxLCBibGFua3Jvd3M6IHRydWUsIHJhdzogdHJ1
ZSwgZGVmdmFsOiAnJyB9KTsKCiAgICAgICAgLy8gRGF0dW1zLVNwYWx0ZW4gYXVzIFplaWxlIDEg
KEluZGV4IDApOiBhYiBTcGFsdGUgSiA9IEluZGV4IDkuCiAgICAgICAgdmFyIHJvdzEgPSBhb2Fb
MF0gfHwgW107CiAgICAgICAgdmFyIGRhdHVtU3BhbHRlbiA9IFtdOyAgLy8gW3sgaWR4OiA5LCBk
YXR1bTogJzIwMjYtMDEtMDEnIH0sIC4uLl0KICAgICAgICBmb3IgKHZhciBjID0gOTsgYyA8IHJv
dzEubGVuZ3RoOyBjKyspIHsKICAgICAgICAgICAgdmFyIGlzbyA9IGltcEV4Y2VsU2VyaWFsVG9J
c28ocm93MVtjXSk7CiAgICAgICAgICAgIGlmIChpc28pIGRhdHVtU3BhbHRlbi5wdXNoKHsgaWR4
OiBjLCBkYXR1bTogaXNvIH0pOwogICAgICAgIH0KCiAgICAgICAgLy8gUGVyc29uZW4gZmluZGVu
OiBhYiBaZWlsZSAyMSAoSW5kZXggMjApLCBOYWNobmFtZSBpbiBTcGFsdGUgQyAoSW5kZXggMiks
CiAgICAgICAgLy8gc3RvcHBlIGJlaSBlcnN0ZW4gNSBsZWVyZW4gWmVpbGVuIGluIEZvbGdlLgog
ICAgICAgIHZhciBleGNlbFBlcnNvbmVuID0gW107ICAvLyBbeyB6ZWlsZUlkeCwgbmFjaG5hbWUs
IG9lLCBncnVwcGUsIGRpZW5zdG51bW1lciwgdGVsZWZvbiwgemVsbGVuOiB7ZGF0dW06Y29kZX0s
IGtvbW1lbnRhcmU6IHtkYXR1bTp0ZXh0fSB9XQogICAgICAgIHZhciBsZWVyID0gMDsKICAgICAg
ICBmb3IgKHZhciByID0gMjA7IHIgPCBhb2EubGVuZ3RoOyByKyspIHsKICAgICAgICAgICAgdmFy
IHJvdyA9IGFvYVtyXSB8fCBbXTsKICAgICAgICAgICAgdmFyIG5hbWUgPSBTdHJpbmcocm93WzJd
IHx8ICcnKS50cmltKCk7CiAgICAgICAgICAgIGlmICghbmFtZSkgeyBsZWVyKys7IGlmIChsZWVy
ID49IDUpIGJyZWFrOyBjb250aW51ZTsgfQogICAgICAgICAgICBsZWVyID0gMDsKICAgICAgICAg
ICAgdmFyIGVpbnRyYWVnZSA9IHt9OwogICAgICAgICAgICBkYXR1bVNwYWx0ZW4uZm9yRWFjaChm
dW5jdGlvbihkcykgewogICAgICAgICAgICAgICAgdmFyIHYgPSByb3dbZHMuaWR4XTsKICAgICAg
ICAgICAgICAgIGlmICh2ID09PSBudWxsIHx8IHYgPT09IHVuZGVmaW5lZCkgcmV0dXJuOwogICAg
ICAgICAgICAgICAgdiA9IFN0cmluZyh2KS50cmltKCk7CiAgICAgICAgICAgICAgICBpZiAoIXYp
IHJldHVybjsKICAgICAgICAgICAgICAgIGVpbnRyYWVnZVtkcy5kYXR1bV0gPSB2OwogICAgICAg
ICAgICB9KTsKICAgICAgICAgICAgZXhjZWxQZXJzb25lbi5wdXNoKHsKICAgICAgICAgICAgICAg
IHplaWxlSWR4OiByLAogICAgICAgICAgICAgICAgbmFjaG5hbWU6IG5hbWUsCiAgICAgICAgICAg
ICAgICBvZTogICAgICAgU3RyaW5nKHJvd1szXSB8fCAnJykudHJpbSgpLAogICAgICAgICAgICAg
ICAgZ3J1cHBlOiAgIFN0cmluZyhyb3dbNF0gfHwgJycpLnRyaW0oKSwKICAgICAgICAgICAgICAg
IC8vIFNwYWx0ZSBGIGVudGhhZWx0IGRpZSBSYW5nb3JkbnVuZyAoei5CLiAiIzExMSIpLiBXaXIg
ZnVlaHJlbgogICAgICAgICAgICAgICAgLy8gc293b2hsIGRlbiBSb2h0ZXh0IGFscyBhdWNoIGRp
ZSBnZXBhcnN0ZSBaYWhsIG1pdCwgZGFtaXQgZGVyCiAgICAgICAgICAgICAgICAvLyBNYXBwaW5n
LURpYWxvZyBkZW4gT3JpZ2luYWx3ZXJ0IGFuemVpZ2VuIGthbm4uCiAgICAgICAgICAgICAgICBy
YW5nUm9oOiAgU3RyaW5nKHJvd1s1XSB8fCAnJykudHJpbSgpLAogICAgICAgICAgICAgICAgcmFu
ZzogICAgIGltcFJhbmdQYXJzZW4ocm93WzVdKSwKICAgICAgICAgICAgICAgIHRlbGVmb246ICBT
dHJpbmcocm93WzZdIHx8ICcnKS50cmltKCksCiAgICAgICAgICAgICAgICBlaW50cmFlZ2U6IGVp
bnRyYWVnZQogICAgICAgICAgICB9KTsKICAgICAgICB9CgogICAgICAgIC8vIEtvbW1lbnRhcmUg
YXVzIGRlbiBTaGVldC1Db21tZW50cyBleHRyYWhpZXJlbi4gU2hlZXRKUyBzcGVpY2hlcnQKICAg
ICAgICAvLyBLb21tZW50YXJlIGFuIHNoZWV0W3plbGxBZGRyXS5jOyBkYXMgZnVua3Rpb25pZXJ0
IG51ciB3ZW5uIGNlbGxTdHlsZXMKICAgICAgICAvLyBvZGVyIGJvb2tGaWxlcyBha3RpdiB3YXJl
bi4gRnVlciB4bHNtL3hsc3ggcmVpY2hlbiBTdGFuZGFyZG9wdGlvbmVuLgogICAgICAgIC8vIFdp
ciBpdGVyaWVyZW4gYWxsZSBaZWxsZW4gaW0gZ2VsZXNlbmVuIEJlcmVpY2ggdW5kIHNhbW1lbG4g
S29tbWVudGFyZS4KICAgICAgICB2YXIga29tbWVudGFyZSA9IHt9OyAgLy8geyB6ZWlsZTogeyBk
YXR1bTogWyB7IHRleHQsIGF1dG9yIH0gXSB9IH0KICAgICAgICB2YXIgcmVmID0gc2hlZXRbJyFy
ZWYnXTsKICAgICAgICBpZiAocmVmKSB7CiAgICAgICAgICAgIHZhciByYW5nZSA9IFhMU1gudXRp
bHMuZGVjb2RlX3JhbmdlKHJlZik7CiAgICAgICAgICAgIGZvciAodmFyIFIgPSAyMDsgUiA8PSBy
YW5nZS5lLnIgJiYgUiA8IGFvYS5sZW5ndGg7IFIrKykgewogICAgICAgICAgICAgICAgZm9yICh2
YXIgQyA9IDk7IEMgPD0gcmFuZ2UuZS5jOyBDKyspIHsKICAgICAgICAgICAgICAgICAgICB2YXIg
YWRkciA9IFhMU1gudXRpbHMuZW5jb2RlX2NlbGwoeyByOiBSLCBjOiBDIH0pOwogICAgICAgICAg
ICAgICAgICAgIHZhciB6ZWxsID0gc2hlZXRbYWRkcl07CiAgICAgICAgICAgICAgICAgICAgaWYg
KCF6ZWxsIHx8ICF6ZWxsLmMpIGNvbnRpbnVlOwogICAgICAgICAgICAgICAgICAgIC8vIFBybyBF
eGNlbC1Ob3RpeiBFSU4gTGlzdGVuLUVpbnRyYWcgbWl0IGVpZ2VuZW0gQXV0b3Ig4oCUCiAgICAg
ICAgICAgICAgICAgICAgLy8gYmVpIG1laHJlcmVuIE5vdGl6ZW4vQW50d29ydGVuICh0aHJlYWRl
ZCkgYmxlaWJ0IGRpZQogICAgICAgICAgICAgICAgICAgIC8vIFp1b3JkbnVuZyBlcmhhbHRlbi4g
QXV0b3IgYmV2b3J6dWd0IGF1cyBkZW0gTm90aXotQXV0b3ItCiAgICAgICAgICAgICAgICAgICAg
Ly8gRmVsZCAoY2MuYSk7IGtsYXNzaXNjaGUgRXhjZWwtTm90aXplbiBiZXR0ZW4gIkF1dG9yOlxu
IgogICAgICAgICAgICAgICAgICAgIC8vIHp1c2FldHpsaWNoIGluIGRlbiBUZXh0IGVpbiDigJQg
bnVyIEdFTkFVIGRpZXNlcyBQcmFlZml4CiAgICAgICAgICAgICAgICAgICAgLy8gc3RyaXBwZW4g
KG5pY2h0IGplZGVzICJXb3J0OiIsIHNvbnN0IHplcmxlZ3QgZXMgei5CLgogICAgICAgICAgICAg
ICAgICAgIC8vICJBY2h0dW5nOiAuLi4iKS4gRWluIFplaXRzdGVtcGVsIHdpcmQgYmV3dXNzdCBO
SUNIVAogICAgICAgICAgICAgICAgICAgIC8vIGdlc2V0enQg4oCUIEV4Y2VsLU5vdGl6ZW4gbGll
ZmVybiBrZWluZW4gdmVybGFlc3NsaWNoZW4uCiAgICAgICAgICAgICAgICAgICAgdmFyIGNsaXN0
ZSA9ICh6ZWxsLmMgfHwgW10pLm1hcChmdW5jdGlvbihjYykgewogICAgICAgICAgICAgICAgICAg
ICAgICB2YXIgcmF3ID0gU3RyaW5nKGNjLnQgfHwgJycpOwogICAgICAgICAgICAgICAgICAgICAg
ICB2YXIgYXV0b3IgPSBTdHJpbmcoY2MuYSB8fCAnJykudHJpbSgpOwogICAgICAgICAgICAgICAg
ICAgICAgICB2YXIgdCA9IHJhdzsKICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGF1dG9yICYm
IHJhdy5zbGljZSgwLCBhdXRvci5sZW5ndGggKyAxKS50b0xvd2VyQ2FzZSgpID09PSAoYXV0b3Ig
KyAnOicpLnRvTG93ZXJDYXNlKCkpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHQgPSBy
YXcuc2xpY2UoYXV0b3IubGVuZ3RoICsgMSkucmVwbGFjZSgvXlxzKlxuPy8sICcnKTsKICAgICAg
ICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmICghYXV0b3IpIHsKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHZhciBwbSA9IHJhdy5tYXRjaCgvXihbXjpcbl17MSw0MH0pOlxzKlxuLyk7CiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAocG0pIHsgYXV0b3IgPSBwbVsxXS50cmltKCk7
IHQgPSByYXcuc2xpY2UocG1bMF0ubGVuZ3RoKTsgfQogICAgICAgICAgICAgICAgICAgICAgICB9
CiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB7IHRleHQ6IHQudHJpbSgpLCBhdXRvcjog
YXV0b3IgfTsKICAgICAgICAgICAgICAgICAgICB9KS5maWx0ZXIoZnVuY3Rpb24oeCkgeyByZXR1
cm4geC50ZXh0OyB9KTsKICAgICAgICAgICAgICAgICAgICBpZiAoIWNsaXN0ZS5sZW5ndGgpIGNv
bnRpbnVlOwogICAgICAgICAgICAgICAgICAgIHZhciBkc3AgPSBkYXR1bVNwYWx0ZW4uZmluZChm
dW5jdGlvbih4KSB7IHJldHVybiB4LmlkeCA9PT0gQzsgfSk7CiAgICAgICAgICAgICAgICAgICAg
aWYgKCFkc3ApIGNvbnRpbnVlOwogICAgICAgICAgICAgICAgICAgIGlmICgha29tbWVudGFyZVtS
XSkga29tbWVudGFyZVtSXSA9IHt9OwogICAgICAgICAgICAgICAgICAgIGtvbW1lbnRhcmVbUl1b
ZHNwLmRhdHVtXSA9IGNsaXN0ZTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAg
ICAgIH0KICAgICAgICBleGNlbFBlcnNvbmVuLmZvckVhY2goZnVuY3Rpb24ocCkgeyBwLmtvbW1l
bnRhcmUgPSBrb21tZW50YXJlW3AuemVpbGVJZHhdIHx8IHt9OyB9KTsKCiAgICAgICAgLy8gQWJn
bGVpY2g6IFBlcnNvbmVuIHBlciBOYWNobmFtZSBtYXRjaGVuLiBLb252ZW50aW9uOiBXaXIgYmxl
bmRlbgogICAgICAgIC8vIG5pZW1hbHMgRGF0ZW4gd2VnLCBzb25kZXJuIHplaWdlbiBLb25mbGlr
dGUgc2ljaHRiYXIgYW4gdW5kIGJpZXRlbgogICAgICAgIC8vIE9wdGlvbmVuLiBQYXBpZXJrb3Ji
LVBlcnNvbmVuIChnZWxvZXNjaHRBbSBnZXNldHp0KSB0YXVjaGVuIGFsc28KICAgICAgICAvLyBh
dWYsIGJla29tbWVuIGFiZXIgZWluZW4gZWlnZW5lbiBTdGF0dXMgYHBhcGllcmtvcmJgIHBsdXMg
ZGllCiAgICAgICAgLy8gRGVmYXVsdC1FbXBmZWhsdW5nICJXaWVkZXJoZXJzdGVsbGVuICsgenVv
cmRuZW4iLiBNZWhyZGV1dGlna2VpdAogICAgICAgIC8vIHdpcmQgcHJpb3Jpc2llcnQ6IGVpbiBl
aW5kZXV0aWdlciBha3RpdmVyIFRyZWZmZXIgc2NobGFlZ3QgZWluZW4KICAgICAgICAvLyBQYXBp
ZXJrb3JiLVRyZWZmZXI7IG51ciB3ZW5uIGF1c3NjaGxpZXNzbGljaCBQYXBpZXJrb3JiLVRyZWZm
ZXIKICAgICAgICAvLyBleGlzdGllcmVuLCBnaWJ0J3MgZGVuIGBwYXBpZXJrb3JiYC1Lb25mbGlr
dC4KICAgICAgICAvLwogICAgICAgIC8vIE5hY2huYW1lLU5vcm1hbGlzaWVydW5nOiBzZW5rdCBF
eGNlbC1BZW5kZXJ1bmdlbiBvZGVyIEVuY29kaW5nLQogICAgICAgIC8vIFBhdHplciBhdWYgZWlu
ZSBrYW5vbmlzY2hlIEZvcm0uIEJlaXNwaWVsZSBhdXMgZGVtIEJlc3RhbmQ6CiAgICAgICAgLy8g
ICAiU2NoaWXDnyIgIC8gIlNjaGllc3MiICAvICJTY2hpZcOfw7giIC8gIlNjaGllw59vZSIgIC0+
ICJzY2hpZXNzIgogICAgICAgIC8vICAgIk3DvGxsZXIiIC8gIk11ZWxsZXIiICAgLyAiTcOcTExF
UiIgICAgICAgICAgICAgICAtPiAibXVlbGxlciIKICAgICAgICAvLyBEYW1pdCBncmVpZnQgZGVy
IE1hdGNoIGF1Y2ggd2VubiBkYXMgRXhjZWwgVW1sYXV0ZSBvZGVyIGRhcwogICAgICAgIC8vIEVz
emV0dCBkdXJjaCBTdWJzdGl0dXRpb25zLVplaWNoZW4gZXJzZXR6dCBoYXQgKGhhZXVmaWcKICAg
ICAgICAvLyBiZW9iYWNodGV0OiBvLW1pdC1TdHJpY2ggVSswMEY4IHN0YXR0IMOfKS4KICAgICAg
ICBmdW5jdGlvbiBfaW1wTmFtZU5vcm1hbGlzaWVyZW4ocykgewogICAgICAgICAgICBpZiAoIXMp
IHJldHVybiAnJzsKICAgICAgICAgICAgcmV0dXJuIFN0cmluZyhzKS5ub3JtYWxpemUoJ05GQycp
LnRyaW0oKS50b0xvd2VyQ2FzZSgpCiAgICAgICAgICAgICAgICAucmVwbGFjZSgvw6QvZywgJ2Fl
JykucmVwbGFjZSgvw7YvZywgJ29lJykucmVwbGFjZSgvw7wvZywgJ3VlJykKICAgICAgICAgICAg
ICAgIC5yZXBsYWNlKC/Dny9nLCAnc3MnKQogICAgICAgICAgICAgICAgLnJlcGxhY2UoL8O4L2cs
ICdzcycpICAgLy8gYmVrYW5udGUgRW5jb2RpbmctRmFsbGUgYXVzIGRlbSBMaXZlLVRlc3QKICAg
ICAgICAgICAgICAgIC5yZXBsYWNlKC9ccysvZywgJyAnKTsKICAgICAgICB9CiAgICAgICAgLy8g
RWRpdGllcmRpc3RhbnogKExldmVuc2h0ZWluKSBmdWVyIGRlbiBUaXBwZmVobGVyLVNjaHV0eiB1
bnRlbi4KICAgICAgICAvLyBLbGVpbiBnZWhhbHRlbiwgRVM1LWtvbXBhdGliZWwuIFp3ZWkgcm9s
bGVuZGUgWmVpbGVuIHN0YXR0IHZvbGxlcgogICAgICAgIC8vIE1hdHJpeCDigJQgcmVpY2h0IGZ1
ZXIgTmFjaG5hbWVuLUxhZW5nZW4gdm9lbGxpZy4KICAgICAgICBmdW5jdGlvbiBfaW1wTGV2ZW5z
aHRlaW4oYSwgYikgewogICAgICAgICAgICBhID0gYSB8fCAnJzsgYiA9IGIgfHwgJyc7CiAgICAg
ICAgICAgIGlmIChhID09PSBiKSByZXR1cm4gMDsKICAgICAgICAgICAgdmFyIGxhID0gYS5sZW5n
dGgsIGxiID0gYi5sZW5ndGg7CiAgICAgICAgICAgIGlmICghbGEpIHJldHVybiBsYjsKICAgICAg
ICAgICAgaWYgKCFsYikgcmV0dXJuIGxhOwogICAgICAgICAgICB2YXIgdm9yaGVyID0gW10sIGpl
dHp0ID0gW10sIGksIGo7CiAgICAgICAgICAgIGZvciAoaiA9IDA7IGogPD0gbGI7IGorKykgdm9y
aGVyW2pdID0gajsKICAgICAgICAgICAgZm9yIChpID0gMTsgaSA8PSBsYTsgaSsrKSB7CiAgICAg
ICAgICAgICAgICBqZXR6dFswXSA9IGk7CiAgICAgICAgICAgICAgICBmb3IgKGogPSAxOyBqIDw9
IGxiOyBqKyspIHsKICAgICAgICAgICAgICAgICAgICB2YXIga29zdGVuID0gYS5jaGFyQXQoaSAt
IDEpID09PSBiLmNoYXJBdChqIC0gMSkgPyAwIDogMTsKICAgICAgICAgICAgICAgICAgICBqZXR6
dFtqXSA9IE1hdGgubWluKGpldHp0W2ogLSAxXSArIDEsIHZvcmhlcltqXSArIDEsIHZvcmhlcltq
IC0gMV0gKyBrb3N0ZW4pOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgZm9yIChq
ID0gMDsgaiA8PSBsYjsgaisrKSB2b3JoZXJbal0gPSBqZXR6dFtqXTsKICAgICAgICAgICAgfQog
ICAgICAgICAgICByZXR1cm4gdm9yaGVyW2xiXTsKICAgICAgICB9CiAgICAgICAgdmFyIGJlc3Rh
bmROYW1lID0ge307CiAgICAgICAgKFoucGxhbnVuZy5wZXJzb25lbiB8fCBbXSkuZm9yRWFjaChm
dW5jdGlvbihwKSB7CiAgICAgICAgICAgIHZhciBuID0gX2ltcE5hbWVOb3JtYWxpc2llcmVuKHAu
bmFtZSk7CiAgICAgICAgICAgIGlmICghbikgcmV0dXJuOwogICAgICAgICAgICBpZiAoIWJlc3Rh
bmROYW1lW25dKSBiZXN0YW5kTmFtZVtuXSA9IFtdOwogICAgICAgICAgICBiZXN0YW5kTmFtZVtu
XS5wdXNoKHApOwogICAgICAgIH0pOwogICAgICAgIC8vIEFrdGl2ZSBCZXN0YW5kc3BlcnNvbmVu
IG1pdCBOb3JtYWxmb3JtIGZ1ZXIgZGllIEZ1enp5LUFlaG5saWNoa2VpdHMtCiAgICAgICAgLy8g
c3VjaGUuIFBvc2l0aW9uL1RlbGVmb24gdGF1Z2VuIE5JQ0hUIGFscyBad2VpdHNjaGx1ZXNzZWwg
KFBvc2l0aW9uCiAgICAgICAgLy8gZHJpZnRldCB6d2lzY2hlbiBFeGNlbCB1bmQgQmVzdGFuZCwg
VGVsZWZvbiBpc3QgZWluZSBTY2hpY2h0LVNhbW1lbC0KICAgICAgICAvLyBudW1tZXIpIOKAlCBk
YWhlciBUaXBwZmVobGVyLUVya2VubnVuZyB1ZWJlciBkaWUgTmFtZW5zLUVkaXRpZXJkaXN0YW56
LgogICAgICAgIHZhciBha3RpdkJlc3RhbmQgPSAoWi5wbGFudW5nLnBlcnNvbmVuIHx8IFtdKQog
ICAgICAgICAgICAuZmlsdGVyKGZ1bmN0aW9uKHApIHsgcmV0dXJuICFwLmdlbG9lc2NodEFtOyB9
KQogICAgICAgICAgICAubWFwKGZ1bmN0aW9uKHApIHsgcmV0dXJuIHsgcDogcCwgbjogX2ltcE5h
bWVOb3JtYWxpc2llcmVuKHAubmFtZSkgfTsgfSk7CiAgICAgICAgdmFyIHBlcnNvbmVuTWF0Y2hl
cyA9IGV4Y2VsUGVyc29uZW4ubWFwKGZ1bmN0aW9uKHhwKSB7CiAgICAgICAgICAgIHZhciBrZXkg
PSBfaW1wTmFtZU5vcm1hbGlzaWVyZW4oeHAubmFjaG5hbWUpOwogICAgICAgICAgICB2YXIgdHJl
ZmZlciAgICAgICA9IGJlc3RhbmROYW1lW2tleV0gfHwgW107CiAgICAgICAgICAgIHZhciBha3Rp
dlRyZWZmZXIgID0gdHJlZmZlci5maWx0ZXIoZnVuY3Rpb24ocCkgeyByZXR1cm4gIXAuZ2Vsb2Vz
Y2h0QW07IH0pOwogICAgICAgICAgICB2YXIgcGtUcmVmZmVyICAgICA9IHRyZWZmZXIuZmlsdGVy
KGZ1bmN0aW9uKHApIHsgcmV0dXJuICBwLmdlbG9lc2NodEFtOyB9KTsKICAgICAgICAgICAgdmFy
IHN0YXR1cywgemllbElkID0gbnVsbCwgd2llZGVyaGVyc3RlbGxlbiA9IGZhbHNlLCBuZXVBbmxl
Z2VuID0gZmFsc2UsIGFlaG5saWNoID0gW107CiAgICAgICAgICAgIGlmIChha3RpdlRyZWZmZXIu
bGVuZ3RoID09PSAxKSB7CiAgICAgICAgICAgICAgICBzdGF0dXMgPSAnb2snOwogICAgICAgICAg
ICAgICAgemllbElkID0gYWt0aXZUcmVmZmVyWzBdLmlkOwogICAgICAgICAgICB9IGVsc2UgaWYg
KGFrdGl2VHJlZmZlci5sZW5ndGggPiAxKSB7CiAgICAgICAgICAgICAgICBzdGF0dXMgPSAnbWVo
cmRldXRpZyc7CiAgICAgICAgICAgIH0gZWxzZSBpZiAocGtUcmVmZmVyLmxlbmd0aCA9PT0gMSkg
ewogICAgICAgICAgICAgICAgLy8gTnVyIFBhcGllcmtvcmItVHJlZmZlciAtPiBLb25mbGlrdCwg
RGVmYXVsdDogd2llZGVyaGVyc3RlbGxlbgogICAgICAgICAgICAgICAgc3RhdHVzID0gJ3BhcGll
cmtvcmInOwogICAgICAgICAgICAgICAgemllbElkID0gcGtUcmVmZmVyWzBdLmlkOwogICAgICAg
ICAgICAgICAgd2llZGVyaGVyc3RlbGxlbiA9IHRydWU7CiAgICAgICAgICAgIH0gZWxzZSBpZiAo
cGtUcmVmZmVyLmxlbmd0aCA+IDEpIHsKICAgICAgICAgICAgICAgIHN0YXR1cyA9ICdtZWhyZGV1
dGlnJzsKICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgIC8vIE5pY2h0IGltIEJl
c3RhbmQ6IERlZmF1bHQtVm9yc2NobGFnICJuZXUgYW5sZWdlbiIuIERpZSBFeGNlbC0KICAgICAg
ICAgICAgICAgIC8vIERhdGVuIChOYWNobmFtZSwgT0UsIEdydXBwZSwgVGVsZWZvbiwgUmFuZykg
d2FuZGVybiBpbiBlaW5lCiAgICAgICAgICAgICAgICAvLyBmcmlzY2hlIFBlcnNvbiBtaXQgTWFy
a2VyIGBpbXBvcnROZXVBbWAuIFBlcnNvbmFsdmVyd2FsdHVuZwogICAgICAgICAgICAgICAgLy8g
YmxlbmRldCBkaWVzZSBpbSBOZXVpbXBvcnQtQmxvY2sgb2JlbiBlaW4sIGJpcyBkZXIgVXNlcgog
ICAgICAgICAgICAgICAgLy8gc2llIG5hY2hwZmxlZ3QgdW5kIGVybGVkaWd0LgogICAgICAgICAg
ICAgICAgc3RhdHVzID0gJ25ldSc7CiAgICAgICAgICAgICAgICBuZXVBbmxlZ2VuID0gdHJ1ZTsK
ICAgICAgICAgICAgICAgIC8vIFRpcHBmZWhsZXItU2NodXR6OiBhZWhubGljaGUgYWt0aXZlIEJl
c3RhbmRzbmFtZW4gKEVkaXRpZXItCiAgICAgICAgICAgICAgICAvLyBkaXN0YW56IDw9IDIsIGFi
ZXIgbmljaHQgMCkgYWxzIFVOVkVSQklORExJQ0hFTiBIaW53ZWlzCiAgICAgICAgICAgICAgICAv
LyBzYW1tZWxuLCBkYW1pdCBkZXIgVXNlciBuaWNodCB2ZXJzZWhlbnRsaWNoIGVpbiBEdXBsaWth
dAogICAgICAgICAgICAgICAgLy8gZWluZXIgYmVzdGVoZW5kZW4gUGVyc29uIGFubGVndCAoei5C
LiAiTWVubmVrZVMiIC0+ICJNZW5uZWtlIikuCiAgICAgICAgICAgICAgICAvLyBCZXd1c3N0IGtl
aW4gQXV0by1NYXRjaDogYmVpIGVpbmVtIEZ1enp5LVRyZWZmZXIgZW50c2NoZWlkZXQKICAgICAg
ICAgICAgICAgIC8vIGRlciBNZW5zY2gsIG5pZSBkZXIgQWxnb3JpdGhtdXMuCiAgICAgICAgICAg
ICAgICBpZiAoa2V5Lmxlbmd0aCA+PSA0KSB7CiAgICAgICAgICAgICAgICAgICAgYWVobmxpY2gg
PSBha3RpdkJlc3RhbmQubWFwKGZ1bmN0aW9uKGFiKSB7CiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAvLyBFcnN0ZXIgQnVjaHN0YWJlIGFscyBBbmtlcjogZWNodGUgVGlwcGZlaGxlcgogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgLy8gZXJoYWx0ZW4gaWhuIGZhc3QgaW1tZXIuIERhcyB1
bnRlcmRydWVja3Qgd2VpY2hlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBGZWhsdHJl
ZmZlciB3aWUgIk5ldW1hbm4iIHZzICJIZXltYW5uIiAoZ2xlaWNoZQogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgLy8gRW5kdW5nLCBEaXN0YW56IDIpLCB3YWVocmVuZCAiTWVubmVrZVMiIHZz
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAiTWVubmVrZSIgKERpc3RhbnogMSkgZXJo
YWx0ZW4gYmxlaWJ0LgogICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGFua2VyID0gYWIu
bi5jaGFyQXQoMCkgPT09IGtleS5jaGFyQXQoMCk7CiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICByZXR1cm4geyBpZDogYWIucC5pZCwgbmFtZTogYWIucC5uYW1lLCBkaXN0OiBfaW1wTGV2ZW5z
aHRlaW4oa2V5LCBhYi5uKSwgYW5rZXI6IGFua2VyIH07CiAgICAgICAgICAgICAgICAgICAgICAg
IH0pCiAgICAgICAgICAgICAgICAgICAgICAgIC5maWx0ZXIoZnVuY3Rpb24oeCkgeyByZXR1cm4g
eC5kaXN0ID4gMCAmJiAoeC5kaXN0IDw9IDEgfHwgKHguZGlzdCA8PSAyICYmIHguYW5rZXIpKTsg
fSkKICAgICAgICAgICAgICAgICAgICAgICAgLnNvcnQoZnVuY3Rpb24oYSwgYikgeyByZXR1cm4g
YS5kaXN0IC0gYi5kaXN0OyB9KQogICAgICAgICAgICAgICAgICAgICAgICAuc2xpY2UoMCwgMyk7
CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICAgICAgcmV0dXJuIHsgZXhj
ZWw6IHhwLCB0cmVmZmVyOiB0cmVmZmVyLCBzdGF0dXM6IHN0YXR1cywgemllbElkOiB6aWVsSWQs
IHdpZWRlcmhlcnN0ZWxsZW46IHdpZWRlcmhlcnN0ZWxsZW4sIG5ldUFubGVnZW46IG5ldUFubGVn
ZW4sIGFlaG5saWNoOiBhZWhubGljaCB9OwogICAgICAgIH0pOwoKICAgICAgICAvLyBDb2RlLUFu
YWx5c2U6IGFsbGUgQ29kZXMgYXVzIGRlbiBFaW50cmFlZ2VuIHNhbW1lbG4sIGdlZ2VuIGFrdGl2
ZQogICAgICAgIC8vIENvZGVzIHVuZCBpbXBvcnRBbGlhc2UgYWJnbGVpY2hlbi4KICAgICAgICB2
YXIgYWxpYXNlID0gWi5hZG1pbi5pbXBvcnRBbGlhc2UgfHwge307CiAgICAgICAgdmFyIGFrdGl2
ZUNvZGVzID0ge307CiAgICAgICAgKFouYWRtaW4uc2NoaWNodGNvZGVzIHx8IFtdKS5mb3JFYWNo
KGZ1bmN0aW9uKHNjKSB7CiAgICAgICAgICAgIGlmIChpc3RDb2RlQWt0aXYoc2MpKSBha3RpdmVD
b2Rlc1tzYy5jb2RlXSA9IHRydWU7CiAgICAgICAgfSk7CiAgICAgICAgdmFyIGNvZGVWZXJ3ZW5k
dW5nID0ge307ICAvLyB7IGNvZGU6IGFuemFobCB9CiAgICAgICAgZXhjZWxQZXJzb25lbi5mb3JF
YWNoKGZ1bmN0aW9uKHhwKSB7CiAgICAgICAgICAgIE9iamVjdC5rZXlzKHhwLmVpbnRyYWVnZSku
Zm9yRWFjaChmdW5jdGlvbihkKSB7CiAgICAgICAgICAgICAgICB2YXIgYyA9IHhwLmVpbnRyYWVn
ZVtkXTsKICAgICAgICAgICAgICAgIGNvZGVWZXJ3ZW5kdW5nW2NdID0gKGNvZGVWZXJ3ZW5kdW5n
W2NdIHx8IDApICsgMTsKICAgICAgICAgICAgfSk7CiAgICAgICAgfSk7CiAgICAgICAgdmFyIGNv
ZGVNYXRjaGVzID0gT2JqZWN0LmtleXMoY29kZVZlcndlbmR1bmcpLnNvcnQoKS5tYXAoZnVuY3Rp
b24oYykgewogICAgICAgICAgICB2YXIgYW56YWhsID0gY29kZVZlcndlbmR1bmdbY107CiAgICAg
ICAgICAgIGlmIChjIGluIGFsaWFzZSkgewogICAgICAgICAgICAgICAgdmFyIHppZWwgPSBhbGlh
c2VbY107CiAgICAgICAgICAgICAgICBpZiAoemllbCA9PT0gbnVsbCkgcmV0dXJuIHsgY29kZTog
YywgYW56YWhsOiBhbnphaGwsIHN0YXR1czogJ2lnbm9yZScsIHppZWw6IG51bGwsIGhpbndlaXM6
ICdBbGlhczogd2lyZCB2ZXJ3b3JmZW4nIH07CiAgICAgICAgICAgICAgICByZXR1cm4geyBjb2Rl
OiBjLCBhbnphaGw6IGFuemFobCwgc3RhdHVzOiAnYWxpYXMnLCB6aWVsOiB6aWVsLCBoaW53ZWlz
OiAnQWxpYXM6IOKGkiAnICsgemllbCB9OwogICAgICAgICAgICB9CiAgICAgICAgICAgIGlmIChh
a3RpdmVDb2Rlc1tjXSkgcmV0dXJuIHsgY29kZTogYywgYW56YWhsOiBhbnphaGwsIHN0YXR1czog
J29rJywgemllbDogYywgaGlud2VpczogJ0Jla2FubnRlciBha3RpdmVyIENvZGUnIH07CiAgICAg
ICAgICAgIHJldHVybiB7IGNvZGU6IGMsIGFuemFobDogYW56YWhsLCBzdGF0dXM6ICd1bmJla2Fu
bnQnLCB6aWVsOiBudWxsLCBoaW53ZWlzOiAnVW5iZWthbm50IOKAlCBtYW51ZWxsIG1hcHBlbicg
fTsKICAgICAgICB9KTsKCiAgICAgICAgLy8gSmFocmVzLVBsYXVzaWJpbGl0YWV0OiBkYXMgR3Jp
ZCB6ZWlndCBbUGxhbnVuZ3NqYWhyLTAxLTAxIC4uIEZvbGdlLQogICAgICAgIC8vIGphaHItMDEt
MzFdIChKYW51YXIgZGVzIEZvbGdlamFocmVzIGFscyBQdWZmZXIsIHNpZWhlIHRhZ2VFcnpldWdl
bikuCiAgICAgICAgLy8gRGF0dW1zc3BhbHRlbiBhdXNzZXJoYWxiIGRpZXNlcyBGZW5zdGVycyB3
dWVyZGVuIGltcG9ydGllcnQsIGFiZXIgbmllCiAgICAgICAgLy8gYW5nZXplaWd0IChUb3RlLURh
dGVuKSDigJQgdHlwaXNjaCBiZWltIHZlcnNlaGVudGxpY2hlbiBJbXBvcnQgZWluZXIKICAgICAg
ICAvLyBWb3JqYWhyZXMtIG9kZXIgRm9sZ2VqYWhyZXMtRGF0ZWkuIFdpciB3YXJuZW4gc3RhdHQg
aGFydCB6dSBibG9ja2VuLgogICAgICAgIHZhciBqYWhySW5mbyA9IG51bGw7CiAgICAgICAgaWYg
KGRhdHVtU3BhbHRlbi5sZW5ndGgpIHsKICAgICAgICAgICAgdmFyIHBvcnRhbEphaHIgPSAoWi5h
ZG1pbiAmJiBaLmFkbWluLmphaHIpIHx8IG5ldyBEYXRlKCkuZ2V0RnVsbFllYXIoKTsKICAgICAg
ICAgICAgdmFyIGZlbnN0ZXJWb24gPSBwb3J0YWxKYWhyICsgJy0wMS0wMSc7CiAgICAgICAgICAg
IHZhciBmZW5zdGVyQmlzID0gKHBvcnRhbEphaHIgKyAxKSArICctMDEtMzEnOyAgLy8gaW5rbC4g
UHVmZmVyLUphbnVhcgogICAgICAgICAgICB2YXIgamFoclphZWhsZXIgPSB7fTsKICAgICAgICAg
ICAgdmFyIGF1c3NlcmhhbGIgPSAwOwogICAgICAgICAgICBkYXR1bVNwYWx0ZW4uZm9yRWFjaChm
dW5jdGlvbihkKSB7CiAgICAgICAgICAgICAgICB2YXIgaiA9IGQuZGF0dW0uc3Vic3RyKDAsIDQp
OwogICAgICAgICAgICAgICAgamFoclphZWhsZXJbal0gPSAoamFoclphZWhsZXJbal0gfHwgMCkg
KyAxOwogICAgICAgICAgICAgICAgaWYgKGQuZGF0dW0gPCBmZW5zdGVyVm9uIHx8IGQuZGF0dW0g
PiBmZW5zdGVyQmlzKSBhdXNzZXJoYWxiKys7CiAgICAgICAgICAgIH0pOwogICAgICAgICAgICB2
YXIgZG9taW5hbnRKYWhyID0gT2JqZWN0LmtleXMoamFoclphZWhsZXIpLnNvcnQoZnVuY3Rpb24o
YSwgYikgeyByZXR1cm4gamFoclphZWhsZXJbYl0gLSBqYWhyWmFlaGxlclthXTsgfSlbMF07CiAg
ICAgICAgICAgIGphaHJJbmZvID0gewogICAgICAgICAgICAgICAgcG9ydGFsSmFocjogICBwb3J0
YWxKYWhyLAogICAgICAgICAgICAgICAgZG9taW5hbnRKYWhyOiBwYXJzZUludChkb21pbmFudEph
aHIsIDEwKSwKICAgICAgICAgICAgICAgIGRhdGVpVm9uOiAgICAgZGF0dW1TcGFsdGVuWzBdLmRh
dHVtLAogICAgICAgICAgICAgICAgZGF0ZWlCaXM6ICAgICBkYXR1bVNwYWx0ZW5bZGF0dW1TcGFs
dGVuLmxlbmd0aCAtIDFdLmRhdHVtLAogICAgICAgICAgICAgICAgYXVzc2VyaGFsYjogICBhdXNz
ZXJoYWxiLAogICAgICAgICAgICAgICAgZ2VzYW10OiAgICAgICBkYXR1bVNwYWx0ZW4ubGVuZ3Ro
CiAgICAgICAgICAgIH07CiAgICAgICAgfQoKICAgICAgICBpbXBTdGF0ZSA9IHsKICAgICAgICAg
ICAgZGF0ZWlOYW1lOiBudWxsLAogICAgICAgICAgICBkYXR1bVNwYWx0ZW46IGRhdHVtU3BhbHRl
biwKICAgICAgICAgICAgZXhjZWxQZXJzb25lbjogZXhjZWxQZXJzb25lbiwKICAgICAgICAgICAg
cGVyc29uZW5NYXRjaGVzOiBwZXJzb25lbk1hdGNoZXMsCiAgICAgICAgICAgIGNvZGVNYXRjaGVz
OiBjb2RlTWF0Y2hlcywKICAgICAgICAgICAgamFockluZm86IGphaHJJbmZvLAogICAgICAgICAg
ICBrb21tZW50YXJBbnphaGw6IE9iamVjdC52YWx1ZXMoa29tbWVudGFyZSkucmVkdWNlKGZ1bmN0
aW9uKHMsIG9iaikgewogICAgICAgICAgICAgICAgcmV0dXJuIHMgKyBPYmplY3QudmFsdWVzKG9i
aikucmVkdWNlKGZ1bmN0aW9uKHMyLCBsaXN0ZSkgeyByZXR1cm4gczIgKyAobGlzdGUgPyBsaXN0
ZS5sZW5ndGggOiAwKTsgfSwgMCk7CiAgICAgICAgICAgIH0sIDApCiAgICAgICAgfTsKICAgICAg
ICBpbXBTdGF0dXNSZW5kZXJuKCk7CiAgICB9CgogICAgZnVuY3Rpb24gaW1wU3RhdHVzUmVuZGVy
bigpIHsKICAgICAgICB2YXIgcyA9IGltcFN0YXRlOwogICAgICAgIGlmICghcykgcmV0dXJuOwog
ICAgICAgIHZhciBzdGF0dXNFbCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdpbXAtc3RhdHVz
Jyk7CiAgICAgICAgLy8gT0sgPSBhdXRvbWF0aXNjaCBvayBPREVSIHZvbSBVc2VyIG1hbnVlbGwg
enVnZW9yZG5ldCAobWl0IHppZWxJZCkKICAgICAgICB2YXIgcE9rICAgID0gcy5wZXJzb25lbk1h
dGNoZXMuZmlsdGVyKGZ1bmN0aW9uKG0pIHsgcmV0dXJuIChtLnN0YXR1cyA9PT0gJ29rJyB8fCBt
LnN0YXR1cyA9PT0gJ21hbnVlbGwnKSAmJiBtLnppZWxJZDsgfSkubGVuZ3RoOwogICAgICAgIC8v
IE5ldSA9IHdpcmQgbWl0IEV4Y2VsLURhdGVuIGZyaXNjaCBhbmdlbGVndCAoRGVmYXVsdCBmdWVy
IHVuYmVrYW5udGUKICAgICAgICAvLyBOYWNobmFtZW4pLiBLZWluIEtvbmZsaWt0IOKAlCBsYWV1
ZnQgb2huZSBNYXBwaW5nLUVpbmdyaWZmLgogICAgICAgIHZhciBwTmV1ICAgPSBzLnBlcnNvbmVu
TWF0Y2hlcy5maWx0ZXIoZnVuY3Rpb24obSkgeyByZXR1cm4gbS5zdGF0dXMgPT09ICduZXUnICYm
IG0ubmV1QW5sZWdlbjsgfSkubGVuZ3RoOwogICAgICAgIHZhciBwSWduICAgPSBzLnBlcnNvbmVu
TWF0Y2hlcy5maWx0ZXIoZnVuY3Rpb24obSkgeyByZXR1cm4gbS5zdGF0dXMgPT09ICdpZ25vcmll
cnQnOyB9KS5sZW5ndGg7CiAgICAgICAgLy8gT2ZmZW4gPSBudXIgIm1laHJkZXV0aWciIChtZWhy
ZXJlIEJlc3RhbmRzLVRyZWZmZXIgcHJvIE5hY2huYW1lKS4KICAgICAgICAvLyAidW5iZWthbm50
IiBnaWJ0J3MgbmljaHQgbWVociDigJQgd2lyZCBqZXR6dCBhdXRvbWF0aXNjaCB6dSAibmV1Ii4K
ICAgICAgICB2YXIgcE9mZmVuID0gcy5wZXJzb25lbk1hdGNoZXMuZmlsdGVyKGZ1bmN0aW9uKG0p
IHsgcmV0dXJuIG0uc3RhdHVzID09PSAnbWVocmRldXRpZyc7IH0pLmxlbmd0aDsKICAgICAgICAv
LyBQYXBpZXJrb3JiLVRyZWZmZXIgc2luZCBlaW4gIndlaWNoZXIgS29uZmxpa3QiIOKAlCBEZWZh
dWx0dm9yc2NobGFnIGlzdAogICAgICAgIC8vICJXaWVkZXJoZXJzdGVsbGVuICsgenVvcmRuZW4i
LCBkZXIgSW1wb3J0IGxhZXVmdCBhdWNoIG9obmUgTWFwcGluZy0KICAgICAgICAvLyBFaW5ncmlm
Zi4gV2lyIHphZWhsZW4gc2llIHRyb3R6ZGVtIGV4dHJhLCBkYW1pdCBkZXIgVXNlciBkaWUgU3Rl
bGxlCiAgICAgICAgLy8gYmV3dXNzdCBwcnVlZmVuIGthbm4uCiAgICAgICAgdmFyIHBQSyAgICA9
IHMucGVyc29uZW5NYXRjaGVzLmZpbHRlcihmdW5jdGlvbihtKSB7IHJldHVybiBtLnN0YXR1cyA9
PT0gJ3BhcGllcmtvcmInOyB9KS5sZW5ndGg7CiAgICAgICAgLy8gVGlwcGZlaGxlci1WZXJkYWNo
dDogIm5ldSItUGVyc29uZW4sIGRpZSBlaW5lciBiZXN0ZWhlbmRlbiBQZXJzb24KICAgICAgICAv
LyB2ZXJkYWVjaHRpZyBhZWhubGljaCBzaW5kIChFZGl0aWVyZGlzdGFueiA8PSAyKS4gS2VpbiBC
bG9ja2VyLCBhYmVyCiAgICAgICAgLy8gZWluIEhpbndlaXMsIGRhcyBNYXBwaW5nIHp1IHBydWVm
ZW4sIGJldm9yIGVpbiBEdXBsaWthdCBlbnRzdGVodC4KICAgICAgICB2YXIgcEFlaG5saWNoID0g
cy5wZXJzb25lbk1hdGNoZXMuZmlsdGVyKGZ1bmN0aW9uKG0pIHsgcmV0dXJuIG0uc3RhdHVzID09
PSAnbmV1JyAmJiBtLmFlaG5saWNoICYmIG0uYWVobmxpY2gubGVuZ3RoOyB9KS5sZW5ndGg7CiAg
ICAgICAgdmFyIGNPayAgICA9IHMuY29kZU1hdGNoZXMuZmlsdGVyKGZ1bmN0aW9uKG0pIHsgcmV0
dXJuIChtLnN0YXR1cyA9PT0gJ29rJyB8fCBtLnN0YXR1cyA9PT0gJ2FsaWFzJyB8fCBtLnN0YXR1
cyA9PT0gJ21hbnVlbGwnKSAmJiBtLnppZWw7IH0pLmxlbmd0aDsKICAgICAgICB2YXIgY0lnbiAg
ID0gcy5jb2RlTWF0Y2hlcy5maWx0ZXIoZnVuY3Rpb24obSkgeyByZXR1cm4gbS5zdGF0dXMgPT09
ICdpZ25vcmUnOyB9KS5sZW5ndGg7CiAgICAgICAgdmFyIGNPZmZlbiA9IHMuY29kZU1hdGNoZXMu
ZmlsdGVyKGZ1bmN0aW9uKG0pIHsgcmV0dXJuIG0uc3RhdHVzID09PSAndW5iZWthbm50JzsgfSku
bGVuZ3RoOwoKICAgICAgICAvLyBKYWhyZXMtV2FybnVuZzogRGF0ZWkgcGFzc3QgbmljaHQgenVt
IGFuZ2V6ZWlndGVuIFBsYW51bmdzamFociBvZGVyCiAgICAgICAgLy8gcmFndCBhdXMgZGVtIHNp
Y2h0YmFyZW4gRmVuc3RlciBoZXJhdXMgKFRvdGUtRGF0ZW4tR2VmYWhyKS4KICAgICAgICB2YXIg
amFocldhcm5IdG1sID0gJyc7CiAgICAgICAgaWYgKHMuamFockluZm8gJiYgKHMuamFockluZm8u
YXVzc2VyaGFsYiA+IDAgfHwgcy5qYWhySW5mby5kb21pbmFudEphaHIgIT09IHMuamFockluZm8u
cG9ydGFsSmFocikpIHsKICAgICAgICAgICAgdmFyIGppID0gcy5qYWhySW5mbzsKICAgICAgICAg
ICAgdmFyIGtlcm4gPSBqaS5kb21pbmFudEphaHIgIT09IGppLnBvcnRhbEphaHIKICAgICAgICAg
ICAgICAgID8gJ0RpZXNlIERhdGVpIGlzdCDDvGJlcndpZWdlbmQgZsO8ciA8c3Ryb25nPicgKyBq
aS5kb21pbmFudEphaHIgKyAnPC9zdHJvbmc+LCBkYXMgUG9ydGFsIHplaWd0IGFiZXIgUGxhbnVu
Z3NqYWhyIDxzdHJvbmc+JyArIGppLnBvcnRhbEphaHIgKyAnPC9zdHJvbmc+LicKICAgICAgICAg
ICAgICAgIDogamkuYXVzc2VyaGFsYiArICcgdm9uICcgKyBqaS5nZXNhbXQgKyAnIFRhZ2Vzc3Bh
bHRlbiBsaWVnZW4gPHN0cm9uZz5hdcOfZXJoYWxiPC9zdHJvbmc+IGRlcyBhbmdlemVpZ3RlbiBa
ZWl0cmF1bXMgKCcgKyBqaS5wb3J0YWxKYWhyICsgJy0wMS0wMSBiaXMgJyArIChqaS5wb3J0YWxK
YWhyICsgMSkgKyAnLTAxLTMxKS4nOwogICAgICAgICAgICBqYWhyV2Fybkh0bWwgPSAnPGRpdiBj
bGFzcz0iaW1wLXN0YXR1cy1rYXJ0ZSIgc3R5bGU9ImJvcmRlci1jb2xvcjp2YXIoLS1mYXJiZS13
YXJudW5nKTtiYWNrZ3JvdW5kOnZhcigtLWJnLWNhcmQtYWx0KSI+JyArCiAgICAgICAgICAgICAg
ICAn4pqgIDxzdHJvbmc+SmFocmVzLUhpbndlaXM6PC9zdHJvbmc+ICcgKyBrZXJuICsKICAgICAg
ICAgICAgICAgICcgRGF0ZWktWmVpdHJhdW06ICcgKyBlc2NhcGVIVE1MKGppLmRhdGVpVm9uKSAr
ICcgYmlzICcgKyBlc2NhcGVIVE1MKGppLmRhdGVpQmlzKSArICcuJyArCiAgICAgICAgICAgICAg
ICAnIEF1w59lcmhhbGIgbGllZ2VuZGUgVGFnZSB3ZXJkZW4gZ2VzY2hyaWViZW4sIGFiZXIgaW0g
UGxhbiBuaWNodCBhbmdlemVpZ3QuIEJpdHRlIHByw7xmZW4sIG9iIGRpZSByaWNodGlnZSBEYXRl
aSB1bmQgZGFzIHJpY2h0aWdlIFBsYW51bmdzamFociBnZXfDpGhsdCBzaW5kLicgKwogICAgICAg
ICAgICAnPC9kaXY+JzsKICAgICAgICB9CgogICAgICAgIHZhciBodG1sID0gamFocldhcm5IdG1s
ICsgJzxkaXYgY2xhc3M9ImltcC1zdGF0dXMta2FydGUiPicgKwogICAgICAgICAgICAnPGgzIHN0
eWxlPSJtYXJnaW46MCAwIDhweCAwIj5BbmFseXNlLUVyZ2VibmlzPC9oMz4nICsKICAgICAgICAg
ICAgJzxkaXYgY2xhc3M9ImltcC1rcGktemVpbGUiPicgKwogICAgICAgICAgICAgICAgJzxkaXYg
Y2xhc3M9ImltcC1rcGkiPjxkaXYgY2xhc3M9ImltcC1rcGktemFobCI+JyArIHMuZGF0dW1TcGFs
dGVuLmxlbmd0aCArICc8L2Rpdj48ZGl2IGNsYXNzPSJpbXAta3BpLWxhYmVsIj5UYWdlc3NwYWx0
ZW48L2Rpdj48L2Rpdj4nICsKICAgICAgICAgICAgICAgICc8ZGl2IGNsYXNzPSJpbXAta3BpIj48
ZGl2IGNsYXNzPSJpbXAta3BpLXphaGwiPicgKyBzLmV4Y2VsUGVyc29uZW4ubGVuZ3RoICsgJzwv
ZGl2PjxkaXYgY2xhc3M9ImltcC1rcGktbGFiZWwiPlBlcnNvbmVuIGluIEV4Y2VsPC9kaXY+PC9k
aXY+JyArCiAgICAgICAgICAgICAgICAnPGRpdiBjbGFzcz0iaW1wLWtwaSI+PGRpdiBjbGFzcz0i
aW1wLWtwaS16YWhsIj4nICsgcy5rb21tZW50YXJBbnphaGwgKyAnPC9kaXY+PGRpdiBjbGFzcz0i
aW1wLWtwaS1sYWJlbCI+S29tbWVudGFyZTwvZGl2PjwvZGl2PicgKwogICAgICAgICAgICAnPC9k
aXY+JyArCiAgICAgICAgICAgICc8ZGl2IGNsYXNzPSJpbXAta3BpLXplaWxlIj4nICsKICAgICAg
ICAgICAgICAgICc8ZGl2IGNsYXNzPSJpbXAta3BpIGltcC1rcGktb2siPjxkaXYgY2xhc3M9Imlt
cC1rcGktemFobCI+JyArIHBPayArICc8L2Rpdj48ZGl2IGNsYXNzPSJpbXAta3BpLWxhYmVsIj5Q
ZXJzb25lbiB6dWdlb3JkbmV0PC9kaXY+PC9kaXY+JyArCiAgICAgICAgICAgICAgICAocE5ldSAg
ID8gJzxkaXYgY2xhc3M9ImltcC1rcGkgaW1wLWtwaS1uZXUiIHRpdGxlPSJOaWNodCBpbSBCZXN0
YW5kIOKAlCB3ZXJkZW4gbWl0IGRlbiBFeGNlbC1EYXRlbiBuZXUgYW5nZWxlZ3QgdW5kIGVyc2No
ZWluZW4gYW5zY2hsaWVzc2VuZCBpbSBOZXVpbXBvcnQtQmxvY2sgZGVyIFBlcnNvbmFsdmVyd2Fs
dHVuZyB6dXIgTmFjaHBmbGVnZS4iPicgKwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAn
PGRpdiBjbGFzcz0iaW1wLWtwaS16YWhsIj4nICsgcE5ldSArICc8L2Rpdj48ZGl2IGNsYXNzPSJp
bXAta3BpLWxhYmVsIj5QZXJzb25lbiBuZXUgYW5sZWdlbjwvZGl2PjwvZGl2PicgOiAnJykgKwog
ICAgICAgICAgICAgICAgKHBQSyAgICA/ICc8ZGl2IGNsYXNzPSJpbXAta3BpIGltcC1rcGktd2Fy
biIgdGl0bGU9IkVpbmRldXRpZ2VyIFRyZWZmZXIsIGFiZXIgaW0gUGFwaWVya29yYi4gV2lyZCBw
ZXIgRGVmYXVsdCB3aWVkZXJoZXJnZXN0ZWxsdCDigJQgaW0gTWFwcGluZyBwcnVlZmJhci4iPicg
KwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnPGRpdiBjbGFzcz0iaW1wLWtwaS16YWhs
Ij4nICsgcFBLICsgJzwvZGl2PjxkaXYgY2xhc3M9ImltcC1rcGktbGFiZWwiPlBhcGllcmtvcmIt
VHJlZmZlcjwvZGl2PjwvZGl2PicgOiAnJykgKwogICAgICAgICAgICAgICAgKHBJZ24gICA/ICc8
ZGl2IGNsYXNzPSJpbXAta3BpIj48ZGl2IGNsYXNzPSJpbXAta3BpLXphaGwiPicgKyBwSWduICsg
JzwvZGl2PjxkaXYgY2xhc3M9ImltcC1rcGktbGFiZWwiPlBlcnNvbmVuIGlnbm9yaWVydDwvZGl2
PjwvZGl2PicgOiAnJykgKwogICAgICAgICAgICAgICAgKHBBZWhubGljaCA/ICc8ZGl2IGNsYXNz
PSJpbXAta3BpIGltcC1rcGktd2FybiIgdGl0bGU9IkRpZXNlIG5ldSBhbnp1bGVnZW5kZW4gUGVy
c29uZW4gw6RobmVsbiBzdGFyayBlaW5lciBiZXN0ZWhlbmRlbiBQZXJzb24g4oCUIHZlcm11dGxp
Y2ggVGlwcGZlaGxlci4gSW0gTWFwcGluZyBwcsO8ZmVuLCBzb25zdCBlbnRzdGVoZW4gRHVwbGlr
YXRlLiI+JyArCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICc8ZGl2IGNsYXNzPSJpbXAt
a3BpLXphaGwiPicgKyBwQWVobmxpY2ggKyAnPC9kaXY+PGRpdiBjbGFzcz0iaW1wLWtwaS1sYWJl
bCI+VGlwcGZlaGxlci1WZXJkYWNodDwvZGl2PjwvZGl2PicgOiAnJykgKwogICAgICAgICAgICAg
ICAgKHBPZmZlbiA/ICc8ZGl2IGNsYXNzPSJpbXAta3BpIGltcC1rcGktZmVobGVyIj48ZGl2IGNs
YXNzPSJpbXAta3BpLXphaGwiPicgKyBwT2ZmZW4gKyAnPC9kaXY+PGRpdiBjbGFzcz0iaW1wLWtw
aS1sYWJlbCI+UGVyc29uZW4gb2ZmZW48L2Rpdj48L2Rpdj4nIDogJycpICsKICAgICAgICAgICAg
JzwvZGl2PicgKwogICAgICAgICAgICAnPGRpdiBjbGFzcz0iaW1wLWtwaS16ZWlsZSI+JyArCiAg
ICAgICAgICAgICAgICAnPGRpdiBjbGFzcz0iaW1wLWtwaSBpbXAta3BpLW9rIj48ZGl2IGNsYXNz
PSJpbXAta3BpLXphaGwiPicgKyBjT2sgKyAnPC9kaXY+PGRpdiBjbGFzcz0iaW1wLWtwaS1sYWJl
bCI+Q29kZXMgZ2VtYXBwdDwvZGl2PjwvZGl2PicgKwogICAgICAgICAgICAgICAgKGNJZ24gICA/
ICc8ZGl2IGNsYXNzPSJpbXAta3BpIj48ZGl2IGNsYXNzPSJpbXAta3BpLXphaGwiPicgKyBjSWdu
ICsgJzwvZGl2PjxkaXYgY2xhc3M9ImltcC1rcGktbGFiZWwiPkNvZGVzIGlnbm9yaWVydDwvZGl2
PjwvZGl2PicgOiAnJykgKwogICAgICAgICAgICAgICAgKGNPZmZlbiA/ICc8ZGl2IGNsYXNzPSJp
bXAta3BpIGltcC1rcGktd2FybiI+PGRpdiBjbGFzcz0iaW1wLWtwaS16YWhsIj4nICsgY09mZmVu
ICsgJzwvZGl2PjxkaXYgY2xhc3M9ImltcC1rcGktbGFiZWwiPkNvZGVzIG9mZmVuPC9kaXY+PC9k
aXY+JyA6ICcnKSArCiAgICAgICAgICAgICc8L2Rpdj4nICsKICAgICAgICAgICAgJzxkaXYgc3R5
bGU9Im1hcmdpbi10b3A6MTRweDtkaXNwbGF5OmZsZXg7Z2FwOjEwcHg7YWxpZ24taXRlbXM6Y2Vu
dGVyIj4nICsKICAgICAgICAgICAgICAgICc8YnV0dG9uIGNsYXNzPSJidG4gYnRuLXNlayIgaWQ9
ImltcC1tYXBwaW5nLW9lZmZuZW4iPk1hcHBpbmcgw7ZmZm5lbicgKwogICAgICAgICAgICAgICAg
ICAgIChwT2ZmZW4gKyBjT2ZmZW4gPiAwID8gJyAoJyArIChwT2ZmZW4gKyBjT2ZmZW4pICsgJyBv
ZmZlbiknIDogKHBQSyA/ICcgKCcgKyBwUEsgKyAnIFBhcGllcmtvcmItVHJlZmZlciBwcsO8ZmVu
KScgOiAnJykpICsKICAgICAgICAgICAgICAgICc8L2J1dHRvbj4nICsKICAgICAgICAgICAgICAg
IGhpbGZlSWNvbignTWFwcGluZzogSGllciBvcmRuZXN0IGR1IGplZGUgRXhjZWwtUGVyc29uIGVp
bmVyIFBsYW4tUGVyc29uIHp1IChvZnQgcGVyIE5hY2huYW1lIGF1dG9tYXRpc2NoIGVya2FubnQp
IHVuZCBlbnRzY2hlaWRlc3QgZnVlciB1bmJla2FubnRlIEV4Y2VsLVNjaGljaHRjb2Rlcywgb2Ig
c2llIGVpbmVtIGJlc3RlaGVuZGVuIENvZGUgenVnZW9yZG5ldCwgbmV1IGFuZ2VsZWd0IG9kZXIg
aWdub3JpZXJ0IHdlcmRlbi4gRXJzdCB3ZW5uIGFsbGUgS29uZmxpa3RlIGF1ZmdlbG9lc3Qgc2lu
ZCwgd2lyZCBkZXIgSW1wb3J0LUJ1dHRvbiBmcmVpZ2VnZWJlbi4nKSArCiAgICAgICAgICAgICAg
ICAnPGJ1dHRvbiBjbGFzcz0iYnRuIGJ0bi1zZWsiIGlkPSJpbXAtdHJvY2tlbmxhdWYiJyArICgo
cE9mZmVuICsgY09mZmVuKSA+IDAgPyAnIGRpc2FibGVkIHRpdGxlPSJFcnN0IG9mZmVuZSBLb25m
bGlrdGUgaW0gTWFwcGluZy1EaWFsb2cgYXVmbMO2c2VuIicgOiAnJykgKyAnPlZvcnNjaGF1IC8g
VHJvY2tlbmxhdWY8L2J1dHRvbj4nICsKICAgICAgICAgICAgICAgICc8YnV0dG9uIGNsYXNzPSJi
dG4gYnRuLXByaW1hZXIiIGlkPSJpbXAtc3RhcnRlbiInICsgKChwT2ZmZW4gKyBjT2ZmZW4pID4g
MCA/ICcgZGlzYWJsZWQgdGl0bGU9IkVyc3Qgb2ZmZW5lIEtvbmZsaWt0ZSBpbSBNYXBwaW5nLURp
YWxvZyBhdWZsw7ZzZW4iJyA6ICcnKSArICc+SW1wb3J0IHN0YXJ0ZW48L2J1dHRvbj4nICsKICAg
ICAgICAgICAgJzwvZGl2PicgKwogICAgICAgICc8L2Rpdj4nOwoKICAgICAgICBzdGF0dXNFbC5p
bm5lckhUTUwgPSBodG1sOwogICAgICAgIHZhciBtID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
J2ltcC1tYXBwaW5nLW9lZmZuZW4nKTsKICAgICAgICBpZiAobSkgbS5hZGRFdmVudExpc3RlbmVy
KCdjbGljaycsIGltcE1hcHBpbmdNb2RhbCk7CiAgICAgICAgdmFyIHRsID0gZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoJ2ltcC10cm9ja2VubGF1ZicpOwogICAgICAgIGlmICh0bCkgdGwuYWRkRXZl
bnRMaXN0ZW5lcignY2xpY2snLCBpbXBUcm9ja2VubGF1Zk1vZGFsKTsKICAgICAgICB2YXIgaWIg
PSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaW1wLXN0YXJ0ZW4nKTsKICAgICAgICBpZiAoaWIp
IGliLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgaW1wU2NocmVpYmVuU3RhcnRlbik7CiAgICB9
CgogICAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09CiAgICAvLyBUcm9ja2VubGF1ZiAvIFZvcnNjaGF1CiAgICAvLyA9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAg
IC8vIEJlcmVjaG5ldCBkaWUgRGlmZi1MaXN0ZSwgZGllIGVpbiBlY2h0ZXIgSW1wb3J0IGVyemV1
Z2VuIHd1ZXJkZSwKICAgIC8vIE9ITkUgaW4gWi5wbGFudW5nIHp1IHNjaHJlaWJlbiBvZGVyIEFQ
SS1DYWxscyB6dSBtYWNoZW4uIExvZ2lrCiAgICAvLyBnZXNwaWVnZWx0IGF1cyBpbXBTY2hyZWli
ZW5QaGFzZTJUcmFuc2Zvcm0g4oCUIHdlbm4gZGllIGJlaWRlbgogICAgLy8gamVtYWxzIGF1c2Vp
bmFuZGVyZHJpZnRlbiwgd2FuZGVybiBGZWhsZXIgdW5lbnRkZWNrdCBpbiBkZW4gSW1wb3J0Lgog
ICAgLy8gUHJvIFplbGwtUG9zaXRpb24gKGRhdHVtLCBwZXJzb25JZCkgd2lyZCBlaW4gRWludHJh
ZyBtaXQgYWx0L25ldS8KICAgIC8vIGFydCBlcnpldWd0OyBkYXJhdXMgYmF1dCBkYXMgTW9kYWwg
ZWluZSBmaWx0ZXItIHVuZCBzb3J0aWVyYmFyZQogICAgLy8gVGFiZWxsZS4gRGllbnQgYWxzIERp
YWdub3NlLCB3ZW5uIGRlciBVc2VyIGJlaGF1cHRldCAiRGF0ZW4gbGFuZGVuCiAgICAvLyBhbSBm
YWxzY2hlbiBUYWcgLyBiZWkgZGVyIGZhbHNjaGVuIFBlcnNvbiIuCiAgICBmdW5jdGlvbiBpbXBU
cm9ja2VubGF1ZkJlcmVjaG5lbihzKSB7CiAgICAgICAgdmFyIGJlc3RhbmQgPSBaLnBsYW51bmcg
fHwge307CiAgICAgICAgdmFyIGJlc3RhbmRFaW50cmFlZ2UgPSBiZXN0YW5kLmVpbnRyYWVnZSB8
fCB7fTsKICAgICAgICB2YXIgcGVyc29uZW5BdXNaID0gYmVzdGFuZC5wZXJzb25lbiB8fCBbXTsK
ICAgICAgICB2YXIgcGlkWnVOYW1lID0ge307CiAgICAgICAgcGVyc29uZW5BdXNaLmZvckVhY2go
ZnVuY3Rpb24ocCkgewogICAgICAgICAgICBwaWRadU5hbWVbU3RyaW5nKHAuaWQpXSA9ICgocC52
b3JuYW1lIHx8ICcnKSArICcgJyArIChwLm5hbWUgfHwgJycpKS50cmltKCk7CiAgICAgICAgfSk7
CgogICAgICAgIHZhciBleGNlbERhdHVtU2V0ID0ge307CiAgICAgICAgcy5kYXR1bVNwYWx0ZW4u
Zm9yRWFjaChmdW5jdGlvbihkKSB7IGV4Y2VsRGF0dW1TZXRbZC5kYXR1bV0gPSB0cnVlOyB9KTsK
CiAgICAgICAgdmFyIGNvZGVNYXAgPSB7fTsKICAgICAgICBzLmNvZGVNYXRjaGVzLmZvckVhY2go
ZnVuY3Rpb24obSkgeyBjb2RlTWFwW20uY29kZV0gPSBtLnppZWw7IH0pOwoKICAgICAgICAvLyBQ
SUQgLT4gRXhjZWwtTmFtZS4gUGFyaXRhZXQgenVtIGVjaHRlbiBTY2hyZWlidm9yZ2FuZyAoTTEt
U2NodXR6KToKICAgICAgICAvLyBudXIgUGVyc29uZW4gbWl0IG1pbmRlc3RlbnMgZWluZW0gRXhj
ZWwtRWludHJhZyBnZWx0ZW4gYWxzICJFeGNlbC0KICAgICAgICAvLyBQZXJzb24iIOKAlCBlaW5l
IGtvbXBsZXR0IGxlZXJlIEV4Y2VsLVplaWxlIGxlZXJ0IGRlbiBCZXN0YW5kIG5pY2h0LgogICAg
ICAgIHZhciBleGNlbFBpZHMgPSB7fTsKICAgICAgICBzLnBlcnNvbmVuTWF0Y2hlcy5mb3JFYWNo
KGZ1bmN0aW9uKG0pIHsKICAgICAgICAgICAgaWYgKG0uemllbElkICYmIE9iamVjdC5rZXlzKG0u
ZXhjZWwuZWludHJhZWdlIHx8IHt9KS5sZW5ndGggPiAwKSB7CiAgICAgICAgICAgICAgICBleGNl
bFBpZHNbU3RyaW5nKG0uemllbElkKV0gPSBtLmV4Y2VsLm5hY2huYW1lOwogICAgICAgICAgICB9
CiAgICAgICAgfSk7CgogICAgICAgIC8vIFBoYXNlIEE6IEV4Y2VsLVBlcnNvbmVuLUVpbnRyYWVn
ZSBzaW11bGllcmVuIChkYXR1bSAtPiBwaWQgLT4gbmV1ZXJDb2RlKQogICAgICAgIHZhciBzaW1O
ZXUgPSB7fTsgIC8vIHsgZGF0dW06IHsgcGlkOiBjb2RlIH0gfQogICAgICAgIHZhciBzdGF0c0Nv
ZGVJZ25vcmUgPSAwOwogICAgICAgIHMucGVyc29uZW5NYXRjaGVzLmZvckVhY2goZnVuY3Rpb24o
bSkgewogICAgICAgICAgICBpZiAoIW0uemllbElkKSByZXR1cm47CiAgICAgICAgICAgIHZhciBw
aWQgPSBTdHJpbmcobS56aWVsSWQpOwogICAgICAgICAgICBPYmplY3Qua2V5cyhtLmV4Y2VsLmVp
bnRyYWVnZSkuZm9yRWFjaChmdW5jdGlvbihkYXR1bSkgewogICAgICAgICAgICAgICAgdmFyIHNy
YyA9IG0uZXhjZWwuZWludHJhZWdlW2RhdHVtXTsKICAgICAgICAgICAgICAgIHZhciB6aWVsID0g
Y29kZU1hcFtzcmNdOwogICAgICAgICAgICAgICAgaWYgKCF6aWVsKSB7IHN0YXRzQ29kZUlnbm9y
ZSsrOyByZXR1cm47IH0KICAgICAgICAgICAgICAgIGlmICghc2ltTmV1W2RhdHVtXSkgc2ltTmV1
W2RhdHVtXSA9IHt9OwogICAgICAgICAgICAgICAgc2ltTmV1W2RhdHVtXVtwaWRdID0gemllbDsK
ICAgICAgICAgICAgfSk7CiAgICAgICAgfSk7CgogICAgICAgIC8vIFBoYXNlIEI6IFBybyBaZWxs
ZSBpbSBFeGNlbC1aZWl0cmF1bSBkZW4gVmVyZ2xlaWNoIHp1c2FtbWVuc3RlbGxlbi4KICAgICAg
ICAvLyBXaXIgZ2VoZW4gdWViZXIgQUxMRSAoZGF0dW0sIHBpZCkgaW0gQmVzdGFuZCBVTkQgaW4g
RXhjZWwgaW5uZXJoYWxiCiAgICAgICAgLy8gZGVzIFplaXRyYXVtcywgZGFtaXQgYXVjaCAidmVy
c2Nod2luZGVuZGUiIEVpbnRyYWVnZSAoVGFnIHZvcmhlcgogICAgICAgIC8vIGJlbGVndCwgRXhj
ZWwgbGFlc3N0IGxlZXIpIHNpY2h0YmFyIHdlcmRlbi4KICAgICAgICB2YXIgZGlmZiA9IFtdOwog
ICAgICAgIC8vIFNldCBhbGxlciByZWxldmFudGVuIChkYXR1bSwgcGlkKS1Lb21iaW5hdGlvbmVu
CiAgICAgICAgdmFyIHNjaGx1ZXNzZWwgPSB7fTsKICAgICAgICBPYmplY3Qua2V5cyhzaW1OZXUp
LmZvckVhY2goZnVuY3Rpb24oZCkgewogICAgICAgICAgICBPYmplY3Qua2V5cyhzaW1OZXVbZF0p
LmZvckVhY2goZnVuY3Rpb24ocGlkKSB7CiAgICAgICAgICAgICAgICBzY2hsdWVzc2VsW2QgKyAn
fCcgKyBwaWRdID0gdHJ1ZTsKICAgICAgICAgICAgfSk7CiAgICAgICAgfSk7CiAgICAgICAgT2Jq
ZWN0LmtleXMoYmVzdGFuZEVpbnRyYWVnZSkuZm9yRWFjaChmdW5jdGlvbihkKSB7CiAgICAgICAg
ICAgIGlmICghZXhjZWxEYXR1bVNldFtkXSkgcmV0dXJuOwogICAgICAgICAgICBPYmplY3Qua2V5
cyhiZXN0YW5kRWludHJhZWdlW2RdIHx8IHt9KS5mb3JFYWNoKGZ1bmN0aW9uKHBpZCkgewogICAg
ICAgICAgICAgICAgc2NobHVlc3NlbFtkICsgJ3wnICsgcGlkXSA9IHRydWU7CiAgICAgICAgICAg
IH0pOwogICAgICAgIH0pOwoKICAgICAgICBPYmplY3Qua2V5cyhzY2hsdWVzc2VsKS5mb3JFYWNo
KGZ1bmN0aW9uKGspIHsKICAgICAgICAgICAgdmFyIHRlaWxlID0gay5zcGxpdCgnfCcpOwogICAg
ICAgICAgICB2YXIgZGF0dW0gPSB0ZWlsZVswXTsKICAgICAgICAgICAgdmFyIHBpZCA9IHRlaWxl
WzFdOwogICAgICAgICAgICB2YXIgYWx0ID0gKGJlc3RhbmRFaW50cmFlZ2VbZGF0dW1dICYmIGJl
c3RhbmRFaW50cmFlZ2VbZGF0dW1dW3BpZF0pIHx8ICcnOwogICAgICAgICAgICB2YXIgbmV1UmF3
ID0gKHNpbU5ldVtkYXR1bV0gJiYgc2ltTmV1W2RhdHVtXVtwaWRdKSB8fCAnJzsKICAgICAgICAg
ICAgLy8gU2NobHVlcm1hbm4tU2NodXR6OiB3ZW5uIGRpZSBQZXJzb24gTklDSFQgaW4gZGVyIEV4
Y2VsIGlzdCwgYmxlaWJ0CiAgICAgICAgICAgIC8vIGlociBiZXN0ZWhlbmRlciBFaW50cmFnIGVy
aGFsdGVuLiBBdXMgRGlmZi1TaWNodCBlbnRzcHJpY2h0IGRhcwogICAgICAgICAgICAvLyAibmV1
ID0gYWx0IiDigJQga2VpbiBBZW5kZXJ1bmdzLUl0ZW0sIHdhbmRlcnQgbmFjaCAnZ2xlaWNoJy4K
ICAgICAgICAgICAgdmFyIG5ldSA9IGV4Y2VsUGlkc1twaWRdID8gbmV1UmF3IDogYWx0OwoKICAg
ICAgICAgICAgdmFyIGFydCA9IG51bGw7CiAgICAgICAgICAgIGlmIChhbHQgPT09IG5ldSkgewog
ICAgICAgICAgICAgICAgYXJ0ID0gJ2dsZWljaCc7ICAgLy8gS2VpbiBVcGRhdGUg4oCUIHdpcmQg
bmljaHQgYW5nZXplaWd0IChEZWZhdWx0LUZpbHRlcikKICAgICAgICAgICAgfSBlbHNlIGlmICgh
YWx0ICYmIG5ldSkgewogICAgICAgICAgICAgICAgYXJ0ID0gJ25ldSc7ICAgICAgLy8gTmV1IGVp
bmdldHJhZ2VuCiAgICAgICAgICAgIH0gZWxzZSBpZiAoYWx0ICYmICFuZXUpIHsKICAgICAgICAg
ICAgICAgIC8vIFZlcnNjaHdpbmRldDogRXhjZWwtWmVsbGUgbGVlciBvZGVyIENvZGUgd2VnZW4g
QWxpYXMgdmVyd29yZmVuLgogICAgICAgICAgICAgICAgLy8gKEJlc3RhbmQtb25seS1QZXJzb25l
biBsYW5kZW4gb2JlbiBpbiAnZ2xlaWNoJyBkYW5rIGRlcyBTY2h1dHplcy4pCiAgICAgICAgICAg
ICAgICBhcnQgPSAndmVybG9yZW4tbGVlcic7CiAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAg
ICAgICAgICBhcnQgPSAnZ2VhZW5kZXJ0JzsgIC8vIGFsdCAhPSBuZXUsIGJlaWRlIGdlZnVlbGx0
CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZGlmZi5wdXNoKHsKICAgICAgICAgICAgICAgIGRh
dHVtOiBkYXR1bSwgcGlkOiBwaWQsCiAgICAgICAgICAgICAgICBuYW1lOiBwaWRadU5hbWVbcGlk
XSB8fCAoJ1BJRCAnICsgcGlkKSwKICAgICAgICAgICAgICAgIGlzdEV4Y2VsUGVyc29uOiAhIWV4
Y2VsUGlkc1twaWRdLAogICAgICAgICAgICAgICAgZXhjZWxOYW1lOiBleGNlbFBpZHNbcGlkXSB8
fCBudWxsLAogICAgICAgICAgICAgICAgYWx0OiBhbHQsIG5ldTogbmV1LCBhcnQ6IGFydAogICAg
ICAgICAgICB9KTsKICAgICAgICB9KTsKCiAgICAgICAgLy8gU29ydGllcnVuZzogenVlcnN0IG5h
Y2ggRGF0dW0gKGNocm9ub2xvZ2lzY2gpLCBkYW5uIG5hY2ggTmFtZQogICAgICAgIGRpZmYuc29y
dChmdW5jdGlvbihhLCBiKSB7CiAgICAgICAgICAgIGlmIChhLmRhdHVtICE9PSBiLmRhdHVtKSBy
ZXR1cm4gYS5kYXR1bSA8IGIuZGF0dW0gPyAtMSA6IDE7CiAgICAgICAgICAgIHJldHVybiBhLm5h
bWUubG9jYWxlQ29tcGFyZShiLm5hbWUsICdkZScpOwogICAgICAgIH0pOwoKICAgICAgICByZXR1
cm4gewogICAgICAgICAgICBkaWZmOiBkaWZmLAogICAgICAgICAgICBzdGF0czogewogICAgICAg
ICAgICAgICAgZ2VzYW10OiAgICAgICAgICAgZGlmZi5sZW5ndGgsCiAgICAgICAgICAgICAgICBu
ZXU6ICAgICAgICAgICAgICBkaWZmLmZpbHRlcihmdW5jdGlvbihkKSB7IHJldHVybiBkLmFydCA9
PT0gJ25ldSc7IH0pLmxlbmd0aCwKICAgICAgICAgICAgICAgIGdlYWVuZGVydDogICAgICAgIGRp
ZmYuZmlsdGVyKGZ1bmN0aW9uKGQpIHsgcmV0dXJuIGQuYXJ0ID09PSAnZ2VhZW5kZXJ0JzsgfSku
bGVuZ3RoLAogICAgICAgICAgICAgICAgZ2xlaWNoOiAgICAgICAgICAgZGlmZi5maWx0ZXIoZnVu
Y3Rpb24oZCkgeyByZXR1cm4gZC5hcnQgPT09ICdnbGVpY2gnOyB9KS5sZW5ndGgsCiAgICAgICAg
ICAgICAgICB2ZXJsb3JlbkxlZXI6ICAgICBkaWZmLmZpbHRlcihmdW5jdGlvbihkKSB7IHJldHVy
biBkLmFydCA9PT0gJ3ZlcmxvcmVuLWxlZXInOyB9KS5sZW5ndGgsCiAgICAgICAgICAgICAgICBj
b2RlSWdub3JlOiAgICAgICBzdGF0c0NvZGVJZ25vcmUKICAgICAgICAgICAgfQogICAgICAgIH07
CiAgICB9CgogICAgZnVuY3Rpb24gaW1wVHJvY2tlbmxhdWZNb2RhbCgpIHsKICAgICAgICBpZiAo
IWltcFN0YXRlKSByZXR1cm47CiAgICAgICAgdmFyIHJlcyA9IGltcFRyb2NrZW5sYXVmQmVyZWNo
bmVuKGltcFN0YXRlKTsKICAgICAgICAvLyBEZWZhdWx0LUZpbHRlcjogbnVyIEFlbmRlcnVuZ2Vu
LCAnZ2xlaWNoJyAoPSB1bnZlcmFlbmRlcnQpIGF1c2dlYmxlbmRldC4KICAgICAgICB2YXIgYWt0
aXZBcnRlbiA9IHsgJ25ldSc6IHRydWUsICdnZWFlbmRlcnQnOiB0cnVlLCAndmVybG9yZW4tbGVl
cic6IHRydWUsICdnbGVpY2gnOiBmYWxzZSB9OwogICAgICAgIHZhciBzdWNoZSA9ICcnOwoKICAg
ICAgICBmdW5jdGlvbiByZW5kZXJuKCkgewogICAgICAgICAgICB2YXIgZ2VmaWx0ZXJ0ID0gcmVz
LmRpZmYuZmlsdGVyKGZ1bmN0aW9uKGQpIHsKICAgICAgICAgICAgICAgIGlmICghYWt0aXZBcnRl
bltkLmFydF0pIHJldHVybiBmYWxzZTsKICAgICAgICAgICAgICAgIGlmIChzdWNoZSkgewogICAg
ICAgICAgICAgICAgICAgIHZhciBzID0gc3VjaGUudG9Mb3dlckNhc2UoKTsKICAgICAgICAgICAg
ICAgICAgICBpZiAoKGQubmFtZXx8JycpLnRvTG93ZXJDYXNlKCkuaW5kZXhPZihzKSA8IDAgJiYK
ICAgICAgICAgICAgICAgICAgICAgICAgKGQuZGF0dW18fCcnKS5pbmRleE9mKHMpIDwgMCAmJgog
ICAgICAgICAgICAgICAgICAgICAgICAoZC5hbHR8fCcnKS50b0xvd2VyQ2FzZSgpLmluZGV4T2Yo
cykgPCAwICYmCiAgICAgICAgICAgICAgICAgICAgICAgIChkLm5ldXx8JycpLnRvTG93ZXJDYXNl
KCkuaW5kZXhPZihzKSA8IDApIHJldHVybiBmYWxzZTsKICAgICAgICAgICAgICAgIH0KICAgICAg
ICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICAgICB9KTsKICAgICAgICAgICAgdmFyIHJv
d3MgPSBnZWZpbHRlcnQuc2xpY2UoMCwgNTAwKS5tYXAoZnVuY3Rpb24oZCkgewogICAgICAgICAg
ICAgICAgdmFyIGFydExhYmVsID0gewogICAgICAgICAgICAgICAgICAgICduZXUnOiAgICAgICAg
ICAgICc8c3BhbiBzdHlsZT0iY29sb3I6IzFmN2ExZiI+bmV1PC9zcGFuPicsCiAgICAgICAgICAg
ICAgICAgICAgJ2dlYWVuZGVydCc6ICAgICAgJzxzcGFuIHN0eWxlPSJjb2xvcjojYjA2MDAwIj5n
ZcOkbmRlcnQ8L3NwYW4+JywKICAgICAgICAgICAgICAgICAgICAnZ2xlaWNoJzogICAgICAgICAn
PHNwYW4gc3R5bGU9ImNvbG9yOiM4ODgiPmdsZWljaDwvc3Bhbj4nLAogICAgICAgICAgICAgICAg
ICAgICd2ZXJsb3Jlbi1sZWVyJzogICc8c3BhbiBzdHlsZT0iY29sb3I6I2IwMjAyMCIgdGl0bGU9
IkV4Y2VsLVplbGxlIGxlZXIgb2RlciBDb2RlIOKAni4iIOKAlCBFaW50cmFnIHdpcmQgZW50ZmVy
bnQiPmxlZXIgaW4gRXhjZWw8L3NwYW4+JwogICAgICAgICAgICAgICAgfVtkLmFydF0gfHwgZC5h
cnQ7CiAgICAgICAgICAgICAgICByZXR1cm4gJzx0cj4nICsKICAgICAgICAgICAgICAgICAgICAn
PHRkPicgKyBlc2NhcGVIVE1MKGQuZGF0dW0pICsgJzwvdGQ+JyArCiAgICAgICAgICAgICAgICAg
ICAgJzx0ZD4nICsgZXNjYXBlSFRNTChkLm5hbWUpICsgKGQuaXN0RXhjZWxQZXJzb24gPyAnJyA6
ICcgPHNwYW4gc3R5bGU9ImNvbG9yOiNiMDYwMDA7Zm9udC1zaXplOjEwcHgiIHRpdGxlPSJOaWNo
dCBpbiBkZXIgRXhjZWwiPuKaoDwvc3Bhbj4nKSArICc8L3RkPicgKwogICAgICAgICAgICAgICAg
ICAgICc8dGQgc3R5bGU9ImZvbnQtZmFtaWx5Om1vbm9zcGFjZTtjb2xvcjojNjY2Ij4nICsgZXNj
YXBlSFRNTChkLmFsdCB8fCAn4oCUJykgKyAnPC90ZD4nICsKICAgICAgICAgICAgICAgICAgICAn
PHRkIHN0eWxlPSJmb250LWZhbWlseTptb25vc3BhY2UiPicgKyBlc2NhcGVIVE1MKGQubmV1IHx8
ICfigJQnKSArICc8L3RkPicgKwogICAgICAgICAgICAgICAgICAgICc8dGQ+JyArIGFydExhYmVs
ICsgJzwvdGQ+JyArCiAgICAgICAgICAgICAgICAnPC90cj4nOwogICAgICAgICAgICB9KS5qb2lu
KCcnKTsKICAgICAgICAgICAgdmFyIGhpbndlaXNHZWt1ZXJ6dCA9IGdlZmlsdGVydC5sZW5ndGgg
PiA1MDAKICAgICAgICAgICAgICAgID8gJzxkaXYgc3R5bGU9InBhZGRpbmc6NnB4IDhweDtjb2xv
cjojYjA2MDAwO2ZvbnQtc2l6ZToxMXB4Ij7igKYgJyArIChnZWZpbHRlcnQubGVuZ3RoIC0gNTAw
KSArICcgd2VpdGVyZSBaZWlsZW4gYXVzZ2VibGVuZGV0IChGaWx0ZXIgZWluZ3JlbnplbikuPC9k
aXY+JwogICAgICAgICAgICAgICAgOiAnJzsKICAgICAgICAgICAgdmFyIHRib2R5ID0gZG9jdW1l
bnQuZ2V0RWxlbWVudEJ5SWQoJ2ltcC10bC10Ym9keScpOwogICAgICAgICAgICB2YXIgbWV0YSA9
IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdpbXAtdGwtbWV0YScpOwogICAgICAgICAgICBpZiAo
dGJvZHkpIHRib2R5LmlubmVySFRNTCA9IHJvd3M7CiAgICAgICAgICAgIGlmIChtZXRhKSBtZXRh
LmlubmVySFRNTCA9ICdaZWlnZSAnICsgTWF0aC5taW4oZ2VmaWx0ZXJ0Lmxlbmd0aCwgNTAwKSAr
ICcgdm9uICcgKyBnZWZpbHRlcnQubGVuZ3RoICsgJyBnZWZpbHRlcnRlbiBaZWlsZW4gKGdlc2Ft
dCAnICsgcmVzLmRpZmYubGVuZ3RoICsgJykuJyArIGhpbndlaXNHZWt1ZXJ6dDsKICAgICAgICB9
CgogICAgICAgIGZ1bmN0aW9uIGNoayhhcnQsIGxhYmVsLCBjb3VudCwgY29sb3IpIHsKICAgICAg
ICAgICAgdmFyIGNoZWNrZWQgPSBha3RpdkFydGVuW2FydF0gPyAnIGNoZWNrZWQnIDogJyc7CiAg
ICAgICAgICAgIHJldHVybiAnPGxhYmVsIHN0eWxlPSJkaXNwbGF5OmlubGluZS1mbGV4O2FsaWdu
LWl0ZW1zOmNlbnRlcjtnYXA6NHB4O21hcmdpbi1yaWdodDoxMnB4O2N1cnNvcjpwb2ludGVyIj4n
ICsKICAgICAgICAgICAgICAgICc8aW5wdXQgdHlwZT0iY2hlY2tib3giIGRhdGEtYXJ0PSInICsg
YXJ0ICsgJyInICsgY2hlY2tlZCArICc+ICcgKwogICAgICAgICAgICAgICAgJzxzcGFuIHN0eWxl
PSJjb2xvcjonICsgY29sb3IgKyAnIj4nICsgbGFiZWwgKyAnPC9zcGFuPicgKwogICAgICAgICAg
ICAgICAgJyA8c3BhbiBzdHlsZT0iY29sb3I6Izg4OCI+KCcgKyBjb3VudCArICcpPC9zcGFuPicg
KwogICAgICAgICAgICAnPC9sYWJlbD4nOwogICAgICAgIH0KCiAgICAgICAgdmFyIGtvZXJwZXIg
PQogICAgICAgICAgICAnPGRpdiBzdHlsZT0iZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNv
bHVtbjtnYXA6OHB4O21pbi13aWR0aDo3NjBweDttYXgtd2lkdGg6MTAwMHB4Ij4nICsKICAgICAg
ICAgICAgICAgICc8ZGl2IHN0eWxlPSJkaXNwbGF5OmZsZXg7ZmxleC13cmFwOndyYXA7Z2FwOjZw
eDtmb250LXNpemU6MTJweDtiYWNrZ3JvdW5kOnZhcigtLWJnLWNhcmQtYWx0KTtwYWRkaW5nOjhw
eDtib3JkZXItcmFkaXVzOjZweCI+JyArCiAgICAgICAgICAgICAgICAgICAgY2hrKCduZXUnLCAg
ICAgICAgICAgICduZXUnLCAgICAgICAgICAgIHJlcy5zdGF0cy5uZXUsICAgICAgICAgICAnIzFm
N2ExZicpICsKICAgICAgICAgICAgICAgICAgICBjaGsoJ2dlYWVuZGVydCcsICAgICAgJ2dlw6Ru
ZGVydCcsICAgICAgIHJlcy5zdGF0cy5nZWFlbmRlcnQsICAgICAnI2IwNjAwMCcpICsKICAgICAg
ICAgICAgICAgICAgICBjaGsoJ3ZlcmxvcmVuLWxlZXInLCAgJ2xlZXIgaW4gRXhjZWwnLCAgcmVz
LnN0YXRzLnZlcmxvcmVuTGVlciwgICcjYjAyMDIwJykgKwogICAgICAgICAgICAgICAgICAgIGNo
aygnZ2xlaWNoJywgICAgICAgICAndW52ZXLDpG5kZXJ0JywgICAgcmVzLnN0YXRzLmdsZWljaCwg
ICAgICAgICcjODg4JykgKwogICAgICAgICAgICAgICAgJzwvZGl2PicgKwogICAgICAgICAgICAg
ICAgJzxpbnB1dCB0eXBlPSJ0ZXh0IiBpZD0iaW1wLXRsLXN1Y2hlIiBwbGFjZWhvbGRlcj0iRmls
dGVyIChOYW1lLCBEYXR1bSwgQ29kZSkg4oCmIiBzdHlsZT0icGFkZGluZzo1cHggOHB4O2ZvbnQt
c2l6ZToxMnB4O3dpZHRoOjEwMCU7Ym94LXNpemluZzpib3JkZXItYm94Ij4nICsKICAgICAgICAg
ICAgICAgICc8ZGl2IGlkPSJpbXAtdGwtbWV0YSIgc3R5bGU9ImZvbnQtc2l6ZToxMS41cHg7Y29s
b3I6IzY2NiI+PC9kaXY+JyArCiAgICAgICAgICAgICAgICAnPGRpdiBzdHlsZT0ibWF4LWhlaWdo
dDo1MjBweDtvdmVyZmxvdzphdXRvO2JvcmRlcjoxcHggc29saWQgdmFyKC0tYm9yZGVyLWxpZ2h0
KTtib3JkZXItcmFkaXVzOjRweCI+JyArCiAgICAgICAgICAgICAgICAgICAgJzx0YWJsZSBzdHls
ZT0id2lkdGg6MTAwJTtib3JkZXItY29sbGFwc2U6Y29sbGFwc2U7Zm9udC1zaXplOjEycHgiPicg
KwogICAgICAgICAgICAgICAgICAgICAgICAnPHRoZWFkIHN0eWxlPSJwb3NpdGlvbjpzdGlja3k7
dG9wOjA7YmFja2dyb3VuZDp2YXIoLS1iZy1jYXJkKSI+JyArCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAnPHRyPjx0aCBzdHlsZT0idGV4dC1hbGlnbjpsZWZ0O3BhZGRpbmc6NnB4IDhweDti
b3JkZXItYm90dG9tOjFweCBzb2xpZCAjZGRkIj5EYXR1bTwvdGg+JyArCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgJzx0aCBzdHlsZT0idGV4dC1hbGlnbjpsZWZ0O3BhZGRpbmc6NnB4
IDhweDtib3JkZXItYm90dG9tOjFweCBzb2xpZCAjZGRkIj5QZXJzb248L3RoPicgKwogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICc8dGggc3R5bGU9InRleHQtYWxpZ246bGVmdDtwYWRk
aW5nOjZweCA4cHg7Ym9yZGVyLWJvdHRvbToxcHggc29saWQgI2RkZCI+dm9yaGVyPC90aD4nICsK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnPHRoIHN0eWxlPSJ0ZXh0LWFsaWduOmxl
ZnQ7cGFkZGluZzo2cHggOHB4O2JvcmRlci1ib3R0b206MXB4IHNvbGlkICNkZGQiPm5hY2hoZXI8
L3RoPicgKwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICc8dGggc3R5bGU9InRleHQt
YWxpZ246bGVmdDtwYWRkaW5nOjZweCA4cHg7Ym9yZGVyLWJvdHRvbToxcHggc29saWQgI2RkZCI+
QXJ0PC90aD48L3RyPicgKwogICAgICAgICAgICAgICAgICAgICAgICAnPC90aGVhZD4nICsKICAg
ICAgICAgICAgICAgICAgICAgICAgJzx0Ym9keSBpZD0iaW1wLXRsLXRib2R5Ij48L3Rib2R5Picg
KwogICAgICAgICAgICAgICAgICAgICc8L3RhYmxlPicgKwogICAgICAgICAgICAgICAgJzwvZGl2
PicgKwogICAgICAgICAgICAgICAgKHJlcy5zdGF0cy5jb2RlSWdub3JlID8gJzxkaXYgc3R5bGU9
ImZvbnQtc2l6ZToxMXB4O2NvbG9yOiNiMDYwMDAiPkhpbndlaXM6ICcgKyByZXMuc3RhdHMuY29k
ZUlnbm9yZSArICcgWmVsbGVuIHd1cmRlbiB3ZWdlbiBDb2RlLU1hcHBpbmcgdmVyd29yZmVuICh6
LkIuIOKAni4iIOKGkiBpZ25vcmllcmVuKS48L2Rpdj4nIDogJycpICsKICAgICAgICAgICAgJzwv
ZGl2Pic7CgogICAgICAgIG1vZGFsWmVpZ2VuKCdUcm9ja2VubGF1ZiDigJQgVm9yc2NoYXUgZGVy
IMOEbmRlcnVuZ2VuJywKICAgICAgICAgICAga29lcnBlciwKICAgICAgICAgICAgJzxidXR0b24g
Y2xhc3M9ImJ0biBidG4tcHJpbWFlciIgaWQ9ImltcC10bC1zY2hsaWVzc2VuIj5TY2hsaWXDn2Vu
PC9idXR0b24+JywKICAgICAgICAgICAgbnVsbCwgbnVsbCwgeyByZWluZXJEaWFsb2c6IHRydWUg
fSk7CgogICAgICAgIC8vIEV2ZW50LUJpbmRpbmdzIG5hY2ggUmVuZGVyCiAgICAgICAgcmVuZGVy
bigpOwogICAgICAgIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ2lucHV0W2RhdGEtYXJ0XScp
LmZvckVhY2goZnVuY3Rpb24oY2IpIHsKICAgICAgICAgICAgY2IuYWRkRXZlbnRMaXN0ZW5lcign
Y2hhbmdlJywgZnVuY3Rpb24oKSB7CiAgICAgICAgICAgICAgICBha3RpdkFydGVuW3RoaXMuZ2V0
QXR0cmlidXRlKCdkYXRhLWFydCcpXSA9IHRoaXMuY2hlY2tlZDsKICAgICAgICAgICAgICAgIHJl
bmRlcm4oKTsKICAgICAgICAgICAgfSk7CiAgICAgICAgfSk7CiAgICAgICAgdmFyIHN1Y2hlRWwg
PSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaW1wLXRsLXN1Y2hlJyk7CiAgICAgICAgaWYgKHN1
Y2hlRWwpIHN1Y2hlRWwuYWRkRXZlbnRMaXN0ZW5lcignaW5wdXQnLCBmdW5jdGlvbigpIHsKICAg
ICAgICAgICAgc3VjaGUgPSB0aGlzLnZhbHVlLnRyaW0oKTsKICAgICAgICAgICAgcmVuZGVybigp
OwogICAgICAgIH0pOwogICAgICAgIHZhciBzY2hsID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
J2ltcC10bC1zY2hsaWVzc2VuJyk7CiAgICAgICAgaWYgKHNjaGwpIHNjaGwuYWRkRXZlbnRMaXN0
ZW5lcignY2xpY2snLCBmdW5jdGlvbigpIHsKICAgICAgICAgICAgbW9kYWxTY2hsaWVzc2VuKHRy
dWUpOwogICAgICAgICAgICAvLyBVWC1BdWRpdCBTcHJpbnQgMi44ICgyMDI2LTA1LTI5KTogbmFj
aCBUcm9ja2VubGF1Zi1TY2hsaWVzc2VuCiAgICAgICAgICAgIC8vIGRlbiBGb2t1cyB6dXJ1ZWNr
IGF1ZiAiSW1wb3J0IHN0YXJ0ZW4iIGltIFN0YXR1cy1CaWxkc2NoaXJtLAogICAgICAgICAgICAv
LyBkYW1pdCBkZXIgbmFlY2hzdGUgU2Nocml0dCBkaXJla3Qga2xhciBpc3QgKFRhc3RhdHVyLVVz
ZXIpLgogICAgICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgICAg
dmFyIGJ0biA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdpbXAtc3RhcnRlbicpOwogICAgICAg
ICAgICAgICAgaWYgKGJ0bikgeyBidG4uZm9jdXMoKTsgYnRuLnNjcm9sbEludG9WaWV3KHsgYmxv
Y2s6ICdjZW50ZXInLCBiZWhhdmlvcjogJ3Ntb290aCcgfSk7IH0KICAgICAgICAgICAgfSwgMTAw
KTsKICAgICAgICB9KTsKICAgIH0KCiAgICAvLyBJbXBvcnR2b3JnYW5nIGFibGF1ZmVuOiBCYWNr
dXAgLT4gVHJhbnNmb3JtYXRpb24gLT4gU2NocmVpYmVuLgogICAgLy8gVmVyd2VuZGV0IGVpbiBQ
cm9ncmVzcy1Nb2RhbCBtaXQgZHJlaSBQaGFzZW4uIEJld3Vzc3QgbGFuZ3NhbSB1bmQgaW4KICAg
IC8vIEV0YXBwZW4sIGRhbWl0IGRlciBVc2VyIHZpc3VlbGwgdmVyZm9sZ2VuIGthbm4gd2FzIHBh
c3NpZXJ0LgogICAgZnVuY3Rpb24gaW1wU2NocmVpYmVuU3RhcnRlbigpIHsKICAgICAgICBpZiAo
IWltcFN0YXRlKSByZXR1cm47CiAgICAgICAgdmFyIHMgPSBpbXBTdGF0ZTsKCiAgICAgICAgLy8g
S29uc2VxdWVuei1adXNhbW1lbmZhc3N1bmc6IGRlbSBVc2VyIHZvciBkZW0gU2NocmVpYmVuIHZv
ciBBdWdlbgogICAgICAgIC8vIGZ1ZWhyZW4sIHdhcyBkZXIgSW1wb3J0IGtvbmtyZXQgYmV3aXJr
dCDigJQgaW5zYmVzb25kZXJlIG5ldWUgUGVyc29uZW4KICAgICAgICAvLyAoRHVwbGlrYXQtUmlz
aWtvKSB1bmQgWmVsbGVuLCBkaWUgZ2VsZWVydCBzdGF0dCBiZWZ1ZWxsdCB3ZXJkZW4KICAgICAg
ICAvLyAoQ29kZSB1bmJla2FubnQvaWdub3JpZXJ0IG9kZXIgRXhjZWwtWmVsbGUgbGVlcikuIFF1
ZWxsZSBpc3QgZXhha3QKICAgICAgICAvLyBkaWVzZWxiZSBEaWZmLUJlcmVjaG51bmcgd2llIGlt
IFRyb2NrZW5sYXVmLgogICAgICAgIHZhciBwTmV1ICAgICAgPSBzLnBlcnNvbmVuTWF0Y2hlcy5m
aWx0ZXIoZnVuY3Rpb24obSkgeyByZXR1cm4gbS5uZXVBbmxlZ2VuICYmICFtLnppZWxJZDsgfSku
bGVuZ3RoOwogICAgICAgIHZhciBwQWVobmxpY2ggPSBzLnBlcnNvbmVuTWF0Y2hlcy5maWx0ZXIo
ZnVuY3Rpb24obSkgeyByZXR1cm4gbS5zdGF0dXMgPT09ICduZXUnICYmIG0uYWVobmxpY2ggJiYg
bS5hZWhubGljaC5sZW5ndGg7IH0pLmxlbmd0aDsKICAgICAgICB2YXIgdGwgICAgICAgID0gaW1w
VHJvY2tlbmxhdWZCZXJlY2huZW4ocyk7CgogICAgICAgIC8vIE0yOiBSYW5nL1Bvc2l0aW9uLUFl
bmRlcnVuZ2VuIHNpY2h0YmFyIG1hY2hlbi4gRGVyIEltcG9ydCB6aWVodCBkZW4KICAgICAgICAv
LyBFeGNlbC1SYW5nIChTcGFsdGUgRikgYXVmIGRpZSBnZW1hdGNodGUgUGVyc29uIOKAlCBkYXMg
a2FubiBkaWUKICAgICAgICAvLyBSZWloZW5mb2xnZSBkZXIgUGVyc29uYWxsaXN0ZSB1bXNvcnRp
ZXJlbiwgZWluIGxlaWNodCB1ZWJlcnNlaGVuZXIKICAgICAgICAvLyBOZWJlbmVmZmVrdCBlaW5l
cyByZWluZW4gU2NoaWNodC1JbXBvcnRzLgogICAgICAgIHZhciBwaWRQb3MgPSB7fTsKICAgICAg
ICAoWi5wbGFudW5nLnBlcnNvbmVuIHx8IFtdKS5mb3JFYWNoKGZ1bmN0aW9uKHApIHsgcGlkUG9z
W1N0cmluZyhwLmlkKV0gPSBwLnBvc2l0aW9uOyB9KTsKICAgICAgICB2YXIgcmFlbmdlID0gcy5w
ZXJzb25lbk1hdGNoZXMuZmlsdGVyKGZ1bmN0aW9uKG0pIHsKICAgICAgICAgICAgcmV0dXJuIG0u
emllbElkICYmIG0uZXhjZWwucmFuZyAhPSBudWxsICYmIHBpZFBvc1tTdHJpbmcobS56aWVsSWQp
XSAhPT0gbS5leGNlbC5yYW5nOwogICAgICAgIH0pLmxlbmd0aDsKCiAgICAgICAgdmFyIHplaWxl
biA9IFsKICAgICAgICAgICAgJ0RpZSBFaW50csOkZ2UgaW0gRXhjZWwtWmVpdHJhdW0gKCcgKwog
ICAgICAgICAgICBzLmRhdHVtU3BhbHRlblswXS5kYXR1bSArICcgYmlzICcgKwogICAgICAgICAg
ICBzLmRhdHVtU3BhbHRlbltzLmRhdHVtU3BhbHRlbi5sZW5ndGggLSAxXS5kYXR1bSArCiAgICAg
ICAgICAgICcpIHdlcmRlbiBmw7xyIGRpZSBpbXBvcnRpZXJ0ZW4gUGVyc29uZW4gZHVyY2ggZGll
IEV4Y2VsLVdlcnRlIEVSU0VUWlQuICcgKwogICAgICAgICAgICAnS29tbWVudGFyZSBhdXMgZGVy
IEV4Y2VsIHdlcmRlbiBlcmfDpG56dCDigJQgdm9yaGFuZGVuZSBibGVpYmVuIGVyaGFsdGVuLiAn
ICsKICAgICAgICAgICAgJ1BlcnNvbmVuLCBkaWUgbmljaHQgaW4gZGVyIEV4Y2VsIHN0ZWhlbiwg
YmVoYWx0ZW4gaWhyZSBFaW50csOkZ2UgdW52ZXLDpG5kZXJ0LicKICAgICAgICBdOwoKICAgICAg
ICB2YXIgYmlsYW56ID0gW107CiAgICAgICAgaWYgKHRsLnN0YXRzLm5ldSkgICAgICAgICAgYmls
YW56LnB1c2goJ+KAoiAnICsgdGwuc3RhdHMubmV1ICsgJyBaZWxsZShuKSBuZXUgZWluZ2V0cmFn
ZW4nKTsKICAgICAgICBpZiAodGwuc3RhdHMuZ2VhZW5kZXJ0KSAgICBiaWxhbnoucHVzaCgn4oCi
ICcgKyB0bC5zdGF0cy5nZWFlbmRlcnQgKyAnIFplbGxlKG4pIGdlw6RuZGVydCcpOwogICAgICAg
IGlmICh0bC5zdGF0cy52ZXJsb3JlbkxlZXIpIGJpbGFuei5wdXNoKCfigKIgJyArIHRsLnN0YXRz
LnZlcmxvcmVuTGVlciArICcgWmVsbGUobikgd2VyZGVuIEdFTEVFUlQgKGluIEV4Y2VsIGxlZXIg
b2RlciBDb2RlIG5pY2h0IHp1Z2VvcmRuZXQpJyk7CiAgICAgICAgaWYgKHBOZXUpICAgICAgICAg
ICAgICAgICAgYmlsYW56LnB1c2goJ+KAoiAnICsgcE5ldSArICcgUGVyc29uKGVuKSB3ZXJkZW4g
TkVVIGFuZ2VsZWd0JyArIChwQWVobmxpY2ggPyAnIOKAlCBkYXZvbiAnICsgcEFlaG5saWNoICsg
JyBtaXQgVGlwcGZlaGxlci1WZXJkYWNodCEnIDogJycpKTsKICAgICAgICBpZiAocmFlbmdlKSAg
ICAgICAgICAgICAgICBiaWxhbnoucHVzaCgn4oCiICcgKyByYWVuZ2UgKyAnIFBlcnNvbihlbikg
YmVrb21tZW4gZWluZSBuZXVlIFJlaWhlbmZvbGdlLVBvc2l0aW9uIGF1cyBkZXIgRXhjZWwgKFNw
YWx0ZSBGKScpOwogICAgICAgIGlmIChiaWxhbnoubGVuZ3RoKSB6ZWlsZW4ucHVzaCgnRGFzIGJl
d2lya3Q6XG4nICsgYmlsYW56LmpvaW4oJ1xuJykpOwoKICAgICAgICBpZiAocEFlaG5saWNoKSB7
CiAgICAgICAgICAgIHplaWxlbi5wdXNoKCfimqAgJyArIHBBZWhubGljaCArICcgbmV1IGFuenVs
ZWdlbmRlIFBlcnNvbihlbikgw6RobmVsbiBlaW5lciBiZXN0ZWhlbmRlbiBQZXJzb24uIEJpdHRl
IHZvcmhlciBpbSBNYXBwaW5nIHByw7xmZW4sIHNvbnN0IGVudHN0ZWhlbiBEdXBsaWthdGUuJyk7
CiAgICAgICAgfQogICAgICAgIGlmIChzLmphaHJJbmZvICYmIChzLmphaHJJbmZvLmF1c3Nlcmhh
bGIgPiAwIHx8IHMuamFockluZm8uZG9taW5hbnRKYWhyICE9PSBzLmphaHJJbmZvLnBvcnRhbEph
aHIpKSB7CiAgICAgICAgICAgIHplaWxlbi5wdXNoKCfimqAgSmFocmVzLUhpbndlaXM6IERhdGVp
LVplaXRyYXVtICcgKyBzLmphaHJJbmZvLmRhdGVpVm9uICsgJyBiaXMgJyArIHMuamFockluZm8u
ZGF0ZWlCaXMgKwogICAgICAgICAgICAgICAgJywgUG9ydGFsIHplaWd0IFBsYW51bmdzamFociAn
ICsgcy5qYWhySW5mby5wb3J0YWxKYWhyICsgJy4gJyArCiAgICAgICAgICAgICAgICAocy5qYWhy
SW5mby5hdXNzZXJoYWxiID8gcy5qYWhySW5mby5hdXNzZXJoYWxiICsgJyBUYWcoZSkgYXXDn2Vy
aGFsYiBkZXMgYW5nZXplaWd0ZW4gWmVpdHJhdW1zIHdlcmRlbiBnZXNjaHJpZWJlbiwgYWJlciBu
aWNodCBhbmdlemVpZ3QuICcgOiAnJykgKwogICAgICAgICAgICAgICAgJ0JpdHRlIHNpY2hlcnN0
ZWxsZW4sIGRhc3MgRGF0ZWkgdW5kIFBsYW51bmdzamFociB6dXNhbW1lbnBhc3Nlbi4nKTsKICAg
ICAgICB9CgogICAgICAgIHplaWxlbi5wdXNoKCdFaW4gU2ljaGVyaGVpdHMtQmFja3VwIGRlciBh
a3R1ZWxsZW4gUGxhbnVuZyB3aXJkIHZvcmhlciBhdXRvbWF0aXNjaCBhbmdlbGVndC4nKTsKICAg
ICAgICB6ZWlsZW4ucHVzaCgnRm9ydHNldHplbj8nKTsKCiAgICAgICAgYmVzdGFldGlnZW4oCiAg
ICAgICAgICAgIHplaWxlbi5qb2luKCdcblxuJyksCiAgICAgICAgICAgIGZ1bmN0aW9uKCkgeyBp
bXBTY2hyZWliZW5BdXNmdWVocmVuKCk7IH0sCiAgICAgICAgICAgIHsgdGl0ZWw6ICdFeGNlbC1J
bXBvcnQgYmVzdMOkdGlnZW4nLCBqYVRleHQ6ICdGb3J0c2V0emVuJywgamFEYW5nZXI6IHRydWUg
fQogICAgICAgICk7CiAgICB9CgogICAgZnVuY3Rpb24gaW1wUHJvZ3Jlc3NNb2RhbE9lZmZuZW4o
KSB7CiAgICAgICAgdmFyIGtvZXJwZXIgPQogICAgICAgICAgICAnPGRpdiBjbGFzcz0iaW1wLXBy
b2dyZXNzLWtvbnRleHQiPicgKwogICAgICAgICAgICAgICAgJzxkaXYgY2xhc3M9ImltcC1wcm9n
cmVzcy1waGFzZSIgaWQ9ImltcC1wcm9nLXBoYXNlIj5Wb3JiZXJlaXRlbiDigKY8L2Rpdj4nICsK
ICAgICAgICAgICAgICAgICc8ZGl2IGNsYXNzPSJpbXAtcHJvZ3Jlc3MtYmFyIj48ZGl2IGNsYXNz
PSJpbXAtcHJvZ3Jlc3MtZmlsbCIgaWQ9ImltcC1wcm9nLWZpbGwiPjwvZGl2PjwvZGl2PicgKwog
ICAgICAgICAgICAgICAgJzxkaXYgY2xhc3M9ImltcC1wcm9ncmVzcy10ZXh0IiBpZD0iaW1wLXBy
b2ctdGV4dCI+Jm5ic3A7PC9kaXY+JyArCiAgICAgICAgICAgICc8L2Rpdj4nOwogICAgICAgIG1v
ZGFsWmVpZ2VuKCdFeGNlbC1JbXBvcnQgbMOkdWZ0Jywga29lcnBlciwgJycsIG51bGwpOwogICAg
ICAgIC8vIFNjaGxpZcOfZW4tS3JldXogdmVyc3RlY2tlbiDigJQgSW1wb3J0IGRhcmYgbmljaHQg
YWJnZWJyb2NoZW4gd2VyZGVuCiAgICAgICAgdmFyIG1vZCA9IGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCdtb2RhbC1vdmVybGF5Jyk7CiAgICAgICAgaWYgKG1vZCkgbW9kLnNldEF0dHJpYnV0ZSgn
ZGF0YS1uby1jbG9zZScsICcxJyk7CiAgICB9CiAgICBmdW5jdGlvbiBpbXBQcm9ncmVzc1VwZGF0
ZShwaGFzZSwgcHJvemVudCwgdGV4dCkgewogICAgICAgIHZhciBwaCA9IGRvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKCdpbXAtcHJvZy1waGFzZScpOwogICAgICAgIHZhciBmbCA9IGRvY3VtZW50Lmdl
dEVsZW1lbnRCeUlkKCdpbXAtcHJvZy1maWxsJyk7CiAgICAgICAgdmFyIHR4ID0gZG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoJ2ltcC1wcm9nLXRleHQnKTsKICAgICAgICBpZiAocGggJiYgcGhhc2Up
IHBoLnRleHRDb250ZW50ID0gcGhhc2U7CiAgICAgICAgaWYgKGZsKSBmbC5zdHlsZS53aWR0aCA9
IE1hdGgubWF4KDAsIE1hdGgubWluKDEwMCwgcHJvemVudCkpICsgJyUnOwogICAgICAgIGlmICh0
eCkgdHgudGV4dENvbnRlbnQgPSB0ZXh0IHx8ICcnOwogICAgfQogICAgZnVuY3Rpb24gaW1wUHJv
Z3Jlc3NGZWhsZXIobXNnKSB7CiAgICAgICAgdmFyIHBoID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5
SWQoJ2ltcC1wcm9nLXBoYXNlJyk7CiAgICAgICAgdmFyIHR4ID0gZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoJ2ltcC1wcm9nLXRleHQnKTsKICAgICAgICB2YXIgZmwgPSBkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZCgnaW1wLXByb2ctZmlsbCcpOwogICAgICAgIGlmIChwaCkgeyBwaC50ZXh0Q29udGVu
dCA9ICfinYwgRmVobGVyJzsgcGguc3R5bGUuY29sb3IgPSAndmFyKC0tZmFyYmUtZmVobGVyKSc7
IH0KICAgICAgICBpZiAoZmwpIHsgZmwuc3R5bGUuYmFja2dyb3VuZCA9ICd2YXIoLS1mYXJiZS1m
ZWhsZXIpJzsgfQogICAgICAgIGlmICh0eCkgdHgudGV4dENvbnRlbnQgPSBtc2c7CiAgICAgICAg
Ly8gU2NobGllw59lbi1CdXR0b24gYW5oYWVuZ2VuCiAgICAgICAgdmFyIGZ1c3MgPSBkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZCgnbW9kYWwtZnVzcycpOwogICAgICAgIGlmIChmdXNzKSB7CiAgICAg
ICAgICAgIGZ1c3MuaW5uZXJIVE1MID0gJzxidXR0b24gY2xhc3M9ImJ0biIgaWQ9ImltcC1wcm9n
LWNsb3NlIj5TY2hsaWXDn2VuPC9idXR0b24+JzsKICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoJ2ltcC1wcm9nLWNsb3NlJykuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCBtb2Rh
bFNjaGxpZXNzZW4pOwogICAgICAgIH0KICAgIH0KICAgIGZ1bmN0aW9uIGltcFByb2dyZXNzRXJm
b2xnKGVpbnRyYWVnZSwga29tbWVudGFyZSwgYmFja3VwTmFtZSkgewogICAgICAgIGltcFByb2dy
ZXNzVXBkYXRlKCfinJMgSW1wb3J0IGFiZ2VzY2hsb3NzZW4nLCAxMDAsCiAgICAgICAgICAgIGVp
bnRyYWVnZSArICcgRWludHLDpGdlIHVuZCAnICsga29tbWVudGFyZSArICcgS29tbWVudGFyZSDD
vGJlcm5vbW1lbi4gQmFja3VwOiAnICsgKGJhY2t1cE5hbWUgfHwgJ+KAkycpKTsKICAgICAgICB2
YXIgcGggPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaW1wLXByb2ctcGhhc2UnKTsKICAgICAg
ICBpZiAocGgpIHBoLnN0eWxlLmNvbG9yID0gJ3ZhcigtLWZhcmJlLWVyZm9sZyknOwogICAgICAg
IHZhciBmdXNzID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ21vZGFsLWZ1c3MnKTsKICAgICAg
ICBpZiAoZnVzcykgewogICAgICAgICAgICBmdXNzLmlubmVySFRNTCA9ICc8YnV0dG9uIGNsYXNz
PSJidG4gYnRuLXByaW1hZXIiIGlkPSJpbXAtcHJvZy1jbG9zZSI+U2VpdGUgbmV1IGxhZGVuPC9i
dXR0b24+JzsKICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2ltcC1wcm9nLWNs
b3NlJykuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCBmdW5jdGlvbigpIHsKICAgICAgICAgICAg
ICAgIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKTsKICAgICAgICAgICAgfSk7CiAgICAgICAgfQog
ICAgfQoKICAgIGZ1bmN0aW9uIGltcFNjaHJlaWJlbkF1c2Z1ZWhyZW4oKSB7CiAgICAgICAgdmFy
IHMgPSBpbXBTdGF0ZTsKICAgICAgICBpZiAoIXMpIHJldHVybjsKICAgICAgICBpbXBQcm9ncmVz
c01vZGFsT2VmZm5lbigpOwoKICAgICAgICAvLyA9PT0gUGhhc2UgMTogQmFja3VwID09PQogICAg
ICAgIGltcFByb2dyZXNzVXBkYXRlKCdTaWNoZXJoZWl0cy1CYWNrdXAgd2lyZCBhbmdlbGVndCDi
gKYnLCA1LCAnUE9TVCAvYXBpL3BsYW51bmcvYmFja3VwJyk7CiAgICAgICAgdmFyIGJhY2t1cE5h
bWUgPSAnJzsKICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgewogICAgICAgICAgICBhcGlQ
b3N0KCcvYXBpL3BsYW51bmcvYmFja3VwJywge30pLnRoZW4oZnVuY3Rpb24ocikgewogICAgICAg
ICAgICAgICAgYmFja3VwTmFtZSA9IHIuZGF0ZWluYW1lIHx8ICcnOwogICAgICAgICAgICAgICAg
aW1wUHJvZ3Jlc3NVcGRhdGUoJ1NpY2hlcmhlaXRzLUJhY2t1cDogJyArIChiYWNrdXBOYW1lIHx8
ICdPSycpLCAyMCwgJ0JhY2t1cCBlcnN0ZWxsdCcpOwogICAgICAgICAgICAgICAgc2V0VGltZW91
dChmdW5jdGlvbigpIHsgaW1wU2NocmVpYmVuUGhhc2UyKHMsIGJhY2t1cE5hbWUpOyB9LCAzNTAp
OwogICAgICAgICAgICB9KS5jYXRjaChmdW5jdGlvbihlKSB7CiAgICAgICAgICAgICAgICBpbXBQ
cm9ncmVzc0ZlaGxlcignQmFja3VwIGZlaGxnZXNjaGxhZ2VuOiAnICsgZS5tZXNzYWdlKTsKICAg
ICAgICAgICAgfSk7CiAgICAgICAgfSwgMjAwKTsKICAgIH0KCiAgICBmdW5jdGlvbiBpbXBTY2hy
ZWliZW5QaGFzZTIocywgYmFja3VwTmFtZSkgewogICAgICAgIC8vID09PSBQaGFzZSAyYTogTmV1
ZSBQZXJzb25lbiBhbmxlZ2VuID09PQogICAgICAgIC8vIEZ1ZXIgamVkZXMgTWF0Y2ggbWl0IGBu
ZXVBbmxlZ2VuPXRydWVgIGVpbmVuIFBPU1QgL2FwaS9wZXJzb25lbgogICAgICAgIC8vIHNlcXVl
bnppZWxsIGFic2V0emVuLiBTZXJ2ZXIgdmVyZ2lidCBkaWUgbmV1ZSBJRCArIE1hcmtlcgogICAg
ICAgIC8vIGBpbXBvcnROZXVBbWAsIGRhbWl0IGRpZSBQZXJzb25hbHZlcndhbHR1bmcgc2llIHNw
YWV0ZXIgaW0KICAgICAgICAvLyBOZXVpbXBvcnQtQmxvY2sgb2JlbiBzYW1tZWx0LiBOYWNoIGFs
bGVuIFBPU1RzIGhvbGVuIHdpciBkZW4KICAgICAgICAvLyBmcmlzY2hlbiBQbGFudW5ncy1TdGFu
ZCB2b20gU2VydmVyIChHRVQgL2FwaS9wbGFudW5nKSwgYmV2b3Igd2lyIGluCiAgICAgICAgLy8g
UGhhc2UgMmIgZGllIEVpbnRyYWVnZSB0cmFuc2Zvcm1pZXJlbiDigJQgc29uc3QgZmVobHRlbiBk
aWUgbmV1ZW4KICAgICAgICAvLyBQZXJzb25lbiBpbSBuZXVlUGxhbnVuZy1Cb2R5LgogICAgICAg
IHZhciBuZXVBbnp1bGVnZW4gPSBzLnBlcnNvbmVuTWF0Y2hlcy5maWx0ZXIoZnVuY3Rpb24obSkg
eyByZXR1cm4gbS5uZXVBbmxlZ2VuICYmICFtLnppZWxJZDsgfSk7CiAgICAgICAgaWYgKG5ldUFu
enVsZWdlbi5sZW5ndGggPT09IDApIHsKICAgICAgICAgICAgLy8gQXVjaCBvaG5lIG5ldWUgUGVy
c29uZW4gZGVuIEZSSVNDSEVOIFN0YW5kIHZvbSBTZXJ2ZXIgaG9sZW4sIGJldm9yCiAgICAgICAg
ICAgIC8vIHdpciB0cmFuc2Zvcm1pZXJlbi4gRGVyIG5hY2hmb2xnZW5kZSBWb2xsLVBVVCB1ZWJl
cnNjaHJlaWJ0CiAgICAgICAgICAgIC8vIHBsYW51bmcuanNvbiBrb21wbGV0dCDigJQgYmF1dCBl
ciBhdWYgZWluZW0gdmVyYWx0ZXRlbiBaLnBsYW51bmcgYXVmCiAgICAgICAgICAgIC8vICh6LkIu
IHNlaXQgU2VpdGVuYXVmcnVmIGhhdCBqZW1hbmQgYW5kZXJlcyBaZWxsZW4gZWRpdGllcnQpLCBn
aW5nZW4KICAgICAgICAgICAgLy8gZGllc2UgQWVuZGVydW5nZW4gdmVybG9yZW4gdW5kIEJlc3Rh
bmQtb25seS1QZXJzb25lbiB3dWVyZGVuIG1pdAogICAgICAgICAgICAvLyBBbHRzdGFuZCB6dXJ1
ZWNrZ2VzY2hyaWViZW4uIEVpbiBHRVQgdW5taXR0ZWxiYXIgdm9yIGRlbSBUcmFuc2Zvcm0KICAg
ICAgICAgICAgLy8gdmVya2xlaW5lcnQgZGllc2VzIEZlbnN0ZXIgYXVmIGRlbiBlaWdlbnRsaWNo
ZW4gU2NocmVpYnZvcmdhbmcuCiAgICAgICAgICAgIGltcFByb2dyZXNzVXBkYXRlKCdBa3R1ZWxs
ZW4gUGxhbnVuZ3NzdGFuZCBsYWRlbiDigKYnLCAyNCwgJ0dFVCAvYXBpL3BsYW51bmcnKTsKICAg
ICAgICAgICAgaW1wR2V0UGxhbnVuZ01pdFZlcnNpb24oKS50aGVuKGZ1bmN0aW9uKHApIHsKICAg
ICAgICAgICAgICAgIFoucGxhbnVuZyA9IHA7CiAgICAgICAgICAgICAgICBpbXBTY2hyZWliZW5Q
aGFzZTJUcmFuc2Zvcm0ocywgYmFja3VwTmFtZSk7CiAgICAgICAgICAgIH0pLmNhdGNoKGZ1bmN0
aW9uKGUpIHsKICAgICAgICAgICAgICAgIGltcFByb2dyZXNzRmVobGVyKCdBa3R1ZWxsZXIgUGxh
bnVuZ3NzdGFuZCBrb25udGUgbmljaHQgZ2VsYWRlbiB3ZXJkZW46ICcgKyBlLm1lc3NhZ2UpOwog
ICAgICAgICAgICB9KTsKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KICAgICAgICB2YXIg
bnJKZXR6dCA9IG5ldyBEYXRlKCkudG9JU09TdHJpbmcoKTsKICAgICAgICB2YXIgYW56QW5nZWxl
Z3QgPSAwOwogICAgICAgIGZ1bmN0aW9uIG5hZWNoc3RlUGVyc29uKCkgewogICAgICAgICAgICBp
ZiAoYW56QW5nZWxlZ3QgPj0gbmV1QW56dWxlZ2VuLmxlbmd0aCkgewogICAgICAgICAgICAgICAg
Ly8gQWxsZSBhbmdlbGVndCDigJQgUGxhbnVuZyBuZXUgbGFkZW4sIGRhbWl0IGRpZSBuZXVlbiBJ
RHMgaW4KICAgICAgICAgICAgICAgIC8vIFoucGxhbnVuZy5wZXJzb25lbiB2ZXJmdWVnYmFyIHNp
bmQuCiAgICAgICAgICAgICAgICBpbXBQcm9ncmVzc1VwZGF0ZSgnUGVyc29uZW4tTGlzdGUgd2ly
ZCBha3R1YWxpc2llcnQg4oCmJywgMjQsICdGcmlzY2hlIElEcyB2b20gU2VydmVyIGxhZGVuJyk7
CiAgICAgICAgICAgICAgICBpbXBHZXRQbGFudW5nTWl0VmVyc2lvbigpLnRoZW4oZnVuY3Rpb24o
cCkgewogICAgICAgICAgICAgICAgICAgIFoucGxhbnVuZyA9IHA7CiAgICAgICAgICAgICAgICAg
ICAgaW1wU2NocmVpYmVuUGhhc2UyVHJhbnNmb3JtKHMsIGJhY2t1cE5hbWUpOwogICAgICAgICAg
ICAgICAgfSkuY2F0Y2goZnVuY3Rpb24oZSkgewogICAgICAgICAgICAgICAgICAgIGltcFByb2dy
ZXNzRmVobGVyKCdQbGFudW5nIGtvbm50ZSBuYWNoIFBlcnNvbmVuLUFubGFnZSBuaWNodCBuZXUg
Z2VsYWRlbiB3ZXJkZW46ICcgKyBlLm1lc3NhZ2UpOwogICAgICAgICAgICAgICAgfSk7CiAgICAg
ICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgIH0KICAgICAgICAgICAgdmFyIG0gPSBuZXVB
bnp1bGVnZW5bYW56QW5nZWxlZ3RdOwogICAgICAgICAgICB2YXIgZGF0ZW4gPSB7CiAgICAgICAg
ICAgICAgICBuYW1lOiBtLmV4Y2VsLm5hY2huYW1lLAogICAgICAgICAgICAgICAgdm9ybmFtZTog
JycsICAvLyBFeGNlbCBrZW5udCBudXIgZGVuIE5hY2huYW1lbiDigJQgd2lyZCBpbSBOZXVpbXBv
cnQtQmxvY2sgbmFjaGdlcGZsZWd0CiAgICAgICAgICAgICAgICBncnVwcGU6IG0uZXhjZWwuZ3J1
cHBlIHx8ICcnLAogICAgICAgICAgICAgICAgb2U6IG0uZXhjZWwub2UgfHwgJycsCiAgICAgICAg
ICAgICAgICB0ZWxlZm9uOiBtLmV4Y2VsLnRlbGVmb24gfHwgJycsCiAgICAgICAgICAgICAgICBl
aW5yZWloZW46ICd1bnRlbicsCiAgICAgICAgICAgICAgICBpbXBvcnROZXVBbTogbnJKZXR6dAog
ICAgICAgICAgICB9OwogICAgICAgICAgICB2YXIgaWR4ID0gYW56QW5nZWxlZ3QgKyAxOwogICAg
ICAgICAgICBpbXBQcm9ncmVzc1VwZGF0ZSgnTmV1ZSBQZXJzb25lbiB3ZXJkZW4gYW5nZWxlZ3Qg
4oCmJywKICAgICAgICAgICAgICAgIDIxICsgTWF0aC5mbG9vcigzICogYW56QW5nZWxlZ3QgLyBu
ZXVBbnp1bGVnZW4ubGVuZ3RoKSwKICAgICAgICAgICAgICAgICdBbmxlZ2VuOiAnICsgbS5leGNl
bC5uYWNobmFtZSArICcgKCcgKyBpZHggKyAnLycgKyBuZXVBbnp1bGVnZW4ubGVuZ3RoICsgJykn
KTsKICAgICAgICAgICAgYXBpUG9zdCgnL2FwaS9wZXJzb25lbicsIGRhdGVuKS50aGVuKGZ1bmN0
aW9uKHIpIHsKICAgICAgICAgICAgICAgIG0uemllbElkID0gci5pZDsKICAgICAgICAgICAgICAg
IGFuekFuZ2VsZWd0Kys7CiAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KG5hZWNoc3RlUGVyc29u
LCAzMCk7CiAgICAgICAgICAgIH0pLmNhdGNoKGZ1bmN0aW9uKGUpIHsKICAgICAgICAgICAgICAg
IGltcFByb2dyZXNzRmVobGVyKCdQZXJzb24gIicgKyBtLmV4Y2VsLm5hY2huYW1lICsgJyIga29u
bnRlIG5pY2h0IGFuZ2VsZWd0IHdlcmRlbjogJyArIGUubWVzc2FnZSk7CiAgICAgICAgICAgIH0p
OwogICAgICAgIH0KICAgICAgICBzZXRUaW1lb3V0KG5hZWNoc3RlUGVyc29uLCAxMDApOwogICAg
fQoKICAgIGZ1bmN0aW9uIGltcFNjaHJlaWJlblBoYXNlMlRyYW5zZm9ybShzLCBiYWNrdXBOYW1l
KSB7CiAgICAgICAgLy8gPT09IFBoYXNlIDJiOiBUcmFuc2Zvcm1hdGlvbiA9PT0KICAgICAgICBp
bXBQcm9ncmVzc1VwZGF0ZSgnRGF0ZW4gd2VyZGVuIHRyYW5zZm9ybWllcnQg4oCmJywgMjUsICdL
b3BpZSBkZXIgYmVzdGVoZW5kZW4gUGxhbnVuZyB3aXJkIHZvcmJlcmVpdGV0Jyk7CgogICAgICAg
IHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7CiAgICAgICAgICAgIHZhciBuZXVlUGxhbnVuZyA9IEpT
T04ucGFyc2UoSlNPTi5zdHJpbmdpZnkoWi5wbGFudW5nKSk7CiAgICAgICAgICAgIHZhciBleGNl
bERhdHVtU2V0ID0ge307CiAgICAgICAgICAgIHMuZGF0dW1TcGFsdGVuLmZvckVhY2goZnVuY3Rp
b24oZCkgeyBleGNlbERhdHVtU2V0W2QuZGF0dW1dID0gdHJ1ZTsgfSk7CgogICAgICAgICAgICAv
LyBBbHRlIEVpbnRyYWVnZSBpbSBFeGNlbC1aZWl0cmF1bSBlbnRmZXJuZW4g4oCUIGFiZXIgTlVS
IGZ1ZXIKICAgICAgICAgICAgLy8gUGVyc29uZW4sIGRpZSBpbiBkZXIgRXhjZWwgYXVmdGF1Y2hl
biBVTkQgZG9ydCBtaW5kZXN0ZW5zIGVpbmVuCiAgICAgICAgICAgIC8vIEVpbnRyYWcgaGFiZW4u
IFBlcnNvbmVuLCBkaWUgbnVyIGltIEJlc3RhbmQgc2luZCAobmV1ZSBNaXRhcmJlaXRlciwKICAg
ICAgICAgICAgLy8gbm9jaCBuaWNodCBpbiBkZXIgRXhjZWwtVm9ybGFnZSksIGJlaGFsdGVuIGlo
cmUgRWludHJhZWdlLgogICAgICAgICAgICAvLyBWb3JoZXIgaGFiZW4gd2lyIGhpZXIgZGVuIGdh
bnplbiBUYWcgZ2VsZWVydCDigJQgZGFzIGhhdCBmdWVyCiAgICAgICAgICAgIC8vIEJlc3RhbmQt
b25seS1QZXJzb25lbiBhbGxlIFNjaGljaHRlbiBpbSBJbXBvcnR6ZWl0cmF1bQogICAgICAgICAg
ICAvLyB1bmJlYWJzaWNodGlndCBlbnRmZXJudC4KICAgICAgICAgICAgLy8KICAgICAgICAgICAg
Ly8gTTEtU2NodXR6OiBFaW5lIGdlbWF0Y2h0ZSBQZXJzb24gbWl0IEtPTVBMRVRUIGxlZXJlciBF
eGNlbC1aZWlsZQogICAgICAgICAgICAvLyAoMCBFaW50cmFlZ2UpIHdpcmQgTklDSFQgZ2VsZWVy
dC4gU29uc3Qgd3VlcmRlIGVpbmUgUGVyc29uLCBkaWUgaW4KICAgICAgICAgICAgLy8gZGVyIFZv
cmxhZ2UgbnVyIGdlbGlzdGV0LCBhYmVyIGltIFplaXRyYXVtIGdhciBuaWNodCBlaW5nZXBsYW50
CiAgICAgICAgICAgIC8vIGlzdCwgaWhyZSBrb21wbGV0dGVuIGJlc3RlaGVuZGVuIFNjaGljaHRl
biB2ZXJsaWVyZW4uIEhhdCBkaWUKICAgICAgICAgICAgLy8gWmVpbGUgYXVjaCBudXIgRUlORU4g
RWludHJhZywgZ2lsdCBkaWUgRXhjZWwgYWxzIHZlcmJpbmRsaWNoIHVuZAogICAgICAgICAgICAv
LyBsZWVyZSBaZWxsZW4gbG9lc2NoZW4gd2llIGdld29sbHQuCiAgICAgICAgICAgIG5ldWVQbGFu
dW5nLmVpbnRyYWVnZSA9IG5ldWVQbGFudW5nLmVpbnRyYWVnZSB8fCB7fTsKICAgICAgICAgICAg
dmFyIGV4Y2VsUGlkU2V0ID0ge307CiAgICAgICAgICAgIHMucGVyc29uZW5NYXRjaGVzLmZvckVh
Y2goZnVuY3Rpb24obSkgewogICAgICAgICAgICAgICAgaWYgKG0uemllbElkICYmIE9iamVjdC5r
ZXlzKG0uZXhjZWwuZWludHJhZWdlIHx8IHt9KS5sZW5ndGggPiAwKSB7CiAgICAgICAgICAgICAg
ICAgICAgZXhjZWxQaWRTZXRbU3RyaW5nKG0uemllbElkKV0gPSB0cnVlOwogICAgICAgICAgICAg
ICAgfQogICAgICAgICAgICB9KTsKICAgICAgICAgICAgT2JqZWN0LmtleXMobmV1ZVBsYW51bmcu
ZWludHJhZWdlKS5mb3JFYWNoKGZ1bmN0aW9uKGQpIHsKICAgICAgICAgICAgICAgIGlmICghZXhj
ZWxEYXR1bVNldFtkXSkgcmV0dXJuOwogICAgICAgICAgICAgICAgdmFyIGJ1Y2tldCA9IG5ldWVQ
bGFudW5nLmVpbnRyYWVnZVtkXTsKICAgICAgICAgICAgICAgIE9iamVjdC5rZXlzKGJ1Y2tldCku
Zm9yRWFjaChmdW5jdGlvbihwaWQpIHsKICAgICAgICAgICAgICAgICAgICBpZiAoZXhjZWxQaWRT
ZXRbcGlkXSkgZGVsZXRlIGJ1Y2tldFtwaWRdOwogICAgICAgICAgICAgICAgfSk7CiAgICAgICAg
ICAgIH0pOwogICAgICAgICAgICBuZXVlUGxhbnVuZy5rb21tZW50YXJlID0gbmV1ZVBsYW51bmcu
a29tbWVudGFyZSB8fCB7fTsKCiAgICAgICAgICAgIGltcFByb2dyZXNzVXBkYXRlKCdEYXRlbiB3
ZXJkZW4gdHJhbnNmb3JtaWVydCDigKYnLCA0MCwgJ0FsdGUgRWludHLDpGdlIGltIFppZWx6ZWl0
cmF1bSBlbnRmZXJudCcpOwoKICAgICAgICAgICAgLy8gQ29kZS1NYXBwaW5nIHZvcmJlcmVpdGVu
CiAgICAgICAgICAgIHZhciBjb2RlTWFwID0ge307CiAgICAgICAgICAgIHMuY29kZU1hdGNoZXMu
Zm9yRWFjaChmdW5jdGlvbihtKSB7IGNvZGVNYXBbbS5jb2RlXSA9IG0uemllbDsgfSk7CgogICAg
ICAgICAgICAvLyBOZXVlIEVpbnRyYWVnZSArIEtvbW1lbnRhcmUgZWluc2NocmVpYmVuLiBLb21t
ZW50YXJlIGJlaGFsdGVuCiAgICAgICAgICAgIC8vIGlocmVuIE9SSUdJTkFMLUF1dG9yIGF1cyBk
ZXIgRXhjZWwtTm90aXogdW5kIGJla29tbWVuIGJld3Vzc3QKICAgICAgICAgICAgLy8gS0VJTkVO
IFplaXRzdGVtcGVsIChFeGNlbCBsaWVmZXJ0IGtlaW5lbiB2ZXJsYWVzc2xpY2hlbikg4oCUIGRh
aGVyCiAgICAgICAgICAgIC8vIGhpZXIga2VpbiAiYWJzZW5kZXIiLyJqZXR6dCIgbWVoci4KICAg
ICAgICAgICAgdmFyIGVpbnRyYWVnZUdlc2FtdCA9IDAsIGtvbW1lbnRhcmVHZXNhbXQgPSAwOwoK
ICAgICAgICAgICAgdmFyIGlnbm9yaWVydENvZGVzID0gMDsKICAgICAgICAgICAgdmFyIGlnbm9y
aWVydFBlcnNvbmVuID0gMDsKICAgICAgICAgICAgdmFyIHJhZW5nZVVlYmVybm9tbWVuID0gMDsK
ICAgICAgICAgICAgdmFyIHdpZWRlcmhlcmdlc3RlbGx0ID0gMDsKICAgICAgICAgICAgdmFyIGRl
ZHVwVWViZXJzcHJ1bmdlbiA9IDA7CiAgICAgICAgICAgIC8vIExpZWZlcnQgZGllIGJlc3RlaGVu
ZGUgS29tbWVudGFybGlzdGUgZnVlciAoZGF0dW0scGlkKSBhbHMgQXJyYXkKICAgICAgICAgICAg
Ly8g4oCUIG1pZ3JpZXJ0IGRhYmVpIGV2dGwuIG5vY2ggdm9yaGFuZGVuZSBBbHQtRm9ybWF0ZSAo
U3RyaW5nIG9kZXIKICAgICAgICAgICAgLy8gU2luZ2xlLU9iamVjdCkgaW5zIG5ldWUgTGlzdGVu
LVNjaGVtYSwgZGFtaXQgZGVyIEFwcGVuZCBuaWNodAogICAgICAgICAgICAvLyBlaW5lbiBNaXgg
ZGVyIEZvcm1hdGUgaGludGVybGFlc3N0LgogICAgICAgICAgICBmdW5jdGlvbiBiZXN0ZWhlbmRl
S29tbWVudGFyTGlzdGUoZGF0dW0sIHBpZCkgewogICAgICAgICAgICAgICAgdmFyIGJ1Y2tldCA9
IG5ldWVQbGFudW5nLmtvbW1lbnRhcmVbZGF0dW1dOwogICAgICAgICAgICAgICAgaWYgKCFidWNr
ZXQpIHJldHVybiBbXTsKICAgICAgICAgICAgICAgIHZhciB2b3JoID0gYnVja2V0W3BpZF07CiAg
ICAgICAgICAgICAgICBpZiAoIXZvcmgpIHJldHVybiBbXTsKICAgICAgICAgICAgICAgIGlmICh0
eXBlb2Ygdm9yaCA9PT0gJ3N0cmluZycpIHsKICAgICAgICAgICAgICAgICAgICByZXR1cm4gdm9y
aC50cmltKCkKICAgICAgICAgICAgICAgICAgICAgICAgPyBbeyBpZDogJ2tfbGVnYWN5XycgKyBN
YXRoLmZsb29yKE1hdGgucmFuZG9tKCkgKiA5OTk5OSksIHRleHQ6IHZvcmgsIGdlYWVuZGVydEFt
OiBudWxsLCBnZWFlbmRlcnRWb246IG51bGwgfV0KICAgICAgICAgICAgICAgICAgICAgICAgOiBb
XTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGlmIChBcnJheS5pc0FycmF5KHZv
cmgpKSByZXR1cm4gdm9yaC5zbGljZSgpOwogICAgICAgICAgICAgICAgaWYgKHZvcmgudGV4dCkg
ewogICAgICAgICAgICAgICAgICAgIHJldHVybiBbewogICAgICAgICAgICAgICAgICAgICAgICBp
ZDogICAgICAgICAgIHZvcmguaWQgfHwgKCdrX2xlZ2FjeV8nICsgTWF0aC5mbG9vcihNYXRoLnJh
bmRvbSgpICogOTk5OTkpKSwKICAgICAgICAgICAgICAgICAgICAgICAgdGV4dDogICAgICAgICB2
b3JoLnRleHQsCiAgICAgICAgICAgICAgICAgICAgICAgIGdlYWVuZGVydEFtOiAgdm9yaC5nZWFl
bmRlcnRBbSB8fCBudWxsLAogICAgICAgICAgICAgICAgICAgICAgICBnZWFlbmRlcnRWb246IHZv
cmguZ2VhZW5kZXJ0Vm9uIHx8IG51bGwKICAgICAgICAgICAgICAgICAgICB9XTsKICAgICAgICAg
ICAgICAgIH0KICAgICAgICAgICAgICAgIHJldHVybiBbXTsKICAgICAgICAgICAgfQogICAgICAg
ICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgICAgcy5wZXJzb25lbk1h
dGNoZXMuZm9yRWFjaChmdW5jdGlvbihtKSB7CiAgICAgICAgICAgICAgICAgICAgaWYgKCFtLnpp
ZWxJZCkgeyBpZ25vcmllcnRQZXJzb25lbisrOyByZXR1cm47IH0KICAgICAgICAgICAgICAgICAg
ICB2YXIgcGlkID0gU3RyaW5nKG0uemllbElkKTsKICAgICAgICAgICAgICAgICAgICB2YXIgemll
bFAgPSAobmV1ZVBsYW51bmcucGVyc29uZW4gfHwgW10pLmZpbmQoZnVuY3Rpb24ocCkgeyByZXR1
cm4gU3RyaW5nKHAuaWQpID09PSBwaWQ7IH0pOwogICAgICAgICAgICAgICAgICAgIC8vIFdpZWRl
cmhlcnN0ZWxsdW5nIGF1cyBQYXBpZXJrb3JiIChLb252ZW50aW9uOiBEYXRlbiBsaWViZXIKICAg
ICAgICAgICAgICAgICAgICAvLyBhZG1pbmlzdHJpZXJlbiBhbHMgd2Vnd2VyZmVuKS4gR3JlaWZ0
IGJlaSBzdGF0dXM9J3BhcGllcmtvcmInCiAgICAgICAgICAgICAgICAgICAgLy8gbWl0IERlZmF1
bHQtVm9yc2NobGFnIG9kZXIgd2VubiBkZXIgVXNlciBpbSBNYXBwaW5nIGVpbmUKICAgICAgICAg
ICAgICAgICAgICAvLyBQYXBpZXJrb3JiLVBlcnNvbiBtYW51ZWxsIHVlYmVyIGRlbiBgcmVzdG9y
ZTo8aWQ+YC1FaW50cmFnCiAgICAgICAgICAgICAgICAgICAgLy8gYXVzZ2V3YWVobHQgaGF0Lgog
ICAgICAgICAgICAgICAgICAgIGlmIChtLndpZWRlcmhlcnN0ZWxsZW4gJiYgemllbFAgJiYgemll
bFAuZ2Vsb2VzY2h0QW0pIHsKICAgICAgICAgICAgICAgICAgICAgICAgZGVsZXRlIHppZWxQLmdl
bG9lc2NodEFtOwogICAgICAgICAgICAgICAgICAgICAgICB6aWVsUC5ha3RpdiA9IHRydWU7CiAg
ICAgICAgICAgICAgICAgICAgICAgIHdpZWRlcmhlcmdlc3RlbGx0Kys7CiAgICAgICAgICAgICAg
ICAgICAgfQogICAgICAgICAgICAgICAgICAgIC8vIFJhbmdvcmRudW5nIGF1cyBFeGNlbC1TcGFs
dGUgRiBhdWYgZGllIGdlbWF0Y2h0ZSBQZXJzb24KICAgICAgICAgICAgICAgICAgICAvLyB1ZWJl
cnRyYWdlbiDigJQgd2lya3QgZGlyZWt0IGF1ZiBwZXJzb25lbk5ldUF1ZmJhdWVuKCkuCiAgICAg
ICAgICAgICAgICAgICAgaWYgKG0uZXhjZWwucmFuZyAhPSBudWxsKSB7CiAgICAgICAgICAgICAg
ICAgICAgICAgIGlmICh6aWVsUCAmJiB6aWVsUC5wb3NpdGlvbiAhPT0gbS5leGNlbC5yYW5nKSB7
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB6aWVsUC5wb3NpdGlvbiA9IG0uZXhjZWwucmFu
ZzsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJhZW5nZVVlYmVybm9tbWVuKys7CiAgICAg
ICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAg
ICAgICAgT2JqZWN0LmtleXMobS5leGNlbC5laW50cmFlZ2UpLmZvckVhY2goZnVuY3Rpb24oZGF0
dW0pIHsKICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHNyYyA9IG0uZXhjZWwuZWludHJhZWdl
W2RhdHVtXTsKICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHppZWwgPSBjb2RlTWFwW3NyY107
CiAgICAgICAgICAgICAgICAgICAgICAgIGlmICghemllbCkgeyBpZ25vcmllcnRDb2RlcysrOyBy
ZXR1cm47IH0KICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFuZXVlUGxhbnVuZy5laW50cmFl
Z2VbZGF0dW1dKSBuZXVlUGxhbnVuZy5laW50cmFlZ2VbZGF0dW1dID0ge307CiAgICAgICAgICAg
ICAgICAgICAgICAgIG5ldWVQbGFudW5nLmVpbnRyYWVnZVtkYXR1bV1bcGlkXSA9IHppZWw7CiAg
ICAgICAgICAgICAgICAgICAgICAgIGVpbnRyYWVnZUdlc2FtdCsrOwogICAgICAgICAgICAgICAg
ICAgIH0pOwogICAgICAgICAgICAgICAgICAgIE9iamVjdC5rZXlzKG0uZXhjZWwua29tbWVudGFy
ZSB8fCB7fSkuZm9yRWFjaChmdW5jdGlvbihkYXR1bSkgewogICAgICAgICAgICAgICAgICAgICAg
ICB2YXIgY2xpc3RlID0gbS5leGNlbC5rb21tZW50YXJlW2RhdHVtXSB8fCBbXTsKICAgICAgICAg
ICAgICAgICAgICAgICAgaWYgKCFjbGlzdGUubGVuZ3RoKSByZXR1cm47CiAgICAgICAgICAgICAg
ICAgICAgICAgIGlmICghbmV1ZVBsYW51bmcua29tbWVudGFyZVtkYXR1bV0pIG5ldWVQbGFudW5n
LmtvbW1lbnRhcmVbZGF0dW1dID0ge307CiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBiZXN0
YW5kID0gYmVzdGVoZW5kZUtvbW1lbnRhckxpc3RlKGRhdHVtLCBwaWQpOwogICAgICAgICAgICAg
ICAgICAgICAgICB2YXIgaWR4ID0gMDsKICAgICAgICAgICAgICAgICAgICAgICAgY2xpc3RlLmZv
ckVhY2goZnVuY3Rpb24oa2MpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciB0eHQg
PSAoa2MudGV4dCB8fCAnJykudHJpbSgpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYg
KCF0eHQpIHJldHVybjsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIERlZHVwOiBnbGVp
Y2hlciBUZXh0IGJlcmVpdHMgaW0gVmVybGF1ZiAtPiBuaWNodAogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgLy8gZXJuZXV0IGFuaGFlbmdlbiAoUmUtSW1wb3J0IGR1cGxpemllcnQgc29uc3Qp
LgogICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHNjaG9uRGEgPSBiZXN0YW5kLnNvbWUo
ZnVuY3Rpb24oaykgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAoay50
ZXh0IHx8ICcnKS50cmltKCkgPT09IHR4dDsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0p
OwogICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHNjaG9uRGEpIHsgZGVkdXBVZWJlcnNw
cnVuZ2VuKys7IHJldHVybjsgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgYmVzdGFuZC5w
dXNoKHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZDogICAgICAgICAgICdrX2lt
cF8nICsgRGF0ZS5ub3coKSArICdfJyArIChpZHgrKykgKyAnXycgKyBNYXRoLmZsb29yKE1hdGgu
cmFuZG9tKCkgKiA5OTk5OSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGV4dDog
ICAgICAgICB0eHQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gS0VJTiBaZWl0
c3RlbXBlbDogRXhjZWwtTm90aXplbiBsaWVmZXJuIGtlaW5lbgogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIC8vIHZlcmxhZXNzbGljaGVuIFplaXRwdW5rdC4gVmVyZmFzc2VyID0gT3Jp
Z2luYWwtCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gQXV0b3IgYXVzIGRlciBO
b3RpeiAobmljaHQgZGVyIEltcG9ydGV1cikuCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgZ2VhZW5kZXJ0QW06ICBudWxsLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdl
YWVuZGVydFZvbjogKGtjLmF1dG9yIHx8ICcnKS50cmltKCkgfHwgbnVsbAogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBrb21tZW50YXJl
R2VzYW10Kys7CiAgICAgICAgICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgICAgICAg
ICAgICBpZiAoYmVzdGFuZC5sZW5ndGgpIG5ldWVQbGFudW5nLmtvbW1lbnRhcmVbZGF0dW1dW3Bp
ZF0gPSBiZXN0YW5kOwogICAgICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgICAgfSk7
CiAgICAgICAgICAgICAgICB2YXIgcmFuZ0luZm8gPSByYWVuZ2VVZWJlcm5vbW1lbiA/ICcsICcg
KyByYWVuZ2VVZWJlcm5vbW1lbiArICcgUmFlbmdlIGFrdHVhbGlzaWVydCcgOiAnJzsKICAgICAg
ICAgICAgICAgIHZhciB3aWVkZXJJbmZvID0gd2llZGVyaGVyZ2VzdGVsbHQgPyAnLCAnICsgd2ll
ZGVyaGVyZ2VzdGVsbHQgKyAnIFBlcnNvbmVuIGF1cyBQYXBpZXJrb3JiIHdpZWRlcmhlcmdlc3Rl
bGx0JyA6ICcnOwogICAgICAgICAgICAgICAgdmFyIGRlZHVwSW5mbyA9IGRlZHVwVWViZXJzcHJ1
bmdlbiA/ICcsICcgKyBkZWR1cFVlYmVyc3BydW5nZW4gKyAnIEtvbW1lbnRhci1EdXBsaWthdGUg
w7xiZXJzcHJ1bmdlbicgOiAnJzsKICAgICAgICAgICAgICAgIGltcFByb2dyZXNzVXBkYXRlKCdE
YXRlbiB3ZXJkZW4gdHJhbnNmb3JtaWVydCDigKYnLCA2MCwKICAgICAgICAgICAgICAgICAgICBl
aW50cmFlZ2VHZXNhbXQgKyAnIEVpbnRyw6RnZSArICcgKyBrb21tZW50YXJlR2VzYW10ICsgJyBL
b21tZW50YXJlIGdlc2FtbWVsdCcgKyByYW5nSW5mbyArIHdpZWRlckluZm8gKyBkZWR1cEluZm8p
OwogICAgICAgICAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbigpIHsgaW1wU2NocmVpYmVuUGhh
c2UzKG5ldWVQbGFudW5nLCBiYWNrdXBOYW1lLCBlaW50cmFlZ2VHZXNhbXQsIGtvbW1lbnRhcmVH
ZXNhbXQpOyB9LCAzNTApOwogICAgICAgICAgICB9LCAzMDApOwogICAgICAgIH0sIDI1MCk7CiAg
ICB9CgogICAgZnVuY3Rpb24gaW1wU2NocmVpYmVuUGhhc2UzKG5ldWVQbGFudW5nLCBiYWNrdXBO
YW1lLCBlaW50cmFlZ2VHZXNhbXQsIGtvbW1lbnRhcmVHZXNhbXQpIHsKICAgICAgICAvLyA9PT0g
UGhhc2UgMzogU2NocmVpYmVuID09PQogICAgICAgIGltcFByb2dyZXNzVXBkYXRlKCdQbGFudW5n
IHdpcmQgZ2VzY2hyaWViZW4g4oCmJywgNzAsICdQVVQgL2FwaS9wbGFudW5nJyk7CiAgICAgICAg
c2V0VGltZW91dChmdW5jdGlvbigpIHsKICAgICAgICAgICAgdmFyIGhlYWRlcnMgPSB7ICdDb250
ZW50LVR5cGUnOiAnYXBwbGljYXRpb24vanNvbicgfTsKICAgICAgICAgICAgLy8gT3B0aW1pc3Rp
c2NoZSBTcGVycmU6IG51ciBzY2hyZWliZW4sIHdlbm4gcGxhbnVuZy5qc29uIHNlaXQgZGVtCiAg
ICAgICAgICAgIC8vIEdFVCB1bm1pdHRlbGJhciB2b3IgZGVtIFRyYW5zZm9ybSB1bnZlcmFlbmRl
cnQgaXN0LgogICAgICAgICAgICBpZiAoaW1wTGV0enRlVmVyc2lvbikgaGVhZGVyc1snSWYtUGxh
bnVuZy1WZXJzaW9uJ10gPSBpbXBMZXR6dGVWZXJzaW9uOwogICAgICAgICAgICBmZXRjaCgnL2Fw
aS9wbGFudW5nJywgewogICAgICAgICAgICAgICAgbWV0aG9kOiAnUFVUJywKICAgICAgICAgICAg
ICAgIGhlYWRlcnM6IGhlYWRlcnMsCiAgICAgICAgICAgICAgICBib2R5OiBKU09OLnN0cmluZ2lm
eShuZXVlUGxhbnVuZykKICAgICAgICAgICAgfSkudGhlbihmdW5jdGlvbihyKSB7CiAgICAgICAg
ICAgICAgICBpZiAoci5zdGF0dXMgPT09IDQwOSkgewogICAgICAgICAgICAgICAgICAgIC8vIEpl
bWFuZCBhbmRlcmVzIGhhdCB3YWVocmVuZCBkZXMgSW1wb3J0cyBnZXNjaHJpZWJlbiDigJQgZGVy
CiAgICAgICAgICAgICAgICAgICAgLy8gU2VydmVyIGhhdCBOSUNIVFMgdWViZXJzY2hyaWViZW4u
IFdpciBicmVjaGVuIHNhdWJlciBhYiwKICAgICAgICAgICAgICAgICAgICAvLyBvaG5lIGRlc3Nl
biBBZW5kZXJ1bmcgenUgdmVybGllcmVuLgogICAgICAgICAgICAgICAgICAgIHJldHVybiByLmpz
b24oKS50aGVuKGZ1bmN0aW9uKGJvZHkpIHsKICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cg
bmV3IEVycm9yKCdLb25mbGlrdDogJyArIChib2R5Lm1lbGR1bmcgfHwgJ0RpZSBQbGFudW5nIHd1
cmRlIHfDpGhyZW5kIGRlcyBJbXBvcnRzIHZvbiBlaW5lciBhbmRlcmVuIFBlcnNvbiBnZcOkbmRl
cnQuJykgKwogICAgICAgICAgICAgICAgICAgICAgICAgICAgJ1xuXG5FcyB3dXJkZSBOSUNIVFMg
w7xiZXJzY2hyaWViZW4uIEJpdHRlIGRpZSBTZWl0ZSBuZXUgbGFkZW4gdW5kIGRlbiBJbXBvcnQg
ZXJuZXV0IHN0YXJ0ZW4uJyk7CiAgICAgICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICAg
ICB9CiAgICAgICAgICAgICAgICBpZiAoIXIub2spIHJldHVybiByLmpzb24oKS50aGVuKGZ1bmN0
aW9uKGJvZHkpIHsgdGhyb3cgbmV3IEVycm9yKGJvZHkuZmVobGVyIHx8ICgnSFRUUCAnICsgci5z
dGF0dXMpKTsgfSk7CiAgICAgICAgICAgICAgICBpbXBQcm9ncmVzc1VwZGF0ZSgnUGxhbnVuZyB3
aXJkIGdlc2NocmllYmVuIOKApicsIDkwLCAnQW50d29ydCB2b20gU2VydmVyIGVyaGFsdGVuJyk7
CiAgICAgICAgICAgICAgICBaLnBsYW51bmcgPSBuZXVlUGxhbnVuZzsKICAgICAgICAgICAgICAg
IHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7CiAgICAgICAgICAgICAgICAgICAgaW1wUHJvZ3Jlc3NF
cmZvbGcoZWludHJhZWdlR2VzYW10LCBrb21tZW50YXJlR2VzYW10LCBiYWNrdXBOYW1lKTsKICAg
ICAgICAgICAgICAgIH0sIDQwMCk7CiAgICAgICAgICAgIH0pLmNhdGNoKGZ1bmN0aW9uKGUpIHsK
ICAgICAgICAgICAgICAgIGltcFByb2dyZXNzRmVobGVyKCdTY2hyZWliZW4gZmVobGdlc2NobGFn
ZW46ICcgKyBlLm1lc3NhZ2UgKyAnXG5cbkRhcyBCYWNrdXAgIicgKyAoYmFja3VwTmFtZSB8fCAn
JykgKyAnIiBlbnRow6RsdCBkZW4gU3RhbmQgdm9yIGRlbSBJbXBvcnQuJyk7CiAgICAgICAgICAg
IH0pOwogICAgICAgIH0sIDMwMCk7CiAgICB9CgogICAgLy8gTWFwcGluZy1Nb2RhbDogendlaSBU
YWJzIChQZXJzb25lbiwgQ29kZXMpLiBEZXIgVXNlciBrYW5uIG9mZmVuZQogICAgLy8gS29uZmxp
a3RlIG1hbnVlbGwgYXVmbG9lc2VuLiBBZW5kZXJ1bmdlbiB3ZXJkZW4gZGlyZWt0IGluIGltcFN0
YXRlCiAgICAvLyBwZXJzaXN0aWVydCDigJQgZGFzIFN0YXR1cy1QYW5lbCB3aXJkIGJlaW0gU2No
bGllc3NlbiBuZXUgZ2VyZW5kZXJ0LgogICAgZnVuY3Rpb24gaW1wTWFwcGluZ01vZGFsKCkgewog
ICAgICAgIGlmICghaW1wU3RhdGUpIHJldHVybjsKICAgICAgICAvLyBBa3RpdmUgQ29kZXMgKyBE
ZWZhdWx0LUF1c3dhaGwuIGFrdGl2ZUNvZGVzIGlzdCBsZXQtYWVobmxpY2g6CiAgICAgICAgLy8g
d2lyZCBuYWNoIGVyZm9sZ3JlaWNoZXIgTmV1YW5sYWdlIChzaWVoZSBuZXVlckNvZGVGb3JtWmVp
Z2VuKQogICAgICAgIC8vIG5ldSB6dWdld2llc2VuLCBkYW1pdCBkaWUgUmUtUmVuZGVyLVNjaGxl
aWZlIGRlbiBmcmlzY2hlbiBDb2RlCiAgICAgICAgLy8gYmVydWVja3NpY2h0aWd0LgogICAgICAg
IHZhciBha3RpdmVDb2RlcyA9IChaLmFkbWluLnNjaGljaHRjb2RlcyB8fCBbXSkuZmlsdGVyKGlz
dENvZGVBa3RpdikKICAgICAgICAgICAgLnNsaWNlKCkuc29ydChmdW5jdGlvbihhLCBiKSB7IHJl
dHVybiAoYS5jb2RlIHx8ICcnKS5sb2NhbGVDb21wYXJlKGIuY29kZSB8fCAnJywgJ2RlJyk7IH0p
OwogICAgICAgIGZ1bmN0aW9uIGNvZGVPcHRzKHppZWwpIHsKICAgICAgICAgICAgcmV0dXJuICc8
b3B0aW9uIHZhbHVlPSJfX25ld19fIj7inpUgQWxzIG5ldWVuIENvZGUgYW5sZWdlbiDigKY8L29w
dGlvbj4nICsKICAgICAgICAgICAgICAgICc8b3B0aW9uIHZhbHVlPSIiPuKAlCBpZ25vcmllcmVu
IOKAlDwvb3B0aW9uPicgKwogICAgICAgICAgICAgICAgYWt0aXZlQ29kZXMubWFwKGZ1bmN0aW9u
KHNjKSB7CiAgICAgICAgICAgICAgICAgICAgdmFyIHNlbCA9IHppZWwgPT09IHNjLmNvZGUgPyAn
IHNlbGVjdGVkJyA6ICcnOwogICAgICAgICAgICAgICAgICAgIHJldHVybiAnPG9wdGlvbiB2YWx1
ZT0iJyArIGVzY2FwZUF0dHIoc2MuY29kZSkgKyAnIicgKyBzZWwgKyAnPicgKyBlc2NhcGVIVE1M
KHNjLmNvZGUpICsgJyDigJQgJyArIGVzY2FwZUhUTUwoc2MuYmV6ZWljaG51bmcgfHwgJycpICsg
Jzwvb3B0aW9uPic7CiAgICAgICAgICAgICAgICB9KS5qb2luKCcnKTsKICAgICAgICB9CgogICAg
ICAgIC8vIFN0YXR1cy1JY29uLU1hcCBwcm8gTWFwcGluZy1aZWlsZS4gRmFyYmVuIGtvbW1lbiBp
bmxpbmUsIGRhbWl0IGRhcwogICAgICAgIC8vIENTUyAoLmltcC1tYXBwaW5nLXN0YXR1cykgbnVy
IExheW91dCAoQnJlaXRlL0JvbGQpIHRyYWVndCDigJQgYW5hbG9nCiAgICAgICAgLy8genVtIGJl
c3RlaGVuZGVuIFN0aWwgZGVyIGltcC1tYXBwaW5nLXplaWxlLUhpbnRlcmdydWVuZGUuCiAgICAg
ICAgLy8gQnVja2V0czoKICAgICAgICAvLyAgIG9rL2FsaWFzL21hbnVlbGwgICAgIC0+IOKckyBn
cnVlbgogICAgICAgIC8vICAgbmV1ICAgICAgICAgICAgICAgICAgLT4g4p6VIGJsYXUKICAgICAg
ICAvLyAgIHBhcGllcmtvcmIgICAgICAgICAgIC0+IOKGuyBvcmFuZ2UgKEtvbmZsaWt0LURlZmF1
bHQpCiAgICAgICAgLy8gICBtZWhyZGV1dGlnL3VuYmVrYW5udCAtPiA/IHdhcm51bmcKICAgICAg
ICAvLyAgIGlnbm9yaWVydC9pZ25vcmUgICAgIC0+IOKclyBncmF1CiAgICAgICAgZnVuY3Rpb24g
c3RhdHVzSWNvbkh0bWwobSkgewogICAgICAgICAgICB2YXIgc3QgPSBtICYmIG0uc3RhdHVzOwog
ICAgICAgICAgICB2YXIgaWMgPSAn4pyXJywgYyA9ICd2YXIoLS10ZXh0LW11dGVkKSc7CiAgICAg
ICAgICAgIGlmIChzdCA9PT0gJ29rJyB8fCBzdCA9PT0gJ2FsaWFzJyB8fCBzdCA9PT0gJ21hbnVl
bGwnKSB7IGljID0gJ+Kckyc7IGMgPSAndmFyKC0tZmFyYmUtZXJmb2xnKSc7IH0KICAgICAgICAg
ICAgZWxzZSBpZiAoc3QgPT09ICduZXUnKSB7IGljID0gJ+KelSc7IGMgPSAndmFyKC0tZmFyYmUt
cHJpbWFlciknOyB9CiAgICAgICAgICAgIGVsc2UgaWYgKHN0ID09PSAncGFwaWVya29yYicpIHsg
aWMgPSAn4oa7JzsgYyA9ICcjY2E2ZjFlJzsgfQogICAgICAgICAgICBlbHNlIGlmIChzdCA9PT0g
J21laHJkZXV0aWcnIHx8IHN0ID09PSAndW5iZWthbm50JykgeyBpYyA9ICc/JzsgYyA9ICd2YXIo
LS1mYXJiZS13YXJudW5nKSc7IH0KICAgICAgICAgICAgcmV0dXJuICc8c3BhbiBjbGFzcz0iaW1w
LW1hcHBpbmctc3RhdHVzIiBzdHlsZT0iY29sb3I6JyArIGMgKyAnIj4nICsgaWMgKyAnPC9zcGFu
Pic7CiAgICAgICAgfQoKICAgICAgICAvLyBMaXZlLUFnZ3JlZ2F0LVplaWxlIGltIE1vZGFsLUhl
YWRlci4gWmFlaGx0IGJlaWRlIE1hdGNoLUxpc3RlbgogICAgICAgIC8vIChQZXJzb25lbiArIENv
ZGVzKSB6dXNhbW1lbiB1bmQgcmVuZGVydCBudXIgZGllIG5pY2h0LWxlZXJlbiBCdWNrZXRzLgog
ICAgICAgIGZ1bmN0aW9uIHN0YXR1c1phZWhsZXJVcGRhdGVuKCkgewogICAgICAgICAgICBpZiAo
IWltcFN0YXRlKSByZXR1cm47CiAgICAgICAgICAgIHZhciB6ID0geyBvazogMCwgbmV1OiAwLCBw
azogMCwgZnJhZzogMCwgaWc6IDAgfTsKICAgICAgICAgICAgZnVuY3Rpb24gYnVja2V0RWluc29y
dGllcmVuKHN0KSB7CiAgICAgICAgICAgICAgICBpZiAoc3QgPT09ICdvaycgfHwgc3QgPT09ICdh
bGlhcycgfHwgc3QgPT09ICdtYW51ZWxsJykgei5vaysrOwogICAgICAgICAgICAgICAgZWxzZSBp
ZiAoc3QgPT09ICduZXUnKSB6Lm5ldSsrOwogICAgICAgICAgICAgICAgZWxzZSBpZiAoc3QgPT09
ICdwYXBpZXJrb3JiJykgei5waysrOwogICAgICAgICAgICAgICAgZWxzZSBpZiAoc3QgPT09ICdt
ZWhyZGV1dGlnJyB8fCBzdCA9PT0gJ3VuYmVrYW5udCcpIHouZnJhZysrOwogICAgICAgICAgICAg
ICAgZWxzZSB6LmlnKys7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgaW1wU3RhdGUucGVyc29u
ZW5NYXRjaGVzLmZvckVhY2goZnVuY3Rpb24obSkgeyBidWNrZXRFaW5zb3J0aWVyZW4obS5zdGF0
dXMpOyB9KTsKICAgICAgICAgICAgaW1wU3RhdGUuY29kZU1hdGNoZXMuZm9yRWFjaChmdW5jdGlv
bihtKSB7IGJ1Y2tldEVpbnNvcnRpZXJlbihtLnN0YXR1cyk7IH0pOwogICAgICAgICAgICB2YXIg
dGVpbGUgPSBbXTsKICAgICAgICAgICAgaWYgKHoub2spICAgdGVpbGUucHVzaCgnPHNwYW4gc3R5
bGU9ImNvbG9yOnZhcigtLWZhcmJlLWVyZm9sZykiPuKckyAnICAgKyB6Lm9rICsgJzwvc3Bhbj4n
KTsKICAgICAgICAgICAgaWYgKHoubmV1KSAgdGVpbGUucHVzaCgnPHNwYW4gc3R5bGU9ImNvbG9y
OnZhcigtLWZhcmJlLXByaW1hZXIpIj7inpUgJyArIHoubmV1ICsgJzwvc3Bhbj4nKTsKICAgICAg
ICAgICAgaWYgKHoucGspICAgdGVpbGUucHVzaCgnPHNwYW4gc3R5bGU9ImNvbG9yOiNjYTZmMWUi
PuKGuyAnICAgICAgICAgICAgICAgICsgei5wayArICc8L3NwYW4+Jyk7CiAgICAgICAgICAgIGlm
ICh6LmZyYWcpIHRlaWxlLnB1c2goJzxzcGFuIHN0eWxlPSJjb2xvcjp2YXIoLS1mYXJiZS13YXJu
dW5nKSI+PyAnICAgKyB6LmZyYWcgKyAnPC9zcGFuPicpOwogICAgICAgICAgICBpZiAoei5pZykg
ICB0ZWlsZS5wdXNoKCc8c3BhbiBzdHlsZT0iY29sb3I6dmFyKC0tdGV4dC1tdXRlZCkiPuKclyAn
ICAgICAgKyB6LmlnICsgJzwvc3Bhbj4nKTsKICAgICAgICAgICAgdmFyIGFnID0gZG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoJ2ltcC1zdGF0dXMtYWdncmVnYXQnKTsKICAgICAgICAgICAgaWYgKGFn
KSBhZy5pbm5lckhUTUwgPSB0ZWlsZS5qb2luKCcgICcpOwogICAgICAgIH0KCiAgICAgICAgLy8g
UGVyc29uZW4tS2FuZGlkYXRlbiBmdWVyIE1laHJkZXV0aWctL1VuYmVrYW5udC0vUGFwaWVya29y
Yi1BdXN3YWhsLgogICAgICAgIC8vIEtvbnZlbnRpb246IG5pY2h0cyB3ZWdibGVuZGVuIOKAlCBk
ZXIgQWRtaW4gc29sbCBkaWUgRGF0ZW4gbGllYmVyCiAgICAgICAgLy8gc2ljaHRiYXIgaGFiZW4g
dW5kIGVudHNjaGVpZGVuLCBzdGF0dCBzaWUgenUgdmVybGllcmVuLiBQYXBpZXJrb3JiLQogICAg
ICAgIC8vIFBlcnNvbmVuIGVyc2NoZWluZW4gc29ydGllcnQgYW5zIEVuZGUgdW5kIHdlcmRlbiBt
aXQgYOKGuyAuLi4KICAgICAgICAvLyAoUGFwaWVya29yYiDigJQgd2lyZCB3aWVkZXJoZXJnZXN0
ZWxsdClgIG1hcmtpZXJ0LiBJaHIgPG9wdGlvbj4tV2VydAogICAgICAgIC8vIGlzdCBgcmVzdG9y
ZTo8aWQ+YCwgZGFtaXQgZGVyIFNhdmUtUGZhZCBzaWUgYXV0b21hdGlzY2ggd2llZGVyCiAgICAg
ICAgLy8gYWt0aXYgc2NoYWx0ZXQg4oCUIGVpbmUgdmVyc2VoZW50bGljaGUgWnVvcmRudW5nIGF1
ZiBlaW5lcgogICAgICAgIC8vIGF1c3JhbmdpZXJ0ZW4gUGVyc29uIG9obmUgV2llZGVyaGVyc3Rl
bGx1bmcgaXN0IHNvIG5pY2h0IG1vZWdsaWNoLgogICAgICAgIHZhciBhbGxlQmVzdGFuZCA9ICha
LnBsYW51bmcucGVyc29uZW4gfHwgW10pLnNsaWNlKCkKICAgICAgICAgICAgLnNvcnQoZnVuY3Rp
b24oYSwgYikgewogICAgICAgICAgICAgICAgdmFyIGFQSyA9ICEhYS5nZWxvZXNjaHRBbSwgYlBL
ID0gISFiLmdlbG9lc2NodEFtOwogICAgICAgICAgICAgICAgaWYgKGFQSyAhPT0gYlBLKSByZXR1
cm4gYVBLID8gMSA6IC0xOwogICAgICAgICAgICAgICAgcmV0dXJuIChhLm5hbWUgfHwgJycpLmxv
Y2FsZUNvbXBhcmUoYi5uYW1lIHx8ICcnLCAnZGUnKTsKICAgICAgICAgICAgfSk7CiAgICAgICAg
ZnVuY3Rpb24gcGVyc29uT3B0cyhtKSB7CiAgICAgICAgICAgIC8vIERyb3Bkb3duLVdlcnRlOgog
ICAgICAgICAgICAvLyAgICJuZXciICAgICAgICAgICAgIC0+IFBlcnNvbiBuZXUgYW5sZWdlbiAo
RXhjZWwtRGF0ZW4pCiAgICAgICAgICAgIC8vICAgIiIgICAgICAgICAgICAgICAgLT4gaWdub3Jp
ZXJlbgogICAgICAgICAgICAvLyAgICI8aWQ+IiAgICAgICAgICAgIC0+IGFrdGl2ZSBCZXN0YW5k
cy1QZXJzb24genVvcmRuZW4KICAgICAgICAgICAgLy8gICAicmVzdG9yZTo8aWQ+IiAgICAtPiBQ
YXBpZXJrb3JiLVBlcnNvbiB3aWVkZXJoZXJzdGVsbGVuICsgenVvcmRuZW4KICAgICAgICAgICAg
dmFyIGFrdGl2ZVZhbHVlOwogICAgICAgICAgICBpZiAobS5uZXVBbmxlZ2VuKSBha3RpdmVWYWx1
ZSA9ICduZXcnOwogICAgICAgICAgICBlbHNlIGlmIChtLnppZWxJZCAhPSBudWxsKSBha3RpdmVW
YWx1ZSA9IG0ud2llZGVyaGVyc3RlbGxlbiA/ICdyZXN0b3JlOicgKyBtLnppZWxJZCA6IFN0cmlu
ZyhtLnppZWxJZCk7CiAgICAgICAgICAgIGVsc2UgYWt0aXZlVmFsdWUgPSAnJzsKICAgICAgICAg
ICAgdmFyIG9wdHNLb3BmID0gJzxvcHRpb24gdmFsdWU9Im5ldyInICsgKGFrdGl2ZVZhbHVlID09
PSAnbmV3JyA/ICcgc2VsZWN0ZWQnIDogJycpICsgJz7inpUgTmV1IGFubGVnZW4g4oCUIG1pdCBF
eGNlbC1EYXRlbiAoTmFjaG5hbWUsIE9FLCBHcnVwcGUsIFRlbGVmb24sIFJhbmcpPC9vcHRpb24+
JyArCiAgICAgICAgICAgICAgICAnPG9wdGlvbiB2YWx1ZT0iIicgKyAoYWt0aXZlVmFsdWUgPT09
ICcnID8gJyBzZWxlY3RlZCcgOiAnJykgKyAnPuKAlCBpZ25vcmllcmVuIOKAlDwvb3B0aW9uPic7
CiAgICAgICAgICAgIHJldHVybiBvcHRzS29wZiArCiAgICAgICAgICAgICAgICBhbGxlQmVzdGFu
ZC5tYXAoZnVuY3Rpb24ocCkgewogICAgICAgICAgICAgICAgICAgIHZhciBvcHRWYWx1ZSwgbGFi
ZWw7CiAgICAgICAgICAgICAgICAgICAgaWYgKHAuZ2Vsb2VzY2h0QW0pIHsKICAgICAgICAgICAg
ICAgICAgICAgICAgb3B0VmFsdWUgPSAncmVzdG9yZTonICsgcC5pZDsKICAgICAgICAgICAgICAg
ICAgICAgICAgbGFiZWwgPSAn4oa7ICcgKyAoKHAudm9ybmFtZSB8fCAnJykgKyAnICcgKyAocC5u
YW1lIHx8ICcnKSkudHJpbSgpICsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnIMK3
ICcgKyAocC5vZSB8fCAnPycpICsgJyDCtyAnICsgKHAuZ3J1cHBlIHx8ICc/JykgKwogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICcgKFBhcGllcmtvcmIg4oCUIHdpcmQgd2llZGVyaGVy
Z2VzdGVsbHQpJzsKICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAg
ICAgICAgICBvcHRWYWx1ZSA9IFN0cmluZyhwLmlkKTsKICAgICAgICAgICAgICAgICAgICAgICAg
bGFiZWwgPSAoKHAudm9ybmFtZSB8fCAnJykgKyAnICcgKyAocC5uYW1lIHx8ICcnKSkudHJpbSgp
ICsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnIMK3ICcgKyAocC5vZSB8fCAnPycp
ICsgJyDCtyAnICsgKHAuZ3J1cHBlIHx8ICc/Jyk7CiAgICAgICAgICAgICAgICAgICAgfQogICAg
ICAgICAgICAgICAgICAgIHZhciBzZWwgPSBvcHRWYWx1ZSA9PT0gYWt0aXZlVmFsdWUgPyAnIHNl
bGVjdGVkJyA6ICcnOwogICAgICAgICAgICAgICAgICAgIHJldHVybiAnPG9wdGlvbiB2YWx1ZT0i
JyArIGVzY2FwZUF0dHIob3B0VmFsdWUpICsgJyInICsgc2VsICsgJz4nICsgZXNjYXBlSFRNTChs
YWJlbCkgKyAnPC9vcHRpb24+JzsKICAgICAgICAgICAgICAgIH0pLmpvaW4oJycpOwogICAgICAg
IH0KCiAgICAgICAgLy8gUGVyc29uZW4tUGFuZWwKICAgICAgICB2YXIgcGVyc0h0bWwgPSAnPHAg
c3R5bGU9Im1hcmdpbjowIDAgOHB4IDA7Zm9udC1zaXplOjEycHg7Y29sb3I6dmFyKC0tdGV4dC1t
dXRlZCkiPlBlcnNvbmVuIGF1cyBkZXIgRXhjZWwtRGF0ZWkgKCcgKyBpbXBTdGF0ZS5leGNlbFBl
cnNvbmVuLmxlbmd0aCArICcpLiBHcsO8biA9IGVpbmRldXRpZyB6dWdlb3JkbmV0LCBibGF1ID0g
d2lyZCBuZXUgYW5nZWxlZ3QsIG9yYW5nZSA9IFBhcGllcmtvcmItVHJlZmZlciAoRGVmYXVsdDog
d2llZGVyaGVyc3RlbGxlbiksIGdlbGIgPSBtZWhyZGV1dGlnLjwvcD4nICsKICAgICAgICAgICAg
JzxkaXYgY2xhc3M9ImltcC1tYXBwaW5nLWxpc3RlIj4nOwogICAgICAgIGltcFN0YXRlLnBlcnNv
bmVuTWF0Y2hlcy5mb3JFYWNoKGZ1bmN0aW9uKG0sIGkpIHsKICAgICAgICAgICAgdmFyIHN0ID0g
bS5zdGF0dXM7CiAgICAgICAgICAgIHZhciBjbHMgPSBzdCA9PT0gJ29rJyA/ICdpbXAtb2snCiAg
ICAgICAgICAgICAgICAgICAgOiBzdCA9PT0gJ3BhcGllcmtvcmInID8gJ2ltcC1wYXBpZXJrb3Ji
JwogICAgICAgICAgICAgICAgICAgIDogc3QgPT09ICduZXUnID8gJ2ltcC1uZXUnCiAgICAgICAg
ICAgICAgICAgICAgOiAnaW1wLXdhcm4nOwogICAgICAgICAgICB2YXIgYW56YWhsRWludHIgPSBP
YmplY3Qua2V5cyhtLmV4Y2VsLmVpbnRyYWVnZSkubGVuZ3RoOwogICAgICAgICAgICB2YXIgcXVl
bGxlID0gJzxkaXY+PHNwYW4gY2xhc3M9ImltcC1tYXBwaW5nLXF1ZWxsZSI+JyArIGVzY2FwZUhU
TUwobS5leGNlbC5uYWNobmFtZSkgKyAnPC9zcGFuPicgKwogICAgICAgICAgICAgICAgJzxzcGFu
IGNsYXNzPSJpbXAtbWFwcGluZy1hbnphaGwiPsK3ICcgKyBhbnphaGxFaW50ciArICcgWmVsbGVu
LCBPRSAnICsgZXNjYXBlSFRNTChtLmV4Y2VsLm9lIHx8ICc/JykgKyAnLCBHcnAgJyArIGVzY2Fw
ZUhUTUwobS5leGNlbC5ncnVwcGUgfHwgJz8nKSArCiAgICAgICAgICAgICAgICAobS5leGNlbC5y
YW5nICE9IG51bGwgPyAnLCBSYW5nICcgKyBtLmV4Y2VsLnJhbmcgOiAnJykgKyAnPC9zcGFuPjwv
ZGl2Pic7CiAgICAgICAgICAgIHZhciB6aWVsOwogICAgICAgICAgICBpZiAoc3QgPT09ICdvaycp
IHsKICAgICAgICAgICAgICAgIHppZWwgPSAnPGRpdiBzdHlsZT0iY29sb3I6dmFyKC0tZmFyYmUt
ZXJmb2xnKTtmb250LXNpemU6MTJweCI+4pyTICcgKyBlc2NhcGVIVE1MKG0udHJlZmZlclswXS52
b3JuYW1lIHx8ICcnKSArICcgJyArIGVzY2FwZUhUTUwobS50cmVmZmVyWzBdLm5hbWUpICsgJyAo
SUQgJyArIG0udHJlZmZlclswXS5pZCArICcpPC9kaXY+JzsKICAgICAgICAgICAgfSBlbHNlIGlm
IChzdCA9PT0gJ3BhcGllcmtvcmInKSB7CiAgICAgICAgICAgICAgICAvLyBLb25mbGlrdC1IaW53
ZWlzICsgRHJvcGRvd24gbWl0IFdpZWRlcmhlcnN0ZWxsZW4tRGVmYXVsdC4KICAgICAgICAgICAg
ICAgIC8vIERlciBVc2VyIGthbm4gaGllciBhdWNoIGVpbmUgYW5kZXJlIGFrdGl2ZSBQZXJzb24g
d2FlaGxlbiBvZGVyCiAgICAgICAgICAgICAgICAvLyBpZ25vcmllcmVuIOKAlCBkZXIgRGVmYXVs
dCAiV2llZGVyaGVyc3RlbGxlbiArIHp1b3JkbmVuIgogICAgICAgICAgICAgICAgLy8gc2ljaGVy
dCBkaWUgRXhjZWwtRGF0ZW4gaW4gamVkZW0gRmFsbCBhYi4KICAgICAgICAgICAgICAgIC8vIHBp
ZEtleS1XcmFwcGVyOiBtLnppZWxJZCBpc3QgbmFjaCBwYXJzZUludCgpIG9kZXIgQVBJLUFubGFn
ZQogICAgICAgICAgICAgICAgLy8gZWluIE51bWJlciwgcC5pZCBpc3QgaW4gZGVyIFByYXhpcyBh
dWNoIE51bWJlciDigJQgYWJlciB3ZW5uCiAgICAgICAgICAgICAgICAvLyBqZW1hbmQgbWFsIGVp
bmUgcGxhbnVuZy5qc29uIG1pdCBTdHJpbmctSURzIGVkaXRpZXJ0LCBzY2hsYWVndAogICAgICAg
ICAgICAgICAgLy8gZGVyID09PSBWZXJnbGVpY2ggZmVobC4gU3RyaW5nLXp1LVN0cmluZyBpc3Qg
cm9idXN0ZXIuCiAgICAgICAgICAgICAgICB2YXIgcGtwID0gbS50cmVmZmVyLmZpbmQoZnVuY3Rp
b24ocCkgeyByZXR1cm4gcGlkS2V5KHAuaWQpID09PSBwaWRLZXkobS56aWVsSWQpOyB9KTsKICAg
ICAgICAgICAgICAgIHZhciBwa05hbWUgPSBwa3AgPyAoKChwa3Audm9ybmFtZSB8fCAnJykgKyAn
ICcgKyAocGtwLm5hbWUgfHwgJycpKS50cmltKCkgfHwgKCdJRCAnICsgcGtwLmlkKSkgOiAnJzsK
ICAgICAgICAgICAgICAgIHZhciBwa1NlaXQgPSAocGtwICYmIHBrcC5nZWxvZXNjaHRBbSkgPyBT
dHJpbmcocGtwLmdlbG9lc2NodEFtKS5zdWJzdHIoMCwgMTApIDogJyc7CiAgICAgICAgICAgICAg
ICB6aWVsID0gJzxkaXYgc3R5bGU9ImRpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47
Z2FwOjRweDttaW4td2lkdGg6MjgwcHgiPicgKwogICAgICAgICAgICAgICAgICAgICc8c2VsZWN0
IGNsYXNzPSJmb3JtLWlucHV0IGltcC1wZXJzLXNlbCIgZGF0YS1pPSInICsgaSArICciPicgKyBw
ZXJzb25PcHRzKG0pICsgJzwvc2VsZWN0PicgKwogICAgICAgICAgICAgICAgICAgICc8ZGl2IGNs
YXNzPSJpbXAtcGFwaWVya29yYi1oaW53ZWlzIj4nICsKICAgICAgICAgICAgICAgICAgICAgICAg
J+KGuyBFaW5kZXV0aWdlciBUcmVmZmVyIGltIFBhcGllcmtvcmI6IDxzdHJvbmc+JyArIGVzY2Fw
ZUhUTUwocGtOYW1lKSArICc8L3N0cm9uZz4nICsKICAgICAgICAgICAgICAgICAgICAgICAgKHBr
U2VpdCA/ICcsIGdlbMO2c2NodCAnICsgZXNjYXBlSFRNTChwa1NlaXQpIDogJycpICsKICAgICAg
ICAgICAgICAgICAgICAgICAgJy4gRGVmYXVsdDogUGVyc29uIHdpZWRlcmhlcnN0ZWxsZW4gdW5k
IERhdGVuIMO8YmVybmVobWVuLicgKwogICAgICAgICAgICAgICAgICAgICc8L2Rpdj4nICsKICAg
ICAgICAgICAgICAgICc8L2Rpdj4nOwogICAgICAgICAgICB9IGVsc2UgaWYgKHN0ID09PSAnbmV1
JykgewogICAgICAgICAgICAgICAgLy8gVGlwcGZlaGxlci1XYXJudW5nOiBhZWhubGljaGUgQmVz
dGFuZHNuYW1lbiBwcm9taW5lbnQgemVpZ2VuLAogICAgICAgICAgICAgICAgLy8gZGFtaXQgZGVy
IFVzZXIgbmljaHQgdmVyc2VoZW50bGljaCBlaW4gRHVwbGlrYXQgYW5sZWd0LiBEaWUKICAgICAg
ICAgICAgICAgIC8vIEthbmRpZGF0ZW4gc3RlaGVuIG9obmVoaW4gaW0gRHJvcGRvd24g4oCUIGRl
ciBIaW53ZWlzIG5lbm50IHNpZQogICAgICAgICAgICAgICAgLy8gYmVpbSBOYW1lbiwgZGFtaXQg
bWFuIHNpZSBmaW5kZXQgdW5kIGJld3Vzc3QgenVvcmRuZW4ga2Fubi4KICAgICAgICAgICAgICAg
IHZhciBhZWhubGljaEh0bWwgPSAnJzsKICAgICAgICAgICAgICAgIGlmIChtLmFlaG5saWNoICYm
IG0uYWVobmxpY2gubGVuZ3RoKSB7CiAgICAgICAgICAgICAgICAgICAgdmFyIG5hbWVuID0gbS5h
ZWhubGljaC5tYXAoZnVuY3Rpb24oYSkgewogICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4g
JzxzdHJvbmc+JyArIGVzY2FwZUhUTUwoKChhLm5hbWUgfHwgJycpKS50cmltKCkpICsgJzwvc3Ry
b25nPic7CiAgICAgICAgICAgICAgICAgICAgfSkuam9pbignLCAnKTsKICAgICAgICAgICAgICAg
ICAgICBhZWhubGljaEh0bWwgPSAnPGRpdiBjbGFzcz0iaW1wLWFlaG5saWNoLXdhcm51bmciIHN0
eWxlPSJmb250LXNpemU6MTFweDtjb2xvcjp2YXIoLS1mYXJiZS13YXJudW5nKTtib3JkZXI6MXB4
IHNvbGlkIHZhcigtLWZhcmJlLXdhcm51bmcpO2JvcmRlci1yYWRpdXM6NHB4O3BhZGRpbmc6NHB4
IDZweCI+JyArCiAgICAgICAgICAgICAgICAgICAgICAgICfimqAgw4RobmxpY2ggenUgYmVzdGVo
ZW5kZXIgUGVyc29uOiAnICsgbmFtZW4gKyAnLiBGYWxscyBkYXMgZGllc2VsYmUgUGVyc29uIGlz
dCAoei5CLiBUaXBwZmVobGVyKSwgYml0dGUgb2JlbiB6dW9yZG5lbiBzdGF0dCBuZXUgYW56dWxl
Z2VuIOKAlCBzb25zdCBlbnRzdGVodCBlaW4gRHVwbGlrYXQuJyArCiAgICAgICAgICAgICAgICAg
ICAgJzwvZGl2Pic7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB6aWVsID0gJzxk
aXYgc3R5bGU9ImRpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47Z2FwOjRweDttaW4t
d2lkdGg6MjgwcHgiPicgKwogICAgICAgICAgICAgICAgICAgICc8c2VsZWN0IGNsYXNzPSJmb3Jt
LWlucHV0IGltcC1wZXJzLXNlbCIgZGF0YS1pPSInICsgaSArICciPicgKyBwZXJzb25PcHRzKG0p
ICsgJzwvc2VsZWN0PicgKwogICAgICAgICAgICAgICAgICAgIGFlaG5saWNoSHRtbCArCiAgICAg
ICAgICAgICAgICAgICAgJzxkaXYgY2xhc3M9ImltcC1uZXUtaGlud2VpcyI+JyArCiAgICAgICAg
ICAgICAgICAgICAgICAgICfinpUgTmljaHQgaW0gQmVzdGFuZC4gRGVmYXVsdDogPHN0cm9uZz5O
ZXUgYW5sZWdlbjwvc3Ryb25nPiBtaXQgRXhjZWwtRGF0ZW4g4oCUIE5hY2hwZmxlZ2UgKFZvcm5h
bWUsIEZ1bmt0aW9uLCDigKYpIGFuc2NobGllc3NlbmQgaW0gTmV1aW1wb3J0LUJsb2NrLicgKwog
ICAgICAgICAgICAgICAgICAgICc8L2Rpdj4nICsKICAgICAgICAgICAgICAgICc8L2Rpdj4nOwog
ICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgemllbCA9ICc8c2VsZWN0IGNsYXNz
PSJmb3JtLWlucHV0IGltcC1wZXJzLXNlbCIgZGF0YS1pPSInICsgaSArICciPicgKyBwZXJzb25P
cHRzKG0pICsgJzwvc2VsZWN0Pic7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgcGVyc0h0bWwg
Kz0gJzxkaXYgY2xhc3M9ImltcC1tYXBwaW5nLXplaWxlICcgKyBjbHMgKyAnIiBkYXRhLXBlcnMt
aT0iJyArIGkgKyAnIj4nICsgc3RhdHVzSWNvbkh0bWwobSkgKyBxdWVsbGUgKyAnPHNwYW4gY2xh
c3M9ImltcC1wZmVpbCI+4oaSPC9zcGFuPicgKyB6aWVsICsgJzwvZGl2Pic7CiAgICAgICAgfSk7
CiAgICAgICAgcGVyc0h0bWwgKz0gJzwvZGl2Pic7CgogICAgICAgIC8vIENvZGUtUGFuZWwKICAg
ICAgICB2YXIgY29kZUh0bWwgPSAnPHAgc3R5bGU9Im1hcmdpbjowIDAgOHB4IDA7Zm9udC1zaXpl
OjEycHg7Y29sb3I6dmFyKC0tdGV4dC1tdXRlZCkiPkFsbGUgU2NoaWNodGNvZGVzIGF1cyBkZXIg
RXhjZWwtRGF0ZWkgKCcgKyBpbXBTdGF0ZS5jb2RlTWF0Y2hlcy5sZW5ndGggKyAnKS4gQWxpYXNl
IHVuZCBiZWthbm50ZSBDb2RlcyBzaW5kIHZvcmJlbGVndCDigJQgb2ZmZW5lIENvZGVzIG3DvHNz
ZW4genVnZW9yZG5ldCBvZGVyIGF1ZiDigJ5pZ25vcmllcmVuIiBnZXNldHp0IHdlcmRlbi48L3A+
JyArCiAgICAgICAgICAgICc8ZGl2IGNsYXNzPSJpbXAtbWFwcGluZy1saXN0ZSI+JzsKICAgICAg
ICBpbXBTdGF0ZS5jb2RlTWF0Y2hlcy5mb3JFYWNoKGZ1bmN0aW9uKG0sIGkpIHsKICAgICAgICAg
ICAgdmFyIGNscyA9IG0uc3RhdHVzID09PSAnb2snIHx8IG0uc3RhdHVzID09PSAnYWxpYXMnID8g
J2ltcC1vaycgOiBtLnN0YXR1cyA9PT0gJ2lnbm9yZScgPyAnJyA6ICdpbXAtd2Fybic7CiAgICAg
ICAgICAgIHZhciBxdWVsbGUgPSAnPGRpdj48c3BhbiBjbGFzcz0iaW1wLW1hcHBpbmctcXVlbGxl
Ij48Y29kZT4nICsgZXNjYXBlSFRNTChtLmNvZGUpICsgJzwvY29kZT48L3NwYW4+JyArCiAgICAg
ICAgICAgICAgICAnPHNwYW4gY2xhc3M9ImltcC1tYXBwaW5nLWFuemFobCI+wrcgJyArIG0uYW56
YWhsICsgJ8OXIGluIGRlciBEYXRlaTwvc3Bhbj4nICsKICAgICAgICAgICAgICAgICc8ZGl2IHN0
eWxlPSJmb250LXNpemU6MTFweDtjb2xvcjp2YXIoLS10ZXh0LW11dGVkKSI+JyArIGVzY2FwZUhU
TUwobS5oaW53ZWlzIHx8ICcnKSArICc8L2Rpdj48L2Rpdj4nOwogICAgICAgICAgICB2YXIgemll
bCA9ICc8c2VsZWN0IGNsYXNzPSJmb3JtLWlucHV0IGltcC1jb2RlLXNlbCIgZGF0YS1pPSInICsg
aSArICciPicgKyBjb2RlT3B0cyhtLnppZWwpICsgJzwvc2VsZWN0Pic7CiAgICAgICAgICAgIGNv
ZGVIdG1sICs9ICc8ZGl2IGNsYXNzPSJpbXAtbWFwcGluZy16ZWlsZSAnICsgY2xzICsgJyIgZGF0
YS1jb2RlLWk9IicgKyBpICsgJyI+JyArIHN0YXR1c0ljb25IdG1sKG0pICsgcXVlbGxlICsgJzxz
cGFuIGNsYXNzPSJpbXAtcGZlaWwiPuKGkjwvc3Bhbj4nICsgemllbCArICc8L2Rpdj4nOwogICAg
ICAgIH0pOwogICAgICAgIGNvZGVIdG1sICs9ICc8L2Rpdj4nOwoKICAgICAgICAvLyBBZ2dyZWdh
dC1aZWlsZSAoTGl2ZS1aYWVobGVyKSB1ZWJlciBkZW4gVGFiLUJ1dHRvbnMuIFdpcmQgZHVyY2gK
ICAgICAgICAvLyBzdGF0dXNaYWVobGVyVXBkYXRlbigpIG5hY2ggbW9kYWxaZWlnZW4gKyBuYWNo
IGplZGVtIFNlbGVjdC1DaGFuZ2UKICAgICAgICAvLyBiZWZ1ZWxsdC4gQmxlaWJ0IGxlZXIgKENT
UzogOmVtcHR5IHsgZGlzcGxheTpub25lIH0pIHdlbm4gYmVpZGUKICAgICAgICAvLyBNYXRjaC1M
aXN0ZW4gbGVlciBzaW5kLgogICAgICAgIHZhciBrb2VycGVyID0gJzxkaXYgY2xhc3M9ImltcC1z
dGF0dXMtYWdncmVnYXQiIGlkPSJpbXAtc3RhdHVzLWFnZ3JlZ2F0Ij48L2Rpdj4nICsKICAgICAg
ICAnPGRpdiBjbGFzcz0ibW9kYWwtdGFicyIgc3R5bGU9ImRpc3BsYXk6ZmxleDtnYXA6OHB4O21h
cmdpbi1ib3R0b206MTRweDtib3JkZXItYm90dG9tOjFweCBzb2xpZCB2YXIoLS1ib3JkZXItbGln
aHQpIj4nICsKICAgICAgICAgICAgJzxidXR0b24gY2xhc3M9ImJ0biBidG4tc2VrIiBkYXRhLWlt
cC10YWI9InBlcnNvbmVuIiBzdHlsZT0iYm9yZGVyLXJhZGl1czo0cHggNHB4IDAgMCI+UGVyc29u
ZW48L2J1dHRvbj4nICsKICAgICAgICAgICAgJzxidXR0b24gY2xhc3M9ImJ0biBidG4tc2VrIiBk
YXRhLWltcC10YWI9ImNvZGVzIiBzdHlsZT0iYm9yZGVyLXJhZGl1czo0cHggNHB4IDAgMCI+Q29k
ZXM8L2J1dHRvbj4nICsKICAgICAgICAnPC9kaXY+JyArCiAgICAgICAgJzxkaXYgaWQ9ImltcC10
YWItcGVyc29uZW4iPicgKyBwZXJzSHRtbCArICc8L2Rpdj4nICsKICAgICAgICAnPGRpdiBpZD0i
aW1wLXRhYi1jb2RlcyIgY2xhc3M9InZlcnN0ZWNrdCI+JyArIGNvZGVIdG1sICsgJzwvZGl2Pic7
CgogICAgICAgIC8vIFNuYXBzaG90IGRlciBNYXBwaW5nLVppZWx3ZXJ0ZSB2b3IgZGVtIE9lZmZu
ZW4g4oCUIGRpZSBMaXZlLUJpbmRpbmdzCiAgICAgICAgLy8gKFouIH42ODUsIH43MTMpIG11dGll
cmVuIGltcFN0YXRlIGRpcmVrdCBiZWkgamVkZXIgU2VsZWN0LUFlbmRlcnVuZy4KICAgICAgICAv
LyBCZWkgIkFiYnJlY2hlbiIgcm9sbGVuIHdpciBhdWYgZGVuIFNuYXBzaG90IHp1cnVlY2suCiAg
ICAgICAgdmFyIG1hcHBpbmdTbmFwc2hvdCA9IHsKICAgICAgICAgICAgcG06IEpTT04ucGFyc2Uo
SlNPTi5zdHJpbmdpZnkoaW1wU3RhdGUucGVyc29uZW5NYXRjaGVzKSksCiAgICAgICAgICAgIGNt
OiBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KGltcFN0YXRlLmNvZGVNYXRjaGVzKSkKICAgICAg
ICB9OwoKICAgICAgICB2YXIgZnVzcyA9ICc8YnV0dG9uIGNsYXNzPSJidG4iIGlkPSJpbXAtbW9k
YWwtYWJicmVjaGVuIiBzdHlsZT0ibWFyZ2luLXJpZ2h0OmF1dG8iPkFiYnJlY2hlbjwvYnV0dG9u
PicgKwogICAgICAgICAgICAgICAgICAgJzxidXR0b24gY2xhc3M9ImJ0biBidG4tcHJpbWFlciIg
aWQ9ImltcC1tb2RhbC11ZWJlcm5laG1lbiIgdGl0bGU9Ik9mZmVuZSBNYXBwaW5ncyBpZ25vcmll
cmVuLCByZXN0bGljaGUgQXVzd2FobCB1ZWJlcm5laG1lbiI+w5xiZXJuZWhtZW48L2J1dHRvbj4n
OwogICAgICAgIG1vZGFsWmVpZ2VuKCdFeGNlbC1JbXBvcnQ6IE1hcHBpbmcgcHLDvGZlbicsIGtv
ZXJwZXIsIGZ1c3MsIG51bGwpOwoKICAgICAgICAvLyBEaXNjYXJkLUhvb2s6IGJlaSAiVmVyd2Vy
ZmVuIiBpbSBEaXJ0eS1CZXN0YWV0aWd1bmdzLURpYWxvZwogICAgICAgIC8vICh1aV9kaWFsb2cu
anM6MjMwKSB3aXJkIGRpZXNlciBDYWxsYmFjayBhdWZnZXJ1ZmVuLCBiZXZvciBkYXMgTW9kYWwK
ICAgICAgICAvLyBmb3JjaWVydCBnZXNjaGxvc3NlbiB3aXJkLiBHcmVpZnQgYXVjaCB3ZW5uIGRl
ciBVc2VyIHBlciBFU0MgLwogICAgICAgIC8vIE92ZXJsYXktS2xpY2sgc2NobGllc3N0IHVuZCBp
bSBCZXN0YWV0aWd1bmdzLURpYWxvZyAiVmVyd2VyZmVuIiB3YWVobHQuCiAgICAgICAgWi5tb2Rh
bE9uRGlzY2FyZCA9IGZ1bmN0aW9uKCkgewogICAgICAgICAgICBpbXBTdGF0ZS5wZXJzb25lbk1h
dGNoZXMgPSBtYXBwaW5nU25hcHNob3QucG07CiAgICAgICAgICAgIGltcFN0YXRlLmNvZGVNYXRj
aGVzID0gbWFwcGluZ1NuYXBzaG90LmNtOwogICAgICAgICAgICBpbXBTdGF0dXNSZW5kZXJuKCk7
CiAgICAgICAgfTsKCiAgICAgICAgLy8gVGFiLVN3aXRjaAogICAgICAgIHZhciB0YWJzID0gZG9j
dW1lbnQucXVlcnlTZWxlY3RvckFsbCgnW2RhdGEtaW1wLXRhYl0nKTsKICAgICAgICBmdW5jdGlv
biB0YWJaZWlnZW4obmFtZSkgewogICAgICAgICAgICB0YWJzLmZvckVhY2goZnVuY3Rpb24odCkg
eyB0LmNsYXNzTGlzdC50b2dnbGUoJ2FrdGl2JywgdC5nZXRBdHRyaWJ1dGUoJ2RhdGEtaW1wLXRh
YicpID09PSBuYW1lKTsgfSk7CiAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdp
bXAtdGFiLXBlcnNvbmVuJykuY2xhc3NMaXN0LnRvZ2dsZSgndmVyc3RlY2t0JywgbmFtZSAhPT0g
J3BlcnNvbmVuJyk7CiAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdpbXAtdGFi
LWNvZGVzJykuY2xhc3NMaXN0LnRvZ2dsZSgndmVyc3RlY2t0JywgbmFtZSAhPT0gJ2NvZGVzJyk7
CiAgICAgICAgfQogICAgICAgIHRhYnMuZm9yRWFjaChmdW5jdGlvbih0KSB7IHQuYWRkRXZlbnRM
aXN0ZW5lcignY2xpY2snLCBmdW5jdGlvbigpIHsgdGFiWmVpZ2VuKHQuZ2V0QXR0cmlidXRlKCdk
YXRhLWltcC10YWInKSk7IH0pOyB9KTsKICAgICAgICB0YWJaZWlnZW4oJ3BlcnNvbmVuJyk7Cgog
ICAgICAgIC8vIEluaXRpYWxlcyBSZW5kZXJuIGRlciBBZ2dyZWdhdC1aZWlsZS4KICAgICAgICBz
dGF0dXNaYWVobGVyVXBkYXRlbigpOwoKICAgICAgICAvLyBMaXZlLUJpbmRpbmdzOiBBdXN3YWhs
IGFlbmRlcm4gLT4gaW1wU3RhdGUtWmllbHdlcnRlIHVwZGF0ZW4uCiAgICAgICAgLy8gU3Blemlh
bGZhZWxsZTogYG5ld2AgLT4gbmV1IGFubGVnZW4sIGByZXN0b3JlOjxpZD5gIC0+IFBhcGllcmtv
cmItCiAgICAgICAgLy8gV2llZGVyaGVyc3RlbGxlbi4gQmVpZGUgRmxhZ3Mgd2VyZGVuIGluIFBo
YXNlIDJhIChBbmxhZ2UgbmV1ZXIKICAgICAgICAvLyBQZXJzb25lbikgYnp3LiBQaGFzZSAyYiAo
V2llZGVyaGVyc3RlbGx1bmcpIGF1c2dld2VydGV0LgogICAgICAgIGRvY3VtZW50LnF1ZXJ5U2Vs
ZWN0b3JBbGwoJy5pbXAtcGVycy1zZWwnKS5mb3JFYWNoKGZ1bmN0aW9uKHNlbCkgewogICAgICAg
ICAgICBzZWwuYWRkRXZlbnRMaXN0ZW5lcignY2hhbmdlJywgZnVuY3Rpb24oKSB7CiAgICAgICAg
ICAgICAgICB2YXIgaSA9IHBhcnNlSW50KHNlbC5nZXRBdHRyaWJ1dGUoJ2RhdGEtaScpLCAxMCk7
CiAgICAgICAgICAgICAgICB2YXIgdiA9IHNlbC52YWx1ZTsKICAgICAgICAgICAgICAgIHZhciBt
ID0gaW1wU3RhdGUucGVyc29uZW5NYXRjaGVzW2ldOwogICAgICAgICAgICAgICAgaWYgKCF2KSB7
CiAgICAgICAgICAgICAgICAgICAgbS56aWVsSWQgPSBudWxsOwogICAgICAgICAgICAgICAgICAg
IG0ud2llZGVyaGVyc3RlbGxlbiA9IGZhbHNlOwogICAgICAgICAgICAgICAgICAgIG0ubmV1QW5s
ZWdlbiA9IGZhbHNlOwogICAgICAgICAgICAgICAgICAgIG0uc3RhdHVzID0gJ2lnbm9yaWVydCc7
CiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHYgPT09ICduZXcnKSB7CiAgICAgICAgICAgICAg
ICAgICAgbS56aWVsSWQgPSBudWxsOwogICAgICAgICAgICAgICAgICAgIG0ud2llZGVyaGVyc3Rl
bGxlbiA9IGZhbHNlOwogICAgICAgICAgICAgICAgICAgIG0ubmV1QW5sZWdlbiA9IHRydWU7CiAg
ICAgICAgICAgICAgICAgICAgbS5zdGF0dXMgPSAnbmV1JzsKICAgICAgICAgICAgICAgIH0gZWxz
ZSBpZiAodi5pbmRleE9mKCdyZXN0b3JlOicpID09PSAwKSB7CiAgICAgICAgICAgICAgICAgICAg
bS56aWVsSWQgPSBwYXJzZUludCh2LnN1YnN0cig4KSwgMTApOwogICAgICAgICAgICAgICAgICAg
IG0ud2llZGVyaGVyc3RlbGxlbiA9IHRydWU7CiAgICAgICAgICAgICAgICAgICAgbS5uZXVBbmxl
Z2VuID0gZmFsc2U7CiAgICAgICAgICAgICAgICAgICAgbS5zdGF0dXMgPSAnbWFudWVsbCc7CiAg
ICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgICAgIG0uemllbElkID0gcGFy
c2VJbnQodiwgMTApOwogICAgICAgICAgICAgICAgICAgIG0ud2llZGVyaGVyc3RlbGxlbiA9IGZh
bHNlOwogICAgICAgICAgICAgICAgICAgIG0ubmV1QW5sZWdlbiA9IGZhbHNlOwogICAgICAgICAg
ICAgICAgICAgIG0uc3RhdHVzID0gJ21hbnVlbGwnOwogICAgICAgICAgICAgICAgfQogICAgICAg
ICAgICAgICAgLy8gU3RhdHVzLUljb24gaW4gZGVyIFplaWxlICsgQWdncmVnYXQtSGVhZGVyIGFr
dHVhbGlzaWVyZW4uCiAgICAgICAgICAgICAgICB2YXIgcGVyc1JvdyA9IGRvY3VtZW50LnF1ZXJ5
U2VsZWN0b3IoJ1tkYXRhLXBlcnMtaT0iJyArIGkgKyAnIl0nKTsKICAgICAgICAgICAgICAgIGlm
IChwZXJzUm93KSB7CiAgICAgICAgICAgICAgICAgICAgdmFyIGFsdCA9IHBlcnNSb3cucXVlcnlT
ZWxlY3RvcignLmltcC1tYXBwaW5nLXN0YXR1cycpOwogICAgICAgICAgICAgICAgICAgIGlmIChh
bHQpIGFsdC5vdXRlckhUTUwgPSBzdGF0dXNJY29uSHRtbChtKTsKICAgICAgICAgICAgICAgIH0K
ICAgICAgICAgICAgICAgIHN0YXR1c1phZWhsZXJVcGRhdGVuKCk7CiAgICAgICAgICAgIH0pOwog
ICAgICAgIH0pOwogICAgICAgIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJy5pbXAtY29kZS1z
ZWwnKS5mb3JFYWNoKGZ1bmN0aW9uKHNlbCkgewogICAgICAgICAgICBzZWwuYWRkRXZlbnRMaXN0
ZW5lcignY2hhbmdlJywgZnVuY3Rpb24oKSB7CiAgICAgICAgICAgICAgICB2YXIgaSA9IHBhcnNl
SW50KHNlbC5nZXRBdHRyaWJ1dGUoJ2RhdGEtaScpLCAxMCk7CiAgICAgICAgICAgICAgICB2YXIg
diA9IHNlbC52YWx1ZTsKICAgICAgICAgICAgICAgIHZhciBtID0gaW1wU3RhdGUuY29kZU1hdGNo
ZXNbaV07CiAgICAgICAgICAgICAgICAvLyBTcGV6aWFsZmFsbCAi4p6VIEFscyBuZXVlbiBDb2Rl
IGFubGVnZW4iOiBTZWxlY3QtV2VydCBOSUNIVAogICAgICAgICAgICAgICAgLy8gY29tbWl0dGVu
IChTbmFwc2hvdC1SZXN0b3JlIHZpYSBtLnppZWwpLCBzdGF0dGRlc3NlbiBJbmxpbmUtCiAgICAg
ICAgICAgICAgICAvLyBGb3JtIHVudGVyIGRlciBaZWlsZSBhdWZrbGFwcGVuLiBNb2RhbC1TdGFj
ayB2ZXJtZWlkZW4uCiAgICAgICAgICAgICAgICBpZiAodiA9PT0gJ19fbmV3X18nKSB7CiAgICAg
ICAgICAgICAgICAgICAgc2VsLnZhbHVlID0gbS56aWVsIHx8ICcnOwogICAgICAgICAgICAgICAg
ICAgIG5ldWVyQ29kZUZvcm1aZWlnZW4oaSwgc2VsKTsKICAgICAgICAgICAgICAgICAgICByZXR1
cm47CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBtLnppZWwgPSB2IHx8IG51bGw7
CiAgICAgICAgICAgICAgICBtLnN0YXR1cyA9IHYgPyAnbWFudWVsbCcgOiAnaWdub3JlJzsKICAg
ICAgICAgICAgICAgIG0uaGlud2VpcyA9IHYgPyAnTWFudWVsbDog4oaSICcgKyB2IDogJ0lnbm9y
aWVydCc7CiAgICAgICAgICAgICAgICAvLyBaZWlsZSB2aXN1ZWxsIHVtZsOkcmJlbiArIFN0YXR1
cy1JY29uICsgQWdncmVnYXQgdXBkYXRlbgogICAgICAgICAgICAgICAgdmFyIHJvdyA9IGRvY3Vt
ZW50LnF1ZXJ5U2VsZWN0b3IoJ1tkYXRhLWNvZGUtaT0iJyArIGkgKyAnIl0nKTsKICAgICAgICAg
ICAgICAgIGlmIChyb3cpIHsKICAgICAgICAgICAgICAgICAgICByb3cuY2xhc3NMaXN0LnJlbW92
ZSgnaW1wLW9rJywnaW1wLXdhcm4nKTsKICAgICAgICAgICAgICAgICAgICBpZiAodikgcm93LmNs
YXNzTGlzdC5hZGQoJ2ltcC1vaycpOwogICAgICAgICAgICAgICAgICAgIHZhciBhbHQgPSByb3cu
cXVlcnlTZWxlY3RvcignLmltcC1tYXBwaW5nLXN0YXR1cycpOwogICAgICAgICAgICAgICAgICAg
IGlmIChhbHQpIGFsdC5vdXRlckhUTUwgPSBzdGF0dXNJY29uSHRtbChtKTsKICAgICAgICAgICAg
ICAgIH0KICAgICAgICAgICAgICAgIHN0YXR1c1phZWhsZXJVcGRhdGVuKCk7CiAgICAgICAgICAg
IH0pOwogICAgICAgIH0pOwoKICAgICAgICAvLyBJbmxpbmUtRm9ybSAiTmV1ZW4gU2NoaWNodGNv
ZGUgYW5sZWdlbiI6IGtsYXBwdCB1bnRlciBkZXIgWmVpbGUKICAgICAgICAvLyBhdWYsIGtlaW4g
TW9kYWwtU3RhY2sgKEhhdXB0LU1vZGFsIGJsZWlidCBvZmZlbikuIEZlbGRlciBhbmFsb2cKICAg
ICAgICAvLyB6dSBhZG1pbi5qczoyNTgyLTI1OTMsIGFiZXIga29tcGFrdC4gQmVpIEVyZm9sZyB3
aXJkIGRlciBuZXVlCiAgICAgICAgLy8gQ29kZSBkaXJla3QgaW4gWi5hZG1pbi5zY2hpY2h0Y29k
ZXMgZ2VzY2hyaWViZW4gKGFwaVB1dCAvYXBpL2FkbWluKSwKICAgICAgICAvLyBhbGxlIC5pbXAt
Y29kZS1zZWwgd2VyZGVuIG5ldSBnZXJlbmRlcnQsIG0uemllbCB3aXJkIGF1ZiBkZW4KICAgICAg
ICAvLyBuZXVlbiBDb2RlIGdlc2V0enQgKyBTdGF0dXMgLT4gbWFudWVsbC4KICAgICAgICBmdW5j
dGlvbiBuZXVlckNvZGVGb3JtWmVpZ2VuKGksIGF1c2xvZXNlclNlbCkgewogICAgICAgICAgICAv
LyBGYWxscyBiZXJlaXRzIGVpbmUgRm9ybSBvZmZlbiBpc3Q6IHNjaGxpZXNzZW4gKG1heC4gZWlu
ZQogICAgICAgICAgICAvLyBJbmxpbmUtRm9ybSBnbGVpY2h6ZWl0aWcpLgogICAgICAgICAgICB2
YXIgYWx0ID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignLmltcC1uZXVlci1jb2RlLWZvcm0nKTsK
ICAgICAgICAgICAgaWYgKGFsdCkgYWx0LnJlbW92ZSgpOwoKICAgICAgICAgICAgdmFyIHJvdyA9
IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ1tkYXRhLWNvZGUtaT0iJyArIGkgKyAnIl0nKTsKICAg
ICAgICAgICAgaWYgKCFyb3cpIHJldHVybjsKICAgICAgICAgICAgdmFyIG0gPSBpbXBTdGF0ZS5j
b2RlTWF0Y2hlc1tpXTsKICAgICAgICAgICAgdmFyIHF1ZWxsQ29kZSA9IG0uY29kZSB8fCAnJzsK
CiAgICAgICAgICAgIHZhciBmb3JtID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7CiAg
ICAgICAgICAgIGZvcm0uY2xhc3NOYW1lID0gJ2ltcC1uZXVlci1jb2RlLWZvcm0nOwogICAgICAg
ICAgICBmb3JtLnNldEF0dHJpYnV0ZSgnZGF0YS1jb2RlLWknLCBTdHJpbmcoaSkpOwogICAgICAg
ICAgICBmb3JtLmlubmVySFRNTCA9CiAgICAgICAgICAgICAgICAnPGRpdiBzdHlsZT0iZGlzcGxh
eTpmbGV4O2dhcDo4cHg7ZmxleC13cmFwOndyYXA7YWxpZ24taXRlbXM6ZmxleC1lbmQiPicgKwog
ICAgICAgICAgICAgICAgICAgICc8ZGl2IGNsYXNzPSJmb3JtLWdydXBwZSIgc3R5bGU9ImZsZXg6
MTttaW4td2lkdGg6MTEwcHgiPjxsYWJlbCBzdHlsZT0iZm9udC1zaXplOjExcHgiPkNvZGUgKFNj
aGzDvHNzZWwpPC9sYWJlbD4nICsKICAgICAgICAgICAgICAgICAgICAgICAgJzxpbnB1dCB0eXBl
PSJ0ZXh0IiBpZD0iaW1wLW5jLWNvZGUiIGNsYXNzPSJmb3JtLWlucHV0IiB2YWx1ZT0iJyArIGVz
Y2FwZUF0dHIocXVlbGxDb2RlKSArICciIG1heGxlbmd0aD0iMTAiPjwvZGl2PicgKwogICAgICAg
ICAgICAgICAgICAgICc8ZGl2IGNsYXNzPSJmb3JtLWdydXBwZSIgc3R5bGU9ImZsZXg6MTttaW4t
d2lkdGg6MTEwcHgiPjxsYWJlbCBzdHlsZT0iZm9udC1zaXplOjExcHgiPkvDvHJ6ZWwgKEFuemVp
Z2UpPC9sYWJlbD4nICsKICAgICAgICAgICAgICAgICAgICAgICAgJzxpbnB1dCB0eXBlPSJ0ZXh0
IiBpZD0iaW1wLW5jLWt1ZXJ6ZWwiIGNsYXNzPSJmb3JtLWlucHV0IiB2YWx1ZT0iJyArIGVzY2Fw
ZUF0dHIocXVlbGxDb2RlKSArICciIG1heGxlbmd0aD0iMTAiPjwvZGl2PicgKwogICAgICAgICAg
ICAgICAgICAgICc8ZGl2IGNsYXNzPSJmb3JtLWdydXBwZSIgc3R5bGU9ImZsZXg6MjttaW4td2lk
dGg6MTgwcHgiPjxsYWJlbCBzdHlsZT0iZm9udC1zaXplOjExcHgiPkJlemVpY2hudW5nPC9sYWJl
bD4nICsKICAgICAgICAgICAgICAgICAgICAgICAgJzxpbnB1dCB0eXBlPSJ0ZXh0IiBpZD0iaW1w
LW5jLWJleiIgY2xhc3M9ImZvcm0taW5wdXQiIHZhbHVlPSIiIG1heGxlbmd0aD0iNjAiIHBsYWNl
aG9sZGVyPSJ6LkIuIEZyw7xoZGllbnN0IFNvbmRlcmF1ZmdhYmUiPjwvZGl2PicgKwogICAgICAg
ICAgICAgICAgICAgICc8ZGl2IGNsYXNzPSJmb3JtLWdydXBwZSIgc3R5bGU9Im1pbi13aWR0aDo2
NHB4Ij48bGFiZWwgc3R5bGU9ImZvbnQtc2l6ZToxMXB4Ij5IZ3IuPC9sYWJlbD4nICsKICAgICAg
ICAgICAgICAgICAgICAgICAgJzxpbnB1dCB0eXBlPSJjb2xvciIgaWQ9ImltcC1uYy1oZyIgY2xh
c3M9ImZvcm0taW5wdXQiIHZhbHVlPSIjQjcxQzFDIiBzdHlsZT0iaGVpZ2h0OjM0cHg7cGFkZGlu
ZzoycHggNHB4O2N1cnNvcjpwb2ludGVyO3dpZHRoOjU0cHgiPjwvZGl2PicgKwogICAgICAgICAg
ICAgICAgICAgICc8ZGl2IGNsYXNzPSJmb3JtLWdydXBwZSIgc3R5bGU9Im1pbi13aWR0aDo2NHB4
Ij48bGFiZWwgc3R5bGU9ImZvbnQtc2l6ZToxMXB4Ij5TY2hyLjwvbGFiZWw+JyArCiAgICAgICAg
ICAgICAgICAgICAgICAgICc8aW5wdXQgdHlwZT0iY29sb3IiIGlkPSJpbXAtbmMtc2YiIGNsYXNz
PSJmb3JtLWlucHV0IiB2YWx1ZT0iI0ZGRkZGRiIgc3R5bGU9ImhlaWdodDozNHB4O3BhZGRpbmc6
MnB4IDRweDtjdXJzb3I6cG9pbnRlcjt3aWR0aDo1NHB4Ij48L2Rpdj4nICsKICAgICAgICAgICAg
ICAgICAgICAnPGRpdiBjbGFzcz0iZm9ybS1ncnVwcGUiIHN0eWxlPSJtaW4td2lkdGg6ODBweCI+
PGxhYmVsIHN0eWxlPSJmb250LXNpemU6MTFweCI+Vm9yc2NoYXU8L2xhYmVsPicgKwogICAgICAg
ICAgICAgICAgICAgICAgICAnPGRpdiBpZD0iaW1wLW5jLXZvciIgc3R5bGU9InBhZGRpbmc6NnB4
IDEwcHg7Ym9yZGVyLXJhZGl1czo0cHg7Zm9udC13ZWlnaHQ6NzAwO3RleHQtYWxpZ246Y2VudGVy
O2JhY2tncm91bmQ6I0I3MUMxQztjb2xvcjojRkZGRkZGIj4nICsgZXNjYXBlSFRNTChxdWVsbENv
ZGUgfHwgJz8nKSArICc8L2Rpdj48L2Rpdj4nICsKICAgICAgICAgICAgICAgICc8L2Rpdj4nICsK
ICAgICAgICAgICAgICAgICc8ZGl2IHN0eWxlPSJkaXNwbGF5OmZsZXg7Z2FwOjZweDtqdXN0aWZ5
LWNvbnRlbnQ6ZmxleC1lbmQ7bWFyZ2luLXRvcDo4cHgiPicgKwogICAgICAgICAgICAgICAgICAg
ICc8YnV0dG9uIGNsYXNzPSJidG4gYnRuLWtsZWluIiBpZD0iaW1wLW5jLWFiYnJlY2hlbiIgdHlw
ZT0iYnV0dG9uIj5BYmJyZWNoZW48L2J1dHRvbj4nICsKICAgICAgICAgICAgICAgICAgICAnPGJ1
dHRvbiBjbGFzcz0iYnRuIGJ0bi1rbGVpbiBidG4tcHJpbWFlciIgaWQ9ImltcC1uYy1hbmxlZ2Vu
IiB0eXBlPSJidXR0b24iPkFubGVnZW48L2J1dHRvbj4nICsKICAgICAgICAgICAgICAgICc8L2Rp
dj4nOwogICAgICAgICAgICByb3cuaW5zZXJ0QWRqYWNlbnRFbGVtZW50KCdhZnRlcmVuZCcsIGZv
cm0pOwoKICAgICAgICAgICAgLy8gTGl2ZS1Wb3JzY2hhdSB3aWUgaW0gU2NoaWNodGNvZGUtRWRp
dC1Nb2RhbAogICAgICAgICAgICBmdW5jdGlvbiB2b3JzY2hhdVVwZGF0ZSgpIHsKICAgICAgICAg
ICAgICAgIHZhciBoZyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdpbXAtbmMtaGcnKS52YWx1
ZTsKICAgICAgICAgICAgICAgIHZhciBzZiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdpbXAt
bmMtc2YnKS52YWx1ZTsKICAgICAgICAgICAgICAgIHZhciBrdSA9IGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKCdpbXAtbmMta3VlcnplbCcpLnZhbHVlIHx8IGRvY3VtZW50LmdldEVsZW1lbnRCeUlk
KCdpbXAtbmMtY29kZScpLnZhbHVlIHx8ICc/JzsKICAgICAgICAgICAgICAgIHZhciB2ID0gZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2ltcC1uYy12b3InKTsKICAgICAgICAgICAgICAgIHYuc3R5
bGUuYmFja2dyb3VuZCA9IGhnOyB2LnN0eWxlLmNvbG9yID0gc2Y7IHYudGV4dENvbnRlbnQgPSBr
dTsKICAgICAgICAgICAgfQogICAgICAgICAgICBbJ2ltcC1uYy1oZycsJ2ltcC1uYy1zZicsJ2lt
cC1uYy1rdWVyemVsJywnaW1wLW5jLWNvZGUnXS5mb3JFYWNoKGZ1bmN0aW9uKGlkKSB7CiAgICAg
ICAgICAgICAgICB2YXIgZWwgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCk7IGlmIChlbCkg
ZWwuYWRkRXZlbnRMaXN0ZW5lcignaW5wdXQnLCB2b3JzY2hhdVVwZGF0ZSk7CiAgICAgICAgICAg
IH0pOwogICAgICAgICAgICAvLyBGb2t1cyBhdWYgQmV6ZWljaG51bmcg4oCUIENvZGUvS3Vlcnpl
bCBzaW5kIHZvcmJlbGVndAogICAgICAgICAgICB2YXIgYmV6RWwgPSBkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZCgnaW1wLW5jLWJleicpOwogICAgICAgICAgICBpZiAoYmV6RWwpIGJlekVsLmZvY3Vz
KCk7CgogICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaW1wLW5jLWFiYnJlY2hl
bicpLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgZnVuY3Rpb24oKSB7CiAgICAgICAgICAgICAg
ICBmb3JtLnJlbW92ZSgpOwogICAgICAgICAgICAgICAgLy8gU2VsZWN0IHdhciBvYmVuIGJlcmVp
dHMgYXVmIG0uemllbCB6dXJ1ZWNrZ2VzZXR6dCwgbmljaHRzIHdlaXRlciB6dSB0dW4uCiAgICAg
ICAgICAgIH0pOwoKICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2ltcC1uYy1h
bmxlZ2VuJykuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCBmdW5jdGlvbigpIHsKICAgICAgICAg
ICAgICAgIHZhciBkYXRlbiA9IHsKICAgICAgICAgICAgICAgICAgICBjb2RlOiBkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZCgnaW1wLW5jLWNvZGUnKS52YWx1ZS50cmltKCksCiAgICAgICAgICAgICAg
ICAgICAga3VlcnplbDogZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2ltcC1uYy1rdWVyemVsJyku
dmFsdWUudHJpbSgpIHx8IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdpbXAtbmMtY29kZScpLnZh
bHVlLnRyaW0oKSwKICAgICAgICAgICAgICAgICAgICBiZXplaWNobnVuZzogZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoJ2ltcC1uYy1iZXonKS52YWx1ZS50cmltKCksCiAgICAgICAgICAgICAgICAg
ICAgaGludGVyZ3J1bmQ6IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdpbXAtbmMtaGcnKS52YWx1
ZSwKICAgICAgICAgICAgICAgICAgICBzY2hyaWZ0OiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgn
aW1wLW5jLXNmJykudmFsdWUKICAgICAgICAgICAgICAgIH07CiAgICAgICAgICAgICAgICBpZiAo
IWRhdGVuLmNvZGUpIHsgdG9hc3QoJ0NvZGUgaXN0IFBmbGljaHRmZWxkJywgJ3dhcm51bmcnKTsg
cmV0dXJuOyB9CiAgICAgICAgICAgICAgICBpZiAoIWRhdGVuLmJlemVpY2hudW5nKSB7IHRvYXN0
KCdCZXplaWNobnVuZyBpc3QgUGZsaWNodGZlbGQnLCAnd2FybnVuZycpOyByZXR1cm47IH0KICAg
ICAgICAgICAgICAgIGlmICgoWi5hZG1pbi5zY2hpY2h0Y29kZXMgfHwgW10pLnNvbWUoZnVuY3Rp
b24oYykgeyByZXR1cm4gYy5jb2RlID09PSBkYXRlbi5jb2RlOyB9KSkgewogICAgICAgICAgICAg
ICAgICAgIHRvYXN0KCdDb2RlIOKAnicgKyBkYXRlbi5jb2RlICsgJyIgZXhpc3RpZXJ0IGJlcmVp
dHMnLCAnd2FybnVuZycpOyByZXR1cm47CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAg
ICB2YXIgbGlzdGUgPSAoWi5hZG1pbi5zY2hpY2h0Y29kZXMgfHwgW10pLnNsaWNlKCk7CiAgICAg
ICAgICAgICAgICBsaXN0ZS5wdXNoKGRhdGVuKTsKICAgICAgICAgICAgICAgIGFwaVB1dCgnL2Fw
aS9hZG1pbicsIE9iamVjdC5hc3NpZ24oe30sIFouYWRtaW4sIHsgc2NoaWNodGNvZGVzOiBsaXN0
ZSB9KSkudGhlbihmdW5jdGlvbigpIHsKICAgICAgICAgICAgICAgICAgICBaLmFkbWluLnNjaGlj
aHRjb2RlcyA9IGxpc3RlOwogICAgICAgICAgICAgICAgICAgIC8vIGNvZGVNYXAgZnVlciBkYXMg
SGF1cHRncmlkIHN5bmNocm9uIGhhbHRlbgogICAgICAgICAgICAgICAgICAgIFouY29kZU1hcCA9
IFouY29kZU1hcCB8fCB7fTsKICAgICAgICAgICAgICAgICAgICBaLmNvZGVNYXBbZGF0ZW4uY29k
ZV0gPSB7IGhpbnRlcmdydW5kOiBkYXRlbi5oaW50ZXJncnVuZCwgc2NocmlmdDogZGF0ZW4uc2No
cmlmdCwga3VlcnplbDogZGF0ZW4ua3VlcnplbCB8fCBkYXRlbi5jb2RlIH07CiAgICAgICAgICAg
ICAgICAgICAgLy8gQWt0aXZlLUNvZGVzLUNsb3N1cmUtTGlzdGUgYWt0dWFsaXNpZXJlbiB1bmQg
YWxsZQogICAgICAgICAgICAgICAgICAgIC8vIENvZGUtU2VsZWN0cyBpbSBNb2RhbCBuZXUgcmVu
ZGVybiwgZGFtaXQgZGVyIG5ldWUKICAgICAgICAgICAgICAgICAgICAvLyBDb2RlIGluIGplZGVt
IERyb3Bkb3duIGF1ZnRhdWNodC4KICAgICAgICAgICAgICAgICAgICBha3RpdmVDb2RlcyA9ICha
LmFkbWluLnNjaGljaHRjb2RlcyB8fCBbXSkuZmlsdGVyKGlzdENvZGVBa3RpdikKICAgICAgICAg
ICAgICAgICAgICAgICAgLnNsaWNlKCkuc29ydChmdW5jdGlvbihhLCBiKSB7IHJldHVybiAoYS5j
b2RlIHx8ICcnKS5sb2NhbGVDb21wYXJlKGIuY29kZSB8fCAnJywgJ2RlJyk7IH0pOwogICAgICAg
ICAgICAgICAgICAgIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJy5pbXAtY29kZS1zZWwnKS5m
b3JFYWNoKGZ1bmN0aW9uKHMpIHsKICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHNpID0gcGFy
c2VJbnQocy5nZXRBdHRyaWJ1dGUoJ2RhdGEtaScpLCAxMCk7CiAgICAgICAgICAgICAgICAgICAg
ICAgIHZhciBzbSA9IGltcFN0YXRlLmNvZGVNYXRjaGVzW3NpXTsKICAgICAgICAgICAgICAgICAg
ICAgICAgLy8gU2VsZWt0aW9uIGluIGRpZXNlciBaZWlsZSBhdWYgZGVuIG5ldWVuIENvZGUgc2V0
emVuLAogICAgICAgICAgICAgICAgICAgICAgICAvLyBzb25zdCBkaWUgYmVzdGVoZW5kZSB6aWVs
LUF1c3dhaGwgYmVpYmVoYWx0ZW4uCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciB6aWVsRnVl
ciA9IChzaSA9PT0gaSkgPyBkYXRlbi5jb2RlIDogKHNtICYmIHNtLnppZWwpIHx8ICcnOwogICAg
ICAgICAgICAgICAgICAgICAgICBzLmlubmVySFRNTCA9IGNvZGVPcHRzKHppZWxGdWVyKTsKICAg
ICAgICAgICAgICAgICAgICAgICAgcy52YWx1ZSA9IHppZWxGdWVyOwogICAgICAgICAgICAgICAg
ICAgIH0pOwogICAgICAgICAgICAgICAgICAgIC8vIG0tU3RhdGUgZGVyIEF1c2xvZXNlci1aZWls
ZSBha3R1YWxpc2llcmVuCiAgICAgICAgICAgICAgICAgICAgbS56aWVsID0gZGF0ZW4uY29kZTsK
ICAgICAgICAgICAgICAgICAgICBtLnN0YXR1cyA9ICdtYW51ZWxsJzsKICAgICAgICAgICAgICAg
ICAgICBtLmhpbndlaXMgPSAnTmV1IGFuZ2VsZWd0OiAnICsgZGF0ZW4uY29kZTsKICAgICAgICAg
ICAgICAgICAgICAvLyBaZWlsZSB2aXN1ZWxsIHVtZmFlcmJlbiArIEljb24gYXVzdGF1c2NoZW4K
ICAgICAgICAgICAgICAgICAgICByb3cuY2xhc3NMaXN0LnJlbW92ZSgnaW1wLXdhcm4nKTsKICAg
ICAgICAgICAgICAgICAgICByb3cuY2xhc3NMaXN0LmFkZCgnaW1wLW9rJyk7CiAgICAgICAgICAg
ICAgICAgICAgdmFyIGFsdEljID0gcm93LnF1ZXJ5U2VsZWN0b3IoJy5pbXAtbWFwcGluZy1zdGF0
dXMnKTsKICAgICAgICAgICAgICAgICAgICBpZiAoYWx0SWMpIGFsdEljLm91dGVySFRNTCA9IHN0
YXR1c0ljb25IdG1sKG0pOwogICAgICAgICAgICAgICAgICAgIC8vIEFnZ3JlZ2F0LVphZWhsZXIg
YWt0dWFsaXNpZXJlbgogICAgICAgICAgICAgICAgICAgIHN0YXR1c1phZWhsZXJVcGRhdGVuKCk7
CiAgICAgICAgICAgICAgICAgICAgZm9ybS5yZW1vdmUoKTsKICAgICAgICAgICAgICAgICAgICB0
b2FzdCgnU2NoaWNodGNvZGUg4oCeJyArIGRhdGVuLmNvZGUgKyAnIiBhbmdlbGVndCcsICdlcmZv
bGcnKTsKICAgICAgICAgICAgICAgIH0pLmNhdGNoKGZ1bmN0aW9uKGUpIHsgdG9hc3QoJ0ZlaGxl
cjogJyArIChlICYmIGUubWVzc2FnZSB8fCBlKSwgJ2ZlaGxlcicpOyB9KTsKICAgICAgICAgICAg
fSk7CiAgICAgICAgfQoKICAgICAgICAvLyAiQWJicmVjaGVuIjogcm9sbHQgaW1wU3RhdGUgYXVm
IFNuYXBzaG90IHp1cnVlY2suIEJlaSB2b3JoYW5kZW5lbgogICAgICAgIC8vIEFlbmRlcnVuZ2Vu
IChaLm1vZGFsRGlydHk9dHJ1ZSkgZnJhZ3QgZGllIERpcnR5LUJlc3RhZXRpZ3VuZwogICAgICAg
IC8vIGF1dG9tYXRpc2NoIG5hY2gg4oCUIGRlciBEaXNjYXJkLUhvb2sgb2JlbiBydWZ0IGRhbm4g
ZGVuIFJvbGxiYWNrIGF1Zi4KICAgICAgICAvLyBPaG5lIEFlbmRlcnVuZ2VuIGRpcmVrdCBzY2hs
aWVzc2VuLgogICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdpbXAtbW9kYWwtYWJicmVj
aGVuJykuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCBmdW5jdGlvbigpIHsKICAgICAgICAgICAg
aWYgKFoubW9kYWxEaXJ0eSkgewogICAgICAgICAgICAgICAgbW9kYWxTY2hsaWVzc2VuKCk7CiAg
ICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICBtb2RhbFNjaGxpZXNzZW4odHJ1ZSk7
CiAgICAgICAgICAgICAgICBpbXBTdGF0dXNSZW5kZXJuKCk7CiAgICAgICAgICAgIH0KICAgICAg
ICB9KTsKCiAgICAgICAgLy8gIsOcYmVybmVobWVuIjogYWxsZSBub2NoIG9mZmVuZW4gKG1laHJk
ZXV0aWcpIGFscyBpZ25vcmllcnQgbWFya2llcmVuLgogICAgICAgIC8vIERhbWl0IGtvbW10IGRl
ciBVc2VyIGF1cyBkZXIgU2Fja2dhc3NlLCB3ZW5uIGVyIE1laHJmYWNodHJlZmZlciBvaG5lCiAg
ICAgICAgLy8gRW50c2NoZWlkdW5nIGxhc3NlbiB3aWxsLiAibmV1IiB1bmQgInBhcGllcmtvcmIi
IGhhYmVuIERlZmF1bHQtCiAgICAgICAgLy8gVm9yc2NobGFlZ2UgdW5kIHdlcmRlbiBuaWNodCBh
bmdlZmFzc3QuIERpcnR5LUJlc3RhZXRpZ3VuZyB3aXJkCiAgICAgICAgLy8gYmV3dXNzdCB1bWdh
bmdlbiAobW9kYWxTY2hsaWVzc2VuKHRydWUpKSDigJQgVWViZXJuZWhtZW4gaXN0IGRpZQogICAg
ICAgIC8vIGdld3VlbnNjaHRlIENvbW1pdC1Ba3Rpb24uCiAgICAgICAgZG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoJ2ltcC1tb2RhbC11ZWJlcm5laG1lbicpLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNr
JywgZnVuY3Rpb24oKSB7CiAgICAgICAgICAgIC8vIFdhcyB3dWVyZGUgIlVlYmVybmVobWVuIiBz
dGlsbCB2ZXJ3ZXJmZW4/IE9mZmVuZSBtZWhyZGV1dGlnZQogICAgICAgICAgICAvLyBQZXJzb25l
biArIHVuYmVrYW5udGUgQ29kZXMgd2VyZGVuIGF1ZiBpZ25vcmllcnQgZ2VzZXR6dCDigJQgaWhy
ZQogICAgICAgICAgICAvLyBEYXRlbiBsYW5kZW4gTklDSFQgaW0gSW1wb3J0LiBGcnVlaGVyIHBh
c3NpZXJ0ZSBkYXMgb2huZSBSdWVjay0KICAgICAgICAgICAgLy8gZnJhZ2U7IGpldHp0IHplaWdl
biB3aXIgdm9yaGVyIGV4cGxpeml0LCB3YXMgdmVybG9yZW4gZ2VodC4KICAgICAgICAgICAgdmFy
IG9mZmVuZVBlcnMgPSBpbXBTdGF0ZS5wZXJzb25lbk1hdGNoZXMuZmlsdGVyKGZ1bmN0aW9uKG0p
IHsgcmV0dXJuIG0uc3RhdHVzID09PSAnbWVocmRldXRpZyc7IH0pOwogICAgICAgICAgICB2YXIg
b2ZmZW5lQ29kZXMgPSBpbXBTdGF0ZS5jb2RlTWF0Y2hlcy5maWx0ZXIoZnVuY3Rpb24obSkgeyBy
ZXR1cm4gbS5zdGF0dXMgPT09ICd1bmJla2FubnQnOyB9KTsKCiAgICAgICAgICAgIGZ1bmN0aW9u
IGFud2VuZGVuKCkgewogICAgICAgICAgICAgICAgb2ZmZW5lUGVycy5mb3JFYWNoKGZ1bmN0aW9u
KG0pIHsKICAgICAgICAgICAgICAgICAgICBtLnppZWxJZCA9IG51bGw7CiAgICAgICAgICAgICAg
ICAgICAgbS5uZXVBbmxlZ2VuID0gZmFsc2U7CiAgICAgICAgICAgICAgICAgICAgbS5zdGF0dXMg
PSAnaWdub3JpZXJ0JzsKICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgICAgb2ZmZW5l
Q29kZXMuZm9yRWFjaChmdW5jdGlvbihtKSB7CiAgICAgICAgICAgICAgICAgICAgbS56aWVsID0g
bnVsbDsKICAgICAgICAgICAgICAgICAgICBtLnN0YXR1cyA9ICdpZ25vcmUnOwogICAgICAgICAg
ICAgICAgICAgIG0uaGlud2VpcyA9ICdJZ25vcmllcnQnOwogICAgICAgICAgICAgICAgfSk7CiAg
ICAgICAgICAgICAgICBtb2RhbFNjaGxpZXNzZW4odHJ1ZSk7CiAgICAgICAgICAgICAgICBpbXBT
dGF0dXNSZW5kZXJuKCk7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIC8vIE5pY2h0cyBPZmZl
bmVzIC0+IGRpcmVrdCB1ZWJlcm5laG1lbiAoa2VpbmUgdWViZXJmbHVlc3NpZ2UgUnVlY2tmcmFn
ZSkuCiAgICAgICAgICAgIGlmICghb2ZmZW5lUGVycy5sZW5ndGggJiYgIW9mZmVuZUNvZGVzLmxl
bmd0aCkgeyBhbndlbmRlbigpOyByZXR1cm47IH0KCiAgICAgICAgICAgIHZhciB0ZWlsZSA9IFtd
OwogICAgICAgICAgICBpZiAob2ZmZW5lUGVycy5sZW5ndGgpIHsKICAgICAgICAgICAgICAgIHZh
ciBwTmFtZW4gPSBvZmZlbmVQZXJzLm1hcChmdW5jdGlvbihtKSB7IHJldHVybiBtLmV4Y2VsLm5h
Y2huYW1lOyB9KS5qb2luKCcsICcpOwogICAgICAgICAgICAgICAgdGVpbGUucHVzaChvZmZlbmVQ
ZXJzLmxlbmd0aCArICcgUGVyc29uKGVuKSBibGVpYmVuIHVuenVnZW9yZG5ldCB1bmQgd2VyZGVu
IE5JQ0hUIGltcG9ydGllcnQ6XG4nICsgcE5hbWVuKTsKICAgICAgICAgICAgfQogICAgICAgICAg
ICBpZiAob2ZmZW5lQ29kZXMubGVuZ3RoKSB7CiAgICAgICAgICAgICAgICB2YXIgemVsbGVuID0g
b2ZmZW5lQ29kZXMucmVkdWNlKGZ1bmN0aW9uKHN1bSwgbSkgeyByZXR1cm4gc3VtICsgKG0uYW56
YWhsIHx8IDApOyB9LCAwKTsKICAgICAgICAgICAgICAgIHZhciBjTmFtZW4gPSBvZmZlbmVDb2Rl
cy5tYXAoZnVuY3Rpb24obSkgeyByZXR1cm4gbS5jb2RlOyB9KS5qb2luKCcsICcpOwogICAgICAg
ICAgICAgICAgdGVpbGUucHVzaChvZmZlbmVDb2Rlcy5sZW5ndGggKyAnIENvZGUocykgYmxlaWJl
biB1bnp1Z2VvcmRuZXQg4oCUIGRpZSBiZXRyb2ZmZW5lbiAnICsgemVsbGVuICsgJyBaZWxsZShu
KSB3ZXJkZW4gZ2VsZWVydCBzdGF0dCBiZWbDvGxsdDpcbicgKyBjTmFtZW4pOwogICAgICAgICAg
ICB9CiAgICAgICAgICAgIGJlc3RhZXRpZ2VuKAogICAgICAgICAgICAgICAgdGVpbGUuam9pbign
XG5cbicpICsgJ1xuXG5Ucm90emRlbSDDvGJlcm5laG1lbiB1bmQgZGllc2UgUHVua3RlIGlnbm9y
aWVyZW4/JywKICAgICAgICAgICAgICAgIGFud2VuZGVuLAogICAgICAgICAgICAgICAgeyB0aXRl
bDogJ09mZmVuZSBadW9yZG51bmdlbiB2ZXJ3ZXJmZW4/JywgamFUZXh0OiAnVHJvdHpkZW0gw7xi
ZXJuZWhtZW4nLCBqYURhbmdlcjogdHJ1ZSB9CiAgICAgICAgICAgICk7CiAgICAgICAgfSk7CiAg
ICB9CgovLyA9PT09PSBFeHBvcnRzID09PT09CmV4cG9ydCB7CiAgICBpbXBSYW5nUGFyc2VuLCBp
bXBFeGNlbFNlcmlhbFRvSXNvLAogICAgaW1wRGF0ZWlWZXJhcmJlaXRlbiwgaW1wRmVobGVyLCBp
bXBBbmFseXNpZXJlbiwKICAgIGltcFN0YXR1c1JlbmRlcm4sIGltcFNjaHJlaWJlblN0YXJ0ZW4s
CiAgICBpbXBQcm9ncmVzc01vZGFsT2VmZm5lbiwgaW1wUHJvZ3Jlc3NVcGRhdGUsIGltcFByb2dy
ZXNzRmVobGVyLCBpbXBQcm9ncmVzc0VyZm9sZywKICAgIGltcFNjaHJlaWJlbkF1c2Z1ZWhyZW4s
IGltcFNjaHJlaWJlblBoYXNlMiwgaW1wU2NocmVpYmVuUGhhc2UyVHJhbnNmb3JtLCBpbXBTY2hy
ZWliZW5QaGFzZTMsCiAgICBpbXBNYXBwaW5nTW9kYWwsIGltcFRyb2NrZW5sYXVmQmVyZWNobmVu
LCBpbXBUcm9ja2VubGF1Zk1vZGFsCn07Cg==
### FILE: js/logbuch.js | 36868
Ly8gPT09IGxvZ2J1Y2guanMgPT09Ci8vIEFlbmRlcnVuZ3MtSGlzdG9yaWUgZGVyIFBsYW51bmcu
IFNlcnZlciBzY2hyZWlidCB0ZWNobmlzY2gta29tcGFrdGUKLy8gRWludHJhZWdlICh7YWt0aW9u
LCBkZXRhaWxzfSk7IGRpZXNlcyBNb2R1bCBodW1hbmlzaWVydCBzaWUgZnVlciBkaWUKLy8gQW56
ZWlnZSAoQWt0aW9ucy1MYWJlbCwgRGV0YWlsLVRleHQsIEtsYXJuYW1lIHN0YXR0IE5XLUtlbm51
bmcpLgoKaW1wb3J0IHsgWiB9IGZyb20gJy4vY29yZV9zdGF0ZS5qcyc7CmltcG9ydCB7IGVzY2Fw
ZUhUTUwsIGVzY2FwZUF0dHIsIGRhdHVtRm9ybWF0REUsIHJlbmRlckVycm9yQm94IH0gZnJvbSAn
Li9jb3JlX3V0aWwuanMnOwppbXBvcnQgeyB0b2FzdCwgYmVzdGFldGlnZW4gfSBmcm9tICcuL3Vp
X2RpYWxvZy5qcyc7CmltcG9ydCB7IGFwaSwgYXBpUG9zdCwgYXBpUHV0IH0gZnJvbSAnLi9jb3Jl
X2FwaS5qcyc7CgovLyBIb29rczogYXBwLmpzIHZlcmRyYWh0ZXQgYGFmdGVyUmVzdG9yZWAgbWl0
IGRhdGVuTGFkZW4oKSwgZGFtaXQgbmFjaAovLyBlaW5lciBXaWVkZXJoZXJzdGVsbHVuZyBkZXIg
Z2xvYmFsZSBTdGF0ZSAoWi5wbGFudW5nIGV0Yy4pIHJlZnJlc2hlZCB3aXJkLgpleHBvcnQgdmFy
IGxvZ2J1Y2hIb29rcyA9IHsKICAgIGFmdGVyUmVzdG9yZTogbnVsbAp9OwoKLy8gPT09PT0gQWt0
aW9ucy1MYWJlbCA9PT09PQovLyBNYXBwaW5nIHRlY2huaXNjaGVyIEFrdGlvbi1Db2RlcyBhdWYg
bWVuc2NoZW5sZXNiYXJlIGRldXRzY2hlIEJlc2NocmlmdHVuZy4KLy8gVW5iZWthbm50ZSBDb2Rl
cyB3ZXJkZW4gZ2VuZXJpc2NoIHZvbiAnKi5nZWFlbmRlcnQnIC8gJyouYW5nZWxlZ3QnIGV0Yy4K
Ly8gZ2VmYW5nZW4gKHNpZWhlIGFrdGlvbkxhYmVsKCkpLgp2YXIgQUtUSU9OX0xBQkVMID0gewog
ICAgJ3plbGxlLmdlYWVuZGVydCc6ICAgICAgICAgICAgICAgICdTY2hpY2h0IGdlw6RuZGVydCcs
CiAgICAnemVsbGVuLmJ1bGsuZ2VhZW5kZXJ0JzogICAgICAgICAgJ01laHJlcmUgU2NoaWNodGVu
IGdlc2V0enQgKERyYWctRmlsbCknLAogICAgJ2tvbW1lbnRhci5nZWFlbmRlcnQnOiAgICAgICAg
ICAgICdLb21tZW50YXIgZ2XDpG5kZXJ0JywKICAgICdwZXJzb24uYW5nZWxlZ3QnOiAgICAgICAg
ICAgICAgICAnUGVyc29uIGFuZ2VsZWd0JywKICAgICdwZXJzb24uZ2VhZW5kZXJ0JzogICAgICAg
ICAgICAgICAnUGVyc29uIGdlw6RuZGVydCcsCiAgICAncGVyc29uZW4ucmVpaGVuZm9sZ2UuZ2Vh
ZW5kZXJ0JzogJ1BlcnNvbmVuLVJlaWhlbmZvbGdlIGdlw6RuZGVydCcsCiAgICAnYWRtaW4uZ2Vh
ZW5kZXJ0JzogICAgICAgICAgICAgICAgJ0FkbWluLUtvbmZpZ3VyYXRpb24gZ2XDpG5kZXJ0JywK
ICAgICdhZG1pbi5jb25maWcuZ2VhZW5kZXJ0JzogICAgICAgICAnQWRtaW4tS29uZmlndXJhdGlv
biBnZcOkbmRlcnQnLAogICAgJ3N1cGVyVXNlci5nZWFlbmRlcnQnOiAgICAgICAgICAgICdTdXBl
clVzZXItTGlzdGUgZ2XDpG5kZXJ0JywKICAgICdzdXBlcnVzZXIuZ2VhZW5kZXJ0JzogICAgICAg
ICAgICAnU3VwZXJVc2VyLUxpc3RlIGdlw6RuZGVydCcsCiAgICAnZmFjaGF1ZnNpY2h0LmdlYWVu
ZGVydCc6ICAgICAgICAgJ0ZhY2hhdWZzaWNodC1MaXN0ZSBnZcOkbmRlcnQnLAogICAgJ2RpcmVr
dGlvbnNsZWl0dW5nLmdlYWVuZGVydCc6ICAgICdEaXJla3Rpb25zbGVpdHVuZy1MaXN0ZSBnZcOk
bmRlcnQnLAogICAgJ2Z1ZWhydW5nc3N0ZWxsZS5nZWFlbmRlcnQnOiAgICAgICdGw7xocnVuZ3Nz
dGVsbGUtTGlzdGUgZ2XDpG5kZXJ0JywKICAgICdiZXplaWNobnVuZ2VuLmdlYWVuZGVydCc6ICAg
ICAgICAnQmV6ZWljaG51bmdlbiBnZcOkbmRlcnQnLAogICAgJ2VtYWlsdm9ybGFnZW4uZ2VhZW5k
ZXJ0JzogICAgICAgICdFLU1haWwtVm9ybGFnZW4gZ2XDpG5kZXJ0JywKICAgICdlbWFpbHRyaWdn
ZXIuZ2VhZW5kZXJ0JzogICAgICAgICAnRS1NYWlsLVRyaWdnZXIgZ2XDpG5kZXJ0JywKICAgICdl
aW5zdGVsbHVuZ2VuLmdlYWVuZGVydCc6ICAgICAgICAnRWluc3RlbGx1bmdlbiBnZcOkbmRlcnQn
LAogICAgJ2ZlaWVydGFnZS5nZWFlbmRlcnQnOiAgICAgICAgICAgICdGZWllcnRhZ2UgZ2XDpG5k
ZXJ0JywKICAgICdmZXJpZW4uZ2VhZW5kZXJ0JzogICAgICAgICAgICAgICAnU2NodWxmZXJpZW4g
Z2XDpG5kZXJ0JywKICAgICdzb25kZXJ0ZXJtaW5lLmdlYWVuZGVydCc6ICAgICAgICAnSGlud2Vp
c2UgLyBTb25kZXJ0ZXJtaW5lIGdlw6RuZGVydCcsCiAgICAnc3RhbmRvcnRlLmdlYWVuZGVydCc6
ICAgICAgICAgICAgJ1N0YW5kb3J0ZSBnZcOkbmRlcnQnLAogICAgJ3NjaGljaHRjb2Rlcy5nZWFl
bmRlcnQnOiAgICAgICAgICdTY2hpY2h0Y29kZXMgZ2XDpG5kZXJ0JywKICAgICdncnVwcGVuLmdl
YWVuZGVydCc6ICAgICAgICAgICAgICAnRGllbnN0Z3J1cHBlbiBnZcOkbmRlcnQnLAogICAgJ2Z1
bmt0aW9uZW4uZ2VhZW5kZXJ0JzogICAgICAgICAgICdGdW5rdGlvbmVuIGdlw6RuZGVydCcsCiAg
ICAnc2NoaWNodGZvbGdlbi5nZWFlbmRlcnQnOiAgICAgICAgJ1NjaGljaHRmb2xnZW4gZ2XDpG5k
ZXJ0JywKICAgICdyb2xsZW4uZ2VhZW5kZXJ0JzogICAgICAgICAgICAgICAnUm9sbGVuIGdlw6Ru
ZGVydCcsCiAgICAnYmFja3VwLmVyc3RlbGx0JzogICAgICAgICAgICAgICAgJ0JhY2t1cCBlcnN0
ZWxsdCcsCiAgICAnYmFja3VwLndpZWRlcmhlcmdlc3RlbGx0JzogICAgICAgJ0JhY2t1cCB3aWVk
ZXJoZXJnZXN0ZWxsdCcsCiAgICAnYmFja3VwLmdlbG9lc2NodCc6ICAgICAgICAgICAgICAgJ0Jh
Y2t1cCBnZWzDtnNjaHQnLAogICAgJ3BsYW51bmcucmVzZXQnOiAgICAgICAgICAgICAgICAgICdQ
bGFudW5nIHp1csO8Y2tnZXNldHp0JywKICAgICdwbGFudW5nLmtvbXBsZXR0LWVyc2V0enQnOiAg
ICAgICAnUGxhbnVuZyBrb21wbGV0dCBlcnNldHp0IChJbXBvcnQpJywKICAgICdkdW1teWRhdGVu
LmVpbmdlc3BpZWx0JzogICAgICAgICAnRHVtbXlkYXRlbiBlaW5nZXNwaWVsdCcsCiAgICAndW50
ZXJiZXNldHp1bmcucXVpdHRpZXJ0JzogICAgICAgJ1VudGVyYmVzZXR6dW5nIHF1aXR0aWVydCcs
CiAgICAnbG9jay5mb3JjZSc6ICAgICAgICAgICAgICAgICAgICAgJ0VkaXQtTG9jayDDvGJlcm5v
bW1lbicsCiAgICAnaGlud2Vpcy5lcnpldWd0JzogICAgICAgICAgICAgICAgJ0hpbndlaXMgZXJ6
ZXVndCcsCiAgICAnaGlud2Vpcy5rZW5udG5pcyc6ICAgICAgICAgICAgICAgJ0hpbndlaXMgenVy
IEtlbm50bmlzIGdlbm9tbWVuJywKICAgICd2ZXJhbnR3b3J0dW5nLmVpbmdlc3BydW5nZW4nOiAg
ICAnQXXDn2VycGxhbm3DpMOfaWcgZWluZ2VzcHJ1bmdlbicsCiAgICAvLyBLb21tZW50YXJlOiBT
ZXJ2ZXIgc2NocmVpYnQgaGluenVnZWZ1ZWd0L2dlbG9lc2NodCAoTklDSFQgZ2VhZW5kZXJ0KSDi
gJQKICAgIC8vIG9obmUgZGllc2UgTGFiZWxzIGxhbmRldGVuIGRpZSBoYWV1Zmlnc3RlbiBLb21t
ZW50YXItRWludHJhZWdlIGltCiAgICAvLyBnZW5lcmlzY2hlbiBSb2gtRmFsbGJhY2sgbWl0IHRl
Y2huaXNjaGVuIEZlbGRuYW1lbi4KICAgICdrb21tZW50YXIuaGluenVnZWZ1ZWd0JzogICAgICAg
ICAnS29tbWVudGFyIGhpbnp1Z2Vmw7xndCcsCiAgICAna29tbWVudGFyLmdlbG9lc2NodCc6ICAg
ICAgICAgICAgJ0tvbW1lbnRhciBnZWzDtnNjaHQnLAogICAgJ3BlcnNvbi5pbi5wYXBpZXJrb3Ji
JzogICAgICAgICAgICdQZXJzb24gaW4gUGFwaWVya29yYiB2ZXJzY2hvYmVuJywKICAgICdwZXJz
b24uZW5kZ3VlbHRpZy5nZWxvZXNjaHQnOiAgICAnUGVyc29uIGVuZGfDvGx0aWcgZ2Vsw7ZzY2h0
JywKICAgICdwcm90b2tvbGwuZ2Vsb2VzY2h0JzogICAgICAgICAgICAnTG9nYnVjaC1Qcm90b2tv
bGwgZ2Vsw7ZzY2h0JywKICAgICdtaXR0ZWlsdW5nLmFuZ2VsZWd0JzogICAgICAgICAgICAnTWl0
dGVpbHVuZyBhbmdlbGVndCcsCiAgICAnbWl0dGVpbHVuZy5nZWFlbmRlcnQnOiAgICAgICAgICAg
J01pdHRlaWx1bmcgZ2XDpG5kZXJ0JywKICAgICdtaXR0ZWlsdW5nLmdlbG9lc2NodCc6ICAgICAg
ICAgICAnTWl0dGVpbHVuZyBnZWzDtnNjaHQnLAogICAgJ21pdHRlaWx1bmcudXBsb2FkJzogICAg
ICAgICAgICAgICdNaXR0ZWlsdW5nIOKAlCBEYXRlaSBob2NoZ2VsYWRlbicsCiAgICAnYXZhdGFy
Lmdlc2V0enQnOiAgICAgICAgICAgICAgICAgJ0F2YXRhciBnZXNldHp0JywKICAgICdhdmF0YXIu
ZW50ZmVybnQnOiAgICAgICAgICAgICAgICAnQXZhdGFyIGVudGZlcm50Jwp9OwoKLy8gTGVzYmFy
ZSBCZXplaWNobnVuZ2VuIHBybyBIaW53ZWlzLVR5cCAoU3BpZWdlbCB2b24ganMvaGlud2Vpc2Uu
anMKLy8gVFlQX0xBQkVMLCBoaWVyIG1pdCBVbWxhdXRlbiBmdWVyIGRpZSBMb2didWNoLUFuemVp
Z2UpLgp2YXIgSElOV0VJU19UWVBfTEFCRUwgPSB7CiAgICBpZGVudGl0YWV0X2dlYWVuZGVydDog
ICAgICdJZGVudGl0w6R0IGdlw6RuZGVydCcsCiAgICByb2xsZV9nZWFlbmRlcnQ6ICAgICAgICAg
ICdSb2xsZSBnZcOkbmRlcnQnLAogICAgcm9sbGVfdmVyYW50d29ydHVuZzogICAgICAnVmVyYW50
d29ydHVuZ3MtV2VjaHNlbCAoUm9sbGUpJywKICAgIGJhY2t1cF93aWVkZXJoZXJnZXN0ZWxsdDog
J0JhY2t1cCB3aWVkZXJoZXJnZXN0ZWxsdCcsCiAgICBwbGFudW5nX3Jlc2V0OiAgICAgICAgICAg
ICdQbGFudW5nIHp1csO8Y2tnZXNldHp0JywKICAgIGtyYW5rbWVsZHVuZzogICAgICAgICAgICAg
J0tyYW5rbWVsZHVuZycsCiAgICBwZXJzb25fbmV1OiAgICAgICAgICAgICAgICdQZXJzb24gbmV1
IGFuZ2VsZWd0JywKICAgIHBlcnNvbl9pbmFrdGl2OiAgICAgICAgICAgJ1BlcnNvbiBpbmFrdGl2
IGdlc2V0enQnLAogICAgZ2VidXJ0c3RhZzogICAgICAgICAgICAgICAnR2VidXJ0c3RhZycsCiAg
ICBzY2hpY2h0X2VkaXRfbmFoZTogICAgICAgICdTY2hpY2h0LcOEbmRlcnVuZyBuYWhlIGFtIERh
dHVtJwp9OwpmdW5jdGlvbiBfaGlud2Vpc1R5cExhYmVsKHQpIHsgcmV0dXJuIEhJTldFSVNfVFlQ
X0xBQkVMW3RdIHx8ICh0IHx8ICcnKTsgfQoKZnVuY3Rpb24gYWt0aW9uTGFiZWwoY29kZSkgewog
ICAgaWYgKCFjb2RlKSByZXR1cm4gJyhvaG5lKSc7CiAgICBpZiAoQUtUSU9OX0xBQkVMW2NvZGVd
KSByZXR1cm4gQUtUSU9OX0xBQkVMW2NvZGVdOwogICAgLy8gR2VuZXJpc2NoZXIgRmFsbGJhY2s6
ICdmb28uZ2VhZW5kZXJ0JyAtPiAnRm9vIGdlw6RuZGVydCcKICAgIHZhciB0ZWlsZSA9IGNvZGUu
c3BsaXQoJy4nKTsKICAgIGlmICh0ZWlsZS5sZW5ndGggPj0gMikgewogICAgICAgIHZhciBiYXNp
cyA9IHRlaWxlWzBdLmNoYXJBdCgwKS50b1VwcGVyQ2FzZSgpICsgdGVpbGVbMF0uc2xpY2UoMSk7
CiAgICAgICAgdmFyIHJlc3QgPSB0ZWlsZS5zbGljZSgxKS5qb2luKCcuJykKICAgICAgICAgICAg
LnJlcGxhY2UoJ2dlYWVuZGVydCcsICdnZcOkbmRlcnQnKQogICAgICAgICAgICAucmVwbGFjZSgn
Z2Vsb2VzY2h0JywgJ2dlbMO2c2NodCcpCiAgICAgICAgICAgIC5yZXBsYWNlKCd6dXJ1ZWNrZ2Vz
ZXR6dCcsICd6dXLDvGNrZ2VzZXR6dCcpCiAgICAgICAgICAgIC5yZXBsYWNlKCdxdWl0dGllcnQn
LCAncXVpdHRpZXJ0Jyk7CiAgICAgICAgcmV0dXJuIGJhc2lzICsgJyAnICsgcmVzdDsKICAgIH0K
ICAgIHJldHVybiBjb2RlOwp9CgovLyBBa3Rpb24gLT4gS2F0ZWdvcmllLVNsdWcgZnVlciBkYXMg
RmFyYi1QaWxsIGluIGRlciBBa3Rpb24tU3BhbHRlLgovLyBLYXRlZ29yaWVuIGdlYmVuIGVpbmVu
IFNjaG5lbGwtTGVzZWZsdXNzOiBncnVlbmUgUGlsbHMgPSBQbGFudW5nLAovLyBibGF1ZSA9IFBl
cnNvbiwgb3JhbmdlID0gQWRtaW4tS29uZmlnLCB2aW9sZXR0ID0gSGlud2VpcyB1c3cuCnZhciBB
S1RJT05fS0FURUdPUklFID0gewogICAgJ3plbGxlLmdlYWVuZGVydCc6ICAgICAgICAgICAgICAg
ICdwbGFudW5nJywKICAgICd6ZWxsZW4uYnVsay5nZWFlbmRlcnQnOiAgICAgICAgICAncGxhbnVu
ZycsCiAgICAna29tbWVudGFyLmdlYWVuZGVydCc6ICAgICAgICAgICAgJ3BsYW51bmcnLAogICAg
J3VudGVyYmVzZXR6dW5nLnF1aXR0aWVydCc6ICAgICAgICdwbGFudW5nJywKICAgICdsb2NrLmZv
cmNlJzogICAgICAgICAgICAgICAgICAgICAnc3lzdGVtJywKICAgICdwZXJzb24uYW5nZWxlZ3Qn
OiAgICAgICAgICAgICAgICAncGVyc29uJywKICAgICdwZXJzb24uZ2VhZW5kZXJ0JzogICAgICAg
ICAgICAgICAncGVyc29uJywKICAgICdwZXJzb25lbi5yZWloZW5mb2xnZS5nZWFlbmRlcnQnOiAn
cGVyc29uJywKICAgICdhZG1pbi5nZWFlbmRlcnQnOiAgICAgICAgICAgICAgICAnYWRtaW4nLAog
ICAgJ2FkbWluLmNvbmZpZy5nZWFlbmRlcnQnOiAgICAgICAgICdhZG1pbicsCiAgICAnYWRtaW4u
Z3J1cHBlLnVtYmVuYW5udCc6ICAgICAgICAgJ2FkbWluJywKICAgICdhZG1pbi5taWtyb3RlYW1z
LmFuZ2VsZWd0JzogICAgICAnYWRtaW4nLAogICAgJ2FkbWluLm1pa3JvdGVhbXMubmV1JzogICAg
ICAgICAgICdhZG1pbicsCiAgICAnYmV6ZWljaG51bmdlbi5nZWFlbmRlcnQnOiAgICAgICAgJ2Fk
bWluJywKICAgICdlbWFpbHZvcmxhZ2VuLmdlYWVuZGVydCc6ICAgICAgICAnYWRtaW4nLAogICAg
J2VtYWlsdHJpZ2dlci5nZWFlbmRlcnQnOiAgICAgICAgICdhZG1pbicsCiAgICAnZWluc3RlbGx1
bmdlbi5nZWFlbmRlcnQnOiAgICAgICAgJ2FkbWluJywKICAgICdmZWllcnRhZ2UuZ2VhZW5kZXJ0
JzogICAgICAgICAgICAnYWRtaW4nLAogICAgJ2Zlcmllbi5nZWFlbmRlcnQnOiAgICAgICAgICAg
ICAgICdhZG1pbicsCiAgICAnc29uZGVydGVybWluZS5nZWFlbmRlcnQnOiAgICAgICAgJ2FkbWlu
JywKICAgICdzdGFuZG9ydGUuZ2VhZW5kZXJ0JzogICAgICAgICAgICAnYWRtaW4nLAogICAgJ3Nj
aGljaHRjb2Rlcy5nZWFlbmRlcnQnOiAgICAgICAgICdhZG1pbicsCiAgICAnZ3J1cHBlbi5nZWFl
bmRlcnQnOiAgICAgICAgICAgICAgJ2FkbWluJywKICAgICdmdW5rdGlvbmVuLmdlYWVuZGVydCc6
ICAgICAgICAgICAnYWRtaW4nLAogICAgJ3NjaGljaHRmb2xnZW4uZ2VhZW5kZXJ0JzogICAgICAg
ICdhZG1pbicsCiAgICAncm9sbGVuLmdlYWVuZGVydCc6ICAgICAgICAgICAgICAgJ2FkbWluJywK
ICAgICdzdXBlclVzZXIuZ2VhZW5kZXJ0JzogICAgICAgICAgICAncm9sbGUnLAogICAgJ3N1cGVy
dXNlci5nZWFlbmRlcnQnOiAgICAgICAgICAgICdyb2xsZScsCiAgICAnZmFjaGF1ZnNpY2h0Lmdl
YWVuZGVydCc6ICAgICAgICAgJ3JvbGxlJywKICAgICdkaXJla3Rpb25zbGVpdHVuZy5nZWFlbmRl
cnQnOiAgICAncm9sbGUnLAogICAgJ2Z1ZWhydW5nc3N0ZWxsZS5nZWFlbmRlcnQnOiAgICAgICdy
b2xsZScsCiAgICAnd2FjaGxlaXR1bmcuZ2VhZW5kZXJ0JzogICAgICAgICAgJ3JvbGxlJywKICAg
ICdoaW53ZWlzLmVyemV1Z3QnOiAgICAgICAgICAgICAgICAnaGlud2VpcycsCiAgICAnaGlud2Vp
cy5rZW5udG5pcyc6ICAgICAgICAgICAgICAgJ2hpbndlaXMnLAogICAgJ3ZlcmFudHdvcnR1bmcu
ZWluZ2VzcHJ1bmdlbic6ICAgICdwbGFudW5nJywKICAgICdiYWNrdXAuZXJzdGVsbHQnOiAgICAg
ICAgICAgICAgICAnYmFja3VwJywKICAgICdiYWNrdXAud2llZGVyaGVyZ2VzdGVsbHQnOiAgICAg
ICAnc3lzdGVtJywKICAgICdiYWNrdXAuZ2Vsb2VzY2h0JzogICAgICAgICAgICAgICAnYmFja3Vw
JywKICAgICdwbGFudW5nLnJlc2V0JzogICAgICAgICAgICAgICAgICAnc3lzdGVtJywKICAgICdw
bGFudW5nLmtvbXBsZXR0LWVyc2V0enQnOiAgICAgICAnc3lzdGVtJywKICAgICdkdW1teWRhdGVu
LmVpbmdlc3BpZWx0JzogICAgICAgICAnc3lzdGVtJywKICAgICdrb21tZW50YXIuaGluenVnZWZ1
ZWd0JzogICAgICAgICAncGxhbnVuZycsCiAgICAna29tbWVudGFyLmdlbG9lc2NodCc6ICAgICAg
ICAgICAgJ3BsYW51bmcnLAogICAgJ3BlcnNvbi5pbi5wYXBpZXJrb3JiJzogICAgICAgICAgICdw
ZXJzb24nLAogICAgJ3BlcnNvbi5lbmRndWVsdGlnLmdlbG9lc2NodCc6ICAgICdwZXJzb24nLAog
ICAgJ3Byb3Rva29sbC5nZWxvZXNjaHQnOiAgICAgICAgICAgICdzeXN0ZW0nLAogICAgJ21pdHRl
aWx1bmcuYW5nZWxlZ3QnOiAgICAgICAgICAgICdhZG1pbicsCiAgICAnbWl0dGVpbHVuZy5nZWFl
bmRlcnQnOiAgICAgICAgICAgJ2FkbWluJywKICAgICdtaXR0ZWlsdW5nLmdlbG9lc2NodCc6ICAg
ICAgICAgICAnYWRtaW4nLAogICAgJ21pdHRlaWx1bmcudXBsb2FkJzogICAgICAgICAgICAgICdh
ZG1pbicsCiAgICAnYXZhdGFyLmdlc2V0enQnOiAgICAgICAgICAgICAgICAgJ3BlcnNvbicsCiAg
ICAnYXZhdGFyLmVudGZlcm50JzogICAgICAgICAgICAgICAgJ3BlcnNvbicKfTsKZnVuY3Rpb24g
YWt0aW9uS2F0ZWdvcmllKGNvZGUpIHsKICAgIGlmIChBS1RJT05fS0FURUdPUklFW2NvZGVdKSBy
ZXR1cm4gQUtUSU9OX0tBVEVHT1JJRVtjb2RlXTsKICAgIC8vIEhldXJpc3RpazogcHJhZWZpeCB2
b3IgZGVtIFB1bmt0IGVudHNjaGVpZGV0LgogICAgdmFyIHByZWYgPSAoY29kZSB8fCAnJykuc3Bs
aXQoJy4nKVswXTsKICAgIGlmIChwcmVmID09PSAnemVsbGUnIHx8IHByZWYgPT09ICd6ZWxsZW4n
IHx8IHByZWYgPT09ICdrb21tZW50YXInKSByZXR1cm4gJ3BsYW51bmcnOwogICAgaWYgKHByZWYg
PT09ICdwZXJzb24nIHx8IHByZWYgPT09ICdwZXJzb25lbicpIHJldHVybiAncGVyc29uJzsKICAg
IGlmIChwcmVmID09PSAnaGlud2VpcycpIHJldHVybiAnaGlud2Vpcyc7CiAgICBpZiAocHJlZiA9
PT0gJ2JhY2t1cCcpIHJldHVybiAnYmFja3VwJzsKICAgIGlmIChwcmVmID09PSAncGxhbnVuZycg
fHwgcHJlZiA9PT0gJ2xvY2snKSByZXR1cm4gJ3N5c3RlbSc7CiAgICByZXR1cm4gJ2FkbWluJzsK
fQoKLy8gSW5pdGlhbGVuIGZ1ZXIgZGVuIFVzZXItQXZhdGFyIGltIExvZ2J1Y2guIEFremVwdGll
cnQgZGllIGJlcmVpdHMgenVtCi8vIEtsYXJuYW1lbiBhdWZnZWxvZXN0ZSBGb3JtICgiUGhpbGlw
cCBSb2VzZ2VuIChGYWNoYXVmc2ljaHQpIiBvZGVyCi8vICJTYW5kcmEgTWVubmVrZSAoZWhlbWFs
aWcpIikgdW5kIGZpbHRlcnQgZGllIEtsYW1tZXItQW5ub3RhdGlvbiByYXVzLgpmdW5jdGlvbiBf
dXNlckluaXRpYWxlbihuYW1lKSB7CiAgICBpZiAoIW5hbWUpIHJldHVybiAnPyc7CiAgICB2YXIg
Y2xlYW4gPSBuYW1lLnJlcGxhY2UoL1xzKlwoLio/XClccyovZywgJycpLnRyaW0oKTsKICAgIHZh
ciB0ZWlsZSA9IGNsZWFuLnNwbGl0KC9ccysvKS5maWx0ZXIoQm9vbGVhbik7CiAgICBpZiAoIXRl
aWxlLmxlbmd0aCkgcmV0dXJuICc/JzsKICAgIHZhciBpID0gdGVpbGVbMF0uY2hhckF0KDApLnRv
VXBwZXJDYXNlKCk7CiAgICBpZiAodGVpbGUubGVuZ3RoID4gMSkgaSArPSB0ZWlsZVt0ZWlsZS5s
ZW5ndGggLSAxXS5jaGFyQXQoMCkudG9VcHBlckNhc2UoKTsKICAgIHJldHVybiBpOwp9CgovLyBa
ZXJsZWd0ICJZWVlZLU1NLUREIEhIOm1tOnNzIiBpbiB7IGRhdHVtOiAiREQuTU0uWVlZWSIsIHpl
aXQ6ICJISDptbSIgfS4KLy8gRnVlciBkYXMgendlaXplaWxpZ2UgVGltZXN0YW1wLUxheW91dCBp
biBkZXIgVGFiZWxsZS4KZnVuY3Rpb24gX3plaXRzdGVtcGVsVGVpbGUodHMpIHsKICAgIGlmICgh
dHMpIHJldHVybiB7IGRhdHVtOiAnJywgemVpdDogJycgfTsKICAgIHZhciBtID0gU3RyaW5nKHRz
KS5tYXRjaCgvXihcZHs0fSktKFxkezJ9KS0oXGR7Mn0pW1xzVF0oXGR7Mn0pOihcZHsyfSkvKTsK
ICAgIGlmICghbSkgcmV0dXJuIHsgZGF0dW06IHRzLCB6ZWl0OiAnJyB9OwogICAgcmV0dXJuIHsg
ZGF0dW06IG1bM10gKyAnLicgKyBtWzJdICsgJy4nICsgbVsxXSwgemVpdDogbVs0XSArICc6JyAr
IG1bNV0gfTsKfQoKLy8gPT09PT0gQmVudXR6ZXItS2xhcm5hbWUgPT09PT0KLy8gU2VydmVyIHNj
aHJlaWJ0ICJET01BSU5cXHVzZXJuYW1lIi4gV2lyIGxvZXNlbiBkaWVzZSBOVy1LZW5udW5nIGdl
Z2VuIGRpZQovLyBQZXJzb25hbHZlcndhbHR1bmcgYXVmIOKAlCB1bmQgZmFsbHMgZG9ydCBuaWNo
dCBnZWZ1bmRlbiwgZ2VnZW4gZGllIEFkbWluLQovLyBMaXN0ZW4gKGZhY2hhdWZzaWNodCwgc3Vw
ZXJVc2VyKS4gQXVjaCBpbmFrdGl2ZS9laGVtYWxpZ2UgUGVyc29uZW4gd2VyZGVuCi8vIGJlcnVl
Y2tzaWNodGlndC4KCmZ1bmN0aW9uIF9rZW5udW5nVmFyaWFudGVuKHMpIHsKICAgIHZhciBvdXQg
PSBbXTsKICAgIGlmICghcykgcmV0dXJuIG91dDsKICAgIHZhciBsID0gcy50b0xvd2VyQ2FzZSgp
OwogICAgb3V0LnB1c2gobCk7CiAgICBpZiAobC5pbmRleE9mKCdcXCcpID49IDApIG91dC5wdXNo
KGwuc3BsaXQoJ1xcJykucG9wKCkpOwogICAgcmV0dXJuIG91dDsKfQoKZnVuY3Rpb24gYmVudXR6
ZXJLbGFybmFtZShzZXJ2ZXJCZW51dHplcikgewogICAgaWYgKCFzZXJ2ZXJCZW51dHplcikgcmV0
dXJuICcodW5iZWthbm50KSc7CiAgICB2YXIgdmFyaWFudGVuID0gX2tlbm51bmdWYXJpYW50ZW4o
c2VydmVyQmVudXR6ZXIpOwoKICAgIC8vIDEpIFBlcnNvbmFsdmVyd2FsdHVuZyDigJQgYXVjaCBp
bmFrdGl2ZS9laGVtYWxpZ2UgYmVydWVja3NpY2h0aWdlbi4KICAgIHZhciBwZXJzb25lbiA9ICha
LnBsYW51bmcgJiYgWi5wbGFudW5nLnBlcnNvbmVuKSB8fCBbXTsKICAgIGZvciAodmFyIGkgPSAw
OyBpIDwgcGVyc29uZW4ubGVuZ3RoOyBpKyspIHsKICAgICAgICB2YXIgcCA9IHBlcnNvbmVuW2ld
OwogICAgICAgIGlmICghcC5ud0tlbm51bmcpIGNvbnRpbnVlOwogICAgICAgIHZhciBwSyA9IFN0
cmluZyhwLm53S2VubnVuZykudG9Mb3dlckNhc2UoKTsKICAgICAgICBpZiAodmFyaWFudGVuLmlu
ZGV4T2YocEspID49IDApIHsKICAgICAgICAgICAgdmFyIG5hbWUgPSAoKHAudm9ybmFtZSA/IHAu
dm9ybmFtZSArICcgJyA6ICcnKSArIChwLm5hbWUgfHwgJycpKS50cmltKCk7CiAgICAgICAgICAg
IGlmICghbmFtZSkgbmFtZSA9IHAubndLZW5udW5nOwogICAgICAgICAgICByZXR1cm4gbmFtZSAr
IChwLmFrdGl2ID09PSBmYWxzZSA/ICcgKGVoZW1hbGlnKScgOiAnJyk7CiAgICAgICAgfQogICAg
fQogICAgLy8gMikgQWRtaW4tTGlzdGVuIEZhY2hhdWZzaWNodCAvIFN1cGVyVXNlcgogICAgdmFy
IGZhID0gKFouYWRtaW4gJiYgWi5hZG1pbi5mYWNoYXVmc2ljaHQpIHx8IFtdOwogICAgZm9yICh2
YXIgaiA9IDA7IGogPCBmYS5sZW5ndGg7IGorKykgewogICAgICAgIGlmIChmYVtqXS5ud0tlbm51
bmcgJiYgdmFyaWFudGVuLmluZGV4T2YoU3RyaW5nKGZhW2pdLm53S2VubnVuZykudG9Mb3dlckNh
c2UoKSkgPj0gMCkgewogICAgICAgICAgICByZXR1cm4gKGZhW2pdLm5hbWUgfHwgZmFbal0ubndL
ZW5udW5nKSArICcgKEZhY2hhdWZzaWNodCknOwogICAgICAgIH0KICAgIH0KICAgIHZhciBzdSA9
IChaLmFkbWluICYmIFouYWRtaW4uc3VwZXJVc2VyKSB8fCBbXTsKICAgIGZvciAodmFyIGsgPSAw
OyBrIDwgc3UubGVuZ3RoOyBrKyspIHsKICAgICAgICBpZiAoc3Vba10ubndLZW5udW5nICYmIHZh
cmlhbnRlbi5pbmRleE9mKFN0cmluZyhzdVtrXS5ud0tlbm51bmcpLnRvTG93ZXJDYXNlKCkpID49
IDApIHsKICAgICAgICAgICAgcmV0dXJuIChzdVtrXS5uYW1lIHx8IHN1W2tdLm53S2VubnVuZykg
KyAnIChTdXBlclVzZXIpJzsKICAgICAgICB9CiAgICB9CiAgICAvLyAzKSBGYWxsYmFjazogUm9o
LUtlbm51bmcgYW56ZWlnZW4sIGFiZXIgRG9tYWluIGFic2NobmVpZGVuCiAgICB2YXIgbCA9IHNl
cnZlckJlbnV0emVyLnRvTG93ZXJDYXNlKCk7CiAgICByZXR1cm4gbC5pbmRleE9mKCdcXCcpID49
IDAgPyBzZXJ2ZXJCZW51dHplci5zcGxpdCgnXFwnKS5wb3AoKSA6IHNlcnZlckJlbnV0emVyOwp9
CgovLyA9PT09PSBEZXRhaWxzLUZvcm1hdHRlciA9PT09PQoKLy8gTWFwcGluZyB0ZWNobmlzY2hl
ciBQZXJzb25lbmZlbGQtS2V5cyBhdWYgZGV1dHNjaGUgTGFiZWxzIGZ1ZXIgZGVuIERpZmYuCnZh
ciBGRUxEX0xBQkVMID0gewogICAgbmFtZTogICAgICAgICAnTmFjaG5hbWUnLAogICAgdm9ybmFt
ZTogICAgICAnVm9ybmFtZScsCiAgICBkaWVuc3RncmFkOiAgICdEaWVuc3RncmFkJywKICAgIGZ1
bmt0aW9uOiAgICAgJ0Z1bmt0aW9uJywKICAgIHJhbmc6ICAgICAgICAgJ1JhbmcnLAogICAgZ3J1
cHBlOiAgICAgICAnRGllbnN0Z3J1cHBlJywKICAgIG9lOiAgICAgICAgICAgJ09FJywKICAgIGRp
ZW5zdG51bW1lcjogJ0RpZW5zdG51bW1lcicsCiAgICB0ZWxlZm9uOiAgICAgICdUZWxlZm9uJywK
ICAgIGVtYWlsOiAgICAgICAgJ0UtTWFpbCcsCiAgICBud0tlbm51bmc6ICAgICdOVy1LZW5udW5n
JywKICAgIGdlYnVydHNkYXR1bTogJ0dlYnVydHNkYXR1bScsCiAgICBha3RpdjogICAgICAgICdB
a3RpdicsCiAgICBwb3NpdGlvbjogICAgICdQb3NpdGlvbicsCiAgICBlZGl0UmVjaHRlOiAgICdF
ZGl0LVJlY2h0ZScKfTsKCmZ1bmN0aW9uIF9kaWZmQW56ZWlnZSh2KSB7CiAgICBpZiAodiA9PSBu
dWxsIHx8IHYgPT09ICcnKSByZXR1cm4gJyhsZWVyKSc7CiAgICBpZiAodHlwZW9mIHYgPT09ICdi
b29sZWFuJykgcmV0dXJuIHYgPyAnSmEnIDogJ05laW4nOwogICAgaWYgKHR5cGVvZiB2ID09PSAn
b2JqZWN0JykgewogICAgICAgIHRyeSB7IHJldHVybiBKU09OLnN0cmluZ2lmeSh2KTsgfSBjYXRj
aCAoXykgeyByZXR1cm4gU3RyaW5nKHYpOyB9CiAgICB9CiAgICByZXR1cm4gU3RyaW5nKHYpOwp9
CgpmdW5jdGlvbiBfcGVyc29uTGFiZWwocGVyc29uSWQsIHBNYXApIHsKICAgIGlmICghcGVyc29u
SWQpIHJldHVybiAnJzsKICAgIHJldHVybiBwTWFwW1N0cmluZyhwZXJzb25JZCldIHx8ICgnUGVy
c29uIElEICcgKyBwZXJzb25JZCk7Cn0KCmZ1bmN0aW9uIF9rdWVyemVUZXh0KHMsIG1heCkgewog
ICAgaWYgKCFzKSByZXR1cm4gJyc7CiAgICBzID0gU3RyaW5nKHMpLnJlcGxhY2UoL1xzKy9nLCAn
ICcpOwogICAgaWYgKHMubGVuZ3RoIDw9IG1heCkgcmV0dXJuIHM7CiAgICByZXR1cm4gcy5zbGlj
ZSgwLCBtYXggLSAxKSArICfigKYnOwp9CgovLyBGb3JtYXRpZXJ0IGVpbiBlZGl0UmVjaHRlLU9i
amVrdCAoe3BlcnNvbmVuSWRzOltdLGRpZW5zdGdydXBwZW46W10sc3RhbmRvcnRlOltdfSkKLy8g
YWxzIEtsYXJ0ZXh0LUxpc3RlLCBzdGF0dCByb2hlbiBKU09OLUR1bXAgenUgemVpZ2VuLiBQZXJz
b25lbi1JRHMgd2VyZGVuCi8vIGdlZ2VuIGRpZSBQZXJzb25hbHZlcndhbHR1bmcgYXVmZ2Vsb2Vz
dC4gTGVlcmVyIEluaGFsdCA9ICLigJQiLgpmdW5jdGlvbiBfZWRpdFJlY2h0ZUt1cnoob2JqLCBw
TWFwKSB7CiAgICBpZiAoIW9iaiB8fCB0eXBlb2Ygb2JqICE9PSAnb2JqZWN0JykgcmV0dXJuICc8
aT7igJQ8L2k+JzsKICAgIHZhciB0ZWlsZSA9IFtdOwogICAgdmFyIHBJZHMgPSBBcnJheS5pc0Fy
cmF5KG9iai5wZXJzb25lbklkcykgPyBvYmoucGVyc29uZW5JZHMgOiBbXTsKICAgIHZhciBnciAg
ID0gQXJyYXkuaXNBcnJheShvYmouZGllbnN0Z3J1cHBlbikgPyBvYmouZGllbnN0Z3J1cHBlbiA6
IFtdOwogICAgdmFyIHN0ICAgPSBBcnJheS5pc0FycmF5KG9iai5zdGFuZG9ydGUpID8gb2JqLnN0
YW5kb3J0ZSA6IFtdOwogICAgaWYgKHBJZHMubGVuZ3RoKSB7CiAgICAgICAgdmFyIG5hbWVuID0g
cElkcy5tYXAoZnVuY3Rpb24oaWQpIHsKICAgICAgICAgICAgdmFyIG4gPSAocE1hcCB8fCB7fSlb
U3RyaW5nKGlkKV07CiAgICAgICAgICAgIHJldHVybiBuID8gbi5zcGxpdCgnLCcpWzBdLnRyaW0o
KSA6ICcjJyArIGlkOyAgIC8vIG51ciBOYWNobmFtZSwga29tcGFrdAogICAgICAgIH0pOwogICAg
ICAgIHRlaWxlLnB1c2gocElkcy5sZW5ndGggKyAnIFBlcnNvbicgKyAocElkcy5sZW5ndGggPT09
IDEgPyAnJyA6ICdlbicpICsKICAgICAgICAgICAgICAgICAgICcgKCcgKyBlc2NhcGVIVE1MKG5h
bWVuLmpvaW4oJywgJykpICsgJyknKTsKICAgIH0KICAgIGlmIChnci5sZW5ndGgpIHRlaWxlLnB1
c2goZ3IubGVuZ3RoICsgJyBEaWVuc3RncnVwcGUnICsgKGdyLmxlbmd0aCA9PT0gMSA/ICcnIDog
J24nKSArCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICcgKCcgKyBlc2NhcGVIVE1MKGdy
LmpvaW4oJywgJykpICsgJyknKTsKICAgIGlmIChzdC5sZW5ndGgpIHRlaWxlLnB1c2goc3QubGVu
Z3RoICsgJyBTdGFuZG9ydCcgKyAoc3QubGVuZ3RoID09PSAxID8gJ2UnIDogJ2UnKSArCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICcgKCcgKyBlc2NhcGVIVE1MKHN0LmpvaW4oJywgJykp
ICsgJyknKTsKICAgIGlmICghdGVpbGUubGVuZ3RoKSByZXR1cm4gJzxpPuKAlDwvaT4nOwogICAg
cmV0dXJuIHRlaWxlLmpvaW4oJywgJyk7Cn0KZnVuY3Rpb24gX2VkaXRSZWNodGVEaWZmKGFsdCwg
bmV1LCBwTWFwKSB7CiAgICByZXR1cm4gX2VkaXRSZWNodGVLdXJ6KGFsdCwgcE1hcCkgKyAnICZy
YXJyOyAnICsgX2VkaXRSZWNodGVLdXJ6KG5ldSwgcE1hcCk7Cn0KCi8vIEhlbGZlcjogUGx1cmFs
ICJFaW50cmFnL0VpbnRyw6RnZSIgbWl0IGtvcnJla3RlbSBkZXV0c2NoZW4gUGx1cmFsLgpmdW5j
dGlvbiBfZWludHJhZ1BsdXJhbChuKSB7CiAgICBpZiAobiA9PSBudWxsKSByZXR1cm4gJyc7CiAg
ICBuID0gTnVtYmVyKG4pOwogICAgaWYgKG4gPT09IDEpIHJldHVybiAnMSBFaW50cmFnJzsKICAg
IHJldHVybiBuICsgJyBFaW50csOkZ2UnOwp9CgpmdW5jdGlvbiBkZXRhaWxzSHRtbChlLCBwTWFw
KSB7CiAgICB2YXIgYWt0aW9uID0gZS5ha3Rpb24gfHwgJyc7CiAgICBpZiAoYWt0aW9uID09PSAn
emVsbGUuZ2VhZW5kZXJ0JykgewogICAgICAgIHJldHVybiBfcGVyc29uTGFiZWwoZS5wZXJzb25J
ZCwgcE1hcCkgKyAnIGFtICcgKyBkYXR1bUZvcm1hdERFKGUuZGF0dW0pICsKICAgICAgICAgICAg
JzogPGNvZGU+JyArIGVzY2FwZUhUTUwoZS5hbHRlcldlcnQgfHwgJyhsZWVyKScpICsgJzwvY29k
ZT4gJnJhcnI7IDxjb2RlPicgKyBlc2NhcGVIVE1MKGUubmV1ZXJXZXJ0IHx8ICcobGVlciknKSAr
ICc8L2NvZGU+JzsKICAgIH0KICAgIGlmIChha3Rpb24gPT09ICdrb21tZW50YXIuZ2VhZW5kZXJ0
JykgewogICAgICAgIHZhciBhbHQgPSBlLmFsdGVyVGV4dCB8fCBlLnRleHQgfHwgJyc7ICAgLy8g
J3RleHQnID0gYWx0ZXMgU2NoZW1hCiAgICAgICAgdmFyIG5ldSA9IGUubmV1ZXJUZXh0IHx8ICcn
OwogICAgICAgIHZhciB6aWVsID0gX3BlcnNvbkxhYmVsKGUucGVyc29uSWQsIHBNYXApICsgJyBh
bSAnICsgZGF0dW1Gb3JtYXRERShlLmRhdHVtKTsKICAgICAgICBpZiAoIWFsdCAmJiBuZXUpIHJl
dHVybiB6aWVsICsgJzogbmV1IOKAnicgKyBlc2NhcGVIVE1MKF9rdWVyemVUZXh0KG5ldSwgODAp
KSArICciJzsKICAgICAgICBpZiAoYWx0ICYmICFuZXUpIHJldHVybiB6aWVsICsgJzogZ2Vsw7Zz
Y2h0ICh3YXIg4oCeJyArIGVzY2FwZUhUTUwoX2t1ZXJ6ZVRleHQoYWx0LCA4MCkpICsgJyIpJzsK
ICAgICAgICBpZiAoYWx0ICYmIG5ldSkgIHJldHVybiB6aWVsICsgJzog4oCeJyArIGVzY2FwZUhU
TUwoX2t1ZXJ6ZVRleHQoYWx0LCA2MCkpICsgJyIgJnJhcnI7IOKAnicgKyBlc2NhcGVIVE1MKF9r
dWVyemVUZXh0KG5ldSwgNjApKSArICciJzsKICAgICAgICByZXR1cm4gemllbCArICcg4oCUIEtv
bW1lbnRhcic7CiAgICB9CiAgICBpZiAoYWt0aW9uID09PSAna29tbWVudGFyLmhpbnp1Z2VmdWVn
dCcgfHwgYWt0aW9uID09PSAna29tbWVudGFyLmdlbG9lc2NodCcpIHsKICAgICAgICAvLyBTZXJ2
ZXIgc2NocmVpYnQgbnVyIGVpbmUgVm9yc2NoYXUgKFZvbGx0ZXh0IGJsZWlidCBpbiBwbGFudW5n
Lmpzb24pLgogICAgICAgIHZhciBremllbCA9IF9wZXJzb25MYWJlbChlLnBlcnNvbklkLCBwTWFw
KSArIChlLmRhdHVtID8gJyBhbSAnICsgZGF0dW1Gb3JtYXRERShlLmRhdHVtKSA6ICcnKTsKICAg
ICAgICB2YXIgdm9yc2NoYXUgPSBlLnRleHRWb3JzY2hhdSA/ICfigJ4nICsgZXNjYXBlSFRNTChl
LnRleHRWb3JzY2hhdSkgKyAnIicgOiAnJzsKICAgICAgICBpZiAoYWt0aW9uID09PSAna29tbWVu
dGFyLmdlbG9lc2NodCcpIHsKICAgICAgICAgICAgcmV0dXJuIGt6aWVsICsgJzogS29tbWVudGFy
IGdlbMO2c2NodCcgKyAodm9yc2NoYXUgPyAnICh3YXIgJyArIHZvcnNjaGF1ICsgJyknIDogJycp
OwogICAgICAgIH0KICAgICAgICByZXR1cm4ga3ppZWwgKyAnOiBuZXVlciBLb21tZW50YXInICsg
KHZvcnNjaGF1ID8gJyAnICsgdm9yc2NoYXUgOiAnJyk7CiAgICB9CiAgICBpZiAoYWt0aW9uID09
PSAncGVyc29uLmluLnBhcGllcmtvcmInKSB7CiAgICAgICAgdmFyIHBrTGFiZWwgPSBlLm5hbWUg
PyBlc2NhcGVIVE1MKGUubmFtZSkgOiBfcGVyc29uTGFiZWwoZS5wZXJzb25JZCwgcE1hcCk7CiAg
ICAgICAgcmV0dXJuIHBrTGFiZWwgKyAnIGluIGRlbiBQYXBpZXJrb3JiIHZlcnNjaG9iZW4gKHdp
ZWRlcmhlcnN0ZWxsYmFyKSc7CiAgICB9CiAgICBpZiAoYWt0aW9uID09PSAncGVyc29uLmVuZGd1
ZWx0aWcuZ2Vsb2VzY2h0JykgewogICAgICAgIHZhciBlZ0xhYmVsID0gZS5uYW1lID8gZXNjYXBl
SFRNTChlLm5hbWUpIDogX3BlcnNvbkxhYmVsKGUucGVyc29uSWQsIHBNYXApOwogICAgICAgIHJl
dHVybiBlZ0xhYmVsICsgJyBlbmRnw7xsdGlnIGdlbMO2c2NodCc7CiAgICB9CiAgICBpZiAoYWt0
aW9uID09PSAncHJvdG9rb2xsLmdlbG9lc2NodCcpIHsKICAgICAgICB2YXIgYW56ID0gKGUuYW56
YWhsICE9IG51bGwpID8gZS5hbnphaGwgOiAoZS5nZWxvZXNjaHQgIT0gbnVsbCA/IGUuZ2Vsb2Vz
Y2h0IDogbnVsbCk7CiAgICAgICAgcmV0dXJuIGFueiAhPSBudWxsID8gKGFueiArICcgUHJvdG9r
b2xsLUVpbnRyw6RnZSBnZWzDtnNjaHQnKSA6ICdMb2didWNoLVByb3Rva29sbCBnZWxlZXJ0JzsK
ICAgIH0KICAgIGlmIChha3Rpb24gPT09ICdtaXR0ZWlsdW5nLmFuZ2VsZWd0JyB8fCBha3Rpb24g
PT09ICdtaXR0ZWlsdW5nLmdlYWVuZGVydCcgfHwgYWt0aW9uID09PSAnbWl0dGVpbHVuZy5nZWxv
ZXNjaHQnKSB7CiAgICAgICAgdmFyIG1UaXRlbCA9IGUudGl0ZWwgPyAn4oCeJyArIGVzY2FwZUhU
TUwoZS50aXRlbCkgKyAnIicgOiAoZS5pZCAhPSBudWxsID8gJyMnICsgZXNjYXBlSFRNTChTdHJp
bmcoZS5pZCkpIDogJycpOwogICAgICAgIHJldHVybiBtVGl0ZWwgfHwgJ01pdHRlaWx1bmcnOwog
ICAgfQogICAgaWYgKGFrdGlvbiA9PT0gJ21pdHRlaWx1bmcudXBsb2FkJykgewogICAgICAgIHJl
dHVybiAoZS5hcnQgPyBlc2NhcGVIVE1MKGUuYXJ0KSArICc6ICcgOiAnJykgKyBlc2NhcGVIVE1M
KGUuZGF0ZWkgfHwgJycpICsKICAgICAgICAgICAgKGUuYnl0ZXMgIT0gbnVsbCA/ICcgKCcgKyBN
YXRoLnJvdW5kKGUuYnl0ZXMgLyAxMDI0KSArICcgS0IpJyA6ICcnKTsKICAgIH0KICAgIGlmIChh
a3Rpb24gPT09ICdhdmF0YXIuZ2VzZXR6dCcgfHwgYWt0aW9uID09PSAnYXZhdGFyLmVudGZlcm50
JykgewogICAgICAgIHZhciBhdkxhYmVsID0gX3BlcnNvbkxhYmVsKGUucGVyc29uSWQsIHBNYXAp
OwogICAgICAgIHJldHVybiBhdkxhYmVsICsgKGFrdGlvbiA9PT0gJ2F2YXRhci5nZXNldHp0JyA/
ICcg4oCUIEF2YXRhciBnZXNldHp0JyA6ICcg4oCUIEF2YXRhciBlbnRmZXJudCcpOwogICAgfQog
ICAgaWYgKGFrdGlvbiA9PT0gJ3BlcnNvbi5hbmdlbGVndCcpIHsKICAgICAgICB2YXIgZWlucmVp
aHR4dCA9ICcnOwogICAgICAgIGlmIChlLmVpbnJlaWhlbiAmJiBlLmVpbnJlaWhlbiAhPT0gJ3Vu
dGVuJykgZWlucmVpaHR4dCA9ICcgKCcgKyBlLmVpbnJlaWhlbiArIChlLnBvc2l0aW9uICE9IG51
bGwgPyAnIFBvc2l0aW9uICcgKyBlLnBvc2l0aW9uIDogJycpICsgJyknOwogICAgICAgIHJldHVy
biAnTmV1ZSBQZXJzb246ICcgKyBlc2NhcGVIVE1MKGUubmFtZSB8fCAnKG9obmUgTmFtZW4pJykg
KyBlaW5yZWlodHh0OwogICAgfQogICAgaWYgKGFrdGlvbiA9PT0gJ3BlcnNvbi5nZWFlbmRlcnQn
KSB7CiAgICAgICAgdmFyIGxhYmVsID0gZS5uYW1lID8gZXNjYXBlSFRNTChlLm5hbWUpIDogX3Bl
cnNvbkxhYmVsKGUucGVyc29uSWQsIHBNYXApOwogICAgICAgIGlmIChlLmdlYWVuZGVydCAmJiB0
eXBlb2YgZS5nZWFlbmRlcnQgPT09ICdvYmplY3QnICYmIE9iamVjdC5rZXlzKGUuZ2VhZW5kZXJ0
KS5sZW5ndGgpIHsKICAgICAgICAgICAgdmFyIHRlaWxlID0gT2JqZWN0LmtleXMoZS5nZWFlbmRl
cnQpLm1hcChmdW5jdGlvbihmZWxkKSB7CiAgICAgICAgICAgICAgICB2YXIgZCA9IGUuZ2VhZW5k
ZXJ0W2ZlbGRdIHx8IHt9OwogICAgICAgICAgICAgICAgdmFyIGZsID0gRkVMRF9MQUJFTFtmZWxk
XSB8fCBmZWxkOwogICAgICAgICAgICAgICAgLy8gZWRpdFJlY2h0ZSBpc3QgZWluIE9iamVrdCBt
aXQgcGVyc29uZW5JZHMvZGllbnN0Z3J1cHBlbi9zdGFuZG9ydGUg4oCUCiAgICAgICAgICAgICAg
ICAvLyBlaW4gcm9oZXIgSlNPTi1EdW1wIHdhZXJlIHVubGVzZXJsaWNoLiBXaXIgdWViZXJzZXR6
ZW4gZGVuCiAgICAgICAgICAgICAgICAvLyBEaWZmIGluIGVpbmUgS2xhcnRleHQtWnVzYW1tZW5m
YXNzdW5nIG1pdCBQZXJzb25lbi1OYW1lbi4KICAgICAgICAgICAgICAgIGlmIChmZWxkID09PSAn
ZWRpdFJlY2h0ZScpIHsKICAgICAgICAgICAgICAgICAgICByZXR1cm4gJzxiPicgKyBlc2NhcGVI
VE1MKGZsKSArICc6PC9iPiAnICsgX2VkaXRSZWNodGVEaWZmKGQuYWx0LCBkLm5ldSwgcE1hcCk7
CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICByZXR1cm4gJzxiPicgKyBlc2NhcGVI
VE1MKGZsKSArICc6PC9iPiA8Y29kZT4nICsKICAgICAgICAgICAgICAgICAgICBlc2NhcGVIVE1M
KF9kaWZmQW56ZWlnZShkLmFsdCkpICsgJzwvY29kZT4gJnJhcnI7IDxjb2RlPicgKwogICAgICAg
ICAgICAgICAgICAgIGVzY2FwZUhUTUwoX2RpZmZBbnplaWdlKGQubmV1KSkgKyAnPC9jb2RlPic7
CiAgICAgICAgICAgIH0pOwogICAgICAgICAgICByZXR1cm4gbGFiZWwgKyAnICZtZGFzaDsgJyAr
IHRlaWxlLmpvaW4oJyAmbWlkZG90OyAnKTsKICAgICAgICB9CiAgICAgICAgcmV0dXJuICdQZXJz
b24gJyArIGxhYmVsICsgJyBnZcOkbmRlcnQnOwogICAgfQogICAgaWYgKGFrdGlvbiA9PT0gJ2hp
bndlaXMuZXJ6ZXVndCcpIHsKICAgICAgICB2YXIgdHlwTGFiZWwgPSBfaGlud2Vpc1R5cExhYmVs
KGUudHlwKTsKICAgICAgICB2YXIgZW1wZlRleHQgPSAnJzsKICAgICAgICBpZiAodHlwZW9mIGUu
ZW1wZmFlbmdlciA9PT0gJ251bWJlcicpIHsKICAgICAgICAgICAgZW1wZlRleHQgPSBlLmVtcGZh
ZW5nZXIgKyAnIEVtcGbDpG5nZXInOwogICAgICAgIH0gZWxzZSBpZiAoQXJyYXkuaXNBcnJheShl
LmVtcGZhZW5nZXIpKSB7CiAgICAgICAgICAgIGVtcGZUZXh0ID0gZS5lbXBmYWVuZ2VyLmxlbmd0
aCArICcgRW1wZsOkbmdlcic7CiAgICAgICAgfQogICAgICAgIHZhciB0ZWlsZSA9IFtdOwogICAg
ICAgIGlmICh0eXBMYWJlbCkgdGVpbGUucHVzaCgnPGI+JyArIGVzY2FwZUhUTUwodHlwTGFiZWwp
ICsgJzwvYj4nKTsKICAgICAgICBpZiAoZW1wZlRleHQpIHRlaWxlLnB1c2goZW1wZlRleHQpOwog
ICAgICAgIHJldHVybiB0ZWlsZS5qb2luKCcgJm1kYXNoOyAnKTsKICAgIH0KICAgIGlmIChha3Rp
b24gPT09ICd2ZXJhbnR3b3J0dW5nLmVpbmdlc3BydW5nZW4nKSB7CiAgICAgICAgdmFyIHBBdWZy
dWVjayA9IF9wZXJzb25MYWJlbChlLnBlcnNvbklkLCBwTWFwKTsKICAgICAgICB2YXIgc0xldHRl
ciA9IChlLnNjaGljaHQgfHwgJycpLmNoYXJBdCgwKTsKICAgICAgICB2YXIgc05hbWUgPSB7IEY6
ICdGcsO8aHNjaGljaHQnLCBTOiAnU3DDpHRzY2hpY2h0JywgTjogJ05hY2h0c2NoaWNodCcgfVtz
TGV0dGVyXSB8fCBzTGV0dGVyOwogICAgICAgIHZhciBzdHVmZVR4dCA9IGUuc3R1ZmUgPyAoZS5z
dHVmZSArICcuIFZlcmFudHdvcnR1bmcnKSA6ICdWZXJhbnR3b3J0dW5nJzsKICAgICAgICB2YXIg
ZGF0dW1UeHQgPSBlLmRhdHVtID8gZGF0dW1Gb3JtYXRERShlLmRhdHVtKSA6ICcnOwogICAgICAg
IHZhciB2b3JoaW5UeHQgPSAoZS52b3JoZXJXZXJ0ICE9IG51bGwgJiYgZS52b3JoZXJXZXJ0ICE9
PSAnJykKICAgICAgICAgICAgPyAnICh2b3JoZXIgPGNvZGU+JyArIGVzY2FwZUhUTUwoZS52b3Jo
ZXJXZXJ0KSArICc8L2NvZGU+KScKICAgICAgICAgICAgOiAnICh2b3JoZXIgbmljaHRzIGVpbmdl
dHJhZ2VuKSc7CiAgICAgICAgdmFyIHRlaWxlID0gWyc8Yj4nICsgZXNjYXBlSFRNTChwQXVmcnVl
Y2spICsgJzwvYj4nXTsKICAgICAgICB0ZWlsZS5wdXNoKCdhdWZnZXLDvGNrdCBpbiAnICsgc3R1
ZmVUeHQgKyAnICcgKyBlc2NhcGVIVE1MKHNOYW1lKSk7CiAgICAgICAgaWYgKGRhdHVtVHh0KSB0
ZWlsZS5wdXNoKCdhbSAnICsgZXNjYXBlSFRNTChkYXR1bVR4dCkpOwogICAgICAgIHJldHVybiB0
ZWlsZS5qb2luKCcgJykgKyB2b3JoaW5UeHQ7CiAgICB9CiAgICBpZiAoYWt0aW9uID09PSAnaGlu
d2Vpcy5rZW5udG5pcycpIHsKICAgICAgICAvLyBXaXIgdmVyc3VjaGVuLCBkZW4gaGlud2Vpc0lk
IG5vY2ggaW4gWi5oaW53ZWlzZSAoYWt0dWVsbGUgTGlzdGUpCiAgICAgICAgLy8gYXVmenVsb2Vz
ZW4uIFdlbm4gc2Nob24gd2VnZ2VwcnVudCwgZmFsbGVuIHdpciBhdWYgIkhpbndlaXMgI04iIHp1
cnVlY2suCiAgICAgICAgdmFyIHR5cExhYmVsMiA9IF9oaW53ZWlzVHlwTGFiZWwoZS50eXApOwog
ICAgICAgIHZhciBoaWQgPSBlLmhpbndlaXNJZCAhPSBudWxsID8gZS5oaW53ZWlzSWQgOiAnJzsK
ICAgICAgICBpZiAoIXR5cExhYmVsMiAmJiBoaWQgIT09ICcnKSB7CiAgICAgICAgICAgIHZhciBs
aXN0ZSA9IChaLmhpbndlaXNlIHx8IFtdKTsKICAgICAgICAgICAgZm9yICh2YXIgaWggPSAwOyBp
aCA8IGxpc3RlLmxlbmd0aDsgaWgrKykgewogICAgICAgICAgICAgICAgaWYgKFN0cmluZyhsaXN0
ZVtpaF0uaWQpID09PSBTdHJpbmcoaGlkKSkgeyB0eXBMYWJlbDIgPSBfaGlud2Vpc1R5cExhYmVs
KGxpc3RlW2loXS50eXApOyBicmVhazsgfQogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAg
IHZhciBiYXNpcyA9IHR5cExhYmVsMiA/ICgnPGI+JyArIGVzY2FwZUhUTUwodHlwTGFiZWwyKSAr
ICc8L2I+JykgOiAnJzsKICAgICAgICBpZiAoaGlkICE9PSAnJykgYmFzaXMgKz0gKGJhc2lzID8g
JyAmbWRhc2g7ICcgOiAnJykgKyAnSGlud2VpcyAjJyArIGVzY2FwZUhUTUwoU3RyaW5nKGhpZCkp
OwogICAgICAgIHJldHVybiBiYXNpcyB8fCAnSGlud2VpcyBxdWl0dGllcnQnOwogICAgfQogICAg
aWYgKGFrdGlvbiA9PT0gJ3plbGxlbi5idWxrLmdlYWVuZGVydCcpIHsKICAgICAgICB2YXIgd2hv
ID0gX3BlcnNvbkxhYmVsKGUucGVyc29uSWQsIHBNYXApOwogICAgICAgIHZhciB3ZXJ0VHh0ID0g
ZS53ZXJ0ID8gJzxjb2RlPicgKyBlc2NhcGVIVE1MKGUud2VydCkgKyAnPC9jb2RlPicgOiAnPGk+
KGxlZXIpPC9pPic7CiAgICAgICAgdmFyIHNwYW5uZSA9ICcnOwogICAgICAgIGlmIChlLmVyc3Rl
clRhZyAmJiBlLmxldHp0ZXJUYWcpIHsKICAgICAgICAgICAgc3Bhbm5lID0gKGUuZXJzdGVyVGFn
ID09PSBlLmxldHp0ZXJUYWcpCiAgICAgICAgICAgICAgICA/IGRhdHVtRm9ybWF0REUoZS5lcnN0
ZXJUYWcpCiAgICAgICAgICAgICAgICA6IGRhdHVtRm9ybWF0REUoZS5lcnN0ZXJUYWcpICsgJyBi
aXMgJyArIGRhdHVtRm9ybWF0REUoZS5sZXR6dGVyVGFnKTsKICAgICAgICB9CiAgICAgICAgdmFy
IHRlaWxlID0gW107CiAgICAgICAgaWYgKHdobykgdGVpbGUucHVzaCh3aG8pOwogICAgICAgIGlm
IChlLmFuemFobCAhPSBudWxsKSB0ZWlsZS5wdXNoKGUuYW56YWhsICsgJyBUYWcnICsgKGUuYW56
YWhsICE9PSAxID8gJ2UnIDogJycpKTsKICAgICAgICBpZiAoc3Bhbm5lKSB0ZWlsZS5wdXNoKHNw
YW5uZSk7CiAgICAgICAgdGVpbGUucHVzaCgn4oaSICcgKyB3ZXJ0VHh0KTsKICAgICAgICBpZiAo
ZS5hYmdlbGVobnQpIHRlaWxlLnB1c2goZS5hYmdlbGVobnQgKyAnIGFiZ2VsZWhudCcpOwogICAg
ICAgIHJldHVybiB0ZWlsZS5qb2luKCcgwrcgJyk7CiAgICB9CiAgICBpZiAoYWt0aW9uID09PSAn
dW50ZXJiZXNldHp1bmcucXVpdHRpZXJ0JykgewogICAgICAgIHZhciBwID0gX3BlcnNvbkxhYmVs
KGUucGVyc29uSWQsIHBNYXApOwogICAgICAgIHZhciBzID0gZS5zY2hpY2h0IHx8ICcnOwogICAg
ICAgIHJldHVybiBwICsgJyBhbSAnICsgZGF0dW1Gb3JtYXRERShlLmRhdHVtKSArICcgKCcgKyBl
c2NhcGVIVE1MKHMpICsgJykg4oCUICcgKwogICAgICAgICAgICAnPGNvZGU+JyArIGVzY2FwZUhU
TUwoZS5hbHRlcldlcnQgfHwgJyhsZWVyKScpICsgJzwvY29kZT4gJnJhcnI7IDxjb2RlPicgKyBl
c2NhcGVIVE1MKGUubmV1ZXJXZXJ0IHx8ICcobGVlciknKSArICc8L2NvZGU+JzsKICAgIH0KICAg
IGlmIChha3Rpb24gPT09ICdsb2NrLmZvcmNlJykgewogICAgICAgIHJldHVybiBfcGVyc29uTGFi
ZWwoZS5wZXJzb25JZCwgcE1hcCkgKyAnIGFtICcgKyBkYXR1bUZvcm1hdERFKGUuZGF0dW0pICsg
JyDigJQgRWRpdC1Mb2NrIHBlciAnICsgZXNjYXBlSFRNTChlLnJvbGxlIHx8ICdGb3JjZScpICsg
JyDDvGJlcm5vbW1lbic7CiAgICB9CiAgICBpZiAoYWt0aW9uID09PSAnYmFja3VwLmVyc3RlbGx0
JykgewogICAgICAgIHJldHVybiBlc2NhcGVIVE1MKGUuZGF0ZWluYW1lIHx8ICcnKSArIChlLmlu
aGFsdCA/ICcgKCcgKyBlc2NhcGVIVE1MKGUuaW5oYWx0KSArICcpJyA6ICcnKTsKICAgIH0KICAg
IGlmIChha3Rpb24gPT09ICdiYWNrdXAud2llZGVyaGVyZ2VzdGVsbHQnKSB7CiAgICAgICAgcmV0
dXJuICdBdXMg4oCeJyArIGVzY2FwZUhUTUwoZS5xdWVsbGUgfHwgJycpICsgJyIg4oCUIFNpY2hl
cnVuZyDigJ4nICsgZXNjYXBlSFRNTChlLnNpY2hlcnVuZyB8fCAnJykgKyAnIiDigJQgSW5oYWx0
OiAnICsgZXNjYXBlSFRNTChlLmluaGFsdCB8fCAnJyk7CiAgICB9CiAgICBpZiAoYWt0aW9uID09
PSAnYmFja3VwLmdlbG9lc2NodCcpIHsKICAgICAgICByZXR1cm4gZXNjYXBlSFRNTChlLmRhdGVp
bmFtZSB8fCAnJyk7CiAgICB9CiAgICBpZiAoYWt0aW9uID09PSAnZmFjaGF1ZnNpY2h0LmdlYWVu
ZGVydCcgfHwgYWt0aW9uID09PSAnZGlyZWt0aW9uc2xlaXR1bmcuZ2VhZW5kZXJ0JyB8fAogICAg
ICAgIGFrdGlvbiA9PT0gJ2Z1ZWhydW5nc3N0ZWxsZS5nZWFlbmRlcnQnIHx8IGFrdGlvbiA9PT0g
J3dhY2hsZWl0dW5nLmdlYWVuZGVydCcpIHsKICAgICAgICBpZiAoZS5hbnphaGwgPT0gbnVsbCkg
cmV0dXJuICcnOwogICAgICAgIHJldHVybiBlLmFuemFobCA9PT0gMCA/ICdMaXN0ZSBrb21wbGV0
dCBnZWxlZXJ0JyA6ICdMaXN0ZSBnZXNwZWljaGVydDogJyArIF9laW50cmFnUGx1cmFsKGUuYW56
YWhsKTsKICAgIH0KICAgIGlmIChha3Rpb24gPT09ICdzdXBlclVzZXIuZ2VhZW5kZXJ0JyB8fCBh
a3Rpb24gPT09ICdzdXBlcnVzZXIuZ2VhZW5kZXJ0JykgewogICAgICAgIGlmIChlLmFuemFobCA9
PSBudWxsKSByZXR1cm4gJyc7CiAgICAgICAgcmV0dXJuIGUuYW56YWhsID09PSAwID8gJ0xpc3Rl
IGtvbXBsZXR0IGdlbGVlcnQnIDogJ0xpc3RlIGdlc3BlaWNoZXJ0OiAnICsgX2VpbnRyYWdQbHVy
YWwoZS5hbnphaGwpOwogICAgfQogICAgaWYgKGFrdGlvbiA9PT0gJ2VtYWlsdHJpZ2dlci5nZWFl
bmRlcnQnKSB7CiAgICAgICAgaWYgKGUuYW56YWhsX3RyaWdnZXIgPT0gbnVsbCkgcmV0dXJuICcn
OwogICAgICAgIHJldHVybiBlLmFuemFobF90cmlnZ2VyICsgJyBUcmlnZ2VyIGdlc3BlaWNoZXJ0
JzsKICAgIH0KICAgIGlmIChha3Rpb24gPT09ICdwbGFudW5nLmtvbXBsZXR0LWVyc2V0enQnKSB7
CiAgICAgICAgdmFyIHRlaWxlID0gW107CiAgICAgICAgaWYgKGUuZWludHJhZWdlICE9IG51bGwp
IHRlaWxlLnB1c2goZS5laW50cmFlZ2UgKyAnIEVpbnRyw6RnZScpOwogICAgICAgIGlmIChlLmtv
bW1lbnRhcmUgIT0gbnVsbCkgdGVpbGUucHVzaChlLmtvbW1lbnRhcmUgKyAnIEtvbW1lbnRhcmUn
KTsKICAgICAgICBpZiAoZS5iYWNrdXApIHRlaWxlLnB1c2goJ1NpY2hlcnVuZzogJyArIGVzY2Fw
ZUhUTUwoZS5iYWNrdXApKTsKICAgICAgICByZXR1cm4gdGVpbGUuam9pbignIMK3ICcpOwogICAg
fQogICAgaWYgKGFrdGlvbiA9PT0gJ2R1bW15ZGF0ZW4uZWluZ2VzcGllbHQnKSB7CiAgICAgICAg
dmFyIHQyID0gW107CiAgICAgICAgaWYgKGUuZWludHJhZWdlICE9IG51bGwpIHQyLnB1c2goZS5l
aW50cmFlZ2UgKyAnIEVpbnRyw6RnZScpOwogICAgICAgIGlmIChlLmJhY2t1cCkgdDIucHVzaCgn
U2ljaGVydW5nOiAnICsgZXNjYXBlSFRNTChlLmJhY2t1cCkpOwogICAgICAgIHJldHVybiB0Mi5q
b2luKCcgwrcgJyk7CiAgICB9CiAgICBpZiAoYWt0aW9uID09PSAncGxhbnVuZy5yZXNldCcpIHsK
ICAgICAgICByZXR1cm4gZS5iYWNrdXAgPyAnU2ljaGVydW5nOiAnICsgZXNjYXBlSFRNTChlLmJh
Y2t1cCkgOiAnJzsKICAgIH0KICAgIC8vIEdlbmVyaXNjaGVyIEZhbGxiYWNrOiBnZXplaWd0ZSBG
ZWxkZXIgYXVzc2VyIGRlbiBTdGFuZGFyZC1XcmFwcGVyLUZlbGRlcm4KICAgIHZhciBza2lwID0g
eyBha3Rpb246IDEsIHplaXRzdGVtcGVsOiAxLCBiZW51dHplcjogMSB9OwogICAgdmFyIHBhaXJz
ID0gW107CiAgICBPYmplY3Qua2V5cyhlIHx8IHt9KS5mb3JFYWNoKGZ1bmN0aW9uKGspIHsKICAg
ICAgICBpZiAoc2tpcFtrXSkgcmV0dXJuOwogICAgICAgIHZhciB2ID0gZVtrXTsKICAgICAgICBp
ZiAodiA9PSBudWxsIHx8IHYgPT09ICcnKSByZXR1cm47CiAgICAgICAgaWYgKHR5cGVvZiB2ID09
PSAnb2JqZWN0JykgcmV0dXJuOwogICAgICAgIHBhaXJzLnB1c2goZXNjYXBlSFRNTChrKSArICc6
ICcgKyBlc2NhcGVIVE1MKFN0cmluZyh2KSkpOwogICAgfSk7CiAgICByZXR1cm4gcGFpcnMuam9p
bignIMK3ICcpOwp9CgovLyA9PT09PSBSZW5kZXIgPT09PT0KCi8vIEJhY2t3YXJkLUtvbXBhdDog
YWVsdGVyZSBQb3dlclNoZWxsLUVpbnRyYWVnZSBoYWJlbiBpaHJlIERldGFpbC1GZWxkZXIKLy8g
dW50ZXIgYGRldGFpbHM6IHsgLi4uIH1gIGdlbmVzdGVkLiBXaXIgZmxhY2hlbiBkYXMgYmVpbSBM
YWRlbiwgZGFtaXQgZGVyCi8vIERldGFpbC1SZW5kZXJlciBlaW5oZWl0bGljaCBhdWYgZS5mZWxk
bmFtZSB6dWdyZWlmZW4ga2Fubi4KZnVuY3Rpb24gX2VpbnRyYWdOb3JtYWxpc2llcmVuKGUpIHsK
ICAgIGlmIChlICYmIGUuZGV0YWlscyAmJiB0eXBlb2YgZS5kZXRhaWxzID09PSAnb2JqZWN0JyAm
JiAhQXJyYXkuaXNBcnJheShlLmRldGFpbHMpKSB7CiAgICAgICAgT2JqZWN0LmtleXMoZS5kZXRh
aWxzKS5mb3JFYWNoKGZ1bmN0aW9uKGspIHsKICAgICAgICAgICAgaWYgKCEoayBpbiBlKSkgZVtr
XSA9IGUuZGV0YWlsc1trXTsKICAgICAgICB9KTsKICAgIH0KICAgIHJldHVybiBlOwp9CgovLyBM
aWVmZXJ0IEhUTUwgZnVlciBlaW5lbiBXaWVkZXJoZXJzdGVsbGVuLUJ1dHRvbiDigJQgb2RlciBM
ZWVyc3RyaW5nLAovLyB3ZW5uIGRlciBFaW50cmFnIG5pY2h0IChzaW5udm9sbCkgenVydWVja2dl
bm9tbWVuIHdlcmRlbiBrYW5uLgpmdW5jdGlvbiBfcmVzdG9yZUJ1dHRvbkh0bWwoZSkgewogICAg
dmFyIGFrdGlvbiA9IGUuYWt0aW9uOwogICAgdmFyIHJlc3QgPSBudWxsOwogICAgaWYgKGFrdGlv
biA9PT0gJ3plbGxlLmdlYWVuZGVydCcgJiYgZS5wZXJzb25JZCAmJiBlLmRhdHVtICYmIGUuYWx0
ZXJXZXJ0ICE9PSB1bmRlZmluZWQpIHsKICAgICAgICByZXN0ID0geyB0eXA6ICd6ZWxsZScsIHBl
cnNvbklkOiBlLnBlcnNvbklkLCBkYXR1bTogZS5kYXR1bSwgd2VydDogZS5hbHRlcldlcnQgPT0g
bnVsbCA/ICcnIDogU3RyaW5nKGUuYWx0ZXJXZXJ0KSB9OwogICAgfSBlbHNlIGlmIChha3Rpb24g
PT09ICd6ZWxsZW4uYnVsay5nZWFlbmRlcnQnICYmIGUuYWx0ZVdlcnRlICYmIHR5cGVvZiBlLmFs
dGVXZXJ0ZSA9PT0gJ29iamVjdCcpIHsKICAgICAgICAvLyBhbHRlV2VydGUgPSB7ICI8ZGF0dW0+
fDxwZXJzb25JZD4iOiAiPGFsdGVyV2VydD4iIH0uIEluIGVpbiBBcnJheQogICAgICAgIC8vIHZv
biB7IGRhdHVtLCBwZXJzb25JZCwgd2VydCB9IHVtcGFja2VuIOKAlCBkYXMgaXN0IGRlciBCb2R5
LCBkZW4KICAgICAgICAvLyAvYXBpL3BsYW51bmcvemVsbGVuLWJ1bGsgZnJpc3N0LiBMZWVyZSBh
bHRlcldlcnQtU3RyaW5ncyBibGVpYmVuCiAgICAgICAgLy8gbGVlciwgZGFtaXQgZGllIFJlc3Rv
cmUtTG9naWsgZGllIFplbGxlIHdpZWRlciBsZWVydC4KICAgICAgICB2YXIgZWludHJhZWdlID0g
W107CiAgICAgICAgT2JqZWN0LmtleXMoZS5hbHRlV2VydGUpLmZvckVhY2goZnVuY3Rpb24oaykg
ewogICAgICAgICAgICB2YXIgc2VwID0gay5pbmRleE9mKCd8Jyk7CiAgICAgICAgICAgIGlmIChz
ZXAgPCAwKSByZXR1cm47CiAgICAgICAgICAgIHZhciBkYXR1bSA9IGsuc3Vic3RyaW5nKDAsIHNl
cCk7CiAgICAgICAgICAgIHZhciBwaWQgPSBrLnN1YnN0cmluZyhzZXAgKyAxKTsKICAgICAgICAg
ICAgdmFyIGFsdGVyV2VydCA9IGUuYWx0ZVdlcnRlW2tdOwogICAgICAgICAgICBlaW50cmFlZ2Uu
cHVzaCh7IGRhdHVtOiBkYXR1bSwgcGVyc29uSWQ6IHBpZCwgd2VydDogYWx0ZXJXZXJ0ID09IG51
bGwgPyAnJyA6IFN0cmluZyhhbHRlcldlcnQpIH0pOwogICAgICAgIH0pOwogICAgICAgIGlmIChl
aW50cmFlZ2UubGVuZ3RoKSB7CiAgICAgICAgICAgIHJlc3QgPSB7IHR5cDogJ3plbGxlbi1idWxr
JywgZWludHJhZWdlOiBlaW50cmFlZ2UsIGFuemFobDogZWludHJhZWdlLmxlbmd0aCB9OwogICAg
ICAgIH0KICAgIH0gZWxzZSBpZiAoYWt0aW9uID09PSAna29tbWVudGFyLmdlYWVuZGVydCcgJiYg
ZS5wZXJzb25JZCAmJiBlLmRhdHVtKSB7CiAgICAgICAgLy8gJ2FsdGVyVGV4dCcgaXN0IGRhcyBh
a3R1ZWxsZSBTY2hlbWEsICd0ZXh0JyBkYXMgYWx0ZSAodm9yIGRlbSBEaWZmLVBhdGNoKS4KICAg
ICAgICB2YXIgYWx0VCA9IChlLmFsdGVyVGV4dCAhPT0gdW5kZWZpbmVkKSA/IGUuYWx0ZXJUZXh0
IDogKGUudGV4dCAhPT0gdW5kZWZpbmVkID8gZS50ZXh0IDogbnVsbCk7CiAgICAgICAgaWYgKGFs
dFQgPT09IG51bGwpIHJldHVybiAnJzsKICAgICAgICByZXN0ID0geyB0eXA6ICdrb21tZW50YXIn
LCBwZXJzb25JZDogZS5wZXJzb25JZCwgZGF0dW06IGUuZGF0dW0sIHRleHQ6IFN0cmluZyhhbHRU
IHx8ICcnKSB9OwogICAgfSBlbHNlIGlmIChha3Rpb24gPT09ICdwZXJzb24uZ2VhZW5kZXJ0JyAm
JiBlLnBlcnNvbklkICYmIGUuZ2VhZW5kZXJ0ICYmCiAgICAgICAgICAgICAgIHR5cGVvZiBlLmdl
YWVuZGVydCA9PT0gJ29iamVjdCcgJiYgT2JqZWN0LmtleXMoZS5nZWFlbmRlcnQpLmxlbmd0aCkg
ewogICAgICAgIHZhciBhbHQgPSB7fTsKICAgICAgICBPYmplY3Qua2V5cyhlLmdlYWVuZGVydCku
Zm9yRWFjaChmdW5jdGlvbihrKSB7IGFsdFtrXSA9IGUuZ2VhZW5kZXJ0W2tdLmFsdDsgfSk7CiAg
ICAgICAgcmVzdCA9IHsgdHlwOiAncGVyc29uJywgcGVyc29uSWQ6IGUucGVyc29uSWQsIGRhdGVu
OiBhbHQgfTsKICAgIH0KICAgIGlmICghcmVzdCkgcmV0dXJuICcnOwogICAgcmV0dXJuICc8YnV0
dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImxvZy1yZXN0b3JlLWJ0biIgJyArCiAgICAgICAgICAg
J2RhdGEtcmVzdD0iJyArIGVzY2FwZUF0dHIoSlNPTi5zdHJpbmdpZnkocmVzdCkpICsgJyIgJyAr
CiAgICAgICAgICAgJ3RpdGxlPSJEaWVzZW4gU3RhbmQgd2llZGVyaGVyc3RlbGxlbiI+PHNwYW4g
Y2xhc3M9ImxvZy1yZXN0b3JlLWljb24iPuKGujwvc3Bhbj48c3BhbiBjbGFzcz0ibG9nLXJlc3Rv
cmUtdGV4dCI+V2llZGVyaGVyc3RlbGxlbjwvc3Bhbj48L2J1dHRvbj4nOwp9CgpmdW5jdGlvbiBf
cmVzdG9yZUNsaWNrKGV2KSB7CiAgICB2YXIgYnRuID0gZXYudGFyZ2V0LmNsb3Nlc3QgJiYgZXYu
dGFyZ2V0LmNsb3Nlc3QoJy5sb2ctcmVzdG9yZS1idG4nKTsKICAgIGlmICghYnRuKSByZXR1cm47
CiAgICB2YXIgcmVzdDsKICAgIHRyeSB7IHJlc3QgPSBKU09OLnBhcnNlKGJ0bi5nZXRBdHRyaWJ1
dGUoJ2RhdGEtcmVzdCcpIHx8ICcnKTsgfSBjYXRjaCAoXykgeyByZXR1cm47IH0KICAgIGlmICgh
cmVzdCB8fCAhcmVzdC50eXApIHJldHVybjsKCiAgICB2YXIgZnJhZ2U7CiAgICBpZiAocmVzdC50
eXAgPT09ICd6ZWxsZScpICAgICAgICAgICAgICBmcmFnZSA9ICdTY2hpY2h0emVsbGUgd2lya2xp
Y2ggYXVmIGRlbiBhbHRlbiBXZXJ0IHp1csO8Y2tzZXR6ZW4/JzsKICAgIGVsc2UgaWYgKHJlc3Qu
dHlwID09PSAnemVsbGVuLWJ1bGsnKSAgIGZyYWdlID0gKHJlc3QuYW56YWhsIHx8IHJlc3QuZWlu
dHJhZWdlLmxlbmd0aCkgKyAnIFplbGxlbiB3aXJrbGljaCBhdWYgZGllIGFsdGVuIFdlcnRlIHp1
csO8Y2tzZXR6ZW4/XG5cbkplZGUgZWluemVsbmUgWmVsbGUgYmVrb21tdCBkZW4gV2VydCwgZGVu
IHNpZSB1bm1pdHRlbGJhciB2b3IgZGllc2VtIERyYWctRmlsbCBoYXR0ZS4gRGllIEFrdGlvbiBz
ZWxic3Qgd2FuZGVydCB3aWVkZXIgaW5zIExvZ2J1Y2ggdW5kIGthbm4gZG9ydCBlcm5ldXQgcsO8
Y2tnw6RuZ2lnIGdlbWFjaHQgd2VyZGVuLic7CiAgICBlbHNlIGlmIChyZXN0LnR5cCA9PT0gJ2tv
bW1lbnRhcicpICAgICBmcmFnZSA9ICdLb21tZW50YXIgd2lya2xpY2ggYXVmIGRlbiBhbHRlbiBU
ZXh0IHp1csO8Y2tzZXR6ZW4/JzsKICAgIGVsc2UgaWYgKHJlc3QudHlwID09PSAncGVyc29uJykg
ICAgICAgIGZyYWdlID0gJ1BlcnNvbmVuZGF0ZW4gd2lya2xpY2ggYXVmIGRlbiBhbHRlbiBTdGFu
ZCB6dXLDvGNrc2V0emVuPyc7CiAgICBlbHNlIHJldHVybjsKCiAgICBiZXN0YWV0aWdlbihmcmFn
ZSwgZnVuY3Rpb24oKSB7CiAgICAgICAgdmFyIHA7CiAgICAgICAgaWYgKHJlc3QudHlwID09PSAn
emVsbGUnKSB7CiAgICAgICAgICAgIHAgPSBhcGlQb3N0KCcvYXBpL3BsYW51bmcvemVsbGUnLCB7
IHBlcnNvbklkOiByZXN0LnBlcnNvbklkLCBkYXR1bTogcmVzdC5kYXR1bSwgd2VydDogcmVzdC53
ZXJ0IH0pOwogICAgICAgIH0gZWxzZSBpZiAocmVzdC50eXAgPT09ICd6ZWxsZW4tYnVsaycpIHsK
ICAgICAgICAgICAgLy8gRWluIGVpbnppZ2VyIFBPU1QgYW4gL2FwaS9wbGFudW5nL3plbGxlbi1i
dWxrIG1pdCBhbGxlbiBhbHRlbgogICAgICAgICAgICAvLyBXZXJ0ZW4gYWxzIEJvZHkg4oCUIGRl
ciBFbmRwb2ludCBsb2d0IGF1dG9tYXRpc2NoIGVpbiBuZXVlcwogICAgICAgICAgICAvLyB6ZWxs
ZW4uYnVsay5nZWFlbmRlcnQgbWl0IEZSSVNDSEVOIGFsdGVXZXJ0ZSwgZGFkdXJjaCBpc3QgZGll
CiAgICAgICAgICAgIC8vIFdpZWRlcmhlcnN0ZWxsdW5nIHNlbGJzdCB3aWVkZXIgcnVlY2tnYWVu
Z2lnIHp1IG1hY2hlbi4KICAgICAgICAgICAgcCA9IGFwaVBvc3QoJy9hcGkvcGxhbnVuZy96ZWxs
ZW4tYnVsaycsIHsgZWludHJhZWdlOiByZXN0LmVpbnRyYWVnZSB9KTsKICAgICAgICB9IGVsc2Ug
aWYgKHJlc3QudHlwID09PSAna29tbWVudGFyJykgewogICAgICAgICAgICBwID0gYXBpUG9zdCgn
L2FwaS9wbGFudW5nL2tvbW1lbnRhcicsIHsgcGVyc29uSWQ6IHJlc3QucGVyc29uSWQsIGRhdHVt
OiByZXN0LmRhdHVtLCB0ZXh0OiByZXN0LnRleHQgfSk7CiAgICAgICAgfSBlbHNlIHsKICAgICAg
ICAgICAgcCA9IGFwaVB1dCgnL2FwaS9wZXJzb25lbi8nICsgcmVzdC5wZXJzb25JZCwgcmVzdC5k
YXRlbik7CiAgICAgICAgfQogICAgICAgIHAudGhlbihmdW5jdGlvbihyZXNwKSB7CiAgICAgICAg
ICAgIC8vIEJ1bGstUmVzdG9yZTogU2VydmVyIGxpZWZlcnQgeyBvaywgYWJnZWxlaG50IH0uIFdl
bm4gZWluIFRlaWwKICAgICAgICAgICAgLy8gYWJnZWxlaG50IHd1cmRlIChQZXJzb24tVmVybHVz
dCwgUmVjaHRlLVZlcmx1c3Qgc2VpdCBkZXIKICAgICAgICAgICAgLy8gT3JpZ2luYWwtQWVuZGVy
dW5nKSwgVG9hc3QgYWxzIFdhcm51bmcgbWl0IGJlaWRlbiBaYWhsZW4uCiAgICAgICAgICAgIGlm
IChyZXN0LnR5cCA9PT0gJ3plbGxlbi1idWxrJyAmJiByZXNwICYmIHR5cGVvZiByZXNwLm9rID09
PSAnbnVtYmVyJykgewogICAgICAgICAgICAgICAgdmFyIG9rWiA9IHJlc3Aub2s7CiAgICAgICAg
ICAgICAgICB2YXIgYWJnWiA9IChyZXNwLmFiZ2VsZWhudCAmJiByZXNwLmFiZ2VsZWhudC5sZW5n
dGgpIHx8IDA7CiAgICAgICAgICAgICAgICBpZiAoYWJnWiA+IDApIHsKICAgICAgICAgICAgICAg
ICAgICB0b2FzdChva1ogKyAnIFplbGxlbiB3aWVkZXJoZXJnZXN0ZWxsdCwgJyArIGFiZ1ogKyAn
IGFiZ2VsZWhudCcsICd3YXJudW5nJyk7CiAgICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAg
ICAgICAgICAgICAgIHRvYXN0KG9rWiArICcgWmVsbGVuIHdpZWRlcmhlcmdlc3RlbGx0JywgJ2Vy
Zm9sZycpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAg
ICAgICAgdG9hc3QoJ1dpZWRlcmhlcmdlc3RlbGx0JywgJ2VyZm9sZycpOwogICAgICAgICAgICB9
CiAgICAgICAgICAgIGlmICh0eXBlb2YgbG9nYnVjaEhvb2tzLmFmdGVyUmVzdG9yZSA9PT0gJ2Z1
bmN0aW9uJykgbG9nYnVjaEhvb2tzLmFmdGVyUmVzdG9yZSgpOwogICAgICAgICAgICBsb2didWNo
TGFkZW4oKTsKICAgICAgICB9KS5jYXRjaChmdW5jdGlvbihlcnIpIHsKICAgICAgICAgICAgdG9h
c3QoJ0ZlaGxlcjogJyArIChlcnIgJiYgZXJyLm1lc3NhZ2UgPyBlcnIubWVzc2FnZSA6ICd1bmJl
a2FubnQnKSwgJ2ZlaGxlcicpOwogICAgICAgIH0pOwogICAgfSwgeyB0aXRlbDogJ1dpZWRlcmhl
cnN0ZWxsZW4/JywgamFUZXh0OiAnV2llZGVyaGVyc3RlbGxlbicgfSk7Cn0KCi8vIEthdGVnb3Jp
ZS1GaWx0ZXItQ2hpcHMgKGZydWVoZXIgd2FyZW4gZGllIEFrdGlvbi1QaWxscyByZWluIGRla29y
YXRpdikuCi8vIFNsdWctUmVpaGVuZm9sZ2Ugc3BpZWdlbHQgZGllIExlc2UtUHJpb3JpdGFldCBp
bSBQcm90b2tvbGwuCnZhciBMT0dfS0FURUdPUklFTiA9IFsKICAgIHsga2F0OiAnJywgICAgICAg
IGxhYmVsOiAnQWxsZScgfSwKICAgIHsga2F0OiAncGxhbnVuZycsIGxhYmVsOiAnUGxhbnVuZycg
fSwKICAgIHsga2F0OiAncGVyc29uJywgIGxhYmVsOiAnUGVyc29uJyB9LAogICAgeyBrYXQ6ICdh
ZG1pbicsICAgbGFiZWw6ICdLb25maWd1cmF0aW9uJyB9LAogICAgeyBrYXQ6ICdyb2xsZScsICAg
bGFiZWw6ICdSb2xsZW4nIH0sCiAgICB7IGthdDogJ2hpbndlaXMnLCBsYWJlbDogJ0hpbndlaXNl
JyB9LAogICAgeyBrYXQ6ICdiYWNrdXAnLCAgbGFiZWw6ICdCYWNrdXBzJyB9LAogICAgeyBrYXQ6
ICdzeXN0ZW0nLCAgbGFiZWw6ICdTeXN0ZW0nIH0KXTsKdmFyIF9sb2dBa3RpdmVLYXQgPSAnJzsK
Ci8vIENoaXAtTGVpc3RlIGVpbm1hbGlnIGluIGRlbiBMb2didWNoLUtvcGYgaW5qaXppZXJlbiAo
ZGFzIFZpZXctTWFya3VwIGluCi8vIGRhdGEvc2FuaXRpemVyLmh0bWwgYmxlaWJ0IHVuYW5nZXRh
c3RldCDigJQgd2lyIGhhZW5nZW4gbnVyIGVpbiBLaW5kIGFuKS4KZnVuY3Rpb24gX2xvZ0NoaXBC
YXJTaWNoZXJzdGVsbGVuKCkgewogICAgaWYgKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdsb2ct
a2F0LWNoaXBzJykpIHJldHVybjsKICAgIHZhciBrb3BmID0gZG9jdW1lbnQucXVlcnlTZWxlY3Rv
cignI2Fuc2ljaHQtbG9nYnVjaCAuYWRtaW4ta29wZicpOwogICAgaWYgKCFrb3BmKSByZXR1cm47
CiAgICB2YXIgYmFyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7CiAgICBiYXIuaWQg
PSAnbG9nLWthdC1jaGlwcyc7CiAgICBiYXIuY2xhc3NOYW1lID0gJ2xvZy1rYXQtY2hpcHMnOwog
ICAgYmFyLmlubmVySFRNTCA9IExPR19LQVRFR09SSUVOLm1hcChmdW5jdGlvbihrKSB7CiAgICAg
ICAgcmV0dXJuICc8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImxvZy1rYXQtY2hpcCcgKwog
ICAgICAgICAgICAoay5rYXQgPT09IF9sb2dBa3RpdmVLYXQgPyAnIGFrdGl2JyA6ICcnKSArICci
IGRhdGEta2F0PSInICsgZXNjYXBlQXR0cihrLmthdCkgKyAnIj4nICsKICAgICAgICAgICAgZXNj
YXBlSFRNTChrLmxhYmVsKSArICc8L2J1dHRvbj4nOwogICAgfSkuam9pbignJyk7CiAgICBiYXIu
YWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCBmdW5jdGlvbihlKSB7CiAgICAgICAgdmFyIGNoaXAg
PSBlLnRhcmdldC5jbG9zZXN0KCcubG9nLWthdC1jaGlwJyk7CiAgICAgICAgaWYgKCFjaGlwKSBy
ZXR1cm47CiAgICAgICAgX2xvZ0FrdGl2ZUthdCA9IGNoaXAuZ2V0QXR0cmlidXRlKCdkYXRhLWth
dCcpIHx8ICcnOwogICAgICAgIGJhci5xdWVyeVNlbGVjdG9yQWxsKCcubG9nLWthdC1jaGlwJyku
Zm9yRWFjaChmdW5jdGlvbihjKSB7CiAgICAgICAgICAgIGMuY2xhc3NMaXN0LnRvZ2dsZSgnYWt0
aXYnLCAoYy5nZXRBdHRyaWJ1dGUoJ2RhdGEta2F0JykgfHwgJycpID09PSBfbG9nQWt0aXZlS2F0
KTsKICAgICAgICB9KTsKICAgICAgICBfbG9nYnVjaEZpbHRlcm5KZXR6dCgpOwogICAgfSk7CiAg
ICBrb3BmLmFwcGVuZENoaWxkKGJhcik7Cn0KCmZ1bmN0aW9uIGxvZ2J1Y2hMYWRlbigpIHsKICAg
IHZhciB0Ym9keSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdsb2ctdGJvZHknKTsKICAgIHRi
b2R5LmlubmVySFRNTCA9ICc8dHI+PHRkIGNvbHNwYW49IjUiIHN0eWxlPSJ0ZXh0LWFsaWduOmNl
bnRlcjtwYWRkaW5nOjIwcHgiPkxhZGUuLi48L3RkPjwvdHI+JzsKICAgIF9sb2dDaGlwQmFyU2lj
aGVyc3RlbGxlbigpOwoKICAgIGFwaSgnL2FwaS9sb2didWNoJykudGhlbihmdW5jdGlvbihkYXRl
bikgewogICAgICAgIHRyeSB7CiAgICAgICAgICAgIF9sb2didWNoUmVuZGVySW50ZXJuKHRib2R5
LCBkYXRlbik7CiAgICAgICAgfSBjYXRjaCAoZSkgewogICAgICAgICAgICByZW5kZXJFcnJvckJv
eChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYW5zaWNodC1sb2didWNoJyksIGUsICdMb2didWNo
Jyk7CiAgICAgICAgfQogICAgfSkuY2F0Y2goZnVuY3Rpb24oKSB7CiAgICAgICAgdGJvZHkuaW5u
ZXJIVE1MID0gJzx0cj48dGQgY29sc3Bhbj0iNSIgc3R5bGU9InRleHQtYWxpZ246Y2VudGVyO3Bh
ZGRpbmc6MjBweCI+RmVobGVyIGJlaW0gTGFkZW48L3RkPjwvdHI+JzsKICAgIH0pOwp9CgpmdW5j
dGlvbiBfbG9nYnVjaFJlbmRlckludGVybih0Ym9keSwgZGF0ZW4pIHsKICAgICAgICBpZiAoIWRh
dGVuIHx8ICFkYXRlbi5sZW5ndGgpIHsKICAgICAgICAgICAgdGJvZHkuaW5uZXJIVE1MID0gJzx0
cj48dGQgY29sc3Bhbj0iNSI+JyArCiAgICAgICAgICAgICAgICAnPGRpdiBjbGFzcz0iYWRtaW4t
ZW1wdHkiPicgKwogICAgICAgICAgICAgICAgICAgICc8ZGl2IGNsYXNzPSJhZG1pbi1lbXB0eS10
aXRlbCI+S2VpbmUgTG9nYnVjaC1FaW50csOkZ2U8L2Rpdj4nICsKICAgICAgICAgICAgICAgICAg
ICAnPGRpdiBjbGFzcz0iYWRtaW4tZW1wdHktdGV4dCI+U29iYWxkIGplbWFuZCBldHdhcyDDpG5k
ZXJ0LCBlcnNjaGVpbnQgaGllciBkaWUgSGlzdG9yaWUuIEZpbHRlciB6dXLDvGNrc2V0emVuLCBm
YWxscyBha3Rpdi48L2Rpdj4nICsKICAgICAgICAgICAgICAgICc8L2Rpdj4nICsKICAgICAgICAg
ICAgICAgICc8L3RkPjwvdHI+JzsKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KICAgICAg
ICAvLyBQZXJzb25lbi1NYXAgIk5hY2huYW1lLCBWb3JuYW1lIiDigJQgYXVjaCBpbmFrdGl2ZSBQ
ZXJzb25lbiBhdWZuZWhtZW4sCiAgICAgICAgLy8gZGFtaXQgZGllIEFuemVpZ2UgYXVjaCBmdWVy
IGhpc3RvcmlzY2hlIEVpbnRyYWVnZSBiZXN0ZWhlbiBibGVpYnQuCiAgICAgICAgdmFyIHBNYXAg
PSB7fTsKICAgICAgICAoWi5wbGFudW5nLnBlcnNvbmVuIHx8IFtdKS5mb3JFYWNoKGZ1bmN0aW9u
KHApIHsKICAgICAgICAgICAgdmFyIG4gPSAocC5uYW1lIHx8ICcnKSArIChwLnZvcm5hbWUgPyAn
LCAnICsgcC52b3JuYW1lIDogJycpOwogICAgICAgICAgICBwTWFwW1N0cmluZyhwLmlkKV0gPSBu
ICsgKHAuYWt0aXYgPT09IGZhbHNlID8gJyAoZWhlbWFsaWcpJyA6ICcnKTsKICAgICAgICB9KTsK
CiAgICAgICAgLy8gU2VydmVyIHNjaHJlaWJ0IG5ldWUgRWludHJhZWdlIGFtIEtvcGYgZGVyIExp
c3RlIChwcmVwZW5kKSwKICAgICAgICAvLyBhbHNvIGlzdCBkYXRlbiBiZXJlaXRzICJuZXVlc3Rl
IHp1ZXJzdCIg4oCUIGRpcmVrdCBzbyByZW5kZXJuLgogICAgICAgIHZhciBodG1sID0gJyc7CiAg
ICAgICAgZGF0ZW4uZm9yRWFjaChmdW5jdGlvbihlKSB7CiAgICAgICAgICAgIGUgPSBfZWludHJh
Z05vcm1hbGlzaWVyZW4oZSk7CiAgICAgICAgICAgIHZhciB0cyA9IF96ZWl0c3RlbXBlbFRlaWxl
KGUuemVpdHN0ZW1wZWwpOwogICAgICAgICAgICB2YXIga2F0ID0gYWt0aW9uS2F0ZWdvcmllKGUu
YWt0aW9uIHx8ICcnKTsKICAgICAgICAgICAgdmFyIGxibCA9IGFrdGlvbkxhYmVsKGUuYWt0aW9u
IHx8ICcnKTsKICAgICAgICAgICAgdmFyIHVzZXIgPSBiZW51dHplcktsYXJuYW1lKGUuYmVudXR6
ZXIpOwogICAgICAgICAgICB2YXIgaW5pdGlhbGVuID0gX3VzZXJJbml0aWFsZW4odXNlcik7CiAg
ICAgICAgICAgIGh0bWwgKz0gJzx0ciBjbGFzcz0ibG9nLXplaWxlIiBkYXRhLWthdD0iJyArIGVz
Y2FwZUF0dHIoa2F0KSArICciPicgKwogICAgICAgICAgICAgICAgJzx0ZCBjbGFzcz0ibG9nLXpl
aXQtemVsbGUiPicgKwogICAgICAgICAgICAgICAgICAgICc8ZGl2IGNsYXNzPSJsb2ctemVpdC1k
YXR1bSI+JyArIGVzY2FwZUhUTUwodHMuZGF0dW0pICsgJzwvZGl2PicgKwogICAgICAgICAgICAg
ICAgICAgICc8ZGl2IGNsYXNzPSJsb2ctemVpdC11aHJ6ZWl0Ij4nICsgZXNjYXBlSFRNTCh0cy56
ZWl0KSArICc8L2Rpdj4nICsKICAgICAgICAgICAgICAgICc8L3RkPicgKwogICAgICAgICAgICAg
ICAgJzx0ZCBjbGFzcz0ibG9nLWFrdGlvbi16ZWxsZSI+PHNwYW4gY2xhc3M9ImxvZy1waWxsIGxv
Zy1waWxsLScgKyBrYXQgKyAnIj4nICsgZXNjYXBlSFRNTChsYmwpICsgJzwvc3Bhbj48L3RkPicg
KwogICAgICAgICAgICAgICAgJzx0ZCBjbGFzcz0ibG9nLWJlbnV0emVyLXplbGxlIj4nICsKICAg
ICAgICAgICAgICAgICAgICAnPHNwYW4gY2xhc3M9ImxvZy1iZW51dHplci1hdmF0YXIiPicgKyBl
c2NhcGVIVE1MKGluaXRpYWxlbikgKyAnPC9zcGFuPicgKwogICAgICAgICAgICAgICAgICAgICc8
c3BhbiBjbGFzcz0ibG9nLWJlbnV0emVyLW5hbWUiPicgKyBlc2NhcGVIVE1MKHVzZXIpICsgJzwv
c3Bhbj4nICsKICAgICAgICAgICAgICAgICc8L3RkPicgKwogICAgICAgICAgICAgICAgJzx0ZCBj
bGFzcz0ibG9nLWRldGFpbHMtemVsbGUiPicgKyAoZGV0YWlsc0h0bWwoZSwgcE1hcCkgfHwgJzxz
cGFuIGNsYXNzPSJsb2ctZGV0YWlscy1sZWVyIj7igJQ8L3NwYW4+JykgKyAnPC90ZD4nICsKICAg
ICAgICAgICAgICAgICc8dGQgY2xhc3M9ImxvZy1yZXN0b3JlLXplbGxlIj4nICsgX3Jlc3RvcmVC
dXR0b25IdG1sKGUpICsgJzwvdGQ+JyArCiAgICAgICAgICAgICAgICAnPC90cj4nOwogICAgICAg
IH0pOwogICAgICAgIHRib2R5LmlubmVySFRNTCA9IGh0bWw7CiAgICAgICAgLy8gaWRlbXBvdGVu
dCDigJQgb25jbGljayB1ZWJlcnNjaHJlaWJ0IHZvcmlnZW4gSGFuZGxlcgogICAgICAgIHRib2R5
Lm9uY2xpY2sgPSBfcmVzdG9yZUNsaWNrOwp9Cgp2YXIgX2xvZ0ZpbHRlclRpbWVyID0gbnVsbDsK
ZnVuY3Rpb24gbG9nYnVjaEZpbHRlcm4oKSB7CiAgICAvLyBEZWJvdW5jZTogYmVpIGJpcyB6dSAx
MDAwIFplaWxlbiB3dWVyZGUgZWluIEZpbHRlci1EdXJjaGxhdWYgcHJvCiAgICAvLyBUYXN0ZW5k
cnVjayAocXVlcnlTZWxlY3RvckFsbCArIHRleHRDb250ZW50IHVlYmVyIGFsbGUgWmVpbGVuKSBy
dWNrZWxuLgogICAgLy8gMTIwIG1zIFZlcnpvZWdlcnVuZyBmYXNzdCBzY2huZWxsZSBUYXN0ZW5m
b2xnZW4genVzYW1tZW4uCiAgICBpZiAoX2xvZ0ZpbHRlclRpbWVyKSBjbGVhclRpbWVvdXQoX2xv
Z0ZpbHRlclRpbWVyKTsKICAgIF9sb2dGaWx0ZXJUaW1lciA9IHNldFRpbWVvdXQoX2xvZ2J1Y2hG
aWx0ZXJuSmV0enQsIDEyMCk7Cn0KZnVuY3Rpb24gX2xvZ2J1Y2hGaWx0ZXJuSmV0enQoKSB7CiAg
ICB2YXIgZWwgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbG9nLXN1Y2hlJyk7CiAgICBpZiAo
IWVsKSByZXR1cm47ICAvLyBhbmRlcmVyIFZpZXctWnVzdGFuZCDigJQgcm9idXN0IHN0YXR0IEV4
Y2VwdGlvbgogICAgdmFyIHN1Y2hlID0gKGVsLnZhbHVlIHx8ICcnKS50b0xvd2VyQ2FzZSgpOwog
ICAgdmFyIHplaWxlbiA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJyNsb2ctdGJvZHkgdHIn
KTsKICAgIHplaWxlbi5mb3JFYWNoKGZ1bmN0aW9uKHRyKSB7CiAgICAgICAgLy8gS2F0ZWdvcmll
LUNoaXAgVU5EIFRleHRzdWNoZSBrb21iaW5pZXJ0IChiZWlkZSBtdWVzc2VuIHBhc3NlbikuCiAg
ICAgICAgdmFyIGthdE9rID0gIV9sb2dBa3RpdmVLYXQgfHwgdHIuZ2V0QXR0cmlidXRlKCdkYXRh
LWthdCcpID09PSBfbG9nQWt0aXZlS2F0OwogICAgICAgIHZhciB0ZXh0T2sgPSAhc3VjaGUgfHwg
dHIudGV4dENvbnRlbnQudG9Mb3dlckNhc2UoKS5pbmRleE9mKHN1Y2hlKSA+PSAwOwogICAgICAg
IHRyLnN0eWxlLmRpc3BsYXkgPSAoa2F0T2sgJiYgdGV4dE9rKSA/ICcnIDogJ25vbmUnOwogICAg
fSk7Cn0KCi8vIEFjaHR1bmc6IGxvZ2J1Y2hIb29rcyBpc3QgYmVyZWl0cyBvYmVuIHZpYSBgZXhw
b3J0IHZhciBsb2didWNoSG9va3NgCi8vIGV4cG9ydGllcnQg4oCUIGhpZXIgTklDSFQgZXJuZXV0
IGF1Zmxpc3Rlbiwgc29uc3QgU3ludGF4RXJyb3IuCmV4cG9ydCB7IGxvZ2J1Y2hMYWRlbiwgbG9n
YnVjaEZpbHRlcm4sIGFrdGlvbkxhYmVsLCBiZW51dHplcktsYXJuYW1lIH07Cg==
### FILE: js/schichtteam.js | 6164
Ly8gPT09IHNjaGljaHR0ZWFtLmpzID09PQovLyAiTWVpbiBTY2hpY2h0LVRlYW0iIOKAlCAxNC1U
YWdlLVVlYmVyc2ljaHQgYWxzIHJlYWQtb25seSBNb2RhbCwgZ2VvZWZmbmV0Ci8vIHVlYmVyIGRl
biAiVGVhbSItQnV0dG9uIGltIEhldXRlLUthc3RlbiBkZXIgUGxhbnVuZ3NhbnNpY2h0LgovLwov
LyBJZGVlOiBFaW4gREdML01BIHdpbGwgc2NobmVsbCBzZWhlbiwgd2VyIGluIFNFSU5FUiBTY2hp
Y2h0IGFyYmVpdGV0LCBvaG5lCi8vIGR1cmNoIGFsbGUgfjQ2IFBlcnNvbmVuIHp1IHNjcm9sbGVu
LiBEYXMgVGVhbSB3aXJkIEVJTk1BTCBhbmhhbmQgSEVVVEUKLy8gYmVzdGltbXQgKGFsbGUsIGRp
ZSBsYXV0IFJvdGF0aW9uIGhldXRlIGluIGRlcnNlbGJlbiBGL1MvTi1TY2hpY2h0IHNpbmQgd2ll
Ci8vIGljaCDigJQgc3RhbmRvcnR1ZWJlcmdyZWlmZW5kLCBpbmtsLiB3ZnIvZGZyLUtvbGxlZ2Vu
KSB1bmQgZGFubiB1ZWJlciB2b2xsZQovLyAxNCBUYWdlIG1pdCBkZW4gamV3ZWlsaWdlbiBFaW50
cmFlZ2VuIGdlemVpZ3Qg4oCUIGF1Y2ggd2VubiBkaWUgUm90YXRpb24KLy8gendpc2NoZW5kcmlu
IGtpcHB0IChmZXN0ZXMgVGVhbSwgcnVoaWdlIERhcnN0ZWxsdW5nOyBVc2VyLVd1bnNjaCAyMDI2
LTA1LTI3KS4KLy8KLy8gV0QtU29uZGVyZmFsbCAoTm90dGVib2htL0dvdG90LCBQb29sLVN0YW5k
b3J0ZSBvaG5lIHNjaGljaHRmb2xnZSk6IGRhIGtlaW5lCi8vIGJlcmVjaGVuYmFyZSBSb3RhdGlv
biBleGlzdGllcnQsIGJlc3RpbW10IGRpZSB0YXRzYWVjaGxpY2ggZWluZ2V0cmFnZW5lCi8vIFRh
Z2Vzc2NoaWNodCAoRi1ER0wvUy1ER0wvTi1ER0wgaGV1dGUpICJtZWluZSBTY2hpY2h0Ii4KCmlt
cG9ydCB7IFogfSBmcm9tICcuL2NvcmVfc3RhdGUuanMnOwppbXBvcnQgewogICAgZXNjYXBlSFRN
TCwgZXNjYXBlQXR0ciwgZGF0dW1TdHIsIGRhdHVtRm9ybWF0REUsIGRhdHVtS3VyekRFLAogICAg
d29jaGVudGFnS3VyeiwgaXN0V29jaGVuZW5kZSwgYXZhdGFyS3JlaXNIdG1sLCBwZXJzb25TY2hp
Y2h0QW0KfSBmcm9tICcuL2NvcmVfdXRpbC5qcyc7CmltcG9ydCB7IG1vZGFsWmVpZ2VuLCBtb2Rh
bFNjaGxpZXNzZW4sIHRvYXN0IH0gZnJvbSAnLi91aV9kaWFsb2cuanMnOwoKdmFyIFNDSElDSFRf
TkFNRSA9IHsgRjogJ0Zyw7xoZGllbnN0JywgUzogJ1Nww6R0ZGllbnN0JywgTjogJ05hY2h0ZGll
bnN0JyB9OwoKLy8gRWluZ2V0cmFnZW5lIFNjaGljaHQgYXVzIGVpbmVtIENvZGUgYWJsZWl0ZW46
ICJGLS4uLiIvIlMtLi4uIi8iTi0uLi4iIC0+IEYvUy9OLgovLyBEZWNrdCBGLURHTC9TLURHTC9O
LURHTCwgRi1XREYsIEYtRkJQLCAuLi4gYWIuIFVybC9rci93ZnIvZGZyLy4uLiAtPiBudWxsLgpm
dW5jdGlvbiBzY2hpY2h0QXVzQ29kZShjb2RlKSB7CiAgICBpZiAoIWNvZGUgfHwgdHlwZW9mIGNv
ZGUgIT09ICdzdHJpbmcnIHx8IGNvZGUuY2hhckF0KDEpICE9PSAnLScpIHJldHVybiBudWxsOwog
ICAgdmFyIGMgPSBjb2RlLmNoYXJBdCgwKTsKICAgIHJldHVybiAoYyA9PT0gJ0YnIHx8IGMgPT09
ICdTJyB8fCBjID09PSAnTicpID8gYyA6IG51bGw7Cn0KCi8vIFNjaGljaHQgZWluZXIgUGVyc29u
IGFuIGVpbmVtIFRhZzogenVlcnN0IFJvdGF0aW9uIChpZ25vcmllcnQgZGVuIEVpbnRyYWcsCi8v
IGVyZmFzc3QgYWxzbyB3ZnIvZGZyLUtvbGxlZ2VuIGtvcnJla3QpLCBzb25zdCBkaWUgZWluZ2V0
cmFnZW5lIFRhZ2Vzc2NoaWNodAovLyAoV0QtRmFsbCksIHNvbnN0IG51bGwuCmZ1bmN0aW9uIHNj
aGljaHRWb24ocGVyc29uLCBkYXR1bSkgewogICAgdmFyIHMgPSBwZXJzb25TY2hpY2h0QW0ocGVy
c29uLCBkYXR1bSk7CiAgICBpZiAocykgcmV0dXJuIHM7CiAgICB2YXIgZSA9IChaLnBsYW51bmcu
ZWludHJhZWdlIHx8IHt9KVtkYXR1bV0gfHwge307CiAgICByZXR1cm4gc2NoaWNodEF1c0NvZGUo
ZVtTdHJpbmcocGVyc29uLmlkKV0gfHwgJycpOwp9CgpleHBvcnQgZnVuY3Rpb24gc2NoaWNodFRl
YW1Nb2RhbE9lZmZuZW4oKSB7CiAgICB2YXIgbWUgPSAoWi5wZXJzb25lbiB8fCBbXSkuZmluZChm
dW5jdGlvbihwKSB7IHJldHVybiBTdHJpbmcocC5pZCkgPT09IFN0cmluZyhaLm1laW5lUGVyc29u
SWQpOyB9KTsKICAgIGlmIChaLm1laW5lUGVyc29uSWQgPT0gbnVsbCB8fCAhbWUpIHsKICAgICAg
ICB0b2FzdCgnS2VpbmUgUGVyc29uIHp1Z2VvcmRuZXQg4oCUIFNjaGljaHQtVGVhbSBuaWNodCBh
YmxlaXRiYXIuJywgJ2luZm8nKTsKICAgICAgICByZXR1cm47CiAgICB9CiAgICB2YXIgaGV1dGUg
PSBaLmhldXRlU3RyOwogICAgdmFyIHppZWwgPSBzY2hpY2h0Vm9uKG1lLCBoZXV0ZSk7CiAgICBp
ZiAoIXppZWwpIHsKICAgICAgICB0b2FzdCgnRsO8ciBoZXV0ZSBpc3Qga2VpbmUgU2NoaWNodCBo
aW50ZXJsZWd0IOKAlCBTY2hpY2h0LVRlYW0gbmljaHQgYWJsZWl0YmFyLicsICdpbmZvJyk7CiAg
ICAgICAgcmV0dXJuOwogICAgfQoKICAgIC8vIFRlYW0gZWlubWFsaWcgYW5oYW5kIEhFVVRFIGJl
c3RpbW1lbi4gWi5wZXJzb25lbiBpc3QgYmVyZWl0cyBuYWNoCiAgICAvLyBHcnVwcGVuLVJhbmcg
KyBwb3NpdGlvbiBzb3J0aWVydCDigJQgUmVpaGVuZm9sZ2UgdWViZXJuZWhtZW4uCiAgICB2YXIg
dGVhbSA9IChaLnBlcnNvbmVuIHx8IFtdKS5maWx0ZXIoZnVuY3Rpb24ocCkgeyByZXR1cm4gc2No
aWNodFZvbihwLCBoZXV0ZSkgPT09IHppZWw7IH0pOwogICAgaWYgKHRlYW0uaW5kZXhPZihtZSkg
PCAwKSB0ZWFtLnVuc2hpZnQobWUpOyAvLyBTaWNoZXJoZWl0cy1OZXR6CgogICAgLy8gMTQgVGFn
ZSBhYiBoZXV0ZS4KICAgIHZhciBzdGFydCA9IG5ldyBEYXRlKGhldXRlICsgJ1QwMDowMDowMCcp
OwogICAgdmFyIHRhZ2UgPSBbXTsKICAgIGZvciAodmFyIGkgPSAwOyBpIDwgMTQ7IGkrKykgewog
ICAgICAgIHZhciBkID0gbmV3IERhdGUoc3RhcnQpOwogICAgICAgIGQuc2V0RGF0ZShzdGFydC5n
ZXREYXRlKCkgKyBpKTsKICAgICAgICB0YWdlLnB1c2goZCk7CiAgICB9CgogICAgLy8gLS0tLS0g
S29wZnplaWxlIC0tLS0tCiAgICB2YXIga29wZiA9ICc8dGggY2xhc3M9InN0LXRoLW5hbWUiPlBl
cnNvbjwvdGg+JzsKICAgIHRhZ2UuZm9yRWFjaChmdW5jdGlvbihkKSB7CiAgICAgICAgdmFyIHdl
ID0gaXN0V29jaGVuZW5kZShkKSA/ICcgc3Qtd2UnIDogJyc7CiAgICAgICAga29wZiArPSAnPHRo
IGNsYXNzPSJzdC10aC10YWcnICsgd2UgKyAnIj4nICsKICAgICAgICAgICAgJzxkaXYgY2xhc3M9
InN0LXRoLWRhdHVtIj4nICsgZXNjYXBlSFRNTChkYXR1bUt1cnpERShkKSkgKyAnPC9kaXY+JyAr
CiAgICAgICAgICAgICc8ZGl2IGNsYXNzPSJzdC10aC13dGFnIj4nICsgZXNjYXBlSFRNTCh3b2No
ZW50YWdLdXJ6KGQpKSArICc8L2Rpdj4nICsKICAgICAgICAgICAgJzwvdGg+JzsKICAgIH0pOwoK
ICAgIC8vIC0tLS0tIFBlcnNvbmVuLVplaWxlbiAtLS0tLQogICAgdmFyIHplaWxlbiA9ICcnOwog
ICAgdGVhbS5mb3JFYWNoKGZ1bmN0aW9uKHApIHsKICAgICAgICB2YXIgaXN0SWNoID0gU3RyaW5n
KHAuaWQpID09PSBTdHJpbmcoWi5tZWluZVBlcnNvbklkKTsKICAgICAgICB2YXIgbWV0YSA9IChw
LmdydXBwZSB8fCAnPycpICsgKHAub2UgPyAnIMK3ICcgKyBwLm9lIDogJycpOwogICAgICAgIHZh
ciBuYW1lWmVsbGUgPSAnPHRkIGNsYXNzPSJzdC10ZC1uYW1lIj4nICsKICAgICAgICAgICAgJzxk
aXYgY2xhc3M9InN0LXBlcnNvbiI+JyArCiAgICAgICAgICAgICAgICBhdmF0YXJLcmVpc0h0bWwo
cCwgMjIpICsKICAgICAgICAgICAgICAgICc8ZGl2IGNsYXNzPSJzdC1wZXJzb24tdHh0Ij4nICsK
ICAgICAgICAgICAgICAgICAgICAnPGRpdiBjbGFzcz0ic3QtcGVyc29uLW5hbWUiPicgKyBlc2Nh
cGVIVE1MKHAubmFtZSB8fCAnJykgKwogICAgICAgICAgICAgICAgICAgICAgICAocC52b3JuYW1l
ID8gJyAnICsgZXNjYXBlSFRNTChwLnZvcm5hbWUpIDogJycpICsgJzwvZGl2PicgKwogICAgICAg
ICAgICAgICAgICAgICc8ZGl2IGNsYXNzPSJzdC1wZXJzb24tbWV0YSI+JyArIGVzY2FwZUhUTUwo
bWV0YSkgKyAnPC9kaXY+JyArCiAgICAgICAgICAgICAgICAnPC9kaXY+JyArCiAgICAgICAgICAg
ICc8L2Rpdj48L3RkPic7CgogICAgICAgIHZhciB6ZWxsZW4gPSAnJzsKICAgICAgICB0YWdlLmZv
ckVhY2goZnVuY3Rpb24oZCkgewogICAgICAgICAgICB2YXIgZFN0ciA9IGRhdHVtU3RyKGQpOwog
ICAgICAgICAgICB2YXIgZSA9IChaLnBsYW51bmcuZWludHJhZWdlIHx8IHt9KVtkU3RyXSB8fCB7
fTsKICAgICAgICAgICAgdmFyIHdlcnQgPSBlW1N0cmluZyhwLmlkKV0gfHwgJyc7CiAgICAgICAg
ICAgIHZhciBmYXJiZW4gPSBaLmNvZGVNYXBbd2VydF0gfHwge307CiAgICAgICAgICAgIHZhciB3
ZSA9IGlzdFdvY2hlbmVuZGUoZCkgPyAnIHN0LXdlJyA6ICcnOwogICAgICAgICAgICB2YXIgc3R5
bGUgPSAnJzsKICAgICAgICAgICAgdmFyIGFuemVpZ2UgPSAnJzsKICAgICAgICAgICAgaWYgKHdl
cnQgJiYgZmFyYmVuLmhpbnRlcmdydW5kKSB7CiAgICAgICAgICAgICAgICBzdHlsZSA9ICcgc3R5
bGU9ImJhY2tncm91bmQtY29sb3I6JyArIGVzY2FwZUF0dHIoZmFyYmVuLmhpbnRlcmdydW5kKSAr
CiAgICAgICAgICAgICAgICAgICAgICAgICc7Y29sb3I6JyArIGVzY2FwZUF0dHIoZmFyYmVuLnNj
aHJpZnQgfHwgJyMwMDAnKSArICciJzsKICAgICAgICAgICAgICAgIGFuemVpZ2UgPSBlc2NhcGVI
VE1MKGZhcmJlbi5rdWVyemVsIHx8IHdlcnQpOwogICAgICAgICAgICB9IGVsc2UgaWYgKHdlcnQp
IHsKICAgICAgICAgICAgICAgIGFuemVpZ2UgPSBlc2NhcGVIVE1MKHdlcnQpOwogICAgICAgICAg
ICB9CiAgICAgICAgICAgIHplbGxlbiArPSAnPHRkIGNsYXNzPSJzdC10ZC10YWcnICsgd2UgKyAn
IicgKyBzdHlsZSArICcgdGl0bGU9IicgKyBlc2NhcGVBdHRyKHdlcnQpICsgJyI+JyArIGFuemVp
Z2UgKyAnPC90ZD4nOwogICAgICAgIH0pOwoKICAgICAgICB6ZWlsZW4gKz0gJzx0ciBjbGFzcz0i
c3QtemVpbGUnICsgKGlzdEljaCA/ICcgc3QtemVpbGUtaWNoJyA6ICcnKSArICciPicgKyBuYW1l
WmVsbGUgKyB6ZWxsZW4gKyAnPC90cj4nOwogICAgfSk7CgogICAgdmFyIGtvZXJwZXIgPQogICAg
ICAgICc8ZGl2IGNsYXNzPSJzdC1rb3BmaW5mbyI+JyArCiAgICAgICAgICAgICc8c3BhbiBjbGFz
cz0ic3QtYmFkZ2Ugc3QtYmFkZ2UtJyArIHppZWwgKyAnIj4nICsgZXNjYXBlSFRNTChTQ0hJQ0hU
X05BTUVbemllbF0gfHwgemllbCkgKyAnPC9zcGFuPicgKwogICAgICAgICAgICAnPHNwYW4gY2xh
c3M9InN0LXplaXRyYXVtIj4xNCBUYWdlIGFiICcgKyBlc2NhcGVIVE1MKGRhdHVtRm9ybWF0REUo
aGV1dGUpKSArICcgwrcgJyArCiAgICAgICAgICAgICAgICB0ZWFtLmxlbmd0aCArICcgUGVyc29u
ZW48L3NwYW4+JyArCiAgICAgICAgICAgICc8c3BhbiBjbGFzcz0ic3QtaGlud2VpcyI+VGVhbSBi
ZXN0aW1tdCBuYWNoIGhldXRpZ2VyIFNjaGljaHQgKGlua2wuIFdhY2hmcmVpL0RpZW5zdGZyZWkg
bGF1dCBSb3RhdGlvbikuPC9zcGFuPicgKwogICAgICAgICc8L2Rpdj4nICsKICAgICAgICAnPGRp
diBjbGFzcz0ic3Qtc2Nyb2xsIj48dGFibGUgY2xhc3M9InN0LXRhYmVsbGUiPjx0aGVhZD48dHI+
JyArIGtvcGYgKyAnPC90cj48L3RoZWFkPicgKwogICAgICAgICc8dGJvZHk+JyArIHplaWxlbiAr
ICc8L3Rib2R5PjwvdGFibGU+PC9kaXY+JzsKCiAgICB2YXIgZnVzcyA9ICc8YnV0dG9uIGNsYXNz
PSJidG4iIGlkPSJzdC1zY2hsaWVzc2VuIiB0eXBlPSJidXR0b24iPlNjaGxpZcOfZW48L2J1dHRv
bj4nOwoKICAgIG1vZGFsWmVpZ2VuKCdNZWluIFNjaGljaHQtVGVhbScsIGtvZXJwZXIsIGZ1c3Ms
IG51bGwsIG51bGwsIHsgcmVpbmVyRGlhbG9nOiB0cnVlIH0pOwogICAgdmFyIG1JbmhhbHQgPSBk
b2N1bWVudC5xdWVyeVNlbGVjdG9yKCcjbW9kYWwtb3ZlcmxheSAubW9kYWwtaW5oYWx0Jyk7CiAg
ICBpZiAobUluaGFsdCkgbUluaGFsdC5jbGFzc0xpc3QuYWRkKCdtb2RhbC1pbmhhbHQtZ3Jvc3Mn
KTsKICAgIHZhciBidG4gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnc3Qtc2NobGllc3Nlbicp
OwogICAgaWYgKGJ0bikgYnRuLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgbW9kYWxTY2hsaWVz
c2VuKTsKfQo=
### FILE: js/statistik.js | 122035
Ly8gPT09IHN0YXRpc3Rpay5qcyA9PT0KLy8gU3RhdGlzdGlrLVRhYjogS1BJcywgc29ydGllcmJh
cmUgQmFsa2VuLUNoYXJ0cyBwcm8gUGVyc29uLCBGYWlybmVzcy0KLy8gQW56ZWlnZSwgTXVzdGVy
LUFuYWx5c2UsIEFid2VzZW5oZWl0cy1LYWNoZWxuLCBEZXRhaWwtVGFiZWxsZSwgUHJvc2EtVGV4
dC4KCmltcG9ydCB7IFogfSBmcm9tICcuL2NvcmVfc3RhdGUuanMnOwppbXBvcnQgewogICAgZXNj
YXBlSFRNTCwgZXNjYXBlQXR0ciwKICAgIGRhdHVtU3RyLCBkYXR1bUZvcm1hdERFLCBkYXR1bUt1
cnpERSwKICAgIF9wZXJzb25BbnplaWdlLCByZW5kZXJFcnJvckJveAp9IGZyb20gJy4vY29yZV91
dGlsLmpzJzsKaW1wb3J0IHsgdG9hc3QsIG1vZGFsWmVpZ2VuLCBtb2RhbFNjaGxpZXNzZW4sIGxh
ZGVPdmVybGF5WmVpZ2VuLCBsYWRlT3ZlcmxheVZlcnN0ZWNrZW4gfSBmcm9tICcuL3VpX2RpYWxv
Zy5qcyc7CmltcG9ydCB7IGFwaSB9IGZyb20gJy4vY29yZV9hcGkuanMnOwppbXBvcnQgeyBkYXJm
U3RhdGlzdGlrU3ViIH0gZnJvbSAnLi9jb3JlX3Blcm1pc3Npb25zLmpzJzsKaW1wb3J0IHsgZmVh
dHVyZUlzdEFrdGl2IH0gZnJvbSAnLi9hZG1pbi5qcyc7Ci8vIGFrdGl2ZUZ1ZWhydW5nIGxpZWZl
cnQgcHJvIFRhZytTY2hpY2h0IGRpZSBUb3AtMiBuYWNoIEZ1bmt0aW9ucy1SYW5nCi8vICsgUG9z
aXRpb24g4oCUIGFsc28gZ2VuYXUgZGllIHNjaHJhZmZpZXJ0IGRhcmdlc3RlbGx0ZW4gMS4vMi4g
VkkzLURHTC4KaW1wb3J0IHsgYWt0aXZlRnVlaHJ1bmcgfSBmcm9tICcuL2dyaWRfZWRpdG9yLmpz
JzsKaW1wb3J0IHsgYXVzd2VydGVuIH0gZnJvbSAnLi9zdGF0aXN0aWtfZW5naW5lLmpzJzsKaW1w
b3J0IHsgZGlhZ3JhbW1SZW5kZXJuIH0gZnJvbSAnLi9zdGF0aXN0aWtfY2hhcnRzLmpzJzsKCiAg
ICAvLyA9PT09PSBTdGF0aXN0aWsgPT09PT0KCiAgICB2YXIgc3RhdEZpbHRlciA9ICdhbGxlJzsK
CiAgICAvLyBBbm9ueW1pc2llcnVuZ3MtTWFwcGluZyAoQ2hlcnJ5LVBpY2sgMWFlZmUyNiwgaGlu
dGVyIFRvZ2dsZQogICAgLy8gYGZlYXR1cmVzLnN0YXRpc3Rpa0Fub255bWApLiBXaXJkIHp1IEJl
Z2lubiBqZWRlcyBzdGF0aXN0aWtSZW5kZXJuKCkKICAgIC8vIG5ldSBhdWZnZWJhdXQ6IGplZGVy
IHMubmFtZSAtPiAiUGVyc29uIE4iIGdlbWFlc3MgUmVpaGVuZm9sZ2UgaW4gc3RhdHMuCiAgICAv
LyBfc3RhdEFuemVpZ2VOYW1lKHMpIGxpZWZlcnQgZGVuIGFuenV6ZWlnZW5kZW4gTmFtZW4g4oCU
IGJlaSBkZWFrdGl2ZW0KICAgIC8vIEZlYXR1cmUgaXN0IGRhcyBlaW5mYWNoIHMubmFtZS4KICAg
IHZhciBfc3RhdEFub25Ba3RpdiA9IGZhbHNlOwogICAgdmFyIF9zdGF0QW5vbk1hcCAgID0ge307
CiAgICBmdW5jdGlvbiBfc3RhdEFuemVpZ2VOYW1lKHMpIHsKICAgICAgICBpZiAoX3N0YXRBbm9u
QWt0aXYpIHJldHVybiBfc3RhdEFub25NYXBbcy5uYW1lXSB8fCBzLm5hbWU7CiAgICAgICAgLy8g
U2VydmVyIGxpZWZlcnQgIk5hY2huYW1lLCBWb3JuYW1lIi4gV2VubiBkZXIgVm9ybmFtZSBsZWVy
IGlzdCwKICAgICAgICAvLyBibGVpYnQgZWluIGhhZW5nZW5kZXMgS29tbWEg4oCUIGFic2NobmVp
ZGVuLgogICAgICAgIHZhciBuID0gcy5uYW1lIHx8ICcnOwogICAgICAgIHZhciBrID0gbi5pbmRl
eE9mKCcsJyk7CiAgICAgICAgaWYgKGsgPCAwKSByZXR1cm4gbjsKICAgICAgICB2YXIgbmFjaCA9
IG4uc3Vic3RyaW5nKGsgKyAxKS50cmltKCk7CiAgICAgICAgaWYgKCFuYWNoKSByZXR1cm4gbi5z
dWJzdHJpbmcoMCwgaykudHJpbSgpOwogICAgICAgIHJldHVybiBuOwogICAgfQoKICAgIC8vIEth
dGVnb3JpZS1TdGF0ZSBmdWVyIGRpZSBCYWxrZW4tQW5zaWNodC4gU2Vzc2lvbnMtbG9rYWwuCiAg
ICAvLyBBa3RpdmUgS2F0ZWdvcmllIGJlc3RpbW10LCB3ZWxjaGUgU2VnbWVudGUgZGVyIEJhbGtl
biB6ZWlndCB1bmQgbmFjaAogICAgLy8gd2VsY2hlbSBTdW1tZW4tRmVsZCBzb3J0aWVydCB3aXJk
LgogICAgdmFyIF9zdGF0S2F0ZWdvcmllICAgID0gJ3NjaGljaHRlbic7CiAgICB2YXIgX3N0YXRT
b3J0UmljaHR1bmcgPSAnZGVzYyc7CgogICAgLy8gS2F0ZWdvcmllLURlZmluaXRpb246IHBybyBL
YXRlZ29yaWUgZWluZSBMaXN0ZSB2b24gU2VnbWVudGVuCiAgICAvLyAoRmVsZCwgTGFiZWwsIEZh
cmJlKSB1bmQgZGFzIFN1bW1lbi1GZWxkIGZ1ZXIgZGllIFNvcnRpZXJ1bmcuCiAgICAvLyBLcmFu
ayAoa3IpIGlzdCBCRVdVU1NUIG5pY2h0IGVudGhhbHRlbiDigJQgRGF0ZW5zY2h1dHotQW5mb3Jk
ZXJ1bmcsCiAgICAvLyBlcnNjaGVpbnQgbnVyIGluIGRlciBEZXRhaWwtVGFiZWxsZSBnYW56IHVu
dGVuLgogICAgdmFyIFNUQVRfS0FURUdPUklFTiA9IHsKICAgICAgICBzY2hpY2h0ZW46IHsKICAg
ICAgICAgICAgbGFiZWw6ICdTY2hpY2h0ZW4nLAogICAgICAgICAgICBzZWdtZW50ZTogWwogICAg
ICAgICAgICAgICAgeyBmZWxkOiAnZnJ1ZWgnLCAgICAgICAgbGFiZWw6ICdGcsO8aCcsICAgIGZh
cmJlOiAndmFyKC0tZmFyYmUtZnJ1ZWgpJyB9LAogICAgICAgICAgICAgICAgeyBmZWxkOiAnc3Bh
ZXQnLCAgICAgICAgbGFiZWw6ICdTcMOkdCcsICAgIGZhcmJlOiAndmFyKC0tZmFyYmUtc3BhZXQp
JyB9LAogICAgICAgICAgICAgICAgeyBmZWxkOiAnbmFjaHQnLCAgICAgICAgbGFiZWw6ICdOYWNo
dCcsICAgZmFyYmU6ICd2YXIoLS1mYXJiZS1uYWNodCknIH0sCiAgICAgICAgICAgICAgICB7IGZl
bGQ6ICdzb25kZXJkaWVuc3QnLCBsYWJlbDogJ1NEJywgICAgICBmYXJiZTogJ3ZhcigtLXN0YXQt
c2QpJyB9CiAgICAgICAgICAgIF0sCiAgICAgICAgICAgIHNvcnRGZWxkOiAnZ2VzYW10JywKICAg
ICAgICAgICAgc29ydExhYmVsOiAnzqMgRGllbnN0ZScKICAgICAgICB9LAogICAgICAgIHdvY2hl
bmVuZGU6IHsKICAgICAgICAgICAgbGFiZWw6ICdXb2NoZW5lbmRkaWVuc3RlJywKICAgICAgICAg
ICAgc2VnbWVudGU6IFsKICAgICAgICAgICAgICAgIHsgZmVsZDogJ3NhbXN0YWdEaWVuc3RlJywg
IGxhYmVsOiAnU2EnLCAgICAgICBmYXJiZTogJ3ZhcigtLXN0YXQtc2Ftc3RhZyknIH0sCiAgICAg
ICAgICAgICAgICB7IGZlbGQ6ICdzb25udGFnRGllbnN0ZScsICBsYWJlbDogJ1NvJywgICAgICAg
ZmFyYmU6ICd2YXIoLS1zdGF0LXNvbm50YWcpJyB9LAogICAgICAgICAgICAgICAgeyBmZWxkOiAn
ZmVpZXJ0YWdEaWVuc3RlJywgbGFiZWw6ICdGZWllcnRhZycsIGZhcmJlOiAndmFyKC0tc3RhdC1m
ZWllcnRhZyknIH0KICAgICAgICAgICAgXSwKICAgICAgICAgICAgLy8gS29tcGxldHRlIFdFIHdp
cmQgYWxzIHp1c2FldHpsaWNoZSBLZW5uemFobCByZWNodHMgZ2V6ZWlndAogICAgICAgICAgICBl
eHRyYTogeyBmZWxkOiAna29tcGxldHRlV0UnLCBsYWJlbDogJ0tvbXBsZXR0ZSBXRScsIGZhcmJl
OiAndmFyKC0tc3RhdC1rb21wbGV0dGUtd2UpJyB9LAogICAgICAgICAgICAvLyBTdW1tZSB1ZWJl
ciBTYStTbytGZWllcnRhZyAoY29tcHV0ZWQpCiAgICAgICAgICAgIHNvcnRMYWJlbDogJ86jIFdF
K0ZlaWVydGFnJwogICAgICAgIH0sCiAgICAgICAgZm9ydGJpbGR1bmc6IHsKICAgICAgICAgICAg
bGFiZWw6ICdGb3J0YmlsZHVuZycsCiAgICAgICAgICAgIHNlZ21lbnRlOiBbCiAgICAgICAgICAg
ICAgICB7IGZlbGQ6ICdmb3J0YmlsZHVuZycsICAgICAgbGFiZWw6ICdBdUYvRVRNL1NlbS9UVC9U
ekYnLCBmYXJiZTogJ3ZhcigtLXN0YXQtZm9ydGJpbGR1bmctMSknIH0sCiAgICAgICAgICAgICAg
ICB7IGZlbGQ6ICdkaWVuc3R1bnRlcnJpY2h0JywgbGFiZWw6ICdEVScsICAgICAgICAgICAgICAg
ICAgZmFyYmU6ICd2YXIoLS1zdGF0LWZvcnRiaWxkdW5nLTIpJyB9LAogICAgICAgICAgICAgICAg
eyBmZWxkOiAnbGVocmdhbmdMYW5nJywgICAgIGxhYmVsOiAnTEcnLCAgICAgICAgICAgICAgICAg
IGZhcmJlOiAndmFyKC0tc3RhdC1mb3J0YmlsZHVuZy0zKScgfQogICAgICAgICAgICBdLAogICAg
ICAgICAgICBzb3J0TGFiZWw6ICfOoyBGb3J0YmlsZHVuZycKICAgICAgICB9LAogICAgICAgIGFi
d2VzZW5oZWl0OiB7CiAgICAgICAgICAgIGxhYmVsOiAnQWJ3ZXNlbmhlaXQnLAogICAgICAgICAg
ICAvLyBLcmFuayBiZXd1c3N0IGF1c2dlbm9tbWVuIChEYXRlbnNjaHV0eikuIFVybGF1YiArIEt1
ciArIFNvbmRlcnVybGF1YgogICAgICAgICAgICAvLyBzaW5kIGRpZSBmYWlyZW4gVmVyZ2xlaWNo
c3dlcnRlLgogICAgICAgICAgICBzZWdtZW50ZTogWwogICAgICAgICAgICAgICAgeyBmZWxkOiAn
dXJsYXViJywgICAgICAgbGFiZWw6ICdVcmxhdWInLCAgICAgICBmYXJiZTogJ3ZhcigtLXN0YXQt
dXJsYXViKScgfSwKICAgICAgICAgICAgICAgIHsgZmVsZDogJ2t1cicsICAgICAgICAgIGxhYmVs
OiAnS3VyJywgICAgICAgICAgZmFyYmU6ICd2YXIoLS1zdGF0LWt1ciknIH0sCiAgICAgICAgICAg
ICAgICB7IGZlbGQ6ICdzb25kZXJ1cmxhdWInLCBsYWJlbDogJ1NvbmRlcnVybGF1YicsIGZhcmJl
OiAndmFyKC0tc3RhdC1zb25kZXJ1cmxhdWIpJyB9CiAgICAgICAgICAgIF0sCiAgICAgICAgICAg
IHNvcnRMYWJlbDogJ86jIEFid2VzZW5oZWl0JwogICAgICAgIH0sCiAgICAgICAgZWluZ2VzcHJ1
bmdlbjogewogICAgICAgICAgICBsYWJlbDogJ0Vpbmdlc3BydW5nZW4nLAogICAgICAgICAgICAv
LyBBdXNzZXJwbGFubWFlc3NpZ2UgQXVmcnVlY2t1bmdlbiBpbiBkaWUgMS4vMi4gVkkzLURHTC0K
ICAgICAgICAgICAgLy8gVmVyYW50d29ydHVuZyBpbm5lcmhhbGIgZGVyIDE0LVRhZ2UtVmVyYmlu
ZGxpY2hrZWl0LiBQcm8KICAgICAgICAgICAgLy8gU2NoaWNodCAoRi9TL04pIGF1Zmdlc2NobHVl
c3NlbHQgLS0gZ2xlaWNoZSBGYXJicGFsZXR0ZSB3aWUKICAgICAgICAgICAgLy8gZGllIFNjaGlj
aHRlbi1LYXRlZ29yaWUsIGRhbWl0IGRlciBCZXp1ZyBvcHRpc2NoIGtsYXIgaXN0LgogICAgICAg
ICAgICBiZXNjaHJlaWJ1bmc6ICdIaWVyIHdlcmRlbiBkaWUgTWl0YXJiZWl0ZW5kZW4gYXVmZ2Vm
w7xocnQsIGRpZSA8Yj5hdcOfZXJwbGFubcOkw59pZyBpbm5lcmhhbGIgZGVyIDE0LVRhZ2UtVmVy
YmluZGxpY2hrZWl0IGVpbmdlc3BydW5nZW48L2I+IHNpbmQgdW5kIGluIGRpZSAxLiBvZGVyIDIu
IFZJMy1ER0wtVmVyYW50d29ydHVuZyBlaW5lciBTY2hpY2h0IGF1ZmdlcsO8Y2t0IHNpbmQg4oCU
IGVudHdlZGVyIGR1cmNoIFNldHp1bmcgZHVyY2ggZGllIFZlcmFudHdvcnRsaWNoZW4gKE1haWwt
RGlhbG9nKSBvZGVyIGR1cmNoIFNlbGJzdGVpbnRyYWd1bmcgYXVzIHdhY2hmcmVpIC8gQWJ3ZXNl
bmhlaXQgaGVyYXVzLicsCiAgICAgICAgICAgIHNlZ21lbnRlOiBbCiAgICAgICAgICAgICAgICB7
IGZlbGQ6ICdlaW5nZXNwcnVuZ2VuX2YnLCBsYWJlbDogJ0Zyw7xoJywgIGZhcmJlOiAndmFyKC0t
ZmFyYmUtZnJ1ZWgpJyB9LAogICAgICAgICAgICAgICAgeyBmZWxkOiAnZWluZ2VzcHJ1bmdlbl9z
JywgbGFiZWw6ICdTcMOkdCcsICBmYXJiZTogJ3ZhcigtLWZhcmJlLXNwYWV0KScgfSwKICAgICAg
ICAgICAgICAgIHsgZmVsZDogJ2Vpbmdlc3BydW5nZW5fbicsIGxhYmVsOiAnTmFjaHQnLCBmYXJi
ZTogJ3ZhcigtLWZhcmJlLW5hY2h0KScgfQogICAgICAgICAgICBdLAogICAgICAgICAgICBzb3J0
RmVsZDogICdlaW5nZXNwcnVuZ2VuJywKICAgICAgICAgICAgc29ydExhYmVsOiAnzqMgRWluc3By
w7xuZ2UnCiAgICAgICAgfQogICAgfTsKCiAgICAvLyBTdW1tZSBkZXIgS2F0ZWdvcmllLVNlZ21l
bnRlIGZ1ZXIgZWluZSBQZXJzb24gZXJtaXR0ZWxuLgogICAgZnVuY3Rpb24gX3N0YXRLYXRTdW1t
ZShzLCBrYXQpIHsKICAgICAgICBpZiAoa2F0LnNvcnRGZWxkKSByZXR1cm4gc1trYXQuc29ydEZl
bGRdIHx8IDA7CiAgICAgICAgdmFyIHN1bSA9IDA7CiAgICAgICAga2F0LnNlZ21lbnRlLmZvckVh
Y2goZnVuY3Rpb24oc2VnKSB7IHN1bSArPSBzW3NlZy5mZWxkXSB8fCAwOyB9KTsKICAgICAgICBy
ZXR1cm4gc3VtOwogICAgfQoKICAgIGZ1bmN0aW9uIHN0YXRpc3Rpa0ZpbHRlckZ1ZWxsZW4oKSB7
CiAgICAgICAgLy8gR3J1cHBlbi1Ecm9wZG93biBhdXMgZGVtIGFrdHVlbGxlbiBhZG1pbi5ncnVw
cGVuIGF1ZmJhdWVuIOKAlCBzb25zdCBrb2VubmVuCiAgICAgICAgLy8gdW1iZW5hbm50ZSBHcnVw
cGVuIG5pY2h0IG1laHIgZ2VmaWx0ZXJ0IHdlcmRlbi4gTGFiZWwgb2huZSBLdWVyemVsLAogICAg
ICAgIC8vIG51ciBkaWUgQmV6ZWljaG51bmcgKEZhbGxiYWNrIGF1ZiBkYXMgS3VlcnplbCB3ZW5u
IGtlaW5lIEJlemVpY2hudW5nKS4KICAgICAgICB2YXIgc2VsID0gZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoJ3N0YXRzLWdydXBwZW4tZmlsdGVyJyk7CiAgICAgICAgaWYgKCFzZWwpIHJldHVybjsK
ICAgICAgICB2YXIgYWt0dWVsbCA9IHNlbC52YWx1ZSB8fCAnYWxsZSc7CiAgICAgICAgdmFyIGh0
bWwgPSAnPG9wdGlvbiB2YWx1ZT0iYWxsZSI+QWxsZSBEaWVuc3RncnVwcGVuPC9vcHRpb24+JzsK
ICAgICAgICAoWi5hZG1pbi5ncnVwcGVuIHx8IFtdKS5mb3JFYWNoKGZ1bmN0aW9uKGdyKSB7CiAg
ICAgICAgICAgIHZhciBsYWJlbCA9IGdyLmJlemVpY2hudW5nIHx8IGdyLm5hbWU7CiAgICAgICAg
ICAgIGh0bWwgKz0gJzxvcHRpb24gdmFsdWU9IicgKyBlc2NhcGVBdHRyKGdyLm5hbWUpICsgJyI+
JyArIGVzY2FwZUhUTUwobGFiZWwpICsgJzwvb3B0aW9uPic7CiAgICAgICAgfSk7CiAgICAgICAg
c2VsLmlubmVySFRNTCA9IGh0bWw7CiAgICAgICAgc2VsLnZhbHVlID0gYWt0dWVsbDsKICAgIH0K
CiAgICBmdW5jdGlvbiBzdGF0aXN0aWtMYWRlbigpIHsKICAgICAgICBzdGF0aXN0aWtGaWx0ZXJG
dWVsbGVuKCk7CiAgICAgICAgLy8gUGFrZXQtQyAoMjAyNi0wNS0yOSk6IFNvZm9ydC1TcGlubmVy
LCBkYW1pdCBkZXIgVXNlciBiZWltIFRhYi1XZWNoc2VsCiAgICAgICAgLy8gbmljaHQgYXVmIGVp
bmVuIGxlZXJlbiBCZXJlaWNoIHN0YXJydCB3YWVocmVuZCBhcGkoKSBsYWV1ZnQuIFdpcmQKICAg
ICAgICAvLyBpbSB0aGVuL2NhdGNoIHdpZWRlciB3ZWdnZW5vbW1lbiwgZGFuYWNoIHVlYmVybmlt
bXQgZGllIGJlc3RlaGVuZGUKICAgICAgICAvLyBTa2VsZXRvbi1SZW5kZXItU2Nocml0dC1Mb2dp
ayAoc2VxdWVudGllbGxlcyBSZW5kZXJuIG1pdCBHbG93KS4KICAgICAgICBsYWRlT3ZlcmxheVpl
aWdlbignYW5zaWNodC1zdGF0aXN0aWsnLCAnU3RhdGlzdGlrIHdpcmQgYmVyZWNobmV0IOKApicp
OwogICAgICAgIGFwaSgnL2FwaS9zdGF0aXN0aWsnKS50aGVuKGZ1bmN0aW9uKGRhdGVuKSB7CiAg
ICAgICAgICAgIFouc3RhdGlzdGlrID0gZGF0ZW47CiAgICAgICAgICAgIGxhZGVPdmVybGF5VmVy
c3RlY2tlbignYW5zaWNodC1zdGF0aXN0aWsnKTsKICAgICAgICAgICAgc3RhdGlzdGlrUmVuZGVy
bigpOwogICAgICAgIH0pLmNhdGNoKGZ1bmN0aW9uKGUpIHsKICAgICAgICAgICAgbGFkZU92ZXJs
YXlWZXJzdGVja2VuKCdhbnNpY2h0LXN0YXRpc3RpaycpOwogICAgICAgICAgICB0b2FzdCgnRmVo
bGVyIGJlaW0gTGFkZW4gZGVyIFN0YXRpc3RpazogJyArIGUubWVzc2FnZSwgJ2ZlaGxlcicpOwog
ICAgICAgIH0pOwogICAgfQoKICAgIGZ1bmN0aW9uIHN0YXRGaWx0ZXJuKHN0YXRzKSB7CiAgICAg
ICAgaWYgKHN0YXRGaWx0ZXIgPT09ICdhbGxlJykgcmV0dXJuIHN0YXRzOwogICAgICAgIHJldHVy
biBzdGF0cy5maWx0ZXIoZnVuY3Rpb24ocykgeyByZXR1cm4gcy5ncnVwcGUgPT09IHN0YXRGaWx0
ZXI7IH0pOwogICAgfQoKICAgIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQogICAgLy8gPT09PT0gTm9Db2RlLVN0YXRpc3Rpay1C
YXVrYXN0ZW4gKyBMYXlvdXQtUmFzdGVyID09PT09PT09PT09CiAgICAvLyA9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgIC8vIFNl
bGJzdGdlYmF1dGUgS2FjaGVsbiAoWi5hZG1pbi5zdGF0aXN0aWtLYWNoZWxuKSBlcnNjaGVpbmVu
IGFscwogICAgLy8genVzYWV0emxpY2hlIC5zdGF0cy1wYW5lbCBpbSAjc3RhdHMtZ3JpZC4gUmVp
aGVuZm9sZ2UvQnJlaXRlL1NpY2h0YmFya2VpdAogICAgLy8gQUxMRVIgVGlsZXMgKGZlc3RlIFBh
bmVscyArIEJhdWthc3Rlbikgc3RldWVydCBaLmFkbWluLnN0YXRpc3Rpa0xheW91dC4KICAgIC8v
IEJhdWVuIGRhcmYgbnVyIFN1cGVyVXNlciArIEdlc2FtdHZlcmFudHdvcnRsaWNoIChCdWlsZGVy
IGxlYnQgaGllciBpbQogICAgLy8gU3RhdGlzdGlrLVRhYik7IGRhcyBSYXN0ZXItQW5vcmRuZW4g
bGVidCBpbSBBZG1pbiAoYWRtaW5fc3RhdGlzdGlrLmpzKS4KICAgIC8vCiAgICAvLyBXaWNodGln
OiBCYXVrYXN0ZW4tS2FjaGVsbiB0cmFnZW4gaWhyZW4gRUlHRU5FTiAiV2VyIi1GaWx0ZXIgdW5k
IHJlY2huZW4KICAgIC8vIGJld3Vzc3QgZ2VnZW4gZGllIFZPTExFIFouc3RhdGlzdGlrIChuaWNo
dCBnZWdlbiBkZW4gZ2xvYmFsZW4gR3J1cHBlbi0KICAgIC8vIEZpbHRlciBvYmVuKSDigJQgZWlu
ZSBnZXNwZWljaGVydGUgS2FjaGVsIGlzdCBnbG9iYWwgdW5kIHNlbGJzdC1lcmtsYWVyZW5kLgoK
ICAgIHZhciBCUkVJVEVfU1BBTiAgPSB7IHZvbGw6IDYsIGhhbGI6IDMsIGRyaXR0ZWw6IDIgfTsK
ICAgIHZhciBCUkVJVEVfUkFORyAgPSB7IGRyaXR0ZWw6IDAsIGhhbGI6IDEsIHZvbGw6IDIgfTsK
CiAgICAvLyBGZXN0ZSBQYW5lbHM6IGlkICg9IGRhdGEtdGlsZS1pZCBpbSBIVE1MKSwgU3RhbmRh
cmQtIHVuZCBNaW5kZXN0YnJlaXRlLgogICAgLy8gU2Nod2VyZSBUYWJlbGxlbi1QYW5lbHMgZHVl
cmZlbiBuaWNodCB1bnRlciAidm9sbCIgKHNvbnN0IGJyZWNoZW4KICAgIC8vIEhlYXRtYXAvVGFn
ZXNhbnRlaWxlL1Byb3NhKS4gdmVydGVpbHVuZy9mYWlybmVzcyBzaW5kIGZyZWkgd2FlaGxiYXIu
CiAgICB2YXIgQlVJTFRJTl9USUxFUyA9IFsKICAgICAgICB7IGlkOiAndmVydGVpbHVuZycsICAg
dGl0ZWw6ICdTY2hpY2h0dmVydGVpbHVuZycsICAgICAgICAgICAgICAgIGRlZmF1bHRCcmVpdGU6
ICdoYWxiJywgbWluQnJlaXRlOiAnZHJpdHRlbCcgfSwKICAgICAgICB7IGlkOiAnZmFpcm5lc3Mn
LCAgICAgdGl0ZWw6ICdXRS0gJiBGVC1GYWlybmVzcycsICAgICAgICAgICAgICAgIGRlZmF1bHRC
cmVpdGU6ICdoYWxiJywgbWluQnJlaXRlOiAnZHJpdHRlbCcgfSwKICAgICAgICB7IGlkOiAnbWlr
cm90ZWFtcycsICAgdGl0ZWw6ICdNaWtyb3RlYW1zIOKAlCBWZXJmw7xnYmFya2VpdCcsICAgICAg
IGRlZmF1bHRCcmVpdGU6ICd2b2xsJywgbWluQnJlaXRlOiAndm9sbCcgfSwKICAgICAgICB7IGlk
OiAnbmViZW53YWNoZW4nLCAgdGl0ZWw6ICdOZWJlbndhY2hlbi1WZXJhbnR3b3J0dW5nJywgICAg
ICAgIGRlZmF1bHRCcmVpdGU6ICd2b2xsJywgbWluQnJlaXRlOiAndm9sbCcgfSwKICAgICAgICB7
IGlkOiAndGFnZXNhbnRlaWxlJywgdGl0ZWw6ICdUYWdlcy1BbnRlaWxlIHBybyBUZWFtJywgICAg
ICAgICAgIGRlZmF1bHRCcmVpdGU6ICd2b2xsJywgbWluQnJlaXRlOiAndm9sbCcgfSwKICAgICAg
ICB7IGlkOiAncHJvc2EnLCAgICAgICAgdGl0ZWw6ICdEZXRhaWxhbmFseXNlIHBybyBQZXJzb24n
LCAgICAgICAgIGRlZmF1bHRCcmVpdGU6ICd2b2xsJywgbWluQnJlaXRlOiAndm9sbCcgfQogICAg
XTsKCiAgICAvLyBNZXRyaWstS2F0YWxvZyBmdWVyIGRlbiBCYXVrYXN0ZW4uIGZuKHMpIC0+IFph
aGxlbndlcnQgcHJvIFBlcnNvbi4KICAgIC8vIEtSQU5LIGlzdCBiZXd1c3N0IE5JQ0hUIGVudGhh
bHRlbiAoRGF0ZW5zY2h1dHosIHdpZSB1ZWJlcmFsbCBzb25zdCkuCiAgICB2YXIgQkFVS0FTVEVO
X01FVFJJS0VOID0gWwogICAgICAgIHsga2V5OidnZXNhbXQnLCAgICAgICAgICBncnVwcGU6J1Nj
aGljaHRlbicsICAgICAgICAgICAgbGFiZWw6J0RpZW5zdGUgZ2VzYW10JywgICAgICAgICAgZWlu
aGVpdDonRGllbnN0ZScsIGZuOmZ1bmN0aW9uKHMpe3JldHVybiBzLmdlc2FtdHx8MDt9IH0sCiAg
ICAgICAgeyBrZXk6J2ZydWVoJywgICAgICAgICAgIGdydXBwZTonU2NoaWNodGVuJywgICAgICAg
ICAgICBsYWJlbDonRnLDvGhkaWVuc3RlJywgICAgICAgICAgICAgZWluaGVpdDonRGllbnN0ZScs
IGZuOmZ1bmN0aW9uKHMpe3JldHVybiBzLmZydWVofHwwO30gfSwKICAgICAgICB7IGtleTonc3Bh
ZXQnLCAgICAgICAgICAgZ3J1cHBlOidTY2hpY2h0ZW4nLCAgICAgICAgICAgIGxhYmVsOidTcMOk
dGRpZW5zdGUnLCAgICAgICAgICAgICBlaW5oZWl0OidEaWVuc3RlJywgZm46ZnVuY3Rpb24ocyl7
cmV0dXJuIHMuc3BhZXR8fDA7fSB9LAogICAgICAgIHsga2V5OiduYWNodCcsICAgICAgICAgICBn
cnVwcGU6J1NjaGljaHRlbicsICAgICAgICAgICAgbGFiZWw6J05hY2h0ZGllbnN0ZScsICAgICAg
ICAgICAgZWluaGVpdDonRGllbnN0ZScsIGZuOmZ1bmN0aW9uKHMpe3JldHVybiBzLm5hY2h0fHww
O30gfSwKICAgICAgICB7IGtleTonc29uZGVyZGllbnN0JywgICAgZ3J1cHBlOidTY2hpY2h0ZW4n
LCAgICAgICAgICAgIGxhYmVsOidTb25kZXJkaWVuc3RlIChTRC9TRSknLCAgIGVpbmhlaXQ6J0Rp
ZW5zdGUnLCBmbjpmdW5jdGlvbihzKXtyZXR1cm4gcy5zb25kZXJkaWVuc3R8fDA7fSB9LAogICAg
ICAgIHsga2V5OidkZ2wnLCAgICAgICAgICAgICBncnVwcGU6J1NjaGljaHRlbicsICAgICAgICAg
ICAgbGFiZWw6J0RHTC1FaW5zw6R0emUnLCAgICAgICAgICAgIGVpbmhlaXQ6J0VpbnPDpHR6ZScs
IGZuOmZ1bmN0aW9uKHMpe3JldHVybiBzLmRnbHx8MDt9IH0sCiAgICAgICAgeyBrZXk6J3dkZics
ICAgICAgICAgICAgIGdydXBwZTonU2NoaWNodGVuJywgICAgICAgICAgICBsYWJlbDonV0RGLUVp
bnPDpHR6ZScsICAgICAgICAgICAgZWluaGVpdDonRWluc8OkdHplJywgZm46ZnVuY3Rpb24ocyl7
cmV0dXJuIHMud2RmfHwwO30gfSwKICAgICAgICB7IGtleTonZmJwJywgICAgICAgICAgICAgZ3J1
cHBlOidTY2hpY2h0ZW4nLCAgICAgICAgICAgIGxhYmVsOidGQlAtRWluc8OkdHplJywgICAgICAg
ICAgICBlaW5oZWl0OidFaW5zw6R0emUnLCBmbjpmdW5jdGlvbihzKXtyZXR1cm4gcy5mYnB8fDA7
fSB9LAoKICAgICAgICB7IGtleTond2VfZnRfZ2VzYW10JywgICAgZ3J1cHBlOidXb2NoZW5lbmRl
ICYgRmVpZXJ0YWcnLCBsYWJlbDonV0UtICYgRmVpZXJ0YWdzZGllbnN0ZScsICBlaW5oZWl0OidE
aWVuc3RlJywgZm46ZnVuY3Rpb24ocyl7cmV0dXJuIChzLnNhbXN0YWdEaWVuc3RlfHwwKSsocy5z
b25udGFnRGllbnN0ZXx8MCkrKHMuZmVpZXJ0YWdEaWVuc3RlfHwwKTt9IH0sCiAgICAgICAgeyBr
ZXk6J3NhbXN0YWdEaWVuc3RlJywgIGdydXBwZTonV29jaGVuZW5kZSAmIEZlaWVydGFnJywgbGFi
ZWw6J1NhbXN0YWdzZGllbnN0ZScsICAgICAgICAgZWluaGVpdDonRGllbnN0ZScsIGZuOmZ1bmN0
aW9uKHMpe3JldHVybiBzLnNhbXN0YWdEaWVuc3RlfHwwO30gfSwKICAgICAgICB7IGtleTonc29u
bnRhZ0RpZW5zdGUnLCAgZ3J1cHBlOidXb2NoZW5lbmRlICYgRmVpZXJ0YWcnLCBsYWJlbDonU29u
bnRhZ3NkaWVuc3RlJywgICAgICAgICBlaW5oZWl0OidEaWVuc3RlJywgZm46ZnVuY3Rpb24ocyl7
cmV0dXJuIHMuc29ubnRhZ0RpZW5zdGV8fDA7fSB9LAogICAgICAgIHsga2V5OidmZWllcnRhZ0Rp
ZW5zdGUnLCBncnVwcGU6J1dvY2hlbmVuZGUgJiBGZWllcnRhZycsIGxhYmVsOidGZWllcnRhZ3Nk
aWVuc3RlJywgICAgICAgIGVpbmhlaXQ6J0RpZW5zdGUnLCBmbjpmdW5jdGlvbihzKXtyZXR1cm4g
cy5mZWllcnRhZ0RpZW5zdGV8fDA7fSB9LAogICAgICAgIHsga2V5Oidrb21wbGV0dGVXRScsICAg
ICBncnVwcGU6J1dvY2hlbmVuZGUgJiBGZWllcnRhZycsIGxhYmVsOidLb21wbGV0dGUgV29jaGVu
ZW5kZW4nLCAgIGVpbmhlaXQ6J1dFJywgICAgICBmbjpmdW5jdGlvbihzKXtyZXR1cm4gcy5rb21w
bGV0dGVXRXx8MDt9IH0sCiAgICAgICAgeyBrZXk6J3dvY2hlbmVuZFRhZ2UnLCAgIGdydXBwZTon
V29jaGVuZW5kZSAmIEZlaWVydGFnJywgbGFiZWw6J1dFLVRhZ2UgaW0gRGllbnN0JywgICAgICAg
ZWluaGVpdDonVGFnZScsICAgIGZuOmZ1bmN0aW9uKHMpe3JldHVybiBzLndvY2hlbmVuZFRhZ2V8
fDA7fSB9LAogICAgICAgIHsga2V5Oid3ZVRhZ2VWZXJmdWVnYmFyJyxncnVwcGU6J1dvY2hlbmVu
ZGUgJiBGZWllcnRhZycsIGxhYmVsOidGcmVpZSBXRS1UYWdlICh2ZXJmw7xnYmFyKScsZWluaGVp
dDonVGFnZScsICAgZm46ZnVuY3Rpb24ocyl7cmV0dXJuIHMud2VUYWdlVmVyZnVlZ2Jhcnx8MDt9
IH0sCgogICAgICAgIHsga2V5OidlaW5nZXNwcnVuZ2VuJywgICBncnVwcGU6J0VpbnNwcmluZ2Vu
JywgICAgICAgICAgbGFiZWw6J0VpbnNwcsO8bmdlIGdlc2FtdCcsICAgICAgIGVpbmhlaXQ6J0Vp
bnNwcsO8bmdlJywgZm46ZnVuY3Rpb24ocyl7cmV0dXJuIHMuZWluZ2VzcHJ1bmdlbnx8MDt9IH0s
CiAgICAgICAgeyBrZXk6J2Vpbmdlc3BydW5nZW5fZicsIGdydXBwZTonRWluc3ByaW5nZW4nLCAg
ICAgICAgICBsYWJlbDonRWluc3Byw7xuZ2UgRnLDvGgnLCAgICAgICAgIGVpbmhlaXQ6J0VpbnNw
csO8bmdlJywgZm46ZnVuY3Rpb24ocyl7cmV0dXJuIHMuZWluZ2VzcHJ1bmdlbl9mfHwwO30gfSwK
ICAgICAgICB7IGtleTonZWluZ2VzcHJ1bmdlbl9zJywgZ3J1cHBlOidFaW5zcHJpbmdlbicsICAg
ICAgICAgIGxhYmVsOidFaW5zcHLDvG5nZSBTcMOkdCcsICAgICAgICAgZWluaGVpdDonRWluc3By
w7xuZ2UnLCBmbjpmdW5jdGlvbihzKXtyZXR1cm4gcy5laW5nZXNwcnVuZ2VuX3N8fDA7fSB9LAog
ICAgICAgIHsga2V5OidlaW5nZXNwcnVuZ2VuX24nLCBncnVwcGU6J0VpbnNwcmluZ2VuJywgICAg
ICAgICAgbGFiZWw6J0VpbnNwcsO8bmdlIE5hY2h0JywgICAgICAgIGVpbmhlaXQ6J0VpbnNwcsO8
bmdlJywgZm46ZnVuY3Rpb24ocyl7cmV0dXJuIHMuZWluZ2VzcHJ1bmdlbl9ufHwwO30gfSwKCiAg
ICAgICAgeyBrZXk6J3VybGF1YicsICAgICAgICAgIGdydXBwZTonQWJ3ZXNlbmhlaXQgJiBGcmVp
JywgICBsYWJlbDonVXJsYXVic3RhZ2UnLCAgICAgICAgICAgICBlaW5oZWl0OidUYWdlJywgZm46
ZnVuY3Rpb24ocyl7cmV0dXJuIHMudXJsYXVifHwwO30gfSwKICAgICAgICB7IGtleTona3VyJywg
ICAgICAgICAgICAgZ3J1cHBlOidBYndlc2VuaGVpdCAmIEZyZWknLCAgIGxhYmVsOidLdXItVGFn
ZScsICAgICAgICAgICAgICAgIGVpbmhlaXQ6J1RhZ2UnLCBmbjpmdW5jdGlvbihzKXtyZXR1cm4g
cy5rdXJ8fDA7fSB9LAogICAgICAgIHsga2V5Oidzb25kZXJ1cmxhdWInLCAgICBncnVwcGU6J0Fi
d2VzZW5oZWl0ICYgRnJlaScsICAgbGFiZWw6J1NvbmRlcnVybGF1YicsICAgICAgICAgICAgZWlu
aGVpdDonVGFnZScsIGZuOmZ1bmN0aW9uKHMpe3JldHVybiBzLnNvbmRlcnVybGF1Ynx8MDt9IH0s
CiAgICAgICAgeyBrZXk6J3BhcmFncmFwaDIxJywgICAgIGdydXBwZTonQWJ3ZXNlbmhlaXQgJiBG
cmVpJywgICBsYWJlbDonwqcyMSAvIDIxYS1UYWdlJywgICAgICAgICAgZWluaGVpdDonVGFnZScs
IGZuOmZ1bmN0aW9uKHMpe3JldHVybiBzLnBhcmFncmFwaDIxfHwwO30gfSwKICAgICAgICB7IGtl
eTonYXpBdXNnbGVpY2hSZWluJywgZ3J1cHBlOidBYndlc2VuaGVpdCAmIEZyZWknLCAgIGxhYmVs
OidBWi1BdXNnbGVpY2gnLCAgICAgICAgICAgIGVpbmhlaXQ6J1RhZ2UnLCBmbjpmdW5jdGlvbihz
KXtyZXR1cm4gcy5hekF1c2dsZWljaFJlaW58fDA7fSB9LAogICAgICAgIHsga2V5Oid3YWNoZnJl
aScsICAgICAgICBncnVwcGU6J0Fid2VzZW5oZWl0ICYgRnJlaScsICAgbGFiZWw6J1dhY2hmcmVp
ICh3ZnIpJywgICAgICAgICAgZWluaGVpdDonVGFnZScsIGZuOmZ1bmN0aW9uKHMpe3JldHVybiBz
LndhY2hmcmVpfHwwO30gfSwKICAgICAgICB7IGtleTonZGllbnN0ZnJlaVRhZycsICAgZ3J1cHBl
OidBYndlc2VuaGVpdCAmIEZyZWknLCAgIGxhYmVsOidEaWVuc3RmcmVpIChkZnIpJywgICAgICAg
IGVpbmhlaXQ6J1RhZ2UnLCBmbjpmdW5jdGlvbihzKXtyZXR1cm4gcy5kaWVuc3RmcmVpVGFnfHww
O30gfSwKCiAgICAgICAgeyBrZXk6J2ZvcnRiaWxkdW5nJywgICAgIGdydXBwZTonQXVzLSAmIEZv
cnRiaWxkdW5nJywgICBsYWJlbDonRm9ydGJpbGR1bmcgKEF1Ri9FVE0vU2VtL1RUL1R6RiknLCBl
aW5oZWl0OidUYWdlJywgZm46ZnVuY3Rpb24ocyl7cmV0dXJuIHMuZm9ydGJpbGR1bmd8fDA7fSB9
LAogICAgICAgIHsga2V5OidkaWVuc3R1bnRlcnJpY2h0JyxncnVwcGU6J0F1cy0gJiBGb3J0Ymls
ZHVuZycsICAgbGFiZWw6J0RpZW5zdHVudGVycmljaHQgKERVKScsICAgZWluaGVpdDonVGFnZScs
IGZuOmZ1bmN0aW9uKHMpe3JldHVybiBzLmRpZW5zdHVudGVycmljaHR8fDA7fSB9LAogICAgICAg
IHsga2V5OidsZWhyZ2FuZ0xhbmcnLCAgICBncnVwcGU6J0F1cy0gJiBGb3J0YmlsZHVuZycsICAg
bGFiZWw6J0xlaHJnYW5nIChMRyknLCAgICAgICAgICAgZWluaGVpdDonVGFnZScsIGZuOmZ1bmN0
aW9uKHMpe3JldHVybiBzLmxlaHJnYW5nTGFuZ3x8MDt9IH0sCiAgICAgICAgeyBrZXk6J2xlaHJn
YW5nJywgICAgICAgIGdydXBwZTonQXVzLSAmIEZvcnRiaWxkdW5nJywgICBsYWJlbDonTGVocmdh
bmcgKyBGb3J0YmlsZHVuZyBnZXNhbXQnLCBlaW5oZWl0OidUYWdlJywgZm46ZnVuY3Rpb24ocyl7
cmV0dXJuIHMubGVocmdhbmd8fDA7fSB9CiAgICBdOwoKICAgIGZ1bmN0aW9uIF9hbGxlS2FjaGVs
bigpIHsKICAgICAgICB2YXIgYXJyID0gKFouYWRtaW4gJiYgWi5hZG1pbi5zdGF0aXN0aWtLYWNo
ZWxuKSB8fCBbXTsKICAgICAgICByZXR1cm4gQXJyYXkuaXNBcnJheShhcnIpID8gYXJyIDogW107
CiAgICB9CiAgICBmdW5jdGlvbiBfbGF5b3V0TGlzdGUoKSB7CiAgICAgICAgdmFyIGFyciA9ICha
LmFkbWluICYmIFouYWRtaW4uc3RhdGlzdGlrTGF5b3V0KSB8fCBbXTsKICAgICAgICByZXR1cm4g
QXJyYXkuaXNBcnJheShhcnIpID8gYXJyIDogW107CiAgICB9CiAgICBmdW5jdGlvbiBtZXRyaWtG
aW5kZW4oa2V5KSB7CiAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBCQVVLQVNURU5fTUVUUklL
RU4ubGVuZ3RoOyBpKyspIHsKICAgICAgICAgICAgaWYgKEJBVUtBU1RFTl9NRVRSSUtFTltpXS5r
ZXkgPT09IGtleSkgcmV0dXJuIEJBVUtBU1RFTl9NRVRSSUtFTltpXTsKICAgICAgICB9CiAgICAg
ICAgcmV0dXJuIG51bGw7CiAgICB9CiAgICBmdW5jdGlvbiBfZGVmYXVsdEJyZWl0ZShpZCkgewog
ICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgQlVJTFRJTl9USUxFUy5sZW5ndGg7IGkrKykgewog
ICAgICAgICAgICBpZiAoQlVJTFRJTl9USUxFU1tpXS5pZCA9PT0gaWQpIHJldHVybiBCVUlMVElO
X1RJTEVTW2ldLmRlZmF1bHRCcmVpdGU7CiAgICAgICAgfQogICAgICAgIHJldHVybiAnaGFsYic7
IC8vIEJhdWthc3Rlbi1LYWNoZWxuOiBEZWZhdWx0IGhhbGJlIEJyZWl0ZQogICAgfQogICAgZnVu
Y3Rpb24gX2JyZWl0ZUNsYW1wKGJyZWl0ZSwgbWluQnJlaXRlKSB7CiAgICAgICAgaWYgKCFCUkVJ
VEVfU1BBTlticmVpdGVdKSBicmVpdGUgPSAndm9sbCc7CiAgICAgICAgaWYgKCFCUkVJVEVfU1BB
TlttaW5CcmVpdGVdKSBtaW5CcmVpdGUgPSAnZHJpdHRlbCc7CiAgICAgICAgcmV0dXJuIChCUkVJ
VEVfUkFOR1ticmVpdGVdIDwgQlJFSVRFX1JBTkdbbWluQnJlaXRlXSkgPyBtaW5CcmVpdGUgOiBi
cmVpdGU7CiAgICB9CgogICAgLy8gIldlciItRmlsdGVyIGVpbmVyIEthY2hlbCBhbndlbmRlbi4K
ICAgIGZ1bmN0aW9uIF9rYWNoZWxGaWx0ZXJuKHN0YXRzLCB3ZXIpIHsKICAgICAgICB3ZXIgPSB3
ZXIgfHwgeyB0eXA6ICdhbGxlJyB9OwogICAgICAgIGlmICh3ZXIudHlwID09PSAnZ3J1cHBlJykg
ICByZXR1cm4gc3RhdHMuZmlsdGVyKGZ1bmN0aW9uKHMpeyByZXR1cm4gcy5ncnVwcGUgPT09IHdl
ci53ZXJ0OyB9KTsKICAgICAgICBpZiAod2VyLnR5cCA9PT0gJ2Z1bmt0aW9uJykgcmV0dXJuIHN0
YXRzLmZpbHRlcihmdW5jdGlvbihzKXsgcmV0dXJuIFN0cmluZyhzLmZ1bmt0aW9uIHx8ICcnKSA9
PT0gU3RyaW5nKHdlci53ZXJ0KTsgfSk7CiAgICAgICAgcmV0dXJuIHN0YXRzOwogICAgfQogICAg
ZnVuY3Rpb24gX3dlckxhYmVsKHdlcikgewogICAgICAgIHdlciA9IHdlciB8fCB7IHR5cDogJ2Fs
bGUnIH07CiAgICAgICAgaWYgKHdlci50eXAgPT09ICdncnVwcGUnKSB7CiAgICAgICAgICAgIHZh
ciBnID0gKChaLmFkbWluLmdydXBwZW4gfHwgW10pLmZpbHRlcihmdW5jdGlvbih4KXsgcmV0dXJu
IHgubmFtZSA9PT0gd2VyLndlcnQ7IH0pWzBdKTsKICAgICAgICAgICAgcmV0dXJuICdHcnVwcGUg
JyArIChnID8gKGcuYmV6ZWljaG51bmcgfHwgZy5uYW1lKSA6IHdlci53ZXJ0KTsKICAgICAgICB9
CiAgICAgICAgaWYgKHdlci50eXAgPT09ICdmdW5rdGlvbicpIHJldHVybiAnRnVua3Rpb24gJyAr
IHdlci53ZXJ0OwogICAgICAgIHJldHVybiAnQWxsZSc7CiAgICB9CgogICAgLy8gSG9yaXpvbnRh
bGVzIEJhbGtlbi1SYW5raW5nIGVpbmVyIEJhdWthc3Rlbi1LYWNoZWwgcmVuZGVybiAocmVpbmUK
ICAgIC8vIEhUTUwtRXJ6ZXVndW5nLCB3aWVkZXJ2ZXJ3ZW5kZXQgZGllIGJlc3RlaGVuZGVuIC5z
dGF0cy1iYWxrZW4tKi1TdGlsZSkuCiAgICBmdW5jdGlvbiBfa2FjaGVsRXJnZWJuaXNIdG1sKGth
Y2hlbCwgc3RhdHMpIHsKICAgICAgICB2YXIgbWV0cmlrID0gbWV0cmlrRmluZGVuKGthY2hlbC5t
ZXRyaWspOwogICAgICAgIGlmICghbWV0cmlrKSB7CiAgICAgICAgICAgIHJldHVybiAnPGRpdiBj
bGFzcz0iYWRtaW4tZW1wdHkiPjxkaXYgY2xhc3M9ImFkbWluLWVtcHR5LXRleHQiPlVuYmVrYW5u
dGUgTWV0cmlrIOKAnicgKyBlc2NhcGVIVE1MKGthY2hlbC5tZXRyaWsgfHwgJycpICsgJyIuPC9k
aXY+PC9kaXY+JzsKICAgICAgICB9CiAgICAgICAgaWYgKCFzdGF0cyB8fCAhc3RhdHMubGVuZ3Ro
KSB7CiAgICAgICAgICAgIHJldHVybiAnPGRpdiBjbGFzcz0iYWRtaW4tZW1wdHkiPjxkaXYgY2xh
c3M9ImFkbWluLWVtcHR5LXRleHQiPk5vY2gga2VpbmUgU3RhdGlzdGlrLURhdGVuIGdlbGFkZW4u
PC9kaXY+PC9kaXY+JzsKICAgICAgICB9CiAgICAgICAgdmFyIHJvd3MgPSBfa2FjaGVsRmlsdGVy
bihzdGF0cywga2FjaGVsLndlcikubWFwKGZ1bmN0aW9uKHMpeyByZXR1cm4geyBzOiBzLCB3ZXJ0
OiBtZXRyaWsuZm4ocykgfHwgMCB9OyB9KTsKICAgICAgICB2YXIgc29ydCA9IGthY2hlbC5zb3J0
IHx8ICdkZXNjJzsKICAgICAgICByb3dzLnNvcnQoZnVuY3Rpb24oYSwgYil7CiAgICAgICAgICAg
IGlmIChzb3J0ID09PSAnbmFtZScpIHJldHVybiBfc3RhdEFuemVpZ2VOYW1lKGEucykubG9jYWxl
Q29tcGFyZShfc3RhdEFuemVpZ2VOYW1lKGIucyksICdkZScpOwogICAgICAgICAgICBpZiAoYS53
ZXJ0ICE9PSBiLndlcnQpIHJldHVybiBzb3J0ID09PSAnYXNjJyA/IGEud2VydCAtIGIud2VydCA6
IGIud2VydCAtIGEud2VydDsKICAgICAgICAgICAgcmV0dXJuIF9zdGF0QW56ZWlnZU5hbWUoYS5z
KS5sb2NhbGVDb21wYXJlKF9zdGF0QW56ZWlnZU5hbWUoYi5zKSwgJ2RlJyk7CiAgICAgICAgfSk7
CiAgICAgICAgdmFyIHRvcE4gPSBrYWNoZWwudG9wTiB8fCAwOwogICAgICAgIGlmICh0b3BOID4g
MCkgcm93cyA9IHJvd3Muc2xpY2UoMCwgdG9wTik7CiAgICAgICAgaWYgKCFyb3dzLmxlbmd0aCkg
ewogICAgICAgICAgICByZXR1cm4gJzxkaXYgY2xhc3M9ImFkbWluLWVtcHR5Ij48ZGl2IGNsYXNz
PSJhZG1pbi1lbXB0eS10ZXh0Ij5LZWluZSBQZXJzb25lbiBpbSBnZXfDpGhsdGVuIEZpbHRlci48
L2Rpdj48L2Rpdj4nOwogICAgICAgIH0KICAgICAgICB2YXIgbWF4ViA9IE1hdGgubWF4LmFwcGx5
KG51bGwsIHJvd3MubWFwKGZ1bmN0aW9uKHIpeyByZXR1cm4gci53ZXJ0OyB9KSkgfHwgMTsKICAg
ICAgICB2YXIga29wZiA9ICc8ZGl2IGNsYXNzPSJzdGF0cy1iYWxrZW4ta29wZiI+JyArCiAgICAg
ICAgICAgICc8ZGl2IGNsYXNzPSJzdGF0cy1iYWxrZW4tbmFtZSI+PC9kaXY+JyArCiAgICAgICAg
ICAgICc8ZGl2IGNsYXNzPSJzdGF0cy1iYWxrZW4tYmFyLXdyYXAiPjxzcGFuIGNsYXNzPSJzdGF0
cy1iYWxrZW4ta29wZi1sYWJlbCI+JyArIGVzY2FwZUhUTUwobWV0cmlrLmxhYmVsKSArICc8L3Nw
YW4+PC9kaXY+JyArCiAgICAgICAgICAgICc8ZGl2IGNsYXNzPSJzdGF0cy1iYWxrZW4tdG90YWwi
PjxzcGFuIGNsYXNzPSJzdGF0cy1iYWxrZW4ta29wZi1sYWJlbCI+JyArIGVzY2FwZUhUTUwobWV0
cmlrLmVpbmhlaXQgfHwgJycpICsgKHNvcnQgPT09ICdhc2MnID8gJyDihpEnIDogJyDihpMnKSAr
ICc8L3NwYW4+PC9kaXY+JyArCiAgICAgICAgICAgICc8L2Rpdj4nOwogICAgICAgIHZhciByYW5n
ID0gMDsKICAgICAgICB2YXIgemVpbGVuID0gcm93cy5tYXAoZnVuY3Rpb24ocil7CiAgICAgICAg
ICAgIHJhbmcrKzsKICAgICAgICAgICAgdmFyIGJyZWl0ZSA9IChyLndlcnQgLyBtYXhWKSAqIDEw
MDsKICAgICAgICAgICAgcmV0dXJuICc8ZGl2IGNsYXNzPSJzdGF0cy1iYWxrZW4temVpbGUiPicg
KwogICAgICAgICAgICAgICAgJzxkaXYgY2xhc3M9InN0YXRzLWJhbGtlbi1uYW1lIiB0aXRsZT0i
JyArIGVzY2FwZUF0dHIoX3N0YXRBbnplaWdlTmFtZShyLnMpKSArICciPjxzcGFuIGNsYXNzPSJz
dGF0cy1iay1yYW5nIj4nICsgcmFuZyArICcuPC9zcGFuPiAnICsgZXNjYXBlSFRNTChfc3RhdEFu
emVpZ2VOYW1lKHIucykpICsgJzwvZGl2PicgKwogICAgICAgICAgICAgICAgJzxkaXYgY2xhc3M9
InN0YXRzLWJhbGtlbi1iYXItd3JhcCI+PGRpdiBjbGFzcz0ic3RhdHMtYmFsa2VuLXNlZ21lbnQi
IHN0eWxlPSJ3aWR0aDonICsgYnJlaXRlICsgJyU7YmFja2dyb3VuZDp2YXIoLS1iZy1wcmltYXJ5
KSIgdGl0bGU9IicgKyBlc2NhcGVBdHRyKG1ldHJpay5sYWJlbCArICc6ICcgKyByLndlcnQpICsg
JyI+JyArIChyLndlcnQgPiAwID8gci53ZXJ0IDogJycpICsgJzwvZGl2PjwvZGl2PicgKwogICAg
ICAgICAgICAgICAgJzxkaXYgY2xhc3M9InN0YXRzLWJhbGtlbi10b3RhbCI+JyArIHIud2VydCAr
ICc8L2Rpdj4nICsKICAgICAgICAgICAgICAgICc8L2Rpdj4nOwogICAgICAgIH0pLmpvaW4oJycp
OwogICAgICAgIHJldHVybiAnPGRpdiBjbGFzcz0ic3RhdHMtYmFsa2VuLWNvbnRhaW5lciI+JyAr
IGtvcGYgKyB6ZWlsZW4gKyAnPC9kaXY+JzsKICAgIH0KCiAgICAvLyBCYXVrYXN0ZW4tUGFuZWxz
IGltICNzdGF0cy1ncmlkIGFubGVnZW4vYWt0dWFsaXNpZXJlbi9lbnRmZXJuZW4uCiAgICBmdW5j
dGlvbiBjdXN0b21LYWNoZWxuUmVuZGVybigpIHsKICAgICAgICB2YXIgZ3JpZCA9IGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCdzdGF0cy1ncmlkJyk7CiAgICAgICAgaWYgKCFncmlkKSByZXR1cm47
CiAgICAgICAgdmFyIHN0YXRzID0gWi5zdGF0aXN0aWsgfHwgW107CiAgICAgICAgdmFyIGthY2hl
bG4gPSBfYWxsZUthY2hlbG4oKTsKICAgICAgICB2YXIgZ2V3b2xsdCA9IHt9OwogICAgICAgIGth
Y2hlbG4uZm9yRWFjaChmdW5jdGlvbihrKXsgaWYgKGsgJiYgay5pZCkgZ2V3b2xsdFtrLmlkXSA9
IHRydWU7IH0pOwogICAgICAgIC8vIFZlcndhaXN0ZSBDdXN0b20tUGFuZWxzIGVudGZlcm5lbiAo
S2FjaGVsIGdlbG9lc2NodCkuCiAgICAgICAgQXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoZ3Jp
ZC5xdWVyeVNlbGVjdG9yQWxsKCcuc3RhdHMtcGFuZWxbZGF0YS1rYWNoZWw9IjEiXScpKS5mb3JF
YWNoKGZ1bmN0aW9uKHApewogICAgICAgICAgICBpZiAoIWdld29sbHRbcC5nZXRBdHRyaWJ1dGUo
J2RhdGEtdGlsZS1pZCcpXSkgcC5yZW1vdmUoKTsKICAgICAgICB9KTsKICAgICAgICBrYWNoZWxu
LmZvckVhY2goZnVuY3Rpb24oayl7CiAgICAgICAgICAgIGlmICghayB8fCAhay5pZCkgcmV0dXJu
OwogICAgICAgICAgICB2YXIgcGFuZWwgPSBudWxsOwogICAgICAgICAgICB2YXIgdm9yaGFuZGVu
ZSA9IGdyaWQucXVlcnlTZWxlY3RvckFsbCgnLnN0YXRzLXBhbmVsW2RhdGEta2FjaGVsPSIxIl0n
KTsKICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCB2b3JoYW5kZW5lLmxlbmd0aDsgaSsr
KSB7CiAgICAgICAgICAgICAgICBpZiAodm9yaGFuZGVuZVtpXS5nZXRBdHRyaWJ1dGUoJ2RhdGEt
dGlsZS1pZCcpID09PSBrLmlkKSB7IHBhbmVsID0gdm9yaGFuZGVuZVtpXTsgYnJlYWs7IH0KICAg
ICAgICAgICAgfQogICAgICAgICAgICBpZiAoIXBhbmVsKSB7CiAgICAgICAgICAgICAgICBwYW5l
bCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOwogICAgICAgICAgICAgICAgcGFuZWwu
Y2xhc3NOYW1lID0gJ3N0YXRzLXBhbmVsJzsKICAgICAgICAgICAgICAgIHBhbmVsLnNldEF0dHJp
YnV0ZSgnZGF0YS10aWxlLWlkJywgay5pZCk7CiAgICAgICAgICAgICAgICBwYW5lbC5zZXRBdHRy
aWJ1dGUoJ2RhdGEta2FjaGVsJywgJzEnKTsKICAgICAgICAgICAgICAgIHBhbmVsLnNldEF0dHJp
YnV0ZSgnZGF0YS1taW4tYnJlaXRlJywgJ2RyaXR0ZWwnKTsKICAgICAgICAgICAgICAgIGdyaWQu
YXBwZW5kQ2hpbGQocGFuZWwpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIHZhciBpc3RWMiA9
IChrLmRpYWdyYW1tICE9IG51bGwpOwogICAgICAgICAgICB2YXIgdW50ZXJ6ZWlsZSA9IGlzdFYy
ID8gJycgOiBfd2VyTGFiZWwoay53ZXIpOwogICAgICAgICAgICBwYW5lbC5pbm5lckhUTUwgPQog
ICAgICAgICAgICAgICAgJzxkaXYgY2xhc3M9InN0YXRzLXBhbmVsLWtvcGYiPicgKwogICAgICAg
ICAgICAgICAgICAgICc8aDM+PHNwYW4gY2xhc3M9InN0YXRzLWJrLWJhZGdlIiB0aXRsZT0iU2Vs
YnN0Z2ViYXV0ZSBTdGF0aXN0aWstS2FjaGVsIj5CYXVrYXN0ZW48L3NwYW4+ICcgKyBlc2NhcGVI
VE1MKGsudGl0ZWwgfHwgJ0VpZ2VuZSBTdGF0aXN0aWsnKSArICc8L2gzPicgKwogICAgICAgICAg
ICAgICAgICAgICh1bnRlcnplaWxlID8gJzxzcGFuIGNsYXNzPSJzdGF0cy1iay13ZXIiPicgKyBl
c2NhcGVIVE1MKHVudGVyemVpbGUpICsgJzwvc3Bhbj4nIDogJycpICsKICAgICAgICAgICAgICAg
ICc8L2Rpdj4nICsKICAgICAgICAgICAgICAgICc8ZGl2IGNsYXNzPSJzdGF0cy1jaGFydC1hcmVh
Ij4nICsgKGlzdFYyID8gX2thY2hlbFYySHRtbChrKSA6IF9rYWNoZWxFcmdlYm5pc0h0bWwoaywg
c3RhdHMpKSArICc8L2Rpdj4nOwogICAgICAgIH0pOwogICAgfQoKICAgIC8vIFNwZWMtdjItS2Fj
aGVsIChtZWhyZGltZW5zaW9uYWwpIHVlYmVyIEVuZ2luZSArIG5hdGl2ZSBTVkctQ2hhcnRzIHJl
bmRlcm4uCiAgICBmdW5jdGlvbiBfa2FjaGVsVjJIdG1sKGspIHsKICAgICAgICB0cnkgewogICAg
ICAgICAgICB2YXIgZXJnID0gYXVzd2VydGVuKGspOwogICAgICAgICAgICBpZiAoX3N0YXRBbm9u
QWt0aXYpIGVyZyA9IF9hbm9uRXJnZWJuaXMoZXJnKTsKICAgICAgICAgICAgcmV0dXJuIGRpYWdy
YW1tUmVuZGVybihrLmRpYWdyYW1tLCBlcmcsIGspOwogICAgICAgIH0gY2F0Y2ggKGUpIHsKICAg
ICAgICAgICAgdHJ5IHsgY29uc29sZS5lcnJvcignW3N0YXRpc3Rpay1rYWNoZWxdJywgZSk7IH0g
Y2F0Y2ggKF8pIHt9CiAgICAgICAgICAgIHJldHVybiAnPGRpdiBjbGFzcz0iYWRtaW4tZW1wdHki
PjxkaXYgY2xhc3M9ImFkbWluLWVtcHR5LXRleHQiPkZlaGxlciBiZWltIEJhdWVuOiAnICsgZXNj
YXBlSFRNTChlLm1lc3NhZ2UgfHwgU3RyaW5nKGUpKSArICc8L2Rpdj48L2Rpdj4nOwogICAgICAg
IH0KICAgIH0KICAgIC8vIFBlcnNvbmVuLUxhYmVscyBpbSBFcmdlYm5pcyBhbm9ueW1pc2llcmVu
IChzdGF0aXN0aWtBbm9ueW0pLiBHcmVpZnQgbnVyCiAgICAvLyBiZWkgUGVyc29uZW4tRGltZW5z
aW9uL1NjYXR0ZXIg4oCUIGFuZGVyZSBMYWJlbHMgc2luZCBuaWNodCBpbiBfc3RhdEFub25NYXAu
CiAgICBmdW5jdGlvbiBfYW5vbkVyZ2VibmlzKGVyZykgewogICAgICAgIGZ1bmN0aW9uIG0obCkg
eyByZXR1cm4gX3N0YXRBbm9uTWFwW2xdIHx8IGw7IH0KICAgICAgICBpZiAoZXJnLmthdGVnb3Jp
ZW4pIGVyZy5rYXRlZ29yaWVuID0gZXJnLmthdGVnb3JpZW4ubWFwKGZ1bmN0aW9uKGMpeyByZXR1
cm4geyBrZXk6IGMua2V5LCBsYWJlbDogbShjLmxhYmVsKSB9OyB9KTsKICAgICAgICBpZiAoZXJn
LnNlcmllbikgICAgIGVyZy5zZXJpZW4gICAgID0gZXJnLnNlcmllbi5tYXAoZnVuY3Rpb24ocyl7
IHJldHVybiB7IG5hbWU6IG0ocy5uYW1lKSwgd2VydGU6IHMud2VydGUgfTsgfSk7CiAgICAgICAg
aWYgKGVyZy5wdW5rdGUpICAgICBlcmcucHVua3RlICAgICA9IGVyZy5wdW5rdGUubWFwKGZ1bmN0
aW9uKHApeyByZXR1cm4geyBsYWJlbDogbShwLmxhYmVsKSwgeDogcC54LCB5OiBwLnkgfTsgfSk7
CiAgICAgICAgcmV0dXJuIGVyZzsKICAgIH0KCiAgICAvLyBSZWloZW5mb2xnZSArIEJyZWl0ZSAr
IFNpY2h0YmFya2VpdCBhbGxlciBUaWxlcyBhdXMgc3RhdGlzdGlrTGF5b3V0CiAgICAvLyBhbndl
bmRlbi4gUmVjaHRlLWJhc2llcnRlcyBWZXJzdGVja2VuIChpbmxpbmUgZGlzcGxheTpub25lLCBp
bgogICAgLy8gX3N0YXRpc3Rpa1JlbmRlcm5JbnRlcm4gZ2VzZXR6dCkgYmxlaWJ0IHVuYW5nZXRh
c3RldCDigJQgZGFzIFNVLUxheW91dAogICAgLy8gZGFyZiBlaW4gcmVjaHRlLWdlc3BlcnJ0ZXMg
UGFuZWwgTklDSFQgc2ljaHRiYXIgc2NoYWx0ZW47IGRlc2hhbGIgbGFldWZ0CiAgICAvLyBkaWUg
TGF5b3V0LVNpY2h0YmFya2VpdCB1ZWJlciBkaWUgS2xhc3NlIC50aWxlLXZlcnN0ZWNrdC4KICAg
IGZ1bmN0aW9uIGxheW91dEFud2VuZGVuKCkgewogICAgICAgIHZhciBncmlkID0gZG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoJ3N0YXRzLWdyaWQnKTsKICAgICAgICBpZiAoIWdyaWQpIHJldHVybjsK
ICAgICAgICB2YXIgbGF5b3V0ID0gX2xheW91dExpc3RlKCk7CiAgICAgICAgdmFyIGJyZWl0ZVZv
biA9IHt9LCBzaWNodGJhclZvbiA9IHt9OwogICAgICAgIGxheW91dC5mb3JFYWNoKGZ1bmN0aW9u
KGUpewogICAgICAgICAgICBpZiAoIWUgfHwgIWUuaWQpIHJldHVybjsKICAgICAgICAgICAgYnJl
aXRlVm9uW2UuaWRdICAgPSBlLmJyZWl0ZTsKICAgICAgICAgICAgc2ljaHRiYXJWb25bZS5pZF0g
PSAoZS5zaWNodGJhciAhPT0gZmFsc2UpOwogICAgICAgIH0pOwogICAgICAgIHZhciBhbGxlID0g
QXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoZ3JpZC5xdWVyeVNlbGVjdG9yQWxsKCcuc3RhdHMt
cGFuZWwnKSk7CiAgICAgICAgdmFyIGJ5SWQgPSB7fTsKICAgICAgICBhbGxlLmZvckVhY2goZnVu
Y3Rpb24ocCl7IGJ5SWRbcC5nZXRBdHRyaWJ1dGUoJ2RhdGEtdGlsZS1pZCcpXSA9IHA7IH0pOwog
ICAgICAgIC8vIDEpIEdlbGlzdGV0ZSBQYW5lbHMgaW4gTGF5b3V0LVJlaWhlbmZvbGdlIGFucyBF
bmRlIHNjaGllYmVuLgogICAgICAgIHZhciBnZXNldHp0ID0ge307CiAgICAgICAgbGF5b3V0LmZv
ckVhY2goZnVuY3Rpb24oZSl7CiAgICAgICAgICAgIHZhciBwID0gYnlJZFtlLmlkXTsKICAgICAg
ICAgICAgaWYgKHApIHsgZ3JpZC5hcHBlbmRDaGlsZChwKTsgZ2VzZXR6dFtlLmlkXSA9IHRydWU7
IH0KICAgICAgICB9KTsKICAgICAgICAvLyAyKSBOaWNodC1nZWxpc3RldGUgKG5ldWUgS2FjaGVs
IC8gRXJzdHN0YXJ0KSBpbiBET00tUmVpaGVuZm9sZ2UgZGFoaW50ZXIuCiAgICAgICAgYWxsZS5m
b3JFYWNoKGZ1bmN0aW9uKHApewogICAgICAgICAgICB2YXIgaWQgPSBwLmdldEF0dHJpYnV0ZSgn
ZGF0YS10aWxlLWlkJyk7CiAgICAgICAgICAgIGlmICghZ2VzZXR6dFtpZF0pIGdyaWQuYXBwZW5k
Q2hpbGQocCk7CiAgICAgICAgfSk7CiAgICAgICAgLy8gMykgQnJlaXRlICsgU2ljaHRiYXJrZWl0
IHNldHplbi4KICAgICAgICBhbGxlLmZvckVhY2goZnVuY3Rpb24ocCl7CiAgICAgICAgICAgIHZh
ciBpZCA9IHAuZ2V0QXR0cmlidXRlKCdkYXRhLXRpbGUtaWQnKTsKICAgICAgICAgICAgdmFyIG1p
bkIgPSBwLmdldEF0dHJpYnV0ZSgnZGF0YS1taW4tYnJlaXRlJykgfHwgJ2RyaXR0ZWwnOwogICAg
ICAgICAgICB2YXIgYnJlaXRlID0gX2JyZWl0ZUNsYW1wKGJyZWl0ZVZvbltpZF0gfHwgX2RlZmF1
bHRCcmVpdGUoaWQpLCBtaW5CKTsKICAgICAgICAgICAgcC5zdHlsZS5ncmlkQ29sdW1uID0gJ3Nw
YW4gJyArIEJSRUlURV9TUEFOW2JyZWl0ZV07CiAgICAgICAgICAgIHAuc2V0QXR0cmlidXRlKCdk
YXRhLWJyZWl0ZScsIGJyZWl0ZSk7CiAgICAgICAgICAgIHZhciBzaWNodGJhciA9IChpZCBpbiBz
aWNodGJhclZvbikgPyBzaWNodGJhclZvbltpZF0gOiB0cnVlOwogICAgICAgICAgICBpZiAoc2lj
aHRiYXIpIHAuY2xhc3NMaXN0LnJlbW92ZSgndGlsZS12ZXJzdGVja3QnKTsKICAgICAgICAgICAg
ZWxzZSBwLmNsYXNzTGlzdC5hZGQoJ3RpbGUtdmVyc3RlY2t0Jyk7CiAgICAgICAgfSk7CiAgICB9
CgogICAgLy8gVGlsZS1VZWJlcnNpY2h0IGZ1ZXIgZGFzIEFkbWluLUxheW91dC1SYXN0ZXIgKGZl
c3RlIFBhbmVscyArIEJhdWthc3RlbiksCiAgICAvLyBqZXdlaWxzIHtpZCwgdGl0ZWwsIG1pbkJy
ZWl0ZSwgaXN0S2FjaGVsfS4gYWRtaW5fc3RhdGlzdGlrLmpzIG1pc2NodCBkYXMKICAgIC8vIG1p
dCBaLmFkbWluLnN0YXRpc3Rpa0xheW91dCAoUmVpaGVuZm9sZ2UvQnJlaXRlL1NpY2h0YmFya2Vp
dCkuCiAgICBmdW5jdGlvbiBzdGF0aXN0aWtUaWxlc0FsbGUoKSB7CiAgICAgICAgdmFyIG91dCA9
IEJVSUxUSU5fVElMRVMubWFwKGZ1bmN0aW9uKHQpewogICAgICAgICAgICByZXR1cm4geyBpZDog
dC5pZCwgdGl0ZWw6IHQudGl0ZWwsIG1pbkJyZWl0ZTogdC5taW5CcmVpdGUsIGRlZmF1bHRCcmVp
dGU6IHQuZGVmYXVsdEJyZWl0ZSwgaXN0S2FjaGVsOiBmYWxzZSB9OwogICAgICAgIH0pOwogICAg
ICAgIF9hbGxlS2FjaGVsbigpLmZvckVhY2goZnVuY3Rpb24oayl7CiAgICAgICAgICAgIG91dC5w
dXNoKHsgaWQ6IGsuaWQsIHRpdGVsOiAoay50aXRlbCB8fCAnRWlnZW5lIFN0YXRpc3RpaycpLCBt
aW5CcmVpdGU6ICdkcml0dGVsJywgZGVmYXVsdEJyZWl0ZTogJ2hhbGInLCBpc3RLYWNoZWw6IHRy
dWUgfSk7CiAgICAgICAgfSk7CiAgICAgICAgcmV0dXJuIG91dDsKICAgIH0KCiAgICBmdW5jdGlv
biBzdGF0aXN0aWtSZW5kZXJuKCkgewogICAgICAgIGlmICghWi5zdGF0aXN0aWspIHJldHVybjsK
ICAgICAgICB0cnkgewogICAgICAgICAgICBfc3RhdGlzdGlrUmVuZGVybkludGVybigpOwogICAg
ICAgIH0gY2F0Y2ggKGUpIHsKICAgICAgICAgICAgcmVuZGVyRXJyb3JCb3goZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoJ2Fuc2ljaHQtc3RhdGlzdGlrJyksIGUsICdTdGF0aXN0aWsnKTsKICAgICAg
ICB9CiAgICB9CiAgICBmdW5jdGlvbiBfc3RhdGlzdGlrUmVuZGVybkludGVybigpIHsKICAgICAg
ICAvLyBDYWNoZSBmdWVyIF90ZWFtRGF0ZW4oKSBpbnZhbGlkaWVyZW4g4oCUIEZpbHRlci9TdGFi
LVdlY2hzZWwKICAgICAgICAvLyBrb2VubmVuIGRpZSBEYXRlbiBiZWVpbmZsdXNzZW4uIElubmVy
aGFsYiBkZXMgUmVuZGVyLUxhdWZzIHdpcmQKICAgICAgICAvLyBkYW5uIG51ciBlaW5tYWwgYmVy
ZWNobmV0IHVuZCBhbiBtaWtyb3RlYW0gKyBwcm9zYSBhdXNnZWdlYmVuLgogICAgICAgIF9zdGF0
VGVhbURhdGVuQ2FjaGUgPSBudWxsOwogICAgICAgIHZhciBzdGF0cyA9IHN0YXRGaWx0ZXJuKFou
c3RhdGlzdGlrKTsKCiAgICAgICAgLy8gQW5vbnltaXNpZXJ1bmdzLU1hcHBpbmcgYXVmYmF1ZW4s
IGZhbGxzIFRvZ2dsZSBha3Rpdi4gSW5kZXggYmFzaWVydAogICAgICAgIC8vIGF1ZiBnZWZpbHRl
cnRlciBSZWloZW5mb2xnZSwgZGFtaXQgUGVyc29uLU51bW1lcm4gYXVjaCBiZWkKICAgICAgICAv
LyBHcnVwcGVuZmlsdGVyIGtvbnNpc3RlbnQgZHVyY2hnZXphZWhsdCBzaW5kLgogICAgICAgIF9z
dGF0QW5vbkFrdGl2ID0gZmVhdHVyZUlzdEFrdGl2KCdzdGF0aXN0aWtBbm9ueW0nKTsKICAgICAg
ICBfc3RhdEFub25NYXAgPSB7fTsKICAgICAgICBpZiAoX3N0YXRBbm9uQWt0aXYpIHsKICAgICAg
ICAgICAgc3RhdHMuZm9yRWFjaChmdW5jdGlvbihzLCBpZHgpIHsgX3N0YXRBbm9uTWFwW3MubmFt
ZV0gPSAnUGVyc29uICcgKyAoaWR4ICsgMSk7IH0pOwogICAgICAgIH0KCiAgICAgICAgLy8gS1BJ
LVN1bW1lbiBlaW5tYWwgdm9yYWIg4oCUIHdpcmQgZ2xlaWNoIHZvbSBLUEktU2Nocml0dCBnZW51
dHp0LgogICAgICAgIHZhciBzdW1GID0gMCwgc3VtUyA9IDAsIHN1bU4gPSAwLCBzdW1Tb24gPSAw
OwogICAgICAgIHZhciBzdW1EZ2wgPSAwLCBzdW1XZGYgPSAwLCBzdW1GYnAgPSAwOwogICAgICAg
IHZhciBzdW1VcmwgPSAwLCBzdW1XRSA9IDAsIHN1bUdlcyA9IDA7CiAgICAgICAgdmFyIHN1bUxn
ID0gMCwgc3VtQXphID0gMDsKICAgICAgICBzdGF0cy5mb3JFYWNoKGZ1bmN0aW9uKHMpIHsKICAg
ICAgICAgICAgc3VtRiArPSBzLmZydWVoOyBzdW1TICs9IHMuc3BhZXQ7IHN1bU4gKz0gcy5uYWNo
dDsKICAgICAgICAgICAgc3VtU29uICs9IChzLnNvbmRlcmRpZW5zdCB8fCAwKTsKICAgICAgICAg
ICAgc3VtRGdsICs9IChzLmRnbCB8fCAwKTsgc3VtV2RmICs9IChzLndkZiB8fCAwKTsgc3VtRmJw
ICs9IChzLmZicCB8fCAwKTsKICAgICAgICAgICAgc3VtVXJsICs9IHMudXJsYXViOwogICAgICAg
ICAgICBzdW1XRSArPSBzLndvY2hlbmVuZFRhZ2U7IHN1bUdlcyArPSBzLmdlc2FtdDsKICAgICAg
ICAgICAgc3VtTGcgKz0gcy5sZWhyZ2FuZzsgc3VtQXphICs9IChzLmF6QXVzZ2xlaWNoIHx8IDAp
OwogICAgICAgIH0pOwoKICAgICAgICAvLyBTaWNodGJhcmtlaXQvUmVjaHRlIGplIFBhbmVsIGlt
IFZvcmF1cyBiZXN0aW1tZW4uCiAgICAgICAgdmFyIGtwaUVsICAgICAgID0gZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoJ3N0YXRzLWtwaXMnKTsKICAgICAgICB2YXIgYmFsa2VuRWwgICAgPSBkb2N1
bWVudC5nZXRFbGVtZW50QnlJZCgnc3RhdHMtY2hhcnQtYmFsa2VuJyk7CiAgICAgICAgdmFyIGZh
aXJuZXNzRWwgID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3N0YXRzLWZhaXJuZXNzJyk7CiAg
ICAgICAgdmFyIHRlYW1FbCAgICAgID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3N0YXRzLXRl
YW0taGVhdG1hcCcpOwogICAgICAgIHZhciBuZWJlbkVsICAgICA9IGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKCdzdGF0cy10ZWFtLWhlYXRtYXAtbmViZW4nKTsKICAgICAgICB2YXIgdGVhbUJhbGtl
bkVsID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3N0YXRzLXRlYW0tYmFsa2VuJyk7CiAgICAg
ICAgdmFyIHByb3NhRWwgICAgID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3N0YXRzLXByb3Nh
Jyk7CiAgICAgICAgdmFyIGRldGFpbEVsICAgID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignLnN0
YXRzLWRldGFpbHMnKTsKCiAgICAgICAgdmFyIGtwaU9uICAgICAgICA9ICEha3BpRWwgICAgICAm
JiBkYXJmU3RhdGlzdGlrU3ViKCdzdGF0S3BpcycpOwogICAgICAgIHZhciB2ZXJ0ZWlsdW5nT24g
PSAhIWJhbGtlbkVsICAgJiYgZGFyZlN0YXRpc3Rpa1N1Yignc3RhdFNjaGljaHR2ZXJ0ZWlsdW5n
Jyk7CiAgICAgICAgdmFyIGZhaXJuZXNzT24gICA9ICEhZmFpcm5lc3NFbCAmJiBmZWF0dXJlSXN0
QWt0aXYoJ2ZhaXJuZXNzQW56ZWlnZScpICYmIGRhcmZTdGF0aXN0aWtTdWIoJ3N0YXRGYWlybmVz
cycpOwogICAgICAgIHZhciB0ZWFtT24gICAgICAgPSAhIXRlYW1FbCAgICAgJiYgZGFyZlN0YXRp
c3Rpa1N1Yignc3RhdEFid2VzZW5oZWl0Jyk7CiAgICAgICAgdmFyIGRldGFpbE9uICAgICA9ICEh
ZGV0YWlsRWwgICAmJiBmZWF0dXJlSXN0QWt0aXYoJ2RldGFpbFRhYmVsbGUnKSAgICYmIGRhcmZT
dGF0aXN0aWtTdWIoJ3N0YXREZXRhaWxUYWJlbGxlJyk7CgogICAgICAgIC8vIFBhbmVsLVNpY2h0
YmFya2VpdCBzb2ZvcnQgc2V0emVuIChkaXNwbGF5Om5vbmUgZnVlciBnZXNwZXJydGUgUGFuZWxz
KS4KICAgICAgICBmdW5jdGlvbiBzZXRQYW5lbERpc3BsYXkoZWwsIG9uKSB7CiAgICAgICAgICAg
IGlmICghZWwpIHJldHVybjsKICAgICAgICAgICAgdmFyIHBhbmVsID0gZWwuY2xvc2VzdCA/IGVs
LmNsb3Nlc3QoJy5zdGF0cy1wYW5lbCcpIDogbnVsbDsKICAgICAgICAgICAgaWYgKHBhbmVsKSBw
YW5lbC5zdHlsZS5kaXNwbGF5ID0gb24gPyAnJyA6ICdub25lJzsKICAgICAgICB9CiAgICAgICAg
aWYgKGtwaUVsKSBrcGlFbC5zdHlsZS5kaXNwbGF5ID0ga3BpT24gPyAnJyA6ICdub25lJzsKICAg
ICAgICBzZXRQYW5lbERpc3BsYXkoYmFsa2VuRWwsICAgIHZlcnRlaWx1bmdPbik7CiAgICAgICAg
c2V0UGFuZWxEaXNwbGF5KGZhaXJuZXNzRWwsICBmYWlybmVzc09uKTsKICAgICAgICBzZXRQYW5l
bERpc3BsYXkodGVhbUVsLCAgICAgIHRlYW1Pbik7CiAgICAgICAgc2V0UGFuZWxEaXNwbGF5KG5l
YmVuRWwsICAgICB0ZWFtT24pOwogICAgICAgIHNldFBhbmVsRGlzcGxheSh0ZWFtQmFsa2VuRWws
IHRlYW1Pbik7CiAgICAgICAgaWYgKGRldGFpbEVsKSBkZXRhaWxFbC5zdHlsZS5kaXNwbGF5ID0g
ZGV0YWlsT24gPyAnJyA6ICdub25lJzsKCiAgICAgICAgLy8gPT09PT0gU2VxdWVudGllbGxlcyBS
ZW5kZXJuIG1pdCBTa2VsZXRvbi1IaW50ICsgR2xvdyA9PT09PQogICAgICAgIC8vCiAgICAgICAg
Ly8gSGludGVyZ3J1bmQ6IGRhcyBTdGF0aXN0aWstTW9kdWwgbGFldWZ0IGF1ZiBzY2h3YWNoZW4g
QmVob2VyZGVuLQogICAgICAgIC8vIFJlY2huZXJuIChpNS04NTAwLCA4R0IgUkFNLCBwYXJhbGxl
bCBPZmZpY2UpLiBXdWVyZGVuIGFsbGUgUGFuZWxzCiAgICAgICAgLy8gc3luY2hyb24gaW4gZWlu
ZW0gRnJhbWUgcmVuZGVybiwgYmxvY2tpZXJ0IGRpZSBVSSBiaXMgenUgMS0yIHMuCiAgICAgICAg
Ly8gU3RhdHRkZXNzZW4gZ2ViZW4gd2lyIG5hY2ggamVkZW0gUGFuZWwgZGVuIE1haW4tVGhyZWFk
IGZyZWkKICAgICAgICAvLyAoc2V0VGltZW91dCAzMCBtcyksIGRhbWl0IEJyb3dzZXIgKyBhbmRl
cmUgQXBwcyBhdG1lbiBrb2VubmVuLgogICAgICAgIC8vIERlciBVc2VyIHNpZWh0IHNvZm9ydCBl
aW5lIFNrZWxldG9uLU5hY2hyaWNodCB1bmQgZGFubiBwcm8gUGFuZWwKICAgICAgICAvLyBlaW5l
biBrdXJ6ZW4gR2xvdy1FZmZla3QsIHdlbm4gZGllIERhdGVuIHJlaW5rb21tZW4uCiAgICAgICAg
dmFyIHNjaHJpdHRlID0gW107CiAgICAgICAgaWYgKGtwaU9uKSAgICAgICAgc2Nocml0dGUucHVz
aCh7IGVsOiBrcGlFbCwgICAgcGFuZWw6IGtwaUVsLCAgICAgICAgICAgICAgICAgICBoaW50OiAn
S2VubnphaGxlbiB3ZXJkZW4gZXJtaXR0ZWx04oCmJywKICAgICAgICAgICAgYXVzZnVlaHJlbjog
ZnVuY3Rpb24oKSB7CiAgICAgICAgICAgICAgICBrcGlFbC5pbm5lckhUTUwgPQogICAgICAgICAg
ICAgICAgICAgIGtwaUthcnRlKHN0YXRzLmxlbmd0aCwgJ1BlcnNvbmVuJywgJ3ZhcigtLXRleHQt
aGVhZGluZyknKSArCiAgICAgICAgICAgICAgICAgICAga3BpS2FydGUoc3VtR2VzLCAnRGllbnN0
ZSBnZXNhbXQnLCAndmFyKC0tdGV4dC1oZWFkaW5nKScpICsKICAgICAgICAgICAgICAgICAgICBr
cGlLYXJ0ZShzdW1GLCAnRnLDvGhkaWVuc3RlJywgJ3ZhcigtLWZhcmJlLWZydWVoKScpICsKICAg
ICAgICAgICAgICAgICAgICBrcGlLYXJ0ZShzdW1TLCAnU3DDpHRkaWVuc3RlJywgJ3ZhcigtLWZh
cmJlLXNwYWV0KScpICsKICAgICAgICAgICAgICAgICAgICBrcGlLYXJ0ZShzdW1OLCAnTmFjaHRk
aWVuc3RlJywgJ3ZhcigtLWZhcmJlLW5hY2h0KScpICsKICAgICAgICAgICAgICAgICAgICBrcGlL
YXJ0ZShzdW1Tb24sICdTb25kZXJkaWVuc3RlJywgJ3ZhcigtLXN0YXQtc2QpJykgKwogICAgICAg
ICAgICAgICAgICAgIGtwaUthcnRlKHN1bVdFLCAnV0UtRGllbnN0ZScsICd2YXIoLS1zdGF0LXNh
bXN0YWcpJykgKwogICAgICAgICAgICAgICAgICAgIGtwaUthcnRlKHN1bVVybCwgJ1VybGF1YnN0
YWdlJywgJ3ZhcigtLXN0YXQtdXJsYXViKScpOwogICAgICAgICAgICB9CiAgICAgICAgfSk7CiAg
ICAgICAgaWYgKHZlcnRlaWx1bmdPbikgc2Nocml0dGUucHVzaCh7IGVsOiBiYWxrZW5FbCwgcGFu
ZWw6IGJhbGtlbkVsLmNsb3Nlc3QoJy5zdGF0cy1wYW5lbCcpLCAgaGludDogJ1NjaGljaHR2ZXJ0
ZWlsdW5nIHdpcmQgZ2VyZW5kZXJ04oCmJywKICAgICAgICAgICAgYXVzZnVlaHJlbjogZnVuY3Rp
b24oKSB7IGJhbGtlblNvcnRMaXN0ZW5lclNpY2hlcm4oKTsgYmFsa2VuUmVuZGVybihzdGF0cyk7
IH0KICAgICAgICB9KTsKICAgICAgICBpZiAoZmFpcm5lc3NPbikgICBzY2hyaXR0ZS5wdXNoKHsg
ZWw6IGZhaXJuZXNzRWwsIHBhbmVsOiBmYWlybmVzc0VsLmNsb3Nlc3QoJy5zdGF0cy1wYW5lbCcp
LCBoaW50OiAnRmFpcm5lc3MtUXVvdGVuIHdlcmRlbiBiZXJlY2huZXTigKYnLAogICAgICAgICAg
ICBhdXNmdWVocmVuOiBmdW5jdGlvbigpIHsgZmFpcm5lc3NSZW5kZXJuKHN0YXRzKTsgfQogICAg
ICAgIH0pOwogICAgICAgIGlmICh0ZWFtT24pICAgICAgIHNjaHJpdHRlLnB1c2goeyBlbDogdGVh
bUVsLCBwYW5lbDogdGVhbUVsLmNsb3Nlc3QoJy5zdGF0cy1wYW5lbCcpLCAgICBoaW50OiAnTWlr
cm90ZWFtLcOcYmVyc2ljaHQgd2lyZCBhdWZnZWJhdXQgKGRhcyBrYW5uIGVpbmVuIE1vbWVudCBk
YXVlcm4p4oCmJywKICAgICAgICAgICAgZXh0cmFFbHM6IFtuZWJlbkVsLCB0ZWFtQmFsa2VuRWxd
LmZpbHRlcihCb29sZWFuKSwKICAgICAgICAgICAgZXh0cmFQYW5lbHM6IFtuZWJlbkVsLCB0ZWFt
QmFsa2VuRWxdLmZpbHRlcihCb29sZWFuKS5tYXAoZnVuY3Rpb24oZSkgeyByZXR1cm4gZS5jbG9z
ZXN0KCcuc3RhdHMtcGFuZWwnKTsgfSksCiAgICAgICAgICAgIGF1c2Z1ZWhyZW46IGZ1bmN0aW9u
KCkgeyBtaWtyb3RlYW1SZW5kZXJuKCk7IH0KICAgICAgICB9KTsKICAgICAgICBpZiAocHJvc2FF
bCkgICAgICBzY2hyaXR0ZS5wdXNoKHsgZWw6IHByb3NhRWwsIHBhbmVsOiBwcm9zYUVsLmNsb3Nl
c3QoJy5zdGF0cy1wYW5lbCcpLCAgaGludDogJ0RldGFpbGFuYWx5c2UgcHJvIFBlcnNvbiB3aXJk
IGZvcm11bGllcnTigKYnLAogICAgICAgICAgICBhdXNmdWVocmVuOiBmdW5jdGlvbigpIHsgcHJv
c2FSZW5kZXJuKHN0YXRzKTsgfQogICAgICAgIH0pOwogICAgICAgIGlmIChkZXRhaWxPbikgICAg
IHNjaHJpdHRlLnB1c2goeyBlbDogZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3N0YXRzLXRib2R5
JyksIHBhbmVsOiBkZXRhaWxFbCwgaGludDogJ0RldGFpbHRhYmVsbGUgd2lyZCB2b3JiZXJlaXRl
dOKApicsCiAgICAgICAgICAgIGF1c2Z1ZWhyZW46IGZ1bmN0aW9uKCkgeyBkZXRhaWxUYWJlbGxl
UmVuZGVybihzdGF0cyk7IH0KICAgICAgICB9KTsKCiAgICAgICAgLy8gQmF1a2FzdGVuLUthY2hl
bG4gKHN5bmNocm9uLCBndWVuc3RpZykgKyBMYXlvdXQtUmFzdGVyIChSZWloZW5mb2xnZS8KICAg
ICAgICAvLyBCcmVpdGUvU2ljaHRiYXJrZWl0IGFsbGVyIFRpbGVzKSBhbndlbmRlbiwgQkVWT1Ig
ZGllIFRvZ2dsZS1Ib29rcwogICAgICAgIC8vIGdyZWlmZW4gKGRhbWl0IGF1Y2ggQ3VzdG9tLVBh
bmVscyBlaW4tL2F1c2tsYXBwYmFyIHNpbmQpLgogICAgICAgIGN1c3RvbUthY2hlbG5SZW5kZXJu
KCk7CiAgICAgICAgbGF5b3V0QW53ZW5kZW4oKTsKICAgICAgICBwYW5lbFRvZ2dsZUhvb2tzKCk7
CiAgICAgICAgcGlwZWxpbmVTdGFydGVuKHNjaHJpdHRlLCArK19zdGF0UmVuZGVyUnVuSWQpOwog
ICAgfQoKICAgIC8vIE1hY2h0IGplZGVuIC5zdGF0cy1wYW5lbCBlaW56ZWxuIGVpbi0vYXVza2xh
cHBiYXIuIERlZmF1bHQ6IGFsbGUgYXVmLgogICAgLy8gS2xpY2sgYXVmIGRlbiBQYW5lbC1Lb3Bm
IChoMyBvZGVyIGZyZWllIFN0ZWxsZSkgdG9nZ2VsdDsgS2xpY2tzIGF1ZgogICAgLy8gZGVuIGkt
QnV0dG9uIG9kZXIgZGllIFNvcnQtQnV0dG9ucyB3ZXJkZW4gdWViZXIgc3RvcFByb3BhZ2F0aW9u
IGluCiAgICAvLyBkZW4gamV3ZWlsaWdlbiBIYW5kbGVybiBhYmdlZmFuZ2VuIOKAlCBoaWVyIGZp
bHRlcm4gd2lyIGRlZmVuc2l2LgogICAgZnVuY3Rpb24gcGFuZWxUb2dnbGVIb29rcygpIHsKICAg
ICAgICBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCcjYW5zaWNodC1zdGF0aXN0aWsgLnN0YXRz
LXBhbmVsJykuZm9yRWFjaChmdW5jdGlvbihwYW5lbCkgewogICAgICAgICAgICB2YXIga29wZiA9
IHBhbmVsLnF1ZXJ5U2VsZWN0b3IoJy5zdGF0cy1wYW5lbC1rb3BmJyk7CiAgICAgICAgICAgIGlm
ICgha29wZiB8fCBrb3BmLmRhdGFzZXQudG9nZ2xlRmVydGlnKSByZXR1cm47CiAgICAgICAgICAg
IC8vIFBmZWlsLUluZGlrYXRvciB2b3IgZGVtIGgzIGVpbnNldHplbiAoZWlubWFsaWcpLgogICAg
ICAgICAgICB2YXIgaDMgPSBrb3BmLnF1ZXJ5U2VsZWN0b3IoJ2gzJyk7CiAgICAgICAgICAgIGlm
IChoMyAmJiAhaDMucXVlcnlTZWxlY3RvcignLnN0YXRzLXBhbmVsLXRvZ2dsZScpKSB7CiAgICAg
ICAgICAgICAgICB2YXIgcGZlaWwgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzcGFuJyk7CiAg
ICAgICAgICAgICAgICBwZmVpbC5jbGFzc05hbWUgPSAnc3RhdHMtcGFuZWwtdG9nZ2xlJzsKICAg
ICAgICAgICAgICAgIHBmZWlsLnRleHRDb250ZW50ID0gJ+KWvic7CiAgICAgICAgICAgICAgICBo
My5pbnNlcnRCZWZvcmUocGZlaWwsIGgzLmZpcnN0Q2hpbGQpOwogICAgICAgICAgICB9CiAgICAg
ICAgICAgIGtvcGYuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCBmdW5jdGlvbihlKSB7CiAgICAg
ICAgICAgICAgICAvLyBTdWItS2xpY2tzIChJbmZvLUJ1dHRvbiwgU29ydC1CdXR0b25zLCBGaWx0
ZXIpIHNvbGxlbiBkZW4KICAgICAgICAgICAgICAgIC8vIFRvZ2dsZSBuaWNodCBhdXNsb2VzZW4u
CiAgICAgICAgICAgICAgICBpZiAoZS50YXJnZXQuY2xvc2VzdCgnLnN0YXRzLWluZm8tYnRuJykp
IHJldHVybjsKICAgICAgICAgICAgICAgIGlmIChlLnRhcmdldC5jbG9zZXN0KCcuc3RhdHMta2F0
LWJ0bicpKSAgcmV0dXJuOwogICAgICAgICAgICAgICAgaWYgKGUudGFyZ2V0LmNsb3Nlc3QoJy5z
dGF0cy1zb3J0LXJpY2h0dW5nJykpIHJldHVybjsKICAgICAgICAgICAgICAgIGlmIChlLnRhcmdl
dC5jbG9zZXN0KCdidXR0b246bm90KC5zdGF0cy1wYW5lbC10b2dnbGUpJykpIHJldHVybjsKICAg
ICAgICAgICAgICAgIHBhbmVsLmNsYXNzTGlzdC50b2dnbGUoJ3p1Z2VrbGFwcHQnKTsKICAgICAg
ICAgICAgICAgIHZhciBwID0gaDMgJiYgaDMucXVlcnlTZWxlY3RvcignLnN0YXRzLXBhbmVsLXRv
Z2dsZScpOwogICAgICAgICAgICAgICAgaWYgKHApIHAudGV4dENvbnRlbnQgPSBwYW5lbC5jbGFz
c0xpc3QuY29udGFpbnMoJ3p1Z2VrbGFwcHQnKSA/ICfilrgnIDogJ+KWvic7CiAgICAgICAgICAg
IH0pOwogICAgICAgICAgICBrb3BmLmRhdGFzZXQudG9nZ2xlRmVydGlnID0gJzEnOwogICAgICAg
IH0pOwogICAgfQoKICAgIC8vIE1vZHVsLVN0YXRlIFJlbmRlci1QaXBlbGluZS4gQnJpY2h0IGxh
dWZlbmRlIFNlcXVlbnogYWIsIHdlbm4gZWluCiAgICAvLyBuZXVlciBSZW5kZXJuLUF1ZnJ1ZiAo
ei5CLiBTb3J0LS9GaWx0ZXItV2VjaHNlbCkgcmVpbmtvbW10LgogICAgdmFyIF9zdGF0UmVuZGVy
UnVuSWQgPSAwOwoKICAgIGZ1bmN0aW9uIHBpcGVsaW5lU3RhcnRlbihzY2hyaXR0ZSwgcnVuSWQp
IHsKICAgICAgICAvLyBQaGFzZSAxOiBhbGxlIFNrZWxldG9ucyBzeW5jaHJvbiBzZXR6ZW4sIGRh
bWl0IGRlciBVc2VyIHNvZm9ydAogICAgICAgIC8vIHNpZWh0LCBkYXNzIGV0d2FzIHBhc3NpZXJ0
LiBleHRyYUVscyBzaW5kIHdlaXRlcmUgQ29udGFpbmVyLCBkaWUKICAgICAgICAvLyBpbSBzZWxi
ZW4gU2Nocml0dCBiZWZ1ZWxsdCB3ZXJkZW4gKFRlYW0tU2Nocml0dCByZW5kZXJ0IEhlYXRtYXAK
ICAgICAgICAvLyArIE5lYmVud2FjaGVuICsgVGFnZXMtQW50ZWlsZSBpbiBlaW5lbSBSdXRzY2gp
LgogICAgICAgIHNjaHJpdHRlLmZvckVhY2goZnVuY3Rpb24ocykgewogICAgICAgICAgICBpZiAo
cy5lbCkgcy5lbC5pbm5lckhUTUwgPSAnPGRpdiBjbGFzcz0ic3RhdHMtbG9hZGluZyI+JyArIGVz
Y2FwZUhUTUwocy5oaW50KSArICc8L2Rpdj4nOwogICAgICAgICAgICAocy5leHRyYUVscyB8fCBb
XSkuZm9yRWFjaChmdW5jdGlvbihlKSB7CiAgICAgICAgICAgICAgICBpZiAoZSkgZS5pbm5lckhU
TUwgPSAnPGRpdiBjbGFzcz0ic3RhdHMtbG9hZGluZyI+JyArIGVzY2FwZUhUTUwocy5oaW50KSAr
ICc8L2Rpdj4nOwogICAgICAgICAgICB9KTsKICAgICAgICB9KTsKICAgICAgICAvLyBQaGFzZSAy
OiBTY2hyaXR0IGZ1ZXIgU2Nocml0dCByZW5kZXJuLCBZaWVsZCB6d2lzY2hlbiBkZW4gU2Nocml0
dGVuLgogICAgICAgIC8vCiAgICAgICAgLy8gc2V0VGltZW91dCBzdGF0dCByZXF1ZXN0QW5pbWF0
aW9uRnJhbWU6IHJBRi1DYWxsYmFja3MgbGF1ZmVuIFZPUgogICAgICAgIC8vIGRlbSBQYWludCBp
bSBzZWxiZW4gRnJhbWUg4oCUIGRlciBTa2VsZXRvbiB3dWVyZGUgbmllIHNpY2h0YmFyCiAgICAg
ICAgLy8gd2VyZGVuLiBBdXNzZXJkZW0gcGF1c2llcnQgckFGIGluIEhpbnRlcmdydW5kLVRhYnMg
a29tcGxldHQuCiAgICAgICAgLy8KICAgICAgICAvLyBUaW1pbmcgKDIwMjYtMDYtMTUgUmVzcG9u
c2l2aXRhZXRzLUF1ZGl0KTogZGllIGZydWVoZXJlIGt1ZW5zdGxpY2hlCiAgICAgICAgLy8gVmVy
em9lZ2VydW5nICg4MDAgbXMgaW5pdGlhbCArIDYwMCBtcyBqZSBQYW5lbCDiiYggMyw4IHMgcmVp
bmUgV2FydGUtCiAgICAgICAgLy8gemVpdCkgaXN0IGVudGZlcm50LiBEaWUgQmVyZWNobnVuZyBk
YXVlcnQgTWlsbGlzZWt1bmRlbiDigJQgZGVyIFVzZXIKICAgICAgICAvLyBzb2xsIGRpZSBTdGF0
aXN0aWsgcHJha3Rpc2NoIHNvZm9ydCBzZWhlbi4gRWluIEtMRUlORVIgU3RhZ2dlcgogICAgICAg
IC8vIChqZSA1MCBtcykgYmxlaWJ0LCBkYW1pdCBkZXIgU2tlbGV0b24ga3VyeiBzaWNodGJhciBp
c3QsIGRlcgogICAgICAgIC8vIEpTLVRocmVhZCB6d2lzY2hlbiBkZW4gUGFuZWxzIHlpZWxkZXQg
KFJlc3BvbnNpdmVuZXNzKSB1bmQgZGllCiAgICAgICAgLy8gR2xvdy1LYXNrYWRlIGFscyBkZXpl
bnRlIFdlbGxlIGVya2VubmJhciBibGVpYnQuCiAgICAgICAgZnVuY3Rpb24gc3RlcChpKSB7CiAg
ICAgICAgICAgIGlmIChpID49IHNjaHJpdHRlLmxlbmd0aCkgcmV0dXJuOwogICAgICAgICAgICBp
ZiAocnVuSWQgIT09IF9zdGF0UmVuZGVyUnVuSWQpIHJldHVybjsgICAgIC8vIG5ldWVyIExhdWYg
dWViZXJob2x0CiAgICAgICAgICAgIHZhciBzID0gc2Nocml0dGVbaV07CiAgICAgICAgICAgIHRy
eSB7IHMuYXVzZnVlaHJlbigpOyB9IGNhdGNoIChlKSB7IGNvbnNvbGUuZXJyb3IoJ1N0YXRpc3Rp
ay1SZW5kZXItRmVobGVyOicsIGUpOyB9CiAgICAgICAgICAgIGZ1bmN0aW9uIGdsb3cocCkgewog
ICAgICAgICAgICAgICAgaWYgKCFwKSByZXR1cm47CiAgICAgICAgICAgICAgICBwLmNsYXNzTGlz
dC5yZW1vdmUoJ3N0YXRzLWdsb3cnKTsKICAgICAgICAgICAgICAgIC8vIHZvaWQtUmVmbG93IGRh
bWl0IGRpZSBBbmltYXRpb24gbmV1IHN0YXJ0ZXQKICAgICAgICAgICAgICAgIHZvaWQgcC5vZmZz
ZXRXaWR0aDsKICAgICAgICAgICAgICAgIHAuY2xhc3NMaXN0LmFkZCgnc3RhdHMtZ2xvdycpOwog
ICAgICAgICAgICB9CiAgICAgICAgICAgIGdsb3cocy5wYW5lbCk7CiAgICAgICAgICAgIChzLmV4
dHJhUGFuZWxzIHx8IFtdKS5mb3JFYWNoKGdsb3cpOwogICAgICAgICAgICBzZXRUaW1lb3V0KGZ1
bmN0aW9uKCkgeyBzdGVwKGkgKyAxKTsgfSwgNTApOwogICAgICAgIH0KICAgICAgICBzZXRUaW1l
b3V0KGZ1bmN0aW9uKCkgeyBzdGVwKDApOyB9LCA2MCk7CiAgICB9CgogICAgLy8gPT09PT0gUHJv
c2EtRGV0YWlsYW5hbHlzZSA9PT09PQogICAgLy8KICAgIC8vIEVyemV1Z3QgcHJvIFBlcnNvbiBl
aW5lbiBrdXJ6ZW4gRmxpZcOfdGV4dCBhdXMgUmVnZWwtQmVkaW5ndW5nZW4uIEtlaW5lCiAgICAv
LyBTZXJ2ZXItQWJoYWVuZ2lna2VpdCDigJQgYXJiZWl0ZXQgbnVyIGF1ZiBkZW4gYmVyZWl0cyBn
ZWxhZGVuZW4gU3RhdHMuCiAgICBmdW5jdGlvbiBwcm9zYVJlbmRlcm4oc3RhdHMpIHsKICAgICAg
ICB2YXIgZWwgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnc3RhdHMtcHJvc2EnKTsKICAgICAg
ICBpZiAoIWVsKSByZXR1cm47CiAgICAgICAgaWYgKCFzdGF0cy5sZW5ndGgpIHsgZWwuaW5uZXJI
VE1MID0gJzxwIGNsYXNzPSJ0ZXh0LW11dGVkIiBzdHlsZT0icGFkZGluZzoxMnB4Ij5LZWluZSBE
YXRlbi48L3A+JzsgcmV0dXJuOyB9CgogICAgICAgIC8vIER1cmNoc2Nobml0dGUgdWViZXIgZGll
IGFrdHVlbGwgZ2VmaWx0ZXJ0ZSBTdGF0cy1NZW5nZQogICAgICAgIHZhciBuID0gc3RhdHMubGVu
Z3RoOwogICAgICAgIHZhciBhdmcgPSB7IGdlc2FtdDowLCBmcnVlaDowLCBzcGFldDowLCBuYWNo
dDowLCBzb246MCwgd2RmOjAsIGZicDowLCBkZ2w6MCwKICAgICAgICAgICAgICAgICAgICB3ZTow
LCBmdDowLCB1cmxhdWI6MCwgbGc6MCwgYXphOjAsCiAgICAgICAgICAgICAgICAgICAga29tcGxl
dHRlV0U6MCwgZmVpZXJ0YWdEaWVuc3RlOjAsIGt1cjowIH07CiAgICAgICAgc3RhdHMuZm9yRWFj
aChmdW5jdGlvbihzKSB7CiAgICAgICAgICAgIGF2Zy5nZXNhbXQgKz0gcy5nZXNhbXQ7CiAgICAg
ICAgICAgIGF2Zy5mcnVlaCAgKz0gcy5mcnVlaDsKICAgICAgICAgICAgYXZnLnNwYWV0ICArPSBz
LnNwYWV0OwogICAgICAgICAgICBhdmcubmFjaHQgICs9IHMubmFjaHQ7CiAgICAgICAgICAgIGF2
Zy5zb24gICAgKz0gKHMuc29uZGVyZGllbnN0IHx8IDApOwogICAgICAgICAgICBhdmcuZGdsICAg
ICs9IChzLmRnbCB8fCAwKTsKICAgICAgICAgICAgYXZnLndkZiAgICArPSAocy53ZGYgfHwgMCk7
CiAgICAgICAgICAgIGF2Zy5mYnAgICAgKz0gKHMuZmJwIHx8IDApOwogICAgICAgICAgICBhdmcu
d2UgICAgICs9IHMud29jaGVuZW5kVGFnZTsKICAgICAgICAgICAgYXZnLmZ0ICAgICArPSBzLmZl
aWVydGFnVGFnZTsKICAgICAgICAgICAgYXZnLnVybGF1YiArPSBzLnVybGF1YjsKICAgICAgICAg
ICAgYXZnLmxnICAgICArPSBzLmxlaHJnYW5nOwogICAgICAgICAgICBhdmcuYXphICAgICs9IChz
LmF6QXVzZ2xlaWNoIHx8IDApOwogICAgICAgICAgICBhdmcua29tcGxldHRlV0UgICAgICs9IChz
LmtvbXBsZXR0ZVdFIHx8IDApOwogICAgICAgICAgICBhdmcuZmVpZXJ0YWdEaWVuc3RlICs9IChz
LmZlaWVydGFnRGllbnN0ZSB8fCAwKTsKICAgICAgICAgICAgYXZnLmt1ciAgICAgICAgICAgICAr
PSAocy5rdXIgfHwgMCk7CiAgICAgICAgfSk7CiAgICAgICAgT2JqZWN0LmtleXMoYXZnKS5mb3JF
YWNoKGZ1bmN0aW9uKGspIHsgYXZnW2tdID0gYXZnW2tdIC8gbjsgfSk7CgogICAgICAgIC8vIE1p
a3JvdGVhbS1EYXRlbiBlaW5tYWwgYXVmYmF1ZW4g4oCUIGZ1ZXIgQmV6dWctQmF1c3RlaW5lIChQ
b29sLVNwcmluZ2VyLAogICAgICAgIC8vIFRlYW0tTHVlY2tlbikuIFBybyBQZXJzb24gbWVya2Vu
IHdpciB1bnMgZGFzIE1pa3JvdGVhbSB1bmQgZGllCiAgICAgICAgLy8gYWdncmVnaWVydGVuIFBv
b2wtU3RhdHMuCiAgICAgICAgdmFyIHRlYW1EYXRhID0gKFouYWRtaW4gJiYgWi5hZG1pbi5taWty
b3RlYW1zICYmIFouYWRtaW4ubWlrcm90ZWFtcy5sZW5ndGgpID8gX3RlYW1EYXRlbkdlZmlsdGVy
dCgpIDogW107CiAgICAgICAgdmFyIHRlYW1CeVBpZCA9IHt9OyAgICAgICAgLy8gcGVyc29uSWQg
LT4geyB0ZWFtLCBzcHJpbmdlclRhZ2UgfQogICAgICAgIHRlYW1EYXRhLmZvckVhY2goZnVuY3Rp
b24odCkgewogICAgICAgICAgICB2YXIgcG9vbCA9IF9pc3RQb29sVGVhbSh0KTsKICAgICAgICAg
ICAgLy8gUG9vbC1TcHJpbmdlci1UYWdlIHBybyBQZXJzb24gemFlaGxlbiAobnVyIGZ1ZXIgTEQv
U08gcmVsZXZhbnQpCiAgICAgICAgICAgIHZhciBzcHJpbmdlciA9IDA7CiAgICAgICAgICAgIGlm
IChwb29sKSB7CiAgICAgICAgICAgICAgICBPYmplY3Qua2V5cyh0LnRhZ2UpLmZvckVhY2goZnVu
Y3Rpb24oZCkgewogICAgICAgICAgICAgICAgICAgIGlmICh0LnRhZ2VbZF0uaXN0U3ByaW5nZXIp
IHNwcmluZ2VyKys7CiAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgfQogICAgICAgICAg
ICB0LnBlcnNvbklkcy5mb3JFYWNoKGZ1bmN0aW9uKHBpZCkgewogICAgICAgICAgICAgICAgdGVh
bUJ5UGlkW3BpZF0gPSB7IHRlYW06IHQsIHNwcmluZ2VyVGFnZTogc3ByaW5nZXIgfTsKICAgICAg
ICAgICAgfSk7CiAgICAgICAgfSk7CgogICAgICAgIC8vIFNvcnRpZXJ1bmcgZmVzdCBuYWNoIFN0
YW5kb3J0ICsgRGllbnN0Z3J1cHBlLCBkYW5uIE5hbWUuIFNvIGxhc3NlbgogICAgICAgIC8vIHNp
Y2ggZGllIFBlcnNvbmVuIGVpbmVyIFdhY2hlIHp1c2FtbWVuIGxlc2VuIOKAlCBlbnRzcHJpY2h0
IGRlcgogICAgICAgIC8vIFJlaWhlbmZvbGdlIGRlciBNaWtyb3RlYW0tSGVhdG1hcCBvYmVuLgog
ICAgICAgIHZhciBwZXJzb25NYXAgPSB7fTsKICAgICAgICAoWi5wbGFudW5nICYmIFoucGxhbnVu
Zy5wZXJzb25lbiB8fCBbXSkuZm9yRWFjaChmdW5jdGlvbihwKSB7IHBlcnNvbk1hcFtwLmlkXSA9
IHA7IH0pOwogICAgICAgIHZhciBzb3J0aWVydCA9IHN0YXRzLnNsaWNlKCkuc29ydChmdW5jdGlv
bihhLCBiKSB7CiAgICAgICAgICAgIHZhciBwYSA9IHBlcnNvbk1hcFthLnBlcnNvbklkXSB8fCB7
fSwgcGIgPSBwZXJzb25NYXBbYi5wZXJzb25JZF0gfHwge307CiAgICAgICAgICAgIHZhciBrYSA9
IChwYS5vZSB8fCAnWlonKSArICd8JyArIChwYS5ncnVwcGUgfHwgJ1onKTsKICAgICAgICAgICAg
dmFyIGtiID0gKHBiLm9lIHx8ICdaWicpICsgJ3wnICsgKHBiLmdydXBwZSB8fCAnWicpOwogICAg
ICAgICAgICBpZiAoa2EgIT09IGtiKSByZXR1cm4ga2EubG9jYWxlQ29tcGFyZShrYiwgJ2RlJyk7
CiAgICAgICAgICAgIHJldHVybiAoYS5uYW1lIHx8ICcnKS5sb2NhbGVDb21wYXJlKGIubmFtZSB8
fCAnJywgJ2RlJyk7CiAgICAgICAgfSk7CgogICAgICAgIHZhciBodG1sID0gJyc7CiAgICAgICAg
c29ydGllcnQuZm9yRWFjaChmdW5jdGlvbihzKSB7CiAgICAgICAgICAgIHZhciB0eHQgPSBwcm9z
YVRleHQocywgYXZnLCB0ZWFtQnlQaWRbcy5wZXJzb25JZF0pOwogICAgICAgICAgICBpZiAoIXR4
dCkgcmV0dXJuOwogICAgICAgICAgICBodG1sICs9ICc8ZGl2IGNsYXNzPSJzdGF0cy1wcm9zYS16
ZWlsZSI+JyArCiAgICAgICAgICAgICAgICAnPGRpdiBjbGFzcz0ic3RhdHMtcHJvc2EtbmFtZSI+
JyArIGVzY2FwZUhUTUwocHJvc2FBbnJlZGUocykpICsgJzwvZGl2PicgKwogICAgICAgICAgICAg
ICAgJzxkaXYgY2xhc3M9InN0YXRzLXByb3NhLXRleHQiPicgKyB0eHQgKyAnPC9kaXY+JyArCiAg
ICAgICAgICAgICc8L2Rpdj4nOwogICAgICAgIH0pOwogICAgICAgIGVsLmlubmVySFRNTCA9IGh0
bWwgfHwgJzxwIGNsYXNzPSJ0ZXh0LW11dGVkIiBzdHlsZT0icGFkZGluZzoxMnB4Ij5LZWluZSBh
dWZmw6RsbGlnZW4gTXVzdGVyLjwvcD4nOwogICAgfQoKICAgIC8vIEJpbGRldCAiUEhLIE5hY2hu
YW1lIiAobWl0IG9wdGlvbmFsZW0gVm9ybmFtZW4pLiBzZXJ2ZXIgbGllZmVydCBuYW1lID0gIk5h
Y2huYW1lLCBWb3JuYW1lIi4KICAgIC8vIEJlaSBha3RpdmVtIEFub255bWlzaWVydW5ncy1Ub2dn
bGUgd2lyZCAiUGVyc29uIE4iIHp1cnVlY2tnZWdlYmVuLgogICAgZnVuY3Rpb24gcHJvc2FBbnJl
ZGUocykgewogICAgICAgIGlmIChfc3RhdEFub25Ba3RpdikgcmV0dXJuIF9zdGF0QW56ZWlnZU5h
bWUocyk7CiAgICAgICAgdmFyIHRlaWxlID0gKHMubmFtZSB8fCAnJykuc3BsaXQoJywnKTsKICAg
ICAgICB2YXIgbm4gPSAodGVpbGVbMF0gfHwgJycpLnRyaW0oKTsKICAgICAgICB2YXIgdm4gPSAo
dGVpbGVbMV0gfHwgJycpLnRyaW0oKTsKICAgICAgICB2YXIgZGcgPSBzLmRpZW5zdGdyYWQgfHwg
Jyc7CiAgICAgICAgdmFyIGEgPSAoZGcgPyBkZyArICcgJyA6ICcnKSArIG5uOwogICAgICAgIHJl
dHVybiB2biA/IGEgKyAnLCAnICsgdm4gOiBhOwogICAgfQoKICAgIC8vIFJlZ2VsLWJhc2llcnRl
IFRleHQtQmF1c3RlaW5lLiBBbGxlIEJlZGluZ3VuZ2VuIHNpbmQgcmVsYXRpdiB6dW0gRHVyY2gt
CiAgICAvLyBzY2huaXR0LCBkYW1pdCBkaWUgQW5hbHlzZSBiZWkgamVkZXIgR3J1cHBlbi0vRmls
dGVyLUtvbWJpbmF0aW9uIHNpbm52b2xsCiAgICAvLyBibGVpYnQuIGB0ZWFtSW5mb2AgaXN0IG9w
dGlvbmFsOiB7IHRlYW0sIHNwcmluZ2VyVGFnZSB9IGF1cyBfdGVhbURhdGVuKCkuCiAgICAvLyBS
dWVja2dhYmU6IEhUTUwtU3RyaW5nIChlaW4gU2F0eikgb2RlciBsZWVyLgogICAgZnVuY3Rpb24g
cHJvc2FUZXh0KHMsIGF2ZywgdGVhbUluZm8pIHsKICAgICAgICBpZiAocy5nZXNhbXQgPCAzKSBy
ZXR1cm4gJyc7ICAvLyB6dSB3ZW5pZ2UgRGF0ZW4gZnVlciBlaW5lIEF1c3NhZ2UKICAgICAgICB2
YXIgZ2VzID0gcy5nZXNhbXQgfHwgMTsKICAgICAgICB2YXIgc2FldHplID0gW107CgogICAgICAg
IC8vIEdlc2FtdC1BdXNsYXN0dW5nCiAgICAgICAgaWYgKGF2Zy5nZXNhbXQgPiAzKSB7CiAgICAg
ICAgICAgIGlmIChzLmdlc2FtdCA+IGF2Zy5nZXNhbXQgKiAxLjIpICAgICAgIHNhZXR6ZS5wdXNo
KCdtYWNodCBtZWhyIERpZW5zdGUgYWxzIMO8YmxpY2ggKCcgKyBzLmdlc2FtdCArICcgdnMuIMOY
ICcgKyBNYXRoLnJvdW5kKGF2Zy5nZXNhbXQpICsgJyknKTsKICAgICAgICAgICAgZWxzZSBpZiAo
cy5nZXNhbXQgPCBhdmcuZ2VzYW10ICogMC43KSAgc2FldHplLnB1c2goJ2hhdCB1bnRlcmR1cmNo
c2Nobml0dGxpY2ggd2VuaWdlIERpZW5zdGUgKCcgKyBzLmdlc2FtdCArICcgdnMuIMOYICcgKyBN
YXRoLnJvdW5kKGF2Zy5nZXNhbXQpICsgJyknKTsKICAgICAgICB9CgogICAgICAgIC8vIFNjaGlj
aHQtU2NoaWVmbGFnZW4gKEFudGVpbGUgc3RhdHQgYWJzb2x1dGUgWmFobGVuLCBkYW1pdCBmYWly
IHZlcmdsZWljaGJhcikKICAgICAgICB2YXIgZkEgPSBzLmZydWVoIC8gZ2VzLCBzQSA9IHMuc3Bh
ZXQgLyBnZXMsIG5BID0gcy5uYWNodCAvIGdlczsKICAgICAgICB2YXIgYXZnRkEgPSBhdmcuZ2Vz
YW10ID8gYXZnLmZydWVoIC8gYXZnLmdlc2FtdCA6IDA7CiAgICAgICAgdmFyIGF2Z1NBID0gYXZn
Lmdlc2FtdCA/IGF2Zy5zcGFldCAvIGF2Zy5nZXNhbXQgOiAwOwogICAgICAgIHZhciBhdmdOQSA9
IGF2Zy5nZXNhbXQgPyBhdmcubmFjaHQgLyBhdmcuZ2VzYW10IDogMDsKCiAgICAgICAgZnVuY3Rp
b24gc2NoaWNodFBocmFzZSgpIHsKICAgICAgICAgICAgdmFyIHRlaWxlID0gW107CiAgICAgICAg
ICAgIGlmIChuQSA+IGF2Z05BICogMS4zICYmIHMubmFjaHQgPiA1KSAgIHRlaWxlLnB1c2goJ3Zl
cm1laHJ0IE5hY2h0ZGllbnN0Jyk7CiAgICAgICAgICAgIGlmIChmQSA+IGF2Z0ZBICogMS4zICYm
IHMuZnJ1ZWggPiA1KSAgIHRlaWxlLnB1c2goJ8O8YmVycHJvcG9ydGlvbmFsIHZpZWxlIEZyw7xo
ZGllbnN0ZScpOwogICAgICAgICAgICBpZiAoc0EgPiBhdmdTQSAqIDEuMyAmJiBzLnNwYWV0ID4g
NSkgICB0ZWlsZS5wdXNoKCfDvGJlcnByb3BvcnRpb25hbCB2aWVsZSBTcMOkdGRpZW5zdGUnKTsK
ICAgICAgICAgICAgcmV0dXJuIHRlaWxlLmpvaW4oJyB1bmQgJyk7CiAgICAgICAgfQogICAgICAg
IHZhciBzY2hpY2h0ID0gc2NoaWNodFBocmFzZSgpOwogICAgICAgIGlmIChzY2hpY2h0KSBzYWV0
emUucHVzaCgnbWFjaHQgJyArIHNjaGljaHQpOwoKICAgICAgICAvLyBGcsO8aC9TcMOkdC1CYWxh
bmNlCiAgICAgICAgdmFyIGZzRGlmZiA9IChzLmZydWVoICsgcy5zcGFldCkgPiAwID8gTWF0aC5h
YnMocy5mcnVlaCAtIHMuc3BhZXQpIC8gKHMuZnJ1ZWggKyBzLnNwYWV0KSA6IDA7CiAgICAgICAg
aWYgKChzLmZydWVoICsgcy5zcGFldCkgPj0gMTAgJiYgZnNEaWZmIDwgMC4xNSkgc2FldHplLnB1
c2goJ2lzdCBpbiBGcsO8aC0gdW5kIFNww6R0ZGllbnN0ZW4gYXVzZ2VnbGljaGVuJyk7CgogICAg
ICAgIC8vIEZ1bmt0aW9ucy1Sb2xsZW4gKERHTC9XREYvRkJQKSDigJQga29udGV4dHVhbGlzaWVy
dCBtaXQgZGVyIHByaW1hZXJlbgogICAgICAgIC8vIEZ1bmt0aW9uIGRlciBQZXJzb24gKFoucGxh
bnVuZy5wZXJzb25lblsqXS5mdW5rdGlvbikuIE51ciBDcm9zcy0KICAgICAgICAvLyBGdW5rdGlv
bnMtRWluc2FldHplIHNpbmQgaW50ZXJlc3NhbnQ6IGVpbiBwcmltYWVyZXIgREdMLCBkZXIgREdM
CiAgICAgICAgLy8gbWFjaHQsIGlzdCBSb3V0aW5lLiBFaW4gMy4tTWFubiBvZGVyIFdERiBhbHMg
REdMID0gcmVsZXZhbnQuCiAgICAgICAgdmFyIGZrdCA9IChzLmZ1bmt0aW9uIHx8ICcnKS50b0xv
d2VyQ2FzZSgpLnRyaW0oKTsKICAgICAgICB2YXIgcHJpbURnbCAgICA9IChma3QgPT09ICdkZ2wn
IHx8IGZrdCA9PT0gJ2RnbGluJyk7CiAgICAgICAgdmFyIHByaW1XZGYgICAgPSAoZmt0ID09PSAn
d2RmJyB8fCBma3QgPT09ICd3ZGZpbicpOwogICAgICAgIHZhciBwcmltVmVyYW50ID0gcHJpbURn
bCB8fCBwcmltV2RmOyAgIC8vIDEuLzIuIFZJMy1ER0wtVmVyYW50d29ydGxpY2hlCgogICAgICAg
IGlmICghcHJpbURnbCAmJiAocy5kZ2wgfHwgMCkgPj0gMyAmJiAocy5kZ2wgfHwgMCkgPiBhdmcu
ZGdsICogMC41KQogICAgICAgICAgICBzYWV0emUucHVzaCgnd3VyZGUgJyArIHMuZGdsICsgJ8OX
IGFscyBER0wgZWluZ2VzZXR6dCAobmljaHQgcHJpbcOkcmUgRnVua3Rpb24pJyk7CiAgICAgICAg
aWYgKCFwcmltV2RmICYmIChzLndkZiB8fCAwKSA+PSAzICYmIChzLndkZiB8fCAwKSAvIGdlcyA+
IDAuMiAmJiAocy53ZGYgfHwgMCkgPiBhdmcud2RmICogMC43KQogICAgICAgICAgICBzYWV0emUu
cHVzaCgnd3VyZGUgJyArIHMud2RmICsgJ8OXIGFscyBXREYgaW0gRnVua3Rpb25zYmVzZXR6dW5n
c3BsYW4gZWluZ2VzZXR6dCcpOwogICAgICAgIGlmIChwcmltVmVyYW50ICYmIChzLmZicCB8fCAw
KSA+PSAzKSB7CiAgICAgICAgICAgIHZhciByb2xsZVN0ciA9IHByaW1EZ2wgPyAncHJpbcOkciBE
R0wnIDogJ3ByaW3DpHIgV0RGJzsKICAgICAgICAgICAgc2FldHplLnB1c2goJ3d1cmRlICcgKyBz
LmZicCArICfDlyBhbHMgRkJQIGVpbmdlc2V0enQgKCcgKyByb2xsZVN0ciArICcpJyk7CiAgICAg
ICAgfSBlbHNlIGlmICghcHJpbVZlcmFudCAmJiBhdmcuZmJwID4gMSAmJiAocy5mYnAgfHwgMCkg
PiBhdmcuZmJwICogMS41KSB7CiAgICAgICAgICAgIHNhZXR6ZS5wdXNoKCdpc3Qgw7xiZXJkdXJj
aHNjaG5pdHRsaWNoIG9mdCBGQlAgKCcgKyBzLmZicCArICfDlyknKTsKICAgICAgICB9CiAgICAg
ICAgaWYgKGF2Zy5zb24gPiAxICYmIChzLnNvbmRlcmRpZW5zdCB8fCAwKSA+IGF2Zy5zb24gKiAx
LjUpCiAgICAgICAgICAgIHNhZXR6ZS5wdXNoKCfDvGJlcm5pbW10IHZpZWxlIFNvbmRlcmRpZW5z
dGUgKFNEL1NFOiAnICsgcy5zb25kZXJkaWVuc3QgKyAnw5cpJyk7CgogICAgICAgIC8vIFdFLUJl
bGFzdHVuZwogICAgICAgIGlmIChhdmcud2UgPiAzICYmIHMud29jaGVuZW5kVGFnZSA+IGF2Zy53
ZSAqIDEuMykKICAgICAgICAgICAgc2FldHplLnB1c2goJ2hhdCDDvGJlcmR1cmNoc2Nobml0dGxp
Y2ggdmllbGUgV29jaGVuZW5kZGllbnN0ZSAoJyArIHMud29jaGVuZW5kVGFnZSArICcgdnMuIMOY
ICcgKyBNYXRoLnJvdW5kKGF2Zy53ZSkgKyAnKScpOwogICAgICAgIGVsc2UgaWYgKHMud29jaGVu
ZW5kVGFnZSA9PT0gMCAmJiBzLmdlc2FtdCA+IDEwKQogICAgICAgICAgICBzYWV0emUucHVzaCgn
bGVpc3RldCBrZWluZW4gV29jaGVuZW5kZGllbnN0Jyk7CgogICAgICAgIC8vIEtvbXBsZXR0ZSBX
b2NoZW5lbmRlbiDigJQgQmVsYXN0dW5ncy1EaWNodGUuIEhvaGVyIFdlcnQgYmVkZXV0ZXQ6CiAg
ICAgICAgLy8gUGVyc29uIGhhdHRlIG1laHJmYWNoIFNhK1NvIGFtIFN0dWVjay4gU2Nod2VsbGUg
NCBpc3QgcHJhZ21hdGlzY2guCiAgICAgICAgdmFyIGt3ID0gcy5rb21wbGV0dGVXRSB8fCAwOwog
ICAgICAgIGlmIChrdyA+PSA0ICYmIGt3ID4gYXZnLmtvbXBsZXR0ZVdFICogMS4zKQogICAgICAg
ICAgICBzYWV0emUucHVzaCgnaGF0ICcgKyBrdyArICcga29tcGxldHRlIFdvY2hlbmVuZGVuIOKA
lCBob2hlIEJlbGFzdHVuZ3MtRGljaHRlJyk7CgogICAgICAgIC8vIEZlaWVydGFnLURpZW5zdGUK
ICAgICAgICB2YXIgZmQgPSBzLmZlaWVydGFnRGllbnN0ZSB8fCAwOwogICAgICAgIGlmIChmZCA+
PSAzICYmIGZkID4gYXZnLmZlaWVydGFnRGllbnN0ZSAqIDEuMykKICAgICAgICAgICAgc2FldHpl
LnB1c2goZmQgKyAnIEZlaWVydGFnZSBnZWFyYmVpdGV0ICjDvGJlcmR1cmNoc2Nobml0dGxpY2gp
Jyk7CgogICAgICAgIC8vIFBvb2wtU3ByaW5nZXIgKG51ciBMRC9TTyk6IEFuemFobCBTcHJpbmdl
ci1UYWdlIGhlcnZvcmhlYmVuLgogICAgICAgIGlmICh0ZWFtSW5mbyAmJiB0ZWFtSW5mby50ZWFt
ICYmIF9pc3RQb29sVGVhbSh0ZWFtSW5mby50ZWFtKSAmJiB0ZWFtSW5mby5zcHJpbmdlclRhZ2Ug
PiAwKSB7CiAgICAgICAgICAgIHZhciB6aWVsZSA9IChQT09MX1JFTEFUSU9OW3RlYW1JbmZvLnRl
YW0uc3RhbmRvcnRdIHx8IFtdKS5qb2luKCcvJyk7CiAgICAgICAgICAgIHNhZXR6ZS5wdXNoKCdz
cHJpbmd0ICcgKyB0ZWFtSW5mby5zcHJpbmdlclRhZ2UgKyAnw5cgZsO8ciAnICsgemllbGUgKyAn
IGVpbicpOwogICAgICAgIH0KICAgICAgICAvLyBNaWtyb3RlYW0tQmV6dWcgZnVlciByZWd1bGFl
cmUgVGVhbXM6IHdlbm4gZGFzIGVpZ2VuZSBUZWFtIGhhZXVmaWcKICAgICAgICAvLyByb3QgaXN0
ICg+PSAyMCUgZGVyIFRhZ2UpLCBhbHMgS29udGV4dCBlaW5ibGVuZGVuLgogICAgICAgIGVsc2Ug
aWYgKHRlYW1JbmZvICYmIHRlYW1JbmZvLnRlYW0gJiYgIV9pc3RQb29sVGVhbSh0ZWFtSW5mby50
ZWFtKSkgewogICAgICAgICAgICB2YXIgdHMgPSB0ZWFtSW5mby50ZWFtLnN0YXQgfHwge307CiAg
ICAgICAgICAgIHZhciBhbnRlaWwgPSB0cy50b3RhbCA/IHRzLnJvdCAvIHRzLnRvdGFsIDogMDsK
ICAgICAgICAgICAgaWYgKGFudGVpbCA+PSAwLjIgJiYgdHMucm90ID49IDUpIHsKICAgICAgICAg
ICAgICAgIHNhZXR6ZS5wdXNoKCdNaWtyb3RlYW0gJyArIHRlYW1JbmZvLnRlYW0ubmFtZSArICcg
aGF0dGUgJyArIHRzLnJvdCArICcgTMO8Y2tlbnRhZ2UgaW0gWmVpdHJhdW0nKTsKICAgICAgICAg
ICAgfQogICAgICAgIH0KCiAgICAgICAgLy8gQWJ3ZXNlbmhlaXRlbiDigJQgS3Jhbmsgd2lyZCBo
aWVyIGJld3Vzc3QgbmljaHQgZXJ3YWVobnQgKERhdGVuc2NodXR6KS4KICAgICAgICBpZiAocy51
cmxhdWIgPiAoYXZnLnVybGF1YiAqIDEuNCkgJiYgYXZnLnVybGF1YiA+IDUpIHNhZXR6ZS5wdXNo
KHMudXJsYXViICsgJyBVcmxhdWJzdGFnZSAow7xiZXJkdXJjaHNjaG5pdHRsaWNoKScpOwogICAg
ICAgIGlmICgocy5rdXIgfHwgMCkgPiAwKSAgICAgICAgICBzYWV0emUucHVzaCgocy5rdXIpICsg
JyBUYWdlIGluIEt1cicpOwogICAgICAgIGlmIChzLmxlaHJnYW5nID4gNSkgICAgICAgICAgICBz
YWV0emUucHVzaChzLmxlaHJnYW5nICsgJyBMZWhyZ2FuZ3MtL0ZvcnRiaWxkdW5nc3RhZ2UnKTsK
ICAgICAgICBpZiAoKHMuYXpBdXNnbGVpY2ggfHwgMCkgPiA1KSAgc2FldHplLnB1c2gocy5hekF1
c2dsZWljaCArICcgQVotQXVzZ2xlaWNoc3RhZ2UnKTsKCiAgICAgICAgaWYgKCFzYWV0emUubGVu
Z3RoKSByZXR1cm4gJyc7ICAvLyBuaWNodHMgQXVmZsOkbGxpZ2VzCiAgICAgICAgLy8gRXJzdGUg
UGhyYXNlIG1pdCAiIOKAlCAiIGFiZ2V0cmVubnQgdm9tIFJlc3QsIGRhbWl0IGRlciBTYXR6IGxp
ZXN0IHdpZQogICAgICAgIC8vICJQSEsgWCDigJQgbWFjaHQgbWVociBEaWVuc3RlLCBpc3QgYXVz
Z2VnbGljaGVuLCDigKYiCiAgICAgICAgdmFyIHNhdHpUZXh0ID0gc2FldHplLmpvaW4oJywgJykg
KyAnLic7CiAgICAgICAgc2F0elRleHQgPSBzYXR6VGV4dC5jaGFyQXQoMCkudG9VcHBlckNhc2Uo
KSArIHNhdHpUZXh0LnNsaWNlKDEpOwogICAgICAgIHJldHVybiBlc2NhcGVIVE1MKHNhdHpUZXh0
KTsKICAgIH0KCiAgICAvLyA9PT09PSBTdGF0aXN0aWs6IEluZm8tTW9kYWxzID09PT09CgogICAg
Ly8gRXJrbGFlcnVuZ3MtSW5oYWx0ZSBwcm8gUGFuZWwuIFdpcmQgdm9tIChpKS1CdXR0b24gaW0g
UGFuZWwtS29wZgogICAgLy8gZ2VvZWZmbmV0LCB6ZWlndCB3ZWxjaGUgQ29kZXMgd2llIGdlemFl
aGx0IHdlcmRlbi4KICAgIHZhciBTVEFUX0lORk9TID0gewogICAgICAgIHZlcnRlaWx1bmc6IHsK
ICAgICAgICAgICAgdGl0ZWw6ICdTY2hpY2h0dmVydGVpbHVuZycsCiAgICAgICAgICAgIGh0bWw6
CiAgICAgICAgICAgICAgICAnPHA+QmFsa2VuIHBybyBQZXJzb24gbWl0IEZyw7xoL1Nww6R0L05h
Y2h0L1NvbmRlcmRpZW5zdC1BbnRlaWxlbi4gU29ydGllcmJhciDDvGJlciBkYXMgRHJvcGRvd24g
b2JlbiByZWNodHMuPC9wPicgKwogICAgICAgICAgICAgICAgJzxoND5aZWl0cmF1bTwvaDQ+JyAr
CiAgICAgICAgICAgICAgICAnPHA+TnVyIDxiPjAxLjAxLiBkZXMgUGxhbnVuZ3NqYWhyZXM8L2I+
IGJpcyA8Yj5oZXV0ZSArIDE0IFRhZ2U8L2I+IHdlcmRlbiBnZXrDpGhsdCDigJQgVm9yYXVzLUVp
bnRyYWd1bmdlbiB3ZWl0ZXIgaW4gZGVyIFp1a3VuZnQgZmxpZXNzZW4gPGk+bmljaHQ8L2k+IGVp
biwgZGFtaXQgZGVyIFZlcmdsZWljaCBmYWlyIGJsZWlidC48L3A+JyArCiAgICAgICAgICAgICAg
ICAnPGg0PlBlcnNvbmVua3JlaXM8L2g0PicgKwogICAgICAgICAgICAgICAgJzxwPlN0YW5kYXJk
OiBhbGxlIERpZW5zdGdydXBwZW4gYXVzIGRlbSBEcm9wZG93biBvYmVuLiBOdXIgZWluZSBiZXN0
aW1tdGUgR3J1cHBlIGFuc2NoYXVlbj8gSW0gRHJvcGRvd24gYXVzd8OkaGxlbiDigJQgS1BJcywg
TWlrcm90ZWFtLUhlYXRtYXAgdW5kIERldGFpbC1UYWJlbGxlIGZpbHRlcm4gc2ljaCBkYW5uIGdl
bWVpbnNhbS48L3A+JyArCiAgICAgICAgICAgICAgICAnPGg0PldlbGNoZSBDb2RlcyB6w6RobGVu
IHdvaGluPzwvaDQ+JyArCiAgICAgICAgICAgICAgICAnPHVsPicgKwogICAgICAgICAgICAgICAg
JzxsaT48Yj5GcsO8aGRpZW5zdDwvYj46IGFsbGUgQ29kZXMgbWl0IDxjb2RlPkYtPC9jb2RlPi1Q
cmVmaXggKEYtREdMLCBGLURHTE4sIEYtREdMUywgRi1XREYsIEYtV0RGTiwgRi1XREZTLCBGLUZC
UCkuPC9saT4nICsKICAgICAgICAgICAgICAgICc8bGk+PGI+U3DDpHRkaWVuc3Q8L2I+OiBhbGxl
IENvZGVzIG1pdCA8Y29kZT5TLTwvY29kZT4tUHJlZml4LjwvbGk+JyArCiAgICAgICAgICAgICAg
ICAnPGxpPjxiPk5hY2h0ZGllbnN0PC9iPjogYWxsZSBDb2RlcyBtaXQgPGNvZGU+Ti08L2NvZGU+
LVByZWZpeC48L2xpPicgKwogICAgICAgICAgICAgICAgJzxsaT48Yj5Tb25kZXJkaWVuc3Q8L2I+
IChlaWdlbmVzIFNlZ21lbnQpOiA8Y29kZT5TRDwvY29kZT4sIDxjb2RlPlNFPC9jb2RlPi48L2xp
PicgKwogICAgICAgICAgICAgICAgJzwvdWw+JyArCiAgICAgICAgICAgICAgICAnPHA+PGI+zqMg
R2VzYW10PC9iPiA9IEZyw7xoICsgU3DDpHQgKyBOYWNodCArIFNvbmRlcmRpZW5zdC48L3A+JyAr
CiAgICAgICAgICAgICAgICAnPGg0PldlaXRlcmUgU29ydGllci1GZWxkZXI8L2g0PicgKwogICAg
ICAgICAgICAgICAgJzx1bD4nICsKICAgICAgICAgICAgICAgICc8bGk+PGI+U2Ftc3RhZ2UgLyBT
b25udGFnZTwvYj46IERpZW5zdGUgYW4gU2EgYnp3LiBTbyDigJQgRmVpZXJ0YWdlIHrDpGhsZW4g
c2VwYXJhdCB1bnRlciA8Yj5GZWllcnRhZ2U8L2I+LCBuaWNodCBkb3BwZWx0LjwvbGk+JyArCiAg
ICAgICAgICAgICAgICAnPGxpPjxiPktvbXBsZXR0ZSBXb2NoZW5lbmRlbjwvYj46IFNhIDxpPnVu
ZDwvaT4gU28gZGVyc2VsYmVuIFdvY2hlIGpld2VpbHMgbWl0IERpZW5zdC48L2xpPicgKwogICAg
ICAgICAgICAgICAgJzxsaT48Yj5Gb3J0YmlsZHVuZzwvYj46IEF1RiwgRVRNLCBTZW0sIFRULCBU
ekYuIDxiPkRpZW5zdHVudGVycmljaHQ8L2I+OiBEVS4gPGI+TGVocmdhbmc8L2I+OiBMRy48L2xp
PicgKwogICAgICAgICAgICAgICAgJzxsaT48Yj5XYWNoZnJlaTwvYj46IHdmci4gPGI+RGllbnN0
ZnJlaTwvYj46IGRmci4gPGI+V2ljaHRpZ2UgZnJlaTwvYj46IMKnMjEgKyAyMWEuIDxiPkFaLUF1
c2dsZWljaDwvYj46IEFaQS4gPGI+U29uZGVydXJsYXViPC9iPjogU1UuPC9saT4nICsKICAgICAg
ICAgICAgICAgICc8L3VsPicKICAgICAgICB9LAogICAgICAgIGZhaXJuZXNzOiB7CiAgICAgICAg
ICAgIHRpdGVsOiAnV0UtICYgRlQtRmFpcm5lc3MnLAogICAgICAgICAgICBodG1sOgogICAgICAg
ICAgICAgICAgJzxwPlZlcmdsZWljaHQgZGllIEJlbGFzdHVuZyBkdXJjaCA8Yj5Xb2NoZW5lbmQt
PC9iPiB1bmQgPGI+RmVpZXJ0YWdzZGllbnN0ZTwvYj4gcHJvIFBlcnNvbiBtaXQgZGVtIEdydXBw
ZW5kdXJjaHNjaG5pdHQuPC9wPicgKwogICAgICAgICAgICAgICAgJzxoND5aZWl0cmF1bTwvaDQ+
JyArCiAgICAgICAgICAgICAgICAnPHA+R2xlaWNoZXIgQ3V0IHdpZSDDvGJlcmFsbDogPGI+MDEu
MDEuIGRlcyBQbGFudW5nc2phaHJlcyBiaXMgaGV1dGUgKyAxNCBUYWdlPC9iPiAoVmVyYmluZGxp
Y2hrZWl0c2VuZGUpLiBWb3JhdXMtRWludHJhZ3VuZ2VuIGplbnNlaXRzIGRhdm9uIGZsaWXDn2Vu
IG5pY2h0IGVpbi48L3A+JyArCiAgICAgICAgICAgICAgICAnPGg0PldFLURpZW5zdC1RdW90ZSAo
SGF1cHRtZXRyaWspPC9oND4nICsKICAgICAgICAgICAgICAgICc8cD5aZWlndCwgd2VsY2hlbiA8
Yj5BbnRlaWwgZGVyIHZlcmbDvGdiYXJlbiBTYStTby1UYWdlPC9iPiBkaWUgUGVyc29uIERpZW5z
dCBnZXNjaG9iZW4gaGF0LiBEYXMgbWFjaHQgUGVyc29uZW4gbWl0IHVudGVyc2NoaWVkbGljaCB2
aWVsIFVybGF1YiB2ZXJnbGVpY2hiYXIg4oCUIGplZGVyIGhhdCBkZW5zZWxiZW4gU09MTC1Qb29s
LCBhYmVyIHVudGVyc2NoaWVkbGljaGUgSVNULVZlcmbDvGdiYXJrZWl0LjwvcD4nICsKICAgICAg
ICAgICAgICAgICc8dWw+JyArCiAgICAgICAgICAgICAgICAnPGxpPjxiPlNPTEwtUG9vbDwvYj46
IGFsbGUgU2ErU28tVGFnZSBpbSBDdXQtWmVpdHJhdW0sIGRpZSA8aT5rZWluPC9pPiBGZWllcnRh
ZyBzaW5kLiBGw7xyIGFsbGUgUGVyc29uZW4gaWRlbnRpc2NoLjwvbGk+JyArCiAgICAgICAgICAg
ICAgICAnPGxpPjxiPlZlcmbDvGdiYXI8L2I+OiBTT0xMLVBvb2wgbWludXMgZWlnZW5lIEFid2Vz
ZW5oZWl0ZW4gYW0gV0UgKFVybCwga3IsIEt1ciwgU1UsIExHLCBBdUYsIEVUTSwgU2VtLCBUVCwg
VHpGLCBEVSkuPC9saT4nICsKICAgICAgICAgICAgICAgICc8bGk+PGI+UXVvdGU8L2I+ID0gU2Er
U28tRGllbnN0ZSAvIHZlcmbDvGdiYXIuIEJlaXNwaWVsOiAyNSB2b24gMzggPSA2NiAlLjwvbGk+
JyArCiAgICAgICAgICAgICAgICAnPGxpPkZyZWktQ29kZXMgKHdmciwgZGZyLCDCpzIxLCAyMWEs
IEFaQSkgesOkaGxlbiA8Yj5uaWNodDwvYj4gYWxzIEFid2VzZW5oZWl0IOKAlCBzaWUgc2luZCDi
gJ52ZXJmw7xnYmFyLCBhYmVyIGZyZWlnZXN0ZWxsdCIgdW5kIGdlbmF1IGRhcyBtYWNodCBkaWUg
UXVvdGUgc2ljaHRiYXIuPC9saT4nICsKICAgICAgICAgICAgICAgICc8L3VsPicgKwogICAgICAg
ICAgICAgICAgJzxoND5XRSBkdXJjaGdlYXJiZWl0ZXQ8L2g0PicgKwogICAgICAgICAgICAgICAg
JzxwPk1pbmktU3BhbHRlIHJlY2h0czogd2llIHZpZWxlIFdvY2hlbmVuZGVuIGhhdHRlIGRpZSBQ
ZXJzb24gU2EgPGk+dW5kPC9pPiBTbyBiZWlkZSBEaWVuc3QuIFplaWd0IERpY2h0ZSAoZHVyY2hn
ZWhlbmQgYmVsYXN0ZXQpIHZzLiBWZXJ0ZWlsdW5nICgxIFRhZy9XRSkuPC9wPicgKwogICAgICAg
ICAgICAgICAgJzxoND5GVC1UYWdlPC9oND4nICsKICAgICAgICAgICAgICAgICc8cD5EaWVuc3Qg
YW4gZWluZW0gRmVpZXJ0YWcgKGVnYWwgb2IgV29jaGVudGFnIG9kZXIgV0UpLiBLYXJmcmVpdGFn
LVNhIHrDpGhsdCBudXIgaGllciwgbmljaHQgZG9wcGVsdCBpbiBXRS48L3A+JyArCiAgICAgICAg
ICAgICAgICAnPGg0PlBlcnNvbmVua3JlaXM8L2g0PicgKwogICAgICAgICAgICAgICAgJzxwPkR5
bmFtaXNjaDogUGVyc29uZW4gbWl0IDxiPuKJpSAxMCAlIGRlciBkdXJjaHNjaG5pdHRsaWNoZW4g
R2VzYW10ZGllbnN0ZTwvYj4gKG1pbi4gMykuIFJlaW5lIFZvcmF1c3BsYW5lciB1bmQgTGFuZ3pl
aXQtQWJ3ZXNlbmRlIGZhbGxlbiBhdXRvbWF0aXNjaCByYXVzLjwvcD4nICsKICAgICAgICAgICAg
ICAgICc8aDQ+RmFyYnNrYWxhIChBYndlaWNodW5nIHZvbSDDmCk8L2g0PicgKwogICAgICAgICAg
ICAgICAgJzx1bD4nICsKICAgICAgICAgICAgICAgICc8bGk+PGI+R3LDvG48L2I+OiBpbm5lcmhh
bGIgwrEyMCAlLjwvbGk+JyArCiAgICAgICAgICAgICAgICAnPGxpPjxiPkdlbGI8L2I+OiDCsTIw
4oCTNTAgJS48L2xpPicgKwogICAgICAgICAgICAgICAgJzxsaT48Yj5Sb3Q8L2I+OiDDvGJlciDC
sTUwICUg4oCUIHdlciBoaWVyIGF1ZnRhdWNodCwgdHLDpGd0IGRldXRsaWNoIG1laHIgb2RlciB3
ZW5pZ2VyIGFscyBkaWUgR3J1cHBlLjwvbGk+JyArCiAgICAgICAgICAgICAgICAnPC91bD4nCiAg
ICAgICAgfSwKICAgICAgICBtaWtyb3RlYW1zOiB7CiAgICAgICAgICAgIHRpdGVsOiAnTWlrcm90
ZWFtcyDigJQgZ2VtZWluc2FtZSBWZXJmw7xnYmFya2VpdCcsCiAgICAgICAgICAgIGh0bWw6CiAg
ICAgICAgICAgICAgICAnPHA+UHJvIE1pa3JvdGVhbSAoU3RhbmRvcnQgw5cgRGllbnN0Z3J1cHBl
LCB6LiBCLiA8aT5LYW1lbi1BPC9pPikgd2lyZCBmw7xyIGplZGVuIFRhZyBpbSBaZWl0cmF1bSBn
ZXplaWd0LCB3aWUgdmllbGUgTWl0Z2xpZWRlciBpbSBEaWVuc3Qgd2FyZW4uPC9wPicgKwogICAg
ICAgICAgICAgICAgJzxoND5GYXJiZW48L2g0PicgKwogICAgICAgICAgICAgICAgJzx1bD4nICsK
ICAgICAgICAgICAgICAgICc8bGk+PGI+Um90PC9iPjogbmllbWFuZCBpbSBEaWVuc3QgdW5kIG1p
bmQuIGVpbmUgUGVyc29uIGhhdCBlaW5lbiBGcmVpLUNvZGUgKHdmci9kZnIvwqcyMS8yMWEvQVpB
KSDigJQgZGFzIFRlYW0gd29sbHRlIGtvbXBsZXR0IGZyZWkgaGFiZW4uPC9saT4nICsKICAgICAg
ICAgICAgICAgICc8bGk+PGI+R3JhdTwvYj46IG5pZW1hbmQgaW0gRGllbnN0LCBhYmVyIG1pbmQu
IGVpbmUgUGVyc29uIGlzdCBsZWdpdGltIGFid2VzZW5kIChVcmwva3IvS3VyL1NVL0xlaHJnYW5n
L0ZvcnRiaWxkdW5nL0JWL2FiZy9CQU8vSE8pLiBLZWluZSBMw7xja2UgaW0gbmVnYXRpdmVuIFNp
bm4uPC9saT4nICsKICAgICAgICAgICAgICAgICc8bGk+PGI+TmV1dHJhbDwvYj46IDEgUGVyc29u
IGltIERpZW5zdC48L2xpPicgKwogICAgICAgICAgICAgICAgJzxsaT48Yj5HcsO8bjwvYj46IDIr
IFBlcnNvbmVuIGltIERpZW5zdCAob2RlciBQb29sLVNwcmluZ2VyIGFrdGl2KS48L2xpPicgKwog
ICAgICAgICAgICAgICAgJzxsaT48Yj5Hb2xkPC9iPjogYWxsZSBUZWFtLU1pdGdsaWVkZXIgaW0g
RGllbnN0LjwvbGk+JyArCiAgICAgICAgICAgICAgICAnPC91bD4nICsKICAgICAgICAgICAgICAg
ICc8aDQ+4oCeSW0gRGllbnN0IjwvaDQ+JyArCiAgICAgICAgICAgICAgICAnPHA+TnVyIEYtL1Mt
L04tQ29kZXMgdW5kIFNvbmRlcmRpZW5zdCAoU0QvU0UpLiBGcmVpLVRhZ2UgKHdmci9kZnIvwqcy
MS8yMWEvQVpBKSwgVXJsYXViLCBLcmFuaywgS3VyLCBMZWhyZ2FuZyBldGMuIHrDpGhsZW4gPGI+
bmljaHQ8L2I+IGFscyDigJ5kYSIuPC9wPicgKwogICAgICAgICAgICAgICAgJzxoND5TcGFsdGVu
a29wZi1NYXJraWVydW5nZW48L2g0PicgKwogICAgICAgICAgICAgICAgJzx1bD4nICsKICAgICAg
ICAgICAgICAgICc8bGk+PGI+V29jaGVuZW5kZW48L2I+IChTYS9Tbyk6IGdyYXVlciBIaW50ZXJn
cnVuZC48L2xpPicgKwogICAgICAgICAgICAgICAgJzxsaT48Yj5GZWllcnRhZ2U8L2I+OiByb3Rl
ciBTdHJlaWZlbiwgVG9vbHRpcCBtaXQgRmVpZXJ0YWdzbmFtZW4uPC9saT4nICsKICAgICAgICAg
ICAgICAgICc8bGk+PGI+RmVyaWVuPC9iPjogYmxhdWVyIFN0cmVpZmVuLCBUb29sdGlwIG1pdCBG
ZXJpZW4tQmV6ZWljaG51bmcuPC9saT4nICsKICAgICAgICAgICAgICAgICc8bGk+PGI+4pqgIFNv
bmRlcnRlcm1pbjwvYj46IFdhcm5kcmVpZWNrIGltIFNwYWx0ZW5rb3BmLiBLbGljayDDtmZmbmV0
IGRpZSBCZXNjaHJlaWJ1bmcuPC9saT4nICsKICAgICAgICAgICAgICAgICc8L3VsPicgKwogICAg
ICAgICAgICAgICAgJzxoND5LbGljay1Ba3Rpb25lbjwvaDQ+JyArCiAgICAgICAgICAgICAgICAn
PHVsPicgKwogICAgICAgICAgICAgICAgJzxsaT48Yj5LbGljayBhdWYgVGVhbS1OYW1lPC9iPjog
a2xhcHB0IGRpZSBEZXRhaWwtWmVpbGVuIG1pdCBkZW4gZWluemVsbmVuIFBlcnNvbmVuIGF1Zi96
dS4gVGFnZXN6ZWxsZW4gemVpZ2VuIGRhbm4gZGVuIGpld2VpbGlnZW4gQ29kZSAoRi1ER0wsIFVy
bCwga3IsIOKApikuPC9saT4nICsKICAgICAgICAgICAgICAgICc8bGk+PGI+S2xpY2sgYXVmIOKa
oDwvYj46IHplaWd0IGRpZSBTb25kZXJ0ZXJtaW4tRGV0YWlscy48L2xpPicgKwogICAgICAgICAg
ICAgICAgJzwvdWw+JyArCiAgICAgICAgICAgICAgICAnPHA+PGk+RGllIE5lYmVud2FjaGVuLVZl
cmFudHdvcnR1bmcgdW5kIGRpZSBUYWdlcy1BbnRlaWxlIHBybyBUZWFtIGhhYmVuIGpldHp0IGVp
Z2VuZSBLbGFwcGJsw7Zja2UgdW50ZXJoYWxiIOKAlCBzaWVoZSBkZXJlbiBlaWdlbmUgaS1CdXR0
b25zIGbDvHIgRGV0YWlscy48L2k+PC9wPicKICAgICAgICB9LAogICAgICAgIG5lYmVud2FjaGVu
OiB7CiAgICAgICAgICAgIHRpdGVsOiAnVkkzLURHTC1WZXJhbnR3b3J0dW5nIE5lYmVud2FjaGVu
JywKICAgICAgICAgICAgaHRtbDoKICAgICAgICAgICAgICAgICc8cD5adXPDpHR6bGljaGUgSGVh
dG1hcCBmw7xyIGRpZSBkcmVpIE5lYmVud2FjaGVuIChCb2NodW0sIEFybnNiZXJnLCBGcmV1ZGVu
YmVyZykgw5cgQS9CL0MuPC9wPicgKwogICAgICAgICAgICAgICAgJzxoND5XYW5uIHdpcmQgZWlu
ZSBaZWxsZSBncsO8bj88L2g0PicgKwogICAgICAgICAgICAgICAgJzxwPkVpbmUgWmVsbGUgd2ly
ZCA8Yj5ncsO8bjwvYj4sIHdlbm4gYW4gZGVtIFRhZyBtaW5kZXN0ZW5zIGVpbiBNaXRnbGllZCBk
aWVzZXMgVGVhbXMgaW4gZGVyIDxiPjEuIG9kZXIgMi4gVkkzLURHTC1WZXJhbnR3b3J0dW5nPC9i
PiBlaW5lciBTY2hpY2h0IChGcsO8aC9TcMOkdC9OYWNodCkgc3RlaHQg4oCUIGFsc28gc2NocmFm
ZmllcnQgZGFyZ2VzdGVsbHQgd8OkcmUuIFNvbnN0IGJsZWlidCBkaWUgWmVsbGUgPGI+Z3JhdTwv
Yj4uPC9wPicgKwogICAgICAgICAgICAgICAgJzxwPkRpZSBWZXJhbnR3b3J0dW5nIHdpcmQgZHlu
YW1pc2NoIG5hY2ggPGI+RnVua3Rpb25zLVJhbmc8L2I+IChER0wvREdMaW4gJmd0OyAzLiBNYW5u
L0ZyYXUgJmd0OyBXYWNobGVpdHVuZykgdW5kIDxiPlBvc2l0aW9uPC9iPiBkZXIgamV3ZWlscyBk
aWVuc3QtbGVpc3RlbmRlbiBER0wtUGVyc29uZW4gZXJtaXR0ZWx0IOKAlCBpZGVudGlzY2ggenVy
IEdyaWQtTG9naWsuIERhIGRpZSBIYXVwdHdhY2hlbiBLYW1lbiB1bmQgSGFnZW4gZGllIFZlcmFu
dHdvcnR1bmcgbm9ybWFsZXJ3ZWlzZSBzdGVsbGVuLCBzaW5kIGdyw7xuZSBUYWdlIGF1ZiBkZW4g
TmViZW53YWNoZW4gZWluIEluZGlrYXRvciBmw7xyIGVpbmUgU29uZGVyLUtvbnN0ZWxsYXRpb24g
KEzDvGNrZSBhdWYgZGVyIEhhdXB0d2FjaGUsIENyb3NzLVdhY2hlbi1FaW5zYXR6KS48L3A+Jwog
ICAgICAgIH0sCiAgICAgICAgdGFnZXNhbnRlaWxlOiB7CiAgICAgICAgICAgIHRpdGVsOiAnVGFn
ZXMtQW50ZWlsZSBwcm8gVGVhbScsCiAgICAgICAgICAgIGh0bWw6CiAgICAgICAgICAgICAgICAn
PHA+VGFnZXMtQW50ZWlsZSBwcm8gVGVhbSBhbHMgZ2VzdGFwZWx0ZXIgMTAwJS1CYWxrZW46IHJv
dCAvIGdyYXUgLyBuZXV0cmFsIC8gZ3LDvG4gLyBnb2xkLjwvcD4nICsKICAgICAgICAgICAgICAg
ICc8aDQ+U29ydGllci1PcHRpb25lbjwvaDQ+JyArCiAgICAgICAgICAgICAgICAnPHVsPicgKwog
ICAgICAgICAgICAgICAgJzxsaT48Yj5SZWloZW5mb2xnZTwvYj46IFN0YW5kYXJkLVJlaWhlbmZv
bGdlIGF1cyBkZXIgQWRtaW4tS29uZmlndXJhdGlvbi48L2xpPicgKwogICAgICAgICAgICAgICAg
JzxsaT48Yj5Mw7xja2VuIHp1ZXJzdDwvYj46IHByb2JsZW1hdGlzY2hlIFRlYW1zICh2aWVsZSBy
b3RlIFRhZ2UpIHp1ZXJzdC48L2xpPicgKwogICAgICAgICAgICAgICAgJzxsaT48Yj5Hb2xkIHp1
ZXJzdDwvYj46IGJlc3QgZ2VzdGVsbHRlIFRlYW1zIChhbGxlIE1pdGdsaWVkZXIgaMOkdWZpZyBn
bGVpY2h6ZWl0aWcgaW0gRGllbnN0KS48L2xpPicgKwogICAgICAgICAgICAgICAgJzxsaT48Yj5N
aW5kLiAxIGRhPC9iPjogUXVvdGUgZGVyIFRhZ2UgbWl0IEFiZGVja3VuZyAobWluZC4gMSBQZXJz
b24gaW0gRGllbnN0KS48L2xpPicgKwogICAgICAgICAgICAgICAgJzwvdWw+JyArCiAgICAgICAg
ICAgICAgICAnPHA+RGllIDxiPkFiZGVja3VuZyAlPC9iPiByZWNodHMgaXN0IGRlciBBbnRlaWwg
ZGVyIFRhZ2UgbWl0IG1pbmRlc3RlbnMgMSBQZXJzb24gaW0gRGllbnN0LjwvcD4nICsKICAgICAg
ICAgICAgICAgICc8cD5Qb29sLVRlYW1zIChMRC1XRCwgU08tV0QpIHdlcmRlbiBhdXNnZWtsYW1t
ZXJ0IOKAlCBzaWUgaGFiZW4gbnVyIDEgUGVyc29uIHVuZCBrZWluZW4gc2lubnZvbGxlbiBUYWdl
cy1BbnRlaWwuPC9wPicKICAgICAgICB9LAogICAgICAgIGFid2VzZW5oZWl0OiB7CiAgICAgICAg
ICAgIHRpdGVsOiAnQWJ3ZXNlbmhlaXRlbicsCiAgICAgICAgICAgIGh0bWw6CiAgICAgICAgICAg
ICAgICAnPHA+w5xiZXJzaWNodCBkZXIgTmljaHQtRGllbnN0LUNvZGVzLiBLbGljayBhdWYgZWlu
ZSBLYWNoZWwgemVpZ3QgZGllIFRvcC1QZXJzb25lbi48L3A+JyArCiAgICAgICAgICAgICAgICAn
PHA+PGI+SGlud2Vpczo8L2I+IEtyYW5raGVpdHN0YWdlICg8Y29kZT5rcjwvY29kZT4pIHdlcmRl
biBoaWVyIGJld3Vzc3QgbmljaHQgYXVzZ2V3ZXJ0ZXQuIFNpZSBzaW5kIG51ciBpbiBkZXIgRGV0
YWlsdGFiZWxsZSBnYW56IHVudGVuIHNpY2h0YmFyLjwvcD4nICsKICAgICAgICAgICAgICAgICc8
aDQ+S2F0ZWdvcmllbjwvaDQ+JyArCiAgICAgICAgICAgICAgICAnPHVsPicgKwogICAgICAgICAg
ICAgICAgJzxsaT48Yj5LdXI8L2I+OiA8Y29kZT5LdXI8L2NvZGU+IOKAlCBTcG9ydGt1cmVuLCBl
aWdlbnN0w6RuZGlnZSBLYXRlZ29yaWUuPC9saT4nICsKICAgICAgICAgICAgICAgICc8bGk+PGI+
VXJsYXViPC9iPjogPGNvZGU+VXJsPC9jb2RlPi48L2xpPicgKwogICAgICAgICAgICAgICAgJzxs
aT48Yj5MZWhyZ2FuZyAvIEZvcnRiaWxkdW5nPC9iPjogPGNvZGU+TEc8L2NvZGU+LCA8Y29kZT5U
VDwvY29kZT4sIDxjb2RlPkF1RjwvY29kZT4sIDxjb2RlPkZCPC9jb2RlPiwgPGNvZGU+U2VtPC9j
b2RlPiwgPGNvZGU+RVRNPC9jb2RlPiwgPGNvZGU+RFU8L2NvZGU+LjwvbGk+JyArCiAgICAgICAg
ICAgICAgICAnPGxpPjxiPkFaLUF1c2dsZWljaCAoMjFlci1UYWdlKTwvYj46IDxjb2RlPsKnMjE8
L2NvZGU+LCA8Y29kZT4yMWE8L2NvZGU+LCA8Y29kZT5BWkE8L2NvZGU+LjwvbGk+JyArCiAgICAg
ICAgICAgICAgICAnPC91bD4nCiAgICAgICAgfSwKICAgICAgICBwcm9zYTogewogICAgICAgICAg
ICB0aXRlbDogJ0RldGFpbGFuYWx5c2UgcHJvIFBlcnNvbicsCiAgICAgICAgICAgIGh0bWw6CiAg
ICAgICAgICAgICAgICAnPHA+RsO8ciBqZWRlIFBlcnNvbiB3aXJkIGVpbiBrdXJ6ZXIgVGV4dCBh
dXMgUmVnZWwtQmF1c3RlaW5lbiBnZW5lcmllcnQuIERpZSBSZWdlbG4gc2luZCByZWxhdGl2IHp1
bSBEdXJjaHNjaG5pdHQgZGVyIGFrdHVlbGxlbiBBdXN3YWhsIChHcnVwcGVuLUZpbHRlciArIFN0
YWItVG9nZ2xlIHdpcmtlbikuIFNvcnRpZXJ1bmc6IG5hY2ggPGI+U3RhbmRvcnQgKyBEaWVuc3Rn
cnVwcGU8L2I+IChLYW1lbi1BIOKGkiBTb2VzdC1XRCkuPC9wPicgKwogICAgICAgICAgICAgICAg
JzxoND5TY2hpY2h0IC8gRnVua3Rpb248L2g0PicgKwogICAgICAgICAgICAgICAgJzx1bD4nICsK
ICAgICAgICAgICAgICAgICc8bGk+PGI+R2VzYW10ICZndDsgMSwyw5fDmDwvYj4g4oaSIOKAnm1l
aHIgRGllbnN0ZSBhbHMgw7xibGljaCIgwrcgPGI+Jmx0OyAwLDfDl8OYPC9iPiDihpIg4oCedW50
ZXJkdXJjaHNjaG5pdHRsaWNoIHdlbmlnZSIuPC9saT4nICsKICAgICAgICAgICAgICAgICc8bGk+
PGI+TmFjaHQtIC8gRnLDvGgtIC8gU3DDpHRhbnRlaWwgJmd0OyAxLDPDlyDDmC1BbnRlaWw8L2I+
IOKGkiDigJ52ZXJtZWhydCDigKYiLjwvbGk+JyArCiAgICAgICAgICAgICAgICAnPGxpPjxiPnxm
cnVlaCDiiJIgc3BhZXR8IC8gKGZydWVoICsgc3BhZXQpICZsdDsgMCwxNTwvYj4g4oaSIOKAnmlu
IEZyw7xoIHVuZCBTcMOkdCBhdXNnZWdsaWNoZW4iLjwvbGk+JyArCiAgICAgICAgICAgICAgICAn
PGxpPjxiPkRHTCAmZ3Q7IDEsMsOXw5g8L2I+LCA8Yj5XREYgJmd0OyAzMCAlICZhbXA7ICZndDsg
MSwyw5fDmDwvYj4sIDxiPkZCUCAmZ3Q7IDEsNcOXw5g8L2I+LCA8Yj5Tb25kZXJkaWVuc3QgJmd0
OyAxLDXDl8OYPC9iPi48L2xpPicgKwogICAgICAgICAgICAgICAgJzwvdWw+JyArCiAgICAgICAg
ICAgICAgICAnPGg0PldvY2hlbmVuZGUgLyBGZWllcnRhZyAvIEJlbGFzdHVuZ3MtRGljaHRlPC9o
ND4nICsKICAgICAgICAgICAgICAgICc8dWw+JyArCiAgICAgICAgICAgICAgICAnPGxpPjxiPldF
LURpZW5zdGUgJmd0OyAxLDPDl8OYPC9iPiBvZGVyIDxiPj0gMDwvYj4gYmVpICZndDsgMTAgR2Vz
YW10ZGllbnN0ZW4uPC9saT4nICsKICAgICAgICAgICAgICAgICc8bGk+PGI+V0UgZHVyY2hnZWFy
YmVpdGV0IOKJpSA0IHVuZCAmZ3Q7IDEsM8OXw5g8L2I+IOKGkiDigJ5ob2hlIEJlbGFzdHVuZ3Mt
RGljaHRlIi48L2xpPicgKwogICAgICAgICAgICAgICAgJzxsaT48Yj5GZWllcnRhZy1EaWVuc3Rl
IOKJpSAzIHVuZCAmZ3Q7IDEsM8OXw5g8L2I+IOKGkiDigJ7DvGJlcmR1cmNoc2Nobml0dGxpY2gi
LjwvbGk+JyArCiAgICAgICAgICAgICAgICAnPC91bD4nICsKICAgICAgICAgICAgICAgICc8aDQ+
TWlrcm90ZWFtLUJlenVnPC9oND4nICsKICAgICAgICAgICAgICAgICc8dWw+JyArCiAgICAgICAg
ICAgICAgICAnPGxpPjxiPlBvb2wtUGVyc29uIChMRC9TTyk8L2I+OiBBbnphaGwgU3ByaW5nZXIt
VGFnZSBmw7xyIFppZWwtU3RhbmRvcnQuPC9saT4nICsKICAgICAgICAgICAgICAgICc8bGk+PGI+
UmVndWzDpHJlcyBUZWFtIG1pdCDiiaUgMjAgJSBMw7xja2VudGFnZW48L2I+OiBIaW53ZWlzIGFs
cyBLb250ZXh0LjwvbGk+JyArCiAgICAgICAgICAgICAgICAnPC91bD4nICsKICAgICAgICAgICAg
ICAgICc8aDQ+QWJ3ZXNlbmhlaXRlbjwvaDQ+JyArCiAgICAgICAgICAgICAgICAnPHVsPicgKwog
ICAgICAgICAgICAgICAgJzxsaT48Yj5VcmxhdWIgJmd0OyAxLDTDl8OYPC9iPiwgPGI+TGVocmdh
bmcgJmd0OyA1PC9iPiwgPGI+QVpBICZndDsgNTwvYj4g4oaSIGpld2VpbHMgRXJ3w6RobnVuZy48
L2xpPicgKwogICAgICAgICAgICAgICAgJzxsaT48Yj5LdXIgJmd0OyAwPC9iPiDihpIgSGlud2Vp
cyBhbHMgSW5mbyAoa2VpbiBXYXJuc2lnbmFsKS48L2xpPicgKwogICAgICAgICAgICAgICAgJzxs
aT48Yj5LcmFuazwvYj4gd2lyZCBoaWVyIDxiPm5pY2h0PC9iPiBlcnfDpGhudCAoRGF0ZW5zY2h1
dHopLjwvbGk+JyArCiAgICAgICAgICAgICAgICAnPC91bD4nICsKICAgICAgICAgICAgICAgICc8
cD5QZXJzb25lbiBtaXQgd2VuaWdlciBhbHMgMyBHZXNhbXRkaWVuc3RlbiB3ZXJkZW4gw7xiZXJz
cHJ1bmdlbiAoenUgd2VuaWcgRGF0ZW5iYXNpcykuPC9wPicKICAgICAgICB9CiAgICB9OwoKICAg
IGZ1bmN0aW9uIHN0YXRJbmZvWmVpZ2VuKHNjaGx1ZXNzZWwpIHsKICAgICAgICB2YXIgaW5mbyA9
IFNUQVRfSU5GT1Nbc2NobHVlc3NlbF07CiAgICAgICAgaWYgKCFpbmZvKSByZXR1cm47CiAgICAg
ICAgdmFyIGZ1c3MgPSAnPGJ1dHRvbiBjbGFzcz0iYnRuIGJ0bi1wcmltYWVyIiBpZD0ic3RhdHMt
aW5mby1zY2hsaWVzc2VuIj5WZXJzdGFuZGVuPC9idXR0b24+JzsKICAgICAgICBtb2RhbFplaWdl
bignSW5mbzogJyArIGluZm8udGl0ZWwsIGluZm8uaHRtbCwgZnVzcywgbnVsbCk7CiAgICAgICAg
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3N0YXRzLWluZm8tc2NobGllc3NlbicpLmFkZEV2ZW50
TGlzdGVuZXIoJ2NsaWNrJywgbW9kYWxTY2hsaWVzc2VuKTsKICAgIH0KCiAgICBmdW5jdGlvbiBr
cGlLYXJ0ZSh3ZXJ0LCBsYWJlbCwgZmFyYmUpIHsKICAgICAgICByZXR1cm4gJzxkaXYgY2xhc3M9
InN0YXRzLWtwaSI+JyArCiAgICAgICAgICAgICc8ZGl2IGNsYXNzPSJzdGF0cy1rcGktd2VydCIg
c3R5bGU9ImNvbG9yOicgKyBmYXJiZSArICciPicgKyB3ZXJ0ICsgJzwvZGl2PicgKwogICAgICAg
ICAgICAnPGRpdiBjbGFzcz0ic3RhdHMta3BpLWxhYmVsIj4nICsgbGFiZWwgKyAnPC9kaXY+PC9k
aXY+JzsKICAgIH0KCiAgICAvLyBCYWxrZW4tQW5zaWNodDogcHJvIFBlcnNvbiBlaW4gZ2VzdGFw
ZWx0ZXIgQmFsa2VuLCBkZXNzZW4gU2VnbWVudGUKICAgIC8vIHNpY2ggbmFjaCBkZXIgYWt0dWVs
bCBha3RpdmVuIEthdGVnb3JpZSByaWNodGVuIChTY2hpY2h0ZW4gLwogICAgLy8gV29jaGVuZW5k
ZGllbnN0ZSAvIEZvcnRiaWxkdW5nIC8gQWJ3ZXNlbmhlaXQpLiBTb3J0aWVydW5nIG5hY2ggZGVy
CiAgICAvLyBLYXRlZ29yaWUtU3VtbWUsIFJpY2h0dW5nIHVtc2NoYWx0YmFyLgogICAgLy8KICAg
IC8vIEtSQU5LIGlzdCBiZXd1c3N0IG5pcmdlbmR3byBlbnRoYWx0ZW4g4oCUIERhdGVuc2NodXR6
LUFuZm9yZGVydW5nLgogICAgZnVuY3Rpb24gYmFsa2VuUmVuZGVybihzdGF0cykgewogICAgICAg
IHZhciBlbCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdzdGF0cy1jaGFydC1iYWxrZW4nKTsK
ICAgICAgICBpZiAoIWVsKSByZXR1cm47CiAgICAgICAgaWYgKCFzdGF0cy5sZW5ndGgpIHsKICAg
ICAgICAgICAgZWwuaW5uZXJIVE1MID0gJzxkaXYgY2xhc3M9ImFkbWluLWVtcHR5Ij4nICsKICAg
ICAgICAgICAgICAgICcnICsKICAgICAgICAgICAgICAgICc8ZGl2IGNsYXNzPSJhZG1pbi1lbXB0
eS10aXRlbCI+S2VpbmUgU3RhdGlzdGlrLURhdGVuPC9kaXY+JyArCiAgICAgICAgICAgICAgICAn
PGRpdiBjbGFzcz0iYWRtaW4tZW1wdHktdGV4dCI+SW0gYWt0dWVsbGVuIEZpbHRlciBzaW5kIGtl
aW5lIFBlcnNvbmVuIG1pdCBFaW50cmFlZ2VuLiBGaWx0ZXIgenVydWVja3NldHplbiBvZGVyIERh
dGVuIGVyZmFzc2VuLjwvZGl2PicgKwogICAgICAgICAgICAgICAgJzwvZGl2Pic7CiAgICAgICAg
ICAgIHJldHVybjsKICAgICAgICB9CgogICAgICAgIHZhciBrYXQgPSBTVEFUX0tBVEVHT1JJRU5b
X3N0YXRLYXRlZ29yaWVdIHx8IFNUQVRfS0FURUdPUklFTi5zY2hpY2h0ZW47CiAgICAgICAgdmFy
IHJpY2h0dW5nID0gX3N0YXRTb3J0UmljaHR1bmc7CgogICAgICAgIC8vIFNvcnRpZXItS29waWUu
IEJlaSBHbGVpY2hzdGFuZCBhbHBoYWJldGlzY2ggbmFjaCBOYW1lIGFscyBUaWVicmVha2VyLgog
ICAgICAgIHZhciByb3dzID0gc3RhdHMuc2xpY2UoKS5zb3J0KGZ1bmN0aW9uKGEsIGIpIHsKICAg
ICAgICAgICAgdmFyIGF2ID0gX3N0YXRLYXRTdW1tZShhLCBrYXQpLCBidiA9IF9zdGF0S2F0U3Vt
bWUoYiwga2F0KTsKICAgICAgICAgICAgaWYgKGF2ICE9PSBidikgcmV0dXJuIHJpY2h0dW5nID09
PSAnZGVzYycgPyBidiAtIGF2IDogYXYgLSBidjsKICAgICAgICAgICAgcmV0dXJuIChhLm5hbWUg
fHwgJycpLmxvY2FsZUNvbXBhcmUoYi5uYW1lIHx8ICcnLCAnZGUnKTsKICAgICAgICB9KTsKCiAg
ICAgICAgLy8gU2thbGllcnVuZyBkZXMgSGF1cHRiYWxrZW5zIGF1ZiBkaWUgbWF4aW1hbGUgS2F0
ZWdvcmllLVN1bW1lLgogICAgICAgIHZhciBtYXhTdW0gPSBNYXRoLm1heC5hcHBseShudWxsLCBy
b3dzLm1hcChmdW5jdGlvbihzKSB7IHJldHVybiBfc3RhdEthdFN1bW1lKHMsIGthdCk7IH0pKSB8
fCAxOwogICAgICAgIC8vIEV4dHJhLVNwYWx0ZSAoei5CLiBrb21wbGV0dGUgV0UpOiBlaWdlbmUg
U2thbGllcnVuZwogICAgICAgIHZhciBtYXhFeHRyYSA9IDE7CiAgICAgICAgaWYgKGthdC5leHRy
YSkgewogICAgICAgICAgICBtYXhFeHRyYSA9IE1hdGgubWF4LmFwcGx5KG51bGwsIHJvd3MubWFw
KGZ1bmN0aW9uKHMpIHsgcmV0dXJuIHNba2F0LmV4dHJhLmZlbGRdIHx8IDA7IH0pKSB8fCAxOwog
ICAgICAgIH0KCiAgICAgICAgLy8gU3BhbHRlbi1Lb3BmemVpbGU6IFNlZ21lbnQtTGFiZWxzICsg
U3VtbWVuLUxhYmVsICsgZ2dmLiBFeHRyYQogICAgICAgIHZhciBzZWdMYWJlbHMgPSBrYXQuc2Vn
bWVudGUubWFwKGZ1bmN0aW9uKHNlZykgewogICAgICAgICAgICByZXR1cm4gJzxzcGFuIGNsYXNz
PSJzdGF0cy1iYWxrZW4tc2VnLWxhYmVsIiBzdHlsZT0iY29sb3I6JyArIGVzY2FwZUF0dHIoc2Vn
LmZhcmJlKSArICciPicgKyBlc2NhcGVIVE1MKHNlZy5sYWJlbCkgKyAnPC9zcGFuPic7CiAgICAg
ICAgfSkuam9pbignIMK3ICcpOwogICAgICAgIC8vIM6jLUxhYmVsOiBkYXMgZ2VzYW10ZSDOoy1M
YWJlbCAoei5CLiAizqMgRGllbnN0ZSIpIGlzdCBrbGlja2JhciB1bmQKICAgICAgICAvLyBvZWZm
bmV0IGRhcyBJbmZvLU1vZGFsLiBGcnVlaGVyIGdhYiBlcyBlaW4genVzYWV0emxpY2hlcyAoPykt
SWNvbgogICAgICAgIC8vIOKAlCBlbnRmZXJudCwgd2VpbCBkaWUgZG90dGVkLVVuZGVybGluZS1B
ZmZvcmRhbmNlIHBsdXMgZGVyIGdlc2FtdGUKICAgICAgICAvLyBrbGlja2JhcmUgVGV4dCBhbHMg
SGlud2VpcyBhdXNyZWljaGVuLgogICAgICAgIHZhciBzaWdtYVRpcCA9ICfOoyA9IFN1bW1lLiBL
bGljayDDtmZmbmV0IGRpZSBFcmtsw6RydW5nLic7CiAgICAgICAgdmFyIHNvcnRMYWJlbEh0bWwg
PSAnPHNwYW4gY2xhc3M9InN0YXRzLXNpZ21hLWhpbGZlIiBkYXRhLXNpZ21hLWluZm89IjEiIHRp
dGxlPSInICsgZXNjYXBlQXR0cihzaWdtYVRpcCkgKyAnIj4nICsgZXNjYXBlSFRNTChrYXQuc29y
dExhYmVsKSArICc8L3NwYW4+JzsKICAgICAgICAvLyBLYXRlZ29yaWUtQmVzY2hyZWlidW5nIChv
cHRpb25hbCwgbnVyIGZ1ZXIgS2F0ZWdvcmllbiBtaXQga29udGV4dHVlbGxlcgogICAgICAgIC8v
IEVybGFldXRlcnVuZyAtLSB6LkIuICJFaW5nZXNwcnVuZ2VuIjogd2FzIHdpcmQgZWlnZW50bGlj
aCBnZXphZWhsdD8pLgogICAgICAgIHZhciBiZXNjaHJlaWJ1bmdIdG1sID0gJyc7CiAgICAgICAg
aWYgKGthdC5iZXNjaHJlaWJ1bmcpIHsKICAgICAgICAgICAgYmVzY2hyZWlidW5nSHRtbCA9ICc8
cCBjbGFzcz0ic3RhdHMta2F0LWJlc2NocmVpYnVuZyI+JyArIGthdC5iZXNjaHJlaWJ1bmcgKyAn
PC9wPic7CiAgICAgICAgfQogICAgICAgIHZhciBrb3BmID0gYmVzY2hyZWlidW5nSHRtbCArICc8
ZGl2IGNsYXNzPSJzdGF0cy1iYWxrZW4ta29wZiI+JyArCiAgICAgICAgICAgICc8ZGl2IGNsYXNz
PSJzdGF0cy1iYWxrZW4tbmFtZSI+PC9kaXY+JyArCiAgICAgICAgICAgICc8ZGl2IGNsYXNzPSJz
dGF0cy1iYWxrZW4tYmFyLXdyYXAiPjxzcGFuIGNsYXNzPSJzdGF0cy1iYWxrZW4ta29wZi1sYWJl
bCI+JyArIHNlZ0xhYmVscyArICc8L3NwYW4+PC9kaXY+JyArCiAgICAgICAgICAgICc8ZGl2IGNs
YXNzPSJzdGF0cy1iYWxrZW4tdG90YWwiPjxzcGFuIGNsYXNzPSJzdGF0cy1iYWxrZW4ta29wZi1s
YWJlbCI+JyArIHNvcnRMYWJlbEh0bWwgKyAnICcgKyAocmljaHR1bmcgPT09ICdkZXNjJyA/ICfi
hpMnIDogJ+KGkScpICsgJzwvc3Bhbj48L2Rpdj4nICsKICAgICAgICAgICAgKGthdC5leHRyYSA/
ICc8ZGl2IGNsYXNzPSJzdGF0cy1iYWxrZW4tZXh0cmEiPjxzcGFuIGNsYXNzPSJzdGF0cy1iYWxr
ZW4ta29wZi1sYWJlbCIgc3R5bGU9ImNvbG9yOicgKyBlc2NhcGVBdHRyKGthdC5leHRyYS5mYXJi
ZSkgKyAnIj4nICsgZXNjYXBlSFRNTChrYXQuZXh0cmEubGFiZWwpICsgJzwvc3Bhbj48L2Rpdj4n
IDogJycpICsKICAgICAgICAgICAgJzwvZGl2Pic7CgogICAgICAgIHZhciBodG1sID0gJyc7CiAg
ICAgICAgcm93cy5mb3JFYWNoKGZ1bmN0aW9uKHMpIHsKICAgICAgICAgICAgdmFyIHN1bW1lID0g
X3N0YXRLYXRTdW1tZShzLCBrYXQpOwogICAgICAgICAgICAvLyBTZWdtZW50ZSBiYXVlbgogICAg
ICAgICAgICB2YXIgc2VnSHRtbCA9ICcnOwogICAgICAgICAgICBrYXQuc2VnbWVudGUuZm9yRWFj
aChmdW5jdGlvbihzZWcpIHsKICAgICAgICAgICAgICAgIHZhciB2ID0gc1tzZWcuZmVsZF0gfHwg
MDsKICAgICAgICAgICAgICAgIGlmICh2ID09PSAwKSByZXR1cm47CiAgICAgICAgICAgICAgICB2
YXIgYnJlaXRlID0gKHYgLyBtYXhTdW0pICogMTAwOwogICAgICAgICAgICAgICAgc2VnSHRtbCAr
PSAnPGRpdiBjbGFzcz0ic3RhdHMtYmFsa2VuLXNlZ21lbnQiIHN0eWxlPSJ3aWR0aDonICsgYnJl
aXRlICsgJyU7YmFja2dyb3VuZDonICsgZXNjYXBlQXR0cihzZWcuZmFyYmUpICsgJyIgdGl0bGU9
IicgKyBlc2NhcGVBdHRyKHNlZy5sYWJlbCArICc6ICcgKyB2KSArICciPicgKyB2ICsgJzwvZGl2
Pic7CiAgICAgICAgICAgIH0pOwogICAgICAgICAgICAvLyBFeHRyYS1TcGFsdGUgKGtvbXBsZXR0
ZSBXRSkKICAgICAgICAgICAgdmFyIGV4dHJhSHRtbCA9ICcnOwogICAgICAgICAgICBpZiAoa2F0
LmV4dHJhKSB7CiAgICAgICAgICAgICAgICB2YXIgZXYgPSBzW2thdC5leHRyYS5mZWxkXSB8fCAw
OwogICAgICAgICAgICAgICAgdmFyIGViID0gKGV2IC8gbWF4RXh0cmEpICogMTAwOwogICAgICAg
ICAgICAgICAgZXh0cmFIdG1sID0gJzxkaXYgY2xhc3M9InN0YXRzLWJhbGtlbi1leHRyYSIgdGl0
bGU9IicgKyBlc2NhcGVBdHRyKGthdC5leHRyYS5sYWJlbCArICc6ICcgKyBldikgKyAnIj4nICsK
ICAgICAgICAgICAgICAgICAgICAnPGRpdiBjbGFzcz0ic3RhdHMtYmFsa2VuLWtvbnRleHQtYmFy
Ij48ZGl2IGNsYXNzPSJzdGF0cy1iYWxrZW4ta29udGV4dC1maWxsIiBzdHlsZT0id2lkdGg6JyAr
IGViICsgJyU7YmFja2dyb3VuZDonICsgZXNjYXBlQXR0cihrYXQuZXh0cmEuZmFyYmUpICsgJyI+
PC9kaXY+PC9kaXY+JyArCiAgICAgICAgICAgICAgICAgICAgJzxkaXYgY2xhc3M9InN0YXRzLWJh
bGtlbi1rb250ZXh0LXdlcnQiPicgKyBldiArICc8L2Rpdj4nICsKICAgICAgICAgICAgICAgICAg
ICAnPC9kaXY+JzsKICAgICAgICAgICAgfQogICAgICAgICAgICBodG1sICs9ICc8ZGl2IGNsYXNz
PSJzdGF0cy1iYWxrZW4temVpbGUiPicgKwogICAgICAgICAgICAgICAgJzxkaXYgY2xhc3M9InN0
YXRzLWJhbGtlbi1uYW1lIiB0aXRsZT0iJyArIGVzY2FwZUF0dHIoX3N0YXRBbnplaWdlTmFtZShz
KSkgKyAnIj4nICsgZXNjYXBlSFRNTChfc3RhdEFuemVpZ2VOYW1lKHMpKSArICc8L2Rpdj4nICsK
ICAgICAgICAgICAgICAgICc8ZGl2IGNsYXNzPSJzdGF0cy1iYWxrZW4tYmFyLXdyYXAiPicgKyBz
ZWdIdG1sICsgJzwvZGl2PicgKwogICAgICAgICAgICAgICAgJzxkaXYgY2xhc3M9InN0YXRzLWJh
bGtlbi10b3RhbCIgdGl0bGU9IicgKyBlc2NhcGVBdHRyKGthdC5zb3J0TGFiZWwgKyAnOiAnICsg
c3VtbWUpICsgJyI+JyArIHN1bW1lICsgJzwvZGl2PicgKwogICAgICAgICAgICAgICAgZXh0cmFI
dG1sICsKICAgICAgICAgICAgICAgICc8L2Rpdj4nOwogICAgICAgIH0pOwoKICAgICAgICBlbC5p
bm5lckhUTUwgPSAnPGRpdiBjbGFzcz0ic3RhdHMtYmFsa2VuLWNvbnRhaW5lciI+JyArIGtvcGYg
KyBodG1sICsgJzwvZGl2Pic7CiAgICAgICAgLy8gS2xpY2sgYXVmIM6jLVNwYW4gaW0gS29wZiDD
tmZmbmV0IGVpbiBrbmFwcGVzIEVya2zDpHJ1bmdzLU1vZGFsLgogICAgICAgIGVsLnF1ZXJ5U2Vs
ZWN0b3JBbGwoJ1tkYXRhLXNpZ21hLWluZm9dJykuZm9yRWFjaChmdW5jdGlvbihzcCkgewogICAg
ICAgICAgICBzcC5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIF96ZWlnZVNpZ21hSW5mbyk7CiAg
ICAgICAgfSk7CiAgICB9CgogICAgZnVuY3Rpb24gX3plaWdlU2lnbWFJbmZvKCkgewogICAgICAg
IHZhciBodG1sID0KICAgICAgICAgICAgJzxwPjxiPs6jPC9iPiBpc3QgZGVyIGdyaWVjaGlzY2hl
IEdyb8OfYnVjaHN0YWJlIFNpZ21hIHVuZCBzdGVodCBpbiBkZXIgTWF0aGVtYXRpayBmw7xyIGVp
bmUgPGI+U3VtbWU8L2I+LjwvcD4nICsKICAgICAgICAgICAgJzxwPkluIGRpZXNlciBTdGF0aXN0
aWsgYmVkZXV0ZXQgPGNvZGU+zqMgRGllbnN0ZTwvY29kZT4gei5CLiDigJ5TdW1tZSBhbGxlciBE
aWVuc3RlIiAoRnLDvGggKyBTcMOkdCArIE5hY2h0ICsgU29uZGVyZGllbnN0KS4gRW50c3ByZWNo
ZW5kOjwvcD4nICsKICAgICAgICAgICAgJzx1bD4nICsKICAgICAgICAgICAgJzxsaT48Yj7OoyBX
RStGZWllcnRhZzwvYj46IFNhK1NvLURpZW5zdGUgKyBGZWllcnRhZ3MtRGllbnN0ZSBwcm8gUGVy
c29uLjwvbGk+JyArCiAgICAgICAgICAgICc8bGk+PGI+zqMgRm9ydGJpbGR1bmc8L2I+OiBGb3J0
YmlsZHVuZyArIERpZW5zdHVudGVycmljaHQgKyBMZWhyZ2FuZy48L2xpPicgKwogICAgICAgICAg
ICAnPGxpPjxiPs6jIEFid2VzZW5oZWl0PC9iPjogVXJsYXViICsgS3VyICsgU29uZGVydXJsYXVi
LjwvbGk+JyArCiAgICAgICAgICAgICc8L3VsPicgKwogICAgICAgICAgICAnPHA+RGllIFNwYWx0
ZSBnYW56IHJlY2h0cyBpbiBqZWRlciBQZXJzb24tWmVpbGUgemVpZ3QgZGllc2VuIFN1bW1lbndl
cnQuPC9wPic7CiAgICAgICAgdmFyIGZ1c3MgPSAnPGJ1dHRvbiBjbGFzcz0iYnRuIGJ0bi1wcmlt
YWVyIiBpZD0ic2lnbWEtaW5mby1zY2hsaWVzc2VuIj5WZXJzdGFuZGVuPC9idXR0b24+JzsKICAg
ICAgICBtb2RhbFplaWdlbignV2FzIGJlZGV1dGV0IM6jPycsIGh0bWwsIGZ1c3MsIG51bGwpOwog
ICAgICAgIHZhciBidG4gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnc2lnbWEtaW5mby1zY2hs
aWVzc2VuJyk7CiAgICAgICAgaWYgKGJ0bikgYnRuLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywg
bW9kYWxTY2hsaWVzc2VuKTsKICAgIH0KCiAgICAvLyBJZGVtcG90ZW50ZXIgTGlzdGVuZXItSG9v
ayBmdWVyIEthdGVnb3JpZS1CdXR0b25zICsgUmljaHR1bmdzLUtub3BmLgogICAgLy8gV2lyZCBh
dXMgc3RhdGlzdGlrUmVuZGVybigpIGJlaSBqZWRlbSBSZW5kZXJuIGF1ZmdlcnVmZW4sIHJlZ2lz
dHJpZXJ0CiAgICAvLyBkaWUgSGFuZGxlciBhYmVyIG51ciBiZWltIGVyc3RlbiBUcmVmZmVyIChk
YXRhLWZlcnRpZykuCiAgICBmdW5jdGlvbiBiYWxrZW5Tb3J0TGlzdGVuZXJTaWNoZXJuKCkgewog
ICAgICAgIC8vIE51ciBCdXR0b25zIG1pdCBkYXRhLXN0YXRzLWthdCAoPSBTY2hpY2h0dmVydGVp
bHVuZ3MtS2F0ZWdvcmllbikKICAgICAgICAvLyBhZHJlc3NpZXJlbiDigJQgc29uc3QgZ3JlaWZ0
IGRlciBIYW5kbGVyIGF1Y2ggYXVmIGRpZSBNaWtyb3RlYW0tCiAgICAgICAgLy8gU29ydC1CdXR0
b25zIHp1LCBkaWUgZGllc2VsYmUgS2xhc3NlIC5zdGF0cy1rYXQtYnRuIG51dHplbi4KICAgICAg
ICB2YXIgYnRucyA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ1tkYXRhLXN0YXRzLWthdF0n
KTsKICAgICAgICBidG5zLmZvckVhY2goZnVuY3Rpb24oYikgewogICAgICAgICAgICBpZiAoYi5k
YXRhc2V0LmZlcnRpZykgcmV0dXJuOwogICAgICAgICAgICBiLmFkZEV2ZW50TGlzdGVuZXIoJ2Ns
aWNrJywgZnVuY3Rpb24oKSB7CiAgICAgICAgICAgICAgICBfc3RhdEthdGVnb3JpZSA9IGIuZ2V0
QXR0cmlidXRlKCdkYXRhLXN0YXRzLWthdCcpIHx8ICdzY2hpY2h0ZW4nOwogICAgICAgICAgICAg
ICAgZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnW2RhdGEtc3RhdHMta2F0XScpLmZvckVhY2go
ZnVuY3Rpb24oeCkgeyB4LmNsYXNzTGlzdC5yZW1vdmUoJ2FrdGl2Jyk7IH0pOwogICAgICAgICAg
ICAgICAgYi5jbGFzc0xpc3QuYWRkKCdha3RpdicpOwogICAgICAgICAgICAgICAgaWYgKFouc3Rh
dGlzdGlrKSBiYWxrZW5SZW5kZXJuKHN0YXRGaWx0ZXJuKFouc3RhdGlzdGlrKSk7CiAgICAgICAg
ICAgIH0pOwogICAgICAgICAgICBiLmRhdGFzZXQuZmVydGlnID0gJzEnOwogICAgICAgIH0pOwog
ICAgICAgIHZhciBidG4gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnc3RhdHMtc29ydC1yaWNo
dHVuZycpOwogICAgICAgIGlmIChidG4gJiYgIWJ0bi5kYXRhc2V0LmZlcnRpZykgewogICAgICAg
ICAgICBidG4uYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCBmdW5jdGlvbigpIHsKICAgICAgICAg
ICAgICAgIF9zdGF0U29ydFJpY2h0dW5nID0gKF9zdGF0U29ydFJpY2h0dW5nID09PSAnZGVzYycp
ID8gJ2FzYycgOiAnZGVzYyc7CiAgICAgICAgICAgICAgICB2YXIgcGZlaWwgPSBidG4ucXVlcnlT
ZWxlY3RvcignLnN0YXRzLXNvcnQtcGZlaWwnKTsKICAgICAgICAgICAgICAgIGlmIChwZmVpbCkg
cGZlaWwudGV4dENvbnRlbnQgPSAoX3N0YXRTb3J0UmljaHR1bmcgPT09ICdkZXNjJykgPyAn4oaT
JyA6ICfihpEnOwogICAgICAgICAgICAgICAgaWYgKFouc3RhdGlzdGlrKSBiYWxrZW5SZW5kZXJu
KHN0YXRGaWx0ZXJuKFouc3RhdGlzdGlrKSk7CiAgICAgICAgICAgIH0pOwogICAgICAgICAgICBi
dG4uZGF0YXNldC5mZXJ0aWcgPSAnMSc7CiAgICAgICAgfQogICAgfQoKICAgIC8vIFdFL0ZULUZh
aXJuZXNzIOKAlCB2aXN1YWxpc2llcnQgZGllIFZlcnRlaWx1bmcgdm9uIFdvY2hlbmVuZC0gdW5k
CiAgICAvLyBGZWllcnRhZ3NkaWVuc3RlbiBnZWdlbiBkZW4gR3J1cHBlbi1EdXJjaHNjaG5pdHQu
CiAgICAvLwogICAgLy8gRGlzanVua3Qgc2VpdCAyMDI2LTA1OiBXRSA9IFNhK1NvIE9ITkUgRmVp
ZXJ0YWdlLCBGVCA9IEZlaWVydGFnZQogICAgLy8gKGVnYWwgb2IgV29jaGVudGFnIG9kZXIgV0Up
LiBFaW4gS2FyZnJlaXRhZy1TYSB6YWVobHQgbnVyIGluIEZULgogICAgLy8KICAgIC8vIEZpbHRl
ci1TY2h3ZWxsZSBkeW5hbWlzY2g6IG1heCgzLCAxMCAlIHZvbSBBdmctR2VzYW10KS4gU2thbGll
cnQKICAgIC8vIG1pdCBkZW0gQ3V0LVplaXRyYXVtICgwMS4wMS4gLSBoZXV0ZSsxNFQgPSBWZXJi
aW5kbGljaGtlaXRzZW5kZSkuCiAgICBmdW5jdGlvbiBmYWlybmVzc1JlbmRlcm4oc3RhdHMpIHsK
ICAgICAgICB2YXIgYWt0aXZlID0gc3RhdHMuZmlsdGVyKGZ1bmN0aW9uKHMpIHsgcmV0dXJuIHMu
Z2VzYW10ID4gMDsgfSk7CiAgICAgICAgaWYgKGFrdGl2ZS5sZW5ndGggPT09IDApIHsKICAgICAg
ICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3N0YXRzLWZhaXJuZXNzJykuaW5uZXJIVE1M
ID0gJzxwIGNsYXNzPSJ0ZXh0LW11dGVkIiBzdHlsZT0icGFkZGluZzoxNnB4O3RleHQtYWxpZ246
Y2VudGVyIj5OaWNodCBnZW7DvGdlbmQgRGF0ZW48L3A+JzsKICAgICAgICAgICAgcmV0dXJuOwog
ICAgICAgIH0KICAgICAgICB2YXIgc3VtR2VzID0gMDsKICAgICAgICBha3RpdmUuZm9yRWFjaChm
dW5jdGlvbihzKSB7IHN1bUdlcyArPSBzLmdlc2FtdDsgfSk7CiAgICAgICAgdmFyIGF2Z0dlc2Ft
dCA9IHN1bUdlcyAvIGFrdGl2ZS5sZW5ndGg7CiAgICAgICAgdmFyIHNjaHdlbGxlICA9IE1hdGgu
bWF4KDMsIGF2Z0dlc2FtdCAqIDAuMTApOwogICAgICAgIHZhciByZWxldmFudCAgPSBha3RpdmUu
ZmlsdGVyKGZ1bmN0aW9uKHMpIHsgcmV0dXJuIHMuZ2VzYW10ID49IHNjaHdlbGxlOyB9KTsKICAg
ICAgICBpZiAocmVsZXZhbnQubGVuZ3RoID09PSAwKSB7CiAgICAgICAgICAgIGRvY3VtZW50Lmdl
dEVsZW1lbnRCeUlkKCdzdGF0cy1mYWlybmVzcycpLmlubmVySFRNTCA9ICc8cCBjbGFzcz0idGV4
dC1tdXRlZCIgc3R5bGU9InBhZGRpbmc6MTZweDt0ZXh0LWFsaWduOmNlbnRlciI+TmljaHQgZ2Vu
w7xnZW5kIERhdGVuPC9wPic7CiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CgogICAgICAg
IC8vIERpc2p1bmt0ZSBXZXJ0ZTogV0UgPSByZWluZXMgU2ErU28gKG9obmUgRmVpZXJ0YWcpLCBG
VCA9IEZlaWVydGFnCiAgICAgICAgZnVuY3Rpb24gd2VXZXJ0KHMpICAgeyByZXR1cm4gKHMuc2Ft
c3RhZ0RpZW5zdGUgfHwgMCkgKyAocy5zb25udGFnRGllbnN0ZSB8fCAwKTsgfQogICAgICAgIGZ1
bmN0aW9uIGZ0V2VydChzKSAgIHsgcmV0dXJuIHMuZmVpZXJ0YWdEaWVuc3RlIHx8IDA7IH0KICAg
ICAgICBmdW5jdGlvbiBrd1dlcnQocykgICB7IHJldHVybiBzLmtvbXBsZXR0ZVdFIHx8IDA7IH0K
ICAgICAgICAvLyBXRS1EaWVuc3QtUXVvdGU6IEFudGVpbCBEaWVuc3QgYW4gdmVyZnVlZ2JhcmVu
IFdFLVRhZ2VuLgogICAgICAgIC8vIE1hY2h0IFBlcnNvbmVuIG1pdCB2aWVsL3dlbmlnIFVybGF1
YiB2ZXJnbGVpY2hiYXIuCiAgICAgICAgZnVuY3Rpb24gd2VRdW90ZShzKSB7CiAgICAgICAgICAg
IHZhciB2ZXJmID0gcy53ZVRhZ2VWZXJmdWVnYmFyIHx8IDA7CiAgICAgICAgICAgIGlmICh2ZXJm
ID09PSAwKSByZXR1cm4gMDsKICAgICAgICAgICAgcmV0dXJuIHdlV2VydChzKSAvIHZlcmY7CiAg
ICAgICAgfQoKICAgICAgICB2YXIgc3VtUXVvdGUgPSAwLCBzdW1GVCA9IDA7CiAgICAgICAgcmVs
ZXZhbnQuZm9yRWFjaChmdW5jdGlvbihzKSB7IHN1bVF1b3RlICs9IHdlUXVvdGUocyk7IHN1bUZU
ICs9IGZ0V2VydChzKTsgfSk7CiAgICAgICAgdmFyIGF2Z1F1b3RlID0gc3VtUXVvdGUgLyByZWxl
dmFudC5sZW5ndGg7CiAgICAgICAgdmFyIGF2Z0ZUICAgID0gc3VtRlQgLyByZWxldmFudC5sZW5n
dGg7CiAgICAgICAgdmFyIG1heEZUICAgID0gTWF0aC5tYXguYXBwbHkobnVsbCwgcmVsZXZhbnQu
bWFwKGZ0V2VydCkpIHx8IDE7CiAgICAgICAgdmFyIG1heEtXICAgID0gTWF0aC5tYXguYXBwbHko
bnVsbCwgcmVsZXZhbnQubWFwKGt3V2VydCkpIHx8IDE7CgogICAgICAgIGZ1bmN0aW9uIGZLbGFz
c2UodywgYXZnKSB7CiAgICAgICAgICAgIGlmIChhdmcgPT09IDApIHJldHVybiAnZmFpcm5lc3Mt
bmV1dHJhbCc7CiAgICAgICAgICAgIHZhciByID0gTWF0aC5hYnModyAtIGF2ZykgLyBhdmc7CiAg
ICAgICAgICAgIHJldHVybiByIDw9IDAuMiA/ICdmYWlybmVzcy1vaycgOiByIDw9IDAuNSA/ICdm
YWlybmVzcy13YXJudW5nJyA6ICdmYWlybmVzcy1rcml0aXNjaCc7CiAgICAgICAgfQoKICAgICAg
ICAvLyBaZWlsZW4tQmF1ZXIgZnVlciBkaWUgRlQtU2VrdGlvbiAoMyBTcGFsdGVuOiBOYW1lIHwg
QmFyIHwgV2VydCkuCiAgICAgICAgZnVuY3Rpb24gemVpbGVCYXVlbihzLCB3ZXJ0Rm4sIG1heCwg
YXZnKSB7CiAgICAgICAgICAgIHZhciB2ID0gd2VydEZuKHMpOwogICAgICAgICAgICB2YXIgcGN0
ICAgID0gbWF4ID4gMCA/ICh2ICAgLyBtYXgpICogMTAwIDogMDsKICAgICAgICAgICAgdmFyIGF2
Z1BjdCA9IG1heCA+IDAgPyAoYXZnIC8gbWF4KSAqIDEwMCA6IDA7CiAgICAgICAgICAgIHJldHVy
biAnPGRpdiBjbGFzcz0iZmFpcm5lc3Mtcm93Ij4nICsKICAgICAgICAgICAgICAgICc8ZGl2IGNs
YXNzPSJmYWlybmVzcy1yb3ctbmFtZSIgdGl0bGU9IicgKyBlc2NhcGVBdHRyKF9zdGF0QW56ZWln
ZU5hbWUocykpICsgJyI+JyArIGVzY2FwZUhUTUwoX3N0YXRBbnplaWdlTmFtZShzKSkgKyAnPC9k
aXY+JyArCiAgICAgICAgICAgICAgICAnPGRpdiBjbGFzcz0iZmFpcm5lc3Mtcm93LWJhciI+PGRp
diBjbGFzcz0iZmFpcm5lc3Mtcm93LWF2ZyIgc3R5bGU9ImxlZnQ6JyArIGF2Z1BjdCArICclIj48
L2Rpdj4nICsKICAgICAgICAgICAgICAgICc8ZGl2IGNsYXNzPSJmYWlybmVzcy1yb3ctZmlsbCAn
ICsgZktsYXNzZSh2LCBhdmcpICsgJyIgc3R5bGU9IndpZHRoOicgKyBwY3QgKyAnJSI+PC9kaXY+
PC9kaXY+JyArCiAgICAgICAgICAgICAgICAnPGRpdiBjbGFzcz0iZmFpcm5lc3Mtcm93LXZhbCI+
JyArIHYgKyAnPC9kaXY+PC9kaXY+JzsKICAgICAgICB9CiAgICAgICAgLy8gWmVpbGVuLUJhdWVy
IGZ1ZXIgZGllIFdFLVNla3Rpb246IFF1b3Rlbi1iYXNpZXJ0LgogICAgICAgIC8vIFF1b3RlID0g
V0UtRGllbnN0ZSAvIHZlcmZ1ZWdiYXJlIFdFLVRhZ2UgKFNPTEwtUG9vbCBtaW51cyBwZXJzb2Vu
bGljaGUKICAgICAgICAvLyBBYndlc2VuaGVpdCBhbSBXRSkuIE1hY2h0IFBlcnNvbmVuIG1pdCB1
bnRlcnNjaGllZGxpY2hlbSBVcmxhdWIKICAgICAgICAvLyB2ZXJnbGVpY2hiYXIuIEJhbmdlbWFu
biAyNS8zOCA9IDY2JSwgR2VuZGlnIDIwLzM2ID0gNTYlLgogICAgICAgIGZ1bmN0aW9uIHplaWxl
QmF1ZW5XRShzKSB7CiAgICAgICAgICAgIHZhciB2ICAgICA9IHdlV2VydChzKTsKICAgICAgICAg
ICAgdmFyIHZlcmYgID0gcy53ZVRhZ2VWZXJmdWVnYmFyIHx8IDA7CiAgICAgICAgICAgIHZhciBx
dW90ZSA9IHdlUXVvdGUocyk7CiAgICAgICAgICAgIHZhciBwY3QgICAgPSBNYXRoLm1pbigxMDAs
IHF1b3RlICogMTAwKTsKICAgICAgICAgICAgdmFyIGF2Z1BjdCA9IE1hdGgubWluKDEwMCwgYXZn
UXVvdGUgKiAxMDApOwogICAgICAgICAgICB2YXIga3cgICAgID0ga3dXZXJ0KHMpOwogICAgICAg
ICAgICB2YXIga3dQY3QgID0gbWF4S1cgPiAwID8gKGt3IC8gbWF4S1cpICogMTAwIDogMDsKICAg
ICAgICAgICAgdmFyIHRpcCA9ICdEaWVuc3RlIGFtIFdFOiAnICsgdiArICcgdm9uICcgKyB2ZXJm
ICsgJyB2ZXJmXHUwMEZDZ2JhcmVuIFRhZ2VuID0gJyArIE1hdGgucm91bmQocXVvdGUgKiAxMDAp
ICsgJyAlJzsKICAgICAgICAgICAgcmV0dXJuICc8ZGl2IGNsYXNzPSJmYWlybmVzcy1yb3cgZmFp
cm5lc3Mtcm93LXdlIiB0aXRsZT0iJyArIGVzY2FwZUF0dHIodGlwKSArICciPicgKwogICAgICAg
ICAgICAgICAgJzxkaXYgY2xhc3M9ImZhaXJuZXNzLXJvdy1uYW1lIiB0aXRsZT0iJyArIGVzY2Fw
ZUF0dHIoX3N0YXRBbnplaWdlTmFtZShzKSkgKyAnIj4nICsgZXNjYXBlSFRNTChfc3RhdEFuemVp
Z2VOYW1lKHMpKSArICc8L2Rpdj4nICsKICAgICAgICAgICAgICAgICc8ZGl2IGNsYXNzPSJmYWly
bmVzcy1yb3ctYmFyIj48ZGl2IGNsYXNzPSJmYWlybmVzcy1yb3ctYXZnIiBzdHlsZT0ibGVmdDon
ICsgYXZnUGN0ICsgJyUiPjwvZGl2PicgKwogICAgICAgICAgICAgICAgJzxkaXYgY2xhc3M9ImZh
aXJuZXNzLXJvdy1maWxsICcgKyBmS2xhc3NlKHF1b3RlLCBhdmdRdW90ZSkgKyAnIiBzdHlsZT0i
d2lkdGg6JyArIHBjdCArICclIj48L2Rpdj48L2Rpdj4nICsKICAgICAgICAgICAgICAgICc8ZGl2
IGNsYXNzPSJmYWlybmVzcy1yb3ctdmFsIj4nICsgTWF0aC5yb3VuZChxdW90ZSAqIDEwMCkgKyAn
JTxicj48c3BhbiBjbGFzcz0iZmFpcm5lc3Mtcm93LXN1YiI+JyArIHYgKyAnLycgKyB2ZXJmICsg
Jzwvc3Bhbj48L2Rpdj4nICsKICAgICAgICAgICAgICAgICc8ZGl2IGNsYXNzPSJmYWlybmVzcy1y
b3cta3ciIHRpdGxlPSInICsgZXNjYXBlQXR0cignS29tcGxldHRlIFdvY2hlbmVuZGVuIChTYStT
byBiZWlkZSBEaWVuc3QpOiAnICsga3cpICsgJyI+JyArCiAgICAgICAgICAgICAgICAgICAgJzxk
aXYgY2xhc3M9ImZhaXJuZXNzLXJvdy1rdy1iYXIiPjxkaXYgY2xhc3M9ImZhaXJuZXNzLXJvdy1r
dy1maWxsIiBzdHlsZT0id2lkdGg6JyArIGt3UGN0ICsgJyUiPjwvZGl2PjwvZGl2PicgKwogICAg
ICAgICAgICAgICAgICAgICc8ZGl2IGNsYXNzPSJmYWlybmVzcy1yb3cta3ctdmFsIj4nICsga3cg
KyAnPC9kaXY+JyArCiAgICAgICAgICAgICAgICAnPC9kaXY+JyArCiAgICAgICAgICAgICAgICAn
PC9kaXY+JzsKICAgICAgICB9CgogICAgICAgIC8vIFN1YnRpdGxlIG9iZXJoYWxiIGRlciBXRS1U
YWJlbGxlIChlaW56ZWlsaWcsIGVyc3BhcnQgZWluZSBicmVpdGUKICAgICAgICAvLyBLb3BmemVp
bGUgaW4gZGVyIFRhYmVsbGUgc2VsYnN0KS4KICAgICAgICB2YXIgaHRtbCA9ICc8ZGl2IGNsYXNz
PSJmYWlybmVzcy1zdWJ0aXRsZSI+V0UtRGllbnN0LVF1b3RlIFx1MjAxNCBBbnRlaWwgZGVyIHZl
cmZcdTAwRkNnYmFyZW4gU2ErU28tVGFnZSAob2huZSBGZWllcnRhZ2UpPC9kaXY+JzsKICAgICAg
ICBodG1sICs9ICc8ZGl2IGNsYXNzPSJmYWlybmVzcy1jb21wYWN0Ij4nOwogICAgICAgIGh0bWwg
Kz0gJzxkaXYgY2xhc3M9ImZhaXJuZXNzLXJvdyBmYWlybmVzcy1yb3ctd2UgZmFpcm5lc3MtaGVh
ZGVyIj4nICsKICAgICAgICAgICAgICAgICc8c3Bhbj5XRS1EaWVuc3QtUXVvdGU8L3NwYW4+JyAr
CiAgICAgICAgICAgICAgICAnPHNwYW4gc3R5bGU9InRleHQtYWxpZ246Y2VudGVyIj5cdTAwRDgg
JyArIE1hdGgucm91bmQoYXZnUXVvdGUgKiAxMDApICsgJyAlPC9zcGFuPicgKwogICAgICAgICAg
ICAgICAgJzxzcGFuPjwvc3Bhbj4nICsKICAgICAgICAgICAgICAgICc8c3BhbiBjbGFzcz0iZmFp
cm5lc3Mta3cta29wZiI+V0UgZHVyY2hnZWFyYmVpdGV0PC9zcGFuPicgKwogICAgICAgICAgICAg
ICAgJzwvZGl2Pic7CiAgICAgICAgcmVsZXZhbnQuc2xpY2UoKS5zb3J0KGZ1bmN0aW9uKGEsIGIp
IHsgcmV0dXJuIHdlUXVvdGUoYikgLSB3ZVF1b3RlKGEpOyB9KQogICAgICAgICAgICAgICAgLmZv
ckVhY2goZnVuY3Rpb24ocykgeyBodG1sICs9IHplaWxlQmF1ZW5XRShzKTsgfSk7CgogICAgICAg
IGh0bWwgKz0gJzxkaXYgY2xhc3M9ImZhaXJuZXNzLXJvdyBmYWlybmVzcy1oZWFkZXIiIHN0eWxl
PSJtYXJnaW4tdG9wOjhweCI+PHNwYW4+RlQtVGFnZSAoRGllbnN0IGFtIEZlaWVydGFnKTwvc3Bh
bj48c3BhbiBzdHlsZT0idGV4dC1hbGlnbjpjZW50ZXIiPlx1MDBEOCAnICsgYXZnRlQudG9GaXhl
ZCgxKSArICc8L3NwYW4+PHNwYW4+PC9zcGFuPjwvZGl2Pic7CiAgICAgICAgcmVsZXZhbnQuc2xp
Y2UoKS5zb3J0KGZ1bmN0aW9uKGEsIGIpIHsgcmV0dXJuIGZ0V2VydChiKSAtIGZ0V2VydChhKTsg
fSkKICAgICAgICAgICAgICAgIC5mb3JFYWNoKGZ1bmN0aW9uKHMpIHsgaHRtbCArPSB6ZWlsZUJh
dWVuKHMsIGZ0V2VydCwgbWF4RlQsIGF2Z0ZUKTsgfSk7CgogICAgICAgIGh0bWwgKz0gJzwvZGl2
Pic7CiAgICAgICAgLy8gRnVzcy1IaW53ZWlzOiBha3R1ZWxsZSBTY2h3ZWxsZSB0cmFuc3BhcmVu
dCBtYWNoZW4uCiAgICAgICAgaHRtbCArPSAnPGRpdiBjbGFzcz0iZmFpcm5lc3MtZnVzcyI+QmVy
XHUwMEZDY2tzaWNodGlndDogJyArIHJlbGV2YW50Lmxlbmd0aCArICcgUGVyc29uZW4gbWl0IFx1
MjI2NSAnICsgTWF0aC5yb3VuZChzY2h3ZWxsZSkgKyAnIERpZW5zdGVuIGltIFplaXRyYXVtLjwv
ZGl2Pic7CiAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3N0YXRzLWZhaXJuZXNzJyku
aW5uZXJIVE1MID0gaHRtbDsKICAgIH0KCiAgICAvLyA9PT09PSBNaWtyb3RlYW0tSGVhdG1hcCA9
PT09PQogICAgLy8KICAgIC8vIExvZXN0IGRpZSBhbHRlbiBBYndlc2VuaGVpdHMtS2FjaGVsbiBh
Yi4gUHJvIGtvbmZpZ3VyaWVydGVtIE1pa3JvdGVhbQogICAgLy8gKGFkbWluLmpzb24ubWlrcm90
ZWFtcykgd2lyZCBmdWVyIGplZGVuIFRhZyBpbSBDdXQgZGllIEFuemFobCBkZXIKICAgIC8vIGFy
YmVpdGVuZGVuIFBlcnNvbmVuIGVybWl0dGVsdC4gRmFyYmNvZGU6CiAgICAvLyAgIHJvdCAgID0g
MCBpbSBEaWVuc3QKICAgIC8vICAgZ2VsYiAgPSAxIGltIERpZW5zdAogICAgLy8gICBncsO8biAg
PSAyIGltIERpZW5zdCAob2RlciBtZWhyLCBhYmVyIG5pY2h0IGFsbGUpCiAgICAvLyAgIGdvbGQg
ID0gYWxsZSBUZWFtLU1pdGdsaWVkZXIgaW0gRGllbnN0CiAgICAvLyAiSW0gRGllbnN0IiA9IEYt
L1MtL04tQ29kZSBvZGVyIFNEL1NFLiBGcmVpLUNvZGVzIHVuZCBBYndlc2VuaGVpdAogICAgLy8g
emFlaGxlbiBuaWNodCBhbHMgImRhIiAoVXNlci1Wb3JnYWJlKS4KCiAgICAvLyBNb2R1bC1TdGF0
ZSBNaWtyb3RlYW0tSGVhdG1hcAogICAgdmFyIF9zdGF0VGVhbUV4cGFuZGVkID0ge307ICAgICAg
Ly8gdGVhbUlkIC0+IGJvb2wgKERldGFpbC1aZWlsZW4gc2ljaHRiYXIpCiAgICB2YXIgX3N0YXRU
ZWFtQmFsa2VuU29ydCA9ICdyZWloZW5mb2xnZSc7CgogICAgLy8gQ2FjaGUgZnVlciBfdGVhbURh
dGVuKCkgaW5uZXJoYWxiIGVpbmVzIHN0YXRpc3Rpa1JlbmRlcm4oKS1MYXVmcy4KICAgIC8vIG1p
a3JvdGVhbVJlbmRlcm4oKSB1bmQgcHJvc2FSZW5kZXJuKCkgZ3JlaWZlbiBiZWlkZSBhdWYgZGll
IGdsZWljaGVuCiAgICAvLyBEYXRlbiB6dSDigJQgQ2FjaGUgdmVybWVpZGV0IGRpZSBkb3BwZWx0
ZSBPKFRlYW1zKlRhZ2UqUGVyc29uZW4pLUJlcmVjaG51bmcKICAgIC8vICh+MzAtNjAgbXMgYXVm
IGRlbSBCZWhvZXJkZW4tUEMpLiBXaXJkIGFtIEFuZmFuZyB2b24gc3RhdGlzdGlrUmVuZGVybigp
CiAgICAvLyBpbnZhbGlkaWVydCwgZGFtaXQgRmlsdGVyLS9TdGFiLVdlY2hzZWwgZnJpc2NoZSBE
YXRlbiBiZWtvbW1lbi4KICAgIHZhciBfc3RhdFRlYW1EYXRlbkNhY2hlID0gbnVsbDsKICAgIGZ1
bmN0aW9uIF90ZWFtRGF0ZW5Ib2xlbigpIHsKICAgICAgICBpZiAoIV9zdGF0VGVhbURhdGVuQ2Fj
aGUpIF9zdGF0VGVhbURhdGVuQ2FjaGUgPSBfdGVhbURhdGVuKCk7CiAgICAgICAgcmV0dXJuIF9z
dGF0VGVhbURhdGVuQ2FjaGU7CiAgICB9CgogICAgLy8gV2llIF90ZWFtRGF0ZW5Ib2xlbigpLCBh
YmVyIHJlc3Bla3RpZXJ0IGRlbiBEcm9wZG93bi1HcnVwcGVuLUZpbHRlcjoKICAgIC8vIGJlaSBl
aW5lciBleHBsaXppdGVuIEdydXBwZW4tQXVzd2FobCB3ZXJkZW4gbnVyIE1pa3JvdGVhbXMgZGll
c2VyCiAgICAvLyBHcnVwcGUgenVydWVja2dlZ2ViZW4uIFdpcmQgZnVlciBkaWUgSGVhdG1hcCwg
ZGllIEJhbGtlbi1TdWItU2VrdGlvbgogICAgLy8gdW5kIGRpZSBQcm9zYS1EZXRhaWxhbmFseXNl
IGdlbnV0enQg4oCUIGRpZSBLUElzL0RldGFpbC1UYWJlbGxlIGZpbHRlcm4KICAgIC8vIGJlcmVp
dHMgdWViZXIgc3RhdEZpbHRlcm4oKSBkZW4gU3RhdHMtRGF0ZW5zYXR6IHVuZCBicmF1Y2hlbiBk
YXMgbmljaHQuCiAgICBmdW5jdGlvbiBfdGVhbURhdGVuR2VmaWx0ZXJ0KCkgewogICAgICAgIHZh
ciBkYXRhID0gX3RlYW1EYXRlbkhvbGVuKCk7CiAgICAgICAgaWYgKHN0YXRGaWx0ZXIgPT09ICdh
bGxlJykgcmV0dXJuIGRhdGE7CiAgICAgICAgcmV0dXJuIGRhdGEuZmlsdGVyKGZ1bmN0aW9uKHQp
IHsgcmV0dXJuIHQuZ3J1cHBlID09PSBzdGF0RmlsdGVyOyB9KTsKICAgIH0KCiAgICAvLyBLb250
ZXh0LCBkZW4gZGllIEhlYXRtYXAgbmFjaCBkZW0gUmVuZGVyIGZlc3RoYWVsdCwgZGFtaXQgRXhw
YW5kLS8KICAgIC8vIENvbGxhcHNlLUtsaWNrcyBkaWUgRGV0YWlsLVplaWxlbiBkaXJla3QgYW0g
RE9NIGVpbmZ1ZWdlbi9lbnRmZXJuZW4KICAgIC8vIGtvZW5uZW4g4oCUIG9obmUgZGllIGtvbXBs
ZXR0ZSBUYWJlbGxlIG5ldSB6dSByZW5kZXJuLiBTcGFydCAxMDAtMjAwIG1zCiAgICAvLyBwcm8g
S2xpY2sgYXVmIGRlbSBCZWhvZXJkZW4tUEMuCiAgICB2YXIgX2hlYXRtYXBLb250ZXh0ID0gbnVs
bDsKCiAgICAvLyBQdXJlIEhlbHBlciBmdWVyIFNwYWx0ZW4tS2xhc3NlbiBlaW5lciBIZWF0bWFw
LVNwYWx0ZS4gRnJ1ZWhlciBDbG9zdXJlCiAgICAvLyBpbiBfcmVuZGVyVGVhbUhlYXRtYXA7IHJh
dXNnZXpvZ2VuIGRhbWl0IGRlciBEZXRhaWwtWmVpbGVuLUhlbHBlciBzaWUKICAgIC8vIG9obmUg
Q2xvc3VyZS1DYXB0dXJlIG51dHplbiBrYW5uIChnbGVpY2hlciBIZWxwZXIgd2lyZCBiZWltIFJl
bmRlciBVTkQKICAgIC8vIGJlaW0gT24tRGVtYW5kLUluc2VydCBuYWNoIEV4cGFuZC1LbGljayB2
ZXJ3ZW5kZXQpLgogICAgZnVuY3Rpb24gX3NwYWx0ZW5LbGFzc2VuKHRhZ01ldGEsIGQpIHsKICAg
ICAgICB2YXIgbSA9IHRhZ01ldGFbZF0gfHwge307CiAgICAgICAgdmFyIGMgPSBbXTsKICAgICAg
ICBpZiAobS5pc3RXRSkgICAgICAgICAgICAgICAgICAgICAgIGMucHVzaCgnaG0td2UnKTsKICAg
ICAgICBpZiAobS5mZWllcnRhZ2UgJiYgbS5mZWllcnRhZ2UubGVuZ3RoKSAgICAgICAgIGMucHVz
aCgnaG0tZmVpZXInKTsKICAgICAgICBpZiAobS5mZXJpZW4gJiYgbS5mZXJpZW4ubGVuZ3RoKSAg
ICAgICAgICAgICAgIGMucHVzaCgnaG0tZmVyaWVuJyk7CiAgICAgICAgaWYgKG0uc29uZGVydGVy
bWluZSAmJiBtLnNvbmRlcnRlcm1pbmUubGVuZ3RoKSBjLnB1c2goJ2htLXNvbmRlcnRlcm1pbicp
OwogICAgICAgIHJldHVybiBjOwogICAgfQoKICAgIC8vIEJhdXQgZGllIERldGFpbC1aZWlsZW4t
SFRNTCBmdWVyIEVJTiBleHBhbmRpZXJ0ZXMgVGVhbS4gV2lyZCBzb3dvaGwKICAgIC8vIGJlaW0g
SW5pdGlhbC1SZW5kZXIgZ2VudXR6dCAoZnVlciBUZWFtcywgZGllIHNjaG9uIGV4cGFuZGVkIHNp
bmQpIGFscwogICAgLy8gYXVjaCBiZWltIEtsaWNrLUhhbmRsZXIgKE9uLURlbWFuZC1JbnNlcnQg
b2huZSBGdWxsLVJlcmVuZGVyKS4gY3R4ID0KICAgIC8vIHsgdGFnZSwgdGFnTWV0YSwgcGVyc29u
TWFwLCBlaW50cmFlZ2UgfSDigJQgcGFzc3QgenUgX2hlYXRtYXBLb250ZXh0LgogICAgZnVuY3Rp
b24gX2J1aWxkVGVhbURldGFpbFJvd3ModCwgY3R4KSB7CiAgICAgICAgcmV0dXJuIHQucGVyc29u
SWRzLm1hcChmdW5jdGlvbihwaWQpIHsKICAgICAgICAgICAgdmFyIHAgPSBjdHgucGVyc29uTWFw
W3BpZF0gfHwge307CiAgICAgICAgICAgIHZhciBuYW1lS3VyeiA9IChwLnZvcm5hbWUgPyBwLnZv
cm5hbWUuY2hhckF0KDApICsgJy4gJyA6ICcnKSArIChwLm5hbWUgfHwgKCcjJyArIHBpZCkpOwog
ICAgICAgICAgICByZXR1cm4gJzx0ciBjbGFzcz0idGVhbS1obS1yb3cgdGVhbS1obS1yb3ctZGV0
YWlsIiBkYXRhLXRlYW0tZGV0YWlsLWZvcj0iJyArIGVzY2FwZUF0dHIodC5pZCkgKyAnIj4nICsK
ICAgICAgICAgICAgICAgICc8dGggY2xhc3M9InRlYW0taG0tbmFtZSB0ZWFtLWhtLW5hbWUtZGV0
YWlsIj7ihrMgJyArIGVzY2FwZUhUTUwobmFtZUt1cnopICsgJzwvdGg+JyArCiAgICAgICAgICAg
ICAgICBjdHgudGFnZS5tYXAoZnVuY3Rpb24oZCkgewogICAgICAgICAgICAgICAgICAgIHZhciBj
b2RlID0gKGN0eC5laW50cmFlZ2VbZF0gfHwge30pW3BpZF0gfHwgJyc7CiAgICAgICAgICAgICAg
ICAgICAgdmFyIGlzRGllbnN0ID0gX2lzdERpZW5zdENvZGUoY29kZSk7CiAgICAgICAgICAgICAg
ICAgICAgdmFyIGNscyA9IFsndGVhbS1obS1jZWxsJywgJ3RlYW0taG0tY2VsbC1kZXRhaWwnXS5j
b25jYXQoX3NwYWx0ZW5LbGFzc2VuKGN0eC50YWdNZXRhLCBkKSk7CiAgICAgICAgICAgICAgICAg
ICAgaWYgKGlzRGllbnN0KSBjbHMucHVzaCgndGVhbS1obS1jZWxsLWRldGFpbC1kaWVuc3QnKTsK
ICAgICAgICAgICAgICAgICAgICByZXR1cm4gJzx0ZCBjbGFzcz0iJyArIGNscy5qb2luKCcgJykg
KyAnIiB0aXRsZT0iJyArIGVzY2FwZUF0dHIoZCArICc6ICcgKyAoY29kZSB8fCAn4oCUJykpICsg
JyI+JyArIChjb2RlID8gZXNjYXBlSFRNTChjb2RlLnN1YnN0cigwLCAzKSkgOiAnJykgKyAnPC90
ZD4nOwogICAgICAgICAgICAgICAgfSkuam9pbignJykgKwogICAgICAgICAgICAgICAgJzwvdHI+
JzsKICAgICAgICB9KS5qb2luKCcnKTsKICAgIH0KICAgIHZhciBNT05BVFNOQU1FTl9URUFNID0g
WydKYW51YXInLCdGZWJydWFyJywnTcOkcnonLCdBcHJpbCcsJ01haScsJ0p1bmknLCdKdWxpJywn
QXVndXN0JywnU2VwdGVtYmVyJywnT2t0b2JlcicsJ05vdmVtYmVyJywnRGV6ZW1iZXInXTsKICAg
IHZhciBNT05BVFNOQU1FTl9LVVJaID0gWydKYW4nLCdGZWInLCdNw6RyJywnQXByJywnTWFpJywn
SnVuJywnSnVsJywnQXVnJywnU2VwJywnT2t0JywnTm92JywnRGV6J107CgogICAgLy8gUG9vbC1C
ZXppZWh1bmdlbjogPFBvb2wtU3RhbmRvcnQ+IC0+IDxMaXN0ZSBkZXIgWmllbC1TdGFuZG9ydGUs
IGZ1ZXIgZGllIGRlcgogICAgLy8gUG9vbCBlaW5zcHJpbmd0Pi4gUG9vbC1UZWFtcyBzaW5kIDEt
UGVyc29uZW4tV2FjaGVuIChMRC1XRCwgU08tV0QpLiBXZW5uCiAgICAvLyBkaWUgUG9vbC1QZXJz
b24gaW0gRGllbnN0IGlzdCB1bmQgbWluZC4gZWluIE1pa3JvdGVhbSBkZXMgWmllbC1TdGFuZG9y
dHMKICAgIC8vIGFuIGRlbSBUYWcgcm90IGlzdCAoa2VpbmVyIGRhKSwgd2lyZCBkaWUgUG9vbC1a
ZWxsZSBncnVlbiDigJQgYWxzCiAgICAvLyBJbmRpa2F0b3IsIGRhc3MgZGVyIFBvb2wgZmFjaGxp
Y2ggZWluc3ByaW5ndC4gUG9vbC1UZWFtcyB3ZXJkZW4gYXVzc2VyZGVtCiAgICAvLyBhdXMgZGVy
IEJhbGtlbi1TdGF0aXN0aWsgYXVzZ2VrbGFtbWVydCAoMSBQZXJzb24sIGtlaW4gTWl0dGVsd2Vy
dCBtb2VnbGljaCkuCiAgICB2YXIgUE9PTF9SRUxBVElPTiA9IHsgJ0xEJzogWydGUiddLCAnU08n
OiBbJ0FSJ10gfTsKICAgIGZ1bmN0aW9uIF9pc3RQb29sVGVhbSh0KSB7IHJldHVybiB0ICYmIFBP
T0xfUkVMQVRJT05bdC5zdGFuZG9ydF0gIT09IHVuZGVmaW5lZDsgfQoKICAgIC8vIENvZGUtS2xh
c3NlbiBmdWVyIGRpZSBNaWtyb3RlYW0tQW1wZWwtQmVyZWNobnVuZzoKICAgIC8vIEZSRUkgICAg
PSB3ZnIvZGZyL8KnMjEvMjFhL0FaQSDigJQgZGllIFBlcnNvbiB3YWVyZSBwcmluemlwaWVsbCB2
ZXJmdWVnYmFyCiAgICAvLyAgICAgICAgICAgZ2V3ZXNlbiwgaGF0IGFiZXIgRnJlaS4gV2VubiBB
TExFIHNvIHdhcyBoYWJlbiB1bmQgbmllbWFuZAogICAgLy8gICAgICAgICAgIGxlZ2l0aW0gYWJ3
ZXNlbmQgaXN0IC0+IHJvdCAoUHJvYmxlbTogYWxsZSB3b2xsZW4gZnJlaSBoYWJlbikuCiAgICAv
LyBBQldFU0VORCA9IFVybC9rci9LdXIvU1UvTEcvRm9ydGJpbGR1bmcvQlYvYWJnL0JBTy9ITyDi
gJQgUGVyc29uIGlzdAogICAgLy8gICAgICAgICAgIGxlZ2l0aW0gbmljaHQgdmVyZnVlZ2Jhci4g
U2NobHVja3QgZGVuIHJvdGVuIFN0YXR1cy4KICAgIHZhciBURUFNX0ZSRUlfQ09ERVMgICAgID0g
eyAnd2ZyJzoxLCAnZGZyJzoxLCAnwqcyMSc6MSwgJzIxYSc6MSwgJ0FaQSc6MSB9OwogICAgdmFy
IFRFQU1fQUJXRVNFTkRfQ09ERVMgPSB7ICdVcmwnOjEsICdrcic6MSwgJ0t1cic6MSwgJ1NVJzox
LCAnTEcnOjEsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ0F1Ric6MSwgJ0VUTSc6
MSwgJ1NlbSc6MSwgJ1RUJzoxLCAnVHpGJzoxLCAnRFUnOjEsCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgJ0JWJzoxLCAnYWJnJzoxLCAnQkFPJzoxLCAnSE8nOjEgfTsKICAgIGZ1bmN0
aW9uIF9pc3RGcmVpQ29kZShjKSAgICAgeyByZXR1cm4gISEoYyAmJiBURUFNX0ZSRUlfQ09ERVNb
Y10pOyB9CiAgICBmdW5jdGlvbiBfaXN0QWJ3ZXNlbmRDb2RlKGMpIHsgcmV0dXJuICEhKGMgJiYg
VEVBTV9BQldFU0VORF9DT0RFU1tjXSk7IH0KCiAgICBmdW5jdGlvbiBfaXN0RGllbnN0Q29kZShj
b2RlKSB7CiAgICAgICAgaWYgKCFjb2RlKSByZXR1cm4gZmFsc2U7CiAgICAgICAgaWYgKGNvZGUu
bGVuZ3RoID49IDIgJiYgY29kZS5jaGFyQXQoMSkgPT09ICctJykgewogICAgICAgICAgICB2YXIg
cCA9IGNvZGUuY2hhckF0KDApOwogICAgICAgICAgICBpZiAocCA9PT0gJ0YnIHx8IHAgPT09ICdT
JyB8fCBwID09PSAnTicpIHJldHVybiB0cnVlOwogICAgICAgIH0KICAgICAgICByZXR1cm4gY29k
ZSA9PT0gJ1NEJyB8fCBjb2RlID09PSAnU0UnOwogICAgfQoKICAgIC8vIExpZWZlcnQgJ0YnLydT
Jy8nTicgd2VubiBkZXIgQ29kZSBlaW5lIERHTC1TY2hpY2h0IChGLURHTC9TLURHTC9OLURHTCkK
ICAgIC8vIGlzdCwgc29uc3QgbnVsbC4gV2lyZCBmdWVyIGRpZSBQb29sLVNwcmluZ2VyLUxvZ2lr
IGdlbnV0enQ6IGVpbiBMRC9TTy0KICAgIC8vIERHTCBzcHJpbmd0IG51ciBkYW5uIGFscyBER0wt
VmVydHJldHVuZyBmdWVyIEZSL0FSIGVpbiwgd2VubiBlciBpbiBkZXIKICAgIC8vIGdsZWljaGVu
IFNjaGljaHQgc2VsYnN0IGRpZSBER0wtUm9sbGUgbWFjaHQg4oCUIEYtRkJQL1MtRkJQL04tRkJQ
IHphZWhsdAogICAgLy8gTklDSFQgYWxzIEVpbnNwcmluZ2VuIChDb2RlIGlzdCBkYW5uIGZ1ZXIg
ZGllIE1pdGFyYmVpdGVyIGRhKS4KICAgIGZ1bmN0aW9uIF9kZ2xTY2hpY2h0Vm9uKGNvZGUpIHsK
ICAgICAgICBpZiAoIWNvZGUgfHwgY29kZS5sZW5ndGggPCA1KSByZXR1cm4gbnVsbDsKICAgICAg
ICB2YXIgcCA9IGNvZGUuY2hhckF0KDApOwogICAgICAgIGlmIChwICE9PSAnRicgJiYgcCAhPT0g
J1MnICYmIHAgIT09ICdOJykgcmV0dXJuIG51bGw7CiAgICAgICAgcmV0dXJuIGNvZGUuc3Vic3Ry
aW5nKDIsIDUpID09PSAnREdMJyA/IHAgOiBudWxsOwogICAgfQoKICAgIC8vIExpZWZlcnQgJ0Yn
LydTJy8nTicgZnVlciBKRURFTiBTY2hpY2h0LURpZW5zdGNvZGUgKEYtREdMLCBGLVdERiwKICAg
IC8vIEYtRkJQLCBTLURHTCwgLi4uKSwgc29uc3QgbnVsbC4gV2lyZCBmdWVyIGRpZSBMdWVja2Ut
UHJ1ZWZ1bmcgZGVyCiAgICAvLyBQb29sLVNwcmluZ2VyLUxvZ2lrIGdlbnV0enQ6IGRhcyBaaWVs
LU1pa3JvdGVhbSAoRlIvQVIpIGdpbHQgYWxzCiAgICAvLyAibHVlY2tlIiBpbiBlaW5lciBTY2hp
Y2h0IG51ciB3ZW5uIGRvcnQgbmllbWFuZCB1ZWJlcmhhdXB0IGVpbmVuCiAgICAvLyBTY2hpY2h0
LURpZW5zdCBtYWNodCDigJQgZWdhbCBvYiBER0wvV0RGL0ZCUC4gV2VubiB6LkIuIGVpbiBGLUZC
UCBkYQogICAgLy8gaXN0LCBpc3QgZGllIFNjaGljaHQgaW4gZGVyIFdhY2hlIHBlcnNvbmVsbCBi
ZWRlY2t0LCBHb3RvL05vdHRlYm9obQogICAgLy8gbXVlc3NlbiBuaWNodCBlaW5zcHJpbmdlbi4K
ICAgIGZ1bmN0aW9uIF9zY2hpY2h0Vm9uKGNvZGUpIHsKICAgICAgICBpZiAoIWNvZGUgfHwgY29k
ZS5sZW5ndGggPCAyIHx8IGNvZGUuY2hhckF0KDEpICE9PSAnLScpIHJldHVybiBudWxsOwogICAg
ICAgIHZhciBwID0gY29kZS5jaGFyQXQoMCk7CiAgICAgICAgaWYgKHAgIT09ICdGJyAmJiBwICE9
PSAnUycgJiYgcCAhPT0gJ04nKSByZXR1cm4gbnVsbDsKICAgICAgICByZXR1cm4gcDsKICAgIH0K
CiAgICBmdW5jdGlvbiBfdGVhbUN1dFRhZ2UoKSB7CiAgICAgICAgdmFyIGphaHIgPSAoWi5hZG1p
biAmJiBaLmFkbWluLmphaHIpIHx8IG5ldyBEYXRlKCkuZ2V0RnVsbFllYXIoKTsKICAgICAgICB2
YXIgZCA9IG5ldyBEYXRlKGphaHIgKyAnLTAxLTAxVDAwOjAwOjAwJyk7CiAgICAgICAgdmFyIGhl
dXRlID0gbmV3IERhdGUoKTsgaGV1dGUuc2V0SG91cnMoMCwwLDAsMCk7CiAgICAgICAgdmFyIGVu
ZGUgID0gbmV3IERhdGUoaGV1dGUpOyBlbmRlLnNldERhdGUoZW5kZS5nZXREYXRlKCkgKyAxNCk7
CiAgICAgICAgdmFyIG91dCA9IFtdOwogICAgICAgIHdoaWxlIChkIDw9IGVuZGUpIHsKICAgICAg
ICAgICAgLy8gTG9rYWxlIElTTy1EYXR1bXMtUmVwcmFlc2VudGF0aW9uIChrZWluIHRvSVNPU3Ry
aW5nIOKAlCBkZXIgd2lyZnQKICAgICAgICAgICAgLy8gVVRDIHVuZCBraXBwdCBiZWkgWmVpdHpv
bmVuLVZlcnNhdHogdW0gZWluZW4gVGFnKS4KICAgICAgICAgICAgdmFyIHkgPSBkLmdldEZ1bGxZ
ZWFyKCk7CiAgICAgICAgICAgIHZhciBtID0gU3RyaW5nKGQuZ2V0TW9udGgoKSArIDEpLnBhZFN0
YXJ0KDIsICcwJyk7CiAgICAgICAgICAgIHZhciB0ID0gU3RyaW5nKGQuZ2V0RGF0ZSgpKS5wYWRT
dGFydCgyLCAnMCcpOwogICAgICAgICAgICBvdXQucHVzaCh5ICsgJy0nICsgbSArICctJyArIHQp
OwogICAgICAgICAgICBkLnNldERhdGUoZC5nZXREYXRlKCkgKyAxKTsKICAgICAgICB9CiAgICAg
ICAgcmV0dXJuIG91dDsKICAgIH0KCiAgICBmdW5jdGlvbiBfdGVhbUZhcmJlKGltRGllbnN0LCB0
b3RhbCkgewogICAgICAgIGlmIChpbURpZW5zdCA9PT0gMCkgICAgICAgIHJldHVybiAndGVhbS1y
JzsKICAgICAgICBpZiAoaW1EaWVuc3QgPj0gdG90YWwpICAgICByZXR1cm4gJ3RlYW0tZ29sZCc7
CiAgICAgICAgaWYgKGltRGllbnN0ID09PSAxKSAgICAgICAgcmV0dXJuICd0ZWFtLXknOwogICAg
ICAgIHJldHVybiAndGVhbS1nJzsKICAgIH0KCiAgICAvLyBUYWctTWV0YWRhdGVuOiBXb2NoZW5l
bmRlLCBGZWllcnRhZywgRmVyaWVuLCBTb25kZXJ0ZXJtaW5lLgogICAgLy8gQ2FjaGUgd2lyZCBl
aW5tYWwgcHJvIFJlbmRlciBhdWZnZWJhdXQgKGtsZWluZSBEYXRlbm1lbmdlIOKAlCBrZWluIE1l
bW8pLgogICAgZnVuY3Rpb24gX3RlYW1UYWdNZXRhKHRhZ2UpIHsKICAgICAgICB2YXIgbWV0YSA9
IHt9OwogICAgICAgIHZhciBmZWllcnRhZ2UgPSAoKFouYWRtaW4gJiYgWi5hZG1pbi5mZWllcnRh
Z2UpIHx8IFtdKS5maWx0ZXIoZnVuY3Rpb24oZikgeyByZXR1cm4gZi5ha3RpdiAhPT0gZmFsc2U7
IH0pOwogICAgICAgIHZhciBmdE1hcCA9IHt9OwogICAgICAgIGZlaWVydGFnZS5mb3JFYWNoKGZ1
bmN0aW9uKGYpIHsgKGZ0TWFwW2YuZGF0dW1dID0gZnRNYXBbZi5kYXR1bV0gfHwgW10pLnB1c2go
Zik7IH0pOwogICAgICAgIHZhciBmZXJpZW4gPSAoWi5hZG1pbiAmJiBaLmFkbWluLmZlcmllbikg
fHwgW107CiAgICAgICAgdmFyIHNvbmRlcnRlcm1pbmUgPSAoWi5hZG1pbiAmJiBaLmFkbWluLnNv
bmRlcnRlcm1pbmUpIHx8IFtdOwoKICAgICAgICB0YWdlLmZvckVhY2goZnVuY3Rpb24oZCkgewog
ICAgICAgICAgICB2YXIgZHQgPSBuZXcgRGF0ZShkICsgJ1QwMDowMDowMCcpOwogICAgICAgICAg
ICB2YXIgd3QgPSBkdC5nZXREYXkoKTsKICAgICAgICAgICAgdmFyIGZlciA9IGZlcmllbi5maWx0
ZXIoZnVuY3Rpb24oZikgeyByZXR1cm4gZCA+PSBmLnZvbiAmJiBkIDw9IGYuYmlzOyB9KTsKICAg
ICAgICAgICAgdmFyIHN0ICA9IHNvbmRlcnRlcm1pbmUuZmlsdGVyKGZ1bmN0aW9uKHMpIHsKICAg
ICAgICAgICAgICAgIHZhciBiaXMgPSBzLmRhdHVtQmlzIHx8IHMuZGF0dW07CiAgICAgICAgICAg
ICAgICByZXR1cm4gZCA+PSBzLmRhdHVtICYmIGQgPD0gYmlzOwogICAgICAgICAgICB9KTsKICAg
ICAgICAgICAgbWV0YVtkXSA9IHsKICAgICAgICAgICAgICAgIGlzdFdFOiAgICAgICh3dCA9PT0g
MCB8fCB3dCA9PT0gNiksCiAgICAgICAgICAgICAgICB3b2NoZW50YWc6ICB3dCwKICAgICAgICAg
ICAgICAgIGZlaWVydGFnZTogIGZ0TWFwW2RdIHx8IFtdLAogICAgICAgICAgICAgICAgZmVyaWVu
OiAgICAgZmVyLAogICAgICAgICAgICAgICAgc29uZGVydGVybWluZTogc3QKICAgICAgICAgICAg
fTsKICAgICAgICB9KTsKICAgICAgICByZXR1cm4gbWV0YTsKICAgIH0KCiAgICBmdW5jdGlvbiBf
dGVhbURhdGVuKCkgewogICAgICAgIHZhciB0ZWFtcyA9IChaLmFkbWluICYmIFouYWRtaW4ubWlr
cm90ZWFtcykgfHwgW107CiAgICAgICAgdmFyIGVpbnRyYWVnZSA9IChaLnBsYW51bmcgJiYgWi5w
bGFudW5nLmVpbnRyYWVnZSkgfHwge307CiAgICAgICAgdmFyIHBlcnNvbmVuID0gKFoucGxhbnVu
ZyAmJiBaLnBsYW51bmcucGVyc29uZW4pIHx8IFtdOwogICAgICAgIHZhciBwZXJzb25NYXAgPSB7
fTsKICAgICAgICBwZXJzb25lbi5mb3JFYWNoKGZ1bmN0aW9uKHApIHsgcGVyc29uTWFwW3AuaWRd
ID0gcDsgfSk7CiAgICAgICAgdmFyIHRhZ2UgPSBfdGVhbUN1dFRhZ2UoKTsKCiAgICAgICAgLy8g
UGhhc2UgMTogYWxsZSBUZWFtcyBiZXJlY2huZW4uCiAgICAgICAgLy8gUHJvIFRhZyB6YWVobGVu
IHdpciBkaXNqdW5rdDogaW1EaWVuc3QgLyBmcmVpICh3ZnIvZGZyL8KnMjEvQVpBKSAvCiAgICAg
ICAgLy8gYWJ3ZXNlbmQgKFVybC9rci9LdXIvTGVocmdhbmcvLi4uKSAvIHNvbnN0aWdlICh6LkIu
IFNEL1NFIGJlcmVpdHMKICAgICAgICAvLyBpbiBpbURpZW5zdCwgbGVlcmVyIEVpbnRyYWcgPSAi
dW5rbGFyIiB6YWVobHQgbmljaHQpLgogICAgICAgIHZhciBkYXRhID0gdGVhbXMubWFwKGZ1bmN0
aW9uKHQpIHsKICAgICAgICAgICAgdmFyIHBpZHMgPSB0LnBlcnNvbklkcyB8fCBbXTsKICAgICAg
ICAgICAgdmFyIHBlclRhZyA9IHt9OwogICAgICAgICAgICB0YWdlLmZvckVhY2goZnVuY3Rpb24o
ZCkgewogICAgICAgICAgICAgICAgdmFyIGFueiA9IDAsIGZyZWlBbnogPSAwLCBhYndBbnogPSAw
LCBkZXRhaWxzID0gW107CiAgICAgICAgICAgICAgICBwaWRzLmZvckVhY2goZnVuY3Rpb24ocGlk
KSB7CiAgICAgICAgICAgICAgICAgICAgdmFyIGNvZGUgPSAoZWludHJhZWdlW2RdIHx8IHt9KVtw
aWRdIHx8ICcnOwogICAgICAgICAgICAgICAgICAgIHZhciBwID0gcGVyc29uTWFwW3BpZF07CiAg
ICAgICAgICAgICAgICAgICAgdmFyIG5tID0gcCA/IChwLm5hbWUgfHwgKCcjJyArIHBpZCkpIDog
KCcjJyArIHBpZCk7CiAgICAgICAgICAgICAgICAgICAgZGV0YWlscy5wdXNoKHsgcGlkOiBwaWQs
IG5hbWU6IG5tLCBjb2RlOiBjb2RlIH0pOwogICAgICAgICAgICAgICAgICAgIGlmIChfaXN0RGll
bnN0Q29kZShjb2RlKSkgICAgICAgICBhbnorKzsKICAgICAgICAgICAgICAgICAgICBlbHNlIGlm
IChfaXN0RnJlaUNvZGUoY29kZSkpICAgICAgZnJlaUFueisrOwogICAgICAgICAgICAgICAgICAg
IGVsc2UgaWYgKF9pc3RBYndlc2VuZENvZGUoY29kZSkpICBhYndBbnorKzsKICAgICAgICAgICAg
ICAgIH0pOwogICAgICAgICAgICAgICAgcGVyVGFnW2RdID0gewogICAgICAgICAgICAgICAgICAg
IGltRGllbnN0OiBhbnosIGZyZWk6IGZyZWlBbnosIGFid2VzZW5kOiBhYndBbnosCiAgICAgICAg
ICAgICAgICAgICAgdG90YWw6IHBpZHMubGVuZ3RoLCBkZXRhaWxzOiBkZXRhaWxzLCBpc3RTcHJp
bmdlcjogZmFsc2UKICAgICAgICAgICAgICAgIH07CiAgICAgICAgICAgIH0pOwogICAgICAgICAg
ICByZXR1cm4geyBpZDogdC5pZCwgbmFtZTogdC5uYW1lLCBzdGFuZG9ydDogdC5zdGFuZG9ydCwg
Z3J1cHBlOiB0LmdydXBwZSwgcGVyc29uSWRzOiBwaWRzLCB0YWdlOiBwZXJUYWcgfTsKICAgICAg
ICB9KTsKCiAgICAgICAgLy8gUGhhc2UgMjogU3ByaW5nZXItTWFya2llcnVuZyBmdWVyIFBvb2wt
VGVhbXMuCiAgICAgICAgLy8KICAgICAgICAvLyBFaW4gTEQvU08tREdMICJzcHJpbmd0IiBmYWNo
bGljaCBkYW5uIGZ1ZXIgRlIvQVIgZWluLCB3ZW5uOgogICAgICAgIC8vICAgMS4gRXIgYW4gZGVt
IFRhZyBlaW5lIERHTC1TY2hpY2h0IG1hY2h0IChGLURHTC9TLURHTC9OLURHTCkKICAgICAgICAv
LyAgICAgIFVORCBpbiBkaWVzZXIgU2NoaWNodCBhdWNoIGluIGRlciAxLi8yLiBWSTMtREdMLVZl
cmFudHdvcnR1bmcKICAgICAgICAvLyAgICAgIChUb3AtMiBuYWNoIEZ1bmt0aW9ucy1SYW5nK1Bv
c2l0aW9uIGF1cyBha3RpdmVGdWVocnVuZykgc3RlaHQuCiAgICAgICAgLy8gICAgICBSZWluZSBD
b2RlLUVpbnRyYWd1bmcgRi1ER0wgcmVpY2h0IE5JQ0hUIOKAlCBzb25zdCB6YWVobHRlCiAgICAg
ICAgLy8gICAgICBlaW4gbmljaHQtdmVyYW50d29ydGxpY2hlciBMRC9TTy1ER0wgZmFlbHNjaGxp
Y2ggYWxzIFNwcmluZ2VyCiAgICAgICAgLy8gICAgICAoVXNlci1Lb3JyZWt0dXIgMjAyNi0wNS0y
NSkuIFVORAogICAgICAgIC8vICAgMi4gZGllIFppZWwtV2FjaGUgYW4gZGVtIFRhZyBpbiBnZW5h
dSBkaWVzZXIgU2NoaWNodCB1ZWJlcmhhdXB0CiAgICAgICAgLy8gICAgICBOSUVNQU5ERU4gaW0g
RGllbnN0IGhhdCAoa2VpbiBGLURHTCwga2VpbiBGLVdERiwga2VpbiBGLUZCUCkuCiAgICAgICAg
Ly8gRi1GQlAvUy1GQlAvTi1GQlAgZGVyIFBvb2wtUGVyc29uIHphZWhsZW4gTklDSFQgYWxzIEVp
bnNwcmluZ2VuIOKAlAogICAgICAgIC8vIGRhcyBpc3QgZWluIENvZGUgImZ1ZXIgZGllIE1pdGFy
YmVpdGVyIiwgbmljaHQgZnVlciBkaWUgREdMLQogICAgICAgIC8vIFZlcmFudHdvcnR1bmcuIEJl
aSBkZXIgTHVlY2tlbi1QcnVlZnVuZyBpbiBkZXIgWmllbHdhY2hlIHphZWhsdAogICAgICAgIC8v
IGRhZ2VnZW4gSkVERVIgU2NoaWNodC1Db2RlIChhdWNoIEZCUC9XREYpOiBkaWUgV2FjaGUgaXN0
IHBlcnNvbmVsbAogICAgICAgIC8vIGJlZGVja3Qgc29iYWxkIGlyZ2VuZGplbWFuZCBpbiBkZXIg
U2NoaWNodCBlaW5nZXNldHp0IGlzdCDigJQKICAgICAgICAvLyBHb3RvL05vdHRlYm9obSBtdWVz
c2VuIGRhbm4gbmljaHQgZWluc3ByaW5nZW4uIFRhZ2Ugb2huZSBTcHJpbmdlci0KICAgICAgICAv
LyBTdGF0dXMgd2VyZGVuIGluIGRlciBaZWxsLUZhZXJidW5nIGdyYXUgZGFyZ2VzdGVsbHQgKGlt
IERpZW5zdCwKICAgICAgICAvLyBhYmVyIG5pY2h0IGFscyBER0wtU3ByaW5nZXIgZWluZ2VzZXR6
dCkuCiAgICAgICAgZGF0YS5mb3JFYWNoKGZ1bmN0aW9uKHQpIHsKICAgICAgICAgICAgdmFyIHpp
ZWxlID0gUE9PTF9SRUxBVElPTlt0LnN0YW5kb3J0XTsKICAgICAgICAgICAgaWYgKCF6aWVsZSkg
cmV0dXJuOwogICAgICAgICAgICB0YWdlLmZvckVhY2goZnVuY3Rpb24oZCkgewogICAgICAgICAg
ICAgICAgdmFyIGluZm8gPSB0LnRhZ2VbZF07CiAgICAgICAgICAgICAgICBpZiAoaW5mby5pbURp
ZW5zdCA9PT0gMCkgcmV0dXJuOwogICAgICAgICAgICAgICAgLy8gV2VsY2hlIERHTC1TY2hpY2h0
IG1hY2h0IGRpZSBQb29sLVBlcnNvbiBhbiBkZW0gVGFnIOKAlAogICAgICAgICAgICAgICAgLy8g
VU5EIGlzdCBzaWUgYXVjaCBpbiBkZXIgdmVyYW50d29ydGxpY2hlbiBXYWhybmVobXVuZwogICAg
ICAgICAgICAgICAgLy8gKFRvcC0yIGFrdGl2ZUZ1ZWhydW5nKSBlaW5nZXNldHp0PwogICAgICAg
ICAgICAgICAgdmFyIHBvb2xTY2hpY2h0ID0gbnVsbDsKICAgICAgICAgICAgICAgIGZvciAodmFy
IHBpID0gMDsgcGkgPCBpbmZvLmRldGFpbHMubGVuZ3RoOyBwaSsrKSB7CiAgICAgICAgICAgICAg
ICAgICAgdmFyIGRldCA9IGluZm8uZGV0YWlsc1twaV07CiAgICAgICAgICAgICAgICAgICAgdmFy
IHMgPSBfZGdsU2NoaWNodFZvbihkZXQuY29kZSk7CiAgICAgICAgICAgICAgICAgICAgaWYgKCFz
KSBjb250aW51ZTsKICAgICAgICAgICAgICAgICAgICB2YXIgdmVyYW50ID0gYWt0aXZlRnVlaHJ1
bmcoZCwgcyk7CiAgICAgICAgICAgICAgICAgICAgdmFyIGlzdFZlcmFudCA9IHZlcmFudC5zb21l
KGZ1bmN0aW9uKHApIHsgcmV0dXJuIE51bWJlcihwLmlkKSA9PT0gTnVtYmVyKGRldC5waWQpOyB9
KTsKICAgICAgICAgICAgICAgICAgICBpZiAoaXN0VmVyYW50KSB7IHBvb2xTY2hpY2h0ID0gczsg
YnJlYWs7IH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGlmICghcG9vbFNjaGlj
aHQpIHJldHVybjsgIC8vIFBvb2wtUGVyc29uIGlzdCBkYSwgYWJlciBuaWNodCBhbHMgdmVyYW50
d29ydGxpY2hlIERHTAogICAgICAgICAgICAgICAgLy8gSGF0IGRhcyBaaWVsdGVhbSBhbiBkZW0g
VGFnIGluIGdlbmF1IGRpZXNlciBTY2hpY2h0IE5JRU1BTkRFTj8KICAgICAgICAgICAgICAgIHZh
ciBsdWVja2UgPSB6aWVsZS5zb21lKGZ1bmN0aW9uKHpTdGQpIHsKICAgICAgICAgICAgICAgICAg
ICByZXR1cm4gZGF0YS5zb21lKGZ1bmN0aW9uKG8pIHsKICAgICAgICAgICAgICAgICAgICAgICAg
aWYgKG8uc3RhbmRvcnQgIT09IHpTdGQpIHJldHVybiBmYWxzZTsKICAgICAgICAgICAgICAgICAg
ICAgICAgdmFyIG9pID0gby50YWdlW2RdOwogICAgICAgICAgICAgICAgICAgICAgICBpZiAoIW9p
IHx8IG9pLnRvdGFsID09PSAwKSByZXR1cm4gZmFsc2U7CiAgICAgICAgICAgICAgICAgICAgICAg
IHZhciBqZW1hbmRJblNjaGljaHQgPSAob2kuZGV0YWlscyB8fCBbXSkuc29tZShmdW5jdGlvbihk
ZXQpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBfc2NoaWNodFZvbihkZXQu
Y29kZSkgPT09IHBvb2xTY2hpY2h0OwogICAgICAgICAgICAgICAgICAgICAgICB9KTsKICAgICAg
ICAgICAgICAgICAgICAgICAgcmV0dXJuICFqZW1hbmRJblNjaGljaHQ7CiAgICAgICAgICAgICAg
ICAgICAgfSk7CiAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgICAgIGlmIChsdWVja2Up
IGluZm8uaXN0U3ByaW5nZXIgPSB0cnVlOwogICAgICAgICAgICB9KTsKICAgICAgICB9KTsKCiAg
ICAgICAgLy8gUGhhc2UgMzogU3RhdGlzdGlrIHBybyBUZWFtLgogICAgICAgIC8vIFJPVCAgPSBu
aWVtYW5kIGltIERpZW5zdCBVTkQgbmllbWFuZCBsZWdpdGltIGFid2VzZW5kIFVORCBtaW5kLiAx
CiAgICAgICAgLy8gICAgICAgIFBlcnNvbiBoYXQgRnJlaS1Db2RlIC0+ICJhbGxlIHdvbGxlbiBm
cmVpLCBuaWVtYW5kIG1hY2h0J3MiCiAgICAgICAgLy8gR1JBVSA9IG5pZW1hbmQgaW0gRGllbnN0
LCBhYmVyIG1pbmQuIDEgUGVyc29uIGxlZ2l0aW0gYWJ3ZXNlbmQKICAgICAgICAvLyAgICAgICAg
KFVybC9rci9MZWhyZ2FuZy8uLi4pIOKAlCBrZWluIFByb2JsZW0sIHdlaWwgZGFzIFRlYW0KICAg
ICAgICAvLyAgICAgICAgbmljaHQgaGFldHRlIGtvbXBsZXR0IGJlc2V0enQgc2VpbiBtdWVzc2Vu
LgogICAgICAgIC8vIE5FVVRSQUwgPSAxIFBlcnNvbiBpbSBEaWVuc3QgKFVzZXItQWVuZGVydW5n
OiBrZWluIGdlbGIgbWVocikuCiAgICAgICAgLy8gR1JVRU4gPSAyKyBQZXJzb25lbiBpbSBEaWVu
c3QgKFBvb2w6IDEgbWl0IFNwcmluZ2VyLVN0YXR1cykuCiAgICAgICAgLy8gR09MRCA9IGFsbGUg
VGVhbS1NaXRnbGllZGVyIGltIERpZW5zdCAoZW50ZmFlbGx0IGJlaSBQb29sLVRlYW1zKS4KICAg
ICAgICBkYXRhLmZvckVhY2goZnVuY3Rpb24odCkgewogICAgICAgICAgICB2YXIgcm90ID0gMCwg
Z3JhdSA9IDAsIG5ldXRyYWwgPSAwLCBncnVlbiA9IDAsIGdvbGQgPSAwOwogICAgICAgICAgICB2
YXIgcG9vbCA9IF9pc3RQb29sVGVhbSh0KTsKICAgICAgICAgICAgT2JqZWN0LmtleXModC50YWdl
KS5mb3JFYWNoKGZ1bmN0aW9uKGQpIHsKICAgICAgICAgICAgICAgIHZhciBpbmZvID0gdC50YWdl
W2RdOwogICAgICAgICAgICAgICAgaWYgKGluZm8udG90YWwgPT09IDApIHJldHVybjsKICAgICAg
ICAgICAgICAgIGlmIChpbmZvLmltRGllbnN0ID09PSAwKSB7CiAgICAgICAgICAgICAgICAgICAg
aWYgKGluZm8uYWJ3ZXNlbmQgPj0gMSkgICAgICAgICAgICBncmF1Kys7CiAgICAgICAgICAgICAg
ICAgICAgZWxzZSBpZiAoaW5mby5mcmVpID49IDEpICAgICAgICAgICByb3QrKzsKICAgICAgICAg
ICAgICAgICAgICBlbHNlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBncmF1Kys7ICAg
Ly8gYWxsZSBsZWVyL3Vua2xhciA9IG5ldXRyYWwgZ3JhdQogICAgICAgICAgICAgICAgICAgIHJl
dHVybjsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGlmIChwb29sKSB7CiAgICAg
ICAgICAgICAgICAgICAgLy8gUG9vbDogbnVyICJlY2h0ZXIiIERHTC1TcHJpbmdlciB6YWVobHQg
YWxzIGdydWVuLgogICAgICAgICAgICAgICAgICAgIC8vIEltLURpZW5zdC1hYmVyLW5pY2h0LVNw
cmluZ2VyIChGQlAvV0RGL0RHTC1iZWktYmVzZXR6dGVyLQogICAgICAgICAgICAgICAgICAgIC8v
IFppZWx3YWNoZSkgaXN0IGdyYXUg4oCUIFBvb2wtUGVyc29uIGlzdCBkYSwgYWJlciBuaWNodAog
ICAgICAgICAgICAgICAgICAgIC8vIGFscyBER0wtVmVydHJldHVuZyBlaW5nZXNldHp0LgogICAg
ICAgICAgICAgICAgICAgIGlmIChpbmZvLmlzdFNwcmluZ2VyKSBncnVlbisrOwogICAgICAgICAg
ICAgICAgICAgIGVsc2UgICAgICAgICAgICAgICAgICBncmF1Kys7CiAgICAgICAgICAgICAgICB9
IGVsc2UgewogICAgICAgICAgICAgICAgICAgIGlmIChpbmZvLmltRGllbnN0ID49IGluZm8udG90
YWwpIGdvbGQrKzsKICAgICAgICAgICAgICAgICAgICBlbHNlIGlmIChpbmZvLmltRGllbnN0ID09
PSAxKSAgICBuZXV0cmFsKys7CiAgICAgICAgICAgICAgICAgICAgZWxzZSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGdydWVuKys7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0p
OwogICAgICAgICAgICB0LnN0YXQgPSB7IHJvdDogcm90LCBncmF1OiBncmF1LCBuZXV0cmFsOiBu
ZXV0cmFsLCBncnVlbjogZ3J1ZW4sIGdvbGQ6IGdvbGQsCiAgICAgICAgICAgICAgICAgICAgICAg
dG90YWw6IHJvdCArIGdyYXUgKyBuZXV0cmFsICsgZ3J1ZW4gKyBnb2xkIH07CiAgICAgICAgfSk7
CgogICAgICAgIHJldHVybiBkYXRhOwogICAgfQoKICAgIGZ1bmN0aW9uIG1pa3JvdGVhbVJlbmRl
cm4oKSB7CiAgICAgICAgdmFyIGhlYXRFbCAgID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3N0
YXRzLXRlYW0taGVhdG1hcCcpOwogICAgICAgIHZhciBuZWJlbkVsICA9IGRvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKCdzdGF0cy10ZWFtLWhlYXRtYXAtbmViZW4nKTsKICAgICAgICB2YXIgYmFsa2Vu
RWwgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnc3RhdHMtdGVhbS1iYWxrZW4nKTsKICAgICAg
ICBpZiAoIWhlYXRFbCB8fCAhYmFsa2VuRWwpIHJldHVybjsKCiAgICAgICAgdmFyIGRhdGEgPSBf
dGVhbURhdGVuR2VmaWx0ZXJ0KCk7CiAgICAgICAgaWYgKCFkYXRhLmxlbmd0aCkgewogICAgICAg
ICAgICB2YXIgbGVlckhpbndlaXMgPSAoc3RhdEZpbHRlciA9PT0gJ2FsbGUnKQogICAgICAgICAg
ICAgICAgPyAnS2VpbmUgTWlrcm90ZWFtcyBrb25maWd1cmllcnQuIEltIEFkbWluLVRhYiBhbmxl
Z2VuLicKICAgICAgICAgICAgICAgIDogJ0tlaW5lIE1pa3JvdGVhbXMgaW4gZGVyIGdld8OkaGx0
ZW4gRGllbnN0Z3J1cHBlLic7CiAgICAgICAgICAgIGhlYXRFbC5pbm5lckhUTUwgID0gJzxwIGNs
YXNzPSJ0ZXh0LW11dGVkIiBzdHlsZT0icGFkZGluZzozMnB4O3RleHQtYWxpZ246Y2VudGVyIj4n
ICsgZXNjYXBlSFRNTChsZWVySGlud2VpcykgKyAnPC9wPic7CiAgICAgICAgICAgIGlmIChuZWJl
bkVsKSBuZWJlbkVsLmlubmVySFRNTCA9ICcnOwogICAgICAgICAgICBiYWxrZW5FbC5pbm5lckhU
TUwgPSAnJzsKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KICAgICAgICB2YXIgdGFnZSA9
IF90ZWFtQ3V0VGFnZSgpOwogICAgICAgIHZhciB0YWdNZXRhID0gX3RlYW1UYWdNZXRhKHRhZ2Up
OwogICAgICAgIHZhciBwZXJzb25lbiA9IChaLnBsYW51bmcgJiYgWi5wbGFudW5nLnBlcnNvbmVu
KSB8fCBbXTsKICAgICAgICB2YXIgcGVyc29uTWFwID0ge307CiAgICAgICAgcGVyc29uZW4uZm9y
RWFjaChmdW5jdGlvbihwKSB7IHBlcnNvbk1hcFtwLmlkXSA9IHA7IH0pOwogICAgICAgIHZhciBl
aW50cmFlZ2UgPSAoWi5wbGFudW5nICYmIFoucGxhbnVuZy5laW50cmFlZ2UpIHx8IHt9OwoKICAg
ICAgICBfcmVuZGVyVGVhbUhlYXRtYXAoaGVhdEVsLCBkYXRhLCB0YWdlLCB0YWdNZXRhLCBwZXJz
b25NYXAsIGVpbnRyYWVnZSk7CiAgICAgICAgaWYgKG5lYmVuRWwpIF9yZW5kZXJOZWJlbndhY2hl
bkhlYXRtYXAobmViZW5FbCwgZGF0YSwgdGFnZSwgdGFnTWV0YSk7CiAgICAgICAgX3JlbmRlclRl
YW1CYWxrZW4oYmFsa2VuRWwsIGRhdGEpOwogICAgICAgIF9yZW5kZXJUZWFtQmFsa2VuU29ydEhv
b2tzKCk7CiAgICB9CgogICAgLy8gR2V0ZWlsdGVyIEhlYWRlci1CYXVlciBmdWVyIE1pa3JvdGVh
bS1IZWF0bWFwIFVORCBOZWJlbndhY2hlbi1IZWF0bWFwLgogICAgLy8gQmVpZGUgcmVuZGVybiBk
ZW5zZWxiZW4gQ3V0IChTcGFsdGVua29lcGZlIE1vbmF0IC8gVGFnIC8gV29jaGVudGFnICsKICAg
IC8vIG9wdGlvbmFsZSBNYXJrZXItWmVpbGVuIEZlaWVydGFnZSAvIEZlcmllbiAvIFNvbmRlcnRl
cm1pbmUpIHVuZCB0ZWlsZW4KICAgIC8vIGRpZSBTcGFsdGVuLUtsYXNzZW4tTG9naWsuIExpZWZl
cnQgdm9yZ2VmZXJ0aWd0ZSBIVE1MLUJhdXN0ZWluZSBwbHVzCiAgICAvLyBkaWUgbWFrZVNwYWNl
ci9zcGFsdGVuS2xhc3Nlbi1IZWxwZXIgZnVlciBkaWUgQm9keS1aZWlsZW4uCiAgICBmdW5jdGlv
biBfaGVhdG1hcEtvcGZUZWlsKHRhZ2UsIHRhZ01ldGEpIHsKICAgICAgICB2YXIgbW9uYXRlTWFw
ID0ge307CiAgICAgICAgdGFnZS5mb3JFYWNoKGZ1bmN0aW9uKGQpIHsKICAgICAgICAgICAgdmFy
IG0gPSBkLnN1YnN0cigwLCA3KTsKICAgICAgICAgICAgbW9uYXRlTWFwW21dID0gKG1vbmF0ZU1h
cFttXSB8fCAwKSArIDE7CiAgICAgICAgfSk7CiAgICAgICAgdmFyIG1vbmF0ZSA9IE9iamVjdC5r
ZXlzKG1vbmF0ZU1hcCkuc29ydCgpOwogICAgICAgIHZhciBtb25hdEhlYWQgPSBtb25hdGUubWFw
KGZ1bmN0aW9uKG0pIHsKICAgICAgICAgICAgdmFyIG5yID0gcGFyc2VJbnQobS5zdWJzdHIoNSwg
MiksIDEwKSAtIDE7CiAgICAgICAgICAgIHJldHVybiAnPHRoIGNsYXNzPSJ0ZWFtLWhtLW1vbmF0
LWNlbGwiIGNvbHNwYW49IicgKyBtb25hdGVNYXBbbV0gKyAnIj4nICsgTU9OQVRTTkFNRU5fS1VS
Wltucl0gKyAnPC90aD4nOwogICAgICAgIH0pLmpvaW4oJycpOwoKICAgICAgICBmdW5jdGlvbiBz
cGFsdGVuS2xhc3NlbihkKSB7IHJldHVybiBfc3BhbHRlbktsYXNzZW4odGFnTWV0YSwgZCk7IH0K
CiAgICAgICAgdmFyIHRhZ0hlYWQgPSB0YWdlLm1hcChmdW5jdGlvbihkKSB7CiAgICAgICAgICAg
IHZhciBudW0gPSBwYXJzZUludChkLnN1YnN0cig4LCAyKSwgMTApOwogICAgICAgICAgICB2YXIg
Y2xzID0gWyd0ZWFtLWhtLXRoJ10uY29uY2F0KHNwYWx0ZW5LbGFzc2VuKGQpKTsKICAgICAgICAg
ICAgcmV0dXJuICc8dGggY2xhc3M9IicgKyBjbHMuam9pbignICcpICsgJyI+JyArIG51bSArICc8
L3RoPic7CiAgICAgICAgfSkuam9pbignJyk7CgogICAgICAgIHZhciB3dEt1cnogPSBbJ1NvJywn
TW8nLCdEaScsJ01pJywnRG8nLCdGcicsJ1NhJ107CiAgICAgICAgdmFyIHd0SGVhZCA9IHRhZ2Uu
bWFwKGZ1bmN0aW9uKGQpIHsKICAgICAgICAgICAgdmFyIG0gPSB0YWdNZXRhW2RdOwogICAgICAg
ICAgICB2YXIgY2xzID0gWyd0ZWFtLWhtLXd0J10uY29uY2F0KHNwYWx0ZW5LbGFzc2VuKGQpKTsK
ICAgICAgICAgICAgcmV0dXJuICc8dGggY2xhc3M9IicgKyBjbHMuam9pbignICcpICsgJyI+JyAr
IHd0S3VyelttLndvY2hlbnRhZ10gKyAnPC90aD4nOwogICAgICAgIH0pLmpvaW4oJycpOwoKICAg
ICAgICBmdW5jdGlvbiBpdGVtS2V5KGl0KSB7CiAgICAgICAgICAgIGlmICghaXQpIHJldHVybiAn
JzsKICAgICAgICAgICAgcmV0dXJuIChpdC5iZXplaWNobnVuZyB8fCBpdC5uYW1lIHx8IGl0LnRp
dGVsIHx8ICcnKSArCiAgICAgICAgICAgICAgICAgICAnfCcgKyAoaXQudm9uIHx8IGl0LmRhdHVt
IHx8ICcnKSArCiAgICAgICAgICAgICAgICAgICAnfCcgKyAoaXQuYmlzIHx8IGl0LmRhdHVtQmlz
IHx8IGl0LmRhdHVtIHx8ICcnKTsKICAgICAgICB9CiAgICAgICAgZnVuY3Rpb24gaXRlbUxhYmVs
KGl0KSB7CiAgICAgICAgICAgIHJldHVybiBpdC5iZXplaWNobnVuZyB8fCBpdC5uYW1lIHx8IGl0
LnRpdGVsIHx8IGl0LnRleHQgfHwgJyc7CiAgICAgICAgfQoKICAgICAgICBmdW5jdGlvbiBtYWtl
TWFya2VyUm93KGxhYmVsLCBnZXR0ZXIsIGtsYXNzZSwgb3B0cykgewogICAgICAgICAgICBvcHRz
ID0gb3B0cyB8fCB7fTsKICAgICAgICAgICAgdmFyIGFueUhpdCA9IHRhZ2Uuc29tZShmdW5jdGlv
bihkKSB7IHJldHVybiBnZXR0ZXIodGFnTWV0YVtkXSkubGVuZ3RoID4gMDsgfSk7CiAgICAgICAg
ICAgIGlmICghYW55SGl0KSByZXR1cm4gJyc7CiAgICAgICAgICAgIHZhciBjZWxscyA9ICcnOwog
ICAgICAgICAgICB2YXIgaSA9IDA7CiAgICAgICAgICAgIHdoaWxlIChpIDwgdGFnZS5sZW5ndGgp
IHsKICAgICAgICAgICAgICAgIHZhciBkID0gdGFnZVtpXTsKICAgICAgICAgICAgICAgIHZhciBp
dGVtcyA9IGdldHRlcih0YWdNZXRhW2RdKTsKICAgICAgICAgICAgICAgIHZhciBjZWxsQ2xzID0g
Wyd0ZWFtLWhtLW1hcmtlci1jZWxsJ10uY29uY2F0KHNwYWx0ZW5LbGFzc2VuKGQpKTsKICAgICAg
ICAgICAgICAgIGlmICghaXRlbXMubGVuZ3RoKSB7CiAgICAgICAgICAgICAgICAgICAgY2VsbHMg
Kz0gJzx0ZCBjbGFzcz0iJyArIGNlbGxDbHMuam9pbignICcpICsgJyI+PC90ZD4nOwogICAgICAg
ICAgICAgICAgICAgIGkrKzsKICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAg
ICAgICAgIH0KICAgICAgICAgICAgICAgIGNlbGxDbHMucHVzaChrbGFzc2UpOwogICAgICAgICAg
ICAgICAgdmFyIHNwYW4gPSAxOwogICAgICAgICAgICAgICAgaWYgKG9wdHMubWl0U3Bhbikgewog
ICAgICAgICAgICAgICAgICAgIHZhciBzY2hsdWVzc2VsID0gaXRlbXMubWFwKGl0ZW1LZXkpLmpv
aW4oJzsnKTsKICAgICAgICAgICAgICAgICAgICBmb3IgKHZhciBqID0gaSArIDE7IGogPCB0YWdl
Lmxlbmd0aDsgaisrKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBmb2xsb3dJdGVtcyA9
IGdldHRlcih0YWdNZXRhW3RhZ2Vbal1dKTsKICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGZv
bGxvd0l0ZW1zLm1hcChpdGVtS2V5KS5qb2luKCc7JykgIT09IHNjaGx1ZXNzZWwpIGJyZWFrOwog
ICAgICAgICAgICAgICAgICAgICAgICBzcGFuKys7CiAgICAgICAgICAgICAgICAgICAgfQogICAg
ICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgdmFyIGxhYmVscyA9IGl0ZW1zLm1hcChpdGVt
TGFiZWwpLmZpbHRlcihCb29sZWFuKTsKICAgICAgICAgICAgICAgIHZhciB0aXAgICAgPSBsYWJl
bHMuam9pbignIC8gJyk7CiAgICAgICAgICAgICAgICB2YXIgYW56ZWlnZTsKICAgICAgICAgICAg
ICAgIGlmIChvcHRzLmljb24pICAgICAgICAgYW56ZWlnZSA9IG9wdHMuaWNvbjsKICAgICAgICAg
ICAgICAgIGVsc2UgaWYgKG9wdHMubWl0U3BhbikgYW56ZWlnZSA9IGxhYmVscy5qb2luKCcgLyAn
KTsKICAgICAgICAgICAgICAgIGVsc2UgICAgICAgICAgICAgICAgICAgYW56ZWlnZSA9IGxhYmVs
c1swXSA/IGxhYmVsc1swXS5zdWJzdHIoMCwgMikgOiAnwrcnOwogICAgICAgICAgICAgICAgdmFy
IGV4dHJhID0gJyc7CiAgICAgICAgICAgICAgICBpZiAob3B0cy5rbGlja2JhcikgewogICAgICAg
ICAgICAgICAgICAgIHZhciBpZHMgPSBpdGVtcy5tYXAoZnVuY3Rpb24ocykgeyByZXR1cm4gcy5p
ZDsgfSkuZmlsdGVyKEJvb2xlYW4pLmpvaW4oJywnKTsKICAgICAgICAgICAgICAgICAgICBleHRy
YSA9ICcgZGF0YS1zdC1pZHM9IicgKyBlc2NhcGVBdHRyKGlkcykgKyAnIiBkYXRhLWtsaWNrYmFy
PSIxIic7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB2YXIgY29sc3BhbkF0dHIg
PSBzcGFuID4gMSA/ICcgY29sc3Bhbj0iJyArIHNwYW4gKyAnIicgOiAnJzsKICAgICAgICAgICAg
ICAgIGNlbGxzICs9ICc8dGQgY2xhc3M9IicgKyBjZWxsQ2xzLmpvaW4oJyAnKSArICciJyArIGNv
bHNwYW5BdHRyICsgZXh0cmEgKyAnIHRpdGxlPSInICsgZXNjYXBlQXR0cih0aXApICsgJyI+JyAr
IGVzY2FwZUhUTUwoYW56ZWlnZSkgKyAnPC90ZD4nOwogICAgICAgICAgICAgICAgaSArPSBzcGFu
OwogICAgICAgICAgICB9CiAgICAgICAgICAgIHJldHVybiAnPHRyIGNsYXNzPSJ0ZWFtLWhtLW1h
cmtlci1yb3ciPicgKwogICAgICAgICAgICAgICAgJzx0aCBjbGFzcz0idGVhbS1obS1uYW1lIHRl
YW0taG0tbWFya2VyLW5hbWUiPicgKyBlc2NhcGVIVE1MKGxhYmVsKSArICc8L3RoPicgKwogICAg
ICAgICAgICAgICAgY2VsbHMgKwogICAgICAgICAgICAgICAgJzwvdHI+JzsKICAgICAgICB9Cgog
ICAgICAgIHZhciBmZWllcnRhZ1JvdyAgID0gbWFrZU1hcmtlclJvdygnRmVpZXJ0YWdlJywgICAg
ZnVuY3Rpb24obSkgeyByZXR1cm4gbS5mZWllcnRhZ2U7IH0sICAgICAnbWFya2VyLWZlaWVyJywg
ICAgICAgIHsga2xpY2tiYXI6IGZhbHNlLCBtaXRTcGFuOiBmYWxzZSB9KTsKICAgICAgICB2YXIg
ZmVyaWVuUm93ICAgICA9IG1ha2VNYXJrZXJSb3coJ0ZlcmllbicsICAgICAgIGZ1bmN0aW9uKG0p
IHsgcmV0dXJuIG0uZmVyaWVuOyB9LCAgICAgICAgJ21hcmtlci1mZXJpZW4nLCAgICAgICB7IGts
aWNrYmFyOiBmYWxzZSwgbWl0U3BhbjogdHJ1ZSB9KTsKICAgICAgICB2YXIgc29uZGVydGVybVJv
dyA9IG1ha2VNYXJrZXJSb3coJ1NvbmRlcnRlcm1pbmUnLCBmdW5jdGlvbihtKSB7IHJldHVybiBt
LnNvbmRlcnRlcm1pbmU7IH0sICdtYXJrZXItc29uZGVydGVybWluJywgeyBrbGlja2JhcjogdHJ1
ZSwgIG1pdFNwYW46IGZhbHNlLCBpY29uOiAn4pqgJyB9KTsKCiAgICAgICAgZnVuY3Rpb24gbWFr
ZVNwYWNlcihrbGFzc2UpIHsKICAgICAgICAgICAgdmFyIG5hbWVUZCA9ICc8dGQgY2xhc3M9InRl
YW0taG0tc3BhY2VyLW5hbWUgJyArIGtsYXNzZSArICciPjwvdGQ+JzsKICAgICAgICAgICAgdmFy
IGJvZHlUZCA9ICc8dGQgY2xhc3M9InRlYW0taG0tc3BhY2VyLWJvZHkgJyArIGtsYXNzZSArICci
IGNvbHNwYW49IicgKyB0YWdlLmxlbmd0aCArICciPjwvdGQ+JzsKICAgICAgICAgICAgcmV0dXJu
ICc8dHIgY2xhc3M9InRlYW0taG0tc3BhY2VyLXJvdyI+JyArIG5hbWVUZCArIGJvZHlUZCArICc8
L3RyPic7CiAgICAgICAgfQoKICAgICAgICByZXR1cm4gewogICAgICAgICAgICBtb25hdEhlYWQ6
IG1vbmF0SGVhZCwgdGFnSGVhZDogdGFnSGVhZCwgd3RIZWFkOiB3dEhlYWQsCiAgICAgICAgICAg
IGZlaWVydGFnUm93OiBmZWllcnRhZ1JvdywgZmVyaWVuUm93OiBmZXJpZW5Sb3csIHNvbmRlcnRl
cm1Sb3c6IHNvbmRlcnRlcm1Sb3csCiAgICAgICAgICAgIHNwYWx0ZW5LbGFzc2VuOiBzcGFsdGVu
S2xhc3NlbiwgbWFrZVNwYWNlcjogbWFrZVNwYWNlcgogICAgICAgIH07CiAgICB9CgogICAgLy8g
U3RpY2t5LVRvcC1XZXJ0ZSBmdWVyIGRpZSBtZWhyemVpbGlnZW4gSGVhZGVyIChNb25hdCAvIFRh
ZyAvIFdvY2hlbnRhZwogICAgLy8gKyBvcHRpb25hbGUgTWFya2VyLVplaWxlbikuIENTUyBhbGxl
aW4gcmVpY2h0IG5pY2h0LCB3ZWlsIE1hcmtlci1aZWlsZW4KICAgIC8vIG9wdGlvbmFsIHNpbmQg
4oCUIHdpciBzdW1taWVyZW4gZGllIHRhdHNhZWNobGljaGVuIG9mZnNldEhlaWdodC1XZXJ0ZS4K
ICAgIGZ1bmN0aW9uIF9oZWF0bWFwU3RpY2t5VG9wQW53ZW5kZW4oZWwpIHsKICAgICAgICB2YXIg
dGhlYWQgPSBlbC5xdWVyeVNlbGVjdG9yKCcudGVhbS1obS10YWJlbGxlID4gdGhlYWQnKTsKICAg
ICAgICBpZiAoIXRoZWFkKSByZXR1cm47CiAgICAgICAgdmFyIGFra3VUb3AgPSAwOwogICAgICAg
IEFycmF5LnByb3RvdHlwZS5mb3JFYWNoLmNhbGwodGhlYWQuY2hpbGRyZW4sIGZ1bmN0aW9uKHRy
KSB7CiAgICAgICAgICAgIEFycmF5LnByb3RvdHlwZS5mb3JFYWNoLmNhbGwodHIuY2hpbGRyZW4s
IGZ1bmN0aW9uKGNlbGwpIHsKICAgICAgICAgICAgICAgIGNlbGwuc3R5bGUudG9wID0gYWtrdVRv
cCArICdweCc7CiAgICAgICAgICAgIH0pOwogICAgICAgICAgICBha2t1VG9wICs9IHRyLm9mZnNl
dEhlaWdodDsKICAgICAgICB9KTsKICAgIH0KCiAgICAvLyBTb25kZXJ0ZXJtaW4tS2xpY2s6IE1h
cmtlci1aZWxsZSBvZWZmbmV0IERldGFpbC1Nb2RhbC4gV2lyZCBzb3dvaGwKICAgIC8vIGZ1ZXIg
ZGllIEhhdXB0LUhlYXRtYXAgYWxzIGF1Y2ggZnVlciBkaWUgTmViZW53YWNoZW4tSGVhdG1hcCBy
ZWdpc3RyaWVydC4KICAgIGZ1bmN0aW9uIF9oZWF0bWFwU29uZGVydGVybWluZUtsaWNrYmFyKGVs
KSB7CiAgICAgICAgZWwucXVlcnlTZWxlY3RvckFsbCgnLm1hcmtlci1zb25kZXJ0ZXJtaW5bZGF0
YS1rbGlja2Jhcj0iMSJdJykuZm9yRWFjaChmdW5jdGlvbihjZWxsKSB7CiAgICAgICAgICAgIGNl
bGwuc3R5bGUuY3Vyc29yID0gJ3BvaW50ZXInOwogICAgICAgICAgICBjZWxsLmFkZEV2ZW50TGlz
dGVuZXIoJ2NsaWNrJywgZnVuY3Rpb24oZSkgewogICAgICAgICAgICAgICAgZS5zdG9wUHJvcGFn
YXRpb24oKTsKICAgICAgICAgICAgICAgIF96ZWlnZVNvbmRlcnRlcm1pbmVEZXRhaWwoY2VsbC5n
ZXRBdHRyaWJ1dGUoJ2RhdGEtc3QtaWRzJykpOwogICAgICAgICAgICB9KTsKICAgICAgICB9KTsK
ICAgIH0KCiAgICBmdW5jdGlvbiBfcmVuZGVyVGVhbUhlYXRtYXAoZWwsIGRhdGEsIHRhZ2UsIHRh
Z01ldGEsIHBlcnNvbk1hcCwgZWludHJhZWdlKSB7CiAgICAgICAgdmFyIGtvcGYgPSBfaGVhdG1h
cEtvcGZUZWlsKHRhZ2UsIHRhZ01ldGEpOwogICAgICAgIHZhciBtb25hdEhlYWQgICAgID0ga29w
Zi5tb25hdEhlYWQ7CiAgICAgICAgdmFyIHRhZ0hlYWQgICAgICAgPSBrb3BmLnRhZ0hlYWQ7CiAg
ICAgICAgdmFyIHd0SGVhZCAgICAgICAgPSBrb3BmLnd0SGVhZDsKICAgICAgICB2YXIgZmVpZXJ0
YWdSb3cgICA9IGtvcGYuZmVpZXJ0YWdSb3c7CiAgICAgICAgdmFyIGZlcmllblJvdyAgICAgPSBr
b3BmLmZlcmllblJvdzsKICAgICAgICB2YXIgc29uZGVydGVybVJvdyA9IGtvcGYuc29uZGVydGVy
bVJvdzsKICAgICAgICB2YXIgc3BhbHRlbktsYXNzZW4gPSBrb3BmLnNwYWx0ZW5LbGFzc2VuOwog
ICAgICAgIHZhciBtYWtlU3BhY2VyICAgICA9IGtvcGYubWFrZVNwYWNlcjsKCiAgICAgICAgLy8g
S29udGV4dCBmdWVyIENsaWNrLUhhbmRsZXIgYWJsZWdlbiDigJQgRGV0YWlsLVplaWxlbiB3ZXJk
ZW4gYmVpCiAgICAgICAgLy8gRXhwYW5kLUtsaWNrcyBkaXJla3QgcGVyIGluc2VydEFkamFjZW50
SFRNTCBlaW5nZWZ1ZWd0IHN0YXR0IGRpZQogICAgICAgIC8vIGdhbnplIFRhYmVsbGUgbmV1IHp1
IHJlbmRlcm4uCiAgICAgICAgX2hlYXRtYXBLb250ZXh0ID0geyB0YWdlOiB0YWdlLCB0YWdNZXRh
OiB0YWdNZXRhLCBwZXJzb25NYXA6IHBlcnNvbk1hcCwgZWludHJhZWdlOiBlaW50cmFlZ2UgfTsK
ICAgICAgICB2YXIgcm93c0h0bWwgPSBkYXRhLm1hcChmdW5jdGlvbih0LCBpZHgpIHsKICAgICAg
ICAgICAgdmFyIGV4cGFuZGVkID0gISFfc3RhdFRlYW1FeHBhbmRlZFt0LmlkXTsKICAgICAgICAg
ICAgdmFyIHBmZWlsID0gZXhwYW5kZWQgPyAn4pa+JyA6ICfilrgnOwogICAgICAgICAgICB2YXIg
cG9vbCA9IF9pc3RQb29sVGVhbSh0KTsKICAgICAgICAgICAgLy8gUG9vbC1TdGFuZG9ydGUgKExE
LCBTTykgd2VyZGVuIGFscyBlaW4gZ2VtZWluc2FtZXIgQmxvY2sgYmVoYW5kZWx0CiAgICAgICAg
ICAgIC8vIOKAlCBrZWluIFNwYWNlciB6d2lzY2hlbiBpaG5lbiwgZGEgc2llIGZ1bmt0aW9uYWwg
enVzYW1tZW5nZWhvZXJlbi4KICAgICAgICAgICAgdmFyIHZvclBvb2wgICA9IGlkeCA+IDAgJiYg
X2lzdFBvb2xUZWFtKGRhdGFbaWR4IC0gMV0pOwogICAgICAgICAgICB2YXIgamV0enRQb29sID0g
X2lzdFBvb2xUZWFtKHQpOwogICAgICAgICAgICB2YXIgc3RhbmRvcnRXZWNoc2VsID0gaWR4ID4g
MCAmJiBkYXRhW2lkeCAtIDFdLnN0YW5kb3J0ICE9PSB0LnN0YW5kb3J0ICYmICEodm9yUG9vbCAm
JiBqZXR6dFBvb2wpOwogICAgICAgICAgICB2YXIgaGF1cHRUcmVubmVyICAgID0gaWR4ID4gMCAm
JiBkYXRhW2lkeCAtIDFdLnN0YW5kb3J0ID09PSAnSEEnICYmIHQuc3RhbmRvcnQgPT09ICdCTyc7
CiAgICAgICAgICAgIHZhciBzcGFjZXJSb3cgPSAnJzsKICAgICAgICAgICAgaWYgKGhhdXB0VHJl
bm5lcikgewogICAgICAgICAgICAgICAgLy8gSGF1cHR3YWNoZW4tVHJlbm5lcjogb2JlcmVyIFNw
YWNlciBtaXQgQm9yZGVyLUJvdHRvbSAoZ3JhdWUKICAgICAgICAgICAgICAgIC8vIFRyZW5ubGlu
aWUpLCB1bnRlcmVyIFNwYWNlciBhbHMgRGlzdGFueiBkYW5hY2guCiAgICAgICAgICAgICAgICBz
cGFjZXJSb3cgPSBtYWtlU3BhY2VyKCd0ZWFtLWhtLXNwYWNlci1oYXVwdC1vYmVuJykgKwogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgbWFrZVNwYWNlcigndGVhbS1obS1zcGFjZXItaGF1cHQt
dW50ZW4nKTsKICAgICAgICAgICAgfSBlbHNlIGlmIChzdGFuZG9ydFdlY2hzZWwpIHsKICAgICAg
ICAgICAgICAgIHNwYWNlclJvdyA9IG1ha2VTcGFjZXIoJ3RlYW0taG0tc3BhY2VyLXN0YW5kb3J0
Jyk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgdmFyIHRlYW1Sb3cgPSAnPHRyIGNsYXNzPSJ0
ZWFtLWhtLXJvdyIgZGF0YS10ZWFtLWlkPSInICsgdC5pZCArICciPicgKwogICAgICAgICAgICAg
ICAgJzx0aCBjbGFzcz0idGVhbS1obS1uYW1lIHRlYW0taG0tY2xpY2thYmxlIiB0aXRsZT0iS2xp
Y2sgemVpZ3QgUGVyc29uZW4tRGV0YWlsIj4nICsKICAgICAgICAgICAgICAgICAgICAnPHNwYW4g
Y2xhc3M9InRlYW0taG0tdG9nZ2xlIj4nICsgcGZlaWwgKyAnPC9zcGFuPiAnICsgZXNjYXBlSFRN
TCh0Lm5hbWUpICsKICAgICAgICAgICAgICAgICc8L3RoPicgKwogICAgICAgICAgICAgICAgdGFn
ZS5tYXAoZnVuY3Rpb24oZCkgewogICAgICAgICAgICAgICAgICAgIHZhciBtID0gdGFnTWV0YVtk
XTsKICAgICAgICAgICAgICAgICAgICB2YXIgaW5mbyA9IHQudGFnZVtkXTsKICAgICAgICAgICAg
ICAgICAgICB2YXIgYmFzZUNscyA9IFsndGVhbS1obS1jZWxsJ10uY29uY2F0KHNwYWx0ZW5LbGFz
c2VuKGQpKTsKCiAgICAgICAgICAgICAgICAgICAgaWYgKCFpbmZvIHx8IGluZm8udG90YWwgPT09
IDApIHsKICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICc8dGQgY2xhc3M9IicgKyBiYXNl
Q2xzLmpvaW4oJyAnKSArICciPjwvdGQ+JzsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAg
ICAgICAgICAgICAgLy8gQmVpIG5pZW1hbmQgaW0gRGllbnN0OiByb3QgbnVyIHdlbm4gYWxsZSAi
aGFldHRlbiBhcmJlaXRlbgogICAgICAgICAgICAgICAgICAgIC8vIGtvZW5uZW4iIChGcmVpLUNv
ZGVzKSwgc29uc3QgZ3JhdSAobGVnaXRpbWUgQWJ3ZXNlbmhlaXQpLgogICAgICAgICAgICAgICAg
ICAgIGZ1bmN0aW9uIGZhcmJlQmVpTnVsbERpZW5zdCgpIHsKICAgICAgICAgICAgICAgICAgICAg
ICAgaWYgKGluZm8uYWJ3ZXNlbmQgPj0gMSkgcmV0dXJuICd0ZWFtLWdyYXUnOwogICAgICAgICAg
ICAgICAgICAgICAgICBpZiAoaW5mby5mcmVpID49IDEpICAgICByZXR1cm4gJ3RlYW0tcic7CiAg
ICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAndGVhbS1ncmF1JzsKICAgICAgICAgICAgICAg
ICAgICB9CiAgICAgICAgICAgICAgICAgICAgLy8gUG9vbC1UZWFtOiByb3QgLyBncmF1IC8gZ3J1
ZW4g4oCUIEtFSU5FIFphaGwgaW4gZGVyIFplbGxlLgogICAgICAgICAgICAgICAgICAgIC8vIGdy
dWVuIE5VUiBiZWkgZWNodGVtIERHTC1TcHJpbmdlbiAoUG9vbC1QZXJzb24gbWFjaHQKICAgICAg
ICAgICAgICAgICAgICAvLyBGL1MvTi1ER0wgVU5EIGRpZSBaaWVsd2FjaGUgaGF0IGluIGRpZXNl
ciBTY2hpY2h0IGtlaW5lbgogICAgICAgICAgICAgICAgICAgIC8vIGVpZ2VuZW4gREdMKS4gUG9v
bC1QZXJzb24gaW0gRGllbnN0IGFiZXIgb2huZSBER0wtCiAgICAgICAgICAgICAgICAgICAgLy8g
VmVydHJldHVuZ3MtRnVua3Rpb24gKHouQi4gRi1GQlAgb2RlciBER0wtYmVpLWJlc2V0enRlci0K
ICAgICAgICAgICAgICAgICAgICAvLyBaaWVsd2FjaGUpIHdpcmQgZ3JhdSBkYXJnZXN0ZWxsdCDi
gJQgc2llIGlzdCBkYSwgYWJlcgogICAgICAgICAgICAgICAgICAgIC8vIHN0YXRpc3Rpc2NoIG5p
Y2h0IGFscyBQb29sLVNwcmluZ2VyIHJlbGV2YW50LgogICAgICAgICAgICAgICAgICAgIGlmIChw
b29sKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBwb29sRmFyYmUsIHBvb2xUaXA7CiAg
ICAgICAgICAgICAgICAgICAgICAgIGlmIChpbmZvLmltRGllbnN0ID09PSAwKSB7CiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBwb29sRmFyYmUgPSBmYXJiZUJlaU51bGxEaWVuc3QoKTsKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHBvb2xUaXAgPSBkICsgJyDigJQgbmljaHQgaW0gRGll
bnN0JzsKICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChpbmZvLmlzdFNwcmluZ2Vy
KSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwb29sRmFyYmUgPSAndGVhbS1nJzsKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHBvb2xUaXAgPSBkICsgJyDigJQgc3ByaW5ndCBhbHMg
REdMIGVpbic7CiAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBwb29sRmFyYmUgPSAndGVhbS1ncmF1JzsKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHBvb2xUaXAgPSBkICsgJyDigJQgaW0gRGllbnN0LCBuaWNodCBhbHMgREdMLVZl
cnRyZXR1bmcnOwogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAg
ICAgIGJhc2VDbHMucHVzaChwb29sRmFyYmUpOwogICAgICAgICAgICAgICAgICAgICAgICByZXR1
cm4gJzx0ZCBjbGFzcz0iJyArIGJhc2VDbHMuam9pbignICcpICsgJyIgdGl0bGU9IicgKyBlc2Nh
cGVBdHRyKHBvb2xUaXApICsgJyI+PC90ZD4nOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAg
ICAgICAgICAgICAgICAvLyBSZWd1bMOkcmUgVGVhbXM6IHJvdCAvIGdyYXUgLyBuZXV0cmFsICgx
IGRhKSAvIGdyw7xuICgyKykgLyBnb2xkIChhbGxlKQogICAgICAgICAgICAgICAgICAgIHZhciBm
YXJiZSA9IChpbmZvLmltRGllbnN0ID09PSAwKSA/IGZhcmJlQmVpTnVsbERpZW5zdCgpCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIDogKGluZm8uaW1EaWVuc3QgPj0gaW5mby50b3RhbCkg
PyAndGVhbS1nb2xkJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IChpbmZvLmltRGll
bnN0ID09PSAxKSA/ICd0ZWFtLW4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogJ3Rl
YW0tZyc7CiAgICAgICAgICAgICAgICAgICAgYmFzZUNscy5wdXNoKGZhcmJlKTsKICAgICAgICAg
ICAgICAgICAgICAvLyBCZWkgMC1EaWVuc3QgbmljaHRzIGFuemVpZ2VuIChaYWhsIGhhZXR0ZSBr
ZWluZW4gTWVocndlcnQpLAogICAgICAgICAgICAgICAgICAgIC8vIGFuc29uc3RlbiBkaWUgQW56
YWhsLgogICAgICAgICAgICAgICAgICAgIHZhciBpbmhhbHQgPSBpbmZvLmltRGllbnN0ID09PSAw
ID8gJycgOiBpbmZvLmltRGllbnN0OwogICAgICAgICAgICAgICAgICAgIHZhciB0aXAgPSBkICsg
JyDigJQgJyArIGluZm8uaW1EaWVuc3QgKyAnLycgKyBpbmZvLnRvdGFsICsgJyBpbSBEaWVuc3Qn
OwogICAgICAgICAgICAgICAgICAgIGlmIChpbmZvLmltRGllbnN0ID09PSAwKSB7CiAgICAgICAg
ICAgICAgICAgICAgICAgIGlmIChpbmZvLmFid2VzZW5kKSB0aXAgKz0gJyAoJyArIGluZm8uYWJ3
ZXNlbmQgKyAnIGFid2VzZW5kKSc7CiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChpbmZvLmZy
ZWkpICAgICB0aXAgKz0gJyAoJyArIGluZm8uZnJlaSArICcgZnJlaSknOwogICAgICAgICAgICAg
ICAgICAgIH0KICAgICAgICAgICAgICAgICAgICByZXR1cm4gJzx0ZCBjbGFzcz0iJyArIGJhc2VD
bHMuam9pbignICcpICsgJyIgdGl0bGU9IicgKyBlc2NhcGVBdHRyKHRpcCkgKyAnIj4nICsgaW5o
YWx0ICsgJzwvdGQ+JzsKICAgICAgICAgICAgICAgIH0pLmpvaW4oJycpICsKICAgICAgICAgICAg
ICAgICc8L3RyPic7CgogICAgICAgICAgICBpZiAoIWV4cGFuZGVkKSByZXR1cm4gc3BhY2VyUm93
ICsgdGVhbVJvdzsKCiAgICAgICAgICAgIC8vIERldGFpbC1aZWlsZW4gcHJvIFBlcnNvbiDigJQg
Z2xlaWNoZXIgSGVscGVyIHdpcmQgYmVpbSBFeHBhbmQtCiAgICAgICAgICAgIC8vIEtsaWNrIGVy
bmV1dCBnZW51dHp0LCB1bSBkaWUgWmVpbGVuIG5hY2h0cmFlZ2xpY2ggZWluenVmdWVnZW4uCiAg
ICAgICAgICAgIHJldHVybiBzcGFjZXJSb3cgKyB0ZWFtUm93ICsgX2J1aWxkVGVhbURldGFpbFJv
d3ModCwgX2hlYXRtYXBLb250ZXh0KTsKICAgICAgICB9KS5qb2luKCcnKTsKCiAgICAgICAgZWwu
aW5uZXJIVE1MID0gJzxkaXYgY2xhc3M9InRhYmVsbGUtc2Nyb2xsIHRlYW0taG0tc2Nyb2xsIj4n
ICsKICAgICAgICAgICAgJzx0YWJsZSBjbGFzcz0idGVhbS1obS10YWJlbGxlIj4nICsKICAgICAg
ICAgICAgICAgICc8dGhlYWQ+JyArCiAgICAgICAgICAgICAgICAgICAgJzx0cj48dGggY2xhc3M9
InRlYW0taG0tbmFtZSI+PC90aD4nICsgbW9uYXRIZWFkICsgJzwvdHI+JyArCiAgICAgICAgICAg
ICAgICAgICAgJzx0cj48dGggY2xhc3M9InRlYW0taG0tbmFtZSI+PC90aD4nICsgdGFnSGVhZCAg
ICsgJzwvdHI+JyArCiAgICAgICAgICAgICAgICAgICAgJzx0cj48dGggY2xhc3M9InRlYW0taG0t
bmFtZSI+PC90aD4nICsgd3RIZWFkICAgICsgJzwvdHI+JyArCiAgICAgICAgICAgICAgICAgICAg
ZmVpZXJ0YWdSb3cgKyBmZXJpZW5Sb3cgKyBzb25kZXJ0ZXJtUm93ICsKICAgICAgICAgICAgICAg
ICc8L3RoZWFkPicgKwogICAgICAgICAgICAgICAgJzx0Ym9keT4nICsgcm93c0h0bWwgKyAnPC90
Ym9keT4nICsKICAgICAgICAgICAgJzwvdGFibGU+PC9kaXY+JzsKCiAgICAgICAgX2hlYXRtYXBT
dGlja3lUb3BBbndlbmRlbihlbCk7CgogICAgICAgIC8vIEhvdmVyLUtyZXV6OiBFeGNlbC1TdHls
ZS1IaWdobGlnaHQgdm9uIFplaWxlICsgU3BhbHRlLiBFdmVudC0KICAgICAgICAvLyBEZWxlZ2F0
aW9uIGF1ZiBkZXIgVGFiZWxsZSwgbmljaHQgcHJvIFplbGxlLCBzb25zdCBmcmlzc3QgZXMKICAg
ICAgICAvLyBhdWYgZGVuIEJlaG9lcmRlbi1QQ3MgV2VjaHNlbHplaXQuCiAgICAgICAgLy8gU3Bh
bHRlbi1UcmFja2luZyB1ZWJlciBjZWxsSW5kZXggKG5hdGl2ZSBIVE1MVGFibGVDZWxsRWxlbWVu
dC0KICAgICAgICAvLyBQcm9wZXJ0eTogUG9zaXRpb24gaW5uZXJoYWxiIGRlcyByb3cuY2VsbHMt
Q29sbGVjdGlvbikuIERpZQogICAgICAgIC8vIE1vbmF0c3plaWxlICgxLiB0aGVhZC1Sb3cgbWl0
IGNvbHNwYW4pIHdpcmQgcGVyIEtsYXNzZW4tRmlsdGVyCiAgICAgICAgLy8gd2VnZ2VsYXNzZW4s
IHdlaWwgaWhyZSBjZWxsSW5kZXgtV2VydGUgbWl0IGRlbiBhbmRlcmVuIFJvd3MKICAgICAgICAv
LyBuaWNodCB1ZWJlcmVpbnN0aW1tZW4uCiAgICAgICAgdmFyIHRibCA9IGVsLnF1ZXJ5U2VsZWN0
b3IoJy50ZWFtLWhtLXRhYmVsbGUnKTsKICAgICAgICBpZiAodGJsKSB7CiAgICAgICAgICAgIHZh
ciBha3R1ZWxsZVplbGxlID0gbnVsbDsKICAgICAgICAgICAgZnVuY3Rpb24gY2xlYXJDcm9zcygp
IHsKICAgICAgICAgICAgICAgIGlmICghYWt0dWVsbGVaZWxsZSkgcmV0dXJuOwogICAgICAgICAg
ICAgICAgdGJsLnF1ZXJ5U2VsZWN0b3JBbGwoJy5obS1jcm9zcycpLmZvckVhY2goZnVuY3Rpb24o
YykgeyBjLmNsYXNzTGlzdC5yZW1vdmUoJ2htLWNyb3NzJyk7IH0pOwogICAgICAgICAgICAgICAg
YWt0dWVsbGVaZWxsZSA9IG51bGw7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZnVuY3Rpb24g
YXBwbHlDcm9zcyhjZWxsKSB7CiAgICAgICAgICAgICAgICB2YXIgcm93ID0gY2VsbC5wYXJlbnRF
bGVtZW50OwogICAgICAgICAgICAgICAgaWYgKCFyb3cpIHJldHVybjsKICAgICAgICAgICAgICAg
IHZhciBjb2wgPSBjZWxsLmNlbGxJbmRleDsKICAgICAgICAgICAgICAgIEFycmF5LnByb3RvdHlw
ZS5mb3JFYWNoLmNhbGwocm93LmNlbGxzLCBmdW5jdGlvbihjKSB7IGMuY2xhc3NMaXN0LmFkZCgn
aG0tY3Jvc3MnKTsgfSk7CiAgICAgICAgICAgICAgICB0YmwucXVlcnlTZWxlY3RvckFsbCgndHIn
KS5mb3JFYWNoKGZ1bmN0aW9uKHRyKSB7CiAgICAgICAgICAgICAgICAgICAgaWYgKHRyID09PSBy
b3cpIHJldHVybjsKICAgICAgICAgICAgICAgICAgICBpZiAodHIucXVlcnlTZWxlY3RvcignLnRl
YW0taG0tbW9uYXQtY2VsbCcpKSByZXR1cm47CiAgICAgICAgICAgICAgICAgICAgdmFyIGMgPSB0
ci5jZWxsc1tjb2xdOwogICAgICAgICAgICAgICAgICAgIGlmIChjKSBjLmNsYXNzTGlzdC5hZGQo
J2htLWNyb3NzJyk7CiAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgfQogICAgICAgICAg
ICB0YmwuYWRkRXZlbnRMaXN0ZW5lcignbW91c2VvdmVyJywgZnVuY3Rpb24oZSkgewogICAgICAg
ICAgICAgICAgdmFyIGNlbGwgPSBlLnRhcmdldC5jbG9zZXN0KCd0ZCwgdGgnKTsKICAgICAgICAg
ICAgICAgIGlmICghY2VsbCB8fCBjZWxsID09PSBha3R1ZWxsZVplbGxlKSByZXR1cm47CiAgICAg
ICAgICAgICAgICBpZiAoY2VsbC5jbGFzc0xpc3QuY29udGFpbnMoJ3RlYW0taG0tbW9uYXQtY2Vs
bCcpKSByZXR1cm47CiAgICAgICAgICAgICAgICBjbGVhckNyb3NzKCk7CiAgICAgICAgICAgICAg
ICBha3R1ZWxsZVplbGxlID0gY2VsbDsKICAgICAgICAgICAgICAgIGFwcGx5Q3Jvc3MoY2VsbCk7
CiAgICAgICAgICAgIH0pOwogICAgICAgICAgICB0YmwuYWRkRXZlbnRMaXN0ZW5lcignbW91c2Vs
ZWF2ZScsIGNsZWFyQ3Jvc3MpOwogICAgICAgIH0KCiAgICAgICAgLy8gS2xpY2stSGFuZGxlcjog
RXhwYW5kL0NvbGxhcHNlIHBybyBUZWFtLiBSZWFnaWVydCBhdWYgS2xpY2tzCiAgICAgICAgLy8g
dWViZXJhbGwgaW4gZGVyIFRlYW0tWmVpbGUgKE5hbWUsIFRhZ2VzemVsbGVuKS4gRGV0YWlsLVBl
cnNvbmVuLQogICAgICAgIC8vIFplaWxlbiBoYWJlbiBrZWluIGRhdGEtdGVhbS1pZCwgc2luZCBk
YWR1cmNoIGF1dG9tYXRpc2NoIGF1c2dlbm9tbWVuLgogICAgICAgIC8vIFNvbmRlcnRlcm1pbi1N
YXJrZXItWmVsbGVuIHN0b3BwZW4gZGVuIEJ1YmJsZSAocy4gbmFlY2hzdGVyIEJsb2NrKS4KICAg
ICAgICAvLyBTdGF0dCBkaWUgZ2FuemUgVGFiZWxsZSBuZXUgenUgcmVuZGVybiwgcGF0Y2hlbiB3
aXIgZGllIERldGFpbC0KICAgICAgICAvLyBaZWlsZW4gZGlyZWt0IGFtIERPTSAoaW5zZXJ0QWRq
YWNlbnRIVE1MIC8gcmVtb3ZlKS4KICAgICAgICBlbC5xdWVyeVNlbGVjdG9yQWxsKCcudGVhbS1o
bS1yb3dbZGF0YS10ZWFtLWlkXScpLmZvckVhY2goZnVuY3Rpb24ocm93KSB7CiAgICAgICAgICAg
IHJvdy5zdHlsZS5jdXJzb3IgPSAncG9pbnRlcic7CiAgICAgICAgICAgIHJvdy5hZGRFdmVudExp
c3RlbmVyKCdjbGljaycsIGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgICAgdmFyIHRpZCA9IHJv
dy5nZXRBdHRyaWJ1dGUoJ2RhdGEtdGVhbS1pZCcpOwogICAgICAgICAgICAgICAgdmFyIG51biA9
ICFfc3RhdFRlYW1FeHBhbmRlZFt0aWRdOwogICAgICAgICAgICAgICAgX3N0YXRUZWFtRXhwYW5k
ZWRbdGlkXSA9IG51bjsKICAgICAgICAgICAgICAgIHZhciB0b2dnbGUgPSByb3cucXVlcnlTZWxl
Y3RvcignLnRlYW0taG0tdG9nZ2xlJyk7CiAgICAgICAgICAgICAgICBpZiAodG9nZ2xlKSB0b2dn
bGUudGV4dENvbnRlbnQgPSBudW4gPyAn4pa+JyA6ICfilrgnOwogICAgICAgICAgICAgICAgaWYg
KG51bikgewogICAgICAgICAgICAgICAgICAgIHZhciBhbGxlVGVhbXMgPSBfdGVhbURhdGVuR2Vm
aWx0ZXJ0KCk7CiAgICAgICAgICAgICAgICAgICAgdmFyIHRlYW0gPSBudWxsOwogICAgICAgICAg
ICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgYWxsZVRlYW1zLmxlbmd0aDsgaSsrKSB7CiAg
ICAgICAgICAgICAgICAgICAgICAgIGlmIChTdHJpbmcoYWxsZVRlYW1zW2ldLmlkKSA9PT0gU3Ry
aW5nKHRpZCkpIHsgdGVhbSA9IGFsbGVUZWFtc1tpXTsgYnJlYWs7IH0KICAgICAgICAgICAgICAg
ICAgICB9CiAgICAgICAgICAgICAgICAgICAgaWYgKHRlYW0gJiYgX2hlYXRtYXBLb250ZXh0KSB7
CiAgICAgICAgICAgICAgICAgICAgICAgIHJvdy5pbnNlcnRBZGphY2VudEhUTUwoJ2FmdGVyZW5k
JywgX2J1aWxkVGVhbURldGFpbFJvd3ModGVhbSwgX2hlYXRtYXBLb250ZXh0KSk7CiAgICAgICAg
ICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAg
ICB2YXIgbnggPSByb3cubmV4dEVsZW1lbnRTaWJsaW5nOwogICAgICAgICAgICAgICAgICAgIHdo
aWxlIChueCAmJiBueC5nZXRBdHRyaWJ1dGUoJ2RhdGEtdGVhbS1kZXRhaWwtZm9yJykgPT09IHRp
ZCkgewogICAgICAgICAgICAgICAgICAgICAgICB2YXIgd2VnID0gbng7CiAgICAgICAgICAgICAg
ICAgICAgICAgIG54ID0gbngubmV4dEVsZW1lbnRTaWJsaW5nOwogICAgICAgICAgICAgICAgICAg
ICAgICB3ZWcucmVtb3ZlKCk7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAg
fQogICAgICAgICAgICB9KTsKICAgICAgICB9KTsKICAgICAgICBfaGVhdG1hcFNvbmRlcnRlcm1p
bmVLbGlja2JhcihlbCk7CiAgICB9CgogICAgLy8gRWlnZW5zdGFlbmRpZ2UgSGVhdG1hcC1SZW5k
ZXItRnVua3Rpb24gZnVlciBkaWUgTmViZW53YWNoZW4gKEJPL0FSL0ZSKS4KICAgIC8vIFBybyBU
YWcgcHJ1ZWZlbiB3aXIgZnVlciBGL1MvTiwgb2IgZWluIFRlYW0tTWl0Z2xpZWQgaW4gZGVyIGFr
dGl2ZW4KICAgIC8vIEZ1ZWhydW5nIChUb3AtMiBuYWNoIEZ1bmt0aW9ucy1SYW5nK1Bvc2l0aW9u
KSBzdGVodCDigJQgZGFzIHNpbmQgZGllCiAgICAvLyBzY2hyYWZmaWVydGVuIDEuLzIuIFZJMy1E
R0wgYXVzIGRlciBQbGFudW5nLiBIYXVwdHdhY2hlbiBLYW1lbi9IYWdlbgogICAgLy8gc3RlbGxl
biBkYXMgbm9ybWFsZXJ3ZWlzZTsgZ3J1biBhdWYgZWluZXIgTmViZW53YWNoZSBtYXJraWVydCBl
aW5lCiAgICAvLyBTb25kZXItS29uc3RlbGxhdGlvbiAoTHVlY2tlIGF1ZiBkZXIgSGF1cHR3YWNo
ZSwgQ3Jvc3MtV2FjaGVuLUVpbnNhdHopLgogICAgZnVuY3Rpb24gX3JlbmRlck5lYmVud2FjaGVu
SGVhdG1hcChlbCwgZGF0YSwgdGFnZSwgdGFnTWV0YSkgewogICAgICAgIHZhciBuZWJlblN0YW5k
b3J0ZSA9IFsnQk8nLCAnQVInLCAnRlInXTsKICAgICAgICB2YXIgbmViZW5UZWFtcyA9IGRhdGEu
ZmlsdGVyKGZ1bmN0aW9uKHQpIHsKICAgICAgICAgICAgcmV0dXJuIG5lYmVuU3RhbmRvcnRlLmlu
ZGV4T2YodC5zdGFuZG9ydCkgPj0gMDsKICAgICAgICB9KTsKICAgICAgICBpZiAoIW5lYmVuVGVh
bXMubGVuZ3RoKSB7CiAgICAgICAgICAgIGVsLmlubmVySFRNTCA9ICc8cCBjbGFzcz0idGV4dC1t
dXRlZCIgc3R5bGU9InBhZGRpbmc6MjRweDt0ZXh0LWFsaWduOmNlbnRlciI+S2VpbmUgTmViZW53
YWNoZW4tTWlrcm90ZWFtcyBpbiBkZXIgYWt0dWVsbGVuIEF1c3dhaGwuPC9wPic7CiAgICAgICAg
ICAgIHJldHVybjsKICAgICAgICB9CiAgICAgICAgdmFyIGtvcGYgPSBfaGVhdG1hcEtvcGZUZWls
KHRhZ2UsIHRhZ01ldGEpOwogICAgICAgIHZhciBzcGFsdGVuS2xhc3NlbiA9IGtvcGYuc3BhbHRl
bktsYXNzZW47CiAgICAgICAgdmFyIG1ha2VTcGFjZXIgICAgID0ga29wZi5tYWtlU3BhY2VyOwoK
ICAgICAgICAvLyBGdWVocnVuZ3MtTWFwIHBybyBUYWcgYXVmYmF1ZW4gKENhY2hlIOKAlCB2ZXJt
ZWlkZXQgTyhUYWdlKlRlYW1zKjQ1KSkuCiAgICAgICAgdmFyIGZ1ZWhydW5nUHJvVGFnID0ge307
CiAgICAgICAgdGFnZS5mb3JFYWNoKGZ1bmN0aW9uKGQpIHsKICAgICAgICAgICAgZnVlaHJ1bmdQ
cm9UYWdbZF0gPSB7CiAgICAgICAgICAgICAgICBGOiBha3RpdmVGdWVocnVuZyhkLCAnRicpLm1h
cChmdW5jdGlvbihwKSB7IHJldHVybiBwLmlkOyB9KSwKICAgICAgICAgICAgICAgIFM6IGFrdGl2
ZUZ1ZWhydW5nKGQsICdTJykubWFwKGZ1bmN0aW9uKHApIHsgcmV0dXJuIHAuaWQ7IH0pLAogICAg
ICAgICAgICAgICAgTjogYWt0aXZlRnVlaHJ1bmcoZCwgJ04nKS5tYXAoZnVuY3Rpb24ocCkgeyBy
ZXR1cm4gcC5pZDsgfSkKICAgICAgICAgICAgfTsKICAgICAgICB9KTsKICAgICAgICB2YXIgcm93
c0h0bWwgPSBuZWJlblRlYW1zLm1hcChmdW5jdGlvbih0LCBpZHgpIHsKICAgICAgICAgICAgdmFy
IHRlYW1JZHMgPSB7fTsKICAgICAgICAgICAgKHQucGVyc29uSWRzIHx8IFtdKS5mb3JFYWNoKGZ1
bmN0aW9uKHBpZCkgeyB0ZWFtSWRzW3BpZF0gPSB0cnVlOyB9KTsKICAgICAgICAgICAgdmFyIGNl
bGxzID0gdGFnZS5tYXAoZnVuY3Rpb24oZCkgewogICAgICAgICAgICAgICAgdmFyIGNscyA9IFsn
dGVhbS1obS1jZWxsJywgJ3RlYW0taG0tbnctY2VsbCddLmNvbmNhdChzcGFsdGVuS2xhc3Nlbihk
KSk7CiAgICAgICAgICAgICAgICB2YXIgZnVlaCA9IGZ1ZWhydW5nUHJvVGFnW2RdOwogICAgICAg
ICAgICAgICAgdmFyIGFrdGl2ID0gWydGJywnUycsJ04nXS5zb21lKGZ1bmN0aW9uKHNjaCkgewog
ICAgICAgICAgICAgICAgICAgIHJldHVybiAoZnVlaFtzY2hdIHx8IFtdKS5zb21lKGZ1bmN0aW9u
KHBpZCkgeyByZXR1cm4gdGVhbUlkc1twaWRdOyB9KTsKICAgICAgICAgICAgICAgIH0pOwogICAg
ICAgICAgICAgICAgaWYgKGFrdGl2KSBjbHMucHVzaCgndGVhbS1nJyk7CiAgICAgICAgICAgICAg
ICByZXR1cm4gJzx0ZCBjbGFzcz0iJyArIGNscy5qb2luKCcgJykgKyAnIj48L3RkPic7CiAgICAg
ICAgICAgIH0pLmpvaW4oJycpOwogICAgICAgICAgICB2YXIgc3BhY2VyID0gJyc7CiAgICAgICAg
ICAgIGlmIChpZHggPiAwICYmIG5lYmVuVGVhbXNbaWR4IC0gMV0uc3RhbmRvcnQgIT09IHQuc3Rh
bmRvcnQpIHsKICAgICAgICAgICAgICAgIHNwYWNlciA9IG1ha2VTcGFjZXIoJ3RlYW0taG0tc3Bh
Y2VyLXN0YW5kb3J0Jyk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgcmV0dXJuIHNwYWNlciAr
CiAgICAgICAgICAgICAgICAnPHRyIGNsYXNzPSJ0ZWFtLWhtLXJvdyB0ZWFtLWhtLW53LXJvdyI+
JyArCiAgICAgICAgICAgICAgICAnPHRoIGNsYXNzPSJ0ZWFtLWhtLW5hbWUiPicgKyBlc2NhcGVI
VE1MKHQubmFtZSkgKyAnPC90aD4nICsKICAgICAgICAgICAgICAgIGNlbGxzICsKICAgICAgICAg
ICAgICAgICc8L3RyPic7CiAgICAgICAgfSkuam9pbignJyk7CgogICAgICAgIGVsLmlubmVySFRN
TCA9ICc8ZGl2IGNsYXNzPSJ0YWJlbGxlLXNjcm9sbCB0ZWFtLWhtLXNjcm9sbCI+JyArCiAgICAg
ICAgICAgICc8dGFibGUgY2xhc3M9InRlYW0taG0tdGFiZWxsZSI+JyArCiAgICAgICAgICAgICAg
ICAnPHRoZWFkPicgKwogICAgICAgICAgICAgICAgICAgICc8dHI+PHRoIGNsYXNzPSJ0ZWFtLWht
LW5hbWUiPjwvdGg+JyArIGtvcGYubW9uYXRIZWFkICsgJzwvdHI+JyArCiAgICAgICAgICAgICAg
ICAgICAgJzx0cj48dGggY2xhc3M9InRlYW0taG0tbmFtZSI+PC90aD4nICsga29wZi50YWdIZWFk
ICAgKyAnPC90cj4nICsKICAgICAgICAgICAgICAgICAgICAnPHRyPjx0aCBjbGFzcz0idGVhbS1o
bS1uYW1lIj48L3RoPicgKyBrb3BmLnd0SGVhZCAgICArICc8L3RyPicgKwogICAgICAgICAgICAg
ICAgICAgIGtvcGYuZmVpZXJ0YWdSb3cgKyBrb3BmLmZlcmllblJvdyArIGtvcGYuc29uZGVydGVy
bVJvdyArCiAgICAgICAgICAgICAgICAnPC90aGVhZD4nICsKICAgICAgICAgICAgICAgICc8dGJv
ZHk+JyArIHJvd3NIdG1sICsgJzwvdGJvZHk+JyArCiAgICAgICAgICAgICc8L3RhYmxlPjwvZGl2
Pic7CgogICAgICAgIF9oZWF0bWFwU3RpY2t5VG9wQW53ZW5kZW4oZWwpOwogICAgICAgIF9oZWF0
bWFwU29uZGVydGVybWluZUtsaWNrYmFyKGVsKTsKICAgIH0KCiAgICBmdW5jdGlvbiBfemVpZ2VT
b25kZXJ0ZXJtaW5lRGV0YWlsKGlkc0NzdikgewogICAgICAgIHZhciBpZHMgPSAoaWRzQ3N2IHx8
ICcnKS5zcGxpdCgnLCcpLmZpbHRlcihCb29sZWFuKTsKICAgICAgICB2YXIgYWxsZSA9IChaLmFk
bWluICYmIFouYWRtaW4uc29uZGVydGVybWluZSkgfHwgW107CiAgICAgICAgdmFyIHRyZWZmZXIg
PSBhbGxlLmZpbHRlcihmdW5jdGlvbihzKSB7IHJldHVybiBpZHMuaW5kZXhPZihzLmlkKSA+PSAw
OyB9KTsKICAgICAgICBpZiAoIXRyZWZmZXIubGVuZ3RoKSByZXR1cm47CiAgICAgICAgdmFyIGh0
bWwgPSAnPGRpdiBjbGFzcz0ic29uZGVydGVybWluLWRldGFpbCI+JyArCiAgICAgICAgICAgIHRy
ZWZmZXIubWFwKGZ1bmN0aW9uKHMpIHsKICAgICAgICAgICAgICAgIHZhciBkID0gcy5kYXR1bSAr
IChzLmRhdHVtQmlzICYmIHMuZGF0dW1CaXMgIT09IHMuZGF0dW0gPyAnIOKAkyAnICsgcy5kYXR1
bUJpcyA6ICcnKTsKICAgICAgICAgICAgICAgIHZhciB0aXRlbCA9IHMudGl0ZWwgfHwgJyc7CiAg
ICAgICAgICAgICAgICB2YXIgdHh0ID0gcy50ZXh0IHx8ICcnOwogICAgICAgICAgICAgICAgdmFy
IHR5cCA9IHMudHlwIHx8ICdoaW53ZWlzJzsKICAgICAgICAgICAgICAgIHJldHVybiAnPGRpdiBj
bGFzcz0ic29uZGVydGVybWluLWVpbnRyYWcgc29uZGVydGVybWluLScgKyBlc2NhcGVBdHRyKHR5
cCkgKyAnIj4nICsKICAgICAgICAgICAgICAgICAgICAnPGRpdiBjbGFzcz0ic29uZGVydGVybWlu
LWtvcGYiPjxzdHJvbmc+JyArIGVzY2FwZUhUTUwoZCkgKyAnPC9zdHJvbmc+JyArICh0aXRlbCA/
ICcg4oCUICcgKyBlc2NhcGVIVE1MKHRpdGVsKSA6ICcnKSArICc8L2Rpdj4nICsKICAgICAgICAg
ICAgICAgICAgICAnPGRpdiBjbGFzcz0ic29uZGVydGVybWluLXRleHQiPicgKyBlc2NhcGVIVE1M
KHR4dCkgKyAnPC9kaXY+JyArCiAgICAgICAgICAgICAgICAnPC9kaXY+JzsKICAgICAgICAgICAg
fSkuam9pbignJykgKwogICAgICAgICc8L2Rpdj4nOwogICAgICAgIHZhciBmdXNzID0gJzxidXR0
b24gY2xhc3M9ImJ0biBidG4tcHJpbWFlciIgaWQ9InN0LWRldGFpbC1zY2hsaWVzc2VuIj5WZXJz
dGFuZGVuPC9idXR0b24+JzsKICAgICAgICBtb2RhbFplaWdlbignU29uZGVydGVybWluKGUpJywg
aHRtbCwgZnVzcywgbnVsbCk7CiAgICAgICAgdmFyIGJ0biA9IGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCdzdC1kZXRhaWwtc2NobGllc3NlbicpOwogICAgICAgIGlmIChidG4pIGJ0bi5hZGRFdmVu
dExpc3RlbmVyKCdjbGljaycsIG1vZGFsU2NobGllc3Nlbik7CiAgICB9CgogICAgLy8gQmFsa2Vu
ZGlhZ3JhbW06IGdlc3RhcGVsdGVyIDEwMCUtQmFsa2VuIHBybyBUZWFtIG1pdCBUYWdlcy1BbnRl
aWxlbgogICAgLy8gKHJvdCAvIG5ldXRyYWw9MSBkYSAvIGdyw7xuPTIrIC8gZ29sZD1hbGxlKS4g
UG9vbC1UZWFtcyAoMSBQZXJzb24pCiAgICAvLyB3ZXJkZW4gYXVzZ2VmaWx0ZXJ0IOKAlCBzaWUg
emVpZ2VuIGtlaW5lbiBzaW5udm9sbGVuIFRhZ2VzLUFudGVpbC4KICAgIGZ1bmN0aW9uIF9yZW5k
ZXJUZWFtQmFsa2VuKGVsLCBkYXRhKSB7CiAgICAgICAgdmFyIHNvcnRGZWxkID0gX3N0YXRUZWFt
QmFsa2VuU29ydDsKICAgICAgICB2YXIgcm93cyA9IGRhdGEuZmlsdGVyKGZ1bmN0aW9uKHQpIHsg
cmV0dXJuICFfaXN0UG9vbFRlYW0odCk7IH0pOwogICAgICAgIGZ1bmN0aW9uIHNvcnRGbihhLCBi
KSB7CiAgICAgICAgICAgIGlmIChzb3J0RmVsZCA9PT0gJ2x1ZWNrZW4nKSAgICAgIHJldHVybiAo
Yi5zdGF0LnJvdCAgIC8gYi5zdGF0LnRvdGFsKSAtIChhLnN0YXQucm90ICAgLyBhLnN0YXQudG90
YWwpOwogICAgICAgICAgICBpZiAoc29ydEZlbGQgPT09ICd2b2xsc3RhZW5kaWcnKSByZXR1cm4g
KGIuc3RhdC5nb2xkICAvIGIuc3RhdC50b3RhbCkgLSAoYS5zdGF0LmdvbGQgIC8gYS5zdGF0LnRv
dGFsKTsKICAgICAgICAgICAgaWYgKHNvcnRGZWxkID09PSAnYWJkZWNrdW5nJykgICAgcmV0dXJu
ICgoYi5zdGF0LnRvdGFsIC0gYi5zdGF0LnJvdCkgLyBiLnN0YXQudG90YWwpIC0gKChhLnN0YXQu
dG90YWwgLSBhLnN0YXQucm90KSAvIGEuc3RhdC50b3RhbCk7CiAgICAgICAgICAgIHJldHVybiAw
OyAgIC8vICdyZWloZW5mb2xnZScgPSBhZG1pbi5qc29uLU9yZGVyIGJlaWJlaGFsdGVuCiAgICAg
ICAgfQogICAgICAgIHJvd3MgPSByb3dzLnNsaWNlKCkuc29ydChzb3J0Rm4pOwoKICAgICAgICAv
LyBUcmVubmVyIEhhdXB0d2FjaGVuIDwtPiBSZXN0IG51ciBiZWkgRGVmYXVsdC1Tb3J0aWVydW5n
IHNpbm52b2xsCiAgICAgICAgdmFyIHRyZW5uZXJBbiA9IChzb3J0RmVsZCA9PT0gJ3JlaWhlbmZv
bGdlJyk7CgogICAgICAgIHZhciBodG1sID0gcm93cy5tYXAoZnVuY3Rpb24odCwgaWR4KSB7CiAg
ICAgICAgICAgIHZhciBzID0gdC5zdGF0OwogICAgICAgICAgICB2YXIgdG90YWwgPSBzLnRvdGFs
IHx8IDE7CiAgICAgICAgICAgIGZ1bmN0aW9uIHBjdChuKSB7IHJldHVybiAobiAvIHRvdGFsKSAq
IDEwMDsgfQogICAgICAgICAgICBmdW5jdGlvbiBzZWcoa2xhc3NlLCB3ZXJ0LCBsYWJlbCkgewog
ICAgICAgICAgICAgICAgaWYgKCF3ZXJ0KSByZXR1cm4gJyc7CiAgICAgICAgICAgICAgICB2YXIg
YiA9IHBjdCh3ZXJ0KTsKICAgICAgICAgICAgICAgIC8vIFphaGwgbnVyIGVpbnJlbmRlcm4sIHdl
bm4gZGFzIFNlZ21lbnQgYXVjaCB3aXJrbGljaCBicmVpdAogICAgICAgICAgICAgICAgLy8gZ2Vu
dWcgaXN0LiBtaW4td2lkdGg6NHB4IGluIGRlciBDU1Mgc29yZ3QgZnVlciBlaW5lbgogICAgICAg
ICAgICAgICAgLy8gZXJrZW5uYmFyZW4gRmFyYmJhbGtlbiBiaXMgaGluYWIgenUgfjAuNyAlOyBk
aWUgWmFobAogICAgICAgICAgICAgICAgLy8gYnJhdWNodCBhYmVyIHBybyBaaWZmZXIgfjYgcHgg
KGJlaSA5IHB4IEZvbnQpLCBhbHNvIGplCiAgICAgICAgICAgICAgICAvLyBuYWNoIFppZmZlci1B
bnphaGwgZWluIGFuZGVyZXIgTWluZGVzdC1Qcm96ZW50d2VydC4KICAgICAgICAgICAgICAgIC8v
IEFubmFobWUgdWViZXIgZGllIEJhci1XcmFwLUJyZWl0ZTogfjQwMCBweC4gMSBweCDiiYggMC4y
NSAlLgogICAgICAgICAgICAgICAgLy8gICAxIFppZmZlciAoNiBweCk6ICA+PSAxLjUgJQogICAg
ICAgICAgICAgICAgLy8gICAyIFppZmZlcm4gKDEyIHB4KTogPj0gMyAlCiAgICAgICAgICAgICAg
ICAvLyAgIDMgWmlmZmVybiAoMTggcHgpOiA+PSA1ICUKICAgICAgICAgICAgICAgIC8vIERpZXNl
IFNjaHdlbGxlbiBzY2huZWlkZW4gZGVuIFRvb2x0aXAgbmljaHQg4oCUIGRlciBIb3ZlcgogICAg
ICAgICAgICAgICAgLy8gemVpZ3QgZGVuIGdlbmF1ZW4gV2VydCBhdWNoIGJlaSB3aW56aWdlbiBT
ZWdtZW50ZW4uCiAgICAgICAgICAgICAgICB2YXIgemlmZmVybiA9IFN0cmluZyh3ZXJ0KS5sZW5n
dGg7CiAgICAgICAgICAgICAgICB2YXIgbWluUGN0ID0gemlmZmVybiA9PT0gMSA/IDEuNSA6ICh6
aWZmZXJuID09PSAyID8gMyA6IDUpOwogICAgICAgICAgICAgICAgcmV0dXJuICc8ZGl2IGNsYXNz
PSJ0ZWFtLWJhbGtlbi1zZWcgJyArIGtsYXNzZSArICciIHN0eWxlPSJ3aWR0aDonICsgYiArICcl
IiB0aXRsZT0iJyArIGVzY2FwZUF0dHIobGFiZWwgKyAnOiAnICsgd2VydCArICcgVGFnZSAoJyAr
IE1hdGgucm91bmQoYikgKyAnICUpJykgKyAnIj4nICsgKGIgPj0gbWluUGN0ID8gd2VydCA6ICcn
KSArICc8L2Rpdj4nOwogICAgICAgICAgICB9CiAgICAgICAgICAgIHZhciBhYmRlY2t1bmcgPSB0
b3RhbCA/IE1hdGgucm91bmQoKCh0b3RhbCAtIHMucm90KSAvIHRvdGFsKSAqIDEwMCkgOiAwOwog
ICAgICAgICAgICB2YXIgc3RhbmRvcnRXZWNoc2VsID0gdHJlbm5lckFuICYmIGlkeCA+IDAgJiYg
cm93c1tpZHggLSAxXS5zdGFuZG9ydCAhPT0gdC5zdGFuZG9ydDsKICAgICAgICAgICAgdmFyIGhh
dXB0VHJlbm5lciAgICA9IHRyZW5uZXJBbiAmJiBpZHggPiAwICYmIHJvd3NbaWR4IC0gMV0uc3Rh
bmRvcnQgPT09ICdIQScgJiYgdC5zdGFuZG9ydCA9PT0gJ0JPJzsKICAgICAgICAgICAgdmFyIHRy
ZW5uZXJDbHMgPSBoYXVwdFRyZW5uZXIgICA/ICcgdGVhbS1iYWxrZW4tdHJlbm5lci1oYXVwdCcK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBzdGFuZG9ydFdlY2hzZWwgPyAnIHRlYW0tYmFs
a2VuLXRyZW5uZXItc3RhbmRvcnQnCiAgICAgICAgICAgICAgICAgICAgICAgICAgIDogJyc7CiAg
ICAgICAgICAgIHJldHVybiAnPGRpdiBjbGFzcz0idGVhbS1iYWxrZW4temVpbGUnICsgdHJlbm5l
ckNscyArICciPicgKwogICAgICAgICAgICAgICAgJzxkaXYgY2xhc3M9InRlYW0tYmFsa2VuLW5h
bWUiPicgKyBlc2NhcGVIVE1MKHQubmFtZSkgKyAnPC9kaXY+JyArCiAgICAgICAgICAgICAgICAn
PGRpdiBjbGFzcz0idGVhbS1iYWxrZW4tYmFyLXdyYXAiPicgKwogICAgICAgICAgICAgICAgICAg
IHNlZygndGVhbS1yJywgICAgcy5yb3QsICAgICAnTMO8Y2tlIChhbGxlIHdvbGx0ZW4gZnJlaSkn
KSArCiAgICAgICAgICAgICAgICAgICAgc2VnKCd0ZWFtLWdyYXUnLCBzLmdyYXUsICAgICdsZWdp
dGltIGFid2VzZW5kIChVcmxhdWIvS3JhbmsvTGVocmdhbmcpJykgKwogICAgICAgICAgICAgICAg
ICAgIHNlZygndGVhbS1uJywgICAgcy5uZXV0cmFsLCAnMSBkYScpICsKICAgICAgICAgICAgICAg
ICAgICBzZWcoJ3RlYW0tZycsICAgIHMuZ3J1ZW4sICAgJzIrIGRhJykgKwogICAgICAgICAgICAg
ICAgICAgIHNlZygndGVhbS1nb2xkJywgcy5nb2xkLCAgICAnYWxsZSBkYScpICsKICAgICAgICAg
ICAgICAgICc8L2Rpdj4nICsKICAgICAgICAgICAgICAgICc8ZGl2IGNsYXNzPSJ0ZWFtLWJhbGtl
bi10b3RhbCIgdGl0bGU9IkFiZGVja3VuZyBtaW5kZXN0ZW5zIDEgUGVyc29uIj4nICsgYWJkZWNr
dW5nICsgJyAlPC9kaXY+JyArCiAgICAgICAgICAgICAgICAnPC9kaXY+JzsKICAgICAgICB9KS5q
b2luKCcnKTsKCiAgICAgICAgZWwuaW5uZXJIVE1MID0gJzxkaXYgY2xhc3M9InRlYW0tYmFsa2Vu
LXdyYXAiPicgKyBodG1sICsgJzwvZGl2Pic7CiAgICB9CgogICAgZnVuY3Rpb24gX3JlbmRlclRl
YW1CYWxrZW5Tb3J0SG9va3MoKSB7CiAgICAgICAgZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgn
LnN0YXRzLXRlYW0tc29ydC1ncnVwcGUgLnN0YXRzLWthdC1idG4nKS5mb3JFYWNoKGZ1bmN0aW9u
KGIpIHsKICAgICAgICAgICAgaWYgKGIuZGF0YXNldC5mZXJ0aWcpIHJldHVybjsKICAgICAgICAg
ICAgYi5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIGZ1bmN0aW9uKGUpIHsKICAgICAgICAgICAg
ICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7ICAgLy8gbmljaHQgZGVuIFBhbmVsLVRvZ2dsZSBhdXNs
b2VzZW4KICAgICAgICAgICAgICAgIF9zdGF0VGVhbUJhbGtlblNvcnQgPSBiLmdldEF0dHJpYnV0
ZSgnZGF0YS10ZWFtLXNvcnQnKSB8fCAncmVpaGVuZm9sZ2UnOwogICAgICAgICAgICAgICAgZG9j
dW1lbnQucXVlcnlTZWxlY3RvckFsbCgnLnN0YXRzLXRlYW0tc29ydC1ncnVwcGUgLnN0YXRzLWth
dC1idG4nKS5mb3JFYWNoKGZ1bmN0aW9uKHgpIHsgeC5jbGFzc0xpc3QucmVtb3ZlKCdha3Rpdicp
OyB9KTsKICAgICAgICAgICAgICAgIGIuY2xhc3NMaXN0LmFkZCgnYWt0aXYnKTsKICAgICAgICAg
ICAgICAgIC8vIE51ciBkaWUgQmFsa2VuIG5ldSB6ZWljaG5lbiDigJQgZGllIEhlYXRtYXAgaXN0
IHZvbiBkaWVzZXIKICAgICAgICAgICAgICAgIC8vIFNvcnRpZXJ1bmcgdW5hYmhhZW5naWcgKHNw
YXJ0IGRlbiBGdWxsLVJlcmVuZGVyIGRlciBIZWF0bWFwKS4KICAgICAgICAgICAgICAgIHZhciBi
YWxrZW5FbCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdzdGF0cy10ZWFtLWJhbGtlbicpOwog
ICAgICAgICAgICAgICAgaWYgKGJhbGtlbkVsKSBfcmVuZGVyVGVhbUJhbGtlbihiYWxrZW5FbCwg
X3RlYW1EYXRlbkdlZmlsdGVydCgpKTsKICAgICAgICAgICAgfSk7CiAgICAgICAgICAgIGIuZGF0
YXNldC5mZXJ0aWcgPSAnMSc7CiAgICAgICAgfSk7CiAgICAgICAgLy8gUGFuZWwtVG9nZ2xlIHVl
YmVybmltbXQgcGFuZWxUb2dnbGVIb29rcygpIGdlbmVyaXNjaCDigJQgVGFnZXMtCiAgICAgICAg
Ly8gQW50ZWlsZSBwcm8gVGVhbSBpc3Qgc2VpdCAyMDI2LTA1LTI1IGVpbiBlaWdlbmVzIFRvcC1M
ZXZlbC1QYW5lbC4KICAgIH0KCiAgICAvLyBNb2R1bC1TdGF0ZSBEZXRhaWwtVGFiZWxsZW4tU29y
dGllcnVuZy4gQmVpbSBLbGljayBhdWYgZWluZW4gSGVhZGVyCiAgICAvLyB3ZWNoc2VsdCBkYXMg
U29ydGllci1GZWxkOyBnbGVpY2hlciBLbGljayB3aWVkZXIgZHJlaHQgZGllIFJpY2h0dW5nIHVt
LgogICAgdmFyIF9zdGF0RGV0YWlsU29ydCA9IHsgZmVsZDogJ25hbWUnLCBhc2M6IHRydWUgfTsK
CiAgICBmdW5jdGlvbiBkZXRhaWxUYWJlbGxlUmVuZGVybihzdGF0cykgewogICAgICAgIC8vIFN0
YW5kb3J0L0dydXBwZW4tTG9va3VwIHBlciBwZXJzb25JZCAoU2VydmVyIGxpZWZlcnQga2VpbiBv
ZS1GZWxkKS4KICAgICAgICB2YXIgcGVyc29uTWFwID0ge307CiAgICAgICAgKFoucGxhbnVuZyAm
JiBaLnBsYW51bmcucGVyc29uZW4gfHwgW10pLmZvckVhY2goZnVuY3Rpb24ocCkgeyBwZXJzb25N
YXBbcC5pZF0gPSBwOyB9KTsKICAgICAgICBmdW5jdGlvbiBvZU9mKHMpICAgICAgIHsgcmV0dXJu
IChwZXJzb25NYXBbcy5wZXJzb25JZF0gfHwge30pLm9lIHx8ICcnOyB9CiAgICAgICAgZnVuY3Rp
b24gb2VHcnVwcGVPZihzKSB7IHJldHVybiBvZU9mKHMpICsgKHMuZ3J1cHBlID8gJy0nICsgcy5n
cnVwcGUgOiAnJyk7IH0KICAgICAgICBmdW5jdGlvbiBzb3J0VmFsKHMsIGZlbGQpIHsKICAgICAg
ICAgICAgaWYgKGZlbGQgPT09ICduYW1lJykgICAgICByZXR1cm4gX3N0YXRBbnplaWdlTmFtZShz
KS50b0xvd2VyQ2FzZSgpOwogICAgICAgICAgICBpZiAoZmVsZCA9PT0gJ29lJykgICAgICAgIHJl
dHVybiBvZU9mKHMpLnRvTG93ZXJDYXNlKCk7CiAgICAgICAgICAgIGlmIChmZWxkID09PSAnb2VH
cnVwcGUnKSAgcmV0dXJuIG9lR3J1cHBlT2YocykudG9Mb3dlckNhc2UoKTsKICAgICAgICAgICAg
aWYgKGZlbGQgPT09ICdncnVwcGUnKSAgICByZXR1cm4gKHMuZ3J1cHBlIHx8ICcnKS50b0xvd2Vy
Q2FzZSgpOwogICAgICAgICAgICAvLyBudW1lcmlzY2hlIEZlbGRlciBkaXJla3QgYXVzIGRlbSBT
dGF0cy1PYmpla3QKICAgICAgICAgICAgcmV0dXJuIHNbZmVsZF0gfHwgMDsKICAgICAgICB9Cgog
ICAgICAgIHZhciBmZWxkID0gX3N0YXREZXRhaWxTb3J0LmZlbGQ7CiAgICAgICAgdmFyIGFzYyAg
PSBfc3RhdERldGFpbFNvcnQuYXNjOwogICAgICAgIHZhciBzb3J0aWVydCA9IHN0YXRzLnNsaWNl
KCkuc29ydChmdW5jdGlvbihhLCBiKSB7CiAgICAgICAgICAgIHZhciB2YSA9IHNvcnRWYWwoYSwg
ZmVsZCksIHZiID0gc29ydFZhbChiLCBmZWxkKTsKICAgICAgICAgICAgaWYgKHZhIDwgdmIpIHJl
dHVybiBhc2MgPyAtMSA6IDE7CiAgICAgICAgICAgIGlmICh2YSA+IHZiKSByZXR1cm4gYXNjID8g
IDEgOiAtMTsKICAgICAgICAgICAgLy8gVGllYnJlYWtlciBpbW1lciBOYW1lIChsZXNlZmx1c3Mp
LgogICAgICAgICAgICB2YXIgbmEgPSBfc3RhdEFuemVpZ2VOYW1lKGEpLnRvTG93ZXJDYXNlKCks
IG5iID0gX3N0YXRBbnplaWdlTmFtZShiKS50b0xvd2VyQ2FzZSgpOwogICAgICAgICAgICByZXR1
cm4gbmEgPCBuYiA/IC0xIDogbmEgPiBuYiA/IDEgOiAwOwogICAgICAgIH0pOwoKICAgICAgICB2
YXIgaHRtbCA9ICcnOwogICAgICAgIHNvcnRpZXJ0LmZvckVhY2goZnVuY3Rpb24ocykgewogICAg
ICAgICAgICBodG1sICs9ICc8dHI+JyArCiAgICAgICAgICAgICAgICAnPHRkPjxzdHJvbmc+JyAr
IGVzY2FwZUhUTUwoX3N0YXRBbnplaWdlTmFtZShzKSkgKyAnPC9zdHJvbmc+PC90ZD4nICsKICAg
ICAgICAgICAgICAgICc8dGQ+JyArIGVzY2FwZUhUTUwob2VPZihzKSkgKyAnPC90ZD4nICsKICAg
ICAgICAgICAgICAgICc8dGQ+JyArIGVzY2FwZUhUTUwob2VHcnVwcGVPZihzKSkgKyAnPC90ZD4n
ICsKICAgICAgICAgICAgICAgICc8dGQ+JyArIGVzY2FwZUhUTUwocy5ncnVwcGUpICsgJzwvdGQ+
JyArCiAgICAgICAgICAgICAgICAnPHRkIGNsYXNzPSJ6YWhsIj4nICsgcy5nZXNhbXQgKyAnPC90
ZD4nICsKICAgICAgICAgICAgICAgICc8dGQgY2xhc3M9InphaGwiIHN0eWxlPSJjb2xvcjp2YXIo
LS1mYXJiZS1mcnVlaCkiPicgKyBzLmZydWVoICsgJzwvdGQ+JyArCiAgICAgICAgICAgICAgICAn
PHRkIGNsYXNzPSJ6YWhsIiBzdHlsZT0iY29sb3I6dmFyKC0tZmFyYmUtc3BhZXQpIj4nICsgcy5z
cGFldCArICc8L3RkPicgKwogICAgICAgICAgICAgICAgJzx0ZCBjbGFzcz0iemFobCIgc3R5bGU9
ImNvbG9yOnZhcigtLWZhcmJlLW5hY2h0KSI+JyArIHMubmFjaHQgKyAnPC90ZD4nICsKICAgICAg
ICAgICAgICAgICc8dGQgY2xhc3M9InphaGwiIHN0eWxlPSJjb2xvcjp2YXIoLS1zdGF0LXNkKSI+
JyArIChzLnNvbmRlcmRpZW5zdCB8fCAwKSArICc8L3RkPicgKwogICAgICAgICAgICAgICAgJzx0
ZCBjbGFzcz0iemFobCI+JyArIChzLmRnbCB8fCAwKSArICc8L3RkPicgKwogICAgICAgICAgICAg
ICAgJzx0ZCBjbGFzcz0iemFobCI+JyArIChzLndkZiB8fCAwKSArICc8L3RkPicgKwogICAgICAg
ICAgICAgICAgJzx0ZCBjbGFzcz0iemFobCI+JyArIChzLmZicCB8fCAwKSArICc8L3RkPicgKwog
ICAgICAgICAgICAgICAgJzx0ZCBjbGFzcz0iemFobCI+JyArIHMud29jaGVuZW5kVGFnZSArICc8
L3RkPicgKwogICAgICAgICAgICAgICAgJzx0ZCBjbGFzcz0iemFobCI+JyArIHMuZmVpZXJ0YWdU
YWdlICsgJzwvdGQ+JyArCiAgICAgICAgICAgICAgICAnPHRkIGNsYXNzPSJ6YWhsIiBzdHlsZT0i
Y29sb3I6dmFyKC0tZmFyYmUtZmVobGVyKSI+JyArIHMua3JhbmsgKyAnPC90ZD4nICsKICAgICAg
ICAgICAgICAgICc8dGQgY2xhc3M9InphaGwiPicgKyBzLnVybGF1YiArICc8L3RkPicgKwogICAg
ICAgICAgICAgICAgJzx0ZCBjbGFzcz0iemFobCI+JyArIHMubGVocmdhbmcgKyAnPC90ZD4nICsK
ICAgICAgICAgICAgICAgICc8dGQgY2xhc3M9InphaGwiPicgKyAocy5hekF1c2dsZWljaCB8fCAw
KSArICc8L3RkPicgKwogICAgICAgICAgICAnPC90cj4nOwogICAgICAgIH0pOwogICAgICAgIGRv
Y3VtZW50LmdldEVsZW1lbnRCeUlkKCdzdGF0cy10Ym9keScpLmlubmVySFRNTCA9IGh0bWw7Cgog
ICAgICAgIC8vIFNvcnRpZXItUGZlaWxlICsgS2xpY2stSGFuZGxlciBpbSBIZWFkZXIgKGlkZW1w
b3RlbnQpLgogICAgICAgIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJyNzdGF0cy11ZWJlcnNp
Y2h0IHRoZWFkIHRoW2RhdGEtc29ydF0nKS5mb3JFYWNoKGZ1bmN0aW9uKHRoKSB7CiAgICAgICAg
ICAgIHZhciBmID0gdGguZ2V0QXR0cmlidXRlKCdkYXRhLXNvcnQnKTsKICAgICAgICAgICAgLy8g
UGZlaWwgYWt0dWFsaXNpZXJlbgogICAgICAgICAgICB2YXIgYWx0ZXJQZmVpbCA9IHRoLnF1ZXJ5
U2VsZWN0b3IoJy5zdGF0cy1kZXRhaWwtcGZlaWwnKTsKICAgICAgICAgICAgaWYgKGFsdGVyUGZl
aWwpIGFsdGVyUGZlaWwucmVtb3ZlKCk7CiAgICAgICAgICAgIGlmIChmID09PSBmZWxkKSB7CiAg
ICAgICAgICAgICAgICB2YXIgc3AgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzcGFuJyk7CiAg
ICAgICAgICAgICAgICBzcC5jbGFzc05hbWUgPSAnc3RhdHMtZGV0YWlsLXBmZWlsJzsKICAgICAg
ICAgICAgICAgIHNwLnRleHRDb250ZW50ID0gYXNjID8gJyDihpEnIDogJyDihpMnOwogICAgICAg
ICAgICAgICAgdGguYXBwZW5kQ2hpbGQoc3ApOwogICAgICAgICAgICB9CiAgICAgICAgICAgIC8v
IEtsaWNrLUhhbmRsZXIgbnVyIGVpbm1hbCBhbmhhZW5nZW4KICAgICAgICAgICAgaWYgKHRoLmRh
dGFzZXQuZmVydGlnKSByZXR1cm47CiAgICAgICAgICAgIHRoLnN0eWxlLmN1cnNvciA9ICdwb2lu
dGVyJzsKICAgICAgICAgICAgdGguYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCBmdW5jdGlvbigp
IHsKICAgICAgICAgICAgICAgIGlmIChfc3RhdERldGFpbFNvcnQuZmVsZCA9PT0gZikgX3N0YXRE
ZXRhaWxTb3J0LmFzYyA9ICFfc3RhdERldGFpbFNvcnQuYXNjOwogICAgICAgICAgICAgICAgZWxz
ZSB7IF9zdGF0RGV0YWlsU29ydC5mZWxkID0gZjsgX3N0YXREZXRhaWxTb3J0LmFzYyA9IHRydWU7
IH0KICAgICAgICAgICAgICAgIGlmIChaLnN0YXRpc3RpaykgZGV0YWlsVGFiZWxsZVJlbmRlcm4o
c3RhdEZpbHRlcm4oWi5zdGF0aXN0aWspKTsKICAgICAgICAgICAgfSk7CiAgICAgICAgICAgIHRo
LmRhdGFzZXQuZmVydGlnID0gJzEnOwogICAgICAgIH0pOwogICAgfQoKCmZ1bmN0aW9uIHN0YXRG
aWx0ZXJTZXR6ZW4od2VydCkgeyBzdGF0RmlsdGVyID0gd2VydDsgfQoKZXhwb3J0IHsKICAgIHN0
YXRpc3Rpa0ZpbHRlckZ1ZWxsZW4sIHN0YXRpc3Rpa0xhZGVuLCBzdGF0RmlsdGVybiwgc3RhdGlz
dGlrUmVuZGVybiwKICAgIHN0YXRGaWx0ZXJTZXR6ZW4sCiAgICBwcm9zYVJlbmRlcm4sIHByb3Nh
QW5yZWRlLCBwcm9zYVRleHQsCiAgICBzdGF0SW5mb1plaWdlbiwga3BpS2FydGUsCiAgICBiYWxr
ZW5SZW5kZXJuLAogICAgZmFpcm5lc3NSZW5kZXJuLAogICAgZGV0YWlsVGFiZWxsZVJlbmRlcm4s
CiAgICAvLyBCYXVrYXN0ZW4gKyBMYXlvdXQtUmFzdGVyIChhZG1pbl9zdGF0aXN0aWsuanMga29u
c3VtaWVydCBkaWVzZSk6CiAgICBzdGF0aXN0aWtUaWxlc0FsbGUsIEJSRUlURV9TUEFOCn07Cg==
### FILE: js/statistik_charts.js | 18511
Ly8gPT09IHN0YXRpc3Rpa19jaGFydHMuanMgPT09Ci8vIE5hdGl2ZSBTVkctRGlhZ3JhbW1lIGZ1
ZXIgZGVuIFN0YXRpc3Rpay1CdWlsZGVyIOKAlCBrZWluZSBleHRlcm5lIExpYnJhcnkuCi8vIEVp
bmdhYmUgaXN0IGRhcyBkaWFncmFtbS1uZXV0cmFsZSBFcmdlYm5pcyBhdXMgc3RhdGlzdGlrX2Vu
Z2luZS5hdXN3ZXJ0ZW4oKS4KLy8gRmFyYmVuIGxhdWZlbiB1ZWJlciBDU1MtVmFyaWFibGVuIChE
YXJrLU1vZGUgYXV0b21hdGlzY2gpLiBKZWRlIEZ1bmt0aW9uCi8vIGxpZWZlcnQgZWluZW4gSFRN
TC1TdHJpbmcgKFNWRyBiencuIGZ1ZXIgVGFiZWxsZS9LUEkgbm9ybWFsZXMgTWFya3VwKS4KLy8K
Ly8gVHlwZW4gKGFuIFBsb3RseS1TdGFuZGFyZHMgYW5nZWxlaG50KTogYmFsa2VuLCBiYWxrZW5H
ZXN0YXBlbHQsIGJhbGtlbkgsCi8vIGxpbmllLCBmbGFlY2hlLCBrcmVpcywgZG9udXQsIHNjYXR0
ZXIsIGhlYXRtYXAsIHRhYmVsbGUsIGtwaS4KCmltcG9ydCB7IGVzY2FwZUhUTUwsIGVzY2FwZUF0
dHIgfSBmcm9tICcuL2NvcmVfdXRpbC5qcyc7CgovLyBTZXJpZW4tRmFyYnBhbGV0dGUgKENTUy1W
YXJpYWJsZW4sIGRpZSBpbSBQcm9qZWt0IGRlZmluaWVydCBzaW5kKS4KdmFyIFBBTEVUVEUgPSBb
CiAgICAndmFyKC0tZmFyYmUtc3BhZXQpJywgJ3ZhcigtLWZhcmJlLWZydWVoKScsICd2YXIoLS1m
YXJiZS1uYWNodCknLCAndmFyKC0tc3RhdC1zZCknLAogICAgJ3ZhcigtLXN0YXQtc2Ftc3RhZykn
LCAndmFyKC0tc3RhdC1zb25udGFnKScsICd2YXIoLS1zdGF0LWZlaWVydGFnKScsICd2YXIoLS1z
dGF0LXVybGF1YiknLAogICAgJ3ZhcigtLXN0YXQta3VyKScsICd2YXIoLS1zdGF0LWZvcnRiaWxk
dW5nLTIpJywgJ3ZhcigtLXN0YXQtZm9ydGJpbGR1bmctMyknLCAndmFyKC0tc3RhdC1rb21wbGV0
dGUtd2UpJwpdOwpmdW5jdGlvbiBfZmFyYmUoaSkgeyByZXR1cm4gUEFMRVRURVtpICUgUEFMRVRU
RS5sZW5ndGhdOyB9Cgp2YXIgRElBR1JBTU1fVFlQRU4gPSBbCiAgICB7IGtleTogJ2JhbGtlbics
ICAgICAgICAgIGxhYmVsOiAnU8OkdWxlbiAoZ3J1cHBpZXJ0KScgfSwKICAgIHsga2V5OiAnYmFs
a2VuR2VzdGFwZWx0JywgbGFiZWw6ICdTw6R1bGVuIChnZXN0YXBlbHQpJyB9LAogICAgeyBrZXk6
ICdiYWxrZW5IJywgICAgICAgICBsYWJlbDogJ0JhbGtlbiAoaG9yaXpvbnRhbC9SYW5raW5nKScg
fSwKICAgIHsga2V5OiAnbGluaWUnLCAgICAgICAgICAgbGFiZWw6ICdMaW5pZSAoVmVybGF1Zikn
IH0sCiAgICB7IGtleTogJ2ZsYWVjaGUnLCAgICAgICAgIGxhYmVsOiAnRmzDpGNoZScgfSwKICAg
IHsga2V5OiAna3JlaXMnLCAgICAgICAgICAgbGFiZWw6ICdLcmVpcycgfSwKICAgIHsga2V5OiAn
ZG9udXQnLCAgICAgICAgICAgbGFiZWw6ICdEb251dCcgfSwKICAgIHsga2V5OiAnc2NhdHRlcics
ICAgICAgICAgbGFiZWw6ICdTdHJldWRpYWdyYW1tIChLb3JyZWxhdGlvbiknIH0sCiAgICB7IGtl
eTogJ2hlYXRtYXAnLCAgICAgICAgIGxhYmVsOiAnSGVhdG1hcCAoTWF0cml4KScgfSwKICAgIHsg
a2V5OiAndGFiZWxsZScsICAgICAgICAgbGFiZWw6ICdQaXZvdC1UYWJlbGxlJyB9LAogICAgeyBr
ZXk6ICdrcGknLCAgICAgICAgICAgICBsYWJlbDogJ0tlbm56YWhsIChLUEkpJyB9Cl07CmV4cG9y
dCBmdW5jdGlvbiBkaWFncmFtbVR5cGVuKCkgeyByZXR1cm4gRElBR1JBTU1fVFlQRU4uc2xpY2Uo
KTsgfQoKLy8gSGlsZmVuIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKZnVuY3Rpb24gX251bSh2KSB7CiAgICBpZiAodiA9PSBu
dWxsKSByZXR1cm4gJzAnOwogICAgaWYgKE1hdGgucm91bmQodikgPT09IHYpIHJldHVybiBTdHJp
bmcodik7CiAgICByZXR1cm4gKE1hdGgucm91bmQodiAqIDEwKSAvIDEwKS50b1N0cmluZygpLnJl
cGxhY2UoJy4nLCAnLCcpOwp9CmZ1bmN0aW9uIF9uaWNlTWF4KG1heCkgewogICAgaWYgKG1heCA8
PSAwKSByZXR1cm4gMTsKICAgIHZhciBwb3QgPSBNYXRoLnBvdygxMCwgTWF0aC5mbG9vcihNYXRo
LmxvZyhtYXgpIC8gTWF0aC5MTjEwKSk7CiAgICB2YXIgbiA9IG1heCAvIHBvdDsKICAgIHZhciBz
dGVwID0gbiA8PSAxID8gMSA6IG4gPD0gMiA/IDIgOiBuIDw9IDUgPyA1IDogMTA7CiAgICByZXR1
cm4gc3RlcCAqIHBvdDsKfQpmdW5jdGlvbiBfdGlja3MobWF4LCBuKSB7CiAgICB2YXIgb3V0ID0g
W107CiAgICBmb3IgKHZhciBpID0gMDsgaSA8PSBuOyBpKyspIG91dC5wdXNoKE1hdGgucm91bmQo
bWF4IC8gbiAqIGkgKiAxMDApIC8gMTAwKTsKICAgIHJldHVybiBvdXQ7Cn0KZnVuY3Rpb24gX3N2
Zyh3LCBoLCBpbm5lcikgewogICAgcmV0dXJuICc8c3ZnIGNsYXNzPSJzdGF0LXN2ZyIgdmlld0Jv
eD0iMCAwICcgKyB3ICsgJyAnICsgaCArICciIHdpZHRoPSIxMDAlIiAnICsKICAgICAgICAncHJl
c2VydmVBc3BlY3RSYXRpbz0ieE1pbllNaW4gbWVldCIgcm9sZT0iaW1nIiBzdHlsZT0ibWF4LXdp
ZHRoOjEwMCU7aGVpZ2h0OmF1dG87ZGlzcGxheTpibG9jayI+JyArIGlubmVyICsgJzwvc3ZnPic7
Cn0KZnVuY3Rpb24gX2xlZ2VuZGUoc2VyaWVuKSB7CiAgICBpZiAoIXNlcmllbiB8fCBzZXJpZW4u
bGVuZ3RoIDw9IDEpIHJldHVybiAnJzsKICAgIHJldHVybiAnPGRpdiBjbGFzcz0ic3RhdC1sZWdl
bmRlIj4nICsgc2VyaWVuLm1hcChmdW5jdGlvbihzLCBpKSB7CiAgICAgICAgcmV0dXJuICc8c3Bh
biBjbGFzcz0ic3RhdC1sZWctaXRlbSI+PHNwYW4gY2xhc3M9InN0YXQtbGVnLWJveCIgc3R5bGU9
ImJhY2tncm91bmQ6JyArIF9mYXJiZShpKSArICciPjwvc3Bhbj4nICsgZXNjYXBlSFRNTChzLm5h
bWUgfHwgJ+KAlCcpICsgJzwvc3Bhbj4nOwogICAgfSkuam9pbignJykgKyAnPC9kaXY+JzsKfQpm
dW5jdGlvbiBfbGVlcigpIHsKICAgIHJldHVybiAnPGRpdiBjbGFzcz0iYWRtaW4tZW1wdHkiPjxk
aXYgY2xhc3M9ImFkbWluLWVtcHR5LXRleHQiPktlaW5lIERhdGVuIGbDvHIgZGllc2UgQXVzd2Fo
bC48L2Rpdj48L2Rpdj4nOwp9CgovLyBEaXNwYXRjaGVyIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgpleHBvcnQgZnVuY3Rpb24gZGlh
Z3JhbW1SZW5kZXJuKHR5cCwgZXJnLCBzcGVjKSB7CiAgICBpZiAoIWVyZyB8fCBlcmcuaXN0TGVl
cikgcmV0dXJuIF9sZWVyKCk7CiAgICBzd2l0Y2ggKHR5cCkgewogICAgICAgIGNhc2UgJ2JhbGtl
bkdlc3RhcGVsdCc6IHJldHVybiBfYmFsa2VuKGVyZywgdHJ1ZSk7CiAgICAgICAgY2FzZSAnYmFs
a2VuSCc6ICAgICAgICAgcmV0dXJuIF9iYWxrZW5IKGVyZyk7CiAgICAgICAgY2FzZSAnbGluaWUn
OiAgICAgICAgICAgcmV0dXJuIF9saW5pZShlcmcsIGZhbHNlKTsKICAgICAgICBjYXNlICdmbGFl
Y2hlJzogICAgICAgICByZXR1cm4gX2xpbmllKGVyZywgdHJ1ZSk7CiAgICAgICAgY2FzZSAna3Jl
aXMnOiAgICAgICAgICAgcmV0dXJuIF9rcmVpcyhlcmcsIGZhbHNlKTsKICAgICAgICBjYXNlICdk
b251dCc6ICAgICAgICAgICByZXR1cm4gX2tyZWlzKGVyZywgdHJ1ZSk7CiAgICAgICAgY2FzZSAn
c2NhdHRlcic6ICAgICAgICAgcmV0dXJuIF9zY2F0dGVyKGVyZyk7CiAgICAgICAgY2FzZSAnaGVh
dG1hcCc6ICAgICAgICAgcmV0dXJuIF9oZWF0bWFwKGVyZyk7CiAgICAgICAgY2FzZSAndGFiZWxs
ZSc6ICAgICAgICAgcmV0dXJuIF90YWJlbGxlKGVyZyk7CiAgICAgICAgY2FzZSAna3BpJzogICAg
ICAgICAgICAgcmV0dXJuIF9rcGkoZXJnKTsKICAgICAgICBjYXNlICdiYWxrZW4nOgogICAgICAg
IGRlZmF1bHQ6ICAgICAgICAgICAgICAgIHJldHVybiBfYmFsa2VuKGVyZywgZmFsc2UpOwogICAg
fQp9CgovLyBWZXJ0aWthbGUgU2FldWxlbiAoZ3J1cHBpZXJ0IG9kZXIgZ2VzdGFwZWx0KSAtLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tCgpmdW5jdGlvbiBfYmFsa2VuKGVyZywgZ2VzdGFwZWx0KSB7
CiAgICB2YXIgVyA9IDY4MCwgSCA9IDM2MCwgbWwgPSA0OCwgbXIgPSAxNiwgbXQgPSAxNiwgbWIg
PSA3MDsKICAgIHZhciBrYXQgPSBlcmcua2F0ZWdvcmllbiwgc2VyaWVuID0gZXJnLnNlcmllbjsK
ICAgIGlmICgha2F0Lmxlbmd0aCkgcmV0dXJuIF9sZWVyKCk7CiAgICB2YXIgcHcgPSBXIC0gbWwg
LSBtciwgcGggPSBIIC0gbXQgLSBtYjsKICAgIHZhciBtYXggPSAwOwogICAga2F0LmZvckVhY2go
ZnVuY3Rpb24oXywgaSkgewogICAgICAgIGlmIChnZXN0YXBlbHQpIHsgdmFyIHMgPSAwOyBzZXJp
ZW4uZm9yRWFjaChmdW5jdGlvbihzZSl7IHMgKz0gc2Uud2VydGVbaV0gfHwgMDsgfSk7IG1heCA9
IE1hdGgubWF4KG1heCwgcyk7IH0KICAgICAgICBlbHNlIHNlcmllbi5mb3JFYWNoKGZ1bmN0aW9u
KHNlKXsgbWF4ID0gTWF0aC5tYXgobWF4LCBzZS53ZXJ0ZVtpXSB8fCAwKTsgfSk7CiAgICB9KTsK
ICAgIG1heCA9IF9uaWNlTWF4KG1heCk7CiAgICB2YXIgZ3JpZCA9ICcnOwogICAgX3RpY2tzKG1h
eCwgNCkuZm9yRWFjaChmdW5jdGlvbih0KSB7CiAgICAgICAgdmFyIHkgPSBtdCArIHBoIC0gKHQg
LyBtYXgpICogcGg7CiAgICAgICAgZ3JpZCArPSAnPGxpbmUgeDE9IicgKyBtbCArICciIHkxPSIn
ICsgeSArICciIHgyPSInICsgKFcgLSBtcikgKyAnIiB5Mj0iJyArIHkgKyAnIiBzdHJva2U9InZh
cigtLWJvcmRlci1saWdodCkiIHN0cm9rZS13aWR0aD0iMSIvPicgKwogICAgICAgICAgICAgICAg
Jzx0ZXh0IHg9IicgKyAobWwgLSA2KSArICciIHk9IicgKyAoeSArIDQpICsgJyIgdGV4dC1hbmNo
b3I9ImVuZCIgY2xhc3M9InN0YXQtYXgiPicgKyBfbnVtKHQpICsgJzwvdGV4dD4nOwogICAgfSk7
CiAgICB2YXIgZ3JwQiA9IHB3IC8ga2F0Lmxlbmd0aDsKICAgIHZhciBiYWxrZW4gPSAnJzsKICAg
IGthdC5mb3JFYWNoKGZ1bmN0aW9uKGssIGkpIHsKICAgICAgICB2YXIgeDAgPSBtbCArIGdycEIg
KiBpOwogICAgICAgIGlmIChnZXN0YXBlbHQpIHsKICAgICAgICAgICAgdmFyIGFjYyA9IDA7CiAg
ICAgICAgICAgIHNlcmllbi5mb3JFYWNoKGZ1bmN0aW9uKHNlLCBzaSkgewogICAgICAgICAgICAg
ICAgdmFyIHYgPSBzZS53ZXJ0ZVtpXSB8fCAwOyBpZiAodiA8PSAwKSByZXR1cm47CiAgICAgICAg
ICAgICAgICB2YXIgYmggPSAodiAvIG1heCkgKiBwaDsKICAgICAgICAgICAgICAgIHZhciBidyA9
IGdycEIgKiAwLjYyLCBieCA9IHgwICsgKGdycEIgLSBidykgLyAyOwogICAgICAgICAgICAgICAg
dmFyIGJ5ID0gbXQgKyBwaCAtIGFjYyAtIGJoOwogICAgICAgICAgICAgICAgYmFsa2VuICs9ICc8
cmVjdCB4PSInICsgYnggKyAnIiB5PSInICsgYnkgKyAnIiB3aWR0aD0iJyArIGJ3ICsgJyIgaGVp
Z2h0PSInICsgYmggKyAnIiBmaWxsPSInICsgX2ZhcmJlKHNpKSArICciPjx0aXRsZT4nICsgZXNj
YXBlQXR0cihzZS5uYW1lICsgJzogJyArIF9udW0odikpICsgJzwvdGl0bGU+PC9yZWN0Pic7CiAg
ICAgICAgICAgICAgICBhY2MgKz0gYmg7CiAgICAgICAgICAgIH0pOwogICAgICAgIH0gZWxzZSB7
CiAgICAgICAgICAgIHZhciBidzIgPSAoZ3JwQiAqIDAuNykgLyBzZXJpZW4ubGVuZ3RoOwogICAg
ICAgICAgICBzZXJpZW4uZm9yRWFjaChmdW5jdGlvbihzZSwgc2kpIHsKICAgICAgICAgICAgICAg
IHZhciB2ID0gc2Uud2VydGVbaV0gfHwgMDsKICAgICAgICAgICAgICAgIHZhciBiaCA9ICh2IC8g
bWF4KSAqIHBoOwogICAgICAgICAgICAgICAgdmFyIGJ4ID0geDAgKyBncnBCICogMC4xNSArIGJ3
MiAqIHNpOwogICAgICAgICAgICAgICAgYmFsa2VuICs9ICc8cmVjdCB4PSInICsgYnggKyAnIiB5
PSInICsgKG10ICsgcGggLSBiaCkgKyAnIiB3aWR0aD0iJyArIChidzIgKiAwLjkpICsgJyIgaGVp
Z2h0PSInICsgYmggKyAnIiBmaWxsPSInICsgX2ZhcmJlKHNpKSArICciPjx0aXRsZT4nICsgZXNj
YXBlQXR0cigoc2VyaWVuLmxlbmd0aCA+IDEgPyBzZS5uYW1lICsgJyDCtyAnIDogJycpICsgay5s
YWJlbCArICc6ICcgKyBfbnVtKHYpKSArICc8L3RpdGxlPjwvcmVjdD4nOwogICAgICAgICAgICB9
KTsKICAgICAgICB9CiAgICAgICAgYmFsa2VuICs9IF94TGFiZWwoeDAgKyBncnBCIC8gMiwgbXQg
KyBwaCwgay5sYWJlbCwga2F0Lmxlbmd0aCk7CiAgICB9KTsKICAgIHZhciBhY2hzZSA9ICc8bGlu
ZSB4MT0iJyArIG1sICsgJyIgeTE9IicgKyAobXQgKyBwaCkgKyAnIiB4Mj0iJyArIChXIC0gbXIp
ICsgJyIgeTI9IicgKyAobXQgKyBwaCkgKyAnIiBzdHJva2U9InZhcigtLXRleHQtbXV0ZWQpIiBz
dHJva2Utd2lkdGg9IjEiLz4nOwogICAgcmV0dXJuIF9zdmcoVywgSCwgZ3JpZCArIGJhbGtlbiAr
IGFjaHNlKSArIF9sZWdlbmRlKHNlcmllbik7Cn0KCmZ1bmN0aW9uIF94TGFiZWwoY3gsIHksIGxh
YmVsLCBhbnphaGwpIHsKICAgIHZhciB0ID0gZXNjYXBlSFRNTChsYWJlbCk7CiAgICB2YXIgcm90
ID0gYW56YWhsID4gNjsKICAgIGlmIChyb3QpIHsKICAgICAgICByZXR1cm4gJzx0ZXh0IHg9Iicg
KyBjeCArICciIHk9IicgKyAoeSArIDE0KSArICciIHRleHQtYW5jaG9yPSJlbmQiIGNsYXNzPSJz
dGF0LWF4IiB0cmFuc2Zvcm09InJvdGF0ZSgtNDAgJyArIGN4ICsgJyAnICsgKHkgKyAxNCkgKyAn
KSI+JyArIHQgKyAnPC90ZXh0Pic7CiAgICB9CiAgICByZXR1cm4gJzx0ZXh0IHg9IicgKyBjeCAr
ICciIHk9IicgKyAoeSArIDE2KSArICciIHRleHQtYW5jaG9yPSJtaWRkbGUiIGNsYXNzPSJzdGF0
LWF4Ij4nICsgdCArICc8L3RleHQ+JzsKfQoKLy8gSG9yaXpvbnRhbGUgQmFsa2VuIChSYW5raW5n
KSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgpmdW5jdGlvbiBfYmFs
a2VuSChlcmcpIHsKICAgIHZhciBrYXQgPSBlcmcua2F0ZWdvcmllbiwgc2VyaWVuID0gZXJnLnNl
cmllbjsKICAgIGlmICgha2F0Lmxlbmd0aCkgcmV0dXJuIF9sZWVyKCk7CiAgICAvLyBCZWkgbWVo
cmVyZW4gU2VyaWVuOiBTdW1tZSBqZSBLYXRlZ29yaWUgKFJhbmtpbmctQ2hhcmFrdGVyKS4KICAg
IHZhciB3ZXJ0ZSA9IGthdC5tYXAoZnVuY3Rpb24oXywgaSkgeyB2YXIgcyA9IDA7IHNlcmllbi5m
b3JFYWNoKGZ1bmN0aW9uKHNlKXsgcyArPSBzZS53ZXJ0ZVtpXSB8fCAwOyB9KTsgcmV0dXJuIHM7
IH0pOwogICAgdmFyIG1heCA9IF9uaWNlTWF4KE1hdGgubWF4LmFwcGx5KG51bGwsIHdlcnRlLmNv
bmNhdChbMF0pKSk7CiAgICB2YXIgVyA9IDY4MCwgbWwgPSAxNTAsIG1yID0gNDgsIG10ID0gOCwg
cm93SCA9IDI2LCBtYiA9IDg7CiAgICB2YXIgSCA9IG10ICsgbWIgKyBrYXQubGVuZ3RoICogcm93
SDsKICAgIHZhciBwdyA9IFcgLSBtbCAtIG1yOwogICAgdmFyIHJvd3MgPSAnJzsKICAgIGthdC5m
b3JFYWNoKGZ1bmN0aW9uKGssIGkpIHsKICAgICAgICB2YXIgeSA9IG10ICsgaSAqIHJvd0g7CiAg
ICAgICAgdmFyIHYgPSB3ZXJ0ZVtpXTsKICAgICAgICB2YXIgYncgPSBtYXggPyAodiAvIG1heCkg
KiBwdyA6IDA7CiAgICAgICAgcm93cyArPSAnPHRleHQgeD0iJyArIChtbCAtIDgpICsgJyIgeT0i
JyArICh5ICsgcm93SCAvIDIgKyA0KSArICciIHRleHQtYW5jaG9yPSJlbmQiIGNsYXNzPSJzdGF0
LWF4IHN0YXQtYXgtbmFtZSI+JyArIGVzY2FwZUhUTUwoay5sYWJlbCkgKyAnPC90ZXh0Pic7CiAg
ICAgICAgcm93cyArPSAnPHJlY3QgeD0iJyArIG1sICsgJyIgeT0iJyArICh5ICsgMykgKyAnIiB3
aWR0aD0iJyArIGJ3ICsgJyIgaGVpZ2h0PSInICsgKHJvd0ggLSA4KSArICciIHJ4PSIyIiBmaWxs
PSInICsgX2ZhcmJlKDApICsgJyI+PHRpdGxlPicgKyBlc2NhcGVBdHRyKGsubGFiZWwgKyAnOiAn
ICsgX251bSh2KSkgKyAnPC90aXRsZT48L3JlY3Q+JzsKICAgICAgICByb3dzICs9ICc8dGV4dCB4
PSInICsgKG1sICsgYncgKyA1KSArICciIHk9IicgKyAoeSArIHJvd0ggLyAyICsgNCkgKyAnIiBj
bGFzcz0ic3RhdC1heCI+JyArIF9udW0odikgKyAnPC90ZXh0Pic7CiAgICB9KTsKICAgIHJldHVy
biBfc3ZnKFcsIEgsIHJvd3MpOwp9CgovLyBMaW5pZSAvIEZsYWVjaGUgLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgpmdW5jdGlvbiBfbGluaWUo
ZXJnLCBmbGFlY2hlKSB7CiAgICB2YXIgVyA9IDY4MCwgSCA9IDM2MCwgbWwgPSA0OCwgbXIgPSAx
NiwgbXQgPSAxNiwgbWIgPSA3MDsKICAgIHZhciBrYXQgPSBlcmcua2F0ZWdvcmllbiwgc2VyaWVu
ID0gZXJnLnNlcmllbjsKICAgIGlmIChrYXQubGVuZ3RoIDwgMikgcmV0dXJuIF9iYWxrZW4oZXJn
LCBmYWxzZSk7CiAgICB2YXIgcHcgPSBXIC0gbWwgLSBtciwgcGggPSBIIC0gbXQgLSBtYjsKICAg
IHZhciBtYXggPSAwOwogICAgc2VyaWVuLmZvckVhY2goZnVuY3Rpb24oc2UpeyBzZS53ZXJ0ZS5m
b3JFYWNoKGZ1bmN0aW9uKHYpeyBtYXggPSBNYXRoLm1heChtYXgsIHYgfHwgMCk7IH0pOyB9KTsK
ICAgIG1heCA9IF9uaWNlTWF4KG1heCk7CiAgICB2YXIgZ3JpZCA9ICcnOwogICAgX3RpY2tzKG1h
eCwgNCkuZm9yRWFjaChmdW5jdGlvbih0KSB7CiAgICAgICAgdmFyIHkgPSBtdCArIHBoIC0gKHQg
LyBtYXgpICogcGg7CiAgICAgICAgZ3JpZCArPSAnPGxpbmUgeDE9IicgKyBtbCArICciIHkxPSIn
ICsgeSArICciIHgyPSInICsgKFcgLSBtcikgKyAnIiB5Mj0iJyArIHkgKyAnIiBzdHJva2U9InZh
cigtLWJvcmRlci1saWdodCkiLz4nICsKICAgICAgICAgICAgICAgICc8dGV4dCB4PSInICsgKG1s
IC0gNikgKyAnIiB5PSInICsgKHkgKyA0KSArICciIHRleHQtYW5jaG9yPSJlbmQiIGNsYXNzPSJz
dGF0LWF4Ij4nICsgX251bSh0KSArICc8L3RleHQ+JzsKICAgIH0pOwogICAgdmFyIHN0ZXAgPSBr
YXQubGVuZ3RoID4gMSA/IHB3IC8gKGthdC5sZW5ndGggLSAxKSA6IHB3OwogICAgdmFyIFggPSBm
dW5jdGlvbihpKXsgcmV0dXJuIG1sICsgc3RlcCAqIGk7IH07CiAgICB2YXIgWSA9IGZ1bmN0aW9u
KHYpeyByZXR1cm4gbXQgKyBwaCAtICh2IC8gbWF4KSAqIHBoOyB9OwogICAgdmFyIHBmYWRlID0g
Jyc7CiAgICBzZXJpZW4uZm9yRWFjaChmdW5jdGlvbihzZSwgc2kpIHsKICAgICAgICB2YXIgcHRz
ID0gc2Uud2VydGUubWFwKGZ1bmN0aW9uKHYsIGkpeyByZXR1cm4gWChpKSArICcsJyArIFkodiB8
fCAwKTsgfSk7CiAgICAgICAgaWYgKGZsYWVjaGUpIHsKICAgICAgICAgICAgcGZhZGUgKz0gJzxw
b2x5Z29uIHBvaW50cz0iJyArIChYKDApICsgJywnICsgKG10ICsgcGgpICsgJyAnKSArIHB0cy5q
b2luKCcgJykgKyAnICcgKyAoWChrYXQubGVuZ3RoIC0gMSkgKyAnLCcgKyAobXQgKyBwaCkpICsg
JyIgZmlsbD0iJyArIF9mYXJiZShzaSkgKyAnIiBvcGFjaXR5PSIwLjE4Ii8+JzsKICAgICAgICB9
CiAgICAgICAgcGZhZGUgKz0gJzxwb2x5bGluZSBwb2ludHM9IicgKyBwdHMuam9pbignICcpICsg
JyIgZmlsbD0ibm9uZSIgc3Ryb2tlPSInICsgX2ZhcmJlKHNpKSArICciIHN0cm9rZS13aWR0aD0i
Mi41Ii8+JzsKICAgICAgICBzZS53ZXJ0ZS5mb3JFYWNoKGZ1bmN0aW9uKHYsIGkpIHsKICAgICAg
ICAgICAgcGZhZGUgKz0gJzxjaXJjbGUgY3g9IicgKyBYKGkpICsgJyIgY3k9IicgKyBZKHYgfHwg
MCkgKyAnIiByPSIzIiBmaWxsPSInICsgX2ZhcmJlKHNpKSArICciPjx0aXRsZT4nICsgZXNjYXBl
QXR0cigoc2VyaWVuLmxlbmd0aCA+IDEgPyBzZS5uYW1lICsgJyDCtyAnIDogJycpICsga2F0W2ld
LmxhYmVsICsgJzogJyArIF9udW0odikpICsgJzwvdGl0bGU+PC9jaXJjbGU+JzsKICAgICAgICB9
KTsKICAgIH0pOwogICAgdmFyIGxhYmVscyA9ICcnOwogICAgdmFyIGplZGVyID0gTWF0aC5jZWls
KGthdC5sZW5ndGggLyAxMik7CiAgICBrYXQuZm9yRWFjaChmdW5jdGlvbihrLCBpKSB7IGlmIChp
ICUgamVkZXIgPT09IDApIGxhYmVscyArPSBfeExhYmVsKFgoaSksIG10ICsgcGgsIGsubGFiZWws
IGthdC5sZW5ndGgpOyB9KTsKICAgIHZhciBhY2hzZSA9ICc8bGluZSB4MT0iJyArIG1sICsgJyIg
eTE9IicgKyAobXQgKyBwaCkgKyAnIiB4Mj0iJyArIChXIC0gbXIpICsgJyIgeTI9IicgKyAobXQg
KyBwaCkgKyAnIiBzdHJva2U9InZhcigtLXRleHQtbXV0ZWQpIi8+JzsKICAgIHJldHVybiBfc3Zn
KFcsIEgsIGdyaWQgKyBwZmFkZSArIGxhYmVscyArIGFjaHNlKSArIF9sZWdlbmRlKHNlcmllbik7
Cn0KCi8vIEtyZWlzIC8gRG9udXQgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0KCmZ1bmN0aW9uIF9rcmVpcyhlcmcsIGRvbnV0KSB7CiAgICB2
YXIga2F0ID0gZXJnLmthdGVnb3JpZW47CiAgICBpZiAoIWthdC5sZW5ndGgpIHJldHVybiBfbGVl
cigpOwogICAgLy8gRXJzdGUgU2VyaWUgdmVyd2VuZGVuIChLcmVpcyBpc3QgZWluZGltZW5zaW9u
YWwpLgogICAgdmFyIHdlcnRlID0ga2F0Lm1hcChmdW5jdGlvbihfLCBpKSB7IHZhciBzID0gMDsg
ZXJnLnNlcmllbi5mb3JFYWNoKGZ1bmN0aW9uKHNlKXsgcyArPSBzZS53ZXJ0ZVtpXSB8fCAwOyB9
KTsgcmV0dXJuIHM7IH0pOwogICAgdmFyIHN1bW1lID0gd2VydGUucmVkdWNlKGZ1bmN0aW9uKGEs
IGIpeyByZXR1cm4gYSArIGI7IH0sIDApOwogICAgaWYgKHN1bW1lIDw9IDApIHJldHVybiBfbGVl
cigpOwogICAgdmFyIFcgPSA2ODAsIEggPSAzNDAsIGN4ID0gMTYwLCBjeSA9IDE3MCwgciA9IDEz
MCwgcmkgPSBkb251dCA/IDY0IDogMDsKICAgIHZhciB3aW5rZWwgPSAtTWF0aC5QSSAvIDIsIHNl
ZyA9ICcnOwogICAga2F0LmZvckVhY2goZnVuY3Rpb24oaywgaSkgewogICAgICAgIHZhciBhbnRl
aWwgPSB3ZXJ0ZVtpXSAvIHN1bW1lOwogICAgICAgIGlmIChhbnRlaWwgPD0gMCkgcmV0dXJuOwog
ICAgICAgIHZhciB3MiA9IHdpbmtlbCArIGFudGVpbCAqIDIgKiBNYXRoLlBJOwogICAgICAgIHNl
ZyArPSBfa3JlaXNTZWcoY3gsIGN5LCByLCByaSwgd2lua2VsLCB3MiwgX2ZhcmJlKGkpLCBrLmxh
YmVsICsgJzogJyArIF9udW0od2VydGVbaV0pICsgJyAoJyArIF9udW0oTWF0aC5yb3VuZChhbnRl
aWwgKiAxMDAwKSAvIDEwKSArICclKScpOwogICAgICAgIHdpbmtlbCA9IHcyOwogICAgfSk7CiAg
ICAvLyBMZWdlbmRlIHJlY2h0cyAobWl0IFdlcnRlbi9Qcm96ZW50KS4KICAgIHZhciBsZyA9ICcn
OwogICAga2F0LmZvckVhY2goZnVuY3Rpb24oaywgaSkgewogICAgICAgIHZhciB5ID0gNDAgKyBp
ICogMjI7CiAgICAgICAgaWYgKHkgPiBIIC0gMTIpIHJldHVybjsKICAgICAgICB2YXIgcHJveiA9
IF9udW0oTWF0aC5yb3VuZCh3ZXJ0ZVtpXSAvIHN1bW1lICogMTAwMCkgLyAxMCk7CiAgICAgICAg
bGcgKz0gJzxyZWN0IHg9IjMzMCIgeT0iJyArICh5IC0gMTApICsgJyIgd2lkdGg9IjEyIiBoZWln
aHQ9IjEyIiByeD0iMiIgZmlsbD0iJyArIF9mYXJiZShpKSArICciLz4nICsKICAgICAgICAgICAg
ICAnPHRleHQgeD0iMzQ4IiB5PSInICsgeSArICciIGNsYXNzPSJzdGF0LWF4IHN0YXQtYXgtbGVn
Ij4nICsgZXNjYXBlSFRNTChrLmxhYmVsKSArICcg4oCUICcgKyBfbnVtKHdlcnRlW2ldKSArICcg
KCcgKyBwcm96ICsgJyUpPC90ZXh0Pic7CiAgICB9KTsKICAgIHZhciBtaXR0ZSA9IGRvbnV0ID8g
Jzx0ZXh0IHg9IicgKyBjeCArICciIHk9IicgKyAoY3kgKyA1KSArICciIHRleHQtYW5jaG9yPSJt
aWRkbGUiIGNsYXNzPSJzdGF0LWRvbnV0LW1pdHRlIj4nICsgX251bShzdW1tZSkgKyAnPC90ZXh0
PicgOiAnJzsKICAgIHJldHVybiBfc3ZnKFcsIEgsIHNlZyArIG1pdHRlICsgbGcpOwp9CgpmdW5j
dGlvbiBfa3JlaXNTZWcoY3gsIGN5LCByLCByaSwgYTEsIGEyLCBmYXJiZSwgdGl0ZWwpIHsKICAg
IHZhciBncm/DnyA9IChhMiAtIGExKSA+IE1hdGguUEkgPyAxIDogMDsKICAgIHZhciB4MSA9IGN4
ICsgciAqIE1hdGguY29zKGExKSwgeTEgPSBjeSArIHIgKiBNYXRoLnNpbihhMSk7CiAgICB2YXIg
eDIgPSBjeCArIHIgKiBNYXRoLmNvcyhhMiksIHkyID0gY3kgKyByICogTWF0aC5zaW4oYTIpOwog
ICAgaWYgKHJpID4gMCkgewogICAgICAgIHZhciB4aTEgPSBjeCArIHJpICogTWF0aC5jb3MoYTEp
LCB5aTEgPSBjeSArIHJpICogTWF0aC5zaW4oYTEpOwogICAgICAgIHZhciB4aTIgPSBjeCArIHJp
ICogTWF0aC5jb3MoYTIpLCB5aTIgPSBjeSArIHJpICogTWF0aC5zaW4oYTIpOwogICAgICAgIHJl
dHVybiAnPHBhdGggZD0iTScgKyB4MSArICcgJyArIHkxICsgJyBBJyArIHIgKyAnICcgKyByICsg
JyAwICcgKyBncm/DnyArICcgMSAnICsgeDIgKyAnICcgKyB5MiArCiAgICAgICAgICAgICAgICcg
TCcgKyB4aTIgKyAnICcgKyB5aTIgKyAnIEEnICsgcmkgKyAnICcgKyByaSArICcgMCAnICsgZ3Jv
w58gKyAnIDAgJyArIHhpMSArICcgJyArIHlpMSArICcgWiIgZmlsbD0iJyArIGZhcmJlICsgJyI+
PHRpdGxlPicgKyBlc2NhcGVBdHRyKHRpdGVsKSArICc8L3RpdGxlPjwvcGF0aD4nOwogICAgfQog
ICAgcmV0dXJuICc8cGF0aCBkPSJNJyArIGN4ICsgJyAnICsgY3kgKyAnIEwnICsgeDEgKyAnICcg
KyB5MSArICcgQScgKyByICsgJyAnICsgciArICcgMCAnICsgZ3Jvw58gKyAnIDEgJyArIHgyICsg
JyAnICsgeTIgKyAnIFoiIGZpbGw9IicgKyBmYXJiZSArICciPjx0aXRsZT4nICsgZXNjYXBlQXR0
cih0aXRlbCkgKyAnPC90aXRsZT48L3BhdGg+JzsKfQoKLy8gU2NhdHRlciAtLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKZnVuY3Rp
b24gX3NjYXR0ZXIoZXJnKSB7CiAgICB2YXIgcCA9IGVyZy5wdW5rdGUgfHwgW107CiAgICBpZiAo
IXAubGVuZ3RoKSByZXR1cm4gX2xlZXIoKTsKICAgIHZhciBXID0gNjgwLCBIID0gMzgwLCBtbCA9
IDUwLCBtciA9IDE2LCBtdCA9IDE2LCBtYiA9IDUwOwogICAgdmFyIHB3ID0gVyAtIG1sIC0gbXIs
IHBoID0gSCAtIG10IC0gbWI7CiAgICB2YXIgbWF4WCA9IF9uaWNlTWF4KE1hdGgubWF4LmFwcGx5
KG51bGwsIHAubWFwKGZ1bmN0aW9uKGQpeyByZXR1cm4gZC54OyB9KS5jb25jYXQoWzBdKSkpOwog
ICAgdmFyIG1heFkgPSBfbmljZU1heChNYXRoLm1heC5hcHBseShudWxsLCBwLm1hcChmdW5jdGlv
bihkKXsgcmV0dXJuIGQueTsgfSkuY29uY2F0KFswXSkpKTsKICAgIHZhciBYID0gZnVuY3Rpb24o
dil7IHJldHVybiBtbCArICh2IC8gbWF4WCkgKiBwdzsgfTsKICAgIHZhciBZID0gZnVuY3Rpb24o
dil7IHJldHVybiBtdCArIHBoIC0gKHYgLyBtYXhZKSAqIHBoOyB9OwogICAgdmFyIGdyaWQgPSAn
JzsKICAgIF90aWNrcyhtYXhZLCA0KS5mb3JFYWNoKGZ1bmN0aW9uKHQpIHsKICAgICAgICB2YXIg
eSA9IFkodCk7CiAgICAgICAgZ3JpZCArPSAnPGxpbmUgeDE9IicgKyBtbCArICciIHkxPSInICsg
eSArICciIHgyPSInICsgKFcgLSBtcikgKyAnIiB5Mj0iJyArIHkgKyAnIiBzdHJva2U9InZhcigt
LWJvcmRlci1saWdodCkiLz4nICsKICAgICAgICAgICAgICAgICc8dGV4dCB4PSInICsgKG1sIC0g
NikgKyAnIiB5PSInICsgKHkgKyA0KSArICciIHRleHQtYW5jaG9yPSJlbmQiIGNsYXNzPSJzdGF0
LWF4Ij4nICsgX251bSh0KSArICc8L3RleHQ+JzsKICAgIH0pOwogICAgX3RpY2tzKG1heFgsIDQp
LmZvckVhY2goZnVuY3Rpb24odCkgewogICAgICAgIHZhciB4ID0gWCh0KTsKICAgICAgICBncmlk
ICs9ICc8dGV4dCB4PSInICsgeCArICciIHk9IicgKyAobXQgKyBwaCArIDE2KSArICciIHRleHQt
YW5jaG9yPSJtaWRkbGUiIGNsYXNzPSJzdGF0LWF4Ij4nICsgX251bSh0KSArICc8L3RleHQ+JzsK
ICAgIH0pOwogICAgdmFyIHB1bmt0ZSA9IHAubWFwKGZ1bmN0aW9uKGQpIHsKICAgICAgICByZXR1
cm4gJzxjaXJjbGUgY3g9IicgKyBYKGQueCkgKyAnIiBjeT0iJyArIFkoZC55KSArICciIHI9IjUi
IGZpbGw9IicgKyBfZmFyYmUoMCkgKyAnIiBvcGFjaXR5PSIwLjciPjx0aXRsZT4nICsgZXNjYXBl
QXR0cihkLmxhYmVsICsgJzogJyArIGVyZy5hY2hzZVggKyAnPScgKyBfbnVtKGQueCkgKyAnLCAn
ICsgZXJnLmFjaHNlWSArICc9JyArIF9udW0oZC55KSkgKyAnPC90aXRsZT48L2NpcmNsZT4nOwog
ICAgfSkuam9pbignJyk7CiAgICB2YXIgYWNoc2VuID0gJzxsaW5lIHgxPSInICsgbWwgKyAnIiB5
MT0iJyArIChtdCArIHBoKSArICciIHgyPSInICsgKFcgLSBtcikgKyAnIiB5Mj0iJyArIChtdCAr
IHBoKSArICciIHN0cm9rZT0idmFyKC0tdGV4dC1tdXRlZCkiLz4nICsKICAgICAgICAgICAgICAg
ICAnPGxpbmUgeDE9IicgKyBtbCArICciIHkxPSInICsgbXQgKyAnIiB4Mj0iJyArIG1sICsgJyIg
eTI9IicgKyAobXQgKyBwaCkgKyAnIiBzdHJva2U9InZhcigtLXRleHQtbXV0ZWQpIi8+JyArCiAg
ICAgICAgICAgICAgICAgJzx0ZXh0IHg9IicgKyAobWwgKyBwdyAvIDIpICsgJyIgeT0iJyArIChI
IC0gNikgKyAnIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBjbGFzcz0ic3RhdC1heC10aXRlbCI+JyAr
IGVzY2FwZUhUTUwoZXJnLmFjaHNlWCB8fCAnJykgKyAnPC90ZXh0PicgKwogICAgICAgICAgICAg
ICAgICc8dGV4dCB0cmFuc2Zvcm09InRyYW5zbGF0ZSgxNCAnICsgKG10ICsgcGggLyAyKSArICcp
IHJvdGF0ZSgtOTApIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBjbGFzcz0ic3RhdC1heC10aXRlbCI+
JyArIGVzY2FwZUhUTUwoZXJnLmFjaHNlWSB8fCAnJykgKyAnPC90ZXh0Pic7CiAgICByZXR1cm4g
X3N2ZyhXLCBILCBncmlkICsgYWNoc2VuICsgcHVua3RlKTsKfQoKLy8gSGVhdG1hcCAoRGltIFgg
w5cgU2VyaWUtRGltKSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoK
ZnVuY3Rpb24gX2hlYXRtYXAoZXJnKSB7CiAgICB2YXIga2F0ID0gZXJnLmthdGVnb3JpZW4sIHNl
cmllbiA9IGVyZy5zZXJpZW47CiAgICBpZiAoIWthdC5sZW5ndGggfHwgIXNlcmllbi5sZW5ndGgp
IHJldHVybiBfbGVlcigpOwogICAgdmFyIG1heCA9IDA7CiAgICBzZXJpZW4uZm9yRWFjaChmdW5j
dGlvbihzZSl7IHNlLndlcnRlLmZvckVhY2goZnVuY3Rpb24odil7IG1heCA9IE1hdGgubWF4KG1h
eCwgdiB8fCAwKTsgfSk7IH0pOwogICAgaWYgKG1heCA8PSAwKSByZXR1cm4gX2xlZXIoKTsKICAg
IHZhciBtbCA9IDEyMCwgbXQgPSA5MCwgemVsbCA9IDM4LCBXID0gbWwgKyBrYXQubGVuZ3RoICog
emVsbCArIDE2LCBIID0gbXQgKyBzZXJpZW4ubGVuZ3RoICogemVsbCArIDg7CiAgICB2YXIgaW5u
ZXIgPSAnJzsKICAgIC8vIFNwYWx0ZW4tS29wZiAoS2F0ZWdvcmllbikg4oCUIHNjaHJhZWcuCiAg
ICBrYXQuZm9yRWFjaChmdW5jdGlvbihrLCBpKSB7CiAgICAgICAgdmFyIHggPSBtbCArIGkgKiB6
ZWxsICsgemVsbCAvIDI7CiAgICAgICAgaW5uZXIgKz0gJzx0ZXh0IHg9IicgKyB4ICsgJyIgeT0i
JyArIChtdCAtIDgpICsgJyIgdGV4dC1hbmNob3I9ImVuZCIgY2xhc3M9InN0YXQtYXgiIHRyYW5z
Zm9ybT0icm90YXRlKC00NSAnICsgeCArICcgJyArIChtdCAtIDgpICsgJykiPicgKyBlc2NhcGVI
VE1MKGsubGFiZWwpICsgJzwvdGV4dD4nOwogICAgfSk7CiAgICBzZXJpZW4uZm9yRWFjaChmdW5j
dGlvbihzZSwgcikgewogICAgICAgIHZhciB5ID0gbXQgKyByICogemVsbDsKICAgICAgICBpbm5l
ciArPSAnPHRleHQgeD0iJyArIChtbCAtIDgpICsgJyIgeT0iJyArICh5ICsgemVsbCAvIDIgKyA0
KSArICciIHRleHQtYW5jaG9yPSJlbmQiIGNsYXNzPSJzdGF0LWF4IHN0YXQtYXgtbmFtZSI+JyAr
IGVzY2FwZUhUTUwoc2UubmFtZSB8fCAn4oCUJykgKyAnPC90ZXh0Pic7CiAgICAgICAgc2Uud2Vy
dGUuZm9yRWFjaChmdW5jdGlvbih2LCBjKSB7CiAgICAgICAgICAgIHZhciB4ID0gbWwgKyBjICog
emVsbDsKICAgICAgICAgICAgdmFyIHQgPSBtYXggPyAodiB8fCAwKSAvIG1heCA6IDA7CiAgICAg
ICAgICAgIGlubmVyICs9ICc8cmVjdCB4PSInICsgeCArICciIHk9IicgKyB5ICsgJyIgd2lkdGg9
IicgKyAoemVsbCAtIDMpICsgJyIgaGVpZ2h0PSInICsgKHplbGwgLSAzKSArICciIHJ4PSIzIiBm
aWxsPSJ2YXIoLS1iZy1wcmltYXJ5KSIgZmlsbC1vcGFjaXR5PSInICsgKDAuMTIgKyB0ICogMC44
NSkudG9GaXhlZCgzKSArICciPjx0aXRsZT4nICsgZXNjYXBlQXR0cigoc2UubmFtZSA/IHNlLm5h
bWUgKyAnIMK3ICcgOiAnJykgKyBrYXRbY10ubGFiZWwgKyAnOiAnICsgX251bSh2KSkgKyAnPC90
aXRsZT48L3JlY3Q+JzsKICAgICAgICAgICAgaWYgKHYpIGlubmVyICs9ICc8dGV4dCB4PSInICsg
KHggKyAoemVsbCAtIDMpIC8gMikgKyAnIiB5PSInICsgKHkgKyB6ZWxsIC8gMiArIDMpICsgJyIg
dGV4dC1hbmNob3I9Im1pZGRsZSIgY2xhc3M9InN0YXQtaGVhdC13ZXJ0IiBmaWxsPSInICsgKHQg
PiAwLjU1ID8gJyNmZmYnIDogJ3ZhcigtLXRleHQtaGVhZGluZyknKSArICciPicgKyBfbnVtKHYp
ICsgJzwvdGV4dD4nOwogICAgICAgIH0pOwogICAgfSk7CiAgICByZXR1cm4gX3N2ZyhXLCBILCBp
bm5lcik7Cn0KCi8vIFBpdm90LVRhYmVsbGUgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCmZ1bmN0aW9uIF90YWJlbGxlKGVyZykgewogICAg
dmFyIGthdCA9IGVyZy5rYXRlZ29yaWVuLCBzZXJpZW4gPSBlcmcuc2VyaWVuOwogICAgaWYgKCFr
YXQubGVuZ3RoKSByZXR1cm4gX2xlZXIoKTsKICAgIHZhciBtZWhyID0gZXJnLm1laHJzZXJpZzsK
ICAgIHZhciBrb3BmID0gJzx0cj48dGg+JyArIGVzY2FwZUhUTUwoZXJnLmRpbVhMYWJlbCB8fCAn
JykgKyAnPC90aD4nICsKICAgICAgICBzZXJpZW4ubWFwKGZ1bmN0aW9uKHMpeyByZXR1cm4gJzx0
aCBjbGFzcz0iemFobCI+JyArIGVzY2FwZUhUTUwobWVociA/IChzLm5hbWUgfHwgJ+KAlCcpIDog
KGVyZy5rZW5uemFobExhYmVsIHx8ICdXZXJ0JykpICsgJzwvdGg+JzsgfSkuam9pbignJykgKwog
ICAgICAgIChtZWhyID8gJzx0aCBjbGFzcz0iemFobCI+zqM8L3RoPicgOiAnJykgKyAnPC90cj4n
OwogICAgdmFyIHplaWxlbiA9IGthdC5tYXAoZnVuY3Rpb24oaywgaSkgewogICAgICAgIHZhciBz
dW0gPSAwOwogICAgICAgIHZhciB0ZHMgPSBzZXJpZW4ubWFwKGZ1bmN0aW9uKHMpeyB2YXIgdiA9
IHMud2VydGVbaV0gfHwgMDsgc3VtICs9IHY7IHJldHVybiAnPHRkIGNsYXNzPSJ6YWhsIj4nICsg
X251bSh2KSArICc8L3RkPic7IH0pLmpvaW4oJycpOwogICAgICAgIHJldHVybiAnPHRyPjx0ZD4n
ICsgZXNjYXBlSFRNTChrLmxhYmVsKSArICc8L3RkPicgKyB0ZHMgKyAobWVociA/ICc8dGQgY2xh
c3M9InphaGwiPjxiPicgKyBfbnVtKHN1bSkgKyAnPC9iPjwvdGQ+JyA6ICcnKSArICc8L3RyPic7
CiAgICB9KS5qb2luKCcnKTsKICAgIHJldHVybiAnPGRpdiBjbGFzcz0idGFiZWxsZS1zY3JvbGwi
Pjx0YWJsZSBjbGFzcz0iYWRtaW4tdGFiZWxsZSBzdGF0LXBpdm90Ij48dGhlYWQ+JyArIGtvcGYg
KyAnPC90aGVhZD48dGJvZHk+JyArIHplaWxlbiArICc8L3Rib2R5PjwvdGFibGU+PC9kaXY+JzsK
fQoKLy8gS1BJIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLQoKZnVuY3Rpb24gX2twaShlcmcpIHsKICAgIHZhciBrYXQgPSBl
cmcua2F0ZWdvcmllbiwgc2VyaWVuID0gZXJnLnNlcmllbjsKICAgIHZhciBnZXNhbXQgPSAwOwog
ICAgc2VyaWVuLmZvckVhY2goZnVuY3Rpb24ocyl7IHMud2VydGUuZm9yRWFjaChmdW5jdGlvbih2
KXsgZ2VzYW10ICs9IHYgfHwgMDsgfSk7IH0pOwogICAgdmFyIGthcnRlbiA9ICc8ZGl2IGNsYXNz
PSJzdGF0LWtwaS1ncm9zcyI+PGRpdiBjbGFzcz0ic3RhdC1rcGktZ3Jvc3Mtd2VydCI+JyArIF9u
dW0oZ2VzYW10KSArICc8L2Rpdj4nICsKICAgICAgICAnPGRpdiBjbGFzcz0ic3RhdC1rcGktZ3Jv
c3MtbGFiZWwiPicgKyBlc2NhcGVIVE1MKGVyZy5rZW5uemFobExhYmVsIHx8ICdHZXNhbXQnKSAr
ICc8L2Rpdj48L2Rpdj4nOwogICAgLy8gQmlzIHp1IDYgVG9wLUthdGVnb3JpZW4gYWxzIGtsZWlu
ZSBLUElzLgogICAgdmFyIHdlcnRlID0ga2F0Lm1hcChmdW5jdGlvbihfLCBpKXsgdmFyIHMgPSAw
OyBzZXJpZW4uZm9yRWFjaChmdW5jdGlvbihzZSl7IHMgKz0gc2Uud2VydGVbaV0gfHwgMDsgfSk7
IHJldHVybiB7IGxhYmVsOiBrYXRbaV0ubGFiZWwsIHY6IHMgfTsgfSk7CiAgICB3ZXJ0ZS5zb3J0
KGZ1bmN0aW9uKGEsIGIpeyByZXR1cm4gYi52IC0gYS52OyB9KTsKICAgIHZhciB0b3AgPSB3ZXJ0
ZS5zbGljZSgwLCA2KS5tYXAoZnVuY3Rpb24odykgewogICAgICAgIHJldHVybiAnPGRpdiBjbGFz
cz0ic3RhdC1rcGkiPjxkaXYgY2xhc3M9InN0YXRzLWtwaS13ZXJ0Ij4nICsgX251bSh3LnYpICsg
JzwvZGl2PjxkaXYgY2xhc3M9InN0YXRzLWtwaS1sYWJlbCI+JyArIGVzY2FwZUhUTUwody5sYWJl
bCkgKyAnPC9kaXY+PC9kaXY+JzsKICAgIH0pLmpvaW4oJycpOwogICAgcmV0dXJuICc8ZGl2IGNs
YXNzPSJzdGF0LWtwaS13cmFwIj4nICsga2FydGVuICsgJzxkaXYgY2xhc3M9InN0YXRzLWtwaXMg
c3RhdC1rcGktbWluaSI+JyArIHRvcCArICc8L2Rpdj48L2Rpdj4nOwp9Cg==
### FILE: js/statistik_engine.js | 19010
Ly8gPT09IHN0YXRpc3Rpa19lbmdpbmUuanMgPT09Ci8vIE1laHJkaW1lbnNpb25hbGUgQW5hbHlz
ZS1FbmdpbmUgZnVlciBkZW4gU3RhdGlzdGlrLUJ1aWxkZXIgKFBpdm90LWFydGlnKS4KLy8KLy8g
SWRlZTogYXVzIFoucGxhbnVuZy5laW50cmFlZ2UgKyBaLnBlcnNvbmVuICsgWi5hZG1pbiB3aXJk
IGNsaWVudHNlaXRpZyBlaW5lCi8vIEZBS1RFTi1UQUJFTExFIGdlYmF1dCDigJQgZWluZSBaZWls
ZSBwcm8gKFBlcnNvbiDDlyBUYWcgw5cgQ29kZSkuIEF1ZiBkaWVzZXIKLy8gRmFrdGVudGFiZWxs
ZSBsYWV1ZnQgZGFubiBlaW4ga2xhc3Npc2NoZXMgR3JvdXAtYnkvQWdncmVnYXQ6Ci8vCi8vICAg
RmlsdGVyIC0+IERpbWVuc2lvbihlbikgLT4gS2VubnphaGwvQWdncmVnYXRpb24gLT4gRXJnZWJu
aXMtU3RydWt0dXIKLy8KLy8gRGFzIEVyZ2VibmlzIGlzdCBkaWFncmFtbS1uZXV0cmFsOyBzdGF0
aXN0aWtfY2hhcnRzLmpzIHJlbmRlcnQgZXMgYWxzIFNWRy4KLy8gS2VpbmUgU2VydmVyLUFlbmRl
cnVuZyBub2V0aWcg4oCUIGFsbGVzIGxhZXVmdCBhdWYgYmVyZWl0cyBnZWxhZGVuZW4gRGF0ZW4u
CgppbXBvcnQgeyBaIH0gZnJvbSAnLi9jb3JlX3N0YXRlLmpzJzsKaW1wb3J0IHsgcGlkS2V5LCBk
YXR1bVN0ciwgaXN0V29jaGVuZW5kZSB9IGZyb20gJy4vY29yZV91dGlsLmpzJzsKaW1wb3J0IHsg
ZmVpZXJ0YWdJbmZvIH0gZnJvbSAnLi9mZWllcnRhZ2VfZGUuanMnOwoKLy8gPT09PT0gQ29kZS1L
bGFzc2lmaXppZXJ1bmcgKHNwaWVnZWx0IHNlcnZlci5weSBfaGFuZGxlX3N0YXRpc3RpaykgPT09
PT0KCnZhciBTT05ERVJfQ09ERVMgICAgICA9IFsnU0QnLCAnU0UnXTsKdmFyIEZPUlRCSUxEVU5H
X0NPREVTID0gWydBdUYnLCAnRVRNJywgJ1NlbScsICdUVCcsICdUekYnXTsKdmFyIEZSRUlfQ09E
RVMgICAgICAgID0gWyd3ZnInLCAnZGZyJywgJ8KnMjEnLCAnMjFhJ107CnZhciBBQldFU0VORF9D
T0RFUyAgICA9IFsnVXJsJywgJ2tyJywgJ0t1cicsICdTVScsICdMRycsICdEVScsICdCVicsICdh
YmcnLCAnQkFPJywgJ0hPJywgJ2FidycsICdYWFgnXTsKCmZ1bmN0aW9uIF9zY2hpY2h0Vm9uKGNv
ZGUpIHsKICAgIGlmICgvXkYtL2kudGVzdChjb2RlKSkgcmV0dXJuICdGJzsKICAgIGlmICgvXlMt
L2kudGVzdChjb2RlKSkgcmV0dXJuICdTJzsKICAgIGlmICgvXk4tL2kudGVzdChjb2RlKSkgcmV0
dXJuICdOJzsKICAgIHJldHVybiAnJzsKfQpmdW5jdGlvbiBfcm9sbGVWb24oY29kZSkgewogICAg
Ly8gRi1ER0wgLT4gREdMLCBTLVdERiAtPiBXREYsIE4tRkJQIC0+IEZCUAogICAgaWYgKGNvZGUg
JiYgY29kZS5sZW5ndGggPj0gNSAmJiBjb2RlLmNoYXJBdCgxKSA9PT0gJy0nKSB7CiAgICAgICAg
dmFyIHIgPSBjb2RlLnN1YnN0cmluZygyLCA1KTsKICAgICAgICBpZiAociA9PT0gJ0RHTCcgfHwg
ciA9PT0gJ1dERicgfHwgciA9PT0gJ0ZCUCcpIHJldHVybiByOwogICAgfQogICAgcmV0dXJuICcn
Owp9CmZ1bmN0aW9uIF9pc3REaWVuc3QoY29kZSkgewogICAgcmV0dXJuIF9zY2hpY2h0Vm9uKGNv
ZGUpICE9PSAnJyB8fCBTT05ERVJfQ09ERVMuaW5kZXhPZihjb2RlKSA+PSAwOwp9CmZ1bmN0aW9u
IF9ncm9ia2xhc3NlKGNvZGUpIHsKICAgIC8vIEdyb2JlIFRhZy1BcnQgZnVlciBkaWUgS2F0ZWdv
cmllLURpbWVuc2lvbi4KICAgIGlmIChfc2NoaWNodFZvbihjb2RlKSkgcmV0dXJuICdEaWVuc3Qn
OwogICAgaWYgKFNPTkRFUl9DT0RFUy5pbmRleE9mKGNvZGUpID49IDApIHJldHVybiAnU29uZGVy
ZGllbnN0JzsKICAgIGlmIChGT1JUQklMRFVOR19DT0RFUy5pbmRleE9mKGNvZGUpID49IDAgfHwg
Y29kZSA9PT0gJ0xHJykgcmV0dXJuICdBdXMtL0ZvcnRiaWxkdW5nJzsKICAgIGlmIChbJ1VybCcs
ICdTVSddLmluZGV4T2YoY29kZSkgPj0gMCkgcmV0dXJuICdVcmxhdWInOwogICAgaWYgKFsna3In
LCAnS3VyJ10uaW5kZXhPZihjb2RlKSA+PSAwKSByZXR1cm4gJ0tyYW5rL0t1cic7CiAgICBpZiAo
RlJFSV9DT0RFUy5pbmRleE9mKGNvZGUpID49IDApIHJldHVybiAnRnJlaSc7CiAgICByZXR1cm4g
J1NvbnN0aWdlcyc7Cn0KCi8vID09PT09IEthbGVuZGVyLUhpbGZlbiA9PT09PQoKdmFyIF9mZWll
cnRhZ1NldCA9IG51bGwsIF9mZXJpZW5TZXQgPSBudWxsLCBfa2FsZW5kZXJTaWcgPSBudWxsOwoK
ZnVuY3Rpb24gX2thbGVuZGVyQXVmYmF1ZW4oKSB7CiAgICB2YXIgc2lnID0gKFouYWRtaW4gJiYg
KFouYWRtaW4uZmVpZXJ0YWdlIHx8IFtdKS5sZW5ndGggKyAneCcgKyAoWi5hZG1pbi5mZXJpZW4g
fHwgW10pLmxlbmd0aCkgfHwgJyc7CiAgICBpZiAoX2thbGVuZGVyU2lnID09PSBzaWcgJiYgX2Zl
aWVydGFnU2V0KSByZXR1cm47CiAgICBfa2FsZW5kZXJTaWcgPSBzaWc7CiAgICAvLyBXZXJ0ID0g
QmV6ZWljaG51bmcgKGZ1ZXIgYWRtaW4tZWlnZW5lIEZlaWVydGFnZSBvaG5lIEthdGFsb2ctVHJl
ZmZlciksCiAgICAvLyBtaW5kZXN0ZW5zIGFiZXIgYHRydWVgLiBLYXRhbG9nIChidW5kZXN3ZWl0
L05SVykga29tbXQgenVzYWV0emxpY2ggaW4KICAgIC8vIGZha3RlbkJhdWVuIGRhenUuCiAgICBf
ZmVpZXJ0YWdTZXQgPSB7fTsKICAgIChaLmFkbWluICYmIFouYWRtaW4uZmVpZXJ0YWdlIHx8IFtd
KS5mb3JFYWNoKGZ1bmN0aW9uKGYpIHsKICAgICAgICBpZiAoZiAmJiBmLmRhdHVtICYmIGYuYWt0
aXYgIT09IGZhbHNlKSBfZmVpZXJ0YWdTZXRbZi5kYXR1bV0gPSBmLmJlemVpY2hudW5nIHx8IHRy
dWU7CiAgICB9KTsKICAgIF9mZXJpZW5TZXQgPSB7fTsKICAgIChaLmFkbWluICYmIFouYWRtaW4u
ZmVyaWVuIHx8IFtdKS5mb3JFYWNoKGZ1bmN0aW9uKGZwKSB7CiAgICAgICAgaWYgKCFmcCB8fCAh
ZnAudm9uIHx8ICFmcC5iaXMpIHJldHVybjsKICAgICAgICB2YXIgZCA9IG5ldyBEYXRlKGZwLnZv
biArICdUMDA6MDA6MDAnKSwgZW5kZSA9IG5ldyBEYXRlKGZwLmJpcyArICdUMDA6MDA6MDAnKTsK
ICAgICAgICB2YXIgc2NodXR6ID0gMDsKICAgICAgICB3aGlsZSAoZCA8PSBlbmRlICYmIHNjaHV0
eiA8IDQwMCkgeyBfZmVyaWVuU2V0W2RhdHVtU3RyKGQpXSA9IHRydWU7IGQuc2V0RGF0ZShkLmdl
dERhdGUoKSArIDEpOyBzY2h1dHorKzsgfQogICAgfSk7Cn0KCi8vIElTTy1LYWxlbmRlcndvY2hl
IChNby1iYXNpZXJ0KS4KZnVuY3Rpb24gX2lzb0tXKGQpIHsKICAgIHZhciB0ID0gbmV3IERhdGUo
ZC5nZXRGdWxsWWVhcigpLCBkLmdldE1vbnRoKCksIGQuZ2V0RGF0ZSgpKTsKICAgIHZhciB0YWcg
PSAodC5nZXREYXkoKSArIDYpICUgNzsgICAgICAgICAgICAvLyBNbz0wIOKApiBTbz02CiAgICB0
LnNldERhdGUodC5nZXREYXRlKCkgLSB0YWcgKyAzKTsgICAgICAgICAgLy8gRG9ubmVyc3RhZyBk
aWVzZXIgV29jaGUKICAgIHZhciBqYWhyU3RhcnQgPSBuZXcgRGF0ZSh0LmdldEZ1bGxZZWFyKCks
IDAsIDQpOwogICAgdmFyIGt3ID0gMSArIE1hdGgucm91bmQoKCh0IC0gamFoclN0YXJ0KSAvIDg2
NDAwMDAwIC0gMyArICgoamFoclN0YXJ0LmdldERheSgpICsgNikgJSA3KSkgLyA3KTsKICAgIHJl
dHVybiB7IGphaHI6IHQuZ2V0RnVsbFllYXIoKSwga3c6IGt3IH07Cn0KCnZhciBXT0NIRU5UQUdF
ID0gWydTbycsICdNbycsICdEaScsICdNaScsICdEbycsICdGcicsICdTYSddOwp2YXIgTU9OQVRT
TkFNRU4gPSBbJ0phbicsICdGZWInLCAnTcOkcicsICdBcHInLCAnTWFpJywgJ0p1bicsICdKdWwn
LCAnQXVnJywgJ1NlcCcsICdPa3QnLCAnTm92JywgJ0RleiddOwoKLy8gPT09PT0gRmFrdGVudGFi
ZWxsZSA9PT09PQoKdmFyIF9mYWt0ZW5DYWNoZSA9IG51bGwsIF9mYWt0ZW5TaWcgPSBudWxsOwoK
ZnVuY3Rpb24gX3BlcnNvbkluZGV4KCkgewogICAgdmFyIGlkeCA9IHt9OwogICAgKFoucGVyc29u
ZW4gfHwgW10pLmZvckVhY2goZnVuY3Rpb24ocCkgeyBpZHhbcGlkS2V5KHAuaWQpXSA9IHA7IH0p
OwogICAgcmV0dXJuIGlkeDsKfQoKLy8gQmF1dCAodW5kIGNhY2hlZCkgZGllIEZha3RlbnRhYmVs
bGU6IGVpbmUgWmVpbGUgcHJvIFBlcnNvbsOXVGFnw5dDb2RlLgpleHBvcnQgZnVuY3Rpb24gZmFr
dGVuQmF1ZW4oKSB7CiAgICB2YXIgZWludHIgPSAoWi5wbGFudW5nICYmIFoucGxhbnVuZy5laW50
cmFlZ2UpIHx8IHt9OwogICAgdmFyIHNpZyA9IE9iamVjdC5rZXlzKGVpbnRyKS5sZW5ndGggKyAn
OicgKyAoWi5wZXJzb25lbiB8fCBbXSkubGVuZ3RoICsgJzonICsgKFoudGFnZSB8fCBbXSkubGVu
Z3RoOwogICAgaWYgKF9mYWt0ZW5TaWcgPT09IHNpZyAmJiBfZmFrdGVuQ2FjaGUpIHJldHVybiBf
ZmFrdGVuQ2FjaGU7CiAgICBfa2FsZW5kZXJBdWZiYXVlbigpOwogICAgdmFyIHBJZHggPSBfcGVy
c29uSW5kZXgoKTsKICAgIHZhciBmYWt0ZW4gPSBbXTsKICAgIHZhciB0YWdlID0gKFoudGFnZSAm
JiBaLnRhZ2UubGVuZ3RoKSA/IFoudGFnZS5tYXAoZGF0dW1TdHIpIDogT2JqZWN0LmtleXMoZWlu
dHIpLnNvcnQoKTsKICAgIHRhZ2UuZm9yRWFjaChmdW5jdGlvbihkYXR1bSkgewogICAgICAgIHZh
ciB0YWcgPSBlaW50cltkYXR1bV07CiAgICAgICAgaWYgKCF0YWcpIHJldHVybjsKICAgICAgICB2
YXIgZCA9IG5ldyBEYXRlKGRhdHVtICsgJ1QwMDowMDowMCcpOwogICAgICAgIHZhciB3ZCA9IGQu
Z2V0RGF5KCk7CiAgICAgICAgdmFyIGlzbyA9IF9pc29LVyhkKTsKICAgICAgICB2YXIgbW9uYXQg
PSBkYXR1bS5zdWJzdHJpbmcoMCwgNyk7ICAgICAgICAgICAgICAgICAvLyAnWVlZWS1NTScKICAg
ICAgICBPYmplY3Qua2V5cyh0YWcpLmZvckVhY2goZnVuY3Rpb24ocGlkKSB7CiAgICAgICAgICAg
IHZhciBjb2RlID0gdGFnW3BpZF07CiAgICAgICAgICAgIGlmICghY29kZSkgcmV0dXJuOwogICAg
ICAgICAgICB2YXIgcCA9IHBJZHhbcGlkXTsKICAgICAgICAgICAgaWYgKCFwKSByZXR1cm47ICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gaW5ha3RpdmUvdmVyc3RlY2t0ZSBQZXJz
b24gLT4gbmljaHQgZ2V6YWVobHQKICAgICAgICAgICAgLy8gRmVpZXJ0YWdzLUtsYXNzaWZpa2F0
aW9uOiBLYXRhbG9nIChidW5kZXN3ZWl0L05SVykgaGF0IFZvcnJhbmcsCiAgICAgICAgICAgIC8v
IHNvbnN0IGFkbWluLWVpZ2VuZXIgRmVpZXJ0YWcgKC0+IFR5cCAnc29uc3RpZ2UnKS4gaXN0RmVp
ZXJ0YWcKICAgICAgICAgICAgLy8gYmxlaWJ0IHRydWUsIHNvYmFsZCBlaW5lIGRlciBiZWlkZW4g
UXVlbGxlbiBncmVpZnQuCiAgICAgICAgICAgIHZhciBrYXRJbmZvID0gZmVpZXJ0YWdJbmZvKGRh
dHVtKTsKICAgICAgICAgICAgdmFyIGFkbWluRnQgPSBfZmVpZXJ0YWdTZXRbZGF0dW1dOwogICAg
ICAgICAgICB2YXIgZnROYW1lID0gJycsIGZ0VHlwID0gJyc7CiAgICAgICAgICAgIGlmIChrYXRJ
bmZvKSB7IGZ0TmFtZSA9IGthdEluZm8ubmFtZTsgZnRUeXAgPSBrYXRJbmZvLnR5cDsgfQogICAg
ICAgICAgICBlbHNlIGlmIChhZG1pbkZ0KSB7IGZ0TmFtZSA9ICh0eXBlb2YgYWRtaW5GdCA9PT0g
J3N0cmluZycpID8gYWRtaW5GdCA6ICcnOyBmdFR5cCA9ICdzb25zdGlnZSc7IH0KICAgICAgICAg
ICAgZmFrdGVuLnB1c2goewogICAgICAgICAgICAgICAgcGVyc29uSWQ6IHBpZCwKICAgICAgICAg
ICAgICAgIHBlcnNvbkxhYmVsOiBfcGVyc29uTGFiZWwocCksCiAgICAgICAgICAgICAgICBncnVw
cGU6IHAuZ3J1cHBlIHx8ICfigJQnLAogICAgICAgICAgICAgICAgZnVua3Rpb246IHAuZnVua3Rp
b24gfHwgJ+KAlCcsCiAgICAgICAgICAgICAgICBzdGFuZG9ydDogcC5vZSB8fCAn4oCUJywKICAg
ICAgICAgICAgICAgIGRpZW5zdGdyYWQ6IHAuZGllbnN0Z3JhZCB8fCAn4oCUJywKICAgICAgICAg
ICAgICAgIGRhdHVtOiBkYXR1bSwKICAgICAgICAgICAgICAgIGphaHI6IFN0cmluZyhkLmdldEZ1
bGxZZWFyKCkpLAogICAgICAgICAgICAgICAgbW9uYXQ6IG1vbmF0LAogICAgICAgICAgICAgICAg
bW9uYXRMYWJlbDogTU9OQVRTTkFNRU5bZC5nZXRNb250aCgpXSArICcgJyArIGQuZ2V0RnVsbFll
YXIoKSwKICAgICAgICAgICAgICAgIGt3S2V5OiBpc28uamFociArICctJyArIChpc28ua3cgPCAx
MCA/ICcwJyA6ICcnKSArIGlzby5rdywKICAgICAgICAgICAgICAgIGt3TGFiZWw6ICdLVyAnICsg
aXNvLmt3LAogICAgICAgICAgICAgICAgd29jaGVudGFnOiB3ZCwKICAgICAgICAgICAgICAgIHdv
Y2hlbnRhZ0xhYmVsOiBXT0NIRU5UQUdFW3dkXSwKICAgICAgICAgICAgICAgIGlzdFdFOiBpc3RX
b2NoZW5lbmRlKGQpLAogICAgICAgICAgICAgICAgaXN0RmVpZXJ0YWc6ICEhYWRtaW5GdCB8fCAh
IWthdEluZm8sCiAgICAgICAgICAgICAgICBmZWllcnRhZ05hbWU6IGZ0TmFtZSwKICAgICAgICAg
ICAgICAgIGZlaWVydGFnVHlwOiBmdFR5cCwgICAgICAgICAgICAgICAgICAgICAgICAgIC8vICdi
dW5kZXN3ZWl0JyB8ICducncnIHwgJ3NvbnN0aWdlJyB8ICcnCiAgICAgICAgICAgICAgICBpc3RG
ZXJpZW46ICEhX2ZlcmllblNldFtkYXR1bV0sCiAgICAgICAgICAgICAgICBjb2RlOiBjb2RlLAog
ICAgICAgICAgICAgICAgc2NoaWNodDogX3NjaGljaHRWb24oY29kZSksCiAgICAgICAgICAgICAg
ICByb2xsZTogX3JvbGxlVm9uKGNvZGUpLAogICAgICAgICAgICAgICAga2F0ZWdvcmllOiBfZ3Jv
YmtsYXNzZShjb2RlKSwKICAgICAgICAgICAgICAgIGlzdERpZW5zdDogX2lzdERpZW5zdChjb2Rl
KQogICAgICAgICAgICB9KTsKICAgICAgICB9KTsKICAgIH0pOwogICAgX2Zha3RlbkNhY2hlID0g
ZmFrdGVuOyBfZmFrdGVuU2lnID0gc2lnOwogICAgcmV0dXJuIGZha3RlbjsKfQoKZnVuY3Rpb24g
X3BlcnNvbkxhYmVsKHApIHsKICAgIHZhciBuID0gKHAubmFtZSB8fCAnJykudHJpbSgpOwogICAg
dmFyIHYgPSAocC52b3JuYW1lIHx8ICcnKS50cmltKCk7CiAgICByZXR1cm4gdiA/IChuICsgJywg
JyArIHYpIDogbjsKfQoKLy8gPT09PT0gRGltZW5zaW9uZW4gKEdyb3VwLWJ5LUFjaHNlbikgPT09
PT0KLy8gd2VydChmKSAtPiBTY2hsdWVzc2VsICh6dWdsZWljaCBTb3J0aWVya3JpdGVyaXVtIGZ1
ZXIgJ3plaXQnLU9yZG51bmcpLAovLyBsYWJlbChrZXkpIC0+IEFuemVpZ2UuIG9yZG51bmc6ICdu
YXR1cicgKGFscGhhYmV0aXNjaC9XZXJ0KSB8ICd6ZWl0JyB8ICdmaXgnLgoKZXhwb3J0IHZhciBE
SU1FTlNJT05FTiA9IFsKICAgIHsga2V5OiAnZ3J1cHBlJywgICAgIGxhYmVsOiAnRGllbnN0Z3J1
cHBlJywgb3JkbnVuZzogJ25hdHVyJywgd2VydDogZnVuY3Rpb24oZil7IHJldHVybiBmLmdydXBw
ZTsgfSB9LAogICAgeyBrZXk6ICdmdW5rdGlvbicsICAgbGFiZWw6ICdGdW5rdGlvbicsICAgICBv
cmRudW5nOiAnbmF0dXInLCB3ZXJ0OiBmdW5jdGlvbihmKXsgcmV0dXJuIGYuZnVua3Rpb247IH0g
fSwKICAgIHsga2V5OiAnc3RhbmRvcnQnLCAgIGxhYmVsOiAnU3RhbmRvcnQnLCAgICAgb3JkbnVu
ZzogJ25hdHVyJywgd2VydDogZnVuY3Rpb24oZil7IHJldHVybiBmLnN0YW5kb3J0OyB9IH0sCiAg
ICB7IGtleTogJ2RpZW5zdGdyYWQnLCBsYWJlbDogJ0RpZW5zdGdyYWQnLCAgIG9yZG51bmc6ICdu
YXR1cicsIHdlcnQ6IGZ1bmN0aW9uKGYpeyByZXR1cm4gZi5kaWVuc3RncmFkOyB9IH0sCiAgICB7
IGtleTogJ3BlcnNvbicsICAgICBsYWJlbDogJ1BlcnNvbicsICAgICAgIG9yZG51bmc6ICduYXR1
cicsIHdlcnQ6IGZ1bmN0aW9uKGYpeyByZXR1cm4gZi5wZXJzb25MYWJlbDsgfSB9LAogICAgeyBr
ZXk6ICdrYXRlZ29yaWUnLCAgbGFiZWw6ICdUYWctS2F0ZWdvcmllJywgb3JkbnVuZzogJ25hdHVy
Jywgd2VydDogZnVuY3Rpb24oZil7IHJldHVybiBmLmthdGVnb3JpZTsgfSB9LAogICAgeyBrZXk6
ICdzY2hpY2h0JywgICAgbGFiZWw6ICdTY2hpY2h0IChGL1MvTiknLCBvcmRudW5nOiAnZml4Jywg
Zml4UmVpaGU6IFsnRicsICdTJywgJ04nLCAn4oCUJ10sCiAgICAgICAgd2VydDogZnVuY3Rpb24o
Zil7IHJldHVybiBmLnNjaGljaHQgfHwgJ+KAlCc7IH0sIGxhYmVsMjogZnVuY3Rpb24oayl7IHJl
dHVybiAoe0Y6J0Zyw7xoJywgUzonU3DDpHQnLCBOOidOYWNodCcsICfigJQnOidrZWluIERpZW5z
dCd9KVtrXSB8fCBrOyB9IH0sCiAgICB7IGtleTogJ3JvbGxlJywgICAgICBsYWJlbDogJ0RHTC9X
REYvRkJQJywgIG9yZG51bmc6ICdmaXgnLCBmaXhSZWloZTogWydER0wnLCAnV0RGJywgJ0ZCUCcs
ICfigJQnXSwKICAgICAgICB3ZXJ0OiBmdW5jdGlvbihmKXsgcmV0dXJuIGYucm9sbGUgfHwgJ+KA
lCc7IH0gfSwKICAgIHsga2V5OiAnY29kZScsICAgICAgIGxhYmVsOiAnU2NoaWNodGNvZGUnLCAg
b3JkbnVuZzogJ25hdHVyJywgd2VydDogZnVuY3Rpb24oZil7IHJldHVybiBmLmNvZGU7IH0gfSwK
ICAgIHsga2V5OiAnbW9uYXQnLCAgICAgIGxhYmVsOiAnTW9uYXQnLCAgICAgICAgb3JkbnVuZzog
J3plaXQnLCB3ZXJ0OiBmdW5jdGlvbihmKXsgcmV0dXJuIGYubW9uYXQ7IH0sIGxhYmVsMjogZnVu
Y3Rpb24oaywgZil7IHJldHVybiBmID8gZi5tb25hdExhYmVsIDogazsgfSB9LAogICAgeyBrZXk6
ICdrdycsICAgICAgICAgbGFiZWw6ICdLYWxlbmRlcndvY2hlJywgb3JkbnVuZzogJ3plaXQnLCB3
ZXJ0OiBmdW5jdGlvbihmKXsgcmV0dXJuIGYua3dLZXk7IH0sIGxhYmVsMjogZnVuY3Rpb24oaywg
Zil7IHJldHVybiBmID8gZi5rd0xhYmVsIDogazsgfSB9LAogICAgeyBrZXk6ICd3b2NoZW50YWcn
LCAgbGFiZWw6ICdXb2NoZW50YWcnLCAgICBvcmRudW5nOiAnZml4JywgZml4UmVpaGU6IFsnTW8n
LCAnRGknLCAnTWknLCAnRG8nLCAnRnInLCAnU2EnLCAnU28nXSwKICAgICAgICB3ZXJ0OiBmdW5j
dGlvbihmKXsgcmV0dXJuIGYud29jaGVudGFnTGFiZWw7IH0gfSwKICAgIHsga2V5OiAnamFocics
ICAgICAgIGxhYmVsOiAnSmFocicsICAgICAgICAgb3JkbnVuZzogJ3plaXQnLCB3ZXJ0OiBmdW5j
dGlvbihmKXsgcmV0dXJuIGYuamFocjsgfSB9LAogICAgeyBrZXk6ICdpc3RXRScsICAgICAgbGFi
ZWw6ICdXb2NoZW5lbmRlPycsICBvcmRudW5nOiAnZml4JywgZml4UmVpaGU6IFsnV29jaGVuZW5k
ZScsICdXZXJrdGFnJ10sCiAgICAgICAgd2VydDogZnVuY3Rpb24oZil7IHJldHVybiBmLmlzdFdF
ID8gJ1dvY2hlbmVuZGUnIDogJ1dlcmt0YWcnOyB9IH0sCiAgICB7IGtleTogJ2ZlaWVydGFnJywg
ICAgbGFiZWw6ICdGZWllcnRhZyAoTmFtZSknLCBvcmRudW5nOiAnbmF0dXInLAogICAgICAgIHdl
cnQ6IGZ1bmN0aW9uKGYpeyByZXR1cm4gZi5mZWllcnRhZ05hbWUgfHwgJ2tlaW4gRmVpZXJ0YWcn
OyB9IH0sCiAgICB7IGtleTogJ2ZlaWVydGFnVHlwJywgbGFiZWw6ICdGZWllcnRhZyAoQnVuZC9O
UlcpJywgb3JkbnVuZzogJ2ZpeCcsCiAgICAgICAgZml4UmVpaGU6IFsnQnVuZGVzd2VpdCcsICdO
Ulctc3BlemlmaXNjaCcsICdTb25zdGlnZXIgRmVpZXJ0YWcnLCAna2VpbiBGZWllcnRhZyddLAog
ICAgICAgIHdlcnQ6IGZ1bmN0aW9uKGYpeyByZXR1cm4gX2ZlaWVydGFnVHlwTGFiZWwoZi5mZWll
cnRhZ1R5cCk7IH0gfQpdOwoKLy8gQW56ZWlnZS1MYWJlbCBmdWVyIGRlbiBGZWllcnRhZ3MtVHlw
IGVpbmVyIEZha3RlbnplaWxlLgpleHBvcnQgZnVuY3Rpb24gX2ZlaWVydGFnVHlwTGFiZWwodHlw
KSB7CiAgICBpZiAodHlwID09PSAnYnVuZGVzd2VpdCcpIHJldHVybiAnQnVuZGVzd2VpdCc7CiAg
ICBpZiAodHlwID09PSAnbnJ3JykgICAgICAgIHJldHVybiAnTlJXLXNwZXppZmlzY2gnOwogICAg
aWYgKHR5cCA9PT0gJ3NvbnN0aWdlJykgICByZXR1cm4gJ1NvbnN0aWdlciBGZWllcnRhZyc7CiAg
ICByZXR1cm4gJ2tlaW4gRmVpZXJ0YWcnOwp9CgpleHBvcnQgZnVuY3Rpb24gZGltRmluZGVuKGtl
eSkgewogICAgZm9yICh2YXIgaSA9IDA7IGkgPCBESU1FTlNJT05FTi5sZW5ndGg7IGkrKykgaWYg
KERJTUVOU0lPTkVOW2ldLmtleSA9PT0ga2V5KSByZXR1cm4gRElNRU5TSU9ORU5baV07CiAgICBy
ZXR1cm4gbnVsbDsKfQoKLy8gPT09PT0gS2VubnphaGxlbiAoWmVsbC1BZ2dyZWdhdGlvbiB1ZWJl
ciBGYWt0ZW4pID09PT09CgpleHBvcnQgdmFyIEtFTk5aQUhMRU4gPSBbCiAgICB7IGtleTogJ2Fu
emFobCcsICAgIGxhYmVsOiAnQW56YWhsIEVpbnRyw6RnZScsICBlaW5oZWl0OiAnRWludHLDpGdl
JyB9LAogICAgeyBrZXk6ICdwZXJzb25lbicsICBsYWJlbDogJ1ZlcnNjaC4gUGVyc29uZW4nLCBl
aW5oZWl0OiAnUGVyc29uZW4nIH0sCiAgICB7IGtleTogJ3RhZ2UnLCAgICAgIGxhYmVsOiAnVmVy
c2NoLiBUYWdlJywgICAgIGVpbmhlaXQ6ICdUYWdlJyB9LAogICAgeyBrZXk6ICdwcm9QZXJzb24n
LCBsYWJlbDogJ8OYIHBybyBQZXJzb24nLCAgICAgZWluaGVpdDogJ8OYL1BlcnNvbicgfSwKICAg
IHsga2V5OiAnYW50ZWlsJywgICAgbGFiZWw6ICdBbnRlaWwgKCUpJywgICAgICAgZWluaGVpdDog
JyUnIH0KXTsKCmV4cG9ydCBmdW5jdGlvbiBrZW5uemFobEZpbmRlbihrZXkpIHsKICAgIGZvciAo
dmFyIGkgPSAwOyBpIDwgS0VOTlpBSExFTi5sZW5ndGg7IGkrKykgaWYgKEtFTk5aQUhMRU5baV0u
a2V5ID09PSBrZXkpIHJldHVybiBLRU5OWkFITEVOW2ldOwogICAgcmV0dXJuIG51bGw7Cn0KCmZ1
bmN0aW9uIF9kaXN0aW5jdChhcnIpIHsKICAgIHZhciBzZWVuID0ge30sIG4gPSAwOwogICAgZm9y
ICh2YXIgaSA9IDA7IGkgPCBhcnIubGVuZ3RoOyBpKyspIHsgaWYgKCFzZWVuW2FycltpXV0pIHsg
c2VlblthcnJbaV1dID0gMTsgbisrOyB9IH0KICAgIHJldHVybiBuOwp9CmZ1bmN0aW9uIF9hZ2co
ZmFrdGVuLCBrZW5uemFobCkgewogICAgaWYgKCFmYWt0ZW4gfHwgIWZha3Rlbi5sZW5ndGgpIHJl
dHVybiAwOwogICAgaWYgKGtlbm56YWhsID09PSAncGVyc29uZW4nKSByZXR1cm4gX2Rpc3RpbmN0
KGZha3Rlbi5tYXAoZnVuY3Rpb24oZil7IHJldHVybiBmLnBlcnNvbklkOyB9KSk7CiAgICBpZiAo
a2VubnphaGwgPT09ICd0YWdlJykgICAgIHJldHVybiBfZGlzdGluY3QoZmFrdGVuLm1hcChmdW5j
dGlvbihmKXsgcmV0dXJuIGYuZGF0dW07IH0pKTsKICAgIGlmIChrZW5uemFobCA9PT0gJ3Byb1Bl
cnNvbicpIHsKICAgICAgICB2YXIgcCA9IF9kaXN0aW5jdChmYWt0ZW4ubWFwKGZ1bmN0aW9uKGYp
eyByZXR1cm4gZi5wZXJzb25JZDsgfSkpOwogICAgICAgIHJldHVybiBwID8gTWF0aC5yb3VuZChm
YWt0ZW4ubGVuZ3RoIC8gcCAqIDEwKSAvIDEwIDogMDsKICAgIH0KICAgIHJldHVybiBmYWt0ZW4u
bGVuZ3RoOyAvLyAnYW56YWhsJyAodW5kIEJhc2lzIGZ1ZXIgJ2FudGVpbCcpCn0KCi8vID09PT09
IEZpbHRlciA9PT09PQoKZnVuY3Rpb24gX2ZpbHRlclBhc3N0KGYsIHNwZWMpIHsKICAgIHZhciBm
aSA9IHNwZWMuZmlsdGVyIHx8IHt9OwogICAgaWYgKGZpLnBlcnNvbmVuICYmIGZpLnBlcnNvbmVu
Lmxlbmd0aCAmJiBmaS5wZXJzb25lbi5pbmRleE9mKGYucGVyc29uSWQpIDwgMCkgcmV0dXJuIGZh
bHNlOwogICAgaWYgKGZpLmdydXBwZW4gJiYgZmkuZ3J1cHBlbi5sZW5ndGggJiYgZmkuZ3J1cHBl
bi5pbmRleE9mKGYuZ3J1cHBlKSA8IDApIHJldHVybiBmYWxzZTsKICAgIGlmIChmaS5mdW5rdGlv
bmVuICYmIGZpLmZ1bmt0aW9uZW4ubGVuZ3RoICYmIGZpLmZ1bmt0aW9uZW4uaW5kZXhPZihmLmZ1
bmt0aW9uKSA8IDApIHJldHVybiBmYWxzZTsKICAgIGlmIChmaS5zdGFuZG9ydGUgJiYgZmkuc3Rh
bmRvcnRlLmxlbmd0aCAmJiBmaS5zdGFuZG9ydGUuaW5kZXhPZihmLnN0YW5kb3J0KSA8IDApIHJl
dHVybiBmYWxzZTsKICAgIGlmIChmaS5kaWVuc3RncmFkZSAmJiBmaS5kaWVuc3RncmFkZS5sZW5n
dGggJiYgZmkuZGllbnN0Z3JhZGUuaW5kZXhPZihmLmRpZW5zdGdyYWQpIDwgMCkgcmV0dXJuIGZh
bHNlOwogICAgaWYgKGZpLmNvZGVzICYmIGZpLmNvZGVzLmxlbmd0aCAmJiBmaS5jb2Rlcy5pbmRl
eE9mKGYuY29kZSkgPCAwKSByZXR1cm4gZmFsc2U7CiAgICBpZiAoZmkua2F0ZWdvcmllbiAmJiBm
aS5rYXRlZ29yaWVuLmxlbmd0aCAmJiBmaS5rYXRlZ29yaWVuLmluZGV4T2YoZi5rYXRlZ29yaWUp
IDwgMCkgcmV0dXJuIGZhbHNlOwogICAgaWYgKGZpLm51cldFICYmICFmLmlzdFdFKSByZXR1cm4g
ZmFsc2U7CiAgICBpZiAoZmkubnVyRmVpZXJ0YWcgJiYgIWYuaXN0RmVpZXJ0YWcpIHJldHVybiBm
YWxzZTsKICAgIGlmIChmaS5udXJGZWllcnRhZ0J1bmQgJiYgZi5mZWllcnRhZ1R5cCAhPT0gJ2J1
bmRlc3dlaXQnKSByZXR1cm4gZmFsc2U7CiAgICBpZiAoZmkubnVyRmVpZXJ0YWdOUlcgJiYgZi5m
ZWllcnRhZ1R5cCAhPT0gJ25ydycpIHJldHVybiBmYWxzZTsKICAgIGlmIChmaS5udXJEaWVuc3Qg
JiYgIWYuaXN0RGllbnN0KSByZXR1cm4gZmFsc2U7CiAgICBpZiAoZmkud29jaGVudGFnZSAmJiBm
aS53b2NoZW50YWdlLmxlbmd0aCAmJiBmaS53b2NoZW50YWdlLmluZGV4T2YoZi53b2NoZW50YWcp
IDwgMCkgcmV0dXJuIGZhbHNlOwogICAgaWYgKHNwZWMuemVpdFZvbiAmJiBmLmRhdHVtIDwgc3Bl
Yy56ZWl0Vm9uKSByZXR1cm4gZmFsc2U7CiAgICBpZiAoc3BlYy56ZWl0QmlzICYmIGYuZGF0dW0g
PiBzcGVjLnplaXRCaXMpIHJldHVybiBmYWxzZTsKICAgIHJldHVybiB0cnVlOwp9CgovLyA9PT09
PSBBdXN3ZXJ0dW5nID09PT09Ci8vCi8vIExpZWZlcnQgZWluIGRpYWdyYW1tLW5ldXRyYWxlcyBF
cmdlYm5pczoKLy8gICB7IGthdGVnb3JpZW46W3trZXksbGFiZWx9XSwgc2VyaWVuOlt7bmFtZSwg
d2VydGU6Wy4uLl19XSwgZWluaGVpdCwgZ2VzYW10LAovLyAgICAgcHVua3RlOlt7bGFiZWwseCx5
fV0gKFNjYXR0ZXIpLCBpc3RMZWVyIH0KCmV4cG9ydCBmdW5jdGlvbiBhdXN3ZXJ0ZW4oc3BlYykg
ewogICAgc3BlYyA9IHNwZWMgfHwge307CiAgICB2YXIgZmFrdGVuID0gZmFrdGVuQmF1ZW4oKS5m
aWx0ZXIoZnVuY3Rpb24oZil7IHJldHVybiBfZmlsdGVyUGFzc3QoZiwgc3BlYyk7IH0pOwogICAg
aWYgKCFmYWt0ZW4ubGVuZ3RoKSByZXR1cm4geyBpc3RMZWVyOiB0cnVlLCBrYXRlZ29yaWVuOiBb
XSwgc2VyaWVuOiBbXSwgcHVua3RlOiBbXSB9OwoKICAgIGlmIChzcGVjLmRpYWdyYW1tID09PSAn
c2NhdHRlcicpIHJldHVybiBfYXVzd2VydGVuU2NhdHRlcihzcGVjLCBmYWt0ZW4pOwoKICAgIHZh
ciBkaW1YID0gZGltRmluZGVuKHNwZWMuZGltWCkgfHwgZGltRmluZGVuKCdncnVwcGUnKTsKICAg
IHZhciBkaW1TID0gc3BlYy5kaW1TZXJpZSA/IGRpbUZpbmRlbihzcGVjLmRpbVNlcmllKSA6IG51
bGw7CiAgICB2YXIga2VubnphaGwgPSBzcGVjLmtlbm56YWhsIHx8ICdhbnphaGwnOwoKICAgIC8v
IFplbGxlbjogY2F0S2V5IC0+IHNlcmllS2V5IC0+IGZha3RlbltdCiAgICB2YXIgemVsbGVuID0g
e30sIGNhdE1ldGEgPSB7fSwgc2VyaWVNZXRhID0ge307CiAgICBmYWt0ZW4uZm9yRWFjaChmdW5j
dGlvbihmKSB7CiAgICAgICAgdmFyIGNrID0gZGltWC53ZXJ0KGYpOwogICAgICAgIHZhciBzayA9
IGRpbVMgPyBkaW1TLndlcnQoZikgOiAnX19hbGwnOwogICAgICAgIGlmICghY2F0TWV0YVtja10p
IGNhdE1ldGFbY2tdID0geyBrZXk6IGNrLCBsYWJlbDogX2RpbUxhYmVsKGRpbVgsIGNrLCBmKSwg
YmVpc3BpZWw6IGYgfTsKICAgICAgICBpZiAoIXNlcmllTWV0YVtza10pIHNlcmllTWV0YVtza10g
PSB7IGtleTogc2ssIGxhYmVsOiBkaW1TID8gX2RpbUxhYmVsKGRpbVMsIHNrLCBmKSA6ICcnIH07
CiAgICAgICAgKHplbGxlbltja10gfHwgKHplbGxlbltja10gPSB7fSkpOwogICAgICAgICh6ZWxs
ZW5bY2tdW3NrXSB8fCAoemVsbGVuW2NrXVtza10gPSBbXSkpLnB1c2goZik7CiAgICB9KTsKCiAg
ICB2YXIga2F0S2V5cyA9IF9zb3J0S2F0ZWdvcmllbihPYmplY3Qua2V5cyhjYXRNZXRhKSwgY2F0
TWV0YSwgZGltWCk7CiAgICB2YXIgc2VyaWVLZXlzID0gX3NvcnRLYXRlZ29yaWVuKE9iamVjdC5r
ZXlzKHNlcmllTWV0YSksIHNlcmllTWV0YSwgZGltUyB8fCBkaW1YKTsKCiAgICAvLyBSb2gtQWdn
cmVnYXRlCiAgICB2YXIgZ2VzYW10ID0gMDsKICAgIHZhciBzZXJpZW4gPSBzZXJpZUtleXMubWFw
KGZ1bmN0aW9uKHNrKSB7CiAgICAgICAgdmFyIHdlcnRlID0ga2F0S2V5cy5tYXAoZnVuY3Rpb24o
Y2spIHsKICAgICAgICAgICAgdmFyIHYgPSBfYWdnKCh6ZWxsZW5bY2tdICYmIHplbGxlbltja11b
c2tdKSB8fCBbXSwga2VubnphaGwgPT09ICdhbnRlaWwnID8gJ2FuemFobCcgOiBrZW5uemFobCk7
CiAgICAgICAgICAgIGdlc2FtdCArPSAoa2VubnphaGwgPT09ICdhbnRlaWwnKSA/IHYgOiAwOwog
ICAgICAgICAgICByZXR1cm4gdjsKICAgICAgICB9KTsKICAgICAgICByZXR1cm4geyBuYW1lOiBz
ZXJpZU1ldGFbc2tdLmxhYmVsLCB3ZXJ0ZTogd2VydGUgfTsKICAgIH0pOwoKICAgIC8vIEFudGVp
bCAoJSk6IGplZGUgWmVsbGUgcmVsYXRpdiB6dXIgR2VzYW10c3VtbWUgYWxsZXIgWmVsbGVuLgog
ICAgaWYgKGtlbm56YWhsID09PSAnYW50ZWlsJyAmJiBnZXNhbXQgPiAwKSB7CiAgICAgICAgc2Vy
aWVuLmZvckVhY2goZnVuY3Rpb24ocykgewogICAgICAgICAgICBzLndlcnRlID0gcy53ZXJ0ZS5t
YXAoZnVuY3Rpb24odil7IHJldHVybiBNYXRoLnJvdW5kKHYgLyBnZXNhbXQgKiAxMDAwKSAvIDEw
OyB9KTsKICAgICAgICB9KTsKICAgIH0KCiAgICAvLyBTb3J0aWVydW5nIGRlciBLYXRlZ29yaWVu
IG5hY2ggV2VydCAoUmFua2luZykgKyBUb3BOLgogICAgdmFyIGVyZ2VibmlzID0gX3NvcnRVbmRU
b3Aoc3BlYywga2F0S2V5cywgY2F0TWV0YSwgc2VyaWVuKTsKCiAgICByZXR1cm4gewogICAgICAg
IGlzdExlZXI6IGZhbHNlLAogICAgICAgIGthdGVnb3JpZW46IGVyZ2VibmlzLmthdGVnb3JpZW4s
CiAgICAgICAgc2VyaWVuOiBlcmdlYm5pcy5zZXJpZW4sCiAgICAgICAgbWVocnNlcmlnOiAhIWRp
bVMsCiAgICAgICAgZWluaGVpdDogKGtlbm56YWhsRmluZGVuKGtlbm56YWhsKSB8fCB7fSkuZWlu
aGVpdCB8fCAnJywKICAgICAgICBkaW1YTGFiZWw6IGRpbVgubGFiZWwsCiAgICAgICAgZGltU2Vy
aWVMYWJlbDogZGltUyA/IGRpbVMubGFiZWwgOiAnJywKICAgICAgICBrZW5uemFobExhYmVsOiAo
a2VubnphaGxGaW5kZW4oa2VubnphaGwpIHx8IHt9KS5sYWJlbCB8fCAnJwogICAgfTsKfQoKZnVu
Y3Rpb24gX2RpbUxhYmVsKGRpbSwga2V5LCBmYWt0KSB7CiAgICBpZiAoZGltLmxhYmVsMikgcmV0
dXJuIGRpbS5sYWJlbDIoa2V5LCBmYWt0KTsKICAgIHJldHVybiBrZXk7Cn0KCmZ1bmN0aW9uIF9z
b3J0S2F0ZWdvcmllbihrZXlzLCBtZXRhLCBkaW0pIHsKICAgIGlmIChkaW0gJiYgZGltLm9yZG51
bmcgPT09ICdmaXgnICYmIGRpbS5maXhSZWloZSkgewogICAgICAgIHZhciByZWloZSA9IGRpbS5m
aXhSZWloZTsKICAgICAgICByZXR1cm4ga2V5cy5zbGljZSgpLnNvcnQoZnVuY3Rpb24oYSwgYikg
ewogICAgICAgICAgICB2YXIgaWEgPSByZWloZS5pbmRleE9mKGEpLCBpYiA9IHJlaWhlLmluZGV4
T2YoYik7CiAgICAgICAgICAgIGlmIChpYSA8IDApIGlhID0gOTk5OyBpZiAoaWIgPCAwKSBpYiA9
IDk5OTsKICAgICAgICAgICAgcmV0dXJuIGlhIC0gaWIgfHwgYS5sb2NhbGVDb21wYXJlKGIsICdk
ZScpOwogICAgICAgIH0pOwogICAgfQogICAgaWYgKGRpbSAmJiBkaW0ub3JkbnVuZyA9PT0gJ3pl
aXQnKSB7CiAgICAgICAgcmV0dXJuIGtleXMuc2xpY2UoKS5zb3J0KGZ1bmN0aW9uKGEsIGIpeyBy
ZXR1cm4gYSA8IGIgPyAtMSA6IChhID4gYiA/IDEgOiAwKTsgfSk7CiAgICB9CiAgICByZXR1cm4g
a2V5cy5zbGljZSgpLnNvcnQoZnVuY3Rpb24oYSwgYil7IHJldHVybiBhLmxvY2FsZUNvbXBhcmUo
YiwgJ2RlJyk7IH0pOwp9CgpmdW5jdGlvbiBfc29ydFVuZFRvcChzcGVjLCBrYXRLZXlzLCBjYXRN
ZXRhLCBzZXJpZW4pIHsKICAgIHZhciBzb3J0ID0gc3BlYy5zb3J0IHx8ICdsYWJlbCc7CiAgICB2
YXIgaWR4UmVpaGUgPSBrYXRLZXlzLm1hcChmdW5jdGlvbihfLCBpKXsgcmV0dXJuIGk7IH0pOwoK
ICAgIGlmIChzb3J0ID09PSAnd2VydC1kZXNjJyB8fCBzb3J0ID09PSAnd2VydC1hc2MnKSB7CiAg
ICAgICAgdmFyIHN1bW1lbiA9IGthdEtleXMubWFwKGZ1bmN0aW9uKF8sIGkpIHsKICAgICAgICAg
ICAgdmFyIHMgPSAwOyBzZXJpZW4uZm9yRWFjaChmdW5jdGlvbihzZSl7IHMgKz0gc2Uud2VydGVb
aV0gfHwgMDsgfSk7IHJldHVybiBzOwogICAgICAgIH0pOwogICAgICAgIGlkeFJlaWhlLnNvcnQo
ZnVuY3Rpb24oYSwgYikgewogICAgICAgICAgICByZXR1cm4gc29ydCA9PT0gJ3dlcnQtZGVzYycg
PyBzdW1tZW5bYl0gLSBzdW1tZW5bYV0gOiBzdW1tZW5bYV0gLSBzdW1tZW5bYl07CiAgICAgICAg
fSk7CiAgICB9CiAgICAvLyAoc29uc3Q6IFJlaWhlbmZvbGdlIGF1cyBfc29ydEthdGVnb3JpZW4g
YmVpYmVoYWx0ZW4pCgogICAgdmFyIHRvcE4gPSBzcGVjLnRvcE4gfHwgMDsKICAgIGlmICh0b3BO
ID4gMCAmJiBpZHhSZWloZS5sZW5ndGggPiB0b3BOKSBpZHhSZWloZSA9IGlkeFJlaWhlLnNsaWNl
KDAsIHRvcE4pOwoKICAgIHZhciBrYXRlZ29yaWVuID0gaWR4UmVpaGUubWFwKGZ1bmN0aW9uKGkp
eyByZXR1cm4geyBrZXk6IGthdEtleXNbaV0sIGxhYmVsOiBjYXRNZXRhW2thdEtleXNbaV1dLmxh
YmVsIH07IH0pOwogICAgdmFyIG5ldWVTZXJpZW4gPSBzZXJpZW4ubWFwKGZ1bmN0aW9uKHNlKSB7
CiAgICAgICAgcmV0dXJuIHsgbmFtZTogc2UubmFtZSwgd2VydGU6IGlkeFJlaWhlLm1hcChmdW5j
dGlvbihpKXsgcmV0dXJuIHNlLndlcnRlW2ldOyB9KSB9OwogICAgfSk7CiAgICByZXR1cm4geyBr
YXRlZ29yaWVuOiBrYXRlZ29yaWVuLCBzZXJpZW46IG5ldWVTZXJpZW4gfTsKfQoKLy8gLS0tLS0g
U2NhdHRlcjogendlaSBQZXJzb25lbi1LZW5uemFobGVuIGdlZ2VuZWluYW5kZXIgLS0tLS0KLy8g
c2NhdHRlclgvc2NhdHRlclkgcmVmZXJlbnppZXJlbiBQRVJTT05fTUFTU0UgKFphZWhsdW5nZW4g
cHJvIFBlcnNvbiB1ZWJlciBkaWUKLy8gZ2VmaWx0ZXJ0ZW4gRmFrdGVuIOKAlCB6LkIuIE5hY2h0
ZGllbnN0ZSB2cy4gVXJsYXVic3RhZ2UgamUgUGVyc29uKS4KCmV4cG9ydCB2YXIgUEVSU09OX01B
U1NFID0gWwogICAgeyBrZXk6ICdkaWVuc3RlJywgICAgIGxhYmVsOiAnRGllbnN0ZSBnZXNhbXQn
LCB0ZXN0OiBmdW5jdGlvbihmKXsgcmV0dXJuIGYuaXN0RGllbnN0OyB9IH0sCiAgICB7IGtleTog
J2ZydWVoJywgICAgICAgbGFiZWw6ICdGcsO8aGRpZW5zdGUnLCAgICB0ZXN0OiBmdW5jdGlvbihm
KXsgcmV0dXJuIGYuc2NoaWNodCA9PT0gJ0YnOyB9IH0sCiAgICB7IGtleTogJ3NwYWV0JywgICAg
ICAgbGFiZWw6ICdTcMOkdGRpZW5zdGUnLCAgICB0ZXN0OiBmdW5jdGlvbihmKXsgcmV0dXJuIGYu
c2NoaWNodCA9PT0gJ1MnOyB9IH0sCiAgICB7IGtleTogJ25hY2h0JywgICAgICAgbGFiZWw6ICdO
YWNodGRpZW5zdGUnLCAgIHRlc3Q6IGZ1bmN0aW9uKGYpeyByZXR1cm4gZi5zY2hpY2h0ID09PSAn
Tic7IH0gfSwKICAgIHsga2V5OiAnd2UnLCAgICAgICAgICBsYWJlbDogJ1dFLURpZW5zdGUnLCAg
ICAgdGVzdDogZnVuY3Rpb24oZil7IHJldHVybiBmLmlzdERpZW5zdCAmJiBmLmlzdFdFOyB9IH0s
CiAgICB7IGtleTogJ2ZlaWVydGFnJywgICAgbGFiZWw6ICdGZWllcnRhZ3NkaWVuc3RlJywgdGVz
dDogZnVuY3Rpb24oZil7IHJldHVybiBmLmlzdERpZW5zdCAmJiBmLmlzdEZlaWVydGFnOyB9IH0s
CiAgICB7IGtleTogJ2ZlaWVydGFnTlJXJywgbGFiZWw6ICdOUlctRmVpZXJ0YWdzZGllbnN0ZScs
IHRlc3Q6IGZ1bmN0aW9uKGYpeyByZXR1cm4gZi5pc3REaWVuc3QgJiYgZi5mZWllcnRhZ1R5cCA9
PT0gJ25ydyc7IH0gfSwKICAgIHsga2V5OiAnZGdsJywgICAgICAgICBsYWJlbDogJ0RHTC1FaW5z
w6R0emUnLCAgIHRlc3Q6IGZ1bmN0aW9uKGYpeyByZXR1cm4gZi5yb2xsZSA9PT0gJ0RHTCc7IH0g
fSwKICAgIHsga2V5OiAndXJsYXViJywgICAgICBsYWJlbDogJ1VybGF1YnN0YWdlJywgICAgdGVz
dDogZnVuY3Rpb24oZil7IHJldHVybiBmLmNvZGUgPT09ICdVcmwnOyB9IH0sCiAgICB7IGtleTog
J2ZvcnRiaWxkdW5nJywgbGFiZWw6ICdGb3J0YmlsZHVuZycsICAgIHRlc3Q6IGZ1bmN0aW9uKGYp
eyByZXR1cm4gZi5rYXRlZ29yaWUgPT09ICdBdXMtL0ZvcnRiaWxkdW5nJzsgfSB9LAogICAgeyBr
ZXk6ICdmcmVpJywgICAgICAgIGxhYmVsOiAnRnJlaS1UYWdlJywgICAgICB0ZXN0OiBmdW5jdGlv
bihmKXsgcmV0dXJuIGYua2F0ZWdvcmllID09PSAnRnJlaSc7IH0gfQpdOwpleHBvcnQgZnVuY3Rp
b24gcGVyc29uTWFzc0ZpbmRlbihrZXkpIHsKICAgIGZvciAodmFyIGkgPSAwOyBpIDwgUEVSU09O
X01BU1NFLmxlbmd0aDsgaSsrKSBpZiAoUEVSU09OX01BU1NFW2ldLmtleSA9PT0ga2V5KSByZXR1
cm4gUEVSU09OX01BU1NFW2ldOwogICAgcmV0dXJuIG51bGw7Cn0KCmZ1bmN0aW9uIF9hdXN3ZXJ0
ZW5TY2F0dGVyKHNwZWMsIGZha3RlbikgewogICAgdmFyIG14ID0gcGVyc29uTWFzc0ZpbmRlbihz
cGVjLnNjYXR0ZXJYKSB8fCBQRVJTT05fTUFTU0VbM107IC8vIG5hY2h0CiAgICB2YXIgbXkgPSBw
ZXJzb25NYXNzRmluZGVuKHNwZWMuc2NhdHRlclkpIHx8IFBFUlNPTl9NQVNTRVs2XTsgLy8gdXJs
YXViCiAgICB2YXIgcHJvUGVyc29uID0ge307CiAgICBmYWt0ZW4uZm9yRWFjaChmdW5jdGlvbihm
KSB7CiAgICAgICAgdmFyIGUgPSBwcm9QZXJzb25bZi5wZXJzb25JZF0gfHwgKHByb1BlcnNvbltm
LnBlcnNvbklkXSA9IHsgbGFiZWw6IGYucGVyc29uTGFiZWwsIHg6IDAsIHk6IDAgfSk7CiAgICAg
ICAgaWYgKG14LnRlc3QoZikpIGUueCsrOwogICAgICAgIGlmIChteS50ZXN0KGYpKSBlLnkrKzsK
ICAgIH0pOwogICAgdmFyIHB1bmt0ZSA9IE9iamVjdC5rZXlzKHByb1BlcnNvbikubWFwKGZ1bmN0
aW9uKHBpZCl7IHJldHVybiBwcm9QZXJzb25bcGlkXTsgfSk7CiAgICByZXR1cm4gewogICAgICAg
IGlzdExlZXI6IHB1bmt0ZS5sZW5ndGggPT09IDAsCiAgICAgICAgcHVua3RlOiBwdW5rdGUsCiAg
ICAgICAga2F0ZWdvcmllbjogW10sIHNlcmllbjogW10sCiAgICAgICAgYWNoc2VYOiBteC5sYWJl
bCwgYWNoc2VZOiBteS5sYWJlbAogICAgfTsKfQo=
### FILE: js/sync.js | 19474
Ly8gPT09IHN5bmMuanMgPT09Ci8vIExpdmUtU3luYy1DbGllbnQgKyBaZWxsLUxvY2stTWFuYWdl
bWVudCBpbiBlaW5lbSBNb2R1bC4KLy8KLy8gTGl2ZS1TeW5jOiBXZWItV29ya2VyLWJhc2llcnRl
cyBQb2xsaW5nLCBDcm9zcy1Ccm93c2VyLUF1ZmxldWNodGVuIHZvbgovLyByZW1vdGUtZ2VhZW5k
ZXJ0ZW4gWmVsbGVuLCBTeW5jLVRvYXN0LURlYm91bmNlLgovLyBaZWxsLUxvY2s6IHBlc3NpbWlz
dGljIENlbGwtTG9jay1DbGllbnQgKEFjcXVpcmUvRm9yY2UvUmVsZWFzZS9IZWFydGJlYXQpLAov
LyBEaWZmLUFud2VuZHVuZyBmcmVtZGVyIExvY2tzIGF1ZnMgR3JpZCwgVG9vbHRpcC1UZXh0ZSBm
dWVyIGxvY2tlZCBaZWxsZW4uCi8vCi8vIENyb3NzLU1vZHVsLUhvb2tzOiBlZGl0b3JTY2hsaWVz
c2VuICsgemVsbGVWaXN1ZWxsQWt0dWFsaXNpZXJlbiB3ZXJkZW4KLy8genVyIExhdWZ6ZWl0IGlu
aml6aWVydCAoWnlrbGVuIHZlcm1laWRlbiwgd2VpbCBncmlkX2VkaXRvci5qcyBhdWNoCi8vIGhp
ZXJoaW4gaW1wb3J0aWVydCkuCgppbXBvcnQgeyBaIH0gZnJvbSAnLi9jb3JlX3N0YXRlLmpzJzsK
aW1wb3J0IHsgZGF0dW1Gb3JtYXRERSwgYW56ZWlnZU5hbWVGdWVyS2VubnVuZyB9IGZyb20gJy4v
Y29yZV91dGlsLmpzJzsKaW1wb3J0IHsgYXBpU2FmZSB9IGZyb20gJy4vY29yZV9hcGkuanMnOwpp
bXBvcnQgeyB0b2FzdCwgYmVzdGFldGlnZW4gfSBmcm9tICcuL3VpX2RpYWxvZy5qcyc7CgpleHBv
cnQgdmFyIHN5bmNIb29rcyA9IHsKICAgIGVkaXRvclNjaGxpZXNzZW46IG51bGwsICAgICAgICAg
ICAvLyAob2huZVJlbGVhc2U6IGJvb2wpIC0+IHZvaWQKICAgIHplbGxlVmlzdWVsbEFrdHVhbGlz
aWVyZW46IG51bGwsICAvLyBncmlkL3JlbmRlci5qcwogICAgaGlud2Vpc2VBa3R1YWxpc2llcnQ6
IG51bGwgICAgICAgIC8vIChoaW53ZWlzZTogYXJyYXkpIC0+IHZvaWQgKGhpbndlaXNlLmpzIHZp
YSBhcHAuanMpCn07CgovLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci8vIExJVkUtU1lOQwovLyA9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09CgovLyA9PT09PSBTeW5jLVRvYXN0LURlYm91bmNlID09PT09Ci8vIE1l
aHJlcmUgTGl2ZS1FdmVudHMgaW4ga3VyemVyIEZvbGdlIHp1c2FtbWVuZmFzc2VuLCBzdGF0dCBm
dWVyIGplZGUKLy8gQWVuZGVydW5nIGVpbmVuIHNlcGFyYXRlbiBUb2FzdC4KCnZhciBTWU5DX1RP
QVNUX1BVRkZFUiA9IFtdOwp2YXIgU1lOQ19UT0FTVF9USU1FUiA9IG51bGw7CgpleHBvcnQgZnVu
Y3Rpb24gc3luY1RvYXN0RGVib3VuY2VkKHRleHQpIHsKICAgIFNZTkNfVE9BU1RfUFVGRkVSLnB1
c2godGV4dCk7CiAgICBpZiAoU1lOQ19UT0FTVF9USU1FUikgcmV0dXJuOwogICAgU1lOQ19UT0FT
VF9USU1FUiA9IHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7CiAgICAgICAgU1lOQ19UT0FTVF9USU1F
UiA9IG51bGw7CiAgICAgICAgdmFyIGFuemFobCA9IFNZTkNfVE9BU1RfUFVGRkVSLmxlbmd0aDsK
ICAgICAgICBpZiAoYW56YWhsID09PSAxKSB0b2FzdChTWU5DX1RPQVNUX1BVRkZFUlswXSwgJ2lu
Zm8nKTsKICAgICAgICBlbHNlIGlmIChhbnphaGwgPiAxKSB0b2FzdChhbnphaGwgKyAnIExpdmUt
w4RuZGVydW5nZW4uIExldHp0ZSDDhG5kZXJ1bmc6ICcgKyBTWU5DX1RPQVNUX1BVRkZFUlthbnph
aGwgLSAxXSwgJ2luZm8nKTsKICAgICAgICBTWU5DX1RPQVNUX1BVRkZFUiA9IFtdOwogICAgfSwg
MzUwKTsKfQoKLy8gPT09PT0gVmlzdWVsbGVzIEF1ZmxldWNodGVuIChDU1MtS2xhc3NlIHplbGxl
LWZsYXNoKSA9PT09PQoKZXhwb3J0IGZ1bmN0aW9uIHN5bmNGbGFzaChlbGVtLCBrbGFzc2UpIHsK
ICAgIGlmICghZWxlbSkgcmV0dXJuOwogICAgdmFyIGsgPSBrbGFzc2UgfHwgJ3plbGxlLWZsYXNo
JzsKICAgIGVsZW0uY2xhc3NMaXN0LnJlbW92ZShrKTsKICAgIHZvaWQgZWxlbS5vZmZzZXRXaWR0
aDsgIC8vIFJlZmxvdywgZGFtaXQgZGllIEFuaW1hdGlvbiBuZXUgc3RhcnRldAogICAgZWxlbS5j
bGFzc0xpc3QuYWRkKGspOwogICAgLy8gRGF1ZXIgYXVzIGRlbSBFcnNjaGVpbnVuZ3NiaWxkLUVk
aXRvciBsZXNlbiAoLS1tc2YtZGF1ZXIgaW4gbXMsCiAgICAvLyBEZWZhdWx0IDE1MDAgbXMpLiAr
NTAgbXMgU2ljaGVyaGVpdHMtUG9sc3RlciwgZGFtaXQgZGVyIGZpbmFsZQogICAgLy8gS2V5ZnJh
bWUgbm9jaCBncmVpZnQsIGJldm9yIHdpciBkaWUgS2xhc3NlIGVudGZlcm5lbi4KICAgIHZhciBk
YXVlciA9IHBhcnNlSW50KGdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50
KS5nZXRQcm9wZXJ0eVZhbHVlKCctLW1zZi1kYXVlcicpLCAxMCk7CiAgICBpZiAoaXNOYU4oZGF1
ZXIpIHx8IGRhdWVyIDwgMjAwKSBkYXVlciA9IDE1MDA7CiAgICBzZXRUaW1lb3V0KGZ1bmN0aW9u
KCkgeyBlbGVtLmNsYXNzTGlzdC5yZW1vdmUoayk7IH0sIGRhdWVyICsgNTApOwp9CgpleHBvcnQg
ZnVuY3Rpb24gc3luY0ZsYXNoWmVsbGUoZFN0ciwgcGlkKSB7CiAgICB2YXIgeiA9IGRvY3VtZW50
LnF1ZXJ5U2VsZWN0b3IoJy5ncmlkLXplbGxlW2RhdGEtZGF0dW09IicgKyBkU3RyICsgJyJdW2Rh
dGEtcGVyc29uPSInICsgcGlkICsgJyJdJyk7CiAgICBzeW5jRmxhc2goeiwgJ3plbGxlLWZsYXNo
Jyk7Cn0KCi8vID09PT09IENoYW5nZS1Mb2ctQW53ZW5kdW5nID09PT09CgpleHBvcnQgZnVuY3Rp
b24gc3luY0NoYW5nZXNBbndlbmRlbihjaGFuZ2VzKSB7CiAgICBpZiAoIWNoYW5nZXMgfHwgIWNo
YW5nZXMubGVuZ3RoKSByZXR1cm47CiAgICB2YXIgYmVudXR6ZXJMb3dlciA9IChaLmJlbnV0emVy
IHx8ICcnKS50b0xvd2VyQ2FzZSgpOwogICAgdmFyIGJlbnV0emVyS3VyeiA9IGJlbnV0emVyTG93
ZXIuaW5kZXhPZignXFwnKSA+PSAwID8gYmVudXR6ZXJMb3dlci5zcGxpdCgnXFwnKS5wb3AoKSA6
IGJlbnV0emVyTG93ZXI7CiAgICBmb3IgKHZhciBpID0gMDsgaSA8IGNoYW5nZXMubGVuZ3RoOyBp
KyspIHsKICAgICAgICB2YXIgYyA9IGNoYW5nZXNbaV07CiAgICAgICAgdmFyIHZvbiA9IChjLnZv
biB8fCAnJykudG9Mb3dlckNhc2UoKTsKICAgICAgICB2YXIgZWlnZW4gPSAodm9uID09PSBiZW51
dHplckxvd2VyIHx8IHZvbiA9PT0gYmVudXR6ZXJLdXJ6KTsKICAgICAgICBpZiAoYy5raW5kID09
PSAnemVsbGUnKSB7CiAgICAgICAgICAgIGlmICghWi5wbGFudW5nLmVpbnRyYWVnZSkgWi5wbGFu
dW5nLmVpbnRyYWVnZSA9IHt9OwogICAgICAgICAgICBpZiAoIVoucGxhbnVuZy5laW50cmFlZ2Vb
Yy5kYXR1bV0pIFoucGxhbnVuZy5laW50cmFlZ2VbYy5kYXR1bV0gPSB7fTsKICAgICAgICAgICAg
aWYgKGMubmV1KSBaLnBsYW51bmcuZWludHJhZWdlW2MuZGF0dW1dW2MucGVyc29uSWRdID0gYy5u
ZXU7CiAgICAgICAgICAgIGVsc2UgZGVsZXRlIFoucGxhbnVuZy5laW50cmFlZ2VbYy5kYXR1bV1b
Yy5wZXJzb25JZF07CiAgICAgICAgICAgIGlmICh0eXBlb2Ygc3luY0hvb2tzLnplbGxlVmlzdWVs
bEFrdHVhbGlzaWVyZW4gPT09ICdmdW5jdGlvbicpIHsKICAgICAgICAgICAgICAgIHN5bmNIb29r
cy56ZWxsZVZpc3VlbGxBa3R1YWxpc2llcmVuKGMuZGF0dW0sIGMucGVyc29uSWQsIGMubmV1IHx8
ICcnKTsKICAgICAgICAgICAgfQogICAgICAgICAgICBpZiAoIWVpZ2VuKSB7CiAgICAgICAgICAg
ICAgICBzeW5jRmxhc2haZWxsZShjLmRhdHVtLCBjLnBlcnNvbklkKTsKICAgICAgICAgICAgICAg
IHZhciBsYWJlbCA9IGMubmV1ID8gYy5uZXUgOiAnKGxlZXIpJzsKICAgICAgICAgICAgICAgIHZh
ciByb2xsZUhpbndlaXMgPSAoYy5yb2xsZSAmJiBjLnJvbGxlICE9PSAncmVndWxhZXInKSA/ICgn
IFsnICsgYy5yb2xsZSArICddJykgOiAnJzsKICAgICAgICAgICAgICAgIHN5bmNUb2FzdERlYm91
bmNlZChhbnplaWdlTmFtZUZ1ZXJLZW5udW5nKGMudm9uKSArIHJvbGxlSGlud2VpcyArICcgc2V0
enRlICcgKyBsYWJlbCArICcgYW0gJyArIGRhdHVtRm9ybWF0REUoYy5kYXR1bSkpOwogICAgICAg
ICAgICB9CiAgICAgICAgfSBlbHNlIGlmIChjLmtpbmQgPT09ICdrb21tZW50YXInKSB7CiAgICAg
ICAgICAgIGlmICghWi5wbGFudW5nLmtvbW1lbnRhcmUpIFoucGxhbnVuZy5rb21tZW50YXJlID0g
e307CiAgICAgICAgICAgIGlmICghWi5wbGFudW5nLmtvbW1lbnRhcmVbYy5kYXR1bV0pIFoucGxh
bnVuZy5rb21tZW50YXJlW2MuZGF0dW1dID0ge307CiAgICAgICAgICAgIGlmIChjLm5ldSkgewog
ICAgICAgICAgICAgICAgWi5wbGFudW5nLmtvbW1lbnRhcmVbYy5kYXR1bV1bYy5wZXJzb25JZF0g
PSB7CiAgICAgICAgICAgICAgICAgICAgdGV4dDogYy5uZXUsCiAgICAgICAgICAgICAgICAgICAg
Z2VhZW5kZXJ0QW06IGMuemVpdHN0ZW1wZWwgfHwgbmV3IERhdGUoKS50b0lTT1N0cmluZygpLAog
ICAgICAgICAgICAgICAgICAgIGdlYWVuZGVydFZvbjogYy52b24gfHwgJycKICAgICAgICAgICAg
ICAgIH07CiAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICBkZWxldGUgWi5wbGFu
dW5nLmtvbW1lbnRhcmVbYy5kYXR1bV1bYy5wZXJzb25JZF07CiAgICAgICAgICAgIH0KICAgICAg
ICAgICAgaWYgKHR5cGVvZiBzeW5jSG9va3MuemVsbGVWaXN1ZWxsQWt0dWFsaXNpZXJlbiA9PT0g
J2Z1bmN0aW9uJykgewogICAgICAgICAgICAgICAgc3luY0hvb2tzLnplbGxlVmlzdWVsbEFrdHVh
bGlzaWVyZW4oYy5kYXR1bSwgYy5wZXJzb25JZCwgKChaLnBsYW51bmcuZWludHJhZWdlIHx8IHt9
KVtjLmRhdHVtXSB8fCB7fSlbYy5wZXJzb25JZF0gfHwgJycpOwogICAgICAgICAgICB9CiAgICAg
ICAgICAgIGlmICghZWlnZW4pIHsKICAgICAgICAgICAgICAgIHN5bmNGbGFzaFplbGxlKGMuZGF0
dW0sIGMucGVyc29uSWQpOwogICAgICAgICAgICAgICAgc3luY1RvYXN0RGVib3VuY2VkKGFuemVp
Z2VOYW1lRnVlcktlbm51bmcoYy52b24pICsgJyDDpG5kZXJ0ZSBLb21tZW50YXIgYW0gJyArIGRh
dHVtRm9ybWF0REUoYy5kYXR1bSkpOwogICAgICAgICAgICB9CiAgICAgICAgfSBlbHNlIGlmIChj
LmtpbmQgPT09ICdsb2NrX2ZvcmNlJykgewogICAgICAgICAgICBpZiAoIWVpZ2VuICYmIFouemVs
bExvY2sgJiYgWi56ZWxsTG9jay5kYXR1bSA9PT0gYy5kYXR1bSAmJiBTdHJpbmcoWi56ZWxsTG9j
ay5wZXJzb25JZCkgPT09IFN0cmluZyhjLnBlcnNvbklkKSkgewogICAgICAgICAgICAgICAgdG9h
c3QoJ0RlaW5lIEJlYXJiZWl0dW5ncy1TcGVycmUgd3VyZGUgdm9uICcgKyBhbnplaWdlTmFtZUZ1
ZXJLZW5udW5nKGMudm9uKSArICcgw7xiZXJub21tZW4uJywgJ3dhcm51bmcnKTsKICAgICAgICAg
ICAgICAgIFouemVsbExvY2sudG9rZW4gPSBudWxsOwogICAgICAgICAgICAgICAgaWYgKHR5cGVv
ZiBzeW5jSG9va3MuZWRpdG9yU2NobGllc3NlbiA9PT0gJ2Z1bmN0aW9uJykgewogICAgICAgICAg
ICAgICAgICAgIHN5bmNIb29rcy5lZGl0b3JTY2hsaWVzc2VuKHRydWUpOwogICAgICAgICAgICAg
ICAgfQogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQp9CgovLyA9PT09PSBTeW5jLVdvcmtl
ciBzdGFydGVuID09PT09CgpleHBvcnQgZnVuY3Rpb24gc3luY1dvcmtlclN0YXJ0ZW4oKSB7CiAg
ICBpZiAoWi5zeW5jV29ya2VyKSByZXR1cm47CiAgICB0cnkgewogICAgICAgIC8vIENhY2hlLUJ1
c3RlciB2ZXJoaW5kZXJ0LCBkYXNzIGVpbiBCcm93c2VyIGVpbmUgYWx0ZSBzeW5jLXdvcmtlci5q
cwogICAgICAgIC8vIGF1cyBkZW0gSFRUUC1DYWNoZSBudXR6dCDigJQgYmVpIFdvcmtlci1Mb2dp
ay1BZW5kZXJ1bmdlbiB3YWVyZSBkYXMKICAgICAgICAvLyBzb25zdCBlaW4gUGhhbnRvbS1CdWcg
KFdvcmtlciBsYWV1ZnQsIGFiZXIgYWx0ZSBDb2RlLVBmYWRlKS4KICAgICAgICAvLyBEZXIgUXVl
cnktU3RyaW5nIHdpcmQgbmljaHQgdm9tIFNlcnZlciBpbnRlcnByZXRpZXJ0LgogICAgICAgIFou
c3luY1dvcmtlciA9IG5ldyBXb3JrZXIoJ3N5bmMtd29ya2VyLmpzP3Y9MjAyNi0wNi0xNS1zZXEn
KTsKICAgICAgICBjb25zb2xlLmluZm8oJ1tWSTNdIHN5bmMtd29ya2VyIGVyc3RlbGx0Jyk7CiAg
ICAgICAgLy8gV2F0Y2hkb2c6IHdlbm4gbmFjaCA4IHMga2VpbiBQdWxzIG9kZXIgbm9jaCBrZWlu
IFN5bmMtUmVzdWx0YXQKICAgICAgICAvLyBhbmdla29tbWVuIGlzdCwgaGF0IGRlciBXb3JrZXIg
ZW50d2VkZXIgbmljaHQgZ2VzdGFydGV0IG9kZXIgZGFzCiAgICAgICAgLy8gUG9sbGluZyBsYWV1
ZnQgaW5zIExlZXJlLiBUb2FzdCBmdWVyIFN1cGVyVXNlciwgZGFtaXQga2xhciBpc3QKICAgICAg
ICAvLyB3byBkZXIgQnVnIHNpdHp0LgogICAgICAgIHZhciBzdGFydFRzID0gRGF0ZS5ub3coKTsK
ICAgICAgICBaLnN5bmNXb3JrZXIub25lcnJvciA9IGZ1bmN0aW9uKGVycikgewogICAgICAgICAg
ICBjb25zb2xlLmVycm9yKCdbVkkzXSBzeW5jLXdvcmtlciBvbmVycm9yOicsIGVyciAmJiAoZXJy
Lm1lc3NhZ2UgfHwgZXJyLmZpbGVuYW1lICsgJzonICsgZXJyLmxpbmVubykgfHwgZXJyKTsKICAg
ICAgICAgICAgaWYgKFoucmVjaHRlICYmIFoucmVjaHRlLmlzdFN1cGVyVXNlcikgewogICAgICAg
ICAgICAgICAgdG9hc3QoJ1N5bmMtV29ya2VyLUZlaGxlciDigJQgRGV0YWlscyBpbiBEZXZUb29s
cy1Lb25zb2xlJywgJ2ZlaGxlcicpOwogICAgICAgICAgICB9CiAgICAgICAgfTsKICAgICAgICBa
LnN5bmNXb3JrZXIub25tZXNzYWdlID0gZnVuY3Rpb24oZSkgewogICAgICAgICAgICBpZiAoIWUu
ZGF0YSkgcmV0dXJuOwogICAgICAgICAgICBpZiAoZS5kYXRhLnR5cGUgPT09ICdwdWxzJykgewog
ICAgICAgICAgICAgICAgY29uc29sZS5pbmZvKCdbVkkzXSBzeW5jLXdvcmtlciBwdWxzJyArIChl
LmRhdGEucGhhc2UgPyAnICgnK2UuZGF0YS5waGFzZSsnKScgOiAnJykgKyAnIG5hY2ggJyArIChE
YXRlLm5vdygpIC0gc3RhcnRUcykgKyAnIG1zJyk7CiAgICAgICAgICAgICAgICBaLnN5bmNXb3Jr
ZXJMZWJ0ID0gdHJ1ZTsKICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgfQogICAg
ICAgICAgICBpZiAoZS5kYXRhLnR5cGUgPT09ICdzeW5jJykgewogICAgICAgICAgICAgICAgaWYg
KGUuZGF0YS5zZXJ2ZXJUcykgWi5sYXN0U3luY1RzID0gZS5kYXRhLnNlcnZlclRzOwogICAgICAg
ICAgICAgICAgaWYgKGUuZGF0YS5zZXJ2ZXJTZXEgIT0gbnVsbCkgWi5sYXN0U3luY1NlcSA9IGUu
ZGF0YS5zZXJ2ZXJTZXE7CiAgICAgICAgICAgICAgICBpZiAoZS5kYXRhLmNoYW5nZXMpIHN5bmND
aGFuZ2VzQW53ZW5kZW4oZS5kYXRhLmNoYW5nZXMpOwogICAgICAgICAgICAgICAgaWYgKGUuZGF0
YS5sb2NrcykgICBsb2NrU3RhdGVBbndlbmRlbihlLmRhdGEubG9ja3MpOwogICAgICAgICAgICAg
ICAgLy8gSGlud2Vpcy1TeXN0ZW06IExpc3RlIHZvbSBTZXJ2ZXIgdWViZXJuZWhtZW4gKyBCYW5u
ZXIvQmFkZ2UKICAgICAgICAgICAgICAgIC8vIG5ldSByZW5kZXJuLiBzeW5jSG9va3MuaGlud2Vp
c2VBa3R1YWxpc2llcnQgd2lyZCBpbiBhcHAuanMKICAgICAgICAgICAgICAgIC8vIG1pdCBoaW53
ZWlzZS5qcyB2ZXJkcmFodGV0IChDcm9zcy1Nb2R1bCBvaG5lIHppcmt1bGFlcmVuIEltcG9ydCku
CiAgICAgICAgICAgICAgICBpZiAoZS5kYXRhLmhpbndlaXNlICYmIHN5bmNIb29rcy5oaW53ZWlz
ZUFrdHVhbGlzaWVydCkgewogICAgICAgICAgICAgICAgICAgIHN5bmNIb29rcy5oaW53ZWlzZUFr
dHVhbGlzaWVydChlLmRhdGEuaGlud2Vpc2UpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAg
ICB9IGVsc2UgaWYgKGUuZGF0YS50eXBlID09PSAncGVybWlzc2lvbl9sb3N0JykgewogICAgICAg
ICAgICAgICAgLy8gQXVkaXQtUGhhc2UgQS40ICgyMDI2LTA1LTIxKTogV29ya2VyIGhhdCBkcmVp
IE1hbCBpbiBGb2xnZQogICAgICAgICAgICAgICAgLy8gNDAzIHZvbiAvYXBpL3BsYW51bmcvY2hh
bmdlcyBvZGVyIC9hcGkvbG9jay96ZWxsZW4gZXJoYWx0ZW4uCiAgICAgICAgICAgICAgICAvLyBW
ZXJtdXRsaWNoIGhhdCBlaW4gYW5kZXJlciBTVSBkaWUgUm9sbGUgZW50em9nZW4g4oCUIFVzZXIK
ICAgICAgICAgICAgICAgIC8vIG11c3MgbmV1IGxhZGVuLCBkYW1pdCBaLnJlY2h0ZSBrb3JyZWt0
IGFrdHVhbGlzaWVydCB3aXJkLgogICAgICAgICAgICAgICAgLy8KICAgICAgICAgICAgICAgIC8v
IFVYLUF1ZGl0IFNwcmludCAxLjYgKDIwMjYtMDUtMjkpOiBUb2FzdCB2ZXJzY2h3aW5kZXQgbmFj
aCA0cwogICAgICAgICAgICAgICAgLy8gdW5kIGthbm4gw7xiZXJzZWhlbiB3ZXJkZW4g4oCUIHN0
YXR0ZGVzc2VuIG1vZGFsZXIgRGlhbG9nIG1pdAogICAgICAgICAgICAgICAgLy8gUmVsb2FkLUFj
dGlvbiwgZGFtaXQgZGVyIFVzZXIgYWt0aXYgcmVhZ2llcmVuIG11c3MuCiAgICAgICAgICAgICAg
ICBiZXN0YWV0aWdlbigKICAgICAgICAgICAgICAgICAgICAnRGVpbmUgQmVyZWNodGlndW5nIHd1
cmRlIHfDpGhyZW5kIGRlciBTaXR6dW5nIGdlw6RuZGVydC4gJyArCiAgICAgICAgICAgICAgICAg
ICAgJ0JpdHRlIGRpZSBTZWl0ZSBuZXUgbGFkZW4sIGRhbWl0IGRpZSBha3R1ZWxsZW4gUmVjaHRl
IGdyZWlmZW4uJywKICAgICAgICAgICAgICAgICAgICBmdW5jdGlvbigpIHsgbG9jYXRpb24ucmVs
b2FkKCk7IH0sCiAgICAgICAgICAgICAgICAgICAgeyB0aXRlbDogJ0JlcmVjaHRpZ3VuZyBnZcOk
bmRlcnQnLCBqYVRleHQ6ICdOZXUgbGFkZW4nIH0KICAgICAgICAgICAgICAgICk7CiAgICAgICAg
ICAgIH0KICAgICAgICB9OwogICAgICAgIFouc3luY1dvcmtlci5wb3N0TWVzc2FnZSh7IGNtZDog
J3N0YXJ0Jywgc2VpdDogWi5sYXN0U3luY1RzLCBzZWl0U2VxOiBaLmxhc3RTeW5jU2VxIH0pOwog
ICAgICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ3Zpc2liaWxpdHljaGFuZ2UnLCBmdW5j
dGlvbigpIHsKICAgICAgICAgICAgWi5zeW5jV29ya2VyLnBvc3RNZXNzYWdlKHsgY21kOiBkb2N1
bWVudC5oaWRkZW4gPyAncGF1c2UnIDogJ3Jlc3VtZScsIHNlaXQ6IFoubGFzdFN5bmNUcywgc2Vp
dFNlcTogWi5sYXN0U3luY1NlcSB9KTsKICAgICAgICB9KTsKICAgICAgICAvLyBXYXRjaGRvZzog
bmFjaCA4IHMgcHJ1ZWZlbiwgb2IgZGVyIFdvcmtlciBnZWFudHdvcnRldCBoYXQuIFdlbm4KICAg
ICAgICAvLyBuaWNodCwgbGF1dHN0YXJrIG1lbGRlbiDigJQgc29uc3Qgc3RpbGxlciBMaXZlLVN5
bmMtVG9kLgogICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7CiAgICAgICAgICAgIGlmICgh
Wi5zeW5jV29ya2VyTGVidCkgewogICAgICAgICAgICAgICAgY29uc29sZS5lcnJvcignW1ZJM10g
c3luYy13b3JrZXIgaGF0IG5hY2ggOCBzIG5vY2gga2VpbmVuIFB1bHMgZ2VzZW5kZXQg4oCUIFdv
cmtlciBzdGFydGV0IG5pY2h0IG9kZXIgcG9sbHQgbmljaHRzLicpOwogICAgICAgICAgICAgICAg
aWYgKFoucmVjaHRlICYmIFoucmVjaHRlLmlzdFN1cGVyVXNlcikgewogICAgICAgICAgICAgICAg
ICAgIHRvYXN0KCdMaXZlLVN5bmMgbMOkdWZ0IG5pY2h0IOKAlCBEZXRhaWxzIGluIERldlRvb2xz
LUtvbnNvbGUnLCAnZmVobGVyJyk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAg
ICAgICB9LCA4MDAwKTsKICAgIH0gY2F0Y2ggKGUpIHsKICAgICAgICAvLyBGYWxsYmFjazogUG9s
bGluZyBpbSBNYWludGhyZWFkICh6LkIuIGZpbGU6Ly8gc3RhdHQgaHR0cDovLykKICAgICAgICBz
ZXRJbnRlcnZhbChmdW5jdGlvbigpIHsKICAgICAgICAgICAgaWYgKGRvY3VtZW50LmhpZGRlbikg
cmV0dXJuOwogICAgICAgICAgICB2YXIgc3EgPSAoWi5sYXN0U3luY1NlcSAhPSBudWxsKSA/IFN0
cmluZyhaLmxhc3RTeW5jU2VxKSA6ICcnOwogICAgICAgICAgICBmZXRjaCgnL2FwaS9wbGFudW5n
L2NoYW5nZXM/c2VpdF9zZXE9JyArIGVuY29kZVVSSUNvbXBvbmVudChzcSkgKyAnJnNlaXQ9JyAr
IGVuY29kZVVSSUNvbXBvbmVudChaLmxhc3RTeW5jVHMgfHwgJycpKQogICAgICAgICAgICAgICAg
LnRoZW4oZnVuY3Rpb24ocikgeyByZXR1cm4gci5qc29uKCk7IH0pLnRoZW4oZnVuY3Rpb24oZCkg
ewogICAgICAgICAgICAgICAgICAgIGlmIChkLnNlcnZlclRzKSBaLmxhc3RTeW5jVHMgPSBkLnNl
cnZlclRzOwogICAgICAgICAgICAgICAgICAgIGlmIChkLnNlcnZlclNlcSAhPSBudWxsKSBaLmxh
c3RTeW5jU2VxID0gZC5zZXJ2ZXJTZXE7CiAgICAgICAgICAgICAgICAgICAgc3luY0NoYW5nZXNB
bndlbmRlbihkLmNoYW5nZXMgfHwgW10pOwogICAgICAgICAgICAgICAgfSkuY2F0Y2goZnVuY3Rp
b24oKSB7fSk7CiAgICAgICAgICAgIGZldGNoKCcvYXBpL2xvY2svemVsbGVuJykKICAgICAgICAg
ICAgICAgIC50aGVuKGZ1bmN0aW9uKHIpIHsgcmV0dXJuIHIuanNvbigpOyB9KS50aGVuKGZ1bmN0
aW9uKGQpIHsKICAgICAgICAgICAgICAgICAgICBsb2NrU3RhdGVBbndlbmRlbihkLmxvY2tzIHx8
IFtdKTsKICAgICAgICAgICAgICAgIH0pLmNhdGNoKGZ1bmN0aW9uKCkge30pOwogICAgICAgIH0s
IDMwMDApOwogICAgfQp9CgovLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci8vIFpFTEwtTE9DSwovLyA9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09CgovLyA9PT09PSBJbnRlci1UYWItTG9jay1Ccm9hZGNhc3QgKFNw
cmludCAzIOKAlCBSb2J1c3RoZWl0IDIwMjYtMDUtMjgpID09PT09Ci8vIFdlbm4gZGVyIGdsZWlj
aGUgV2luZG93cy1Vc2VyIGRpZSBBcHAgaW4gbWVocmVyZW4gQnJvd3Nlci1UYWJzIG9mZmVuIGhh
dAovLyAoei5CLiBlaW5lbiBUYWIgaW4gZGVyIFBsYW50YWZlbCwgZWluZW4gaW4gZGVyIFBlcnNv
bmFsdmVyd2FsdHVuZyksIGthbm4KLy8gamVkZXIgVGFiIGdsZWljaHplaXRpZyBhdWYgZGllc2Vs
YmUgWmVsbGUgTG9jay1BY3F1aXJlIHBvc3Rlbi4gU2VydmVyCi8vIHZlcmdsZWljaHQgbnVyICd1
c2VybmFtZSAtaWVxJywgZGFoZXIgYmVrb21tZW4gYmVpZGUgVGFicyBzY2hlaW5iYXIgRXJmb2xn
Ci8vIOKAlCBhYmVyIGRlciBUb2tlbiBhdXMgVGFiIEEgd2lyZCBkdXJjaCBkYXMgVG9rZW4gYXVz
IFRhYiBCIHVuYmVtZXJrdAovLyB1ZWJlcnNjaHJpZWJlbi4gSGVhcnRiZWF0IGF1cyBUYWIgQSB0
cmlmZnQgZGFubiBhdWYgNDA0ICgiZGVpbiBMb2NrIHdlZyIpLgovLyBNaXQgQnJvYWRjYXN0Q2hh
bm5lbCBrdWVuZGlnZW4gd2lyIEFjcXVpcmUvUmVsZWFzZSB6d2lzY2hlbiBUYWJzIGFuIHVuZAov
LyB3YXJuZW4gZGVuIFVzZXIgdm9yIChTZXJ2ZXItQWNxdWlyZSBsYWV1ZnQgdHJvdHpkZW0g4oCU
IENoYW5uZWwgaXN0IG51cgovLyBJbnRlci1UYWItU2ljaHQsIGtlaW5lIEF1dGgtUXVlbGxlKS4K
CnZhciBCQyA9ICh0eXBlb2YgQnJvYWRjYXN0Q2hhbm5lbCAhPT0gJ3VuZGVmaW5lZCcpID8gbmV3
IEJyb2FkY2FzdENoYW5uZWwoJ3ZpMy16ZWxsLWxvY2snKSA6IG51bGw7CnZhciBCQ19SRU1PVEVf
TE9DS1MgPSB7fTsgIC8vICdkYXR1bXxwaWQnIC0+IDEgKHZvbiBhbmRlcmVuIFRhYnMgZ2VtZWxk
ZXQpCgppZiAoQkMpIHsKICAgIEJDLm9ubWVzc2FnZSA9IGZ1bmN0aW9uKGV2KSB7CiAgICAgICAg
dmFyIG1zZyA9IGV2LmRhdGEgfHwge307CiAgICAgICAgaWYgKCFtc2cudHlwZSB8fCAhbXNnLmRh
dHVtIHx8IG1zZy5waWQgPT0gbnVsbCkgcmV0dXJuOwogICAgICAgIHZhciBrZXkgPSBtc2cuZGF0
dW0gKyAnfCcgKyBTdHJpbmcobXNnLnBpZCk7CiAgICAgICAgaWYgKG1zZy50eXBlID09PSAnYWNx
dWlyZWQnKSBCQ19SRU1PVEVfTE9DS1Nba2V5XSA9IDE7CiAgICAgICAgZWxzZSBpZiAobXNnLnR5
cGUgPT09ICdyZWxlYXNlZCcpIGRlbGV0ZSBCQ19SRU1PVEVfTE9DS1Nba2V5XTsKICAgIH07Cn0K
CmZ1bmN0aW9uIGJjQW5ub3VuY2VBY3F1aXJlKGRhdHVtLCBwaWQpIHsKICAgIGlmIChCQykgdHJ5
IHsgQkMucG9zdE1lc3NhZ2UoeyB0eXBlOiAnYWNxdWlyZWQnLCBkYXR1bTogZGF0dW0sIHBpZDog
U3RyaW5nKHBpZCkgfSk7IH0gY2F0Y2ggKGUpIHt9Cn0KZnVuY3Rpb24gYmNBbm5vdW5jZVJlbGVh
c2UoZGF0dW0sIHBpZCkgewogICAgaWYgKEJDKSB0cnkgeyBCQy5wb3N0TWVzc2FnZSh7IHR5cGU6
ICdyZWxlYXNlZCcsIGRhdHVtOiBkYXR1bSwgcGlkOiBTdHJpbmcocGlkKSB9KTsgfSBjYXRjaCAo
ZSkge30KfQoKLy8gPT09PT0gRW5kcG9pbnRzID09PT09CgpleHBvcnQgZnVuY3Rpb24gbG9ja1pl
bGxlQWNxdWlyZShkYXR1bSwgcGVyc29uSWQpIHsKICAgIHZhciBrZXkgPSBkYXR1bSArICd8JyAr
IFN0cmluZyhwZXJzb25JZCk7CiAgICBpZiAoQkNfUkVNT1RFX0xPQ0tTW2tleV0pIHsKICAgICAg
ICAvLyBWb3ItV2FybnVuZzogZWluIGFuZGVyZXIgVGFiIGRpZXNlcyBCcm93c2VycyBoYXQgZGll
IFplbGxlIGdlcmFkZQogICAgICAgIC8vIG9mZmVuLiBXaXIgdmVyc3VjaGVuIGRlbiBMb2NrIHRy
b3R6ZGVtIChVc2VyIGVudHNjaGVpZGV0KTsgU2VydmVyLQogICAgICAgIC8vIEFudHdvcnQgaXN0
IGRpZSBmaW5hbGUgV2FocmhlaXQuCiAgICAgICAgdG9hc3QoJ0RpZXNlIFplbGxlIGlzdCBpbiBl
aW5lbSBhbmRlcmVuIFRhYiBnZcO2ZmZuZXQg4oCUIGRlciB6dWxldHp0IGdlw7ZmZm5ldGUgVGFi
IGdld2lubnQuJywgJ3dhcm51bmcnKTsKICAgIH0KICAgIHJldHVybiBhcGlTYWZlKCcvYXBpL2xv
Y2svemVsbGUnLCB7CiAgICAgICAgbWV0aG9kOiAnUE9TVCcsCiAgICAgICAgaGVhZGVyczogeyAn
Q29udGVudC1UeXBlJzogJ2FwcGxpY2F0aW9uL2pzb24nIH0sCiAgICAgICAgYm9keTogSlNPTi5z
dHJpbmdpZnkoeyBkYXR1bTogZGF0dW0sIHBlcnNvbklkOiBTdHJpbmcocGVyc29uSWQpIH0pCiAg
ICB9KS50aGVuKGZ1bmN0aW9uKHJlcykgewogICAgICAgIGlmIChyZXMgJiYgcmVzLnN0YXR1cyA9
PT0gMjAwKSBiY0Fubm91bmNlQWNxdWlyZShkYXR1bSwgcGVyc29uSWQpOwogICAgICAgIHJldHVy
biByZXM7CiAgICB9KTsKfQoKZXhwb3J0IGZ1bmN0aW9uIGxvY2taZWxsZUZvcmNlKGRhdHVtLCBw
ZXJzb25JZCkgewogICAgcmV0dXJuIGFwaVNhZmUoJy9hcGkvbG9jay96ZWxsZS9mb3JjZScsIHsK
ICAgICAgICBtZXRob2Q6ICdQT1NUJywKICAgICAgICBoZWFkZXJzOiB7ICdDb250ZW50LVR5cGUn
OiAnYXBwbGljYXRpb24vanNvbicgfSwKICAgICAgICBib2R5OiBKU09OLnN0cmluZ2lmeSh7IGRh
dHVtOiBkYXR1bSwgcGVyc29uSWQ6IFN0cmluZyhwZXJzb25JZCkgfSkKICAgIH0pOwp9CgpleHBv
cnQgZnVuY3Rpb24gbG9ja1plbGxlUmVsZWFzZSh0b2tlbikgewogICAgaWYgKCF0b2tlbikgcmV0
dXJuIFByb21pc2UucmVzb2x2ZSh7IHN0YXR1czogMjAwLCBib2R5OiB7IG9rOiB0cnVlIH0gfSk7
CiAgICAvLyBUYWItQnJvYWRjYXN0IChTcHJpbnQgMyk6IGFuZGVyZSBUYWJzIGR1ZXJmZW4gZGll
IFplbGxlIGpldHp0IHdpZWRlcgogICAgLy8gc3BlcnJlbi4gV2lyIGtlbm5lbiBEYXR1bSArIFBl
cnNvbklkIGF1cyBaLnplbGxMb2NrIOKAlCBmYWxscyBkaWUgbm9jaAogICAgLy8gZ2VzZXR6dCBz
aW5kIChyZWxlYXNlIHdpcmQgb2Z0IHZvciBkZW0gVG9rZW4tbnVsbCBnZXJ1ZmVuKS4KICAgIGlm
IChaLnplbGxMb2NrICYmIFouemVsbExvY2suZGF0dW0gJiYgWi56ZWxsTG9jay5wZXJzb25JZCAh
PSBudWxsKSB7CiAgICAgICAgYmNBbm5vdW5jZVJlbGVhc2UoWi56ZWxsTG9jay5kYXR1bSwgWi56
ZWxsTG9jay5wZXJzb25JZCk7CiAgICB9CiAgICByZXR1cm4gYXBpU2FmZSgnL2FwaS9sb2NrL3pl
bGxlJywgewogICAgICAgIG1ldGhvZDogJ0RFTEVURScsCiAgICAgICAgaGVhZGVyczogeyAnQ29u
dGVudC1UeXBlJzogJ2FwcGxpY2F0aW9uL2pzb24nIH0sCiAgICAgICAgYm9keTogSlNPTi5zdHJp
bmdpZnkoeyB0b2tlbjogdG9rZW4gfSkKICAgIH0pOwp9CgpleHBvcnQgZnVuY3Rpb24gbG9ja1pl
bGxlSGVhcnRiZWF0U2VuZGVuKHRva2VuKSB7CiAgICByZXR1cm4gYXBpU2FmZSgnL2FwaS9sb2Nr
L3plbGxlL2hlYXJ0YmVhdCcsIHsKICAgICAgICBtZXRob2Q6ICdQT1NUJywKICAgICAgICBoZWFk
ZXJzOiB7ICdDb250ZW50LVR5cGUnOiAnYXBwbGljYXRpb24vanNvbicgfSwKICAgICAgICBib2R5
OiBKU09OLnN0cmluZ2lmeSh7IHRva2VuOiB0b2tlbiB9KQogICAgfSk7Cn0KCi8vID09PT09IEhl
YXJ0YmVhdC1Mb29wIChhbGxlIDIwcywgc29sYW5nZSBFZGl0b3Igb2ZmZW4pID09PT09CgpleHBv
cnQgZnVuY3Rpb24gbG9ja0hlYXJ0YmVhdFN0YXJ0ZW4odG9rZW4pIHsKICAgIGxvY2tIZWFydGJl
YXRTdG9wcGVuKCk7CiAgICBaLnplbGxMb2NrLmhiVGltZXIgPSBzZXRJbnRlcnZhbChmdW5jdGlv
bigpIHsKICAgICAgICBpZiAoIVouemVsbExvY2sudG9rZW4pIHsgbG9ja0hlYXJ0YmVhdFN0b3Bw
ZW4oKTsgcmV0dXJuOyB9CiAgICAgICAgbG9ja1plbGxlSGVhcnRiZWF0U2VuZGVuKFouemVsbExv
Y2sudG9rZW4pLnRoZW4oZnVuY3Rpb24ocmVzKSB7CiAgICAgICAgICAgIGlmIChyZXMuc3RhdHVz
ID09PSA0MDQpIHsKICAgICAgICAgICAgICAgIHRvYXN0KCdEZWluIEVkaXQtTG9jayB3dXJkZSBh
dWZnZWhvYmVuICh2ZXJtdXRsaWNoIEZhY2hhdWZzaWNodC1PdmVycmlkZSkuJywgJ3dhcm51bmcn
KTsKICAgICAgICAgICAgICAgIFouemVsbExvY2sudG9rZW4gPSBudWxsOwogICAgICAgICAgICAg
ICAgaWYgKHR5cGVvZiBzeW5jSG9va3MuZWRpdG9yU2NobGllc3NlbiA9PT0gJ2Z1bmN0aW9uJykg
ewogICAgICAgICAgICAgICAgICAgIHN5bmNIb29rcy5lZGl0b3JTY2hsaWVzc2VuKHRydWUpOwog
ICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgfSkuY2F0Y2goZnVuY3Rpb24o
KSB7fSk7CiAgICB9LCAyMDAwMCk7Cn0KCmV4cG9ydCBmdW5jdGlvbiBsb2NrSGVhcnRiZWF0U3Rv
cHBlbigpIHsKICAgIGlmIChaLnplbGxMb2NrICYmIFouemVsbExvY2suaGJUaW1lcikgeyBjbGVh
ckludGVydmFsKFouemVsbExvY2suaGJUaW1lcik7IFouemVsbExvY2suaGJUaW1lciA9IG51bGw7
IH0KfQoKLy8gPT09PT0gTG9jay1TdGF0ZSBpbSBHcmlkID09PT09CgpleHBvcnQgZnVuY3Rpb24g
bG9ja0tleShkYXR1bSwgcGVyc29uSWQpIHsgcmV0dXJuIGRhdHVtICsgJ3wnICsgU3RyaW5nKHBl
cnNvbklkKTsgfQoKLy8gTlctS2VubnVuZyBkZXMgTG9ja3MgLT4gS2xhcm5hbWUgKFZvcm5hbWUg
TmFjaG5hbWUpIGF1cyBkZXIgUGVyc29uYWwtCi8vIHZlcndhbHR1bmcsIGVyc2F0endlaXNlIEZh
Y2hhdWZzaWNodC9TdXBlclVzZXIsIHNvbnN0IGRpZSBLZW5udW5nIG9obmUKLy8gRG9tYWluLiBC
ZXd1c3N0IEtFSU4gIltzdXBlcnVzZXJdIi9Sb2xsZW4tU3VmZml4IHVuZCBrZWluZSBEYXVlciDi
gJQgZGVyCi8vIEhpbndlaXMgc29sbCBzY2hsaWNodCBibGVpYmVuLgpmdW5jdGlvbiBsb2NrUGVy
c29uTmFtZShsb2NrKSB7CiAgICB2YXIgdSA9IChsb2NrICYmIGxvY2sudXNlcm5hbWUgfHwgJycp
LnRvTG93ZXJDYXNlKCk7CiAgICBpZiAoIXUpIHJldHVybiAnZWluZXIgYW5kZXJlbiBQZXJzb24n
OwogICAgdmFyIHVTaG9ydCA9IHUuaW5kZXhPZignXFwnKSA+PSAwID8gdS5zcGxpdCgnXFwnKS5w
b3AoKSA6IHU7CiAgICBmdW5jdGlvbiBwYXNzdChrKSB7IGlmICghaykgcmV0dXJuIGZhbHNlOyBr
ID0gU3RyaW5nKGspLnRvTG93ZXJDYXNlKCk7IHJldHVybiBrID09PSB1IHx8IGsgPT09IHVTaG9y
dDsgfQogICAgdmFyIHBlcnNvbmVuID0gKFoucGxhbnVuZyAmJiBaLnBsYW51bmcucGVyc29uZW4p
IHx8IFtdOwogICAgZm9yICh2YXIgaSA9IDA7IGkgPCBwZXJzb25lbi5sZW5ndGg7IGkrKykgewog
ICAgICAgIGlmIChwYXNzdChwZXJzb25lbltpXS5ud0tlbm51bmcpKSB7CiAgICAgICAgICAgIHZh
ciBuID0gKChwZXJzb25lbltpXS52b3JuYW1lID8gcGVyc29uZW5baV0udm9ybmFtZSArICcgJyA6
ICcnKSArIChwZXJzb25lbltpXS5uYW1lIHx8ICcnKSkudHJpbSgpOwogICAgICAgICAgICBpZiAo
bikgcmV0dXJuIG47CiAgICAgICAgfQogICAgfQogICAgdmFyIGZhID0gKFouYWRtaW4gJiYgWi5h
ZG1pbi5mYWNoYXVmc2ljaHQpIHx8IFtdOwogICAgZm9yICh2YXIgaiA9IDA7IGogPCBmYS5sZW5n
dGg7IGorKykgeyBpZiAocGFzc3QoZmFbal0ubndLZW5udW5nKSAmJiBmYVtqXS5uYW1lKSByZXR1
cm4gZmFbal0ubmFtZTsgfQogICAgdmFyIHN1ID0gKFouYWRtaW4gJiYgWi5hZG1pbi5zdXBlclVz
ZXIpIHx8IFtdOwogICAgZm9yICh2YXIgayA9IDA7IGsgPCBzdS5sZW5ndGg7IGsrKykgeyBpZiAo
cGFzc3Qoc3Vba10ubndLZW5udW5nKSAmJiBzdVtrXS5uYW1lKSByZXR1cm4gc3Vba10ubmFtZTsg
fQogICAgLy8gRmFsbGJhY2s6IEtlbm51bmcgb2huZSBEb21haW4gKHouQi4gTm90ZmFsbC1BY2Nv
dW50IG9obmUgUGxhbi1QZXJzb24pLgogICAgcmV0dXJuIGxvY2sudXNlcm5hbWUuaW5kZXhPZign
XFwnKSA+PSAwID8gbG9jay51c2VybmFtZS5zcGxpdCgnXFwnKS5wb3AoKSA6IGxvY2sudXNlcm5h
bWU7Cn0KCmV4cG9ydCBmdW5jdGlvbiBsb2NrVG9vbHRpcFRleHQobG9jaykgewogICAgcmV0dXJu
ICdEaWVzZSBaZWxsZSB3aXJkIGdlcmFkZSB2b24gJyArIGxvY2tQZXJzb25OYW1lKGxvY2spICsg
JyBiZWFyYmVpdGV0IHVuZCBpc3QgZGVzaGFsYiBnZXNwZXJydC4nOwp9CgpleHBvcnQgZnVuY3Rp
b24gZnJlbWRMb2NrU2V0emVuKGRhdHVtLCBwZXJzb25JZCwgbG9jaykgewogICAgdmFyIGtleSA9
IGxvY2tLZXkoZGF0dW0sIHBlcnNvbklkKTsKICAgIGlmIChsb2NrKSBaLmZyZW1kZUxvY2tzW2tl
eV0gPSBsb2NrOwogICAgZWxzZSBkZWxldGUgWi5mcmVtZGVMb2Nrc1trZXldOwogICAgdmFyIHog
PSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcuZ3JpZC16ZWxsZVtkYXRhLWRhdHVtPSInICsgZGF0
dW0gKyAnIl1bZGF0YS1wZXJzb249IicgKyBTdHJpbmcocGVyc29uSWQpICsgJyJdJyk7CiAgICBp
ZiAoIXopIHJldHVybjsKICAgIGlmIChsb2NrKSB7CiAgICAgICAgei5jbGFzc0xpc3QuYWRkKCdn
cmlkLXplbGxlLWxvY2tlZCcpOwogICAgICAgIC8vIE9yaWdpbmFsZW4gWmVsbC1UaXRlbCBlaW5t
YWxpZyBzaWNoZXJuICh6dW0gV2llZGVyaGVyc3RlbGxlbiBiZWltCiAgICAgICAgLy8gRW50c3Bl
cnJlbikuIE5JQ0hUIG1laHIgYW4gZGVuIExvY2stSGlud2VpcyBhbmhhZW5nZW4g4oCUIHNvbnN0
IHN0YXBlbHRlCiAgICAgICAgLy8gc2ljaCBiZWkgamVkZW0gSGVhcnRiZWF0LVVwZGF0ZSBlaW4g
d2VpdGVyZXIgIldpcmQgYmVhcmJlaXRldCDigKYiLVRleHQKICAgICAgICAvLyAoZGVyIGRvcHBl
bHRlIFRvb2x0aXAgaW0gU2NyZWVuc2hvdCkuIERlciBIaW53ZWlzIGJsZWlidCBzY2hsaWNodC4K
ICAgICAgICBpZiAoIXouZ2V0QXR0cmlidXRlKCdkYXRhLW9yaWctdGl0bGUnKSkgei5zZXRBdHRy
aWJ1dGUoJ2RhdGEtb3JpZy10aXRsZScsIHoudGl0bGUgfHwgJycpOwogICAgICAgIHoudGl0bGUg
PSBsb2NrVG9vbHRpcFRleHQobG9jayk7CiAgICB9IGVsc2UgewogICAgICAgIHouY2xhc3NMaXN0
LnJlbW92ZSgnZ3JpZC16ZWxsZS1sb2NrZWQnKTsKICAgICAgICB2YXIgc2F2ZWQgPSB6LmdldEF0
dHJpYnV0ZSgnZGF0YS1vcmlnLXRpdGxlJyk7CiAgICAgICAgaWYgKHNhdmVkICE9PSBudWxsKSB7
IHoudGl0bGUgPSBzYXZlZDsgei5yZW1vdmVBdHRyaWJ1dGUoJ2RhdGEtb3JpZy10aXRsZScpOyB9
CiAgICB9Cn0KCmV4cG9ydCBmdW5jdGlvbiBsb2NrU3RhdGVBbndlbmRlbihuZXVlTG9ja3MpIHsK
ICAgIC8vIG5ldWVMb2NrczogQXJyYXkgdm9uIExvY2stT2JqZWt0ZW4gdm9tIC9hcGkvbG9jay96
ZWxsZW4KICAgIHZhciBuZXVNYXAgPSB7fTsKICAgIHZhciBiZW51dHplckxvd2VyID0gKFouYmVu
dXR6ZXIgfHwgJycpLnRvTG93ZXJDYXNlKCk7CiAgICBmb3IgKHZhciBpID0gMDsgaSA8IG5ldWVM
b2Nrcy5sZW5ndGg7IGkrKykgewogICAgICAgIHZhciBMID0gbmV1ZUxvY2tzW2ldOwogICAgICAg
IC8vIEVpZ2VuZSBMb2NrcyBOSUNIVCBhbHMgZnJlbWQgcmVuZGVybgogICAgICAgIHZhciBsVXNl
ciA9IChMLnVzZXJuYW1lIHx8ICcnKS50b0xvd2VyQ2FzZSgpOwogICAgICAgIGlmIChsVXNlciA9
PT0gYmVudXR6ZXJMb3dlcikgY29udGludWU7CiAgICAgICAgdmFyIGJlbnV0emVyT2huZURvbWFp
biA9IGJlbnV0emVyTG93ZXIuaW5kZXhPZignXFwnKSA+PSAwID8gYmVudXR6ZXJMb3dlci5zcGxp
dCgnXFwnKS5wb3AoKSA6IGJlbnV0emVyTG93ZXI7CiAgICAgICAgaWYgKGxVc2VyID09PSBiZW51
dHplck9obmVEb21haW4pIGNvbnRpbnVlOwogICAgICAgIG5ldU1hcFtsb2NrS2V5KEwuZGF0dW0s
IEwucGVyc29uSWQpXSA9IEw7CiAgICB9CiAgICAvLyBEaWZmOiBhbHRlIExvY2tzLCBkaWUgamV0
enQgd2VnIHNpbmQgLT4gZW50ZmVybmVuCiAgICBPYmplY3Qua2V5cyhaLmZyZW1kZUxvY2tzKS5m
b3JFYWNoKGZ1bmN0aW9uKGspIHsKICAgICAgICBpZiAoIW5ldU1hcFtrXSkgewogICAgICAgICAg
ICB2YXIgcGFydHMgPSBrLnNwbGl0KCd8Jyk7CiAgICAgICAgICAgIGZyZW1kTG9ja1NldHplbihw
YXJ0c1swXSwgcGFydHNbMV0sIG51bGwpOwogICAgICAgIH0KICAgIH0pOwogICAgLy8gTmV1ZSBM
b2NrcyAob2RlciBnZWFlbmRlcnRlKSAtPiBzZXR6ZW4KICAgIE9iamVjdC5rZXlzKG5ldU1hcCku
Zm9yRWFjaChmdW5jdGlvbihrKSB7CiAgICAgICAgdmFyIGFsdCA9IFouZnJlbWRlTG9ja3Nba107
CiAgICAgICAgdmFyIG5ldSA9IG5ldU1hcFtrXTsKICAgICAgICBpZiAoIWFsdCB8fCBhbHQubGFz
dEJlYXQgIT09IG5ldS5sYXN0QmVhdCkgewogICAgICAgICAgICB2YXIgcGFydHMgPSBrLnNwbGl0
KCd8Jyk7CiAgICAgICAgICAgIGZyZW1kTG9ja1NldHplbihwYXJ0c1swXSwgcGFydHNbMV0sIG5l
dSk7CiAgICAgICAgfQogICAgfSk7Cn0KCi8vID09PT09IENsZWFudXAgYmVpbSBUYWItQ2xvc2Ug
KHNlbmRCZWFjb24tc3R5bGUgbWl0IGtlZXBhbGl2ZSkgPT09PT0KCmV4cG9ydCBmdW5jdGlvbiBh
bGxlRWlnZW5lbkxvY2tzRnJlaWdlYmVuQmVhY29uKCkgewogICAgaWYgKFouemVsbExvY2sgJiYg
Wi56ZWxsTG9jay50b2tlbikgewogICAgICAgIHRyeSB7CiAgICAgICAgICAgIGZldGNoKCcvYXBp
L2xvY2svemVsbGU/dG9rZW49JyArIGVuY29kZVVSSUNvbXBvbmVudChaLnplbGxMb2NrLnRva2Vu
KSwgewogICAgICAgICAgICAgICAgbWV0aG9kOiAnREVMRVRFJywKICAgICAgICAgICAgICAgIGtl
ZXBhbGl2ZTogdHJ1ZQogICAgICAgICAgICB9KTsKICAgICAgICB9IGNhdGNoIChlKSB7fQogICAg
ICAgIFouemVsbExvY2sudG9rZW4gPSBudWxsOwogICAgfQp9Cg==
### FILE: js/ui_dialog.js | 39021
Ly8gPT09IHVpL2RpYWxvZy5qcyA9PT0KLy8gU3RhbmQ6IDIwMjYtMDUtMTQKLy8gVUktRmVlZGJh
Y2stUHJpbWl0aXZlOiBUb2FzdCwgTW9kYWwsIEJlc3RhZXRpZ2VuLCBFbnR3dXJmcy1Mb2NhbFN0
b3JhZ2UsCi8vIERpcnR5LVRyYWNrZXIuIEJld3Vzc3RlIEtvbnNvbGlkaWVydW5nIGdlZ2VuIEZM
RCAoZG9ydCBzZXBhcmF0ZSBNb2R1bGUKLy8gdG9hc3QvbW9kYWwpOiBpbiBWSTMgbnV0emVuIGFs
bGUgZHJlaSBkZW4gZ2xlaWNoZW4gTW9kYWwtU3RhdGUgKFoubW9kYWwqKQovLyB1bmQgZGFzIHF1
ZXJzY2huaXR0bGljaGUgRElSVFktUmVnaXN0cnkgcGFzc3QgbmlyZ2VuZHMgYmVzc2VyIGhpbi4K
Ly8KLy8gTW9kdWwtc3BlemlmaXNjaGUgSW5pdC1GdW5rdGlvbmVuICh6LkIuIGRpcnR5VHJhY2tl
ckVpbnJpY2h0ZW4pIGJsZWliZW4KLy8gaW0gYXVmcnVmZW5kZW4gTW9kdWwgKGFwcC5qcyBiencu
IGFkbWluL2FkbWluLmpzIGluIFBoYXNlIDgpIHVuZAovLyBpbXBvcnRpZXJlbiBkaXJ0eVJlZ2lz
dHJpZXJlL2RpcnR5QWt0aXZlIHZvbiBoaWVyLgoKaW1wb3J0IHsgWiB9IGZyb20gJy4vY29yZV9z
dGF0ZS5qcyc7CmltcG9ydCB7IGVzY2FwZUhUTUwgfSBmcm9tICcuL2NvcmVfdXRpbC5qcyc7Cmlt
cG9ydCB7IHNhbml0aXplUmljaEh0bWwgfSBmcm9tICcuL3VpX3J0ZS5qcyc7CgovLyA9PT09PSBM
YWRlLU92ZXJsYXkgKFBha2V0LUMgUXVpY2stV2luLCAyMDI2LTA1LTI5KSA9PT09PQovLwovLyBV
bml2ZXJzZWxsZXIgU3Bpbm5lci1PdmVybGF5IGZ1ZXIgQXN5bmMtT3BlcmF0aW9uZW4uIFdpcmQg
cGVyCi8vIGxhZGVPdmVybGF5WmVpZ2VuKGNvbnRhaW5lciwgdGV4dCkgYW5nZXplaWd0IHVuZCBt
aXQgbGFkZU92ZXJsYXlWZXJzdGVja2VuKCkKLy8gd2llZGVyIHdlZ2dlbm9tbWVuLiBWZXJoaW5k
ZXJ0IGJsYW5rZSBTY3JlZW5zIGJlaSBsYW5nc2FtZW4gU2VydmVyLQovLyBBbnR3b3J0ZW4gYXVm
IGRlbiBQb2xpemVpLVBDcy4KCmV4cG9ydCBmdW5jdGlvbiBsYWRlT3ZlcmxheVplaWdlbihjb250
YWluZXJPZGVySWQsIHRleHQpIHsKICAgIHZhciBjID0gdHlwZW9mIGNvbnRhaW5lck9kZXJJZCA9
PT0gJ3N0cmluZycgPyBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChjb250YWluZXJPZGVySWQpIDog
Y29udGFpbmVyT2RlcklkOwogICAgaWYgKCFjKSByZXR1cm47CiAgICAvLyBQb3NpdGlvbjpyZWxh
dGl2ZSBub2V0aWcsIGRhbWl0IGRhcyBhYnNvbHV0ZSBPdmVybGF5IGlubmVyaGFsYiBkZXMKICAg
IC8vIENvbnRhaW5lcnMgYmxlaWJ0LiBOdXIgc2V0emVuIHdlbm4gbm9jaCBuaWNodCBwb3NpdGlv
bmllcnQuCiAgICB0cnkgewogICAgICAgIHZhciBjcyA9ICh0eXBlb2YgZ2V0Q29tcHV0ZWRTdHls
ZSA9PT0gJ2Z1bmN0aW9uJykgPyBnZXRDb21wdXRlZFN0eWxlKGMpIDogbnVsbDsKICAgICAgICBp
ZiAoY3MgJiYgY3MucG9zaXRpb24gPT09ICdzdGF0aWMnKSBjLnN0eWxlLnBvc2l0aW9uID0gJ3Jl
bGF0aXZlJzsKICAgIH0gY2F0Y2ggKF8pIHsgLyogaWdub3JlIGluIFRlc3QtTW9jayAqLyB9CiAg
ICB2YXIgYWx0ID0gYy5xdWVyeVNlbGVjdG9yID8gYy5xdWVyeVNlbGVjdG9yKCcubGFkZS1vdmVy
bGF5JykgOiBudWxsOwogICAgaWYgKGFsdCAmJiBhbHQucmVtb3ZlKSBhbHQucmVtb3ZlKCk7CiAg
ICB2YXIgb3YgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKICAgIG92LmNsYXNzTmFt
ZSA9ICdsYWRlLW92ZXJsYXknOwogICAgb3Yuc2V0QXR0cmlidXRlKCdyb2xlJywgJ3N0YXR1cycp
OwogICAgb3Yuc2V0QXR0cmlidXRlKCdhcmlhLWxpdmUnLCAncG9saXRlJyk7CiAgICBvdi5pbm5l
ckhUTUwgPSAnPGRpdiBjbGFzcz0ibGFkZS1vdmVybGF5LXNwaW5uZXIiIGFyaWEtaGlkZGVuPSJ0
cnVlIj48L2Rpdj4nICsKICAgICAgICAgICAgICAgICAgICc8ZGl2IGNsYXNzPSJsYWRlLW92ZXJs
YXktdGV4dCI+JyArIGVzY2FwZUhUTUwodGV4dCB8fCAnTMOkZHQg4oCmJykgKyAnPC9kaXY+JzsK
ICAgIGMuYXBwZW5kQ2hpbGQob3YpOwp9CgpleHBvcnQgZnVuY3Rpb24gbGFkZU92ZXJsYXlWZXJz
dGVja2VuKGNvbnRhaW5lck9kZXJJZCkgewogICAgdmFyIGMgPSB0eXBlb2YgY29udGFpbmVyT2Rl
cklkID09PSAnc3RyaW5nJyA/IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGNvbnRhaW5lck9kZXJJ
ZCkgOiBjb250YWluZXJPZGVySWQ7CiAgICBpZiAoIWMgfHwgIWMucXVlcnlTZWxlY3RvcikgcmV0
dXJuOwogICAgdmFyIG92ID0gYy5xdWVyeVNlbGVjdG9yKCcubGFkZS1vdmVybGF5Jyk7CiAgICBp
ZiAob3YgJiYgb3YucmVtb3ZlKSBvdi5yZW1vdmUoKTsKfQoKLy8gPT09PT0gTGFlbmdlbi1Db3Vu
dGVyIChRdWljay1XaW4gUGFrZXQtQiwgMjAyNi0wNS0yOSkgPT09PT0KLy8KLy8gWmVpZ3QgdW50
ZXIgZWluZW0gVGV4dGZlbGQgZWluZW4ga2xlaW5lbiBDb3VudGVyICI0Ny8yNTAiLCBkYW1pdCBk
ZXIgVXNlcgovLyBzaWVodCB3aWUgdmllbGUgWmVpY2hlbiBub2NoIGZyZWkgc2luZC4gQXV0b21h
dGlzY2ggdWViZXIgZGF0YS1BdHRyaWJ1dAovLyBha3RpdmllcnQ6IHNldHplIGVpbmZhY2ggYGRh
dGEtbWF4bGVuZ3RoLWNvdW50ZXI9IjEiYCArIGBtYXhsZW5ndGg9Ik4iYCBhbQovLyBJbnB1dC9U
ZXh0YXJlYS4gRGVyIENvdW50ZXIgd2lyZCBiZWltIG1vZGFsWmVpZ2VuKCkgaW5pdGlhbGlzaWVy
dCB1bmQgYmVpCi8vIGplZGVtIGlucHV0L2NoYW5nZSBha3R1YWxpc2llcnQgKERlbGVnYXRpb24g
YXVmIGRvY3VtZW50KS4KCmZ1bmN0aW9uIF9sYWVuZ2VDb3VudGVyVXBkYXRlKGVsKSB7CiAgICBp
ZiAoIWVsIHx8ICFlbC5wYXJlbnROb2RlKSByZXR1cm47CiAgICB2YXIgbWF4ID0gcGFyc2VJbnQo
ZWwuZ2V0QXR0cmlidXRlKCdtYXhsZW5ndGgnKSwgMTApOwogICAgaWYgKCFtYXgpIHJldHVybjsK
ICAgIHZhciBjb3VudGVyID0gZWwubmV4dEVsZW1lbnRTaWJsaW5nOwogICAgaWYgKCFjb3VudGVy
IHx8ICFjb3VudGVyLmNsYXNzTGlzdCB8fCAhY291bnRlci5jbGFzc0xpc3QuY29udGFpbnMoJ2xh
ZW5nZS1jb3VudGVyJykpIHsKICAgICAgICBjb3VudGVyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVu
dCgnc3BhbicpOwogICAgICAgIGNvdW50ZXIuY2xhc3NOYW1lID0gJ2xhZW5nZS1jb3VudGVyJzsK
ICAgICAgICBlbC5wYXJlbnROb2RlLmluc2VydEJlZm9yZShjb3VudGVyLCBlbC5uZXh0U2libGlu
Zyk7CiAgICB9CiAgICB2YXIgbGVuID0gKGVsLnZhbHVlIHx8ICcnKS5sZW5ndGg7CiAgICBjb3Vu
dGVyLnRleHRDb250ZW50ID0gbGVuICsgJyAvICcgKyBtYXg7CiAgICAvLyBXYXJuZmFyYmUgYWIg
OTAlIEF1c2xhc3R1bmcsIEZlaGxlcmZhcmJlIGJlaSB2b2xsLgogICAgY291bnRlci5jbGFzc0xp
c3QudG9nZ2xlKCdsYWVuZ2UtY291bnRlci13YXJuJywgbGVuID49IG1heCAqIDAuOSAmJiBsZW4g
PCBtYXgpOwogICAgY291bnRlci5jbGFzc0xpc3QudG9nZ2xlKCdsYWVuZ2UtY291bnRlci12b2xs
JywgbGVuID49IG1heCk7Cn0KCmV4cG9ydCBmdW5jdGlvbiBsYWVuZ2VDb3VudGVySW1Db250YWlu
ZXJJbml0aWFsaXNpZXJlbihjb250YWluZXIpIHsKICAgIGlmICghY29udGFpbmVyIHx8ICFjb250
YWluZXIucXVlcnlTZWxlY3RvckFsbCkgcmV0dXJuOwogICAgdmFyIGlucHV0cyA9IGNvbnRhaW5l
ci5xdWVyeVNlbGVjdG9yQWxsKCdbZGF0YS1tYXhsZW5ndGgtY291bnRlcl0nKTsKICAgIGZvciAo
dmFyIGkgPSAwOyBpIDwgaW5wdXRzLmxlbmd0aDsgaSsrKSBfbGFlbmdlQ291bnRlclVwZGF0ZShp
bnB1dHNbaV0pOwp9CgppZiAodHlwZW9mIGRvY3VtZW50ICE9PSAndW5kZWZpbmVkJyAmJiB0eXBl
b2YgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lciA9PT0gJ2Z1bmN0aW9uJykgewogICAgZG9jdW1l
bnQuYWRkRXZlbnRMaXN0ZW5lcignaW5wdXQnLCBmdW5jdGlvbihlKSB7CiAgICAgICAgdmFyIGVs
ID0gZS50YXJnZXQ7CiAgICAgICAgaWYgKCFlbCB8fCAhZWwuZ2V0QXR0cmlidXRlKSByZXR1cm47
CiAgICAgICAgaWYgKCFlbC5nZXRBdHRyaWJ1dGUoJ2RhdGEtbWF4bGVuZ3RoLWNvdW50ZXInKSkg
cmV0dXJuOwogICAgICAgIF9sYWVuZ2VDb3VudGVyVXBkYXRlKGVsKTsKICAgIH0pOwp9CgovLyA9
PT09PSBQZmxpY2h0ZmVsZC1WYWxpZGllcnVuZyAoVVgtQXVkaXQgU3ByaW50IDMuNCwgMjAyNi0w
NS0yOSkgPT09PT0KLy8KLy8gSGVscGVyIGZ1ZXIgY2xpZW50c2VpdGlnZSBQZmxpY2h0ZmVsZC1W
YWxpZGllcnVuZyBWT1IgZGVtIEFQSS1DYWxsLgovLyBNYXJraWVydCBkYXMgZmVobGVuZGUgRmVs
ZCByb3QsIHNjcm9sbHQgZXMgaW5zIEJpbGQsIGZva3Vzc2llcnQgZXMgKwovLyB6ZWlndCBlaW5l
biBXYXJuLVRvYXN0LiBCZWltIG5hZWNoc3RlbiBpbnB1dC9jaGFuZ2UgdmVyc2Nod2luZGV0IGRp
ZQovLyByb3RlIE1hcmtpZXJ1bmcgd2llZGVyLCBkYW1pdCBkZXIgVXNlciBtZXJrdDogIkVpbmdh
YmUgd3VyZGUKLy8gcmVnaXN0cmllcnQsIGpldHp0IG5vY2htYWwgU3BlaWNoZXJuIHByb2JpZXJl
bi4iCmV4cG9ydCBmdW5jdGlvbiBwZmxpY2h0ZmVsZEZlaGxlcihlbGVtZW50T2RlcklkLCBtZWxk
dW5nKSB7CiAgICB2YXIgZiA9IHR5cGVvZiBlbGVtZW50T2RlcklkID09PSAnc3RyaW5nJyA/IGRv
Y3VtZW50LmdldEVsZW1lbnRCeUlkKGVsZW1lbnRPZGVySWQpIDogZWxlbWVudE9kZXJJZDsKICAg
IGlmIChmKSB7CiAgICAgICAgZi5jbGFzc0xpc3QuYWRkKCdmZWxkLWZlaGxlcicpOwogICAgICAg
IHRyeSB7IGYuZm9jdXMoKTsgfSBjYXRjaCAoZSkge30KICAgICAgICB0cnkgeyBmLnNjcm9sbElu
dG9WaWV3KHsgYmxvY2s6ICdjZW50ZXInLCBiZWhhdmlvcjogJ3Ntb290aCcgfSk7IH0gY2F0Y2gg
KGUpIHt9CiAgICAgICAgdmFyIGNsZWFyID0gZnVuY3Rpb24oKSB7CiAgICAgICAgICAgIGYuY2xh
c3NMaXN0LnJlbW92ZSgnZmVsZC1mZWhsZXInKTsKICAgICAgICAgICAgZi5yZW1vdmVFdmVudExp
c3RlbmVyKCdpbnB1dCcsIGNsZWFyKTsKICAgICAgICAgICAgZi5yZW1vdmVFdmVudExpc3RlbmVy
KCdjaGFuZ2UnLCBjbGVhcik7CiAgICAgICAgfTsKICAgICAgICBmLmFkZEV2ZW50TGlzdGVuZXIo
J2lucHV0JywgY2xlYXIpOwogICAgICAgIGYuYWRkRXZlbnRMaXN0ZW5lcignY2hhbmdlJywgY2xl
YXIpOwogICAgfQogICAgdG9hc3QobWVsZHVuZyB8fCAnUGZsaWNodGZlbGQgZmVobHQnLCAnd2Fy
bnVuZycpOwp9CgovLyA9PT09PSBIaWxmZS1JY29uIChVWC1BdWRpdCBTcHJpbnQgMi4yLCAyMDI2
LTA1LTI5KSA9PT09PQovLwovLyBIZWxwZXIgZnVlciBJbmxpbmUtSGlsZmV0ZXh0ZTogZXJ6ZXVn
dCBlaW5lbiBrbGVpbmVuIHJ1bmRlbiDik5gtQnV0dG9uIG1pdAovLyBgZGF0YS1oaWxmZWAtQXR0
cmlidXQuIEdsb2JhbGVyIENsaWNrLUxpc3RlbmVyICh3ZWl0ZXIgdW50ZW4pIGZhZW5ndCBkYXMK
Ly8gdW5kIHplaWd0IGRlbiBUZXh0IGFscyBJbmZvLVRvYXN0ICg4cyBzaWNodGJhcikuIERhbWl0
IGxhbmRlbiBIaWxmZS1UZXh0ZQovLyAqKmFuIGRlciBTdGVsbGUgd28gc2llIGdlYnJhdWNodCB3
ZXJkZW4qKiwgbmljaHQgbnVyIGltIHplbnRyYWxlbiBJbmZvLU1vZGFsLgovLwovLyBOdXR6dW5n
OiBgJzxsYWJlbD5EYXRlaTwvbGFiZWw+JyArIGhpbGZlSWNvbignRXJ3YXJ0ZXQgZGllIEV4Y2Vs
LVZvcmxhZ2Ug4oCmJylgCmV4cG9ydCBmdW5jdGlvbiBoaWxmZUljb24odGV4dCkgewogICAgaWYg
KCF0ZXh0KSByZXR1cm4gJyc7CiAgICB2YXIgdCA9IFN0cmluZyh0ZXh0KTsKICAgIHJldHVybiAn
PGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJoaWxmZS1pY29uIiBhcmlhLWxhYmVsPSJIaWxm
ZSBhbnplaWdlbiInICsKICAgICAgICAgICAnIHRpdGxlPSInICsgdC5yZXBsYWNlKC8iL2csICcm
cXVvdDsnKS5yZXBsYWNlKC88L2csICcmbHQ7JykucmVwbGFjZSgvPi9nLCAnJmd0OycpICsgJyIn
ICsKICAgICAgICAgICAnIGRhdGEtaGlsZmU9IicgKyB0LnJlcGxhY2UoLyYvZywgJyZhbXA7Jyku
cmVwbGFjZSgvIi9nLCAnJnF1b3Q7JykucmVwbGFjZSgvPC9nLCAnJmx0OycpLnJlcGxhY2UoLz4v
ZywgJyZndDsnKSArICciPj88L2J1dHRvbj4nOwp9CgovLyBHbG9iYWxlciBMaXN0ZW5lciDigJQg
ZWlubWFsIGJpbmRlbi4gZG9jdW1lbnQgZXhpc3RpZXJ0IG51ciBpbSBCcm93c2VyCi8vIChUZXN0
LVNldHVwIG1vY2t0IG51ciBlaW4gTWluaW1hbC1kb2N1bWVudCBvaG5lIGFkZEV2ZW50TGlzdGVu
ZXIpLCBkYWhlcgovLyBkZWZlbnNpdmUgUHJ1ZWZ1bmcuCmlmICh0eXBlb2YgZG9jdW1lbnQgIT09
ICd1bmRlZmluZWQnICYmIHR5cGVvZiBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyID09PSAnZnVu
Y3Rpb24nKSB7CiAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIGZ1bmN0aW9u
KGUpIHsKICAgICAgICB2YXIgYnRuID0gZS50YXJnZXQgJiYgZS50YXJnZXQuY2xvc2VzdCAmJiBl
LnRhcmdldC5jbG9zZXN0KCcuaGlsZmUtaWNvbicpOwogICAgICAgIGlmICghYnRuKSByZXR1cm47
CiAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpOwogICAgICAgIHZhciB0ID0gYnRuLmdldEF0dHJp
YnV0ZSgnZGF0YS1oaWxmZScpOwogICAgICAgIGlmICh0KSB0b2FzdCh0LCAnaW5mbycsIHsgZGF1
ZXI6IDgwMDAgfSk7CiAgICB9KTsKfQoKLy8gPT09PT0gVG9hc3QgPT09PT0KCmV4cG9ydCBmdW5j
dGlvbiB0b2FzdCh0ZXh0LCB0eXAsIG9wdCkgewogICAgb3B0ID0gb3B0IHx8IHt9OwogICAgdmFy
IGMgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndG9hc3QtY29udGFpbmVyJyk7CiAgICB2YXIg
ZWwgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKICAgIGVsLmNsYXNzTmFtZSA9ICd0
b2FzdCB0b2FzdC0nICsgKHR5cCB8fCAnaW5mbycpOwogICAgZWwudGV4dENvbnRlbnQgPSB0ZXh0
OwogICAgaWYgKHR5cGVvZiBvcHQub25DbGljayA9PT0gJ2Z1bmN0aW9uJykgewogICAgICAgIGVs
LnN0eWxlLmN1cnNvciA9ICdwb2ludGVyJzsKICAgICAgICBlbC5hZGRFdmVudExpc3RlbmVyKCdj
bGljaycsIGZ1bmN0aW9uKCkgewogICAgICAgICAgICB0cnkgeyBvcHQub25DbGljaygpOyB9IGNh
dGNoIChlKSB7fQogICAgICAgICAgICBlbC5yZW1vdmUoKTsKICAgICAgICB9KTsKICAgIH0KICAg
IGMuYXBwZW5kQ2hpbGQoZWwpOwogICAgc2V0VGltZW91dChmdW5jdGlvbigpIHsgZWwucmVtb3Zl
KCk7IH0sIG9wdC5kYXVlciB8fCA0MDAwKTsKfQoKLy8gPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQovLyBh
MTF5IOKAlCBGb2N1cy1UcmFwICsgRVNDLUhhbmRsZXIgKFNwcmludCA2YSAyMDI2LTA1LTI5LCBG
aW5kaW5nIDIyKQovLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci8vIFBybyBPdmVybGF5LUNvbnRhaW5l
ciBlaW4gZWlnZW5lciBIYW5kbGVyLiBmb2t1c1RyYXBBa3RpdmllcmVuIGZhZW5ndAovLyBUYWIv
U2hpZnQrVGFiICsgRXNjYXBlLiBMSUZPOiBkYXMgenVsZXR6dCBnZW9lZmZuZXRlIE92ZXJsYXkg
c2NobGllc3N0Ci8vIGF1ZiBFc2NhcGUgKFN0YWNrIHZpYSBfYWt0aXZlT3ZlcmxheXMpLiBCZWlt
IFNjaGxpZXNzZW4gd2lyZCBkZXIgdm9yaGVyCi8vIGZva3Vzc2llcnRlIEtub3RlbiB3aWVkZXJo
ZXJnZXN0ZWxsdCAoWi5tb2RhbEZvY3VzUmV0dXJuKS4KCnZhciBGT0tVU1NJRVJCQVJfU0VMRUtU
T1IgPSAnYVtocmVmXSwgYnV0dG9uOm5vdChbZGlzYWJsZWRdKSwgdGV4dGFyZWE6bm90KFtkaXNh
YmxlZF0pLCBpbnB1dDpub3QoW2Rpc2FibGVkXSk6bm90KFt0eXBlPSJoaWRkZW4iXSksIHNlbGVj
dDpub3QoW2Rpc2FibGVkXSksIFt0YWJpbmRleF06bm90KFt0YWJpbmRleD0iLTEiXSknOwoKdmFy
IF9ha3RpdmVPdmVybGF5cyA9IFtdOyAgICAgICAgICAgLy8gTElGTy1TdGFjawp2YXIgX292ZXJs
YXlIYW5kbGVyID0gbmV3IFdlYWtNYXAoKTsgLy8gb3ZlcmxheSAtPiBoYW5kbGVyLUZ1bmt0aW9u
IGZ1ZXIga2V5ZG93bgoKZnVuY3Rpb24gZm9rdXNzaWVyYmFyU2FtbWVsbihjb250YWluZXIpIHsK
ICAgIHJldHVybiBBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChjb250YWluZXIucXVlcnlTZWxl
Y3RvckFsbChGT0tVU1NJRVJCQVJfU0VMRUtUT1IpKQogICAgICAgIC5maWx0ZXIoZnVuY3Rpb24o
ZWwpIHsgcmV0dXJuIGVsLm9mZnNldFBhcmVudCAhPT0gbnVsbDsgfSk7ICAvLyBzaWNodGJhcgp9
CgpmdW5jdGlvbiBmb2t1c1RyYXBBa3RpdmllcmVuKG92ZXJsYXkpIHsKICAgIGlmICghb3Zlcmxh
eSkgcmV0dXJuOwogICAgLy8gRG9wcGVsYWt0aXZpZXJ1bmc6IHZvcmhlciBkZWFrdGl2aWVyZW4s
IGRhbm4gbmV1ICh6LkIuIHdlbm4gZGFzc2VsYmUKICAgIC8vIG92ZXJsYXkgbmV1IGJlZnVlbGx0
IHd1cmRlKS4KICAgIGZva3VzVHJhcERlYWt0aXZpZXJlbihvdmVybGF5KTsKICAgIHZhciBoYW5k
bGVyID0gZnVuY3Rpb24oZSkgewogICAgICAgIGlmIChlLmtleSA9PT0gJ0VzY2FwZScpIHsKICAg
ICAgICAgICAgLy8gTnVyIGRhcyBvYmVyc3RlIE92ZXJsYXkgc2NobGllc3N0IHNpY2gg4oCUIElu
bmVyLU1vZGFsLUVybGVibmlzCiAgICAgICAgICAgIC8vIG1pdCBDb25maXJtLU92ZXJsYXkgZnVu
a3Rpb25pZXJ0IHdlaXRlciAoTElGTykuCiAgICAgICAgICAgIGlmIChfYWt0aXZlT3ZlcmxheXNb
X2FrdGl2ZU92ZXJsYXlzLmxlbmd0aCAtIDFdICE9PSBvdmVybGF5KSByZXR1cm47CiAgICAgICAg
ICAgIGUucHJldmVudERlZmF1bHQoKTsKICAgICAgICAgICAgaWYgKG92ZXJsYXkuaWQgPT09ICdj
b25maXJtLW92ZXJsYXknKSB7CiAgICAgICAgICAgICAgICBvdmVybGF5LmNsYXNzTGlzdC5hZGQo
J3ZlcnN0ZWNrdCcpOwogICAgICAgICAgICAgICAgb3ZlcmxheS5zZXRBdHRyaWJ1dGUoJ2FyaWEt
aGlkZGVuJywgJ3RydWUnKTsKICAgICAgICAgICAgICAgIGZva3VzVHJhcERlYWt0aXZpZXJlbihv
dmVybGF5KTsKICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgIG1vZGFsU2NobGll
c3NlbigpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICAg
ICAgaWYgKGUua2V5ICE9PSAnVGFiJykgcmV0dXJuOwogICAgICAgIHZhciBsaXN0ZSA9IGZva3Vz
c2llcmJhclNhbW1lbG4ob3ZlcmxheSk7CiAgICAgICAgaWYgKGxpc3RlLmxlbmd0aCA9PT0gMCkg
eyBlLnByZXZlbnREZWZhdWx0KCk7IHJldHVybjsgfQogICAgICAgIHZhciBlcnN0ZXIgPSBsaXN0
ZVswXSwgbGV0enRlciA9IGxpc3RlW2xpc3RlLmxlbmd0aCAtIDFdOwogICAgICAgIGlmIChlLnNo
aWZ0S2V5ICYmIGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQgPT09IGVyc3RlcikgewogICAgICAgICAg
ICBlLnByZXZlbnREZWZhdWx0KCk7IGxldHp0ZXIuZm9jdXMoKTsKICAgICAgICB9IGVsc2UgaWYg
KCFlLnNoaWZ0S2V5ICYmIGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQgPT09IGxldHp0ZXIpIHsKICAg
ICAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpOyBlcnN0ZXIuZm9jdXMoKTsKICAgICAgICB9CiAg
ICB9OwogICAgb3ZlcmxheS5hZGRFdmVudExpc3RlbmVyKCdrZXlkb3duJywgaGFuZGxlcik7CiAg
ICBfb3ZlcmxheUhhbmRsZXIuc2V0KG92ZXJsYXksIGhhbmRsZXIpOwogICAgX2FrdGl2ZU92ZXJs
YXlzLnB1c2gob3ZlcmxheSk7CiAgICAvLyBJbml0aWFsZW4gRm9rdXMgc2V0emVuOiBlcnN0ZXIg
Zm9rdXNzaWVyYmFyZXIgS25vdGVuIChuaWNodCBkZXIKICAgIC8vIFNjaGxpZXNzLVgtQnV0dG9u
IOKAlCBkZXIgaXN0IG5vcm1hbGVyd2Vpc2UgbGV0enRlciBUYWItU3RvcCkuCiAgICBzZXRUaW1l
b3V0KGZ1bmN0aW9uKCkgewogICAgICAgIHZhciBsaXN0ZSA9IGZva3Vzc2llcmJhclNhbW1lbG4o
b3ZlcmxheSk7CiAgICAgICAgdmFyIHppZWwgPSBsaXN0ZS5maW5kKGZ1bmN0aW9uKGVsKSB7IHJl
dHVybiAhZWwuY2xhc3NMaXN0LmNvbnRhaW5zKCdtb2RhbC1zY2hsaWVzc2VuJyk7IH0pIHx8IGxp
c3RlWzBdOwogICAgICAgIGlmICh6aWVsKSB0cnkgeyB6aWVsLmZvY3VzKCk7IH0gY2F0Y2ggKGUp
IHt9CiAgICB9LCAzMCk7Cn0KCmZ1bmN0aW9uIGZva3VzVHJhcERlYWt0aXZpZXJlbihvdmVybGF5
KSB7CiAgICBpZiAoIW92ZXJsYXkpIHJldHVybjsKICAgIHZhciBoYW5kbGVyID0gX292ZXJsYXlI
YW5kbGVyLmdldChvdmVybGF5KTsKICAgIGlmIChoYW5kbGVyKSB7CiAgICAgICAgb3ZlcmxheS5y
ZW1vdmVFdmVudExpc3RlbmVyKCdrZXlkb3duJywgaGFuZGxlcik7CiAgICAgICAgX292ZXJsYXlI
YW5kbGVyLmRlbGV0ZShvdmVybGF5KTsKICAgIH0KICAgIHZhciBpZHggPSBfYWt0aXZlT3Zlcmxh
eXMuaW5kZXhPZihvdmVybGF5KTsKICAgIGlmIChpZHggPj0gMCkgX2FrdGl2ZU92ZXJsYXlzLnNw
bGljZShpZHgsIDEpOwp9CgovLyBFeHBvcnRpZXJlbiBmdWVyIGJlc3RhZXRpZ2VuKCkg4oCUIGRl
ciBudXR6dCBlaW4gYW5kZXJlcyBPdmVybGF5LgpleHBvcnQgeyBmb2t1c1RyYXBBa3RpdmllcmVu
LCBmb2t1c1RyYXBEZWFrdGl2aWVyZW4gfTsKCi8vID09PT09IEJlc3RhZXRpZ2VuIChBc3luYy1D
b25maXJtLVJlcGxhY2VtZW50KSA9PT09PQoKLy8gRXJzYXR6IGZ1ZXIgd2luZG93LmNvbmZpcm0o
KSDigJQgYXN5bmNocm9uLCBub24tYmxvY2tpbmcsIGVpZ2VuZXMgTW9kYWwuCi8vIE51dHp1bmc6
Ci8vICAgYmVzdGFldGlnZW4oJ1RleHQnLCBmdW5jdGlvbigpIHsgd2VpdGVyTWFjaGVuKCk7IH0p
OwovLyAgIGJlc3RhZXRpZ2VuKCdUZXh0JywgY2IsICdUaXRlbCcpOyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIC8vIFRpdGVsLUt1cnpmb3JtCi8vICAgYmVzdGFldGlnZW4oJ1RleHQnLCBj
YiwgeyB0aXRlbCwgamFUZXh0LCBqYURhbmdlciB9KTsgICAgICAgICAgLy8gT3B0aW9uZW4tRm9y
bQovLyAgIGphRGFuZ2VyOiB0cnVlICAtPiByb3RlciBCZXN0YWV0aWd1bmdzLUJ1dHRvbiwgRGVm
YXVsdC1qYVRleHQgIkzDtnNjaGVuIgovLwovLyBTcHJpbnQgNSDigJQgTW9kYWwtU3RhY2sgKDIw
MjYtMDUtMjksIEZpbmRpbmcgMTcpOiBudXR6dCBlaW5lbiBERURJWklFUlRFTgovLyBDb25maXJt
LU92ZXJsYXktQ29udGFpbmVyICgjY29uZmlybS1vdmVybGF5KSwgbmljaHQgZGFzIEhhdXB0LU1v
ZGFsLgovLyBEYW1pdCBrYW5uIGJlc3RhZXRpZ2VuKCkgaW5uZXJoYWxiIGVpbmVzIGdlb2VmZm5l
dGVuIEhhdXB0bW9kYWxzICh6LkIuCi8vIFBlcnNvbi1FZGl0KSBzaWNoZXIgYWxzIHp3ZWl0ZSBT
dGFjay1FYmVuZSBhdWZ0YXVjaGVuLCBvaG5lIGRlbgovLyBIaW50ZXJncnVuZC1EaWFsb2cgenUg
emVyc3RvZXJlbi4gRnJ1ZWhlcjogbW9kYWxaZWlnZW4oKS1BdWZydWYKLy8gdWViZXJzY2hyaWVi
IGRhcyBTaW5nbGV0b24tTW9kYWwg4oCUIGJlaSAiQWJicmVjaGVuIiB3YXIgZGVyIEVkaXQtU3Rh
bmQgd2VnLgpleHBvcnQgZnVuY3Rpb24gYmVzdGFldGlnZW4odGV4dCwgb25KYSwgb3B0KSB7CiAg
ICB2YXIgdGl0ZWwgPSBudWxsLCBqYVRleHQgPSAnQmVzdMOkdGlnZW4nLCBqYURhbmdlciA9IGZh
bHNlOwogICAgaWYgKHR5cGVvZiBvcHQgPT09ICdzdHJpbmcnKSB7CiAgICAgICAgdGl0ZWwgPSBv
cHQ7CiAgICB9IGVsc2UgaWYgKG9wdCkgewogICAgICAgIHRpdGVsID0gb3B0LnRpdGVsIHx8IG51
bGw7CiAgICAgICAgamFEYW5nZXIgPSAhIW9wdC5qYURhbmdlcjsKICAgICAgICBqYVRleHQgPSBv
cHQuamFUZXh0IHx8IChqYURhbmdlciA/ICdMw7ZzY2hlbicgOiAnQmVzdMOkdGlnZW4nKTsKICAg
IH0KICAgIHZhciBvdmVybGF5ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NvbmZpcm0tb3Zl
cmxheScpOwogICAgaWYgKCFvdmVybGF5KSB7CiAgICAgICAgLy8gRmFsbGJhY2sgZnVlciBUZXN0
LS9FZGdlLUZhZWxsZSBvaG5lIGRlbiBkZWRpemllcnRlbiBDb250YWluZXI6CiAgICAgICAgLy8g
YWx0ZSBTaW5nbGV0b24tVmFyaWFudGUgdmlhIG1vZGFsWmVpZ2VuLgogICAgICAgIHZhciBrb2Vy
cGVyRmIgPSAnPGRpdiBzdHlsZT0id2hpdGUtc3BhY2U6cHJlLWxpbmU7bGluZS1oZWlnaHQ6MS41
O3BhZGRpbmc6OHB4IDAiPicgKyBlc2NhcGVIVE1MKHRleHQpICsgJzwvZGl2Pic7CiAgICAgICAg
dmFyIGphQ2xzRmIgPSAnYnRuICcgKyAoamFEYW5nZXIgPyAnYnRuLWdlZmFocicgOiAnYnRuLXBy
aW1hZXInKTsKICAgICAgICB2YXIgZnVzc0ZiID0gJzxidXR0b24gY2xhc3M9ImJ0biIgaWQ9ImJl
c3QtbmVpbiIgdHlwZT0iYnV0dG9uIj5BYmJyZWNoZW48L2J1dHRvbj4nICsKICAgICAgICAgICAg
ICAgICAgICAgJzxidXR0b24gY2xhc3M9IicgKyBqYUNsc0ZiICsgJyIgaWQ9ImJlc3QtamEiIHR5
cGU9ImJ1dHRvbiI+JyArIGVzY2FwZUhUTUwoamFUZXh0KSArICc8L2J1dHRvbj4nOwogICAgICAg
IG1vZGFsWmVpZ2VuKHRpdGVsIHx8ICdCZXN0w6R0aWd1bmcnLCBrb2VycGVyRmIsIGZ1c3NGYiwg
bnVsbCwgbnVsbCwgeyByZWluZXJEaWFsb2c6IHRydWUgfSk7CiAgICAgICAgZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoJ2Jlc3QtamEnKS5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIGZ1bmN0aW9u
KCkgewogICAgICAgICAgICBtb2RhbFNjaGxpZXNzZW4odHJ1ZSk7CiAgICAgICAgICAgIGlmICh0
eXBlb2Ygb25KYSA9PT0gJ2Z1bmN0aW9uJykgb25KYSgpOwogICAgICAgIH0pOwogICAgICAgIGRv
Y3VtZW50LmdldEVsZW1lbnRCeUlkKCdiZXN0LW5laW4nKS5hZGRFdmVudExpc3RlbmVyKCdjbGlj
aycsIGZ1bmN0aW9uKCkgeyBtb2RhbFNjaGxpZXNzZW4odHJ1ZSk7IH0pOwogICAgICAgIHJldHVy
bjsKICAgIH0KICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjb25maXJtLXRpdGVsJykudGV4
dENvbnRlbnQgPSB0aXRlbCB8fCAnQmVzdMOkdGlndW5nJzsKICAgIGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKCdjb25maXJtLWtvZXJwZXInKS5pbm5lckhUTUwgPQogICAgICAgICc8ZGl2IHN0eWxl
PSJ3aGl0ZS1zcGFjZTpwcmUtbGluZTtsaW5lLWhlaWdodDoxLjU7cGFkZGluZzo4cHggMCI+JyAr
IGVzY2FwZUhUTUwodGV4dCkgKyAnPC9kaXY+JzsKICAgIHZhciBqYUNscyA9ICdidG4gJyArIChq
YURhbmdlciA/ICdidG4tZ2VmYWhyJyA6ICdidG4tcHJpbWFlcicpOwogICAgZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoJ2NvbmZpcm0tZnVzcycpLmlubmVySFRNTCA9CiAgICAgICAgJzxidXR0b24g
Y2xhc3M9ImJ0biIgaWQ9ImJlc3QtbmVpbiIgdHlwZT0iYnV0dG9uIj5BYmJyZWNoZW48L2J1dHRv
bj4nICsKICAgICAgICAnPGJ1dHRvbiBjbGFzcz0iJyArIGphQ2xzICsgJyIgaWQ9ImJlc3QtamEi
IHR5cGU9ImJ1dHRvbiI+JyArIGVzY2FwZUhUTUwoamFUZXh0KSArICc8L2J1dHRvbj4nOwogICAg
b3ZlcmxheS5jbGFzc0xpc3QucmVtb3ZlKCd2ZXJzdGVja3QnKTsKICAgIG92ZXJsYXkuc2V0QXR0
cmlidXRlKCdhcmlhLWhpZGRlbicsICdmYWxzZScpOwoKICAgIC8vIFZvcmlnZW4gRm9rdXMgbWVy
a2VuIChrYW5uIGRlciBUcmlnZ2VyIGltIEhhdXB0bW9kYWwgc2VpbiksIGRhbmFjaAogICAgLy8g
d2llZGVyaGVyc3RlbGxlbi4gV2VubiBkYXMgQ29uZmlybS1PdmVybGF5IElOTkVSSEFMQiBlaW5l
cyBhbmRlcmVuCiAgICAvLyBNb2RhbHMgZXJzY2hlaW50LCBpc3QgYWN0aXZlRWxlbWVudCBlaW4g
QnV0dG9uIGltIEhhdXB0bW9kYWwg4oCUIGRlcgogICAgLy8gYmVrb21tdCBuYWNoIENvbmZpcm0t
U2NobGllc3NlbiBkZW4gRm9rdXMgenVydWVjay4KICAgIHZhciBmb2t1c1JldHVybiA9IGRvY3Vt
ZW50LmFjdGl2ZUVsZW1lbnQ7CiAgICBmdW5jdGlvbiBzY2hsaWVzc2VuKCkgewogICAgICAgIG92
ZXJsYXkuY2xhc3NMaXN0LmFkZCgndmVyc3RlY2t0Jyk7CiAgICAgICAgb3ZlcmxheS5zZXRBdHRy
aWJ1dGUoJ2FyaWEtaGlkZGVuJywgJ3RydWUnKTsKICAgICAgICBmb2t1c1RyYXBEZWFrdGl2aWVy
ZW4ob3ZlcmxheSk7CiAgICAgICAgaWYgKGZva3VzUmV0dXJuICYmIHR5cGVvZiBmb2t1c1JldHVy
bi5mb2N1cyA9PT0gJ2Z1bmN0aW9uJykgewogICAgICAgICAgICB0cnkgeyBmb2t1c1JldHVybi5m
b2N1cygpOyB9IGNhdGNoIChlKSB7fQogICAgICAgIH0KICAgIH0KICAgIGRvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKCdiZXN0LWphJykuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCBmdW5jdGlvbigp
IHsKICAgICAgICBzY2hsaWVzc2VuKCk7CiAgICAgICAgaWYgKHR5cGVvZiBvbkphID09PSAnZnVu
Y3Rpb24nKSBvbkphKCk7CiAgICB9KTsKICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdiZXN0
LW5laW4nKS5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIHNjaGxpZXNzZW4pOwogICAgdmFyIHNj
aGxpZXNzQnRuID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NvbmZpcm0tc2NobGllc3Nlbi1i
dG4nKTsKICAgIGlmIChzY2hsaWVzc0J0bikgc2NobGllc3NCdG4ub25jbGljayA9IHNjaGxpZXNz
ZW47CiAgICAvLyBCYWNrZHJvcC1LbGljayAoYXVmIGRhcyBPdmVybGF5IHNlbGJzdCwgbmljaHQg
ZGVuIEluaGFsdCkgc2NobGllc3N0IGF1Y2guCiAgICBvdmVybGF5Lm9uY2xpY2sgPSBmdW5jdGlv
bihlKSB7IGlmIChlLnRhcmdldCA9PT0gb3ZlcmxheSkgc2NobGllc3NlbigpOyB9OwogICAgLy8g
YTExeTogRm9jdXMtVHJhcCArIEVTQy4gRVNDIHNjaGxpZXNzdCBudXIgZGllc2VzIE92ZXJsYXkg
KExJRk8gaW0KICAgIC8vIFN0YWNrKSwgSGF1cHRtb2RhbCBibGVpYnQgdW5hbmdldGFzdGV0Lgog
ICAgZm9rdXNUcmFwQWt0aXZpZXJlbihvdmVybGF5KTsKfQoKLy8gPT09PT0gRW50d3VyZnMtTG9j
YWxTdG9yYWdlIChTcGVjIEYuNCkgPT09PT0KLy8gU3BlaWNoZXJ1bmcgaW4gbG9jYWxTdG9yYWdl
ICd2aTMubW9kYWxFbnR3dWVyZmUnIGFscyBNYXAKLy8geyA8bW9kYWxLZXk+OiB7IHRzLCB0aXRl
bCwgZGF0ZW4gfSB9LCB3b2JlaSBkYXRlbiA9IHs8ZWxlbWVudElkPjogPHdlcnQ+fS4KLy8gQXV0
by1Mb2VzY2ggbmFjaCAxNCBUYWdlbiDigJQgQ2xlYW51cCBsYWV1ZnQgYmVpbSBBcHAtSW5pdC4K
CmV4cG9ydCB2YXIgRU5UV1VSRl9UVExfVEFHRSA9IDE0OwpleHBvcnQgdmFyIEVOVFdVUkZfTFNf
S0VZID0gJ3ZpMy5tb2RhbEVudHd1ZXJmZSc7CgpmdW5jdGlvbiBlbnR3dWVyZmVMYWRlbigpIHsK
ICAgIHRyeSB7IHJldHVybiBKU09OLnBhcnNlKGxvY2FsU3RvcmFnZS5nZXRJdGVtKEVOVFdVUkZf
TFNfS0VZKSB8fCAne30nKSB8fCB7fTsgfQogICAgY2F0Y2ggKGUpIHsgcmV0dXJuIHt9OyB9Cn0K
ZnVuY3Rpb24gZW50d3VlcmZlU3BlaWNoZXJuKG1hcCkgewogICAgdHJ5IHsgbG9jYWxTdG9yYWdl
LnNldEl0ZW0oRU5UV1VSRl9MU19LRVksIEpTT04uc3RyaW5naWZ5KG1hcCkpOyB9IGNhdGNoIChl
KSB7fQp9CmV4cG9ydCBmdW5jdGlvbiBlbnR3dXJmRnVlcihtb2RhbEtleSkgewogICAgaWYgKCFt
b2RhbEtleSkgcmV0dXJuIG51bGw7CiAgICB2YXIgbWFwID0gZW50d3VlcmZlTGFkZW4oKTsKICAg
IHJldHVybiBtYXBbbW9kYWxLZXldIHx8IG51bGw7Cn0KZXhwb3J0IGZ1bmN0aW9uIGVudHd1cmZT
cGVpY2hlcm4obW9kYWxLZXksIHRpdGVsLCBkYXRlbikgewogICAgaWYgKCFtb2RhbEtleSkgcmV0
dXJuOwogICAgdmFyIG1hcCA9IGVudHd1ZXJmZUxhZGVuKCk7CiAgICBtYXBbbW9kYWxLZXldID0g
eyB0czogRGF0ZS5ub3coKSwgdGl0ZWw6IHRpdGVsIHx8ICcnLCBkYXRlbjogZGF0ZW4gfHwge30g
fTsKICAgIGVudHd1ZXJmZVNwZWljaGVybihtYXApOwp9CmV4cG9ydCBmdW5jdGlvbiBlbnR3dXJm
TG9lc2NoZW4obW9kYWxLZXkpIHsKICAgIGlmICghbW9kYWxLZXkpIHJldHVybjsKICAgIHZhciBt
YXAgPSBlbnR3dWVyZmVMYWRlbigpOwogICAgaWYgKG1vZGFsS2V5IGluIG1hcCkgeyBkZWxldGUg
bWFwW21vZGFsS2V5XTsgZW50d3VlcmZlU3BlaWNoZXJuKG1hcCk7IH0KfQpleHBvcnQgZnVuY3Rp
b24gZW50d3VyZkF1dG9DbGVhbnVwKCkgewogICAgdmFyIG1hcCA9IGVudHd1ZXJmZUxhZGVuKCk7
CiAgICB2YXIgbnVuID0gRGF0ZS5ub3coKTsKICAgIHZhciBtYXggPSBFTlRXVVJGX1RUTF9UQUdF
ICogODY0MDAwMDA7CiAgICB2YXIgZ2VhZW5kZXJ0ID0gZmFsc2U7CiAgICBPYmplY3Qua2V5cyht
YXApLmZvckVhY2goZnVuY3Rpb24oaykgewogICAgICAgIGlmICghbWFwW2tdIHx8ICFtYXBba10u
dHMgfHwgKG51biAtIG1hcFtrXS50cykgPiBtYXgpIHsKICAgICAgICAgICAgZGVsZXRlIG1hcFtr
XTsgZ2VhZW5kZXJ0ID0gdHJ1ZTsKICAgICAgICB9CiAgICB9KTsKICAgIGlmIChnZWFlbmRlcnQp
IGVudHd1ZXJmZVNwZWljaGVybihtYXApOwp9CgovLyA9PT09PSBUYWItRHJhZnQtTG9jYWxTdG9y
YWdlIChQaGFzZSA5IOKAlCBBdXRvLVNhdmUgZnVlciBBZG1pbi1UYWJzKSA9PT09PQovLwovLyBF
aWdlbmVyIE5hbWVzcGFjZSAndmkzLnRhYkRyYWZ0cycgKGdldHJlbm50IHZvbiB2aTMubW9kYWxF
bnR3dWVyZmUpLCBkYW1pdAovLyBNb2RhbC0gdW5kIFRhYi1EcmFmdHMgc2ljaCBuaWNodCB1ZWJl
cnNjaG5laWRlbi4gU2VsYmVyIFRUTCAoMTQgVGFnZSksCi8vIHNlbGJlIENsZWFudXAtTG9naWsu
IEZvcm1hdCBwcm8gRWludHJhZzoKLy8gICB7IHRzLCBiYXNpc1RzLCBkYXRlbiB9Ci8vIC0gdHM6
ICAgICAgWmVpdHN0ZW1wZWwgZGVzIGxldHp0ZW4gQXV0by1TYXZlCi8vIC0gYmFzaXNUczogU2Vy
dmVyLURhdGVuc3RhbmQtVFMgYmVpbSBCZWdpbm4gZGVyIEVkaXRpZXJ1bmcgKG5pY2h0IGFrdHVl
bGwKLy8gICBnZW51dHp0IGZ1ZXIgS29uZmxpa3Rlcmtlbm51bmcsIGFiZXIgUGxhdHpoYWx0ZXIg
ZnVlciBzcGFldGVyKQovLyAtIGRhdGVuOiAgIFRhYi1zcGV6aWZpc2NoZXIgU25hcHNob3QgKHBl
ciBzbmFwc2hvdEZuIHByb2R1emllcnQpCmV4cG9ydCB2YXIgVEFCX0RSQUZUX0xTX0tFWSA9ICd2
aTMudGFiRHJhZnRzJzsKCmZ1bmN0aW9uIHRhYkRyYWZ0c0xhZGVuKCkgewogICAgdHJ5IHsgcmV0
dXJuIEpTT04ucGFyc2UobG9jYWxTdG9yYWdlLmdldEl0ZW0oVEFCX0RSQUZUX0xTX0tFWSkgfHwg
J3t9JykgfHwge307IH0KICAgIGNhdGNoIChlKSB7IHJldHVybiB7fTsgfQp9CmZ1bmN0aW9uIHRh
YkRyYWZ0c1NwZWljaGVybihtYXApIHsKICAgIHRyeSB7IGxvY2FsU3RvcmFnZS5zZXRJdGVtKFRB
Ql9EUkFGVF9MU19LRVksIEpTT04uc3RyaW5naWZ5KG1hcCkpOyB9CiAgICBjYXRjaCAoZSkgeyAv
KiBRdW90YSB2b2xsPyBBdXRvLVNhdmUgc2NoZWl0ZXJ0IHN0dW1tIOKAlCBTZXJ2ZXItU2F2ZSBi
bGVpYnQgZGVyIHp1dmVybGFlc3NpZ2UgV2VnLiAqLyB9Cn0KZXhwb3J0IGZ1bmN0aW9uIHRhYkRy
YWZ0RnVlcih0YWJLZXkpIHsKICAgIGlmICghdGFiS2V5KSByZXR1cm4gbnVsbDsKICAgIHJldHVy
biB0YWJEcmFmdHNMYWRlbigpW3RhYktleV0gfHwgbnVsbDsKfQpleHBvcnQgZnVuY3Rpb24gdGFi
RHJhZnRTcGVpY2hlcm4odGFiS2V5LCBkYXRlbiwgYmFzaXNUcykgewogICAgaWYgKCF0YWJLZXkp
IHJldHVybjsKICAgIHZhciBtYXAgPSB0YWJEcmFmdHNMYWRlbigpOwogICAgbWFwW3RhYktleV0g
PSB7IHRzOiBEYXRlLm5vdygpLCBiYXNpc1RzOiBiYXNpc1RzIHx8IDAsIGRhdGVuOiBkYXRlbiA9
PSBudWxsID8gbnVsbCA6IGRhdGVuIH07CiAgICB0YWJEcmFmdHNTcGVpY2hlcm4obWFwKTsKfQpl
eHBvcnQgZnVuY3Rpb24gdGFiRHJhZnRMb2VzY2hlbih0YWJLZXkpIHsKICAgIGlmICghdGFiS2V5
KSByZXR1cm47CiAgICB2YXIgbWFwID0gdGFiRHJhZnRzTGFkZW4oKTsKICAgIGlmICh0YWJLZXkg
aW4gbWFwKSB7IGRlbGV0ZSBtYXBbdGFiS2V5XTsgdGFiRHJhZnRzU3BlaWNoZXJuKG1hcCk7IH0K
fQpleHBvcnQgZnVuY3Rpb24gdGFiRHJhZnRBdXRvQ2xlYW51cCgpIHsKICAgIHZhciBtYXAgPSB0
YWJEcmFmdHNMYWRlbigpOwogICAgdmFyIG51biA9IERhdGUubm93KCk7CiAgICB2YXIgbWF4ID0g
RU5UV1VSRl9UVExfVEFHRSAqIDg2NDAwMDAwOwogICAgdmFyIGdlYWVuZGVydCA9IGZhbHNlOwog
ICAgT2JqZWN0LmtleXMobWFwKS5mb3JFYWNoKGZ1bmN0aW9uKGspIHsKICAgICAgICBpZiAoIW1h
cFtrXSB8fCAhbWFwW2tdLnRzIHx8IChudW4gLSBtYXBba10udHMpID4gbWF4KSB7CiAgICAgICAg
ICAgIGRlbGV0ZSBtYXBba107IGdlYWVuZGVydCA9IHRydWU7CiAgICAgICAgfQogICAgfSk7CiAg
ICBpZiAoZ2VhZW5kZXJ0KSB0YWJEcmFmdHNTcGVpY2hlcm4obWFwKTsKfQoKLy8gPT09PT0gTW9k
YWwtRm9ybS1EYXRlbiBsZXNlbi9zY2hyZWliZW4gPT09PT0KCi8vIExpZXN0IGFsbGUgRm9ybS1G
ZWxkZXIgaW0gYWt0dWVsbGVuIE1vZGFsIGFscyB7aWQ6IHdlcnR9LU9iamVrdC4KLy8gR2VudXR6
dCBmdWVyIEVudHd1cmYtU2F2ZSB1bmQgRW50d3VyZi1SZXN0b3JlLiBSVEUtRmVsZGVyCi8vIChj
b250ZW50ZWRpdGFibGU9dHJ1ZSkgd2VyZGVuIHZpYSBpbm5lckhUTUwgbWl0IE1hcmtlci1QcmFl
Zml4IGVyZmFzc3QsCi8vIGRhbWl0IHNpZSBiZWltIFJlc3RvcmUga29ycmVrdCBhbHMgSFRNTCBz
dGF0dCBQbGFpbiByZWluZ2VzZXR6dCB3ZXJkZW4uCmV4cG9ydCBmdW5jdGlvbiBtb2RhbEZvcm1E
YXRlbkxlc2VuKCkgewogICAgdmFyIGtvZXJwZXIgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgn
bW9kYWwta29lcnBlcicpOwogICAgaWYgKCFrb2VycGVyKSByZXR1cm4ge307CiAgICB2YXIgZGF0
ZW4gPSB7fTsKICAgIGtvZXJwZXIucXVlcnlTZWxlY3RvckFsbCgnaW5wdXQsIHRleHRhcmVhLCBz
ZWxlY3QnKS5mb3JFYWNoKGZ1bmN0aW9uKGVsKSB7CiAgICAgICAgaWYgKCFlbC5pZCkgcmV0dXJu
OwogICAgICAgIGlmIChlbC50eXBlID09PSAnY2hlY2tib3gnIHx8IGVsLnR5cGUgPT09ICdyYWRp
bycpIGRhdGVuW2VsLmlkXSA9ICEhZWwuY2hlY2tlZDsKICAgICAgICBlbHNlIGRhdGVuW2VsLmlk
XSA9IGVsLnZhbHVlOwogICAgfSk7CiAgICBrb2VycGVyLnF1ZXJ5U2VsZWN0b3JBbGwoJ1tjb250
ZW50ZWRpdGFibGU9InRydWUiXScpLmZvckVhY2goZnVuY3Rpb24oZWwpIHsKICAgICAgICBpZiAo
IWVsLmlkKSByZXR1cm47CiAgICAgICAgZGF0ZW5bZWwuaWRdID0gJ19faHRtbF9fJyArIGVsLmlu
bmVySFRNTDsKICAgIH0pOwogICAgcmV0dXJuIGRhdGVuOwp9CgpleHBvcnQgZnVuY3Rpb24gbW9k
YWxGb3JtRGF0ZW5TY2hyZWliZW4oZGF0ZW4pIHsKICAgIGlmICghZGF0ZW4pIHJldHVybjsKICAg
IE9iamVjdC5rZXlzKGRhdGVuKS5mb3JFYWNoKGZ1bmN0aW9uKGlkKSB7CiAgICAgICAgdmFyIGVs
ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpOwogICAgICAgIGlmICghZWwpIHJldHVybjsK
ICAgICAgICB2YXIgd2VydCA9IGRhdGVuW2lkXTsKICAgICAgICAvLyBIVE1MLVdlcnRlIChFbnR3
dXJmLVJlc3RvcmUgYXVzIGxvY2FsU3RvcmFnZSwgY29udGVudGVkaXRhYmxlLVJURXMpOgogICAg
ICAgIC8vIHN0cmlrdCBkdXJjaCBkaWUgQWxsb3dsaXN0LVNhbml0aXplci1Qb2xpY3kuIFNvbnN0
IGtvZW5udGUgZWluCiAgICAgICAgLy8gcHJhZXBhcmllcnRlciBQZXJzaXN0ZWQtSFRNTC1XZXJ0
ICh6LkIuIHZpYSBkaXJla3RlbSBhZG1pbi5qc29uLUVkaXQpCiAgICAgICAgLy8gYmVpbSBSZXN0
b3JlIGFrdGl2ZW4gU2NyaXB0LUNvZGUgaW5qaXppZXJlbi4KICAgICAgICBpZiAodHlwZW9mIHdl
cnQgPT09ICdzdHJpbmcnICYmIHdlcnQuaW5kZXhPZignX19odG1sX18nKSA9PT0gMCkgewogICAg
ICAgICAgICBlbC5pbm5lckhUTUwgPSBzYW5pdGl6ZVJpY2hIdG1sKHdlcnQuc2xpY2UoOCkpOwog
ICAgICAgICAgICByZXR1cm47CiAgICAgICAgfQogICAgICAgIGlmIChlbC50eXBlID09PSAnY2hl
Y2tib3gnIHx8IGVsLnR5cGUgPT09ICdyYWRpbycpIGVsLmNoZWNrZWQgPSAhIXdlcnQ7CiAgICAg
ICAgZWxzZSBpZiAoZWwudGFnTmFtZSA9PT0gJ0lOUFVUJyB8fCBlbC50YWdOYW1lID09PSAnVEVY
VEFSRUEnIHx8IGVsLnRhZ05hbWUgPT09ICdTRUxFQ1QnKSBlbC52YWx1ZSA9IHdlcnQ7CiAgICAg
ICAgZWxzZSBlbC5pbm5lckhUTUwgPSBzYW5pdGl6ZVJpY2hIdG1sKHR5cGVvZiB3ZXJ0ID09PSAn
c3RyaW5nJyA/IHdlcnQgOiAnJyk7CiAgICB9KTsKfQoKLy8gPT09PT0gTW9kYWwtU3lzdGVtID09
PT09CgpleHBvcnQgZnVuY3Rpb24gbW9kYWxEaXJ0eVRyYWNraW5nQWt0aXZpZXJlbigpIHsKICAg
IHZhciBrb2VycGVyID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ21vZGFsLWtvZXJwZXInKTsK
ICAgIGlmICgha29lcnBlcikgcmV0dXJuOwogICAgZnVuY3Rpb24gbWFya0RpcnR5KCkgeyBaLm1v
ZGFsRGlydHkgPSB0cnVlOyB9CiAgICB2YXIgaW5wdXRzID0ga29lcnBlci5xdWVyeVNlbGVjdG9y
QWxsKCdpbnB1dCwgdGV4dGFyZWEsIHNlbGVjdCwgW2NvbnRlbnRlZGl0YWJsZT0idHJ1ZSJdJyk7
CiAgICBmb3IgKHZhciBpID0gMDsgaSA8IGlucHV0cy5sZW5ndGg7IGkrKykgewogICAgICAgIGlu
cHV0c1tpXS5hZGRFdmVudExpc3RlbmVyKCdpbnB1dCcsIG1hcmtEaXJ0eSk7CiAgICAgICAgaW5w
dXRzW2ldLmFkZEV2ZW50TGlzdGVuZXIoJ2NoYW5nZScsIG1hcmtEaXJ0eSk7CiAgICB9Cn0KCmV4
cG9ydCBmdW5jdGlvbiBtb2RhbFNwZWljaGVyQnV0dG9uQmluZGVuKCkgewogICAgaWYgKCFaLm1v
ZGFsT25TcGVpY2hlcm4pIHJldHVybjsKICAgIHZhciBidG4gPSBkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgnZGxnLXNwZWljaGVybicpOwogICAgaWYgKCFidG4pIHJldHVybjsKICAgIGJ0bi5hZGRF
dmVudExpc3RlbmVyKCdjbGljaycsIGZ1bmN0aW9uKCkgewogICAgICAgIC8vIFJlLUVudHJ5LVNj
aHV0eiAoQXVkaXQtUGhhc2UgQS4yLCAyMDI2LTA1LTIxKTogd2VubiBkZXIgVXNlcgogICAgICAg
IC8vIG1laHJmYWNoIHNjaG5lbGwgaGludGVyZWluYW5kZXIga2xpY2t0L0VudGVydGlwcHQsIHNv
bGwgZGVyIFNhdmUtCiAgICAgICAgLy8gQ2FsbGJhY2sgbnVyIGVpbiBNYWwgbGF1ZmVuLiBEaXJ0
eS1GbGFnIHdpcmQgYXVjaCBnbGVpY2ggenVydWVjay0KICAgICAgICAvLyBnZXNldHp0LCBkYW1p
dCBlaW4gbmFjaGZvbGdlbmRlcyBtb2RhbFNjaGxpZXNzZW4oKSBpbSBDYWxsYmFjawogICAgICAg
IC8vIG9obmUgQ29uZmlybSBkdXJjaGdlaHQuCiAgICAgICAgaWYgKGJ0bi5kaXNhYmxlZCkgcmV0
dXJuOwogICAgICAgIGJ0bi5kaXNhYmxlZCA9IHRydWU7CiAgICAgICAgWi5tb2RhbERpcnR5ID0g
ZmFsc2U7CiAgICAgICAgdHJ5IHsKICAgICAgICAgICAgWi5tb2RhbE9uU3BlaWNoZXJuKCk7CiAg
ICAgICAgfSBmaW5hbGx5IHsKICAgICAgICAgICAgLy8gRmFsbHMgZGFzIE1vZGFsIG5vY2ggb2Zm
ZW4gaXN0IChWYWxpZGllcnVuZyBzY2hsdWcgZmVobCwKICAgICAgICAgICAgLy8gdG9hc3Qgc3Rh
dHQgY2xvc2UpLCB3aWVkZXIgZnJlaWdlYmVuIOKAlCBzb25zdCBibGVpYnQgZGVyCiAgICAgICAg
ICAgIC8vIEJ1dHRvbiBkYXVlcmhhZnQgaW5ha3RpdiB1bmQgZGVyIFVzZXIgc2l0enQgZmVzdC4K
ICAgICAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbigpIHsKICAgICAgICAgICAgICAgIHZhciBz
dGlsbE9wZW4gPSAhZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ21vZGFsLW92ZXJsYXknKS5jbGFz
c0xpc3QuY29udGFpbnMoJ3ZlcnN0ZWNrdCcpOwogICAgICAgICAgICAgICAgdmFyIHNhbWVCdG4g
PSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZGxnLXNwZWljaGVybicpOwogICAgICAgICAgICAg
ICAgaWYgKHN0aWxsT3BlbiAmJiBzYW1lQnRuID09PSBidG4pIGJ0bi5kaXNhYmxlZCA9IGZhbHNl
OwogICAgICAgICAgICB9LCAwKTsKICAgICAgICB9CiAgICB9KTsKfQoKLy8gbW9kYWxaZWlnZW4o
dGl0ZWwsIGtvZXJwZXJIdG1sLCBmdXNzSHRtbCwgb25TcGVpY2hlcm4sIG1vZGFsS2V5Pywgb3B0
PykKLy8gbW9kYWxLZXkgaXN0IG9wdGlvbmFsIOKAlCB3ZW5uIGdlc2V0enQsIHdpcmQgZGVyIEVu
dHd1cmYtTWVjaGFuaXNtdXMKLy8gKFNwZWMgRi40KSBha3RpdmllcnQ6IFJlc3RvcmUtQmFubmVy
IGJlaW0gT3BlbiwgIkFscyBFbnR3dXJmIi1PcHRpb24KLy8gYmVpbSBWZXJ3ZXJmZW4tRGlhbG9n
LiBFbXBmb2hsZW4gZnVlciBhbGxlIE1vZGFscyBtaXQgbmljaHQtdHJpdmlhbGVuCi8vIEVpbmdh
YmVuIChFLU1haWwtVm9ybGFnZW4sIFBlcnNvbi1FZGl0LCBTb25kZXJ0ZXJtaW4sIGV0Yy4pLgov
LyBvcHQucmVpbmVyRGlhbG9nPXRydWUgdWViZXJzcHJpbmd0IERpcnR5LVRyYWNraW5nICsgU3Bl
aWNoZXItQnV0dG9uLQovLyBCaW5kaW5nIOKAlCBmdWVyIENvbmZpcm0tL0luZm8tTW9kYWxzIG9o
bmUgRm9ybS1JbnB1dHMgKEJlc3RhZXRpZ2VuLAovLyBWZXJhbnR3b3J0dW5ncy1VZWJlcmdhbmcp
LiBTcGFydCBRdWVyeXMgdW5kIExpc3RlbmVyLUJpbmRpbmdzIGF1ZiBkZW4KLy8gbGFuZ3NhbWVu
IEJlaG9lcmRlbi1QQ3MuCmV4cG9ydCBmdW5jdGlvbiBtb2RhbFplaWdlbih0aXRlbCwga29lcnBl
ckh0bWwsIGZ1c3NIdG1sLCBvblNwZWljaGVybiwgbW9kYWxLZXksIG9wdCkgewogICAgb3B0ID0g
b3B0IHx8IHt9OwogICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ21vZGFsLXRpdGVsJykudGV4
dENvbnRlbnQgPSB0aXRlbDsKICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdtb2RhbC1rb2Vy
cGVyJykuaW5uZXJIVE1MID0ga29lcnBlckh0bWw7CiAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZCgnbW9kYWwtZnVzcycpLmlubmVySFRNTCA9IGZ1c3NIdG1sOwogICAgdmFyIG92ZXJsYXkgPSBk
b2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbW9kYWwtb3ZlcmxheScpOwogICAgb3ZlcmxheS5jbGFz
c0xpc3QucmVtb3ZlKCd2ZXJzdGVja3QnKTsKICAgIG92ZXJsYXkuc2V0QXR0cmlidXRlKCdhcmlh
LWhpZGRlbicsICdmYWxzZScpOwoKICAgIFoubW9kYWxEaXJ0eSA9IGZhbHNlOwogICAgWi5tb2Rh
bE9uU3BlaWNoZXJuID0gb25TcGVpY2hlcm4gfHwgbnVsbDsKICAgIFoubW9kYWxTcGVpY2hlckZ1
c3NIdG1sID0gZnVzc0h0bWwgfHwgJyc7CiAgICBaLm1vZGFsS2V5ID0gbW9kYWxLZXkgfHwgbnVs
bDsKICAgIC8vIEF1dG8tU2F2ZSAoUGFrZXQtQywgMjAyNi0wNS0yOSk6IHdlbm4gb3B0LmF1dG9T
YXZlIGdlc2V0enQgaXN0LCBydWZ0CiAgICAvLyBtb2RhbFNjaGxpZXNzZW4oKSBiZWkgZGlydHkg
YXV0b21hdGlzY2ggb25TcGVpY2hlcm4oKSBzdGF0dCBkZW4KICAgIC8vICJWZXJ3ZXJmZW4/IFNw
ZWljaGVybj8iLURpYWxvZyB6dSB6ZWlnZW4uIFVzZXItUHJhZWZlcmVuejogd2VuaWdlcgogICAg
Ly8gS2xpY2tzLCBFaW5nYWJlbiBnZWhlbiBuaWNodCBhdXMgVmVyc2VoZW4gdmVybG9yZW4uCiAg
ICBaLm1vZGFsQXV0b1NhdmUgPSAhIW9wdC5hdXRvU2F2ZTsKCiAgICBpZiAoIW9wdC5yZWluZXJE
aWFsb2cpIHsKICAgICAgICBtb2RhbFNwZWljaGVyQnV0dG9uQmluZGVuKCk7CiAgICAgICAgbW9k
YWxEaXJ0eVRyYWNraW5nQWt0aXZpZXJlbigpOwogICAgfQoKICAgIC8vIExhZW5nZW4tQ291bnRl
ciBmdWVyIEZlbGRlciBtaXQgZGF0YS1tYXhsZW5ndGgtY291bnRlciBpbml0aWFsaXNpZXJlbi4K
ICAgIGxhZW5nZUNvdW50ZXJJbUNvbnRhaW5lckluaXRpYWxpc2llcmVuKGRvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKCdtb2RhbC1rb2VycGVyJykpOwoKICAgIC8vIEVudHd1cmYtUmVzdG9yZS1CYW5u
ZXIgZmFsbHMgdm9yaGFuZGVuCiAgICBpZiAobW9kYWxLZXkpIHsKICAgICAgICB2YXIgZW50d3Vy
ZiA9IGVudHd1cmZGdWVyKG1vZGFsS2V5KTsKICAgICAgICBpZiAoZW50d3VyZikgbW9kYWxFbnR3
dXJmQmFubmVyWmVpZ2VuKGVudHd1cmYpOwogICAgfQoKICAgIC8vIGExMXkgKFNwcmludCA2YSAy
MDI2LTA1LTI5KTogRm9jdXMtVHJhcCBha3RpdmllcmVuICsgZXJzdGVuIEZva3VzCiAgICAvLyBp
biBkYXMgTW9kYWwgc2V0emVuLiBWb3JoZXIgYWt0aXZlciBGb2t1cyB3aXJkIGluIFoubW9kYWxG
b2N1c1JldHVybgogICAgLy8gZ2VtZXJrdCwgZGFtaXQgbW9kYWxTY2hsaWVzc2VuKCkgaWhuIHJl
c3RhdXJpZXJ0LgogICAgWi5tb2RhbEZvY3VzUmV0dXJuID0gZG9jdW1lbnQuYWN0aXZlRWxlbWVu
dDsKICAgIGZva3VzVHJhcEFrdGl2aWVyZW4ob3ZlcmxheSk7Cn0KCmV4cG9ydCBmdW5jdGlvbiBt
b2RhbFNjaGxpZXNzZW4oZm9yY2UpIHsKICAgIGlmICghZm9yY2UgJiYgWi5tb2RhbERpcnR5KSB7
CiAgICAgICAgLy8gQXV0by1TYXZlLU1vZHVzIChQYWtldC1DLCAyMDI2LTA1LTI5KTogd2VubiBk
ZXIgQXVmcnVmZXIKICAgICAgICAvLyB7YXV0b1NhdmU6dHJ1ZX0gZ2VzZXR6dCB1bmQgZWluZW4g
U3BlaWNoZXItSGFuZGxlciByZWdpc3RyaWVydAogICAgICAgIC8vIGhhdCwgc3BlaWNoZXJuIHdp
ciBkaXJla3QuIERlciBIYW5kbGVyIHNjaGxpZXNzdCBkYXMgTW9kYWwKICAgICAgICAvLyBzZWxi
c3QgYmVpIEVyZm9sZyAob2RlciB6ZWlndCBWYWxpZGllcnVuZ3MtVG9hc3QgdW5kIGxhZXNzdCBl
cwogICAgICAgIC8vIG9mZmVuKS4gQmVpIE1pc3NlcmZvbGcgc2llaHQgZGVyIFVzZXIgZGllIFBm
bGljaHRmZWxkLUhlcnZvci0KICAgICAgICAvLyBoZWJ1bmcgdW5kIGthbm4gbmFjaGJlc3Nlcm4u
CiAgICAgICAgaWYgKFoubW9kYWxBdXRvU2F2ZSAmJiB0eXBlb2YgWi5tb2RhbE9uU3BlaWNoZXJu
ID09PSAnZnVuY3Rpb24nKSB7CiAgICAgICAgICAgIHRyeSB7IFoubW9kYWxPblNwZWljaGVybigp
OyB9IGNhdGNoIChfKSB7fQogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfQogICAgICAgIG1v
ZGFsRGlydHlCZXN0YWV0aWd1bmdaZWlnZW4oKTsKICAgICAgICByZXR1cm47CiAgICB9CiAgICBa
Lm1vZGFsRGlydHkgPSBmYWxzZTsKICAgIFoubW9kYWxPblNwZWljaGVybiA9IG51bGw7CiAgICBa
Lm1vZGFsU3BlaWNoZXJGdXNzSHRtbCA9IG51bGw7CiAgICBaLm1vZGFsS2V5ID0gbnVsbDsKICAg
IFoubW9kYWxPbkRpc2NhcmQgPSBudWxsOwogICAgWi5tb2RhbEF1dG9TYXZlID0gZmFsc2U7CiAg
ICB2YXIgb3ZlcmxheSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdtb2RhbC1vdmVybGF5Jyk7
CiAgICBvdmVybGF5LmNsYXNzTGlzdC5hZGQoJ3ZlcnN0ZWNrdCcpOwogICAgb3ZlcmxheS5zZXRB
dHRyaWJ1dGUoJ2FyaWEtaGlkZGVuJywgJ3RydWUnKTsKICAgIC8vIGRhdGEtbm8tY2xvc2UgKHNp
ZWhlIGFwcC5qcyBCYWNrZHJvcC1IYW5kbGVyKSB6dXJ1ZWNrc2V0emVuLCBzb25zdAogICAgLy8g
d3VlcmRlIGRhcyBuYWVjaHN0ZSBNb2RhbCBkZW4gU2NodXR6IGVyYmVuLgogICAgb3ZlcmxheS5y
ZW1vdmVBdHRyaWJ1dGUoJ2RhdGEtbm8tY2xvc2UnKTsKICAgIC8vIE1vZGFsLVNwZXppYWwtR3Jv
ZXNzZW5rbGFzc2Ugd2llZGVyIGVudGZlcm5lbiwgZGFtaXQgZGFzIG5hZWNoc3RlCiAgICAvLyBN
b2RhbCB3aWVkZXIgU3RhbmRhcmQtNjIwcHggaGF0CiAgICB2YXIgaW5oYWx0ID0gZG9jdW1lbnQu
cXVlcnlTZWxlY3RvcignI21vZGFsLW92ZXJsYXkgLm1vZGFsLWluaGFsdCcpOwogICAgaWYgKGlu
aGFsdCkgaW5oYWx0LmNsYXNzTGlzdC5yZW1vdmUoJ21vZGFsLWluaGFsdC1ncm9zcycpOwoKICAg
IC8vIGExMXkgKFNwcmludCA2YSAyMDI2LTA1LTI5KTogRm9jdXMtVHJhcCBhdXMsIEZva3VzIHp1
cnVlY2suCiAgICBmb2t1c1RyYXBEZWFrdGl2aWVyZW4ob3ZlcmxheSk7CiAgICBpZiAoWi5tb2Rh
bEZvY3VzUmV0dXJuICYmIHR5cGVvZiBaLm1vZGFsRm9jdXNSZXR1cm4uZm9jdXMgPT09ICdmdW5j
dGlvbicpIHsKICAgICAgICB0cnkgeyBaLm1vZGFsRm9jdXNSZXR1cm4uZm9jdXMoKTsgfSBjYXRj
aCAoZSkge30KICAgIH0KICAgIFoubW9kYWxGb2N1c1JldHVybiA9IG51bGw7Cn0KCmV4cG9ydCBm
dW5jdGlvbiBtb2RhbERpcnR5QmVzdGFldGlndW5nWmVpZ2VuKCkgewogICAgdmFyIGZ1c3MgPSBk
b2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbW9kYWwtZnVzcycpOwogICAgaWYgKCFmdXNzKSByZXR1
cm47CiAgICBpZiAoZnVzcy5xdWVyeVNlbGVjdG9yKCcuZGlydHktd2Fybi16ZWlsZScpKSByZXR1
cm47IC8vIGJlcmVpdHMgYWt0aXYKICAgIC8vIEVudHd1cmYtQnV0dG9uIG51ciB3ZW5uIGRlciBB
dWZydWZlciBlaW5lbiBtb2RhbEtleSBnZXNldHp0IGhhdAogICAgdmFyIGVudHd1cmZCdG4gPSBa
Lm1vZGFsS2V5CiAgICAgICAgPyAnPGJ1dHRvbiBjbGFzcz0iYnRuIGJ0bi1zZWsiIGlkPSJkaXJ0
eS1lbnR3dXJmIiB0eXBlPSJidXR0b24iIHRpdGxlPSJFaW5nYWJlbiBhbHMgRW50d3VyZiB6d2lz
Y2hlbnNwZWljaGVybiAobWF4ICcgKyBFTlRXVVJGX1RUTF9UQUdFICsgJyBUYWdlKSI+QWxzIEVu
dHd1cmY8L2J1dHRvbj4nCiAgICAgICAgOiAnJzsKICAgIC8vIFNwZWljaGVybi1CdXR0b24gbnVy
IHdlbm4gZGVyIE1vZGFsLUNhbGxlciBlaW5lbiBvblNwZWljaGVybi1IYW5kbGVyCiAgICAvLyBy
ZWdpc3RyaWVydCBoYXQuIFNwYXJ0IGRlbSBVc2VyIGRlbiBVbXdlZyB1ZWJlciAiV2VpdGVyIGJl
YXJiZWl0ZW4iCiAgICAvLyArIEtsaWNrIGF1ZiBkZW4gZWlnZW50bGljaGVuIFNwZWljaGVybi1C
dXR0b24gaW0gTW9kYWwtRm9vdGVyLgogICAgdmFyIHNwZWljaGVybkJ0biA9ICh0eXBlb2YgWi5t
b2RhbE9uU3BlaWNoZXJuID09PSAnZnVuY3Rpb24nKQogICAgICAgID8gJzxidXR0b24gY2xhc3M9
ImJ0biBidG4tcHJpbWFlciIgaWQ9ImRpcnR5LXNwZWljaGVybiIgdHlwZT0iYnV0dG9uIj5TcGVp
Y2hlcm48L2J1dHRvbj4nCiAgICAgICAgOiAnJzsKICAgIGZ1c3MuaW5uZXJIVE1MID0KICAgICAg
ICAnPGRpdiBjbGFzcz0iZGlydHktd2Fybi16ZWlsZSIgc3R5bGU9Im1hcmdpbi1yaWdodDphdXRv
O2NvbG9yOnZhcigtLWZhcmJlLXdhcm51bmcpO2ZvbnQtd2VpZ2h0OjYwMDtkaXNwbGF5OmZsZXg7
YWxpZ24taXRlbXM6Y2VudGVyO2dhcDo2cHgiPicgKwogICAgICAgICAgICAnPHNwYW4+VW5nZXNw
ZWljaGVydGUgw4RuZGVydW5nZW48L3NwYW4+JyArCiAgICAgICAgJzwvZGl2PicgKwogICAgICAg
ICc8YnV0dG9uIGNsYXNzPSJidG4iIGlkPSJkaXJ0eS16dXJ1ZWNrIiB0eXBlPSJidXR0b24iPldl
aXRlciBiZWFyYmVpdGVuPC9idXR0b24+JyArCiAgICAgICAgZW50d3VyZkJ0biArCiAgICAgICAg
JzxidXR0b24gY2xhc3M9ImJ0biBidG4tZ2VmYWhyIiBpZD0iZGlydHktdmVyd2VyZmVuIiB0eXBl
PSJidXR0b24iPlZlcndlcmZlbjwvYnV0dG9uPicgKwogICAgICAgIHNwZWljaGVybkJ0bjsKICAg
IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdkaXJ0eS16dXJ1ZWNrJykuYWRkRXZlbnRMaXN0ZW5l
cignY2xpY2snLCBmdW5jdGlvbigpIHsKICAgICAgICBmdXNzLmlubmVySFRNTCA9IFoubW9kYWxT
cGVpY2hlckZ1c3NIdG1sIHx8ICcnOwogICAgICAgIG1vZGFsU3BlaWNoZXJCdXR0b25CaW5kZW4o
KTsKICAgIH0pOwogICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2RpcnR5LXZlcndlcmZlbicp
LmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgZnVuY3Rpb24oKSB7CiAgICAgICAgLy8gV2VubiBl
aW4gRW50d3VyZiBnZXNwZWljaGVydCB3YXI6IG5pY2h0IGF1dG9tYXRpc2NoIGxvZXNjaGVuLAog
ICAgICAgIC8vIGRhbWl0IGRlciBVc2VyIGlobiBiZWltIG5hZWNoc3RlbiBPZWZmbmVuIHdpZWRl
ciBmaW5kZXQg4oCUCiAgICAgICAgLy8gYWJlciBkZXIgYWt0dWVsbGUgVmVyd2VyZmVuLUtsaWNr
IHNjaGxpZXNzdCB0cm90emRlbS4KICAgICAgICAvLyBadXNhZXR6bGljaDogTW9kdWwtc3Blemlm
aXNjaGVyIERpc2NhcmQtSG9vayBmdWVyIFJvbGxiYWNrLUxvZ2lrCiAgICAgICAgLy8gKEV4Y2Vs
LUltcG9ydC1NYXBwaW5nIHJvbGx0IGltcFN0YXRlIGF1ZiBTbmFwc2hvdCB6dXJ1ZWNrKS4KICAg
ICAgICBpZiAodHlwZW9mIFoubW9kYWxPbkRpc2NhcmQgPT09ICdmdW5jdGlvbicpIHsKICAgICAg
ICAgICAgdHJ5IHsgWi5tb2RhbE9uRGlzY2FyZCgpOyB9IGNhdGNoIChlKSB7fQogICAgICAgIH0K
ICAgICAgICBtb2RhbFNjaGxpZXNzZW4odHJ1ZSk7CiAgICB9KTsKICAgIHZhciBlbnR3dXJmRWwg
PSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZGlydHktZW50d3VyZicpOwogICAgaWYgKGVudHd1
cmZFbCkgZW50d3VyZkVsLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgZnVuY3Rpb24oKSB7CiAg
ICAgICAgdmFyIHRpdGVsID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ21vZGFsLXRpdGVsJykg
PyBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbW9kYWwtdGl0ZWwnKS50ZXh0Q29udGVudCA6ICcn
OwogICAgICAgIGVudHd1cmZTcGVpY2hlcm4oWi5tb2RhbEtleSwgdGl0ZWwsIG1vZGFsRm9ybURh
dGVuTGVzZW4oKSk7CiAgICAgICAgdG9hc3QoJ0FscyBFbnR3dXJmIGdlc3BlaWNoZXJ0ICgnICsg
RU5UV1VSRl9UVExfVEFHRSArICcgVGFnZSBoYWx0YmFyKScsICdlcmZvbGcnKTsKICAgICAgICBt
b2RhbFNjaGxpZXNzZW4odHJ1ZSk7CiAgICB9KTsKICAgIHZhciBzcGVpY2hlcm5FbCA9IGRvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKCdkaXJ0eS1zcGVpY2hlcm4nKTsKICAgIGlmIChzcGVpY2hlcm5F
bCkgc3BlaWNoZXJuRWwuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCBmdW5jdGlvbigpIHsKICAg
ICAgICAvLyBSZS1FbnRyeS1TY2h1dHogKEF1ZGl0LVBoYXNlIEEuMiwgMjAyNi0wNS0yMSkuCiAg
ICAgICAgaWYgKHNwZWljaGVybkVsLmRpc2FibGVkKSByZXR1cm47CiAgICAgICAgc3BlaWNoZXJu
RWwuZGlzYWJsZWQgPSB0cnVlOwogICAgICAgIC8vIFZvcmdlbWVya3RlbiBTYXZlLUhhbmRsZXIg
YXVmcnVmZW47IGRlciBpc3QgdmlhIG1vZGFsWmVpZ2VuKCkKICAgICAgICAvLyBnZXNldHp0IHVu
ZCBrdWVtbWVydCBzaWNoIHVtIFZhbGlkaWVydW5nICsgQVBJLUF1ZnJ1ZiArIFNjaGxpZXNzZW4u
CiAgICAgICAgdHJ5IHsgWi5tb2RhbE9uU3BlaWNoZXJuKCk7IH0gY2F0Y2ggKGUpIHsKICAgICAg
ICAgICAgdG9hc3QoJ0ZlaGxlciBiZWltIFNwZWljaGVybjogJyArIChlICYmIGUubWVzc2FnZSB8
fCBlKSwgJ2ZlaGxlcicpOwogICAgICAgICAgICBzcGVpY2hlcm5FbC5kaXNhYmxlZCA9IGZhbHNl
OwogICAgICAgIH0KICAgIH0pOwp9CgovLyBSZXN0b3JlLUJhbm5lciBiZWltIE1vZGFsLU9wZW4g
KFNwZWMgRi40KTogd2VubiBmdWVyIGRlbiBtb2RhbEtleSBlaW4KLy8gRW50d3VyZiBleGlzdGll
cnQsIG9iZW4gaW0gTW9kYWwtS29lcnBlciBlaW4gZGV6ZW50ZXMgQmFubmVyIG1pdAovLyBXaWVk
ZXJoZXJzdGVsbGVuICsgVmVyd2VyZmVuLgpleHBvcnQgZnVuY3Rpb24gbW9kYWxFbnR3dXJmQmFu
bmVyWmVpZ2VuKGVudHd1cmYpIHsKICAgIHZhciBrb2VycGVyID0gZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoJ21vZGFsLWtvZXJwZXInKTsKICAgIGlmICgha29lcnBlciB8fCAhZW50d3VyZikgcmV0
dXJuOwogICAgdmFyIGFsdFRhZ2UgPSBNYXRoLm1heCgwLCBNYXRoLmZsb29yKChEYXRlLm5vdygp
IC0gZW50d3VyZi50cykgLyA4NjQwMDAwMCkpOwogICAgdmFyIGFsdFRleHQgPSBhbHRUYWdlID09
PSAwID8gJ2hldXRlJyA6IChhbHRUYWdlID09PSAxID8gJ2dlc3Rlcm4nIDogJ3ZvciAnICsgYWx0
VGFnZSArICcgVGFnZW4nKTsKICAgIHZhciBiYW5uZXIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50
KCdkaXYnKTsKICAgIGJhbm5lci5jbGFzc05hbWUgPSAnbW9kYWwtZW50d3VyZi1iYW5uZXInOwog
ICAgYmFubmVyLmlubmVySFRNTCA9CiAgICAgICAgJzxzcGFuIGNsYXNzPSJtZWItdGV4dCI+RHUg
aGFzdCBoaWVyIGVpbmVuIEVudHd1cmYgdm9uIDxzdHJvbmc+JyArIGVzY2FwZUhUTUwoYWx0VGV4
dCkgKyAnPC9zdHJvbmc+IGxpZWdlbi4gV2llZGVyaGVyc3RlbGxlbj88L3NwYW4+JyArCiAgICAg
ICAgJzxidXR0b24gY2xhc3M9ImJ0biBidG4ta2xlaW4gYnRuLXByaW1hZXIiIHR5cGU9ImJ1dHRv
biIgaWQ9Im1lYi1yZXN0b3JlIj5XaWVkZXJoZXJzdGVsbGVuPC9idXR0b24+JyArCiAgICAgICAg
JzxidXR0b24gY2xhc3M9ImJ0biBidG4ta2xlaW4iIHR5cGU9ImJ1dHRvbiIgaWQ9Im1lYi12ZXJ3
ZXJmZW4iIHRpdGxlPSJFbnR3dXJmIGVuZGfDvGx0aWcgbMO2c2NoZW4iPlZlcndlcmZlbjwvYnV0
dG9uPic7CiAgICBrb2VycGVyLmluc2VydEJlZm9yZShiYW5uZXIsIGtvZXJwZXIuZmlyc3RDaGls
ZCk7CiAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbWViLXJlc3RvcmUnKS5hZGRFdmVudExp
c3RlbmVyKCdjbGljaycsIGZ1bmN0aW9uKCkgewogICAgICAgIG1vZGFsRm9ybURhdGVuU2NocmVp
YmVuKGVudHd1cmYuZGF0ZW4pOwogICAgICAgIGVudHd1cmZMb2VzY2hlbihaLm1vZGFsS2V5KTsK
ICAgICAgICBiYW5uZXIucmVtb3ZlKCk7CiAgICAgICAgWi5tb2RhbERpcnR5ID0gdHJ1ZTsKICAg
ICAgICB0b2FzdCgnRW50d3VyZiB3aWVkZXJoZXJnZXN0ZWxsdCcsICdlcmZvbGcnKTsKICAgIH0p
OwogICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ21lYi12ZXJ3ZXJmZW4nKS5hZGRFdmVudExp
c3RlbmVyKCdjbGljaycsIGZ1bmN0aW9uKCkgewogICAgICAgIGVudHd1cmZMb2VzY2hlbihaLm1v
ZGFsS2V5KTsKICAgICAgICBiYW5uZXIucmVtb3ZlKCk7CiAgICAgICAgdG9hc3QoJ0VudHd1cmYg
Z2Vsw7ZzY2h0JywgJ2luZm8nKTsKICAgIH0pOwp9CgovLyA9PT09PSBaZW50cmFsZXIgRGlydHkt
VHJhY2tlciA9PT09PQovLyBNb3RpdmF0aW9uOiBUYWJlbGxlbi1JbnB1dHMgKEZhY2hhdWZzaWNo
dCwgU3VwZXJVc2VyLCBEaWVuc3RncnVwcGVuLCDigKYpCi8vIHdlcmRlbiBudXIgYmVpbSBLbGlj
ayBhdWYgIlNwZWljaGVybiIgcGVyc2lzdGllcnQuIFdlciBkZW4gVGFiIHZvcmhlcgovLyB3ZWNo
c2VsdCwgdmVybGllcnQgZGllIEVpbmdhYmVuLiBEZXIgVHJhY2tlciBzYW1tZWx0IHBybyBUYWIg
ZWluZW4KLy8gRGlydHktU3RhdGUsIGxhZXNzdCBkZW4gU2F2ZS1CdXR0b24gcHVsc2VuICsgZWlu
ZW4gIlVuZ2VzcGVpY2hlcnRlCi8vIEFlbmRlcnVuZ2VuIi1IaW53ZWlzIGVyc2NoZWluZW4sIHVu
ZCB6ZWlndCBiZWltIFRhYi1XZWNoc2VsIGVpbgovLyBCZXN0YWV0aWd1bmdzLU1vZGFsIG1pdCBT
cGVpY2hlcm4vVmVyd2VyZmVuL0FiYnJlY2hlbi4KLy8KLy8gVGFiLXNwZXppZmlzY2hlIFJlZ2lz
dHJhdGlvbnMgbGViZW4gaW4gZGVyIGF1ZnJ1ZmVuZGVuIEluaXQtRnVua3Rpb24KLy8gKGFrdHVl
bGwgZGlydHlUcmFja2VyRWlucmljaHRlbiBpbiBhcHAuanMsIGFiIFBoYXNlIDggaW4gYWRtaW4v
YWRtaW4uanMpLgovLyBIaWVyIG51ciBkaWUgZ2VuZXJpc2NoZSBSZWdpc3RyeS0gdW5kIEFrdGlv
bnMtQVBJLgoKdmFyIERJUlRZID0ge307ICAvLyB0YWJJZCAtPiB7IGRpcnR5LCBsYWJlbCwgYnRu
SWRzW10sIGhpbnRJZHNbXSwgc2F2ZUZuPywgZGlzY2FyZEZuPywgY2hhbmdlU3VtbWFyeT8gfQoK
ZXhwb3J0IGZ1bmN0aW9uIGRpcnR5UmVnaXN0cmllcmUodGFiSWQsIGNmZykgewogICAgRElSVFlb
dGFiSWRdID0gewogICAgICAgIGRpcnR5OiBmYWxzZSwKICAgICAgICBsYWJlbDogY2ZnLmxhYmVs
IHx8IHRhYklkLAogICAgICAgIGJ0bklkczogY2ZnLmJ0bklkcyB8fCAoY2ZnLmJ0bklkID8gW2Nm
Zy5idG5JZF0gOiBbXSksCiAgICAgICAgaGludElkczogY2ZnLmhpbnRJZHMgfHwgKGNmZy5oaW50
SWQgPyBbY2ZnLmhpbnRJZF0gOiBbXSksCiAgICAgICAgc2F2ZUZuOiBjZmcuc2F2ZUZuIHx8IG51
bGwsCiAgICAgICAgZGlzY2FyZEZuOiBjZmcuZGlzY2FyZEZuIHx8IG51bGwsCiAgICAgICAgLy8g
Y2hhbmdlU3VtbWFyeTogZnVuY3Rpb24oKSAtPiBBcnJheTxTdHJpbmc+IG1pdCBrb25rcmV0ZW4K
ICAgICAgICAvLyBBZW5kZXJ1bmdzLUJlc2NocmVpYnVuZ2VuICgiR3J1cHBlIEEgdW1iZW5hbm50
IHp1IEEtU2NoaWNodCIsCiAgICAgICAgLy8gIkZhcmJlIEdydXBwZSBCIGdlYWVuZGVydCIpLiBX
aXJkIHZvbiBkaXJ0eVBydWVmZW4oKSBpbSBEaWFsb2cKICAgICAgICAvLyBwcm8gVGFiIGdlcmVu
ZGVydC4gV2VubiBuaWNodCBnZXNldHp0OiBudXIgVGFiLUxhYmVsIGltIERpYWxvZy4KICAgICAg
ICBjaGFuZ2VTdW1tYXJ5OiBjZmcuY2hhbmdlU3VtbWFyeSB8fCBudWxsLAogICAgICAgIC8vIFBo
YXNlLTkgQXV0by1TYXZlIChsb2thbGVyIERyYWZ0IGltIGxvY2FsU3RvcmFnZSk6CiAgICAgICAg
Ly8gLSBkcmFmdEtleTogICBTY2hsdWVzc2VsIGltIHZpMy50YWJEcmFmdHMtTmFtZXNwYWNlICh6
LkIuICdncnVwcGVuJykKICAgICAgICAvLyAtIHNuYXBzaG90Rm46IGZ1bmN0aW9uKCkgLT4gYmVs
aWViaWdlIERhdGVuIOKAlCBsaWVmZXJ0IGFrdHVlbGxlbgogICAgICAgIC8vICAgU2VrdGlvbnMt
U3RhbmQgenVtIFBlcnNpc3RpZXJlbiBhbHMgRHJhZnQKICAgICAgICAvLyAtIHJlc3RvcmVGbjog
IGZ1bmN0aW9uKGRhdGVuKSAtPiB3ZW5kZXQgZWluZW4gRHJhZnQgYXVmIGRlbiBET00vU3RhdGUg
YW4KICAgICAgICAvLyBOdXIgd2VubiBhbGxlIGRyZWkgZ2VzZXR6dCBzaW5kLCBzY2hyZWlidCBk
ZXIgVHJhY2tlciBiZWkgamVkZW0KICAgICAgICAvLyBpbnB1dC9jaGFuZ2UtRXZlbnQgZWluZW4g
RHJhZnQgKGRlYm91bmNlZCAycykuIEJlaW0gU2F2ZSB3aXJkIGVyCiAgICAgICAgLy8gdm9tIGpl
d2VpbGlnZW4gSGFuZGxlciB2aWEgdGFiRHJhZnRMb2VzY2hlbiBhdWZnZXJhZXVtdC4KICAgICAg
ICBkcmFmdEtleTogY2ZnLmRyYWZ0S2V5IHx8IG51bGwsCiAgICAgICAgc25hcHNob3RGbjogY2Zn
LnNuYXBzaG90Rm4gfHwgbnVsbCwKICAgICAgICByZXN0b3JlRm46IGNmZy5yZXN0b3JlRm4gfHwg
bnVsbAogICAgfTsKfQoKLy8gTGllZmVydCBkaWUgUmVnaXN0cnktRWludHJhZWdlIChyZWFkLW9u
bHkgWnVncmlmZiBmdWVyIGRlbiBUcmFja2VyCi8vIGltIGFkbWluLmpzLCBkYW1pdCBlciBzbmFw
c2hvdEZuL2RyYWZ0S2V5IGxlc2VuIGthbm4gb2huZSBlaW4KLy8gd2VpdGVyZXMgRXhwb3J0LVN5
bWJvbCkuIEJld3Vzc3Qga2xlaW4gZ2VoYWx0ZW46IG51ciBGZWxkZXIsIGRpZQovLyBkZXIgVHJh
Y2tlciB0YXRzYWVjaGxpY2ggYnJhdWNodC4KZXhwb3J0IGZ1bmN0aW9uIGRpcnR5RWludHJhZyh0
YWJJZCkgewogICAgdmFyIHIgPSBESVJUWVt0YWJJZF07CiAgICBpZiAoIXIpIHJldHVybiBudWxs
OwogICAgcmV0dXJuIHsgZHJhZnRLZXk6IHIuZHJhZnRLZXksIHNuYXBzaG90Rm46IHIuc25hcHNo
b3RGbiwgcmVzdG9yZUZuOiByLnJlc3RvcmVGbiwgbGFiZWw6IHIubGFiZWwgfTsKfQoKZXhwb3J0
IGZ1bmN0aW9uIGRpcnR5U2V0emVuKHRhYklkLCB3ZXJ0KSB7CiAgICBpZiAoIURJUlRZW3RhYklk
XSkgcmV0dXJuOwogICAgRElSVFlbdGFiSWRdLmRpcnR5ID0gISF3ZXJ0OwogICAgRElSVFlbdGFi
SWRdLmJ0bklkcy5mb3JFYWNoKGZ1bmN0aW9uKGlkKSB7CiAgICAgICAgdmFyIGIgPSBkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZChpZCk7CiAgICAgICAgaWYgKGIpIGIuY2xhc3NMaXN0LnRvZ2dsZSgn
ZGlydHktcHVsc2UnLCAhIXdlcnQpOwogICAgfSk7CiAgICBESVJUWVt0YWJJZF0uaGludElkcy5m
b3JFYWNoKGZ1bmN0aW9uKGlkKSB7CiAgICAgICAgdmFyIGggPSBkb2N1bWVudC5nZXRFbGVtZW50
QnlJZChpZCk7CiAgICAgICAgaWYgKGgpIGguc3R5bGUuZGlzcGxheSA9IHdlcnQgPyAnJyA6ICdu
b25lJzsKICAgIH0pOwp9CgpleHBvcnQgZnVuY3Rpb24gZGlydHlJc3QodGFiSWQpIHsgcmV0dXJu
ICEhKERJUlRZW3RhYklkXSAmJiBESVJUWVt0YWJJZF0uZGlydHkpOyB9CgovLyBFeGlzdGVuei1D
aGVjazogaXN0IHRhYklkIHVlYmVyaGF1cHQgcmVnaXN0cmllcnQ/IFdpcmQgdm9tIERPTS1FdmVu
dC1UcmFja2VyCi8vIGdlYnJhdWNodCwgZGVyIHBybyBTZWN0aW9uLS9UYWItL1RhYmVsbGUtSUQg
bmFjaHNjaGF1ZW4gbXVzcywgb2IgZWluCi8vIERpcnR5LVNsb3QgZXhpc3RpZXJ0LCBiZXZvciBl
ciBpaG4gYXVmIHRydWUgc2V0enQuCmV4cG9ydCBmdW5jdGlvbiBkaXJ0eUtlbm50KHRhYklkKSB7
IHJldHVybiAhIURJUlRZW3RhYklkXTsgfQoKZXhwb3J0IGZ1bmN0aW9uIGRpcnR5QWt0aXZlKCkg
ewogICAgcmV0dXJuIE9iamVjdC5rZXlzKERJUlRZKS5maWx0ZXIoZnVuY3Rpb24oaykgeyByZXR1
cm4gRElSVFlba10uZGlydHk7IH0pOwp9CgovLyBDaGVjay1Nb2RhbCBiZWkgVGFiLVdlY2hzZWw6
IHplaWd0IExpc3RlIGRlciBkaXJ0eSBUYWJzICsgMyBBa3Rpb25lbi4KLy8gd2VpdGVyOiBDYWxs
YmFjayBmdWVyIGRlbiBlaWdlbnRsaWNoZW4gV2VjaHNlbCAod2lyZCBudXIgYXVzZ2VmdWVocnQs
Ci8vIHdlbm4gZGVyIFVzZXIgZW50d2VkZXIgc3BlaWNoZXJ0IG9kZXIgYmV3dXNzdCB2ZXJ3aXJm
dCkuCmV4cG9ydCBmdW5jdGlvbiBkaXJ0eVBydWVmZW4od2VpdGVyKSB7CiAgICB2YXIgYWt0aXYg
PSBkaXJ0eUFrdGl2ZSgpOwogICAgaWYgKGFrdGl2Lmxlbmd0aCA9PT0gMCkgeyB3ZWl0ZXIoKTsg
cmV0dXJuOyB9CiAgICAvLyBQcm8gYmV0cm9mZmVuZW0gVGFiOiBMYWJlbCBmZXR0ICsgKHdlbm4g
Y2hhbmdlU3VtbWFyeSB2b3JoYW5kZW4pCiAgICAvLyB2ZXJzY2hhY2h0ZWx0ZSBEZXRhaWwtTGlz
dGUgbWl0IGtvbmtyZXRlbiBBZW5kZXJ1bmdlbi4gV2VubgogICAgLy8gY2hhbmdlU3VtbWFyeSBh
dXNuYWhtc3dlaXNlIGVpbmUgRXhjZXB0aW9uIHdpcmZ0ICh6LkIuIHdlaWwgZWluCiAgICAvLyBE
T00tS25vdGVuIHdlZyBpc3QpLCB3aXJkIGRlciBUYWIgbnVyIG1pdCBMYWJlbC1aZWlsZSBnZXJl
bmRlcnQuCiAgICB2YXIgaXRlbXMgPSBha3Rpdi5tYXAoZnVuY3Rpb24oaykgewogICAgICAgIHZh
ciBlbnRyeSA9IERJUlRZW2tdOwogICAgICAgIHZhciBoZWFkID0gJzxzdHJvbmc+JyArIGVzY2Fw
ZUhUTUwoZW50cnkubGFiZWwpICsgJzwvc3Ryb25nPic7CiAgICAgICAgdmFyIGRldGFpbCA9ICcn
OwogICAgICAgIGlmICh0eXBlb2YgZW50cnkuY2hhbmdlU3VtbWFyeSA9PT0gJ2Z1bmN0aW9uJykg
ewogICAgICAgICAgICB2YXIgemVpbGVuID0gW107CiAgICAgICAgICAgIHRyeSB7IHplaWxlbiA9
IGVudHJ5LmNoYW5nZVN1bW1hcnkoKSB8fCBbXTsgfSBjYXRjaCAoZSkgeyB6ZWlsZW4gPSBbXTsg
fQogICAgICAgICAgICBpZiAoemVpbGVuLmxlbmd0aCkgewogICAgICAgICAgICAgICAgaGVhZCA9
ICc8c3Ryb25nPicgKyBlc2NhcGVIVE1MKGVudHJ5LmxhYmVsKSArICc8L3N0cm9uZz4gPHNwYW4g
c3R5bGU9ImNvbG9yOnZhcigtLXRleHQtbXV0ZWQpO2ZvbnQtc2l6ZToxMnB4Ij4oJyArIHplaWxl
bi5sZW5ndGggKyAnKTwvc3Bhbj4nOwogICAgICAgICAgICAgICAgZGV0YWlsID0gJzx1bCBzdHls
ZT0ibWFyZ2luOjRweCAwIDAgMThweDtwYWRkaW5nOjA7Zm9udC1zaXplOjEyLjVweDtjb2xvcjp2
YXIoLS10ZXh0LXNlY29uZGFyeSkiPicgKwogICAgICAgICAgICAgICAgICAgIHplaWxlbi5tYXAo
ZnVuY3Rpb24oeikgeyByZXR1cm4gJzxsaT4nICsgZXNjYXBlSFRNTCh6KSArICc8L2xpPic7IH0p
LmpvaW4oJycpICsKICAgICAgICAgICAgICAgICc8L3VsPic7CiAgICAgICAgICAgIH0KICAgICAg
ICB9CiAgICAgICAgcmV0dXJuICc8bGkgc3R5bGU9Im1hcmdpbi1ib3R0b206OHB4Ij4nICsgaGVh
ZCArIGRldGFpbCArICc8L2xpPic7CiAgICB9KS5qb2luKCcnKTsKICAgIHZhciBrb2VycGVyID0K
ICAgICAgICAnPHA+RXMgZ2lidCB1bmdlc3BlaWNoZXJ0ZSDDhG5kZXJ1bmdlbjo8L3A+JyArCiAg
ICAgICAgJzx1bCBzdHlsZT0ibWFyZ2luOjhweCAwIDE0cHggMjBweDtwYWRkaW5nOjA7bGlzdC1z
dHlsZTpub25lIj4nICsgaXRlbXMgKyAnPC91bD4nICsKICAgICAgICAnPHA+TcO2Y2h0ZXN0IGR1
IGRpZSDDhG5kZXJ1bmdlbiBzcGVpY2hlcm4gb2RlciB2ZXJ3ZXJmZW4/PC9wPic7CiAgICB2YXIg
ZnVzcyA9CiAgICAgICAgJzxidXR0b24gY2xhc3M9ImJ0biIgaWQ9ImRwLWFiYnJlY2hlbiIgdHlw
ZT0iYnV0dG9uIj5BYmJyZWNoZW48L2J1dHRvbj4nICsKICAgICAgICAnPGJ1dHRvbiBjbGFzcz0i
YnRuIGJ0bi1nZWZhaHIiIGlkPSJkcC12ZXJ3ZXJmZW4iIHR5cGU9ImJ1dHRvbiI+VmVyd2VyZmVu
PC9idXR0b24+JyArCiAgICAgICAgJzxidXR0b24gY2xhc3M9ImJ0biBidG4tcHJpbWFlciIgaWQ9
ImRwLXNwZWljaGVybiIgdHlwZT0iYnV0dG9uIj5TcGVpY2hlcm48L2J1dHRvbj4nOwogICAgbW9k
YWxaZWlnZW4oJ1VuZ2VzcGVpY2hlcnRlIMOEbmRlcnVuZ2VuJywga29lcnBlciwgZnVzcyk7CiAg
ICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZHAtYWJicmVjaGVuJykuYWRkRXZlbnRMaXN0ZW5l
cignY2xpY2snLCBmdW5jdGlvbigpIHsgbW9kYWxTY2hsaWVzc2VuKHRydWUpOyB9KTsKICAgIGRv
Y3VtZW50LmdldEVsZW1lbnRCeUlkKCdkcC12ZXJ3ZXJmZW4nKS5hZGRFdmVudExpc3RlbmVyKCdj
bGljaycsIGZ1bmN0aW9uKCkgewogICAgICAgIHZhciBwcm9taXNlcyA9IGFrdGl2Lm1hcChmdW5j
dGlvbihrKSB7CiAgICAgICAgICAgIHRyeSB7IHJldHVybiAoRElSVFlba10uZGlzY2FyZEZuICYm
IERJUlRZW2tdLmRpc2NhcmRGbigpKSB8fCBQcm9taXNlLnJlc29sdmUoKTsgfQogICAgICAgICAg
ICBjYXRjaChlKSB7IHJldHVybiBQcm9taXNlLnJlc29sdmUoKTsgfQogICAgICAgIH0pOwogICAg
ICAgIFByb21pc2UuYWxsKHByb21pc2VzKS50aGVuKGZ1bmN0aW9uKCkgewogICAgICAgICAgICBh
a3Rpdi5mb3JFYWNoKGZ1bmN0aW9uKGspIHsgZGlydHlTZXR6ZW4oaywgZmFsc2UpOyB9KTsKICAg
ICAgICAgICAgbW9kYWxTY2hsaWVzc2VuKHRydWUpOwogICAgICAgICAgICB3ZWl0ZXIoKTsKICAg
ICAgICB9KTsKICAgIH0pOwogICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2RwLXNwZWljaGVy
bicpLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgZnVuY3Rpb24oKSB7CiAgICAgICAgdmFyIGJ0
biA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdkcC1zcGVpY2hlcm4nKTsKICAgICAgICBidG4u
ZGlzYWJsZWQgPSB0cnVlOyBidG4udGV4dENvbnRlbnQgPSAnU3BlaWNoZXJl4oCmJzsKICAgICAg
ICB2YXIgcHJvbWlzZXMgPSBha3Rpdi5tYXAoZnVuY3Rpb24oaykgeyByZXR1cm4gZGlydHlTcGVp
Y2hlcm4oayk7IH0pOwogICAgICAgIFByb21pc2UuYWxsKHByb21pc2VzKS50aGVuKGZ1bmN0aW9u
KCkgewogICAgICAgICAgICBtb2RhbFNjaGxpZXNzZW4odHJ1ZSk7CiAgICAgICAgICAgIHdlaXRl
cigpOwogICAgICAgIH0pLmNhdGNoKGZ1bmN0aW9uKGUpIHsKICAgICAgICAgICAgdG9hc3QoJ0Zl
aGxlciBiZWltIFNwZWljaGVybjogJyArIChlICYmIGUubWVzc2FnZSB8fCBlKSwgJ2ZlaGxlcicp
OwogICAgICAgICAgICBidG4uZGlzYWJsZWQgPSBmYWxzZTsgYnRuLnRleHRDb250ZW50ID0gJ1Nw
ZWljaGVybic7CiAgICAgICAgfSk7CiAgICB9KTsKfQoKLy8gU3BlaWNoZXJ0IGVpbmVuIGRpcnR5
LVRhYi4gQmV2b3J6dWd0IHNhdmVGbjsgRmFsbGJhY2s6IENsaWNrIGF1ZgovLyBwcmltYWVyZW4g
U2F2ZS1CdXR0b24gKyBQb2xsIGF1ZiBkaXJ0eT1mYWxzZSAobWF4IDVzKS4gQ2xpY2stSGFuZGxl
cgovLyBzZXR6dCBkaXJ0eT1mYWxzZSBuYWNoIGVyZm9sZ3JlaWNoZW0gUFVUIChzaWVoZSBlaW56
ZWxuZSBTYXZlLUJpbmRpbmdzKS4KZXhwb3J0IGZ1bmN0aW9uIGRpcnR5U3BlaWNoZXJuKHRhYklk
KSB7CiAgICB2YXIgciA9IERJUlRZW3RhYklkXTsKICAgIGlmICghcikgcmV0dXJuIFByb21pc2Uu
cmVzb2x2ZSgpOwogICAgaWYgKHIuc2F2ZUZuKSB7CiAgICAgICAgcmV0dXJuIFByb21pc2UucmVz
b2x2ZShyLnNhdmVGbigpKS50aGVuKGZ1bmN0aW9uKCkgeyBkaXJ0eVNldHplbih0YWJJZCwgZmFs
c2UpOyB9KTsKICAgIH0KICAgIHZhciBidG4gPSAoci5idG5JZHNbMF0gJiYgZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoci5idG5JZHNbMF0pKSB8fCBudWxsOwogICAgaWYgKCFidG4pIHJldHVybiBQ
cm9taXNlLnJlc29sdmUoKTsKICAgIGJ0bi5jbGljaygpOwogICAgcmV0dXJuIG5ldyBQcm9taXNl
KGZ1bmN0aW9uKHJlc29sdmUsIHJlamVjdCkgewogICAgICAgIHZhciBzdGFydCA9IERhdGUubm93
KCk7CiAgICAgICAgZnVuY3Rpb24gcG9sbCgpIHsKICAgICAgICAgICAgaWYgKCFESVJUWVt0YWJJ
ZF0uZGlydHkpIHJldHVybiByZXNvbHZlKCk7CiAgICAgICAgICAgIGlmIChEYXRlLm5vdygpIC0g
c3RhcnQgPiA1MDAwKSByZXR1cm4gcmVqZWN0KG5ldyBFcnJvcignU3BlaWNoZXJuIGRhdWVydCB6
dSBsYW5nZSAoJyArIHIubGFiZWwgKyAnKScpKTsKICAgICAgICAgICAgc2V0VGltZW91dChwb2xs
LCAxMDApOwogICAgICAgIH0KICAgICAgICBwb2xsKCk7CiAgICB9KTsKfQoKLy8gPT09PT0gVGFn
L05hY2h0LVRoZW1lLVRvZ2dsZSA9PT09PQovLyBQZXJzaXN0aWVydCBpbiBsb2NhbFN0b3JhZ2Ug
dW50ZXIgJ3ZpMy10aGVtZScuIENTUy1WYXJpYWJsZW4tU3lzdGVtCi8vIHN0ZWh0IGluIHN0eWxl
LmNzcyAoOnJvb3QgdnMuIFtkYXRhLXRoZW1lPSJuaWdodCJdKS4KCmV4cG9ydCBmdW5jdGlvbiB0
aGVtZVVtc2NoYWx0ZW4oKSB7CiAgICB2YXIgYWt0dWVsbCA9IGRvY3VtZW50LmRvY3VtZW50RWxl
bWVudC5nZXRBdHRyaWJ1dGUoJ2RhdGEtdGhlbWUnKTsKICAgIHZhciBuZXUgPSBha3R1ZWxsID09
PSAnbmlnaHQnID8gJycgOiAnbmlnaHQnOwogICAgZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnNl
dEF0dHJpYnV0ZSgnZGF0YS10aGVtZScsIG5ldSk7CiAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSgn
dmkzLXRoZW1lJywgbmV1KTsKICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdidG4tdGhlbWUn
KS50ZXh0Q29udGVudCA9IG5ldSA9PT0gJ25pZ2h0JyA/ICdUYWcnIDogJ05hY2h0JzsKfQoKZXhw
b3J0IGZ1bmN0aW9uIHRoZW1lV2llZGVyaGVyc3RlbGxlbigpIHsKICAgIHZhciBnID0gbG9jYWxT
dG9yYWdlLmdldEl0ZW0oJ3ZpMy10aGVtZScpIHx8ICcnOwogICAgaWYgKGcgPT09ICduaWdodCcp
IHsKICAgICAgICBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc2V0QXR0cmlidXRlKCdkYXRhLXRo
ZW1lJywgJ25pZ2h0Jyk7CiAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2J0bi10aGVt
ZScpLnRleHRDb250ZW50ID0gJ1RhZyc7CiAgICB9Cn0K
### FILE: js/ui_rte.js | 6951
Ly8gPT09IHVpL3J0ZS5qcyA9PT0KLy8gTWluaW1hbGVyIFJpY2gtVGV4dC1FZGl0b3IgKyBIVE1M
LVNhbml0aXplciArIEVtb2ppLVBpY2tlci4KLy8KLy8gR2VudXR6dCBhbiBkcmVpIFN0ZWxsZW46
IFNvbmRlcnRlcm1pbi1FZGl0b3IsIEVtYWlsLVZvcmxhZ2VuLUVkaXRvcgovLyB1bmQgSW5mby1I
aWxmZS1UYWIuIFJURS1Jbml0IGJpbmRldCBjb250ZW50RWRpdGFibGUtQnV0dG9ucyAoQi9JL1Us
Ci8vIExpc3RlbiwgSW5kZW50KSwgU2FuaXRpemVyIGZhZWhydCBBbGxvd2xpc3QtUG9saWN5IChz
aWVoZSBzYW5pdGl6ZVJpY2hIdG1sKS4KCmltcG9ydCB7IGVzY2FwZUhUTUwsIGVzY2FwZUF0dHIg
fSBmcm9tICcuL2NvcmVfdXRpbC5qcyc7CgovLyA9PT09PSBIVE1MLVNhbml0aXplciA9PT09PQoK
Ly8gTnVyIEJhc2lzLUZvcm1hdGllcnVuZywga2VpbmUgU2NyaXB0L1N0eWxlL0F0dHIgYXVzc2Vy
IGhyZWYvdGFyZ2V0L3JlbCBhdWYgPGE+LgovLyBCTE9DS1FVT1RFIGlzdCBlcmxhdWJ0IGZ1ZXIg
SW5kZW50IChlbnRzdGVodCBkdXJjaCBkb2N1bWVudC5leGVjQ29tbWFuZCgnaW5kZW50JykKLy8g
d2VubiBzdHlsZVdpdGhDU1M9ZmFsc2UgZ2VzZXR6dCBpc3QgLSBzaWVoZSBydGVJbml0KS4KZXhw
b3J0IGZ1bmN0aW9uIHNhbml0aXplUmljaEh0bWwoaHRtbCkgewogICAgaWYgKCFodG1sKSByZXR1
cm4gJyc7CiAgICB2YXIgYWxsb3dlZCA9IHsgQjoxLCBTVFJPTkc6MSwgSToxLCBFTToxLCBVOjEs
IEJSOjEsIFA6MSwgVUw6MSwgT0w6MSwgTEk6MSwgQToxLCBESVY6MSwgU1BBTjoxLCBIMzoxLCBI
NDoxLCBCTE9DS1FVT1RFOjEgfTsKICAgIHZhciBkb2MgPSBuZXcgRE9NUGFyc2VyKCkucGFyc2VG
cm9tU3RyaW5nKCc8IWRvY3R5cGUgaHRtbD48Ym9keT4nICsgaHRtbCArICc8L2JvZHk+JywgJ3Rl
eHQvaHRtbCcpOwogICAgKGZ1bmN0aW9uIHdhbGsobm9kZSkgewogICAgICAgIHZhciBjaGlsZCA9
IG5vZGUuZmlyc3RDaGlsZDsKICAgICAgICB3aGlsZSAoY2hpbGQpIHsKICAgICAgICAgICAgdmFy
IG5leHQgPSBjaGlsZC5uZXh0U2libGluZzsKICAgICAgICAgICAgaWYgKGNoaWxkLm5vZGVUeXBl
ID09PSAxKSB7CiAgICAgICAgICAgICAgICB2YXIgdGFnID0gY2hpbGQudGFnTmFtZTsKICAgICAg
ICAgICAgICAgIGlmICghYWxsb3dlZFt0YWddKSB7CiAgICAgICAgICAgICAgICAgICAgd2hpbGUg
KGNoaWxkLmZpcnN0Q2hpbGQpIG5vZGUuaW5zZXJ0QmVmb3JlKGNoaWxkLmZpcnN0Q2hpbGQsIGNo
aWxkKTsKICAgICAgICAgICAgICAgICAgICBub2RlLnJlbW92ZUNoaWxkKGNoaWxkKTsKICAgICAg
ICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgZm9yICh2YXIgaSA9IGNoaWxk
LmF0dHJpYnV0ZXMubGVuZ3RoIC0gMTsgaSA+PSAwOyBpLS0pIHsKICAgICAgICAgICAgICAgICAg
ICAgICAgdmFyIGF0dHIgPSBjaGlsZC5hdHRyaWJ1dGVzW2ldLm5hbWU7CiAgICAgICAgICAgICAg
ICAgICAgICAgIHZhciBrZWVwID0gZmFsc2U7CiAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0
YWcgPT09ICdBJyAmJiAoYXR0ciA9PT0gJ2hyZWYnIHx8IGF0dHIgPT09ICd0YXJnZXQnIHx8IGF0
dHIgPT09ICdyZWwnKSkga2VlcCA9IHRydWU7CiAgICAgICAgICAgICAgICAgICAgICAgIGlmICgh
a2VlcCkgY2hpbGQucmVtb3ZlQXR0cmlidXRlKGF0dHIpOwogICAgICAgICAgICAgICAgICAgIH0K
ICAgICAgICAgICAgICAgICAgICBpZiAodGFnID09PSAnQScpIHsKICAgICAgICAgICAgICAgICAg
ICAgICAgdmFyIGhyZWYgPSBjaGlsZC5nZXRBdHRyaWJ1dGUoJ2hyZWYnKSB8fCAnJzsKICAgICAg
ICAgICAgICAgICAgICAgICAgaWYgKC9eXHMqKGphdmFzY3JpcHR8ZGF0YSk6L2kudGVzdChocmVm
KSkgY2hpbGQucmVtb3ZlQXR0cmlidXRlKCdocmVmJyk7CiAgICAgICAgICAgICAgICAgICAgICAg
IGNoaWxkLnNldEF0dHJpYnV0ZSgndGFyZ2V0JywgJ19ibGFuaycpOwogICAgICAgICAgICAgICAg
ICAgICAgICBjaGlsZC5zZXRBdHRyaWJ1dGUoJ3JlbCcsICdub29wZW5lciBub3JlZmVycmVyJyk7
CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIHdhbGsoY2hpbGQpOwog
ICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9IGVsc2UgaWYgKGNoaWxkLm5vZGVUeXBlICE9
PSAzICYmIGNoaWxkLm5vZGVUeXBlICE9PSA4KSB7CiAgICAgICAgICAgICAgICAvLyBOdXIgRWxl
bWVudC0sIFRleHQtLCBDb21tZW50LUtub3RlbiAtIENvbW1lbnRzIHdlcmRlbiBlbnRmZXJudAog
ICAgICAgICAgICAgICAgbm9kZS5yZW1vdmVDaGlsZChjaGlsZCk7CiAgICAgICAgICAgIH0KICAg
ICAgICAgICAgY2hpbGQgPSBuZXh0OwogICAgICAgIH0KICAgIH0pKGRvYy5ib2R5KTsKICAgIC8v
IEtvbW1lbnRhcmUgcmF1cwogICAgZG9jLmJvZHkucXVlcnlTZWxlY3RvckFsbCAmJiBkb2MuYm9k
eS5jaGlsZE5vZGVzLmZvckVhY2ggJiYgQXJyYXkucHJvdG90eXBlLmZvckVhY2guY2FsbChkb2Mu
Ym9keS5jaGlsZE5vZGVzLCBmdW5jdGlvbigpIHt9KTsKICAgIHJldHVybiBkb2MuYm9keS5pbm5l
ckhUTUw7Cn0KCi8vID09PT09IEVtb2ppLVBpY2tlciA9PT09PQoKLy8gTW9ub2Nocm9tZSBVbmlj
b2RlLVN5bWJvbGUgc3RhdHQgYnVudGUgRW1vamkgKENoZXJyeS1QaWNrIDhiMmQwZmQpOgovLyAt
IHJlbmRlcm4gaW4gZGVyIFRleHRmYXJiZSDihpIgT1MtIHVuZCBUaGVtZS11bmFiaGFlbmdpZyBr
b25zaXN0ZW50Ci8vIC0gVmFyaWF0aW9uLVNlbGVjdG9yLTE1ICjvuI4pIGVyendpbmd0IGRpZSBH
bHlwaC1EYXJzdGVsbHVuZyBpbgovLyAgIEJyb3dzZXJuLCBkaWUgZGFzIFN5bWJvbCBzb25zdCBh
bHMgYnVudGUgRW1vamktVmFyaWFudGUgemVpZ2VuCmV4cG9ydCB2YXIgRU1PSklfU0VUID0gWwog
ICAgeyBrYXQ6ICdBbGxnZW1laW4nLCAgICAgICAgZTogWyfihLnvuI4nLCfik5gnLCfinI4nLCfi
mIUnLCfimIYnLCfimpEnXSB9LAogICAgeyBrYXQ6ICdXYXJudW5nICYgVmVyYm90JywgZTogWyfi
mqDvuI4nLCfigLzvuI4nLCfinZfvuI4nLCfim5TvuI4nLCfinJYnLCfinJcnXSB9LAogICAgeyBr
YXQ6ICdHZWZhaHIgJiBFaW5zYXR6JywgZTogWyfimqHvuI4nLCfimKLvuI4nLCfimKPvuI4nLCfi
mKDvuI4nLCfimpLvuI4nXSB9LAogICAgeyBrYXQ6ICdUZXJtaW4gJiBaZWl0JywgICAgZTogWyfi
jJrvuI4nLCfijJsnLCfij7HvuI4nLCfij7MnXSB9LAogICAgeyBrYXQ6ICdWZXJ3YWx0dW5nJywg
ICAgICAgZTogWyfimpbvuI4nLCfimI7vuI4nLCfinInvuI4nLCfimJHvuI4nLCfimJLvuI4nLCfi
mpnvuI4nXSB9Cl07Cgp2YXIgZW1vamlQaWNrZXJBa3RpdiA9IG51bGw7CgpleHBvcnQgZnVuY3Rp
b24gZW1vamlQaWNrZXJaZWlnZW4oYW5jaG9yLCBvblNlbGVjdCkgewogICAgZW1vamlQaWNrZXJT
Y2hsaWVzc2VuKCk7CiAgICB2YXIgcG9wID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7
CiAgICBwb3AuY2xhc3NOYW1lID0gJ2Vtb2ppLXBpY2tlcic7CiAgICB2YXIgaHRtbCA9ICc8ZGl2
IGNsYXNzPSJlbW9qaS1waWNrZXItZ3JpZCI+PGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJl
bW9qaS1waWNrZXItb3B0IGtlaW5lciIgZGF0YS12PSIiPihrZWlucyk8L2J1dHRvbj48L2Rpdj4n
OwogICAgRU1PSklfU0VULmZvckVhY2goZnVuY3Rpb24oZykgewogICAgICAgIGh0bWwgKz0gJzxk
aXYgY2xhc3M9ImVtb2ppLXBpY2tlci1rYXQiPicgKyBnLmthdCArICc8L2Rpdj4nICsKICAgICAg
ICAgICAgJzxkaXYgY2xhc3M9ImVtb2ppLXBpY2tlci1ncmlkIj4nICsKICAgICAgICAgICAgZy5l
Lm1hcChmdW5jdGlvbihlbSkgeyByZXR1cm4gJzxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0i
ZW1vamktcGlja2VyLW9wdCIgZGF0YS12PSInICsgZXNjYXBlQXR0cihlbSkgKyAnIj4nICsgZXNj
YXBlSFRNTChlbSkgKyAnPC9idXR0b24+JzsgfSkuam9pbignJykgKwogICAgICAgICAgICAnPC9k
aXY+JzsKICAgIH0pOwogICAgcG9wLmlubmVySFRNTCA9IGh0bWw7CiAgICBkb2N1bWVudC5ib2R5
LmFwcGVuZENoaWxkKHBvcCk7CiAgICB2YXIgciA9IGFuY2hvci5nZXRCb3VuZGluZ0NsaWVudFJl
Y3QoKTsKICAgIHZhciBsZWZ0ID0gTWF0aC5taW4oci5sZWZ0LCB3aW5kb3cuaW5uZXJXaWR0aCAt
IDI4NCk7CiAgICB2YXIgdG9wID0gci5ib3R0b20gKyA0OwogICAgaWYgKHRvcCArIDM0MCA+IHdp
bmRvdy5pbm5lckhlaWdodCkgdG9wID0gTWF0aC5tYXgoOCwgci50b3AgLSAzNDQpOwogICAgcG9w
LnN0eWxlLmxlZnQgPSBsZWZ0ICsgJ3B4JzsKICAgIHBvcC5zdHlsZS50b3AgPSB0b3AgKyAncHgn
OwogICAgcG9wLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgZnVuY3Rpb24oZSkgewogICAgICAg
IHZhciBiID0gZS50YXJnZXQuY2xvc2VzdCgnW2RhdGEtdl0nKTsKICAgICAgICBpZiAoIWIpIHJl
dHVybjsKICAgICAgICBvblNlbGVjdChiLmdldEF0dHJpYnV0ZSgnZGF0YS12JykpOwogICAgICAg
IGVtb2ppUGlja2VyU2NobGllc3NlbigpOwogICAgfSk7CiAgICBlbW9qaVBpY2tlckFrdGl2ID0g
cG9wOwogICAgc2V0VGltZW91dChmdW5jdGlvbigpIHsKICAgICAgICBkb2N1bWVudC5hZGRFdmVu
dExpc3RlbmVyKCdjbGljaycsIGVtb2ppUGlja2VyQXV0b0Nsb3NlLCB7IG9uY2U6IHRydWUgfSk7
CiAgICB9LCAwKTsKfQoKZnVuY3Rpb24gZW1vamlQaWNrZXJBdXRvQ2xvc2UoZSkgewogICAgaWYg
KGVtb2ppUGlja2VyQWt0aXYgJiYgIWVtb2ppUGlja2VyQWt0aXYuY29udGFpbnMoZS50YXJnZXQp
KSBlbW9qaVBpY2tlclNjaGxpZXNzZW4oKTsKICAgIGVsc2UgaWYgKGVtb2ppUGlja2VyQWt0aXYp
IHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7IGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNr
JywgZW1vamlQaWNrZXJBdXRvQ2xvc2UsIHsgb25jZTogdHJ1ZSB9KTsgfSwgMCk7Cn0KCmV4cG9y
dCBmdW5jdGlvbiBlbW9qaVBpY2tlclNjaGxpZXNzZW4oKSB7CiAgICBpZiAoZW1vamlQaWNrZXJB
a3RpdikgeyBlbW9qaVBpY2tlckFrdGl2LnJlbW92ZSgpOyBlbW9qaVBpY2tlckFrdGl2ID0gbnVs
bDsgfQp9CgovLyA9PT09PSBNaW5pbWFsZXIgUmljaC1UZXh0LUVkaXRvciA9PT09PQoKZXhwb3J0
IGZ1bmN0aW9uIHJ0ZUluaXQoZWRpdG9yKSB7CiAgICAvLyBzdHlsZVdpdGhDU1M9ZmFsc2Ugendp
bmd0IEJyb3dzZXIsIGZ1ZXIgSW5kZW50IDxibG9ja3F1b3RlPi1UYWdzIHp1CiAgICAvLyBlcnpl
dWdlbiAoc3RhdHQgc3R5bGU9Im1hcmdpbi1sZWZ0OjQwcHgiKS4gVm9ydGVpbDogYmxvY2txdW90
ZQogICAgLy8gdWViZXJsZWJ0IHNhbml0aXplUmljaEh0bWwgKyBFbnRlci1UYXN0ZSBpbm5lcmhh
bGIgYmVoYWVsdCBkYXMKICAgIC8vIEluZGVudC1MZXZlbCAoVXNlci1XdW5zY2g6ICJhdWNoIHpl
aWxlbnVtYnJ1Y2h1ZWJlcmdyZWlmZW5kIikuCiAgICB0cnkgeyBkb2N1bWVudC5leGVjQ29tbWFu
ZCgnc3R5bGVXaXRoQ1NTJywgZmFsc2UsIGZhbHNlKTsgfSBjYXRjaCAoZSkge30KICAgIHZhciB0
b29sYmFyID0gZWRpdG9yLnBhcmVudEVsZW1lbnQucXVlcnlTZWxlY3RvcignLnJ0ZS10b29sYmFy
Jyk7CiAgICBpZiAodG9vbGJhcikgewogICAgICAgIHRvb2xiYXIuYWRkRXZlbnRMaXN0ZW5lcign
bW91c2Vkb3duJywgZnVuY3Rpb24oZSkgewogICAgICAgICAgICB2YXIgYnRuID0gZS50YXJnZXQu
Y2xvc2VzdCgnW2RhdGEtY21kXScpOwogICAgICAgICAgICBpZiAoIWJ0bikgcmV0dXJuOwogICAg
ICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7IC8vIGJlaMOkbHQgU2VsZWN0aW9uIGltIEVkaXRv
cgogICAgICAgICAgICB2YXIgY21kID0gYnRuLmdldEF0dHJpYnV0ZSgnZGF0YS1jbWQnKTsKICAg
ICAgICAgICAgZG9jdW1lbnQuZXhlY0NvbW1hbmQoY21kLCBmYWxzZSwgbnVsbCk7CiAgICAgICAg
ICAgIHJ0ZUJ1dHRvblN0YXRlcyhlZGl0b3IsIHRvb2xiYXIpOwogICAgICAgIH0pOwogICAgICAg
IGVkaXRvci5hZGRFdmVudExpc3RlbmVyKCdrZXl1cCcsIGZ1bmN0aW9uKCkgeyBydGVCdXR0b25T
dGF0ZXMoZWRpdG9yLCB0b29sYmFyKTsgfSk7CiAgICAgICAgZWRpdG9yLmFkZEV2ZW50TGlzdGVu
ZXIoJ21vdXNldXAnLCBmdW5jdGlvbigpIHsgcnRlQnV0dG9uU3RhdGVzKGVkaXRvciwgdG9vbGJh
cik7IH0pOwogICAgfQogICAgLy8gUGFzdGU6IEhUTUwgYmVyZWluaWdlbgogICAgZWRpdG9yLmFk
ZEV2ZW50TGlzdGVuZXIoJ3Bhc3RlJywgZnVuY3Rpb24oZSkgewogICAgICAgIGUucHJldmVudERl
ZmF1bHQoKTsKICAgICAgICB2YXIgaHRtbCA9IChlLmNsaXBib2FyZERhdGEgfHwgd2luZG93LmNs
aXBib2FyZERhdGEpLmdldERhdGEoJ3RleHQvaHRtbCcpOwogICAgICAgIHZhciB0ZXh0ID0gKGUu
Y2xpcGJvYXJkRGF0YSB8fCB3aW5kb3cuY2xpcGJvYXJkRGF0YSkuZ2V0RGF0YSgndGV4dC9wbGFp
bicpOwogICAgICAgIHZhciBpbnNlcnQgPSBodG1sID8gc2FuaXRpemVSaWNoSHRtbChodG1sKSA6
IGVzY2FwZUhUTUwodGV4dCkucmVwbGFjZSgvXHI/XG4vZywgJzxicj4nKTsKICAgICAgICBkb2N1
bWVudC5leGVjQ29tbWFuZCgnaW5zZXJ0SFRNTCcsIGZhbHNlLCBpbnNlcnQpOwogICAgfSk7Cn0K
CmV4cG9ydCBmdW5jdGlvbiBydGVCdXR0b25TdGF0ZXMoZWRpdG9yLCB0b29sYmFyKSB7CiAgICB0
b29sYmFyLnF1ZXJ5U2VsZWN0b3JBbGwoJ1tkYXRhLWNtZF0nKS5mb3JFYWNoKGZ1bmN0aW9uKGJ0
bikgewogICAgICAgIHZhciBjbWQgPSBidG4uZ2V0QXR0cmlidXRlKCdkYXRhLWNtZCcpOwogICAg
ICAgIHRyeSB7CiAgICAgICAgICAgIGlmIChkb2N1bWVudC5xdWVyeUNvbW1hbmRTdGF0ZShjbWQp
KSBidG4uY2xhc3NMaXN0LmFkZCgnYWt0aXYnKTsKICAgICAgICAgICAgZWxzZSBidG4uY2xhc3NM
aXN0LnJlbW92ZSgnYWt0aXYnKTsKICAgICAgICB9IGNhdGNoIChlKSB7fQogICAgfSk7Cn0K
### FILE: js/wochenplan.js | 15204
Ly8gPT09IHdvY2hlbnBsYW4vd29jaGVucGxhbi5qcyA9PT0KLy8gV29jaGVucGxhbi0gdW5kIFBl
cnNvbmVuLVBsYW4tVGFiLgoKaW1wb3J0IHsgWiB9IGZyb20gJy4vY29yZV9zdGF0ZS5qcyc7Cmlt
cG9ydCB7CiAgICBlc2NhcGVIVE1MLCBlc2NhcGVBdHRyLAogICAgZGF0dW1TdHIsIGRhdHVtRm9y
bWF0REUsIGRhdHVtS3VyekRFLCB3b2NoZW50YWdLdXJ6LCBpc3RXb2NoZW5lbmRlLAogICAgZnVu
a3Rpb25zUmFuZywgcmVuZGVyRXJyb3JCb3gKfSBmcm9tICcuL2NvcmVfdXRpbC5qcyc7CmltcG9y
dCB7IHNvbmRlclRpdGVsQXVzVGV4dCB9IGZyb20gJy4vYWRtaW5fa2FsZW5kZXIuanMnOwppbXBv
cnQgeyBrb21tZW50YXJUZXh0IH0gZnJvbSAnLi9ncmlkX2ludGVyYWN0aW9uLmpzJzsKCiAgICAv
LyA9PT09PSBXb2NoZW5wbGFuID09PT09CgogICAgdmFyIHdwT2Zmc2V0ID0gMDsgLy8gV29jaGVu
b2Zmc2V0IHJlbGF0aXYgenVyIGFrdHVlbGxlbiBXb2NoZQoKICAgIGZ1bmN0aW9uIHdwV29jaGVU
YWdlKG9mZnNldCkgewogICAgICAgIHZhciBoZXV0ZSA9IG5ldyBEYXRlKCk7CiAgICAgICAgLy8g
TW9udGFnIGRlciBha3R1ZWxsZW4gV29jaGUgYmVyZWNobmVuCiAgICAgICAgdmFyIHRhZyA9IGhl
dXRlLmdldERheSgpOyAvLyAwPVNvLCAxPU1vLCAuLi4KICAgICAgICB2YXIgZGlmZiA9IHRhZyA9
PT0gMCA/IC02IDogMSAtIHRhZzsKICAgICAgICB2YXIgbW9udGFnID0gbmV3IERhdGUoaGV1dGUp
OwogICAgICAgIG1vbnRhZy5zZXREYXRlKG1vbnRhZy5nZXREYXRlKCkgKyBkaWZmICsgKG9mZnNl
dCAqIDcpKTsKICAgICAgICBtb250YWcuc2V0SG91cnMoMCwgMCwgMCwgMCk7CgogICAgICAgIHZh
ciB0YWdlID0gW107CiAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCA3OyBpKyspIHsKICAgICAg
ICAgICAgdmFyIGQgPSBuZXcgRGF0ZShtb250YWcpOwogICAgICAgICAgICBkLnNldERhdGUoZC5n
ZXREYXRlKCkgKyBpKTsKICAgICAgICAgICAgdGFnZS5wdXNoKGQpOwogICAgICAgIH0KICAgICAg
ICByZXR1cm4gdGFnZTsKICAgIH0KCiAgICBmdW5jdGlvbiB3cFJlbmRlcm4oKSB7CiAgICAgICAg
dHJ5IHsKICAgICAgICAgICAgX3dwUmVuZGVybkludGVybigpOwogICAgICAgIH0gY2F0Y2ggKGUp
IHsKICAgICAgICAgICAgcmVuZGVyRXJyb3JCb3goZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2Fu
c2ljaHQtd29jaGVucGxhbicpLCBlLCAnV29jaGVucGxhbicpOwogICAgICAgIH0KICAgIH0KICAg
IGZ1bmN0aW9uIF93cFJlbmRlcm5JbnRlcm4oKSB7CiAgICAgICAgdmFyIHRhZ2UgPSB3cFdvY2hl
VGFnZSh3cE9mZnNldCk7CiAgICAgICAgdmFyIGhldXRlS2V5ID0gWi5oZXV0ZVN0cjsKICAgICAg
ICB2YXIgdm9uID0gdGFnZVswXSwgYmlzID0gdGFnZVs2XTsKCiAgICAgICAgZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoJ3dwLXplaXRyYXVtJykuaW5uZXJIVE1MID0KICAgICAgICAgICAgJzxzdHJv
bmc+VkkzIOKAlCBXb2NoZW5wbGFuICcgKyBkYXR1bUt1cnpERSh2b24pICsgJ+KAkycgKyBkYXR1
bUt1cnpERShiaXMpICsgJyAnICsgdm9uLmdldEZ1bGxZZWFyKCkgKyAnPC9zdHJvbmc+JzsKCiAg
ICAgICAgLy8gNiBTY2hpY2h0LVNwYWx0ZW46IERHTCBGL1MvTiArIFdERi9GQlAgRi9TL04KICAg
ICAgICB2YXIgc3BhbHRlbiA9IFsKICAgICAgICAgICAgeyBjbHM6ICd3cC1zY2hpY2h0LWZydWVo
JywgcHJlZml4ZTogW3sgY29kZTonRi1ER0wnLCBzdGVybjpmYWxzZSB9XSB9LAogICAgICAgICAg
ICB7IGNsczogJ3dwLXNjaGljaHQtc3BhZXQnLCBwcmVmaXhlOiBbeyBjb2RlOidTLURHTCcsIHN0
ZXJuOmZhbHNlIH1dIH0sCiAgICAgICAgICAgIHsgY2xzOiAnd3Atc2NoaWNodC1uYWNodCcsIHBy
ZWZpeGU6IFt7IGNvZGU6J04tREdMJywgc3Rlcm46ZmFsc2UgfV0gfSwKICAgICAgICAgICAgeyBj
bHM6ICd3cC1zY2hpY2h0LWZydWVoJywgcHJlZml4ZTogW3sgY29kZTonRi1XREYnLCBzdGVybjpm
YWxzZSB9LHsgY29kZTonRi1GQlAnLCBzdGVybjp0cnVlIH1dIH0sCiAgICAgICAgICAgIHsgY2xz
OiAnd3Atc2NoaWNodC1zcGFldCcsIHByZWZpeGU6IFt7IGNvZGU6J1MtV0RGJywgc3Rlcm46ZmFs
c2UgfSx7IGNvZGU6J1MtRkJQJywgc3Rlcm46dHJ1ZSB9XSB9LAogICAgICAgICAgICB7IGNsczog
J3dwLXNjaGljaHQtbmFjaHQnLCBwcmVmaXhlOiBbeyBjb2RlOidOLVdERicsIHN0ZXJuOmZhbHNl
IH0seyBjb2RlOidOLUZCUCcsIHN0ZXJuOnRydWUgfV0gfQogICAgICAgIF07CiAgICAgICAgdmFy
IHd0TmFtZW4gPSBbJ01vJywnRGknLCdNaScsJ0RvJywnRnInLCdTYScsJ1NvJ107CgogICAgICAg
IHZhciBibG9lY2tlSHRtbCA9ICcnOwogICAgICAgIHRhZ2UuZm9yRWFjaChmdW5jdGlvbihkLCBk
aSkgewogICAgICAgICAgICB2YXIgZFN0ciA9IGRhdHVtU3RyKGQpOwogICAgICAgICAgICB2YXIg
aW5mbyA9IFoudGFnSW5mb3NbZFN0cl0gfHwgeyB0eXA6ICdub3JtYWwnIH07CiAgICAgICAgICAg
IHZhciBlaW50ciA9IChaLnBsYW51bmcuZWludHJhZWdlIHx8IHt9KVtkU3RyXSB8fCB7fTsKICAg
ICAgICAgICAgdmFyIGlzdEhldXRlID0gZFN0ciA9PT0gaGV1dGVLZXk7CiAgICAgICAgICAgIHZh
ciBpc3RGVCA9IGluZm8udHlwID09PSAnZmVpZXJ0YWcnOwogICAgICAgICAgICB2YXIgaXN0V0Ug
PSBkaSA+PSA1OwoKICAgICAgICAgICAgdmFyIGJsb2NrQ2xzID0gJ3dwLXRhZ2Jsb2NrJzsKICAg
ICAgICAgICAgaWYgKGlzdEhldXRlKSBibG9ja0NscyArPSAnIHdwLXRhZ2Jsb2NrLWhldXRlJzsK
ICAgICAgICAgICAgaWYgKGlzdEZUKSBibG9ja0NscyArPSAnIHdwLXRhZ2Jsb2NrLWZ0JyArIChp
bmZvLndpY2h0aWcgPyAnIHdwLXRhZ2Jsb2NrLWZ0LXdpY2h0aWcnIDogJycpOwogICAgICAgICAg
ICBlbHNlIGlmIChpc3RXRSkgYmxvY2tDbHMgKz0gJyB3cC10YWdibG9jay13ZSc7CiAgICAgICAg
ICAgIGVsc2UgaWYgKGluZm8udHlwID09PSAnZmVyaWVuJykgYmxvY2tDbHMgKz0gJyB3cC10YWdi
bG9jay1ucyc7CgogICAgICAgICAgICAvLyBQZXJzb25lbiBqZSBTcGFsdGUgc2FtbWVsbiwgbmFj
aCBQb3NpdGlvbiBzb3J0aWVydAogICAgICAgICAgICB2YXIgc3BhbHRlbkRhdGVuID0gc3BhbHRl
bi5tYXAoZnVuY3Rpb24oc3ApIHsKICAgICAgICAgICAgICAgIHZhciBlcmcgPSBbXTsKICAgICAg
ICAgICAgICAgIFoucGVyc29uZW4uZm9yRWFjaChmdW5jdGlvbihwKSB7CiAgICAgICAgICAgICAg
ICAgICAgdmFyIHcgPSBlaW50cltTdHJpbmcocC5pZCldIHx8ICcnOwogICAgICAgICAgICAgICAg
ICAgIHNwLnByZWZpeGUuZm9yRWFjaChmdW5jdGlvbihwcmVmKSB7CiAgICAgICAgICAgICAgICAg
ICAgICAgIGlmICh3ID09PSBwcmVmLmNvZGUpIGVyZy5wdXNoKHsgaWQ6IHAuaWQsIG5hbWU6IHAu
bmFtZSwgcG9zOiBwLnBvc2l0aW9uIHx8IDk5OSwgc3Rlcm46IHByZWYuc3Rlcm4gfSk7CiAgICAg
ICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgICAgIGVy
Zy5zb3J0KGZ1bmN0aW9uKGEsIGIpIHsgcmV0dXJuIGEucG9zIC0gYi5wb3M7IH0pOwogICAgICAg
ICAgICAgICAgcmV0dXJuIGVyZzsKICAgICAgICAgICAgfSk7CiAgICAgICAgICAgIC8vIEltbWVy
IGV4YWt0IDggWmVpbGVuIHBybyBUYWcg4oCUIGhvbW9nZW5lcyBMYXlvdXQsIGdhcmFudGllcnQg
ZWluc2VpdGlnZXIgRHJ1Y2sKICAgICAgICAgICAgdmFyIG1heFJvd3MgPSA4OwoKICAgICAgICAg
ICAgLy8gVGFnLUxhYmVsIChsaW5rcywgdmVydGlrYWwva29tcGFrdCkKICAgICAgICAgICAgdmFy
IHp1c2F0eiA9ICcnOwogICAgICAgICAgICBpZiAoaXN0RlQpIHp1c2F0eiA9ICc8c3BhbiBjbGFz
cz0id3AtdGwtenVzYXR6IHdwLXRsLXotZnQiIHRpdGxlPSInICsgZXNjYXBlQXR0cihpbmZvLm5h
bWUgfHwgJ0ZlaWVydGFnJykgKyAnIj7wn46JICcgKyBlc2NhcGVIVE1MKGluZm8ubmFtZSB8fCAn
RmVpZXJ0YWcnKSArICc8L3NwYW4+JzsKICAgICAgICAgICAgZWxzZSBpZiAoaW5mby50eXAgPT09
ICdmZXJpZW4nKSB6dXNhdHogPSAnPHNwYW4gY2xhc3M9IndwLXRsLXp1c2F0eiB3cC10bC16LWZl
cmllbiIgdGl0bGU9IicgKyBlc2NhcGVBdHRyKGluZm8ubmFtZSB8fCAnU2NodWxmZXJpZW4nKSAr
ICciPvCfj5bvuI8gJyArIGVzY2FwZUhUTUwoaW5mby5uYW1lIHx8ICdTY2h1bGZlcmllbicpICsg
Jzwvc3Bhbj4nOwogICAgICAgICAgICBpZiAoaW5mby5zb25kZXIpIHsKICAgICAgICAgICAgICAg
IHZhciBzSWNvbiA9IGluZm8uc29uZGVyLmljb24gfHwgKGluZm8uc29uZGVyLnR5cCA9PT0gJ3dh
cm51bmcnID8gJ+KaoCcgOiAn4oS5Jyk7CiAgICAgICAgICAgICAgICB2YXIgc1RpdCA9IGluZm8u
c29uZGVyLnRpdGVsIHx8IHNvbmRlclRpdGVsQXVzVGV4dChpbmZvLnNvbmRlci50ZXh0KSB8fCAn
SGlud2Vpcyc7CiAgICAgICAgICAgICAgICB6dXNhdHogKz0gJzxzcGFuIGNsYXNzPSJ3cC10bC16
dXNhdHogd3AtdGwtei0nICsgKGluZm8uc29uZGVyLnR5cCB8fCAnaGlud2VpcycpICsgJyIgdGl0
bGU9IicgKyBlc2NhcGVBdHRyKHNUaXQpICsgJyI+JyArIGVzY2FwZUhUTUwoc0ljb24pICsgJyAn
ICsgZXNjYXBlSFRNTChzVGl0KSArICc8L3NwYW4+JzsKICAgICAgICAgICAgfQogICAgICAgICAg
ICBpZiAoaW5mby5nZWJ1cnRzdGFnZSAmJiBpbmZvLmdlYnVydHN0YWdlLmxlbmd0aCkgewogICAg
ICAgICAgICAgICAgenVzYXR6ICs9ICc8c3BhbiBjbGFzcz0id3AtdGwtenVzYXR6IHdwLXRsLXot
Z2IiIHRpdGxlPSJHZWJ1cnRzdGFnIj7wn46CICcgKyBlc2NhcGVIVE1MKGluZm8uZ2VidXJ0c3Rh
Z2UubWFwKGZ1bmN0aW9uKGcpe3JldHVybiBnLm5hbWU7fSkuam9pbignLCAnKSkgKyAnPC9zcGFu
Pic7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIHZhciB0YWdMYWJlbCA9ICc8ZGl2IGNsYXNz
PSJ3cC10YWdibG9jay1sYWJlbCI+JyArCiAgICAgICAgICAgICAgICAnPGRpdiBjbGFzcz0id3At
dGwta29wZiI+JyArCiAgICAgICAgICAgICAgICAgICAgJzxzcGFuIGNsYXNzPSJ3cC10bC13dCI+
JyArIHd0TmFtZW5bZGldICsgJy48L3NwYW4+JyArCiAgICAgICAgICAgICAgICAgICAgJzxzcGFu
IGNsYXNzPSJ3cC10bC1kYXR1bSI+JyArIGRhdHVtRm9ybWF0REUoZFN0cikgKyAnPC9zcGFuPicg
KwogICAgICAgICAgICAgICAgJzwvZGl2PicgKwogICAgICAgICAgICAgICAgKHp1c2F0eiA/ICc8
ZGl2IGNsYXNzPSJ3cC10bC16dXNhdHotYm94Ij4nICsgenVzYXR6ICsgJzwvZGl2PicgOiAnJykg
KwogICAgICAgICAgICAnPC9kaXY+JzsKCiAgICAgICAgICAgIC8vIFRhYmVsbGUgcHJvIFRhZyAo
NiBTcGFsdGVuKTogREdMIEYvUy9OIHwgV0RGL0ZCUCBGL1MvTgogICAgICAgICAgICB2YXIgdGFi
ID0gJzx0YWJsZSBjbGFzcz0id3AtdGFnYmxvY2stdGFiZWxsZSI+JyArCiAgICAgICAgICAgICAg
ICAnPHRoZWFkPicgKwogICAgICAgICAgICAgICAgICAgICc8dHIgY2xhc3M9IndwLXRhZy1oMSI+
JyArCiAgICAgICAgICAgICAgICAgICAgICAgICc8dGggY29sc3Bhbj0iMyIgY2xhc3M9IndwLWgx
LWRnbCI+REdMPC90aD4nICsKICAgICAgICAgICAgICAgICAgICAgICAgJzx0aCBjb2xzcGFuPSIz
IiBjbGFzcz0id3AtaDEtd2RmIj5XREYvRkJQPC90aD4nICsKICAgICAgICAgICAgICAgICAgICAn
PC90cj4nICsKICAgICAgICAgICAgICAgICAgICAnPHRyIGNsYXNzPSJ3cC10YWctaDIiPicgKwog
ICAgICAgICAgICAgICAgICAgICAgICAnPHRoIGNsYXNzPSJ3cC1zY2hpY2h0LWZydWVoIj5GcsO8
aDwvdGg+JyArCiAgICAgICAgICAgICAgICAgICAgICAgICc8dGggY2xhc3M9IndwLXNjaGljaHQt
c3BhZXQiPlNww6R0PC90aD4nICsKICAgICAgICAgICAgICAgICAgICAgICAgJzx0aCBjbGFzcz0i
d3Atc2NoaWNodC1uYWNodCI+TmFjaHQ8L3RoPicgKwogICAgICAgICAgICAgICAgICAgICAgICAn
PHRoIGNsYXNzPSJ3cC1zY2hpY2h0LWZydWVoIj5GcsO8aDwvdGg+JyArCiAgICAgICAgICAgICAg
ICAgICAgICAgICc8dGggY2xhc3M9IndwLXNjaGljaHQtc3BhZXQiPlNww6R0PC90aD4nICsKICAg
ICAgICAgICAgICAgICAgICAgICAgJzx0aCBjbGFzcz0id3Atc2NoaWNodC1uYWNodCI+TmFjaHQ8
L3RoPicgKwogICAgICAgICAgICAgICAgICAgICc8L3RyPicgKwogICAgICAgICAgICAgICAgJzwv
dGhlYWQ+JyArCiAgICAgICAgICAgICAgICAnPHRib2R5Pic7CiAgICAgICAgICAgIGZvciAodmFy
IHIgPSAwOyByIDwgbWF4Um93czsgcisrKSB7CiAgICAgICAgICAgICAgICB0YWIgKz0gJzx0cj4n
OwogICAgICAgICAgICAgICAgc3BhbHRlbkRhdGVuLmZvckVhY2goZnVuY3Rpb24oc3AsIHNpKSB7
CiAgICAgICAgICAgICAgICAgICAgdmFyIHAgPSBzcFtyXTsKICAgICAgICAgICAgICAgICAgICB2
YXIgc2NoaWNodENscyA9IHNwYWx0ZW5bc2ldLmNsczsKICAgICAgICAgICAgICAgICAgICB2YXIg
Y2VsbCA9ICcnOwogICAgICAgICAgICAgICAgICAgIGlmIChwKSB7CiAgICAgICAgICAgICAgICAg
ICAgICAgIGNlbGwgPSAnPHNwYW4gY2xhc3M9IndwLW5hbWUnICsgKHAuc3Rlcm4gPyAnIHdwLW5h
bWUtZmJwJyA6ICcnKSArICciIGRhdGEtcGVyc29uLWlkPSInICsgcC5pZCArICciPicgKwogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgZXNjYXBlSFRNTChwLm5hbWUpICsgKHAuc3Rlcm4gPyAn
PHN1cD4qPC9zdXA+JyA6ICcnKSArICc8L3NwYW4+JzsKICAgICAgICAgICAgICAgICAgICB9CiAg
ICAgICAgICAgICAgICAgICAgdGFiICs9ICc8dGQgY2xhc3M9IndwLXRkLW5hbWUgJyArIHNjaGlj
aHRDbHMgKyAnIj4nICsgY2VsbCArICc8L3RkPic7CiAgICAgICAgICAgICAgICB9KTsKICAgICAg
ICAgICAgICAgIHRhYiArPSAnPC90cj4nOwogICAgICAgICAgICB9CiAgICAgICAgICAgIHRhYiAr
PSAnPC90Ym9keT48L3RhYmxlPic7CgogICAgICAgICAgICBibG9lY2tlSHRtbCArPSAnPGRpdiBj
bGFzcz0iJyArIGJsb2NrQ2xzICsgJyI+JyArIHRhZ0xhYmVsICsgJzxkaXYgY2xhc3M9IndwLXRh
Z2Jsb2NrLWluaGFsdCI+JyArIHRhYiArICc8L2Rpdj48L2Rpdj4nOwogICAgICAgIH0pOwoKICAg
ICAgICAvLyBGb290ZXI6IEhpbndlaXMgdW5kIERydWNrZGF0dW0KICAgICAgICB2YXIgamV0enQg
PSBuZXcgRGF0ZSgpOwogICAgICAgIHZhciBwYWQgPSBmdW5jdGlvbihuKXsgcmV0dXJuIChuPDEw
PycwJzonJykgKyBuOyB9OwogICAgICAgIHZhciBkcnVja1plaXQgPSBkYXR1bUZvcm1hdERFKFou
aGV1dGVTdHIpICsgJyAnICsgcGFkKGpldHp0LmdldEhvdXJzKCkpICsgJzonICsgcGFkKGpldHp0
LmdldE1pbnV0ZXMoKSk7CiAgICAgICAgdmFyIGZvb3RlciA9ICc8ZGl2IGNsYXNzPSJ3cC1zZWl0
ZS1mdXNzIj4nICsKICAgICAgICAgICAgJzxzcGFuIGNsYXNzPSJ3cC1mdXNzLW5vdGUiPjxzdXA+
Kjwvc3VwPiBCZXNldHp1bmcgZWluZXIgU3RyZWlmZSBhdXMgZGVtIEZ1bmt0aW9uc2Jlc2V0enVu
Z3NwbGFuPC9zcGFuPicgKwogICAgICAgICAgICAnPHNwYW4gY2xhc3M9IndwLWZ1c3MtZHJ1Y2si
PkRydWNrOiAnICsgZHJ1Y2taZWl0ICsgJzwvc3Bhbj4nICsKICAgICAgICAnPC9kaXY+JzsKCiAg
ICAgICAgLy8gU2VpdGVuLUtvcGYgKG9wdGlvbmFsIGbDvHIgQmlsZHNjaGlybTsgd2lyZCBiZWlt
IERydWNrIG9obmVoaW4gYXVzZ2VibGVuZGV0IGF1w59lcmhhbGIpCiAgICAgICAgdmFyIHNlaXRl
S29wZiA9ICc8ZGl2IGNsYXNzPSJ3cC1zZWl0ZS1rb3BmIj4nICsKICAgICAgICAgICAgJzxoMT5W
ZXJrZWhyc2luc3Bla3Rpb24gMyDigJQgV29jaGVucGxhbiB2b24gPHN0cm9uZz4nICsgZGF0dW1L
dXJ6REUodm9uKSArICc8L3N0cm9uZz4gYmlzIDxzdHJvbmc+JyArIGRhdHVtS3VyekRFKGJpcykg
KyAnPC9zdHJvbmc+ICcgKyB2b24uZ2V0RnVsbFllYXIoKSArICc8L2gxPicgKwogICAgICAgICc8
L2Rpdj4nOwoKICAgICAgICB2YXIgc2Nyb2xsID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignLndw
LXNjcm9sbCcpOwogICAgICAgIGlmIChzY3JvbGwpIHNjcm9sbC5pbm5lckhUTUwgPSAnPGRpdiBj
bGFzcz0id3Atc2VpdGUiPicgKyBzZWl0ZUtvcGYgKyBibG9lY2tlSHRtbCArIGZvb3RlciArICc8
L2Rpdj4nOwogICAgfQoKICAgIC8vID09PT09IFBlcnPDtm5saWNoZXIgUGxhbiA9PT09PQoKICAg
IGZ1bmN0aW9uIHBwUmVuZGVybigpIHsKICAgICAgICAvLyBEcm9wZG93biBiZWbDvGxsZW4KICAg
ICAgICB2YXIgc2VsID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3BwLXBlcnNvbi1hdXN3YWhs
Jyk7CiAgICAgICAgaWYgKHNlbC5vcHRpb25zLmxlbmd0aCA9PT0gMCkgewogICAgICAgICAgICBa
LnBlcnNvbmVuLmZvckVhY2goZnVuY3Rpb24ocCkgewogICAgICAgICAgICAgICAgdmFyIG9wdCA9
IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ29wdGlvbicpOwogICAgICAgICAgICAgICAgb3B0LnZh
bHVlID0gcC5pZDsKICAgICAgICAgICAgICAgIG9wdC50ZXh0Q29udGVudCA9IHAubmFtZSArIChw
LnZvcm5hbWUgPyAnLCAnICsgcC52b3JuYW1lIDogJycpICsgJyAoJyArIHAuZ3J1cHBlICsgJykn
OwogICAgICAgICAgICAgICAgc2VsLmFwcGVuZENoaWxkKG9wdCk7CiAgICAgICAgICAgIH0pOwog
ICAgICAgIH0KCiAgICAgICAgdmFyIHBpZCA9IHNlbC52YWx1ZTsKICAgICAgICBpZiAoIXBpZCAm
JiBaLnBlcnNvbmVuLmxlbmd0aCA+IDApIHsKICAgICAgICAgICAgcGlkID0gU3RyaW5nKFoucGVy
c29uZW5bMF0uaWQpOwogICAgICAgICAgICBzZWwudmFsdWUgPSBwaWQ7CiAgICAgICAgfQogICAg
ICAgIHZhciBwZXJzb24gPSBaLnBlcnNvbmVuLmZpbmQoZnVuY3Rpb24ocCkgeyByZXR1cm4gU3Ry
aW5nKHAuaWQpID09PSBTdHJpbmcocGlkKTsgfSk7CiAgICAgICAgaWYgKCFwZXJzb24pIHJldHVy
bjsKCiAgICAgICAgLy8gVGl0ZWwKICAgICAgICB2YXIgdGl0ZWxUZXh0ID0gJ1BlcnPDtm5saWNo
ZXIgRGllbnN0cGxhbiB2b24gJyArIHBlcnNvbi5uYW1lICsKICAgICAgICAgICAgKHBlcnNvbi52
b3JuYW1lID8gJywgJyArIHBlcnNvbi52b3JuYW1lIDogJycpICsgJyDigJQgJyArIChaLmFkbWlu
LmphaHIgfHwgJycpOwogICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdwcC10aXRlbCcp
LnRleHRDb250ZW50ID0gdGl0ZWxUZXh0OwoKICAgICAgICAvLyAxMiBNb25hdHNibMO2Y2tlCiAg
ICAgICAgdmFyIGphaHIgPSBaLmFkbWluLmphaHIgfHwgbmV3IERhdGUoKS5nZXRGdWxsWWVhcigp
OwogICAgICAgIHZhciBtb25hdGVIdG1sID0gJyc7CiAgICAgICAgdmFyIHN0YXRzID0geyBmcnVl
aDogMCwgc3BhZXQ6IDAsIG5hY2h0OiAwLCB1cmxhdWI6IDAsIGtyYW5rOiAwLCBsZWhyZ2FuZzog
MCwgZnJlaTogMCwgc29uZGVyOiAwLCBnZXNhbXQ6IDAgfTsKICAgICAgICB2YXIgbW9OYW1lbiA9
IFsnSmFudWFyJywnRmVicnVhcicsJ03DpHJ6JywnQXByaWwnLCdNYWknLCdKdW5pJywnSnVsaScs
J0F1Z3VzdCcsJ1NlcHRlbWJlcicsJ09rdG9iZXInLCdOb3ZlbWJlcicsJ0RlemVtYmVyJ107CiAg
ICAgICAgdmFyIHd0S3VyeiA9IFsnTW8nLCdEaScsJ01pJywnRG8nLCdGcicsJ1NhJywnU28nXTsK
CiAgICAgICAgZm9yICh2YXIgbSA9IDA7IG0gPCAxMzsgbSsrKSB7CiAgICAgICAgICAgIC8vIG09
MTIgLT4gQnVmZmVyLUphbnVhciBkZXMgRm9sZ2VqYWhyZXMgKERhdGUtS29uc3RydWt0b3Igbm9y
bWFsaXNpZXJ0OiBqYWhyPTIwMjYsIG09MTIgLT4gMjAyNy0wMSkKICAgICAgICAgICAgdmFyIG1v
bmF0TGFiZWwgPSBtID09PSAxMiA/IChtb05hbWVuWzBdICsgJyAnICsgKGphaHIgKyAxKSkgOiBt
b05hbWVuW21dOwogICAgICAgICAgICBtb25hdGVIdG1sICs9ICc8ZGl2IGNsYXNzPSJwcC1tb25h
dCI+PGRpdiBjbGFzcz0icHAtbW9uYXQta29wZiI+JyArIG1vbmF0TGFiZWwgKyAnPC9kaXY+JzsK
ICAgICAgICAgICAgbW9uYXRlSHRtbCArPSAnPGRpdiBjbGFzcz0icHAtbW9uYXQtZ3JpZCI+JzsK
CiAgICAgICAgICAgIC8vIFdvY2hlbnRhZy1IZWFkZXIKICAgICAgICAgICAgd3RLdXJ6LmZvckVh
Y2goZnVuY3Rpb24odykgewogICAgICAgICAgICAgICAgbW9uYXRlSHRtbCArPSAnPGRpdiBjbGFz
cz0icHAtd3Qta29wZiI+JyArIHcgKyAnPC9kaXY+JzsKICAgICAgICAgICAgfSk7CgogICAgICAg
ICAgICAvLyBFcnN0ZXIgVGFnOiB3ZWxjaGVyIFdvY2hlbnRhZz8KICAgICAgICAgICAgdmFyIGVy
c3RlclRhZyA9IG5ldyBEYXRlKGphaHIsIG0sIDEpOwogICAgICAgICAgICB2YXIgc3RhcnRXdCA9
IGVyc3RlclRhZy5nZXREYXkoKTsgLy8gMD1TbwogICAgICAgICAgICBzdGFydFd0ID0gc3RhcnRX
dCA9PT0gMCA/IDYgOiBzdGFydFd0IC0gMTsgLy8gMD1NbwoKICAgICAgICAgICAgLy8gTGVlcmUg
WmVsbGVuIHZvciBkZW0gMS4KICAgICAgICAgICAgZm9yICh2YXIgbGVlciA9IDA7IGxlZXIgPCBz
dGFydFd0OyBsZWVyKyspIHsKICAgICAgICAgICAgICAgIG1vbmF0ZUh0bWwgKz0gJzxkaXYgY2xh
c3M9InBwLXRhZyBwcC10YWctbGVlciI+PC9kaXY+JzsKICAgICAgICAgICAgfQoKICAgICAgICAg
ICAgdmFyIHRhZ2VJbU1vbmF0ID0gbmV3IERhdGUoamFociwgbSArIDEsIDApLmdldERhdGUoKTsK
ICAgICAgICAgICAgZm9yICh2YXIgdCA9IDE7IHQgPD0gdGFnZUltTW9uYXQ7IHQrKykgewogICAg
ICAgICAgICAgICAgdmFyIGQgPSBuZXcgRGF0ZShqYWhyLCBtLCB0KTsKICAgICAgICAgICAgICAg
IHZhciBkU3RyID0gZGF0dW1TdHIoZCk7CiAgICAgICAgICAgICAgICB2YXIgaW5mbyA9IFoudGFn
SW5mb3NbZFN0cl0gfHwgeyB0eXA6ICdub3JtYWwnIH07CiAgICAgICAgICAgICAgICB2YXIgZWlu
dHIgPSAoWi5wbGFudW5nLmVpbnRyYWVnZSB8fCB7fSlbZFN0cl0gfHwge307CiAgICAgICAgICAg
ICAgICB2YXIgd2VydCA9IGVpbnRyW1N0cmluZyhwaWQpXSB8fCAnJzsKICAgICAgICAgICAgICAg
IHZhciBmYXJiZW4gPSBaLmNvZGVNYXBbd2VydF0gfHwge307CiAgICAgICAgICAgICAgICAvLyBL
b21tZW50YXI6IHNlaXQgU2NoZW1hLVVtc3RlbGx1bmcgaXN0IGRlciBFaW50cmFnIGVpbiBPYmpl
a3QKICAgICAgICAgICAgICAgIC8vICh7dGV4dCwgZ2VhZW5kZXJ0QW0sIGdlYWVuZGVydFZvbn0p
IOKAlCB2b3JoZXIgZWluIFBsYWluLVN0cmluZy4KICAgICAgICAgICAgICAgIC8vIGtvbW1lbnRh
clRleHQoKSBoYWVuZGVsdCBiZWlkZSBGb3JtZW4gdW5kIGdpYnQgZWluZW4gc2F1YmVyZW4KICAg
ICAgICAgICAgICAgIC8vIFN0cmluZyB6dXJ1ZWNrIChzb25zdCBsYW5kZXRlICJbb2JqZWN0IE9i
amVjdF0iIGltIFRvb2x0aXApLgogICAgICAgICAgICAgICAgdmFyIGtvbW1lbnRhciA9IGtvbW1l
bnRhclRleHQoKChaLnBsYW51bmcua29tbWVudGFyZSB8fCB7fSlbZFN0cl0gfHwge30pW1N0cmlu
ZyhwaWQpXSk7CiAgICAgICAgICAgICAgICB2YXIgd2UgPSBpc3RXb2NoZW5lbmRlKGQpOwoKICAg
ICAgICAgICAgICAgIHZhciB0YWdDbHMgPSAncHAtdGFnJzsKICAgICAgICAgICAgICAgIGlmIChk
U3RyID09PSBaLmhldXRlU3RyKSB0YWdDbHMgKz0gJyBwcC10YWctaGV1dGUnOwogICAgICAgICAg
ICAgICAgaWYgKGluZm8udHlwID09PSAnZmVpZXJ0YWcnKSB0YWdDbHMgKz0gJyBwcC10YWctZnQn
OwogICAgICAgICAgICAgICAgZWxzZSBpZiAod2UpIHRhZ0NscyArPSAnIHBwLXRhZy13ZSc7CiAg
ICAgICAgICAgICAgICBpZiAoa29tbWVudGFyKSB0YWdDbHMgKz0gJyBwcC10YWcta29tbWVudGFy
JzsKCiAgICAgICAgICAgICAgICB2YXIgd2VydFN0eWxlID0gJyc7CiAgICAgICAgICAgICAgICB2
YXIgd2VydFRleHQgPSAnJzsKICAgICAgICAgICAgICAgIGlmICh3ZXJ0ICYmIGZhcmJlbi5oaW50
ZXJncnVuZCkgewogICAgICAgICAgICAgICAgICAgIHdlcnRTdHlsZSA9ICdiYWNrZ3JvdW5kOicg
KyBlc2NhcGVBdHRyKGZhcmJlbi5oaW50ZXJncnVuZCkgKyAnO2NvbG9yOicgKyBlc2NhcGVBdHRy
KGZhcmJlbi5zY2hyaWZ0IHx8ICcjMDAwJyk7CiAgICAgICAgICAgICAgICAgICAgd2VydFRleHQg
PSBmYXJiZW4ua3VlcnplbCB8fCB3ZXJ0OwogICAgICAgICAgICAgICAgfSBlbHNlIGlmICh3ZXJ0
KSB7CiAgICAgICAgICAgICAgICAgICAgd2VydFRleHQgPSB3ZXJ0OwogICAgICAgICAgICAgICAg
fQoKICAgICAgICAgICAgICAgIC8vIFN0YXRpc3RpawogICAgICAgICAgICAgICAgaWYgKHdlcnQp
IHsKICAgICAgICAgICAgICAgICAgICBpZiAod2VydC5pbmRleE9mKCdGLURHTCcpID09PSAwKSBz
dGF0cy5mcnVlaCsrOwogICAgICAgICAgICAgICAgICAgIGVsc2UgaWYgKHdlcnQuaW5kZXhPZign
Uy1ER0wnKSA9PT0gMCkgc3RhdHMuc3BhZXQrKzsKICAgICAgICAgICAgICAgICAgICBlbHNlIGlm
ICh3ZXJ0LmluZGV4T2YoJ04tREdMJykgPT09IDApIHN0YXRzLm5hY2h0Kys7CiAgICAgICAgICAg
ICAgICAgICAgaWYgKHdlcnQgPT09ICdVcmwnKSBzdGF0cy51cmxhdWIrKzsKICAgICAgICAgICAg
ICAgICAgICBpZiAod2VydCA9PT0gJ2tyJyB8fCB3ZXJ0ID09PSAnS3VyJykgc3RhdHMua3Jhbmsr
KzsKICAgICAgICAgICAgICAgICAgICBpZiAod2VydCA9PT0gJ0xHJyB8fCB3ZXJ0ID09PSAnU2Vt
Jykgc3RhdHMubGVocmdhbmcrKzsKICAgICAgICAgICAgICAgICAgICBpZiAod2VydCA9PT0gJ3dm
cicgfHwgd2VydCA9PT0gJ2RmcicpIHN0YXRzLmZyZWkrKzsKICAgICAgICAgICAgICAgICAgICBp
ZiAod2VydC5pbmRleE9mKCdER0wnKSA+PSAwIHx8IHdlcnQuaW5kZXhPZignV0RGJykgPj0gMCB8
fCB3ZXJ0LmluZGV4T2YoJ0ZCUCcpID49IDApIHN0YXRzLmdlc2FtdCsrOwogICAgICAgICAgICAg
ICAgfQoKICAgICAgICAgICAgICAgIHZhciB0aXRsZSA9IHdlcnQ7CiAgICAgICAgICAgICAgICBp
ZiAoa29tbWVudGFyKSB0aXRsZSArPSAnIHwgJyArIGtvbW1lbnRhcjsKICAgICAgICAgICAgICAg
IGlmIChpbmZvLm5hbWUpIHRpdGxlICs9ICcgfCAnICsgaW5mby5uYW1lOwoKICAgICAgICAgICAg
ICAgIG1vbmF0ZUh0bWwgKz0gJzxkaXYgY2xhc3M9IicgKyB0YWdDbHMgKyAnIiB0aXRsZT0iJyAr
IGVzY2FwZUF0dHIodGl0bGUpICsgJyI+JyArCiAgICAgICAgICAgICAgICAgICAgJzxzcGFuIGNs
YXNzPSJwcC10YWctbnIiPicgKyB0ICsgJzwvc3Bhbj4nOwogICAgICAgICAgICAgICAgaWYgKHdl
cnRUZXh0KSB7CiAgICAgICAgICAgICAgICAgICAgbW9uYXRlSHRtbCArPSAnPHNwYW4gY2xhc3M9
InBwLXRhZy13ZXJ0IiBzdHlsZT0iJyArIHdlcnRTdHlsZSArICciPicgKyBlc2NhcGVIVE1MKHdl
cnRUZXh0KSArICc8L3NwYW4+JzsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIG1v
bmF0ZUh0bWwgKz0gJzwvZGl2Pic7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIG1vbmF0ZUh0
bWwgKz0gJzwvZGl2PjwvZGl2Pic7CiAgICAgICAgfQogICAgICAgIGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKCdwcC1tb25hdGUnKS5pbm5lckhUTUwgPSBtb25hdGVIdG1sOwoKICAgICAgICAvLyBa
dXNhbW1lbmZhc3N1bmcKICAgICAgICB2YXIgc3VtSHRtbCA9ICc8aDM+WnVzYW1tZW5mYXNzdW5n
ICcgKyAoWi5hZG1pbi5qYWhyIHx8ICcnKSArICc8L2gzPjxkaXYgY2xhc3M9InBwLXN1bW1hcnkt
Z3JpZCI+JyArCiAgICAgICAgICAgICc8ZGl2IGNsYXNzPSJwcC1zdGF0LWl0ZW0iPjxzcGFuIGNs
YXNzPSJwcC1zdGF0LXphaGwiIHN0eWxlPSJjb2xvcjp2YXIoLS1mYXJiZS1mcnVlaCkiPicgKyBz
dGF0cy5mcnVlaCArICc8L3NwYW4+PHNwYW4gY2xhc3M9InBwLXN0YXQtbGFiZWwiPkZyw7xoZGll
bnN0ZTwvc3Bhbj48L2Rpdj4nICsKICAgICAgICAgICAgJzxkaXYgY2xhc3M9InBwLXN0YXQtaXRl
bSI+PHNwYW4gY2xhc3M9InBwLXN0YXQtemFobCIgc3R5bGU9ImNvbG9yOnZhcigtLWZhcmJlLXNw
YWV0KSI+JyArIHN0YXRzLnNwYWV0ICsgJzwvc3Bhbj48c3BhbiBjbGFzcz0icHAtc3RhdC1sYWJl
bCI+U3DDpHRkaWVuc3RlPC9zcGFuPjwvZGl2PicgKwogICAgICAgICAgICAnPGRpdiBjbGFzcz0i
cHAtc3RhdC1pdGVtIj48c3BhbiBjbGFzcz0icHAtc3RhdC16YWhsIiBzdHlsZT0iY29sb3I6dmFy
KC0tZmFyYmUtbmFjaHQpIj4nICsgc3RhdHMubmFjaHQgKyAnPC9zcGFuPjxzcGFuIGNsYXNzPSJw
cC1zdGF0LWxhYmVsIj5OYWNodGRpZW5zdGU8L3NwYW4+PC9kaXY+JyArCiAgICAgICAgICAgICc8
ZGl2IGNsYXNzPSJwcC1zdGF0LWl0ZW0iPjxzcGFuIGNsYXNzPSJwcC1zdGF0LXphaGwiPicgKyBz
dGF0cy5nZXNhbXQgKyAnPC9zcGFuPjxzcGFuIGNsYXNzPSJwcC1zdGF0LWxhYmVsIj5EaWVuc3Rl
IGdlc2FtdDwvc3Bhbj48L2Rpdj4nICsKICAgICAgICAgICAgJzxkaXYgY2xhc3M9InBwLXN0YXQt
aXRlbSI+PHNwYW4gY2xhc3M9InBwLXN0YXQtemFobCI+JyArIHN0YXRzLnVybGF1YiArICc8L3Nw
YW4+PHNwYW4gY2xhc3M9InBwLXN0YXQtbGFiZWwiPlVybGF1Yjwvc3Bhbj48L2Rpdj4nICsKICAg
ICAgICAgICAgJzxkaXYgY2xhc3M9InBwLXN0YXQtaXRlbSI+PHNwYW4gY2xhc3M9InBwLXN0YXQt
emFobCI+JyArIHN0YXRzLmxlaHJnYW5nICsgJzwvc3Bhbj48c3BhbiBjbGFzcz0icHAtc3RhdC1s
YWJlbCI+TGVocmdhbmcvU2VtaW5hcjwvc3Bhbj48L2Rpdj4nICsKICAgICAgICAgICAgJzxkaXYg
Y2xhc3M9InBwLXN0YXQtaXRlbSI+PHNwYW4gY2xhc3M9InBwLXN0YXQtemFobCI+JyArIHN0YXRz
LmZyZWkgKyAnPC9zcGFuPjxzcGFuIGNsYXNzPSJwcC1zdGF0LWxhYmVsIj5EaWVuc3RmcmVpPC9z
cGFuPjwvZGl2PicgKwogICAgICAgICAgICAnPC9kaXY+JzsKICAgICAgICBkb2N1bWVudC5nZXRF
bGVtZW50QnlJZCgncHAtc3VtbWFyeScpLmlubmVySFRNTCA9IHN1bUh0bWw7CiAgICB9CgpmdW5j
dGlvbiB3cFZvcndvY2hlKCkgICAgICAgeyB3cE9mZnNldC0tOyB3cFJlbmRlcm4oKTsgfQpmdW5j
dGlvbiB3cE5hZWNoc3RlV29jaGUoKSAgeyB3cE9mZnNldCsrOyB3cFJlbmRlcm4oKTsgfQpmdW5j
dGlvbiB3cEFrdHVlbGxlV29jaGUoKSAgeyB3cE9mZnNldCA9IDA7IHdwUmVuZGVybigpOyB9Cgpl
eHBvcnQgewogICAgd3BXb2NoZVRhZ2UsIHdwUmVuZGVybiwgcHBSZW5kZXJuLAogICAgd3BWb3J3
b2NoZSwgd3BOYWVjaHN0ZVdvY2hlLCB3cEFrdHVlbGxlV29jaGUKfTsK
### FILE: rollback.bat | 5223
QGVjaG8gb2ZmCnNldGxvY2FsCnNldCAiQkRJUj0lfmRwMCIKZWNoby4KZWNobyAgPT09IFZJMyBE
R0wtUGxhbnVuZzogUm9sbGJhY2sgKG9mZmxpbmUpID09PQplY2hvICBTdGVsbHQgZGVuIFN0YW5k
IHZvciBkZW0gbGV0enRlbiBVcGRhdGUgd2llZGVyIGhlci4KZWNoby4KcG93ZXJzaGVsbCAtTm9Q
cm9maWxlIC1FeGVjdXRpb25Qb2xpY3kgQnlwYXNzIC1Db21tYW5kICIkbT0nIyMjIFBTJysnQ09E
RSAjIyMnOyRtZT1bSU8uRmlsZV06OlJlYWRBbGxUZXh0KCclfmYwJyk7JHA9JG1lLkluZGV4T2Yo
JG0pOyRubD0kbWUuSW5kZXhPZihbY2hhcl0xMCwkcCk7JHJvb3Q9JGVudjpCRElSLlRyaW1FbmQo
J1wnKTskc3RvcEJhdD0nc3RvcC5iYXQnOyRzdGFydEJhdD0nZGdsLmJhdCc7SW52b2tlLUV4cHJl
c3Npb24gJG1lLlN1YnN0cmluZygkbmwrMSkiCmVjaG8uCnBhdXNlCmV4aXQgL2IKIyMjIFBTQ09E
RSAjIyMKJEVycm9yQWN0aW9uUHJlZmVyZW5jZSA9ICdTdG9wJwojIEVyd2FydGV0IGltIFNjb3Bl
OiAkcm9vdCwgJHN0b3BCYXQsICRzdGFydEJhdAokX3N0b3BOYW1lICA9IGlmICgkbnVsbCAtbmUg
JHN0b3BCYXQpICB7ICRzdG9wQmF0IH0gIGVsc2UgeyAnc3RvcC5iYXQnIH0KJF9zdGFydE5hbWUg
PSBpZiAoJG51bGwgLW5lICRzdGFydEJhdCkgeyAkc3RhcnRCYXQgfSBlbHNlIHsgJ2RnbC5iYXQn
IH0KCiMgQXVzc2NobHVzc2xpc3RlIChpZGVudGlzY2ggenUgdXBkYXRlLnBzMSk6IC5iYWNrdXAg
bmllIGFuZmFzc2VuLCBwbHVzIGdyb8OfZQojIENvbnRlbnQtT3JkbmVyIGF1cyAuYmFja3VwaWdu
b3JlIOKAlCBkaWVzZSBibGVpYmVuIGJlaW0gUm9sbGJhY2sgdW52ZXLDpG5kZXJ0LgokX2V4Y2wg
PSBAKCcuYmFja3VwJykKJF9pZ25vcmVGaWxlID0gSm9pbi1QYXRoICRyb290ICcuYmFja3VwaWdu
b3JlJwppZiAoVGVzdC1QYXRoIC1MaXRlcmFsUGF0aCAkX2lnbm9yZUZpbGUpIHsKICAgICRfZXh0
cmEgPSBAKEdldC1Db250ZW50IC1MaXRlcmFsUGF0aCAkX2lnbm9yZUZpbGUgfCBGb3JFYWNoLU9i
amVjdCB7ICRfLlRyaW0oKSB9IHwKICAgICAgICAgICAgICAgIFdoZXJlLU9iamVjdCB7ICRfIC1u
ZSAnJyAtYW5kIC1ub3QgJF8uU3RhcnRzV2l0aCgnIycpIH0pCiAgICAkX2V4Y2wgPSAkX2V4Y2wg
KyAkX2V4dHJhCn0KJF9leGNsID0gQCgkX2V4Y2wpICAgIyBzdHJpa3QgYWxzIEFycmF5ICh2ZXJo
aW5kZXJ0IFNrYWxhci1FbnRwYWNrdW5nKQoKJGJrID0gSm9pbi1QYXRoICRyb290ICcuYmFja3Vw
JwppZiAoLW5vdCAoVGVzdC1QYXRoIC1MaXRlcmFsUGF0aCAkYmspKSB7CiAgICBXcml0ZS1Ib3N0
ICJLZWluIEJhY2t1cC1WZXJ6ZWljaG5pcyBnZWZ1bmRlbi4gU2ljaGVydW5nZW4gZW50c3RlaGVu
IGF1dG9tYXRpc2NoIGJlaW0gZXJzdGVuIFVwZGF0ZS4iIC1Gb3JlZ3JvdW5kQ29sb3IgUmVkCiAg
ICByZXR1cm4KfQokc25hcHMgPSBHZXQtQ2hpbGRJdGVtIC1MaXRlcmFsUGF0aCAkYmsgLUZpbHRl
ciAnc25hcHNob3QtKi56aXAnIC1FcnJvckFjdGlvbiBTaWxlbnRseUNvbnRpbnVlIHwgU29ydC1P
YmplY3QgTmFtZSAtRGVzY2VuZGluZwppZiAoLW5vdCAkc25hcHMpIHsKICAgIFdyaXRlLUhvc3Qg
IktlaW5lIFNpY2hlcnVuZ2VuIHZvcmhhbmRlbi4gU2ljaGVydW5nZW4gZW50c3RlaGVuIGF1dG9t
YXRpc2NoIGJlaW0gZXJzdGVuIFVwZGF0ZS4iIC1Gb3JlZ3JvdW5kQ29sb3IgUmVkCiAgICByZXR1
cm4KfQoKV3JpdGUtSG9zdCAiIgpXcml0ZS1Ib3N0ICJWZXJmw7xnYmFyZSBTaWNoZXJ1bmdlbiAo
bmV1ZXN0ZSB6dWVyc3QpOiIgLUZvcmVncm91bmRDb2xvciBDeWFuCiRpID0gMApmb3JlYWNoICgk
cyBpbiAkc25hcHMpIHsKICAgICRzaXplID0gJ3swOk4xfSBNQicgLWYgKCRzLkxlbmd0aCAvIDFN
QikKICAgICR0YWcgID0gaWYgKCRpIC1lcSAwKSB7ICIgIDwtIG5ldWVzdGUiIH0gZWxzZSB7ICIi
IH0KICAgIFdyaXRlLUhvc3QgKCIgIFt7MH1dIHsxfSAgKHsyfSl7M30iIC1mICRpLCAkcy5OYW1l
LCAkc2l6ZSwgJHRhZykKICAgICRpKysKfQpXcml0ZS1Ib3N0ICIiCiRjID0gUmVhZC1Ib3N0ICJO
dW1tZXIgZGVyIFNpY2hlcnVuZyB3w6RobGVuIChFbnRlciA9IG5ldWVzdGUgWzBdKSIKaWYgKCRj
IC1lcSAnJykgeyAkYyA9ICcwJyB9CmlmICgkYyAtbm90bWF0Y2ggJ15cZCskJyAtb3IgW2ludF0k
YyAtZ2UgJHNuYXBzLkNvdW50KSB7CiAgICBXcml0ZS1Ib3N0ICJVbmfDvGx0aWdlIEF1c3dhaGwu
IEFiZ2Vicm9jaGVuLiIgLUZvcmVncm91bmRDb2xvciBZZWxsb3cKICAgIHJldHVybgp9CiRjaG9z
ZW4gPSAkc25hcHNbW2ludF0kY10KJHppcCAgICA9ICRjaG9zZW4uRnVsbE5hbWUKCiMgSW50ZWdy
aXTDpHQgZGVyIFNpY2hlcnVuZyBwcsO8ZmVuLCBCRVZPUiBpcmdlbmRldHdhcyBlcnNldHp0IHdp
cmQKQWRkLVR5cGUgLUFzc2VtYmx5TmFtZSBTeXN0ZW0uSU8uQ29tcHJlc3Npb24uRmlsZVN5c3Rl
bQp0cnkgewogICAgJHogPSBbU3lzdGVtLklPLkNvbXByZXNzaW9uLlppcEZpbGVdOjpPcGVuUmVh
ZCgkemlwKQogICAgJG51bGwgPSAkei5FbnRyaWVzLkNvdW50CiAgICAkei5EaXNwb3NlKCkKfSBj
YXRjaCB7CiAgICBXcml0ZS1Ib3N0ICJGRUhMRVI6IFNpY2hlcnVuZyBpc3QgYmVzY2jDpGRpZ3Qg
4oCUIFJvbGxiYWNrIGFiZ2Vicm9jaGVuOiAkemlwIiAtRm9yZWdyb3VuZENvbG9yIFJlZAogICAg
cmV0dXJuCn0KCldyaXRlLUhvc3QgIiIKJHluID0gUmVhZC1Ib3N0ICJTdGFuZCAnJCgkY2hvc2Vu
Lk5hbWUpJyB3aWVkZXJoZXJzdGVsbGVuPyBEZXIgYWt0dWVsbGUgU3RhbmQgd2lyZCBlcnNldHp0
ISBbai9OXSIKaWYgKCR5biAtbm90aW4gJ2onLCdKJywneScsJ1knKSB7IFdyaXRlLUhvc3QgIkFi
Z2Vicm9jaGVuLiI7IHJldHVybiB9CgojIFNlcnZlciBzdG9wcGVuCldyaXRlLUhvc3QgIlN0b3Bw
ZSBTZXJ2ZXIgLi4uIgppZiAoJF9zdG9wTmFtZSAtbmUgJycpIHsKICAgICRzcCA9IEpvaW4tUGF0
aCAkcm9vdCAkX3N0b3BOYW1lCiAgICBpZiAoVGVzdC1QYXRoIC1MaXRlcmFsUGF0aCAkc3ApIHsg
JiBjbWQgL2MgImAiJHNwYCIiOyBTdGFydC1TbGVlcCAtU2Vjb25kcyAyIH0KICAgIGVsc2UgeyBX
cml0ZS1Ib3N0ICIgIChTdG9wLVNrcmlwdCAnJF9zdG9wTmFtZScgbmljaHQgZ2VmdW5kZW4g4oCU
IMO8YmVyc3BydW5nZW4pIiAtRm9yZWdyb3VuZENvbG9yIERhcmtZZWxsb3cgfQp9IGVsc2UgeyBX
cml0ZS1Ib3N0ICIgIChLZWluIFN0b3AtU2tyaXB0IGtvbmZpZ3VyaWVydCDigJQgw7xiZXJzcHJ1
bmdlbikiIC1Gb3JlZ3JvdW5kQ29sb3IgRGFya1llbGxvdyB9CgojIEFrdHVlbGxlbiBTdGFuZCBi
ZWlzZWl0ZSB2ZXJzY2hpZWJlbiAoU2ljaGVyaGVpdHNuZXR6LCBrZWluIERhdGVudmVybHVzdCkK
JGFzaWRlID0gSm9pbi1QYXRoICRiayAoIl92b3Itcm9sbGJhY2stIiArIChHZXQtRGF0ZSAtRm9y
bWF0ICd5eXl5TU1kZC1ISG1tc3MnKSkKTmV3LUl0ZW0gLUl0ZW1UeXBlIERpcmVjdG9yeSAtUGF0
aCAkYXNpZGUgLUZvcmNlIHwgT3V0LU51bGwKR2V0LUNoaWxkSXRlbSAtTGl0ZXJhbFBhdGggJHJv
b3QgLUZvcmNlIHwgV2hlcmUtT2JqZWN0IHsgJF9leGNsIC1ub3Rjb250YWlucyAkXy5OYW1lIH0g
fCBGb3JFYWNoLU9iamVjdCB7CiAgICBNb3ZlLUl0ZW0gLUxpdGVyYWxQYXRoICRfLkZ1bGxOYW1l
IC1EZXN0aW5hdGlvbiAoSm9pbi1QYXRoICRhc2lkZSAkXy5OYW1lKSAtRm9yY2UKfQoKIyBTaWNo
ZXJ1bmcgd2llZGVyaGVyc3RlbGxlbgp0cnkgewogICAgRXhwYW5kLUFyY2hpdmUgLUxpdGVyYWxQ
YXRoICR6aXAgLURlc3RpbmF0aW9uUGF0aCAkcm9vdCAtRm9yY2UKICAgIFdyaXRlLUhvc3QgIlN0
YW5kIHdpZWRlcmhlcmdlc3RlbGx0OiAkKCRjaG9zZW4uTmFtZSkiIC1Gb3JlZ3JvdW5kQ29sb3Ig
R3JlZW4KfSBjYXRjaCB7CiAgICBXcml0ZS1Ib3N0ICJGRUhMRVIgYmVpbSBXaWVkZXJoZXJzdGVs
bGVuIOKAlCBtYWNoZSDDhG5kZXJ1bmcgcsO8Y2tnw6RuZ2lnIC4uLiIgLUZvcmVncm91bmRDb2xv
ciBSZWQKICAgIEdldC1DaGlsZEl0ZW0gLUxpdGVyYWxQYXRoICRyb290IC1Gb3JjZSB8IFdoZXJl
LU9iamVjdCB7ICRfZXhjbCAtbm90Y29udGFpbnMgJF8uTmFtZSB9IHwKICAgICAgICBSZW1vdmUt
SXRlbSAtUmVjdXJzZSAtRm9yY2UgLUVycm9yQWN0aW9uIFNpbGVudGx5Q29udGludWUKICAgIEdl
dC1DaGlsZEl0ZW0gLUxpdGVyYWxQYXRoICRhc2lkZSAtRm9yY2UgfCBGb3JFYWNoLU9iamVjdCB7
CiAgICAgICAgTW92ZS1JdGVtIC1MaXRlcmFsUGF0aCAkXy5GdWxsTmFtZSAtRGVzdGluYXRpb24g
KEpvaW4tUGF0aCAkcm9vdCAkXy5OYW1lKSAtRm9yY2UKICAgIH0KICAgIFdyaXRlLUhvc3QgIlZv
cmhlcmlnZXIgWnVzdGFuZCB3aWVkZXJoZXJnZXN0ZWxsdCDigJQga2VpbiBEYXRlbnZlcmx1c3Qu
IiAtRm9yZWdyb3VuZENvbG9yIFllbGxvdwogICAgcmV0dXJuCn0KCiMgQmVpc2VpdGUtT3JkbmVy
IGF1ZnLDpHVtZW46IG51ciBkaWUgbGV0enRlbiAyIGJlaGFsdGVuCkdldC1DaGlsZEl0ZW0gLUxp
dGVyYWxQYXRoICRiayAtRGlyZWN0b3J5IC1GaWx0ZXIgJ192b3Itcm9sbGJhY2stKicgLUVycm9y
QWN0aW9uIFNpbGVudGx5Q29udGludWUgfAogICAgU29ydC1PYmplY3QgTmFtZSAtRGVzY2VuZGlu
ZyB8IFNlbGVjdC1PYmplY3QgLVNraXAgMiB8CiAgICBSZW1vdmUtSXRlbSAtUmVjdXJzZSAtRm9y
Y2UgLUVycm9yQWN0aW9uIFNpbGVudGx5Q29udGludWUKCiMgU2VydmVyIHN0YXJ0ZW4KJHN0cCA9
IEpvaW4tUGF0aCAkcm9vdCAkX3N0YXJ0TmFtZQppZiAoVGVzdC1QYXRoIC1MaXRlcmFsUGF0aCAk
c3RwKSB7CiAgICBTdGFydC1Qcm9jZXNzIC1GaWxlUGF0aCAnY21kLmV4ZScgLUFyZ3VtZW50TGlz
dCAiL2MgYCIkc3RwYCIiIC1XaW5kb3dTdHlsZSBIaWRkZW4KICAgIFdyaXRlLUhvc3QgIlNlcnZl
ciBnZXN0YXJ0ZXQuIiAtRm9yZWdyb3VuZENvbG9yIEdyZWVuCn0gZWxzZSB7CiAgICBXcml0ZS1I
b3N0ICJTdGFydC1Ta3JpcHQgJyRfc3RhcnROYW1lJyBuaWNodCBnZWZ1bmRlbiDigJQgYml0dGUg
U2VydmVyIG1hbnVlbGwgc3RhcnRlbi4iIC1Gb3JlZ3JvdW5kQ29sb3IgWWVsbG93Cn0KCldyaXRl
LUhvc3QgIiIKV3JpdGUtSG9zdCAiPT09IFJvbGxiYWNrIGFiZ2VzY2hsb3NzZW4gPT09IiAtRm9y
ZWdyb3VuZENvbG9yIEdyZWVuCldyaXRlLUhvc3QgIiAgICBXaWVkZXJoZXJnZXN0ZWxsdDogJCgk
Y2hvc2VuLk5hbWUpIiAtRm9yZWdyb3VuZENvbG9yIEN5YW4K
### FILE: server.ps1 | 249949
IyBTdGFuZDogMjAyNi0wNS0xNA0KcGFyYW0oDQogICAgW2ludF0kUG9ydCA9IDgwODAsDQogICAg
W3N0cmluZ10kUm9vdFBhdGggPSAnJywNCiAgICAjIE9wdGlvbmFsZXMgendlaXRlcyBSb290IGZ1
ZXIgZ2VtZWluc2FtZSBEYXRlbiAoYWRtaW4uanNvbiBldGMuKS4gV2Vubg0KICAgICMgZ2VzZXR6
dCwga29tbWVuIC9kYXRhLy1SZWFkcyArIFNjaHJlaWJ6dWdyaWZmZSBhdXMgZGllc2VtIFBmYWQg
c3RhdHQNCiAgICAjIGF1cyAkUm9vdFBhdGgvZGF0YS4gRGFtaXQga29lbm5lbiBDbGllbnRzIGlo
cmUgc3RhdGlzY2hlbiBBc3NldHMgYXVzDQogICAgIyBlaW5lciBsb2thbGVuIEtvcGllIGJlZGll
bmVuIChTaGFyZSBsYWVzc3Qgc2ljaCBqZWRlcnplaXQgYWt0dWFsaXNpZXJlbiwNCiAgICAjIGtl
aW5lIERhdGVpLUxvY2tzIG1laHIpIHVuZCB0cm90emRlbSBhdWYgZGVtIGdlbWVpbnNhbWVuIEpT
T04tU3RhbmQNCiAgICAjIGFtIFNoYXJlIGFyYmVpdGVuLg0KICAgIFtzdHJpbmddJERhdGFQYXRo
ID0gJycsDQogICAgIyBPcHRpb25hbGVyIFNoYXJlLUZhbGxiYWNrIGZ1ZXIgc3RhdGlzY2hlIERh
dGVpZW4sIGRpZSBOSUNIVCBsb2thbA0KICAgICMgaW0gQ2FjaGUgbGllZ2VuICh6LkIuIHhsc3gu
ZnVsbC5taW4uanMpIOKAlCB3ZXJkZW4gZGFubiB2b20gU2hhcmUNCiAgICAjIG5hY2hnZWxhZGVu
LiBMZWVyID0ga2VpbiBGYWxsYmFjay4NCiAgICBbc3RyaW5nXSRBc3NldEZhbGxiYWNrID0gJycN
CikNCg0KIyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KIyBWSTMgREdMLVBsYW51bmcgLSBQb3dlclNo
ZWxsLVNlcnZlcg0KIyBTcGllZ2VsdCBkaWUgUHl0aG9uLVZhcmlhbnRlIChzZXJ2ZXIucHkpIGZ1
bmt0aW9uYWwuDQojIFBTIDUuMSArIENMTS1rb21wYXRpYmVsOiBudXIgRW5jb2Rpbmc6OlVURjgg
U3RhdGljLCBrZWluZSBDb25zdHJ1Y3Rvci1DYWxscy4NCiMgRGF0ZWktSS9PIHVlYmVyIFtTeXN0
ZW0uSU8uRmlsZV06OlJlYWRBbGxCeXRlcyAvIFdyaXRlQWxsQnl0ZXMgKFVOQy1zaWNoZXIpLg0K
IyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQ0KDQojIC0tLSBBcmJlaXRzdmVyemVpY2huaXMgYmVzdGlt
bWVuIC0tLQ0KaWYgKC1ub3QgJFJvb3RQYXRoKSB7DQogICAgV3JpdGUtSG9zdCAnRkVITEVSOiAt
Um9vdFBhdGggd3VyZGUgbmljaHQgdWViZXJnZWJlbi4nIC1Gb3JlZ3JvdW5kQ29sb3IgUmVkDQog
ICAgU3RhcnQtU2xlZXAgLVNlY29uZHMgNQ0KICAgIGV4aXQgMQ0KfQ0KaWYgKC1ub3QgKFRlc3Qt
UGF0aCAtTGl0ZXJhbFBhdGggJFJvb3RQYXRoKSkgew0KICAgIFdyaXRlLUhvc3QgKCdGRUhMRVI6
IFJvb3RQYXRoIGV4aXN0aWVydCBuaWNodDogezB9JyAtZiAkUm9vdFBhdGgpIC1Gb3JlZ3JvdW5k
Q29sb3IgUmVkDQogICAgU3RhcnQtU2xlZXAgLVNlY29uZHMgNQ0KICAgIGV4aXQgMQ0KfQ0KIyBQ
cm92aWRlclBhdGggc3RhdHQgUGF0aDogbGllZmVydCByZWluZW4gV2luMzItL1VOQy1QZmFkIG9o
bmUNCiMgIk1pY3Jvc29mdC5Qb3dlclNoZWxsLkNvcmVcRmlsZVN5c3RlbTo6IiBQcmVmaXgsIGRl
biAuTkVULURhdGVpLUFQSXMNCiMgKFtTeXN0ZW0uSU8uRmlsZV06OlJlYWRBbGxCeXRlcyBldGMu
KSBuaWNodCB2ZXJzdGVoZW4uDQokUm9vdCA9IChSZXNvbHZlLVBhdGggLUxpdGVyYWxQYXRoICRS
b290UGF0aCkuUHJvdmlkZXJQYXRoDQoNCiMgQXNzZXRGYWxsYmFjayBmcnVlaCBhdWZsb2VzZW4s
IGRhbWl0IGRpZSBEYXRhRGlyLVN1Y2hlIGlobiBhbHMgUXVlbGxlIG51dHplbg0KIyBrYW5uLiBF
cmxhdWJ0IGVzLCBlaW56ZWxuZSBEYXRlaWVuICh6LkIuIHhsc3guZnVsbC5taW4uanMpIHZvbSBT
aGFyZSB6dQ0KIyBiZWRpZW5lbiwgYXVjaCB3ZW5uIGRlciBSZXN0IGRlciBBcHAgYXVzIGxva2Fs
ZXIgS29waWUga29tbXQuDQokc2NyaXB0OkFzc2V0RmFsbGJhY2sgPSAnJw0KaWYgKCRBc3NldEZh
bGxiYWNrIC1hbmQgKFRlc3QtUGF0aCAtTGl0ZXJhbFBhdGggJEFzc2V0RmFsbGJhY2spKSB7DQog
ICAgJHNjcmlwdDpBc3NldEZhbGxiYWNrID0gKFJlc29sdmUtUGF0aCAtTGl0ZXJhbFBhdGggJEFz
c2V0RmFsbGJhY2spLlByb3ZpZGVyUGF0aA0KfQ0KDQojIC0tLSBEYXRhRGlyIHJvYnVzdCBhdWZs
b2VzZW4gKHVlYmVybGVidCBkYXMgVmVyc2NoaWViZW4gZGVzIEJlenVnb3JkbmVycykgLS0tDQoj
IFdpciBwcm9iaWVyZW4gbWVocmVyZSBRdWVsbGVuIGluIFByaW9yaXRhZXQgdW5kIG5laG1lbiBk
aWUgRVJTVEUsIGRpZSBlY2h0ZQ0KIyBEYXRlbiAoYWRtaW4uanNvbikgZW50aGFlbHQuIERhbWl0
IGZpbmRldCBkZXIgU2VydmVyIHNlaW5lIEpTT04gYXVjaCBkYW5uLA0KIyB3ZW5uIGRlciB1ZWJl
cmdlYmVuZSAtRGF0YVBhdGggdmVyYWx0ZXQgb2RlciBsZWVyIGlzdCAoei5CLiBlaW4gYWx0ZXIN
CiMgTGF1bmNoZXIgbWl0IGhhcnRjb2RpZXJ0ZW0gTGF1ZndlcmtzYnVjaHN0YWJlbiB3aWUgVzpc
MDI1KSwgc29sYW5nZQ0KIyBpcmdlbmRlaW5lIGJla2FubnRlIFF1ZWxsZSBkaWUgRGF0ZW4gbm9j
aCBoYXQ6DQojICAgMS4gLURhdGFQYXRoICAgICAgICAgIChleHBsaXppdCB1ZWJlcmdlYmVuKQ0K
IyAgIDIuIDxBc3NldEZhbGxiYWNrPlxkYXRhICAoUXVlbGwtL1NoYXJlLU9yZG5lciDigJQgd2Fu
ZGVydCBiZWltIFZlcnNjaGllYmVuIG1pdCkNCiMgICAzLiA8Um9vdD5cZGF0YSAgICAgICAgKGxv
a2FsZXIgQXNzZXQtQ2FjaGUpDQojICAgNC4gPFNjcmlwdE9yZG5lcj5cZGF0YSAoU2VsYnN0YmV6
dWcsIGZhbGxzIHNlcnZlci5wczEgZGlyZWt0IGltIEJlenVnb3JkbmVyIGxpZWd0KQ0KJGRhdGFL
YW5kaWRhdGVuID0gQCgpDQppZiAoJERhdGFQYXRoKSAgICAgICAgICAgICB7ICRkYXRhS2FuZGlk
YXRlbiArPSAkRGF0YVBhdGggfQ0KaWYgKCRzY3JpcHQ6QXNzZXRGYWxsYmFjaykgeyAkZGF0YUth
bmRpZGF0ZW4gKz0gKEpvaW4tUGF0aCAkc2NyaXB0OkFzc2V0RmFsbGJhY2sgJ2RhdGEnKSB9DQok
ZGF0YUthbmRpZGF0ZW4gKz0gKEpvaW4tUGF0aCAkUm9vdCAnZGF0YScpDQppZiAoJFBTU2NyaXB0
Um9vdCkgICAgICAgICB7ICRkYXRhS2FuZGlkYXRlbiArPSAoSm9pbi1QYXRoICRQU1NjcmlwdFJv
b3QgJ2RhdGEnKSB9DQoNCiREYXRhRGlyID0gJycNCmZvcmVhY2ggKCRjYW5kIGluICRkYXRhS2Fu
ZGlkYXRlbikgew0KICAgIGlmICgkY2FuZCAtYW5kIChUZXN0LVBhdGggLUxpdGVyYWxQYXRoIChK
b2luLVBhdGggJGNhbmQgJ2FkbWluLmpzb24nKSkpIHsNCiAgICAgICAgJERhdGFEaXIgPSAoUmVz
b2x2ZS1QYXRoIC1MaXRlcmFsUGF0aCAkY2FuZCkuUHJvdmlkZXJQYXRoDQogICAgICAgIGJyZWFr
DQogICAgfQ0KfQ0KDQppZiAoLW5vdCAkRGF0YURpcikgew0KICAgICMgS2VpbmUgUXVlbGxlIGhh
dCBlY2h0ZSBEYXRlbi4gRnVlciBlaW5lIEVyc3RpbnN0YWxsYXRpb24gbGVnZW4gd2lyIGRlbg0K
ICAgICMgWmllbG9yZG5lciBhbiDigJQgYWJlciBMQVVULCBuaWNodCBzdHVtbSwgZGFtaXQgZWlu
IHZlcnNlaGVudGxpY2ggbGVlcmVyDQogICAgIyBEYXRlbnN0YW5kICh6LkIuIGRhdGFcLU9yZG5l
ciBiZWltIFZlcnNjaGllYmVuIHZlcmdlc3Nlbiwgb2RlciBlaW4gYWx0ZXINCiAgICAjIExhdW5j
aGVyIG1pdCB0b3RlbSAtRGF0YVBhdGgpIHNvZm9ydCBhdWZmYWVsbHQgc3RhdHQgYWxzICJsZWVy
ZSBBcHAiLg0KICAgIGlmICgkRGF0YVBhdGgpIHsNCiAgICAgICAgaWYgKC1ub3QgKFRlc3QtUGF0
aCAtTGl0ZXJhbFBhdGggJERhdGFQYXRoKSkgeyBOZXctSXRlbSAtSXRlbVR5cGUgRGlyZWN0b3J5
IC1QYXRoICREYXRhUGF0aCAtRm9yY2UgfCBPdXQtTnVsbCB9DQogICAgICAgICREYXRhRGlyID0g
KFJlc29sdmUtUGF0aCAtTGl0ZXJhbFBhdGggJERhdGFQYXRoKS5Qcm92aWRlclBhdGgNCiAgICB9
IGVsc2Ugew0KICAgICAgICAkRGF0YURpciA9IEpvaW4tUGF0aCAkUm9vdCAnZGF0YScNCiAgICAg
ICAgaWYgKC1ub3QgKFRlc3QtUGF0aCAtTGl0ZXJhbFBhdGggJERhdGFEaXIpKSB7IE5ldy1JdGVt
IC1JdGVtVHlwZSBEaXJlY3RvcnkgLVBhdGggJERhdGFEaXIgLUZvcmNlIHwgT3V0LU51bGwgfQ0K
ICAgIH0NCiAgICBXcml0ZS1Ib3N0ICcnDQogICAgV3JpdGUtSG9zdCAnICAqKiogV0FSTlVORzog
SW4ga2VpbmVyIGJla2FubnRlbiBRdWVsbGUgd3VyZGUgYWRtaW4uanNvbiBnZWZ1bmRlbiEgKioq
JyAtRm9yZWdyb3VuZENvbG9yIFJlZA0KICAgIFdyaXRlLUhvc3QgJyAgRHVyY2hzdWNodGUgT3J0
ZTonIC1Gb3JlZ3JvdW5kQ29sb3IgWWVsbG93DQogICAgZm9yZWFjaCAoJGNhbmQgaW4gJGRhdGFL
YW5kaWRhdGVuKSB7IFdyaXRlLUhvc3QgKCcgICAgLSB7MH0nIC1mICRjYW5kKSAtRm9yZWdyb3Vu
ZENvbG9yIFllbGxvdyB9DQogICAgV3JpdGUtSG9zdCAoJyAgU2VydmVyIHN0YXJ0ZXQgbWl0IExF
RVJFTSBEYXRlbm9yZG5lcjogezB9JyAtZiAkRGF0YURpcikgLUZvcmVncm91bmRDb2xvciBZZWxs
b3cNCiAgICBXcml0ZS1Ib3N0ICcgIC0+IFd1cmRlIGRlciBPcmRuZXIgdmVyc2Nob2Jlbj8gRGFu
biBkZW4gZGF0YVwtVW50ZXJvcmRuZXIgbWl0a29waWVyZW4uJyAtRm9yZWdyb3VuZENvbG9yIFll
bGxvdw0KICAgIFdyaXRlLUhvc3QgJycNCn0NCg0KJHNjcmlwdDpDb3JzT3JpZ2luID0gImh0dHA6
Ly9sb2NhbGhvc3Q6JFBvcnQiDQokc2NyaXB0Okxhc3RIZWFydGJlYXQgPSBHZXQtRGF0ZQ0KJHNj
cmlwdDpTaHV0ZG93blBlbmRpbmcgPSAkZmFsc2UNCg0KJFVzZXJuYW1lID0gJGVudjpVU0VSTkFN
RQ0KaWYgKC1ub3QgJFVzZXJuYW1lKSB7ICRVc2VybmFtZSA9ICd1bmtub3duJyB9DQokRG9tYWlu
ID0gJGVudjpVU0VSRE9NQUlODQppZiAoLW5vdCAkRG9tYWluKSB7ICREb21haW4gPSAnKicgfQ0K
DQojIC0tLSBNSU1FIC0tLQ0KJE1pbWVUeXBlcyA9IEB7DQogICAgJy5odG1sJyA9ICd0ZXh0L2h0
bWw7IGNoYXJzZXQ9dXRmLTgnDQogICAgJy5jc3MnICA9ICd0ZXh0L2NzczsgY2hhcnNldD11dGYt
OCcNCiAgICAnLmpzJyAgID0gJ2FwcGxpY2F0aW9uL2phdmFzY3JpcHQ7IGNoYXJzZXQ9dXRmLTgn
DQogICAgJy5qc29uJyA9ICdhcHBsaWNhdGlvbi9qc29uOyBjaGFyc2V0PXV0Zi04Jw0KICAgICcu
cG5nJyAgPSAnaW1hZ2UvcG5nJw0KICAgICcuanBnJyAgPSAnaW1hZ2UvanBlZycNCiAgICAnLmpw
ZWcnID0gJ2ltYWdlL2pwZWcnDQogICAgJy5zdmcnICA9ICdpbWFnZS9zdmcreG1sJw0KICAgICcu
aWNvJyAgPSAnaW1hZ2UveC1pY29uJw0KfQ0KDQojIC0tLSBMb2cgLS0tDQokc2NyaXB0OkFwaUxv
ZyA9IEpvaW4tUGF0aCAkZW52OlRFTVAgJ1ZJM0RHTF9hcGkubG9nJw0KdHJ5IHsgUmVtb3ZlLUl0
ZW0gLUxpdGVyYWxQYXRoICRzY3JpcHQ6QXBpTG9nIC1Gb3JjZSAtRXJyb3JBY3Rpb24gU2lsZW50
bHlDb250aW51ZSB9IGNhdGNoIHt9DQpmdW5jdGlvbiBMb2ctQXBpKCRNZXNzYWdlKSB7DQogICAg
dHJ5IHsNCiAgICAgICAgJGxpbmUgPSAiWyQoR2V0LURhdGUgLUZvcm1hdCAnSEg6bW06c3MuZmZm
JyldICRNZXNzYWdlIg0KICAgICAgICBBZGQtQ29udGVudCAtTGl0ZXJhbFBhdGggJHNjcmlwdDpB
cGlMb2cgLVZhbHVlICRsaW5lIC1FbmNvZGluZyBVVEY4DQogICAgfSBjYXRjaCB7fQ0KfQ0KDQpM
b2ctQXBpICgnU1RBUlRVUCBSb290ICAgICAgICAgID0gezB9JyAtZiAkUm9vdCkNCkxvZy1BcGkg
KCdTVEFSVFVQIERhdGFEaXIgICAgICAgPSB7MH0nIC1mICREYXRhRGlyKQ0KJF9hZkxvZyA9IGlm
ICgkc2NyaXB0OkFzc2V0RmFsbGJhY2spIHsgJHNjcmlwdDpBc3NldEZhbGxiYWNrIH0gZWxzZSB7
ICcobmljaHQgZ2VzZXR6dCknIH0NCkxvZy1BcGkgKCdTVEFSVFVQIEFzc2V0RmFsbGJhY2sgPSB7
MH0nIC1mICRfYWZMb2cpDQojIEZhbGxzIGRlciB1ZWJlcmdlYmVuZSAtRGF0YVBhdGgga2VpbmUg
RGF0ZW4gaGF0dGUgdW5kIGRpZSByb2J1c3RlIFN1Y2hlIGF1Zg0KIyBlaW5lIGFuZGVyZSBRdWVs
bGUgYXVzZ2V3aWNoZW4gaXN0LCBkYXMgbGF1dCBpbnMgTG9nIHNjaHJlaWJlbiDigJQgc29uc3Qg
c2llaHQNCiMgbWFuIGRlbSAiRGF0YURpciA9IC4uLiIgbmljaHQgYW4sIGRhc3MgZWluIHRvdGVy
IC1EYXRhUGF0aCB1ZWJlcmJydWVja3Qgd3VyZGUuDQppZiAoJERhdGFQYXRoKSB7DQogICAgJF9k
cEZ1bGwgPSAnJw0KICAgIGlmIChUZXN0LVBhdGggLUxpdGVyYWxQYXRoICREYXRhUGF0aCkgeyAk
X2RwRnVsbCA9IChSZXNvbHZlLVBhdGggLUxpdGVyYWxQYXRoICREYXRhUGF0aCkuUHJvdmlkZXJQ
YXRoIH0NCiAgICBpZiAoJF9kcEZ1bGwgLW5lICREYXRhRGlyKSB7DQogICAgICAgIExvZy1BcGkg
KCdTVEFSVFVQIEhJTldFSVM6IC1EYXRhUGF0aCAoezB9KSBvaG5lIGFkbWluLmpzb24g4oCUIHJv
YnVzdGVyIEZhbGxiYWNrIGF1ZiB7MX0nIC1mICREYXRhUGF0aCwgJERhdGFEaXIpDQogICAgfQ0K
fQ0KZm9yZWFjaCAoJGZuIGluICdhZG1pbi5qc29uJywncGxhbnVuZy5qc29uJywnbG9nYnVjaC5q
c29uJykgew0KICAgICRmcCA9IEpvaW4tUGF0aCAkRGF0YURpciAkZm4NCiAgICBpZiAoVGVzdC1Q
YXRoIC1MaXRlcmFsUGF0aCAkZnApIHsNCiAgICAgICAgJHN6ID0gKEdldC1JdGVtIC1MaXRlcmFs
UGF0aCAkZnApLkxlbmd0aA0KICAgICAgICBMb2ctQXBpICgnU1RBUlRVUCB7MH06IGV4aXN0cyBz
aXplPXsxfScgLWYgJGZuLCAkc3opDQogICAgfSBlbHNlIHsNCiAgICAgICAgTG9nLUFwaSAoJ1NU
QVJUVVAgezB9OiBGRUhMVCcgLWYgJGZuKQ0KICAgIH0NCn0NCg0KIyA9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQ0KIyBEYXRlaS1DYWNoaW5nIChJbi1NZW1vcnkpDQojID09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
DQoNCiMgSW4tTWVtb3J5LUNhY2hlIGZ1ZXIgRGF0ZWktSW5oYWx0ZS4gSG90LVBhdGgtUmVhZHMg
KHouQi4gL2FwaS9wbGFudW5nKSBnZWhlbg0KIyBhbiBEaXNrLUlPIHZvcmJlaS4gSW52YWxpZGll
cnVuZyB1ZWJlciBtdGltZS1WZXJnbGVpY2ggYmVpbSBuYWVjaHN0ZW4gUmVhZC4NCiMgS2V5ID0g
RGF0ZWluYW1lLCBWYWx1ZSA9IEB7IFRleHQ9c3RyaW5nOyBNdGltZVRpY2tzPWxvbmcgfQ0KJHNj
cmlwdDpGaWxlQ2FjaGUgPSBAe30NCg0KIyBad2VpdGUgQ2FjaGUtU3R1ZmU6IGJlcmVpdHMgdmlh
IENvbnZlcnRGcm9tLUpzb24gemVybGVndGUgUFNDdXN0b21PYmplY3RzLg0KIyBSZWFkLUpzb25P
YmplY3Qgb2huZSBkaWVzZW4gQ2FjaGUgcGFyc3QgZGllIDIwMCBLQiBncm9zc2VuIEpTT05zIGF1
ZiBqZWRlbQ0KIyAvYXBpL2luZm8tUmVxdWVzdCBtZWhyZmFjaCAoVGVzdC1Jc3RTdXBlclVzZXIs
IEdldC1GYWNoYXVmc2ljaHRFaW50cmFnLA0KIyBHZXQtTWVpbmVQZXJzb24gbGVzZW4gamV3ZWls
cyBhZG1pbi5qc29uIGJ6dy4gcGxhbnVuZy5qc29uIGVpZ2Vuc3RhZW5kaWcpDQojIOKAlCBhdWYg
QmVob2VyZGVuLVBDcyBtaXQgUG93ZXJTaGVsbCA1LjEgc2luZCBkYXMgc2NobmVsbCBtYWwgMzAw
LTUwMCBtcw0KIyBBdWZzY2hsYWcgcHJvIFN0YXJ0cGhhc2UtUmVxdWVzdC4NCiMgS2V5ID0gRGF0
ZWluYW1lLCBWYWx1ZSA9IEB7IE9iaj1QU0N1c3RvbU9iamVjdDsgTXRpbWVUaWNrcz1sb25nIH0N
CiMgQWNodHVuZzogUFNDdXN0b21PYmplY3QgaXN0IG11dGFibGUuIEF1ZnJ1ZmVyIGR1ZXJmZW4g
ZGFzIHp1cnVlY2tnZWdlYmVuZQ0KIyBPYmpla3QgTklDSFQgaW4tcGxhY2UgbW9kaWZpemllcmVu
IOKAlCBlbnR3ZWRlciByZWFkb25seSBudXR6ZW4gb2RlciB2aWENCiMgQ29udmVydFRvLUpzb24g
fCBDb252ZXJ0RnJvbS1Kc29uIGtsb25lbiwgYmV2b3IgRmVsZGVyIHVlYmVyc2NocmllYmVuDQoj
IHdlcmRlbi4gUFVULUhhbmRsZXIgc2luZCBzaWNoZXI6IHNpZSBzY2hyZWliZW4gYW5zY2hsaWVz
c2VuZCBXcml0ZS1Kc29uT2JqZWN0LA0KIyBkYXMgZGVuIENhY2hlIGVpbnRyYWdzd2Vpc2UgbmV1
IHNldHp0Lg0KJHNjcmlwdDpKc29uQ2FjaGUgPSBAe30NCg0KIyBCYWNrdXAtQnl0ZXMgYXVmIERp
c2sgc2NocmVpYmVuIChLbGFydGV4dCkuDQojIFNwcmludCA1IOKAlCBXYXJ0dW5nc3NjaHVsZCAo
MjAyNi0wNS0yOSwgRmluZGluZyAxOCk6IGRhbmFjaCB3aXJkIGRpZSBOVEZTLQ0KIyBBQ0wgYXVm
ICJudXIgT3duZXIgKyBBZG1pbmlzdHJhdG9ycyIgZWluZ2VzY2hyYWVua3QgKGtlaW4gQXV0aGVu
dGljYXRlZA0KIyBVc2VycyksIGRhbWl0IFBJSS1CYWNrdXBzIGluIGRhdGEvY2FjaGUvIG5pY2h0
IHZvbiBiZWxpZWJpZ2VuIGxva2FsZW4NCiMgUHJvZ3JhbW1lbiBsZXNiYXIgc2luZC4gQXVmIEZp
bGVzeXN0ZW1lbiwgZGllIEFDTCBuaWNodCB1bnRlcnN0dWV0emVuDQojIChTaGFyZS9VTkMpLCBz
dGlsbCB0b2xlcmllcmVuIOKAlCBGaW5kaW5nLUluaGFsdCBpc3QgQmVzdC1FZmZvcnQsIG5pY2h0
DQojIGtyaXRpc2NoZXIgUGZhZC4NCmZ1bmN0aW9uIFdyaXRlLUJhY2t1cEJ5dGVzKCRQZmFkQWJz
LCAkS2xhcnRleHQpIHsNCiAgICBpZiAoLW5vdCAkS2xhcnRleHQpIHsgJEtsYXJ0ZXh0ID0gJycg
fQ0KICAgICRwbGFpbiA9IFtTeXN0ZW0uVGV4dC5FbmNvZGluZ106OlVURjguR2V0Qnl0ZXMoJEts
YXJ0ZXh0KQ0KICAgIFtTeXN0ZW0uSU8uRmlsZV06OldyaXRlQWxsQnl0ZXMoJFBmYWRBYnMsICRw
bGFpbikNCiAgICB0cnkgew0KICAgICAgICAkYWNsID0gR2V0LUFjbCAtTGl0ZXJhbFBhdGggJFBm
YWRBYnMNCiAgICAgICAgJGFjbC5TZXRBY2Nlc3NSdWxlUHJvdGVjdGlvbigkdHJ1ZSwgJGZhbHNl
KSAgICMgSW5oZXJpdCBhdXMsIGtlaW5lIFZlcmVyYnVuZw0KICAgICAgICAkYWNsLkFjY2VzcyB8
IEZvckVhY2gtT2JqZWN0IHsgJGFjbC5SZW1vdmVBY2Nlc3NSdWxlQWxsKCRfKSB9IHwgT3V0LU51
bGwNCiAgICAgICAgJG93biA9ICIkZW52OlVTRVJET01BSU5cJGVudjpVU0VSTkFNRSINCiAgICAg
ICAgJHJ1bGUgPSBOZXctT2JqZWN0IFN5c3RlbS5TZWN1cml0eS5BY2Nlc3NDb250cm9sLkZpbGVT
eXN0ZW1BY2Nlc3NSdWxlKA0KICAgICAgICAgICAgJG93biwgJ0Z1bGxDb250cm9sJywgJ0FsbG93
JykNCiAgICAgICAgJGFjbC5TZXRBY2Nlc3NSdWxlKCRydWxlKQ0KICAgICAgICAjIEFkbWluaXN0
cmF0b3JzIGFscyBCYWNrdXAtUmVzZXJ2ZXp1Z2FuZyAoUmVjb3ZlcnkgZHVyY2ggSVQpDQogICAg
ICAgIHRyeSB7DQogICAgICAgICAgICAkYWRtaW5zID0gTmV3LU9iamVjdCBTeXN0ZW0uU2VjdXJp
dHkuUHJpbmNpcGFsLlNlY3VyaXR5SWRlbnRpZmllcigNCiAgICAgICAgICAgICAgICBbU3lzdGVt
LlNlY3VyaXR5LlByaW5jaXBhbC5XZWxsS25vd25TaWRUeXBlXTo6QnVpbHRpbkFkbWluaXN0cmF0
b3JzU2lkLCAkbnVsbCkNCiAgICAgICAgICAgICRhZG1pblJ1bGUgPSBOZXctT2JqZWN0IFN5c3Rl
bS5TZWN1cml0eS5BY2Nlc3NDb250cm9sLkZpbGVTeXN0ZW1BY2Nlc3NSdWxlKA0KICAgICAgICAg
ICAgICAgICRhZG1pbnMsICdGdWxsQ29udHJvbCcsICdBbGxvdycpDQogICAgICAgICAgICAkYWNs
LlNldEFjY2Vzc1J1bGUoJGFkbWluUnVsZSkNCiAgICAgICAgfSBjYXRjaCB7fQ0KICAgICAgICBT
ZXQtQWNsIC1MaXRlcmFsUGF0aCAkUGZhZEFicyAtQWNsT2JqZWN0ICRhY2wgLUVycm9yQWN0aW9u
IFN0b3ANCiAgICB9IGNhdGNoIHsNCiAgICAgICAgTG9nLUFwaSAoJ0JBQ0tVUC1BQ0wtTk9USUNF
IHswfTogezF9JyAtZiAkUGZhZEFicywgJF8uRXhjZXB0aW9uLk1lc3NhZ2UpDQogICAgfQ0KfQ0K
DQojIEJhY2t1cC1CeXRlcyBsZXNlbiwgQk9NLVN0cmlwcGluZywgbGllZmVydCBVVEYtOC1UZXh0
IHp1cnVlY2suDQpmdW5jdGlvbiBSZWFkLUJhY2t1cFRleHQoJFBmYWRBYnMpIHsNCiAgICBpZiAo
LW5vdCAoVGVzdC1QYXRoIC1MaXRlcmFsUGF0aCAkUGZhZEFicykpIHsgcmV0dXJuICRudWxsIH0N
CiAgICAkYnl0ZXMgPSBbU3lzdGVtLklPLkZpbGVdOjpSZWFkQWxsQnl0ZXMoJFBmYWRBYnMpDQog
ICAgaWYgKCRieXRlcy5MZW5ndGggLWVxIDApIHsgcmV0dXJuICRudWxsIH0NCiAgICAkb2Zmc2V0
ID0gMA0KICAgIGlmICgkYnl0ZXMuTGVuZ3RoIC1nZSAzIC1hbmQgJGJ5dGVzWzBdIC1lcSAweEVG
IC1hbmQgJGJ5dGVzWzFdIC1lcSAweEJCIC1hbmQgJGJ5dGVzWzJdIC1lcSAweEJGKSB7ICRvZmZz
ZXQgPSAzIH0NCiAgICByZXR1cm4gW1N5c3RlbS5UZXh0LkVuY29kaW5nXTo6VVRGOC5HZXRTdHJp
bmcoJGJ5dGVzLCAkb2Zmc2V0LCAkYnl0ZXMuTGVuZ3RoIC0gJG9mZnNldCkNCn0NCg0KIyAtLS0g
RGF0ZWktSS9PIChVTkMtc2ljaGVyLCBVVEYtOCBvaG5lIEJPTSwgbWl0IEluLU1lbW9yeS1DYWNo
ZSkgLS0tDQpmdW5jdGlvbiBSZWFkLVRleHRGaWxlKCRGaWxlTmFtZSkgew0KICAgICMgQ2FjaGUt
SGl0Pw0KICAgIGlmICgkc2NyaXB0OkZpbGVDYWNoZS5Db250YWluc0tleSgkRmlsZU5hbWUpKSB7
DQogICAgICAgICRlbnRyeSA9ICRzY3JpcHQ6RmlsZUNhY2hlWyRGaWxlTmFtZV0NCiAgICAgICAg
dHJ5IHsNCiAgICAgICAgICAgICRwID0gSm9pbi1QYXRoICREYXRhRGlyICRGaWxlTmFtZQ0KICAg
ICAgICAgICAgaWYgKFRlc3QtUGF0aCAtTGl0ZXJhbFBhdGggJHApIHsNCiAgICAgICAgICAgICAg
ICAkbXQgPSAoR2V0LUl0ZW0gLUxpdGVyYWxQYXRoICRwKS5MYXN0V3JpdGVUaW1lVXRjLlRpY2tz
DQogICAgICAgICAgICAgICAgaWYgKCRtdCAtZXEgJGVudHJ5Lk10aW1lVGlja3MpIHsNCiAgICAg
ICAgICAgICAgICAgICAgcmV0dXJuICRlbnRyeS5UZXh0DQogICAgICAgICAgICAgICAgfQ0KICAg
ICAgICAgICAgfQ0KICAgICAgICB9IGNhdGNoIHt9DQogICAgICAgICRzY3JpcHQ6RmlsZUNhY2hl
LlJlbW92ZSgkRmlsZU5hbWUpIHwgT3V0LU51bGwNCiAgICB9DQogICAgJHAgPSBKb2luLVBhdGgg
JERhdGFEaXIgJEZpbGVOYW1lDQogICAgaWYgKC1ub3QgKFRlc3QtUGF0aCAtTGl0ZXJhbFBhdGgg
JHApKSB7DQogICAgICAgIExvZy1BcGkgKCdSRUFEIHswfTogTklDSFQgVk9SSEFOREVOICh7MX0p
JyAtZiAkRmlsZU5hbWUsICRwKQ0KICAgICAgICByZXR1cm4gJG51bGwNCiAgICB9DQogICAgdHJ5
IHsNCiAgICAgICAgJGJ5dGVzID0gW1N5c3RlbS5JTy5GaWxlXTo6UmVhZEFsbEJ5dGVzKCRwKQ0K
ICAgICAgICBpZiAoJGJ5dGVzLkxlbmd0aCAtZXEgMCkgew0KICAgICAgICAgICAgTG9nLUFwaSAo
J1JFQUQgezB9OiBsZWVyJyAtZiAkRmlsZU5hbWUpDQogICAgICAgICAgICByZXR1cm4gJG51bGwN
CiAgICAgICAgfQ0KICAgICAgICAkb2Zmc2V0ID0gMA0KICAgICAgICBpZiAoJGJ5dGVzLkxlbmd0
aCAtZ2UgMyAtYW5kICRieXRlc1swXSAtZXEgMHhFRiAtYW5kICRieXRlc1sxXSAtZXEgMHhCQiAt
YW5kICRieXRlc1syXSAtZXEgMHhCRikgeyAkb2Zmc2V0ID0gMyB9DQogICAgICAgICR0ZXh0ID0g
W1N5c3RlbS5UZXh0LkVuY29kaW5nXTo6VVRGOC5HZXRTdHJpbmcoJGJ5dGVzLCAkb2Zmc2V0LCAk
Ynl0ZXMuTGVuZ3RoIC0gJG9mZnNldCkNCiAgICAgICAgTG9nLUFwaSAoJ1JFQUQgezB9OiB7MX0g
Qnl0ZXMgb2snIC1mICRGaWxlTmFtZSwgKCRieXRlcy5MZW5ndGggLSAkb2Zmc2V0KSkNCiAgICAg
ICAgJG10ID0gKEdldC1JdGVtIC1MaXRlcmFsUGF0aCAkcCkuTGFzdFdyaXRlVGltZVV0Yy5UaWNr
cw0KICAgICAgICAkc2NyaXB0OkZpbGVDYWNoZVskRmlsZU5hbWVdID0gQHsgVGV4dCA9ICR0ZXh0
OyBNdGltZVRpY2tzID0gJG10IH0NCiAgICAgICAgcmV0dXJuICR0ZXh0DQogICAgfSBjYXRjaCB7
DQogICAgICAgIExvZy1BcGkgKCdSRUFEIHswfSBGRUhMRVI6IHsxfScgLWYgJEZpbGVOYW1lLCAk
Xy5FeGNlcHRpb24uTWVzc2FnZSkNCiAgICAgICAgcmV0dXJuICRudWxsDQogICAgfQ0KfQ0KDQpm
dW5jdGlvbiBXcml0ZS1UZXh0RmlsZSgkRmlsZU5hbWUsICRUZXh0KSB7DQogICAgJHAgPSBKb2lu
LVBhdGggJERhdGFEaXIgJEZpbGVOYW1lDQogICAgdHJ5IHsNCiAgICAgICAgaWYgKC1ub3QgJFRl
eHQpIHsgJFRleHQgPSAnJyB9DQogICAgICAgICRwbGFpbiA9IFtTeXN0ZW0uVGV4dC5FbmNvZGlu
Z106OlVURjguR2V0Qnl0ZXMoJFRleHQpDQogICAgICAgICMgQXRvbWFyZXIgU2NocmVpYnZvcmdh
bmc6IGVyc3Qgdm9sbHN0YWVuZGlnIGluIGVpbmUgVGVtcC1EYXRlaSwgZGFubg0KICAgICAgICAj
IHBlciBSZXBsYWNlL01vdmUgdWViZXIgZGllIFppZWxkYXRlaSB0YXVzY2hlbi4gU28gaGludGVy
bGFlc3N0IGVpbg0KICAgICAgICAjIENyYXNoIC8gU3Ryb21hdXNmYWxsIC8gIlBsYXR0ZSB2b2xs
IiBtaXR0ZW4gaW0gU2NocmVpYmVuIE5JRSBlaW5lDQogICAgICAgICMgaGFsYiBnZXNjaHJpZWJl
bmUsIGtvcnJ1cHRlIHBsYW51bmcuanNvbi9hZG1pbi5qc29uIOKAlCBlbnR3ZWRlciBkZXINCiAg
ICAgICAgIyBhbHRlIG9kZXIgZGVyIG5ldWUgVm9sbHN0YW5kIGlzdCBkYS4gKERlciBEYXRlaS1M
b2NrIHNjaHVldHp0IG51cg0KICAgICAgICAjIGdlZ2VuIFBhcmFsbGVsLVByb3plc3NlLCBuaWNo
dCBnZWdlbiBUZWlsLVdyaXRlcy4pDQogICAgICAgICR0bXAgPSAkcCArICcudG1wJw0KICAgICAg
ICBbU3lzdGVtLklPLkZpbGVdOjpXcml0ZUFsbEJ5dGVzKCR0bXAsICRwbGFpbikNCiAgICAgICAg
dHJ5IHsNCiAgICAgICAgICAgIGlmIChUZXN0LVBhdGggLUxpdGVyYWxQYXRoICRwKSB7DQogICAg
ICAgICAgICAgICAgIyBSZXBsYWNlIGlzdCBhdG9tYXIgKE1vdmVGaWxlRXggUkVQTEFDRV9FWElT
VElORykgYXVmIE5URlMuDQogICAgICAgICAgICAgICAgW1N5c3RlbS5JTy5GaWxlXTo6UmVwbGFj
ZSgkdG1wLCAkcCwgJG51bGwpDQogICAgICAgICAgICB9IGVsc2Ugew0KICAgICAgICAgICAgICAg
IFtTeXN0ZW0uSU8uRmlsZV06Ok1vdmUoJHRtcCwgJHApDQogICAgICAgICAgICB9DQogICAgICAg
IH0gY2F0Y2ggew0KICAgICAgICAgICAgIyBGYWxsYmFjayBmdWVyIFNoYXJlcyBvaG5lIFJlcGxh
Y2UtU3VwcG9ydDogVGVtcCBpc3QgYmVyZWl0cw0KICAgICAgICAgICAgIyB2b2xsc3RhZW5kaWcg
4oCUIFppZWwgZW50ZmVybmVuIHVuZCBUZW1wIHVtYmVuZW5uZW4gKFJlbmFtZSBpc3QNCiAgICAg
ICAgICAgICMgYXVmIGRlbXNlbGJlbiBWb2x1bWUgZWluZSBNZXRhZGF0ZW4tT3BlcmF0aW9uKS4N
CiAgICAgICAgICAgIGlmIChUZXN0LVBhdGggLUxpdGVyYWxQYXRoICRwKSB7IFJlbW92ZS1JdGVt
IC1MaXRlcmFsUGF0aCAkcCAtRm9yY2UgfQ0KICAgICAgICAgICAgW1N5c3RlbS5JTy5GaWxlXTo6
TW92ZSgkdG1wLCAkcCkNCiAgICAgICAgfQ0KICAgICAgICAkbXQgPSAoR2V0LUl0ZW0gLUxpdGVy
YWxQYXRoICRwKS5MYXN0V3JpdGVUaW1lVXRjLlRpY2tzDQogICAgICAgICRzY3JpcHQ6RmlsZUNh
Y2hlWyRGaWxlTmFtZV0gPSBAeyBUZXh0ID0gJFRleHQ7IE10aW1lVGlja3MgPSAkbXQgfQ0KICAg
ICAgICAjIEpTT04tQ2FjaGUgaW52YWxpZGllcmVuOiBkZXIgbmFlY2hzdGUgUmVhZC1Kc29uT2Jq
ZWN0IG11c3MgbmV1IHBhcnNlbi4NCiAgICAgICAgaWYgKCRzY3JpcHQ6SnNvbkNhY2hlLkNvbnRh
aW5zS2V5KCRGaWxlTmFtZSkpIHsNCiAgICAgICAgICAgICRzY3JpcHQ6SnNvbkNhY2hlLlJlbW92
ZSgkRmlsZU5hbWUpIHwgT3V0LU51bGwNCiAgICAgICAgfQ0KICAgICAgICBMb2ctQXBpICgnV1JJ
VEUgezB9OiB7MX0gQnl0ZXMgb2snIC1mICRGaWxlTmFtZSwgJHBsYWluLkxlbmd0aCkNCiAgICAg
ICAgcmV0dXJuICR0cnVlDQogICAgfSBjYXRjaCB7DQogICAgICAgIExvZy1BcGkgKCdXUklURSB7
MH0gRkVITEVSOiB7MX0nIC1mICRGaWxlTmFtZSwgJF8uRXhjZXB0aW9uLk1lc3NhZ2UpDQogICAg
ICAgICMgVmVyd2Fpc3RlIFRlbXAtRGF0ZWkgYXVmcmFldW1lbiwgZmFsbHMgZGVyIFRhdXNjaCBz
Y2hlaXRlcnRlLg0KICAgICAgICB0cnkgeyAkdG1wQyA9IChKb2luLVBhdGggJERhdGFEaXIgJEZp
bGVOYW1lKSArICcudG1wJzsgaWYgKFRlc3QtUGF0aCAtTGl0ZXJhbFBhdGggJHRtcEMpIHsgUmVt
b3ZlLUl0ZW0gLUxpdGVyYWxQYXRoICR0bXBDIC1Gb3JjZSAtRXJyb3JBY3Rpb24gU2lsZW50bHlD
b250aW51ZSB9IH0gY2F0Y2gge30NCiAgICAgICAgcmV0dXJuICRmYWxzZQ0KICAgIH0NCn0NCg0K
IyA9PT09PT09PT09PT09PT09PT09PT0gUmljaC1UZXh0LVNhbml0aXplciAoU2VydmVyLXNlaXRp
ZykgPT09PT09PT09PT09PT09PT09PT09DQojIFNwaWVnZWx0IGRpZSBDbGllbnQtQWxsb3dsaXN0
IGF1cyBqcy91aV9ydGUuanMgKHNhbml0aXplUmljaEh0bWwpIHVuZCBkZW4NCiMgUHl0aG9uLURl
di1TZXJ2ZXIgKHNhbml0aXplX3JpY2hfaHRtbCkuIEJpc2xhbmcgbGllZiBkaWUgQmVyZWluaWd1
bmcgTlVSIGltDQojIEJyb3dzZXIg4oCUIGVpbiBtYW5pcHVsaWVydGVyIENsaWVudCAvIGRpcmVr
dGVyIEFQSS1DYWxsIGtvbm50ZSBiZWxpZWJpZ2VzDQojIEhUTUwvPHNjcmlwdD4gaW4gaW5mb3Rl
eHQvaGlsZmV0ZXh0L2VtYWlsVm9ybGFnZW4vTWl0dGVpbHVuZ2VuIHNjaHJlaWJlbiwNCiMgZGFz
IGFuZGVyZSBBZG1pbnMvVXNlciB2aWEgaW5uZXJIVE1MIGdlcmVuZGVydCBiZWthbWVuIChTdG9y
ZWQgWFNTKS4NCiMgUmVnZXgtYmFzaWVydCAoUG93ZXJTaGVsbCBoYXQga2VpbmVuIEhUTUwtUGFy
c2VyIGluIGRlciBTdGRsaWIpIOKAlCBiZXd1c3N0DQojIGtvbnNlcnZhdGl2OiB1bmJla2FubnRl
IFRhZ3Mgd2VyZGVuIGVudGZlcm50IChJbmhhbHQgYmxlaWJ0KSwgQXR0cmlidXRlDQojIGtvbXBs
ZXR0IGdlc3RyaXBwdCAoQXVzbmFobWU6IHZhbGlkaWVydGVzIGhyZWYgYW4gPGE+KS4NCiRzY3Jp
cHQ6U2FuaXRpemVBbGxvd2VkVGFncyA9IEAoJ2InLCdzdHJvbmcnLCdpJywnZW0nLCd1JywnYnIn
LCdwJywndWwnLCdvbCcsJ2xpJywnYScsJ2RpdicsJ3NwYW4nLCdoMycsJ2g0JywnYmxvY2txdW90
ZScpDQoNCmZ1bmN0aW9uIENvbnZlcnRUby1TYWZlUmljaEh0bWwgew0KICAgIHBhcmFtKFtzdHJp
bmddJEh0bWwpDQogICAgaWYgKFtzdHJpbmddOjpJc051bGxPckVtcHR5KCRIdG1sKSkgeyByZXR1
cm4gJycgfQ0KICAgICRzID0gJEh0bWwNCiAgICAjIDEuIEdlZmFlaHJsaWNoZSBFbGVtZW50LUJs
b2Vja2UgaW5rbC4gSW5oYWx0IGtvbXBsZXR0IGVudGZlcm5lbi4NCiAgICAkcyA9IFtyZWdleF06
OlJlcGxhY2UoJHMsICcoP2lzKTwoc2NyaXB0fHN0eWxlfGlmcmFtZXxvYmplY3R8ZW1iZWR8c3Zn
fG1hdGgpXGIuKj88L1wxXHMqPicsICcnKQ0KICAgICRzID0gW3JlZ2V4XTo6UmVwbGFjZSgkcywg
Jyg/aXMpPChzY3JpcHR8c3R5bGV8aWZyYW1lfG9iamVjdHxlbWJlZHxzdmd8bWF0aClcYltePl0q
Lz8+JywgJycpDQogICAgIyAyLiBIVE1MLUtvbW1lbnRhcmUgcmF1cyAoa29lbm5lbiBDb25kaXRp
b25hbC1Db21tZW50LVRyaWNrcyB0cmFnZW4pLg0KICAgICRzID0gW3JlZ2V4XTo6UmVwbGFjZSgk
cywgJyg/cyk8IS0tLio/LS0+JywgJycpDQogICAgIyAzLiBKZWRlcyB2ZXJibGVpYmVuZGUgVGFn
IGR1cmNoIGRlbiBBbGxvd2xpc3QtRXZhbHVhdG9yIHNjaGlja2VuLg0KICAgICRhbGxvd2VkID0g
JHNjcmlwdDpTYW5pdGl6ZUFsbG93ZWRUYWdzDQogICAgJGV2YWx1YXRvciA9IHsNCiAgICAgICAg
cGFyYW0oJG0pDQogICAgICAgICRzbGFzaCA9ICRtLkdyb3Vwc1snc2xhc2gnXS5WYWx1ZQ0KICAg
ICAgICAkbmFtZSAgPSAkbS5Hcm91cHNbJ25hbWUnXS5WYWx1ZS5Ub0xvd2VyKCkNCiAgICAgICAg
aWYgKCRhbGxvd2VkIC1ub3Rjb250YWlucyAkbmFtZSkgeyByZXR1cm4gJycgfSAgICAgICAjIFVu
d3JhcDogVGFnIHdlZywgSW5oYWx0IGJsZWlidA0KICAgICAgICBpZiAoJHNsYXNoIC1lcSAnLycp
IHsgcmV0dXJuICI8LyRuYW1lPiIgfQ0KICAgICAgICBpZiAoJG5hbWUgLWVxICdicicpIHsgcmV0
dXJuICc8YnI+JyB9DQogICAgICAgIGlmICgkbmFtZSAtZXEgJ2EnKSB7DQogICAgICAgICAgICAk
YXR0cnMgPSAkbS5Hcm91cHNbJ2F0dHJzJ10uVmFsdWUNCiAgICAgICAgICAgICRocmVmICA9ICcn
DQogICAgICAgICAgICAkaG0gPSBbcmVnZXhdOjpNYXRjaCgkYXR0cnMsICcoP2kpaHJlZlxzKj1c
cyooIihbXiJdKikifCcnKFteJyddKiknJ3woW15ccz5dKykpJykNCiAgICAgICAgICAgIGlmICgk
aG0uU3VjY2VzcykgeyAkaHJlZiA9ICgkaG0uR3JvdXBzWzJdLlZhbHVlICsgJGhtLkdyb3Vwc1sz
XS5WYWx1ZSArICRobS5Hcm91cHNbNF0uVmFsdWUpLlRyaW0oKSB9DQogICAgICAgICAgICAkb3V0
ID0gJzxhJw0KICAgICAgICAgICAgaWYgKCRocmVmIC1hbmQgJGhyZWYgLW5vdG1hdGNoICcoP2kp
XlxzKihqYXZhc2NyaXB0fGRhdGF8dmJzY3JpcHQpOicpIHsNCiAgICAgICAgICAgICAgICAkaHJl
ZkVzYyA9ICRocmVmIC1yZXBsYWNlICcmJywnJmFtcDsnIC1yZXBsYWNlICciJywnJnF1b3Q7JyAt
cmVwbGFjZSAnPCcsJyZsdDsnIC1yZXBsYWNlICc+JywnJmd0OycNCiAgICAgICAgICAgICAgICAk
b3V0ICs9ICIgaHJlZj0iIiRocmVmRXNjIiIiDQogICAgICAgICAgICB9DQogICAgICAgICAgICAk
b3V0ICs9ICcgdGFyZ2V0PSJfYmxhbmsiIHJlbD0ibm9vcGVuZXIgbm9yZWZlcnJlciI+Jw0KICAg
ICAgICAgICAgcmV0dXJuICRvdXQNCiAgICAgICAgfQ0KICAgICAgICByZXR1cm4gIjwkbmFtZT4i
ICAgIyBlcmxhdWJ0ZXMgVGFnLCBhbGxlIEF0dHJpYnV0ZSBnZXN0cmlwcHQNCiAgICB9DQogICAg
JHMgPSBbcmVnZXhdOjpSZXBsYWNlKCRzLCAnKD9zKTwoPzxzbGFzaD4vPykoPzxuYW1lPlthLXpB
LVpdW2EtekEtWjAtOV0qKSg/PGF0dHJzPltePl0qKT4nLCAkZXZhbHVhdG9yKQ0KICAgIHJldHVy
biAkcw0KfQ0KDQojIEtleS1VbmlvbjogZmVobGVuZGUgVG9wLUxldmVsLUtleXMgYXVzIGRlbSBB
bHQtU3RhbmQgZXJoYWx0ZW4uIFBVVCAvYXBpL2FkbWluDQojIHdhciBWb2xsLU92ZXJ3cml0ZSDi
gJQgZWluIFBhcnRpYWwtUFVUIGxvZXNjaHRlIG5pY2h0IG1pdGdlc2VuZGV0ZSBUb3AtTGV2ZWwt
DQojIEtleXMgKHNjaGljaHRjb2RlcywgZmVpZXJ0YWdlLCDigKYpLiBTY2h1ZXR6dCBnZWdlbiB2
ZXJzZWhlbnRsaWNoZXMgRW50a2VybmVuLg0KZnVuY3Rpb24gTWVyZ2UtQWRtaW5LZXlzKCRBbHQs
ICROZXUpIHsNCiAgICBpZiAoJG51bGwgLWVxICRBbHQgLW9yICRudWxsIC1lcSAkTmV1KSB7IHJl
dHVybiAkTmV1IH0NCiAgICBmb3JlYWNoICgkcHJvcCBpbiAkQWx0LlBTT2JqZWN0LlByb3BlcnRp
ZXMpIHsNCiAgICAgICAgaWYgKC1ub3QgJE5ldS5QU09iamVjdC5Qcm9wZXJ0aWVzWyRwcm9wLk5h
bWVdKSB7DQogICAgICAgICAgICAkTmV1IHwgQWRkLU1lbWJlciAtTm90ZVByb3BlcnR5TmFtZSAk
cHJvcC5OYW1lIC1Ob3RlUHJvcGVydHlWYWx1ZSAkcHJvcC5WYWx1ZSAtRm9yY2UNCiAgICAgICAg
fQ0KICAgIH0NCiAgICByZXR1cm4gJE5ldQ0KfQ0KDQojIEJlcmVpbmlndCBkaWUgYmVrYW5udGVu
IFJpY2gtVGV4dC1GZWxkZXIgZWluZXMgKFRlaWwtKUFkbWluLU9iamVrdHMgaW4tcGxhY2UuDQpm
dW5jdGlvbiBJbnZva2UtQWRtaW5SaWNodGV4dFNhbml0aXplKCREYXRlbikgew0KICAgIGlmICgk
bnVsbCAtZXEgJERhdGVuKSB7IHJldHVybiB9DQogICAgZm9yZWFjaCAoJGsgaW4gJ2hpbGZldGV4
dCcsJ2luZm90ZXh0JywnYmVkaWVudW5nc3RleHRlJywnaW1wcmVzc3VtJywnc2NobGllc3NpbmZv
Jywnc3VwcG9ydGluZm8nLCdzdGFuZG9ydGVCZXNjaHJlaWJ1bmcnLCdzdXBwb3J0TWFpbFRleHQn
KSB7DQogICAgICAgIGlmICgkRGF0ZW4uUFNPYmplY3QuUHJvcGVydGllc1ska10gLWFuZCAoJERh
dGVuLiRrIC1pcyBbc3RyaW5nXSkpIHsNCiAgICAgICAgICAgICREYXRlbi4kayA9IENvbnZlcnRU
by1TYWZlUmljaEh0bWwgJERhdGVuLiRrDQogICAgICAgIH0NCiAgICB9DQogICAgaWYgKCREYXRl
bi5QU09iamVjdC5Qcm9wZXJ0aWVzWydlbWFpbFZvcmxhZ2VuJ10gLWFuZCAkbnVsbCAtbmUgJERh
dGVuLmVtYWlsVm9ybGFnZW4pIHsNCiAgICAgICAgZm9yZWFjaCAoJHAgaW4gJERhdGVuLmVtYWls
Vm9ybGFnZW4uUFNPYmplY3QuUHJvcGVydGllcykgew0KICAgICAgICAgICAgJHYgPSAkcC5WYWx1
ZQ0KICAgICAgICAgICAgaWYgKCRudWxsIC1uZSAkdiAtYW5kICR2LlBTT2JqZWN0LlByb3BlcnRp
ZXNbJ3RleHQnXSAtYW5kICgkdi50ZXh0IC1pcyBbc3RyaW5nXSkpIHsNCiAgICAgICAgICAgICAg
ICAkdi50ZXh0ID0gQ29udmVydFRvLVNhZmVSaWNoSHRtbCAkdi50ZXh0DQogICAgICAgICAgICB9
DQogICAgICAgIH0NCiAgICB9DQogICAgaWYgKCREYXRlbi5QU09iamVjdC5Qcm9wZXJ0aWVzWydz
b25kZXJ0ZXJtaW5lJ10gLWFuZCAkbnVsbCAtbmUgJERhdGVuLnNvbmRlcnRlcm1pbmUpIHsNCiAg
ICAgICAgZm9yZWFjaCAoJGUgaW4gQCgkRGF0ZW4uc29uZGVydGVybWluZSkpIHsNCiAgICAgICAg
ICAgIGlmICgkbnVsbCAtbmUgJGUgLWFuZCAkZS5QU09iamVjdC5Qcm9wZXJ0aWVzWyd0ZXh0J10g
LWFuZCAoJGUudGV4dCAtaXMgW3N0cmluZ10pKSB7DQogICAgICAgICAgICAgICAgJGUudGV4dCA9
IENvbnZlcnRUby1TYWZlUmljaEh0bWwgJGUudGV4dA0KICAgICAgICAgICAgfQ0KICAgICAgICB9
DQogICAgfQ0KfQ0KDQojIFBTLTUuMS1BcnJheS1XcmFwcGVyLUJ1ZzogQ29udmVydFRvLUpzb24g
c2VyaWFsaXNpZXJ0IGJlaSBiZXN0aW1tdGVuDQojIFBTQ3VzdG9tT2JqZWN0LS9bb2JqZWN0W11d
LUtvbWJpbmF0aW9uZW4gZWluIEFycmF5IGFscw0KIyB7ICJ2YWx1ZSI6IFsuLi5dLCAiQ291bnQi
OiBOIH0gc3RhdHQgYWxzIGVjaHRlcyBKU09OLUFycmF5LiBGb2xnZSBiZWltDQojIG5hZWNoc3Rl
biBSZWFkOiBDb252ZXJ0RnJvbS1Kc29uIGxpZWZlcnQgZWluIFdyYXBwZXItT2JqZWt0LCBmb3Jl
YWNoDQojIGl0ZXJpZXJ0IG51ciAxeCwgdW5kIG53S2VubnVuZy1NYXRjaGVzIChTdXBlclVzZXIs
IEZhY2hhdWZzaWNodCkgbGF1ZmVuDQojIGxlZXIgLT4gRWludHJhZWdlIHdpcmtlbiB3aWUgZ2Vs
b2VzY2h0LCBVc2VyIHdlcmRlbiBrZWluZSBSZWNodGUgenVnZW9yZG5ldC4NCiMNCiMgQ29udmVy
dFRvLUpzb25TYWZlIGtvbnZlcnRpZXJ0IGRhcyBPYmpla3Qgdm9yIGRlciBTZXJpYWxpc2llcnVu
ZyBpbg0KIyBlaW5lIHJlaW5lIEhhc2h0YWJsZS0vQXJyYXktL1ByaW1pdGl2ZS1TdHJ1a3R1ci4g
RGFtaXQgdmVyc2Nod2luZGVuDQojIFBTQ3VzdG9tT2JqZWN0LVdyYXBwZXIgZ3J1bmRzYWV0emxp
Y2gsIHVuZCB2b3JoYW5kZW5lIHsgdmFsdWUsIENvdW50IH0tDQojIFdyYXBwZXIgd2VyZGVuIGJl
aSBkaWVzZXIgR2VsZWdlbmhlaXQgYXVjaCBnbGVpY2ggZW50cGFja3QuIEhlaWx0DQojIGV4aXN0
aWVyZW5kZSBrYXB1dHRlIERhdGVpZW4gYmVpbSBuYWVjaHN0ZW4gV3JpdGUtWnlrbHVzLg0KZnVu
Y3Rpb24gVGVzdC1Jc1dyYXBwZXJPYmplY3QoJG8pIHsNCiAgICBpZiAoJG51bGwgLWVxICRvKSB7
IHJldHVybiAkZmFsc2UgfQ0KICAgIGlmICgtbm90ICgkbyAtaXMgW1BTQ3VzdG9tT2JqZWN0XSkp
IHsgcmV0dXJuICRmYWxzZSB9DQogICAgJG5hbWVzID0gQCgkby5QU09iamVjdC5Qcm9wZXJ0aWVz
IHwgRm9yRWFjaC1PYmplY3QgeyAkXy5OYW1lIH0pDQogICAgaWYgKCRuYW1lcy5Db3VudCAtbmUg
MikgeyByZXR1cm4gJGZhbHNlIH0NCiAgICBpZiAoLW5vdCAoKCRuYW1lcyAtY29udGFpbnMgJ3Zh
bHVlJykgLWFuZCAoJG5hbWVzIC1jb250YWlucyAnQ291bnQnKSkpIHsgcmV0dXJuICRmYWxzZSB9
DQogICAgcmV0dXJuICgkby52YWx1ZSAtaXMgW1N5c3RlbS5Db2xsZWN0aW9ucy5JTGlzdF0gLWFu
ZCAtbm90ICgkby52YWx1ZSAtaXMgW3N0cmluZ10pKQ0KfQ0KDQpmdW5jdGlvbiBDb252ZXJ0VG8t
SnNvblNhZmUoJG9iaikgew0KICAgIGlmICgkbnVsbCAtZXEgJG9iaikgeyByZXR1cm4gJG51bGwg
fQ0KICAgIGlmICgkb2JqIC1pcyBbc3RyaW5nXSkgeyByZXR1cm4gJG9iaiB9DQogICAgaWYgKCRv
YmogLWlzIFtib29sXSAtb3IgJG9iaiAtaXMgW2ludF0gLW9yICRvYmogLWlzIFtsb25nXSAtb3Ig
JG9iaiAtaXMgW2RvdWJsZV0gLW9yICRvYmogLWlzIFtkZWNpbWFsXSkgeyByZXR1cm4gJG9iaiB9
DQogICAgaWYgKCRvYmouR2V0VHlwZSgpLklzVmFsdWVUeXBlKSB7IHJldHVybiAkb2JqIH0NCiAg
ICBpZiAoJG9iaiAtaXMgW1N5c3RlbS5Db2xsZWN0aW9ucy5JRGljdGlvbmFyeV0pIHsNCiAgICAg
ICAgJGggPSBbb3JkZXJlZF1Ae30NCiAgICAgICAgZm9yZWFjaCAoJGsgaW4gJG9iai5LZXlzKSB7
ICRoW1tzdHJpbmddJGtdID0gQ29udmVydFRvLUpzb25TYWZlICRvYmpbJGtdIH0NCiAgICAgICAg
cmV0dXJuICRoDQogICAgfQ0KICAgIGlmICgkb2JqIC1pcyBbU3lzdGVtLkNvbGxlY3Rpb25zLklM
aXN0XSkgew0KICAgICAgICAjIFdyYXBwZXIgc2l0enQgSU0gQXJyYXk6IFt7dmFsdWU6Wy4uLl0s
IENvdW50Ok59XSAtPiBlcnNldHplIGRpZQ0KICAgICAgICAjIGFldXNzZXJlIExpc3RlIGR1cmNo
IGRhcyBpbm5lcmUgdmFsdWUtQXJyYXkuDQogICAgICAgIGlmICgkb2JqLkNvdW50IC1lcSAxIC1h
bmQgKFRlc3QtSXNXcmFwcGVyT2JqZWN0ICRvYmpbMF0pKSB7DQogICAgICAgICAgICAkaW5uZXIg
PSAkb2JqWzBdLnZhbHVlDQogICAgICAgICAgICAkb3V0ID0gTmV3LU9iamVjdCBTeXN0ZW0uQ29s
bGVjdGlvbnMuQXJyYXlMaXN0DQogICAgICAgICAgICBmb3JlYWNoICgkaXQgaW4gJGlubmVyKSB7
IFt2b2lkXSRvdXQuQWRkKChDb252ZXJ0VG8tSnNvblNhZmUgJGl0KSkgfQ0KICAgICAgICAgICAg
cmV0dXJuICwoW29iamVjdFtdXSRvdXQuVG9BcnJheSgpKQ0KICAgICAgICB9DQogICAgICAgICRv
dXQgPSBOZXctT2JqZWN0IFN5c3RlbS5Db2xsZWN0aW9ucy5BcnJheUxpc3QNCiAgICAgICAgZm9y
ZWFjaCAoJGl0IGluICRvYmopIHsgW3ZvaWRdJG91dC5BZGQoKENvbnZlcnRUby1Kc29uU2FmZSAk
aXQpKSB9DQogICAgICAgIHJldHVybiAsKFtvYmplY3RbXV0kb3V0LlRvQXJyYXkoKSkNCiAgICB9
DQogICAgaWYgKCRvYmogLWlzIFtQU0N1c3RvbU9iamVjdF0pIHsNCiAgICAgICAgJGggPSBbb3Jk
ZXJlZF1Ae30NCiAgICAgICAgZm9yZWFjaCAoJHAgaW4gJG9iai5QU09iamVjdC5Qcm9wZXJ0aWVz
KSB7ICRoWyRwLk5hbWVdID0gQ29udmVydFRvLUpzb25TYWZlICRwLlZhbHVlIH0NCiAgICAgICAg
cmV0dXJuICRoDQogICAgfQ0KICAgIHJldHVybiAkb2JqDQp9DQoNCiMgUmVhZC1zZWl0aWdlIFdy
YXBwZXItSGVpbHVuZzogZmFsbHMgZWluZSB2b3JoYW5kZW5lIERhdGVpIGJlcmVpdHMgZGVuDQoj
IHt2YWx1ZSxDb3VudH0tRGVmZWt0IGhhdCwgZW50cGFja2VuIHdpciBiZWltIEVpbmxlc2VuLCBk
YW1pdCBkZXIgcmVzdGxpY2hlDQojIENvZGUgKGZvcmVhY2ggdWViZXIgYWRtaW4uc3VwZXJVc2Vy
IGV0Yy4pIHdpZWRlciBzYXViZXIgaXRlcmllcnQuDQpmdW5jdGlvbiBSZXBhaXItSnNvbldyYXBw
ZXIoJG9iaikgew0KICAgIGlmICgkbnVsbCAtZXEgJG9iaikgeyByZXR1cm4gJG51bGwgfQ0KICAg
IGlmICgkb2JqIC1pcyBbc3RyaW5nXSAtb3IgJG9iaiAtaXMgW2Jvb2xdKSB7IHJldHVybiAkb2Jq
IH0NCiAgICBpZiAoJG9iai5HZXRUeXBlKCkuSXNWYWx1ZVR5cGUpIHsgcmV0dXJuICRvYmogfQ0K
ICAgIGlmICgkb2JqIC1pcyBbU3lzdGVtLkNvbGxlY3Rpb25zLklMaXN0XSAtYW5kIC1ub3QgKCRv
YmogLWlzIFtzdHJpbmddKSkgew0KICAgICAgICBpZiAoJG9iai5Db3VudCAtZXEgMSAtYW5kIChU
ZXN0LUlzV3JhcHBlck9iamVjdCAkb2JqWzBdKSkgew0KICAgICAgICAgICAgJGlubmVyID0gJG9i
alswXS52YWx1ZQ0KICAgICAgICAgICAgJG91dCA9IE5ldy1PYmplY3QgU3lzdGVtLkNvbGxlY3Rp
b25zLkFycmF5TGlzdA0KICAgICAgICAgICAgZm9yZWFjaCAoJGl0IGluICRpbm5lcikgeyBbdm9p
ZF0kb3V0LkFkZCgoUmVwYWlyLUpzb25XcmFwcGVyICRpdCkpIH0NCiAgICAgICAgICAgIHJldHVy
biAsKFtvYmplY3RbXV0kb3V0LlRvQXJyYXkoKSkNCiAgICAgICAgfQ0KICAgICAgICAkb3V0ID0g
TmV3LU9iamVjdCBTeXN0ZW0uQ29sbGVjdGlvbnMuQXJyYXlMaXN0DQogICAgICAgIGZvcmVhY2gg
KCRpdCBpbiAkb2JqKSB7IFt2b2lkXSRvdXQuQWRkKChSZXBhaXItSnNvbldyYXBwZXIgJGl0KSkg
fQ0KICAgICAgICByZXR1cm4gLChbb2JqZWN0W11dJG91dC5Ub0FycmF5KCkpDQogICAgfQ0KICAg
IGlmICgkb2JqIC1pcyBbUFNDdXN0b21PYmplY3RdKSB7DQogICAgICAgIGZvcmVhY2ggKCRwIGlu
IEAoJG9iai5QU09iamVjdC5Qcm9wZXJ0aWVzKSkgew0KICAgICAgICAgICAgJG9iai4kKCRwLk5h
bWUpID0gUmVwYWlyLUpzb25XcmFwcGVyICRwLlZhbHVlDQogICAgICAgIH0NCiAgICAgICAgcmV0
dXJuICRvYmoNCiAgICB9DQogICAgcmV0dXJuICRvYmoNCn0NCg0KZnVuY3Rpb24gUmVhZC1Kc29u
T2JqZWN0KCRGaWxlTmFtZSkgew0KICAgICMgSlNPTi1DYWNoZS1IaXQ/IFBydWVmZW4gdWViZXIg
ZGllc2VsYmUgTXRpbWUsIGRpZSBkZXIgVGV4dC1DYWNoZSBmdWVocnQuDQogICAgIyBEYXMgc3Bh
cnQgcHJvIEhpdCBlaW4gQ29udmVydEZyb20tSnNvbiAoMjAwIEtCIC0+IH4xNTAgbXMgYXVmIFBT
IDUuMSkuDQogICAgaWYgKCRzY3JpcHQ6SnNvbkNhY2hlLkNvbnRhaW5zS2V5KCRGaWxlTmFtZSkp
IHsNCiAgICAgICAgJGpjZSA9ICRzY3JpcHQ6SnNvbkNhY2hlWyRGaWxlTmFtZV0NCiAgICAgICAg
dHJ5IHsNCiAgICAgICAgICAgICRwID0gSm9pbi1QYXRoICREYXRhRGlyICRGaWxlTmFtZQ0KICAg
ICAgICAgICAgaWYgKFRlc3QtUGF0aCAtTGl0ZXJhbFBhdGggJHApIHsNCiAgICAgICAgICAgICAg
ICAkbXQgPSAoR2V0LUl0ZW0gLUxpdGVyYWxQYXRoICRwKS5MYXN0V3JpdGVUaW1lVXRjLlRpY2tz
DQogICAgICAgICAgICAgICAgaWYgKCRtdCAtZXEgJGpjZS5NdGltZVRpY2tzKSB7DQogICAgICAg
ICAgICAgICAgICAgIHJldHVybiAkamNlLk9iag0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAg
ICAgIH0NCiAgICAgICAgfSBjYXRjaCB7fQ0KICAgICAgICAkc2NyaXB0Okpzb25DYWNoZS5SZW1v
dmUoJEZpbGVOYW1lKSB8IE91dC1OdWxsDQogICAgfQ0KICAgICR0eHQgPSBSZWFkLVRleHRGaWxl
ICRGaWxlTmFtZQ0KICAgIGlmICgkbnVsbCAtZXEgJHR4dCAtb3IgW3N0cmluZ106OklzTnVsbE9y
V2hpdGVTcGFjZSgkdHh0KSkgeyByZXR1cm4gJG51bGwgfQ0KICAgIHRyeSB7DQogICAgICAgICRv
YmogPSBSZXBhaXItSnNvbldyYXBwZXIgKCR0eHQgfCBDb252ZXJ0RnJvbS1Kc29uKQ0KICAgICAg
ICAjIENhY2hlIG51ciBmdWVyIGRpZSBncm9zc2VuIEpTT05zIChhZG1pbi5qc29uLCBwbGFudW5n
Lmpzb24sIGxvZ2J1Y2guanNvbikuDQogICAgICAgIGlmICgkRmlsZU5hbWUgLWVxICdhZG1pbi5q
c29uJyAtb3IgJEZpbGVOYW1lIC1lcSAncGxhbnVuZy5qc29uJyAtb3IgJEZpbGVOYW1lIC1lcSAn
bG9nYnVjaC5qc29uJykgew0KICAgICAgICAgICAgdHJ5IHsNCiAgICAgICAgICAgICAgICAkcCA9
IEpvaW4tUGF0aCAkRGF0YURpciAkRmlsZU5hbWUNCiAgICAgICAgICAgICAgICBpZiAoVGVzdC1Q
YXRoIC1MaXRlcmFsUGF0aCAkcCkgew0KICAgICAgICAgICAgICAgICAgICAkbXQgPSAoR2V0LUl0
ZW0gLUxpdGVyYWxQYXRoICRwKS5MYXN0V3JpdGVUaW1lVXRjLlRpY2tzDQogICAgICAgICAgICAg
ICAgICAgICRzY3JpcHQ6SnNvbkNhY2hlWyRGaWxlTmFtZV0gPSBAeyBPYmogPSAkb2JqOyBNdGlt
ZVRpY2tzID0gJG10IH0NCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9IGNhdGNoIHt9
DQogICAgICAgIH0NCiAgICAgICAgcmV0dXJuICRvYmoNCiAgICB9IGNhdGNoIHsNCiAgICAgICAg
TG9nLUFwaSAoJ1BBUlNFIHswfSBGRUhMRVI6IHsxfScgLWYgJEZpbGVOYW1lLCAkXy5FeGNlcHRp
b24uTWVzc2FnZSkNCiAgICAgICAgcmV0dXJuICRudWxsDQogICAgfQ0KfQ0KDQpmdW5jdGlvbiBX
cml0ZS1Kc29uT2JqZWN0KCRGaWxlTmFtZSwgJE9iaikgew0KICAgICRzYWZlID0gQ29udmVydFRv
LUpzb25TYWZlICRPYmoNCiAgICAkanNvbiA9ICRzYWZlIHwgQ29udmVydFRvLUpzb24gLURlcHRo
IDMwDQogICAgJGVyZyA9IFdyaXRlLVRleHRGaWxlICRGaWxlTmFtZSAkanNvbg0KICAgICMgV29j
aGVucGxhbi1TbmFwc2hvdCAoc3RhdGlzY2hlIE9mZmxpbmUtRGF0ZWkpIGF1dG9tYXRpc2NoIG5h
Y2h6aWVoZW4sDQogICAgIyBzb2JhbGQgUGxhbnVuZ3MtIG9kZXIgQWRtaW4tRGF0ZW4gZ2VzY2hy
aWViZW4gd3VyZGVuLiBXaXJmdCBGZWhsZXIgd2VnDQogICAgIyBkYW1pdCBlaW4ga2FwdXR0ZXMg
VGVtcGxhdGUgZGVuIGVpZ2VudGxpY2hlbiBXcml0ZSBuaWNodCBibG9ja2llcnQuDQogICAgaWYg
KCRlcmcgLWFuZCAoJEZpbGVOYW1lIC1lcSAncGxhbnVuZy5qc29uJyAtb3IgJEZpbGVOYW1lIC1l
cSAnYWRtaW4uanNvbicpKSB7DQogICAgICAgIHRyeSB7IEdlbmVyYXRlLVdvY2hlbnBsYW5TbmFw
c2hvdCB9IGNhdGNoIHsNCiAgICAgICAgICAgIExvZy1BcGkgKCdTTkFQU0hPVCAoaG9vaykgRkVI
TEVSOiB7MH0nIC1mICRfLkV4Y2VwdGlvbi5NZXNzYWdlKQ0KICAgICAgICB9DQogICAgfQ0KICAg
IHJldHVybiAkZXJnDQp9DQoNCiMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIyBXb2NoZW5wbGFuLU9m
ZmxpbmUtU25hcHNob3QNCiMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIyBFcnpldWd0IGVpbmUgc3Rh
dGlzY2hlICJWSTMvV29jaGVucGxhbi5odG1sIiBtaXQgZWluZ2ViZXR0ZXRlbiBQbGFudW5ncy0N
CiMgRGF0ZW4uIERhdGVpIGxhZXVmdCBrb21wbGV0dCBvaG5lIFNlcnZlciAoRG9wcGVsa2xpY2sg
cmVpY2h0KTogaW5saW5lIENTUw0KIyB1bmQgaW5saW5lIEpTLCBrZWluIEZldGNoLCBrZWluZSBl
eHRlcm5lbiBBc3NldHMuIFdpcmQgbmFjaCBqZWRlbSBTY2hyZWliZW4NCiMgYXVmIHBsYW51bmcu
anNvbiBvZGVyIGFkbWluLmpzb24gYXV0b21hdGlzY2ggcmVnZW5lcmllcnQgKHNpZWhlIEhvb2sg
aW4NCiMgV3JpdGUtSnNvbk9iamVjdCkgdW5kIGVpbm1hbCBiZWltIFNlcnZlci1TdGFydC4NCmZ1
bmN0aW9uIEdlbmVyYXRlLVdvY2hlbnBsYW5TbmFwc2hvdCB7DQogICAgdHJ5IHsNCiAgICAgICAg
IyBUZW1wbGF0ZS1TdWNoZTogZXJzdCBpbSAkUm9vdCAobG9rYWxlciBBc3NldC1DYWNoZSksIGRh
bm4gaW0NCiAgICAgICAgIyBBc3NldEZhbGxiYWNrIChTaGFyZSkuIERhbWl0IGZ1bmt0aW9uaWVy
dCBkZXIgU25hcHNob3QgYXVjaCwgd2Vubg0KICAgICAgICAjIGRlciBMYXVuY2hlciBkYXMgVGVt
cGxhdGUgbm9jaCBuaWNodCBpbiBkZW4gQ2FjaGUga29waWVydCBoYXQNCiAgICAgICAgIyAoei5C
LiB3ZWlsIGVpbmUgYWVsdGVyZSBkZ2wuYmF0IGltIEVpbnNhdHogd2FyLCBvZGVyIGJlaSBtYW51
ZWxsZXINCiAgICAgICAgIyBTZXJ2ZXItU3RhcnQtVmFyaWFudGUgb2huZSByb2JvY29weS1Wb3Js
YXVmKS4NCiAgICAgICAgJHRwbFBhdGggPSBKb2luLVBhdGggJFJvb3QgJ1dvY2hlbnBsYW4udGVt
cGxhdGUuaHRtbCcNCiAgICAgICAgaWYgKC1ub3QgKFRlc3QtUGF0aCAtTGl0ZXJhbFBhdGggJHRw
bFBhdGgpKSB7DQogICAgICAgICAgICBpZiAoJHNjcmlwdDpBc3NldEZhbGxiYWNrKSB7DQogICAg
ICAgICAgICAgICAgJHRwbEZhbGxiYWNrID0gSm9pbi1QYXRoICRzY3JpcHQ6QXNzZXRGYWxsYmFj
ayAnV29jaGVucGxhbi50ZW1wbGF0ZS5odG1sJw0KICAgICAgICAgICAgICAgIGlmIChUZXN0LVBh
dGggLUxpdGVyYWxQYXRoICR0cGxGYWxsYmFjaykgew0KICAgICAgICAgICAgICAgICAgICAkdHBs
UGF0aCA9ICR0cGxGYWxsYmFjaw0KICAgICAgICAgICAgICAgICAgICBMb2ctQXBpICgnU05BUFNI
T1Q6IFRlbXBsYXRlIGF1cyBBc3NldEZhbGxiYWNrICh7MH0pJyAtZiAkdHBsRmFsbGJhY2spDQog
ICAgICAgICAgICAgICAgfSBlbHNlIHsNCiAgICAgICAgICAgICAgICAgICAgTG9nLUFwaSAnU05B
UFNIT1Q6IFRlbXBsYXRlIFdvY2hlbnBsYW4udGVtcGxhdGUuaHRtbCBmZWhsdCAod2VkZXIgJFJv
b3Qgbm9jaCBBc3NldEZhbGxiYWNrKScNCiAgICAgICAgICAgICAgICAgICAgcmV0dXJuICRmYWxz
ZQ0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0gZWxzZSB7DQogICAgICAgICAgICAg
ICAgTG9nLUFwaSAnU05BUFNIT1Q6IFRlbXBsYXRlIFdvY2hlbnBsYW4udGVtcGxhdGUuaHRtbCBm
ZWhsdCAoa2VpbiBBc3NldEZhbGxiYWNrIGdlc2V0enQpJw0KICAgICAgICAgICAgICAgIHJldHVy
biAkZmFsc2UNCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KICAgICAgICAkdHBsQnl0ZXMgPSBb
U3lzdGVtLklPLkZpbGVdOjpSZWFkQWxsQnl0ZXMoJHRwbFBhdGgpDQogICAgICAgICR0cGwgPSBb
U3lzdGVtLlRleHQuRW5jb2RpbmddOjpVVEY4LkdldFN0cmluZygkdHBsQnl0ZXMpDQoNCiAgICAg
ICAgJGFkbWluID0gUmVhZC1Kc29uT2JqZWN0ICdhZG1pbi5qc29uJw0KICAgICAgICAkcGxhbnVu
ZyA9IFJlYWQtSnNvbk9iamVjdCAncGxhbnVuZy5qc29uJw0KDQogICAgICAgICMgU2NobGFua2Vy
IERhdGVuLUJsb2NrOiBudXIgd2FzIGRlciBXb2NoZW5wbGFuLVJlbmRlcmVyIGJyYXVjaHQuDQog
ICAgICAgICRkYXRlbiA9IFtvcmRlcmVkXUB7DQogICAgICAgICAgICBqYWhyICAgICAgICAgICA9
IGlmICgkYWRtaW4gLWFuZCAkYWRtaW4uUFNPYmplY3QuUHJvcGVydGllc1snamFociddKSB7ICRh
ZG1pbi5qYWhyIH0gZWxzZSB7IChHZXQtRGF0ZSkuWWVhciB9DQogICAgICAgICAgICBmZWllcnRh
Z2UgICAgICA9IGlmICgkYWRtaW4gLWFuZCAkYWRtaW4uUFNPYmplY3QuUHJvcGVydGllc1snZmVp
ZXJ0YWdlJ10pICAgICAgeyAkYWRtaW4uZmVpZXJ0YWdlIH0gICAgICBlbHNlIHsgQCgpIH0NCiAg
ICAgICAgICAgIGZlcmllbiAgICAgICAgID0gaWYgKCRhZG1pbiAtYW5kICRhZG1pbi5QU09iamVj
dC5Qcm9wZXJ0aWVzWydmZXJpZW4nXSkgICAgICAgICB7ICRhZG1pbi5mZXJpZW4gfSAgICAgICAg
IGVsc2UgeyBAKCkgfQ0KICAgICAgICAgICAgc29uZGVydGVybWluZSAgPSBpZiAoJGFkbWluIC1h
bmQgJGFkbWluLlBTT2JqZWN0LlByb3BlcnRpZXNbJ3NvbmRlcnRlcm1pbmUnXSkgIHsgJGFkbWlu
LnNvbmRlcnRlcm1pbmUgfSAgZWxzZSB7IEAoKSB9DQogICAgICAgICAgICBmdW5rdGlvbmVuICAg
ICA9IGlmICgkYWRtaW4gLWFuZCAkYWRtaW4uUFNPYmplY3QuUHJvcGVydGllc1snZnVua3Rpb25l
biddKSAgICAgeyAkYWRtaW4uZnVua3Rpb25lbiB9ICAgICBlbHNlIHsgQCgpIH0NCiAgICAgICAg
ICAgIGdydXBwZW4gICAgICAgID0gaWYgKCRhZG1pbiAtYW5kICRhZG1pbi5QU09iamVjdC5Qcm9w
ZXJ0aWVzWydncnVwcGVuJ10pICAgICAgICB7ICRhZG1pbi5ncnVwcGVuIH0gICAgICAgIGVsc2Ug
eyBAKCkgfQ0KICAgICAgICAgICAgcGVyc29uZW4gICAgICAgPSBpZiAoJHBsYW51bmcgLWFuZCAk
cGxhbnVuZy5QU09iamVjdC5Qcm9wZXJ0aWVzWydwZXJzb25lbiddKSAgIHsgJHBsYW51bmcucGVy
c29uZW4gfSAgICAgZWxzZSB7IEAoKSB9DQogICAgICAgICAgICBlaW50cmFlZ2UgICAgICA9IGlm
ICgkcGxhbnVuZyAtYW5kICRwbGFudW5nLlBTT2JqZWN0LlByb3BlcnRpZXNbJ2VpbnRyYWVnZSdd
KSAgeyAkcGxhbnVuZy5laW50cmFlZ2UgfSAgICBlbHNlIHsgQHt9IH0NCiAgICAgICAgfQ0KDQog
ICAgICAgICRzYWZlID0gQ29udmVydFRvLUpzb25TYWZlICRkYXRlbg0KICAgICAgICAkanNvbiA9
ICRzYWZlIHwgQ29udmVydFRvLUpzb24gLURlcHRoIDMwIC1Db21wcmVzcw0KDQogICAgICAgICMg
U2NodXR6IHZvciAnPC9zY3JpcHQ+Jy1BdXNicnVjaCBhdXMgZGVtIGlubGluZSA8c2NyaXB0Pi1C
bG9jazogd2Vubg0KICAgICAgICAjIGVpbiBQZXJzb25lbi1OYW1lIG9kZXIgU29uZGVydGVybWlu
LUhUTUwgPC8gZW50aGFlbHQsIG11c3MgZGFyYXVzDQogICAgICAgICMgPFwvIHdlcmRlbiwgc29u
c3Qgd3VlcmRlIGRlciBCcm93c2VyIGFuIGRpZXNlciBTdGVsbGUgZGFzIFNjcmlwdC0NCiAgICAg
ICAgIyBUYWcgc2NobGllc3Nlbi4gSlNPTi1QYXJzZXIgYWt6ZXB0aWVydCBkaWUgQmFja3NsYXNo
LUVzY2FwZXMuDQogICAgICAgICRqc29uID0gJGpzb24uUmVwbGFjZSgnPC8nLCAnPFwvJykNCg0K
ICAgICAgICAkemVpdCA9IChHZXQtRGF0ZSAtRm9ybWF0ICdkZC5NTS55eXl5IEhIOm1tJykNCiAg
ICAgICAgJGh0bWwgPSAkdHBsLlJlcGxhY2UoJ19fREFURU5fSlNPTl9fJywgJGpzb24pLlJlcGxh
Y2UoJ19fU05BUFNIT1RfWkVJVF9fJywgJHplaXQpDQoNCiAgICAgICAgJHppZWwgPSBKb2luLVBh
dGggJFJvb3QgJ1dvY2hlbnBsYW4uaHRtbCcNCiAgICAgICAgW1N5c3RlbS5JTy5GaWxlXTo6V3Jp
dGVBbGxCeXRlcygkemllbCwgW1N5c3RlbS5UZXh0LkVuY29kaW5nXTo6VVRGOC5HZXRCeXRlcygk
aHRtbCkpDQogICAgICAgIExvZy1BcGkgKCdTTkFQU0hPVCBXb2NoZW5wbGFuLmh0bWw6IHswfSBC
eXRlcyBnZXNjaHJpZWJlbiAoU3RhbmQgezF9KScgLWYgJGh0bWwuTGVuZ3RoLCAkemVpdCkNCiAg
ICAgICAgcmV0dXJuICR0cnVlDQogICAgfSBjYXRjaCB7DQogICAgICAgIExvZy1BcGkgKCdTTkFQ
U0hPVCBGRUhMRVI6IHswfScgLWYgJF8uRXhjZXB0aW9uLk1lc3NhZ2UpDQogICAgICAgIHJldHVy
biAkZmFsc2UNCiAgICB9DQp9DQoNCiMgQXV0by1CYWNrdXAgdm9yIGVpbmVtIEFkbWluLVdyaXRl
LiBLb3N0ZXQgcXVhc2kgbmljaHRzIHVuZCBoYXQgc2Nob24NCiMgZWlubWFsIGRhcyBSZXBvIGdl
cmV0dGV0IChBdWRpdC1VbmZhbGwgRi0wMDApLiBSb3RpZXJ0OiBtYXggMjAgS29waWVuLg0KZnVu
Y3Rpb24gQmFja3VwLUFkbWluSnNvbihbc3RyaW5nXSRIaW53ZWlzID0gJ3ByZXNhdmUnKSB7DQog
ICAgJHNyYyA9IEpvaW4tUGF0aCAkRGF0YURpciAnYWRtaW4uanNvbicNCiAgICBpZiAoLW5vdCAo
VGVzdC1QYXRoIC1MaXRlcmFsUGF0aCAkc3JjKSkgeyByZXR1cm4gJG51bGwgfQ0KICAgIHRyeSB7
DQogICAgICAgICR0cyA9IChHZXQtRGF0ZSAtRm9ybWF0ICd5eXl5TU1kZF9ISG1tc3MnKQ0KICAg
ICAgICAkbmFtZSA9ICgnYWRtaW5fYmFja3VwX3swfV97MX0uanNvbicgLWYgJHRzLCAkSGlud2Vp
cykNCiAgICAgICAgJHppZWwgPSBKb2luLVBhdGggJERhdGFEaXIgJG5hbWUNCiAgICAgICAgJGts
YXJ0ZXh0ID0gUmVhZC1UZXh0RmlsZSAnYWRtaW4uanNvbicNCiAgICAgICAgaWYgKCRudWxsIC1l
cSAka2xhcnRleHQpIHsgcmV0dXJuICRudWxsIH0NCiAgICAgICAgV3JpdGUtQmFja3VwQnl0ZXMg
JHppZWwgJGtsYXJ0ZXh0DQogICAgICAgICRhbGxlID0gQChHZXQtQ2hpbGRJdGVtIC1MaXRlcmFs
UGF0aCAkRGF0YURpciAtRmlsdGVyICdhZG1pbl9iYWNrdXBfKi5qc29uJyAtRXJyb3JBY3Rpb24g
U2lsZW50bHlDb250aW51ZSB8DQogICAgICAgICAgICAgICAgICBTb3J0LU9iamVjdCBMYXN0V3Jp
dGVUaW1lIC1EZXNjZW5kaW5nKQ0KICAgICAgICBpZiAoJGFsbGUuQ291bnQgLWd0IDIwKSB7DQog
ICAgICAgICAgICBmb3IgKCRpID0gMjA7ICRpIC1sdCAkYWxsZS5Db3VudDsgJGkrKykgew0KICAg
ICAgICAgICAgICAgIHRyeSB7IFJlbW92ZS1JdGVtIC1MaXRlcmFsUGF0aCAkYWxsZVskaV0uRnVs
bE5hbWUgLUZvcmNlIC1FcnJvckFjdGlvbiBTaWxlbnRseUNvbnRpbnVlIH0gY2F0Y2gge30NCiAg
ICAgICAgICAgIH0NCiAgICAgICAgfQ0KICAgICAgICByZXR1cm4gJG5hbWUNCiAgICB9IGNhdGNo
IHsNCiAgICAgICAgTG9nLUFwaSAoIkJBQ0tVUCBhZG1pbi5qc29uIEZFSExFUjogezB9IiAtZiAk
Xy5FeGNlcHRpb24uTWVzc2FnZSkNCiAgICAgICAgcmV0dXJuICRudWxsDQogICAgfQ0KfQ0KDQoj
IFdpcGUtU2NodXR6OiB2ZXJoaW5kZXJ0LCBkYXNzIGVpbmUgYmVmdWVsbHRlIExpc3RlIGR1cmNo
IGVpbiBsZWVyZXMNCiMgQXJyYXkgYXVzIFZlcnNlaGVuIGF1ZiAwIGdlc2V0enQgd2lyZC4gQXVz
bG9lc2VyIHdhciBkZXIgQXVkaXQtVW5mYWxsDQojIHZvbSAyMDI2LTA0LTI0LiBVbWdlaHVuZyBl
eHBsaXppdCB2aWEgP2NvbmZpcm1SZXNldD10cnVlIG9kZXIgQm9keS5jb25maXJtUmVzZXQuDQoj
IEdpYnQgJG51bGwgenVydWVjayB3ZW5uIE9LLCBzb25zdCBlaW5lbiBGZWhsZXItU3RyaW5nIGZ1
ZXIgNDA5Lg0KZnVuY3Rpb24gVGVzdC1XaXBlU2NodXR6KFtzdHJpbmddJEZlbGQsICROZXVEYXRl
biwgJEFkbWluLCAkUmVxdWVzdCwgJEJvZHlKc29uKSB7DQogICAgaWYgKCRudWxsIC1lcSAkQWRt
aW4gLW9yIC1ub3QgJEFkbWluLlBTT2JqZWN0LlByb3BlcnRpZXNbJEZlbGRdKSB7IHJldHVybiAk
bnVsbCB9DQogICAgJGFsdCA9ICRBZG1pbi4kRmVsZA0KICAgIGlmICgkbnVsbCAtZXEgJGFsdCAt
b3IgLW5vdCAoJGFsdCAtaXMgW1N5c3RlbS5Db2xsZWN0aW9ucy5JTGlzdF0pKSB7IHJldHVybiAk
bnVsbCB9DQogICAgJGFsdENvdW50ID0gQCgkYWx0KS5Db3VudA0KICAgIGlmICgkYWx0Q291bnQg
LWVxIDApIHsgcmV0dXJuICRudWxsIH0NCiAgICAkbmV1Q291bnQgPSAwDQogICAgaWYgKCRudWxs
IC1uZSAkTmV1RGF0ZW4pIHsNCiAgICAgICAgaWYgKCROZXVEYXRlbiAtaXMgW1N5c3RlbS5Db2xs
ZWN0aW9ucy5JTGlzdF0pIHsgJG5ldUNvdW50ID0gQCgkTmV1RGF0ZW4pLkNvdW50IH0NCiAgICAg
ICAgZWxzZSB7ICRuZXVDb3VudCA9IDEgfQ0KICAgIH0NCiAgICBpZiAoJG5ldUNvdW50IC1ndCAw
KSB7IHJldHVybiAkbnVsbCB9DQogICAgIyBBdXNuYWhtZTogZXhwbGl6aXQgYmVzdGFldGlndGVy
IFJlc2V0IChRdWVyeS1QYXJhbSBPREVSIEJvZHktRmxhZykNCiAgICB0cnkgew0KICAgICAgICBp
ZiAoJFJlcXVlc3QgLWFuZCAkUmVxdWVzdC5VcmwgLWFuZCAkUmVxdWVzdC5VcmwuUXVlcnkgLW1h
dGNoICdjb25maXJtUmVzZXQ9KHRydWV8MSknKSB7IHJldHVybiAkbnVsbCB9DQogICAgfSBjYXRj
aCB7fQ0KICAgIGlmICgkQm9keUpzb24gLWFuZCAkQm9keUpzb24uUFNPYmplY3QuUHJvcGVydGll
c1snY29uZmlybVJlc2V0J10gLWFuZCBbYm9vbF0kQm9keUpzb24uY29uZmlybVJlc2V0KSB7IHJl
dHVybiAkbnVsbCB9DQogICAgcmV0dXJuICgiTGlzdGUgJ3swfScgd3VlcmRlIHZvbiB7MX0gRWlu
dHJhZWdlbiBhdWYgMCBnZXNldHp0LiBBYnNpY2h0bGljaD8gUmVxdWVzdCBtaXQgP2NvbmZpcm1S
ZXNldD10cnVlIHdpZWRlcmhvbGVuLiIgLWYgJEZlbGQsICRhbHRDb3VudCkNCn0NCg0KIyBDcm9z
cy1wcm9jZXNzIExvY2sgcGVyIExvY2stRmlsZS4gVmVyaGluZGVydCwgZGFzcyB6d2VpIHBhcmFs
bGVsZQ0KIyBTZXJ2ZXItSW5zdGFuemVuICh6LkIuIHp3ZWkgVXNlciBhdWYgZGVtc2VsYmVuIE5l
dHpsYXVmd2Vyaywgb2RlciBlaW4NCiMgTGF1bmNoZXItUmFjZSB3YWVocmVuZCBkZXMgU2VydmVy
d2VjaHNlbHMpIGdsZWljaHplaXRpZyBkaWVzZWxiZSBEYXRlaQ0KIyByZWFkLW1vZGlmeS13cml0
ZW4gdW5kIHNpY2ggZGFiZWkgemVyc2NoaWVzc2VuLiBJbm5lcmhhbGIgRUlORVMgU2VydmVyLQ0K
IyBQcm96ZXNzZXMgaXN0IEh0dHBMaXN0ZW5lciB6d2FyIHNlcmllbGwsIGFiZXIgZGVyIExvY2sg
c2NodWV0enQgenVzYWV0emxpY2gNCiMgZ2VnZW4gcGFyYWxsZWxlIFNlcnZlci1TdGFydHMuDQoj
IFBTLTUuMS1VbndyYXAtU2NodXR6IGZ1ZXIgYWRtaW4uanNvbi1MaXN0ZW5mZWxkZXI6IExpc3Rl
biBtaXQgbnVyIGVpbmVtDQojIEVsZW1lbnQgd2VyZGVuIHZvbSBKU09OLVJvdW5kdHJpcCAoQ29u
dmVydEZyb20tSnNvbiArIHNwYWV0ZXJlcyBDb252ZXJ0VG8tSnNvbikNCiMgcmVnZWxtYWVzc2ln
IHp1IEVpbnplbC1PYmpla3RlbiBlbnRwYWNrdCwgd2FzIGltIENsaWVudCB6dSAieC5mb3JFYWNo
IGlzIG5vdA0KIyBhIGZ1bmN0aW9uIiB1bmQgaW4gYWRtaW4uanNvbiB6dSBkZWdlbmVyaWVydGVy
IFN0cnVrdHVyIGZ1ZWhydC4gRGllIExpc3RlDQojIHNwaWVnZWx0IEFETUlOX0xJU1RfRkVMREVS
IGluIGpzL2NvcmVfZGF0ZW5MYWRlbi5qcyDigJQgd2VubiBkZXIgQ2xpZW50IGVpbmVuDQojIHdl
aXRlcmVuIExpc3Rlbi1GZWxkIGRhenUgbmltbXQsIGhpZXIgbWl0IGF1Zm5laG1lbi4NCiRzY3Jp
cHQ6QWRtaW5MaXN0RmVsZGVyID0gQCgNCiAgICAnZmVpZXJ0YWdlJywnZmVyaWVuJywnc29uZGVy
dGVybWluZScsJ3NjaGljaHRjb2RlcycsJ2dydXBwZW4nLCdzdGFuZG9ydGUnLA0KICAgICdmdW5r
dGlvbmVuJywnZGllbnN0Z3JhZGUnLCdzdXBlclVzZXInLCdmYWNoYXVmc2ljaHQnLCdkaXJla3Rp
b25zbGVpdHVuZycsJ2Z1ZWhydW5nc3N0ZWxsZScsJ3NjaGljaHRmb2xnZW4nLCdyb2xsZW4nLCdt
aWtyb3RlYW1zJywNCiAgICAnc3RhdGlzdGlrS2FjaGVsbicsJ3N0YXRpc3Rpa0xheW91dCcNCikN
Cg0KZnVuY3Rpb24gTm9ybWFsaXNpZXJlLUFkbWluTGlzdGVuKCREYXRlbikgew0KICAgIGlmICgt
bm90ICREYXRlbikgeyByZXR1cm4gfQ0KICAgIGZvcmVhY2ggKCRmZWxkIGluICRzY3JpcHQ6QWRt
aW5MaXN0RmVsZGVyKSB7DQogICAgICAgIGlmICgtbm90ICREYXRlbi5QU09iamVjdC5Qcm9wZXJ0
aWVzWyRmZWxkXSkgeyBjb250aW51ZSB9DQogICAgICAgICR3ZXJ0ID0gJERhdGVuLiRmZWxkDQog
ICAgICAgIGlmICgkbnVsbCAtZXEgJHdlcnQpIHsNCiAgICAgICAgICAgICREYXRlbi4kZmVsZCA9
IEAoKQ0KICAgICAgICB9IGVsc2VpZiAoJHdlcnQgLWlzIFtTeXN0ZW0uQXJyYXldKSB7DQogICAg
ICAgICAgICAjIFNjaG9uIEFycmF5IOKAlCB0cm90emRlbSBhbHMgW29iamVjdFtdXSB6d2luZ2Vu
LCBkYW1pdA0KICAgICAgICAgICAgIyBTaW5nbGUtRWxlbWVudC1BcnJheXMgbmFjaCBkZW0gbmFl
Y2hzdGVuIENvbnZlcnRUby1Kc29uIG5pY2h0DQogICAgICAgICAgICAjIGVybmV1dCBlbnRwYWNr
dCB3ZXJkZW4uDQogICAgICAgICAgICAkRGF0ZW4uJGZlbGQgPSBbb2JqZWN0W11dQCgkd2VydCkN
CiAgICAgICAgfSBlbHNlIHsNCiAgICAgICAgICAgICMgRWluemVsLU9iamVrdCBvZGVyIFNjYWxh
ciAtPiBpbiBlaW5lbGVtZW50aWdlcyBBcnJheSBwYWNrZW4NCiAgICAgICAgICAgICREYXRlbi4k
ZmVsZCA9IFtvYmplY3RbXV1AKCR3ZXJ0KQ0KICAgICAgICB9DQogICAgfQ0KfQ0KDQpmdW5jdGlv
biBJbnZva2UtV2l0aEZpbGVMb2NrKCROYW1lLCAkQWN0aW9uLCAkTWF4V2FpdE1zID0gMjAwMCwg
JFN0YWxlQWZ0ZXJTZWMgPSAxMCkgew0KICAgICRMb2NrUGF0aCA9IEpvaW4tUGF0aCAkRGF0YURp
ciAoJE5hbWUgKyAnLmxvY2snKQ0KICAgICRTdGFydCA9IEdldC1EYXRlDQogICAgd2hpbGUgKCR0
cnVlKSB7DQogICAgICAgIHRyeSB7DQogICAgICAgICAgICAkU3RyZWFtID0gW1N5c3RlbS5JTy5G
aWxlXTo6T3BlbigkTG9ja1BhdGgsIFtTeXN0ZW0uSU8uRmlsZU1vZGVdOjpDcmVhdGVOZXcsIFtT
eXN0ZW0uSU8uRmlsZUFjY2Vzc106OldyaXRlLCBbU3lzdGVtLklPLkZpbGVTaGFyZV06Ok5vbmUp
DQogICAgICAgICAgICB0cnkgew0KICAgICAgICAgICAgICAgIHJldHVybiAmICRBY3Rpb24NCiAg
ICAgICAgICAgIH0gZmluYWxseSB7DQogICAgICAgICAgICAgICAgJFN0cmVhbS5DbG9zZSgpDQog
ICAgICAgICAgICAgICAgdHJ5IHsgUmVtb3ZlLUl0ZW0gJExvY2tQYXRoIC1Gb3JjZSAtRXJyb3JB
Y3Rpb24gU2lsZW50bHlDb250aW51ZSB9IGNhdGNoIHt9DQogICAgICAgICAgICB9DQogICAgICAg
IH0gY2F0Y2ggW1N5c3RlbS5JTy5JT0V4Y2VwdGlvbl0gew0KICAgICAgICAgICAgaWYgKCgoR2V0
LURhdGUpIC0gJFN0YXJ0KS5Ub3RhbE1pbGxpc2Vjb25kcyAtZ3QgJE1heFdhaXRNcykgew0KICAg
ICAgICAgICAgICAgIHRocm93ICJTcGVycmUgYXVmICROYW1lIGtvbm50ZSBuaWNodCBlcmxhbmd0
IHdlcmRlbiINCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgICMgU3RhbGUtTG9jay1Fcmtlbm51
bmc6IExvY2tmaWxlIGFlbHRlciBhbHMgTiBTZWt1bmRlbiAtPiBlbnRmZXJuZW4NCiAgICAgICAg
ICAgIGlmIChUZXN0LVBhdGggJExvY2tQYXRoKSB7DQogICAgICAgICAgICAgICAgJEFnZSA9ICgo
R2V0LURhdGUpIC0gKEdldC1JdGVtICRMb2NrUGF0aCkuTGFzdFdyaXRlVGltZSkuVG90YWxTZWNv
bmRzDQogICAgICAgICAgICAgICAgaWYgKCRBZ2UgLWd0ICRTdGFsZUFmdGVyU2VjKSB7DQogICAg
ICAgICAgICAgICAgICAgIHRyeSB7IFJlbW92ZS1JdGVtICRMb2NrUGF0aCAtRm9yY2UgLUVycm9y
QWN0aW9uIFNpbGVudGx5Q29udGludWUgfSBjYXRjaCB7fQ0KICAgICAgICAgICAgICAgICAgICBj
b250aW51ZQ0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIFN0
YXJ0LVNsZWVwIC1NaWxsaXNlY29uZHMgNTANCiAgICAgICAgfQ0KICAgIH0NCn0NCg0KZnVuY3Rp
b24gUmVzb2x2ZS1TYWZlUGF0aCgkUmVsUGF0aCkgew0KICAgIHRyeSB7DQogICAgICAgICRGdWxs
ID0gW1N5c3RlbS5JTy5QYXRoXTo6R2V0RnVsbFBhdGgoKEpvaW4tUGF0aCAkUm9vdCAkUmVsUGF0
aCkpDQogICAgfSBjYXRjaCB7IHJldHVybiAkbnVsbCB9DQogICAgIyBQcmVmaXgtQ2hlY2sgaXN0
IG51ciBzaWNoZXIsIHdlbm4gJFJvb3QgbWl0IERpcmVjdG9yeS1TZXBhcmF0b3IgZW5kZXQg4oCU
DQogICAgIyBzb25zdCBwYXNzaWVydCAiQzpcVkkzX2V2aWwiIGRpZSBQcnVlZnVuZyBiZWkgJFJv
b3Q9IkM6XFZJMyIuDQogICAgJHNlcCA9IFtTeXN0ZW0uSU8uUGF0aF06OkRpcmVjdG9yeVNlcGFy
YXRvckNoYXINCiAgICAkcm9vdFdpdGhTZXAgPSBpZiAoJFJvb3QuRW5kc1dpdGgoJHNlcCkpIHsg
JFJvb3QgfSBlbHNlIHsgJFJvb3QgKyAkc2VwIH0NCiAgICBpZiAoJEZ1bGwgLW5lICRSb290IC1h
bmQgLW5vdCAkRnVsbC5TdGFydHNXaXRoKCRyb290V2l0aFNlcCwgW1N0cmluZ0NvbXBhcmlzb25d
OjpPcmRpbmFsSWdub3JlQ2FzZSkpIHsNCiAgICAgICAgcmV0dXJuICRudWxsDQogICAgfQ0KICAg
IHJldHVybiAkRnVsbA0KfQ0KDQojIC0tLSBIVFRQLUhlbGZlciAtLS0NCmZ1bmN0aW9uIEFkZC1T
ZWN1cml0eUhlYWRlcnMoJFJlc3BvbnNlKSB7DQogICAgIyBXaXJkIGZ1ZXIgYWxsZSBBbnR3b3J0
ZW4gZ2VzZXR6dCDigJQgc3BpZWdlbHQgc2VydmVyLnB5LVZlcmhhbHRlbi4NCiAgICAkUmVzcG9u
c2UuSGVhZGVycy5BZGQoJ0FjY2Vzcy1Db250cm9sLUFsbG93LU9yaWdpbicsICRzY3JpcHQ6Q29y
c09yaWdpbikNCiAgICAkUmVzcG9uc2UuSGVhZGVycy5BZGQoJ0FjY2Vzcy1Db250cm9sLUFsbG93
LU1ldGhvZHMnLCAnR0VULCBQT1NULCBQVVQsIERFTEVURSwgT1BUSU9OUycpDQogICAgJFJlc3Bv
bnNlLkhlYWRlcnMuQWRkKCdBY2Nlc3MtQ29udHJvbC1BbGxvdy1IZWFkZXJzJywgJ0NvbnRlbnQt
VHlwZScpDQogICAgJFJlc3BvbnNlLkhlYWRlcnMuQWRkKCdDYWNoZS1Db250cm9sJywgJ25vLXN0
b3JlJykNCiAgICAkUmVzcG9uc2UuSGVhZGVycy5BZGQoJ1gtQ29udGVudC1UeXBlLU9wdGlvbnMn
LCAnbm9zbmlmZicpDQogICAgJFJlc3BvbnNlLkhlYWRlcnMuQWRkKCdYLUZyYW1lLU9wdGlvbnMn
LCAnREVOWScpDQogICAgJFJlc3BvbnNlLkhlYWRlcnMuQWRkKCdSZWZlcnJlci1Qb2xpY3knLCAn
bm8tcmVmZXJyZXInKQ0KICAgICMgQ1NQIChTcHJpbnQgMSDigJQgU2ljaGVyaGVpdHMtTm90YnJl
bXNlIDIwMjYtMDUtMjgpOg0KICAgICMgVmFuaWxsYS1KUy1BcHAgb2huZSBleHRlcm5lIENETnMs
IGFsbGVzIG11c3Mgdm9uICdzZWxmJyBrb21tZW4uIElubGluZS0NCiAgICAjIFN0eWxlcyBzaW5k
IHRvbGVyaWVydCAoU2NoaWNodGNvZGUtRmFyYmVuLCBBdmF0YXItU3R5bGUtQXR0cmlidXRlIHdl
cmRlbg0KICAgICMgZHluYW1pc2NoIHZpYSBzdHlsZT0iLi4uIiBnZXNldHp0KS4gSW5saW5lLVNj
cmlwdHMgTklDSFQgZXJsYXVidCDigJQgd2lyDQogICAgIyBudXR6ZW4gYXVzc2NobGllc3NsaWNo
IDxzY3JpcHQgdHlwZT0ibW9kdWxlIiBzcmM9Ii4uLiI+LiBkYXRhOi1CaWxkZXINCiAgICAjIHNp
bmQgZXJsYXVidCAoQXZhdGFyZSBrb2VubmVuIGJhc2U2NCBzZWluKS4gd29ya2VyLXNyYyBkZWNr
dCBzeW5jLSB1bmQNCiAgICAjIGhlYXJ0YmVhdC1Xb3JrZXIgYWIuDQogICAgJFJlc3BvbnNlLkhl
YWRlcnMuQWRkKCdDb250ZW50LVNlY3VyaXR5LVBvbGljeScsDQogICAgICAgICJkZWZhdWx0LXNy
YyAnc2VsZic7ICIgKw0KICAgICAgICAic2NyaXB0LXNyYyAnc2VsZic7ICIgKw0KICAgICAgICAi
c3R5bGUtc3JjICdzZWxmJyAndW5zYWZlLWlubGluZSc7ICIgKw0KICAgICAgICAiaW1nLXNyYyAn
c2VsZicgZGF0YTo7ICIgKw0KICAgICAgICAiY29ubmVjdC1zcmMgJ3NlbGYnOyAiICsNCiAgICAg
ICAgIndvcmtlci1zcmMgJ3NlbGYnOyAiICsNCiAgICAgICAgImZyYW1lLWFuY2VzdG9ycyAnbm9u
ZSc7ICIgKw0KICAgICAgICAiYmFzZS11cmkgJ3NlbGYnOyAiICsNCiAgICAgICAgImZvcm0tYWN0
aW9uICdzZWxmJyIpDQp9DQoNCmZ1bmN0aW9uIFNlbmQtSnNvblRleHQoJFJlc3BvbnNlLCAkSnNv
blRleHQsICRTdGF0dXNDb2RlID0gMjAwKSB7DQogICAgaWYgKCRudWxsIC1lcSAkSnNvblRleHQp
IHsgJEpzb25UZXh0ID0gJ251bGwnIH0NCiAgICBpZiAoJEpzb25UZXh0Lkxlbmd0aCAtZ3QgMCAt
YW5kIFtpbnRdKCRKc29uVGV4dFswXSkgLWVxIDB4RkVGRikgeyAkSnNvblRleHQgPSAkSnNvblRl
eHQuU3Vic3RyaW5nKDEpIH0NCiAgICAkYnl0ZXMgPSBbU3lzdGVtLlRleHQuRW5jb2RpbmddOjpV
VEY4LkdldEJ5dGVzKCRKc29uVGV4dCkNCiAgICB0cnkgew0KICAgICAgICAkUmVzcG9uc2UuU3Rh
dHVzQ29kZSA9ICRTdGF0dXNDb2RlDQogICAgICAgICRSZXNwb25zZS5Db250ZW50VHlwZSA9ICdh
cHBsaWNhdGlvbi9qc29uOyBjaGFyc2V0PXV0Zi04Jw0KICAgICAgICBBZGQtU2VjdXJpdHlIZWFk
ZXJzICRSZXNwb25zZQ0KICAgICAgICAkUmVzcG9uc2UuQ29udGVudExlbmd0aDY0ID0gJGJ5dGVz
Lkxlbmd0aA0KICAgICAgICAkUmVzcG9uc2UuT3V0cHV0U3RyZWFtLldyaXRlKCRieXRlcywgMCwg
JGJ5dGVzLkxlbmd0aCkNCiAgICB9IGNhdGNoIHsNCiAgICAgICAgTG9nLUFwaSAoJ1NFTkQgRkVI
TEVSOiB7MH0nIC1mICRfLkV4Y2VwdGlvbi5NZXNzYWdlKQ0KICAgIH0gZmluYWxseSB7DQogICAg
ICAgIHRyeSB7ICRSZXNwb25zZS5PdXRwdXRTdHJlYW0uQ2xvc2UoKSB9IGNhdGNoIHt9DQogICAg
fQ0KfQ0KDQpmdW5jdGlvbiBTZW5kLUpzb25PYmplY3QoJFJlc3BvbnNlLCAkRGF0YSwgJFN0YXR1
c0NvZGUgPSAyMDApIHsNCiAgICBpZiAoJG51bGwgLWVxICREYXRhKSB7ICR0ZXh0ID0gJ251bGwn
IH0NCiAgICBlbHNlaWYgKCREYXRhIC1pcyBbc3RyaW5nXSkgeyAkdGV4dCA9ICREYXRhIH0NCiAg
ICBlbHNlIHsNCiAgICAgICAgdHJ5IHsgJHRleHQgPSAoQ29udmVydFRvLUpzb25TYWZlICREYXRh
KSB8IENvbnZlcnRUby1Kc29uIC1EZXB0aCAzMCAtQ29tcHJlc3MgfQ0KICAgICAgICBjYXRjaCB7
ICR0ZXh0ID0gJ3siZmVobGVyIjoiSlNPTi1Lb252ZXJ0aWVydW5nIGZlaGxnZXNjaGxhZ2VuIn0n
IH0NCiAgICB9DQogICAgU2VuZC1Kc29uVGV4dCAkUmVzcG9uc2UgJHRleHQgJFN0YXR1c0NvZGUN
Cn0NCg0KZnVuY3Rpb24gU2VuZC1FcnJvcigkUmVzcG9uc2UsICRNZXNzYWdlLCAkU3RhdHVzQ29k
ZSA9IDUwMCkgew0KICAgIFNlbmQtSnNvbk9iamVjdCAkUmVzcG9uc2UgQHsgZmVobGVyID0gJE1l
c3NhZ2UgfSAkU3RhdHVzQ29kZQ0KfQ0KDQpmdW5jdGlvbiBSZWFkLUJvZHkoJFJlcXVlc3QsICRN
YXhTaXplID0gMTBNQikgew0KICAgICRsZW5ndGggPSBbaW50XSRSZXF1ZXN0LkNvbnRlbnRMZW5n
dGg2NA0KICAgIGlmICgkbGVuZ3RoIC1sZSAwIC1vciAkbGVuZ3RoIC1ndCAkTWF4U2l6ZSkgeyBy
ZXR1cm4gJG51bGwgfQ0KICAgICRidWZmZXIgPSBOZXctT2JqZWN0IGJ5dGVbXSAkbGVuZ3RoDQog
ICAgJG9mZnNldCA9IDANCiAgICB3aGlsZSAoJG9mZnNldCAtbHQgJGxlbmd0aCkgew0KICAgICAg
ICAkcmVhZCA9ICRSZXF1ZXN0LklucHV0U3RyZWFtLlJlYWQoJGJ1ZmZlciwgJG9mZnNldCwgJGxl
bmd0aCAtICRvZmZzZXQpDQogICAgICAgIGlmICgkcmVhZCAtZXEgMCkgeyBicmVhayB9DQogICAg
ICAgICRvZmZzZXQgKz0gJHJlYWQNCiAgICB9DQogICAgcmV0dXJuIFtTeXN0ZW0uVGV4dC5FbmNv
ZGluZ106OlVURjguR2V0U3RyaW5nKCRidWZmZXIsIDAsICRvZmZzZXQpDQp9DQoNCiMgRS1NYWls
LVZlcnNhbmQ6IGF1c3NjaGxpZXNzbGljaCBGcm9udGVuZC1zZWl0aWcgdmlhIG1haWx0bzotUG9w
dXAgKE91dGxvb2sNCiMgb2VmZm5ldCBzaWNoIG1pdCB2b3JhdXNnZWZ1ZWxsdGVuIEZlbGRlcm4p
LiBLZWluIFNNVFAsIGtlaW4gU2NoZWR1bGVyLg0KIyBEZXIgU2VydmVyIHBlcnNpc3RpZXJ0IG51
ciBWb3JsYWdlbiArIFRyaWdnZXItS29uZmlnIGluIGFkbWluLmpzb24gdW50ZXINCiMgZW1haWxW
b3JsYWdlbiAvIGVtYWlsVHJpZ2dlci4NCiMgLS0tIExvZ2J1Y2ggLS0tDQpmdW5jdGlvbiBXcml0
ZS1Mb2dFaW50cmFnKCRBa3Rpb24sICREZXRhaWxzKSB7DQogICAgJGxvZ2J1Y2ggPSBSZWFkLUpz
b25PYmplY3QgJ2xvZ2J1Y2guanNvbicNCiAgICBpZiAoJG51bGwgLWVxICRsb2didWNoKSB7ICRs
b2didWNoID0gQCgpIH0NCiAgICAjIERldGFpbC1GZWxkZXIgd2VyZGVuIEZMQUNIIGluIGRlbiBF
aW50cmFnIHVlYmVybm9tbWVuIChrb25zaXN0ZW50IG1pdA0KICAgICMgUHl0aG9uLURldi1TZXJ2
ZXIpLiBGcnVlaGVyIGFscyAkZWludHJhZy5kZXRhaWxzID0gJERldGFpbHMgZ2VuZXN0ZWQsDQog
ICAgIyBhYmVyIGRlciBDbGllbnQgZ3JlaWZ0IGRpcmVrdCBhdWYgZS5hbHRlcldlcnQgLyBlLnBl
cnNvbklkIHp1Lg0KICAgICRlaW50cmFnID0gW29yZGVyZWRdQHsNCiAgICAgICAgemVpdHN0ZW1w
ZWwgPSAoR2V0LURhdGUgLUZvcm1hdCAneXl5eS1NTS1kZCBISDptbTpzcycpDQogICAgICAgIGJl
bnV0emVyICAgID0gIiREb21haW5cJFVzZXJuYW1lIg0KICAgICAgICBha3Rpb24gICAgICA9ICRB
a3Rpb24NCiAgICB9DQogICAgaWYgKCREZXRhaWxzKSB7DQogICAgICAgIGlmICgkRGV0YWlscyAt
aXMgW1N5c3RlbS5Db2xsZWN0aW9ucy5JRGljdGlvbmFyeV0pIHsNCiAgICAgICAgICAgIGZvcmVh
Y2ggKCRrIGluICREZXRhaWxzLktleXMpIHsgJGVpbnRyYWdbW3N0cmluZ10ka10gPSAkRGV0YWls
c1ska10gfQ0KICAgICAgICB9IGVsc2VpZiAoJERldGFpbHMuUFNPYmplY3QpIHsNCiAgICAgICAg
ICAgIGZvcmVhY2ggKCRwIGluICREZXRhaWxzLlBTT2JqZWN0LlByb3BlcnRpZXMpIHsgJGVpbnRy
YWdbJHAuTmFtZV0gPSAkcC5WYWx1ZSB9DQogICAgICAgIH0NCiAgICB9DQogICAgJG5ldSA9IEAo
JGVpbnRyYWcpICsgQCgkbG9nYnVjaCkNCiAgICBpZiAoJG5ldS5Db3VudCAtZ3QgMTAwMCkgeyAk
bmV1ID0gJG5ldVswLi45OTldIH0NCiAgICBXcml0ZS1Kc29uT2JqZWN0ICdsb2didWNoLmpzb24n
ICRuZXUgfCBPdXQtTnVsbA0KfQ0KDQpmdW5jdGlvbiBHZXQtQWt0dWVsbGVyQmVudXR6ZXIgeyBy
ZXR1cm4gIiREb21haW5cJFVzZXJuYW1lIiB9DQoNCmZ1bmN0aW9uIFRlc3QtTWF0Y2hLZW5udW5n
KCRFaW50cmFnKSB7DQogICAgaWYgKFtzdHJpbmddOjpJc051bGxPckVtcHR5KCRFaW50cmFnKSkg
eyByZXR1cm4gJGZhbHNlIH0NCiAgICAkayA9ICRFaW50cmFnLlRvTG93ZXIoKQ0KICAgIHJldHVy
biAoJGsgLWVxICRVc2VybmFtZS5Ub0xvd2VyKCkpIC1vciAoJGsgLWVxIChHZXQtQWt0dWVsbGVy
QmVudXR6ZXIpLlRvTG93ZXIoKSkNCn0NCg0KIyBOb3RmYWxsLVN1cGVyVXNlcjogZGllc2UgS2Vu
bnVuZ2VuIHNpbmQgSU1NRVIgU3VwZXJVc2VyLCBlZ2FsIHdhcyBpbg0KIyBhZG1pbi5qc29uIHN0
ZWh0LiBTY2h1ZXR6dCBkYXZvciwgc2ljaCBzZWxic3QgdmVyc2VoZW50bGljaCBhdXMgZGVyDQoj
IFN1cGVyVXNlci1MaXN0ZSByYXVzenVuZWhtZW4gKG9kZXIgZHVyY2gga2FwdXR0ZSBhZG1pbi5q
c29uIGF1c3p1c3BlcnJlbikuDQokc2NyaXB0Ok5vdGZhbGxTdXBlclVzZXIgPSBAKCdOVzA1MzYw
OScsICdyaGlubycpDQoNCmZ1bmN0aW9uIFRlc3QtSXN0U3VwZXJVc2VyIHsNCiAgICAjIE5vdGZh
bGwtQ2hlY2sgenVlcnN0OiBoYXJ0dmVyZHJhaHRldGUgS2VubnVuZ2VuIHNpbmQgaW1tZXIgU3Vw
ZXJVc2VyDQogICAgJHVzZXJMb3dlciA9ICRVc2VybmFtZS5Ub0xvd2VyKCkNCiAgICBmb3JlYWNo
ICgkayBpbiAkc2NyaXB0Ok5vdGZhbGxTdXBlclVzZXIpIHsNCiAgICAgICAgaWYgKCRrLlRvTG93
ZXIoKSAtZXEgJHVzZXJMb3dlcikgeyByZXR1cm4gJHRydWUgfQ0KICAgIH0NCiAgICAjIFJlZ3Vs
YWVyZSBQcnVlZnVuZyB2aWEgYWRtaW4uanNvbg0KICAgICRhZG1pbiA9IFJlYWQtSnNvbk9iamVj
dCAnYWRtaW4uanNvbicNCiAgICBpZiAoJG51bGwgLWVxICRhZG1pbiAtb3IgJG51bGwgLWVxICRh
ZG1pbi5zdXBlclVzZXIpIHsgcmV0dXJuICRmYWxzZSB9DQogICAgZm9yZWFjaCAoJHN1IGluIEAo
JGFkbWluLnN1cGVyVXNlcikpIHsNCiAgICAgICAgaWYgKFRlc3QtTWF0Y2hLZW5udW5nIChbc3Ry
aW5nXSRzdS5ud0tlbm51bmcpKSB7IHJldHVybiAkdHJ1ZSB9DQogICAgfQ0KICAgIHJldHVybiAk
ZmFsc2UNCn0NCg0KZnVuY3Rpb24gR2V0LUZhY2hhdWZzaWNodEVpbnRyYWcgew0KICAgICRhZG1p
biA9IFJlYWQtSnNvbk9iamVjdCAnYWRtaW4uanNvbicNCiAgICBpZiAoJG51bGwgLWVxICRhZG1p
biAtb3IgJG51bGwgLWVxICRhZG1pbi5mYWNoYXVmc2ljaHQpIHsgcmV0dXJuICRudWxsIH0NCiAg
ICBmb3JlYWNoICgkZmEgaW4gQCgkYWRtaW4uZmFjaGF1ZnNpY2h0KSkgew0KICAgICAgICBpZiAo
VGVzdC1NYXRjaEtlbm51bmcgKFtzdHJpbmddJGZhLm53S2VubnVuZykpIHsgcmV0dXJuICRmYSB9
DQogICAgfQ0KICAgIHJldHVybiAkbnVsbA0KfQ0KDQojIERpcmVrdGlvbnNsZWl0dW5nICsgRnVl
aHJ1bmdzc3RlbGxlIChzZWl0IDIwMjYtMDUtMjMpIOKAlCBnbGVpY2hlcyBTY2hlbWENCiMgd2ll
IEZhY2hhdWZzaWNodC4gR2VuZXJpc2NoZXIgSGVscGVyLCB3ZWlsIGRhcyBMb29rdXAtTXVzdGVy
IGlkZW50aXNjaA0KIyBpc3QgdW5kIG51ciBkZXIgTGlzdGVuLU5hbWUgd2VjaHNlbHQuDQpmdW5j
dGlvbiBHZXQtUm9sbGVuRWludHJhZyhbc3RyaW5nXSRMaXN0ZW5OYW1lKSB7DQogICAgJGFkbWlu
ID0gUmVhZC1Kc29uT2JqZWN0ICdhZG1pbi5qc29uJw0KICAgIGlmICgkbnVsbCAtZXEgJGFkbWlu
IC1vciAtbm90ICRhZG1pbi5QU09iamVjdC5Qcm9wZXJ0aWVzWyRMaXN0ZW5OYW1lXSkgeyByZXR1
cm4gJG51bGwgfQ0KICAgICRsaXN0ZSA9ICRhZG1pbi4kTGlzdGVuTmFtZQ0KICAgIGlmICgkbnVs
bCAtZXEgJGxpc3RlKSB7IHJldHVybiAkbnVsbCB9DQogICAgZm9yZWFjaCAoJGUgaW4gQCgkbGlz
dGUpKSB7DQogICAgICAgIGlmIChUZXN0LU1hdGNoS2VubnVuZyAoW3N0cmluZ10kZS5ud0tlbm51
bmcpKSB7IHJldHVybiAkZSB9DQogICAgfQ0KICAgIHJldHVybiAkbnVsbA0KfQ0KDQpmdW5jdGlv
biBHZXQtTWVpbmVQZXJzb24gew0KICAgICRwbGFudW5nID0gUmVhZC1Kc29uT2JqZWN0ICdwbGFu
dW5nLmpzb24nDQogICAgaWYgKCRudWxsIC1lcSAkcGxhbnVuZyAtb3IgJG51bGwgLWVxICRwbGFu
dW5nLnBlcnNvbmVuKSB7IHJldHVybiAkbnVsbCB9DQogICAgZm9yZWFjaCAoJHAgaW4gQCgkcGxh
bnVuZy5wZXJzb25lbikpIHsNCiAgICAgICAgaWYgKFRlc3QtTWF0Y2hLZW5udW5nIChbc3RyaW5n
XSRwLm53S2VubnVuZykpIHsgcmV0dXJuICRwIH0NCiAgICB9DQogICAgcmV0dXJuICRudWxsDQp9
DQoNCiMgTXRpbWUtYmFzaWVydGVyIENhY2hlIGZ1ZXIgR2V0LVJlY2h0ZS4gRGVyIHplbnRyYWxl
IFJlY2h0ZS1SZXNvbHZlciB3aXJkDQojIHBybyAvYXBpL2luZm8tUmVxdWVzdCBtZWhyZmFjaCBh
dWZnZXJ1ZmVuIHVuZCBsaWVzdCBkYWJlaSBhZG1pbi5qc29uICsNCiMgcGxhbnVuZy5qc29uLiBT
b2xhbmdlIGJlaWRlIERhdGVpZW4gbmljaHQgYWVuZGVydGVuLCBrb21tdCBkYXMgZ2xlaWNoZQ0K
IyBFcmdlYm5pcyB6dXJ1ZWNrIOKAlCBkZXIgQ2FjaGUgaW52YWxpZGllcnQgYXV0b21hdGlzY2gg
dWViZXIgTGFzdFdyaXRlVGltZVV0Yy4NCiRzY3JpcHQ6UmVjaHRlQ2FjaGUgPSBAeyBXZXJ0ID0g
JG51bGw7IEFkbWluTXQgPSAwOyBQbGFudW5nTXQgPSAwIH0NCg0KZnVuY3Rpb24gR2V0LVJlY2h0
ZSB7DQogICAgIyBaZW50cmFsZXIgUm9sbGVuLSB1bmQgUmVjaHRlLVJlc29sdmVyIChQZW5kYW50
IHp1IHNlcnZlci5weSBiZXJlY2huZV9yZWNodGUoKSkuDQogICAgIyBMaWVmZXJ0IEhhc2h0YWJs
ZSBtaXQgcm9sbGUsIGlzdFN1cGVyVXNlciwgaXN0RmFjaGF1ZnNpY2h0LCBzZWhlbnsuLi59LA0K
ICAgICMgZWRpdGllcmVuey4uLn0gKG51bGwgPSB3aWxkY2FyZCBmdWVyIFN1cGVyVXNlciksIG1l
aW5lUGVyc29uSWQuDQoNCiAgICAjIENhY2hlLVZhbGlkaWVydW5nIHVlYmVyIG10aW1lIGRlciBi
ZWlkZW4gUXVlbGwtRGF0ZWllbi4NCiAgICAkYU10ID0gMDsgJHBNdCA9IDANCiAgICB0cnkgew0K
ICAgICAgICAkYUZpbGUgPSBKb2luLVBhdGggJERhdGFEaXIgJ2FkbWluLmpzb24nDQogICAgICAg
IGlmIChUZXN0LVBhdGggLUxpdGVyYWxQYXRoICRhRmlsZSkgeyAkYU10ID0gKEdldC1JdGVtIC1M
aXRlcmFsUGF0aCAkYUZpbGUpLkxhc3RXcml0ZVRpbWVVdGMuVGlja3MgfQ0KICAgICAgICAkcEZp
bGUgPSBKb2luLVBhdGggJERhdGFEaXIgJ3BsYW51bmcuanNvbicNCiAgICAgICAgaWYgKFRlc3Qt
UGF0aCAtTGl0ZXJhbFBhdGggJHBGaWxlKSB7ICRwTXQgPSAoR2V0LUl0ZW0gLUxpdGVyYWxQYXRo
ICRwRmlsZSkuTGFzdFdyaXRlVGltZVV0Yy5UaWNrcyB9DQogICAgfSBjYXRjaCB7fQ0KICAgIGlm
ICgkc2NyaXB0OlJlY2h0ZUNhY2hlLldlcnQgLW5lICRudWxsIC1hbmQNCiAgICAgICAgJHNjcmlw
dDpSZWNodGVDYWNoZS5BZG1pbk10IC1lcSAkYU10IC1hbmQNCiAgICAgICAgJHNjcmlwdDpSZWNo
dGVDYWNoZS5QbGFudW5nTXQgLWVxICRwTXQpIHsNCiAgICAgICAgcmV0dXJuICRzY3JpcHQ6UmVj
aHRlQ2FjaGUuV2VydA0KICAgIH0NCg0KICAgICRpc3RTVSA9IFRlc3QtSXN0U3VwZXJVc2VyDQog
ICAgIyBSb2xsZW4tTG9va3VwOiBSZWloZW5mb2xnZSBiZXN0aW1tdCBWb3JyYW5nIGJlaSBLb25m
bGlrdGVuLiBmYWNoYXVmc2ljaHQNCiAgICAjIHp1ZXJzdCAod2FyIGhpc3RvcmlzY2ggZXJzdGUg
Um9sbGUpLCBkYW5uIGRpZSBuZXVlbiAiRGlyZWt0aW9uc2xlaXR1bmciDQogICAgIyB1bmQgIkZ1
ZWhydW5nc3N0ZWxsZSIgKDIwMjYtMDUtMjMpLiBEZXIgImlzdEZBIi1QZmFkIHdpcmQgZnVlciBh
bGxlIGRyZWkNCiAgICAjIHdlaXRlcnZlcndlbmRldCDigJQgUm9sbGUgaW4gZGVyIEFQSSBpc3Qg
dW50ZXJzY2hpZWRsaWNoLCBMb2dpayBpbiBkZXINCiAgICAjIFNpY2h0YmFya2VpdHMtL0VkaXQt
QXVzd2VydHVuZyBpc3QgaWRlbnRpc2NoLg0KICAgICRmYSA9ICRudWxsDQogICAgJHJvbGxlUXVl
bGxlID0gJG51bGwNCiAgICBpZiAoLW5vdCAkaXN0U1UpIHsNCiAgICAgICAgJGZhID0gR2V0LUZh
Y2hhdWZzaWNodEVpbnRyYWcNCiAgICAgICAgaWYgKCRudWxsIC1uZSAkZmEpIHsgJHJvbGxlUXVl
bGxlID0gJ2ZhY2hhdWZzaWNodCcgfQ0KICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICRmYSA9
IEdldC1Sb2xsZW5FaW50cmFnICdkaXJla3Rpb25zbGVpdHVuZycNCiAgICAgICAgICAgIGlmICgk
bnVsbCAtbmUgJGZhKSB7ICRyb2xsZVF1ZWxsZSA9ICdkaXJla3Rpb25zbGVpdHVuZycgfQ0KICAg
ICAgICAgICAgZWxzZSB7DQogICAgICAgICAgICAgICAgJGZhID0gR2V0LVJvbGxlbkVpbnRyYWcg
J2Z1ZWhydW5nc3N0ZWxsZScNCiAgICAgICAgICAgICAgICBpZiAoJG51bGwgLW5lICRmYSkgeyAk
cm9sbGVRdWVsbGUgPSAnZnVlaHJ1bmdzc3RlbGxlJyB9DQogICAgICAgICAgICB9DQogICAgICAg
IH0NCiAgICB9DQogICAgJGlzdEZBID0gJG51bGwgLW5lICRmYQ0KDQogICAgJHNlaGVuID0gQHsg
YWRtaW5pc3RyYXRpb24gPSAkZmFsc2U7IHN0YXRpc3RpayA9ICRmYWxzZTsgbG9nYnVjaCA9ICRm
YWxzZTsgYmFja3VwcyA9ICRmYWxzZSB9DQogICAgaWYgKCRpc3RTVSkgew0KICAgICAgICBmb3Jl
YWNoICgkayBpbiBAKCRzZWhlbi5LZXlzKSkgeyAkc2VoZW5bJGtdID0gJHRydWUgfQ0KICAgIH0g
ZWxzZWlmICgkaXN0RkEgLWFuZCAkZmEuUFNPYmplY3QuUHJvcGVydGllc1snc2VoZW4nXSkgew0K
ICAgICAgICBmb3JlYWNoICgkayBpbiBAKCdhZG1pbmlzdHJhdGlvbicsJ3N0YXRpc3RpaycsJ2xv
Z2J1Y2gnLCdiYWNrdXBzJykpIHsNCiAgICAgICAgICAgIGlmICgkZmEuc2VoZW4uUFNPYmplY3Qu
UHJvcGVydGllc1ska10pIHsgJHNlaGVuWyRrXSA9IFtib29sXSRmYS5zZWhlbi4kayB9DQogICAg
ICAgIH0NCiAgICB9DQoNCiAgICAjIE1laW5lLVBlcnNvbiBlaW5tYWwgbGVzZW4g4oCUIHdpcmQg
c293b2hsIGZ1ZXIgZWRpdFJlY2h0ZS1GYWxsYmFjayBhbHMNCiAgICAjIGF1Y2ggZnVlciBtZWlu
ZUlkICsgcGVyLVBlcnNvbi1zZWhlbi1PdmVycmlkZXMgZ2VicmF1Y2h0Lg0KICAgICRtcCA9IEdl
dC1NZWluZVBlcnNvbg0KDQogICAgJGVkaXRpZXJlbiA9ICRudWxsDQogICAgaWYgKC1ub3QgJGlz
dFNVKSB7DQogICAgICAgICRxdWVsbGUgPSAkbnVsbA0KICAgICAgICBpZiAoJGlzdEZBIC1hbmQg
JGZhLlBTT2JqZWN0LlByb3BlcnRpZXNbJ2VkaXRpZXJlbiddKSB7ICRxdWVsbGUgPSAkZmEuZWRp
dGllcmVuIH0NCiAgICAgICAgZWxzZWlmICgkbXAgLWFuZCAkbXAuUFNPYmplY3QuUHJvcGVydGll
c1snZWRpdFJlY2h0ZSddKSB7ICRxdWVsbGUgPSAkbXAuZWRpdFJlY2h0ZSB9DQogICAgICAgICMg
U3Ryb25nLXR5cGVkIEFycmF5cyBlcnp3aW5nZW46IFBvd2VyU2hlbGwgNS4xIHVud3JhcHMgc2lu
Z2xlLUVsZW1lbnQtDQogICAgICAgICMgUGlwZWxpbmVzIHp1IGVpbmVtIFNrYWxhciAoRm9yRWFj
aC1PYmplY3QgeyBbaW50XSRfIH0gbGllZmVydCBiZWkgZWluZXINCiAgICAgICAgIyBMaXN0ZSBt
aXQgMSBFaW50cmFnIGVpbmUgWmFobCBzdGF0dCBBcnJheSkuIENvbnZlcnRUby1Kc29uIHd1ZXJk
ZSBkYW5uDQogICAgICAgICMgInBlcnNvbmVuSWRzIjogNSBzdGF0dCBbNV0gc2NocmVpYmVuIOKA
lCBDbGllbnQtc2lkZSAuaW5kZXhPZigpIHNjaGxhZWd0DQogICAgICAgICMgZmVobCB1bmQgZGll
IFBsYW51bmdzLUFuc2ljaHQgYmxlaWJ0IGxlZXIgKENoZXJyeS1QaWNrIDFhZWZlMjYgQnVnICMx
KS4NCiAgICAgICAgJGVkaXRpZXJlbiA9IEB7IHBlcnNvbmVuSWRzID0gQCgpOyBkaWVuc3RncnVw
cGVuID0gQCgpOyBzdGFuZG9ydGUgPSBAKCkgfQ0KICAgICAgICBpZiAoJHF1ZWxsZSkgew0KICAg
ICAgICAgICAgaWYgKCRxdWVsbGUuUFNPYmplY3QuUHJvcGVydGllc1sncGVyc29uZW5JZHMnXSkg
IHsgJGVkaXRpZXJlbi5wZXJzb25lbklkcyAgID0gW2ludFtdXSAgIEAoJHF1ZWxsZS5wZXJzb25l
bklkcyAgIHwgRm9yRWFjaC1PYmplY3QgeyBbaW50XSRfIH0pIH0NCiAgICAgICAgICAgIGlmICgk
cXVlbGxlLlBTT2JqZWN0LlByb3BlcnRpZXNbJ2RpZW5zdGdydXBwZW4nXSkgeyAkZWRpdGllcmVu
LmRpZW5zdGdydXBwZW4gPSBbc3RyaW5nW11dQCgkcXVlbGxlLmRpZW5zdGdydXBwZW4gfCBGb3JF
YWNoLU9iamVjdCB7IFtzdHJpbmddJF8gfSkgfQ0KICAgICAgICAgICAgaWYgKCRxdWVsbGUuUFNP
YmplY3QuUHJvcGVydGllc1snc3RhbmRvcnRlJ10pICAgICB7ICRlZGl0aWVyZW4uc3RhbmRvcnRl
ICAgICA9IFtzdHJpbmdbXV1AKCRxdWVsbGUuc3RhbmRvcnRlICAgICB8IEZvckVhY2gtT2JqZWN0
IHsgW3N0cmluZ10kXyB9KSB9DQogICAgICAgIH0NCiAgICAgICAgIyBTdGFuZGFyZHJlY2h0ZSAo
Z2VnZW5zZWl0aWdlIFBsYW51bmcgamUgRGllbnN0Z3J1cHBlL1N0YW5kb3J0KSBhZGRpdGl2DQog
ICAgICAgICMgaW4gZWRpdGllcmVuIGVpbndlYmVuIOKAlCBncmVpZnQgZGFubiBpbiBkYXJmX3pl
bGxlX2VkaXRpZXJlbiB1bmQgaW0gQ2xpZW50Lg0KICAgICAgICB0cnkgew0KICAgICAgICAgICAg
JHNyID0gJG51bGwNCiAgICAgICAgICAgICRhZG0yID0gUmVhZC1Kc29uT2JqZWN0ICdhZG1pbi5q
c29uJw0KICAgICAgICAgICAgaWYgKCRhZG0yIC1hbmQgJGFkbTIuUFNPYmplY3QuUHJvcGVydGll
c1snc3RhbmRhcmRSZWNodGUnXSkgeyAkc3IgPSAkYWRtMi5zdGFuZGFyZFJlY2h0ZSB9DQogICAg
ICAgICAgICBpZiAoJHNyIC1hbmQgJG1wKSB7DQogICAgICAgICAgICAgICAgJG1nID0gaWYgKCRt
cC5QU09iamVjdC5Qcm9wZXJ0aWVzWydncnVwcGUnXSkgeyBbc3RyaW5nXSRtcC5ncnVwcGUgfSBl
bHNlIHsgJycgfQ0KICAgICAgICAgICAgICAgICRtbyA9IGlmICgkbXAuUFNPYmplY3QuUHJvcGVy
dGllc1snb2UnXSkgICAgIHsgW3N0cmluZ10kbXAub2UgfSAgICAgZWxzZSB7ICcnIH0NCiAgICAg
ICAgICAgICAgICAkZ2cgPSBAKCk7IGlmICgkc3IuUFNPYmplY3QuUHJvcGVydGllc1snZ2VnZW5z
ZWl0aWdHcnVwcGVuJ10pICAgeyAkZ2cgPSBAKCRzci5nZWdlbnNlaXRpZ0dydXBwZW4gICB8IEZv
ckVhY2gtT2JqZWN0IHsgW3N0cmluZ10kXyB9KSB9DQogICAgICAgICAgICAgICAgJGdzID0gQCgp
OyBpZiAoJHNyLlBTT2JqZWN0LlByb3BlcnRpZXNbJ2dlZ2Vuc2VpdGlnU3RhbmRvcnRlJ10pIHsg
JGdzID0gQCgkc3IuZ2VnZW5zZWl0aWdTdGFuZG9ydGUgfCBGb3JFYWNoLU9iamVjdCB7IFtzdHJp
bmddJF8gfSkgfQ0KICAgICAgICAgICAgICAgIGlmICgkbWcgLWFuZCAoJGdnIC1jb250YWlucyAk
bWcpIC1hbmQgLW5vdCAoJGVkaXRpZXJlbi5kaWVuc3RncnVwcGVuIC1jb250YWlucyAkbWcpKSB7
DQogICAgICAgICAgICAgICAgICAgICRlZGl0aWVyZW4uZGllbnN0Z3J1cHBlbiA9IFtzdHJpbmdb
XV1AKCRlZGl0aWVyZW4uZGllbnN0Z3J1cHBlbiArICRtZykNCiAgICAgICAgICAgICAgICB9DQog
ICAgICAgICAgICAgICAgaWYgKCRtbyAtYW5kICgkZ3MgLWNvbnRhaW5zICRtbykgLWFuZCAtbm90
ICgkZWRpdGllcmVuLnN0YW5kb3J0ZSAtY29udGFpbnMgJG1vKSkgew0KICAgICAgICAgICAgICAg
ICAgICAkZWRpdGllcmVuLnN0YW5kb3J0ZSA9IFtzdHJpbmdbXV1AKCRlZGl0aWVyZW4uc3RhbmRv
cnRlICsgJG1vKQ0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0NCiAgICAgICAgfSBj
YXRjaCB7fQ0KICAgIH0NCg0KICAgICRtZWluZUlkID0gJG51bGwNCiAgICBpZiAoJG1wKSB7ICRt
ZWluZUlkID0gJG1wLmlkIH0NCg0KICAgICMgR2VzYW10dmVyYW50d29ydGxpY2hrZWl0OiBGbGFn
IGFuIGRlciBGYWNoYXVmc2ljaHQgb2RlciBTdXBlclVzZXItQm9udXMNCiAgICAjIChTVSBkYXJm
IHBlciBEZWZpbml0aW9uIGFsbGVzLCBiZWtvbW10IGFsc28gYXVjaCBkZW4gQmVzZXR6dW5nc2tv
bnRyb2xsLVRhYikuDQogICAgJGlzdEdlc2FtdCA9ICRmYWxzZQ0KICAgIGlmICgkaXN0U1UpIHsg
JGlzdEdlc2FtdCA9ICR0cnVlIH0NCiAgICBlbHNlaWYgKCRpc3RGQSAtYW5kICRmYS5QU09iamVj
dC5Qcm9wZXJ0aWVzWydnZXNhbXR2ZXJhbnR3b3J0bGljaCddKSB7DQogICAgICAgICRpc3RHZXNh
bXQgPSBbYm9vbF0kZmEuZ2VzYW10dmVyYW50d29ydGxpY2gNCiAgICB9DQoNCiAgICAjIEdyYW51
bGFyZSBTdWItU2ljaHRiYXJrZWl0IChGaW5kaW5nIEMuOSAvIFNwZWMgRi4yKToNCiAgICAjIFBy
byBGYWNoYXVmc2ljaHQgb3B0aW9uYWwgZmEuYWRtaW5TaWNodGJhcmtlaXR7PHN1YnRhYj46IGJv
b2x9IHVuZA0KICAgICMgZmEuc3RhdGlzdGlrU2ljaHRiYXJrZWl0ezxiZXJlaWNoPjogYm9vbH0u
IFdlbm4gbmljaHQgZ2VzZXR6dCAtPiBmYWxsYmFjaw0KICAgICMgYXVmIGRhcyB1ZWJlcmdlb3Jk
bmV0ZSBzZWhlbi5hZG1pbmlzdHJhdGlvbiAvIHNlaGVuLnN0YXRpc3RpayAoYWxsZXMgb2Rlcg0K
ICAgICMgbmljaHRzKS4gU3VwZXJVc2VyIHNpZWh0IGltbWVyIGFsbGVzICgkbnVsbCA9IFdpbGRj
YXJkKS4NCiAgICAkYWRtaW5TdWJ0YWJzID0gJG51bGwNCiAgICAkc3RhdEJlcmVpY2hlID0gJG51
bGwNCiAgICBpZiAoLW5vdCAkaXN0U1UpIHsNCiAgICAgICAgaWYgKCRpc3RGQSAtYW5kICRzZWhl
bi5hZG1pbmlzdHJhdGlvbiAtYW5kICRmYS5QU09iamVjdC5Qcm9wZXJ0aWVzWydhZG1pblNpY2h0
YmFya2VpdCddIC1hbmQgJGZhLmFkbWluU2ljaHRiYXJrZWl0KSB7DQogICAgICAgICAgICAkYWRt
aW5TdWJ0YWJzID0gQHt9DQogICAgICAgICAgICBmb3JlYWNoICgkcHJvcCBpbiAkZmEuYWRtaW5T
aWNodGJhcmtlaXQuUFNPYmplY3QuUHJvcGVydGllcykgeyAkYWRtaW5TdWJ0YWJzWyRwcm9wLk5h
bWVdID0gW2Jvb2xdJHByb3AuVmFsdWUgfQ0KICAgICAgICB9IGVsc2VpZiAoLW5vdCAoJGlzdEZB
IC1hbmQgJHNlaGVuLmFkbWluaXN0cmF0aW9uKSkgew0KICAgICAgICAgICAgJGFkbWluU3VidGFi
cyA9IEB7fSAgIyBsZWVyID0gbmljaHRzIGVybGF1YnQNCiAgICAgICAgfQ0KICAgICAgICBpZiAo
JGlzdEZBIC1hbmQgJHNlaGVuLnN0YXRpc3RpayAtYW5kICRmYS5QU09iamVjdC5Qcm9wZXJ0aWVz
WydzdGF0aXN0aWtTaWNodGJhcmtlaXQnXSAtYW5kICRmYS5zdGF0aXN0aWtTaWNodGJhcmtlaXQp
IHsNCiAgICAgICAgICAgICRzdGF0QmVyZWljaGUgPSBAe30NCiAgICAgICAgICAgIGZvcmVhY2gg
KCRwcm9wIGluICRmYS5zdGF0aXN0aWtTaWNodGJhcmtlaXQuUFNPYmplY3QuUHJvcGVydGllcykg
eyAkc3RhdEJlcmVpY2hlWyRwcm9wLk5hbWVdID0gW2Jvb2xdJHByb3AuVmFsdWUgfQ0KICAgICAg
ICB9IGVsc2VpZiAoLW5vdCAoJGlzdEZBIC1hbmQgJHNlaGVuLnN0YXRpc3RpaykpIHsNCiAgICAg
ICAgICAgICRzdGF0QmVyZWljaGUgPSBAe30NCiAgICAgICAgfQ0KICAgIH0NCg0KICAgICMgUGVy
LVBlcnNvbi1TaWNodGJhcmtlaXRzLU92ZXJyaWRlIChTY2hlbWEgYmxlaWJ0IGFrdGl2IHVuYWJo
YWVuZ2lnIHZvbQ0KICAgICMgZmVhdHVyZXMucGVyUGVyc29uU2ljaHRiYXJrZWl0LVRvZ2dsZSDi
gJQgZGVyIHNjaGFsdGV0IG51ciBkaWUgVUkgaW0NCiAgICAjIFBlcnNvbi1Nb2RhbCBmcmVpLiBX
ZW5uIGRpZSBQZXJzb24gZWluIGBzZWhlbntsb2didWNoLHN0YXRpc3Rpa31gIFByb3BlcnR5DQog
ICAgIyBtaXQgYm9vbC1XZXJ0IGhhdCAobmljaHQgJG51bGwpLCB1ZWJlcnNjaHJlaWJ0IGRhcyBk
ZW4gUm9sbGVuLURlZmF1bHQuDQogICAgaWYgKCRtcCAtYW5kICRtcC5QU09iamVjdC5Qcm9wZXJ0
aWVzWydzZWhlbiddIC1hbmQgJG1wLnNlaGVuKSB7DQogICAgICAgIGZvcmVhY2ggKCRrIGluIEAo
J2xvZ2J1Y2gnLCdzdGF0aXN0aWsnKSkgew0KICAgICAgICAgICAgaWYgKCRtcC5zZWhlbi5QU09i
amVjdC5Qcm9wZXJ0aWVzWyRrXSkgew0KICAgICAgICAgICAgICAgICR2YWwgPSAkbXAuc2VoZW4u
JGsNCiAgICAgICAgICAgICAgICBpZiAoJG51bGwgLW5lICR2YWwpIHsgJHNlaGVuWyRrXSA9IFti
b29sXSR2YWwgfQ0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQogICAgfQ0KDQogICAgJHJvbGxl
ID0gaWYgKCRpc3RTVSkgeyAnc3VwZXJ1c2VyJyB9IGVsc2VpZiAoJGlzdEZBKSB7ICRyb2xsZVF1
ZWxsZSB9IGVsc2UgeyAncmVndWxhZXInIH0NCiAgICAkZXJnZWJuaXMgPSBAew0KICAgICAgICBy
b2xsZSAgICAgICAgICAgICAgICAgID0gJHJvbGxlDQogICAgICAgIGlzdFN1cGVyVXNlciAgICAg
ICAgICAgPSAkaXN0U1UNCiAgICAgICAgaXN0RmFjaGF1ZnNpY2h0ICAgICAgICA9ICRpc3RGQQ0K
ICAgICAgICBpc3RHZXNhbXR2ZXJhbnR3b3J0bGljaCA9ICRpc3RHZXNhbXQNCiAgICAgICAgc2Vo
ZW4gICAgICAgICAgICAgICAgICA9ICRzZWhlbg0KICAgICAgICBhZG1pblN1YnRhYnMgICAgICAg
ICAgID0gJGFkbWluU3VidGFicw0KICAgICAgICBzdGF0aXN0aWtCZXJlaWNoZSAgICAgID0gJHN0
YXRCZXJlaWNoZQ0KICAgICAgICBlZGl0aWVyZW4gICAgICAgICAgICAgID0gJGVkaXRpZXJlbg0K
ICAgICAgICBtZWluZVBlcnNvbklkICAgICAgICAgID0gJG1laW5lSWQNCiAgICB9DQogICAgJHNj
cmlwdDpSZWNodGVDYWNoZS5XZXJ0ICAgICAgPSAkZXJnZWJuaXMNCiAgICAkc2NyaXB0OlJlY2h0
ZUNhY2hlLkFkbWluTXQgICA9ICRhTXQNCiAgICAkc2NyaXB0OlJlY2h0ZUNhY2hlLlBsYW51bmdN
dCA9ICRwTXQNCiAgICByZXR1cm4gJGVyZ2VibmlzDQp9DQoNCmZ1bmN0aW9uIFRlc3QtRGFyZkJl
cmVpY2goW3N0cmluZ10kQmVyZWljaCkgew0KICAgICRyID0gR2V0LVJlY2h0ZQ0KICAgIGlmICgk
ci5pc3RTdXBlclVzZXIpIHsgcmV0dXJuICR0cnVlIH0NCiAgICBpZiAoJHIuaXN0RmFjaGF1ZnNp
Y2h0IC1hbmQgJHIuc2VoZW5bJEJlcmVpY2hdKSB7IHJldHVybiAkdHJ1ZSB9DQogICAgcmV0dXJu
ICRmYWxzZQ0KfQ0KDQojID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCiMgSGlud2Vpcy1TeXN0ZW0gKElu
LUFwcC1CYW5uZXIgKyBNb2RhbCBmdWVyIFN1cGVyVXNlciArIEdlc2FtdHZlcmFudHdvcnRsaWNo
ZSkNCiMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIyBTdGF0dCBtYWlsdG8tVHJpZ2dlcm4gZnVlciBS
b3V0aW5lLUVyZWlnbmlzc2UgKElkZW50aXRhZXRzLUFlbmRlcnVuZywgQmFja3VwLQ0KIyBSZXN0
b3JlLCBLcmFua21lbGR1bmcsIC4uLikgZXJ6ZXVndCBkZXIgU2VydmVyIGhpZXIgZWluZW4gSGlu
d2Vpcy1FaW50cmFnIGluDQojIGRhdGEvaGlud2Vpc2UuanNvbi4gU3VwZXJVc2VyICsgR2VzYW10
dmVyYW50d29ydGxpY2hlIHNlaGVuIGVpbmVuIEJhbm5lciBtaXQNCiMgQW56YWhsICsgQmFkZ2Ug
YW0gZWlnZW5lbiBOYW1lbiB1bmQga29lbm5lbiBkaWUgSGlud2Vpc2UgaW0gTW9kYWwgYWJuaWNr
ZW4uDQojDQojIEVtcGZhZW5nZXItU25hcHNob3Qgd2lyZCBiZWltIEVyemV1Z2VuIGZlc3RnZXNj
aHJpZWJlbjogV2VyIGJlaW0gVHJpZ2dlciBub2NoDQojIG5pY2h0IGluIGRlciBTVS0vR2VzYW10
dmVyYW50d29ydGxpY2gtTGlzdGUgc3RhbmQsIGJla29tbXQgZGVuIEhpbndlaXMgbmljaHQNCiMg
bmFjaHRyYWVnbGljaC4gRGFzIGlzdCBiZXd1c3N0IHNvIChrZWluIHdhaHJlcyAiUHViL1N1YiIs
IHNvbmRlcm4gQXVkaXQtTG9nKS4NCiMgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KDQojIExpZWZlcnQg
ZWluIEFycmF5IGVpbmRldXRpZ2VyIG53S2VubnVuZ2VuIGFsbGVyIGFrdHVlbGxlbiBTVSArIEdl
c2FtdC0NCiMgdmVyYW50d29ydGxpY2hlbiBhdXMgYWRtaW4uanNvbi4gRm9ybWF0IHdpZSBpbiBh
ZG1pbi5qc29uIGhpbnRlcmxlZ3QNCiMgKHR5cC4gIk5XMDUzNjA5IiBvZGVyICJET01BSU5cTlcw
NTM2MDkiKS4gTWF0Y2ggbGFldWZ0IGNhc2UtaW5zZW5zaXRpdi4NCmZ1bmN0aW9uIEdldC1IaW53
ZWlzRW1wZmFlbmdlciB7DQogICAgJGFkbWluID0gUmVhZC1Kc29uT2JqZWN0ICdhZG1pbi5qc29u
Jw0KICAgIGlmICgkbnVsbCAtZXEgJGFkbWluKSB7IHJldHVybiBAKCkgfQ0KICAgICRzZXQgPSBA
e30NCiAgICBmb3JlYWNoICgkc3UgaW4gQCgkYWRtaW4uc3VwZXJVc2VyKSkgew0KICAgICAgICAk
ayA9IFtzdHJpbmddJHN1Lm53S2VubnVuZw0KICAgICAgICBpZiAoJGspIHsgJHNldFskay5Ub0xv
d2VyKCldID0gJGsgfQ0KICAgIH0NCiAgICBmb3JlYWNoICgkZmEgaW4gQCgkYWRtaW4uZmFjaGF1
ZnNpY2h0KSkgew0KICAgICAgICBpZiAoJGZhLlBTT2JqZWN0LlByb3BlcnRpZXNbJ2dlc2FtdHZl
cmFudHdvcnRsaWNoJ10gLWFuZCBbYm9vbF0kZmEuZ2VzYW10dmVyYW50d29ydGxpY2gpIHsNCiAg
ICAgICAgICAgICRrID0gW3N0cmluZ10kZmEubndLZW5udW5nDQogICAgICAgICAgICBpZiAoJGsp
IHsgJHNldFskay5Ub0xvd2VyKCldID0gJGsgfQ0KICAgICAgICB9DQogICAgfQ0KICAgICMgTm90
ZmFsbC1TVSBzaW5kIGltbWVyIEVtcGZhZW5nZXIsIGF1Y2ggd2VubiBhZG1pbi5qc29uIHNpZSBu
aWNodCBsaXN0ZXQNCiAgICBmb3JlYWNoICgkayBpbiAkc2NyaXB0Ok5vdGZhbGxTdXBlclVzZXIp
IHsNCiAgICAgICAgaWYgKC1ub3QgJHNldC5Db250YWluc0tleSgkay5Ub0xvd2VyKCkpKSB7ICRz
ZXRbJGsuVG9Mb3dlcigpXSA9ICRrIH0NCiAgICB9DQogICAgcmV0dXJuIEAoJHNldC5WYWx1ZXMp
DQp9DQoNCiMgU2NocmVpYnQgZWluZW4gbmV1ZW4gSGlud2VpcyBpbiBkYXRhL2hpbndlaXNlLmpz
b24uIEVtcGZhZW5nZXItU2xvdHMgd2VyZGVuDQojIG1pdCAkbnVsbCB2b3JiZWxlZ3QgKD0gdW5n
ZWxlc2VuKS4gTG9jay1nZXNjaHVldHp0OyBiZWkgRmVobGVyIG51ciBsb2dnZW4sDQojIG5pY2h0
IHByb3BhZ2llcmVuLCBkYW1pdCBkZXIgYXVzbMO2c2VuZGUgUFVUIG5pY2h0IGtpcHB0Lg0KZnVu
Y3Rpb24gTmV3LUhpbndlaXMoW3N0cmluZ10kVHlwLCAkS29udGV4dCwgW3N0cmluZ10kQXVzbG9l
c2VyKSB7DQogICAgdHJ5IHsNCiAgICAgICAgJGVtcGZhZW5nZXIgPSBHZXQtSGlud2Vpc0VtcGZh
ZW5nZXINCiAgICAgICAgaWYgKC1ub3QgJGVtcGZhZW5nZXIgLW9yICRlbXBmYWVuZ2VyLkNvdW50
IC1lcSAwKSB7IHJldHVybiAkbnVsbCB9DQogICAgICAgICRzY3JpcHQ6ZXJ6ZXVndGVJZCA9ICRu
dWxsDQogICAgICAgIEludm9rZS1XaXRoRmlsZUxvY2sgJ2hpbndlaXNlLmpzb24nIHsNCiAgICAg
ICAgICAgICRoID0gUmVhZC1Kc29uT2JqZWN0ICdoaW53ZWlzZS5qc29uJw0KICAgICAgICAgICAg
aWYgKCRudWxsIC1lcSAkaCAtb3IgLW5vdCAkaC5QU09iamVjdC5Qcm9wZXJ0aWVzWydoaW53ZWlz
ZSddIC1vciAtbm90ICRoLlBTT2JqZWN0LlByb3BlcnRpZXNbJ25hZWNoc3RlSWQnXSkgew0KICAg
ICAgICAgICAgICAgICRoID0gW1BTQ3VzdG9tT2JqZWN0XUB7IGhpbndlaXNlID0gQCgpOyBuYWVj
aHN0ZUlkID0gMSB9DQogICAgICAgICAgICB9DQogICAgICAgICAgICAkaWQgPSBbaW50XSRoLm5h
ZWNoc3RlSWQNCiAgICAgICAgICAgICRrbiA9IFtvcmRlcmVkXUB7fQ0KICAgICAgICAgICAgZm9y
ZWFjaCAoJGUgaW4gJGVtcGZhZW5nZXIpIHsgJGtuWyRlXSA9ICRudWxsIH0NCiAgICAgICAgICAg
ICRlaW50cmFnID0gW29yZGVyZWRdQHsNCiAgICAgICAgICAgICAgICBpZCAgICAgICAgICAgID0g
JGlkDQogICAgICAgICAgICAgICAgdHlwICAgICAgICAgICA9ICRUeXANCiAgICAgICAgICAgICAg
ICBlcnN0ZWxsdEFtICAgID0gKEdldC1EYXRlKS5Ub1VuaXZlcnNhbFRpbWUoKS5Ub1N0cmluZygn
eXl5eS1NTS1kZFRISDptbTpzc1onKQ0KICAgICAgICAgICAgICAgIGF1c2xvZXNlciAgICAgPSAk
QXVzbG9lc2VyDQogICAgICAgICAgICAgICAga29udGV4dCAgICAgICA9ICRLb250ZXh0DQogICAg
ICAgICAgICAgICAga2VubnRuaXNuYWhtZW4gPSAka24NCiAgICAgICAgICAgIH0NCiAgICAgICAg
ICAgICMgUFMtNS4xLVVud3JhcC1TY2h1dHo6IGVpbnplbG5lcyBFbGVtZW50IG11c3MgYWxzIEFy
cmF5IGJsZWliZW4uDQogICAgICAgICAgICAkaC5oaW53ZWlzZSAgID0gW29iamVjdFtdXUAoQCgk
aC5oaW53ZWlzZSkgKyBAKFtQU0N1c3RvbU9iamVjdF0kZWludHJhZykpDQogICAgICAgICAgICAk
aC5uYWVjaHN0ZUlkID0gJGlkICsgMQ0KICAgICAgICAgICAgV3JpdGUtSnNvbk9iamVjdCAnaGlu
d2Vpc2UuanNvbicgJGggfCBPdXQtTnVsbA0KICAgICAgICAgICAgJHNjcmlwdDplcnpldWd0ZUlk
ID0gJGlkDQogICAgICAgIH0gfCBPdXQtTnVsbA0KICAgICAgICBXcml0ZS1Mb2dFaW50cmFnICdo
aW53ZWlzLmVyemV1Z3QnIEB7IHR5cCA9ICRUeXA7IGVtcGZhZW5nZXIgPSAkZW1wZmFlbmdlci5D
b3VudCB9DQogICAgICAgIHJldHVybiAkc2NyaXB0OmVyemV1Z3RlSWQNCiAgICB9IGNhdGNoIHsN
CiAgICAgICAgTG9nLUFwaSAoIkhJTldFSVMtRVJaRVVHRU4gRkVITEVSICh7MH0pOiB7MX0iIC1m
ICRUeXAsICRfLkV4Y2VwdGlvbi5NZXNzYWdlKQ0KICAgICAgICByZXR1cm4gJG51bGwNCiAgICB9
DQp9DQoNCiMgRW50ZmVybnQgb2ZmZW5lIEtyYW5rbWVsZHVuZ3MtSGlud2Vpc2UgZnVlciBlaW5l
IGtvbmtyZXRlIFBlcnNvbiArIERhdHVtLg0KIyBBdWZnZXJ1ZmVuIHZvbSBaZWxsLUVkaXQtSGFu
ZGxlciwgd2VubiBlaW4gImtyIi8iS3VyIi1FaW50cmFnIHdpZWRlcg0KIyB6dXJ1ZWNrZ2Vub21t
ZW4gd2lyZCDigJQgc29uc3QgYmxlaWJ0IGRlciBIaW53ZWlzIDMwIFRhZ2Ugb2ZmZW4sIG9id29o
bA0KIyBkYXMgRXJlaWduaXMgZXJsZWRpZ3QgaXN0IChQaGFzZSBELjMsIDIwMjYtMDUtMjEpLg0K
ZnVuY3Rpb24gUmVtb3ZlLU9mZmVuZUtyYW5rbWVsZHVuZ3NIaW53ZWlzZShbaW50XSRQZXJzb25J
ZCwgW3N0cmluZ10kRGF0dW0pIHsNCiAgICB0cnkgew0KICAgICAgICBJbnZva2UtV2l0aEZpbGVM
b2NrICdoaW53ZWlzZS5qc29uJyB7DQogICAgICAgICAgICAkaCA9IFJlYWQtSnNvbk9iamVjdCAn
aGlud2Vpc2UuanNvbicNCiAgICAgICAgICAgIGlmICgkbnVsbCAtZXEgJGggLW9yIC1ub3QgJGgu
UFNPYmplY3QuUHJvcGVydGllc1snaGlud2Vpc2UnXSkgeyByZXR1cm4gfQ0KICAgICAgICAgICAg
JGJlaGFsdGVuID0gQCgpDQogICAgICAgICAgICAkZW50ZmVybnQgPSAwDQogICAgICAgICAgICBm
b3JlYWNoICgkZSBpbiBAKCRoLmhpbndlaXNlKSkgew0KICAgICAgICAgICAgICAgIGlmICgkZS50
eXAgLWVxICdrcmFua21lbGR1bmcnIC1hbmQgJGUua29udGV4dCAtYW5kIGANCiAgICAgICAgICAg
ICAgICAgICAgW2ludF0kZS5rb250ZXh0LnBlcnNvbl9pZCAtZXEgJFBlcnNvbklkIC1hbmQgYA0K
ICAgICAgICAgICAgICAgICAgICBbc3RyaW5nXSRlLmtvbnRleHQuZGF0dW0gLWVxICREYXR1bSkg
ew0KICAgICAgICAgICAgICAgICAgICAkZW50ZmVybnQrKw0KICAgICAgICAgICAgICAgICAgICBj
b250aW51ZQ0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAkYmVoYWx0ZW4gKz0g
JGUNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGlmICgkZW50ZmVybnQgLWd0IDApIHsNCiAg
ICAgICAgICAgICAgICAkaC5oaW53ZWlzZSA9IFtvYmplY3RbXV0kYmVoYWx0ZW4NCiAgICAgICAg
ICAgICAgICBXcml0ZS1Kc29uT2JqZWN0ICdoaW53ZWlzZS5qc29uJyAkaCB8IE91dC1OdWxsDQog
ICAgICAgICAgICAgICAgV3JpdGUtTG9nRWludHJhZyAnaGlud2Vpcy5rcmFua21lbGR1bmcuenVy
dWVja2dlbm9tbWVuJyBAeyBwZXJzb25JZCA9ICRQZXJzb25JZDsgZGF0dW0gPSAkRGF0dW07IGVu
dGZlcm50ID0gJGVudGZlcm50IH0NCiAgICAgICAgICAgIH0NCiAgICAgICAgfSB8IE91dC1OdWxs
DQogICAgfSBjYXRjaCB7DQogICAgICAgIExvZy1BcGkgKCJISU5XRUlTLUtSQU5LTUVMRFVORy1D
TEVBTlVQIEZFSExFUjogezB9IiAtZiAkXy5FeGNlcHRpb24uTWVzc2FnZSkNCiAgICB9DQp9DQoN
CiMgTG9lc2NodCBhYmdlbGF1ZmVuZSBIaW53ZWlzZSAoYWxsZSBTbG90cyAhPSBudWxsIFVORCA+
IDMwIFRhZ2UpLiBXaXJkIGxhenkNCiMgYmVpbSBHRVQgL2FwaS9oaW53ZWlzZSBhdWZnZXJ1ZmVu
LCBtYXguIDF4IHBybyBNaW51dGUgKFNjcmlwdC1TY29wZS1DYWNoZSkuDQokc2NyaXB0Okhpbndl
aXNQcnVuZVp1bGV0enQgPSBbRGF0ZVRpbWVdOjpNaW5WYWx1ZQ0KZnVuY3Rpb24gSW52b2tlLUhp
bndlaXNQcnVuaW5nIHsNCiAgICAkamV0enQgPSBHZXQtRGF0ZQ0KICAgIGlmICgoJGpldHp0IC0g
JHNjcmlwdDpIaW53ZWlzUHJ1bmVadWxldHp0KS5Ub3RhbFNlY29uZHMgLWx0IDYwKSB7IHJldHVy
biB9DQogICAgJHNjcmlwdDpIaW53ZWlzUHJ1bmVadWxldHp0ID0gJGpldHp0DQogICAgdHJ5IHsN
CiAgICAgICAgSW52b2tlLVdpdGhGaWxlTG9jayAnaGlud2Vpc2UuanNvbicgew0KICAgICAgICAg
ICAgJGggPSBSZWFkLUpzb25PYmplY3QgJ2hpbndlaXNlLmpzb24nDQogICAgICAgICAgICBpZiAo
JG51bGwgLWVxICRoIC1vciAtbm90ICRoLlBTT2JqZWN0LlByb3BlcnRpZXNbJ2hpbndlaXNlJ10p
IHsgcmV0dXJuIH0NCiAgICAgICAgICAgICRncmVuemUgPSAkamV0enQuQWRkRGF5cygtMzApLlRv
VW5pdmVyc2FsVGltZSgpDQogICAgICAgICAgICAkYmVoYWx0ZW4gPSBAKCkNCiAgICAgICAgICAg
IGZvcmVhY2ggKCRlaW50cmFnIGluIEAoJGguaGlud2Vpc2UpKSB7DQogICAgICAgICAgICAgICAg
JGVyc3RlbGx0ID0gW0RhdGVUaW1lXTo6TWluVmFsdWUNCiAgICAgICAgICAgICAgICB0cnkgeyAk
ZXJzdGVsbHQgPSBbRGF0ZVRpbWVdOjpQYXJzZShbc3RyaW5nXSRlaW50cmFnLmVyc3RlbGx0QW0p
LlRvVW5pdmVyc2FsVGltZSgpIH0gY2F0Y2gge30NCiAgICAgICAgICAgICAgICAkYWxsZUdlbGVz
ZW4gPSAkdHJ1ZQ0KICAgICAgICAgICAgICAgIGZvcmVhY2ggKCRwIGluICRlaW50cmFnLmtlbm50
bmlzbmFobWVuLlBTT2JqZWN0LlByb3BlcnRpZXMpIHsNCiAgICAgICAgICAgICAgICAgICAgaWYg
KCRudWxsIC1lcSAkcC5WYWx1ZSkgeyAkYWxsZUdlbGVzZW4gPSAkZmFsc2U7IGJyZWFrIH0NCiAg
ICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgIyBCZWhhbHRlbiwgd2VubiBqdWVuZ2Vy
IGFscyAzMCBUYWdlIE9ERVIgbm9jaCB1bmdlbGVzZW4NCiAgICAgICAgICAgICAgICBpZiAoJGVy
c3RlbGx0IC1ndCAkZ3JlbnplIC1vciAtbm90ICRhbGxlR2VsZXNlbikgeyAkYmVoYWx0ZW4gKz0g
JGVpbnRyYWcgfQ0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgaWYgKCRiZWhhbHRlbi5Db3Vu
dCAtbmUgQCgkaC5oaW53ZWlzZSkuQ291bnQpIHsNCiAgICAgICAgICAgICAgICAkaC5oaW53ZWlz
ZSA9IFtvYmplY3RbXV0kYmVoYWx0ZW4NCiAgICAgICAgICAgICAgICBXcml0ZS1Kc29uT2JqZWN0
ICdoaW53ZWlzZS5qc29uJyAkaCB8IE91dC1OdWxsDQogICAgICAgICAgICB9DQogICAgICAgIH0g
fCBPdXQtTnVsbA0KICAgIH0gY2F0Y2ggew0KICAgICAgICBMb2ctQXBpICgiSElOV0VJUy1QUlVO
SU5HIEZFSExFUjogezB9IiAtZiAkXy5FeGNlcHRpb24uTWVzc2FnZSkNCiAgICB9DQp9DQoNCiMg
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLQ0KIyBNSVRURUlMVU5HRU4g4oCUIEZpbHRlciBmdWVyIGRlbiBh
a3R1ZWxsZW4gVXNlci4gU3BpZWdlbCB2b24NCiMgX21pdHRlaWx1bmdlbl9mdWVyX2FrdHVlbGxl
bl91c2VyKCkgaW0gUHl0aG9uLVNlcnZlciAoU3ByaW50IEQtM2EvRC0zYikuDQojIEJlYWNodGV0
IGVtcGZhZW5nZXIge2FsbGUsIHBlcnNvbmVuLCBncnVwcGVuLCByb2xsZW59LCBiaXNEYXR1bS1T
dGljaHRhZw0KIyB1bmQgVHJpZ2dlci1SZWdlbCAoZWlubWFsIHZzLiBqZWRlc21hbC9iaXNEYXR1
bSBtaXQgIjF4IHBybyBLYWxlbmRlcnRhZyIpLg0KZnVuY3Rpb24gR2V0LU1pdHRlaWx1bmdlbkZ1
ZXJBa3R1ZWxsZW5Vc2VyIHsNCiAgICAkbSA9IFJlYWQtSnNvbk9iamVjdCAnbWl0dGVpbHVuZ2Vu
Lmpzb24nDQogICAgaWYgKCRudWxsIC1lcSAkbSAtb3IgLW5vdCAkbS5QU09iamVjdC5Qcm9wZXJ0
aWVzWydtaXR0ZWlsdW5nZW4nXSkgeyByZXR1cm4gQCgpIH0NCiAgICAkZWludHJhZWdlID0gQCgk
bS5taXR0ZWlsdW5nZW4pDQogICAgaWYgKCRlaW50cmFlZ2UuQ291bnQgLWVxIDApIHsgcmV0dXJu
IEAoKSB9DQogICAgJHIgPSBHZXQtUmVjaHRlDQogICAgJHBpZCA9ICRyLm1laW5lUGVyc29uSWQN
CiAgICAkcGVyc29uID0gJG51bGwNCiAgICBpZiAoJG51bGwgLW5lICRwaWQpIHsNCiAgICAgICAg
JHBsYW51bmcgPSBSZWFkLUpzb25PYmplY3QgJ3BsYW51bmcuanNvbicNCiAgICAgICAgaWYgKCRu
dWxsIC1uZSAkcGxhbnVuZyAtYW5kICRwbGFudW5nLlBTT2JqZWN0LlByb3BlcnRpZXNbJ3BlcnNv
bmVuJ10pIHsNCiAgICAgICAgICAgIGZvcmVhY2ggKCRwIGluIEAoJHBsYW51bmcucGVyc29uZW4p
KSB7DQogICAgICAgICAgICAgICAgaWYgKFtzdHJpbmddJHAuaWQgLWVxIFtzdHJpbmddJHBpZCkg
eyAkcGVyc29uID0gJHA7IGJyZWFrIH0NCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KICAgIH0N
CiAgICAkbWVpbmVHcnVwcGUgICA9IGlmICgkcGVyc29uIC1hbmQgJHBlcnNvbi5QU09iamVjdC5Q
cm9wZXJ0aWVzWydncnVwcGUnXSkgICB7IFtzdHJpbmddJHBlcnNvbi5ncnVwcGUgfSAgIGVsc2Ug
eyAkbnVsbCB9DQogICAgJG1laW5lRnVua3Rpb24gPSBpZiAoJHBlcnNvbiAtYW5kICRwZXJzb24u
UFNPYmplY3QuUHJvcGVydGllc1snZnVua3Rpb24nXSkgeyBbc3RyaW5nXSRwZXJzb24uZnVua3Rp
b24gfSBlbHNlIHsgJG51bGwgfQ0KICAgICRpc3RTVSA9IFtib29sXSRyLmlzdFN1cGVyVXNlcg0K
ICAgICRpc3RHViA9IFtib29sXSRyLmlzdEdlc2FtdHZlcmFudHdvcnRsaWNoDQogICAgJGhldXRl
ID0gKEdldC1EYXRlKS5Ub1N0cmluZygneXl5eS1NTS1kZCcpDQogICAgJGdlbGVzZW5Vc2VyID0g
W3BzY3VzdG9tb2JqZWN0XUB7fQ0KICAgIGlmICgkbnVsbCAtbmUgJHBpZCAtYW5kICRtLlBTT2Jq
ZWN0LlByb3BlcnRpZXNbJ2dlbGVzZW4nXSkgew0KICAgICAgICAkcGlkU3RyID0gW3N0cmluZ10k
cGlkDQogICAgICAgIGlmICgkbS5nZWxlc2VuLlBTT2JqZWN0LlByb3BlcnRpZXNbJHBpZFN0cl0p
IHsNCiAgICAgICAgICAgICRnZWxlc2VuVXNlciA9ICRtLmdlbGVzZW4uJHBpZFN0cg0KICAgICAg
ICB9DQogICAgfQ0KICAgICRyZWxldmFudCA9IEAoKQ0KICAgIGZvcmVhY2ggKCRlaW50cmFnIGlu
ICRlaW50cmFlZ2UpIHsNCiAgICAgICAgaWYgKC1ub3QgJGVpbnRyYWcuUFNPYmplY3QuUHJvcGVy
dGllc1snZW1wZmFlbmdlciddKSB7IGNvbnRpbnVlIH0NCiAgICAgICAgJGVtcCA9ICRlaW50cmFn
LmVtcGZhZW5nZXINCiAgICAgICAgJGlzdFppZWxncnVwcGUgPSAkZmFsc2UNCiAgICAgICAgaWYg
KCRlbXAuUFNPYmplY3QuUHJvcGVydGllc1snYWxsZSddIC1hbmQgJGVtcC5hbGxlKSB7ICRpc3Ra
aWVsZ3J1cHBlID0gJHRydWUgfQ0KICAgICAgICBpZiAoJG51bGwgLW5lICRwaWQgLWFuZCAkZW1w
LlBTT2JqZWN0LlByb3BlcnRpZXNbJ3BlcnNvbmVuJ10pIHsNCiAgICAgICAgICAgIGZvcmVhY2gg
KCRwIGluIEAoJGVtcC5wZXJzb25lbikpIHsNCiAgICAgICAgICAgICAgICBpZiAoW3N0cmluZ10k
cCAtZXEgW3N0cmluZ10kcGlkKSB7ICRpc3RaaWVsZ3J1cHBlID0gJHRydWU7IGJyZWFrIH0NCiAg
ICAgICAgICAgIH0NCiAgICAgICAgfQ0KICAgICAgICBpZiAoJG1laW5lR3J1cHBlIC1hbmQgJGVt
cC5QU09iamVjdC5Qcm9wZXJ0aWVzWydncnVwcGVuJ10pIHsNCiAgICAgICAgICAgIGlmIChAKCRl
bXAuZ3J1cHBlbikgLWNvbnRhaW5zICRtZWluZUdydXBwZSkgeyAkaXN0WmllbGdydXBwZSA9ICR0
cnVlIH0NCiAgICAgICAgfQ0KICAgICAgICAkcm9sbGVuID0gaWYgKCRlbXAuUFNPYmplY3QuUHJv
cGVydGllc1sncm9sbGVuJ10pIHsgQCgkZW1wLnJvbGxlbikgfSBlbHNlIHsgQCgpIH0NCiAgICAg
ICAgaWYgKCRtZWluZUZ1bmt0aW9uIC1hbmQgKCRyb2xsZW4gLWNvbnRhaW5zICRtZWluZUZ1bmt0
aW9uKSkgeyAkaXN0WmllbGdydXBwZSA9ICR0cnVlIH0NCiAgICAgICAgaWYgKCRpc3RTVSAtYW5k
ICgkcm9sbGVuIC1jb250YWlucyAnU1UnKSkgICAgICAgICAgICAgICAgICAgeyAkaXN0WmllbGdy
dXBwZSA9ICR0cnVlIH0NCiAgICAgICAgaWYgKCRpc3RHViAtYW5kICgkcm9sbGVuIC1jb250YWlu
cyAnR2VzYW10dmVyYW50d29ydGxpY2gnKSkgeyAkaXN0WmllbGdydXBwZSA9ICR0cnVlIH0NCiAg
ICAgICAgaWYgKC1ub3QgJGlzdFppZWxncnVwcGUpIHsgY29udGludWUgfQ0KICAgICAgICAjIGJp
c0RhdHVtLVN0aWNodGFnDQogICAgICAgICRiaXMgPSBpZiAoJGVpbnRyYWcuUFNPYmplY3QuUHJv
cGVydGllc1snYmlzRGF0dW0nXSkgeyBbc3RyaW5nXSRlaW50cmFnLmJpc0RhdHVtIH0gZWxzZSB7
ICRudWxsIH0NCiAgICAgICAgaWYgKCRiaXMgLWFuZCAoJGhldXRlIC1ndCAkYmlzKSkgeyBjb250
aW51ZSB9DQogICAgICAgICMgVHJpZ2dlci1SZWdlbA0KICAgICAgICAkdHJpZ2dlciA9IGlmICgk
ZWludHJhZy5QU09iamVjdC5Qcm9wZXJ0aWVzWyd0cmlnZ2VyJ10gLWFuZCAkZWludHJhZy50cmln
Z2VyKSB7IFtzdHJpbmddJGVpbnRyYWcudHJpZ2dlciB9IGVsc2UgeyAnZWlubWFsJyB9DQogICAg
ICAgICRtaWQgPSBbc3RyaW5nXSRlaW50cmFnLmlkDQogICAgICAgICR6dWxldHp0R2VzZWhlbiA9
IGlmICgkZ2VsZXNlblVzZXIuUFNPYmplY3QuUHJvcGVydGllc1skbWlkXSkgeyBbc3RyaW5nXSRn
ZWxlc2VuVXNlci4kbWlkIH0gZWxzZSB7ICRudWxsIH0NCiAgICAgICAgaWYgKCR0cmlnZ2VyIC1l
cSAnZWlubWFsJykgew0KICAgICAgICAgICAgaWYgKCR6dWxldHp0R2VzZWhlbikgeyBjb250aW51
ZSB9DQogICAgICAgIH0gZWxzZWlmICgkdHJpZ2dlciAtZXEgJ2plZGVzbWFsJyAtb3IgJHRyaWdn
ZXIgLWVxICdiaXNEYXR1bScpIHsNCiAgICAgICAgICAgIGlmICgkenVsZXR6dEdlc2VoZW4gLWVx
ICRoZXV0ZSkgeyBjb250aW51ZSB9DQogICAgICAgIH0NCiAgICAgICAgJHJlbGV2YW50ICs9ICRl
aW50cmFnDQogICAgfQ0KICAgIHJldHVybiBbb2JqZWN0W11dJHJlbGV2YW50DQp9DQoNCiMgLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLQ0KIyBEaWZmLUhlbHBlciBmdWVyIFJvbGxlbi1FbmRwb2ludHMgKFNV
ICsgRmFjaGF1ZnNpY2h0KS4gTGllZmVydCBNYWlsdG8tDQojIERpZmZzIChyZWluL3JhdXMgYXVz
IFZlcmFudHdvcnR1bmcpIHVuZCBIaW53ZWlzLURpZmZzIChSb2xsZW4tVXBkYXRlcw0KIyBvaG5l
IFZlcmFudHdvcnR1bmdzLVdlY2hzZWwpIGdldHJlbm50IHp1cnVlY2suDQojIC0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0NCg0KZnVuY3Rpb24gX1BlcnNvbk5hbWVGdWVyS2VubnVuZyhbc3RyaW5nXSROd0tl
bm51bmcpIHsNCiAgICBpZiAoLW5vdCAkTndLZW5udW5nKSB7IHJldHVybiAnJyB9DQogICAgJGtr
ID0gJE53S2VubnVuZy5Ub0xvd2VyKCkNCiAgICAjIEJldm9yenVndDogUGVyc29uZW5kYXRlbiBh
dXMgcGxhbnVuZy5qc29uIChpbmtsLiBWb3JuYW1lKS4NCiAgICAkcGwgPSBSZWFkLUpzb25PYmpl
Y3QgJ3BsYW51bmcuanNvbicNCiAgICBpZiAoJHBsIC1hbmQgJHBsLnBlcnNvbmVuKSB7DQogICAg
ICAgIGZvcmVhY2ggKCRwIGluIEAoJHBsLnBlcnNvbmVuKSkgew0KICAgICAgICAgICAgaWYgKFtz
dHJpbmddJHAubndLZW5udW5nIC1hbmQgJHAubndLZW5udW5nLlRvTG93ZXIoKSAtZXEgJGtrKSB7
DQogICAgICAgICAgICAgICAgJHZuID0gJycNCiAgICAgICAgICAgICAgICBpZiAoJHAuUFNPYmpl
Y3QuUHJvcGVydGllc1sndm9ybmFtZSddKSB7ICR2biA9IFtzdHJpbmddJHAudm9ybmFtZSB9DQog
ICAgICAgICAgICAgICAgcmV0dXJuICgiJHZuICQoJHAubmFtZSkiKS5UcmltKCkNCiAgICAgICAg
ICAgIH0NCiAgICAgICAgfQ0KICAgIH0NCiAgICAjIEZhbGxiYWNrOiBSb2xsZS1MaXN0ZW4gaW4g
YWRtaW4uanNvbiAoU3VwZXJVc2VyLCBGYWNoYXVmc2ljaHQsDQogICAgIyBEaXJla3Rpb25zbGVp
dHVuZywgRnVlaHJ1bmdzc3RlbGxlKS4gU29sY2hlIEVpbnRyYWVnZSBmdWVocmVuIGVpbg0KICAg
ICMgZWlnZW5lcyBuYW1lLUZlbGQgdW5kIGtvbW1lbiBvZnQgb2huZSBwbGFudW5nLnBlcnNvbmVu
LVBlbmRhbnQgdm9yDQogICAgIyAoei5CLiBTdXBlclVzZXIgb2huZSBTY2hpY2h0ZGllbnN0KS4g
T2huZSBkaWVzZW4gRmFsbGJhY2sgZ3J1ZcOfdCBkZXINCiAgICAjIFNlcnZlciBkaWUgUGVyc29u
IG1pdCBpaHJlciBOVy1LZW5udW5nIHN0YXR0IG1pdCBpaHJlbSBOYW1lbi4NCiAgICAkYWRtaW4g
PSBSZWFkLUpzb25PYmplY3QgJ2FkbWluLmpzb24nDQogICAgaWYgKCRhZG1pbikgew0KICAgICAg
ICBmb3JlYWNoICgkZmVsZCBpbiAnc3VwZXJVc2VyJywnZmFjaGF1ZnNpY2h0JywnZGlyZWt0aW9u
c2xlaXR1bmcnLCdmdWVocnVuZ3NzdGVsbGUnKSB7DQogICAgICAgICAgICBpZiAoLW5vdCAkYWRt
aW4uUFNPYmplY3QuUHJvcGVydGllc1skZmVsZF0pIHsgY29udGludWUgfQ0KICAgICAgICAgICAg
Zm9yZWFjaCAoJGUgaW4gQCgkYWRtaW4uJGZlbGQpKSB7DQogICAgICAgICAgICAgICAgaWYgKC1u
b3QgJGUpIHsgY29udGludWUgfQ0KICAgICAgICAgICAgICAgIGlmIChbc3RyaW5nXSRlLm53S2Vu
bnVuZyAtYW5kICRlLm53S2VubnVuZy5Ub0xvd2VyKCkgLWVxICRraykgew0KICAgICAgICAgICAg
ICAgICAgICBpZiAoJGUuUFNPYmplY3QuUHJvcGVydGllc1snbmFtZSddIC1hbmQgJGUubmFtZSkg
ew0KICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFtzdHJpbmddJGUubmFtZQ0KICAgICAg
ICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfQ0KICAgICAg
ICB9DQogICAgfQ0KICAgIHJldHVybiAnJw0KfQ0KDQojIEdlbmVyaXNjaGVyIERpZmYgZnVlciBy
ZWluZSAiTGlzdGUgbWl0IG53S2VubnVuZyItRW5kcG9pbnRzIChTdXBlclVzZXIpLg0KIyBMaWVm
ZXJ0IGVpbiBBcnJheSB2b24gbWFpbHRvLURpZmYtT2JqZWt0ZW46IHJlaW4vcmF1cywgamV3ZWls
cyBtaXQgTmFtZS4NCmZ1bmN0aW9uIEdldC1Sb2xsZURpZmZzKCRhbHRMaXN0ZSwgJG5ldUxpc3Rl
LCBbc3RyaW5nXSRSb2xsZUxhYmVsLCBbYm9vbF0kTnVyTWl0R2VzYW10RmxhZykgew0KICAgICRh
bHRTZXQgPSBAe30NCiAgICBmb3JlYWNoICgkZSBpbiBAKCRhbHRMaXN0ZSkpIHsNCiAgICAgICAg
aWYgKCRlIC1hbmQgJGUubndLZW5udW5nKSB7ICRhbHRTZXRbW3N0cmluZ10kZS5ud0tlbm51bmcu
VG9Mb3dlcigpXSA9ICRlIH0NCiAgICB9DQogICAgJG5ldVNldCA9IEB7fQ0KICAgIGZvcmVhY2gg
KCRlIGluIEAoJG5ldUxpc3RlKSkgew0KICAgICAgICBpZiAoJGUgLWFuZCAkZS5ud0tlbm51bmcp
IHsgJG5ldVNldFtbc3RyaW5nXSRlLm53S2VubnVuZy5Ub0xvd2VyKCldID0gJGUgfQ0KICAgIH0N
CiAgICAkZGlmZnMgPSBAKCkNCiAgICBmb3JlYWNoICgkayBpbiAkbmV1U2V0LktleXMpIHsNCiAg
ICAgICAgaWYgKC1ub3QgJGFsdFNldC5Db250YWluc0tleSgkaykpIHsNCiAgICAgICAgICAgICRl
ID0gJG5ldVNldFska10NCiAgICAgICAgICAgIGlmICgkTnVyTWl0R2VzYW10RmxhZyAtYW5kIC1u
b3QgKFtib29sXSRlLmdlc2FtdHZlcmFudHdvcnRsaWNoKSkgeyBjb250aW51ZSB9DQogICAgICAg
ICAgICAkZGlmZnMgKz0gW29yZGVyZWRdQHsNCiAgICAgICAgICAgICAgICByaWNodHVuZyAgID0g
J3JlaW4nDQogICAgICAgICAgICAgICAgcm9sbGUgICAgICA9ICRSb2xsZUxhYmVsDQogICAgICAg
ICAgICAgICAgbndLZW5udW5nICA9IFtzdHJpbmddJGUubndLZW5udW5nDQogICAgICAgICAgICAg
ICAgbmFtZSAgICAgICA9IF9QZXJzb25OYW1lRnVlcktlbm51bmcoW3N0cmluZ10kZS5ud0tlbm51
bmcpDQogICAgICAgICAgICB9DQogICAgICAgIH0NCiAgICB9DQogICAgZm9yZWFjaCAoJGsgaW4g
JGFsdFNldC5LZXlzKSB7DQogICAgICAgIGlmICgtbm90ICRuZXVTZXQuQ29udGFpbnNLZXkoJGsp
KSB7DQogICAgICAgICAgICAkZSA9ICRhbHRTZXRbJGtdDQogICAgICAgICAgICBpZiAoJE51ck1p
dEdlc2FtdEZsYWcgLWFuZCAtbm90IChbYm9vbF0kZS5nZXNhbXR2ZXJhbnR3b3J0bGljaCkpIHsg
Y29udGludWUgfQ0KICAgICAgICAgICAgJGRpZmZzICs9IFtvcmRlcmVkXUB7DQogICAgICAgICAg
ICAgICAgcmljaHR1bmcgICA9ICdyYXVzJw0KICAgICAgICAgICAgICAgIHJvbGxlICAgICAgPSAk
Um9sbGVMYWJlbA0KICAgICAgICAgICAgICAgIG53S2VubnVuZyAgPSBbc3RyaW5nXSRlLm53S2Vu
bnVuZw0KICAgICAgICAgICAgICAgIG5hbWUgICAgICAgPSBfUGVyc29uTmFtZUZ1ZXJLZW5udW5n
KFtzdHJpbmddJGUubndLZW5udW5nKQ0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQogICAgfQ0K
ICAgIHJldHVybiBbb2JqZWN0W11dJGRpZmZzDQp9DQoNCiMgRmFjaGF1ZnNpY2h0LURpZmY6IHRy
ZW5udCBtYWlsdG8td3VlcmRpZ2UgVmVyYW50d29ydHVuZ3MtVWViZXJnYWVuZ2UNCiMgKEdlc2Ft
dHZlcmFudHdvcnRsaWNoLVN0YXR1cy1XZWNoc2VsKSB2b24gSW4tQXBwLUhpbndlaXNlbiAoRkEg
aGluenUvDQojIGVudGZlcm50IG9obmUgR2VzYW10ZmxhZywgb2RlciBTZWhlbi1GbGFnLURpZmYp
Lg0KZnVuY3Rpb24gR2V0LUZhY2hhdWZzaWNodERpZmZzKCRhbHRMaXN0ZSwgJG5ldUxpc3RlKSB7
DQogICAgJGFsdE1hcCA9IEB7fQ0KICAgIGZvcmVhY2ggKCRlIGluIEAoJGFsdExpc3RlKSkgew0K
ICAgICAgICBpZiAoJGUgLWFuZCAkZS5ud0tlbm51bmcpIHsgJGFsdE1hcFtbc3RyaW5nXSRlLm53
S2VubnVuZy5Ub0xvd2VyKCldID0gJGUgfQ0KICAgIH0NCiAgICAkbmV1TWFwID0gQHt9DQogICAg
Zm9yZWFjaCAoJGUgaW4gQCgkbmV1TGlzdGUpKSB7DQogICAgICAgIGlmICgkZSAtYW5kICRlLm53
S2VubnVuZykgeyAkbmV1TWFwW1tzdHJpbmddJGUubndLZW5udW5nLlRvTG93ZXIoKV0gPSAkZSB9
DQogICAgfQ0KICAgICRtYWlsdG8gID0gQCgpDQogICAgJGhpbndlaXMgPSBAKCkNCiAgICAjIFZl
cmVpbmlndGUgS2VubnVuZ3MtTWVuZ2UNCiAgICAkYWxsZUtleXMgPSBAe30NCiAgICBmb3JlYWNo
ICgkayBpbiAkYWx0TWFwLktleXMpIHsgJGFsbGVLZXlzWyRrXSA9ICR0cnVlIH0NCiAgICBmb3Jl
YWNoICgkayBpbiAkbmV1TWFwLktleXMpIHsgJGFsbGVLZXlzWyRrXSA9ICR0cnVlIH0NCiAgICBm
b3JlYWNoICgkayBpbiAkYWxsZUtleXMuS2V5cykgew0KICAgICAgICAkYSA9ICRhbHRNYXBbJGtd
DQogICAgICAgICRuID0gJG5ldU1hcFska10NCiAgICAgICAgJGFsdEdlc2FtdCA9ICRmYWxzZTsg
aWYgKCRhIC1hbmQgJGEuUFNPYmplY3QuUHJvcGVydGllc1snZ2VzYW10dmVyYW50d29ydGxpY2gn
XSkgeyAkYWx0R2VzYW10ID0gW2Jvb2xdJGEuZ2VzYW10dmVyYW50d29ydGxpY2ggfQ0KICAgICAg
ICAkbmV1R2VzYW10ID0gJGZhbHNlOyBpZiAoJG4gLWFuZCAkbi5QU09iamVjdC5Qcm9wZXJ0aWVz
WydnZXNhbXR2ZXJhbnR3b3J0bGljaCddKSB7ICRuZXVHZXNhbXQgPSBbYm9vbF0kbi5nZXNhbXR2
ZXJhbnR3b3J0bGljaCB9DQogICAgICAgICRuYW1lID0gX1BlcnNvbk5hbWVGdWVyS2VubnVuZygk
aykNCiAgICAgICAgJG53SyAgPSBpZiAoJG4pIHsgW3N0cmluZ10kbi5ud0tlbm51bmcgfSBlbHNl
aWYgKCRhKSB7IFtzdHJpbmddJGEubndLZW5udW5nIH0gZWxzZSB7ICcnIH0NCg0KICAgICAgICAj
IEdlc2FtdHZlcmFudHdvcnRsaWNoLVN0YXR1cy1XZWNoc2VsIC0+IG1haWx0bw0KICAgICAgICBp
ZiAoJGFsdEdlc2FtdCAtbmUgJG5ldUdlc2FtdCkgew0KICAgICAgICAgICAgJHJpY2h0dW5nID0g
aWYgKCRuZXVHZXNhbXQpIHsgJ3JlaW4nIH0gZWxzZSB7ICdyYXVzJyB9DQogICAgICAgICAgICAk
bWFpbHRvICs9IFtvcmRlcmVkXUB7DQogICAgICAgICAgICAgICAgcmljaHR1bmcgID0gJHJpY2h0
dW5nDQogICAgICAgICAgICAgICAgcm9sbGUgICAgID0gJ0dlc2FtdHZlcmFudHdvcnRsaWNoJw0K
ICAgICAgICAgICAgICAgIG53S2VubnVuZyA9ICRud0sNCiAgICAgICAgICAgICAgICBuYW1lICAg
ICAgPSAkbmFtZQ0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgY29udGludWUNCiAgICAgICAg
fQ0KDQogICAgICAgICMgR2xlaWNoZXIgR2VzYW10LVN0YXR1cywgYWJlciBFaW50cmFnIHJlaW4v
cmF1cyAtPiBIaW53ZWlzICJGYWNoYXVmc2ljaHQiDQogICAgICAgIGlmICgkYSAtYW5kIC1ub3Qg
JG4pIHsNCiAgICAgICAgICAgICRoaW53ZWlzICs9IFtvcmRlcmVkXUB7DQogICAgICAgICAgICAg
ICAgcmljaHR1bmcgICAgPSAncmF1cycNCiAgICAgICAgICAgICAgICByb2xsZSAgICAgICA9ICdG
YWNoYXVmc2ljaHQnDQogICAgICAgICAgICAgICAgbndLZW5udW5nICAgPSAkbndLDQogICAgICAg
ICAgICAgICAgcGVyc29uX25hbWUgPSAkbmFtZQ0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAg
Y29udGludWUNCiAgICAgICAgfQ0KICAgICAgICBpZiAoJG4gLWFuZCAtbm90ICRhKSB7DQogICAg
ICAgICAgICAkaGlud2VpcyArPSBbb3JkZXJlZF1Aew0KICAgICAgICAgICAgICAgIHJpY2h0dW5n
ICAgID0gJ3JlaW4nDQogICAgICAgICAgICAgICAgcm9sbGUgICAgICAgPSAnRmFjaGF1ZnNpY2h0
Jw0KICAgICAgICAgICAgICAgIG53S2VubnVuZyAgID0gJG53Sw0KICAgICAgICAgICAgICAgIHBl
cnNvbl9uYW1lID0gJG5hbWUNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGNvbnRpbnVlDQog
ICAgICAgIH0NCg0KICAgICAgICAjIEJlaWRlIGV4aXN0aWVyZW4sIGdsZWljaGVyIEdlc2FtdC1T
dGF0dXM6IFNlaGVuLUZsYWdzIHZlcmdsZWljaGVuDQogICAgICAgICRzZWhlbkRpZmYgPSBAKCkN
CiAgICAgICAgJGFsdFNlaGVuID0gaWYgKCRhLlBTT2JqZWN0LlByb3BlcnRpZXNbJ3NlaGVuJ10p
IHsgJGEuc2VoZW4gfSBlbHNlIHsgJG51bGwgfQ0KICAgICAgICAkbmV1U2VoZW4gPSBpZiAoJG4u
UFNPYmplY3QuUHJvcGVydGllc1snc2VoZW4nXSkgeyAkbi5zZWhlbiB9IGVsc2UgeyAkbnVsbCB9
DQogICAgICAgIGZvcmVhY2ggKCRmbGFnIGluIEAoJ2FkbWluaXN0cmF0aW9uJywnc3RhdGlzdGlr
JywnbG9nYnVjaCcsJ2JhY2t1cHMnKSkgew0KICAgICAgICAgICAgJGF2ID0gJGZhbHNlOyBpZiAo
JGFsdFNlaGVuIC1hbmQgJGFsdFNlaGVuLlBTT2JqZWN0LlByb3BlcnRpZXNbJGZsYWddKSB7ICRh
diA9IFtib29sXSRhbHRTZWhlbi4kZmxhZyB9DQogICAgICAgICAgICAkbnYgPSAkZmFsc2U7IGlm
ICgkbmV1U2VoZW4gLWFuZCAkbmV1U2VoZW4uUFNPYmplY3QuUHJvcGVydGllc1skZmxhZ10pIHsg
JG52ID0gW2Jvb2xdJG5ldVNlaGVuLiRmbGFnIH0NCiAgICAgICAgICAgIGlmICgkYXYgLW5lICRu
dikgeyAkc2VoZW5EaWZmICs9ICIkZmxhZyA6ICRhdiAtPiAkbnYiIH0NCiAgICAgICAgfQ0KICAg
ICAgICBpZiAoJHNlaGVuRGlmZi5Db3VudCAtZ3QgMCkgew0KICAgICAgICAgICAgJGhpbndlaXMg
Kz0gW29yZGVyZWRdQHsNCiAgICAgICAgICAgICAgICByaWNodHVuZyAgICA9ICdha3R1YWxpc2ll
cnQnDQogICAgICAgICAgICAgICAgcm9sbGUgICAgICAgPSAnRmFjaGF1ZnNpY2h0LVJlY2h0ZScN
CiAgICAgICAgICAgICAgICBud0tlbm51bmcgICA9ICRud0sNCiAgICAgICAgICAgICAgICBwZXJz
b25fbmFtZSA9ICRuYW1lDQogICAgICAgICAgICAgICAgYWVuZGVydW5nZW4gPSAoJHNlaGVuRGlm
ZiAtam9pbiAnOyAnKQ0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQogICAgfQ0KICAgIHJldHVy
biBAeyBtYWlsdG9EaWZmcyA9IFtvYmplY3RbXV0kbWFpbHRvOyBoaW53ZWlzRGlmZnMgPSBbb2Jq
ZWN0W11dJGhpbndlaXMgfQ0KfQ0KDQojID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCiMgU3RhdGlzdGlr
LUJ1aWxkZXIgKEhlbHBlcikgLS0gbGllZmVydCBkYXMgUGVyLVBlcnNvbi1TdGF0aXN0aWstQXJy
YXkuDQojIEhhdCBrZWluZW4gUmVzcG9uc2UtU2lkZS1FZmZlY3Q7IENhbGxlciBzZW5kIEpzb25P
YmplY3QuDQojID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCmZ1bmN0aW9uIEdldC1TdGF0aXN0aWtEYXRh
KCRwbGFudW5nLCAkYWRtaW4pIHsNCiAgICBpZiAoJG51bGwgLWVxICRwbGFudW5nKSB7IHJldHVy
biBAKCkgfQ0KICAgICMgSGFzaHRhYmxlIHN0YXR0IEdlbmVyaWMgSGFzaFNldCAoQ0xNLXNpY2hl
cikNCiAgICAkZmVpZXJ0YWdlID0gQHt9DQogICAgaWYgKCRhZG1pbiAtYW5kICRhZG1pbi5mZWll
cnRhZ2UpIHsNCiAgICAgICAgZm9yZWFjaCAoJGYgaW4gQCgkYWRtaW4uZmVpZXJ0YWdlKSkgew0K
ICAgICAgICAgICAgJGQgPSBbc3RyaW5nXSRmLmRhdHVtDQogICAgICAgICAgICAjIGFrdGl2PWZh
bHNlIHVlYmVyc3ByaW5nZW4gKHouQi4gZnVlciBrdWx0dXJlbGxlL3JlbGlnaW9lc2UgRmVpZXIt
DQogICAgICAgICAgICAjIHRhZ2UsIGRpZSBkZXIgVXNlciBwZXIgVG9nZ2xlIGF1c2dlYmxlbmRl
dCBoYXQpLiBGZWhsZW5kZXMgYWt0aXYtDQogICAgICAgICAgICAjIEZlbGQgPT0gYWt0aXYgKEJh
Y2t3YXJkcy1Db21wYXQpLg0KICAgICAgICAgICAgJGFrdGl2ID0gJHRydWUNCiAgICAgICAgICAg
IGlmICgkZi5QU09iamVjdC5Qcm9wZXJ0aWVzWydha3RpdiddKSB7ICRha3RpdiA9IFtib29sXSRm
LmFrdGl2IH0NCiAgICAgICAgICAgIGlmICgkZCAtYW5kICRha3RpdikgeyAkZmVpZXJ0YWdlWyRk
XSA9ICR0cnVlIH0NCiAgICAgICAgfQ0KICAgIH0NCiAgICAjIFplaXRyYXVtLUN1dDogbnVyIHJl
YWxpc2llcnRlICsgbmFlY2hzdGUgMTQgVGFnZSB6YWVobGVuLg0KICAgICRqYWhyUGxhbnVuZyA9
ICRudWxsDQogICAgaWYgKCRhZG1pbiAtYW5kICRhZG1pbi5QU09iamVjdC5Qcm9wZXJ0aWVzWydq
YWhyJ10pIHsgJGphaHJQbGFudW5nID0gJGFkbWluLmphaHIgfQ0KICAgIGlmICgtbm90ICRqYWhy
UGxhbnVuZykgeyAkamFoclBsYW51bmcgPSAoR2V0LURhdGUpLlllYXIgfQ0KICAgICRjdXRTdGFy
dCA9ICgnezB9LTAxLTAxJyAtZiAkamFoclBsYW51bmcpDQogICAgJGN1dEVuZGUgID0gKEdldC1E
YXRlKS5BZGREYXlzKDE0KS5Ub1N0cmluZygneXl5eS1NTS1kZCcpDQogICAgIyBTT0xMLVBvb2w6
IEFuemFobCBTYStTby1UYWdlIGltIEN1dCwgZGllIEtFSU4gRmVpZXJ0YWcgc2luZC4NCiAgICAk
d2VUYWdlTWF4ID0gMA0KICAgICRfZCA9IFtkYXRldGltZV06OlBhcnNlRXhhY3QoJGN1dFN0YXJ0
LCAneXl5eS1NTS1kZCcsICRudWxsKQ0KICAgICRfZSA9IFtkYXRldGltZV06OlBhcnNlRXhhY3Qo
JGN1dEVuZGUsICAneXl5eS1NTS1kZCcsICRudWxsKQ0KICAgIHdoaWxlICgkX2QgLWxlICRfZSkg
ew0KICAgICAgICBpZiAoKCRfZC5EYXlPZldlZWsgLWVxICdTYXR1cmRheScgLW9yICRfZC5EYXlP
ZldlZWsgLWVxICdTdW5kYXknKSAtYW5kIC1ub3QgJGZlaWVydGFnZS5Db250YWluc0tleSgkX2Qu
VG9TdHJpbmcoJ3l5eXktTU0tZGQnKSkpIHsNCiAgICAgICAgICAgICR3ZVRhZ2VNYXgrKw0KICAg
ICAgICB9DQogICAgICAgICRfZCA9ICRfZC5BZGREYXlzKDEpDQogICAgfQ0KICAgICRzdGF0aXN0
aWtlbiA9IE5ldy1PYmplY3QgJ1N5c3RlbS5Db2xsZWN0aW9ucy5BcnJheUxpc3QnDQogICAgJHBl
cnNvbmVuID0gQCgpDQogICAgaWYgKCRwbGFudW5nLnBlcnNvbmVuKSB7ICRwZXJzb25lbiA9IEAo
JHBsYW51bmcucGVyc29uZW4pIH0NCiAgICAkZGF0ZW5Tb3J0aWVydCA9IEAoKQ0KICAgIGlmICgk
cGxhbnVuZy5laW50cmFlZ2UpIHsNCiAgICAgICAgJGRhdGVuU29ydGllcnQgPSBAKCRwbGFudW5n
LmVpbnRyYWVnZS5QU09iamVjdC5Qcm9wZXJ0aWVzIHwgRm9yRWFjaC1PYmplY3QgeyAkXy5OYW1l
IH0gfCBTb3J0LU9iamVjdCkNCiAgICB9DQogICAgZm9yZWFjaCAoJHBlcnNvbiBpbiAkcGVyc29u
ZW4pIHsNCiAgICAgICAgaWYgKCRwZXJzb24uUFNPYmplY3QuUHJvcGVydGllc1snYWt0aXYnXSAt
YW5kIC1ub3QgJHBlcnNvbi5ha3RpdikgeyBjb250aW51ZSB9DQogICAgICAgICRwZXJzb25JZCA9
IFtzdHJpbmddJHBlcnNvbi5pZA0KICAgICAgICAkdm9ybmFtZVR4dCA9ICcnDQogICAgICAgIGlm
ICgkcGVyc29uLlBTT2JqZWN0LlByb3BlcnRpZXNbJ3Zvcm5hbWUnXSkgeyAkdm9ybmFtZVR4dCA9
IFtzdHJpbmddJHBlcnNvbi52b3JuYW1lIH0NCiAgICAgICAgJGdydXBwZVR4dCA9ICcnDQogICAg
ICAgIGlmICgkcGVyc29uLlBTT2JqZWN0LlByb3BlcnRpZXNbJ2dydXBwZSddKSB7ICRncnVwcGVU
eHQgPSBbc3RyaW5nXSRwZXJzb24uZ3J1cHBlIH0NCiAgICAgICAgJGRncmFkVHh0ID0gJycNCiAg
ICAgICAgaWYgKCRwZXJzb24uUFNPYmplY3QuUHJvcGVydGllc1snZGllbnN0Z3JhZCddKSB7ICRk
Z3JhZFR4dCA9IFtzdHJpbmddJHBlcnNvbi5kaWVuc3RncmFkIH0NCiAgICAgICAgJGZ1bmtUeHQg
ID0gJycNCiAgICAgICAgaWYgKCRwZXJzb24uUFNPYmplY3QuUHJvcGVydGllc1snZnVua3Rpb24n
XSkgICB7ICRmdW5rVHh0ICA9IFtzdHJpbmddJHBlcnNvbi5mdW5rdGlvbiB9DQogICAgICAgICRz
dGF0cyA9IFtvcmRlcmVkXUB7DQogICAgICAgICAgICBwZXJzb25JZCAgICAgICAgPSAkcGVyc29u
LmlkDQogICAgICAgICAgICBuYW1lICAgICAgICAgICAgPSAoJ3swfSwgezF9JyAtZiAkcGVyc29u
Lm5hbWUsICR2b3JuYW1lVHh0KQ0KICAgICAgICAgICAgZGllbnN0Z3JhZCAgICAgID0gJGRncmFk
VHh0DQogICAgICAgICAgICBmdW5rdGlvbiAgICAgICAgPSAkZnVua1R4dA0KICAgICAgICAgICAg
Z3J1cHBlICAgICAgICAgID0gJGdydXBwZVR4dA0KICAgICAgICAgICAgZnJ1ZWggICAgICAgICAg
ID0gMDsgc3BhZXQgPSAwOyBuYWNodCA9IDA7IGdlc2FtdCA9IDANCiAgICAgICAgICAgIGRnbCAg
ICAgICAgICAgICA9IDA7IHdkZiA9IDA7IGZicCA9IDA7IHNvbmRlcmRpZW5zdCA9IDANCiAgICAg
ICAgICAgIGtyYW5rICAgICAgICAgICA9IDA7IGt1ciA9IDA7IHVybGF1YiA9IDA7IGxlaHJnYW5n
ID0gMDsgYXpBdXNnbGVpY2ggPSAwOyBzb25kZXJ1cmxhdWIgPSAwDQogICAgICAgICAgICB3b2No
ZW5lbmRUYWdlICAgPSAwOyBmZWllcnRhZ1RhZ2UgPSAwOyB2b3JGZWllcnRhZ1RhZ2UgPSAwDQog
ICAgICAgICAgICBzYW1zdGFnRGllbnN0ZSAgPSAwOyBzb25udGFnRGllbnN0ZSA9IDA7IGZlaWVy
dGFnRGllbnN0ZSA9IDANCiAgICAgICAgICAgIGtvbXBsZXR0ZVdFICAgICA9IDANCiAgICAgICAg
ICAgIHdlVGFnZU1heCAgICAgICA9ICR3ZVRhZ2VNYXgNCiAgICAgICAgICAgIHdlVGFnZUFid2Vz
ZW5kICA9IDANCiAgICAgICAgICAgIHdlVGFnZVZlcmZ1ZWdiYXIgPSAwDQogICAgICAgICAgICBm
b3J0YmlsZHVuZyAgICAgPSAwDQogICAgICAgICAgICBkaWVuc3R1bnRlcnJpY2h0ID0gMA0KICAg
ICAgICAgICAgbGVocmdhbmdMYW5nICAgID0gMA0KICAgICAgICAgICAgd2FjaGZyZWkgICAgICAg
ID0gMA0KICAgICAgICAgICAgZGllbnN0ZnJlaVRhZyAgID0gMA0KICAgICAgICAgICAgcGFyYWdy
YXBoMjEgICAgID0gMA0KICAgICAgICAgICAgYXpBdXNnbGVpY2hSZWluID0gMA0KICAgICAgICAg
ICAgZWluZ2VzcHJ1bmdlbiAgID0gMA0KICAgICAgICAgICAgZWluZ2VzcHJ1bmdlbl9mID0gMA0K
ICAgICAgICAgICAgZWluZ2VzcHJ1bmdlbl9zID0gMA0KICAgICAgICAgICAgZWluZ2VzcHJ1bmdl
bl9uID0gMA0KICAgICAgICAgICAga3JhbmtQZXJpb2RlbiAgID0gTmV3LU9iamVjdCAnU3lzdGVt
LkNvbGxlY3Rpb25zLkFycmF5TGlzdCcNCiAgICAgICAgfQ0KICAgICAgICAka3JhbmtTdGFydCA9
ICRudWxsDQogICAgICAgICRsZXR6dGVyS3JhbmtUYWcgPSAkbnVsbA0KICAgICAgICAkd2VEaWVu
c3RQcm9Xb2NoZSA9IEB7fQ0KICAgICAgICBmb3JlYWNoICgkZGF0dW0gaW4gJGRhdGVuU29ydGll
cnQpIHsNCiAgICAgICAgICAgIGlmICgkZGF0dW0gLWx0ICRjdXRTdGFydCAtb3IgJGRhdHVtIC1n
dCAkY3V0RW5kZSkgew0KICAgICAgICAgICAgICAgIGlmICgka3JhbmtTdGFydCkgew0KICAgICAg
ICAgICAgICAgICAgICBbdm9pZF0kc3RhdHMua3JhbmtQZXJpb2Rlbi5BZGQoW29yZGVyZWRdQHsg
dm9uID0gJGtyYW5rU3RhcnQ7IGJpcyA9ICRsZXR6dGVyS3JhbmtUYWcgfSkNCiAgICAgICAgICAg
ICAgICAgICAgJGtyYW5rU3RhcnQgPSAkbnVsbA0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAg
ICAgICAgICBjb250aW51ZQ0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgJGVpbnRyYWcgPSAk
cGxhbnVuZy5laW50cmFlZ2UuJGRhdHVtDQogICAgICAgICAgICAkd2VydCA9ICRudWxsDQogICAg
ICAgICAgICBpZiAoJGVpbnRyYWcgLWFuZCAkZWludHJhZy5QU09iamVjdC5Qcm9wZXJ0aWVzWyRw
ZXJzb25JZF0pIHsgJHdlcnQgPSBbc3RyaW5nXSRlaW50cmFnLiRwZXJzb25JZCB9DQogICAgICAg
ICAgICBpZiAoJG51bGwgLWVxICR3ZXJ0IC1vciAkd2VydCAtZXEgJycpIHsNCiAgICAgICAgICAg
ICAgICBpZiAoJGtyYW5rU3RhcnQpIHsNCiAgICAgICAgICAgICAgICAgICAgW3ZvaWRdJHN0YXRz
LmtyYW5rUGVyaW9kZW4uQWRkKFtvcmRlcmVkXUB7IHZvbiA9ICRrcmFua1N0YXJ0OyBiaXMgPSAk
bGV0enRlcktyYW5rVGFnIH0pDQogICAgICAgICAgICAgICAgICAgICRrcmFua1N0YXJ0ID0gJG51
bGwNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgY29udGludWUNCiAgICAgICAg
ICAgIH0NCiAgICAgICAgICAgIHRyeSB7ICRkYXR1bU9iaiA9IFtkYXRldGltZV06OlBhcnNlRXhh
Y3QoJGRhdHVtLCAneXl5eS1NTS1kZCcsICRudWxsKSB9IGNhdGNoIHsgY29udGludWUgfQ0KICAg
ICAgICAgICAgJGlzdFdFICAgICAgPSAkZGF0dW1PYmouRGF5T2ZXZWVrIC1lcSAnU2F0dXJkYXkn
IC1vciAkZGF0dW1PYmouRGF5T2ZXZWVrIC1lcSAnU3VuZGF5Jw0KICAgICAgICAgICAgJGlzdEZl
aWVyICAgPSAkZmVpZXJ0YWdlLkNvbnRhaW5zS2V5KCRkYXR1bSkNCiAgICAgICAgICAgICRtb3Jn
ZW4gICAgID0gJGRhdHVtT2JqLkFkZERheXMoMSkuVG9TdHJpbmcoJ3l5eXktTU0tZGQnKQ0KICAg
ICAgICAgICAgJGlzdFZvckZlaWVyID0gJGZlaWVydGFnZS5Db250YWluc0tleSgkbW9yZ2VuKQ0K
ICAgICAgICAgICAgJHplaXRQcmVmaXggPSAnJw0KICAgICAgICAgICAgaWYgKCR3ZXJ0Lkxlbmd0
aCAtZ2UgMiAtYW5kICR3ZXJ0LlN1YnN0cmluZygxLDEpIC1lcSAnLScpIHsgJHplaXRQcmVmaXgg
PSAkd2VydC5TdWJzdHJpbmcoMCwyKSB9DQogICAgICAgICAgICAkaXN0RGllbnN0ID0gJGZhbHNl
DQogICAgICAgICAgICBzd2l0Y2ggKCR6ZWl0UHJlZml4KSB7DQogICAgICAgICAgICAgICAgJ0Yt
JyB7ICRzdGF0cy5mcnVlaCsrOyAkc3RhdHMuZ2VzYW10Kys7ICRpc3REaWVuc3QgPSAkdHJ1ZSB9
DQogICAgICAgICAgICAgICAgJ1MtJyB7ICRzdGF0cy5zcGFldCsrOyAkc3RhdHMuZ2VzYW10Kys7
ICRpc3REaWVuc3QgPSAkdHJ1ZSB9DQogICAgICAgICAgICAgICAgJ04tJyB7ICRzdGF0cy5uYWNo
dCsrOyAkc3RhdHMuZ2VzYW10Kys7ICRpc3REaWVuc3QgPSAkdHJ1ZSB9DQogICAgICAgICAgICB9
DQogICAgICAgICAgICBpZiAoLW5vdCAkaXN0RGllbnN0IC1hbmQgKCR3ZXJ0IC1lcSAnU0QnIC1v
ciAkd2VydCAtZXEgJ1NFJykpIHsNCiAgICAgICAgICAgICAgICAkc3RhdHMuc29uZGVyZGllbnN0
Kys7ICRzdGF0cy5nZXNhbXQrKzsgJGlzdERpZW5zdCA9ICR0cnVlDQogICAgICAgICAgICB9DQog
ICAgICAgICAgICBpZiAoJHplaXRQcmVmaXggLWluIEAoJ0YtJywnUy0nLCdOLScpIC1hbmQgJHdl
cnQuTGVuZ3RoIC1nZSA1KSB7DQogICAgICAgICAgICAgICAgJHJvbGxlID0gJHdlcnQuU3Vic3Ry
aW5nKDIsMykNCiAgICAgICAgICAgICAgICBpZiAoJHJvbGxlIC1lcSAnREdMJykgeyAkc3RhdHMu
ZGdsKysgfQ0KICAgICAgICAgICAgICAgIGVsc2VpZiAoJHJvbGxlIC1lcSAnV0RGJykgeyAkc3Rh
dHMud2RmKysgfQ0KICAgICAgICAgICAgICAgIGVsc2VpZiAoJHJvbGxlIC1lcSAnRkJQJykgeyAk
c3RhdHMuZmJwKysgfQ0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgaWYgKCR3ZXJ0IC1lcSAn
a3InKSB7DQogICAgICAgICAgICAgICAgJHN0YXRzLmtyYW5rKysNCiAgICAgICAgICAgICAgICAk
bGV0enRlcktyYW5rVGFnID0gJGRhdHVtDQogICAgICAgICAgICAgICAgaWYgKC1ub3QgJGtyYW5r
U3RhcnQpIHsgJGtyYW5rU3RhcnQgPSAkZGF0dW0gfQ0KICAgICAgICAgICAgfSBlbHNlIHsNCiAg
ICAgICAgICAgICAgICBpZiAoJGtyYW5rU3RhcnQpIHsNCiAgICAgICAgICAgICAgICAgICAgW3Zv
aWRdJHN0YXRzLmtyYW5rUGVyaW9kZW4uQWRkKFtvcmRlcmVkXUB7IHZvbiA9ICRrcmFua1N0YXJ0
OyBiaXMgPSAkbGV0enRlcktyYW5rVGFnIH0pDQogICAgICAgICAgICAgICAgICAgICRrcmFua1N0
YXJ0ID0gJG51bGwNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9DQogICAgICAgICAg
ICBpZiAoJHdlcnQgLWVxICdLdXInKSB7ICRzdGF0cy5rdXIrKyB9DQogICAgICAgICAgICBpZiAo
JHdlcnQgLWVxICdVcmwnKSB7ICRzdGF0cy51cmxhdWIrKyB9DQogICAgICAgICAgICBpZiAoJHdl
cnQgLWVxICdTVScpICB7ICRzdGF0cy5zb25kZXJ1cmxhdWIrKyB9DQogICAgICAgICAgICBpZiAo
JHdlcnQgLWluIEAoJ0xHJywnVFQnLCdBdUYnLCdGQicsJ1NlbScsJ0VUTScsJ0RVJykpIHsgJHN0
YXRzLmxlaHJnYW5nKysgfQ0KICAgICAgICAgICAgaWYgKCR3ZXJ0IC1pbiBAKCfCpzIxJywnMjFh
JywnQVpBJykpIHsgJHN0YXRzLmF6QXVzZ2xlaWNoKysgfQ0KICAgICAgICAgICAgaWYgKCR3ZXJ0
IC1pbiBAKCdBdUYnLCdFVE0nLCdTZW0nLCdUVCcsJ1R6RicpKSB7ICRzdGF0cy5mb3J0YmlsZHVu
ZysrIH0NCiAgICAgICAgICAgIGlmICgkd2VydCAtZXEgJ0RVJykgICB7ICRzdGF0cy5kaWVuc3R1
bnRlcnJpY2h0KysgfQ0KICAgICAgICAgICAgaWYgKCR3ZXJ0IC1lcSAnTEcnKSAgIHsgJHN0YXRz
LmxlaHJnYW5nTGFuZysrIH0NCiAgICAgICAgICAgIGlmICgkd2VydCAtaW4gQCgnwqcyMScsJzIx
YScpKSB7ICRzdGF0cy5wYXJhZ3JhcGgyMSsrIH0NCiAgICAgICAgICAgIGlmICgkd2VydCAtZXEg
J0FaQScpICB7ICRzdGF0cy5hekF1c2dsZWljaFJlaW4rKyB9DQogICAgICAgICAgICBpZiAoJHdl
cnQgLWVxICd3ZnInKSAgeyAkc3RhdHMud2FjaGZyZWkrKyB9DQogICAgICAgICAgICBpZiAoJHdl
cnQgLWVxICdkZnInKSAgeyAkc3RhdHMuZGllbnN0ZnJlaVRhZysrIH0NCiAgICAgICAgICAgIGlm
ICgkaXN0V0UgLWFuZCAkaXN0RGllbnN0KSAgICAgICB7ICRzdGF0cy53b2NoZW5lbmRUYWdlKysg
fQ0KICAgICAgICAgICAgaWYgKCRpc3RGZWllciAtYW5kICRpc3REaWVuc3QpICAgIHsgJHN0YXRz
LmZlaWVydGFnVGFnZSsrIH0NCiAgICAgICAgICAgIGlmICgkaXN0Vm9yRmVpZXIgLWFuZCAkaXN0
RGllbnN0KSB7ICRzdGF0cy52b3JGZWllcnRhZ1RhZ2UrKyB9DQogICAgICAgICAgICBpZiAoJGlz
dERpZW5zdCkgew0KICAgICAgICAgICAgICAgIGlmICgkaXN0RmVpZXIpIHsNCiAgICAgICAgICAg
ICAgICAgICAgJHN0YXRzLmZlaWVydGFnRGllbnN0ZSsrDQogICAgICAgICAgICAgICAgfSBlbHNl
aWYgKCRkYXR1bU9iai5EYXlPZldlZWsgLWVxICdTYXR1cmRheScpIHsNCiAgICAgICAgICAgICAg
ICAgICAgJHN0YXRzLnNhbXN0YWdEaWVuc3RlKysNCiAgICAgICAgICAgICAgICB9IGVsc2VpZiAo
JGRhdHVtT2JqLkRheU9mV2VlayAtZXEgJ1N1bmRheScpIHsNCiAgICAgICAgICAgICAgICAgICAg
JHN0YXRzLnNvbm50YWdEaWVuc3RlKysNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9
DQogICAgICAgICAgICBpZiAoKCRkYXR1bU9iai5EYXlPZldlZWsgLWVxICdTYXR1cmRheScgLW9y
ICRkYXR1bU9iai5EYXlPZldlZWsgLWVxICdTdW5kYXknKSAtYW5kIC1ub3QgJGlzdEZlaWVyIC1h
bmQgJHdlcnQgLWluIEAoJ1VybCcsJ2tyJywnS3VyJywnU1UnLCdMRycsJ0F1RicsJ0VUTScsJ1Nl
bScsJ1RUJywnVHpGJywnRFUnLCdCVicsJ2FiZycsJ0JBTycsJ0hPJykpIHsNCiAgICAgICAgICAg
ICAgICAkc3RhdHMud2VUYWdlQWJ3ZXNlbmQrKw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAg
aWYgKCRpc3REaWVuc3QgLWFuZCAoJGRhdHVtT2JqLkRheU9mV2VlayAtZXEgJ1NhdHVyZGF5JyAt
b3IgJGRhdHVtT2JqLkRheU9mV2VlayAtZXEgJ1N1bmRheScpKSB7DQogICAgICAgICAgICAgICAg
aWYgKCRkYXR1bU9iai5EYXlPZldlZWsgLWVxICdTYXR1cmRheScpIHsNCiAgICAgICAgICAgICAg
ICAgICAgJGFua2VyID0gJGRhdHVtDQogICAgICAgICAgICAgICAgfSBlbHNlIHsNCiAgICAgICAg
ICAgICAgICAgICAgJGFua2VyID0gJGRhdHVtT2JqLkFkZERheXMoLTEpLlRvU3RyaW5nKCd5eXl5
LU1NLWRkJykNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgaWYgKC1ub3QgJHdl
RGllbnN0UHJvV29jaGUuQ29udGFpbnNLZXkoJGFua2VyKSkgew0KICAgICAgICAgICAgICAgICAg
ICAkd2VEaWVuc3RQcm9Xb2NoZVskYW5rZXJdID0gQHsgc2EgPSAkZmFsc2U7IHNvID0gJGZhbHNl
IH0NCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgaWYgKCRkYXR1bU9iai5EYXlP
ZldlZWsgLWVxICdTYXR1cmRheScpIHsNCiAgICAgICAgICAgICAgICAgICAgJHdlRGllbnN0UHJv
V29jaGVbJGFua2VyXS5zYSA9ICR0cnVlDQogICAgICAgICAgICAgICAgfSBlbHNlIHsNCiAgICAg
ICAgICAgICAgICAgICAgJHdlRGllbnN0UHJvV29jaGVbJGFua2VyXS5zbyA9ICR0cnVlDQogICAg
ICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQogICAgICAgIGlmICgka3Jh
bmtTdGFydCkgew0KICAgICAgICAgICAgW3ZvaWRdJHN0YXRzLmtyYW5rUGVyaW9kZW4uQWRkKFtv
cmRlcmVkXUB7IHZvbiA9ICRrcmFua1N0YXJ0OyBiaXMgPSAkbGV0enRlcktyYW5rVGFnIH0pDQog
ICAgICAgIH0NCiAgICAgICAgZm9yZWFjaCAoJHcgaW4gJHdlRGllbnN0UHJvV29jaGUuVmFsdWVz
KSB7DQogICAgICAgICAgICBpZiAoJHcuc2EgLWFuZCAkdy5zbykgeyAkc3RhdHMua29tcGxldHRl
V0UrKyB9DQogICAgICAgIH0NCiAgICAgICAgJHN0YXRzLndlVGFnZVZlcmZ1ZWdiYXIgPSBbTWF0
aF06Ok1heCgwLCAkc3RhdHMud2VUYWdlTWF4IC0gJHN0YXRzLndlVGFnZUFid2VzZW5kKQ0KICAg
ICAgICBbdm9pZF0kc3RhdGlzdGlrZW4uQWRkKCRzdGF0cykNCiAgICB9DQoNCiAgICAjID09PT09
IEFnZ3JlZ2F0aW9uICJFaW5nZXNwcnVuZ2VuIiBhdXMgZGVtIExvZ2J1Y2ggPT09PT0NCiAgICAj
IFphZWhsdCB2ZXJhbnR3b3J0dW5nLmVpbmdlc3BydW5nZW4tRWludHJhZWdlIHBybyBQZXJzb24s
IGdydXBwaWVydCBuYWNoDQogICAgIyBTY2hpY2h0IChGL1MvTikuIFZlcmJpbmRsaWNoa2VpdHNm
ZW5zdGVyLUxvZ2lrIGxpZWd0IGltIENsaWVudCAoZGFzDQogICAgIyBFdmVudCB3aXJkIG9obmVo
aW4gbnVyIGluIGRlciBWZXJiaW5kbGljaGtlaXQgZW1pdHRpZXJ0KSDigJQgd2lyIHN1bW1pZXJl
bg0KICAgICMgaGllciBlaW5mYWNoIGFsbGUgZXhpc3RpZXJlbmRlbiBFaW50cmFlZ2UgaW0gQ3V0
LVplaXRyYXVtLg0KICAgICRsb2didWNoID0gJG51bGwNCiAgICB0cnkgeyAkbG9nYnVjaCA9IFJl
YWQtSnNvbk9iamVjdCAnbG9nYnVjaC5qc29uJyB9IGNhdGNoIHsgJGxvZ2J1Y2ggPSAkbnVsbCB9
DQogICAgaWYgKCRsb2didWNoKSB7DQogICAgICAgICRzdGF0c0J5UGlkID0gQHt9DQogICAgICAg
IGZvcmVhY2ggKCRzIGluICRzdGF0aXN0aWtlbikgeyAkc3RhdHNCeVBpZFtbc3RyaW5nXSRzLnBl
cnNvbklkXSA9ICRzIH0NCiAgICAgICAgZm9yZWFjaCAoJGVudHJ5IGluIEAoJGxvZ2J1Y2gpKSB7
DQogICAgICAgICAgICBpZiAoLW5vdCAkZW50cnkpIHsgY29udGludWUgfQ0KICAgICAgICAgICAg
aWYgKC1ub3QgJGVudHJ5LlBTT2JqZWN0LlByb3BlcnRpZXNbJ2FrdGlvbiddKSB7IGNvbnRpbnVl
IH0NCiAgICAgICAgICAgIGlmIChbc3RyaW5nXSRlbnRyeS5ha3Rpb24gLW5lICd2ZXJhbnR3b3J0
dW5nLmVpbmdlc3BydW5nZW4nKSB7IGNvbnRpbnVlIH0NCiAgICAgICAgICAgICRwaWRLZXkgPSAn
Jw0KICAgICAgICAgICAgaWYgKCRlbnRyeS5QU09iamVjdC5Qcm9wZXJ0aWVzWydwZXJzb25JZCdd
KSB7ICRwaWRLZXkgPSBbc3RyaW5nXSRlbnRyeS5wZXJzb25JZCB9DQogICAgICAgICAgICBpZiAo
LW5vdCAkc3RhdHNCeVBpZC5Db250YWluc0tleSgkcGlkS2V5KSkgeyBjb250aW51ZSB9DQogICAg
ICAgICAgICAjIEN1dC1aZWl0cmF1bTogbnVyIEV2ZW50cyBtaXQgRGF0dW0gaW0gQ3V0IHphZWhs
ZW4gKFZlcmJpbmRsaWNoa2VpdA0KICAgICAgICAgICAgIyBsaWVndCBoZXV0ZSArIDE0IFRhZ2Us
IGRhaGVyIHBhc3NlbiBkaWUgRWluZ2VzcHJpbmdlbi1FdmVudHMgbmFoZXp1DQogICAgICAgICAg
ICAjIGltbWVyIHJlaW4sIGFiZXIgVm9yYXVzLUtvcnJla3R1cmVuIGtvZW5udGVuIHdlaXRlciBk
cmF1c3NlbiBsaWVnZW4pLg0KICAgICAgICAgICAgJGRhdHVtID0gJycNCiAgICAgICAgICAgIGlm
ICgkZW50cnkuUFNPYmplY3QuUHJvcGVydGllc1snZGF0dW0nXSkgeyAkZGF0dW0gPSBbc3RyaW5n
XSRlbnRyeS5kYXR1bSB9DQogICAgICAgICAgICBpZiAoJGRhdHVtIC1hbmQgKCRkYXR1bSAtbHQg
JGN1dFN0YXJ0IC1vciAkZGF0dW0gLWd0ICRjdXRFbmRlKSkgeyBjb250aW51ZSB9DQogICAgICAg
ICAgICAkcyA9ICRzdGF0c0J5UGlkWyRwaWRLZXldDQogICAgICAgICAgICAkcy5laW5nZXNwcnVu
Z2VuKysNCiAgICAgICAgICAgICRzY2ggPSAnJw0KICAgICAgICAgICAgaWYgKCRlbnRyeS5QU09i
amVjdC5Qcm9wZXJ0aWVzWydzY2hpY2h0J10pIHsgJHNjaCA9IFtzdHJpbmddJGVudHJ5LnNjaGlj
aHQgfQ0KICAgICAgICAgICAgaWYgICAgICgkc2NoIC1lcSAnRicpIHsgJHMuZWluZ2VzcHJ1bmdl
bl9mKysgfQ0KICAgICAgICAgICAgZWxzZWlmICgkc2NoIC1lcSAnUycpIHsgJHMuZWluZ2VzcHJ1
bmdlbl9zKysgfQ0KICAgICAgICAgICAgZWxzZWlmICgkc2NoIC1lcSAnTicpIHsgJHMuZWluZ2Vz
cHJ1bmdlbl9uKysgfQ0KICAgICAgICB9DQogICAgfQ0KDQogICAgcmV0dXJuICwkc3RhdGlzdGlr
ZW4NCn0NCg0KIyBMb2didWNoLVJlYWRlciAtLSBsaWVmZXJ0IGRlbiBVVEYtOC1UZXh0IGRlciBM
b2didWNoLURhdGVpIChvZGVyICdbXScgd2VubiBsZWVyKS4NCmZ1bmN0aW9uIEdldC1Mb2didWNo
VGV4dCB7DQogICAgJHR4dCA9IFJlYWQtVGV4dEZpbGUgJ2xvZ2J1Y2guanNvbicNCiAgICBpZiAo
JG51bGwgLWVxICR0eHQpIHsgcmV0dXJuICdbXScgfQ0KICAgIHJldHVybiAkdHh0DQp9DQoNCmZ1
bmN0aW9uIFRlc3QtRGFyZlplbGxlRWRpdGllcmVuKCRaaWVsUGVyc29uKSB7DQogICAgJHIgPSBH
ZXQtUmVjaHRlDQogICAgaWYgKCRudWxsIC1lcSAkci5lZGl0aWVyZW4pIHsgcmV0dXJuICR0cnVl
IH0gICMgU3VwZXJVc2VyDQogICAgaWYgKCRudWxsIC1lcSAkWmllbFBlcnNvbikgeyByZXR1cm4g
JGZhbHNlIH0NCiAgICBpZiAoJG51bGwgLW5lICRyLm1laW5lUGVyc29uSWQgLWFuZCBbaW50XSRa
aWVsUGVyc29uLmlkIC1lcSBbaW50XSRyLm1laW5lUGVyc29uSWQpIHsgcmV0dXJuICR0cnVlIH0N
CiAgICAjIE1pa3JvdGVhbS1NaXRnbGllZGVyIGR1ZXJmZW4gZWluYW5kZXIgbWl0LXBsYW5lbiAo
VXNlci1XdW5zY2gNCiAgICAjIDIwMjYtMDUtMjMpLiBXaXIgbGVzZW4gTWlrcm90ZWFtLUxpc3Rl
IGF1cyBhZG1pbi5qc29uIGZyaXNjaCDigJQgZGVyDQogICAgIyBtdGltZS1iYXNpZXJ0ZSBDYWNo
ZSBpbiBHZXQtUmVjaHRlIGNhY2hlZCBkaWUgdm9sbGUgUmVjaHRlLVN0cnVrdHVyLA0KICAgICMg
YWJlciBtaWtyb3RlYW1zIHNpbmQgZG9ydCBuaWNodCBlbnRoYWx0ZW4sIGRhaGVyIGhpZXIgb24t
ZGVtYW5kLg0KICAgIGlmICgkbnVsbCAtbmUgJHIubWVpbmVQZXJzb25JZCkgew0KICAgICAgICB0
cnkgew0KICAgICAgICAgICAgJGFkbWluID0gUmVhZC1Kc29uT2JqZWN0ICdhZG1pbi5qc29uJw0K
ICAgICAgICAgICAgaWYgKCRudWxsIC1uZSAkYWRtaW4gLWFuZCAkYWRtaW4uUFNPYmplY3QuUHJv
cGVydGllc1snbWlrcm90ZWFtcyddKSB7DQogICAgICAgICAgICAgICAgJG1laW5lSWQgPSBbaW50
XSRyLm1laW5lUGVyc29uSWQNCiAgICAgICAgICAgICAgICAkemllbElkICA9IFtpbnRdJFppZWxQ
ZXJzb24uaWQNCiAgICAgICAgICAgICAgICBmb3JlYWNoICgkdCBpbiBAKCRhZG1pbi5taWtyb3Rl
YW1zKSkgew0KICAgICAgICAgICAgICAgICAgICBpZiAoJG51bGwgLWVxICR0IC1vciAtbm90ICR0
LlBTT2JqZWN0LlByb3BlcnRpZXNbJ3BlcnNvbklkcyddKSB7IGNvbnRpbnVlIH0NCiAgICAgICAg
ICAgICAgICAgICAgJGlkcyA9IEAoJHQucGVyc29uSWRzIHwgRm9yRWFjaC1PYmplY3QgeyBbaW50
XSRfIH0pDQogICAgICAgICAgICAgICAgICAgIGlmICgkaWRzIC1jb250YWlucyAkbWVpbmVJZCAt
YW5kICRpZHMgLWNvbnRhaW5zICR6aWVsSWQpIHsgcmV0dXJuICR0cnVlIH0NCiAgICAgICAgICAg
ICAgICB9DQogICAgICAgICAgICB9DQogICAgICAgIH0gY2F0Y2gge30NCiAgICB9DQogICAgJGVk
ID0gJHIuZWRpdGllcmVuDQogICAgaWYgKCRlZC5wZXJzb25lbklkcyAtY29udGFpbnMgW2ludF0k
WmllbFBlcnNvbi5pZCkgeyByZXR1cm4gJHRydWUgfQ0KICAgIGlmICgkWmllbFBlcnNvbi5QU09i
amVjdC5Qcm9wZXJ0aWVzWydncnVwcGUnXSAtYW5kICRlZC5kaWVuc3RncnVwcGVuIC1jb250YWlu
cyBbc3RyaW5nXSRaaWVsUGVyc29uLmdydXBwZSkgeyByZXR1cm4gJHRydWUgfQ0KICAgIGlmICgk
WmllbFBlcnNvbi5QU09iamVjdC5Qcm9wZXJ0aWVzWydvZSddIC1hbmQgJGVkLnN0YW5kb3J0ZSAt
Y29udGFpbnMgW3N0cmluZ10kWmllbFBlcnNvbi5vZSkgeyByZXR1cm4gJHRydWUgfQ0KICAgIHJl
dHVybiAkZmFsc2UNCn0NCg0KIyBBbGlhcyBmdWVyIGJlc3RlaGVuZGUgR3VhcmRzIOKAlCBtYXBw
dCBhdWYgJ2FkbWluaXN0cmF0aW9uJy1CZXJlaWNoLg0KZnVuY3Rpb24gVGVzdC1Jc3RBZG1pbiB7
IHJldHVybiAoVGVzdC1EYXJmQmVyZWljaCAnYWRtaW5pc3RyYXRpb24nKSB9DQoNCiMgRm9yY2Ut
TG9jay1CZXJlY2h0aWd1bmc6IEZhY2hhdWZzaWNodCBvZGVyIFN1cGVyVXNlciBkdWVyZmVuIGpl
ZGVuIEVkaXQtTG9jaw0KIyB1ZWJlcm5laG1lbi4gU2llaGUgUGhhc2UgRiAoTGl2ZS1TeW5jKS4N
CmZ1bmN0aW9uIFRlc3QtRGFyZkxvY2tVZWJlcnNjaHJlaWJlbiB7DQogICAgJHIgPSBHZXQtUmVj
aHRlDQogICAgaWYgKCRyLmlzdFN1cGVyVXNlcikgeyByZXR1cm4gJHRydWUgfQ0KICAgIGlmICgk
ci5pc3RGYWNoYXVmc2ljaHQpIHsgcmV0dXJuICR0cnVlIH0NCiAgICByZXR1cm4gJGZhbHNlDQp9
DQoNCiMgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0NCiMgWkVMTC1MT0NLICsgQ0hBTkdFLUxPRyAoTGl2
ZS1TeW5jKQ0KIyBTdG9yYWdlOiBkYXRhLy5sb2Nrcy96ZWxsZV88ZGF0dW0+XzxwZXJzb25JZD4u
bG9jaw0KIyAgICAgICAgICBkYXRhL2NoYW5nZXMuanNvbiAoRklGTywgbWF4IDUwMCBFaW50cmFl
Z2UpDQojIFN0YWxlLUxvY2stVFRMOiA2MHMgb2huZSBIZWFydGJlYXQgLT4gYXV0b21hdGlzY2gg
ZW50ZmVybnQNCiMgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCg0KJHNjcmlwdDpDZWxsTG9ja0RpciA9
IEpvaW4tUGF0aCAkRGF0YURpciAnLmxvY2tzJw0KJHNjcmlwdDpDZWxsTG9ja1N0YWxlU2VjID0g
NjANCiRzY3JpcHQ6Q2hhbmdlTG9nTWF4ID0gNTAwDQoNCmZ1bmN0aW9uIEluaXRpYWxpemUtQ2Vs
bExvY2tEaXIgew0KICAgIGlmICgtbm90IChUZXN0LVBhdGggJHNjcmlwdDpDZWxsTG9ja0Rpcikp
IHsNCiAgICAgICAgdHJ5IHsgTmV3LUl0ZW0gLUl0ZW1UeXBlIERpcmVjdG9yeSAtUGF0aCAkc2Ny
aXB0OkNlbGxMb2NrRGlyIC1Gb3JjZSB8IE91dC1OdWxsIH0gY2F0Y2gge30NCiAgICB9DQp9DQoN
CmZ1bmN0aW9uIFRlc3QtTG9ja1NhZmVJZCgkV2VydCkgew0KICAgIGlmIChbc3RyaW5nXTo6SXNO
dWxsT3JXaGl0ZVNwYWNlKCRXZXJ0KSkgeyByZXR1cm4gJGZhbHNlIH0NCiAgICByZXR1cm4gKCRX
ZXJ0IC1tYXRjaCAnXltBLVphLXowLTlfXC1dKyQnKQ0KfQ0KDQpmdW5jdGlvbiBUZXN0LUxvY2tT
YWZlRGF0dW0oJFdlcnQpIHsNCiAgICByZXR1cm4gKCRXZXJ0IC1tYXRjaCAnXlxkezR9LVxkezJ9
LVxkezJ9JCcpDQp9DQoNCmZ1bmN0aW9uIEdldC1DZWxsTG9ja1BhdGgoJERhdHVtLCAkUGVyc29u
SWQpIHsNCiAgICBJbml0aWFsaXplLUNlbGxMb2NrRGlyDQogICAgJFNhZmUgPSAiemVsbGVfJCgk
RGF0dW0pXyQoJFBlcnNvbklkKS5sb2NrIg0KICAgIHJldHVybiBKb2luLVBhdGggJHNjcmlwdDpD
ZWxsTG9ja0RpciAkU2FmZQ0KfQ0KDQpmdW5jdGlvbiBSZWFkLUNlbGxMb2NrKCREYXR1bSwgJFBl
cnNvbklkKSB7DQogICAgJFBhdGggPSBHZXQtQ2VsbExvY2tQYXRoICREYXR1bSAkUGVyc29uSWQN
CiAgICBpZiAoLW5vdCAoVGVzdC1QYXRoICRQYXRoKSkgeyByZXR1cm4gJG51bGwgfQ0KICAgIHRy
eSB7DQogICAgICAgICRDb250ZW50ID0gW1N5c3RlbS5JTy5GaWxlXTo6UmVhZEFsbFRleHQoJFBh
dGgsIFtTeXN0ZW0uVGV4dC5FbmNvZGluZ106OlVURjgpDQogICAgICAgIGlmIChbc3RyaW5nXTo6
SXNOdWxsT3JXaGl0ZVNwYWNlKCRDb250ZW50KSkgeyByZXR1cm4gJG51bGwgfQ0KICAgICAgICAk
TG9jayA9ICRDb250ZW50IHwgQ29udmVydEZyb20tSnNvbg0KICAgICAgICAkTGFzdEJlYXQgPSBb
RGF0ZVRpbWVdOjpQYXJzZSgkTG9jay5sYXN0QmVhdCkuVG9Vbml2ZXJzYWxUaW1lKCkNCiAgICAg
ICAgJEFnZVNlYyA9ICgoR2V0LURhdGUpLlRvVW5pdmVyc2FsVGltZSgpIC0gJExhc3RCZWF0KS5U
b3RhbFNlY29uZHMNCiAgICAgICAgaWYgKCRBZ2VTZWMgLWd0ICRzY3JpcHQ6Q2VsbExvY2tTdGFs
ZVNlYykgew0KICAgICAgICAgICAgdHJ5IHsgUmVtb3ZlLUl0ZW0gJFBhdGggLUZvcmNlIC1FcnJv
ckFjdGlvbiBTaWxlbnRseUNvbnRpbnVlIH0gY2F0Y2gge30NCiAgICAgICAgICAgIHJldHVybiAk
bnVsbA0KICAgICAgICB9DQogICAgICAgIHJldHVybiAkTG9jaw0KICAgIH0gY2F0Y2ggew0KICAg
ICAgICB0cnkgeyBSZW1vdmUtSXRlbSAkUGF0aCAtRm9yY2UgLUVycm9yQWN0aW9uIFNpbGVudGx5
Q29udGludWUgfSBjYXRjaCB7fQ0KICAgICAgICByZXR1cm4gJG51bGwNCiAgICB9DQp9DQoNCmZ1
bmN0aW9uIFdyaXRlLUNlbGxMb2NrKCRMb2NrKSB7DQogICAgJFBhdGggPSBHZXQtQ2VsbExvY2tQ
YXRoICRMb2NrLmRhdHVtICRMb2NrLnBlcnNvbklkDQogICAgJEpzb24gPSAkTG9jayB8IENvbnZl
cnRUby1Kc29uIC1EZXB0aCA1IC1Db21wcmVzcw0KICAgIFtTeXN0ZW0uSU8uRmlsZV06OldyaXRl
QWxsVGV4dCgkUGF0aCwgJEpzb24sIFtTeXN0ZW0uVGV4dC5FbmNvZGluZ106OlVURjgpDQp9DQoN
CmZ1bmN0aW9uIEFjcXVpcmUtQ2VsbExvY2soJERhdHVtLCAkUGVyc29uSWQsICRVc2VyLCAkUm9s
bGUsICRGb3JjZSA9ICRmYWxzZSkgew0KICAgICRFeGlzdGluZyA9IFJlYWQtQ2VsbExvY2sgJERh
dHVtICRQZXJzb25JZA0KICAgIGlmICgkbnVsbCAtbmUgJEV4aXN0aW5nKSB7DQogICAgICAgICRT
ZWxic3QgPSAoJEV4aXN0aW5nLnVzZXJuYW1lIC1pZXEgJFVzZXIpDQogICAgICAgIGlmICgtbm90
ICRTZWxic3QgLWFuZCAtbm90ICRGb3JjZSkgew0KICAgICAgICAgICAgcmV0dXJuIEB7IG9rID0g
JGZhbHNlOyBleGlzdGluZyA9ICRFeGlzdGluZyB9DQogICAgICAgIH0NCiAgICB9DQogICAgJE5v
dyA9IChHZXQtRGF0ZSkuVG9Vbml2ZXJzYWxUaW1lKCkuVG9TdHJpbmcoJ28nKQ0KICAgICRMb2Nr
ID0gW29yZGVyZWRdQHsNCiAgICAgICAgdG9rZW4gICAgPSBbR3VpZF06Ok5ld0d1aWQoKS5Ub1N0
cmluZygpDQogICAgICAgIGRhdHVtICAgID0gJERhdHVtDQogICAgICAgIHBlcnNvbklkID0gJFBl
cnNvbklkDQogICAgICAgIHVzZXJuYW1lID0gJFVzZXINCiAgICAgICAgcm9sbGUgICAgPSAkUm9s
bGUNCiAgICAgICAgbG9ja2VkQXQgPSAkTm93DQogICAgICAgIGxhc3RCZWF0ID0gJE5vdw0KICAg
IH0NCiAgICBXcml0ZS1DZWxsTG9jayAkTG9jaw0KICAgIGlmICgkbnVsbCAtbmUgJEV4aXN0aW5n
IC1hbmQgLW5vdCAoJEV4aXN0aW5nLnVzZXJuYW1lIC1pZXEgJFVzZXIpKSB7DQogICAgICAgIEFk
ZC1DaGFuZ2VMb2dFaW50cmFnICdsb2NrX2ZvcmNlJyBAew0KICAgICAgICAgICAgZGF0dW0gICAg
ICA9ICREYXR1bQ0KICAgICAgICAgICAgcGVyc29uSWQgICA9ICRQZXJzb25JZA0KICAgICAgICAg
ICAgdmVyZHJhZW5ndCA9ICRFeGlzdGluZy51c2VybmFtZQ0KICAgICAgICB9DQogICAgfQ0KICAg
IHJldHVybiBAeyBvayA9ICR0cnVlOyBsb2NrID0gJExvY2sgfQ0KfQ0KDQpmdW5jdGlvbiBGaW5k
LUNlbGxMb2NrQnlUb2tlbigkVG9rZW4pIHsNCiAgICBJbml0aWFsaXplLUNlbGxMb2NrRGlyDQog
ICAgaWYgKFtzdHJpbmddOjpJc051bGxPcldoaXRlU3BhY2UoJFRva2VuKSkgeyByZXR1cm4gJG51
bGwgfQ0KICAgIGZvcmVhY2ggKCRGIGluIEdldC1DaGlsZEl0ZW0gLVBhdGggJHNjcmlwdDpDZWxs
TG9ja0RpciAtRmlsdGVyICd6ZWxsZV8qLmxvY2snIC1GaWxlIC1FcnJvckFjdGlvbiBTaWxlbnRs
eUNvbnRpbnVlKSB7DQogICAgICAgIHRyeSB7DQogICAgICAgICAgICAkTCA9IFtTeXN0ZW0uSU8u
RmlsZV06OlJlYWRBbGxUZXh0KCRGLkZ1bGxOYW1lLCBbU3lzdGVtLlRleHQuRW5jb2RpbmddOjpV
VEY4KSB8IENvbnZlcnRGcm9tLUpzb24NCiAgICAgICAgICAgIGlmICgkTC50b2tlbiAtZXEgJFRv
a2VuKSB7IHJldHVybiBAeyBsb2NrID0gJEw7IHBhdGggPSAkRi5GdWxsTmFtZSB9IH0NCiAgICAg
ICAgfSBjYXRjaCB7fQ0KICAgIH0NCiAgICByZXR1cm4gJG51bGwNCn0NCg0KZnVuY3Rpb24gUmVm
cmVzaC1DZWxsTG9jaygkVG9rZW4pIHsNCiAgICAkRiA9IEZpbmQtQ2VsbExvY2tCeVRva2VuICRU
b2tlbg0KICAgIGlmICgkbnVsbCAtZXEgJEYpIHsgcmV0dXJuIEB7IG9rID0gJGZhbHNlIH0gfQ0K
ICAgICRMID0gJEYubG9jaw0KICAgICRMLmxhc3RCZWF0ID0gKEdldC1EYXRlKS5Ub1VuaXZlcnNh
bFRpbWUoKS5Ub1N0cmluZygnbycpDQogICAgV3JpdGUtQ2VsbExvY2sgJEwNCiAgICByZXR1cm4g
QHsgb2sgPSAkdHJ1ZTsgbG9jayA9ICRMIH0NCn0NCg0KZnVuY3Rpb24gUmVsZWFzZS1DZWxsTG9j
aygkVG9rZW4pIHsNCiAgICAkRiA9IEZpbmQtQ2VsbExvY2tCeVRva2VuICRUb2tlbg0KICAgIGlm
ICgkbnVsbCAtZXEgJEYpIHsgcmV0dXJuIEB7IG9rID0gJGZhbHNlIH0gfQ0KICAgIHRyeSB7IFJl
bW92ZS1JdGVtICRGLnBhdGggLUZvcmNlIC1FcnJvckFjdGlvbiBTaWxlbnRseUNvbnRpbnVlIH0g
Y2F0Y2gge30NCiAgICByZXR1cm4gQHsgb2sgPSAkdHJ1ZTsgbG9jayA9ICRGLmxvY2sgfQ0KfQ0K
DQpmdW5jdGlvbiBHZXQtQWxsQWN0aXZlQ2VsbExvY2tzIHsNCiAgICBJbml0aWFsaXplLUNlbGxM
b2NrRGlyDQogICAgJFJlc3VsdCA9IE5ldy1PYmplY3QgU3lzdGVtLkNvbGxlY3Rpb25zLkFycmF5
TGlzdA0KICAgIGZvcmVhY2ggKCRGIGluIEdldC1DaGlsZEl0ZW0gLVBhdGggJHNjcmlwdDpDZWxs
TG9ja0RpciAtRmlsdGVyICd6ZWxsZV8qLmxvY2snIC1GaWxlIC1FcnJvckFjdGlvbiBTaWxlbnRs
eUNvbnRpbnVlKSB7DQogICAgICAgIHRyeSB7DQogICAgICAgICAgICAkTCA9IFtTeXN0ZW0uSU8u
RmlsZV06OlJlYWRBbGxUZXh0KCRGLkZ1bGxOYW1lLCBbU3lzdGVtLlRleHQuRW5jb2RpbmddOjpV
VEY4KSB8IENvbnZlcnRGcm9tLUpzb24NCiAgICAgICAgICAgICRMYXN0QmVhdCA9IFtEYXRlVGlt
ZV06OlBhcnNlKCRMLmxhc3RCZWF0KS5Ub1VuaXZlcnNhbFRpbWUoKQ0KICAgICAgICAgICAgJEFn
ZVNlYyA9ICgoR2V0LURhdGUpLlRvVW5pdmVyc2FsVGltZSgpIC0gJExhc3RCZWF0KS5Ub3RhbFNl
Y29uZHMNCiAgICAgICAgICAgIGlmICgkQWdlU2VjIC1ndCAkc2NyaXB0OkNlbGxMb2NrU3RhbGVT
ZWMpIHsNCiAgICAgICAgICAgICAgICB0cnkgeyBSZW1vdmUtSXRlbSAkRi5GdWxsTmFtZSAtRm9y
Y2UgLUVycm9yQWN0aW9uIFNpbGVudGx5Q29udGludWUgfSBjYXRjaCB7fQ0KICAgICAgICAgICAg
ICAgIGNvbnRpbnVlDQogICAgICAgICAgICB9DQogICAgICAgICAgICBbdm9pZF0kUmVzdWx0LkFk
ZChbb3JkZXJlZF1Aew0KICAgICAgICAgICAgICAgIGRhdHVtICAgID0gJEwuZGF0dW0NCiAgICAg
ICAgICAgICAgICBwZXJzb25JZCA9ICRMLnBlcnNvbklkDQogICAgICAgICAgICAgICAgdXNlcm5h
bWUgPSAkTC51c2VybmFtZQ0KICAgICAgICAgICAgICAgIHJvbGxlICAgID0gJEwucm9sbGUNCiAg
ICAgICAgICAgICAgICBsb2NrZWRBdCA9ICRMLmxvY2tlZEF0DQogICAgICAgICAgICAgICAgbGFz
dEJlYXQgPSAkTC5sYXN0QmVhdA0KICAgICAgICAgICAgfSkNCiAgICAgICAgfSBjYXRjaCB7fQ0K
ICAgIH0NCiAgICByZXR1cm4gLCRSZXN1bHQuVG9BcnJheSgpDQp9DQoNCiMgLS0tIENoYW5nZS1M
b2c6IGFwcGVuZC1vbmx5IExpc3RlIGRlciBsZXR6dGVuIEFlbmRlcnVuZ2VuLCBmdWVyIExpdmUt
U3luYyAtLS0NCiMgV0lDSFRJRzogUmVhZC1Nb2RpZnktV3JpdGUgaW5uZXJoYWxiIGVpbmVzIEZp
bGVMb2NrLCBzb25zdCBnZWhlbiBiZWkNCiMgY29uY3VycmVudCBTY2hyZWliZXJuICh6d2VpIFVz
ZXIgc3BlaWNoZXJuIGdsZWljaHplaXRpZykgRWludHJhZWdlDQojIHZlcmxvcmVuIOKAlCBsZXR6
dGVyIFNjaHJlaWJlciBnZXdpbm50Lg0KIyBIb2VjaHN0ZSBzZXEgaW0gQ2hhbmdlLUxvZyAoRklG
Ty1zaWNoZXI6IGJsZWlidCBtb25vdG9uLCBhdWNoIHdlbm4gYWx0ZQ0KIyBFaW50cmFlZ2UgcmF1
c2ZhbGxlbikuIFNwaWVnZWx0IF9tYXhfY2hhbmdlX3NlcSBpbiBkZXYvc2VydmVyLnB5Lg0KZnVu
Y3Rpb24gR2V0LU1heENoYW5nZVNlcSgkTG9nKSB7DQogICAgJG0gPSAwDQogICAgZm9yZWFjaCAo
JGUgaW4gQCgkTG9nKSkgew0KICAgICAgICBpZiAoJG51bGwgLWVxICRlKSB7IGNvbnRpbnVlIH0N
CiAgICAgICAgJHMgPSAkbnVsbA0KICAgICAgICBpZiAoJGUgLWlzIFtTeXN0ZW0uQ29sbGVjdGlv
bnMuSURpY3Rpb25hcnldKSB7ICRzID0gJGVbJ3NlcSddIH0NCiAgICAgICAgZWxzZWlmICgkZS5Q
U09iamVjdCAtYW5kICRlLlBTT2JqZWN0LlByb3BlcnRpZXNbJ3NlcSddKSB7ICRzID0gJGUuc2Vx
IH0NCiAgICAgICAgaWYgKCRudWxsIC1uZSAkcykgeyB0cnkgeyAkc3YgPSBbaW50XSRzOyBpZiAo
JHN2IC1ndCAkbSkgeyAkbSA9ICRzdiB9IH0gY2F0Y2gge30gfQ0KICAgIH0NCiAgICByZXR1cm4g
JG0NCn0NCg0KZnVuY3Rpb24gQWRkLUNoYW5nZUxvZ0VpbnRyYWcoJEtpbmQsICREZXRhaWxzKSB7
DQogICAgJGVpbnRyYWcgPSBbb3JkZXJlZF1Aew0KICAgICAgICB0cyAgICA9IChHZXQtRGF0ZSku
VG9Vbml2ZXJzYWxUaW1lKCkuVG9TdHJpbmcoJ28nKQ0KICAgICAgICBraW5kICA9ICRLaW5kDQog
ICAgICAgIHZvbiAgID0gIiREb21haW5cJFVzZXJuYW1lIg0KICAgICAgICByb2xsZSA9IChHZXQt
UmVjaHRlKS5yb2xsZQ0KICAgIH0NCiAgICBpZiAoJERldGFpbHMpIHsNCiAgICAgICAgZm9yZWFj
aCAoJGsgaW4gJERldGFpbHMuS2V5cykgeyAkZWludHJhZ1ska10gPSAkRGV0YWlsc1ska10gfQ0K
ICAgIH0NCiAgICB0cnkgew0KICAgICAgICBJbnZva2UtV2l0aEZpbGVMb2NrICdjaGFuZ2VzLmpz
b24nIHsNCiAgICAgICAgICAgICRsb2cgPSBSZWFkLUpzb25PYmplY3QgJ2NoYW5nZXMuanNvbicN
CiAgICAgICAgICAgIGlmICgkbnVsbCAtZXEgJGxvZyAtb3IgLW5vdCAoJGxvZyAtaXMgW2FycmF5
XSkpIHsgJGxvZyA9IEAoKSB9DQogICAgICAgICAgICAjIE1vbm90b25lIHNlcSBmdWVyIGRlbiBy
YWNlLWZyZWllbiBMaXZlLVN5bmMtQ3Vyc29yIChzdGF0dCBXYWxsLUNsb2NrKS4NCiAgICAgICAg
ICAgICRlaW50cmFnWydzZXEnXSA9IChHZXQtTWF4Q2hhbmdlU2VxICRsb2cpICsgMQ0KICAgICAg
ICAgICAgJG5ldSA9IEAoJGxvZykgKyBAKCRlaW50cmFnKQ0KICAgICAgICAgICAgaWYgKCRuZXUu
Q291bnQgLWd0ICRzY3JpcHQ6Q2hhbmdlTG9nTWF4KSB7DQogICAgICAgICAgICAgICAgJG5ldSA9
ICRuZXVbKCRuZXUuQ291bnQgLSAkc2NyaXB0OkNoYW5nZUxvZ01heCkuLigkbmV1LkNvdW50IC0g
MSldDQogICAgICAgICAgICB9DQogICAgICAgICAgICBXcml0ZS1Kc29uT2JqZWN0ICdjaGFuZ2Vz
Lmpzb24nICRuZXUgfCBPdXQtTnVsbA0KICAgICAgICB9IHwgT3V0LU51bGwNCiAgICB9IGNhdGNo
IHsNCiAgICAgICAgTG9nLUFwaSAoJ0NIQU5HRVMgV1JJVEUgRkVITEVSOiB7MH0nIC1mICRfLkV4
Y2VwdGlvbi5NZXNzYWdlKQ0KICAgIH0NCn0NCg0KIyBCYXRjaGVkLVZhcmlhbnRlIGZ1ZXIgQnVs
ay1FbmRwb2ludHMgKHouQi4gL2FwaS9wbGFudW5nL3plbGxlbi1idWxrOg0KIyBEcmFnLUZpbGwg
KyBMb2didWNoLVJlc3RvcmUpLiBTY2hyZWlidCBtZWhyZXJlIGNoYW5nZS1sb2ctRWludHJhZWdl
DQojIGluIEVJTkVNIEZpbGUtTG9jayArIEVJTkVNIFJlYWQvV3JpdGUgZGVyIGNoYW5nZXMuanNv
biDigJQgc29uc3Qgd3VlcmRlDQojIGVpbiAxNC1UYWdlLURyYWctRmlsbCAxNHggRmlsZS1Mb2Nr
ICsgMTR4IFJlYWQvV3JpdGUgZXJ6ZXVnZW4uDQojIERldGFpbHNMaXN0ZSA9IExpc3RlIHZvbiBI
YXNodGFibGVzLCBqZWRlIHRyYWVndCBkaWUgRGV0YWlsLUZlbGRlcg0KIyBmdWVyIGVpbmVuIGNo
YW5nZSAoJ2RhdHVtJywgJ3BlcnNvbklkJywgJ2FsdCcsICduZXUnLCAuLi4pLiBGb3JtYXQNCiMg
cHJvIEVpbnRyYWcgaXN0IGlkZW50aXNjaCB6dW0gU2luZ3VsYXItSGVscGVyIOKAlCBDbGllbnQt
VmVyYXJiZWl0dW5nDQojIChzeW5jLmpzIHN5bmNDaGFuZ2VzQW53ZW5kZW4pIHVudmVyYWVuZGVy
dC4NCmZ1bmN0aW9uIEFkZC1DaGFuZ2VMb2dFaW50cmFlZ2UoW3N0cmluZ10kS2luZCwgJERldGFp
bHNMaXN0ZSkgew0KICAgIGlmICgtbm90ICREZXRhaWxzTGlzdGUpIHsgcmV0dXJuIH0NCiAgICAk
bGlzdGVBcnIgPSBAKCREZXRhaWxzTGlzdGUpDQogICAgaWYgKCRsaXN0ZUFyci5Db3VudCAtZXEg
MCkgeyByZXR1cm4gfQ0KICAgICR0cyAgICA9IChHZXQtRGF0ZSkuVG9Vbml2ZXJzYWxUaW1lKCku
VG9TdHJpbmcoJ28nKQ0KICAgICR2b24gICA9ICIkRG9tYWluXCRVc2VybmFtZSINCiAgICAkcm9s
bGUgPSAoR2V0LVJlY2h0ZSkucm9sbGUNCiAgICAkZWludHJhZWdlID0gTmV3LU9iamVjdCBTeXN0
ZW0uQ29sbGVjdGlvbnMuQXJyYXlMaXN0DQogICAgZm9yZWFjaCAoJGQgaW4gJGxpc3RlQXJyKSB7
DQogICAgICAgICRlID0gW29yZGVyZWRdQHsgdHMgPSAkdHM7IGtpbmQgPSAkS2luZDsgdm9uID0g
JHZvbjsgcm9sbGUgPSAkcm9sbGUgfQ0KICAgICAgICBpZiAoJGQpIHsgZm9yZWFjaCAoJGsgaW4g
JGQuS2V5cykgeyAkZVska10gPSAkZFska10gfSB9DQogICAgICAgIFt2b2lkXSRlaW50cmFlZ2Uu
QWRkKCRlKQ0KICAgIH0NCiAgICB0cnkgew0KICAgICAgICBJbnZva2UtV2l0aEZpbGVMb2NrICdj
aGFuZ2VzLmpzb24nIHsNCiAgICAgICAgICAgICRsb2cgPSBSZWFkLUpzb25PYmplY3QgJ2NoYW5n
ZXMuanNvbicNCiAgICAgICAgICAgIGlmICgkbnVsbCAtZXEgJGxvZyAtb3IgLW5vdCAoJGxvZyAt
aXMgW2FycmF5XSkpIHsgJGxvZyA9IEAoKSB9DQogICAgICAgICAgICAkYmFzZSA9IEdldC1NYXhD
aGFuZ2VTZXEgJGxvZw0KICAgICAgICAgICAgJGkgPSAwDQogICAgICAgICAgICBmb3JlYWNoICgk
ZSBpbiAkZWludHJhZWdlKSB7ICRlWydzZXEnXSA9ICRiYXNlICsgMSArICRpOyAkaSsrIH0NCiAg
ICAgICAgICAgICRuZXUgPSBAKCRsb2cpICsgQCgkZWludHJhZWdlLlRvQXJyYXkoKSkNCiAgICAg
ICAgICAgIGlmICgkbmV1LkNvdW50IC1ndCAkc2NyaXB0OkNoYW5nZUxvZ01heCkgew0KICAgICAg
ICAgICAgICAgICRuZXUgPSAkbmV1WygkbmV1LkNvdW50IC0gJHNjcmlwdDpDaGFuZ2VMb2dNYXgp
Li4oJG5ldS5Db3VudCAtIDEpXQ0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgV3JpdGUtSnNv
bk9iamVjdCAnY2hhbmdlcy5qc29uJyAkbmV1IHwgT3V0LU51bGwNCiAgICAgICAgfSB8IE91dC1O
dWxsDQogICAgfSBjYXRjaCB7DQogICAgICAgIExvZy1BcGkgKCdDSEFOR0VTIFdSSVRFIEZFSExF
UjogezB9JyAtZiAkXy5FeGNlcHRpb24uTWVzc2FnZSkNCiAgICB9DQp9DQoNCmZ1bmN0aW9uIEdl
dC1DaGFuZ2VzU2luY2UoJFNlaXQpIHsNCiAgICAkbG9nID0gUmVhZC1Kc29uT2JqZWN0ICdjaGFu
Z2VzLmpzb24nDQogICAgaWYgKCRudWxsIC1lcSAkbG9nKSB7IHJldHVybiBAKCkgfQ0KICAgIGlm
IChbc3RyaW5nXTo6SXNOdWxsT3JXaGl0ZVNwYWNlKCRTZWl0KSkgeyByZXR1cm4gLEAoJGxvZykg
fQ0KICAgIHRyeSB7DQogICAgICAgICRzZWl0RHQgPSBbRGF0ZVRpbWVdOjpQYXJzZSgkU2VpdCku
VG9Vbml2ZXJzYWxUaW1lKCkNCiAgICAgICAgJHJlc3VsdCA9IE5ldy1PYmplY3QgU3lzdGVtLkNv
bGxlY3Rpb25zLkFycmF5TGlzdA0KICAgICAgICBmb3JlYWNoICgkZSBpbiBAKCRsb2cpKSB7DQog
ICAgICAgICAgICB0cnkgew0KICAgICAgICAgICAgICAgICRlRHQgPSBbRGF0ZVRpbWVdOjpQYXJz
ZShbc3RyaW5nXSRlLnRzKS5Ub1VuaXZlcnNhbFRpbWUoKQ0KICAgICAgICAgICAgICAgIGlmICgk
ZUR0IC1ndCAkc2VpdER0KSB7IFt2b2lkXSRyZXN1bHQuQWRkKCRlKSB9DQogICAgICAgICAgICB9
IGNhdGNoIHt9DQogICAgICAgIH0NCiAgICAgICAgcmV0dXJuICwkcmVzdWx0LlRvQXJyYXkoKQ0K
ICAgIH0gY2F0Y2ggew0KICAgICAgICByZXR1cm4gLEAoJGxvZykNCiAgICB9DQp9DQoNCiMgLS0t
IEZ1ZWhydW5nc2tyYWZ0LVphZWhsdW5nIC8gVW50ZXJiZXNldHp1bmdzLVBydWVmdW5nIC0tLQ0K
DQpmdW5jdGlvbiBHZXQtRnVlaHJ1bmdzU2NoaWNodExldHRlcigkV2VydCkgew0KICAgICMgTnVy
IERHTCB6YWVobHQgYWxzIEZ1ZWhydW5nLiBXREYvRkJQIHNpbmQgUm9sbGVuIGltIERpZW5zdCwg
YWJlciBrZWluZQ0KICAgICMgRnVlaHJ1bmdza3JhZWZ0ZSBmdWVyIGRpZSBNaW5kZXN0YmVzZXR6
dW5ncy1QcnVlZnVuZy4NCiAgICBpZiAoLW5vdCAkV2VydCAtb3IgJFdlcnQuTGVuZ3RoIC1sdCA1
KSB7IHJldHVybiAkbnVsbCB9DQogICAgJHByZWZpeCA9ICRXZXJ0LlN1YnN0cmluZygwLCAxKQ0K
ICAgIGlmICgkcHJlZml4IC1uZSAnRicgLWFuZCAkcHJlZml4IC1uZSAnUycgLWFuZCAkcHJlZml4
IC1uZSAnTicpIHsgcmV0dXJuICRudWxsIH0NCiAgICBpZiAoJFdlcnQuU3Vic3RyaW5nKDIsIDMp
IC1lcSAnREdMJykgeyByZXR1cm4gJHByZWZpeCB9DQogICAgcmV0dXJuICRudWxsDQp9DQoNCmZ1
bmN0aW9uIEdldC1GdWVocnVuZ3NDb3VudCgkUGxhbnVuZywgJERhdHVtLCAkU2NoaWNodCkgew0K
ICAgIGlmICgkbnVsbCAtZXEgJFBsYW51bmcgLW9yICRudWxsIC1lcSAkUGxhbnVuZy5wZXJzb25l
bikgeyByZXR1cm4gMCB9DQogICAgJGVpbnRyYWVnZSA9ICRudWxsDQogICAgaWYgKCRQbGFudW5n
LlBTT2JqZWN0LlByb3BlcnRpZXNbJ2VpbnRyYWVnZSddIC1hbmQgJFBsYW51bmcuZWludHJhZWdl
LlBTT2JqZWN0LlByb3BlcnRpZXNbJERhdHVtXSkgew0KICAgICAgICAkZWludHJhZWdlID0gJFBs
YW51bmcuZWludHJhZWdlLiREYXR1bQ0KICAgIH0NCiAgICBpZiAoJG51bGwgLWVxICRlaW50cmFl
Z2UpIHsgcmV0dXJuIDAgfQ0KICAgICRjb3VudCA9IDANCiAgICBmb3JlYWNoICgkcCBpbiBAKCRQ
bGFudW5nLnBlcnNvbmVuKSkgew0KICAgICAgICBpZiAoJHAuUFNPYmplY3QuUHJvcGVydGllc1sn
YWt0aXYnXSAtYW5kIC1ub3QgJHAuYWt0aXYpIHsgY29udGludWUgfQ0KICAgICAgICAkaWQgPSBb
c3RyaW5nXSRwLmlkDQogICAgICAgIGlmICgtbm90ICRlaW50cmFlZ2UuUFNPYmplY3QuUHJvcGVy
dGllc1skaWRdKSB7IGNvbnRpbnVlIH0NCiAgICAgICAgJHcgPSBbc3RyaW5nXSRlaW50cmFlZ2Uu
JGlkDQogICAgICAgIGlmICgoR2V0LUZ1ZWhydW5nc1NjaGljaHRMZXR0ZXIgJHcpIC1lcSAkU2No
aWNodCkgeyAkY291bnQrKyB9DQogICAgfQ0KICAgIHJldHVybiAkY291bnQNCn0NCg0KZnVuY3Rp
b24gVGVzdC1JblZlcmJpbmRsaWNoa2VpdCgkRGF0dW1TdHIpIHsNCiAgICAjIFJlZ2VsOiBVbnRl
cmJlc2V0enVuZ3MtQ2hlY2sgZ3JlaWZ0IG51ciBmdWVyIFRhZ2UgaW5uZXJoYWxiIGRlciBuYWVj
aHN0ZW4NCiAgICAjIDE0IFRhZ2UgKGlua2wuIGhldXRlKS4gRGF2b3IvZGFuYWNoIGlzdCBkZXIg
UGxhbnVuZ3MtS29ycmlkb3IgdW52ZXJiaW5kbGljaC4NCiAgICB0cnkgew0KICAgICAgICAkemll
bCA9IFtkYXRldGltZV06OlBhcnNlRXhhY3QoJERhdHVtU3RyLCAneXl5eS1NTS1kZCcsICRudWxs
KS5EYXRlDQogICAgICAgICRoZXV0ZSA9IChHZXQtRGF0ZSkuRGF0ZQ0KICAgICAgICAkZGlmZiA9
ICgkemllbCAtICRoZXV0ZSkuRGF5cw0KICAgICAgICByZXR1cm4gKCRkaWZmIC1nZSAwIC1hbmQg
JGRpZmYgLWxlIDE0KQ0KICAgIH0gY2F0Y2ggeyByZXR1cm4gJGZhbHNlIH0NCn0NCg0KIyBQcmUt
d2FybTogUmVhZC1Kc29uT2JqZWN0IHNjaG9uIGhpZXIgbGF1ZmVuIGxhc3NlbiwgZGFtaXQgZGVy
IHRldXJlDQojIEVyc3QtUGFyc2UgKENvbnZlcnRGcm9tLUpzb24gZnVlciBkaWUgMjAwLUtCLUpT
T05zKSB3YWVocmVuZCBkZXINCiMgU2VydmVyLVN0YXJ0LVBoYXNlIHBhc3NpZXJ0IOKAlCB1bmQg
bmljaHQgenVtIFplaXRwdW5rdCwgYW4gZGVtIGRlcg0KIyBFbmRhbndlbmRlciBpbSBCcm93c2Vy
IGF1ZiBkZW4gZXJzdGVuIC9hcGkvaW5mbyB3YXJ0ZXQuIFNwYXJ0IGF1Zg0KIyBCZWhvZXJkZW4t
UENzIHNwdWVyYmFyIFdhcnRlemVpdCBiZWltIExvZ2luLg0KdHJ5IHsgUmVhZC1Kc29uT2JqZWN0
ICdhZG1pbi5qc29uJyAgIHwgT3V0LU51bGw7IExvZy1BcGkgJ1BSRVdBUk0gYWRtaW4uanNvbiBv
aycgfSBjYXRjaCB7IExvZy1BcGkgKCdQUkVXQVJNIGFkbWluLmpzb24gRkVITEVSOiB7MH0nIC1m
ICRfLkV4Y2VwdGlvbi5NZXNzYWdlKSB9DQp0cnkgeyBSZWFkLUpzb25PYmplY3QgJ3BsYW51bmcu
anNvbicgfCBPdXQtTnVsbDsgTG9nLUFwaSAnUFJFV0FSTSBwbGFudW5nLmpzb24gb2snIH0gY2F0
Y2ggeyBMb2ctQXBpICgnUFJFV0FSTSBwbGFudW5nLmpzb24gRkVITEVSOiB7MH0nIC1mICRfLkV4
Y2VwdGlvbi5NZXNzYWdlKSB9DQoNCiMgPT09IFVwZGF0ZS1DaGVjayA9PT0NCiRzY3JpcHQ6VXBk
YXRlQXZhaWxhYmxlICAgPSAkZmFsc2UNCiRzY3JpcHQ6UmVtb3RlVmVyc2lvbiAgICAgPSAnJw0K
JHNjcmlwdDpVcGRhdGVMYXN0Q2hlY2tVdGMgPSBbZGF0ZXRpbWVdOjpNaW5WYWx1ZQ0KIyBCYXNp
cy1VUkwgZGVzIERpc3QtUmVwb3MgKG9lZmZlbnRsaWNoZXMgR2l0ZWEgaGludGVyIGRlbSBQcm94
eSkuDQokc2NyaXB0OlVwZGF0ZUJhc2UgPSAnaHR0cHM6Ly91cGRhdGVzLnJoaW5vLm5ydy9yaGlu
by9TdGF0dXNRdW9fVXBkYXRlcy9yYXcvYnJhbmNoL21haW4vVkkzREdMJw0KIyBJbi1BcHAtVXBk
YXRlLUpvYiAoSHlicmlkKTogL2FwaS91cGRhdGUvc3RhcnQgc3RhcnRldCBkZW4gZXh0ZXJuZW4g
dXBkYXRlLmJhdC0NCiMgTGF1ZiBhdXMgZGVyIEtBTk9OSVNDSEVOIFF1ZWxsZSAoQXNzZXRGYWxs
YmFjay9TaGFyZSkuIERlciBsYXVmZW5kZSBTZXJ2ZXINCiMgYmVkaWVudCB3ZWl0ZXJoaW4gZGVu
IGFsdGVuIGxva2FsZW4gQ29kZS1DYWNoZSAoUm9vdCA9IGFzc2V0c188dHM+KSAtPiBuYWNoDQoj
IGVyZm9sZ3JlaWNoZW0gdXBkYXRlLmJhdCBpc3QgZWluIFNlcnZlci1ORVVTVEFSVCBub2V0aWcu
IERlc2hhbGIgc3BpZWdlbG4gd2lyDQojIGhpZXIga2VpbmVuIEluLVByb2Nlc3MtQXBwbHktRm9y
dHNjaHJpdHQsIHNvbmRlcm4gZGVuIFN0YXJ0LVp1c3RhbmQuDQokc2NyaXB0OlVwZGF0ZUpvYiA9
IFtvcmRlcmVkXUB7DQogICAgc3RhdGUgPSAnaWRsZSc7IHBlcmNlbnQgPSAwOyBzdGVwID0gJ2lk
bGUnOyBtZXNzYWdlID0gJyc7IGVycm9yID0gJycNCiAgICBmcm9tVmVyc2lvbiA9ICcnOyB0b1Zl
cnNpb24gPSAnJzsgc2VsZnRlc3QgPSBAKCk7IGxvZyA9IEAoKQ0KfQ0KDQojIEJlaG9lcmRlbi1Q
cm94eSB2ZXJsYW5ndCBBdXRoZW50aWZpemllcnVuZyAtPiBvaG5lIG1pdGdlc2NoaWNrdGUgV2lu
ZG93cy0NCiMgQ3JlZGVudGlhbHMgYW50d29ydGV0IGVyIG1pdCAoNDA3KSBQcm94eWF1dGhlbnRp
Zml6aWVydW5nIGVyZm9yZGVybGljaCwgdW5kDQojIEpFREVSIGF1c2dlaGVuZGUgSFRUUFMtUmVx
dWVzdCAoVXBkYXRlLUNoZWNrLCBzcGFldGVyIFVwZGF0ZS1Eb3dubG9hZCkNCiMgc2NoZWl0ZXJ0
LiBEZW0gU3lzdGVtLVByb3h5IGVpbm1hbGlnIGRpZSBhbmdlbWVsZGV0ZW4gRG9tYWVuZW4tQ3Jl
ZGVudGlhbHMNCiMgKE5lZ290aWF0ZS9OVExNIGRlcyBsYXVmZW5kZW4gQmVudXR6ZXJzKSBtaXRn
ZWJlbi4gV2lya3QgZ2xvYmFsIGZ1ZXINCiMgSW52b2tlLVdlYlJlcXVlc3QvV2ViQ2xpZW50IHVl
YmVyIERlZmF1bHRXZWJQcm94eS4NCnRyeSB7DQogICAgJHN5c1Byb3h5ID0gW1N5c3RlbS5OZXQu
V2ViUmVxdWVzdF06OkdldFN5c3RlbVdlYlByb3h5KCkNCiAgICBpZiAoJHN5c1Byb3h5KSB7DQog
ICAgICAgICRzeXNQcm94eS5DcmVkZW50aWFscyA9IFtTeXN0ZW0uTmV0LkNyZWRlbnRpYWxDYWNo
ZV06OkRlZmF1bHROZXR3b3JrQ3JlZGVudGlhbHMNCiAgICAgICAgW1N5c3RlbS5OZXQuV2ViUmVx
dWVzdF06OkRlZmF1bHRXZWJQcm94eSA9ICRzeXNQcm94eQ0KICAgICAgICBMb2ctQXBpICdQUk9Y
WTogU3lzdGVtLVByb3h5IG1pdCBhbmdlbWVsZGV0ZW4gV2luZG93cy1DcmVkZW50aWFscyBrb25m
aWd1cmllcnQuJw0KICAgIH0NCn0gY2F0Y2ggew0KICAgIExvZy1BcGkgKCdQUk9YWS1TRVRVUCBG
RUhMRVIgKFVwZGF0ZS1DaGVjayBldnRsLiBvaG5lIFByb3h5LUF1dGgpOiB7MH0nIC1mICRfLkV4
Y2VwdGlvbi5NZXNzYWdlKQ0KfQ0KDQpmdW5jdGlvbiBSZWZyZXNoLVVwZGF0ZUNoZWNrIHsNCiAg
ICBpZiAoKFtkYXRldGltZV06OlV0Y05vdyAtICRzY3JpcHQ6VXBkYXRlTGFzdENoZWNrVXRjKS5U
b3RhbE1pbnV0ZXMgLWx0IDYwKSB7IHJldHVybiB9DQogICAgJHNjcmlwdDpVcGRhdGVMYXN0Q2hl
Y2tVdGMgPSBbZGF0ZXRpbWVdOjpVdGNOb3cNCiAgICAkbG9jYWxWZXIgPSAnMC4wLjAnDQogICAg
JF92ZiA9IEpvaW4tUGF0aCAkUm9vdCAnVkVSU0lPTicNCiAgICBpZiAoVGVzdC1QYXRoIC1MaXRl
cmFsUGF0aCAkX3ZmKSB7ICRsb2NhbFZlciA9IChHZXQtQ29udGVudCAtTGl0ZXJhbFBhdGggJF92
ZiAtUmF3KS5UcmltKCkgfQ0KICAgIHRyeSB7DQogICAgICAgICMgUHJveHktQXV0aCBsYWV1ZnQg
dWViZXIgZGllIG9iZW4gZ2xvYmFsIGdlc2V0enRlbiBEZWZhdWx0V2ViUHJveHktDQogICAgICAg
ICMgQ3JlZGVudGlhbHMuIFRpbWVvdXRTZWMgZ3Jvc3N6dWVnaWdlciAoOCBzdGF0dCAzIHMpLCB3
ZWlsIGRlciBOVExNLQ0KICAgICAgICAjIEhhbmRzaGFrZSBkdXJjaCBkZW4gUHJveHkgbGFlbmdl
ciBkYXVlcm4ga2Fubi4NCiAgICAgICAgJHJ2ID0gKEludm9rZS1XZWJSZXF1ZXN0IC1VcmkgKCRz
Y3JpcHQ6VXBkYXRlQmFzZSArICcvVkVSU0lPTicpIGANCiAgICAgICAgICAgICAgIC1Vc2VCYXNp
Y1BhcnNpbmcgLVRpbWVvdXRTZWMgOCAtRXJyb3JBY3Rpb24gU3RvcCkuQ29udGVudC5UcmltKCkN
CiAgICAgICAgJHNjcmlwdDpSZW1vdGVWZXJzaW9uICAgPSAkcnYNCiAgICAgICAgJHNjcmlwdDpV
cGRhdGVBdmFpbGFibGUgPSAoW1N5c3RlbS5WZXJzaW9uXSRydiAtZ3QgW1N5c3RlbS5WZXJzaW9u
XSRsb2NhbFZlcikNCiAgICAgICAgTG9nLUFwaSAoIlVQREFURS1DSEVDSzogbG9rYWw9JGxvY2Fs
VmVyIHJlbW90ZT0kcnYgYXZhaWxhYmxlPSQoJHNjcmlwdDpVcGRhdGVBdmFpbGFibGUpIikNCiAg
ICB9IGNhdGNoIHsNCiAgICAgICAgTG9nLUFwaSAoIlVQREFURS1DSEVDSzogbmljaHQgZXJyZWlj
aGJhciAoJCgkXy5FeGNlcHRpb24uTWVzc2FnZSkpIikNCiAgICB9DQp9DQpSZWZyZXNoLVVwZGF0
ZUNoZWNrDQoNCiMgTG9rYWxlIFZFUlNJT04gbGVzZW4gKGF1cyBkZW0gbGF1ZmVuZGVuIENvZGUt
Q2FjaGUgPSAkUm9vdCkuDQpmdW5jdGlvbiBHZXQtTG9rYWxlVmVyc2lvbiB7DQogICAgJHZmID0g
Sm9pbi1QYXRoICRSb290ICdWRVJTSU9OJw0KICAgIGlmIChUZXN0LVBhdGggLUxpdGVyYWxQYXRo
ICR2ZikgeyByZXR1cm4gKEdldC1Db250ZW50IC1MaXRlcmFsUGF0aCAkdmYgLVJhdykuVHJpbSgp
IH0NCiAgICByZXR1cm4gJzAuMC4wJw0KfQ0KDQojIENoYW5nZWxvZyBmdWVyIGRlbiBVcGRhdGUt
QmVyZWljaDogYmV2b3J6dWd0IENIQU5HRUxPRy5tZCBhdXMgZGVtIERpc3QtUmVwbywNCiMgc29u
c3QgZGllIERhdGVpbGlzdGUgYXVzIE1BTklGRVNULnR4dC4gU3BpZWdlbHQgX3VfZmV0Y2hfY2hh
bmdlbG9nIChQeXRob24pLg0KZnVuY3Rpb24gR2V0LVVwZGF0ZUNoYW5nZWxvZygkbG9jYWxWLCAk
cmVtb3RlVikgew0KICAgIHRyeSB7DQogICAgICAgICRtZCA9IChJbnZva2UtV2ViUmVxdWVzdCAt
VXJpICgkc2NyaXB0OlVwZGF0ZUJhc2UgKyAnL0NIQU5HRUxPRy5tZCcpIGANCiAgICAgICAgICAg
ICAgIC1Vc2VCYXNpY1BhcnNpbmcgLVRpbWVvdXRTZWMgOCAtRXJyb3JBY3Rpb24gU3RvcCkuQ29u
dGVudA0KICAgICAgICBpZiAoJG1kIC1hbmQgJG1kLlRyaW0oKS5MZW5ndGggLWd0IDApIHsNCiAg
ICAgICAgICAgIHJldHVybiBAeyBmb3JtYXQgPSAnbWFya2Rvd24nOyB0ZXh0ID0gJG1kIH0NCiAg
ICAgICAgfQ0KICAgIH0gY2F0Y2gge30NCiAgICB0cnkgew0KICAgICAgICAkbWFuID0gKEludm9r
ZS1XZWJSZXF1ZXN0IC1VcmkgKCRzY3JpcHQ6VXBkYXRlQmFzZSArICcvTUFOSUZFU1QudHh0Jykg
YA0KICAgICAgICAgICAgICAgIC1Vc2VCYXNpY1BhcnNpbmcgLVRpbWVvdXRTZWMgOCAtRXJyb3JB
Y3Rpb24gU3RvcCkuQ29udGVudA0KICAgICAgICAkZmlsZXMgPSBAKCRtYW4gLXNwbGl0ICJgbiIg
fCBGb3JFYWNoLU9iamVjdCB7DQogICAgICAgICAgICAkcGFydHMgPSAkXyAtc3BsaXQgImB0Ig0K
ICAgICAgICAgICAgaWYgKCRwYXJ0cy5Db3VudCAtZ2UgMikgeyAkcGFydHNbMV0uVHJpbSgpIH0N
CiAgICAgICAgfSB8IFdoZXJlLU9iamVjdCB7ICRfIH0gfCBTb3J0LU9iamVjdCAtVW5pcXVlKQ0K
ICAgICAgICByZXR1cm4gQHsgZm9ybWF0ID0gJ2ZpbGVzJzsgZmlsZXMgPSAkZmlsZXMNCiAgICAg
ICAgICAgICAgICAgIHRleHQgPSAoJ1ZlcnNpb24gezB9IC0+IHsxfSAtIHsyfSBEYXRlaWVuIHdl
cmRlbiBha3R1YWxpc2llcnQuJyAtZiAkbG9jYWxWLCAkcmVtb3RlViwgJGZpbGVzLkNvdW50KSB9
DQogICAgfSBjYXRjaCB7DQogICAgICAgIHJldHVybiBAeyBmb3JtYXQgPSAndGV4dCc7IHRleHQg
PSAoJ1ZlcnNpb24gezB9IC0+IHsxfScgLWYgJGxvY2FsViwgJHJlbW90ZVYpIH0NCiAgICB9DQp9
DQoNCiMgS2Fub25pc2NoZSBDb2RlLVF1ZWxsZSAod28gdXBkYXRlLmJhdCBsaWVndCB1bmQgcGVy
c2lzdGVudCBha3R1YWxpc2llcnQgd2lyZCk6DQojIEFzc2V0RmFsbGJhY2sgKFNoYXJlKSB3ZW5u
IGdlc2V0enQsIHNvbnN0IFJvb3QuIERlciBsYXVmZW5kZSBTZXJ2ZXItQ29kZSBpbQ0KIyBsb2th
bGVuIENhY2hlICgkUm9vdCkgaXN0IE5JQ0hUIGRpZSByaWNodGlnZSBTdGVsbGUgLT4gd3VlcmRl
IGJlaW0gbmFlY2hzdGVuDQojIGRnbC5iYXQtU3RhcnQgdWViZXJzY2hyaWViZW4uDQpmdW5jdGlv
biBHZXQtVXBkYXRlUXVlbGxlIHsNCiAgICBpZiAoJHNjcmlwdDpBc3NldEZhbGxiYWNrKSB7IHJl
dHVybiAkc2NyaXB0OkFzc2V0RmFsbGJhY2sgfQ0KICAgIHJldHVybiAkUm9vdA0KfQ0KDQojIElu
aXRpYWwtU25hcHNob3QgZGVyIE9mZmxpbmUtV29jaGVucGxhbi5odG1sIGJlaW0gU3RhcnQgcmVn
ZW5lcmllcmVuDQojIChhdWNoIHdlbm4gc2VpdCBkZW0gbGV0enRlbiBMYXVmIG5pY2h0cyBnZWFl
bmRlcnQgd3VyZGUsIGhhdCBzaWNoIHouQi4NCiMgZGFzIERhdHVtIHZlcnNjaG9iZW4gdW5kIGRl
ciBIZXV0ZS1NYXJrZXIgemVpZ3Qgc29uc3QgZGllIGFsdGUgV29jaGUpLg0KdHJ5IHsgR2VuZXJh
dGUtV29jaGVucGxhblNuYXBzaG90IHwgT3V0LU51bGwgfSBjYXRjaCB7IExvZy1BcGkgKCdTTkFQ
U0hPVCAoaW5pdGlhbCkgRkVITEVSOiB7MH0nIC1mICRfLkV4Y2VwdGlvbi5NZXNzYWdlKSB9DQoN
CiMgLS0tIFNlcnZlciBzdGFydGVuIC0tLQ0KJExpc3RlbmVyID0gTmV3LU9iamVjdCBTeXN0ZW0u
TmV0Lkh0dHBMaXN0ZW5lcg0KJExpc3RlbmVyLlByZWZpeGVzLkFkZCgiaHR0cDovL2xvY2FsaG9z
dDokUG9ydC8iKQ0KdHJ5IHsNCiAgICAkTGlzdGVuZXIuU3RhcnQoKQ0KfSBjYXRjaCB7DQogICAg
V3JpdGUtSG9zdCAoJ0ZFSExFUjogTGlzdGVuZXIgYXVmIFBvcnQgezB9IGthbm4gbmljaHQgc3Rh
cnRlbi4nIC1mICRQb3J0KSAtRm9yZWdyb3VuZENvbG9yIFJlZA0KICAgIFdyaXRlLUhvc3QgJF8N
CiAgICBMb2ctQXBpICgnTElTVEVORVIgRkVITEVSOiB7MH0nIC1mICRfLkV4Y2VwdGlvbi5NZXNz
YWdlKQ0KICAgIFN0YXJ0LVNsZWVwIC1TZWNvbmRzIDUNCiAgICBleGl0IDENCn0NCg0KV3JpdGUt
SG9zdCAoJ1ZJMyBER0wtUGxhbnVuZyBhdWYgaHR0cDovL2xvY2FsaG9zdDp7MH0nIC1mICRQb3J0
KQ0KV3JpdGUtSG9zdCAoJ1Jvb3Q6ICAgIHswfScgLWYgJFJvb3QpDQpXcml0ZS1Ib3N0ICgnRGF0
YURpcjogezB9JyAtZiAkRGF0YURpcikNCldyaXRlLUhvc3QgKCdMb2c6ICAgICB7MH0nIC1mICRz
Y3JpcHQ6QXBpTG9nKQ0KDQojIC0tLSBIZWFydGJlYXQtV2F0Y2hkb2cgLS0tDQokV2F0Y2hkb2dU
aW1lciA9IE5ldy1PYmplY3QgU3lzdGVtLlRpbWVycy5UaW1lcg0KJFdhdGNoZG9nVGltZXIuSW50
ZXJ2YWwgPSA1MDAwDQokV2F0Y2hkb2dUaW1lci5BdXRvUmVzZXQgPSAkdHJ1ZQ0KUmVnaXN0ZXIt
T2JqZWN0RXZlbnQgLUlucHV0T2JqZWN0ICRXYXRjaGRvZ1RpbWVyIC1FdmVudE5hbWUgRWxhcHNl
ZCAtQWN0aW9uIHsNCiAgICAkZWxhcHNlZCA9IChHZXQtRGF0ZSkgLSAkc2NyaXB0Okxhc3RIZWFy
dGJlYXQNCiAgICBpZiAoJGVsYXBzZWQuVG90YWxTZWNvbmRzIC1ndCAzMCkgew0KICAgICAgICBp
ZiAoLW5vdCAkc2NyaXB0OlNodXRkb3duUGVuZGluZykgew0KICAgICAgICAgICAgJHNjcmlwdDpT
aHV0ZG93blBlbmRpbmcgPSAkdHJ1ZQ0KICAgICAgICB9IGVsc2VpZiAoJGVsYXBzZWQuVG90YWxT
ZWNvbmRzIC1ndCAzNSkgew0KICAgICAgICAgICAgJExpc3RlbmVyLlN0b3AoKQ0KICAgICAgICAg
ICAgW0Vudmlyb25tZW50XTo6RXhpdCgwKQ0KICAgICAgICB9DQogICAgfQ0KfSB8IE91dC1OdWxs
DQokV2F0Y2hkb2dUaW1lci5TdGFydCgpDQoNCiMgLS0tIFJlcXVlc3QtTG9vcCAtLS0NCnRyeSB7
DQogICAgd2hpbGUgKCRMaXN0ZW5lci5Jc0xpc3RlbmluZykgew0KICAgICAgICAkQXN5bmNSZXN1
bHQgPSAkTGlzdGVuZXIuQmVnaW5HZXRDb250ZXh0KCRudWxsLCAkbnVsbCkNCiAgICAgICAgd2hp
bGUgKC1ub3QgJEFzeW5jUmVzdWx0LkFzeW5jV2FpdEhhbmRsZS5XYWl0T25lKDEwMDApKSB7IH0N
CiAgICAgICAgJENvbnRleHQgPSAkTGlzdGVuZXIuRW5kR2V0Q29udGV4dCgkQXN5bmNSZXN1bHQp
DQogICAgICAgICRSZXF1ZXN0ID0gJENvbnRleHQuUmVxdWVzdA0KICAgICAgICAkUmVzcG9uc2Ug
PSAkQ29udGV4dC5SZXNwb25zZQ0KICAgICAgICAkTWV0aG9kID0gJFJlcXVlc3QuSHR0cE1ldGhv
ZA0KICAgICAgICAkUGF0aCA9ICRSZXF1ZXN0LlVybC5BYnNvbHV0ZVBhdGgNCiAgICAgICAgTG9n
LUFwaSAoJ1JFUSB7MH0gezF9JyAtZiAkTWV0aG9kLCAkUGF0aCkNCg0KICAgICAgICB0cnkgew0K
ICAgICAgICAgICAgIyA9PT09PSBDT1JTIFByZWZsaWdodCA9PT09PQ0KICAgICAgICAgICAgaWYg
KCRNZXRob2QgLWVxICdPUFRJT05TJykgew0KICAgICAgICAgICAgICAgICRSZXNwb25zZS5TdGF0
dXNDb2RlID0gMjA0DQogICAgICAgICAgICAgICAgQWRkLVNlY3VyaXR5SGVhZGVycyAkUmVzcG9u
c2UNCiAgICAgICAgICAgICAgICAkUmVzcG9uc2UuT3V0cHV0U3RyZWFtLkNsb3NlKCkNCiAgICAg
ICAgICAgICAgICBjb250aW51ZQ0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAjID09PT09
IFNZU1RFTSA9PT09PQ0KICAgICAgICAgICAgaWYgKCRQYXRoIC1lcSAnL2FwaS9oZWFydGJlYXQn
IC1hbmQgJE1ldGhvZCAtZXEgJ1BPU1QnKSB7DQogICAgICAgICAgICAgICAgIyBPcmlnaW4tQ2hl
Y2sgKFNwcmludCAxIOKAlCBTaWNoZXJoZWl0cy1Ob3RicmVtc2UgMjAyNi0wNS0yOCk6DQogICAg
ICAgICAgICAgICAgIyBIZWFydGJlYXQgYWt6ZXB0aWVydCBudXIgUmVxdWVzdHMgdm9uIGRlciBl
aWdlbmVuIEFwcC4gQW5kZXJlDQogICAgICAgICAgICAgICAgIyBsb2thbGUgUHJvemVzc2Uga29l
bm50ZW4gc29uc3QgcGVyIExvb3AgZGllIEF1dG8tU2h1dGRvd24tTG9naWsNCiAgICAgICAgICAg
ICAgICAjIHVtZ2VoZW4gb2RlciBkZW4gU2VydmVyIGJld3Vzc3QgYW0gTGViZW4gaGFsdGVuLiBC
cm93c2VyIHNlbmRldA0KICAgICAgICAgICAgICAgICMgT3JpZ2luIGF1dG9tYXRpc2NoOyBmZWhs
ZW5kZXIgSGVhZGVyIHdpcmQgdG9sZXJpZXJlbiAoc2VuZEJlYWNvbg0KICAgICAgICAgICAgICAg
ICMgaW4gbWFuY2hlbiBCcm93c2VybiksIGFiZXIgRkFMU0NIRVIgT3JpZ2luIHdpcmQgYWJnZWxl
aG50Lg0KICAgICAgICAgICAgICAgICRvcmlnaW4gPSAkUmVxdWVzdC5IZWFkZXJzWydPcmlnaW4n
XQ0KICAgICAgICAgICAgICAgIGlmICgkb3JpZ2luIC1hbmQgJG9yaWdpbiAtbmUgJHNjcmlwdDpD
b3JzT3JpZ2luKSB7DQogICAgICAgICAgICAgICAgICAgIFNlbmQtRXJyb3IgJFJlc3BvbnNlICdP
cmlnaW4gbmljaHQgZXJsYXVidCcgNDAzDQogICAgICAgICAgICAgICAgICAgIExvZy1BcGkgKCdI
RUFSVEJFQVQgNDAzIE9yaWdpbj17MH0nIC1mICRvcmlnaW4pDQogICAgICAgICAgICAgICAgICAg
IGNvbnRpbnVlDQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICRzY3JpcHQ6TGFz
dEhlYXJ0YmVhdCA9IEdldC1EYXRlDQogICAgICAgICAgICAgICAgJHNjcmlwdDpTaHV0ZG93blBl
bmRpbmcgPSAkZmFsc2UNCiAgICAgICAgICAgICAgICAjIGFkbWluVmVyc2lvbiAvIHBsYW51bmdW
ZXJzaW9uOiBtdGltZSBhbHMgVGlja3MuIEVybGF1YnQgZGVtDQogICAgICAgICAgICAgICAgIyBD
bGllbnQsIFJlY2h0ZS0gYnp3LiBQZXJzb25lbi1BZW5kZXJ1bmdlbiBpbSBIaW50ZXJncnVuZCB6
dQ0KICAgICAgICAgICAgICAgICMgZXJrZW5uZW4gdW5kIFoucmVjaHRlL1oucGxhbnVuZyBuZXUg
enUgbGFkZW4sIG9obmUgZGFzcyBkZXINCiAgICAgICAgICAgICAgICAjIFVzZXIgRjUgZHJ1ZWNr
ZW4gbXVzcy4gcGxhbnVuZ1ZlcnNpb24gZGVja3QgaW5zYmVzb25kZXJlDQogICAgICAgICAgICAg
ICAgIyBlZGl0UmVjaHRlL3NlaGVuLVVwZGF0ZXMgYWIsIGRpZSBkZXIgTGl2ZS1TeW5jLURlbHRh
IG5pY2h0DQogICAgICAgICAgICAgICAgIyBsaWVmZXJ0IChDaGVycnktUGljayAxYWVmZTI2IEJ1
ZyAjMykuDQogICAgICAgICAgICAgICAgJGFkbWluVmVyICAgPSAwDQogICAgICAgICAgICAgICAg
JHBsYW51bmdWZXIgPSAwDQogICAgICAgICAgICAgICAgdHJ5IHsNCiAgICAgICAgICAgICAgICAg
ICAgJGFkbWluRmlsZSA9IEpvaW4tUGF0aCAkRGF0YURpciAnYWRtaW4uanNvbicNCiAgICAgICAg
ICAgICAgICAgICAgaWYgKFRlc3QtUGF0aCAtTGl0ZXJhbFBhdGggJGFkbWluRmlsZSkgew0KICAg
ICAgICAgICAgICAgICAgICAgICAgJGFkbWluVmVyID0gKEdldC1JdGVtIC1MaXRlcmFsUGF0aCAk
YWRtaW5GaWxlKS5MYXN0V3JpdGVUaW1lVXRjLlRpY2tzDQogICAgICAgICAgICAgICAgICAgIH0N
CiAgICAgICAgICAgICAgICAgICAgJHBsYW51bmdGaWxlID0gSm9pbi1QYXRoICREYXRhRGlyICdw
bGFudW5nLmpzb24nDQogICAgICAgICAgICAgICAgICAgIGlmIChUZXN0LVBhdGggLUxpdGVyYWxQ
YXRoICRwbGFudW5nRmlsZSkgew0KICAgICAgICAgICAgICAgICAgICAgICAgJHBsYW51bmdWZXIg
PSAoR2V0LUl0ZW0gLUxpdGVyYWxQYXRoICRwbGFudW5nRmlsZSkuTGFzdFdyaXRlVGltZVV0Yy5U
aWNrcw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgfSBjYXRjaCB7fQ0K
ICAgICAgICAgICAgICAgIFNlbmQtSnNvbk9iamVjdCAkUmVzcG9uc2UgQHsgc3RhdHVzID0gJ29r
JzsgYWRtaW5WZXJzaW9uID0gJGFkbWluVmVyOyBwbGFudW5nVmVyc2lvbiA9ICRwbGFudW5nVmVy
IH0NCiAgICAgICAgICAgICAgICBjb250aW51ZQ0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAg
aWYgKCRQYXRoIC1lcSAnL2FwaS9zaHV0ZG93bicgLWFuZCAkTWV0aG9kIC1lcSAnUE9TVCcpIHsN
CiAgICAgICAgICAgICAgICBTZW5kLUpzb25PYmplY3QgJFJlc3BvbnNlIEB7IHN0YXR1cyA9ICdz
aHV0ZG93bicgfQ0KICAgICAgICAgICAgICAgIFN0YXJ0LVNsZWVwIC1NaWxsaXNlY29uZHMgMzAw
DQogICAgICAgICAgICAgICAgJExpc3RlbmVyLlN0b3AoKQ0KICAgICAgICAgICAgICAgIFtFbnZp
cm9ubWVudF06OkV4aXQoMCkNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGlmICgkUGF0aCAt
ZXEgJy9hcGkvaW5mbycgLWFuZCAkTWV0aG9kIC1lcSAnR0VUJykgew0KICAgICAgICAgICAgICAg
IFJlZnJlc2gtVXBkYXRlQ2hlY2sNCiAgICAgICAgICAgICAgICAkciA9IEdldC1SZWNodGUNCiAg
ICAgICAgICAgICAgICAkaW5mb09iaiA9IEB7DQogICAgICAgICAgICAgICAgICAgIGJlbnV0emVy
ICAgICAgICAgICAgICAgID0gIiREb21haW5cJFVzZXJuYW1lIg0KICAgICAgICAgICAgICAgICAg
ICByb2xsZSAgICAgICAgICAgICAgICAgICA9ICRyLnJvbGxlDQogICAgICAgICAgICAgICAgICAg
IGlzdFN1cGVyVXNlciAgICAgICAgICAgID0gJHIuaXN0U3VwZXJVc2VyDQogICAgICAgICAgICAg
ICAgICAgIGlzdEZhY2hhdWZzaWNodCAgICAgICAgID0gJHIuaXN0RmFjaGF1ZnNpY2h0DQogICAg
ICAgICAgICAgICAgICAgIGlzdEdlc2FtdHZlcmFudHdvcnRsaWNoID0gJHIuaXN0R2VzYW10dmVy
YW50d29ydGxpY2gNCiAgICAgICAgICAgICAgICAgICAgc2VoZW4gICAgICAgICAgICAgICAgICAg
PSAkci5zZWhlbg0KICAgICAgICAgICAgICAgICAgICBhZG1pblN1YnRhYnMgICAgICAgICAgICA9
ICRyLmFkbWluU3VidGFicw0KICAgICAgICAgICAgICAgICAgICBzdGF0aXN0aWtCZXJlaWNoZSAg
ICAgICA9ICRyLnN0YXRpc3Rpa0JlcmVpY2hlDQogICAgICAgICAgICAgICAgICAgIGVkaXRpZXJl
biAgICAgICAgICAgICAgID0gJHIuZWRpdGllcmVuICAgIyBudWxsIGJlaSBTdXBlclVzZXIgPSAi
YWxsZXMgZXJsYXVidCINCiAgICAgICAgICAgICAgICAgICAgbWVpbmVQZXJzb25JZCAgICAgICAg
ICAgPSAkci5tZWluZVBlcnNvbklkDQogICAgICAgICAgICAgICAgICAgIHNlcnZlciAgICAgICAg
ICAgICAgICAgID0gJHNjcmlwdDpDb3JzT3JpZ2luDQogICAgICAgICAgICAgICAgICAgIHVwZGF0
ZUF2YWlsYWJsZSAgICAgICAgID0gJHNjcmlwdDpVcGRhdGVBdmFpbGFibGUNCiAgICAgICAgICAg
ICAgICAgICAgcmVtb3RlVmVyc2lvbiAgICAgICAgICAgPSAkc2NyaXB0OlJlbW90ZVZlcnNpb24N
CiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgU2VuZC1Kc29uT2JqZWN0ICRSZXNw
b25zZSAkaW5mb09iag0KICAgICAgICAgICAgICAgIGNvbnRpbnVlDQogICAgICAgICAgICB9DQog
ICAgICAgICAgICAjID09PT09PT09PT09PT09PT09PT09PSBVUERBVEU6IFNUQVRVUyAobnVyIFN1
cGVyVXNlcikgPT09PT09PT09PT09PT09PT09PT09DQogICAgICAgICAgICAjIEJlaGVidCBkZW4g
NDA0IGF1ZiAvYXBpL3VwZGF0ZS9zdGF0dXMuIExpZXN0IFZlcnNpb24gKyBDaGFuZ2Vsb2cNCiAg
ICAgICAgICAgICMgdWViZXIgZGVuIChqZXR6dCBwcm94eS1hdXRoZW50aWZpemllcnRlbikgRGlz
dC1SZXBvLVp1Z2FuZy4NCiAgICAgICAgICAgIGlmICgkUGF0aCAtZXEgJy9hcGkvdXBkYXRlL3N0
YXR1cycgLWFuZCAkTWV0aG9kIC1lcSAnR0VUJykgew0KICAgICAgICAgICAgICAgIGlmICgtbm90
IChUZXN0LUlzdFN1cGVyVXNlcikpIHsgU2VuZC1FcnJvciAkUmVzcG9uc2UgJ051ciBTdXBlclVz
ZXIuJyA0MDM7IGNvbnRpbnVlIH0NCiAgICAgICAgICAgICAgICAkc2NyaXB0OlVwZGF0ZUxhc3RD
aGVja1V0YyA9IFtkYXRldGltZV06Ok1pblZhbHVlICAjIEZvcmNlLVJlZnJlc2gNCiAgICAgICAg
ICAgICAgICBSZWZyZXNoLVVwZGF0ZUNoZWNrDQogICAgICAgICAgICAgICAgJGx2ID0gR2V0LUxv
a2FsZVZlcnNpb24NCiAgICAgICAgICAgICAgICBTZW5kLUpzb25PYmplY3QgJFJlc3BvbnNlIEB7
DQogICAgICAgICAgICAgICAgICAgIHVwZGF0ZUF2YWlsYWJsZSA9ICRzY3JpcHQ6VXBkYXRlQXZh
aWxhYmxlDQogICAgICAgICAgICAgICAgICAgIGxvY2FsVmVyc2lvbiAgICA9ICRsdg0KICAgICAg
ICAgICAgICAgICAgICByZW1vdGVWZXJzaW9uICAgPSAkc2NyaXB0OlJlbW90ZVZlcnNpb24NCiAg
ICAgICAgICAgICAgICAgICAgY2hhbmdlbG9nICAgICAgID0gKEdldC1VcGRhdGVDaGFuZ2Vsb2cg
JGx2ICRzY3JpcHQ6UmVtb3RlVmVyc2lvbikNCiAgICAgICAgICAgICAgICAgICAgbWFpbnRlbmFu
Y2UgICAgID0gQHsgbG9ja2VkID0gJGZhbHNlOyByZWFzb24gPSAnJyB9DQogICAgICAgICAgICAg
ICAgICAgIGpvYiAgICAgICAgICAgICA9IEB7DQogICAgICAgICAgICAgICAgICAgICAgICBzdGF0
ZSA9ICRzY3JpcHQ6VXBkYXRlSm9iLnN0YXRlOyBwZXJjZW50ID0gJHNjcmlwdDpVcGRhdGVKb2Iu
cGVyY2VudA0KICAgICAgICAgICAgICAgICAgICAgICAgc3RlcCA9ICRzY3JpcHQ6VXBkYXRlSm9i
LnN0ZXA7IG1lc3NhZ2UgPSAkc2NyaXB0OlVwZGF0ZUpvYi5tZXNzYWdlDQogICAgICAgICAgICAg
ICAgICAgICAgICBlcnJvciA9ICRzY3JpcHQ6VXBkYXRlSm9iLmVycm9yOyBmcm9tVmVyc2lvbiA9
ICRzY3JpcHQ6VXBkYXRlSm9iLmZyb21WZXJzaW9uDQogICAgICAgICAgICAgICAgICAgICAgICB0
b1ZlcnNpb24gPSAkc2NyaXB0OlVwZGF0ZUpvYi50b1ZlcnNpb24NCiAgICAgICAgICAgICAgICAg
ICAgfQ0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBjb250aW51ZQ0KICAgICAg
ICAgICAgfQ0KICAgICAgICAgICAgIyA9PT09PT09PT09PT09PT09PT09PT0gVVBEQVRFOiBQUk9H
UkVTUyAobnVyIFN1cGVyVXNlcikgPT09PT09PT09PT09PT09PT09PT09DQogICAgICAgICAgICBp
ZiAoJFBhdGggLWVxICcvYXBpL3VwZGF0ZS9wcm9ncmVzcycgLWFuZCAkTWV0aG9kIC1lcSAnR0VU
Jykgew0KICAgICAgICAgICAgICAgIGlmICgtbm90IChUZXN0LUlzdFN1cGVyVXNlcikpIHsgU2Vu
ZC1FcnJvciAkUmVzcG9uc2UgJ051ciBTdXBlclVzZXIuJyA0MDM7IGNvbnRpbnVlIH0NCiAgICAg
ICAgICAgICAgICBTZW5kLUpzb25PYmplY3QgJFJlc3BvbnNlIEB7DQogICAgICAgICAgICAgICAg
ICAgIHN0YXRlID0gJHNjcmlwdDpVcGRhdGVKb2Iuc3RhdGU7IHBlcmNlbnQgPSAkc2NyaXB0OlVw
ZGF0ZUpvYi5wZXJjZW50DQogICAgICAgICAgICAgICAgICAgIHN0ZXAgPSAkc2NyaXB0OlVwZGF0
ZUpvYi5zdGVwOyBtZXNzYWdlID0gJHNjcmlwdDpVcGRhdGVKb2IubWVzc2FnZQ0KICAgICAgICAg
ICAgICAgICAgICBlcnJvciA9ICRzY3JpcHQ6VXBkYXRlSm9iLmVycm9yOyBmcm9tVmVyc2lvbiA9
ICRzY3JpcHQ6VXBkYXRlSm9iLmZyb21WZXJzaW9uDQogICAgICAgICAgICAgICAgICAgIHRvVmVy
c2lvbiA9ICRzY3JpcHQ6VXBkYXRlSm9iLnRvVmVyc2lvbjsgc2VsZnRlc3QgPSBAKCRzY3JpcHQ6
VXBkYXRlSm9iLnNlbGZ0ZXN0KQ0KICAgICAgICAgICAgICAgICAgICBsb2cgPSBAKCRzY3JpcHQ6
VXBkYXRlSm9iLmxvZyB8IFNlbGVjdC1PYmplY3QgLUxhc3QgNjApDQogICAgICAgICAgICAgICAg
ICAgIG1haW50ZW5hbmNlID0gQHsgbG9ja2VkID0gJGZhbHNlOyByZWFzb24gPSAnJyB9DQogICAg
ICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIGNvbnRpbnVlDQogICAgICAgICAgICB9DQog
ICAgICAgICAgICAjID09PT09PT09PT09PT09PT09PT09PSBVUERBVEU6IFNUQVJUIChudXIgU3Vw
ZXJVc2VyKSA9PT09PT09PT09PT09PT09PT09PT0NCiAgICAgICAgICAgICMgSHlicmlkOiBzdGFy
dGV0IGRpZSBnZXRlc3RldGUsIHNoYXJlLXppZWxlbmRlIHVwZGF0ZS5iYXQgYWxzIGVpZ2VuZW4N
CiAgICAgICAgICAgICMgUHJvemVzcyBhdXMgZGVyIEtBTk9OSVNDSEVOIFF1ZWxsZS4gdXBkYXRl
LmJhdCBzdG9wcHQrc3RhcnRldCBkZW4NCiAgICAgICAgICAgICMgU2VydmVyIHNlbGJzdCAoc3Rv
cC5iYXQvZGdsLmJhdCkuIFdpciBrb2VubmVuIGRlbiBleHRlcm5lbiBMYXVmIG5pY2h0DQogICAg
ICAgICAgICAjIGluIEVjaHR6ZWl0IHZlcmZvbGdlbiAtPiBKb2IgbWVsZGV0ICdleHRlcm4gZ2Vz
dGFydGV0JywgZGVyIENsaWVudA0KICAgICAgICAgICAgIyB6ZWlndCBkZW4gSGlud2VpcyB1bmQg
bGFlZHQgbmFjaCBkZW0gTmV1c3RhcnQgbmV1Lg0KICAgICAgICAgICAgaWYgKCRQYXRoIC1lcSAn
L2FwaS91cGRhdGUvc3RhcnQnIC1hbmQgJE1ldGhvZCAtZXEgJ1BPU1QnKSB7DQogICAgICAgICAg
ICAgICAgaWYgKC1ub3QgKFRlc3QtSXN0U3VwZXJVc2VyKSkgeyBTZW5kLUVycm9yICRSZXNwb25z
ZSAnTnVyIFN1cGVyVXNlciBkYXJmIFVwZGF0ZXMgc3RhcnRlbi4nIDQwMzsgY29udGludWUgfQ0K
ICAgICAgICAgICAgICAgICRxdWVsbGUgPSBHZXQtVXBkYXRlUXVlbGxlDQogICAgICAgICAgICAg
ICAgJGJhdCA9IEpvaW4tUGF0aCAkcXVlbGxlICd1cGRhdGUuYmF0Jw0KICAgICAgICAgICAgICAg
IGlmICgtbm90IChUZXN0LVBhdGggLUxpdGVyYWxQYXRoICRiYXQpKSB7DQogICAgICAgICAgICAg
ICAgICAgIFNlbmQtRXJyb3IgJFJlc3BvbnNlICgndXBkYXRlLmJhdCBuaWNodCBnZWZ1bmRlbiBp
biBkZXIgUXVlbGxlOiAnICsgJHF1ZWxsZSkgNTAwDQogICAgICAgICAgICAgICAgICAgIGNvbnRp
bnVlDQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIHRyeSB7DQogICAgICAgICAg
ICAgICAgICAgICR0cyA9IChHZXQtRGF0ZSAtRm9ybWF0ICd5eXl5LU1NLWRkVEhIOm1tOnNzJykN
CiAgICAgICAgICAgICAgICAgICAgIyBzdGRpbiBhdXMgbnVsIChlaW4gQXJndW1lbnRMaXN0LVN0
cmluZywgdm9uIFN0YXJ0LVByb2Nlc3MNCiAgICAgICAgICAgICAgICAgICAgIyB2ZXJiYXRpbSBh
biBjbWQpIC0+IGRhcyBhYnNjaGxpZXNzZW5kZSAncGF1c2UnIGluIHVwZGF0ZS5iYXQNCiAgICAg
ICAgICAgICAgICAgICAgIyBsaWVzdCBFT0YgdW5kIGtlaHJ0IHNvZm9ydCB6dXJ1ZWNrLCBrZWlu
IGhhZW5nZW5kZXIgUHJvemVzcy4NCiAgICAgICAgICAgICAgICAgICAgU3RhcnQtUHJvY2VzcyAt
RmlsZVBhdGggJ2NtZC5leGUnIC1Bcmd1bWVudExpc3QgKCcvYyAiJyArICRiYXQgKyAnIiA8bnVs
JykgYA0KICAgICAgICAgICAgICAgICAgICAgICAgLVdvcmtpbmdEaXJlY3RvcnkgJHF1ZWxsZSAt
V2luZG93U3R5bGUgSGlkZGVuDQogICAgICAgICAgICAgICAgICAgICRzY3JpcHQ6VXBkYXRlSm9i
LnN0YXRlICAgICAgID0gJ3J1bm5pbmcnDQogICAgICAgICAgICAgICAgICAgICRzY3JpcHQ6VXBk
YXRlSm9iLnN0ZXAgICAgICAgID0gJ2V4dGVybicNCiAgICAgICAgICAgICAgICAgICAgJHNjcmlw
dDpVcGRhdGVKb2IucGVyY2VudCAgICAgPSA1DQogICAgICAgICAgICAgICAgICAgICRzY3JpcHQ6
VXBkYXRlSm9iLmVycm9yICAgICAgID0gJycNCiAgICAgICAgICAgICAgICAgICAgJHNjcmlwdDpV
cGRhdGVKb2IuZnJvbVZlcnNpb24gPSAoR2V0LUxva2FsZVZlcnNpb24pDQogICAgICAgICAgICAg
ICAgICAgICRzY3JpcHQ6VXBkYXRlSm9iLnRvVmVyc2lvbiAgID0gJHNjcmlwdDpSZW1vdGVWZXJz
aW9uDQogICAgICAgICAgICAgICAgICAgICRzY3JpcHQ6VXBkYXRlSm9iLnNlbGZ0ZXN0ICAgID0g
QCgpDQogICAgICAgICAgICAgICAgICAgICRzY3JpcHQ6VXBkYXRlSm9iLm1lc3NhZ2UgICAgID0g
J0V4dGVybmVyIFVwZGF0ZXIgKHVwZGF0ZS5iYXQpIGdlc3RhcnRldC4gRGVyIFNlcnZlciB3aXJk
IGdsZWljaCBnZXN0b3BwdCB1bmQgbmV1IGdlc3RhcnRldCAtIGJpdHRlIGRhbmFjaCBkaWUgU2Vp
dGUgbmV1IGxhZGVuLicNCiAgICAgICAgICAgICAgICAgICAgJHNjcmlwdDpVcGRhdGVKb2IubG9n
ICAgICAgICAgPSBAKEB7IHQgPSAkdHM7IG1zZyA9ICd1cGRhdGUuYmF0IGF1cyAnICsgJHF1ZWxs
ZSArICcgZ2VzdGFydGV0LicgfSkNCiAgICAgICAgICAgICAgICAgICAgTG9nLUFwaSAoJ1VQREFU
RS1TVEFSVDogdXBkYXRlLmJhdCBhdXMgezB9IGdlc3RhcnRldCAoU3VwZXJVc2VyKS4nIC1mICRx
dWVsbGUpDQogICAgICAgICAgICAgICAgICAgIFNlbmQtSnNvbk9iamVjdCAkUmVzcG9uc2UgQHsg
c3RhcnRlZCA9ICR0cnVlIH0NCiAgICAgICAgICAgICAgICB9IGNhdGNoIHsNCiAgICAgICAgICAg
ICAgICAgICAgJHNjcmlwdDpVcGRhdGVKb2Iuc3RhdGUgPSAnZmFpbGVkJw0KICAgICAgICAgICAg
ICAgICAgICAkc2NyaXB0OlVwZGF0ZUpvYi5lcnJvciA9ICRfLkV4Y2VwdGlvbi5NZXNzYWdlDQog
ICAgICAgICAgICAgICAgICAgIExvZy1BcGkgKCdVUERBVEUtU1RBUlQgRkVITEVSOiB7MH0nIC1m
ICRfLkV4Y2VwdGlvbi5NZXNzYWdlKQ0KICAgICAgICAgICAgICAgICAgICBTZW5kLUVycm9yICRS
ZXNwb25zZSAoJ1VwZGF0ZS1TdGFydCBmZWhsZ2VzY2hsYWdlbjogJyArICRfLkV4Y2VwdGlvbi5N
ZXNzYWdlKSA1MDANCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgY29udGludWUN
CiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGlmICgkUGF0aCAtZXEgJy9hcGkvZGVidWcnIC1h
bmQgJE1ldGhvZCAtZXEgJ0dFVCcpIHsNCiAgICAgICAgICAgICAgICAkZGF0ID0gQHsgUm9vdCA9
ICRSb290OyBEYXRhRGlyID0gJERhdGFEaXI7IEZpbGVzID0gQHt9IH0NCiAgICAgICAgICAgICAg
ICBmb3JlYWNoICgkZiBpbiAnYWRtaW4uanNvbicsJ3BsYW51bmcuanNvbicsJ2xvZ2J1Y2guanNv
bicpIHsNCiAgICAgICAgICAgICAgICAgICAgJGZwID0gSm9pbi1QYXRoICREYXRhRGlyICRmDQog
ICAgICAgICAgICAgICAgICAgICRpbmZvID0gQHsgZXhpc3RzID0gKFRlc3QtUGF0aCAtTGl0ZXJh
bFBhdGggJGZwKSB9DQogICAgICAgICAgICAgICAgICAgIGlmICgkaW5mby5leGlzdHMpIHsgJGlu
Zm8uc2l6ZSA9IChHZXQtSXRlbSAtTGl0ZXJhbFBhdGggJGZwKS5MZW5ndGggfQ0KICAgICAgICAg
ICAgICAgICAgICAkZGF0LkZpbGVzWyRmXSA9ICRpbmZvDQogICAgICAgICAgICAgICAgfQ0KICAg
ICAgICAgICAgICAgICMgUmVjaHRlLUluZm8gKHdpY2h0aWcgZnVlciBBZG1pbi1UYWItU2ljaHRi
YXJrZWl0KQ0KICAgICAgICAgICAgICAgICRkYXQuQmVudXR6ZXIgPSAiJERvbWFpblwkVXNlcm5h
bWUiDQogICAgICAgICAgICAgICAgdHJ5IHsNCiAgICAgICAgICAgICAgICAgICAgJHIgPSBHZXQt
UmVjaHRlDQogICAgICAgICAgICAgICAgICAgICRkYXQuUmVjaHRlID0gQHsNCiAgICAgICAgICAg
ICAgICAgICAgICAgIHJvbGxlICAgICAgICAgICA9ICRyLnJvbGxlDQogICAgICAgICAgICAgICAg
ICAgICAgICBpc3RTdXBlclVzZXIgICAgPSAkci5pc3RTdXBlclVzZXINCiAgICAgICAgICAgICAg
ICAgICAgICAgIGlzdEZhY2hhdWZzaWNodCA9ICRyLmlzdEZhY2hhdWZzaWNodA0KICAgICAgICAg
ICAgICAgICAgICAgICAgc2VoZW4gICAgICAgICAgID0gJHIuc2VoZW4NCiAgICAgICAgICAgICAg
ICAgICAgICAgIG1laW5lUGVyc29uSWQgICA9ICRyLm1laW5lUGVyc29uSWQNCiAgICAgICAgICAg
ICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIH0gY2F0Y2ggew0KICAgICAgICAgICAgICAgICAg
ICAkZGF0LlJlY2h0ZSA9IEB7IGZlaGxlciA9ICRfLkV4Y2VwdGlvbi5NZXNzYWdlIH0NCiAgICAg
ICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgIyBBZG1pbi5qc29uIEt1cnpjaGVjaw0KICAg
ICAgICAgICAgICAgICRhZG1pbk9iaiA9IFJlYWQtSnNvbk9iamVjdCAnYWRtaW4uanNvbicNCiAg
ICAgICAgICAgICAgICBpZiAoJG51bGwgLWVxICRhZG1pbk9iaikgew0KICAgICAgICAgICAgICAg
ICAgICAkZGF0LkFkbWluSnNvbkxlc2JhciA9ICRmYWxzZQ0KICAgICAgICAgICAgICAgIH0gZWxz
ZSB7DQogICAgICAgICAgICAgICAgICAgICRhbnpTVSA9IDANCiAgICAgICAgICAgICAgICAgICAg
aWYgKCRhZG1pbk9iai5zdXBlclVzZXIpIHsgJGFuelNVID0gQCgkYWRtaW5PYmouc3VwZXJVc2Vy
KS5Db3VudCB9DQogICAgICAgICAgICAgICAgICAgICRzdUtlbm51bmdlbiA9IEAoKQ0KICAgICAg
ICAgICAgICAgICAgICBpZiAoJGFkbWluT2JqLnN1cGVyVXNlcikgew0KICAgICAgICAgICAgICAg
ICAgICAgICAgZm9yZWFjaCAoJHMgaW4gQCgkYWRtaW5PYmouc3VwZXJVc2VyKSkgeyAkc3VLZW5u
dW5nZW4gKz0gW3N0cmluZ10kcy5ud0tlbm51bmcgfQ0KICAgICAgICAgICAgICAgICAgICB9DQog
ICAgICAgICAgICAgICAgICAgICRkYXQuQWRtaW5Kc29uTGVzYmFyID0gJHRydWUNCiAgICAgICAg
ICAgICAgICAgICAgJGRhdC5TdXBlclVzZXJBbnphaGwgPSAkYW56U1UNCiAgICAgICAgICAgICAg
ICAgICAgJGRhdC5TdXBlclVzZXJLZW5udW5nZW4gPSAkc3VLZW5udW5nZW4NCiAgICAgICAgICAg
ICAgICB9DQogICAgICAgICAgICAgICAgU2VuZC1Kc29uT2JqZWN0ICRSZXNwb25zZSAkZGF0DQog
ICAgICAgICAgICAgICAgY29udGludWUNCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgIyA9
PT09PSBTWU5DLUNIRUNLID09PT09DQogICAgICAgICAgICAjIFZlcmdsZWljaHQgcHJvIFdlYi1B
c3NldCBkaWUgRGF0ZWktR3JvZXNzZSBpbiBkZXIgU291cmNlIChnZXB1bGx0ZXMNCiAgICAgICAg
ICAgICMgUmVwbywgJHNjcmlwdDpBc3NldEZhbGxiYWNrKSBnZWdlbiBkaWUgRGF0ZWktR3JvZXNz
ZSBpbSBBc3NldC1DYWNoZQ0KICAgICAgICAgICAgIyAoJFJvb3QsIFJvYm9jb3B5LVppZWwpLiBF
cmtlbm50IHVudm9sbHN0YWVuZGlnZSBSb2JvY29weS1VZWJlci0NCiAgICAgICAgICAgICMgdHJh
Z3VuZ2VuLCB2ZXJhbHRldGUgQXNzZXQtQ2FjaGVzIHVuZCBmZWhsZW5kZSBEYXRlaWVuLg0KICAg
ICAgICAgICAgaWYgKCRQYXRoIC1lcSAnL2FwaS9zeW5jLWNoZWNrL2RhdGVpZW4nIC1hbmQgJE1l
dGhvZCAtZXEgJ0dFVCcpIHsNCiAgICAgICAgICAgICAgICBpZiAoLW5vdCAoVGVzdC1Jc3RBZG1p
bikpIHsgU2VuZC1FcnJvciAkUmVzcG9uc2UgJ0tlaW5lIEFkbWluLVJlY2h0ZScgNDAzOyBjb250
aW51ZSB9DQogICAgICAgICAgICAgICAgaWYgKC1ub3QgJHNjcmlwdDpBc3NldEZhbGxiYWNrKSB7
DQogICAgICAgICAgICAgICAgICAgIFNlbmQtSnNvbk9iamVjdCAkUmVzcG9uc2UgQHsNCiAgICAg
ICAgICAgICAgICAgICAgICAgIG9rID0gJGZhbHNlDQogICAgICAgICAgICAgICAgICAgICAgICBm
ZWhsZXIgPSAnQXNzZXRGYWxsYmFjayBuaWNodCBrb25maWd1cmllcnQg4oCUIFNvdXJjZS1QZmFk
IHVuYmVrYW5udCwgVmVyZ2xlaWNoIG5pY2h0IG1vZWdsaWNoLiAoU2VydmVyIHd1cmRlIG9obmUg
LUFzc2V0RmFsbGJhY2sgZ2VzdGFydGV0LiknDQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAg
ICAgICAgICAgICAgICAgY29udGludWUNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAg
ICAgJHdlYkV4dCA9ICcuanMnLCcuY3NzJywnLmh0bWwnLCcuaWNvJywnLnBuZycsJy5qcGcnLCcu
anBlZycsJy5zdmcnDQogICAgICAgICAgICAgICAgJGlnbm9yaWVyZVRvcCA9IEAoJy5naXQnLCdk
b2NzJywnZGV2JywndGVzdHMnLCdkYXRhJywnY2FjaGUnKQ0KICAgICAgICAgICAgICAgICRkYXRl
aWVuID0gQCgpDQogICAgICAgICAgICAgICAgdHJ5IHsNCiAgICAgICAgICAgICAgICAgICAgJGFs
bGUgPSBHZXQtQ2hpbGRJdGVtIC1MaXRlcmFsUGF0aCAkc2NyaXB0OkFzc2V0RmFsbGJhY2sgLVJl
Y3Vyc2UgLUZpbGUgLUVycm9yQWN0aW9uIFNpbGVudGx5Q29udGludWUNCiAgICAgICAgICAgICAg
ICAgICAgZm9yZWFjaCAoJGYgaW4gJGFsbGUpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICRy
ZWwgPSAkZi5GdWxsTmFtZS5TdWJzdHJpbmcoJHNjcmlwdDpBc3NldEZhbGxiYWNrLkxlbmd0aCAr
IDEpIC1yZXBsYWNlICdcXCcsICcvJw0KICAgICAgICAgICAgICAgICAgICAgICAgJHRvcCA9ICgk
cmVsIC1zcGxpdCAnLycpWzBdDQogICAgICAgICAgICAgICAgICAgICAgICBpZiAoJGlnbm9yaWVy
ZVRvcCAtY29udGFpbnMgJHRvcCkgeyBjb250aW51ZSB9DQogICAgICAgICAgICAgICAgICAgICAg
ICAkZXh0ID0gJGYuRXh0ZW5zaW9uLlRvTG93ZXIoKQ0KICAgICAgICAgICAgICAgICAgICAgICAg
aWYgKCR3ZWJFeHQgLW5vdGNvbnRhaW5zICRleHQpIHsgY29udGludWUgfQ0KICAgICAgICAgICAg
ICAgICAgICAgICAgJGRhdGVpZW4gKz0gJHJlbA0KICAgICAgICAgICAgICAgICAgICB9DQogICAg
ICAgICAgICAgICAgICAgICMgZGF0YS8tU29uZGVyZmFlbGxlOiBudXIgZGllIHp3ZWkgVGFybi1N
YXJrdXBzLCBhbGxlcyBhbmRlcmUNCiAgICAgICAgICAgICAgICAgICAgIyBsaWVndCBpbSBEYXRh
RGlyIChhZG1pbi5qc29uL3BsYW51bmcuanNvbi8uLi4pIHVuZCB3aXJkIG5pY2h0DQogICAgICAg
ICAgICAgICAgICAgICMgaW4gZGVuIEFzc2V0LUNhY2hlIGtvcGllcnQuDQogICAgICAgICAgICAg
ICAgICAgIGZvcmVhY2ggKCRleHRyYSBpbiAnZGF0YS9tYWluZnJhbWUuaHRtbCcsJ2RhdGEvc2Fu
aXRpemVyLmh0bWwnKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAkc3JjRXh0cmEgPSBKb2lu
LVBhdGggJHNjcmlwdDpBc3NldEZhbGxiYWNrICRleHRyYQ0KICAgICAgICAgICAgICAgICAgICAg
ICAgaWYgKFRlc3QtUGF0aCAtTGl0ZXJhbFBhdGggJHNyY0V4dHJhKSB7ICRkYXRlaWVuICs9ICRl
eHRyYSB9DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICB9IGNhdGNoIHsN
CiAgICAgICAgICAgICAgICAgICAgU2VuZC1Kc29uT2JqZWN0ICRSZXNwb25zZSBAeyBvayA9ICRm
YWxzZTsgZmVobGVyID0gKCdTb3VyY2UtVmVyemVpY2huaXMgbmljaHQgbGVzYmFyOiAnICsgJF8u
RXhjZXB0aW9uLk1lc3NhZ2UpIH0NCiAgICAgICAgICAgICAgICAgICAgY29udGludWUNCiAgICAg
ICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgJGRhdGVpZW4gPSAkZGF0ZWllbiB8IFNvcnQt
T2JqZWN0IC1VbmlxdWUNCiAgICAgICAgICAgICAgICAkZWludHJhZWdlID0gQCgpDQogICAgICAg
ICAgICAgICAgJGFuek9rID0gMDsgJGFuekRpZmYgPSAwOyAkYW56RmVobHRBc3NldCA9IDA7ICRh
bnpGZWhsdFNvdXJjZSA9IDANCiAgICAgICAgICAgICAgICBmb3JlYWNoICgkcmVsIGluICRkYXRl
aWVuKSB7DQogICAgICAgICAgICAgICAgICAgICRhc3NldFBmYWQgID0gSm9pbi1QYXRoICRSb290
ICRyZWwNCiAgICAgICAgICAgICAgICAgICAgJHNvdXJjZVBmYWQgPSBKb2luLVBhdGggJHNjcmlw
dDpBc3NldEZhbGxiYWNrICRyZWwNCiAgICAgICAgICAgICAgICAgICAgJGFzc2V0Qnl0ZXMgID0g
JG51bGwNCiAgICAgICAgICAgICAgICAgICAgJHNvdXJjZUJ5dGVzID0gJG51bGwNCiAgICAgICAg
ICAgICAgICAgICAgaWYgKFRlc3QtUGF0aCAtTGl0ZXJhbFBhdGggJGFzc2V0UGZhZCkgIHsgJGFz
c2V0Qnl0ZXMgID0gKEdldC1JdGVtIC1MaXRlcmFsUGF0aCAkYXNzZXRQZmFkKS5MZW5ndGggfQ0K
ICAgICAgICAgICAgICAgICAgICBpZiAoVGVzdC1QYXRoIC1MaXRlcmFsUGF0aCAkc291cmNlUGZh
ZCkgeyAkc291cmNlQnl0ZXMgPSAoR2V0LUl0ZW0gLUxpdGVyYWxQYXRoICRzb3VyY2VQZmFkKS5M
ZW5ndGggfQ0KICAgICAgICAgICAgICAgICAgICAkc3RhdHVzID0gJ3VuYmVrYW5udCcNCiAgICAg
ICAgICAgICAgICAgICAgaWYgKCRudWxsIC1lcSAkc291cmNlQnl0ZXMgLWFuZCAkbnVsbCAtZXEg
JGFzc2V0Qnl0ZXMpIHsgJHN0YXR1cyA9ICdiZWlkZV9mZWhsZW4nIH0NCiAgICAgICAgICAgICAg
ICAgICAgZWxzZWlmICgkbnVsbCAtZXEgJGFzc2V0Qnl0ZXMpICB7ICRzdGF0dXMgPSAnYXNzZXRf
ZmVobHQnOyAgJGFuekZlaGx0QXNzZXQrKyB9DQogICAgICAgICAgICAgICAgICAgIGVsc2VpZiAo
JG51bGwgLWVxICRzb3VyY2VCeXRlcykgeyAkc3RhdHVzID0gJ3NvdXJjZV9mZWhsdCc7ICRhbnpG
ZWhsdFNvdXJjZSsrIH0NCiAgICAgICAgICAgICAgICAgICAgZWxzZWlmICgkYXNzZXRCeXRlcyAt
ZXEgJHNvdXJjZUJ5dGVzKSB7ICRzdGF0dXMgPSAnb2snOyAkYW56T2srKyB9DQogICAgICAgICAg
ICAgICAgICAgIGVsc2UgeyAkc3RhdHVzID0gJ2dyb2Vzc2VfZGlmZic7ICRhbnpEaWZmKysgfQ0K
ICAgICAgICAgICAgICAgICAgICAkZWludHJhZWdlICs9IFtvcmRlcmVkXUB7DQogICAgICAgICAg
ICAgICAgICAgICAgICBwZmFkICAgICAgICA9ICRyZWwNCiAgICAgICAgICAgICAgICAgICAgICAg
IHNvdXJjZUJ5dGVzID0gJHNvdXJjZUJ5dGVzDQogICAgICAgICAgICAgICAgICAgICAgICBhc3Nl
dEJ5dGVzICA9ICRhc3NldEJ5dGVzDQogICAgICAgICAgICAgICAgICAgICAgICBkaWZmQnl0ZXMg
ICA9IGlmICgkbnVsbCAtbmUgJHNvdXJjZUJ5dGVzIC1hbmQgJG51bGwgLW5lICRhc3NldEJ5dGVz
KSB7ICRhc3NldEJ5dGVzIC0gJHNvdXJjZUJ5dGVzIH0gZWxzZSB7ICRudWxsIH0NCiAgICAgICAg
ICAgICAgICAgICAgICAgIHN0YXR1cyAgICAgID0gJHN0YXR1cw0KICAgICAgICAgICAgICAgICAg
ICB9DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIFNlbmQtSnNvbk9iamVjdCAk
UmVzcG9uc2UgQHsNCiAgICAgICAgICAgICAgICAgICAgb2sgICAgICAgICAgPSAkdHJ1ZQ0KICAg
ICAgICAgICAgICAgICAgICBzb3VyY2VSb290ICA9ICRzY3JpcHQ6QXNzZXRGYWxsYmFjaw0KICAg
ICAgICAgICAgICAgICAgICBhc3NldFJvb3QgICA9ICRSb290DQogICAgICAgICAgICAgICAgICAg
IGFuemFobCAgICAgID0gJGVpbnRyYWVnZS5Db3VudA0KICAgICAgICAgICAgICAgICAgICBhbnpP
ayAgICAgICA9ICRhbnpPaw0KICAgICAgICAgICAgICAgICAgICBhbnpEaWZmICAgICA9ICRhbnpE
aWZmDQogICAgICAgICAgICAgICAgICAgIGFuekZlaGx0QXNzZXQgID0gJGFuekZlaGx0QXNzZXQN
CiAgICAgICAgICAgICAgICAgICAgYW56RmVobHRTb3VyY2UgPSAkYW56RmVobHRTb3VyY2UNCiAg
ICAgICAgICAgICAgICAgICAgZGF0ZWllbiAgICAgPSAkZWludHJhZWdlDQogICAgICAgICAgICAg
ICAgfQ0KICAgICAgICAgICAgICAgIGNvbnRpbnVlDQogICAgICAgICAgICB9DQoNCiAgICAgICAg
ICAgICMgPT09PT0gQURNSU4gPT09PT0NCiAgICAgICAgICAgIGlmICgkUGF0aCAtZXEgJy9hcGkv
YWRtaW4nIC1hbmQgJE1ldGhvZCAtZXEgJ0dFVCcpIHsNCiAgICAgICAgICAgICAgICAkdHh0ID0g
UmVhZC1UZXh0RmlsZSAnYWRtaW4uanNvbicNCiAgICAgICAgICAgICAgICBpZiAoJG51bGwgLWVx
ICR0eHQpIHsgU2VuZC1FcnJvciAkUmVzcG9uc2UgJ2FkbWluLmpzb24gbmljaHQgZ2VmdW5kZW4n
IDQwNCB9DQogICAgICAgICAgICAgICAgZWxzZSB7IFNlbmQtSnNvblRleHQgJFJlc3BvbnNlICR0
eHQgfQ0KICAgICAgICAgICAgICAgIGNvbnRpbnVlDQogICAgICAgICAgICB9DQogICAgICAgICAg
ICBpZiAoJFBhdGggLWVxICcvYXBpL2FkbWluJyAtYW5kICRNZXRob2QgLWVxICdQVVQnKSB7DQog
ICAgICAgICAgICAgICAgaWYgKC1ub3QgKFRlc3QtRGFyZkJlcmVpY2ggJ2FkbWluaXN0cmF0aW9u
JykpIHsgU2VuZC1FcnJvciAkUmVzcG9uc2UgJ0tlaW5lIEFkbWluLVJlY2h0ZScgNDAzOyBjb250
aW51ZSB9DQogICAgICAgICAgICAgICAgJGJvZHkgPSBSZWFkLUJvZHkgJFJlcXVlc3QNCiAgICAg
ICAgICAgICAgICBpZiAoLW5vdCAkYm9keSkgeyBTZW5kLUVycm9yICRSZXNwb25zZSAnQW5mcmFn
ZSB6dSBncm9zcycgNDEzOyBjb250aW51ZSB9DQogICAgICAgICAgICAgICAgJGRhdGVuID0gJGJv
ZHkgfCBDb252ZXJ0RnJvbS1Kc29uDQogICAgICAgICAgICAgICAgaWYgKCRkYXRlbi5QU09iamVj
dC5Qcm9wZXJ0aWVzWydhZG1pbktlbm51bmdlbiddKSB7ICRkYXRlbi5QU09iamVjdC5Qcm9wZXJ0
aWVzLlJlbW92ZSgnYWRtaW5LZW5udW5nZW4nKSB9DQogICAgICAgICAgICAgICAgIyBQUy01LjEt
VW53cmFwLVNjaHV0ejogYWxsZSBMaXN0ZW4tRmVsZGVyLCBkaWUgZGVyIENsaWVudCB1bnRlcg0K
ICAgICAgICAgICAgICAgICMgQURNSU5fTElTVF9GRUxERVIgZnVlaHJ0LCBzZXJ2ZXItc2VpdGln
IGFscyBBcnJheXMgZXJ6d2luZ2VuLg0KICAgICAgICAgICAgICAgICMgU29uc3Qgd2VyZGVuIExp
c3RlbiBtaXQgbnVyIGVpbmVtIEVsZW1lbnQgdm9tIFBvd2VyU2hlbGwtSlNPTi0NCiAgICAgICAg
ICAgICAgICAjIFJvdW5kdHJpcCB6dW0gRWluemVsLU9iamVrdCBlbnRwYWNrdCB1bmQgY2xpZW50
LXNlaXRpZyBrb21tdA0KICAgICAgICAgICAgICAgICMgYWRtaW5MaXN0ZW5Ob3JtYWxpc2llcmVu
IGdnZi4genUgc3BhZXQgKHouQi4gbmFjaCBIb3QtUmVsb2FkKS4NCiAgICAgICAgICAgICAgICBO
b3JtYWxpc2llcmUtQWRtaW5MaXN0ZW4gJGRhdGVuDQogICAgICAgICAgICAgICAgIyBTZXJ2ZXIt
c2VpdGlnZSBSaWNoLVRleHQtU2FuaXRpc2llcnVuZyAoU3RvcmVkLVhTUy1TY2h1dHopLg0KICAg
ICAgICAgICAgICAgIEludm9rZS1BZG1pblJpY2h0ZXh0U2FuaXRpemUgJGRhdGVuDQogICAgICAg
ICAgICAgICAgJGlzdFNVID0gVGVzdC1Jc3RTdXBlclVzZXINCiAgICAgICAgICAgICAgICAkbG9j
a0VyZ2VibmlzID0gJG51bGwNCiAgICAgICAgICAgICAgICB0cnkgew0KICAgICAgICAgICAgICAg
ICAgICAkbG9ja0VyZ2VibmlzID0gSW52b2tlLVdpdGhGaWxlTG9jayAnYWRtaW4uanNvbicgew0K
ICAgICAgICAgICAgICAgICAgICAgICAgIyBOdXIgU3VwZXJVc2VyIGRhcmYgZGllIFJvbGxlbi1M
aXN0ZW4gc3VwZXJVc2VyL2ZhY2hhdWZzaWNodA0KICAgICAgICAgICAgICAgICAgICAgICAgIyB1
ZWJlciAvYXBpL2FkbWluIGFlbmRlcm4g4oCUIHNvbnN0IGtvZW5udGUgamVtYW5kIHNpY2ggc2Vs
YnN0DQogICAgICAgICAgICAgICAgICAgICAgICAjIHp1bSBTdXBlclVzZXIgYmVmb2VyZGVybiB1
bmQgZGFtaXQgZGllIHNlcGFyYXRlbiBHdWFyZHMgYXVmDQogICAgICAgICAgICAgICAgICAgICAg
ICAjIC9hcGkvYWRtaW4vc3VwZXJ1c2VyIGJ6dy4gL2FwaS9hZG1pbi9mYWNoYXVmc2ljaHQgdW1n
ZWhlbi4NCiAgICAgICAgICAgICAgICAgICAgICAgICMgYWRtaW5LZW5udW5nZW4gaXN0IGdlbmVy
ZWxsIGFiZ2VzY2hhZmZ0IHVuZCB3aXJkIGVudGZlcm50Lg0KICAgICAgICAgICAgICAgICAgICAg
ICAgIyBSZWFkIGRlciBhbHRlbiBXZXJ0ZSBtdXNzIElOTkVSSEFMQiBkZXMgTG9ja3MgcGFzc2ll
cmVuLA0KICAgICAgICAgICAgICAgICAgICAgICAgIyBkYW1pdCBkaWUgU1UvRmFjaGF1ZnNpY2h0
LUxpc3RlbiBhdG9tYXIgZXJoYWx0ZW4gYmxlaWJlbi4NCiAgICAgICAgICAgICAgICAgICAgICAg
ICRhbHQgPSBSZWFkLUpzb25PYmplY3QgJ2FkbWluLmpzb24nDQogICAgICAgICAgICAgICAgICAg
ICAgICBpZiAoLW5vdCAkaXN0U1UpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3Jl
YWNoICgkZmVsZCBpbiAnc3VwZXJVc2VyJywnZmFjaGF1ZnNpY2h0JywnZGlyZWt0aW9uc2xlaXR1
bmcnLCdmdWVocnVuZ3NzdGVsbGUnKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGlmICgkYWx0IC1hbmQgJGFsdC5QU09iamVjdC5Qcm9wZXJ0aWVzWyRmZWxkXSkgew0KICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCRkYXRlbi5QU09iamVjdC5Qcm9wZXJ0
aWVzWyRmZWxkXSkgeyAkZGF0ZW4uJGZlbGQgPSAkYWx0LiRmZWxkIH0NCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGVsc2UgeyAkZGF0ZW4gfCBBZGQtTWVtYmVyIC1Ob3RlUHJv
cGVydHlOYW1lICRmZWxkIC1Ob3RlUHJvcGVydHlWYWx1ZSAkYWx0LiRmZWxkIC1Gb3JjZSB9DQog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZWlmICgkZGF0ZW4uUFNPYmplY3Qu
UHJvcGVydGllc1skZmVsZF0pIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICRkYXRlbi5QU09iamVjdC5Qcm9wZXJ0aWVzLlJlbW92ZSgkZmVsZCkNCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAg
ICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgICMgS2V5LVVuaW9u
OiBuaWNodCBtaXRnZXNlbmRldGUgVG9wLUxldmVsLUtleXMgZXJoYWx0ZW4uDQogICAgICAgICAg
ICAgICAgICAgICAgICBbdm9pZF0oTWVyZ2UtQWRtaW5LZXlzICRhbHQgJGRhdGVuKQ0KICAgICAg
ICAgICAgICAgICAgICAgICAgV3JpdGUtSnNvbk9iamVjdCAnYWRtaW4uanNvbicgJGRhdGVuIHwg
T3V0LU51bGwNCiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBAeyBvayA9ICR0cnVlIH0N
CiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIH0gY2F0Y2ggew0KICAgICAg
ICAgICAgICAgICAgICBTZW5kLUVycm9yICRSZXNwb25zZSAoIkxvY2stRmVobGVyOiAkXyIpIDUw
MzsgY29udGludWUNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgaWYgKC1ub3Qg
JGxvY2tFcmdlYm5pcy5vaykgeyBTZW5kLUVycm9yICRSZXNwb25zZSAkbG9ja0VyZ2VibmlzLm1z
ZyAkbG9ja0VyZ2VibmlzLnN0YXR1czsgY29udGludWUgfQ0KICAgICAgICAgICAgICAgIFdyaXRl
LUxvZ0VpbnRyYWcgJ2FkbWluLmdlYWVuZGVydCcgQHt9DQogICAgICAgICAgICAgICAgU2VuZC1K
c29uT2JqZWN0ICRSZXNwb25zZSBAeyBzdGF0dXMgPSAnZ2VzcGVpY2hlcnQnIH0NCiAgICAgICAg
ICAgICAgICBjb250aW51ZQ0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAjIFN1cGVyLVVz
ZXItTGlzdGU6IG51ciBTdXBlclVzZXIgZGFyZiBTdXBlclVzZXIgdmVyd2FsdGVuDQogICAgICAg
ICAgICBpZiAoJFBhdGggLWVxICcvYXBpL2FkbWluL3N1cGVydXNlcicgLWFuZCAkTWV0aG9kIC1l
cSAnUFVUJykgew0KICAgICAgICAgICAgICAgIGlmICgtbm90IChUZXN0LUlzdFN1cGVyVXNlcikp
IHsgU2VuZC1FcnJvciAkUmVzcG9uc2UgJ051ciBTdXBlclVzZXIgZHVlcmZlbiBTdXBlclVzZXIg
dmVyd2FsdGVuJyA0MDM7IGNvbnRpbnVlIH0NCiAgICAgICAgICAgICAgICAkYm9keSA9IFJlYWQt
Qm9keSAkUmVxdWVzdA0KICAgICAgICAgICAgICAgIGlmICgtbm90ICRib2R5KSB7IFNlbmQtRXJy
b3IgJFJlc3BvbnNlICdBbmZyYWdlIHp1IGdyb3NzJyA0MTM7IGNvbnRpbnVlIH0NCiAgICAgICAg
ICAgICAgICAjIEAoLi4uKSBlcnp3aW5ndCBBcnJheSBhdWNoIGJlaSAxIEVsZW1lbnQgKFBTIDUu
MSBlbnRwYWNrdCBzb25zdCB6dSBFaW56ZWwtT2JqZWt0LA0KICAgICAgICAgICAgICAgICMgZGFu
biB3aXJkIGRpZSBMaXN0ZSBpbiBhZG1pbi5qc29uIHp1bSBPYmpla3QgZGVnZW5lcmllcnQgLT4g
Q2xpZW50LUZlaGxlcikuDQogICAgICAgICAgICAgICAgJGJvZHlPYmogPSAkYm9keSB8IENvbnZl
cnRGcm9tLUpzb24NCiAgICAgICAgICAgICAgICAkZGF0ZW4gPSBbb2JqZWN0W11dQCgkYm9keU9i
aikNCiAgICAgICAgICAgICAgICAkbG9ja0VyZ2VibmlzID0gJG51bGwNCiAgICAgICAgICAgICAg
ICB0cnkgew0KICAgICAgICAgICAgICAgICAgICAkbG9ja0VyZ2VibmlzID0gSW52b2tlLVdpdGhG
aWxlTG9jayAnYWRtaW4uanNvbicgew0KICAgICAgICAgICAgICAgICAgICAgICAgJGFkbWluID0g
UmVhZC1Kc29uT2JqZWN0ICdhZG1pbi5qc29uJw0KICAgICAgICAgICAgICAgICAgICAgICAgaWYg
KCRudWxsIC1lcSAkYWRtaW4pIHsgcmV0dXJuIEB7IG9rID0gJGZhbHNlOyBzdGF0dXMgPSA1MDA7
IG1zZyA9ICdhZG1pbi5qc29uIG5pY2h0IGxlc2JhcicgfSB9DQogICAgICAgICAgICAgICAgICAg
ICAgICAkd2lwZU1zZyA9IFRlc3QtV2lwZVNjaHV0eiAnc3VwZXJVc2VyJyAkZGF0ZW4gJGFkbWlu
ICRSZXF1ZXN0ICRib2R5T2JqDQogICAgICAgICAgICAgICAgICAgICAgICBpZiAoJHdpcGVNc2cp
IHsgcmV0dXJuIEB7IG9rID0gJGZhbHNlOyBzdGF0dXMgPSA0MDk7IG1zZyA9ICR3aXBlTXNnIH0g
fQ0KICAgICAgICAgICAgICAgICAgICAgICAgIyBBbHRlIExpc3RlIHZvciBkZW0gT3ZlcndyaXRl
IHNuYXBzaG90dGVuIOKAlCB3aXIgYnJhdWNoZW4NCiAgICAgICAgICAgICAgICAgICAgICAgICMg
c2llIG5hY2ggZGVtIExvY2sgZnVlciBkaWUgRGlmZi1CZXJlY2hudW5nIChtYWlsdG8gYmVpDQog
ICAgICAgICAgICAgICAgICAgICAgICAjIFNVIHJlaW4vcmF1cykuDQogICAgICAgICAgICAgICAg
ICAgICAgICAkYWx0U1UgPSBAKCkNCiAgICAgICAgICAgICAgICAgICAgICAgIGlmICgkYWRtaW4u
UFNPYmplY3QuUHJvcGVydGllc1snc3VwZXJVc2VyJ10pIHsgJGFsdFNVID0gW29iamVjdFtdXUAo
JGFkbWluLnN1cGVyVXNlcikgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgW3ZvaWRdKEJhY2t1
cC1BZG1pbkpzb24gJ3N1cGVyVXNlcicpDQogICAgICAgICAgICAgICAgICAgICAgICBpZiAoJGFk
bWluLlBTT2JqZWN0LlByb3BlcnRpZXNbJ3N1cGVyVXNlciddKSB7ICRhZG1pbi5zdXBlclVzZXIg
PSAkZGF0ZW4gfQ0KICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSB7ICRhZG1pbiB8IEFkZC1N
ZW1iZXIgLU5vdGVQcm9wZXJ0eU5hbWUgJ3N1cGVyVXNlcicgLU5vdGVQcm9wZXJ0eVZhbHVlICRk
YXRlbiAtRm9yY2UgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgV3JpdGUtSnNvbk9iamVjdCAn
YWRtaW4uanNvbicgJGFkbWluIHwgT3V0LU51bGwNCiAgICAgICAgICAgICAgICAgICAgICAgIHJl
dHVybiBAeyBvayA9ICR0cnVlOyBhbHQgPSAkYWx0U1UgfQ0KICAgICAgICAgICAgICAgICAgICB9
DQogICAgICAgICAgICAgICAgfSBjYXRjaCB7DQogICAgICAgICAgICAgICAgICAgIFNlbmQtRXJy
b3IgJFJlc3BvbnNlICgiTG9jay1GZWhsZXI6ICRfIikgNTAzOyBjb250aW51ZQ0KICAgICAgICAg
ICAgICAgIH0NCiAgICAgICAgICAgICAgICBpZiAoLW5vdCAkbG9ja0VyZ2VibmlzLm9rKSB7IFNl
bmQtRXJyb3IgJFJlc3BvbnNlICRsb2NrRXJnZWJuaXMubXNnICRsb2NrRXJnZWJuaXMuc3RhdHVz
OyBjb250aW51ZSB9DQogICAgICAgICAgICAgICAgIyBEaWZmIGFsdC9uZXUgbmFjaCBud0tlbm51
bmcuIFNVLVJlaW4vUmF1cyBsb2VzdCBtYWlsdG8gdmlhIENsaWVudCBhdXMNCiAgICAgICAgICAg
ICAgICAjIChWZXJhbnR3b3J0dW5ncy1VZWJlcmdhbmcgVm9ybGFnZSAncm9sbGVfdmVyYW50d29y
dHVuZycpLg0KICAgICAgICAgICAgICAgICRtYWlsdG9EaWZmcyA9IEdldC1Sb2xsZURpZmZzICRs
b2NrRXJnZWJuaXMuYWx0ICRkYXRlbiAnU3VwZXJVc2VyJyAkZmFsc2UNCiAgICAgICAgICAgICAg
ICAjIGFuemFobCBtaXRnZWJlbiDigJQgZGVyIExvZ2J1Y2gtQ2xpZW50IGxpZXN0IGUuYW56YWhs
OyBvaG5lIGRhcw0KICAgICAgICAgICAgICAgICMgRmVsZCBibGllYiBkaWUgRGV0YWlsLVNwYWx0
ZSBiZWkgU1UtTGlzdGVuYWVuZGVydW5nZW4gbGVlcg0KICAgICAgICAgICAgICAgICMgKGZhY2hh
dWZzaWNodC5nZWFlbmRlcnQgdW50ZW4gbWFjaHQgZXMgZ2VuYXVzbykuDQogICAgICAgICAgICAg
ICAgV3JpdGUtTG9nRWludHJhZyAnc3VwZXJVc2VyLmdlYWVuZGVydCcgQHsgYW56YWhsID0gJGRh
dGVuLkNvdW50OyBkaWZmcyA9ICRtYWlsdG9EaWZmcy5Db3VudCB9DQogICAgICAgICAgICAgICAg
JHJlc3AgPSBAeyBzdGF0dXMgPSAnZ2VzcGVpY2hlcnQnIH0NCiAgICAgICAgICAgICAgICBpZiAo
JG1haWx0b0RpZmZzLkNvdW50IC1ndCAwKSB7DQogICAgICAgICAgICAgICAgICAgICMgUFMtNS4x
LVVud3JhcC1TY2h1dHo6IEAoJHgpIGVyendpbmd0IEFycmF5IGF1Y2ggYmVpIDEgRWxlbWVudC4N
CiAgICAgICAgICAgICAgICAgICAgJHJlc3BbJ19icmF1Y2h0X21haWx0byddID0gW29yZGVyZWRd
QHsgdHJpZ2dlciA9ICdyb2xsZV92ZXJhbnR3b3J0dW5nJzsgZGlmZnMgPSBbb2JqZWN0W11dQCgk
bWFpbHRvRGlmZnMpIH0NCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgU2VuZC1K
c29uT2JqZWN0ICRSZXNwb25zZSAkcmVzcA0KICAgICAgICAgICAgICAgIGNvbnRpbnVlDQogICAg
ICAgICAgICB9DQoNCiAgICAgICAgICAgICMgRmFjaGF1ZnNpY2h0LUxpc3RlOiBudXIgU3VwZXJV
c2VyIGRhcmYgRmFjaGF1ZnNpY2h0IHZlcndhbHRlbg0KICAgICAgICAgICAgaWYgKCRQYXRoIC1l
cSAnL2FwaS9hZG1pbi9mYWNoYXVmc2ljaHQnIC1hbmQgJE1ldGhvZCAtZXEgJ1BVVCcpIHsNCiAg
ICAgICAgICAgICAgICBpZiAoLW5vdCAoVGVzdC1Jc3RTdXBlclVzZXIpKSB7IFNlbmQtRXJyb3Ig
JFJlc3BvbnNlICdOdXIgU3VwZXJVc2VyIGR1ZXJmZW4gRmFjaGF1ZnNpY2h0IHZlcndhbHRlbicg
NDAzOyBjb250aW51ZSB9DQogICAgICAgICAgICAgICAgJGJvZHkgPSBSZWFkLUJvZHkgJFJlcXVl
c3QNCiAgICAgICAgICAgICAgICBpZiAoLW5vdCAkYm9keSkgeyBTZW5kLUVycm9yICRSZXNwb25z
ZSAnQW5mcmFnZSB6dSBncm9zcycgNDEzOyBjb250aW51ZSB9DQogICAgICAgICAgICAgICAgJGJv
ZHlPYmogPSAkYm9keSB8IENvbnZlcnRGcm9tLUpzb24NCiAgICAgICAgICAgICAgICAkZGF0ZW4g
PSBbb2JqZWN0W11dQCgkYm9keU9iaikNCiAgICAgICAgICAgICAgICAkbG9ja0VyZ2VibmlzID0g
JG51bGwNCiAgICAgICAgICAgICAgICB0cnkgew0KICAgICAgICAgICAgICAgICAgICAkbG9ja0Vy
Z2VibmlzID0gSW52b2tlLVdpdGhGaWxlTG9jayAnYWRtaW4uanNvbicgew0KICAgICAgICAgICAg
ICAgICAgICAgICAgJGFkbWluID0gUmVhZC1Kc29uT2JqZWN0ICdhZG1pbi5qc29uJw0KICAgICAg
ICAgICAgICAgICAgICAgICAgaWYgKCRudWxsIC1lcSAkYWRtaW4pIHsgcmV0dXJuIEB7IG9rID0g
JGZhbHNlOyBzdGF0dXMgPSA1MDA7IG1zZyA9ICdhZG1pbi5qc29uIG5pY2h0IGxlc2JhcicgfSB9
DQogICAgICAgICAgICAgICAgICAgICAgICAkd2lwZU1zZyA9IFRlc3QtV2lwZVNjaHV0eiAnZmFj
aGF1ZnNpY2h0JyAkZGF0ZW4gJGFkbWluICRSZXF1ZXN0ICRib2R5T2JqDQogICAgICAgICAgICAg
ICAgICAgICAgICBpZiAoJHdpcGVNc2cpIHsgcmV0dXJuIEB7IG9rID0gJGZhbHNlOyBzdGF0dXMg
PSA0MDk7IG1zZyA9ICR3aXBlTXNnIH0gfQ0KICAgICAgICAgICAgICAgICAgICAgICAgJGFsdEZB
ID0gQCgpDQogICAgICAgICAgICAgICAgICAgICAgICBpZiAoJGFkbWluLlBTT2JqZWN0LlByb3Bl
cnRpZXNbJ2ZhY2hhdWZzaWNodCddKSB7ICRhbHRGQSA9IFtvYmplY3RbXV1AKCRhZG1pbi5mYWNo
YXVmc2ljaHQpIH0NCiAgICAgICAgICAgICAgICAgICAgICAgIFt2b2lkXShCYWNrdXAtQWRtaW5K
c29uICdmYWNoYXVmc2ljaHQnKQ0KICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCRhZG1pbi5Q
U09iamVjdC5Qcm9wZXJ0aWVzWydmYWNoYXVmc2ljaHQnXSkgeyAkYWRtaW4uZmFjaGF1ZnNpY2h0
ID0gJGRhdGVuIH0NCiAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgeyAkYWRtaW4gfCBBZGQt
TWVtYmVyIC1Ob3RlUHJvcGVydHlOYW1lICdmYWNoYXVmc2ljaHQnIC1Ob3RlUHJvcGVydHlWYWx1
ZSAkZGF0ZW4gLUZvcmNlIH0NCiAgICAgICAgICAgICAgICAgICAgICAgIFdyaXRlLUpzb25PYmpl
Y3QgJ2FkbWluLmpzb24nICRhZG1pbiB8IE91dC1OdWxsDQogICAgICAgICAgICAgICAgICAgICAg
ICByZXR1cm4gQHsgb2sgPSAkdHJ1ZTsgYWx0ID0gJGFsdEZBIH0NCiAgICAgICAgICAgICAgICAg
ICAgfQ0KICAgICAgICAgICAgICAgIH0gY2F0Y2ggew0KICAgICAgICAgICAgICAgICAgICBTZW5k
LUVycm9yICRSZXNwb25zZSAoIkxvY2stRmVobGVyOiAkXyIpIDUwMzsgY29udGludWUNCiAgICAg
ICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgaWYgKC1ub3QgJGxvY2tFcmdlYm5pcy5vaykg
eyBTZW5kLUVycm9yICRSZXNwb25zZSAkbG9ja0VyZ2VibmlzLm1zZyAkbG9ja0VyZ2VibmlzLnN0
YXR1czsgY29udGludWUgfQ0KICAgICAgICAgICAgICAgICMgRmFjaGF1ZnNpY2h0LURpZmY6IHRy
ZW5udCBtYWlsdG8td3VlcmRpZ2UgVmVyYW50d29ydHVuZ3MtDQogICAgICAgICAgICAgICAgIyBV
ZWJlcmdhZW5nZSAoR2VzYW10dmVyYW50d29ydGxpY2ggcmVpbi9yYXVzKSB2b20gcmVzdGxpY2hl
bg0KICAgICAgICAgICAgICAgICMgUm9sbGVuLVVwZGF0ZXMgKEZBIGhpbnp1L3JhdXMgb2huZSBH
ZXNhbXQsIG9kZXIgU2VoZW4tRmxhZy0NCiAgICAgICAgICAgICAgICAjIFdlY2hzZWwpLiBFcnN0
ZSBmbGllw59lbiBpbiBkZW4gbWFpbHRvLVRyaWdnZXIsIGRlciBSZXN0IHdpcmQNCiAgICAgICAg
ICAgICAgICAjIHp1IEluLUFwcC1IaW53ZWlzZW4uDQogICAgICAgICAgICAgICAgJGZhQXVzd2Vy
dHVuZyA9IEdldC1GYWNoYXVmc2ljaHREaWZmcyAkbG9ja0VyZ2VibmlzLmFsdCAkZGF0ZW4NCiAg
ICAgICAgICAgICAgICBXcml0ZS1Mb2dFaW50cmFnICdmYWNoYXVmc2ljaHQuZ2VhZW5kZXJ0JyBA
eyBhbnphaGwgPSAkZGF0ZW4uQ291bnQ7IG1haWx0byA9ICRmYUF1c3dlcnR1bmcubWFpbHRvRGlm
ZnMuQ291bnQ7IGhpbndlaXNlID0gJGZhQXVzd2VydHVuZy5oaW53ZWlzRGlmZnMuQ291bnQgfQ0K
ICAgICAgICAgICAgICAgIGZvcmVhY2ggKCRoIGluICRmYUF1c3dlcnR1bmcuaGlud2Vpc0RpZmZz
KSB7DQogICAgICAgICAgICAgICAgICAgIE5ldy1IaW53ZWlzICdyb2xsZV9nZWFlbmRlcnQnICRo
IChHZXQtQWt0dWVsbGVyQmVudXR6ZXIpIHwgT3V0LU51bGwNCiAgICAgICAgICAgICAgICB9DQog
ICAgICAgICAgICAgICAgJHJlc3AgPSBAeyBzdGF0dXMgPSAnZ2VzcGVpY2hlcnQnIH0NCiAgICAg
ICAgICAgICAgICBpZiAoJGZhQXVzd2VydHVuZy5tYWlsdG9EaWZmcy5Db3VudCAtZ3QgMCkgew0K
ICAgICAgICAgICAgICAgICAgICAjIFBTLTUuMS1VbndyYXAtU2NodXR6OiBAKCR4KSBlcnp3aW5n
dCBBcnJheSBhdWNoIGJlaSAxIEVsZW1lbnQuDQogICAgICAgICAgICAgICAgICAgICRyZXNwWydf
YnJhdWNodF9tYWlsdG8nXSA9IFtvcmRlcmVkXUB7IHRyaWdnZXIgPSAncm9sbGVfdmVyYW50d29y
dHVuZyc7IGRpZmZzID0gW29iamVjdFtdXUAoJGZhQXVzd2VydHVuZy5tYWlsdG9EaWZmcykgfQ0K
ICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBTZW5kLUpzb25PYmplY3QgJFJlc3Bv
bnNlICRyZXNwDQogICAgICAgICAgICAgICAgY29udGludWUNCiAgICAgICAgICAgIH0NCg0KICAg
ICAgICAgICAgIyBEaXJla3Rpb25zbGVpdHVuZyArIEZ1ZWhydW5nc3N0ZWxsZSAoZ2xlaWNoZXMg
U2NoZW1hIHdpZQ0KICAgICAgICAgICAgIyBGYWNoYXVmc2ljaHQsIG51ciBzZXBhcmF0ZSBMaXN0
ZW4pLiBCZWlkZSBSb3V0ZW4gdGVpbGVuIGRpZQ0KICAgICAgICAgICAgIyBnbGVpY2hlIExvZ2lr
OiBTVS1vbmx5IFBVVCwgQmFja3VwLCBTY2hyZWliZW4sIERpZmZzIHp1DQogICAgICAgICAgICAj
IEluLUFwcC1IaW53ZWlzZW4gdW1zZXR6ZW4uDQogICAgICAgICAgICBpZiAoKCRQYXRoIC1lcSAn
L2FwaS9hZG1pbi9kaXJla3Rpb25zbGVpdHVuZycgLW9yICRQYXRoIC1lcSAnL2FwaS9hZG1pbi9m
dWVocnVuZ3NzdGVsbGUnKSAtYW5kICRNZXRob2QgLWVxICdQVVQnKSB7DQogICAgICAgICAgICAg
ICAgaWYgKC1ub3QgKFRlc3QtSXN0U3VwZXJVc2VyKSkgeyBTZW5kLUVycm9yICRSZXNwb25zZSAn
TnVyIFN1cGVyVXNlciBkdWVyZmVuIFJvbGxlbiB2ZXJ3YWx0ZW4nIDQwMzsgY29udGludWUgfQ0K
ICAgICAgICAgICAgICAgICRmZWxkTmFtZSA9IGlmICgkUGF0aCAtZXEgJy9hcGkvYWRtaW4vZGly
ZWt0aW9uc2xlaXR1bmcnKSB7ICdkaXJla3Rpb25zbGVpdHVuZycgfSBlbHNlIHsgJ2Z1ZWhydW5n
c3N0ZWxsZScgfQ0KICAgICAgICAgICAgICAgICRib2R5ID0gUmVhZC1Cb2R5ICRSZXF1ZXN0DQog
ICAgICAgICAgICAgICAgaWYgKC1ub3QgJGJvZHkpIHsgU2VuZC1FcnJvciAkUmVzcG9uc2UgJ0Fu
ZnJhZ2UgenUgZ3Jvc3MnIDQxMzsgY29udGludWUgfQ0KICAgICAgICAgICAgICAgICRib2R5T2Jq
ID0gJGJvZHkgfCBDb252ZXJ0RnJvbS1Kc29uDQogICAgICAgICAgICAgICAgJGRhdGVuID0gW29i
amVjdFtdXUAoJGJvZHlPYmopDQogICAgICAgICAgICAgICAgJGxvY2tFcmdlYm5pcyA9ICRudWxs
DQogICAgICAgICAgICAgICAgdHJ5IHsNCiAgICAgICAgICAgICAgICAgICAgJGxvY2tFcmdlYm5p
cyA9IEludm9rZS1XaXRoRmlsZUxvY2sgJ2FkbWluLmpzb24nIHsNCiAgICAgICAgICAgICAgICAg
ICAgICAgICRhZG1pbiA9IFJlYWQtSnNvbk9iamVjdCAnYWRtaW4uanNvbicNCiAgICAgICAgICAg
ICAgICAgICAgICAgIGlmICgkbnVsbCAtZXEgJGFkbWluKSB7IHJldHVybiBAeyBvayA9ICRmYWxz
ZTsgc3RhdHVzID0gNTAwOyBtc2cgPSAnYWRtaW4uanNvbiBuaWNodCBsZXNiYXInIH0gfQ0KICAg
ICAgICAgICAgICAgICAgICAgICAgJGFsdCA9IEAoKQ0KICAgICAgICAgICAgICAgICAgICAgICAg
aWYgKCRhZG1pbi5QU09iamVjdC5Qcm9wZXJ0aWVzWyRmZWxkTmFtZV0pIHsgJGFsdCA9IFtvYmpl
Y3RbXV1AKCRhZG1pbi4kZmVsZE5hbWUpIH0NCiAgICAgICAgICAgICAgICAgICAgICAgIFt2b2lk
XShCYWNrdXAtQWRtaW5Kc29uICRmZWxkTmFtZSkNCiAgICAgICAgICAgICAgICAgICAgICAgIGlm
ICgkYWRtaW4uUFNPYmplY3QuUHJvcGVydGllc1skZmVsZE5hbWVdKSB7ICRhZG1pbi4kZmVsZE5h
bWUgPSAkZGF0ZW4gfQ0KICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSB7ICRhZG1pbiB8IEFk
ZC1NZW1iZXIgLU5vdGVQcm9wZXJ0eU5hbWUgJGZlbGROYW1lIC1Ob3RlUHJvcGVydHlWYWx1ZSAk
ZGF0ZW4gLUZvcmNlIH0NCiAgICAgICAgICAgICAgICAgICAgICAgIFdyaXRlLUpzb25PYmplY3Qg
J2FkbWluLmpzb24nICRhZG1pbiB8IE91dC1OdWxsDQogICAgICAgICAgICAgICAgICAgICAgICBy
ZXR1cm4gQHsgb2sgPSAkdHJ1ZTsgYWx0ID0gJGFsdCB9DQogICAgICAgICAgICAgICAgICAgIH0N
CiAgICAgICAgICAgICAgICB9IGNhdGNoIHsNCiAgICAgICAgICAgICAgICAgICAgU2VuZC1FcnJv
ciAkUmVzcG9uc2UgKCJMb2NrLUZlaGxlcjogJF8iKSA1MDM7IGNvbnRpbnVlDQogICAgICAgICAg
ICAgICAgfQ0KICAgICAgICAgICAgICAgIGlmICgtbm90ICRsb2NrRXJnZWJuaXMub2spIHsgU2Vu
ZC1FcnJvciAkUmVzcG9uc2UgJGxvY2tFcmdlYm5pcy5tc2cgJGxvY2tFcmdlYm5pcy5zdGF0dXM7
IGNvbnRpbnVlIH0NCiAgICAgICAgICAgICAgICBXcml0ZS1Mb2dFaW50cmFnICgkZmVsZE5hbWUg
KyAnLmdlYWVuZGVydCcpIEB7IGFuemFobCA9ICRkYXRlbi5Db3VudCB9DQogICAgICAgICAgICAg
ICAgU2VuZC1Kc29uT2JqZWN0ICRSZXNwb25zZSBAeyBzdGF0dXMgPSAnZ2VzcGVpY2hlcnQnIH0N
CiAgICAgICAgICAgICAgICBjb250aW51ZQ0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAj
IEJlemVpY2hudW5nZW46IE9iamVrdCAoTWFwIGtleS0+bGFiZWwpLiBMZWVyZXMgT2JqZWt0ID0g
UmVzZXQuDQogICAgICAgICAgICBpZiAoJFBhdGggLWVxICcvYXBpL2FkbWluL2JlemVpY2hudW5n
ZW4nIC1hbmQgJE1ldGhvZCAtZXEgJ1BVVCcpIHsNCiAgICAgICAgICAgICAgICBpZiAoLW5vdCAo
VGVzdC1Jc3RBZG1pbikpIHsgU2VuZC1FcnJvciAkUmVzcG9uc2UgJ0tlaW5lIEFkbWluLVJlY2h0
ZScgNDAzOyBjb250aW51ZSB9DQogICAgICAgICAgICAgICAgJGJvZHkgPSBSZWFkLUJvZHkgJFJl
cXVlc3QNCiAgICAgICAgICAgICAgICBpZiAoLW5vdCAkYm9keSkgeyBTZW5kLUVycm9yICRSZXNw
b25zZSAnQW5mcmFnZSB6dSBncm9zcycgNDEzOyBjb250aW51ZSB9DQogICAgICAgICAgICAgICAg
JGRhdGVuID0gJGJvZHkgfCBDb252ZXJ0RnJvbS1Kc29uDQogICAgICAgICAgICAgICAgJGxvY2tF
cmdlYm5pcyA9ICRudWxsDQogICAgICAgICAgICAgICAgdHJ5IHsNCiAgICAgICAgICAgICAgICAg
ICAgJGxvY2tFcmdlYm5pcyA9IEludm9rZS1XaXRoRmlsZUxvY2sgJ2FkbWluLmpzb24nIHsNCiAg
ICAgICAgICAgICAgICAgICAgICAgICRhZG1pbiA9IFJlYWQtSnNvbk9iamVjdCAnYWRtaW4uanNv
bicNCiAgICAgICAgICAgICAgICAgICAgICAgIGlmICgkbnVsbCAtZXEgJGFkbWluKSB7IHJldHVy
biBAeyBvayA9ICRmYWxzZTsgc3RhdHVzID0gNTAwOyBtc2cgPSAnYWRtaW4uanNvbiBuaWNodCBs
ZXNiYXInIH0gfQ0KICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCRhZG1pbi5QU09iamVjdC5Q
cm9wZXJ0aWVzWydiZXplaWNobnVuZ2VuJ10pIHsgJGFkbWluLmJlemVpY2hudW5nZW4gPSAkZGF0
ZW4gfQ0KICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSB7ICRhZG1pbiB8IEFkZC1NZW1iZXIg
LU5vdGVQcm9wZXJ0eU5hbWUgJ2JlemVpY2hudW5nZW4nIC1Ob3RlUHJvcGVydHlWYWx1ZSAkZGF0
ZW4gLUZvcmNlIH0NCiAgICAgICAgICAgICAgICAgICAgICAgIFdyaXRlLUpzb25PYmplY3QgJ2Fk
bWluLmpzb24nICRhZG1pbiB8IE91dC1OdWxsDQogICAgICAgICAgICAgICAgICAgICAgICByZXR1
cm4gQHsgb2sgPSAkdHJ1ZSB9DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAg
ICB9IGNhdGNoIHsNCiAgICAgICAgICAgICAgICAgICAgU2VuZC1FcnJvciAkUmVzcG9uc2UgKCJM
b2NrLUZlaGxlcjogJF8iKSA1MDM7IGNvbnRpbnVlDQogICAgICAgICAgICAgICAgfQ0KICAgICAg
ICAgICAgICAgIGlmICgtbm90ICRsb2NrRXJnZWJuaXMub2spIHsgU2VuZC1FcnJvciAkUmVzcG9u
c2UgJGxvY2tFcmdlYm5pcy5tc2cgJGxvY2tFcmdlYm5pcy5zdGF0dXM7IGNvbnRpbnVlIH0NCiAg
ICAgICAgICAgICAgICBXcml0ZS1Mb2dFaW50cmFnICdiZXplaWNobnVuZ2VuLmdlYWVuZGVydCcg
QHt9DQogICAgICAgICAgICAgICAgU2VuZC1Kc29uT2JqZWN0ICRSZXNwb25zZSBAeyBzdGF0dXMg
PSAnZ2VzcGVpY2hlcnQnIH0NCiAgICAgICAgICAgICAgICBjb250aW51ZQ0KICAgICAgICAgICAg
fQ0KDQogICAgICAgICAgICAjIFN0YXRpc3Rpay1CYXVrYXN0ZW4gKHNlbGJzdGdlYmF1dGUgS2Fj
aGVsbikgKyBTdXBlclVzZXItTGF5b3V0LVJhc3Rlci4NCiAgICAgICAgICAgICMgR2F0ZSBiZXd1
c3N0IFNVIE9ERVIgR2VzYW10dmVyYW50d29ydGxpY2ggKG5pY2h0IFRlc3QtSXN0QWRtaW4pIOKA
lCBkZXINCiAgICAgICAgICAgICMgQnVpbGRlciBsZWJ0IGltIFN0YXRpc3Rpay1UYWIgdW5kIG11
c3MgYXVjaCBmdWVyIEdlc2FtdHZlcmFudHdvcnRsaWNoZQ0KICAgICAgICAgICAgIyBvaG5lIGFk
bWluaXN0cmF0aW9uLVp1Z2FuZyBzcGVpY2hlcmJhciBzZWluLiBQYXJ0aWFsLU1lcmdlIG51ciBk
ZXINCiAgICAgICAgICAgICMgYmVpZGVuIGJla2FubnRlbiBLZXlzOyBiZWlkZSBhbHMgW29iamVj
dFtdXSB6d2luZ2VuIChQUy01LjEtVW53cmFwKS4NCiAgICAgICAgICAgIGlmICgkUGF0aCAtZXEg
Jy9hcGkvYWRtaW4vc3RhdGlzdGlrJyAtYW5kICRNZXRob2QgLWVxICdQVVQnKSB7DQogICAgICAg
ICAgICAgICAgJHIgPSBHZXQtUmVjaHRlDQogICAgICAgICAgICAgICAgaWYgKC1ub3QgKChUZXN0
LUlzdEFkbWluKSAtb3IgJHIuaXN0R2VzYW10dmVyYW50d29ydGxpY2gpKSB7DQogICAgICAgICAg
ICAgICAgICAgIFNlbmQtRXJyb3IgJFJlc3BvbnNlICdOdXIgQWRtaW5zIHVuZCBHZXNhbXR2ZXJh
bnR3b3J0bGljaGUgZHVlcmZlbiBTdGF0aXN0aWstS2FjaGVsbiBhZW5kZXJuJyA0MDM7IGNvbnRp
bnVlDQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICRib2R5ID0gUmVhZC1Cb2R5
ICRSZXF1ZXN0DQogICAgICAgICAgICAgICAgaWYgKC1ub3QgJGJvZHkpIHsgU2VuZC1FcnJvciAk
UmVzcG9uc2UgJ0FuZnJhZ2UgenUgZ3Jvc3MnIDQxMzsgY29udGludWUgfQ0KICAgICAgICAgICAg
ICAgICRkYXRlbiA9ICRib2R5IHwgQ29udmVydEZyb20tSnNvbg0KICAgICAgICAgICAgICAgICRo
YXRLYWNoZWxuID0gKCRudWxsIC1uZSAkZGF0ZW4gLWFuZCAkZGF0ZW4uUFNPYmplY3QuUHJvcGVy
dGllc1snc3RhdGlzdGlrS2FjaGVsbiddKQ0KICAgICAgICAgICAgICAgICRoYXRMYXlvdXQgID0g
KCRudWxsIC1uZSAkZGF0ZW4gLWFuZCAkZGF0ZW4uUFNPYmplY3QuUHJvcGVydGllc1snc3RhdGlz
dGlrTGF5b3V0J10pDQogICAgICAgICAgICAgICAgJGxvY2tFcmdlYm5pcyA9ICRudWxsDQogICAg
ICAgICAgICAgICAgdHJ5IHsNCiAgICAgICAgICAgICAgICAgICAgJGxvY2tFcmdlYm5pcyA9IElu
dm9rZS1XaXRoRmlsZUxvY2sgJ2FkbWluLmpzb24nIHsNCiAgICAgICAgICAgICAgICAgICAgICAg
ICRhZG1pbiA9IFJlYWQtSnNvbk9iamVjdCAnYWRtaW4uanNvbicNCiAgICAgICAgICAgICAgICAg
ICAgICAgIGlmICgkbnVsbCAtZXEgJGFkbWluKSB7IHJldHVybiBAeyBvayA9ICRmYWxzZTsgc3Rh
dHVzID0gNTAwOyBtc2cgPSAnYWRtaW4uanNvbiBuaWNodCBsZXNiYXInIH0gfQ0KICAgICAgICAg
ICAgICAgICAgICAgICAgaWYgKCRoYXRLYWNoZWxuKSB7DQogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgJGsgPSBbb2JqZWN0W11dQCgkZGF0ZW4uc3RhdGlzdGlrS2FjaGVsbikNCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBpZiAoJGFkbWluLlBTT2JqZWN0LlByb3BlcnRpZXNbJ3N0YXRp
c3Rpa0thY2hlbG4nXSkgeyAkYWRtaW4uc3RhdGlzdGlrS2FjaGVsbiA9ICRrIH0NCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBlbHNlIHsgJGFkbWluIHwgQWRkLU1lbWJlciAtTm90ZVByb3Bl
cnR5TmFtZSAnc3RhdGlzdGlrS2FjaGVsbicgLU5vdGVQcm9wZXJ0eVZhbHVlICRrIC1Gb3JjZSB9
DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICBpZiAo
JGhhdExheW91dCkgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICRsID0gW29iamVjdFtd
XUAoJGRhdGVuLnN0YXRpc3Rpa0xheW91dCkNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBp
ZiAoJGFkbWluLlBTT2JqZWN0LlByb3BlcnRpZXNbJ3N0YXRpc3Rpa0xheW91dCddKSB7ICRhZG1p
bi5zdGF0aXN0aWtMYXlvdXQgPSAkbCB9DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxz
ZSB7ICRhZG1pbiB8IEFkZC1NZW1iZXIgLU5vdGVQcm9wZXJ0eU5hbWUgJ3N0YXRpc3Rpa0xheW91
dCcgLU5vdGVQcm9wZXJ0eVZhbHVlICRsIC1Gb3JjZSB9DQogICAgICAgICAgICAgICAgICAgICAg
ICB9DQogICAgICAgICAgICAgICAgICAgICAgICBXcml0ZS1Kc29uT2JqZWN0ICdhZG1pbi5qc29u
JyAkYWRtaW4gfCBPdXQtTnVsbA0KICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIEB7IG9r
ID0gJHRydWUgfQ0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgfSBjYXRj
aCB7DQogICAgICAgICAgICAgICAgICAgIFNlbmQtRXJyb3IgJFJlc3BvbnNlICgiTG9jay1GZWhs
ZXI6ICRfIikgNTAzOyBjb250aW51ZQ0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAg
ICBpZiAoLW5vdCAkbG9ja0VyZ2VibmlzLm9rKSB7IFNlbmQtRXJyb3IgJFJlc3BvbnNlICRsb2Nr
RXJnZWJuaXMubXNnICRsb2NrRXJnZWJuaXMuc3RhdHVzOyBjb250aW51ZSB9DQogICAgICAgICAg
ICAgICAgV3JpdGUtTG9nRWludHJhZyAnc3RhdGlzdGlrLmNvbmZpZy5nZWFlbmRlcnQnIEB7fQ0K
ICAgICAgICAgICAgICAgIFNlbmQtSnNvbk9iamVjdCAkUmVzcG9uc2UgQHsgc3RhdHVzID0gJ2dl
c3BlaWNoZXJ0JyB9DQogICAgICAgICAgICAgICAgY29udGludWUNCiAgICAgICAgICAgIH0NCg0K
ICAgICAgICAgICAgIyBTdGFuZGFyZHJlY2h0ZSAocmVndWxhZXJlIFVzZXIpOiBnZWdlbnNlaXRp
Z2UgUGxhbnVuZyBqZSBEaWVuc3RncnVwcGUvDQogICAgICAgICAgICAjIFN0YW5kb3J0LiBTVS1v
bmx5LiBXaXJkIGluIEdldC1SZWNodGUgYWRkaXRpdiBpbiBlZGl0aWVyZW4gZWluZ2V3b2Jlbi4N
CiAgICAgICAgICAgIGlmICgkUGF0aCAtZXEgJy9hcGkvYWRtaW4vc3RhbmRhcmRyZWNodGUnIC1h
bmQgJE1ldGhvZCAtZXEgJ1BVVCcpIHsNCiAgICAgICAgICAgICAgICBpZiAoLW5vdCAoVGVzdC1J
c3RTdXBlclVzZXIpKSB7IFNlbmQtRXJyb3IgJFJlc3BvbnNlICdOdXIgU3VwZXJVc2VyIGR1ZXJm
ZW4gU3RhbmRhcmRyZWNodGUgYWVuZGVybicgNDAzOyBjb250aW51ZSB9DQogICAgICAgICAgICAg
ICAgJGJvZHkgPSBSZWFkLUJvZHkgJFJlcXVlc3QNCiAgICAgICAgICAgICAgICBpZiAoLW5vdCAk
Ym9keSkgeyBTZW5kLUVycm9yICRSZXNwb25zZSAnQW5mcmFnZSB6dSBncm9zcycgNDEzOyBjb250
aW51ZSB9DQogICAgICAgICAgICAgICAgJGRhdGVuID0gJGJvZHkgfCBDb252ZXJ0RnJvbS1Kc29u
DQogICAgICAgICAgICAgICAgJGdnID0gQCgpOyBpZiAoJGRhdGVuIC1hbmQgJGRhdGVuLlBTT2Jq
ZWN0LlByb3BlcnRpZXNbJ2dlZ2Vuc2VpdGlnR3J1cHBlbiddKSAgIHsgJGdnID0gW3N0cmluZ1td
XUAoJGRhdGVuLmdlZ2Vuc2VpdGlnR3J1cHBlbiAgIHwgRm9yRWFjaC1PYmplY3QgeyBbc3RyaW5n
XSRfIH0pIH0NCiAgICAgICAgICAgICAgICAkZ3MgPSBAKCk7IGlmICgkZGF0ZW4gLWFuZCAkZGF0
ZW4uUFNPYmplY3QuUHJvcGVydGllc1snZ2VnZW5zZWl0aWdTdGFuZG9ydGUnXSkgeyAkZ3MgPSBb
c3RyaW5nW11dQCgkZGF0ZW4uZ2VnZW5zZWl0aWdTdGFuZG9ydGUgfCBGb3JFYWNoLU9iamVjdCB7
IFtzdHJpbmddJF8gfSkgfQ0KICAgICAgICAgICAgICAgICRzciA9IEB7IGdlZ2Vuc2VpdGlnR3J1
cHBlbiA9ICRnZzsgZ2VnZW5zZWl0aWdTdGFuZG9ydGUgPSAkZ3MgfQ0KICAgICAgICAgICAgICAg
ICRsb2NrRXJnZWJuaXMgPSAkbnVsbA0KICAgICAgICAgICAgICAgIHRyeSB7DQogICAgICAgICAg
ICAgICAgICAgICRsb2NrRXJnZWJuaXMgPSBJbnZva2UtV2l0aEZpbGVMb2NrICdhZG1pbi5qc29u
JyB7DQogICAgICAgICAgICAgICAgICAgICAgICAkYWRtaW4gPSBSZWFkLUpzb25PYmplY3QgJ2Fk
bWluLmpzb24nDQogICAgICAgICAgICAgICAgICAgICAgICBpZiAoJG51bGwgLWVxICRhZG1pbikg
eyByZXR1cm4gQHsgb2sgPSAkZmFsc2U7IHN0YXR1cyA9IDUwMDsgbXNnID0gJ2FkbWluLmpzb24g
bmljaHQgbGVzYmFyJyB9IH0NCiAgICAgICAgICAgICAgICAgICAgICAgIGlmICgkYWRtaW4uUFNP
YmplY3QuUHJvcGVydGllc1snc3RhbmRhcmRSZWNodGUnXSkgeyAkYWRtaW4uc3RhbmRhcmRSZWNo
dGUgPSAkc3IgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSB7ICRhZG1pbiB8IEFkZC1N
ZW1iZXIgLU5vdGVQcm9wZXJ0eU5hbWUgJ3N0YW5kYXJkUmVjaHRlJyAtTm90ZVByb3BlcnR5VmFs
dWUgJHNyIC1Gb3JjZSB9DQogICAgICAgICAgICAgICAgICAgICAgICBXcml0ZS1Kc29uT2JqZWN0
ICdhZG1pbi5qc29uJyAkYWRtaW4gfCBPdXQtTnVsbA0KICAgICAgICAgICAgICAgICAgICAgICAg
cmV0dXJuIEB7IG9rID0gJHRydWUgfQ0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAg
ICAgICAgfSBjYXRjaCB7DQogICAgICAgICAgICAgICAgICAgIFNlbmQtRXJyb3IgJFJlc3BvbnNl
ICgiTG9jay1GZWhsZXI6ICRfIikgNTAzOyBjb250aW51ZQ0KICAgICAgICAgICAgICAgIH0NCiAg
ICAgICAgICAgICAgICBpZiAoLW5vdCAkbG9ja0VyZ2VibmlzLm9rKSB7IFNlbmQtRXJyb3IgJFJl
c3BvbnNlICRsb2NrRXJnZWJuaXMubXNnICRsb2NrRXJnZWJuaXMuc3RhdHVzOyBjb250aW51ZSB9
DQogICAgICAgICAgICAgICAgV3JpdGUtTG9nRWludHJhZyAnc3RhbmRhcmRyZWNodGUuZ2VhZW5k
ZXJ0JyBAe30NCiAgICAgICAgICAgICAgICBTZW5kLUpzb25PYmplY3QgJFJlc3BvbnNlIEB7IHN0
YXR1cyA9ICdnZXNwZWljaGVydCcgfQ0KICAgICAgICAgICAgICAgIGNvbnRpbnVlDQogICAgICAg
ICAgICB9DQoNCiAgICAgICAgICAgICMgRS1NYWlsLVZvcmxhZ2VuOiBPYmpla3QgKG5pY2h0IEFy
cmF5KSDigJQgZWlnZW5lciBIYW5kbGVyLg0KICAgICAgICAgICAgaWYgKCRQYXRoIC1lcSAnL2Fw
aS9hZG1pbi9lbWFpbHZvcmxhZ2VuJyAtYW5kICRNZXRob2QgLWVxICdQVVQnKSB7DQogICAgICAg
ICAgICAgICAgaWYgKC1ub3QgKFRlc3QtSXN0QWRtaW4pKSB7IFNlbmQtRXJyb3IgJFJlc3BvbnNl
ICdLZWluZSBBZG1pbi1SZWNodGUnIDQwMzsgY29udGludWUgfQ0KICAgICAgICAgICAgICAgICRi
b2R5ID0gUmVhZC1Cb2R5ICRSZXF1ZXN0DQogICAgICAgICAgICAgICAgaWYgKC1ub3QgJGJvZHkp
IHsgU2VuZC1FcnJvciAkUmVzcG9uc2UgJ0FuZnJhZ2UgenUgZ3Jvc3MnIDQxMzsgY29udGludWUg
fQ0KICAgICAgICAgICAgICAgICRkYXRlbiA9ICRib2R5IHwgQ29udmVydEZyb20tSnNvbg0KICAg
ICAgICAgICAgICAgICMgUmljaC1UZXh0LUJvZHkgamUgVm9ybGFnZSBzZXJ2ZXJzZWl0aWcgYmVy
ZWluaWdlbiAoU3RvcmVkLVhTUykuDQogICAgICAgICAgICAgICAgaWYgKCRudWxsIC1uZSAkZGF0
ZW4pIHsNCiAgICAgICAgICAgICAgICAgICAgZm9yZWFjaCAoJHAgaW4gJGRhdGVuLlBTT2JqZWN0
LlByb3BlcnRpZXMpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICR2ID0gJHAuVmFsdWUNCiAg
ICAgICAgICAgICAgICAgICAgICAgIGlmICgkbnVsbCAtbmUgJHYgLWFuZCAkdi5QU09iamVjdC5Q
cm9wZXJ0aWVzWyd0ZXh0J10gLWFuZCAoJHYudGV4dCAtaXMgW3N0cmluZ10pKSB7DQogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgJHYudGV4dCA9IENvbnZlcnRUby1TYWZlUmljaEh0bWwgJHYu
dGV4dA0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICB9DQog
ICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICRsb2NrRXJnZWJuaXMgPSAkbnVsbA0K
ICAgICAgICAgICAgICAgIHRyeSB7DQogICAgICAgICAgICAgICAgICAgICRsb2NrRXJnZWJuaXMg
PSBJbnZva2UtV2l0aEZpbGVMb2NrICdhZG1pbi5qc29uJyB7DQogICAgICAgICAgICAgICAgICAg
ICAgICAkYWRtaW4gPSBSZWFkLUpzb25PYmplY3QgJ2FkbWluLmpzb24nDQogICAgICAgICAgICAg
ICAgICAgICAgICBpZiAoJG51bGwgLWVxICRhZG1pbikgeyByZXR1cm4gQHsgb2sgPSAkZmFsc2U7
IHN0YXR1cyA9IDUwMDsgbXNnID0gJ2FkbWluLmpzb24gbmljaHQgbGVzYmFyJyB9IH0NCiAgICAg
ICAgICAgICAgICAgICAgICAgIGlmICgkYWRtaW4uUFNPYmplY3QuUHJvcGVydGllc1snZW1haWxW
b3JsYWdlbiddKSB7ICRhZG1pbi5lbWFpbFZvcmxhZ2VuID0gJGRhdGVuIH0NCiAgICAgICAgICAg
ICAgICAgICAgICAgIGVsc2UgeyAkYWRtaW4gfCBBZGQtTWVtYmVyIC1Ob3RlUHJvcGVydHlOYW1l
ICdlbWFpbFZvcmxhZ2VuJyAtTm90ZVByb3BlcnR5VmFsdWUgJGRhdGVuIC1Gb3JjZSB9DQogICAg
ICAgICAgICAgICAgICAgICAgICBXcml0ZS1Kc29uT2JqZWN0ICdhZG1pbi5qc29uJyAkYWRtaW4g
fCBPdXQtTnVsbA0KICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIEB7IG9rID0gJHRydWUg
fQ0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgfSBjYXRjaCB7DQogICAg
ICAgICAgICAgICAgICAgIFNlbmQtRXJyb3IgJFJlc3BvbnNlICgiTG9jay1GZWhsZXI6ICRfIikg
NTAzOyBjb250aW51ZQ0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBpZiAoLW5v
dCAkbG9ja0VyZ2VibmlzLm9rKSB7IFNlbmQtRXJyb3IgJFJlc3BvbnNlICRsb2NrRXJnZWJuaXMu
bXNnICRsb2NrRXJnZWJuaXMuc3RhdHVzOyBjb250aW51ZSB9DQogICAgICAgICAgICAgICAgV3Jp
dGUtTG9nRWludHJhZyAnZW1haWx2b3JsYWdlbi5nZWFlbmRlcnQnIEB7fQ0KICAgICAgICAgICAg
ICAgIFNlbmQtSnNvbk9iamVjdCAkUmVzcG9uc2UgQHsgc3RhdHVzID0gJ2dlc3BlaWNoZXJ0JyB9
DQogICAgICAgICAgICAgICAgY29udGludWUNCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAg
IyBFLU1haWwtVHJpZ2dlci1Lb25maWcgKHBybyBUcmlnZ2VyOiBha3RpdiArIEVtcGZhZW5nZXIt
VGFncykg4oCUDQogICAgICAgICAgICAjIGF1c3NjaGxpZXNzbGljaCBTdGV1ZXJ1bmcgZnVlciBk
ZW4gRnJvbnRlbmQtbWFpbHRvOi1EaXNwYXRjaGVyLg0KICAgICAgICAgICAgaWYgKCRQYXRoIC1l
cSAnL2FwaS9hZG1pbi9lbWFpbHRyaWdnZXInIC1hbmQgJE1ldGhvZCAtZXEgJ1BVVCcpIHsNCiAg
ICAgICAgICAgICAgICBpZiAoLW5vdCAoVGVzdC1Jc3RBZG1pbikpIHsgU2VuZC1FcnJvciAkUmVz
cG9uc2UgJ0tlaW5lIEFkbWluLVJlY2h0ZScgNDAzOyBjb250aW51ZSB9DQogICAgICAgICAgICAg
ICAgJGJvZHkgPSBSZWFkLUJvZHkgJFJlcXVlc3QNCiAgICAgICAgICAgICAgICBpZiAoLW5vdCAk
Ym9keSkgeyBTZW5kLUVycm9yICRSZXNwb25zZSAnQW5mcmFnZSB6dSBncm9zcycgNDEzOyBjb250
aW51ZSB9DQogICAgICAgICAgICAgICAgJGRhdGVuID0gJGJvZHkgfCBDb252ZXJ0RnJvbS1Kc29u
DQogICAgICAgICAgICAgICAgJGxvY2tFcmdlYm5pcyA9ICRudWxsDQogICAgICAgICAgICAgICAg
dHJ5IHsNCiAgICAgICAgICAgICAgICAgICAgJGxvY2tFcmdlYm5pcyA9IEludm9rZS1XaXRoRmls
ZUxvY2sgJ2FkbWluLmpzb24nIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICRhZG1pbiA9IFJl
YWQtSnNvbk9iamVjdCAnYWRtaW4uanNvbicNCiAgICAgICAgICAgICAgICAgICAgICAgIGlmICgk
bnVsbCAtZXEgJGFkbWluKSB7IHJldHVybiBAeyBvayA9ICRmYWxzZTsgc3RhdHVzID0gNTAwOyBt
c2cgPSAnYWRtaW4uanNvbiBuaWNodCBsZXNiYXInIH0gfQ0KICAgICAgICAgICAgICAgICAgICAg
ICAgaWYgKCRhZG1pbi5QU09iamVjdC5Qcm9wZXJ0aWVzWydlbWFpbFRyaWdnZXInXSkgeyAkYWRt
aW4uZW1haWxUcmlnZ2VyID0gJGRhdGVuIH0NCiAgICAgICAgICAgICAgICAgICAgICAgIGVsc2Ug
eyAkYWRtaW4gfCBBZGQtTWVtYmVyIC1Ob3RlUHJvcGVydHlOYW1lICdlbWFpbFRyaWdnZXInIC1O
b3RlUHJvcGVydHlWYWx1ZSAkZGF0ZW4gLUZvcmNlIH0NCiAgICAgICAgICAgICAgICAgICAgICAg
IFdyaXRlLUpzb25PYmplY3QgJ2FkbWluLmpzb24nICRhZG1pbiB8IE91dC1OdWxsDQogICAgICAg
ICAgICAgICAgICAgICAgICByZXR1cm4gQHsgb2sgPSAkdHJ1ZSB9DQogICAgICAgICAgICAgICAg
ICAgIH0NCiAgICAgICAgICAgICAgICB9IGNhdGNoIHsNCiAgICAgICAgICAgICAgICAgICAgU2Vu
ZC1FcnJvciAkUmVzcG9uc2UgKCJMb2NrLUZlaGxlcjogJF8iKSA1MDM7IGNvbnRpbnVlDQogICAg
ICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIGlmICgtbm90ICRsb2NrRXJnZWJuaXMub2sp
IHsgU2VuZC1FcnJvciAkUmVzcG9uc2UgJGxvY2tFcmdlYm5pcy5tc2cgJGxvY2tFcmdlYm5pcy5z
dGF0dXM7IGNvbnRpbnVlIH0NCiAgICAgICAgICAgICAgICAkYW56ID0gaWYgKCRkYXRlbikgeyAo
JGRhdGVuLlBTT2JqZWN0LlByb3BlcnRpZXMgfCBNZWFzdXJlLU9iamVjdCkuQ291bnQgfSBlbHNl
IHsgMCB9DQogICAgICAgICAgICAgICAgV3JpdGUtTG9nRWludHJhZyAnZW1haWx0cmlnZ2VyLmdl
YWVuZGVydCcgQHsgYW56YWhsX3RyaWdnZXIgPSAkYW56IH0NCiAgICAgICAgICAgICAgICBTZW5k
LUpzb25PYmplY3QgJFJlc3BvbnNlIEB7IHN0YXR1cyA9ICdnZXNwZWljaGVydCcgfQ0KICAgICAg
ICAgICAgICAgIGNvbnRpbnVlDQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICRhZG1pbktl
eXMgPSBAew0KICAgICAgICAgICAgICAgICcvYXBpL2FkbWluL2ZlaWVydGFnZScgICAgICA9ICdm
ZWllcnRhZ2UnDQogICAgICAgICAgICAgICAgJy9hcGkvYWRtaW4vZmVyaWVuJyAgICAgICAgID0g
J2ZlcmllbicNCiAgICAgICAgICAgICAgICAnL2FwaS9hZG1pbi9zb25kZXJ0ZXJtaW5lJyAgPSAn
c29uZGVydGVybWluZScNCiAgICAgICAgICAgICAgICAnL2FwaS9hZG1pbi9zdGFuZG9ydGUnICAg
ICAgPSAnc3RhbmRvcnRlJw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgaWYgKCRhZG1pbktl
eXMuQ29udGFpbnNLZXkoJFBhdGgpIC1hbmQgJE1ldGhvZCAtZXEgJ1BVVCcpIHsNCiAgICAgICAg
ICAgICAgICBpZiAoLW5vdCAoVGVzdC1Jc3RBZG1pbikpIHsgU2VuZC1FcnJvciAkUmVzcG9uc2Ug
J0tlaW5lIEFkbWluLVJlY2h0ZScgNDAzOyBjb250aW51ZSB9DQogICAgICAgICAgICAgICAgJGJv
ZHkgPSBSZWFkLUJvZHkgJFJlcXVlc3QNCiAgICAgICAgICAgICAgICBpZiAoLW5vdCAkYm9keSkg
eyBTZW5kLUVycm9yICRSZXNwb25zZSAnQW5mcmFnZSB6dSBncm9zcycgNDEzOyBjb250aW51ZSB9
DQogICAgICAgICAgICAgICAgJGtleSA9ICRhZG1pbktleXNbJFBhdGhdDQogICAgICAgICAgICAg
ICAgIyBAKC4uLikgZXJ6d2luZ3QgQXJyYXkgYXVjaCBiZWkgMSBFbGVtZW50IChQUyA1LjEgZW50
cGFja3Qgc29uc3QpLg0KICAgICAgICAgICAgICAgICRib2R5T2JqID0gJGJvZHkgfCBDb252ZXJ0
RnJvbS1Kc29uDQogICAgICAgICAgICAgICAgJGRhdGVuID0gW29iamVjdFtdXUAoJGJvZHlPYmop
DQogICAgICAgICAgICAgICAgIyBzb25kZXJ0ZXJtaW5lIHRyYWdlbiBSaWNoLVRleHQgKHRleHQp
IOKAlCBzZXJ2ZXJzZWl0aWcgYmVyZWluaWdlbi4NCiAgICAgICAgICAgICAgICBpZiAoJGtleSAt
ZXEgJ3NvbmRlcnRlcm1pbmUnKSB7DQogICAgICAgICAgICAgICAgICAgIGZvcmVhY2ggKCRlIGlu
ICRkYXRlbikgew0KICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCRudWxsIC1uZSAkZSAtYW5k
ICRlLlBTT2JqZWN0LlByb3BlcnRpZXNbJ3RleHQnXSAtYW5kICgkZS50ZXh0IC1pcyBbc3RyaW5n
XSkpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkZS50ZXh0ID0gQ29udmVydFRvLVNh
ZmVSaWNoSHRtbCAkZS50ZXh0DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAg
ICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgJGxvY2tFcmdl
Ym5pcyA9ICRudWxsDQogICAgICAgICAgICAgICAgdHJ5IHsNCiAgICAgICAgICAgICAgICAgICAg
JGxvY2tFcmdlYm5pcyA9IEludm9rZS1XaXRoRmlsZUxvY2sgJ2FkbWluLmpzb24nIHsNCiAgICAg
ICAgICAgICAgICAgICAgICAgICRhZG1pbiA9IFJlYWQtSnNvbk9iamVjdCAnYWRtaW4uanNvbicN
CiAgICAgICAgICAgICAgICAgICAgICAgIGlmICgkbnVsbCAtZXEgJGFkbWluKSB7IHJldHVybiBA
eyBvayA9ICRmYWxzZTsgc3RhdHVzID0gNTAwOyBtc2cgPSAnYWRtaW4uanNvbiBuaWNodCBsZXNi
YXInIH0gfQ0KICAgICAgICAgICAgICAgICAgICAgICAgJHdpcGVNc2cgPSBUZXN0LVdpcGVTY2h1
dHogJGtleSAkZGF0ZW4gJGFkbWluICRSZXF1ZXN0ICRib2R5T2JqDQogICAgICAgICAgICAgICAg
ICAgICAgICBpZiAoJHdpcGVNc2cpIHsgcmV0dXJuIEB7IG9rID0gJGZhbHNlOyBzdGF0dXMgPSA0
MDk7IG1zZyA9ICR3aXBlTXNnIH0gfQ0KICAgICAgICAgICAgICAgICAgICAgICAgW3ZvaWRdKEJh
Y2t1cC1BZG1pbkpzb24gJGtleSkNCiAgICAgICAgICAgICAgICAgICAgICAgIGlmICgkYWRtaW4u
UFNPYmplY3QuUHJvcGVydGllc1ska2V5XSkgeyAkYWRtaW4uJGtleSA9ICRkYXRlbiB9DQogICAg
ICAgICAgICAgICAgICAgICAgICBlbHNlIHsgJGFkbWluIHwgQWRkLU1lbWJlciAtTm90ZVByb3Bl
cnR5TmFtZSAka2V5IC1Ob3RlUHJvcGVydHlWYWx1ZSAkZGF0ZW4gLUZvcmNlIH0NCiAgICAgICAg
ICAgICAgICAgICAgICAgIFdyaXRlLUpzb25PYmplY3QgJ2FkbWluLmpzb24nICRhZG1pbiB8IE91
dC1OdWxsDQogICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gQHsgb2sgPSAkdHJ1ZSB9DQog
ICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICB9IGNhdGNoIHsNCiAgICAgICAg
ICAgICAgICAgICAgU2VuZC1FcnJvciAkUmVzcG9uc2UgKCJMb2NrLUZlaGxlcjogJF8iKSA1MDM7
IGNvbnRpbnVlDQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIGlmICgtbm90ICRs
b2NrRXJnZWJuaXMub2spIHsgU2VuZC1FcnJvciAkUmVzcG9uc2UgJGxvY2tFcmdlYm5pcy5tc2cg
JGxvY2tFcmdlYm5pcy5zdGF0dXM7IGNvbnRpbnVlIH0NCiAgICAgICAgICAgICAgICBXcml0ZS1M
b2dFaW50cmFnICIka2V5LmdlYWVuZGVydCIgQHt9DQogICAgICAgICAgICAgICAgU2VuZC1Kc29u
T2JqZWN0ICRSZXNwb25zZSBAeyBzdGF0dXMgPSAnZ2VzcGVpY2hlcnQnIH0NCiAgICAgICAgICAg
ICAgICBjb250aW51ZQ0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgaWYgKCRQYXRoIC1lcSAn
L2FwaS9hZG1pbi9laW5zdGVsbHVuZ2VuJyAtYW5kICRNZXRob2QgLWVxICdQVVQnKSB7DQogICAg
ICAgICAgICAgICAgaWYgKC1ub3QgKFRlc3QtSXN0QWRtaW4pKSB7IFNlbmQtRXJyb3IgJFJlc3Bv
bnNlICdLZWluZSBBZG1pbi1SZWNodGUnIDQwMzsgY29udGludWUgfQ0KICAgICAgICAgICAgICAg
ICRib2R5ID0gUmVhZC1Cb2R5ICRSZXF1ZXN0DQogICAgICAgICAgICAgICAgaWYgKC1ub3QgJGJv
ZHkpIHsgU2VuZC1FcnJvciAkUmVzcG9uc2UgJ0FuZnJhZ2UgenUgZ3Jvc3MnIDQxMzsgY29udGlu
dWUgfQ0KICAgICAgICAgICAgICAgICRkYXRlbiA9ICRib2R5IHwgQ29udmVydEZyb20tSnNvbg0K
ICAgICAgICAgICAgICAgICMgUmljaC1UZXh0IHNlcnZlcnNlaXRpZyBzYW5pdGlzaWVyZW4g4oCU
IGRpZXNlciBQZmFkIHNwZWljaGVydA0KICAgICAgICAgICAgICAgICMgaW5mb3RleHQvaGlsZmV0
ZXh0L2JlZGllbnVuZ3N0ZXh0ZS9pbXByZXNzdW0vc3VwcG9ydGluZm8vDQogICAgICAgICAgICAg
ICAgIyBzY2hsaWVzc2luZm8sIHdhciBhYmVyIGJpc2hlciBhbSBTZXJ2ZXItU2FuaXRpemVyIHZv
cmJlaSAoZGVyDQogICAgICAgICAgICAgICAgIyBudXIgYW0gVm9sbC1QVVQgL2FwaS9hZG1pbiBo
aW5nKS4gU2NodXR6IGdlZ2VuIG1hbmlwdWxpZXJ0ZW4NCiAgICAgICAgICAgICAgICAjIENsaWVu
dCAvIERpcmVrdC1BUEktQ2FsbC4NCiAgICAgICAgICAgICAgICBJbnZva2UtQWRtaW5SaWNodGV4
dFNhbml0aXplICRkYXRlbg0KICAgICAgICAgICAgICAgICRsb2NrRXJnZWJuaXMgPSAkbnVsbA0K
ICAgICAgICAgICAgICAgIHRyeSB7DQogICAgICAgICAgICAgICAgICAgICRsb2NrRXJnZWJuaXMg
PSBJbnZva2UtV2l0aEZpbGVMb2NrICdhZG1pbi5qc29uJyB7DQogICAgICAgICAgICAgICAgICAg
ICAgICAkYWRtaW4gPSBSZWFkLUpzb25PYmplY3QgJ2FkbWluLmpzb24nDQogICAgICAgICAgICAg
ICAgICAgICAgICBpZiAoJG51bGwgLWVxICRhZG1pbikgeyByZXR1cm4gQHsgb2sgPSAkZmFsc2U7
IHN0YXR1cyA9IDUwMDsgbXNnID0gJ2FkbWluLmpzb24gbmljaHQgbGVzYmFyJyB9IH0NCiAgICAg
ICAgICAgICAgICAgICAgICAgIGZvcmVhY2ggKCRrIGluICdqYWhyJywnaW5mb3RleHQnLCdzdXBw
b3J0aW5mbycsJ3NjaGxpZXNzaW5mbycsJ2hpbGZldGV4dCcsJ2JlZGllbnVuZ3N0ZXh0ZScsJ3Bh
cGllcmtvcmJUYWdlQXVmYmV3YWhydW5nJywnZW1haWxBdXRvRG9tYWluJywnYXZhdGFyR3JvZXNz
ZScsJ2ltcHJlc3N1bScsJ3N1cHBvcnRNYWlsVGV4dCcsJ2VkaXRvclRyaWdnZXInKSB7DQogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCRkYXRlbi5QU09iamVjdC5Qcm9wZXJ0aWVzWyRr
XSkgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoJGFkbWluLlBTT2JqZWN0
LlByb3BlcnRpZXNbJGtdKSB7ICRhZG1pbi4kayA9ICRkYXRlbi4kayB9DQogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGVsc2UgeyAkYWRtaW4gfCBBZGQtTWVtYmVyIC1Ob3RlUHJvcGVy
dHlOYW1lICRrIC1Ob3RlUHJvcGVydHlWYWx1ZSAkZGF0ZW4uJGsgLUZvcmNlIH0NCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAg
ICAgICAgICAgICAgICAgICAjIGVkaXRvclRyaWdnZXIgaXN0IGVpbiBFbnVtIOKAlCBmcmVtZGUg
V2VydGUgKERpcmVrdC1BUEkpIGF1Zg0KICAgICAgICAgICAgICAgICAgICAgICAgIyBkZW4gRGVm
YXVsdCBrbGVtbWVuLCBkYW1pdCBuaWUgTXVlbGwgaW4gYWRtaW4uanNvbiBsYW5kZXQuDQogICAg
ICAgICAgICAgICAgICAgICAgICAkZXRWYWwgPSBpZiAoJGFkbWluLlBTT2JqZWN0LlByb3BlcnRp
ZXNbJ2VkaXRvclRyaWdnZXInXSkgeyBbc3RyaW5nXSRhZG1pbi5lZGl0b3JUcmlnZ2VyIH0gZWxz
ZSB7ICcnIH0NCiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChAKCdyZWNodHMnLCdsaW5rcycs
J21pdHRlJywnZG9wcGVsJykgLW5vdGNvbnRhaW5zICRldFZhbCkgew0KICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGlmICgkYWRtaW4uUFNPYmplY3QuUHJvcGVydGllc1snZWRpdG9yVHJpZ2dl
ciddKSB7ICRhZG1pbi5lZGl0b3JUcmlnZ2VyID0gJ3JlY2h0cycgfQ0KICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGVsc2UgeyAkYWRtaW4gfCBBZGQtTWVtYmVyIC1Ob3RlUHJvcGVydHlOYW1l
ICdlZGl0b3JUcmlnZ2VyJyAtTm90ZVByb3BlcnR5VmFsdWUgJ3JlY2h0cycgLUZvcmNlIH0NCiAg
ICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgIFdyaXRlLUpz
b25PYmplY3QgJ2FkbWluLmpzb24nICRhZG1pbiB8IE91dC1OdWxsDQogICAgICAgICAgICAgICAg
ICAgICAgICByZXR1cm4gQHsgb2sgPSAkdHJ1ZSB9DQogICAgICAgICAgICAgICAgICAgIH0NCiAg
ICAgICAgICAgICAgICB9IGNhdGNoIHsNCiAgICAgICAgICAgICAgICAgICAgU2VuZC1FcnJvciAk
UmVzcG9uc2UgKCJMb2NrLUZlaGxlcjogJF8iKSA1MDM7IGNvbnRpbnVlDQogICAgICAgICAgICAg
ICAgfQ0KICAgICAgICAgICAgICAgIGlmICgtbm90ICRsb2NrRXJnZWJuaXMub2spIHsgU2VuZC1F
cnJvciAkUmVzcG9uc2UgJGxvY2tFcmdlYm5pcy5tc2cgJGxvY2tFcmdlYm5pcy5zdGF0dXM7IGNv
bnRpbnVlIH0NCiAgICAgICAgICAgICAgICBXcml0ZS1Mb2dFaW50cmFnICdlaW5zdGVsbHVuZ2Vu
LmdlYWVuZGVydCcgQHt9DQogICAgICAgICAgICAgICAgU2VuZC1Kc29uT2JqZWN0ICRSZXNwb25z
ZSBAeyBzdGF0dXMgPSAnZ2VzcGVpY2hlcnQnIH0NCiAgICAgICAgICAgICAgICBjb250aW51ZQ0K
ICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAjID09PT09IFBMQU5VTkcgPT09PT0NCiAgICAg
ICAgICAgIGlmICgkUGF0aCAtZXEgJy9hcGkvcGxhbnVuZycgLWFuZCAkTWV0aG9kIC1lcSAnR0VU
Jykgew0KICAgICAgICAgICAgICAgICR0eHQgPSBSZWFkLVRleHRGaWxlICdwbGFudW5nLmpzb24n
DQogICAgICAgICAgICAgICAgaWYgKCRudWxsIC1lcSAkdHh0KSB7IFNlbmQtRXJyb3IgJFJlc3Bv
bnNlICdwbGFudW5nLmpzb24gbmljaHQgZ2VmdW5kZW4nIDQwNCB9DQogICAgICAgICAgICAgICAg
ZWxzZSB7DQogICAgICAgICAgICAgICAgICAgICMgVmVyc2lvbnMtU3RlbXBlbCAobXRpbWUtVGlj
a3MpIGZ1ZXIgb3B0aW1pc3Rpc2NoZSBTcGVycmUgZGVzDQogICAgICAgICAgICAgICAgICAgICMg
RXhjZWwtSW1wb3J0cy4gRGVyIENsaWVudCBzY2hpY2t0IGlobiBiZWltIFBVVCB6dXJ1ZWNrLg0K
ICAgICAgICAgICAgICAgICAgICB0cnkgew0KICAgICAgICAgICAgICAgICAgICAgICAgJHBwViA9
IEpvaW4tUGF0aCAkRGF0YURpciAncGxhbnVuZy5qc29uJw0KICAgICAgICAgICAgICAgICAgICAg
ICAgaWYgKFRlc3QtUGF0aCAtTGl0ZXJhbFBhdGggJHBwVikgew0KICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICRSZXNwb25zZS5IZWFkZXJzLkFkZCgnWC1QbGFudW5nLVZlcnNpb24nLCBbc3Ry
aW5nXShHZXQtSXRlbSAtTGl0ZXJhbFBhdGggJHBwVikuTGFzdFdyaXRlVGltZVV0Yy5UaWNrcykN
CiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgfSBjYXRjaCB7
fQ0KICAgICAgICAgICAgICAgICAgICBTZW5kLUpzb25UZXh0ICRSZXNwb25zZSAkdHh0DQogICAg
ICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIGNvbnRpbnVlDQogICAgICAgICAgICB9DQog
ICAgICAgICAgICBpZiAoJFBhdGggLWVxICcvYXBpL3BsYW51bmcnIC1hbmQgJE1ldGhvZCAtZXEg
J1BVVCcpIHsNCiAgICAgICAgICAgICAgICBpZiAoLW5vdCAoVGVzdC1Jc3RBZG1pbikpIHsgU2Vu
ZC1FcnJvciAkUmVzcG9uc2UgJ0tlaW5lIEFkbWluLVJlY2h0ZScgNDAzOyBjb250aW51ZSB9DQog
ICAgICAgICAgICAgICAgJGJvZHkgPSBSZWFkLUJvZHkgJFJlcXVlc3QNCiAgICAgICAgICAgICAg
ICBpZiAoLW5vdCAkYm9keSkgeyBTZW5kLUVycm9yICRSZXNwb25zZSAnQW5mcmFnZSB6dSBncm9z
cycgNDEzOyBjb250aW51ZSB9DQogICAgICAgICAgICAgICAgIyBSZWFkLU1vZGlmeS1Xcml0ZSBh
dG9tYXIgaW4gZGVyIGdsZWljaGVuIFNwZXJyZSB3aWUgZGllIEVpbnplbC0NCiAgICAgICAgICAg
ICAgICAjIHplbGwtRW5kcG9pbnRzLCBkYW1pdCBkZXIgVm9sbC1JbXBvcnQgbmljaHQgbWl0IHBh
cmFsbGVsZW4NCiAgICAgICAgICAgICAgICAjIFplbGwtU2NocmVpYnZvcmdhZW5nZW4gdmVyemFo
bnQuIE9wdGlvbmFsZXIgVmVyc2lvbnMtQ2hlY2sNCiAgICAgICAgICAgICAgICAjIChvcHRpbWlz
dGlzY2hlIE5lYmVubGFldWZpZ2tlaXQpOiBoYXQgZGVyIENsaWVudCBlaW5lbg0KICAgICAgICAg
ICAgICAgICMgSWYtUGxhbnVuZy1WZXJzaW9uLUhlYWRlciBnZXNjaGlja3QgdW5kIHN0aW1tdCBk
ZXIgbmljaHQgbWVocg0KICAgICAgICAgICAgICAgICMgbWl0IGRlbSBha3R1ZWxsZW4gU3RhbmQg
dWViZXJlaW4sIHd1cmRlIHp3aXNjaGVuemVpdGxpY2gNCiAgICAgICAgICAgICAgICAjIGdlc2No
cmllYmVuIC0+IDQwOSwgTklDSFRTIHdpcmQgdWViZXJzY2hyaWViZW4uDQogICAgICAgICAgICAg
ICAgJGVyd2FydGV0ZVZlcnNpb24gPSAkUmVxdWVzdC5IZWFkZXJzWydJZi1QbGFudW5nLVZlcnNp
b24nXQ0KICAgICAgICAgICAgICAgICRsb2NrRXJnZWJuaXMgPSAkbnVsbA0KICAgICAgICAgICAg
ICAgIHRyeSB7DQogICAgICAgICAgICAgICAgICAgICRsb2NrRXJnZWJuaXMgPSBJbnZva2UtV2l0
aEZpbGVMb2NrICdwbGFudW5nLmpzb24nIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGlmICgk
ZXJ3YXJ0ZXRlVmVyc2lvbikgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICRwcFYgPSBK
b2luLVBhdGggJERhdGFEaXIgJ3BsYW51bmcuanNvbicNCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAkYWt0dWVsbGVWZXJzaW9uID0gJycNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBp
ZiAoVGVzdC1QYXRoIC1MaXRlcmFsUGF0aCAkcHBWKSB7ICRha3R1ZWxsZVZlcnNpb24gPSBbc3Ry
aW5nXShHZXQtSXRlbSAtTGl0ZXJhbFBhdGggJHBwVikuTGFzdFdyaXRlVGltZVV0Yy5UaWNrcyB9
DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCRha3R1ZWxsZVZlcnNpb24gLW5lICRl
cndhcnRldGVWZXJzaW9uKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVy
biBAeyB0eXAgPSAna29uZmxpa3QnOyBha3R1ZWxsID0gJGFrdHVlbGxlVmVyc2lvbiB9DQogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAg
ICAgICAgICAgICAgICAgICAgICAgV3JpdGUtVGV4dEZpbGUgJ3BsYW51bmcuanNvbicgJGJvZHkg
fCBPdXQtTnVsbA0KICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIEB7IHR5cCA9ICdvaycg
fQ0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgfSBjYXRjaCB7DQogICAg
ICAgICAgICAgICAgICAgIFNlbmQtRXJyb3IgJFJlc3BvbnNlICgiTG9jay1GZWhsZXI6ICRfIikg
NTAzOyBjb250aW51ZQ0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBpZiAoJGxv
Y2tFcmdlYm5pcy50eXAgLWVxICdrb25mbGlrdCcpIHsNCiAgICAgICAgICAgICAgICAgICAgU2Vu
ZC1Kc29uT2JqZWN0ICRSZXNwb25zZSBAew0KICAgICAgICAgICAgICAgICAgICAgICAgZmVobGVy
ICAgICAgICAgID0gJ2tvbmZsaWt0Jw0KICAgICAgICAgICAgICAgICAgICAgICAgbWVsZHVuZyAg
ICAgICAgID0gJ0RpZSBQbGFudW5nIHd1cmRlIHp3aXNjaGVuemVpdGxpY2ggdm9uIGVpbmVyIGFu
ZGVyZW4gUGVyc29uIGdlYWVuZGVydC4nDQogICAgICAgICAgICAgICAgICAgICAgICBha3R1ZWxs
ZVZlcnNpb24gPSAkbG9ja0VyZ2VibmlzLmFrdHVlbGwNCiAgICAgICAgICAgICAgICAgICAgfSA0
MDkNCiAgICAgICAgICAgICAgICAgICAgY29udGludWUNCiAgICAgICAgICAgICAgICB9DQogICAg
ICAgICAgICAgICAgU2VuZC1Kc29uT2JqZWN0ICRSZXNwb25zZSBAeyBzdGF0dXMgPSAnZ2VzcGVp
Y2hlcnQnIH0NCiAgICAgICAgICAgICAgICBjb250aW51ZQ0KICAgICAgICAgICAgfQ0KICAgICAg
ICAgICAgaWYgKCRQYXRoIC1lcSAnL2FwaS9wbGFudW5nL3plbGxlJyAtYW5kICRNZXRob2QgLWVx
ICdQT1NUJykgew0KICAgICAgICAgICAgICAgICRib2R5ID0gUmVhZC1Cb2R5ICRSZXF1ZXN0DQog
ICAgICAgICAgICAgICAgaWYgKC1ub3QgJGJvZHkpIHsgU2VuZC1FcnJvciAkUmVzcG9uc2UgJ0Fu
ZnJhZ2UgenUgZ3Jvc3MnIDQxMzsgY29udGludWUgfQ0KICAgICAgICAgICAgICAgICRhID0gJGJv
ZHkgfCBDb252ZXJ0RnJvbS1Kc29uDQogICAgICAgICAgICAgICAgJGRhdHVtID0gJGEuZGF0dW0N
CiAgICAgICAgICAgICAgICAkcGVyc29uSWQgPSBbc3RyaW5nXSRhLnBlcnNvbklkDQogICAgICAg
ICAgICAgICAgJHdlcnQgPSBpZiAoJGEuUFNPYmplY3QuUHJvcGVydGllc1snd2VydCddKSB7ICRh
LndlcnQgfSBlbHNlIHsgJycgfQ0KICAgICAgICAgICAgICAgICMgT3B0aW1pc3RpYy1Db25jdXJy
ZW5jeTogV2VubiBkZXIgQ2xpZW50IHNlaW5lbiB6dWxldHp0IGdlc2VoZW5lbg0KICAgICAgICAg
ICAgICAgICMgV2VydCBtaXRsaWVmZXJ0LCBwcnVlZmVuIHdpciB2b3IgZGVtIFNjaHJlaWJlbiBv
YiBkZXIgU2VydmVyDQogICAgICAgICAgICAgICAgIyBub2NoIGRlbnNlbGJlbiBTdGFuZCBoYXQu
IE1pc21hdGNoIC0+IDQwOSBtaXQgYWt0dWVsbGVyV2VydC4NCiAgICAgICAgICAgICAgICAkaGF0
RXJ3YXJ0ZXQgPSAkYS5QU09iamVjdC5Qcm9wZXJ0aWVzWydlcndhcnRldGVyQWx0ZXJXZXJ0J10N
CiAgICAgICAgICAgICAgICAkZXJ3YXJ0ZXQgPSBpZiAoJGhhdEVyd2FydGV0KSB7IFtzdHJpbmdd
JGEuZXJ3YXJ0ZXRlckFsdGVyV2VydCB9IGVsc2UgeyAkbnVsbCB9DQoNCiAgICAgICAgICAgICAg
ICAjIEVkaXQtUmVjaHQgZ2VnZW4gYWt0dWVsbGVuIFN0YW5kIHBydWVmZW4gKG5vY2ggb2huZSBM
b2NrIOKAlCBudXIgTG9va3VwKQ0KICAgICAgICAgICAgICAgICRwbGFudW5nQ2hlY2sgPSBSZWFk
LUpzb25PYmplY3QgJ3BsYW51bmcuanNvbicNCiAgICAgICAgICAgICAgICBpZiAoJG51bGwgLWVx
ICRwbGFudW5nQ2hlY2spIHsgU2VuZC1FcnJvciAkUmVzcG9uc2UgJ3BsYW51bmcuanNvbiBuaWNo
dCBnZWZ1bmRlbicgNDA0OyBjb250aW51ZSB9DQogICAgICAgICAgICAgICAgJHppZWxQZXJzb24g
PSAkbnVsbA0KICAgICAgICAgICAgICAgIGlmICgkcGxhbnVuZ0NoZWNrLnBlcnNvbmVuKSB7DQog
ICAgICAgICAgICAgICAgICAgIGZvcmVhY2ggKCRwcCBpbiBAKCRwbGFudW5nQ2hlY2sucGVyc29u
ZW4pKSB7DQogICAgICAgICAgICAgICAgICAgICAgICBpZiAoW3N0cmluZ10kcHAuaWQgLWVxICRw
ZXJzb25JZCkgeyAkemllbFBlcnNvbiA9ICRwcDsgYnJlYWsgfQ0KICAgICAgICAgICAgICAgICAg
ICB9DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIGlmICgtbm90IChUZXN0LURh
cmZaZWxsZUVkaXRpZXJlbiAkemllbFBlcnNvbikpIHsNCiAgICAgICAgICAgICAgICAgICAgU2Vu
ZC1FcnJvciAkUmVzcG9uc2UgJ0tlaW5lIEJlcmVjaHRpZ3VuZyBmdWVyIGRpZXNlIFplbGxlJyA0
MDM7IGNvbnRpbnVlDQogICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgIyBSZWFk
LU1vZGlmeS1Xcml0ZSBhdG9tYXIgaW4gTG9jazoNCiAgICAgICAgICAgICAgICAkY2xpZW50UXVp
dHRpZXJ0ID0gKCRhLlBTT2JqZWN0LlByb3BlcnRpZXNbJ3VudGVyYmVzZXR6dW5nU2NoaWNodCdd
IC1hbmQgJGEudW50ZXJiZXNldHp1bmdTY2hpY2h0KQ0KICAgICAgICAgICAgICAgICRsb2NrRXJn
ZWJuaXMgPSAkbnVsbA0KICAgICAgICAgICAgICAgIHRyeSB7DQogICAgICAgICAgICAgICAgICAg
ICRsb2NrRXJnZWJuaXMgPSBJbnZva2UtV2l0aEZpbGVMb2NrICdwbGFudW5nLmpzb24nIHsNCiAg
ICAgICAgICAgICAgICAgICAgICAgICRwbGFudW5nID0gUmVhZC1Kc29uT2JqZWN0ICdwbGFudW5n
Lmpzb24nDQogICAgICAgICAgICAgICAgICAgICAgICBpZiAoJG51bGwgLWVxICRwbGFudW5nKSB7
IHJldHVybiBAeyB0eXAgPSAnZXJyb3InOyBjb2RlID0gNDA0OyBtc2cgPSAncGxhbnVuZy5qc29u
IG5pY2h0IGdlZnVuZGVuJyB9IH0NCiAgICAgICAgICAgICAgICAgICAgICAgIGlmICgtbm90ICRw
bGFudW5nLlBTT2JqZWN0LlByb3BlcnRpZXNbJ2VpbnRyYWVnZSddKSB7DQogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgJHBsYW51bmcgfCBBZGQtTWVtYmVyIC1Ob3RlUHJvcGVydHlOYW1lICdl
aW50cmFlZ2UnIC1Ob3RlUHJvcGVydHlWYWx1ZSAoTmV3LU9iamVjdCBQU09iamVjdCkgLUZvcmNl
DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICBpZiAo
LW5vdCAkcGxhbnVuZy5laW50cmFlZ2UuUFNPYmplY3QuUHJvcGVydGllc1skZGF0dW1dKSB7DQog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgJHBsYW51bmcuZWludHJhZWdlIHwgQWRkLU1lbWJl
ciAtTm90ZVByb3BlcnR5TmFtZSAkZGF0dW0gLU5vdGVQcm9wZXJ0eVZhbHVlIChOZXctT2JqZWN0
IFBTT2JqZWN0KSAtRm9yY2UNCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAg
ICAgICAgICAgICAgICRhbHRlciA9ICcnDQogICAgICAgICAgICAgICAgICAgICAgICBpZiAoJHBs
YW51bmcuZWludHJhZWdlLiRkYXR1bS5QU09iamVjdC5Qcm9wZXJ0aWVzWyRwZXJzb25JZF0pIHsg
JGFsdGVyID0gW3N0cmluZ10kcGxhbnVuZy5laW50cmFlZ2UuJGRhdHVtLiRwZXJzb25JZCB9DQoN
CiAgICAgICAgICAgICAgICAgICAgICAgICMgT3B0aW1pc3RpYy1Db25jdXJyZW5jeS1DaGVjaw0K
ICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCRoYXRFcndhcnRldCAtYW5kICRlcndhcnRldCAt
bmUgJGFsdGVyKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIEB7IHR5cCA9
ICdrb25mbGlrdCc7IGFrdHVlbGwgPSAkYWx0ZXIgfQ0KICAgICAgICAgICAgICAgICAgICAgICAg
fQ0KDQogICAgICAgICAgICAgICAgICAgICAgICAjIEZ1ZWhydW5ncy1VbnRlcmJlc2V0enVuZyAo
VmVyYmluZGxpY2hrZWl0c2ZlbnN0ZXIpIC0gZ2xlaWNoZXMgUHJpbnppcCB3aWUgdm9yaGVyLA0K
ICAgICAgICAgICAgICAgICAgICAgICAgIyBqZXR6dCBhYmVyIGdlZ2VuIGRlbiBnZWxvY2t0ZW4g
U3RhbmQuDQogICAgICAgICAgICAgICAgICAgICAgICBpZiAoLW5vdCAkY2xpZW50UXVpdHRpZXJ0
IC1hbmQgKFRlc3QtSW5WZXJiaW5kbGljaGtlaXQgJGRhdHVtKSkgew0KICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICRhbHRlU2NoaWNodCA9IEdldC1GdWVocnVuZ3NTY2hpY2h0TGV0dGVyICRh
bHRlcg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICRuZXVlU2NoaWNodCA9IEdldC1GdWVo
cnVuZ3NTY2hpY2h0TGV0dGVyICR3ZXJ0DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYg
KCRhbHRlU2NoaWNodCAtYW5kICRhbHRlU2NoaWNodCAtbmUgJG5ldWVTY2hpY2h0KSB7DQogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICRha3R1ZWxsQ291bnQgPSBHZXQtRnVlaHJ1bmdz
Q291bnQgJHBsYW51bmcgJGRhdHVtICRhbHRlU2NoaWNodA0KICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBpZiAoKCRha3R1ZWxsQ291bnQgLSAxKSAtbHQgMikgew0KICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIEB7IHR5cCA9ICd1bnRlcmJlc2V0enVuZyc7
IHNjaGljaHQgPSAkYWx0ZVNjaGljaHQ7IGFrdHVlbGxDb3VudCA9ICRha3R1ZWxsQ291bnQ7IGFs
dGVyID0gJGFsdGVyIH0NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCg0KICAg
ICAgICAgICAgICAgICAgICAgICAgaWYgKC1ub3QgJHdlcnQgLW9yIFtzdHJpbmddOjpJc051bGxP
cldoaXRlU3BhY2UoJHdlcnQpKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCRw
bGFudW5nLmVpbnRyYWVnZS4kZGF0dW0uUFNPYmplY3QuUHJvcGVydGllc1skcGVyc29uSWRdKSB7
DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRwbGFudW5nLmVpbnRyYWVnZS4kZGF0
dW0uUFNPYmplY3QuUHJvcGVydGllcy5SZW1vdmUoJHBlcnNvbklkKQ0KICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7DQogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgaWYgKCRwbGFudW5nLmVpbnRyYWVnZS4kZGF0dW0uUFNPYmpl
Y3QuUHJvcGVydGllc1skcGVyc29uSWRdKSB7ICRwbGFudW5nLmVpbnRyYWVnZS4kZGF0dW0uJHBl
cnNvbklkID0gJHdlcnQgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgeyAkcGxh
bnVuZy5laW50cmFlZ2UuJGRhdHVtIHwgQWRkLU1lbWJlciAtTm90ZVByb3BlcnR5TmFtZSAkcGVy
c29uSWQgLU5vdGVQcm9wZXJ0eVZhbHVlICR3ZXJ0IC1Gb3JjZSB9DQogICAgICAgICAgICAgICAg
ICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICBXcml0ZS1Kc29uT2JqZWN0ICdwbGFu
dW5nLmpzb24nICRwbGFudW5nIHwgT3V0LU51bGwNCiAgICAgICAgICAgICAgICAgICAgICAgIHJl
dHVybiBAeyB0eXAgPSAnb2snOyBhbHRlciA9ICRhbHRlciB9DQogICAgICAgICAgICAgICAgICAg
IH0NCiAgICAgICAgICAgICAgICB9IGNhdGNoIHsNCiAgICAgICAgICAgICAgICAgICAgU2VuZC1F
cnJvciAkUmVzcG9uc2UgKCJMb2NrLUZlaGxlcjogJF8iKSA1MDM7IGNvbnRpbnVlDQogICAgICAg
ICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgaWYgKCRsb2NrRXJnZWJuaXMudHlwIC1lcSAn
ZXJyb3InKSB7IFNlbmQtRXJyb3IgJFJlc3BvbnNlICRsb2NrRXJnZWJuaXMubXNnICRsb2NrRXJn
ZWJuaXMuY29kZTsgY29udGludWUgfQ0KICAgICAgICAgICAgICAgIGlmICgkbG9ja0VyZ2Vibmlz
LnR5cCAtZXEgJ2tvbmZsaWt0Jykgew0KICAgICAgICAgICAgICAgICAgICBTZW5kLUpzb25PYmpl
Y3QgJFJlc3BvbnNlIEB7DQogICAgICAgICAgICAgICAgICAgICAgICBmZWhsZXIgICAgICAgID0g
J2tvbmZsaWt0Jw0KICAgICAgICAgICAgICAgICAgICAgICAgbWVsZHVuZyAgICAgICA9ICdEaWVz
ZSBaZWxsZSB3dXJkZSBpbnp3aXNjaGVuIGdlYWVuZGVydC4nDQogICAgICAgICAgICAgICAgICAg
ICAgICBha3R1ZWxsZXJXZXJ0ID0gJGxvY2tFcmdlYm5pcy5ha3R1ZWxsDQogICAgICAgICAgICAg
ICAgICAgIH0gNDA5DQogICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlDQogICAgICAgICAgICAg
ICAgfQ0KICAgICAgICAgICAgICAgIGlmICgkbG9ja0VyZ2VibmlzLnR5cCAtZXEgJ3VudGVyYmVz
ZXR6dW5nJykgew0KICAgICAgICAgICAgICAgICAgICBTZW5kLUpzb25PYmplY3QgJFJlc3BvbnNl
IEB7DQogICAgICAgICAgICAgICAgICAgICAgICBmZWhsZXIgICAgICAgICA9ICdGdWVocnVuZ3Mt
VW50ZXJiZXNldHp1bmcnDQogICAgICAgICAgICAgICAgICAgICAgICBrb25mbGlrdFR5cCAgICA9
ICd1bnRlcmJlc2V0enVuZycNCiAgICAgICAgICAgICAgICAgICAgICAgIHNjaGljaHQgICAgICAg
ID0gJGxvY2tFcmdlYm5pcy5zY2hpY2h0DQogICAgICAgICAgICAgICAgICAgICAgICBha3R1ZWxs
Q291bnQgICA9ICRsb2NrRXJnZWJuaXMuYWt0dWVsbENvdW50DQogICAgICAgICAgICAgICAgICAg
ICAgICBhbHRlcldlcnQgICAgICA9ICRsb2NrRXJnZWJuaXMuYWx0ZXINCiAgICAgICAgICAgICAg
ICAgICAgICAgIG5ldWVyV2VydCAgICAgID0gJHdlcnQNCiAgICAgICAgICAgICAgICAgICAgfSA0
MDkNCiAgICAgICAgICAgICAgICAgICAgY29udGludWUNCiAgICAgICAgICAgICAgICB9DQoNCiAg
ICAgICAgICAgICAgICAkYWx0ZXIgPSAkbG9ja0VyZ2VibmlzLmFsdGVyDQogICAgICAgICAgICAg
ICAgV3JpdGUtTG9nRWludHJhZyAnemVsbGUuZ2VhZW5kZXJ0JyBAeyBkYXR1bSA9ICRkYXR1bTsg
cGVyc29uSWQgPSAkcGVyc29uSWQ7IGFsdGVyV2VydCA9ICIkYWx0ZXIiOyBuZXVlcldlcnQgPSAi
JHdlcnQiIH0NCiAgICAgICAgICAgICAgICAjIExpdmUtU3luYzogQ2hhbmdlLUxvZyBmdWVyIGRl
biBzeW5jLXdvcmtlci4NCiAgICAgICAgICAgICAgICBBZGQtQ2hhbmdlTG9nRWludHJhZyAnemVs
bGUnIEB7DQogICAgICAgICAgICAgICAgICAgIGRhdHVtICAgID0gJGRhdHVtDQogICAgICAgICAg
ICAgICAgICAgIHBlcnNvbklkID0gJHBlcnNvbklkDQogICAgICAgICAgICAgICAgICAgIGFsdCAg
ICAgID0gIiRhbHRlciINCiAgICAgICAgICAgICAgICAgICAgbmV1ICAgICAgPSAiJHdlcnQiDQog
ICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgIyBVbnRlcmJlc2V0enVuZ3MtUXVp
dHR1bmc6IGV4dHJhIExvZ2J1Y2gtRWludHJhZywgZGVuIEZhY2hhdWZzaWNodC9XTCBzZWhlbiBz
b2xsDQogICAgICAgICAgICAgICAgaWYgKCRhLlBTT2JqZWN0LlByb3BlcnRpZXNbJ3VudGVyYmVz
ZXR6dW5nU2NoaWNodCddIC1hbmQgJGEudW50ZXJiZXNldHp1bmdTY2hpY2h0KSB7DQogICAgICAg
ICAgICAgICAgICAgICRzY2hpY2h0TGV0dGVyID0gW3N0cmluZ10kYS51bnRlcmJlc2V0enVuZ1Nj
aGljaHQNCiAgICAgICAgICAgICAgICAgICAgJHNjaGljaHRUZXh0ID0gc3dpdGNoICgkc2NoaWNo
dExldHRlcikgew0KICAgICAgICAgICAgICAgICAgICAgICAgJ0YnIHsgJ0ZydWVoc2NoaWNodCcg
fQ0KICAgICAgICAgICAgICAgICAgICAgICAgJ1MnIHsgJ1NwYWV0c2NoaWNodCcgfQ0KICAgICAg
ICAgICAgICAgICAgICAgICAgJ04nIHsgJ05hY2h0c2NoaWNodCcgfQ0KICAgICAgICAgICAgICAg
ICAgICAgICAgZGVmYXVsdCB7ICRzY2hpY2h0TGV0dGVyIH0NCiAgICAgICAgICAgICAgICAgICAg
fQ0KICAgICAgICAgICAgICAgICAgICAkb2VUeHQgPSAnJw0KICAgICAgICAgICAgICAgICAgICBp
ZiAoJHppZWxQZXJzb24gLWFuZCAkemllbFBlcnNvbi5QU09iamVjdC5Qcm9wZXJ0aWVzWydvZSdd
KSB7ICRvZVR4dCA9IFtzdHJpbmddJHppZWxQZXJzb24ub2UgfQ0KICAgICAgICAgICAgICAgICAg
ICAkbmFtZVR4dCA9ICcnDQogICAgICAgICAgICAgICAgICAgIGlmICgkemllbFBlcnNvbikgew0K
ICAgICAgICAgICAgICAgICAgICAgICAgJHZuID0gJyc7IGlmICgkemllbFBlcnNvbi5QU09iamVj
dC5Qcm9wZXJ0aWVzWyd2b3JuYW1lJ10pIHsgJHZuID0gW3N0cmluZ10kemllbFBlcnNvbi52b3Ju
YW1lIH0NCiAgICAgICAgICAgICAgICAgICAgICAgICRuYW1lVHh0ID0gKCIkdm4gJCgkemllbFBl
cnNvbi5uYW1lKSIpLlRyaW0oKQ0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAg
ICAgICAgIFdyaXRlLUxvZ0VpbnRyYWcgJ3VudGVyYmVzZXR6dW5nLnF1aXR0aWVydCcgQHsNCiAg
ICAgICAgICAgICAgICAgICAgICAgIGRhdHVtICAgICA9ICRkYXR1bQ0KICAgICAgICAgICAgICAg
ICAgICAgICAgcGVyc29uSWQgID0gJHBlcnNvbklkDQogICAgICAgICAgICAgICAgICAgICAgICBw
ZXJzb24gICAgPSAkbmFtZVR4dA0KICAgICAgICAgICAgICAgICAgICAgICAgb2UgICAgICAgID0g
JG9lVHh0DQogICAgICAgICAgICAgICAgICAgICAgICBzY2hpY2h0ICAgPSAkc2NoaWNodFRleHQN
CiAgICAgICAgICAgICAgICAgICAgICAgIGFsdGVyV2VydCA9ICIkYWx0ZXIiDQogICAgICAgICAg
ICAgICAgICAgICAgICBuZXVlcldlcnQgPSAiJHdlcnQiDQogICAgICAgICAgICAgICAgICAgIH0N
CiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgIyBQaGFzZSBELjMgKDIwMjYtMDUt
MjEpOiB3ZW5uIGRpZSBLcmFua21lbGR1bmcgenVydWVja2dlbm9tbWVuDQogICAgICAgICAgICAg
ICAgIyB3aXJkIChhbHRlciBXZXJ0IHdhciBrci9LdXIsIG5ldWVyIFdlcnQgaXN0IGVzIG5pY2h0
IG1laHIpLA0KICAgICAgICAgICAgICAgICMgZW50ZmVybmVuIHdpciBkZW4gb2ZmZW5lbiBIaW53
ZWlzIOKAlCBzb25zdCBpc3QgZXIgYmlzIHp1DQogICAgICAgICAgICAgICAgIyAzMCBUYWdlIHBy
YWVzZW50LCBvYndvaGwgZGFzIEVyZWlnbmlzIGVybGVkaWd0IGlzdC4NCiAgICAgICAgICAgICAg
ICBpZiAoKCRhbHRlciAtZXEgJ2tyJyAtb3IgJGFsdGVyIC1lcSAnS3VyJykgLWFuZCAoJHdlcnQg
LW5lICdrcicgLWFuZCAkd2VydCAtbmUgJ0t1cicpKSB7DQogICAgICAgICAgICAgICAgICAgIFJl
bW92ZS1PZmZlbmVLcmFua21lbGR1bmdzSGlud2Vpc2UgJHBlcnNvbklkICRkYXR1bQ0KICAgICAg
ICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAjIEhpbndlaXMtVHJpZ2dlcjogS3JhbmttZWxk
dW5nIGVyemV1Z3QgZWluZW4gSW4tQXBwLUhpbndlaXMNCiAgICAgICAgICAgICAgICAjIGZ1ZXIg
U1UgKyBHZXNhbXR2ZXJhbnR3b3J0bGljaGUgKFNjaGljaHRsb2NoIGltIE1vZGFsIGRpcmVrdA0K
ICAgICAgICAgICAgICAgICMgYWRyZXNzaWVyYmFyIHZpYSAiS2FuZGlkYXRlbiBhbnNjaHJlaWJl
biItQnV0dG9uKS4NCiAgICAgICAgICAgICAgICBpZiAoJHdlcnQgLWVxICdrcicgLW9yICR3ZXJ0
IC1lcSAnS3VyJykgew0KICAgICAgICAgICAgICAgICAgICAka21OYW1lID0gJycNCiAgICAgICAg
ICAgICAgICAgICAgaWYgKCR6aWVsUGVyc29uKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAk
a3ZuID0gJyc7IGlmICgkemllbFBlcnNvbi5QU09iamVjdC5Qcm9wZXJ0aWVzWyd2b3JuYW1lJ10p
IHsgJGt2biA9IFtzdHJpbmddJHppZWxQZXJzb24udm9ybmFtZSB9DQogICAgICAgICAgICAgICAg
ICAgICAgICAka21OYW1lID0gKCIka3ZuICQoJHppZWxQZXJzb24ubmFtZSkiKS5UcmltKCkNCiAg
ICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAka21HcnVwcGUgPSAnJw0K
ICAgICAgICAgICAgICAgICAgICBpZiAoJHppZWxQZXJzb24gLWFuZCAkemllbFBlcnNvbi5QU09i
amVjdC5Qcm9wZXJ0aWVzWydncnVwcGUnXSkgeyAka21HcnVwcGUgPSBbc3RyaW5nXSR6aWVsUGVy
c29uLmdydXBwZSB9DQogICAgICAgICAgICAgICAgICAgICRrbVNjaGljaHRMZXR0ZXIgPSAnJw0K
ICAgICAgICAgICAgICAgICAgICBpZiAoIiRhbHRlciIgLW1hdGNoICdeKFtGU05dKS0nKSB7ICRr
bVNjaGljaHRMZXR0ZXIgPSAkTWF0Y2hlc1sxXSB9DQogICAgICAgICAgICAgICAgICAgIE5ldy1I
aW53ZWlzICdrcmFua21lbGR1bmcnIChbb3JkZXJlZF1Aew0KICAgICAgICAgICAgICAgICAgICAg
ICAgcGVyc29uX2lkICAgID0gJHBlcnNvbklkDQogICAgICAgICAgICAgICAgICAgICAgICBwZXJz
b25fbmFtZSAgPSAka21OYW1lDQogICAgICAgICAgICAgICAgICAgICAgICBncnVwcGUgICAgICAg
PSAka21HcnVwcGUNCiAgICAgICAgICAgICAgICAgICAgICAgIGRhdHVtICAgICAgICA9ICRkYXR1
bQ0KICAgICAgICAgICAgICAgICAgICAgICAgc2NoaWNodENvZGUgID0gIiRhbHRlciINCiAgICAg
ICAgICAgICAgICAgICAgICAgIHNjaGljaHRLdXJ6ICA9ICRrbVNjaGljaHRMZXR0ZXINCiAgICAg
ICAgICAgICAgICAgICAgICAgIGNvZGUgICAgICAgICA9ICIkd2VydCINCiAgICAgICAgICAgICAg
ICAgICAgfSkgKEdldC1Ba3R1ZWxsZXJCZW51dHplcikgfCBPdXQtTnVsbA0KICAgICAgICAgICAg
ICAgIH0NCiAgICAgICAgICAgICAgICBTZW5kLUpzb25PYmplY3QgJFJlc3BvbnNlIEB7IHN0YXR1
cyA9ICdnZXNwZWljaGVydCc7IGFsdGVyV2VydCA9ICRhbHRlciB9DQogICAgICAgICAgICAgICAg
Y29udGludWUNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgICMgQnVsay1TY2hyZWliZW4gbWVo
cmVyZXIgWmVsbGVuIGluIGVpbmVtIFNjaHJpdHQg4oCUIGF1ZmdlcnVmZW4NCiAgICAgICAgICAg
ICMgdm9tIEV4Y2VsLUZ1ZWxsLUdyaWZmLiBTcGFydCBwcm8gRHJhZyBiaXMgenUgMTAwKyBIVFRQ
LVJvdW5kdHJpcHMNCiAgICAgICAgICAgICMgdW5kIERhdGVpLVNjaHJlaWJ2b3JnYWVuZ2UuIFBl
cm1pc3Npb24tQ2hlY2sgcHJvIFplbGxlLCBlaW4NCiAgICAgICAgICAgICMgZWluemlnZXIgTG9n
YnVjaC1FaW50cmFnIGZhc3N0IGRpZSBBa3Rpb24genVzYW1tZW4uDQogICAgICAgICAgICBpZiAo
JFBhdGggLWVxICcvYXBpL3BsYW51bmcvemVsbGVuLWJ1bGsnIC1hbmQgJE1ldGhvZCAtZXEgJ1BP
U1QnKSB7DQogICAgICAgICAgICAgICAgJGJvZHkgPSBSZWFkLUJvZHkgJFJlcXVlc3QNCiAgICAg
ICAgICAgICAgICBpZiAoLW5vdCAkYm9keSkgeyBTZW5kLUVycm9yICRSZXNwb25zZSAnQW5mcmFn
ZSB6dSBncm9zcycgNDEzOyBjb250aW51ZSB9DQogICAgICAgICAgICAgICAgJGEgPSAkYm9keSB8
IENvbnZlcnRGcm9tLUpzb24NCiAgICAgICAgICAgICAgICAkZWludHJhZWdlID0gQCgkYS5laW50
cmFlZ2UpDQogICAgICAgICAgICAgICAgaWYgKC1ub3QgJGVpbnRyYWVnZSAtb3IgJGVpbnRyYWVn
ZS5Db3VudCAtZXEgMCkgew0KICAgICAgICAgICAgICAgICAgICBTZW5kLUpzb25PYmplY3QgJFJl
c3BvbnNlIEB7IHN0YXR1cyA9ICdvayc7IG9rID0gMDsgYWJnZWxlaG50ID0gQCgpIH0NCiAgICAg
ICAgICAgICAgICAgICAgY29udGludWUNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAg
ICAgIyBSZWFkLU1vZGlmeS1Xcml0ZSBhdG9tYXIgaW4gZGVyIERhdGVpLVNwZXJyZSDigJQgd2ll
IGRlciBFaW56ZWwtDQogICAgICAgICAgICAgICAgIyB6ZWxsLUVuZHBvaW50LiBPaG5lIExvY2sg
a2FubiBlaW4gcGFyYWxsZWxlciBFZGl0L0J1bGsgKGF1Y2gNCiAgICAgICAgICAgICAgICAjIGF1
cyBlaW5lbSBhbmRlcmVuIFNlcnZlci1Qcm96ZXNzIGF1ZiBkZW1zZWxiZW4gU2hhcmUpIGRlbg0K
ICAgICAgICAgICAgICAgICMgZ2VyYWRlIGdlbGVzZW5lbiBHZXNhbXRzdGFuZCB1ZWJlcnNjaHJl
aWJlbiAoTG9zdCBVcGRhdGUgdWViZXINCiAgICAgICAgICAgICAgICAjIGRpZSBHQU5aRSBEYXRl
aSkuIExvZ2J1Y2ggKyBMaXZlLVN5bmMgbGF1ZmVuIE5BQ0ggZGVyIFNwZXJyZSwNCiAgICAgICAg
ICAgICAgICAjIHVtIGdlc2NoYWNodGVsdGUgTG9ja3MgKGxvZ2J1Y2gvY2hhbmdlcykgenUgdmVy
bWVpZGVuLg0KICAgICAgICAgICAgICAgICRyZXMgPSAkbnVsbA0KICAgICAgICAgICAgICAgIHRy
eSB7DQogICAgICAgICAgICAgICAgICAgICRyZXMgPSBJbnZva2UtV2l0aEZpbGVMb2NrICdwbGFu
dW5nLmpzb24nIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICRwbGFudW5nID0gUmVhZC1Kc29u
T2JqZWN0ICdwbGFudW5nLmpzb24nDQogICAgICAgICAgICAgICAgICAgICAgICBpZiAoJG51bGwg
LWVxICRwbGFudW5nKSB7IHJldHVybiBAeyB0eXAgPSAnZXJyb3InOyBjb2RlID0gNDA0OyBtc2cg
PSAncGxhbnVuZy5qc29uIG5pY2h0IGdlZnVuZGVuJyB9IH0NCiAgICAgICAgICAgICAgICAgICAg
ICAgIGlmICgtbm90ICRwbGFudW5nLlBTT2JqZWN0LlByb3BlcnRpZXNbJ2VpbnRyYWVnZSddKSB7
DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgJHBsYW51bmcgfCBBZGQtTWVtYmVyIC1Ob3Rl
UHJvcGVydHlOYW1lICdlaW50cmFlZ2UnIC1Ob3RlUHJvcGVydHlWYWx1ZSAoW1BTQ3VzdG9tT2Jq
ZWN0XUB7fSkgLUZvcmNlDQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAg
ICAgICAgICAgICAjIFBlcnNvbmVuLU1hcCBlaW5tYWwgYXVmYmF1ZW4g4oCUIFBlcm1pc3Npb24t
Q2hlY2sgcHJvDQogICAgICAgICAgICAgICAgICAgICAgICAjIEVpbnRyYWcgb2huZSBSZXNjYW4g
ZGVyIFBlcnNvbmVubGlzdGUuDQogICAgICAgICAgICAgICAgICAgICAgICAkcGVyc29uTWFwID0g
QHt9DQogICAgICAgICAgICAgICAgICAgICAgICBpZiAoJHBsYW51bmcucGVyc29uZW4pIHsNCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBmb3JlYWNoICgkcHAgaW4gQCgkcGxhbnVuZy5wZXJz
b25lbikpIHsgJHBlcnNvbk1hcFtbc3RyaW5nXSRwcC5pZF0gPSAkcHAgfQ0KICAgICAgICAgICAg
ICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgJG9rQ291bnQgPSAwDQogICAg
ICAgICAgICAgICAgICAgICAgICAkYWJnZWxlaG50ID0gQCgpDQogICAgICAgICAgICAgICAgICAg
ICAgICAkZXJzdGVzUGlkID0gJG51bGwNCiAgICAgICAgICAgICAgICAgICAgICAgICRlcnN0ZXNX
ZXJ0ID0gJG51bGwNCiAgICAgICAgICAgICAgICAgICAgICAgICRlcnN0ZXNEYXR1bSA9ICRudWxs
DQogICAgICAgICAgICAgICAgICAgICAgICAkbGV0enRlc0RhdHVtID0gJG51bGwNCiAgICAgICAg
ICAgICAgICAgICAgICAgICMgYWx0ZVdlcnRlLU1hcCBmdWVyIExvZ2J1Y2gtUmVzdG9yZTogS2V5
ID0gIjxkYXR1bT58PHBlcnNvbklkPiIuDQogICAgICAgICAgICAgICAgICAgICAgICAkYWx0ZVdl
cnRlID0gQHt9DQogICAgICAgICAgICAgICAgICAgICAgICAjIHN5bmNFaW50cmFlZ2U6IHBybyBn
ZW11dGllcnRlciBaZWxsZSBlaW4gRWludHJhZyBmdWVyDQogICAgICAgICAgICAgICAgICAgICAg
ICAjIGRlbiBMaXZlLVN5bmMtQ2hhbmdlLUxvZyAoRm9ybWF0IHdpZSBTaW5nbGUtQ2VsbCkuDQog
ICAgICAgICAgICAgICAgICAgICAgICAkc3luY0VpbnRyYWVnZSA9IE5ldy1PYmplY3QgU3lzdGVt
LkNvbGxlY3Rpb25zLkFycmF5TGlzdA0KICAgICAgICAgICAgICAgICAgICAgICAgZm9yZWFjaCAo
JGUgaW4gJGVpbnRyYWVnZSkgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICRkYXR1bSA9
IFtzdHJpbmddJGUuZGF0dW0NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkcGVyc29uSWQg
PSBbc3RyaW5nXSRlLnBlcnNvbklkDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgJHdlcnQg
PSBpZiAoJGUuUFNPYmplY3QuUHJvcGVydGllc1snd2VydCddIC1hbmQgJG51bGwgLW5lICRlLndl
cnQpIHsgW3N0cmluZ10kZS53ZXJ0IH0gZWxzZSB7ICcnIH0NCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBpZiAoLW5vdCAkZGF0dW0gLW9yIC1ub3QgJHBlcnNvbklkKSB7ICRhYmdlbGVobnQg
Kz0gQHsgZGF0dW0gPSAkZGF0dW07IHBlcnNvbklkID0gJHBlcnNvbklkOyBncnVuZCA9ICd1bnZv
bGxzdGFlbmRpZycgfTsgY29udGludWUgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICR6
aWVsUGVyc29uID0gJHBlcnNvbk1hcFskcGVyc29uSWRdDQogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgaWYgKC1ub3QgKFRlc3QtRGFyZlplbGxlRWRpdGllcmVuICR6aWVsUGVyc29uKSkgew0K
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkYWJnZWxlaG50ICs9IEB7IGRhdHVtID0g
JGRhdHVtOyBwZXJzb25JZCA9ICRwZXJzb25JZDsgZ3J1bmQgPSAna2Vpbi1yZWNodCcgfQ0KICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZQ0KICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoLW5vdCAkcGxhbnVu
Zy5laW50cmFlZ2UuUFNPYmplY3QuUHJvcGVydGllc1skZGF0dW1dKSB7DQogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICRwbGFudW5nLmVpbnRyYWVnZSB8IEFkZC1NZW1iZXIgLU5vdGVQ
cm9wZXJ0eU5hbWUgJGRhdHVtIC1Ob3RlUHJvcGVydHlWYWx1ZSAoW1BTQ3VzdG9tT2JqZWN0XUB7
fSkgLUZvcmNlDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICMgQWx0ZW4gV2VydCBtZXJrZW4gQkVWT1Igd2lyIGRpZSBaZWxsZSB1ZWJl
cnNjaHJlaWJlbi4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkYWx0ZXJXZXJ0ID0gJycN
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoJHBsYW51bmcuZWludHJhZWdlLiRkYXR1
bS5QU09iamVjdC5Qcm9wZXJ0aWVzWyRwZXJzb25JZF0pIHsNCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgJGFsdGVyV2VydCA9IFtzdHJpbmddJHBsYW51bmcuZWludHJhZWdlLiRkYXR1
bS4kcGVyc29uSWQNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgJGFsdGVXZXJ0ZVsoInswfXx7MX0iIC1mICRkYXR1bSwgJHBlcnNvbklk
KV0gPSAkYWx0ZXJXZXJ0DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKFtzdHJpbmdd
OjpJc051bGxPckVtcHR5KCR3ZXJ0KSkgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBpZiAoJHBsYW51bmcuZWludHJhZWdlLiRkYXR1bS5QU09iamVjdC5Qcm9wZXJ0aWVzWyRwZXJz
b25JZF0pIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRwbGFudW5nLmVp
bnRyYWVnZS4kZGF0dW0uUFNPYmplY3QuUHJvcGVydGllcy5SZW1vdmUoJHBlcnNvbklkKQ0KICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgfSBlbHNlIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCRwbGFudW5n
LmVpbnRyYWVnZS4kZGF0dW0uUFNPYmplY3QuUHJvcGVydGllc1skcGVyc29uSWRdKSB7DQogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkcGxhbnVuZy5laW50cmFlZ2UuJGRhdHVt
LiRwZXJzb25JZCA9ICR3ZXJ0DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxz
ZSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkcGxhbnVuZy5laW50cmFl
Z2UuJGRhdHVtIHwgQWRkLU1lbWJlciAtTm90ZVByb3BlcnR5TmFtZSAkcGVyc29uSWQgLU5vdGVQ
cm9wZXJ0eVZhbHVlICR3ZXJ0IC1Gb3JjZQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICB9DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICRva0NvdW50KysNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoJG51bGwg
LWVxICRlcnN0ZXNQaWQpIHsgJGVyc3Rlc1BpZCA9ICRwZXJzb25JZDsgJGVyc3Rlc1dlcnQgPSAk
d2VydDsgJGVyc3Rlc0RhdHVtID0gJGRhdHVtIH0NCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAkbGV0enRlc0RhdHVtID0gJGRhdHVtDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgW3Zv
aWRdJHN5bmNFaW50cmFlZ2UuQWRkKEB7IGRhdHVtID0gJGRhdHVtOyBwZXJzb25JZCA9ICRwZXJz
b25JZDsgYWx0ID0gIiRhbHRlcldlcnQiOyBuZXUgPSAiJHdlcnQiIH0pDQogICAgICAgICAgICAg
ICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICAjIERhdGVpIG51ciBzY2hyZWli
ZW4sIHdlbm4gdGF0c2FlY2hsaWNoIHdhcyBnZWFlbmRlcnQgd3VyZGUuDQogICAgICAgICAgICAg
ICAgICAgICAgICBpZiAoJG9rQ291bnQgLWd0IDApIHsNCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBXcml0ZS1Kc29uT2JqZWN0ICdwbGFudW5nLmpzb24nICRwbGFudW5nIHwgT3V0LU51bGwN
CiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVy
biBAeyB0eXAgPSAnb2snOyBva0NvdW50ID0gJG9rQ291bnQ7IGFiZ2VsZWhudCA9ICRhYmdlbGVo
bnQ7IGVyc3Rlc1BpZCA9ICRlcnN0ZXNQaWQ7IGVyc3Rlc1dlcnQgPSAkZXJzdGVzV2VydDsgZXJz
dGVzRGF0dW0gPSAkZXJzdGVzRGF0dW07IGxldHp0ZXNEYXR1bSA9ICRsZXR6dGVzRGF0dW07IGFs
dGVXZXJ0ZSA9ICRhbHRlV2VydGU7IHN5bmNFaW50cmFlZ2UgPSAkc3luY0VpbnRyYWVnZSB9DQog
ICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICB9IGNhdGNoIHsNCiAgICAgICAg
ICAgICAgICAgICAgU2VuZC1FcnJvciAkUmVzcG9uc2UgKCJMb2NrLUZlaGxlcjogJF8iKSA1MDM7
IGNvbnRpbnVlDQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIGlmICgkcmVzLnR5
cCAtZXEgJ2Vycm9yJykgeyBTZW5kLUVycm9yICRSZXNwb25zZSAkcmVzLm1zZyAkcmVzLmNvZGU7
IGNvbnRpbnVlIH0NCiAgICAgICAgICAgICAgICAjIExvZ2J1Y2ggKyBMaXZlLVN5bmMgTkFDSCBk
ZW0gTG9jayAoa2VpbiBnZXNjaGFjaHRlbHRlcyBMb2NrKS4NCiAgICAgICAgICAgICAgICBpZiAo
JHJlcy5va0NvdW50IC1ndCAwKSB7DQogICAgICAgICAgICAgICAgICAgIFdyaXRlLUxvZ0VpbnRy
YWcgJ3plbGxlbi5idWxrLmdlYWVuZGVydCcgQHsNCiAgICAgICAgICAgICAgICAgICAgICAgIHBl
cnNvbklkICAgID0gJHJlcy5lcnN0ZXNQaWQNCiAgICAgICAgICAgICAgICAgICAgICAgIHdlcnQg
ICAgICAgID0gJHJlcy5lcnN0ZXNXZXJ0DQogICAgICAgICAgICAgICAgICAgICAgICBhbnphaGwg
ICAgICA9ICRyZXMub2tDb3VudA0KICAgICAgICAgICAgICAgICAgICAgICAgZXJzdGVyVGFnICAg
PSAkcmVzLmVyc3Rlc0RhdHVtDQogICAgICAgICAgICAgICAgICAgICAgICBsZXR6dGVyVGFnICA9
ICRyZXMubGV0enRlc0RhdHVtDQogICAgICAgICAgICAgICAgICAgICAgICBhYmdlbGVobnQgICA9
ICRyZXMuYWJnZWxlaG50LkNvdW50DQogICAgICAgICAgICAgICAgICAgICAgICAjIFJlc3RvcmUt
UGF5bG9hZDogcHJvIFplbGxlIGRlciBXZXJ0IHZvciBkZXIgQWVuZGVydW5nLg0KICAgICAgICAg
ICAgICAgICAgICAgICAgYWx0ZVdlcnRlICAgPSAkcmVzLmFsdGVXZXJ0ZQ0KICAgICAgICAgICAg
ICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICMgTGl2ZS1TeW5jOiBwcm8gWmVsbGUgZWlu
ICd6ZWxsZSctRWludHJhZyBpbnMgY2hhbmdlcy5qc29uLg0KICAgICAgICAgICAgICAgICAgICBB
ZGQtQ2hhbmdlTG9nRWludHJhZWdlICd6ZWxsZScgJHJlcy5zeW5jRWludHJhZWdlDQogICAgICAg
ICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIFNlbmQtSnNvbk9iamVjdCAkUmVzcG9uc2UgQHsg
c3RhdHVzID0gJ29rJzsgb2sgPSAkcmVzLm9rQ291bnQ7IGFiZ2VsZWhudCA9IEAoJHJlcy5hYmdl
bGVobnQpIH0NCiAgICAgICAgICAgICAgICBjb250aW51ZQ0KICAgICAgICAgICAgfQ0KICAgICAg
ICAgICAgIyBQT1NUIC9hcGkvcGxhbnVuZy9rb21tZW50YXINCiAgICAgICAgICAgICMgSGFlbmd0
IGVpbmVuIG5ldWVuIEtvbW1lbnRhciBhbiBkaWUgTGlzdGUgZnVlciAoZGF0dW0scGVyc29uSWQp
IGFuLg0KICAgICAgICAgICAgIyBTY2hlbWEtTWlncmF0aW9uIChsYXp5KTogdm9yaGFuZGVuZXIg
U3RyaW5nIG9kZXIgT2JqZWt0LUVpbnRyYWcgd2lyZA0KICAgICAgICAgICAgIyBiZWltIGVyc3Rl
biBTY2hyZWliZW4gaW4gZWluZSBMaXN0ZSBrb252ZXJ0aWVydC4gTGVlcmVyIFRleHQgd2lyZA0K
ICAgICAgICAgICAgIyBhYmdlbGVobnQg4oCUIExvZXNjaGVuIGVpbnplbG5lciBLb21tZW50YXJl
IGxhZXVmdCB1ZWJlciBkZW4gREVMRVRFLQ0KICAgICAgICAgICAgIyBFbmRwdW5rdCAobWl0IEtv
bW1lbnRhci1JRCksIGRhcyBMb2VzY2hlbiBnYW56ZXIgTGlzdGVuIGlzdCB1ZWJlcg0KICAgICAg
ICAgICAgIyBkaWUgQVBJIG5pY2h0IG1laHIgbW9lZ2xpY2ggKHZlcnNlaGVudGxpY2hlciBWZXJs
dXN0IGF1c2dlc2NobG9zc2VuKS4NCiAgICAgICAgICAgIGlmICgkUGF0aCAtZXEgJy9hcGkvcGxh
bnVuZy9rb21tZW50YXInIC1hbmQgJE1ldGhvZCAtZXEgJ1BPU1QnKSB7DQogICAgICAgICAgICAg
ICAgJGJvZHkgPSBSZWFkLUJvZHkgJFJlcXVlc3QNCiAgICAgICAgICAgICAgICBpZiAoLW5vdCAk
Ym9keSkgeyBTZW5kLUVycm9yICRSZXNwb25zZSAnQW5mcmFnZSB6dSBncm9zcycgNDEzOyBjb250
aW51ZSB9DQogICAgICAgICAgICAgICAgJGEgPSAkYm9keSB8IENvbnZlcnRGcm9tLUpzb24NCiAg
ICAgICAgICAgICAgICAkZGF0dW0gPSAkYS5kYXR1bQ0KICAgICAgICAgICAgICAgICRwZXJzb25J
ZCA9IFtzdHJpbmddJGEucGVyc29uSWQNCiAgICAgICAgICAgICAgICAkdGV4dCA9IGlmICgkYS5Q
U09iamVjdC5Qcm9wZXJ0aWVzWyd0ZXh0J10pIHsgKCIkKCRhLnRleHQpIikuVHJpbSgpIH0gZWxz
ZSB7ICcnIH0NCiAgICAgICAgICAgICAgICBpZiAoLW5vdCAkdGV4dCkgew0KICAgICAgICAgICAg
ICAgICAgICBTZW5kLUVycm9yICRSZXNwb25zZSAnTGVlcmVyIEtvbW1lbnRhciDigJQgYml0dGUg
REVMRVRFIC9hcGkvcGxhbnVuZy9rb21tZW50YXIgZnVlciBMb2VzY2hlbiB2ZXJ3ZW5kZW4nIDQw
MA0KICAgICAgICAgICAgICAgICAgICBjb250aW51ZQ0KICAgICAgICAgICAgICAgIH0NCiAgICAg
ICAgICAgICAgICAjIEVkaXQtUmVjaHQgdm9yIExvY2sgcHJ1ZWZlbg0KICAgICAgICAgICAgICAg
ICRwbGFudW5nQ2hlY2sgPSBSZWFkLUpzb25PYmplY3QgJ3BsYW51bmcuanNvbicNCiAgICAgICAg
ICAgICAgICBpZiAoJG51bGwgLWVxICRwbGFudW5nQ2hlY2spIHsgU2VuZC1FcnJvciAkUmVzcG9u
c2UgJ3BsYW51bmcuanNvbiBuaWNodCBnZWZ1bmRlbicgNDA0OyBjb250aW51ZSB9DQogICAgICAg
ICAgICAgICAgJHppZWxQZXJzb24gPSAkbnVsbA0KICAgICAgICAgICAgICAgIGlmICgkcGxhbnVu
Z0NoZWNrLnBlcnNvbmVuKSB7DQogICAgICAgICAgICAgICAgICAgIGZvcmVhY2ggKCRwcCBpbiBA
KCRwbGFudW5nQ2hlY2sucGVyc29uZW4pKSB7DQogICAgICAgICAgICAgICAgICAgICAgICBpZiAo
W3N0cmluZ10kcHAuaWQgLWVxICRwZXJzb25JZCkgeyAkemllbFBlcnNvbiA9ICRwcDsgYnJlYWsg
fQ0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAg
ICAgIGlmICgtbm90IChUZXN0LURhcmZaZWxsZUVkaXRpZXJlbiAkemllbFBlcnNvbikpIHsNCiAg
ICAgICAgICAgICAgICAgICAgU2VuZC1FcnJvciAkUmVzcG9uc2UgJ0tlaW5lIEJlcmVjaHRpZ3Vu
ZyBmdWVyIGRpZXNlbiBLb21tZW50YXInIDQwMzsgY29udGludWUNCiAgICAgICAgICAgICAgICB9
DQogICAgICAgICAgICAgICAgJGpldHp0ID0gKEdldC1EYXRlKS5Ub1N0cmluZygnbycpICAjIElT
TyA4NjAxIG1pdCBaZWl0em9uZQ0KICAgICAgICAgICAgICAgICRiZW51dHplciA9ICIkRG9tYWlu
XCRVc2VybmFtZSINCiAgICAgICAgICAgICAgICAkbmV1ZUlkID0gJ2tfJyArIChbRGF0ZVRpbWVP
ZmZzZXRdOjpOb3cuVG9Vbml4VGltZU1pbGxpc2Vjb25kcygpKSArICdfJyArIChHZXQtUmFuZG9t
IC1NYXhpbXVtIDk5OTk5KQ0KICAgICAgICAgICAgICAgIHRyeSB7DQogICAgICAgICAgICAgICAg
ICAgICRudWxsID0gSW52b2tlLVdpdGhGaWxlTG9jayAncGxhbnVuZy5qc29uJyB7DQogICAgICAg
ICAgICAgICAgICAgICAgICAkcGxhbnVuZyA9IFJlYWQtSnNvbk9iamVjdCAncGxhbnVuZy5qc29u
Jw0KICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCRudWxsIC1lcSAkcGxhbnVuZykgeyByZXR1
cm4gJG51bGwgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgaWYgKC1ub3QgJHBsYW51bmcuUFNP
YmplY3QuUHJvcGVydGllc1sna29tbWVudGFyZSddKSB7DQogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgJHBsYW51bmcgfCBBZGQtTWVtYmVyIC1Ob3RlUHJvcGVydHlOYW1lICdrb21tZW50YXJl
JyAtTm90ZVByb3BlcnR5VmFsdWUgKE5ldy1PYmplY3QgUFNPYmplY3QpIC1Gb3JjZQ0KICAgICAg
ICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgaWYgKC1ub3QgJHBs
YW51bmcua29tbWVudGFyZS5QU09iamVjdC5Qcm9wZXJ0aWVzWyRkYXR1bV0pIHsNCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAkcGxhbnVuZy5rb21tZW50YXJlIHwgQWRkLU1lbWJlciAtTm90
ZVByb3BlcnR5TmFtZSAkZGF0dW0gLU5vdGVQcm9wZXJ0eVZhbHVlIChOZXctT2JqZWN0IFBTT2Jq
ZWN0KSAtRm9yY2UNCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAg
ICAgICAgICMgQWt0dWVsbGUgTGlzdGUgaGVyYXVzemllaGVuICsgZ2dmLiBhdXMgQWx0c2NoZW1h
IG1pZ3JpZXJlbi4NCiAgICAgICAgICAgICAgICAgICAgICAgICMgTGlzdGUgaXN0IGNocm9ub2xv
Z2lzY2ggKGFlbHRlc3RlIHp1ZXJzdCksIGRlciBuZXVlDQogICAgICAgICAgICAgICAgICAgICAg
ICAjIEVpbnRyYWcgd2lyZCBoaW50ZW4gYW5nZWhhZW5ndC4NCiAgICAgICAgICAgICAgICAgICAg
ICAgICRsaXN0ZSA9IE5ldy1PYmplY3QgU3lzdGVtLkNvbGxlY3Rpb25zLkdlbmVyaWMuTGlzdFtv
YmplY3RdDQogICAgICAgICAgICAgICAgICAgICAgICBpZiAoJHBsYW51bmcua29tbWVudGFyZS4k
ZGF0dW0uUFNPYmplY3QuUHJvcGVydGllc1skcGVyc29uSWRdKSB7DQogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgJHZvcmggPSAkcGxhbnVuZy5rb21tZW50YXJlLiRkYXR1bS4kcGVyc29uSWQN
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoJHZvcmggLWlzIFtzdHJpbmddIC1hbmQg
JHZvcmgpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBBbHRlciBTdHJpbmct
RWludHJhZyDigJQgZWluIEVsZW1lbnQgb2huZSBNZXRhDQogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICRsaXN0ZS5BZGQoW1BTQ3VzdG9tT2JqZWN0XUB7DQogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBpZCAgICAgICAgICAgPSAna19sZWdhY3lfJyArIChHZXQtUmFu
ZG9tIC1NYXhpbXVtIDk5OTk5KQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
dGV4dCAgICAgICAgID0gJHZvcmgNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGdlYWVuZGVydEFtICA9ICRudWxsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBnZWFlbmRlcnRWb24gPSAkbnVsbA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9
KSB8IE91dC1OdWxsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlaWYgKCR2b3Jo
IC1pcyBbYXJyYXldIC1vciAoJHZvcmggLWlzIFtTeXN0ZW0uQ29sbGVjdGlvbnMuSUVudW1lcmFi
bGVdIC1hbmQgLW5vdCAoJHZvcmggLWlzIFtzdHJpbmddKSkpIHsNCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIyBTY2hvbiBlaW4gQXJyYXkgKG5ldWVzIFNjaGVtYSkNCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgZm9yZWFjaCAoJGUgaW4gQCgkdm9yaCkpIHsgJGxpc3Rl
LkFkZCgkZSkgfCBPdXQtTnVsbCB9DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNl
aWYgKCR2b3JoIC1hbmQgJHZvcmguUFNPYmplY3QuUHJvcGVydGllc1sndGV4dCddKSB7DQogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgQWx0ZXMgT2JqZWt0LVNjaGVtYSB7IHRleHQs
IGdlYWVuZGVydEFtLCBnZWFlbmRlcnRWb24gfQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAkbWlnSWQgPSBpZiAoJHZvcmguUFNPYmplY3QuUHJvcGVydGllc1snaWQnXSkgeyBbc3Ry
aW5nXSR2b3JoLmlkIH0gZWxzZSB7ICdrX2xlZ2FjeV8nICsgKEdldC1SYW5kb20gLU1heGltdW0g
OTk5OTkpIH0NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGxpc3RlLkFkZChbUFND
dXN0b21PYmplY3RdQHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkICAg
ICAgICAgICA9ICRtaWdJZA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGV4
dCAgICAgICAgID0gW3N0cmluZ10kdm9yaC50ZXh0DQogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBnZWFlbmRlcnRBbSAgPSBpZiAoJHZvcmguUFNPYmplY3QuUHJvcGVydGllc1sn
Z2VhZW5kZXJ0QW0nXSkgIHsgJHZvcmguZ2VhZW5kZXJ0QW0gfSAgZWxzZSB7ICRudWxsIH0NCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdlYWVuZGVydFZvbiA9IGlmICgkdm9y
aC5QU09iamVjdC5Qcm9wZXJ0aWVzWydnZWFlbmRlcnRWb24nXSkgeyAkdm9yaC5nZWFlbmRlcnRW
b24gfSBlbHNlIHsgJG51bGwgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KSB8
IE91dC1OdWxsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAg
ICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgJGxpc3RlLkFkZChbUFNDdXN0b21P
YmplY3RdQHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZCAgICAgICAgICAgPSAkbmV1
ZUlkDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgdGV4dCAgICAgICAgID0gJHRleHQNCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBnZWFlbmRlcnRBbSAgPSAkamV0enQNCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBnZWFlbmRlcnRWb24gPSAkYmVudXR6ZXINCiAgICAgICAgICAg
ICAgICAgICAgICAgIH0pIHwgT3V0LU51bGwNCiAgICAgICAgICAgICAgICAgICAgICAgICMgWnVy
dWVjayBhbHMgQXJyYXkgKFBTLVNlcmlhbGlzaWVydW5nKQ0KICAgICAgICAgICAgICAgICAgICAg
ICAgJGFyciA9IEAoJGxpc3RlLlRvQXJyYXkoKSkNCiAgICAgICAgICAgICAgICAgICAgICAgIGlm
ICgkcGxhbnVuZy5rb21tZW50YXJlLiRkYXR1bS5QU09iamVjdC5Qcm9wZXJ0aWVzWyRwZXJzb25J
ZF0pIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkcGxhbnVuZy5rb21tZW50YXJlLiRk
YXR1bS4kcGVyc29uSWQgPSAkYXJyDQogICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Ugew0K
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICRwbGFudW5nLmtvbW1lbnRhcmUuJGRhdHVtIHwg
QWRkLU1lbWJlciAtTm90ZVByb3BlcnR5TmFtZSAkcGVyc29uSWQgLU5vdGVQcm9wZXJ0eVZhbHVl
ICRhcnIgLUZvcmNlDQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAg
ICAgICAgICBXcml0ZS1Kc29uT2JqZWN0ICdwbGFudW5nLmpzb24nICRwbGFudW5nIHwgT3V0LU51
bGwNCiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAkbnVsbA0KICAgICAgICAgICAgICAg
ICAgICB9DQogICAgICAgICAgICAgICAgfSBjYXRjaCB7DQogICAgICAgICAgICAgICAgICAgIFNl
bmQtRXJyb3IgJFJlc3BvbnNlICgiTG9jay1GZWhsZXI6ICRfIikgNTAzOyBjb250aW51ZQ0KICAg
ICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAjIFJlZGFjdGlvbiB3aWUgYmVpIGtvbW1l
bnRhci5nZWxvZXNjaHQgKFNwcmludCAxIOKAlCBTaWNoZXJoZWl0cy0NCiAgICAgICAgICAgICAg
ICAjIE5vdGJyZW1zZSAyMDI2LTA1LTI4KTogVm9sbHRleHQgYmxlaWJ0IGluIHBsYW51bmcuanNv
biAoZG9ydA0KICAgICAgICAgICAgICAgICMgZWRpdGllcmJhci9sb2VzY2hiYXIpLCBkYXMgTG9n
YnVjaCBiZWtvbW10IG51ciBWb3JzY2hhdSArIExhZW5nZS4NCiAgICAgICAgICAgICAgICAjIFZl
cm1laWRldCBQSUktRWNobywgd2VubiBlaW4gS29tbWVudGFyIHNwYWV0ZXIgZ2Vsb2VzY2h0IHdp
cmQNCiAgICAgICAgICAgICAgICAjIGFiZXIgaW0gTG9nIGltbWVyIG5vY2gga29tcGxldHQgbGll
c3Qgc3RlaHQuDQogICAgICAgICAgICAgICAgJHRleHRWb3JzY2hhdSA9ICR0ZXh0DQogICAgICAg
ICAgICAgICAgaWYgKCR0ZXh0Vm9yc2NoYXUuTGVuZ3RoIC1ndCA0MCkgeyAkdGV4dFZvcnNjaGF1
ID0gJHRleHRWb3JzY2hhdS5TdWJzdHJpbmcoMCwgNDApICsgJ+KApicgfQ0KICAgICAgICAgICAg
ICAgIFdyaXRlLUxvZ0VpbnRyYWcgJ2tvbW1lbnRhci5oaW56dWdlZnVlZ3QnIEB7DQogICAgICAg
ICAgICAgICAgICAgIGRhdHVtICAgICAgICAgPSAkZGF0dW0NCiAgICAgICAgICAgICAgICAgICAg
cGVyc29uSWQgICAgICA9ICRwZXJzb25JZA0KICAgICAgICAgICAgICAgICAgICBrb21tZW50YXJJ
ZCAgID0gJG5ldWVJZA0KICAgICAgICAgICAgICAgICAgICB0ZXh0Vm9yc2NoYXUgID0gJHRleHRW
b3JzY2hhdQ0KICAgICAgICAgICAgICAgICAgICB0ZXh0TGFlbmdlICAgID0gJHRleHQuTGVuZ3Ro
DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIEFkZC1DaGFuZ2VMb2dFaW50cmFn
ICdrb21tZW50YXInIEB7DQogICAgICAgICAgICAgICAgICAgIGRhdHVtICAgID0gJGRhdHVtDQog
ICAgICAgICAgICAgICAgICAgIHBlcnNvbklkID0gJHBlcnNvbklkDQogICAgICAgICAgICAgICAg
ICAgIGtvbW1lbnRhcklkID0gJG5ldWVJZA0KICAgICAgICAgICAgICAgICAgICAjIExpdmUtU3lu
YyBicmF1Y2h0IGRlbiBUZXh0IG5pY2h0IOKAlCBuYWVjaHN0ZXIgUmVuZGVyIGxhZWR0DQogICAg
ICAgICAgICAgICAgICAgICMgaWhuIGF1cyBwbGFudW5nLmpzb24uIE51ciBNZXRhZGF0ZW4gZnVl
ciBBa3Rpdml0YWV0cy1BbnplaWdlLg0KICAgICAgICAgICAgICAgICAgICB6ZWl0c3RlbXBlbCA9
ICRqZXR6dA0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBTZW5kLUpzb25PYmpl
Y3QgJFJlc3BvbnNlIEB7DQogICAgICAgICAgICAgICAgICAgIHN0YXR1cyAgICAgICA9ICdoaW56
dWdlZnVlZ3QnDQogICAgICAgICAgICAgICAgICAgIGtvbW1lbnRhcklkICA9ICRuZXVlSWQNCiAg
ICAgICAgICAgICAgICAgICAgZ2VhZW5kZXJ0QW0gID0gJGpldHp0DQogICAgICAgICAgICAgICAg
ICAgIGdlYWVuZGVydFZvbiA9ICRiZW51dHplcg0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAg
ICAgICAgICBjb250aW51ZQ0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAjIERFTEVURSAv
YXBpL3BsYW51bmcva29tbWVudGFyDQogICAgICAgICAgICAjIEJvZHk6IHsgZGF0dW0sIHBlcnNv
bklkLCBrb21tZW50YXJJZCB9DQogICAgICAgICAgICAjIEJlcmVjaHRpZ3VuZzogU3VwZXJVc2Vy
IG9kZXIgR2VzYW10dmVyYW50d29ydGxpY2hlLiBBbmRlcmUgUm9sbGVuDQogICAgICAgICAgICAj
IGJla29tbWVuIDQwMyDigJQgYXVjaCBkZXIgVmVyZmFzc2VyIHNlbGJzdCBkYXJmIG5pY2h0IGxv
ZXNjaGVuDQogICAgICAgICAgICAjIChiZXd1c3N0ZSBEZXNpZ25lbnRzY2hlaWR1bmc6IEtvbW1l
bnRhci1WZXJsYXVmIGlzdCBDaHJvbmlrKS4NCiAgICAgICAgICAgIGlmICgkUGF0aCAtZXEgJy9h
cGkvcGxhbnVuZy9rb21tZW50YXInIC1hbmQgJE1ldGhvZCAtZXEgJ0RFTEVURScpIHsNCiAgICAg
ICAgICAgICAgICAkYm9keSA9IFJlYWQtQm9keSAkUmVxdWVzdA0KICAgICAgICAgICAgICAgIGlm
ICgtbm90ICRib2R5KSB7IFNlbmQtRXJyb3IgJFJlc3BvbnNlICdBbmZyYWdlIHp1IGdyb3NzJyA0
MTM7IGNvbnRpbnVlIH0NCiAgICAgICAgICAgICAgICAkYSA9ICRib2R5IHwgQ29udmVydEZyb20t
SnNvbg0KICAgICAgICAgICAgICAgICRkYXR1bSA9ICRhLmRhdHVtDQogICAgICAgICAgICAgICAg
JHBlcnNvbklkID0gW3N0cmluZ10kYS5wZXJzb25JZA0KICAgICAgICAgICAgICAgICRrb21tZW50
YXJJZCA9IFtzdHJpbmddJGEua29tbWVudGFySWQNCiAgICAgICAgICAgICAgICBpZiAoLW5vdCAk
ZGF0dW0gLW9yIC1ub3QgJHBlcnNvbklkIC1vciAtbm90ICRrb21tZW50YXJJZCkgew0KICAgICAg
ICAgICAgICAgICAgICBTZW5kLUVycm9yICRSZXNwb25zZSAnZGF0dW0sIHBlcnNvbklkIHVuZCBr
b21tZW50YXJJZCBzaW5kIFBmbGljaHQnIDQwMDsgY29udGludWUNCiAgICAgICAgICAgICAgICB9
DQogICAgICAgICAgICAgICAgJHIgPSBHZXQtUmVjaHRlDQogICAgICAgICAgICAgICAgaWYgKC1u
b3QgKCRyLmlzdFN1cGVyVXNlciAtb3IgJHIuaXN0R2VzYW10dmVyYW50d29ydGxpY2gpKSB7DQog
ICAgICAgICAgICAgICAgICAgIFNlbmQtRXJyb3IgJFJlc3BvbnNlICdOdXIgU3VwZXJVc2VyIHVu
ZCBHZXNhbXR2ZXJhbnR3b3J0bGljaGUgZHVlcmZlbiBLb21tZW50YXJlIGxvZXNjaGVuJyA0MDMN
CiAgICAgICAgICAgICAgICAgICAgY29udGludWUNCiAgICAgICAgICAgICAgICB9DQogICAgICAg
ICAgICAgICAgJGdlbG9lc2NodGVyVGV4dCA9ICRudWxsDQogICAgICAgICAgICAgICAgdHJ5IHsN
CiAgICAgICAgICAgICAgICAgICAgJGVyZyA9IEludm9rZS1XaXRoRmlsZUxvY2sgJ3BsYW51bmcu
anNvbicgew0KICAgICAgICAgICAgICAgICAgICAgICAgJHBsYW51bmcgPSBSZWFkLUpzb25PYmpl
Y3QgJ3BsYW51bmcuanNvbicNCiAgICAgICAgICAgICAgICAgICAgICAgIGlmICgkbnVsbCAtZXEg
JHBsYW51bmcgLW9yIC1ub3QgJHBsYW51bmcuUFNPYmplY3QuUHJvcGVydGllc1sna29tbWVudGFy
ZSddKSB7IHJldHVybiBAeyB0ZXh0ID0gJG51bGwgfSB9DQogICAgICAgICAgICAgICAgICAgICAg
ICBpZiAoLW5vdCAkcGxhbnVuZy5rb21tZW50YXJlLlBTT2JqZWN0LlByb3BlcnRpZXNbJGRhdHVt
XSkgeyByZXR1cm4gQHsgdGV4dCA9ICRudWxsIH0gfQ0KICAgICAgICAgICAgICAgICAgICAgICAg
aWYgKC1ub3QgJHBsYW51bmcua29tbWVudGFyZS4kZGF0dW0uUFNPYmplY3QuUHJvcGVydGllc1sk
cGVyc29uSWRdKSB7IHJldHVybiBAeyB0ZXh0ID0gJG51bGwgfSB9DQogICAgICAgICAgICAgICAg
ICAgICAgICAkdm9yaCA9ICRwbGFudW5nLmtvbW1lbnRhcmUuJGRhdHVtLiRwZXJzb25JZA0KICAg
ICAgICAgICAgICAgICAgICAgICAgIyBDb21wYXQgZnVlciBBbHQtRm9ybWF0ZSAoU3ByaW50IDMg
4oCUIERyaWZ0L1JvYnVzdGhlaXQNCiAgICAgICAgICAgICAgICAgICAgICAgICMgMjAyNi0wNS0y
OCk6IENsaWVudCBrZW5uemVpY2huZXQgU3RyaW5nLSBvZGVyIFNpbmdsZS0NCiAgICAgICAgICAg
ICAgICAgICAgICAgICMgT2JqZWN0LW9obmUtSUQgRWludHJhZWdlIGluIGtvbW1lbnRhckxpc3Rl
KCkgbWl0DQogICAgICAgICAgICAgICAgICAgICAgICAjIFNlbnRpbmVsLUlEICdrX2xlZ2FjeScu
IERFTEVURSBtaXQgZGllc2VyIElEIGdlZ2VuDQogICAgICAgICAgICAgICAgICAgICAgICAjIGVp
bmVuIEFsdC1FaW50cmFnID0ga29tcGxldHRlciBFaW50cmFnIHdpcmQgZW50ZmVybnQNCiAgICAg
ICAgICAgICAgICAgICAgICAgICMgKE1pZ3JhdGlvbiArIExvZXNjaHVuZyBpbiBlaW5lbSBTY2hy
aXR0KS4NCiAgICAgICAgICAgICAgICAgICAgICAgICR0cmVmZmVyID0gJG51bGwNCiAgICAgICAg
ICAgICAgICAgICAgICAgICRuZXVlTGlzdGUgPSBOZXctT2JqZWN0IFN5c3RlbS5Db2xsZWN0aW9u
cy5HZW5lcmljLkxpc3Rbb2JqZWN0XQ0KICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCR2b3Jo
IC1pcyBbc3RyaW5nXSAtYW5kICR2b3JoKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAg
aWYgKCRrb21tZW50YXJJZCAtZXEgJ2tfbGVnYWN5Jykgew0KICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAkdHJlZmZlciA9IFtQU0N1c3RvbU9iamVjdF1AeyB0ZXh0ID0gJHZvcmggfQ0K
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7DQogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHJldHVybiBAeyB0ZXh0ID0gJG51bGw7IGZlaGxlciA9ICdrb21tZW50YXJO
aWNodEdlZnVuZGVuJyB9DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAg
ICAgICAgICAgICAgICAgfSBlbHNlIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkbGlz
dGUgPSBAKCkNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoJHZvcmggLWlzIFthcnJh
eV0gLW9yICgkdm9yaCAtaXMgW1N5c3RlbS5Db2xsZWN0aW9ucy5JRW51bWVyYWJsZV0gLWFuZCAt
bm90ICgkdm9yaCAtaXMgW3N0cmluZ10pKSkgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAkbGlzdGUgPSBAKCR2b3JoKQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxz
ZWlmICgkdm9yaCAtYW5kICR2b3JoLlBTT2JqZWN0LlByb3BlcnRpZXNbJ3RleHQnXSkgew0KICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkYWx0SWQgPSBpZiAoJHZvcmguUFNPYmplY3Qu
UHJvcGVydGllc1snaWQnXSkgeyBbc3RyaW5nXSR2b3JoLmlkIH0gZWxzZSB7ICcnIH0NCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKC1ub3QgJGFsdElkKSB7DQogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoJGtvbW1lbnRhcklkIC1lcSAna19sZWdhY3kn
KSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHRyZWZmZXIgPSAk
dm9yaA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsNCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gQHsgdGV4dCA9ICRudWxs
OyBmZWhsZXIgPSAna29tbWVudGFyTmljaHRHZWZ1bmRlbicgfQ0KICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVs
c2Ugew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGxpc3RlID0gQCgkdm9y
aCkNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoLW5vdCAkdHJlZmZl
cikgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3JlYWNoICgkZSBpbiAkbGlz
dGUpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRlaWQgPSBpZiAoJGUg
LWFuZCAkZS5QU09iamVjdC5Qcm9wZXJ0aWVzWydpZCddKSB7IFtzdHJpbmddJGUuaWQgfSBlbHNl
IHsgJycgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCRlaWQgLWVx
ICRrb21tZW50YXJJZCkgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICR0cmVmZmVyID0gJGUNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxz
ZSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJG5ldWVMaXN0ZS5B
ZGQoJGUpIHwgT3V0LU51bGwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0N
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAg
ICAgIGlmICgtbm90ICR0cmVmZmVyKSB7IHJldHVybiBAeyB0ZXh0ID0gJG51bGw7IGZlaGxlciA9
ICdrb21tZW50YXJOaWNodEdlZnVuZGVuJyB9IH0NCiAgICAgICAgICAgICAgICAgICAgICAgIGlm
ICgkbmV1ZUxpc3RlLkNvdW50IC1lcSAwKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAg
IyBMZXR6dGVyIEtvbW1lbnRhciBlbnRmZXJudCAtPiBQcm9wZXJ0eSBrb21wbGV0dCByYXVzDQog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgJHBsYW51bmcua29tbWVudGFyZS4kZGF0dW0uUFNP
YmplY3QuUHJvcGVydGllcy5SZW1vdmUoJHBlcnNvbklkKQ0KICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICMgTGVlcmVyIFRhZ2VzLUJ1Y2tldCBhdWZyYWV1bWVuDQogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgJHRhZ1Byb3BzID0gQCgkcGxhbnVuZy5rb21tZW50YXJlLiRkYXR1bS5QU09i
amVjdC5Qcm9wZXJ0aWVzKQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICgkdGFnUHJv
cHMuQ291bnQgLWVxIDApIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHBsYW51
bmcua29tbWVudGFyZS5QU09iamVjdC5Qcm9wZXJ0aWVzLlJlbW92ZSgkZGF0dW0pDQogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsN
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkcGxhbnVuZy5rb21tZW50YXJlLiRkYXR1bS4k
cGVyc29uSWQgPSBAKCRuZXVlTGlzdGUuVG9BcnJheSgpKQ0KICAgICAgICAgICAgICAgICAgICAg
ICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgV3JpdGUtSnNvbk9iamVjdCAncGxhbnVuZy5q
c29uJyAkcGxhbnVuZyB8IE91dC1OdWxsDQogICAgICAgICAgICAgICAgICAgICAgICAkZW50ZmVy
bnRUZXh0ID0gaWYgKCR0cmVmZmVyLlBTT2JqZWN0LlByb3BlcnRpZXNbJ3RleHQnXSkgeyBbc3Ry
aW5nXSR0cmVmZmVyLnRleHQgfSBlbHNlIHsgJycgfQ0KICAgICAgICAgICAgICAgICAgICAgICAg
cmV0dXJuIEB7IHRleHQgPSAkZW50ZmVybnRUZXh0IH0NCiAgICAgICAgICAgICAgICAgICAgfQ0K
ICAgICAgICAgICAgICAgICAgICBpZiAoJGVyZy5mZWhsZXIpIHsNCiAgICAgICAgICAgICAgICAg
ICAgICAgIGlmICgkZXJnLmZlaGxlciAtZXEgJ2tvbW1lbnRhck5pY2h0R2VmdW5kZW4nKSB7DQog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgU2VuZC1FcnJvciAkUmVzcG9uc2UgJ0tvbW1lbnRh
ciBtaXQgZGllc2VyIElEIG5pY2h0IGdlZnVuZGVuJyA0MDQ7IGNvbnRpbnVlDQogICAgICAgICAg
ICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAg
ICAgJGdlbG9lc2NodGVyVGV4dCA9ICRlcmcudGV4dA0KICAgICAgICAgICAgICAgIH0gY2F0Y2gg
ew0KICAgICAgICAgICAgICAgICAgICBTZW5kLUVycm9yICRSZXNwb25zZSAoIkxvY2stRmVobGVy
OiAkXyIpIDUwMzsgY29udGludWUNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAg
IyBSZWRhY3Rpb24gKFNwcmludCAxIOKAlCBTaWNoZXJoZWl0cy1Ob3RicmVtc2UgMjAyNi0wNS0y
OCk6DQogICAgICAgICAgICAgICAgIyBQSUktU2NodXR6LiBGcnVlaGVyIGxhbmRldGUgZGVyIHZv
bGxzdGFlbmRpZ2UgS29tbWVudGFyLVRleHQgaW0NCiAgICAgICAgICAgICAgICAjIExvZ2J1Y2gg
4oCUIHdlbm4gZGVyIEtvbW1lbnRhciBLcmFua2hlaXRzLS9EaXN6aXBsaW5hci1JbmZvIGVudGhp
ZWx0LA0KICAgICAgICAgICAgICAgICMgbGVidGUgc2llIG5hY2ggJ0xvZXNjaGVuJyB3ZWl0ZXIg
aW0gTG9nLiBKZXR6dCBudXIgTGFlbmdlICsga3VyemVyDQogICAgICAgICAgICAgICAgIyBBdXN6
dWcgKDQwIFplaWNoZW4pLCBnZW51ZyBmdWVyIE5hY2h2b2xsemllaGJhcmtlaXQgb2huZSBWb2xs
dGV4dC4NCiAgICAgICAgICAgICAgICAkdGV4dFZvcnNjaGF1ID0gJycNCiAgICAgICAgICAgICAg
ICBpZiAoJGdlbG9lc2NodGVyVGV4dCkgew0KICAgICAgICAgICAgICAgICAgICAka3VyeiA9ICRn
ZWxvZXNjaHRlclRleHQNCiAgICAgICAgICAgICAgICAgICAgaWYgKCRrdXJ6Lkxlbmd0aCAtZ3Qg
NDApIHsgJGt1cnogPSAka3Vyei5TdWJzdHJpbmcoMCwgNDApICsgJ+KApicgfQ0KICAgICAgICAg
ICAgICAgICAgICAkdGV4dFZvcnNjaGF1ID0gJGt1cnoNCiAgICAgICAgICAgICAgICB9DQogICAg
ICAgICAgICAgICAgJHRleHRMYWVuZ2UgPSBpZiAoJGdlbG9lc2NodGVyVGV4dCkgeyAkZ2Vsb2Vz
Y2h0ZXJUZXh0Lkxlbmd0aCB9IGVsc2UgeyAwIH0NCiAgICAgICAgICAgICAgICBXcml0ZS1Mb2dF
aW50cmFnICdrb21tZW50YXIuZ2Vsb2VzY2h0JyBAew0KICAgICAgICAgICAgICAgICAgICBkYXR1
bSAgICAgICAgID0gJGRhdHVtDQogICAgICAgICAgICAgICAgICAgIHBlcnNvbklkICAgICAgPSAk
cGVyc29uSWQNCiAgICAgICAgICAgICAgICAgICAga29tbWVudGFySWQgICA9ICRrb21tZW50YXJJ
ZA0KICAgICAgICAgICAgICAgICAgICB0ZXh0Vm9yc2NoYXUgID0gJHRleHRWb3JzY2hhdQ0KICAg
ICAgICAgICAgICAgICAgICB0ZXh0TGFlbmdlICAgID0gJHRleHRMYWVuZ2UNCiAgICAgICAgICAg
ICAgICB9DQogICAgICAgICAgICAgICAgQWRkLUNoYW5nZUxvZ0VpbnRyYWcgJ2tvbW1lbnRhcicg
QHsNCiAgICAgICAgICAgICAgICAgICAgZGF0dW0gICAgPSAkZGF0dW0NCiAgICAgICAgICAgICAg
ICAgICAgcGVyc29uSWQgPSAkcGVyc29uSWQNCiAgICAgICAgICAgICAgICAgICAga29tbWVudGFy
SWQgPSAka29tbWVudGFySWQNCiAgICAgICAgICAgICAgICAgICAgIyBMaXZlLVN5bmMtQ2hhbm5l
bCBicmF1Y2h0IGRlbiBUZXh0IG5pY2h0IOKAlCBCcm93c2VyIGxhZWR0DQogICAgICAgICAgICAg
ICAgICAgICMgYmVpIG5hZWNoc3RlbSBSZW5kZXIgZWggYXVzIHBsYW51bmcuanNvbiAod28gZGVy
IEVpbnRyYWcNCiAgICAgICAgICAgICAgICAgICAgIyB3ZWcgaXN0KS4gSGllciBudXIgTWV0YWRh
dGVuIGZ1ZXIgQWt0aXZpdGFldHMtQW56ZWlnZS4NCiAgICAgICAgICAgICAgICAgICAgbmV1ICAg
ICAgPSAnJw0KICAgICAgICAgICAgICAgICAgICB6ZWl0c3RlbXBlbCA9IChHZXQtRGF0ZSkuVG9T
dHJpbmcoJ28nKQ0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBTZW5kLUpzb25P
YmplY3QgJFJlc3BvbnNlIEB7IHN0YXR1cyA9ICdnZWxvZXNjaHQnOyBrb21tZW50YXJJZCA9ICRr
b21tZW50YXJJZCB9DQogICAgICAgICAgICAgICAgY29udGludWUNCiAgICAgICAgICAgIH0NCg0K
ICAgICAgICAgICAgIyA9PT09PSBQRVJTT05FTiA9PT09PQ0KICAgICAgICAgICAgaWYgKCRQYXRo
IC1lcSAnL2FwaS9wZXJzb25lbicgLWFuZCAkTWV0aG9kIC1lcSAnUE9TVCcpIHsNCiAgICAgICAg
ICAgICAgICBpZiAoLW5vdCAoVGVzdC1Jc3RBZG1pbikpIHsgU2VuZC1FcnJvciAkUmVzcG9uc2Ug
J0tlaW5lIEFkbWluLVJlY2h0ZScgNDAzOyBjb250aW51ZSB9DQogICAgICAgICAgICAgICAgJGJv
ZHkgPSBSZWFkLUJvZHkgJFJlcXVlc3QNCiAgICAgICAgICAgICAgICBpZiAoLW5vdCAkYm9keSkg
eyBTZW5kLUVycm9yICRSZXNwb25zZSAnQW5mcmFnZSB6dSBncm9zcycgNDEzOyBjb250aW51ZSB9
DQogICAgICAgICAgICAgICAgJG5ldSA9ICRib2R5IHwgQ29udmVydEZyb20tSnNvbg0KICAgICAg
ICAgICAgICAgICMgUmVhZC1Nb2RpZnktV3JpdGUgYXRvbWFyIGluIGRlciBEYXRlaS1TcGVycmUu
IFdpY2h0aWcgbmljaHQgbnVyDQogICAgICAgICAgICAgICAgIyBnZWdlbiBMb3N0IFVwZGF0ZXMs
IHNvbmRlcm4gZ2VnZW4gZGllIG1heElkLVJhY2U6IHp3ZWkgcGFyYWxsZWxlDQogICAgICAgICAg
ICAgICAgIyBQZXJzb25lbi1BbmxhZ2VuIHd1ZXJkZW4gc29uc3QgZGllc2VsYmUgbWF4SWQgbGVz
ZW4gdW5kIElERU5USVNDSEUNCiAgICAgICAgICAgICAgICAjIElEcyB2ZXJnZWJlbiAoZG9wcGVs
dGUgUGVyc29uZW4tSURzID0ga29ycnVwdGVyIFN0YXRlKS4NCiAgICAgICAgICAgICAgICAkcGVy
c1JlcyA9ICRudWxsDQogICAgICAgICAgICAgICAgdHJ5IHsNCiAgICAgICAgICAgICAgICAkcGVy
c1JlcyA9IEludm9rZS1XaXRoRmlsZUxvY2sgJ3BsYW51bmcuanNvbicgew0KICAgICAgICAgICAg
ICAgICRwbGFudW5nID0gUmVhZC1Kc29uT2JqZWN0ICdwbGFudW5nLmpzb24nDQogICAgICAgICAg
ICAgICAgJG1heElkID0gMA0KICAgICAgICAgICAgICAgIGZvcmVhY2ggKCRwIGluICRwbGFudW5n
LnBlcnNvbmVuKSB7IGlmICgkcC5pZCAtZ3QgJG1heElkKSB7ICRtYXhJZCA9ICRwLmlkIH0gfQ0K
ICAgICAgICAgICAgICAgICRuZXVlSWQgPSAkbWF4SWQgKyAxDQoNCiAgICAgICAgICAgICAgICAj
IEVpbnJlaWh1bmdzLUxvZ2lrOiAidW50ZW4iIChEZWZhdWx0KSwgInZvciIgb2RlciAibmFjaCIg
ZWluZXIgUmVmZXJlbnpwZXJzb24NCiAgICAgICAgICAgICAgICAkZWlucmVpaGVuID0gJ3VudGVu
Jw0KICAgICAgICAgICAgICAgIGlmICgkbmV1LlBTT2JqZWN0LlByb3BlcnRpZXNbJ2VpbnJlaWhl
biddIC1hbmQgJG5ldS5laW5yZWloZW4pIHsgJGVpbnJlaWhlbiA9IChbc3RyaW5nXSRuZXUuZWlu
cmVpaGVuKS5Ub0xvd2VyKCkgfQ0KICAgICAgICAgICAgICAgICRyZWZJZCA9ICRudWxsDQogICAg
ICAgICAgICAgICAgaWYgKCRuZXUuUFNPYmplY3QuUHJvcGVydGllc1sncmVmZXJlbnpJZCddIC1h
bmQgJG51bGwgLW5lICRuZXUucmVmZXJlbnpJZCkgeyAkcmVmSWQgPSBbaW50XSRuZXUucmVmZXJl
bnpJZCB9DQoNCiAgICAgICAgICAgICAgICAkemllbFBvcyA9ICRudWxsDQogICAgICAgICAgICAg
ICAgaWYgKCgkZWlucmVpaGVuIC1lcSAndm9yJyAtb3IgJGVpbnJlaWhlbiAtZXEgJ25hY2gnKSAt
YW5kICRudWxsIC1uZSAkcmVmSWQpIHsNCiAgICAgICAgICAgICAgICAgICAgJHJlZlBvcyA9ICRu
dWxsDQogICAgICAgICAgICAgICAgICAgIGZvcmVhY2ggKCRwIGluICRwbGFudW5nLnBlcnNvbmVu
KSB7DQogICAgICAgICAgICAgICAgICAgICAgICBpZiAoW2ludF0kcC5pZCAtZXEgJHJlZklkKSB7
DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgJHJlZlBvcyA9IGlmICgkcC5QU09iamVjdC5Q
cm9wZXJ0aWVzWydwb3NpdGlvbiddIC1hbmQgJHAucG9zaXRpb24pIHsgW2ludF0kcC5wb3NpdGlv
biB9IGVsc2UgeyAwIH0NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhaw0KICAgICAg
ICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAg
ICAgICAgIGlmICgkbnVsbCAtbmUgJHJlZlBvcykgew0KICAgICAgICAgICAgICAgICAgICAgICAg
JHppZWxQb3MgPSBpZiAoJGVpbnJlaWhlbiAtZXEgJ3ZvcicpIHsgJHJlZlBvcyB9IGVsc2UgeyAk
cmVmUG9zICsgMSB9DQogICAgICAgICAgICAgICAgICAgICAgICAjIFBvc2l0aW9uZW4gYWIgemll
bFBvcyB1bSAxIG5hY2ggaGludGVuIHNjaGllYmVuDQogICAgICAgICAgICAgICAgICAgICAgICBm
b3JlYWNoICgkcCBpbiAkcGxhbnVuZy5wZXJzb25lbikgew0KICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICRwcCA9IGlmICgkcC5QU09iamVjdC5Qcm9wZXJ0aWVzWydwb3NpdGlvbiddIC1hbmQg
JHAucG9zaXRpb24pIHsgW2ludF0kcC5wb3NpdGlvbiB9IGVsc2UgeyAwIH0NCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBpZiAoJHBwIC1nZSAkemllbFBvcykgew0KICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBpZiAoJHAuUFNPYmplY3QuUHJvcGVydGllc1sncG9zaXRpb24nXSkg
eyAkcC5wb3NpdGlvbiA9ICRwcCArIDEgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBlbHNlIHsgJHAgfCBBZGQtTWVtYmVyIC1Ob3RlUHJvcGVydHlOYW1lICdwb3NpdGlvbicgLU5v
dGVQcm9wZXJ0eVZhbHVlICgkcHAgKyAxKSAtRm9yY2UgfQ0KICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAg
fQ0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBpZiAoJG51bGwgLWVxICR6aWVs
UG9zKSB7DQogICAgICAgICAgICAgICAgICAgICRtYXhQb3MgPSAwDQogICAgICAgICAgICAgICAg
ICAgIGZvcmVhY2ggKCRwIGluICRwbGFudW5nLnBlcnNvbmVuKSB7ICRwb3MgPSBpZiAoJHAucG9z
aXRpb24pIHsgW2ludF0kcC5wb3NpdGlvbiB9IGVsc2UgeyAwIH07IGlmICgkcG9zIC1ndCAkbWF4
UG9zKSB7ICRtYXhQb3MgPSAkcG9zIH0gfQ0KICAgICAgICAgICAgICAgICAgICAkemllbFBvcyA9
ICRtYXhQb3MgKyAxDQogICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgJHBlcnNv
biA9IFtvcmRlcmVkXUB7DQogICAgICAgICAgICAgICAgICAgIGlkID0gJG5ldWVJZA0KICAgICAg
ICAgICAgICAgICAgICBha3RpdiA9IGlmICgkbmV1LlBTT2JqZWN0LlByb3BlcnRpZXNbJ2FrdGl2
J10pIHsgJG5ldS5ha3RpdiB9IGVsc2UgeyAkdHJ1ZSB9DQogICAgICAgICAgICAgICAgICAgIG5h
bWUgPSAkbmV1Lm5hbWUNCiAgICAgICAgICAgICAgICAgICAgdm9ybmFtZSA9IGlmICgkbmV1LlBT
T2JqZWN0LlByb3BlcnRpZXNbJ3Zvcm5hbWUnXSkgeyAkbmV1LnZvcm5hbWUgfSBlbHNlIHsgJycg
fQ0KICAgICAgICAgICAgICAgICAgICBkaWVuc3RncmFkID0gaWYgKCRuZXUuUFNPYmplY3QuUHJv
cGVydGllc1snZGllbnN0Z3JhZCddKSB7ICRuZXUuZGllbnN0Z3JhZCB9IGVsc2UgeyAnJyB9DQog
ICAgICAgICAgICAgICAgICAgIGZ1bmt0aW9uID0gaWYgKCRuZXUuUFNPYmplY3QuUHJvcGVydGll
c1snZnVua3Rpb24nXSkgeyAkbmV1LmZ1bmt0aW9uIH0gZWxzZSB7ICcnIH0NCiAgICAgICAgICAg
ICAgICAgICAgZ3J1cHBlID0gaWYgKCRuZXUuUFNPYmplY3QuUHJvcGVydGllc1snZ3J1cHBlJ10p
IHsgJG5ldS5ncnVwcGUgfSBlbHNlIHsgJycgfQ0KICAgICAgICAgICAgICAgICAgICBvZSA9IGlm
ICgkbmV1LlBTT2JqZWN0LlByb3BlcnRpZXNbJ29lJ10pIHsgJG5ldS5vZSB9IGVsc2UgeyAnJyB9
DQogICAgICAgICAgICAgICAgICAgIGRpZW5zdG51bW1lciA9IGlmICgkbmV1LlBTT2JqZWN0LlBy
b3BlcnRpZXNbJ2RpZW5zdG51bW1lciddKSB7ICRuZXUuZGllbnN0bnVtbWVyIH0gZWxzZSB7ICcn
IH0NCiAgICAgICAgICAgICAgICAgICAgdGVsZWZvbiA9IGlmICgkbmV1LlBTT2JqZWN0LlByb3Bl
cnRpZXNbJ3RlbGVmb24nXSkgeyAkbmV1LnRlbGVmb24gfSBlbHNlIHsgJycgfQ0KICAgICAgICAg
ICAgICAgICAgICBwb3NpdGlvbiA9ICR6aWVsUG9zDQogICAgICAgICAgICAgICAgICAgIGVtYWls
ID0gaWYgKCRuZXUuUFNPYmplY3QuUHJvcGVydGllc1snZW1haWwnXSkgeyAkbmV1LmVtYWlsIH0g
ZWxzZSB7ICcnIH0NCiAgICAgICAgICAgICAgICAgICAgbndLZW5udW5nID0gaWYgKCRuZXUuUFNP
YmplY3QuUHJvcGVydGllc1snbndLZW5udW5nJ10pIHsgJG5ldS5ud0tlbm51bmcgfSBlbHNlIHsg
JycgfQ0KICAgICAgICAgICAgICAgICAgICBnZWJ1cnRzZGF0dW0gPSBpZiAoJG5ldS5QU09iamVj
dC5Qcm9wZXJ0aWVzWydnZWJ1cnRzZGF0dW0nXSkgeyAkbmV1LmdlYnVydHNkYXR1bSB9IGVsc2Ug
eyAnJyB9DQogICAgICAgICAgICAgICAgICAgIGVsRGdsUXVhbGlmaXppZXJ0ID0gaWYgKCRuZXUu
UFNPYmplY3QuUHJvcGVydGllc1snZWxEZ2xRdWFsaWZpemllcnQnXSkgeyBbYm9vbF0kbmV1LmVs
RGdsUXVhbGlmaXppZXJ0IH0gZWxzZSB7ICRmYWxzZSB9DQogICAgICAgICAgICAgICAgfQ0KICAg
ICAgICAgICAgICAgICMgTWFya2VyIGZ1ZXIgUGVyc29uZW4sIGRpZSBwZXIgRXhjZWwtSW1wb3J0
IGZyaXNjaCBhbmdlbGVndA0KICAgICAgICAgICAgICAgICMgd3VyZGVuLiBQZXJzb25hbHZlcndh
bHR1bmcgYmxlbmRldCBzaWUgaW0gTmV1aW1wb3J0LUJsb2NrDQogICAgICAgICAgICAgICAgIyBv
YmVuIGVpbiwgYmlzIGRhcyBGbGFnIG1hbnVlbGwgd2VnZ2VzZXR6dCB3aXJkIChFcmxlZGlndC0N
CiAgICAgICAgICAgICAgICAjIEJ1dHRvbikgb2RlciBkYXMgbGV0enRlIFBmbGljaHRmZWxkIChE
aWVuc3RncnVwcGUpIGdlcGZsZWd0DQogICAgICAgICAgICAgICAgIyBpc3QgdW5kIGRlciBVc2Vy
IGF1ZiAiQmxvY2sgbGVlcmVuIiBrbGlja3QuDQogICAgICAgICAgICAgICAgaWYgKCRuZXUuUFNP
YmplY3QuUHJvcGVydGllc1snaW1wb3J0TmV1QW0nXSAtYW5kICRuZXUuaW1wb3J0TmV1QW0pIHsN
CiAgICAgICAgICAgICAgICAgICAgJHBlcnNvblsnaW1wb3J0TmV1QW0nXSA9IFtzdHJpbmddJG5l
dS5pbXBvcnROZXVBbQ0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAkcGxhbnVu
Zy5wZXJzb25lbiArPSBbUFNDdXN0b21PYmplY3RdJHBlcnNvbg0KICAgICAgICAgICAgICAgIFdy
aXRlLUpzb25PYmplY3QgJ3BsYW51bmcuanNvbicgJHBsYW51bmcgfCBPdXQtTnVsbA0KICAgICAg
ICAgICAgICAgIHJldHVybiBAeyBuZXVlSWQgPSAkbmV1ZUlkOyB6aWVsUG9zID0gJHppZWxQb3M7
IGVpbnJlaWhlbiA9ICRlaW5yZWloZW4gfQ0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAg
ICAgICB9IGNhdGNoIHsNCiAgICAgICAgICAgICAgICAgICAgU2VuZC1FcnJvciAkUmVzcG9uc2Ug
KCJMb2NrLUZlaGxlcjogJF8iKSA1MDM7IGNvbnRpbnVlDQogICAgICAgICAgICAgICAgfQ0KICAg
ICAgICAgICAgICAgIFdyaXRlLUxvZ0VpbnRyYWcgJ3BlcnNvbi5hbmdlbGVndCcgQHsgcGVyc29u
SWQgPSAkcGVyc1Jlcy5uZXVlSWQ7IG5hbWUgPSAiJCgkbmV1LnZvcm5hbWUpICQoJG5ldS5uYW1l
KSIuVHJpbSgpOyBlaW5yZWloZW4gPSAkcGVyc1Jlcy5laW5yZWloZW47IHBvc2l0aW9uID0gJHBl
cnNSZXMuemllbFBvcyB9DQogICAgICAgICAgICAgICAgU2VuZC1Kc29uT2JqZWN0ICRSZXNwb25z
ZSBAeyBzdGF0dXMgPSAnYW5nZWxlZ3QnOyBpZCA9ICRwZXJzUmVzLm5ldWVJZDsgcG9zaXRpb24g
PSAkcGVyc1Jlcy56aWVsUG9zIH0NCiAgICAgICAgICAgICAgICBjb250aW51ZQ0KICAgICAgICAg
ICAgfQ0KICAgICAgICAgICAgaWYgKCRQYXRoIC1tYXRjaCAnXi9hcGkvcGVyc29uZW4vKFxkKykk
JyAtYW5kICRNZXRob2QgLWVxICdQVVQnKSB7DQogICAgICAgICAgICAgICAgaWYgKC1ub3QgKFRl
c3QtSXN0QWRtaW4pKSB7IFNlbmQtRXJyb3IgJFJlc3BvbnNlICdLZWluZSBBZG1pbi1SZWNodGUn
IDQwMzsgY29udGludWUgfQ0KICAgICAgICAgICAgICAgICRwZXJzb25JZCA9IFtpbnRdJE1hdGNo
ZXNbMV0NCiAgICAgICAgICAgICAgICAkYm9keSA9IFJlYWQtQm9keSAkUmVxdWVzdA0KICAgICAg
ICAgICAgICAgIGlmICgtbm90ICRib2R5KSB7IFNlbmQtRXJyb3IgJFJlc3BvbnNlICdBbmZyYWdl
IHp1IGdyb3NzJyA0MTM7IGNvbnRpbnVlIH0NCiAgICAgICAgICAgICAgICAkdXBkYXRlID0gJGJv
ZHkgfCBDb252ZXJ0RnJvbS1Kc29uDQogICAgICAgICAgICAgICAgIyBBdWRpdC1QaGFzZSBBLjMg
KDIwMjYtMDUtMjEpOiBQcml2aWxlZ2llbi1TY2h1dHouIFJlaW5lDQogICAgICAgICAgICAgICAg
IyBGYWNoYXVmc2ljaHQtQWRtaW5zIChzZWhlbi5hZG1pbmlzdHJhdGlvbj10cnVlLCBhYmVyIGtl
aW4gU1UpDQogICAgICAgICAgICAgICAgIyBkdWVyZmVuIFN0YW1tZGF0ZW4gZWRpdGllcmVuLCBh
YmVyIEtFSU5FIFNpY2h0YmFya2VpdHMtDQogICAgICAgICAgICAgICAgIyBPdmVycmlkZXMgKGBz
ZWhlbmApIG9kZXIgZWRpdGllci1SZWNodGUgKGBlZGl0UmVjaHRlYCkgc2V0emVuDQogICAgICAg
ICAgICAgICAgIyDigJQgc29uc3Qga29lbm50ZW4gc2llIHNpY2ggTG9nYnVjaC0vU3RhdGlzdGlr
LVNpY2h0IHNlbGJzdA0KICAgICAgICAgICAgICAgICMgZnJlaXNjaGFsdGVuLiBQZXIgRGV2VG9v
bHMtbWFuaXB1bGllcnRlcyBQYXlsb2FkIGFiZmFuZ2VuLg0KICAgICAgICAgICAgICAgIGlmICgt
bm90IChUZXN0LUlzdFN1cGVyVXNlcikpIHsNCiAgICAgICAgICAgICAgICAgICAgaWYgKCR1cGRh
dGUuUFNPYmplY3QuUHJvcGVydGllc1snc2VoZW4nXSkgICAgICB7ICR1cGRhdGUuUFNPYmplY3Qu
UHJvcGVydGllcy5SZW1vdmUoJ3NlaGVuJykgfQ0KICAgICAgICAgICAgICAgICAgICBpZiAoJHVw
ZGF0ZS5QU09iamVjdC5Qcm9wZXJ0aWVzWydlZGl0UmVjaHRlJ10pIHsgJHVwZGF0ZS5QU09iamVj
dC5Qcm9wZXJ0aWVzLlJlbW92ZSgnZWRpdFJlY2h0ZScpIH0NCiAgICAgICAgICAgICAgICB9DQog
ICAgICAgICAgICAgICAgJHB1dFJlcyA9ICRudWxsDQogICAgICAgICAgICAgICAgdHJ5IHsNCiAg
ICAgICAgICAgICAgICAkcHV0UmVzID0gSW52b2tlLVdpdGhGaWxlTG9jayAncGxhbnVuZy5qc29u
JyB7DQogICAgICAgICAgICAgICAgJHBsYW51bmcgPSBSZWFkLUpzb25PYmplY3QgJ3BsYW51bmcu
anNvbicNCiAgICAgICAgICAgICAgICAkZ2VmdW5kZW4gICA9ICRmYWxzZQ0KICAgICAgICAgICAg
ICAgICRhbHRlV2VydGUgID0gQHt9DQogICAgICAgICAgICAgICAgJHBlcnNvbk5hbWUgPSAnJw0K
ICAgICAgICAgICAgICAgIGZvcmVhY2ggKCRwIGluICRwbGFudW5nLnBlcnNvbmVuKSB7DQogICAg
ICAgICAgICAgICAgICAgIGlmICgkcC5pZCAtZXEgJHBlcnNvbklkKSB7DQogICAgICAgICAgICAg
ICAgICAgICAgICAkcGVyc29uTmFtZSA9ICgoIiQoJHAudm9ybmFtZSkgJCgkcC5uYW1lKSIpLlRy
aW0oKSkNCiAgICAgICAgICAgICAgICAgICAgICAgIGZvcmVhY2ggKCRwcm9wIGluICR1cGRhdGUu
UFNPYmplY3QuUHJvcGVydGllcykgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICgk
cHJvcC5OYW1lIC1uZSAnaWQnKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRh
bHRlV2VydGVbJHByb3AuTmFtZV0gPSBpZiAoJHAuUFNPYmplY3QuUHJvcGVydGllc1skcHJvcC5O
YW1lXSkgeyAkcC4oJHByb3AuTmFtZSkgfSBlbHNlIHsgJG51bGwgfQ0KICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBpZiAoJHAuUFNPYmplY3QuUHJvcGVydGllc1skcHJvcC5OYW1lXSkg
eyAkcC4oJHByb3AuTmFtZSkgPSAkcHJvcC5WYWx1ZSB9DQogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGVsc2UgeyAkcCB8IEFkZC1NZW1iZXIgLU5vdGVQcm9wZXJ0eU5hbWUgJHByb3Au
TmFtZSAtTm90ZVByb3BlcnR5VmFsdWUgJHByb3AuVmFsdWUgLUZvcmNlIH0NCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAg
ICAgICAgICAgICAgICAkZ2VmdW5kZW4gPSAkdHJ1ZQ0KICAgICAgICAgICAgICAgICAgICAgICAg
YnJlYWsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAg
ICAgICAgICBpZiAoLW5vdCAkZ2VmdW5kZW4pIHsgcmV0dXJuIEB7IGdlZnVuZGVuID0gJGZhbHNl
IH0gfQ0KICAgICAgICAgICAgICAgIFdyaXRlLUpzb25PYmplY3QgJ3BsYW51bmcuanNvbicgJHBs
YW51bmcgfCBPdXQtTnVsbA0KICAgICAgICAgICAgICAgIHJldHVybiBAeyBnZWZ1bmRlbiA9ICR0
cnVlOyBhbHRlV2VydGUgPSAkYWx0ZVdlcnRlOyBwZXJzb25OYW1lID0gJHBlcnNvbk5hbWUgfQ0K
ICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICB9IGNhdGNoIHsNCiAgICAgICAgICAg
ICAgICAgICAgU2VuZC1FcnJvciAkUmVzcG9uc2UgKCJMb2NrLUZlaGxlcjogJF8iKSA1MDM7IGNv
bnRpbnVlDQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIGlmICgtbm90ICRwdXRS
ZXMuZ2VmdW5kZW4pIHsgU2VuZC1FcnJvciAkUmVzcG9uc2UgIlBlcnNvbiAkcGVyc29uSWQgbmlj
aHQgZ2VmdW5kZW4iIDQwNDsgY29udGludWUgfQ0KICAgICAgICAgICAgICAgICRhbHRlV2VydGUg
ID0gJHB1dFJlcy5hbHRlV2VydGUNCiAgICAgICAgICAgICAgICAkcGVyc29uTmFtZSA9ICRwdXRS
ZXMucGVyc29uTmFtZQ0KDQogICAgICAgICAgICAgICAgIyBEaWZmLURpY3Qg4oCUIG51ciBGZWxk
ZXIsIGluIGRlbmVuIHNpY2ggZGVyIFdlcnQgdGF0c2FlY2hsaWNoDQogICAgICAgICAgICAgICAg
IyBnZWFlbmRlcnQgaGF0LiBKU09OLXN0YWJpbGUgVmVyZ2xlaWNoc2Jhc2lzLg0KICAgICAgICAg
ICAgICAgICRnZWFlbmRlcnQgPSBbb3JkZXJlZF1Ae30NCiAgICAgICAgICAgICAgICBmb3JlYWNo
ICgkcHJvcCBpbiAkdXBkYXRlLlBTT2JqZWN0LlByb3BlcnRpZXMpIHsNCiAgICAgICAgICAgICAg
ICAgICAgaWYgKCRwcm9wLk5hbWUgLWVxICdpZCcpIHsgY29udGludWUgfQ0KICAgICAgICAgICAg
ICAgICAgICAkYWx0VmFsICA9ICRhbHRlV2VydGVbJHByb3AuTmFtZV0NCiAgICAgICAgICAgICAg
ICAgICAgJG5ldVZhbCAgPSAkcHJvcC5WYWx1ZQ0KICAgICAgICAgICAgICAgICAgICAkYWx0SnNv
biA9ICgkYWx0VmFsIHwgQ29udmVydFRvLUpzb24gLUNvbXByZXNzIC1EZXB0aCA4KQ0KICAgICAg
ICAgICAgICAgICAgICAkbmV1SnNvbiA9ICgkbmV1VmFsIHwgQ29udmVydFRvLUpzb24gLUNvbXBy
ZXNzIC1EZXB0aCA4KQ0KICAgICAgICAgICAgICAgICAgICBpZiAoJGFsdEpzb24gLW5lICRuZXVK
c29uKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAkZ2VhZW5kZXJ0WyRwcm9wLk5hbWVdID0g
W29yZGVyZWRdQHsgYWx0ID0gJGFsdFZhbDsgbmV1ID0gJG5ldVZhbCB9DQogICAgICAgICAgICAg
ICAgICAgIH0NCiAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICBXcml0ZS1Mb2dF
aW50cmFnICdwZXJzb24uZ2VhZW5kZXJ0JyAoW29yZGVyZWRdQHsNCiAgICAgICAgICAgICAgICAg
ICAgcGVyc29uSWQgID0gJHBlcnNvbklkDQogICAgICAgICAgICAgICAgICAgIG5hbWUgICAgICA9
ICRwZXJzb25OYW1lDQogICAgICAgICAgICAgICAgICAgIGdlYWVuZGVydCA9ICRnZWFlbmRlcnQN
CiAgICAgICAgICAgICAgICB9KQ0KICAgICAgICAgICAgICAgICMgSGlud2Vpcy1UcmlnZ2VyOiBJ
ZGVudGl0YWV0cy1BZW5kZXJ1bmcgKG53S2VubnVuZyAvIGVtYWlsKSBiZWtvbW10DQogICAgICAg
ICAgICAgICAgIyBlaW5lbiBJbi1BcHAtSGlud2VpcyBmdWVyIFNVICsgR2VzYW10dmVyYW50d29y
dGxpY2hlLiBQcm8gRmVsZCBlaW4NCiAgICAgICAgICAgICAgICAjIGVpZ2VuZXIgRWludHJhZywg
ZGFtaXQgZGFzIE1vZGFsIGxlc2JhciBibGVpYnQuDQogICAgICAgICAgICAgICAgZm9yZWFjaCAo
JGZlbGQgaW4gQCgnbndLZW5udW5nJywgJ2VtYWlsJykpIHsNCiAgICAgICAgICAgICAgICAgICAg
aWYgKCRnZWFlbmRlcnQuQ29udGFpbnMoJGZlbGQpKSB7DQogICAgICAgICAgICAgICAgICAgICAg
ICAkZGlmZiA9ICRnZWFlbmRlcnRbJGZlbGRdDQogICAgICAgICAgICAgICAgICAgICAgICBOZXct
SGlud2VpcyAnaWRlbnRpdGFldF9nZWFlbmRlcnQnIChbb3JkZXJlZF1Aew0KICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHBlcnNvbl9pZCAgID0gJHBlcnNvbklkDQogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgcGVyc29uX25hbWUgPSAkcGVyc29uTmFtZQ0KICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGZlbGQgICAgICAgID0gJGZlbGQNCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBhbHRlcl93ZXJ0ICA9ICIkKCRkaWZmLmFsdCkiDQogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgbmV1ZXJfd2VydCAgPSAiJCgkZGlmZi5uZXUpIg0KICAgICAgICAgICAgICAgICAgICAgICAg
fSkgKEdldC1Ba3R1ZWxsZXJCZW51dHplcikgfCBPdXQtTnVsbA0KICAgICAgICAgICAgICAgICAg
ICB9DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIFNlbmQtSnNvbk9iamVjdCAk
UmVzcG9uc2UgQHsgc3RhdHVzID0gJ2FrdHVhbGlzaWVydCcgfQ0KICAgICAgICAgICAgICAgIGNv
bnRpbnVlDQogICAgICAgICAgICB9DQogICAgICAgICAgICAjIERFTEVURSAvYXBpL3BlcnNvbmVu
L3tpZH0gICAgICAgICAgICAtPiBTb2Z0LURlbGV0ZSAoZ2Vsb2VzY2h0QW0gZ2VzZXR6dCwgUGVy
c29uIGJsZWlidCBpbSBEYXRlbnNhdHogZnVlciBQYXBpZXJrb3JiLVJ1ZWNraG9sdW5nKQ0KICAg
ICAgICAgICAgIyBERUxFVEUgL2FwaS9wZXJzb25lbi97aWR9P2VuZGd1ZWx0aWc9MSAtPiBIYXJk
LURlbGV0ZSAoUGVyc29uIGtvbXBsZXR0IGVudGZlcm5lbiwgRWludHJhZWdlL0tvbW1lbnRhcmUg
dmVyd2Fpc2VuKQ0KICAgICAgICAgICAgIyBWb3IgZGVtIFNvZnQtRGVsZXRlIHdlcmRlbiBpbSBz
ZWxiZW4gWnVnIGJlcmVpdHMgUGFwaWVya29yYi1FaW50cmFlZ2UgYXVmZ2VyYWV1bXQsIGRpZSBh
ZWx0ZXIgYWxzDQogICAgICAgICAgICAjIGFkbWluLnBhcGllcmtvcmJUYWdlQXVmYmV3YWhydW5n
IChEZWZhdWx0IDMwIFRhZ2UpIHNpbmQuIFNvIGJsZWlidCBkZXIgRGF0ZW5zYXR6IHNjaGxhbmss
IG9obmUNCiAgICAgICAgICAgICMgZWluZW4gc2VwYXJhdGVuIENyb24tSm9iIHp1IGJyYXVjaGVu
Lg0KICAgICAgICAgICAgaWYgKCRQYXRoIC1tYXRjaCAnXi9hcGkvcGVyc29uZW4vKFxkKykkJyAt
YW5kICRNZXRob2QgLWVxICdERUxFVEUnKSB7DQogICAgICAgICAgICAgICAgaWYgKC1ub3QgKFRl
c3QtSXN0QWRtaW4pKSB7IFNlbmQtRXJyb3IgJFJlc3BvbnNlICdLZWluZSBBZG1pbi1SZWNodGUn
IDQwMzsgY29udGludWUgfQ0KICAgICAgICAgICAgICAgICRwZXJzb25JZCA9IFtpbnRdJE1hdGNo
ZXNbMV0NCiAgICAgICAgICAgICAgICAkZW5kZ3VlbHRpZyA9ICRmYWxzZQ0KICAgICAgICAgICAg
ICAgIGlmICgkUmVxdWVzdC5VcmwuUXVlcnkpIHsNCiAgICAgICAgICAgICAgICAgICAgJHEgPSBb
U3lzdGVtLldlYi5IdHRwVXRpbGl0eV06OlBhcnNlUXVlcnlTdHJpbmcoJFJlcXVlc3QuVXJsLlF1
ZXJ5KQ0KICAgICAgICAgICAgICAgICAgICAkZW5kZ3VlbHRpZyA9IChbc3RyaW5nXSRxWydlbmRn
dWVsdGlnJ10pIC1lcSAnMScNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgJGRl
bFJlcyA9ICRudWxsDQogICAgICAgICAgICAgICAgdHJ5IHsNCiAgICAgICAgICAgICAgICAkZGVs
UmVzID0gSW52b2tlLVdpdGhGaWxlTG9jayAncGxhbnVuZy5qc29uJyB7DQogICAgICAgICAgICAg
ICAgJHBsYW51bmcgPSBSZWFkLUpzb25PYmplY3QgJ3BsYW51bmcuanNvbicNCiAgICAgICAgICAg
ICAgICAkYWRtaW4gICA9IFJlYWQtSnNvbk9iamVjdCAnYWRtaW4uanNvbicNCiAgICAgICAgICAg
ICAgICAkYXVmYmV3YWhydW5nID0gMzANCiAgICAgICAgICAgICAgICBpZiAoJGFkbWluIC1hbmQg
JGFkbWluLlBTT2JqZWN0LlByb3BlcnRpZXNbJ3BhcGllcmtvcmJUYWdlQXVmYmV3YWhydW5nJ10p
IHsNCiAgICAgICAgICAgICAgICAgICAgdHJ5IHsgJGF1ZmJld2FocnVuZyA9IFtpbnRdJGFkbWlu
LnBhcGllcmtvcmJUYWdlQXVmYmV3YWhydW5nIH0gY2F0Y2gge30NCiAgICAgICAgICAgICAgICB9
DQogICAgICAgICAgICAgICAgJGpldHp0ID0gKEdldC1EYXRlKS5Ub1N0cmluZygnbycpDQogICAg
ICAgICAgICAgICAgJHBlcnNvbk5hbWUgPSAnJw0KICAgICAgICAgICAgICAgICRnZWZ1bmRlbiA9
ICRmYWxzZQ0KICAgICAgICAgICAgICAgICRuZXVlUGVyc29uZW4gPSBAKCkNCiAgICAgICAgICAg
ICAgICBmb3JlYWNoICgkcCBpbiAkcGxhbnVuZy5wZXJzb25lbikgew0KICAgICAgICAgICAgICAg
ICAgICBpZiAoJHAuaWQgLWVxICRwZXJzb25JZCkgew0KICAgICAgICAgICAgICAgICAgICAgICAg
JGdlZnVuZGVuID0gJHRydWUNCiAgICAgICAgICAgICAgICAgICAgICAgICRwZXJzb25OYW1lID0g
KCgiJCgkcC52b3JuYW1lKSAkKCRwLm5hbWUpIikuVHJpbSgpKQ0KICAgICAgICAgICAgICAgICAg
ICAgICAgaWYgKCRlbmRndWVsdGlnKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBI
YXJkLURlbGV0ZTogdWViZXJzcHJpbmdlbiwgUGVyc29uIGZsaWVndCByYXVzDQogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgY29udGludWUNCiAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxz
ZSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCRwLlBTT2JqZWN0LlByb3BlcnRp
ZXNbJ2dlbG9lc2NodEFtJ10pIHsgJHAuZ2Vsb2VzY2h0QW0gPSAkamV0enQgfQ0KICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGVsc2UgeyAkcCB8IEFkZC1NZW1iZXIgLU5vdGVQcm9wZXJ0eU5h
bWUgJ2dlbG9lc2NodEFtJyAtTm90ZVByb3BlcnR5VmFsdWUgJGpldHp0IC1Gb3JjZSB9DQogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgJG5ldWVQZXJzb25lbiArPSAkcA0KICAgICAgICAgICAg
ICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICB9IGVsc2Ugew0KICAgICAgICAgICAg
ICAgICAgICAgICAgIyBBdXRvLVB1cmdlOiBTb2Z0LURlbGV0ZWQtUGVyc29uZW4sIGRlcmVuIGdl
bG9lc2NodEFtIGFlbHRlcg0KICAgICAgICAgICAgICAgICAgICAgICAgIyBhbHMgJGF1ZmJld2Fo
cnVuZyBUYWdlIGlzdCwgd2VyZGVuIGhpZXIgZW5kZ3VlbHRpZyBlbnRmZXJudC4NCiAgICAgICAg
ICAgICAgICAgICAgICAgICRwdXJnZSA9ICRmYWxzZQ0KICAgICAgICAgICAgICAgICAgICAgICAg
aWYgKCRwLlBTT2JqZWN0LlByb3BlcnRpZXNbJ2dlbG9lc2NodEFtJ10gLWFuZCAkcC5nZWxvZXNj
aHRBbSkgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyeSB7DQogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICRhbHRlciA9IFtkYXRldGltZV0kcC5nZWxvZXNjaHRBbQ0KICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoKE5ldy1UaW1lU3BhbiAtU3RhcnQgJGFs
dGVyIC1FbmQgKEdldC1EYXRlKSkuVG90YWxEYXlzIC1ndCAkYXVmYmV3YWhydW5nKSB7ICRwdXJn
ZSA9ICR0cnVlIH0NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGNhdGNoIHt9DQogICAg
ICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICBpZiAoLW5vdCAk
cHVyZ2UpIHsgJG5ldWVQZXJzb25lbiArPSAkcCB9DQogICAgICAgICAgICAgICAgICAgIH0NCiAg
ICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgaWYgKC1ub3QgJGdlZnVuZGVuKSB7IHJl
dHVybiBAeyBnZWZ1bmRlbiA9ICRmYWxzZSB9IH0NCiAgICAgICAgICAgICAgICAkcGxhbnVuZy5w
ZXJzb25lbiA9IFtvYmplY3RbXV1AKCRuZXVlUGVyc29uZW4pDQogICAgICAgICAgICAgICAgV3Jp
dGUtSnNvbk9iamVjdCAncGxhbnVuZy5qc29uJyAkcGxhbnVuZyB8IE91dC1OdWxsDQogICAgICAg
ICAgICAgICAgcmV0dXJuIEB7IGdlZnVuZGVuID0gJHRydWU7IHBlcnNvbk5hbWUgPSAkcGVyc29u
TmFtZTsgamV0enQgPSAkamV0enQgfQ0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAg
ICB9IGNhdGNoIHsNCiAgICAgICAgICAgICAgICAgICAgU2VuZC1FcnJvciAkUmVzcG9uc2UgKCJM
b2NrLUZlaGxlcjogJF8iKSA1MDM7IGNvbnRpbnVlDQogICAgICAgICAgICAgICAgfQ0KICAgICAg
ICAgICAgICAgIGlmICgtbm90ICRkZWxSZXMuZ2VmdW5kZW4pIHsgU2VuZC1FcnJvciAkUmVzcG9u
c2UgIlBlcnNvbiAkcGVyc29uSWQgbmljaHQgZ2VmdW5kZW4iIDQwNDsgY29udGludWUgfQ0KICAg
ICAgICAgICAgICAgICRwZXJzb25OYW1lID0gJGRlbFJlcy5wZXJzb25OYW1lDQogICAgICAgICAg
ICAgICAgJGpldHp0ID0gJGRlbFJlcy5qZXR6dA0KICAgICAgICAgICAgICAgIGlmICgkZW5kZ3Vl
bHRpZykgew0KICAgICAgICAgICAgICAgICAgICBXcml0ZS1Mb2dFaW50cmFnICdwZXJzb24uZW5k
Z3VlbHRpZy5nZWxvZXNjaHQnIEB7IHBlcnNvbklkID0gJHBlcnNvbklkOyBuYW1lID0gJHBlcnNv
bk5hbWUgfQ0KICAgICAgICAgICAgICAgIH0gZWxzZSB7DQogICAgICAgICAgICAgICAgICAgIFdy
aXRlLUxvZ0VpbnRyYWcgJ3BlcnNvbi5pbi5wYXBpZXJrb3JiJyBAeyBwZXJzb25JZCA9ICRwZXJz
b25JZDsgbmFtZSA9ICRwZXJzb25OYW1lOyBnZWxvZXNjaHRBbSA9ICRqZXR6dCB9DQogICAgICAg
ICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIFNlbmQtSnNvbk9iamVjdCAkUmVzcG9uc2UgQHsg
c3RhdHVzID0gJ2dlbG9lc2NodCc7IG1vZHVzID0gaWYgKCRlbmRndWVsdGlnKSB7ICdlbmRndWVs
dGlnJyB9IGVsc2UgeyAncGFwaWVya29yYicgfSB9DQogICAgICAgICAgICAgICAgY29udGludWUN
CiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGlmICgkUGF0aCAtZXEgJy9hcGkvcGVyc29uZW4v
cmVpaGVuZm9sZ2UnIC1hbmQgJE1ldGhvZCAtZXEgJ1BVVCcpIHsNCiAgICAgICAgICAgICAgICBp
ZiAoLW5vdCAoVGVzdC1Jc3RBZG1pbikpIHsgU2VuZC1FcnJvciAkUmVzcG9uc2UgJ0tlaW5lIEFk
bWluLVJlY2h0ZScgNDAzOyBjb250aW51ZSB9DQogICAgICAgICAgICAgICAgJGJvZHkgPSBSZWFk
LUJvZHkgJFJlcXVlc3QNCiAgICAgICAgICAgICAgICBpZiAoLW5vdCAkYm9keSkgeyBTZW5kLUVy
cm9yICRSZXNwb25zZSAnQW5mcmFnZSB6dSBncm9zcycgNDEzOyBjb250aW51ZSB9DQogICAgICAg
ICAgICAgICAgJHJlaWhlbmZvbGdlID0gJGJvZHkgfCBDb252ZXJ0RnJvbS1Kc29uDQogICAgICAg
ICAgICAgICAgdHJ5IHsNCiAgICAgICAgICAgICAgICAgICAgSW52b2tlLVdpdGhGaWxlTG9jayAn
cGxhbnVuZy5qc29uJyB7DQogICAgICAgICAgICAgICAgICAgICAgICAkcGxhbnVuZyA9IFJlYWQt
SnNvbk9iamVjdCAncGxhbnVuZy5qc29uJw0KICAgICAgICAgICAgICAgICAgICAgICAgZm9yZWFj
aCAoJHIgaW4gJHJlaWhlbmZvbGdlKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9y
ZWFjaCAoJHAgaW4gJHBsYW51bmcucGVyc29uZW4pIHsNCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgaWYgKCRwLmlkIC1lcSAkci5pZCkgew0KICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgaWYgKCRwLlBTT2JqZWN0LlByb3BlcnRpZXNbJ3Bvc2l0aW9uJ10pIHsgJHAu
cG9zaXRpb24gPSAkci5wb3NpdGlvbiB9DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBlbHNlIHsgJHAgfCBBZGQtTWVtYmVyIC1Ob3RlUHJvcGVydHlOYW1lICdwb3NpdGlvbicg
LU5vdGVQcm9wZXJ0eVZhbHVlICRyLnBvc2l0aW9uIC1Gb3JjZSB9DQogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBicmVhaw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICB9DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAg
ICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgV3JpdGUtSnNvbk9iamVjdCAncGxhbnVuZy5q
c29uJyAkcGxhbnVuZyB8IE91dC1OdWxsDQogICAgICAgICAgICAgICAgICAgIH0gfCBPdXQtTnVs
bA0KICAgICAgICAgICAgICAgIH0gY2F0Y2ggew0KICAgICAgICAgICAgICAgICAgICBTZW5kLUVy
cm9yICRSZXNwb25zZSAoIkxvY2stRmVobGVyOiAkXyIpIDUwMzsgY29udGludWUNCiAgICAgICAg
ICAgICAgICB9DQogICAgICAgICAgICAgICAgV3JpdGUtTG9nRWludHJhZyAncGVyc29uZW4ucmVp
aGVuZm9sZ2UuZ2VhZW5kZXJ0JyBAe30NCiAgICAgICAgICAgICAgICBTZW5kLUpzb25PYmplY3Qg
JFJlc3BvbnNlIEB7IHN0YXR1cyA9ICdha3R1YWxpc2llcnQnIH0NCiAgICAgICAgICAgICAgICBj
b250aW51ZQ0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAjID09PT09IEhJTldFSVNFIChJ
bi1BcHAtQmFubmVyL01vZGFsLVN5c3RlbSkgPT09PT0NCiAgICAgICAgICAgICMgR0VUICAvYXBp
L2hpbndlaXNlICAgICAgICAgICAgLT4gb2ZmZW5lIEhpbndlaXNlIGZ1ZXIgZGVuIGVpbmdlbG9n
Z3RlbiBVc2VyDQogICAgICAgICAgICAjIFBPU1QgL2FwaS9oaW53ZWlzZS97aWR9L2tlbm50bmlz
IC0+IEtlbm50bmlzbmFobWUgc2V0emVuDQogICAgICAgICAgICAjIEdFVCAgL2FwaS9oaW53ZWlz
ZS91ZWJlcnNpY2h0IC0+IFNVLW9ubHksIHZvbGxzdGFlbmRpZ2UgU2ljaHQgaW5rbC4gTGVzZS1T
dGF0dXMNCiAgICAgICAgICAgIGlmICgkUGF0aCAtZXEgJy9hcGkvaGlud2Vpc2UnIC1hbmQgJE1l
dGhvZCAtZXEgJ0dFVCcpIHsNCiAgICAgICAgICAgICAgICAjIEdhdGVkOiBudXIgRW1wZmFlbmdl
ciAoU1Ugb2RlciBHZXNhbXR2ZXJhbnR3b3J0bGljaCkgZHVlcmZlbiB1ZWJlcmhhdXB0IGZyYWdl
bg0KICAgICAgICAgICAgICAgICRyID0gR2V0LVJlY2h0ZQ0KICAgICAgICAgICAgICAgIGlmICgt
bm90ICgkci5pc3RTdXBlclVzZXIgLW9yICRyLmlzdEdlc2FtdHZlcmFudHdvcnRsaWNoKSkgew0K
ICAgICAgICAgICAgICAgICAgICBTZW5kLUpzb25PYmplY3QgJFJlc3BvbnNlIEB7IGhpbndlaXNl
ID0gQCgpIH0NCiAgICAgICAgICAgICAgICAgICAgY29udGludWUNCiAgICAgICAgICAgICAgICB9
DQogICAgICAgICAgICAgICAgSW52b2tlLUhpbndlaXNQcnVuaW5nDQogICAgICAgICAgICAgICAg
JGggPSBSZWFkLUpzb25PYmplY3QgJ2hpbndlaXNlLmpzb24nDQogICAgICAgICAgICAgICAgaWYg
KCRudWxsIC1lcSAkaCAtb3IgLW5vdCAkaC5QU09iamVjdC5Qcm9wZXJ0aWVzWydoaW53ZWlzZSdd
KSB7DQogICAgICAgICAgICAgICAgICAgIFNlbmQtSnNvbk9iamVjdCAkUmVzcG9uc2UgQHsgaGlu
d2Vpc2UgPSBAKCkgfQ0KICAgICAgICAgICAgICAgICAgICBjb250aW51ZQ0KICAgICAgICAgICAg
ICAgIH0NCiAgICAgICAgICAgICAgICAkb2ZmZW4gPSBAKCkNCiAgICAgICAgICAgICAgICBmb3Jl
YWNoICgkZWludHJhZyBpbiBAKCRoLmhpbndlaXNlKSkgew0KICAgICAgICAgICAgICAgICAgICAk
aXN0RW1wZmFlbmdlciA9ICRmYWxzZQ0KICAgICAgICAgICAgICAgICAgICAkaXN0R2VsZXNlbiAg
ICA9ICRmYWxzZQ0KICAgICAgICAgICAgICAgICAgICBmb3JlYWNoICgkcCBpbiAkZWludHJhZy5r
ZW5udG5pc25haG1lbi5QU09iamVjdC5Qcm9wZXJ0aWVzKSB7DQogICAgICAgICAgICAgICAgICAg
ICAgICBpZiAoVGVzdC1NYXRjaEtlbm51bmcgKFtzdHJpbmddJHAuTmFtZSkpIHsNCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAkaXN0RW1wZmFlbmdlciA9ICR0cnVlDQogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgaWYgKCRudWxsIC1uZSAkcC5WYWx1ZSkgeyAkaXN0R2VsZXNlbiA9ICR0
cnVlIH0NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhaw0KICAgICAgICAgICAgICAg
ICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIGlm
ICgkaXN0RW1wZmFlbmdlciAtYW5kIC1ub3QgJGlzdEdlbGVzZW4pIHsgJG9mZmVuICs9ICRlaW50
cmFnIH0NCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgU2VuZC1Kc29uT2JqZWN0
ICRSZXNwb25zZSBAeyBoaW53ZWlzZSA9IFtvYmplY3RbXV0kb2ZmZW4gfQ0KICAgICAgICAgICAg
ICAgIGNvbnRpbnVlDQogICAgICAgICAgICB9DQogICAgICAgICAgICBpZiAoJFBhdGggLW1hdGNo
ICdeL2FwaS9oaW53ZWlzZS8oXGQrKS9rZW5udG5pcyQnIC1hbmQgJE1ldGhvZCAtZXEgJ1BPU1Qn
KSB7DQogICAgICAgICAgICAgICAgJGhpbndlaXNJZCA9IFtpbnRdJE1hdGNoZXNbMV0NCiAgICAg
ICAgICAgICAgICAkciA9IEdldC1SZWNodGUNCiAgICAgICAgICAgICAgICBpZiAoLW5vdCAoJHIu
aXN0U3VwZXJVc2VyIC1vciAkci5pc3RHZXNhbXR2ZXJhbnR3b3J0bGljaCkpIHsNCiAgICAgICAg
ICAgICAgICAgICAgU2VuZC1FcnJvciAkUmVzcG9uc2UgJ0tlaW5lIEJlcmVjaHRpZ3VuZycgNDAz
OyBjb250aW51ZQ0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAkc2NyaXB0Omhp
bndlaXNLZW5udG5pc0dlc2V0enQgPSAkZmFsc2UNCiAgICAgICAgICAgICAgICAkc2NyaXB0Omhp
bndlaXNLZW5udG5pc1R5cCA9ICRudWxsDQogICAgICAgICAgICAgICAgSW52b2tlLVdpdGhGaWxl
TG9jayAnaGlud2Vpc2UuanNvbicgew0KICAgICAgICAgICAgICAgICAgICAkaCA9IFJlYWQtSnNv
bk9iamVjdCAnaGlud2Vpc2UuanNvbicNCiAgICAgICAgICAgICAgICAgICAgaWYgKCRudWxsIC1l
cSAkaCAtb3IgLW5vdCAkaC5QU09iamVjdC5Qcm9wZXJ0aWVzWydoaW53ZWlzZSddKSB7IHJldHVy
biB9DQogICAgICAgICAgICAgICAgICAgIGZvcmVhY2ggKCRlaW50cmFnIGluIEAoJGguaGlud2Vp
c2UpKSB7DQogICAgICAgICAgICAgICAgICAgICAgICBpZiAoW2ludF0kZWludHJhZy5pZCAtbmUg
JGhpbndlaXNJZCkgeyBjb250aW51ZSB9DQogICAgICAgICAgICAgICAgICAgICAgICAjIEVyc3Qg
ZGVuIE1hdGNoLVNsb3QgZXJtaXR0ZWxuLCBkYW5uIGF1c3NlcmhhbGIgZGVyDQogICAgICAgICAg
ICAgICAgICAgICAgICAjIFByb3BlcnR5LUVudW1lcmF0aW9uIGluLXBsYWNlIHNldHplbiAoUFMg
NS4xIG1hZyBkYXMNCiAgICAgICAgICAgICAgICAgICAgICAgICMgTW9kaWZpemllcmVuIHdhZWhy
ZW5kIGZvcmVhY2ggbmljaHQgaW1tZXIpLg0KICAgICAgICAgICAgICAgICAgICAgICAgJG1hdGNo
TmFtZSA9ICRudWxsDQogICAgICAgICAgICAgICAgICAgICAgICBmb3JlYWNoICgkcCBpbiAkZWlu
dHJhZy5rZW5udG5pc25haG1lbi5QU09iamVjdC5Qcm9wZXJ0aWVzKSB7DQogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgaWYgKFRlc3QtTWF0Y2hLZW5udW5nIChbc3RyaW5nXSRwLk5hbWUpKSB7
ICRtYXRjaE5hbWUgPSAkcC5OYW1lOyBicmVhayB9DQogICAgICAgICAgICAgICAgICAgICAgICB9
DQogICAgICAgICAgICAgICAgICAgICAgICBpZiAoJG1hdGNoTmFtZSkgew0KICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICR0cyA9IChHZXQtRGF0ZSkuVG9Vbml2ZXJzYWxUaW1lKCkuVG9TdHJp
bmcoJ3l5eXktTU0tZGRUSEg6bW06c3NaJykNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAk
ZWludHJhZy5rZW5udG5pc25haG1lbiB8IEFkZC1NZW1iZXIgLU5vdGVQcm9wZXJ0eU5hbWUgJG1h
dGNoTmFtZSAtTm90ZVByb3BlcnR5VmFsdWUgJHRzIC1Gb3JjZQ0KICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICRzY3JpcHQ6aGlud2Vpc0tlbm50bmlzR2VzZXR6dCA9ICR0cnVlDQogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgaWYgKCRlaW50cmFnLlBTT2JqZWN0LlByb3BlcnRpZXNbJ3R5
cCddKSB7ICRzY3JpcHQ6aGlud2Vpc0tlbm50bmlzVHlwID0gW3N0cmluZ10kZWludHJhZy50eXAg
fQ0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgYnJl
YWsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICBpZiAoJHNjcmlw
dDpoaW53ZWlzS2VubnRuaXNHZXNldHp0KSB7DQogICAgICAgICAgICAgICAgICAgICAgICBXcml0
ZS1Kc29uT2JqZWN0ICdoaW53ZWlzZS5qc29uJyAkaCB8IE91dC1OdWxsDQogICAgICAgICAgICAg
ICAgICAgIH0NCiAgICAgICAgICAgICAgICB9IHwgT3V0LU51bGwNCiAgICAgICAgICAgICAgICAk
Z2VzZXR6dCA9IFtib29sXSRzY3JpcHQ6aGlud2Vpc0tlbm50bmlzR2VzZXR6dA0KICAgICAgICAg
ICAgICAgICRrZW5udG5pc1R5cCA9ICRzY3JpcHQ6aGlud2Vpc0tlbm50bmlzVHlwDQogICAgICAg
ICAgICAgICAgJHNjcmlwdDpoaW53ZWlzS2VubnRuaXNHZXNldHp0ID0gJGZhbHNlDQogICAgICAg
ICAgICAgICAgJHNjcmlwdDpoaW53ZWlzS2VubnRuaXNUeXAgPSAkbnVsbA0KICAgICAgICAgICAg
ICAgIGlmICgtbm90ICRnZXNldHp0KSB7DQogICAgICAgICAgICAgICAgICAgIFNlbmQtRXJyb3Ig
JFJlc3BvbnNlICJIaW53ZWlzICRoaW53ZWlzSWQgbmljaHQgZ2VmdW5kZW4gb2RlciBuaWNodCBm
dWVyIFNpZSBiZXN0aW1tdCIgNDA0OyBjb250aW51ZQ0KICAgICAgICAgICAgICAgIH0NCiAgICAg
ICAgICAgICAgICAkbG9nRmVsZGVyID0gQHsgaGlud2Vpc0lkID0gJGhpbndlaXNJZCB9DQogICAg
ICAgICAgICAgICAgaWYgKCRrZW5udG5pc1R5cCkgeyAkbG9nRmVsZGVyWyd0eXAnXSA9ICRrZW5u
dG5pc1R5cCB9DQogICAgICAgICAgICAgICAgV3JpdGUtTG9nRWludHJhZyAnaGlud2Vpcy5rZW5u
dG5pcycgJGxvZ0ZlbGRlcg0KICAgICAgICAgICAgICAgIFNlbmQtSnNvbk9iamVjdCAkUmVzcG9u
c2UgQHsgc3RhdHVzID0gJ2tlbm50bmlzX2dlc2V0enQnIH0NCiAgICAgICAgICAgICAgICBjb250
aW51ZQ0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgaWYgKCRQYXRoIC1lcSAnL2FwaS9oaW53
ZWlzZS91ZWJlcnNpY2h0JyAtYW5kICRNZXRob2QgLWVxICdHRVQnKSB7DQogICAgICAgICAgICAg
ICAgaWYgKC1ub3QgKFRlc3QtSXN0U3VwZXJVc2VyKSkgeyBTZW5kLUVycm9yICRSZXNwb25zZSAn
TnVyIFN1cGVyVXNlcicgNDAzOyBjb250aW51ZSB9DQogICAgICAgICAgICAgICAgSW52b2tlLUhp
bndlaXNQcnVuaW5nDQogICAgICAgICAgICAgICAgJGggPSBSZWFkLUpzb25PYmplY3QgJ2hpbndl
aXNlLmpzb24nDQogICAgICAgICAgICAgICAgaWYgKCRudWxsIC1lcSAkaCAtb3IgLW5vdCAkaC5Q
U09iamVjdC5Qcm9wZXJ0aWVzWydoaW53ZWlzZSddKSB7DQogICAgICAgICAgICAgICAgICAgIFNl
bmQtSnNvbk9iamVjdCAkUmVzcG9uc2UgQHsgaGlud2Vpc2UgPSBAKCkgfQ0KICAgICAgICAgICAg
ICAgICAgICBjb250aW51ZQ0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBTZW5k
LUpzb25PYmplY3QgJFJlc3BvbnNlIEB7IGhpbndlaXNlID0gW29iamVjdFtdXUAoJGguaGlud2Vp
c2UpIH0NCiAgICAgICAgICAgICAgICBjb250aW51ZQ0KICAgICAgICAgICAgfQ0KDQogICAgICAg
ICAgICAjID09PT09IE1JVFRFSUxVTkdFTiAoU3ByaW50IEQtM2IsIDIwMjYtMDUtMjkpID09PT09
DQogICAgICAgICAgICAjIFZvbSBTVSBtYW51ZWxsIGdlcGZsZWd0ZXMgSGlud2Vpcy1Nb2RhbC1T
eXN0ZW0gKHNlcGFyYXQgdm9uDQogICAgICAgICAgICAjIC9hcGkvaGlud2Vpc2UsIGRhcyBpc3Qg
bnVyIGZ1ZXIgU3lzdGVtLUVyZWlnbmlzc2UgU1UvR1YpLg0KICAgICAgICAgICAgIyBTY2hlbWEg
KyBGaWx0ZXJ1bmctTG9naWsgZ2VzcGllZ2VsdCBhdXMgZGV2L3NlcnZlci5weToNCiAgICAgICAg
ICAgICMgICBfbWl0dGVpbHVuZ2VuX2Z1ZXJfYWt0dWVsbGVuX3VzZXIoKSBiencuIF9wZXJzb25f
YXVzX3BpZCgpLg0KICAgICAgICAgICAgaWYgKCRQYXRoIC1lcSAnL2FwaS9taXR0ZWlsdW5nZW4n
IC1hbmQgJE1ldGhvZCAtZXEgJ0dFVCcpIHsNCiAgICAgICAgICAgICAgICBTZW5kLUpzb25PYmpl
Y3QgJFJlc3BvbnNlIEB7IG1pdHRlaWx1bmdlbiA9IChHZXQtTWl0dGVpbHVuZ2VuRnVlckFrdHVl
bGxlblVzZXIpIH0NCiAgICAgICAgICAgICAgICBjb250aW51ZQ0KICAgICAgICAgICAgfQ0KICAg
ICAgICAgICAgaWYgKCRQYXRoIC1lcSAnL2FwaS9taXR0ZWlsdW5nZW4vYWxsZScgLWFuZCAkTWV0
aG9kIC1lcSAnR0VUJykgew0KICAgICAgICAgICAgICAgIGlmICgtbm90IChUZXN0LUlzdFN1cGVy
VXNlcikpIHsgU2VuZC1FcnJvciAkUmVzcG9uc2UgJ051ciBTdXBlclVzZXInIDQwMzsgY29udGlu
dWUgfQ0KICAgICAgICAgICAgICAgICRtID0gUmVhZC1Kc29uT2JqZWN0ICdtaXR0ZWlsdW5nZW4u
anNvbicNCiAgICAgICAgICAgICAgICAkbGlzdGUgPSBAKCkNCiAgICAgICAgICAgICAgICBpZiAo
JG51bGwgLW5lICRtIC1hbmQgJG0uUFNPYmplY3QuUHJvcGVydGllc1snbWl0dGVpbHVuZ2VuJ10p
IHsNCiAgICAgICAgICAgICAgICAgICAgJGxpc3RlID0gQCgkbS5taXR0ZWlsdW5nZW4pDQogICAg
ICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIFNlbmQtSnNvbk9iamVjdCAkUmVzcG9uc2Ug
QHsgbWl0dGVpbHVuZ2VuID0gW29iamVjdFtdXSRsaXN0ZSB9DQogICAgICAgICAgICAgICAgY29u
dGludWUNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGlmICgkUGF0aCAtZXEgJy9hcGkvbWl0
dGVpbHVuZ2VuJyAtYW5kICRNZXRob2QgLWVxICdQT1NUJykgew0KICAgICAgICAgICAgICAgIGlm
ICgtbm90IChUZXN0LUlzdFN1cGVyVXNlcikpIHsgU2VuZC1FcnJvciAkUmVzcG9uc2UgJ051ciBT
dXBlclVzZXIgZHVlcmZlbiBNaXR0ZWlsdW5nZW4gYW5sZWdlbicgNDAzOyBjb250aW51ZSB9DQog
ICAgICAgICAgICAgICAgJHJhdyA9IFJlYWQtQm9keSAkUmVxdWVzdA0KICAgICAgICAgICAgICAg
IGlmICgtbm90ICRyYXcpIHsgU2VuZC1FcnJvciAkUmVzcG9uc2UgJ0JvZHkgZmVobHQnIDQwMDsg
Y29udGludWUgfQ0KICAgICAgICAgICAgICAgIHRyeSB7ICRib2R5ID0gJHJhdyB8IENvbnZlcnRG
cm9tLUpzb24gfSBjYXRjaCB7IFNlbmQtRXJyb3IgJFJlc3BvbnNlICdVbmd1ZWx0aWdlcyBKU09O
JyA0MDA7IGNvbnRpbnVlIH0NCiAgICAgICAgICAgICAgICAjIFNlcnZlci1zZWl0aWdlIFNhbml0
aXNpZXJ1bmcgKFN0b3JlZC1YU1MpOiB0aXRlbCArIHRleHQgd2VyZGVuDQogICAgICAgICAgICAg
ICAgIyBpbSBDbGllbnQgdmlhIGlubmVySFRNTCBnZXJlbmRlcnQuDQogICAgICAgICAgICAgICAg
JHRpdGVsID0gQ29udmVydFRvLVNhZmVSaWNoSHRtbCAoKFtzdHJpbmddKCRib2R5LnRpdGVsKSku
VHJpbSgpKQ0KICAgICAgICAgICAgICAgICR0ZXh0ICA9IENvbnZlcnRUby1TYWZlUmljaEh0bWwg
KChbc3RyaW5nXSgkYm9keS50ZXh0KSkuVHJpbSgpKQ0KICAgICAgICAgICAgICAgIGlmICgtbm90
ICR0aXRlbCkgeyBTZW5kLUVycm9yICRSZXNwb25zZSAnVGl0ZWwgaXN0IFBmbGljaHRmZWxkJyA0
MDA7IGNvbnRpbnVlIH0NCiAgICAgICAgICAgICAgICBpZiAoLW5vdCAkdGV4dCkgIHsgU2VuZC1F
cnJvciAkUmVzcG9uc2UgJ1RleHQgaXN0IFBmbGljaHRmZWxkJyAgNDAwOyBjb250aW51ZSB9DQog
ICAgICAgICAgICAgICAgJHJhbmQgPSAtam9pbiAoKDQ4Li41NykgKyAoOTcuLjEyMikgfCBHZXQt
UmFuZG9tIC1Db3VudCA2IHwgRm9yRWFjaC1PYmplY3QgeyBbY2hhcl0kXyB9KQ0KICAgICAgICAg
ICAgICAgICRtcyA9IFtpbnQ2NF0oW0RhdGVUaW1lT2Zmc2V0XTo6VXRjTm93LlRvVW5peFRpbWVN
aWxsaXNlY29uZHMoKSkNCiAgICAgICAgICAgICAgICAkbmV1ZUlkID0gIm1fJHttc31fJHtyYW5k
fSINCiAgICAgICAgICAgICAgICAkZW1wZkRlZmF1bHQgPSBbcHNjdXN0b21vYmplY3RdQHsNCiAg
ICAgICAgICAgICAgICAgICAgYWxsZSA9ICR0cnVlOyBwZXJzb25lbiA9IEAoKTsgZ3J1cHBlbiA9
IEAoKTsgcm9sbGVuID0gQCgpDQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICRl
bXBmID0gaWYgKCRib2R5LlBTT2JqZWN0LlByb3BlcnRpZXNbJ2VtcGZhZW5nZXInXSkgeyAkYm9k
eS5lbXBmYWVuZ2VyIH0gZWxzZSB7ICRlbXBmRGVmYXVsdCB9DQogICAgICAgICAgICAgICAgJG5l
dSA9IFtwc2N1c3RvbW9iamVjdF1Aew0KICAgICAgICAgICAgICAgICAgICBpZCAgICAgICAgICAg
PSAkbmV1ZUlkDQogICAgICAgICAgICAgICAgICAgIHRpdGVsICAgICAgICA9ICR0aXRlbA0KICAg
ICAgICAgICAgICAgICAgICB0ZXh0ICAgICAgICAgPSAkdGV4dA0KICAgICAgICAgICAgICAgICAg
ICB0aHVtYm5haWwgICAgPSBpZiAoJGJvZHkuUFNPYmplY3QuUHJvcGVydGllc1sndGh1bWJuYWls
J10pIHsgJGJvZHkudGh1bWJuYWlsIH0gZWxzZSB7ICRudWxsIH0NCiAgICAgICAgICAgICAgICAg
ICAgcGRmICAgICAgICAgID0gaWYgKCRib2R5LlBTT2JqZWN0LlByb3BlcnRpZXNbJ3BkZiddKSAg
ICAgICB7ICRib2R5LnBkZiB9ICAgICAgIGVsc2UgeyAkbnVsbCB9DQogICAgICAgICAgICAgICAg
ICAgIHRyaWdnZXIgICAgICA9IGlmICgkYm9keS5QU09iamVjdC5Qcm9wZXJ0aWVzWyd0cmlnZ2Vy
J10gLWFuZCAkYm9keS50cmlnZ2VyKSB7IFtzdHJpbmddJGJvZHkudHJpZ2dlciB9IGVsc2UgeyAn
ZWlubWFsJyB9DQogICAgICAgICAgICAgICAgICAgIGJpc0RhdHVtICAgICA9IGlmICgkYm9keS5Q
U09iamVjdC5Qcm9wZXJ0aWVzWydiaXNEYXR1bSddKSAgeyAkYm9keS5iaXNEYXR1bSB9ICBlbHNl
IHsgJG51bGwgfQ0KICAgICAgICAgICAgICAgICAgICBlbXBmYWVuZ2VyICAgPSAkZW1wZg0KICAg
ICAgICAgICAgICAgICAgICBlcnN0ZWxsdEFtICAgPSAoR2V0LURhdGUpLlRvVW5pdmVyc2FsVGlt
ZSgpLlRvU3RyaW5nKCd5eXl5LU1NLWRkVEhIOm1tOnNzWicpDQogICAgICAgICAgICAgICAgICAg
IGVyc3RlbGx0Vm9uICA9IChHZXQtQWt0dWVsbGVyQmVudXR6ZXIpDQogICAgICAgICAgICAgICAg
ICAgIGdlYWVuZGVydEFtICA9ICRudWxsDQogICAgICAgICAgICAgICAgICAgIGdlYWVuZGVydFZv
biA9ICRudWxsDQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIEludm9rZS1XaXRo
RmlsZUxvY2sgJ21pdHRlaWx1bmdlbi5qc29uJyB7DQogICAgICAgICAgICAgICAgICAgICRtID0g
UmVhZC1Kc29uT2JqZWN0ICdtaXR0ZWlsdW5nZW4uanNvbicNCiAgICAgICAgICAgICAgICAgICAg
aWYgKCRudWxsIC1lcSAkbSkgeyAkbSA9IFtwc2N1c3RvbW9iamVjdF1AeyBtaXR0ZWlsdW5nZW4g
PSBAKCk7IGdlbGVzZW4gPSBbcHNjdXN0b21vYmplY3RdQHt9IH0gfQ0KICAgICAgICAgICAgICAg
ICAgICBpZiAoLW5vdCAkbS5QU09iamVjdC5Qcm9wZXJ0aWVzWydtaXR0ZWlsdW5nZW4nXSkgew0K
ICAgICAgICAgICAgICAgICAgICAgICAgJG0gfCBBZGQtTWVtYmVyIC1Ob3RlUHJvcGVydHlOYW1l
IG1pdHRlaWx1bmdlbiAtTm90ZVByb3BlcnR5VmFsdWUgQCgpIC1Gb3JjZQ0KICAgICAgICAgICAg
ICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIGlmICgtbm90ICRtLlBTT2JqZWN0LlByb3Bl
cnRpZXNbJ2dlbGVzZW4nXSkgew0KICAgICAgICAgICAgICAgICAgICAgICAgJG0gfCBBZGQtTWVt
YmVyIC1Ob3RlUHJvcGVydHlOYW1lIGdlbGVzZW4gLU5vdGVQcm9wZXJ0eVZhbHVlIChbcHNjdXN0
b21vYmplY3RdQHt9KSAtRm9yY2UNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAg
ICAgICAgICAjIG5ldWVzdGUgb2Jlbg0KICAgICAgICAgICAgICAgICAgICAkbS5taXR0ZWlsdW5n
ZW4gPSBAKCRuZXUpICsgQCgkbS5taXR0ZWlsdW5nZW4pDQogICAgICAgICAgICAgICAgICAgIFdy
aXRlLUpzb25PYmplY3QgJ21pdHRlaWx1bmdlbi5qc29uJyAkbSB8IE91dC1OdWxsDQogICAgICAg
ICAgICAgICAgfSB8IE91dC1OdWxsDQogICAgICAgICAgICAgICAgV3JpdGUtTG9nRWludHJhZyAn
bWl0dGVpbHVuZy5hbmdlbGVndCcgQHsgaWQgPSAkbmV1ZUlkOyB0aXRlbCA9ICR0aXRlbCB9DQog
ICAgICAgICAgICAgICAgU2VuZC1Kc29uT2JqZWN0ICRSZXNwb25zZSBAeyBzdGF0dXMgPSAnYW5n
ZWxlZ3QnOyBtaXR0ZWlsdW5nID0gJG5ldSB9DQogICAgICAgICAgICAgICAgY29udGludWUNCiAg
ICAgICAgICAgIH0NCiAgICAgICAgICAgIGlmICgkUGF0aCAtbWF0Y2ggJ14vYXBpL21pdHRlaWx1
bmdlbi8oW1x3LV0rKSQnIC1hbmQgJE1ldGhvZCAtZXEgJ1BVVCcpIHsNCiAgICAgICAgICAgICAg
ICBpZiAoLW5vdCAoVGVzdC1Jc3RTdXBlclVzZXIpKSB7IFNlbmQtRXJyb3IgJFJlc3BvbnNlICdO
dXIgU3VwZXJVc2VyJyA0MDM7IGNvbnRpbnVlIH0NCiAgICAgICAgICAgICAgICAkbWlkID0gJE1h
dGNoZXNbMV0NCiAgICAgICAgICAgICAgICAkcmF3ID0gUmVhZC1Cb2R5ICRSZXF1ZXN0DQogICAg
ICAgICAgICAgICAgaWYgKC1ub3QgJHJhdykgeyBTZW5kLUVycm9yICRSZXNwb25zZSAnQm9keSBm
ZWhsdCcgNDAwOyBjb250aW51ZSB9DQogICAgICAgICAgICAgICAgdHJ5IHsgJGJvZHkgPSAkcmF3
IHwgQ29udmVydEZyb20tSnNvbiB9IGNhdGNoIHsgU2VuZC1FcnJvciAkUmVzcG9uc2UgJ1VuZ3Vl
bHRpZ2VzIEpTT04nIDQwMDsgY29udGludWUgfQ0KICAgICAgICAgICAgICAgICRzY3JpcHQ6bWl0
dGVpbHVuZ0dlZnVuZGVuID0gJGZhbHNlDQogICAgICAgICAgICAgICAgJHNjcmlwdDptaXR0ZWls
dW5nWmllbCA9ICRudWxsDQogICAgICAgICAgICAgICAgSW52b2tlLVdpdGhGaWxlTG9jayAnbWl0
dGVpbHVuZ2VuLmpzb24nIHsNCiAgICAgICAgICAgICAgICAgICAgJG0gPSBSZWFkLUpzb25PYmpl
Y3QgJ21pdHRlaWx1bmdlbi5qc29uJw0KICAgICAgICAgICAgICAgICAgICBpZiAoJG51bGwgLWVx
ICRtIC1vciAtbm90ICRtLlBTT2JqZWN0LlByb3BlcnRpZXNbJ21pdHRlaWx1bmdlbiddKSB7IHJl
dHVybiB9DQogICAgICAgICAgICAgICAgICAgIGZvcmVhY2ggKCRlaW50cmFnIGluIEAoJG0ubWl0
dGVpbHVuZ2VuKSkgew0KICAgICAgICAgICAgICAgICAgICAgICAgaWYgKFtzdHJpbmddJGVpbnRy
YWcuaWQgLW5lICRtaWQpIHsgY29udGludWUgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgZm9y
ZWFjaCAoJGZlbGQgaW4gJ3RpdGVsJywndGV4dCcsJ3RodW1ibmFpbCcsJ3BkZicsJ3RyaWdnZXIn
LCdiaXNEYXR1bScsJ2VtcGZhZW5nZXInKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAg
aWYgKCRib2R5LlBTT2JqZWN0LlByb3BlcnRpZXNbJGZlbGRdKSB7DQogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICR3ZXJ0ID0gJGJvZHkuJGZlbGQNCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgaWYgKCgkZmVsZCAtZXEgJ3RpdGVsJyAtb3IgJGZlbGQgLWVxICd0ZXh0Jykg
LWFuZCAoJHdlcnQgLWlzIFtzdHJpbmddKSkgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgJHdlcnQgPSBDb252ZXJ0VG8tU2FmZVJpY2hIdG1sICR3ZXJ0DQogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
JGVpbnRyYWcgfCBBZGQtTWVtYmVyIC1Ob3RlUHJvcGVydHlOYW1lICRmZWxkIC1Ob3RlUHJvcGVy
dHlWYWx1ZSAkd2VydCAtRm9yY2UNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9DQogICAg
ICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICAkZWludHJhZyB8
IEFkZC1NZW1iZXIgLU5vdGVQcm9wZXJ0eU5hbWUgZ2VhZW5kZXJ0QW0gIC1Ob3RlUHJvcGVydHlW
YWx1ZSAoKEdldC1EYXRlKS5Ub1VuaXZlcnNhbFRpbWUoKS5Ub1N0cmluZygneXl5eS1NTS1kZFRI
SDptbTpzc1onKSkgLUZvcmNlDQogICAgICAgICAgICAgICAgICAgICAgICAkZWludHJhZyB8IEFk
ZC1NZW1iZXIgLU5vdGVQcm9wZXJ0eU5hbWUgZ2VhZW5kZXJ0Vm9uIC1Ob3RlUHJvcGVydHlWYWx1
ZSAoR2V0LUFrdHVlbGxlckJlbnV0emVyKSAtRm9yY2UNCiAgICAgICAgICAgICAgICAgICAgICAg
ICRzY3JpcHQ6bWl0dGVpbHVuZ0dlZnVuZGVuID0gJHRydWUNCiAgICAgICAgICAgICAgICAgICAg
ICAgICRzY3JpcHQ6bWl0dGVpbHVuZ1ppZWwgPSAkZWludHJhZw0KICAgICAgICAgICAgICAgICAg
ICAgICAgYnJlYWsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICBp
ZiAoJHNjcmlwdDptaXR0ZWlsdW5nR2VmdW5kZW4pIHsgV3JpdGUtSnNvbk9iamVjdCAnbWl0dGVp
bHVuZ2VuLmpzb24nICRtIHwgT3V0LU51bGwgfQ0KICAgICAgICAgICAgICAgIH0gfCBPdXQtTnVs
bA0KICAgICAgICAgICAgICAgIGlmICgtbm90ICRzY3JpcHQ6bWl0dGVpbHVuZ0dlZnVuZGVuKSB7
DQogICAgICAgICAgICAgICAgICAgIFNlbmQtRXJyb3IgJFJlc3BvbnNlICJNaXR0ZWlsdW5nICRt
aWQgbmljaHQgZ2VmdW5kZW4iIDQwNDsgY29udGludWUNCiAgICAgICAgICAgICAgICB9DQogICAg
ICAgICAgICAgICAgJHppZWwgPSAkc2NyaXB0Om1pdHRlaWx1bmdaaWVsDQogICAgICAgICAgICAg
ICAgJHNjcmlwdDptaXR0ZWlsdW5nR2VmdW5kZW4gPSAkZmFsc2U7ICRzY3JpcHQ6bWl0dGVpbHVu
Z1ppZWwgPSAkbnVsbA0KICAgICAgICAgICAgICAgIFdyaXRlLUxvZ0VpbnRyYWcgJ21pdHRlaWx1
bmcuZ2VhZW5kZXJ0JyBAeyBpZCA9ICRtaWQgfQ0KICAgICAgICAgICAgICAgIFNlbmQtSnNvbk9i
amVjdCAkUmVzcG9uc2UgQHsgc3RhdHVzID0gJ2dlYWVuZGVydCc7IG1pdHRlaWx1bmcgPSAkemll
bCB9DQogICAgICAgICAgICAgICAgY29udGludWUNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAg
IGlmICgkUGF0aCAtbWF0Y2ggJ14vYXBpL21pdHRlaWx1bmdlbi8oW1x3LV0rKSQnIC1hbmQgJE1l
dGhvZCAtZXEgJ0RFTEVURScpIHsNCiAgICAgICAgICAgICAgICBpZiAoLW5vdCAoVGVzdC1Jc3RT
dXBlclVzZXIpKSB7IFNlbmQtRXJyb3IgJFJlc3BvbnNlICdOdXIgU3VwZXJVc2VyJyA0MDM7IGNv
bnRpbnVlIH0NCiAgICAgICAgICAgICAgICAkbWlkID0gJE1hdGNoZXNbMV0NCiAgICAgICAgICAg
ICAgICAkc2NyaXB0Om1pdHRlaWx1bmdHZWxvZXNjaHQgPSAkZmFsc2UNCiAgICAgICAgICAgICAg
ICBJbnZva2UtV2l0aEZpbGVMb2NrICdtaXR0ZWlsdW5nZW4uanNvbicgew0KICAgICAgICAgICAg
ICAgICAgICAkbSA9IFJlYWQtSnNvbk9iamVjdCAnbWl0dGVpbHVuZ2VuLmpzb24nDQogICAgICAg
ICAgICAgICAgICAgIGlmICgkbnVsbCAtZXEgJG0gLW9yIC1ub3QgJG0uUFNPYmplY3QuUHJvcGVy
dGllc1snbWl0dGVpbHVuZ2VuJ10pIHsgcmV0dXJuIH0NCiAgICAgICAgICAgICAgICAgICAgJHZv
cmhlciA9IEAoJG0ubWl0dGVpbHVuZ2VuKQ0KICAgICAgICAgICAgICAgICAgICAkbmFjaGhlciA9
IEAoJHZvcmhlciB8IFdoZXJlLU9iamVjdCB7IFtzdHJpbmddJF8uaWQgLW5lICRtaWQgfSkNCiAg
ICAgICAgICAgICAgICAgICAgaWYgKCR2b3JoZXIuQ291bnQgLWVxICRuYWNoaGVyLkNvdW50KSB7
IHJldHVybiB9DQogICAgICAgICAgICAgICAgICAgICRtLm1pdHRlaWx1bmdlbiA9ICRuYWNoaGVy
DQogICAgICAgICAgICAgICAgICAgICMgZ2VsZXNlbi1FaW50cmFlZ2UgZnVlciBkaWVzZSBNaXR0
ZWlsdW5nIGF1ZnJhZXVtZW4NCiAgICAgICAgICAgICAgICAgICAgaWYgKCRtLlBTT2JqZWN0LlBy
b3BlcnRpZXNbJ2dlbGVzZW4nXSkgew0KICAgICAgICAgICAgICAgICAgICAgICAgZm9yZWFjaCAo
JHAgaW4gQCgkbS5nZWxlc2VuLlBTT2JqZWN0LlByb3BlcnRpZXMpKSB7DQogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgaWYgKCRwLlZhbHVlLlBTT2JqZWN0LlByb3BlcnRpZXNbJG1pZF0pIHsN
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHAuVmFsdWUuUFNPYmplY3QuUHJvcGVy
dGllcy5SZW1vdmUoJG1pZCkNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAg
ICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAg
ICAgICAgV3JpdGUtSnNvbk9iamVjdCAnbWl0dGVpbHVuZ2VuLmpzb24nICRtIHwgT3V0LU51bGwN
CiAgICAgICAgICAgICAgICAgICAgJHNjcmlwdDptaXR0ZWlsdW5nR2Vsb2VzY2h0ID0gJHRydWUN
CiAgICAgICAgICAgICAgICB9IHwgT3V0LU51bGwNCiAgICAgICAgICAgICAgICBpZiAoLW5vdCAk
c2NyaXB0Om1pdHRlaWx1bmdHZWxvZXNjaHQpIHsNCiAgICAgICAgICAgICAgICAgICAgU2VuZC1F
cnJvciAkUmVzcG9uc2UgIk1pdHRlaWx1bmcgJG1pZCBuaWNodCBnZWZ1bmRlbiIgNDA0OyBjb250
aW51ZQ0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAkc2NyaXB0Om1pdHRlaWx1
bmdHZWxvZXNjaHQgPSAkZmFsc2UNCiAgICAgICAgICAgICAgICBXcml0ZS1Mb2dFaW50cmFnICdt
aXR0ZWlsdW5nLmdlbG9lc2NodCcgQHsgaWQgPSAkbWlkIH0NCiAgICAgICAgICAgICAgICBTZW5k
LUpzb25PYmplY3QgJFJlc3BvbnNlIEB7IHN0YXR1cyA9ICdnZWxvZXNjaHQnIH0NCiAgICAgICAg
ICAgICAgICBjb250aW51ZQ0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgIyBQT1NUIC9hcGkv
bWl0dGVpbHVuZ2VuL3VwbG9hZCDigJQgU1Utb25seSwgQmlsZCAoMiBNQikgb2RlciBQREYgKDEw
IE1CKQ0KICAgICAgICAgICAgIyBCb2R5OiB7ImFydCI6ICJiaWxkInwicGRmIiwgImRhdGVpbmFt
ZSI6ICJ4LnBuZyIsICJkYXRhVXJsIjogImRhdGE6Li4uIn0NCiAgICAgICAgICAgIGlmICgkUGF0
aCAtZXEgJy9hcGkvbWl0dGVpbHVuZ2VuL3VwbG9hZCcgLWFuZCAkTWV0aG9kIC1lcSAnUE9TVCcp
IHsNCiAgICAgICAgICAgICAgICBpZiAoLW5vdCAoVGVzdC1Jc3RTdXBlclVzZXIpKSB7IFNlbmQt
RXJyb3IgJFJlc3BvbnNlICdOdXIgU3VwZXJVc2VyIGR1ZXJmZW4gTWl0dGVpbHVuZ3MtQW5oYWVu
Z2UgaG9jaGxhZGVuJyA0MDM7IGNvbnRpbnVlIH0NCiAgICAgICAgICAgICAgICAjIDE0IE1CIE1h
eFNpemUsIHdlaWwgMTBNQiBQREYgYmFzZTY0LWNvZGllcnQgfjEzLjQgTUIgUGF5bG9hZCB3aXJk
DQogICAgICAgICAgICAgICAgJHJhdyA9IFJlYWQtQm9keSAkUmVxdWVzdCAtTWF4U2l6ZSAxNE1C
DQogICAgICAgICAgICAgICAgaWYgKC1ub3QgJHJhdykgeyBTZW5kLUVycm9yICRSZXNwb25zZSAn
QW5mcmFnZSB6dSBncm9zcyAobWF4IDE0IE1CKScgNDEzOyBjb250aW51ZSB9DQogICAgICAgICAg
ICAgICAgdHJ5IHsgJGJvZHkgPSAkcmF3IHwgQ29udmVydEZyb20tSnNvbiB9IGNhdGNoIHsgU2Vu
ZC1FcnJvciAkUmVzcG9uc2UgJ1VuZ3VlbHRpZ2VzIEpTT04nIDQwMDsgY29udGludWUgfQ0KICAg
ICAgICAgICAgICAgICRhcnQgPSAoW3N0cmluZ10kYm9keS5hcnQpLlRvTG93ZXIoKQ0KICAgICAg
ICAgICAgICAgICRkYXRhVXJsID0gW3N0cmluZ10kYm9keS5kYXRhVXJsDQogICAgICAgICAgICAg
ICAgaWYgKCRhcnQgLW5lICdiaWxkJyAtYW5kICRhcnQgLW5lICdwZGYnKSB7DQogICAgICAgICAg
ICAgICAgICAgIFNlbmQtRXJyb3IgJFJlc3BvbnNlICdhcnQgbXVzcyAiYmlsZCIgb2RlciAicGRm
IiBzZWluJyA0MDA7IGNvbnRpbnVlDQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAg
ICRleHQgPSAkbnVsbDsgJG1heEJ5dGVzID0gMA0KICAgICAgICAgICAgICAgIGlmICgkYXJ0IC1l
cSAnYmlsZCcpIHsNCiAgICAgICAgICAgICAgICAgICAgaWYgKCRkYXRhVXJsIC1tYXRjaCAnXmRh
dGE6aW1hZ2UvKGpwZWd8anBnfHBuZ3x3ZWJwKTtiYXNlNjQsJykgew0KICAgICAgICAgICAgICAg
ICAgICAgICAgJGV4dCA9ICgkTWF0Y2hlc1sxXSAtcmVwbGFjZSAnanBlZycsJ2pwZycpDQogICAg
ICAgICAgICAgICAgICAgICAgICAkbWF4Qnl0ZXMgPSAyICogMTAyNCAqIDEwMjQNCiAgICAgICAg
ICAgICAgICAgICAgfSBlbHNlIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIFNlbmQtRXJyb3Ig
JFJlc3BvbnNlICdCaWxkOiBlcndhcnRldCBkYXRhOmltYWdlLyhqcGVnfHBuZ3x3ZWJwKTtiYXNl
NjQsLi4uJyA0MDA7IGNvbnRpbnVlDQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAg
ICAgICB9IGVsc2Ugew0KICAgICAgICAgICAgICAgICAgICBpZiAoJGRhdGFVcmwgLWxpa2UgJ2Rh
dGE6YXBwbGljYXRpb24vcGRmO2Jhc2U2NCwqJykgew0KICAgICAgICAgICAgICAgICAgICAgICAg
JGV4dCA9ICdwZGYnDQogICAgICAgICAgICAgICAgICAgICAgICAkbWF4Qnl0ZXMgPSAxMCAqIDEw
MjQgKiAxMDI0DQogICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7DQogICAgICAgICAgICAgICAg
ICAgICAgICBTZW5kLUVycm9yICRSZXNwb25zZSAnUERGOiBlcndhcnRldCBkYXRhOmFwcGxpY2F0
aW9uL3BkZjtiYXNlNjQsLi4uJyA0MDA7IGNvbnRpbnVlDQogICAgICAgICAgICAgICAgICAgIH0N
CiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgJGJhc2U2NCA9ICRkYXRhVXJsIC1y
ZXBsYWNlICdeZGF0YTpbXjtdKztiYXNlNjQsJywgJycNCiAgICAgICAgICAgICAgICB0cnkgeyAk
Ynl0ZXMgPSBbU3lzdGVtLkNvbnZlcnRdOjpGcm9tQmFzZTY0U3RyaW5nKCRiYXNlNjQpIH0NCiAg
ICAgICAgICAgICAgICBjYXRjaCB7IFNlbmQtRXJyb3IgJFJlc3BvbnNlICdVbmd1ZWx0aWdlIGJh
c2U2NC1EYXRlbicgNDAwOyBjb250aW51ZSB9DQogICAgICAgICAgICAgICAgaWYgKCRieXRlcy5M
ZW5ndGggLWd0ICRtYXhCeXRlcykgew0KICAgICAgICAgICAgICAgICAgICAkbGltaXRLYiA9IFtp
bnRdKCRtYXhCeXRlcyAvIDEwMjQpDQogICAgICAgICAgICAgICAgICAgIFNlbmQtRXJyb3IgJFJl
c3BvbnNlICIkYXJ0IHp1IGdyb3NzIChtYXggJGxpbWl0S2IgS0IpIiA0MTM7IGNvbnRpbnVlDQog
ICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICR1cGxvYWREaXIgPSBKb2luLVBhdGgg
JERhdGFEaXIgJ3VwbG9hZHMnIHwgSm9pbi1QYXRoIC1DaGlsZFBhdGggJ21pdHRlaWx1bmdlbicN
CiAgICAgICAgICAgICAgICBpZiAoLW5vdCAoVGVzdC1QYXRoIC1MaXRlcmFsUGF0aCAkdXBsb2Fk
RGlyKSkgew0KICAgICAgICAgICAgICAgICAgICB0cnkgeyBOZXctSXRlbSAtSXRlbVR5cGUgRGly
ZWN0b3J5IC1QYXRoICR1cGxvYWREaXIgLUZvcmNlIHwgT3V0LU51bGwgfSBjYXRjaCB7fQ0KICAg
ICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAkcmFuZCA9IC1qb2luICgoNDguLjU3KSAr
ICg5Ny4uMTIyKSB8IEdldC1SYW5kb20gLUNvdW50IDYgfCBGb3JFYWNoLU9iamVjdCB7IFtjaGFy
XSRfIH0pDQogICAgICAgICAgICAgICAgJG1zID0gW2ludDY0XShbRGF0ZVRpbWVPZmZzZXRdOjpV
dGNOb3cuVG9Vbml4VGltZU1pbGxpc2Vjb25kcygpKQ0KICAgICAgICAgICAgICAgICRmaWxlbmFt
ZSA9ICJtXyR7bXN9XyR7cmFuZH0uJGV4dCINCiAgICAgICAgICAgICAgICAkemllbFBmYWQgPSBK
b2luLVBhdGggJHVwbG9hZERpciAkZmlsZW5hbWUNCiAgICAgICAgICAgICAgICBbU3lzdGVtLklP
LkZpbGVdOjpXcml0ZUFsbEJ5dGVzKCR6aWVsUGZhZCwgJGJ5dGVzKQ0KICAgICAgICAgICAgICAg
ICMgS2VpbmUgQUNMLVJlc3RyaWN0aW9uOiBVcGxvYWRzIHNpbmQgZnVlciBkaWUgRW1wZmFlbmdl
ci0NCiAgICAgICAgICAgICAgICAjIEdydXBwZSAobWFudWVsbCB2b20gU1UgdmVydGVpbHQpIGdl
ZGFjaHQsIG5pY2h0IGdlaGVpbS4NCiAgICAgICAgICAgICAgICAkcmVsUGZhZCA9ICIvZGF0YS91
cGxvYWRzL21pdHRlaWx1bmdlbi8kZmlsZW5hbWUiDQogICAgICAgICAgICAgICAgV3JpdGUtTG9n
RWludHJhZyAnbWl0dGVpbHVuZy51cGxvYWQnIEB7IGFydCA9ICRhcnQ7IGRhdGVpID0gJGZpbGVu
YW1lOyBieXRlcyA9ICRieXRlcy5MZW5ndGggfQ0KICAgICAgICAgICAgICAgIFNlbmQtSnNvbk9i
amVjdCAkUmVzcG9uc2UgQHsgc3RhdHVzID0gJ29rJzsgcGZhZCA9ICRyZWxQZmFkOyBieXRlcyA9
ICRieXRlcy5MZW5ndGggfQ0KICAgICAgICAgICAgICAgIGNvbnRpbnVlDQogICAgICAgICAgICB9
DQoNCiAgICAgICAgICAgIGlmICgkUGF0aCAtbWF0Y2ggJ14vYXBpL21pdHRlaWx1bmdlbi8oW1x3
LV0rKS9rZW5udG5pcyQnIC1hbmQgJE1ldGhvZCAtZXEgJ1BPU1QnKSB7DQogICAgICAgICAgICAg
ICAgJG1pZCA9ICRNYXRjaGVzWzFdDQogICAgICAgICAgICAgICAgJHIgPSBHZXQtUmVjaHRlDQog
ICAgICAgICAgICAgICAgJHBpZCA9ICRyLm1laW5lUGVyc29uSWQNCiAgICAgICAgICAgICAgICBp
ZiAoJG51bGwgLWVxICRwaWQpIHsgU2VuZC1FcnJvciAkUmVzcG9uc2UgJ0tlaW5lIFBlcnNvbiB6
dWdlb3JkbmV0JyA0MDM7IGNvbnRpbnVlIH0NCiAgICAgICAgICAgICAgICAkc2NyaXB0Om1pdHRl
aWx1bmdLZW5udG5pc09LID0gJGZhbHNlDQogICAgICAgICAgICAgICAgSW52b2tlLVdpdGhGaWxl
TG9jayAnbWl0dGVpbHVuZ2VuLmpzb24nIHsNCiAgICAgICAgICAgICAgICAgICAgJG0gPSBSZWFk
LUpzb25PYmplY3QgJ21pdHRlaWx1bmdlbi5qc29uJw0KICAgICAgICAgICAgICAgICAgICBpZiAo
JG51bGwgLWVxICRtIC1vciAtbm90ICRtLlBTT2JqZWN0LlByb3BlcnRpZXNbJ21pdHRlaWx1bmdl
biddKSB7IHJldHVybiB9DQogICAgICAgICAgICAgICAgICAgICRleGlzdGllcnQgPSBAKCRtLm1p
dHRlaWx1bmdlbiB8IFdoZXJlLU9iamVjdCB7IFtzdHJpbmddJF8uaWQgLWVxICRtaWQgfSkuQ291
bnQgLWd0IDANCiAgICAgICAgICAgICAgICAgICAgaWYgKC1ub3QgJGV4aXN0aWVydCkgeyByZXR1
cm4gfQ0KICAgICAgICAgICAgICAgICAgICBpZiAoLW5vdCAkbS5QU09iamVjdC5Qcm9wZXJ0aWVz
WydnZWxlc2VuJ10pIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICRtIHwgQWRkLU1lbWJlciAt
Tm90ZVByb3BlcnR5TmFtZSBnZWxlc2VuIC1Ob3RlUHJvcGVydHlWYWx1ZSAoW3BzY3VzdG9tb2Jq
ZWN0XUB7fSkgLUZvcmNlDQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAg
ICAgJHBpZFN0ciA9IFtzdHJpbmddJHBpZA0KICAgICAgICAgICAgICAgICAgICBpZiAoLW5vdCAk
bS5nZWxlc2VuLlBTT2JqZWN0LlByb3BlcnRpZXNbJHBpZFN0cl0pIHsNCiAgICAgICAgICAgICAg
ICAgICAgICAgICRtLmdlbGVzZW4gfCBBZGQtTWVtYmVyIC1Ob3RlUHJvcGVydHlOYW1lICRwaWRT
dHIgLU5vdGVQcm9wZXJ0eVZhbHVlIChbcHNjdXN0b21vYmplY3RdQHt9KSAtRm9yY2UNCiAgICAg
ICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAkaGV1dGUgPSAoR2V0LURhdGUp
LlRvU3RyaW5nKCd5eXl5LU1NLWRkJykNCiAgICAgICAgICAgICAgICAgICAgJG0uZ2VsZXNlbi4k
cGlkU3RyIHwgQWRkLU1lbWJlciAtTm90ZVByb3BlcnR5TmFtZSAkbWlkIC1Ob3RlUHJvcGVydHlW
YWx1ZSAkaGV1dGUgLUZvcmNlDQogICAgICAgICAgICAgICAgICAgIFdyaXRlLUpzb25PYmplY3Qg
J21pdHRlaWx1bmdlbi5qc29uJyAkbSB8IE91dC1OdWxsDQogICAgICAgICAgICAgICAgICAgICRz
Y3JpcHQ6bWl0dGVpbHVuZ0tlbm50bmlzT0sgPSAkdHJ1ZQ0KICAgICAgICAgICAgICAgIH0gfCBP
dXQtTnVsbA0KICAgICAgICAgICAgICAgIGlmICgtbm90ICRzY3JpcHQ6bWl0dGVpbHVuZ0tlbm50
bmlzT0spIHsNCiAgICAgICAgICAgICAgICAgICAgU2VuZC1FcnJvciAkUmVzcG9uc2UgIk1pdHRl
aWx1bmcgJG1pZCBuaWNodCBnZWZ1bmRlbiIgNDA0OyBjb250aW51ZQ0KICAgICAgICAgICAgICAg
IH0NCiAgICAgICAgICAgICAgICAkc2NyaXB0Om1pdHRlaWx1bmdLZW5udG5pc09LID0gJGZhbHNl
DQogICAgICAgICAgICAgICAgU2VuZC1Kc29uT2JqZWN0ICRSZXNwb25zZSBAeyBzdGF0dXMgPSAn
a2VubnRuaXNfZ2VzZXR6dCcgfQ0KICAgICAgICAgICAgICAgIGNvbnRpbnVlDQogICAgICAgICAg
ICB9DQoNCiAgICAgICAgICAgICMgPT09PT0gQkFDS1VQUyA9PT09PQ0KICAgICAgICAgICAgIyBC
YWNrdXAtTmFtaW5nIChnZXRhcm50LCBpbiBkYXRhL2NhY2hlLyk6DQogICAgICAgICAgICAjIC0g
c25hcF88dHM+LmJhayAgPSBCdW5kbGUgKHBsYW51bmcrYWRtaW4pIC0tIG1hbnVlbGxlIEJhY2t1
cHMgKyBTaWNoZXJ1bmdlbg0KICAgICAgICAgICAgIyAgICAgICAgICAgICAgICAgICAgdm9yIFdp
ZWRlcmhlcnN0ZWxsdW5nDQogICAgICAgICAgICAjIC0gbGVnXzx0cz4uYmFrICAgPSBOdXIgUGxh
bnVuZyAtLSBMZWdhY3ktQmFja3VwcyArIEF1dG8tU2ljaGVydW5nZW4NCiAgICAgICAgICAgICMg
ICAgICAgICAgICAgICAgICAgIHZvciBSZXNldC9EdW1teWRhdGVuDQogICAgICAgICAgICAjIC0g
Y2ZnXzx0cz5fPGhpbndlaXM+LmJhayA9IGFkbWluLmpzb24tQXV0by1CYWNrdXBzIChCYWNrdXAt
QWRtaW5Kc29uKQ0KICAgICAgICAgICAgaWYgKCRQYXRoIC1lcSAnL2FwaS9wbGFudW5nL2JhY2t1
cCcgLWFuZCAkTWV0aG9kIC1lcSAnUE9TVCcpIHsNCiAgICAgICAgICAgICAgICBpZiAoLW5vdCAo
VGVzdC1EYXJmQmVyZWljaCAnYmFja3VwcycpKSB7IFNlbmQtRXJyb3IgJFJlc3BvbnNlICdLZWlu
ZSBCZXJlY2h0aWd1bmcgKEJhY2t1cHMpJyA0MDM7IGNvbnRpbnVlIH0NCiAgICAgICAgICAgICAg
ICAkcGxhbnVuZ1BhdGggPSBKb2luLVBhdGggJERhdGFEaXIgJ3BsYW51bmcuanNvbicNCiAgICAg
ICAgICAgICAgICBpZiAoLW5vdCAoVGVzdC1QYXRoIC1MaXRlcmFsUGF0aCAkcGxhbnVuZ1BhdGgp
KSB7IFNlbmQtRXJyb3IgJFJlc3BvbnNlICdQbGFudW5nIG5pY2h0IGdlZnVuZGVuJyA0MDQ7IGNv
bnRpbnVlIH0NCiAgICAgICAgICAgICAgICAkcGxhbnVuZ09iaiA9IFJlYWQtSnNvbk9iamVjdCAn
cGxhbnVuZy5qc29uJw0KICAgICAgICAgICAgICAgICRhZG1pbk9iaiAgID0gUmVhZC1Kc29uT2Jq
ZWN0ICdhZG1pbi5qc29uJw0KICAgICAgICAgICAgICAgIGlmICgkbnVsbCAtZXEgJGFkbWluT2Jq
KSB7ICRhZG1pbk9iaiA9IE5ldy1PYmplY3QgUFNPYmplY3QgfQ0KICAgICAgICAgICAgICAgICR0
cyA9IEdldC1EYXRlIC1Gb3JtYXQgJ3l5eXlNTWRkX0hIbW1zcycNCiAgICAgICAgICAgICAgICAk
Ym5hbWUgPSAic25hcF8kdHMuYmFrIg0KICAgICAgICAgICAgICAgICRidW5kbGUgPSBbb3JkZXJl
ZF1Aew0KICAgICAgICAgICAgICAgICAgICBmb3JtYXQgID0gJ3ZpMy1iYWNrdXAtdjEnDQogICAg
ICAgICAgICAgICAgICAgIHRzICAgICAgPSAkdHMNCiAgICAgICAgICAgICAgICAgICAgcGxhbnVu
ZyA9ICRwbGFudW5nT2JqDQogICAgICAgICAgICAgICAgICAgIGFkbWluICAgPSAkYWRtaW5PYmoN
CiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgJGpzb24gPSAkYnVuZGxlIHwgQ29u
dmVydFRvLUpzb24gLURlcHRoIDMwDQogICAgICAgICAgICAgICAgJGNhY2hlRGlyID0gSm9pbi1Q
YXRoICREYXRhRGlyICdjYWNoZScNCiAgICAgICAgICAgICAgICBpZiAoLW5vdCAoVGVzdC1QYXRo
IC1MaXRlcmFsUGF0aCAkY2FjaGVEaXIpKSB7IE5ldy1JdGVtIC1JdGVtVHlwZSBEaXJlY3Rvcnkg
LVBhdGggJGNhY2hlRGlyIC1Gb3JjZSB8IE91dC1OdWxsIH0NCiAgICAgICAgICAgICAgICBXcml0
ZS1CYWNrdXBCeXRlcyAoSm9pbi1QYXRoICRjYWNoZURpciAkYm5hbWUpICRqc29uDQogICAgICAg
ICAgICAgICAgV3JpdGUtTG9nRWludHJhZyAnYmFja3VwLmVyc3RlbGx0JyBAeyBkYXRlaW5hbWUg
PSAkYm5hbWU7IGluaGFsdCA9ICdwbGFudW5nK2FkbWluJyB9DQogICAgICAgICAgICAgICAgU2Vu
ZC1Kc29uT2JqZWN0ICRSZXNwb25zZSBAeyBzdGF0dXMgPSAnZXJzdGVsbHQnOyBkYXRlaW5hbWUg
PSAkYm5hbWUgfQ0KICAgICAgICAgICAgICAgIGNvbnRpbnVlDQogICAgICAgICAgICB9DQogICAg
ICAgICAgICBpZiAoJFBhdGggLWVxICcvYXBpL3BsYW51bmcvYmFja3VwcycgLWFuZCAkTWV0aG9k
IC1lcSAnR0VUJykgew0KICAgICAgICAgICAgICAgIGlmICgtbm90IChUZXN0LURhcmZCZXJlaWNo
ICdiYWNrdXBzJykpIHsgU2VuZC1FcnJvciAkUmVzcG9uc2UgJ0tlaW5lIEJlcmVjaHRpZ3VuZyAo
QmFja3VwcyknIDQwMzsgY29udGludWUgfQ0KICAgICAgICAgICAgICAgICRlaW50cmFlZ2UgPSBA
KCkNCiAgICAgICAgICAgICAgICAkY2FjaGVEaXIgPSBKb2luLVBhdGggJERhdGFEaXIgJ2NhY2hl
Jw0KICAgICAgICAgICAgICAgIGlmIChUZXN0LVBhdGggLUxpdGVyYWxQYXRoICRjYWNoZURpcikg
ew0KICAgICAgICAgICAgICAgICAgICBmb3JlYWNoICgkbXVzdGVyIGluICdzbmFwXyouYmFrJywn
bGVnXyouYmFrJykgew0KICAgICAgICAgICAgICAgICAgICAgICAgR2V0LUNoaWxkSXRlbSAtTGl0
ZXJhbFBhdGggJGNhY2hlRGlyIC1GaWx0ZXIgJG11c3RlciAtRmlsZSAtRXJyb3JBY3Rpb24gU2ls
ZW50bHlDb250aW51ZSB8IEZvckVhY2gtT2JqZWN0IHsNCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAkbmFtZSA9ICRfLk5hbWUNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkdHlwID0g
aWYgKCRuYW1lIC1tYXRjaCAnX3Zvcl9kdW1teV8nKSB7ICd2b3IgRHVtbXlkYXRlbicgfQ0KICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZWlmICgkbmFtZSAtbWF0Y2ggJ192b3Jf
cmVzZXRfJykgeyAndm9yIFJlc2V0JyB9DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBlbHNlaWYgKCRuYW1lIC1tYXRjaCAnX3Zvcl93aWVkZXJoZXJzdGVsbHVuZ18nKSB7ICd2b3Ig
V2llZGVyaGVyc3RlbGx1bmcnIH0NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVs
c2UgeyAnbWFudWVsbCcgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICRidW5kbGUgPSAk
bmFtZS5TdGFydHNXaXRoKCdzbmFwXycpDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgJGVp
bnRyYWVnZSArPSBbb3JkZXJlZF1Aew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBk
YXRlaW5hbWUgICA9ICRuYW1lDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdyb2Vz
c2UgICAgID0gJF8uTGVuZ3RoDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVyc3Rl
bGx0QW0gID0gJF8uTGFzdFdyaXRlVGltZS5Ub1N0cmluZygncycpDQogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHR5cCAgICAgICAgID0gJHR5cA0KICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBpbmhhbHQgICAgICA9IGlmICgkYnVuZGxlKSB7ICdLb21wbGV0dCAoUGxhbnVu
ZyArIEFkbWluKScgfSBlbHNlIHsgJ051ciBQbGFudW5nJyB9DQogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGlzdEJ1bmRsZSAgID0gJGJ1bmRsZQ0KICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAg
fQ0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAkZWludHJhZWdlID0gQCgkZWlu
dHJhZWdlIHwgU29ydC1PYmplY3QgLVByb3BlcnR5IGVyc3RlbGx0QW0gLURlc2NlbmRpbmcpDQog
ICAgICAgICAgICAgICAgU2VuZC1Kc29uT2JqZWN0ICRSZXNwb25zZSAkZWludHJhZWdlDQogICAg
ICAgICAgICAgICAgY29udGludWUNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGlmICgkUGF0
aCAtbWF0Y2ggJ14vYXBpL3BsYW51bmcvYmFja3VwL2Rvd25sb2FkLyguKykkJyAtYW5kICRNZXRo
b2QgLWVxICdHRVQnKSB7DQogICAgICAgICAgICAgICAgaWYgKC1ub3QgKFRlc3QtRGFyZkJlcmVp
Y2ggJ2JhY2t1cHMnKSkgeyBTZW5kLUVycm9yICRSZXNwb25zZSAnS2VpbmUgQmVyZWNodGlndW5n
IChCYWNrdXBzKScgNDAzOyBjb250aW51ZSB9DQogICAgICAgICAgICAgICAgJG5hbWUgPSAkTWF0
Y2hlc1sxXQ0KICAgICAgICAgICAgICAgIGlmICgtbm90ICgkbmFtZSAtbWF0Y2ggJ14oc25hcF98
bGVnXylbMC05X2EtekEtWl0rXC5iYWskJykpIHsgU2VuZC1FcnJvciAkUmVzcG9uc2UgJ1VuZ3Vl
bHRpZ2VyIERhdGVpbmFtZScgNDAwOyBjb250aW51ZSB9DQogICAgICAgICAgICAgICAgJGZwID0g
Sm9pbi1QYXRoICREYXRhRGlyICgnY2FjaGUvJyArICRuYW1lKQ0KICAgICAgICAgICAgICAgIGlm
ICgtbm90IChUZXN0LVBhdGggLUxpdGVyYWxQYXRoICRmcCkpIHsgU2VuZC1FcnJvciAkUmVzcG9u
c2UgJ0JhY2t1cCBuaWNodCBnZWZ1bmRlbicgNDA0OyBjb250aW51ZSB9DQogICAgICAgICAgICAg
ICAgJGtsYXJ0ZXh0ID0gUmVhZC1CYWNrdXBUZXh0ICRmcA0KICAgICAgICAgICAgICAgIGlmICgk
bnVsbCAtZXEgJGtsYXJ0ZXh0KSB7IFNlbmQtRXJyb3IgJFJlc3BvbnNlICdCYWNrdXAtRGF0ZWkg
a29ubnRlIG5pY2h0IGdlbGVzZW4gd2VyZGVuJyA1MDA7IGNvbnRpbnVlIH0NCiAgICAgICAgICAg
ICAgICAkYnl0ZXMgPSBbU3lzdGVtLlRleHQuRW5jb2RpbmddOjpVVEY4LkdldEJ5dGVzKCRrbGFy
dGV4dCkNCiAgICAgICAgICAgICAgICAkUmVzcG9uc2UuU3RhdHVzQ29kZSA9IDIwMA0KICAgICAg
ICAgICAgICAgICRSZXNwb25zZS5Db250ZW50VHlwZSA9ICdhcHBsaWNhdGlvbi9qc29uOyBjaGFy
c2V0PXV0Zi04Jw0KICAgICAgICAgICAgICAgIEFkZC1TZWN1cml0eUhlYWRlcnMgJFJlc3BvbnNl
DQogICAgICAgICAgICAgICAgJFJlc3BvbnNlLkhlYWRlcnMuQWRkKCdDb250ZW50LURpc3Bvc2l0
aW9uJywgImF0dGFjaG1lbnQ7IGZpbGVuYW1lPWAiJG5hbWVgIiIpDQogICAgICAgICAgICAgICAg
JFJlc3BvbnNlLkNvbnRlbnRMZW5ndGg2NCA9ICRieXRlcy5MZW5ndGgNCiAgICAgICAgICAgICAg
ICAkUmVzcG9uc2UuT3V0cHV0U3RyZWFtLldyaXRlKCRieXRlcywgMCwgJGJ5dGVzLkxlbmd0aCkN
CiAgICAgICAgICAgICAgICAkUmVzcG9uc2UuT3V0cHV0U3RyZWFtLkNsb3NlKCkNCiAgICAgICAg
ICAgICAgICBjb250aW51ZQ0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgaWYgKCRQYXRoIC1l
cSAnL2FwaS9wbGFudW5nL2JhY2t1cC93aWVkZXJoZXJzdGVsbGVuJyAtYW5kICRNZXRob2QgLWVx
ICdQT1NUJykgew0KICAgICAgICAgICAgICAgIGlmICgtbm90IChUZXN0LURhcmZCZXJlaWNoICdi
YWNrdXBzJykpIHsgU2VuZC1FcnJvciAkUmVzcG9uc2UgJ0tlaW5lIEJlcmVjaHRpZ3VuZyAoQmFj
a3VwcyknIDQwMzsgY29udGludWUgfQ0KICAgICAgICAgICAgICAgICRib2R5ID0gUmVhZC1Cb2R5
ICRSZXF1ZXN0DQogICAgICAgICAgICAgICAgJGRhdGVuID0gJGJvZHkgfCBDb252ZXJ0RnJvbS1K
c29uDQogICAgICAgICAgICAgICAgJG5hbWUgPSAiJCgkZGF0ZW4uZGF0ZWluYW1lKSINCiAgICAg
ICAgICAgICAgICBpZiAoLW5vdCAoJG5hbWUgLW1hdGNoICdeKHNuYXBffGxlZ18pWzAtOV9hLXpB
LVpdK1wuYmFrJCcpKSB7IFNlbmQtRXJyb3IgJFJlc3BvbnNlICdVbmd1ZWx0aWdlciBEYXRlaW5h
bWUnIDQwMDsgY29udGludWUgfQ0KICAgICAgICAgICAgICAgICRjYWNoZURpciA9IEpvaW4tUGF0
aCAkRGF0YURpciAnY2FjaGUnDQogICAgICAgICAgICAgICAgaWYgKC1ub3QgKFRlc3QtUGF0aCAt
TGl0ZXJhbFBhdGggJGNhY2hlRGlyKSkgeyBOZXctSXRlbSAtSXRlbVR5cGUgRGlyZWN0b3J5IC1Q
YXRoICRjYWNoZURpciAtRm9yY2UgfCBPdXQtTnVsbCB9DQogICAgICAgICAgICAgICAgJHF1ZWxs
ID0gSm9pbi1QYXRoICRjYWNoZURpciAkbmFtZQ0KICAgICAgICAgICAgICAgIGlmICgtbm90IChU
ZXN0LVBhdGggLUxpdGVyYWxQYXRoICRxdWVsbCkpIHsgU2VuZC1FcnJvciAkUmVzcG9uc2UgJ0Jh
Y2t1cCBuaWNodCBnZWZ1bmRlbicgNDA0OyBjb250aW51ZSB9DQogICAgICAgICAgICAgICAgJHRz
ID0gR2V0LURhdGUgLUZvcm1hdCAneXl5eU1NZGRfSEhtbXNzJw0KICAgICAgICAgICAgICAgICRz
aWNoZXIgPSAic25hcF92b3Jfd2llZGVyaGVyc3RlbGx1bmdfJHRzLmJhayINCiAgICAgICAgICAg
ICAgICAjIFNpY2hlcmhlaXRzLUJ1bmRsZSBkZXIgYWt0dWVsbGVuIERhdGVuIHZvciBVZWJlcnNj
aHJlaWJlbi4NCiAgICAgICAgICAgICAgICAkc2ljaGVyQnVuZGxlID0gW29yZGVyZWRdQHsNCiAg
ICAgICAgICAgICAgICAgICAgZm9ybWF0ICA9ICd2aTMtYmFja3VwLXYxJw0KICAgICAgICAgICAg
ICAgICAgICB0cyAgICAgID0gJHRzDQogICAgICAgICAgICAgICAgICAgIHBsYW51bmcgPSAoUmVh
ZC1Kc29uT2JqZWN0ICdwbGFudW5nLmpzb24nKQ0KICAgICAgICAgICAgICAgICAgICBhZG1pbiAg
ID0gKFJlYWQtSnNvbk9iamVjdCAnYWRtaW4uanNvbicpDQogICAgICAgICAgICAgICAgfQ0KICAg
ICAgICAgICAgICAgIFdyaXRlLUJhY2t1cEJ5dGVzIChKb2luLVBhdGggJGNhY2hlRGlyICRzaWNo
ZXIpICgkc2ljaGVyQnVuZGxlIHwgQ29udmVydFRvLUpzb24gLURlcHRoIDMwKQ0KDQogICAgICAg
ICAgICAgICAgJHF1ZWxsSW5oYWx0ID0gUmVhZC1CYWNrdXBUZXh0ICRxdWVsbA0KICAgICAgICAg
ICAgICAgIGlmICgkbnVsbCAtZXEgJHF1ZWxsSW5oYWx0KSB7IFNlbmQtRXJyb3IgJFJlc3BvbnNl
ICdCYWNrdXAtRGF0ZWkga29ubnRlIG5pY2h0IGdlbGVzZW4gd2VyZGVuJyA1MDA7IGNvbnRpbnVl
IH0NCiAgICAgICAgICAgICAgICB0cnkgeyAkcXVlbGxEYXRlbiA9ICRxdWVsbEluaGFsdCB8IENv
bnZlcnRGcm9tLUpzb24gfSBjYXRjaCB7IFNlbmQtRXJyb3IgJFJlc3BvbnNlICdCYWNrdXAtRGF0
ZWkgbmljaHQgcGFyc2llcmJhcicgNDAwOyBjb250aW51ZSB9DQogICAgICAgICAgICAgICAgJHdp
ZWRlcmhlcmdlc3RlbGx0ID0gQCgpDQogICAgICAgICAgICAgICAgaWYgKCRxdWVsbERhdGVuIC1h
bmQgJHF1ZWxsRGF0ZW4uUFNPYmplY3QuUHJvcGVydGllc1snZm9ybWF0J10gLWFuZCAiJCgkcXVl
bGxEYXRlbi5mb3JtYXQpIi5TdGFydHNXaXRoKCd2aTMtYmFja3VwJykpIHsNCiAgICAgICAgICAg
ICAgICAgICAgaWYgKCRxdWVsbERhdGVuLlBTT2JqZWN0LlByb3BlcnRpZXNbJ3BsYW51bmcnXSkg
ew0KICAgICAgICAgICAgICAgICAgICAgICAgV3JpdGUtSnNvbk9iamVjdCAncGxhbnVuZy5qc29u
JyAkcXVlbGxEYXRlbi5wbGFudW5nIHwgT3V0LU51bGwNCiAgICAgICAgICAgICAgICAgICAgICAg
ICR3aWVkZXJoZXJnZXN0ZWxsdCArPSAncGxhbnVuZycNCiAgICAgICAgICAgICAgICAgICAgfQ0K
ICAgICAgICAgICAgICAgICAgICBpZiAoJHF1ZWxsRGF0ZW4uUFNPYmplY3QuUHJvcGVydGllc1sn
YWRtaW4nXSkgew0KICAgICAgICAgICAgICAgICAgICAgICAgV3JpdGUtSnNvbk9iamVjdCAnYWRt
aW4uanNvbicgJHF1ZWxsRGF0ZW4uYWRtaW4gfCBPdXQtTnVsbA0KICAgICAgICAgICAgICAgICAg
ICAgICAgJHdpZWRlcmhlcmdlc3RlbGx0ICs9ICdhZG1pbicNCiAgICAgICAgICAgICAgICAgICAg
fQ0KICAgICAgICAgICAgICAgIH0gZWxzZSB7DQogICAgICAgICAgICAgICAgICAgICMgTGVnYWN5
LUZvcm1hdCAobnVyIHBsYW51bmcuanNvbi1JbmhhbHQpLg0KICAgICAgICAgICAgICAgICAgICBX
cml0ZS1Kc29uT2JqZWN0ICdwbGFudW5nLmpzb24nICRxdWVsbERhdGVuIHwgT3V0LU51bGwNCiAg
ICAgICAgICAgICAgICAgICAgJHdpZWRlcmhlcmdlc3RlbGx0ICs9ICdwbGFudW5nJw0KICAgICAg
ICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBXcml0ZS1Mb2dFaW50cmFnICdiYWNrdXAud2ll
ZGVyaGVyZ2VzdGVsbHQnIEB7IHF1ZWxsZSA9ICRuYW1lOyBzaWNoZXJ1bmcgPSAkc2ljaGVyOyBp
bmhhbHQgPSAoJHdpZWRlcmhlcmdlc3RlbGx0IC1qb2luICcrJykgfQ0KICAgICAgICAgICAgICAg
IE5ldy1IaW53ZWlzICdiYWNrdXBfd2llZGVyaGVyZ2VzdGVsbHQnIChbb3JkZXJlZF1Aew0KICAg
ICAgICAgICAgICAgICAgICBiYWNrdXAgICAgPSAkbmFtZQ0KICAgICAgICAgICAgICAgICAgICBz
aWNoZXJ1bmcgPSAkc2ljaGVyDQogICAgICAgICAgICAgICAgICAgIGluaGFsdCAgICA9ICgkd2ll
ZGVyaGVyZ2VzdGVsbHQgLWpvaW4gJysnKQ0KICAgICAgICAgICAgICAgIH0pIChHZXQtQWt0dWVs
bGVyQmVudXR6ZXIpIHwgT3V0LU51bGwNCiAgICAgICAgICAgICAgICBTZW5kLUpzb25PYmplY3Qg
JFJlc3BvbnNlIEB7IHN0YXR1cyA9ICd3aWVkZXJoZXJnZXN0ZWxsdCc7IHNpY2hlcnVuZyA9ICRz
aWNoZXI7IGluaGFsdCA9ICR3aWVkZXJoZXJnZXN0ZWxsdCB9DQogICAgICAgICAgICAgICAgY29u
dGludWUNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGlmICgkUGF0aCAtZXEgJy9hcGkvcGxh
bnVuZy9iYWNrdXAvbG9lc2NoZW4nIC1hbmQgJE1ldGhvZCAtZXEgJ1BPU1QnKSB7DQogICAgICAg
ICAgICAgICAgaWYgKC1ub3QgKFRlc3QtRGFyZkJlcmVpY2ggJ2JhY2t1cHMnKSkgeyBTZW5kLUVy
cm9yICRSZXNwb25zZSAnS2VpbmUgQmVyZWNodGlndW5nIChCYWNrdXBzKScgNDAzOyBjb250aW51
ZSB9DQogICAgICAgICAgICAgICAgJGJvZHkgPSBSZWFkLUJvZHkgJFJlcXVlc3QNCiAgICAgICAg
ICAgICAgICAkZGF0ZW4gPSAkYm9keSB8IENvbnZlcnRGcm9tLUpzb24NCiAgICAgICAgICAgICAg
ICAkbmFtZSA9ICIkKCRkYXRlbi5kYXRlaW5hbWUpIg0KICAgICAgICAgICAgICAgIGlmICgtbm90
ICgkbmFtZSAtbWF0Y2ggJ14oc25hcF98bGVnXylbMC05X2EtekEtWl0rXC5iYWskJykpIHsgU2Vu
ZC1FcnJvciAkUmVzcG9uc2UgJ1VuZ3VlbHRpZ2VyIERhdGVpbmFtZScgNDAwOyBjb250aW51ZSB9
DQogICAgICAgICAgICAgICAgJGZwID0gSm9pbi1QYXRoICREYXRhRGlyICgnY2FjaGUvJyArICRu
YW1lKQ0KICAgICAgICAgICAgICAgIGlmICgtbm90IChUZXN0LVBhdGggLUxpdGVyYWxQYXRoICRm
cCkpIHsgU2VuZC1FcnJvciAkUmVzcG9uc2UgJ0JhY2t1cCBuaWNodCBnZWZ1bmRlbicgNDA0OyBj
b250aW51ZSB9DQogICAgICAgICAgICAgICAgUmVtb3ZlLUl0ZW0gLUxpdGVyYWxQYXRoICRmcCAt
Rm9yY2UNCiAgICAgICAgICAgICAgICBXcml0ZS1Mb2dFaW50cmFnICdiYWNrdXAuZ2Vsb2VzY2h0
JyBAeyBkYXRlaW5hbWUgPSAkbmFtZSB9DQogICAgICAgICAgICAgICAgU2VuZC1Kc29uT2JqZWN0
ICRSZXNwb25zZSBAeyBzdGF0dXMgPSAnZ2Vsb2VzY2h0JyB9DQogICAgICAgICAgICAgICAgY29u
dGludWUNCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgIyA9PT09PSBSRVNFVCAvIERVTU1Z
REFURU4gPT09PT0NCiAgICAgICAgICAgIGlmICgkUGF0aCAtZXEgJy9hcGkvcGxhbnVuZy9yZXNl
dCcgLWFuZCAkTWV0aG9kIC1lcSAnUE9TVCcpIHsNCiAgICAgICAgICAgICAgICBpZiAoLW5vdCAo
VGVzdC1Jc3RTdXBlclVzZXIpKSB7IFNlbmQtRXJyb3IgJFJlc3BvbnNlICdOdXIgU3VwZXJVc2Vy
IGR1ZXJmZW4gZGllIFBsYW51bmcgenVydWVja3NldHplbicgNDAzOyBjb250aW51ZSB9DQogICAg
ICAgICAgICAgICAgJHBsYW51bmdQYXRoID0gSm9pbi1QYXRoICREYXRhRGlyICdwbGFudW5nLmpz
b24nDQogICAgICAgICAgICAgICAgJGJhY2t1cE5hbWUgPSAkbnVsbA0KICAgICAgICAgICAgICAg
IGlmIChUZXN0LVBhdGggLUxpdGVyYWxQYXRoICRwbGFudW5nUGF0aCkgew0KICAgICAgICAgICAg
ICAgICAgICAkdHMgPSBHZXQtRGF0ZSAtRm9ybWF0ICd5eXl5TU1kZF9ISG1tc3MnDQogICAgICAg
ICAgICAgICAgICAgICRjYWNoZURpciA9IEpvaW4tUGF0aCAkRGF0YURpciAnY2FjaGUnDQogICAg
ICAgICAgICAgICAgICAgIGlmICgtbm90IChUZXN0LVBhdGggLUxpdGVyYWxQYXRoICRjYWNoZURp
cikpIHsgTmV3LUl0ZW0gLUl0ZW1UeXBlIERpcmVjdG9yeSAtUGF0aCAkY2FjaGVEaXIgLUZvcmNl
IHwgT3V0LU51bGwgfQ0KICAgICAgICAgICAgICAgICAgICAjIFJlc3RhdXJpZXJiYXJlciBOYW1l
IChwbGFudW5nX2JhY2t1cF92b3JfcmVzZXRfKi5qc29uKSBzdGF0dA0KICAgICAgICAgICAgICAg
ICAgICAjIC5iYWsgLT4gd2lyZCB2b20gQmFja3Vwcy1UYWIgZ2VsaXN0ZXQgdW5kIGthbm4gd2ll
ZGVyaGVyZ2VzdGVsbHQNCiAgICAgICAgICAgICAgICAgICAgIyB3ZXJkZW4uIEZydWVoZXIgenVk
ZW0gbmljaHQgYW4gZGVuIENsaWVudCB6dXJ1ZWNrZ2VnZWJlbg0KICAgICAgICAgICAgICAgICAg
ICAjIC0+ICJCYWNrdXA6IHVuZGVmaW5lZCIgaW4gZGVyIFVJLg0KICAgICAgICAgICAgICAgICAg
ICAkYmFja3VwTmFtZSA9ICJwbGFudW5nX2JhY2t1cF92b3JfcmVzZXRfJHRzLmpzb24iDQogICAg
ICAgICAgICAgICAgICAgIENvcHktSXRlbSAtTGl0ZXJhbFBhdGggJHBsYW51bmdQYXRoIC1EZXN0
aW5hdGlvbiAoSm9pbi1QYXRoICRjYWNoZURpciAkYmFja3VwTmFtZSkNCiAgICAgICAgICAgICAg
ICB9DQogICAgICAgICAgICAgICAgJHBsYW51bmcgPSBSZWFkLUpzb25PYmplY3QgJ3BsYW51bmcu
anNvbicNCiAgICAgICAgICAgICAgICBpZiAoJG51bGwgLW5lICRwbGFudW5nKSB7DQogICAgICAg
ICAgICAgICAgICAgIGlmICgkcGxhbnVuZy5QU09iamVjdC5Qcm9wZXJ0aWVzWydlaW50cmFlZ2Un
XSkgeyAkcGxhbnVuZy5laW50cmFlZ2UgPSBOZXctT2JqZWN0IFBTT2JqZWN0IH0NCiAgICAgICAg
ICAgICAgICAgICAgaWYgKCRwbGFudW5nLlBTT2JqZWN0LlByb3BlcnRpZXNbJ2tvbW1lbnRhcmUn
XSkgeyAkcGxhbnVuZy5rb21tZW50YXJlID0gTmV3LU9iamVjdCBQU09iamVjdCB9DQogICAgICAg
ICAgICAgICAgICAgIFdyaXRlLUpzb25PYmplY3QgJ3BsYW51bmcuanNvbicgJHBsYW51bmcgfCBP
dXQtTnVsbA0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBXcml0ZS1Mb2dFaW50
cmFnICdwbGFudW5nLnJlc2V0JyBAe30NCiAgICAgICAgICAgICAgICBOZXctSGlud2VpcyAncGxh
bnVuZ19yZXNldCcgKFtvcmRlcmVkXUB7DQogICAgICAgICAgICAgICAgICAgIGhpbndlaXMgPSAn
RWludHJhZWdlIHVuZCBLb21tZW50YXJlIHd1cmRlbiBnZWxvZXNjaHQ7IFNpY2hlcnVuZyBsaWVn
dCBpbiBkYXRhL2NhY2hlLy4nDQogICAgICAgICAgICAgICAgfSkgKEdldC1Ba3R1ZWxsZXJCZW51
dHplcikgfCBPdXQtTnVsbA0KICAgICAgICAgICAgICAgIFNlbmQtSnNvbk9iamVjdCAkUmVzcG9u
c2UgQHsgc3RhdHVzID0gJ3p1cnVlY2tnZXNldHp0JzsgYmFja3VwID0gJGJhY2t1cE5hbWUgfQ0K
ICAgICAgICAgICAgICAgIGNvbnRpbnVlDQogICAgICAgICAgICB9DQogICAgICAgICAgICBpZiAo
JFBhdGggLWVxICcvYXBpL3BsYW51bmcvZHVtbXlkYXRlbicgLWFuZCAkTWV0aG9kIC1lcSAnUE9T
VCcpIHsNCiAgICAgICAgICAgICAgICBpZiAoLW5vdCAoVGVzdC1Jc3RTdXBlclVzZXIpKSB7IFNl
bmQtRXJyb3IgJFJlc3BvbnNlICdOdXIgU3VwZXJVc2VyIGR1ZXJmZW4gRHVtbXlkYXRlbiBlaW5z
cGllbGVuJyA0MDM7IGNvbnRpbnVlIH0NCiAgICAgICAgICAgICAgICBTZW5kLUVycm9yICRSZXNw
b25zZSAnRHVtbXlkYXRlbiBudXIgaW0gRGVidWctU2VydmVyIChkZXYvc2VydmVyLnB5KSBpbXBs
ZW1lbnRpZXJ0LicgNTAxDQogICAgICAgICAgICAgICAgY29udGludWUNCiAgICAgICAgICAgIH0N
Cg0KICAgICAgICAgICAgIyBQT1NUIC9hcGkvYWRtaW4vcHJvdG9rb2xsLWxvZXNjaGVuDQogICAg
ICAgICAgICAjIEVpbm1hbC1SZXNldCBmdWVyIExvZ2J1Y2ggKyBBUEktTG9nLiBTZXR6dCBsb2di
dWNoLmpzb24gYXVmIFtdLA0KICAgICAgICAgICAgIyBsb2VzY2h0IGRpZSBBUEktTG9nLURhdGVp
IGF1cyAlVEVNUCUsIHVuZCBzY2hyZWlidCBlaW5lbiBlaW56aWdlbg0KICAgICAgICAgICAgIyBu
ZXVlbiBMb2didWNoLUVpbnRyYWcgKHByb3Rva29sbC5nZWxvZXNjaHQpLCBkYW1pdCBkYXMgRXJl
aWduaXMNCiAgICAgICAgICAgICMgc2VsYnN0IG5hY2h2b2xsemllaGJhciBibGVpYnQuDQogICAg
ICAgICAgICBpZiAoJFBhdGggLWVxICcvYXBpL2FkbWluL3Byb3Rva29sbC1sb2VzY2hlbicgLWFu
ZCAkTWV0aG9kIC1lcSAnUE9TVCcpIHsNCiAgICAgICAgICAgICAgICBpZiAoLW5vdCAoVGVzdC1J
c3RTdXBlclVzZXIpKSB7IFNlbmQtRXJyb3IgJFJlc3BvbnNlICdOdXIgU3VwZXJVc2VyIGR1ZXJm
ZW4gZGFzIFByb3Rva29sbCBsb2VzY2hlbicgNDAzOyBjb250aW51ZSB9DQogICAgICAgICAgICAg
ICAgJHZvcmhlciA9IFJlYWQtSnNvbk9iamVjdCAnbG9nYnVjaC5qc29uJw0KICAgICAgICAgICAg
ICAgICRhbnphaGxWb3JoZXIgPSAwDQogICAgICAgICAgICAgICAgaWYgKCRudWxsIC1uZSAkdm9y
aGVyKSB7DQogICAgICAgICAgICAgICAgICAgICRhbnphaGxWb3JoZXIgPSBAKCR2b3JoZXIpLkNv
dW50DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIFdyaXRlLUpzb25PYmplY3Qg
J2xvZ2J1Y2guanNvbicgQCgpIHwgT3V0LU51bGwNCg0KICAgICAgICAgICAgICAgICRhcGlMb2dC
eXRlcyA9IDANCiAgICAgICAgICAgICAgICBpZiAoVGVzdC1QYXRoIC1MaXRlcmFsUGF0aCAkc2Ny
aXB0OkFwaUxvZykgew0KICAgICAgICAgICAgICAgICAgICB0cnkgew0KICAgICAgICAgICAgICAg
ICAgICAgICAgJGFwaUxvZ0J5dGVzID0gKEdldC1JdGVtIC1MaXRlcmFsUGF0aCAkc2NyaXB0OkFw
aUxvZykuTGVuZ3RoDQogICAgICAgICAgICAgICAgICAgICAgICBSZW1vdmUtSXRlbSAtTGl0ZXJh
bFBhdGggJHNjcmlwdDpBcGlMb2cgLUZvcmNlIC1FcnJvckFjdGlvbiBTdG9wDQogICAgICAgICAg
ICAgICAgICAgIH0gY2F0Y2ggew0KICAgICAgICAgICAgICAgICAgICAgICAgIyBEYXRlaSBldnRs
LiBub2NoIG9mZmVuOyBpZ25vcmllcmVuLCBMb2didWNoIGlzdCBkaWUgd2ljaHRpZ2VyZSBTcHVy
DQogICAgICAgICAgICAgICAgICAgICAgICAkYXBpTG9nQnl0ZXMgPSAtMQ0KICAgICAgICAgICAg
ICAgICAgICB9DQogICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgV3JpdGUtTG9n
RWludHJhZyAncHJvdG9rb2xsLmdlbG9lc2NodCcgQHsNCiAgICAgICAgICAgICAgICAgICAgbG9n
YnVjaEVpbnRyYWVnZVZvcmhlciA9ICRhbnphaGxWb3JoZXINCiAgICAgICAgICAgICAgICAgICAg
YXBpTG9nQnl0ZXMgICAgICAgICAgICA9ICRhcGlMb2dCeXRlcw0KICAgICAgICAgICAgICAgIH0N
CiAgICAgICAgICAgICAgICBTZW5kLUpzb25PYmplY3QgJFJlc3BvbnNlIEB7DQogICAgICAgICAg
ICAgICAgICAgIHN0YXR1cyAgICAgICAgICAgICAgICAgPSAnZ2Vsb2VzY2h0Jw0KICAgICAgICAg
ICAgICAgICAgICBsb2didWNoRWludHJhZWdlVm9yaGVyID0gJGFuemFobFZvcmhlcg0KICAgICAg
ICAgICAgICAgICAgICBhcGlMb2dCeXRlcyAgICAgICAgICAgID0gJGFwaUxvZ0J5dGVzDQogICAg
ICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIGNvbnRpbnVlDQogICAgICAgICAgICB9DQoN
CiAgICAgICAgICAgICMgPT09PT0gU1RBVElTVElLIC8gTE9HQlVDSCA9PT09PQ0KICAgICAgICAg
ICAgaWYgKCRQYXRoIC1lcSAnL2FwaS9zdGF0aXN0aWsnIC1hbmQgJE1ldGhvZCAtZXEgJ0dFVCcp
IHsNCiAgICAgICAgICAgICAgICBpZiAoLW5vdCAoVGVzdC1EYXJmQmVyZWljaCAnc3RhdGlzdGlr
JykpIHsNCiAgICAgICAgICAgICAgICAgICAgU2VuZC1FcnJvciAkUmVzcG9uc2UgJ0tlaW5lIEJl
cmVjaHRpZ3VuZyAoU3RhdGlzdGlrKScgNDAzOyBjb250aW51ZQ0KICAgICAgICAgICAgICAgIH0N
CiAgICAgICAgICAgICAgICAkcGxhbnVuZyA9IFJlYWQtSnNvbk9iamVjdCAncGxhbnVuZy5qc29u
Jw0KICAgICAgICAgICAgICAgICRhZG1pbiAgID0gUmVhZC1Kc29uT2JqZWN0ICdhZG1pbi5qc29u
Jw0KICAgICAgICAgICAgICAgIFNlbmQtSnNvbk9iamVjdCAkUmVzcG9uc2UgKEdldC1TdGF0aXN0
aWtEYXRhICRwbGFudW5nICRhZG1pbikNCiAgICAgICAgICAgICAgICBjb250aW51ZQ0KICAgICAg
ICAgICAgfQ0KICAgICAgICAgICAgaWYgKCRQYXRoIC1lcSAnL2FwaS9sb2didWNoJyAtYW5kICRN
ZXRob2QgLWVxICdHRVQnKSB7DQogICAgICAgICAgICAgICAgaWYgKC1ub3QgKFRlc3QtRGFyZkJl
cmVpY2ggJ2xvZ2J1Y2gnKSkgew0KICAgICAgICAgICAgICAgICAgICBTZW5kLUVycm9yICRSZXNw
b25zZSAnS2VpbmUgQmVyZWNodGlndW5nIChMb2didWNoKScgNDAzOyBjb250aW51ZQ0KICAgICAg
ICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBTZW5kLUpzb25UZXh0ICRSZXNwb25zZSAoR2V0
LUxvZ2J1Y2hUZXh0KQ0KICAgICAgICAgICAgICAgIGNvbnRpbnVlDQogICAgICAgICAgICB9DQoN
CiAgICAgICAgICAgICMgPT09PT09PT09PT09PT09PT09PT09IFpFTEwtTE9DSyArIENIQU5HRVMg
KExpdmUtU3luYykgPT09PT09PT09PT09PT09PT09PT09DQogICAgICAgICAgICAjIFBPU1QgL2Fw
aS9sb2NrL3plbGxlICB7IGRhdHVtLCBwZXJzb25JZCB9IC0+IHsgb2ssIHRva2VuLCAuLi4gfSBv
ZGVyIDQyMyB7IHNwZXJyZXIsIC4uLiB9DQogICAgICAgICAgICBpZiAoJFBhdGggLWVxICcvYXBp
L2xvY2svemVsbGUnIC1hbmQgJE1ldGhvZCAtZXEgJ1BPU1QnKSB7DQogICAgICAgICAgICAgICAg
JGJvZHkgPSBSZWFkLUJvZHkgJFJlcXVlc3QNCiAgICAgICAgICAgICAgICBpZiAoLW5vdCAkYm9k
eSkgeyBTZW5kLUVycm9yICRSZXNwb25zZSAnQW5mcmFnZSB6dSBncm9zcycgNDEzOyBjb250aW51
ZSB9DQogICAgICAgICAgICAgICAgJGEgPSAkYm9keSB8IENvbnZlcnRGcm9tLUpzb24NCiAgICAg
ICAgICAgICAgICAkZGF0dW0gPSBbc3RyaW5nXSRhLmRhdHVtDQogICAgICAgICAgICAgICAgJHBl
cnNvbklkID0gW3N0cmluZ10kYS5wZXJzb25JZA0KICAgICAgICAgICAgICAgIGlmICgtbm90IChU
ZXN0LUxvY2tTYWZlRGF0dW0gJGRhdHVtKSAtb3IgLW5vdCAoVGVzdC1Mb2NrU2FmZUlkICRwZXJz
b25JZCkpIHsNCiAgICAgICAgICAgICAgICAgICAgU2VuZC1FcnJvciAkUmVzcG9uc2UgJ1VuZ3Vl
bHRpZ2UgZGF0dW0vcGVyc29uSWQnIDQwMDsgY29udGludWUNCiAgICAgICAgICAgICAgICB9DQog
ICAgICAgICAgICAgICAgJHVzZXIgPSBHZXQtQWt0dWVsbGVyQmVudXR6ZXINCiAgICAgICAgICAg
ICAgICAkcm9sbGUgPSAoR2V0LVJlY2h0ZSkucm9sbGUNCiAgICAgICAgICAgICAgICAkcmVzID0g
QWNxdWlyZS1DZWxsTG9jayAkZGF0dW0gJHBlcnNvbklkICR1c2VyICRyb2xsZSAkZmFsc2UNCiAg
ICAgICAgICAgICAgICBpZiAoLW5vdCAkcmVzLm9rKSB7DQogICAgICAgICAgICAgICAgICAgIFNl
bmQtSnNvbk9iamVjdCAkUmVzcG9uc2UgQHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGZlaGxl
ciAgICA9ICdnZXNwZXJydCcNCiAgICAgICAgICAgICAgICAgICAgICAgIG1lbGR1bmcgICA9ICJX
aXJkIGJlYXJiZWl0ZXQgdm9uICQoJHJlcy5leGlzdGluZy51c2VybmFtZSkiDQogICAgICAgICAg
ICAgICAgICAgICAgICBzcGVycmVyICAgPSAkcmVzLmV4aXN0aW5nLnVzZXJuYW1lDQogICAgICAg
ICAgICAgICAgICAgICAgICByb2xsZSAgICAgPSAkcmVzLmV4aXN0aW5nLnJvbGxlDQogICAgICAg
ICAgICAgICAgICAgICAgICBzZWl0ICAgICAgPSAkcmVzLmV4aXN0aW5nLmxvY2tlZEF0DQogICAg
ICAgICAgICAgICAgICAgICAgICBrYW5uRm9yY2UgPSAoVGVzdC1EYXJmTG9ja1VlYmVyc2NocmVp
YmVuKQ0KICAgICAgICAgICAgICAgICAgICB9IDQyMw0KICAgICAgICAgICAgICAgICAgICBjb250
aW51ZQ0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBTZW5kLUpzb25PYmplY3Qg
JFJlc3BvbnNlIEB7DQogICAgICAgICAgICAgICAgICAgIG9rICAgICAgID0gJHRydWUNCiAgICAg
ICAgICAgICAgICAgICAgdG9rZW4gICAgPSAkcmVzLmxvY2sudG9rZW4NCiAgICAgICAgICAgICAg
ICAgICAgZGF0dW0gICAgPSAkZGF0dW0NCiAgICAgICAgICAgICAgICAgICAgcGVyc29uSWQgPSAk
cGVyc29uSWQNCiAgICAgICAgICAgICAgICAgICAgcm9sbGUgICAgPSAkcm9sbGUNCiAgICAgICAg
ICAgICAgICAgICAgbG9ja2VkQXQgPSAkcmVzLmxvY2subG9ja2VkQXQNCiAgICAgICAgICAgICAg
ICB9DQogICAgICAgICAgICAgICAgY29udGludWUNCiAgICAgICAgICAgIH0NCg0KICAgICAgICAg
ICAgIyBQT1NUIC9hcGkvbG9jay96ZWxsZS9mb3JjZSAgeyBkYXR1bSwgcGVyc29uSWQgfSAtPiB1
ZWJlcnNjaHJlaWJ0IGZyZW1kZW4gTG9jaw0KICAgICAgICAgICAgaWYgKCRQYXRoIC1lcSAnL2Fw
aS9sb2NrL3plbGxlL2ZvcmNlJyAtYW5kICRNZXRob2QgLWVxICdQT1NUJykgew0KICAgICAgICAg
ICAgICAgIGlmICgtbm90IChUZXN0LURhcmZMb2NrVWViZXJzY2hyZWliZW4pKSB7DQogICAgICAg
ICAgICAgICAgICAgIFNlbmQtRXJyb3IgJFJlc3BvbnNlICdGb3JjZS1Mb2NrIG51ciBmdWVyIEZh
Y2hhdWZzaWNodC9TdXBlclVzZXInIDQwMzsgY29udGludWUNCiAgICAgICAgICAgICAgICB9DQog
ICAgICAgICAgICAgICAgJGJvZHkgPSBSZWFkLUJvZHkgJFJlcXVlc3QNCiAgICAgICAgICAgICAg
ICBpZiAoLW5vdCAkYm9keSkgeyBTZW5kLUVycm9yICRSZXNwb25zZSAnQW5mcmFnZSB6dSBncm9z
cycgNDEzOyBjb250aW51ZSB9DQogICAgICAgICAgICAgICAgJGEgPSAkYm9keSB8IENvbnZlcnRG
cm9tLUpzb24NCiAgICAgICAgICAgICAgICAkZGF0dW0gPSBbc3RyaW5nXSRhLmRhdHVtDQogICAg
ICAgICAgICAgICAgJHBlcnNvbklkID0gW3N0cmluZ10kYS5wZXJzb25JZA0KICAgICAgICAgICAg
ICAgIGlmICgtbm90IChUZXN0LUxvY2tTYWZlRGF0dW0gJGRhdHVtKSAtb3IgLW5vdCAoVGVzdC1M
b2NrU2FmZUlkICRwZXJzb25JZCkpIHsNCiAgICAgICAgICAgICAgICAgICAgU2VuZC1FcnJvciAk
UmVzcG9uc2UgJ1VuZ3VlbHRpZ2UgZGF0dW0vcGVyc29uSWQnIDQwMDsgY29udGludWUNCiAgICAg
ICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgJHVzZXIgPSBHZXQtQWt0dWVsbGVyQmVudXR6
ZXINCiAgICAgICAgICAgICAgICAkcm9sbGUgPSAoR2V0LVJlY2h0ZSkucm9sbGUNCiAgICAgICAg
ICAgICAgICAkcmVzID0gQWNxdWlyZS1DZWxsTG9jayAkZGF0dW0gJHBlcnNvbklkICR1c2VyICRy
b2xsZSAkdHJ1ZQ0KICAgICAgICAgICAgICAgIFdyaXRlLUxvZ0VpbnRyYWcgJ2xvY2suZm9yY2Un
IEB7IGRhdHVtID0gJGRhdHVtOyBwZXJzb25JZCA9ICRwZXJzb25JZDsgcm9sbGUgPSAkcm9sbGUg
fQ0KICAgICAgICAgICAgICAgIFNlbmQtSnNvbk9iamVjdCAkUmVzcG9uc2UgQHsNCiAgICAgICAg
ICAgICAgICAgICAgb2sgICAgICAgPSAkdHJ1ZQ0KICAgICAgICAgICAgICAgICAgICB0b2tlbiAg
ICA9ICRyZXMubG9jay50b2tlbg0KICAgICAgICAgICAgICAgICAgICBkYXR1bSAgICA9ICRkYXR1
bQ0KICAgICAgICAgICAgICAgICAgICBwZXJzb25JZCA9ICRwZXJzb25JZA0KICAgICAgICAgICAg
ICAgICAgICByb2xsZSAgICA9ICRyb2xsZQ0KICAgICAgICAgICAgICAgICAgICBsb2NrZWRBdCA9
ICRyZXMubG9jay5sb2NrZWRBdA0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBj
b250aW51ZQ0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAjIFBPU1QgL2FwaS9sb2NrL3pl
bGxlL2hlYXJ0YmVhdCAgeyB0b2tlbiB9IC0+IGFrdHVhbGlzaWVydCBsYXN0QmVhdA0KICAgICAg
ICAgICAgaWYgKCRQYXRoIC1lcSAnL2FwaS9sb2NrL3plbGxlL2hlYXJ0YmVhdCcgLWFuZCAkTWV0
aG9kIC1lcSAnUE9TVCcpIHsNCiAgICAgICAgICAgICAgICAkYm9keSA9IFJlYWQtQm9keSAkUmVx
dWVzdA0KICAgICAgICAgICAgICAgIGlmICgtbm90ICRib2R5KSB7IFNlbmQtRXJyb3IgJFJlc3Bv
bnNlICdBbmZyYWdlIHp1IGdyb3NzJyA0MTM7IGNvbnRpbnVlIH0NCiAgICAgICAgICAgICAgICAk
YSA9ICRib2R5IHwgQ29udmVydEZyb20tSnNvbg0KICAgICAgICAgICAgICAgICR0b2tlbiA9IGlm
ICgkYS5QU09iamVjdC5Qcm9wZXJ0aWVzWyd0b2tlbiddKSB7IFtzdHJpbmddJGEudG9rZW4gfSBl
bHNlIHsgJycgfQ0KICAgICAgICAgICAgICAgIGlmIChbc3RyaW5nXTo6SXNOdWxsT3JXaGl0ZVNw
YWNlKCR0b2tlbikpIHsgU2VuZC1FcnJvciAkUmVzcG9uc2UgJ1Rva2VuIGZlaGx0JyA0MDA7IGNv
bnRpbnVlIH0NCiAgICAgICAgICAgICAgICAkcmVzID0gUmVmcmVzaC1DZWxsTG9jayAkdG9rZW4N
CiAgICAgICAgICAgICAgICBpZiAoLW5vdCAkcmVzLm9rKSB7DQogICAgICAgICAgICAgICAgICAg
IFNlbmQtSnNvbk9iamVjdCAkUmVzcG9uc2UgQHsgZmVobGVyID0gJ3VuYmVrYW5udGVyX2xvY2sn
OyBtZWxkdW5nID0gJ0xvY2sgZXhpc3RpZXJ0IG5pY2h0IChtZWhyKS4nIH0gNDA0DQogICAgICAg
ICAgICAgICAgICAgIGNvbnRpbnVlDQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAg
IFNlbmQtSnNvbk9iamVjdCAkUmVzcG9uc2UgQHsgb2sgPSAkdHJ1ZTsgbGFzdEJlYXQgPSAkcmVz
LmxvY2subGFzdEJlYXQgfQ0KICAgICAgICAgICAgICAgIGNvbnRpbnVlDQogICAgICAgICAgICB9
DQoNCiAgICAgICAgICAgICMgREVMRVRFIC9hcGkvbG9jay96ZWxsZSAgeyB0b2tlbiB9IC0+IExv
Y2sgZnJlaWdlYmVuIChhdWNoIHZpYSBRdWVyeS1TdHJpbmcgZnVlciBzZW5kQmVhY29uKQ0KICAg
ICAgICAgICAgaWYgKCRQYXRoIC1lcSAnL2FwaS9sb2NrL3plbGxlJyAtYW5kICRNZXRob2QgLWVx
ICdERUxFVEUnKSB7DQogICAgICAgICAgICAgICAgJGJvZHkgPSBSZWFkLUJvZHkgJFJlcXVlc3QN
CiAgICAgICAgICAgICAgICAkdG9rZW4gPSAkbnVsbA0KICAgICAgICAgICAgICAgIGlmICgkYm9k
eSkgew0KICAgICAgICAgICAgICAgICAgICB0cnkgeyAkYSA9ICRib2R5IHwgQ29udmVydEZyb20t
SnNvbjsgaWYgKCRhLlBTT2JqZWN0LlByb3BlcnRpZXNbJ3Rva2VuJ10pIHsgJHRva2VuID0gW3N0
cmluZ10kYS50b2tlbiB9IH0gY2F0Y2gge30NCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAg
ICAgICAgaWYgKFtzdHJpbmddOjpJc051bGxPcldoaXRlU3BhY2UoJHRva2VuKSAtYW5kICRSZXF1
ZXN0LlVybC5RdWVyeSkgew0KICAgICAgICAgICAgICAgICAgICAkcSA9IFtTeXN0ZW0uV2ViLkh0
dHBVdGlsaXR5XTo6UGFyc2VRdWVyeVN0cmluZygkUmVxdWVzdC5VcmwuUXVlcnkpDQogICAgICAg
ICAgICAgICAgICAgICR0b2tlbiA9IFtzdHJpbmddJHFbJ3Rva2VuJ10NCiAgICAgICAgICAgICAg
ICB9DQogICAgICAgICAgICAgICAgaWYgKFtzdHJpbmddOjpJc051bGxPcldoaXRlU3BhY2UoJHRv
a2VuKSkgeyBTZW5kLUVycm9yICRSZXNwb25zZSAnVG9rZW4gZmVobHQnIDQwMDsgY29udGludWUg
fQ0KICAgICAgICAgICAgICAgICRyZXMgPSBSZWxlYXNlLUNlbGxMb2NrICR0b2tlbg0KICAgICAg
ICAgICAgICAgIFNlbmQtSnNvbk9iamVjdCAkUmVzcG9uc2UgQHsgb2sgPSAkcmVzLm9rIH0NCiAg
ICAgICAgICAgICAgICBjb250aW51ZQ0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAjIEdF
VCAvYXBpL2xvY2svemVsbGVuIC0+IExpc3RlIGFsbGVyIGFrdGl2ZW4gTG9ja3MgKGZ1ZXIgTGl2
ZS1JbmRpY2F0b3IpDQogICAgICAgICAgICBpZiAoJFBhdGggLWVxICcvYXBpL2xvY2svemVsbGVu
JyAtYW5kICRNZXRob2QgLWVxICdHRVQnKSB7DQogICAgICAgICAgICAgICAgU2VuZC1Kc29uT2Jq
ZWN0ICRSZXNwb25zZSBAeyBsb2NrcyA9IChHZXQtQWxsQWN0aXZlQ2VsbExvY2tzKSB9DQogICAg
ICAgICAgICAgICAgY29udGludWUNCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgIyBQT1NU
IC9hcGkvdmVyYW50d29ydHVuZy9hdWZnZXJ1ZWNrdCDigJQgU3RhdGlzdGlrLUNhcHR1cmUgZnVl
ciBkZW4NCiAgICAgICAgICAgICMgIkVpbmdlc3BydW5nZW4iLUJhbGtlbiBpbiBkZXIgU2NoaWNo
dHZlcnRlaWx1bmcuIFdpcmQgdm9tIENsaWVudA0KICAgICAgICAgICAgIyBnZWZldWVydCwgc29i
YWxkIGplbWFuZCBpbm5lcmhhbGIgZGVyIDE0LVRhZ2UtVmVyYmluZGxpY2hrZWl0IG5ldQ0KICAg
ICAgICAgICAgIyBpbiBkaWUgVG9wLTIgKDEuLzIuIFZJMy1ER0wpIGVpbmVyIFNjaGljaHQgYXVm
cnVlY2t0IOKAlCBhbHNvDQogICAgICAgICAgICAjIGF1c3NlcnBsYW5tYWVzc2lnIFZlcmFudHdv
cnR1bmcgdWViZXJuaW1tdC4NCiAgICAgICAgICAgICMgQm9keTogeyBwZXJzb25JZCwgZGF0dW0s
IHNjaGljaHQsIHN0dWZlLCB2b3JoZXJXZXJ0LCBhdXNsb2VzZXJQZXJzb25JZCB9DQogICAgICAg
ICAgICBpZiAoJFBhdGggLWVxICcvYXBpL3ZlcmFudHdvcnR1bmcvYXVmZ2VydWVja3QnIC1hbmQg
JE1ldGhvZCAtZXEgJ1BPU1QnKSB7DQogICAgICAgICAgICAgICAgJGJvZHkgPSBSZWFkLUJvZHkg
JFJlcXVlc3QNCiAgICAgICAgICAgICAgICBpZiAoLW5vdCAkYm9keSkgeyBTZW5kLUVycm9yICRS
ZXNwb25zZSAnQW5mcmFnZSB6dSBncm9zcycgNDEzOyBjb250aW51ZSB9DQogICAgICAgICAgICAg
ICAgdHJ5IHsgJGEgPSAkYm9keSB8IENvbnZlcnRGcm9tLUpzb24gfSBjYXRjaCB7IFNlbmQtRXJy
b3IgJFJlc3BvbnNlICdVbmd1ZWx0aWdlcyBKU09OJyA0MDA7IGNvbnRpbnVlIH0NCiAgICAgICAg
ICAgICAgICAkcGlkID0gaWYgKCRhLlBTT2JqZWN0LlByb3BlcnRpZXNbJ3BlcnNvbklkJ10pIHsg
W3N0cmluZ10kYS5wZXJzb25JZCB9IGVsc2UgeyAnJyB9DQogICAgICAgICAgICAgICAgJGRhdCA9
IGlmICgkYS5QU09iamVjdC5Qcm9wZXJ0aWVzWydkYXR1bSddKSB7IFtzdHJpbmddJGEuZGF0dW0g
fSBlbHNlIHsgJycgfQ0KICAgICAgICAgICAgICAgIGlmICgtbm90ICRwaWQgLW9yIC1ub3QgJGRh
dCkgeyBTZW5kLUVycm9yICRSZXNwb25zZSAncGVyc29uSWQvZGF0dW0gZmVobHQnIDQwMDsgY29u
dGludWUgfQ0KICAgICAgICAgICAgICAgICRmZWxkZXIgPSBbb3JkZXJlZF1Aew0KICAgICAgICAg
ICAgICAgICAgICBwZXJzb25JZCAgID0gJHBpZA0KICAgICAgICAgICAgICAgICAgICBkYXR1bSAg
ICAgID0gJGRhdA0KICAgICAgICAgICAgICAgICAgICBzY2hpY2h0ICAgID0gaWYgKCRhLlBTT2Jq
ZWN0LlByb3BlcnRpZXNbJ3NjaGljaHQnXSkgeyBbc3RyaW5nXSRhLnNjaGljaHQgfSBlbHNlIHsg
JycgfQ0KICAgICAgICAgICAgICAgICAgICBzdHVmZSAgICAgID0gaWYgKCRhLlBTT2JqZWN0LlBy
b3BlcnRpZXNbJ3N0dWZlJ10pIHsgW2ludF0kYS5zdHVmZSB9IGVsc2UgeyAwIH0NCiAgICAgICAg
ICAgICAgICAgICAgdm9yaGVyV2VydCA9IGlmICgkYS5QU09iamVjdC5Qcm9wZXJ0aWVzWyd2b3Jo
ZXJXZXJ0J10pIHsgW3N0cmluZ10kYS52b3JoZXJXZXJ0IH0gZWxzZSB7ICcnIH0NCiAgICAgICAg
ICAgICAgICB9DQogICAgICAgICAgICAgICAgaWYgKCRhLlBTT2JqZWN0LlByb3BlcnRpZXNbJ2F1
c2xvZXNlclBlcnNvbklkJ10pIHsNCiAgICAgICAgICAgICAgICAgICAgJGZlbGRlclsnYXVzbG9l
c2VyUGVyc29uSWQnXSA9IFtzdHJpbmddJGEuYXVzbG9lc2VyUGVyc29uSWQNCiAgICAgICAgICAg
ICAgICB9DQogICAgICAgICAgICAgICAgV3JpdGUtTG9nRWludHJhZyAndmVyYW50d29ydHVuZy5l
aW5nZXNwcnVuZ2VuJyAkZmVsZGVyDQogICAgICAgICAgICAgICAgU2VuZC1Kc29uT2JqZWN0ICRS
ZXNwb25zZSBAeyBvayA9ICR0cnVlIH0NCiAgICAgICAgICAgICAgICBjb250aW51ZQ0KICAgICAg
ICAgICAgfQ0KDQoNCiAgICAgICAgICAgICMgR0VUIC9hcGkvcGxhbnVuZy9jaGFuZ2VzP3NlaXQ9
PGlzby10cz4gLT4gRGVsdGEtTGlzdGUgZnVlciBMaXZlLVN5bmMNCiAgICAgICAgICAgIGlmICgk
UGF0aCAtZXEgJy9hcGkvcGxhbnVuZy9jaGFuZ2VzJyAtYW5kICRNZXRob2QgLWVxICdHRVQnKSB7
DQogICAgICAgICAgICAgICAgJHEgPSBbU3lzdGVtLldlYi5IdHRwVXRpbGl0eV06OlBhcnNlUXVl
cnlTdHJpbmcoJFJlcXVlc3QuVXJsLlF1ZXJ5KQ0KICAgICAgICAgICAgICAgICRsb2cgPSBSZWFk
LUpzb25PYmplY3QgJ2NoYW5nZXMuanNvbicNCiAgICAgICAgICAgICAgICBpZiAoJG51bGwgLWVx
ICRsb2cgLW9yIC1ub3QgKCRsb2cgLWlzIFthcnJheV0pKSB7ICRsb2cgPSBAKCkgfQ0KICAgICAg
ICAgICAgICAgICRtYXhTZXEgPSBHZXQtTWF4Q2hhbmdlU2VxICRsb2cNCiAgICAgICAgICAgICAg
ICBpZiAoJHEuQWxsS2V5cyAtY29udGFpbnMgJ3NlaXRfc2VxJykgew0KICAgICAgICAgICAgICAg
ICAgICAjIE5ldWVyIHJhY2UtZnJlaWVyIHNlcS1DdXJzb3IgKENoYW5nZXMgKyBzZXJ2ZXJTZXEg
YXVzDQogICAgICAgICAgICAgICAgICAgICMgREVNU0VMQkVOIFJlYWQpLiBMZWVyZXIgc2VpdF9z
ZXEgPSBFcnN0LVN5bmMgLT4gbnVyIEN1cnNvci4NCiAgICAgICAgICAgICAgICAgICAgJHJhdyA9
IFtzdHJpbmddJHFbJ3NlaXRfc2VxJ10NCiAgICAgICAgICAgICAgICAgICAgaWYgKFtzdHJpbmdd
OjpJc051bGxPckVtcHR5KCRyYXcpKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAkY2hhbmdl
cyA9IEAoKQ0KICAgICAgICAgICAgICAgICAgICB9IGVsc2Ugew0KICAgICAgICAgICAgICAgICAg
ICAgICAgJHNxID0gMDsgW3ZvaWRdW2ludF06OlRyeVBhcnNlKCRyYXcsIFtyZWZdJHNxKQ0KICAg
ICAgICAgICAgICAgICAgICAgICAgJGNoYW5nZXMgPSBAKCRsb2cgfCBXaGVyZS1PYmplY3QgeyAk
bnVsbCAtbmUgJF8uc2VxIC1hbmQgW2ludF0kXy5zZXEgLWd0ICRzcSB9KQ0KICAgICAgICAgICAg
ICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIFNlbmQtSnNvbk9iamVjdCAkUmVzcG9uc2Ug
QHsNCiAgICAgICAgICAgICAgICAgICAgICAgIHNlcnZlclRzICA9IChHZXQtRGF0ZSkuVG9Vbml2
ZXJzYWxUaW1lKCkuVG9TdHJpbmcoJ28nKQ0KICAgICAgICAgICAgICAgICAgICAgICAgc2VydmVy
U2VxID0gJG1heFNlcQ0KICAgICAgICAgICAgICAgICAgICAgICAgY2hhbmdlcyAgID0gW29iamVj
dFtdXSRjaGFuZ2VzDQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICB9IGVs
c2Ugew0KICAgICAgICAgICAgICAgICAgICAjIEJhY2t3YXJkLWNvbXBhdDogYWx0ZXIgV2FsbC1D
bG9jay1DdXJzb3IgKGFsdGUgQ2xpZW50cykuDQogICAgICAgICAgICAgICAgICAgICRzZWl0ID0g
W3N0cmluZ10kcVsnc2VpdCddDQogICAgICAgICAgICAgICAgICAgIFNlbmQtSnNvbk9iamVjdCAk
UmVzcG9uc2UgQHsNCiAgICAgICAgICAgICAgICAgICAgICAgIHNlcnZlclRzICA9IChHZXQtRGF0
ZSkuVG9Vbml2ZXJzYWxUaW1lKCkuVG9TdHJpbmcoJ28nKQ0KICAgICAgICAgICAgICAgICAgICAg
ICAgc2VydmVyU2VxID0gJG1heFNlcQ0KICAgICAgICAgICAgICAgICAgICAgICAgY2hhbmdlcyAg
ID0gKEdldC1DaGFuZ2VzU2luY2UgJHNlaXQpDQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAg
ICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgY29udGludWUNCiAgICAgICAgICAgIH0NCg0K
ICAgICAgICAgICAgIyA9PT09PSBQcm9maWxiaWxkZXIgKEF2YXRhcmUpID09PT09DQogICAgICAg
ICAgICAjIERhdGVpOiAkRGF0YURpci9hdmF0YXJzLzxpZD4uanBnICAgKEpQRUcsIHZvbSBDbGll
bnQgYXVmIDIwMHgyMDANCiAgICAgICAgICAgICMgaGVydW50ZXJnZXJlY2huZXQsIHVlYmxpY2gg
NS0yNSBLQikuDQogICAgICAgICAgICAjDQogICAgICAgICAgICAjIEJlcmVjaHRpZ3VuZzoNCiAg
ICAgICAgICAgICMgICBQT1NUL0RFTEVURTogU1UvRkEgT0RFUiBlaWdlbmUgUGVyc29uSWQgKFNl
bGYtU2VydmljZSkuDQogICAgICAgICAgICAjICAgR0VUOiAgICAgICAgIGFsbGUgZWluZ2Vsb2dn
dGVuIFVzZXIgKGltIEdyaWQgc2ljaHRiYXIpLg0KICAgICAgICAgICAgIw0KICAgICAgICAgICAg
IyBQT1NULUJvZHk6IHsgImRhdGFVcmwiOiAiZGF0YTppbWFnZS9qcGVnO2Jhc2U2NCw8Li4uPiIg
fQ0KICAgICAgICAgICAgIyAyNTAgS0IgaGFydGVyIENhcCAoZGVmZW5zaXYg4oCUIENsaWVudCBz
Y2hpY2t0IHR5cGlzY2ggPDMwIEtCKS4NCiAgICAgICAgICAgIGlmICgkUGF0aCAtbWF0Y2ggJ14v
YXBpL3BlcnNvbmVuLyhcZCspL2F2YXRhciQnKSB7DQogICAgICAgICAgICAgICAgJHBlcnNvbklk
ID0gJG1hdGNoZXNbMV0NCiAgICAgICAgICAgICAgICAkciA9IEdldC1SZWNodGUNCiAgICAgICAg
ICAgICAgICAkaXN0RWlnZW4gPSAoJG51bGwgLW5lICRyLm1laW5lUGVyc29uSWQgLWFuZCBbaW50
XSRwZXJzb25JZCAtZXEgW2ludF0kci5tZWluZVBlcnNvbklkKQ0KICAgICAgICAgICAgICAgICRp
c3RCZXJlY2h0aWd0ID0gKFRlc3QtSXN0QWRtaW4pIC1vciAkaXN0RWlnZW4NCiAgICAgICAgICAg
ICAgICAkYXZhdGFyRGlyID0gSm9pbi1QYXRoICREYXRhRGlyICdhdmF0YXJzJw0KICAgICAgICAg
ICAgICAgIGlmICgtbm90IChUZXN0LVBhdGggLUxpdGVyYWxQYXRoICRhdmF0YXJEaXIpKSB7DQog
ICAgICAgICAgICAgICAgICAgIHRyeSB7IE5ldy1JdGVtIC1JdGVtVHlwZSBEaXJlY3RvcnkgLVBh
dGggJGF2YXRhckRpciAtRm9yY2UgfCBPdXQtTnVsbCB9IGNhdGNoIHt9DQogICAgICAgICAgICAg
ICAgfQ0KICAgICAgICAgICAgICAgICRhdmF0YXJGaWxlID0gSm9pbi1QYXRoICRhdmF0YXJEaXIg
KCRwZXJzb25JZCArICcuanBnJykNCiAgICAgICAgICAgICAgICBpZiAoJE1ldGhvZCAtZXEgJ1BP
U1QnKSB7DQogICAgICAgICAgICAgICAgICAgIGlmICgtbm90ICRpc3RCZXJlY2h0aWd0KSB7IFNl
bmQtRXJyb3IgJFJlc3BvbnNlICdLZWluZSBCZXJlY2h0aWd1bmcnIDQwMzsgY29udGludWUgfQ0K
ICAgICAgICAgICAgICAgICAgICAkYm9keSA9IFJlYWQtQm9keSAkUmVxdWVzdA0KICAgICAgICAg
ICAgICAgICAgICBpZiAoLW5vdCAkYm9keSkgeyBTZW5kLUVycm9yICRSZXNwb25zZSAnQW5mcmFn
ZSB6dSBncm9zcycgNDEzOyBjb250aW51ZSB9DQogICAgICAgICAgICAgICAgICAgIHRyeSB7DQog
ICAgICAgICAgICAgICAgICAgICAgICAkb2JqID0gJGJvZHkgfCBDb252ZXJ0RnJvbS1Kc29uDQog
ICAgICAgICAgICAgICAgICAgICAgICAkZGF0YVVybCA9IFtzdHJpbmddJG9iai5kYXRhVXJsDQog
ICAgICAgICAgICAgICAgICAgICAgICBpZiAoLW5vdCAkZGF0YVVybCAtb3IgLW5vdCAkZGF0YVVy
bC5TdGFydHNXaXRoKCdkYXRhOmltYWdlLycpKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgU2VuZC1FcnJvciAkUmVzcG9uc2UgJ1VuZ3VlbHRpZ2VzIEJpbGRmb3JtYXQgKGVyd2FydGUg
ZGF0YTppbWFnZS8uLi47YmFzZTY0LC4uLiknIDQwMDsgY29udGludWUNCiAgICAgICAgICAgICAg
ICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgICRiYXNlNjQgPSAkZGF0YVVybCAt
cmVwbGFjZSAnXmRhdGE6aW1hZ2UvW2EtekEtWl0rO2Jhc2U2NCwnLCAnJw0KICAgICAgICAgICAg
ICAgICAgICAgICAgJGJ5dGVzID0gW1N5c3RlbS5Db252ZXJ0XTo6RnJvbUJhc2U2NFN0cmluZygk
YmFzZTY0KQ0KICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCRieXRlcy5MZW5ndGggLWd0IDI2
MjE0NCkgeyBTZW5kLUVycm9yICRSZXNwb25zZSAnQmlsZCB6dSBncm9zcyAobWF4IDI1MCBLQikn
IDQxMzsgY29udGludWUgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgW1N5c3RlbS5JTy5GaWxl
XTo6V3JpdGVBbGxCeXRlcygkYXZhdGFyRmlsZSwgJGJ5dGVzKQ0KICAgICAgICAgICAgICAgICAg
ICAgICAgIyBhdmF0YXJUcyBpbiBwbGFudW5nLmpzb24gc2V0emVuLCBkYW1pdCBkZXIgQ2FjaGUt
QnVzdGVyDQogICAgICAgICAgICAgICAgICAgICAgICAjIG5hY2ggUmVsb2FkIGJla2FubnQgaXN0
IChDbGllbnQgaGFlbmd0ID90cz08YXZhdGFyVHM+DQogICAgICAgICAgICAgICAgICAgICAgICAj
IGFuIGRpZSBCaWxkLVVSTCkuDQogICAgICAgICAgICAgICAgICAgICAgICAkdHMgPSBbbG9uZ10o
W0RhdGVUaW1lT2Zmc2V0XTo6VXRjTm93LlRvVW5peFRpbWVNaWxsaXNlY29uZHMoKSkNCiAgICAg
ICAgICAgICAgICAgICAgICAgIEludm9rZS1XaXRoRmlsZUxvY2sgJ3BsYW51bmcuanNvbicgew0K
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICRwbGFudW5nID0gUmVhZC1Kc29uT2JqZWN0ICdw
bGFudW5nLmpzb24nDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCRudWxsIC1uZSAk
cGxhbnVuZyAtYW5kICRwbGFudW5nLnBlcnNvbmVuKSB7DQogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGZvcmVhY2ggKCRwIGluICRwbGFudW5nLnBlcnNvbmVuKSB7DQogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoW3N0cmluZ10kcC5pZCAtZXEgW3N0cmluZ10k
cGVyc29uSWQpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAo
JHAuUFNPYmplY3QuUHJvcGVydGllc1snYXZhdGFyVHMnXSkgeyAkcC5hdmF0YXJUcyA9ICR0cyB9
DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSB7ICRwIHwgQWRk
LU1lbWJlciAtTm90ZVByb3BlcnR5TmFtZSAnYXZhdGFyVHMnIC1Ob3RlUHJvcGVydHlWYWx1ZSAk
dHMgLUZvcmNlIH0NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVh
aw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFdyaXRl
LUpzb25PYmplY3QgJ3BsYW51bmcuanNvbicgJHBsYW51bmcgfCBPdXQtTnVsbA0KICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgIH0gfCBPdXQtTnVs
bA0KICAgICAgICAgICAgICAgICAgICAgICAgV3JpdGUtTG9nRWludHJhZyAnYXZhdGFyLmdlc2V0
enQnIEB7IHBlcnNvbklkID0gJHBlcnNvbklkOyBieXRlcyA9ICRieXRlcy5MZW5ndGggfQ0KICAg
ICAgICAgICAgICAgICAgICAgICAgU2VuZC1Kc29uT2JqZWN0ICRSZXNwb25zZSBAeyBzdGF0dXMg
PSAnZ2VzcGVpY2hlcnQnOyBieXRlcyA9ICRieXRlcy5MZW5ndGg7IGF2YXRhclRzID0gJHRzIH0N
CiAgICAgICAgICAgICAgICAgICAgfSBjYXRjaCB7DQogICAgICAgICAgICAgICAgICAgICAgICBT
ZW5kLUVycm9yICRSZXNwb25zZSAoIkF2YXRhci1VcGxvYWQgZmVobGdlc2NobGFnZW46ICIgKyAk
Xy5FeGNlcHRpb24uTWVzc2FnZSkgNTAwDQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAg
ICAgICAgICAgICAgY29udGludWUNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAg
aWYgKCRNZXRob2QgLWVxICdERUxFVEUnKSB7DQogICAgICAgICAgICAgICAgICAgIGlmICgtbm90
ICRpc3RCZXJlY2h0aWd0KSB7IFNlbmQtRXJyb3IgJFJlc3BvbnNlICdLZWluZSBCZXJlY2h0aWd1
bmcnIDQwMzsgY29udGludWUgfQ0KICAgICAgICAgICAgICAgICAgICB0cnkgew0KICAgICAgICAg
ICAgICAgICAgICAgICAgaWYgKFRlc3QtUGF0aCAtTGl0ZXJhbFBhdGggJGF2YXRhckZpbGUpIHsN
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZW1vdmUtSXRlbSAtTGl0ZXJhbFBhdGggJGF2
YXRhckZpbGUgLUZvcmNlIC1FcnJvckFjdGlvbiBTaWxlbnRseUNvbnRpbnVlDQogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgV3JpdGUtTG9nRWludHJhZyAnYXZhdGFyLmVudGZlcm50JyBAeyBw
ZXJzb25JZCA9ICRwZXJzb25JZCB9DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAg
ICAgICAgICAgICAgICAgICBJbnZva2UtV2l0aEZpbGVMb2NrICdwbGFudW5nLmpzb24nIHsNCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAkcGxhbnVuZyA9IFJlYWQtSnNvbk9iamVjdCAncGxh
bnVuZy5qc29uJw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICgkbnVsbCAtbmUgJHBs
YW51bmcgLWFuZCAkcGxhbnVuZy5wZXJzb25lbikgew0KICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBmb3JlYWNoICgkcCBpbiAkcGxhbnVuZy5wZXJzb25lbikgew0KICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgaWYgKFtzdHJpbmddJHAuaWQgLWVxIFtzdHJpbmddJHBl
cnNvbklkIC1hbmQgJHAuUFNPYmplY3QuUHJvcGVydGllc1snYXZhdGFyVHMnXSkgew0KICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRwLlBTT2JqZWN0LlByb3BlcnRpZXMu
UmVtb3ZlKCdhdmF0YXJUcycpDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgYnJlYWsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBXcml0ZS1Kc29uT2JqZWN0ICdwbGFudW5nLmpzb24nICRwbGFudW5nIHwgT3V0LU51bGwNCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICB9IHwg
T3V0LU51bGwNCiAgICAgICAgICAgICAgICAgICAgICAgIFNlbmQtSnNvbk9iamVjdCAkUmVzcG9u
c2UgQHsgc3RhdHVzID0gJ2dlbG9lc2NodCcgfQ0KICAgICAgICAgICAgICAgICAgICB9IGNhdGNo
IHsNCiAgICAgICAgICAgICAgICAgICAgICAgIFNlbmQtRXJyb3IgJFJlc3BvbnNlICgiQXZhdGFy
LUxvZXNjaGVuIGZlaGxnZXNjaGxhZ2VuOiAiICsgJF8uRXhjZXB0aW9uLk1lc3NhZ2UpIDUwMA0K
ICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlDQogICAg
ICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgIyBBdmF0YXItU3RhdGlj
LVNlcnZpbmc6IC9kYXRhL2F2YXRhcnMvPGlkPi5qcGcgbGllc3QgZGlyZWt0IGF1cw0KICAgICAg
ICAgICAgIyAkRGF0YURpci9hdmF0YXJzLy4gQmV3dXNzdCBlaWdlbmVyIFBmYWQgc3RhdHQgdWVi
ZXIgUmVzb2x2ZS0NCiAgICAgICAgICAgICMgU2FmZVBhdGgsIHdlaWwgZG9ydCBkZXIgQXNzZXQt
Q2FjaGUtUm9vdCBnZW51dHp0IHdpcmQgKEF2YXRhcmUNCiAgICAgICAgICAgICMgbGllZ2VuIGFi
ZXIgdW50ZXIgRGF0YURpcikuDQogICAgICAgICAgICBpZiAoJFBhdGggLW1hdGNoICdeL2RhdGEv
YXZhdGFycy8oXGQrKVwuanBnJCcgLWFuZCAkTWV0aG9kIC1lcSAnR0VUJykgew0KICAgICAgICAg
ICAgICAgICRhdmF0YXJGaWxlID0gSm9pbi1QYXRoIChKb2luLVBhdGggJERhdGFEaXIgJ2F2YXRh
cnMnKSAoJG1hdGNoZXNbMV0gKyAnLmpwZycpDQogICAgICAgICAgICAgICAgaWYgKFRlc3QtUGF0
aCAtTGl0ZXJhbFBhdGggJGF2YXRhckZpbGUgLVBhdGhUeXBlIExlYWYpIHsNCiAgICAgICAgICAg
ICAgICAgICAgJGNvbnRlbnQgPSBbU3lzdGVtLklPLkZpbGVdOjpSZWFkQWxsQnl0ZXMoJGF2YXRh
ckZpbGUpDQogICAgICAgICAgICAgICAgICAgICRSZXNwb25zZS5TdGF0dXNDb2RlID0gMjAwDQog
ICAgICAgICAgICAgICAgICAgICRSZXNwb25zZS5Db250ZW50VHlwZSA9ICdpbWFnZS9qcGVnJw0K
ICAgICAgICAgICAgICAgICAgICBBZGQtU2VjdXJpdHlIZWFkZXJzICRSZXNwb25zZQ0KICAgICAg
ICAgICAgICAgICAgICAkUmVzcG9uc2UuQ29udGVudExlbmd0aDY0ID0gJGNvbnRlbnQuTGVuZ3Ro
DQogICAgICAgICAgICAgICAgICAgICRSZXNwb25zZS5PdXRwdXRTdHJlYW0uV3JpdGUoJGNvbnRl
bnQsIDAsICRjb250ZW50Lkxlbmd0aCkNCiAgICAgICAgICAgICAgICAgICAgJFJlc3BvbnNlLk91
dHB1dFN0cmVhbS5DbG9zZSgpDQogICAgICAgICAgICAgICAgfSBlbHNlIHsNCiAgICAgICAgICAg
ICAgICAgICAgU2VuZC1FcnJvciAkUmVzcG9uc2UgKCJBdmF0YXIgbmljaHQgZ2VmdW5kZW46ICIg
KyAkUGF0aCkgNDA0DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIGNvbnRpbnVl
DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICMgPT09PT0gU3RhdGlzY2hlIERhdGVpZW4g
PT09PT0NCiAgICAgICAgICAgIGlmICgkUGF0aCAtZXEgJy8nIC1vciAkUGF0aCAtZXEgJycpIHsg
JFBhdGggPSAnL2luZGV4Lmh0bWwnIH0NCiAgICAgICAgICAgICRSZWxQYXRoID0gJFBhdGguVHJp
bVN0YXJ0KCcvJykNCiAgICAgICAgICAgICMgZGF0YS8tRGlyZWt0enVncmlmZi1HYXRlIChTcHJp
bnQgMSDigJQgU2ljaGVyaGVpdHMtTm90YnJlbXNlIDIwMjYtMDUtMjgpOg0KICAgICAgICAgICAg
IyBHRVQgL2RhdGEvYWRtaW4uanNvbiAodW5kIHBsYW51bmcuanNvbiwgbG9nYnVjaC5qc29uLCBo
aW53ZWlzZS5qc29uLA0KICAgICAgICAgICAgIyBjaGFuZ2VzLmpzb24sIHNvd2llIGFsbGUgQmFj
a3VwLURhdGVpZW4pIGxpZWZlcnRlIHZvcmhlciBSb2gtSlNPTiBPSE5FDQogICAgICAgICAgICAj
IEF1dGgtQ2hlY2suIEF2YXRhci1TdWJwZmFkIHdpcmQgb2JlbiBzZXBhcmF0IGdlcm91dGV0LiBB
bGxlcyBhbmRlcmUNCiAgICAgICAgICAgICMgdW50ZXIgL2RhdGEvIGRhcmYgTlVSIGR1cmNoIGVp
bmUgZXhwbGl6aXRlIFdoaXRlbGlzdCAoU3RhdGlzdGlrLSB1bmQNCiAgICAgICAgICAgICMgTG9n
YnVjaC1UYXJuLU1hcmt1cHMsIHdlaXRlciB1bnRlbiBnZWdhdGVkKS4gU29uc3QgNDA0Lg0KICAg
ICAgICAgICAgIyBNaXR0ZWlsdW5ncy1VcGxvYWRzIChTcHJpbnQgRC0zYiwgMjAyNi0wNS0yOSk6
IHZvbSBTVSBob2NoZ2VsYWRlbmUNCiAgICAgICAgICAgICMgQmlsZGVyICsgUERGcyB1bnRlciBk
YXRhL3VwbG9hZHMvbWl0dGVpbHVuZ2VuL21fPHRzPl88cmFuZD4uPGV4dD4uDQogICAgICAgICAg
ICAjIEVuZHVuZ3MtV2hpdGVsaXN0IHZlcmhpbmRlcnQgQ29kZS1TbXVnZ2xpbmcgdWViZXIgZGVu
IFBmYWQuDQogICAgICAgICAgICAkaXN0TWl0dGVpbHVuZ1VwbG9hZCA9ICgkUmVsUGF0aCAtbWF0
Y2ggJ15kYXRhL3VwbG9hZHMvbWl0dGVpbHVuZ2VuL21fXGQrX1thLXowLTldK1wuKGpwZ3xwbmd8
d2VicHxwZGYpJCcpDQogICAgICAgICAgICBpZiAoJFJlbFBhdGggLWxpa2UgJ2RhdGEvKicgLWFu
ZA0KICAgICAgICAgICAgICAgICRSZWxQYXRoIC1uZSAnZGF0YS9tYWluZnJhbWUuaHRtbCcgLWFu
ZA0KICAgICAgICAgICAgICAgICRSZWxQYXRoIC1uZSAnZGF0YS9zYW5pdGl6ZXIuaHRtbCcgLWFu
ZA0KICAgICAgICAgICAgICAgIC1ub3QgJGlzdE1pdHRlaWx1bmdVcGxvYWQpIHsNCiAgICAgICAg
ICAgICAgICBMb2ctQXBpICgnR0FURSA0MDQgezB9IChkYXRhLy1EaXJla3R6dWdyaWZmIGJsb2Nr
aWVydCknIC1mICRSZWxQYXRoKQ0KICAgICAgICAgICAgICAgIFNlbmQtRXJyb3IgJFJlc3BvbnNl
ICgiVW5iZWthbm50ZXIgRW5kcHVua3Q6ICRNZXRob2QgJFBhdGgiKSA0MDQNCiAgICAgICAgICAg
ICAgICBjb250aW51ZQ0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgIyBWZXJzY2hsZWllcnVu
Z3MtRmlsdGVyOiBkYXMgU3RhdGlzdGlrLSB1bmQgTG9nYnVjaC1Nb2R1bCBzYW10DQogICAgICAg
ICAgICAjIE1hcmt1cC1GcmFnbWVudCB3ZXJkZW4gbnVyIGFuIEJlcmVjaHRpZ3RlIGF1c2dlbGll
ZmVydC4NCiAgICAgICAgICAgICMgRGlyZWt0ZXIgWnVncmlmZiBkdXJjaCBVbmJlcmVjaHRpZ3Rl
IChCcm93c2VyLVVSTC1FaW5nYWJlLA0KICAgICAgICAgICAgIyBTb3VyY2UtU3RvZWJlcm4pIGJl
a29tbXQgNDA0IOKAlCB3aWUgYmVpIGplZGVtIG5pY2h0IGV4aXN0aWVyZW5kZW4NCiAgICAgICAg
ICAgICMgUGZhZCwga2VpbiBTdGF0dXNjb2RlLVZlcnJhdC4NCiAgICAgICAgICAgIGlmICgkUmVs
UGF0aCAtZXEgJ2pzL3N0YXRpc3Rpay5qcycgLW9yICRSZWxQYXRoIC1lcSAnZGF0YS9tYWluZnJh
bWUuaHRtbCcpIHsNCiAgICAgICAgICAgICAgICBpZiAoLW5vdCAoVGVzdC1EYXJmQmVyZWljaCAn
c3RhdGlzdGlrJykpIHsNCiAgICAgICAgICAgICAgICAgICAgTG9nLUFwaSAoJ0dBVEUgNDA0IHsw
fSAoa2VpbiBTdGF0aXN0aWstUmVjaHQpJyAtZiAkUmVsUGF0aCkNCiAgICAgICAgICAgICAgICAg
ICAgU2VuZC1FcnJvciAkUmVzcG9uc2UgKCJVbmJla2FubnRlciBFbmRwdW5rdDogJE1ldGhvZCAk
UGF0aCIpIDQwNA0KICAgICAgICAgICAgICAgICAgICBjb250aW51ZQ0KICAgICAgICAgICAgICAg
IH0NCiAgICAgICAgICAgIH0gZWxzZWlmICgkUmVsUGF0aCAtZXEgJ2pzL2xvZ2J1Y2guanMnIC1v
ciAkUmVsUGF0aCAtZXEgJ2RhdGEvc2FuaXRpemVyLmh0bWwnKSB7DQogICAgICAgICAgICAgICAg
aWYgKC1ub3QgKFRlc3QtRGFyZkJlcmVpY2ggJ2xvZ2J1Y2gnKSkgew0KICAgICAgICAgICAgICAg
ICAgICBMb2ctQXBpICgnR0FURSA0MDQgezB9IChrZWluIExvZ2J1Y2gtUmVjaHQpJyAtZiAkUmVs
UGF0aCkNCiAgICAgICAgICAgICAgICAgICAgU2VuZC1FcnJvciAkUmVzcG9uc2UgKCJVbmJla2Fu
bnRlciBFbmRwdW5rdDogJE1ldGhvZCAkUGF0aCIpIDQwNA0KICAgICAgICAgICAgICAgICAgICBj
b250aW51ZQ0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgICRG
aWxlUGF0aCA9IFJlc29sdmUtU2FmZVBhdGggJFJlbFBhdGgNCiAgICAgICAgICAgICR2b25GYWxs
YmFjayA9ICRmYWxzZQ0KICAgICAgICAgICAgIyBTaGFyZS1GYWxsYmFjazogd2VubiBkaWUgRGF0
ZWkgbG9rYWwgZmVobHQgKHouQi4geGxzeC5mdWxsLm1pbi5qcw0KICAgICAgICAgICAgIyB3aXJk
IGJld3Vzc3QgbmljaHQgaW4gZGVuIENsaWVudC1DYWNoZSBrb3BpZXJ0KSwgdmVyc3VjaGUgc2ll
DQogICAgICAgICAgICAjIHZvbSBrb25maWd1cmllcnRlbiBBc3NldEZhbGxiYWNrLVBmYWQgbmFj
aHp1bGFkZW4uDQogICAgICAgICAgICBpZiAoKC1ub3QgJEZpbGVQYXRoIC1vciAtbm90IChUZXN0
LVBhdGggLUxpdGVyYWxQYXRoICRGaWxlUGF0aCAtUGF0aFR5cGUgTGVhZikpIC1hbmQgJHNjcmlw
dDpBc3NldEZhbGxiYWNrKSB7DQogICAgICAgICAgICAgICAgdHJ5IHsNCiAgICAgICAgICAgICAg
ICAgICAgJGZhbGxiYWNrVHJ5ID0gSm9pbi1QYXRoICRzY3JpcHQ6QXNzZXRGYWxsYmFjayAkUmVs
UGF0aA0KICAgICAgICAgICAgICAgICAgICAkZmFsbGJhY2tOb3JtID0gW1N5c3RlbS5JTy5QYXRo
XTo6R2V0RnVsbFBhdGgoJGZhbGxiYWNrVHJ5KQ0KICAgICAgICAgICAgICAgICAgICAkZmFsbGJh
Y2tSb290Tm9ybSA9IFtTeXN0ZW0uSU8uUGF0aF06OkdldEZ1bGxQYXRoKCRzY3JpcHQ6QXNzZXRG
YWxsYmFjaykNCiAgICAgICAgICAgICAgICAgICAgaWYgKCRmYWxsYmFja05vcm0uU3RhcnRzV2l0
aCgkZmFsbGJhY2tSb290Tm9ybSwgW1N5c3RlbS5TdHJpbmdDb21wYXJpc29uXTo6T3JkaW5hbEln
bm9yZUNhc2UpIC1hbmQNCiAgICAgICAgICAgICAgICAgICAgICAgIChUZXN0LVBhdGggLUxpdGVy
YWxQYXRoICRmYWxsYmFja05vcm0gLVBhdGhUeXBlIExlYWYpKSB7DQogICAgICAgICAgICAgICAg
ICAgICAgICAkRmlsZVBhdGggPSAkZmFsbGJhY2tOb3JtDQogICAgICAgICAgICAgICAgICAgICAg
ICAkdm9uRmFsbGJhY2sgPSAkdHJ1ZQ0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAg
ICAgICAgfSBjYXRjaCB7DQogICAgICAgICAgICAgICAgICAgIExvZy1BcGkgKCdGQUxMQkFDSy1G
RUhMRVIgezB9OiB7MX0nIC1mICRSZWxQYXRoLCAkXy5FeGNlcHRpb24uTWVzc2FnZSkNCiAgICAg
ICAgICAgICAgICB9DQogICAgICAgICAgICB9DQogICAgICAgICAgICBpZiAoJEZpbGVQYXRoIC1h
bmQgKFRlc3QtUGF0aCAtTGl0ZXJhbFBhdGggJEZpbGVQYXRoIC1QYXRoVHlwZSBMZWFmKSkgew0K
ICAgICAgICAgICAgICAgICRleHQgPSBbU3lzdGVtLklPLlBhdGhdOjpHZXRFeHRlbnNpb24oJEZp
bGVQYXRoKS5Ub0xvd2VyKCkNCiAgICAgICAgICAgICAgICAkbWltZSA9IGlmICgkTWltZVR5cGVz
LkNvbnRhaW5zS2V5KCRleHQpKSB7ICRNaW1lVHlwZXNbJGV4dF0gfSBlbHNlIHsgJ2FwcGxpY2F0
aW9uL29jdGV0LXN0cmVhbScgfQ0KICAgICAgICAgICAgICAgICRjb250ZW50ID0gW1N5c3RlbS5J
Ty5GaWxlXTo6UmVhZEFsbEJ5dGVzKCRGaWxlUGF0aCkNCiAgICAgICAgICAgICAgICAkUmVzcG9u
c2UuU3RhdHVzQ29kZSA9IDIwMA0KICAgICAgICAgICAgICAgICRSZXNwb25zZS5Db250ZW50VHlw
ZSA9ICRtaW1lDQogICAgICAgICAgICAgICAgQWRkLVNlY3VyaXR5SGVhZGVycyAkUmVzcG9uc2UN
CiAgICAgICAgICAgICAgICAkUmVzcG9uc2UuQ29udGVudExlbmd0aDY0ID0gJGNvbnRlbnQuTGVu
Z3RoDQogICAgICAgICAgICAgICAgJFJlc3BvbnNlLk91dHB1dFN0cmVhbS5Xcml0ZSgkY29udGVu
dCwgMCwgJGNvbnRlbnQuTGVuZ3RoKQ0KICAgICAgICAgICAgICAgICRSZXNwb25zZS5PdXRwdXRT
dHJlYW0uQ2xvc2UoKQ0KICAgICAgICAgICAgICAgIGlmICgkdm9uRmFsbGJhY2spIHsgTG9nLUFw
aSAoJ0ZJTEUgMjAwIHswfSAoRmFsbGJhY2ssIHsxfSBCeXRlcyknIC1mICRSZWxQYXRoLCAkY29u
dGVudC5MZW5ndGgpIH0NCiAgICAgICAgICAgIH0gZWxzZSB7DQogICAgICAgICAgICAgICAgTG9n
LUFwaSAoJ0ZJTEUgNDA0IHswfSAod2VkZXIgaW0gUm9vdCBub2NoIHVlYmVyIEFzc2V0RmFsbGJh
Y2sgZ2VmdW5kZW4pJyAtZiAkUmVsUGF0aCkNCiAgICAgICAgICAgICAgICBTZW5kLUVycm9yICRS
ZXNwb25zZSAoIlVuYmVrYW5udGVyIEVuZHB1bmt0OiAkTWV0aG9kICRQYXRoIikgNDA0DQogICAg
ICAgICAgICB9DQogICAgICAgIH0NCiAgICAgICAgY2F0Y2ggew0KICAgICAgICAgICAgTG9nLUFw
aSAoJ0VYQ0VQVElPTiB7MH0gezF9OiB7Mn0nIC1mICRNZXRob2QsICRQYXRoLCAkXy5FeGNlcHRp
b24uTWVzc2FnZSkNCiAgICAgICAgICAgIHRyeSB7IFNlbmQtRXJyb3IgJFJlc3BvbnNlICRfLkV4
Y2VwdGlvbi5NZXNzYWdlIDUwMCB9IGNhdGNoIHt9DQogICAgICAgIH0NCiAgICB9DQp9DQpjYXRj
aCB7DQogICAgV3JpdGUtSG9zdCAoJ1NlcnZlci1GZWhsZXI6IHswfScgLWYgJF8uRXhjZXB0aW9u
Lk1lc3NhZ2UpDQogICAgTG9nLUFwaSAoJ01BSU4tTE9PUCBFWENFUFRJT046IHswfScgLWYgJF8u
RXhjZXB0aW9uLk1lc3NhZ2UpDQp9DQpmaW5hbGx5IHsNCiAgICAkV2F0Y2hkb2dUaW1lci5TdG9w
KCkNCiAgICBpZiAoJExpc3RlbmVyLklzTGlzdGVuaW5nKSB7ICRMaXN0ZW5lci5TdG9wKCkgfQ0K
ICAgIExvZy1BcGkgJ1NIVVRET1dOJw0KICAgIFdyaXRlLUhvc3QgJ1NlcnZlciBiZWVuZGV0LicN
Cn0NCg==
### FILE: stop.bat | 1307
QGVjaG8gb2ZmDQpzZXRsb2NhbCBlbmFibGVkZWxheWVkZXhwYW5zaW9uDQpjaGNwIDY1MDAxID5u
dWwgMj4mMQ0KdGl0bGUgVkkzIERHTC1QbGFudW5nIC0gU3RvcA0KDQo6OiA9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCjo6ICBWSTMg
REdMLVBsYW51bmcg4oCUIFN0b3AtU2tyaXB0DQo6Og0KOjogIEJlZW5kZXQgc2FlbXRsaWNoZSBQ
b3dlclNoZWxsLVByb3plc3NlLCBkaWUgc2VydmVyLnBzMQ0KOjogIGF1c2Z1ZWhyZW4uIE5vdHdl
bmRpZyB6LkIuIHdlbm4gUTpcX2FwcCB1bWJlbmFubnQvZ2Vsb2VzY2h0DQo6OiAgd2VyZGVuIHNv
bGwgdW5kIGVpbiBhbHRlciBTZXJ2ZXIgbm9jaCBEYXRlaS1IYW5kbGVzIGhhZWx0Lg0KOjogPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
DQoNCmVjaG8uDQplY2hvICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQ0KZWNobyAgIFZJMyBER0wtUGxhbnVuZyAtIFN0b3ANCmVjaG8gID09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQplY2hvLg0KDQpzZXQgIkJFRU5ERVQ9MCIN
CmZvciAvZiAidXNlYmFja3EgdG9rZW5zPSoiICUlUCBpbiAoYHBvd2Vyc2hlbGwgLU5vUHJvZmls
ZSAtQ29tbWFuZCAiR2V0LUNpbUluc3RhbmNlIFdpbjMyX1Byb2Nlc3MgLUVycm9yQWN0aW9uIFNp
bGVudGx5Q29udGludWUgfCBXaGVyZS1PYmplY3QgeyAoJF8uTmFtZSAtZXEgJ3Bvd2Vyc2hlbGwu
ZXhlJyAtb3IgJF8uTmFtZSAtZXEgJ3B3c2guZXhlJykgLWFuZCAkXy5Db21tYW5kTGluZSAtYW5k
ICRfLkNvbW1hbmRMaW5lIC1tYXRjaCAnc2VydmVyW1xcdy5dKlwucHMxJyB9IHwgU2VsZWN0LU9i
amVjdCAtRXhwYW5kUHJvcGVydHkgUHJvY2Vzc0lkImApIGRvICgNCiAgICBlY2hvICAgQmVlbmRl
IFBvd2VyU2hlbGwgUElEICUlUCBeKHNlcnZlci5wczFeKS4uLg0KICAgIHRhc2traWxsIC9QSUQg
JSVQIC9GID5udWwgMj4mMQ0KICAgIHNldCAvYSBCRUVOREVUPSFCRUVOREVUISsxDQopDQoNCmlm
ICIhQkVFTkRFVCEiPT0iMCIgKA0KICAgIGVjaG8gICBLZWluZSBsYXVmZW5kZW4gc2VydmVyLnBz
MS1Qcm96ZXNzZSBnZWZ1bmRlbi4NCikgZWxzZSAoDQogICAgZWNoby4NCiAgICBlY2hvICAgJUJF
RU5ERVQlIFByb3plc3NeKGVeKSBiZWVuZGV0LiBEYXRlaS1Mb2NrcyBzaW5kIGpldHp0IGZyZWku
DQopDQoNCmVjaG8uDQp0aW1lb3V0IC90IDMgL25vYnJlYWsgPm51bA0KZXhpdCAvYiAwDQo=
### FILE: style.css | 234532
LyogPT09IFZJMyBER0wtUGxhbnVuZyDigJQgU3R5bGVzaGVldCAoRXhjZWwtdHJldWVzIExheW91
dCkgPT09CiAgIFN0YW5kOiAyMDI2LTA1LTE0ICovCgoqLCAqOjpiZWZvcmUsICo6OmFmdGVyIHsg
Ym94LXNpemluZzogYm9yZGVyLWJveDsgbWFyZ2luOiAwOyBwYWRkaW5nOiAwOyB9CgovKiA9PT09
PSBDU1MtVmFyaWFibGVuID09PT09ICovCjpyb290IHsKICAgIC8qIEdlZGVja3RlcywgcHJvZmVz
c2lvbmVsbGVzIEZhcmJzY2hlbWEgKi8KICAgIC0tYmctcHJpbWFyeTogIzJDM0U1MDsKICAgIC0t
YmctcHJpbWFyeS1kYXJrOiAjMjQzMzQyOwogICAgLS1iZy1ib2R5OiAjRjBGMUYzOwogICAgLS1i
Zy1jYXJkOiAjRkZGRkZGOwogICAgLS1iZy1jYXJkLWFsdDogI0Y1RjZGODsKICAgIC0tYmctdG9v
bGJhcjogI0U4RUFFRDsKICAgIC0tYmctaG92ZXI6ICNFOEVERjI7CiAgICAtLWJnLWFjdGl2ZTog
I0Q2REVFNjsKICAgIC0tYmctaW5wdXQ6ICNGRkZGRkY7CiAgICAtLWJnLXNpZGViYXI6ICNGMEYx
RjM7CiAgICAtLWJnLW5hdi1ob3ZlcjogI0RERTZFRjsgICAvKiBTaWRlYmFyLU5hdjogZXR3YXMg
ZGV1dGxpY2hlciBibGF1LWdldG9lbnRlciBIb3ZlciAqLwogICAgLS1iZy1uYXYtYWt0aXY6ICND
NkQzRTE7ICAgLyogU2lkZWJhci1OYXY6IGtsYXIgc2ljaHRiYXJlciBBa3Rpdi1adXN0YW5kICov
CgogICAgLS10ZXh0LXByaW1hcnk6ICMyQzNFNTA7CiAgICAtLXRleHQtc2Vjb25kYXJ5OiAjNUQ2
RDdFOwogICAgLS10ZXh0LW11dGVkOiAjNjM2RTcyOyAgIC8qIEtvbnRyYXN0IDQuNjc6MSBhdWYg
LS1iZy1ib2R5ICh2b3JoZXIgIzk1QTVBNiA9IDIuMjU6MSwgV0NBRy1BQSB2ZXJmZWhsdCkgKi8K
ICAgIC0tdGV4dC1oZWFkaW5nOiAjMkMzRTUwOwogICAgLS10ZXh0LW9uLXByaW1hcnk6ICNFQ0Yw
RjE7CgogICAgLS1ib3JkZXItY29sb3I6ICNENUQ4REM7CiAgICAtLWJvcmRlci1saWdodDogI0U1
RThFQjsKICAgIC0tYm9yZGVyLXN0cm9uZzogI0FFQjZCRjsKICAgIC8qIEVpZ2VuZSBHcmlkLUxp
bmllbmZhcmJlOiAtLWJvcmRlci1saWdodCAoI0U1RThFQikgd2FyIGF1ZiBsZWVyZW4gd2Vpc3Nl
bgogICAgICAgWmVsbGVuIHByYWt0aXNjaCB1bnNpY2h0YmFyICgiWmVsbGJlZ3Jlbnp1bmdzbGlu
aWVuIHdlaXNzL2R1cmNoc2ljaHRpZyIpLgogICAgICAgRGV1dGxpY2gga3JhZWZ0aWdlciAodGFi
ZWxsZW5rYWxrdWxhdGlvbnMtdHlwaXNjaGVzIEdyYXUpLCBkYW1pdCBkYXMKICAgICAgIFJhc3Rl
ciBhdWNoIGF1ZiByZWluIHdlaXNzZW4gWmVsbGVuIG9obmUgU3BhbHRlbi1UaW50IGtsYXIgZXJr
ZW5uYmFyCiAgICAgICBibGVpYnQg4oCUIGVnYWwgYW4gd2VsY2hlciBTdGVsbGUgZGVyIFRhZmVs
LiAqLwogICAgLS1ncmlkLWxpbmllOiAjQkZDOEQ0OwogICAgLS1zaGFkb3ctbGlnaHQ6IHJnYmEo
MCwwLDAsMC4wNCk7CiAgICAtLXNoYWRvdy1tZWRpdW06IHJnYmEoMCwwLDAsMC4xMCk7CiAgICAt
LXNoYWRvdy1tb2RhbDogMCA4cHggMzJweCByZ2JhKDAsMCwwLDAuMjApOwogICAgLS10cmFuc2l0
aW9uLXN0ZDogYWxsIDAuMTVzIGVhc2U7CgogICAgLyogR3JpZC1EaW1lbnNpb25lbiDigJQga29t
cGFrdCB3aWUgRXhjZWwgKi8KICAgIC0temVsbGUtYnJlaXRlOiA2MnB4OwogICAgLS16ZWxsZS1o
b2VoZTogMjJweDsKICAgIC0tbmFtZW4tYnJlaXRlOiAyNjBweDsKICAgIC0ta29wZi16ZWlsZW4t
aG9laGU6IDIwcHg7CgogICAgLS10YWctbm9ybWFsOiAjRkZGRkZGOwogICAgLS10YWctd29jaGVu
ZW5kZTogI0VERjJGODsgICAgIC8qIHNlaHIgaGVsbGVzIEJsYXUsIHJ1aGlnIChNaS1Lby1GZWVk
YmFjazoga2VpbiBMaWxhKSAqLwogICAgLS10YWctZmVpZXJ0YWc6ICNEN0U0RjA7ICAgICAgIC8q
IGV0d2FzIGtyYWVmdGlnZXJlcyBCbGF1LCBoZWJ0IHNpY2ggdm9tIFdFIGFiICovCiAgICAtLXRh
Zy1mZXJpZW46ICNFOEY1RUM7CiAgICAtLXRhZy1oZXV0ZTogIzJDM0U1MDsKICAgIC0tdGFnLXNv
bmRlcjogI0ZGRjlFNjsKCiAgICAvKiBHZWRlY2t0ZSBTY2hpY2h0ZmFyYmVuICovCiAgICAtLWZh
cmJlLWZydWVoOiAjQjcxQzFDOwogICAgLS1mYXJiZS1zcGFldDogIzFBNTI3NjsKICAgIC0tZmFy
YmUtbmFjaHQ6ICMxQjVFMjA7CiAgICAtLWZhcmJlLWVyZm9sZzogIzI3ODk2RDsKICAgIC0tZmFy
YmUtZmVobGVyOiAjQjAzQTJFOwogICAgLS1mYXJiZS13YXJudW5nOiAjQ0E2RjFFOwogICAgLS1m
YXJiZS1pbmZvOiAjMkMzRTUwOwogICAgLS1mYXJiZS1ha3plbnQ6ICM0YTkwZTI7CgogICAgLyog
QnJhbmQtUHJpbWFlciAod2FyIHZvcmhlciBpbXBsaXppdCB1ZWJlciAtLXRleHQtaGVhZGluZzsK
ICAgICAgIHdpcmQgYW4gdmllbGVuIFN0ZWxsZW4gZGlyZWt0IHJlZmVyZW56aWVydCwgamV0enQg
c2F1YmVyIGRlZmluaWVydCkgKi8KICAgIC0tZmFyYmUtcHJpbWFlcjogdmFyKC0tdGV4dC1oZWFk
aW5nKTsKICAgIC0tZmFyYmUtcHJpbWFlci1ob3ZlcjogIzE0MzA0YTsKCiAgICAvKiBWZXJhbnR3
b3J0bGljaC1NYXJrZXIg4oCUIHRoZW1lLWZlc3Qgc3RhdHQgaGFyZGNvZGVkIEdvbGQgKCNGMUM0
MEYpICovCiAgICAtLWZhcmJlLXZlcmFudHdvcnRsaWNoOiB2YXIoLS1mYXJiZS13YXJudW5nKTsK
CiAgICAvKiBTcGFjaW5nLVNrYWxhIChzdGF0dCBIYXJkY29kZS1QaXhlbCB1ZWJlcmFsbCkgKi8K
ICAgIC0tc3AtMTogNHB4OwogICAgLS1zcC0yOiA4cHg7CiAgICAtLXNwLTM6IDEycHg7CiAgICAt
LXNwLTQ6IDE2cHg7CiAgICAtLXNwLTU6IDI0cHg7CiAgICAtLXNwLTY6IDMycHg7CiAgICAtLXNw
LTc6IDQ4cHg7CgogICAgLyogQm9yZGVyLVJhZGl1cy1Ta2FsYSAoVVgtQXVkaXQgU3ByaW50IDMu
MSwgMjAyNi0wNS0yOSkuCiAgICAgICBWb3JoZXI6IDQ3IHZlcnNjaGllZGVuZSBIZXgtV2VydGUg
ZnVlciBib3JkZXItcmFkaXVzIGltIENTUywKICAgICAgIGNoYW90aXNjaGVyIE1peCBhdXMgMy80
LzYvOC8xMC8xMnB4LiBKZXR6dCB2aWVyIHplbnRyYWxlCiAgICAgICBWYXJpYWJsZW4sIGRpZSBl
aW4ga29uc2lzdGVudGVyIFJlZmFjdG9yIHVlYmVyIGRpZSBoYWV1Zmlnc3RlbgogICAgICAgU3Rl
bGxlbiAoMy80LzYvMTBweCA9IH4xNDMgVHJlZmZlcikgYWJiaWxkZXQuICovCiAgICAtLXJhZGl1
cy14czogM3B4OyAgIC8qIGtsZWluZSBJbnB1dHMsIGtvbXBha3RlIEJhZGdlcyAqLwogICAgLS1y
YWRpdXMtc206IDRweDsgICAvKiBTdGFuZGFyZC1CdXR0b25zLCBub3JtYWxlIEthcnRlbiAqLwog
ICAgLS1yYWRpdXMtbWQ6IDZweDsgICAvKiBCYW5uZXIsIGdyb2Vzc2VyZSBDYXJkcyAqLwogICAg
LS1yYWRpdXMtbGc6IDEwcHg7ICAvKiBNb2RhbCwgVG9wLUxldmVsLUNvbnRhaW5lciAqLwoKICAg
IC8qIEZvbnQtU2l6ZS1Ta2FsYSAoVVgtQXVkaXQgU3ByaW50IDMuMykuIEJpc2hlciA4LTIwcHgg
dmVyc3RyZXV0LiAqLwogICAgLS1mcy14czogMTBweDsKICAgIC0tZnMtc206IDExcHg7CiAgICAt
LWZzLWJhc2U6IDEycHg7CiAgICAtLWZzLW1kOiAxM3B4OwogICAgLS1mcy1sZzogMTRweDsKICAg
IC0tZnMteGw6IDE2cHg7CiAgICAtLWZzLTJ4bDogMjBweDsKCiAgICAvKiBaLUluZGV4LUViZW5l
biAoc3RhdHQgMTAwIC8gMjAwIC8gMTAwMCAvIDk5OTkgaGFyZGNvZGVkKS4KICAgICAgIFdpY2h0
aWc6IFBhZ2UtUG9wb3ZlciBsaWVndCBVTlRFUiBkZW0gTW9kYWwsIE1vZGFsLVBvcG92ZXIgKHou
Qi4KICAgICAgIERyb3Bkb3ducyBpbiBNb2RhbGVuKSBEQVJVRUJFUi4gVG9hc3QgaW1tZXIgb2Jl
biBkcmF1Zi4gKi8KICAgIC0tei1iYXNlOiAxOwogICAgLS16LXN0aWNreTogNTsKICAgIC0tei1u
YXY6IDEwOwogICAgLS16LW92ZXJsYXk6IDEwMDsKICAgIC0tei1lZGl0b3I6IDIwMDsKICAgIC0t
ei1wb3BvdmVyLXBhZ2U6IDk5OTk7CiAgICAtLXotbW9kYWw6IDEwMDAwOwogICAgLS16LXBvcG92
ZXI6IDEwMTAwOwogICAgLS16LXRvYXN0OiAyMDAwMDsKCiAgICAvKiBTdGF0dXMtQmFubmVyIChS
ZWFkLW9ubHktSGlud2VpcywgT25ib2FyZGluZy1FbXB0eS1TdGF0ZSwgSW5saW5lLUluZm8pICov
CiAgICAtLWJhbm5lci1pbmZvLWJnOiAjRTNFRUY3OwogICAgLS1iYW5uZXItaW5mby1ib3JkZXI6
IHZhcigtLWZhcmJlLWFremVudCk7CiAgICAtLWJhbm5lci1pbmZvLXRleHQ6IHZhcigtLXRleHQt
aGVhZGluZyk7CiAgICAtLWJhbm5lci13YXJuLWJnOiAjRkJFRUREOwogICAgLS1iYW5uZXItd2Fy
bi1ib3JkZXI6IHZhcigtLWZhcmJlLXdhcm51bmcpOwogICAgLS1iYW5uZXItd2Fybi10ZXh0OiAj
OEE0QTEyOwogICAgLS1iYW5uZXItZXJmb2xnLWJnOiAjRENFRkU3OwogICAgLS1iYW5uZXItZXJm
b2xnLWJvcmRlcjogdmFyKC0tZmFyYmUtZXJmb2xnKTsKICAgIC0tYmFubmVyLWVyZm9sZy10ZXh0
OiAjMUE2MTQ5OwoKICAgIC8qIFN0YXRpc3Rpay1DaGFydC1QYWxldHRlIChVWC1BdWRpdCBTcHJp
bnQgMS4xLCAyMDI2LTA1LTI5KS4KICAgICAgIFRhZy1XZXJ0ZSBzaW5kIGRpZSBoaXN0b3Jpc2No
ZW4gSGV4IGF1cyBzdGF0aXN0aWsuanM7IE5pZ2h0LVdlcnRlCiAgICAgICBpbiBbZGF0YS10aGVt
ZT0ibmlnaHQiXSBzb3JnZW4gZsO8ciBsZXNiYXJlIEJhbGtlbiBhdWYgZHVua2xlbSBHcnVuZC4g
Ki8KICAgIC0tc3RhdC1zZDogI0Q2ODkxMDsKICAgIC0tc3RhdC1zYW1zdGFnOiAjOEU0NEFEOwog
ICAgLS1zdGF0LXNvbm50YWc6ICM2QzM0ODM7CiAgICAtLXN0YXQtZmVpZXJ0YWc6ICM5MjJCMjE7
CiAgICAtLXN0YXQta29tcGxldHRlLXdlOiAjNUIyQzZGOwogICAgLS1zdGF0LWZvcnRiaWxkdW5n
LTE6ICMxRjYxOEQ7CiAgICAtLXN0YXQtZm9ydGJpbGR1bmctMjogIzI4NzRBNjsKICAgIC0tc3Rh
dC1mb3J0YmlsZHVuZy0zOiAjNTQ5OUM3OwogICAgLS1zdGF0LXVybGF1YjogIzVENkQ3RTsKICAg
IC0tc3RhdC1rdXI6ICMxMTdBNjU7CiAgICAtLXN0YXQtc29uZGVydXJsYXViOiAjN0I3RDdEOwp9
CgpbZGF0YS10aGVtZT0ibmlnaHQiXSB7CiAgICAtLWJnLXByaW1hcnk6ICMxQTI1MkY7CiAgICAt
LWJnLXByaW1hcnktZGFyazogIzE0MUQyNTsKICAgIC0tYmctYm9keTogIzE1MUQyNTsKICAgIC0t
YmctY2FyZDogIzFDMjYzMDsKICAgIC0tYmctY2FyZC1hbHQ6ICMyMTMwM0Q7CiAgICAtLWJnLXRv
b2xiYXI6ICMyMTMwM0Q7CiAgICAtLWJnLWhvdmVyOiAjMjgzQTRBOwogICAgLS1iZy1hY3RpdmU6
ICMyRjQ0NTg7CiAgICAtLWJnLWlucHV0OiAjMUMyNjMwOwogICAgLS1iZy1zaWRlYmFyOiAjMTgy
MjJDOwogICAgLS1iZy1uYXYtaG92ZXI6ICMyNjM4NEE7CiAgICAtLWJnLW5hdi1ha3RpdjogIzM3
NTE3MDsKCiAgICAtLXRleHQtcHJpbWFyeTogI0Q1RERFNTsKICAgIC0tdGV4dC1zZWNvbmRhcnk6
ICM4ODk5QTY7CiAgICAtLXRleHQtbXV0ZWQ6ICM3QzhDOUE7ICAgLyogS29udHJhc3QgfjU6MSBh
dWYgRGFyay1Cb2R5ICh2b3JoZXIgIzVBNkE3OCA9IH4zOjEsIEFBLWdyZW56d2VydGlnKSAqLwog
ICAgLS10ZXh0LWhlYWRpbmc6ICNBOEM0RDg7CiAgICAtLXRleHQtb24tcHJpbWFyeTogI0Q1RERF
NTsKCiAgICAtLWJvcmRlci1jb2xvcjogIzI4M0E0QTsKICAgIC0tYm9yZGVyLWxpZ2h0OiAjMjIz
MDQwOwogICAgLS1ib3JkZXItc3Ryb25nOiAjM0E0RTYwOwogICAgLS1ncmlkLWxpbmllOiAjMzg1
MDZBOwogICAgLS1zaGFkb3ctbGlnaHQ6IHJnYmEoMCwwLDAsMC4xNSk7CiAgICAtLXNoYWRvdy1t
ZWRpdW06IHJnYmEoMCwwLDAsMC4zMCk7CiAgICAtLXNoYWRvdy1tb2RhbDogMCA4cHggMzJweCBy
Z2JhKDAsMCwwLDAuNDUpOwoKICAgIC0tdGFnLW5vcm1hbDogIzFDMjYzMDsKICAgIC0tdGFnLXdv
Y2hlbmVuZGU6ICMxRjJBMzg7CiAgICAtLXRhZy1mZWllcnRhZzogIzI1MzU0NzsKICAgIC0tdGFn
LWZlcmllbjogIzFDMkUyMjsKICAgIC0tdGFnLXNvbmRlcjogIzJFMkExODsKCiAgICAvKiBCcmFu
ZC1QcmltYWVyIChEYXJrKTogaGVsbGVyIGZ1ZXIgSG92ZXItU2ljaHRiYXJrZWl0ICovCiAgICAt
LWZhcmJlLXByaW1hZXItaG92ZXI6ICNDNkRCRTk7CgogICAgLyogQmFubmVyIChEYXJrKTogZ2Vk
ZWNrdGUgRnVlbGxmYXJiZW4sIGtsYXJlIEFremVudGJvcmTDvHJlICovCiAgICAtLWJhbm5lci1p
bmZvLWJnOiAjMUYyRDNEOwogICAgLS1iYW5uZXItaW5mby10ZXh0OiAjQzZEQkU5OwogICAgLS1i
YW5uZXItd2Fybi1iZzogIzJFMjQxMjsKICAgIC0tYmFubmVyLXdhcm4tdGV4dDogI0U1Qjg3MjsK
ICAgIC0tYmFubmVyLWVyZm9sZy1iZzogIzE2MzAyQTsKICAgIC0tYmFubmVyLWVyZm9sZy10ZXh0
OiAjODhDQ0FFOwoKICAgIC8qIFN0YXRpc3Rpay1DaGFydC1QYWxldHRlIChEYXJrKTogYXVmZ2Vo
ZWxsdGUgVMO2bmUgZGFtaXQgQmFsa2VuCiAgICAgICBhdWYgZHVua2xlbSBCb2R5IHNpY2h0YmFy
IGJsZWliZW4uIEtvbnRyYXN0IH40LjU6MSB6dW0gYmctY2FyZC4gKi8KICAgIC0tc3RhdC1zZDog
I0Y0QTY0MTsKICAgIC0tc3RhdC1zYW1zdGFnOiAjQjQ3Q0QwOwogICAgLS1zdGF0LXNvbm50YWc6
ICM5RTYzQkQ7CiAgICAtLXN0YXQtZmVpZXJ0YWc6ICNEODcwNjc7CiAgICAtLXN0YXQta29tcGxl
dHRlLXdlOiAjOUI2NUI1OwogICAgLS1zdGF0LWZvcnRiaWxkdW5nLTE6ICM1QjlCQzk7CiAgICAt
LXN0YXQtZm9ydGJpbGR1bmctMjogIzZGQUFEODsKICAgIC0tc3RhdC1mb3J0YmlsZHVuZy0zOiAj
ODZCRkUwOwogICAgLS1zdGF0LXVybGF1YjogIzk1QTRCMDsKICAgIC0tc3RhdC1rdXI6ICMzRkJB
OUM7CiAgICAtLXN0YXQtc29uZGVydXJsYXViOiAjQThBQUFBOwp9CgpodG1sLCBib2R5IHsKICAg
IGhlaWdodDogMTAwJTsKICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICBmb250LWZhbWlseTogIlNl
Z29lIFVJIiwgLWFwcGxlLXN5c3RlbSwgQmxpbmtNYWNTeXN0ZW1Gb250LCBSb2JvdG8sICJIZWx2
ZXRpY2EgTmV1ZSIsIEFyaWFsLCBzYW5zLXNlcmlmOwogICAgZm9udC1zaXplOiB2YXIoLS1mcy1i
YXNlKTsKICAgIGxpbmUtaGVpZ2h0OiAxLjM7CiAgICBjb2xvcjogdmFyKC0tdGV4dC1wcmltYXJ5
KTsKICAgIGJhY2tncm91bmQ6IHZhcigtLWJnLWJvZHkpOwp9CgovKiA9PT09PSBIZWFkZXIgPT09
PT0gKi8KI2tvcGZsZWlzdGUgewogICAgZGlzcGxheTogZmxleDsKICAgIGFsaWduLWl0ZW1zOiBj
ZW50ZXI7CiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47CiAgICBiYWNrZ3JvdW5k
OiB2YXIoLS1iZy1wcmltYXJ5KTsKICAgIGNvbG9yOiB2YXIoLS10ZXh0LW9uLXByaW1hcnkpOwog
ICAgcGFkZGluZzogMCAyMHB4OwogICAgaGVpZ2h0OiA0MHB4OwogICAgYm94LXNoYWRvdzogMCAy
cHggOHB4IHJnYmEoMCwwLDAsMC4xNSk7CiAgICBib3JkZXItYm90dG9tOiAzcHggc29saWQgdmFy
KC0tYm9yZGVyLWNvbG9yKTsKICAgIHotaW5kZXg6IHZhcigtLXotb3ZlcmxheSk7CiAgICBwb3Np
dGlvbjogcmVsYXRpdmU7Cn0KCiNrb3BmbGVpc3RlIGgxIHsgZm9udC1zaXplOiB2YXIoLS1mcy1s
Zyk7IGZvbnQtd2VpZ2h0OiA2MDA7IGxldHRlci1zcGFjaW5nOiAtMC4zcHg7IGRpc3BsYXk6IGZs
ZXg7IGFsaWduLWl0ZW1zOiBjZW50ZXI7IH0KLmhlYWRlci1sb2dvIHsgaGVpZ2h0OiAzMHB4OyB3
aWR0aDogYXV0bzsgbWFyZ2luLXJpZ2h0OiAxMHB4OyBmbGV4OiBub25lOyB9Ci5oZWFkZXItamFo
ciB7IGZvbnQtd2VpZ2h0OiA0MDA7IG9wYWNpdHk6IDAuNzsgbWFyZ2luLWxlZnQ6IDhweDsgfQoK
LmhlYWRlci1uYXYgeyBkaXNwbGF5OiBmbGV4OyBnYXA6IDJweDsgfQoubmF2LWJ0biB7CiAgICBi
YWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKICAgIGNvbG9yOiByZ2JhKDI1NSwyNTUsMjU1LDAuNik7
CiAgICBib3JkZXI6IG5vbmU7CiAgICBwYWRkaW5nOiA2cHggMTRweDsKICAgIGJvcmRlci1yYWRp
dXM6IHZhcigtLXJhZGl1cy1zbSkgNHB4IDAgMDsKICAgIGN1cnNvcjogcG9pbnRlcjsKICAgIGZv
bnQtc2l6ZTogdmFyKC0tZnMtYmFzZSk7CiAgICBmb250LWZhbWlseTogaW5oZXJpdDsKICAgIGZv
bnQtd2VpZ2h0OiA1MDA7CiAgICB0cmFuc2l0aW9uOiB2YXIoLS10cmFuc2l0aW9uLXN0ZCk7Cn0K
Lm5hdi1idG46aG92ZXIgeyBjb2xvcjogI2ZmZjsgYmFja2dyb3VuZDogcmdiYSgyNTUsMjU1LDI1
NSwwLjA4KTsgfQoubmF2LWJ0bi5ha3RpdiB7IGNvbG9yOiAjZmZmOyBiYWNrZ3JvdW5kOiByZ2Jh
KDI1NSwyNTUsMjU1LDAuMTUpOyBib3JkZXItYm90dG9tOiAycHggc29saWQgI2ZmZjsgfQovKiBQ
cnVlZnVuZ3MtVGFiIFN0YXR1cy1GYWVyYnVuZyDigJQgVW50ZXJiZXNldHp1bmdzLVZvcndhcm51
bmcgKi8KLm5hdi1idG4uYmstdGFiLWRlZml6aXQtMncgewogICAgY29sb3I6ICNmZmY7CiAgICBi
YWNrZ3JvdW5kOiByZ2JhKDE3Niw1OCw0NiwwLjU1KTsKICAgIGJveC1zaGFkb3c6IGluc2V0IDAg
LTJweCAwICNCMDNBMkU7CiAgICBhbmltYXRpb246IGJrUHVscyAyLjRzIGVhc2UtaW4tb3V0IGlu
ZmluaXRlOwp9Ci5uYXYtYnRuLmJrLXRhYi1kZWZpeml0LTJ3OmhvdmVyIHsgYmFja2dyb3VuZDog
cmdiYSgxNzYsNTgsNDYsMC43KTsgfQoubmF2LWJ0bi5iay10YWItZGVmaXppdC00dyB7CiAgICBj
b2xvcjogI2ZmZjsKICAgIGJhY2tncm91bmQ6IHJnYmEoMjAyLDExMSwzMCwwLjQ1KTsKICAgIGJv
eC1zaGFkb3c6IGluc2V0IDAgLTJweCAwICNDQTZGMUU7Cn0KLm5hdi1idG4uYmstdGFiLWRlZml6
aXQtNHc6aG92ZXIgeyBiYWNrZ3JvdW5kOiByZ2JhKDIwMiwxMTEsMzAsMC42KTsgfQpAa2V5ZnJh
bWVzIGJrUHVscyB7IDAlLDEwMCUgeyBib3gtc2hhZG93OiBpbnNldCAwIC0ycHggMCAjQjAzQTJF
OyB9IDUwJSB7IGJveC1zaGFkb3c6IGluc2V0IDAgLTJweCAwICNmZjZiNWUsIDAgMCA4cHggcmdi
YSgxNzYsNTgsNDYsMC42KTsgfSB9CgouaGVhZGVyLXJlY2h0cyB7IGRpc3BsYXk6IGZsZXg7IGFs
aWduLWl0ZW1zOiBjZW50ZXI7IGdhcDogMTJweDsgfQouYmVudXR6ZXItYmFkZ2UgeyBmb250LXNp
emU6IHZhcigtLWZzLXNtKTsgb3BhY2l0eTogMC43OyB9Ci5pY29uLWJ0biB7CiAgICBiYWNrZ3Jv
dW5kOiB0cmFuc3BhcmVudDsgY29sb3I6IHJnYmEoMjU1LDI1NSwyNTUsMC43KTsgYm9yZGVyOiAx
cHggc29saWQgcmdiYSgyNTUsMjU1LDI1NSwwLjIpOwogICAgcGFkZGluZzogM3B4IDEwcHg7IGJv
cmRlci1yYWRpdXM6IHZhcigtLXJhZGl1cy1zbSk7IGN1cnNvcjogcG9pbnRlcjsgZm9udC1zaXpl
OiB2YXIoLS1mcy1zbSk7IGZvbnQtZmFtaWx5OiBpbmhlcml0OwogICAgdHJhbnNpdGlvbjogdmFy
KC0tdHJhbnNpdGlvbi1zdGQpOwp9Ci5pY29uLWJ0bjpob3ZlciB7IGJhY2tncm91bmQ6IHJnYmEo
MjU1LDI1NSwyNTUsMC4xKTsgY29sb3I6ICNmZmY7IH0KCi8qIEJ1Z1JlcG9ydC1CdXR0b246IGRl
dXRsaWNoZXIgYWxzIEluZm8sIG1pdCByb3RlbSBHbMO8aGVuIGJlaW0gSG92ZXIuICovCi5idWdy
ZXBvcnQtYnRuIHsKICAgIGNvbG9yOiAjZmZjNGJjOwogICAgYm9yZGVyLWNvbG9yOiByZ2JhKDE3
Niw1OCw0NiwwLjY1KTsKICAgIGZvbnQtd2VpZ2h0OiA3MDA7CiAgICBsZXR0ZXItc3BhY2luZzog
MC4zcHg7Cn0KLmJ1Z3JlcG9ydC1idG46aG92ZXIgewogICAgYmFja2dyb3VuZDogdmFyKC0tZmFy
YmUtZmVobGVyLCAjQjAzQTJFKTsKICAgIGJvcmRlci1jb2xvcjogdmFyKC0tZmFyYmUtZmVobGVy
LCAjQjAzQTJFKTsKICAgIGNvbG9yOiAjZmZmOwogICAgYm94LXNoYWRvdzogMCAwIDEwcHggMXB4
IHZhcigtLWZhcmJlLWZlaGxlciwgI0IwM0EyRSksIDAgMCAyMHB4IHJnYmEoMTc2LDU4LDQ2LDAu
NTUpOwp9CgovKiA9PT09PSBBbnNpY2h0ZW4gPT09PT0gKi8KLmFuc2ljaHQgeyBoZWlnaHQ6IGNh
bGMoMTAwdmggLSA0MHB4KTsgb3ZlcmZsb3c6IGhpZGRlbjsgZGlzcGxheTogZmxleDsgZmxleC1k
aXJlY3Rpb246IGNvbHVtbjsgfQoudmVyc3RlY2t0IHsgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50
OyB9CgovKiA9PT09PSBUb29sYmFyIChQbGFudW5nKSA9PT09PSAqLwojcGxhbnVuZy10b29sYmFy
IHsKICAgIGRpc3BsYXk6IGZsZXg7IGFsaWduLWl0ZW1zOiBjZW50ZXI7IGdhcDogNnB4OwogICAg
cGFkZGluZzogNHB4IDEycHg7CiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1iZy10b29sYmFyKTsKICAg
IGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB2YXIoLS1ib3JkZXItY29sb3IpOwogICAgaGVpZ2h0
OiAzMHB4Owp9Ci50b29sYmFyLWJ0biB7CiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1iZy1jYXJkKTsg
Y29sb3I6IHZhcigtLXRleHQtcHJpbWFyeSk7CiAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1i
b3JkZXItc3Ryb25nKTsgcGFkZGluZzogMnB4IDEwcHg7IGJvcmRlci1yYWRpdXM6IHZhcigtLXJh
ZGl1cy14cyk7CiAgICBjdXJzb3I6IHBvaW50ZXI7IGZvbnQtc2l6ZTogdmFyKC0tZnMtc20pOyBm
b250LWZhbWlseTogaW5oZXJpdDsgdHJhbnNpdGlvbjogdmFyKC0tdHJhbnNpdGlvbi1zdGQpOwp9
Ci50b29sYmFyLWJ0bjpob3ZlciB7IGJhY2tncm91bmQ6IHZhcigtLWJnLWhvdmVyKTsgYm9yZGVy
LWNvbG9yOiB2YXIoLS10ZXh0LWhlYWRpbmcpOyB9Ci50b29sYmFyLXRyZW5uZXIgeyB3aWR0aDog
MXB4OyBoZWlnaHQ6IDE2cHg7IGJhY2tncm91bmQ6IHZhcigtLWJvcmRlci1jb2xvcik7IG1hcmdp
bjogMCA0cHg7IH0KLnRvb2xiYXItaW5mbyB7IGZvbnQtc2l6ZTogdmFyKC0tZnMtc20pOyBjb2xv
cjogdmFyKC0tdGV4dC1zZWNvbmRhcnkpOyB9Ci50b29sYmFyLWNoZWNrIHsKICAgIGRpc3BsYXk6
IGlubGluZS1mbGV4OyBhbGlnbi1pdGVtczogY2VudGVyOyBnYXA6IDRweDsKICAgIGZvbnQtc2l6
ZTogdmFyKC0tZnMtc20pOyBjb2xvcjogdmFyKC0tdGV4dC1zZWNvbmRhcnkpOyBjdXJzb3I6IHBv
aW50ZXI7CiAgICBwYWRkaW5nOiAycHggNnB4OyBib3JkZXItcmFkaXVzOiB2YXIoLS1yYWRpdXMt
eHMpOwp9Ci50b29sYmFyLWNoZWNrOmhvdmVyIHsgYmFja2dyb3VuZDogdmFyKC0tYmctaG92ZXIp
OyB9Ci50b29sYmFyLWNoZWNrIGlucHV0IHsgY3Vyc29yOiBwb2ludGVyOyB9CgovKiBVbWdlc2V0
enRlIFBlcnNvbmVuIChudXIgenVyIFJlY2hlcmNoZSBlaW5nZWJsZW5kZXQpICovCi5uYW1lbi16
ZWlsZS11bWdlc2V0enQgeyBvcGFjaXR5OiAwLjQ1OyBmb250LXN0eWxlOiBpdGFsaWM7IH0KLm5h
bWVuLXplaWxlLXVtZ2VzZXR6dCAubnotbmFtZSB7IHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJv
dWdoOyB9Ci5ncmlkLXplaWxlLXVtZ2VzZXR6dCB7IG9wYWNpdHk6IDAuNDU7IH0KLmdyaWQtemVp
bGUtdW1nZXNldHp0IC5ncmlkLXplbGxlIHsgY3Vyc29yOiBub3QtYWxsb3dlZCAhaW1wb3J0YW50
OyB9Ci56ZWlsZS11bWdlc2V0enQgeyBiYWNrZ3JvdW5kOiB2YXIoLS1iZy1ob3Zlcik7IG9wYWNp
dHk6IDAuNzsgfQovKiBDaGVycnktUGljayAzMDA5ZWE4OiBQYXBpZXJrb3JiLVplaWxlbiBrbGFy
IGFiZ2VzZXR6dCByb3Qg4oCUIHZpc3VlbGwgdm9tCiAgICJVbWdlc2V0enQiIChTdGF0dXMgbmlj
aHQgbWVociBha3RpdikgdW50ZXJzY2hlaWRiYXIsIHdlaWwgaGllciBkaWUgUGVyc29uCiAgIGlu
IEF1ZmxvZXN1bmcgaXN0IHVuZCBuYWNoIEF1ZmJld2FocnVuZ3MtRnJpc3QgaGFydCBnZWxvZXNj
aHQgd2lyZC4gKi8KLnplaWxlLXBhcGllcmtvcmIgewogICAgYmFja2dyb3VuZDogcmdiYSgxNzYs
IDU4LCA0NiwgMC4wOCk7CiAgICBjb2xvcjogdmFyKC0tdGV4dC1zZWNvbmRhcnkpOwp9Ci56ZWls
ZS1wYXBpZXJrb3JiOmhvdmVyIHsKICAgIGJhY2tncm91bmQ6IHJnYmEoMTc2LCA1OCwgNDYsIDAu
MTQpOwp9Ci56ZWlsZS11bWdlc2V0enQgdGQgeyBmb250LXN0eWxlOiBpdGFsaWM7IH0KCi8qID09
PT09IFBsYW51bmdzLUNvbnRhaW5lciAoRXhjZWwtTGF5b3V0KSA9PT09PSAqLwojcGxhbnVuZy1j
b250YWluZXIgewogICAgZGlzcGxheTogZmxleDsKICAgIGZsZXg6IDE7CiAgICBvdmVyZmxvdzog
aGlkZGVuOwogICAgYmFja2dyb3VuZDogdmFyKC0tYmctY2FyZCk7Cn0KCi8qID09PT09IEZpeGll
cnRlIGxpbmtlIFNwYWx0ZSA9PT09PSAqLwojbmFtZW4tc3BhbHRlIHsKICAgIHdpZHRoOiB2YXIo
LS1uYW1lbi1icmVpdGUpOwogICAgbWluLXdpZHRoOiB2YXIoLS1uYW1lbi1icmVpdGUpOwogICAg
Ym9yZGVyLXJpZ2h0OiAycHggc29saWQgdmFyKC0tYm9yZGVyLXN0cm9uZyk7CiAgICBkaXNwbGF5
OiBmbGV4OwogICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgIGJhY2tncm91bmQ6IHZhcigt
LWJnLWNhcmQpOwogICAgei1pbmRleDogMTA7Cn0KCi8qIEtvcGZiZXJlaWNoIGxpbmtzICovCiNr
b3BmLWxpbmtzIHsKICAgIGJvcmRlci1ib3R0b206IDJweCBzb2xpZCB2YXIoLS1ib3JkZXItc3Ry
b25nKTsKICAgIGJhY2tncm91bmQ6IHZhcigtLWJnLWNhcmQtYWx0KTsKfQoKLmtvcGYtemVpbGUg
ewogICAgZGlzcGxheTogZmxleDsKICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICBoZWlnaHQ6
IHZhcigtLWtvcGYtemVpbGVuLWhvZWhlKTsKICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB2
YXIoLS1ib3JkZXItbGlnaHQpOwogICAgZm9udC1zaXplOiB2YXIoLS1mcy14cyk7CiAgICBwYWRk
aW5nOiAwIDZweDsKfQoKLmt6LWRhdHVtLCAua3otd29jaGVudGFnLCAua3otYW5sYXNzIHsKICAg
IGJhY2tncm91bmQ6IHZhcigtLWJnLXByaW1hcnkpOwogICAgY29sb3I6IHZhcigtLXRleHQtb24t
cHJpbWFyeSk7Cn0KLyogSGVpZ2h0cyBtdWVzc2VuIDE6MSB6dSBkZW4gRGF0ZW4tWmVpbGVuIHJl
Y2h0cyBwYXNzZW4gKi8KLmt6LWFubGFzcyAgeyBoZWlnaHQ6IDMycHg7IH0gICAvKiA9ICNkYXR1
bS16ZWlsZS1hbmxhc3MgLmtkLXplbGxlIChNYWkgMjAyNjogRXZlbnRzIG1pdCBkcmluKSAqLwoK
LyogSGV1dGUtQmFubmVyIHVlYmVyZGVja3QgZGllIG9iZXJlbiBkcmVpIFBsYXR6aGFsdGVyCiAg
IChrei1kYXR1bSArIGt6LXdvY2hlbnRhZyArIGt6LWFubGFzcykgPSAyMCArIDIwICsgMzggPSA3
OHB4LiAqLwoja29wZi1saW5rcyB7IHBvc2l0aW9uOiByZWxhdGl2ZTsgfQoja2wtaGV1dGUtYmFu
bmVyIHsKICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgIHRvcDogMDsKICAgIGxlZnQ6IDA7CiAg
ICByaWdodDogMDsKICAgIGhlaWdodDogY2FsYyh2YXIoLS1rb3BmLXplaWxlbi1ob2VoZSkgKiAy
ICsgMzJweCk7CiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1iZy1wcmltYXJ5KTsKICAgIGNvbG9yOiB2
YXIoLS10ZXh0LW9uLXByaW1hcnkpOwogICAgZGlzcGxheTogZmxleDsKICAgIGFsaWduLWl0ZW1z
OiBjZW50ZXI7CiAgICBnYXA6IDhweDsKICAgIHBhZGRpbmc6IDAgMTJweDsKICAgIHotaW5kZXg6
IDI7CiAgICBib3gtc2hhZG93OiBpbnNldCAwIC0xcHggMCByZ2JhKDI1NSwyNTUsMjU1LDAuMDYp
Owp9Ci5rbC1oZXV0ZS1idXR0b24gewogICAgYmFja2dyb3VuZDogcmdiYSgyNTUsMjU1LDI1NSww
LjE0KTsKICAgIGNvbG9yOiB2YXIoLS10ZXh0LW9uLXByaW1hcnkpOwogICAgYm9yZGVyOiAxcHgg
c29saWQgcmdiYSgyNTUsMjU1LDI1NSwwLjMyKTsKICAgIHBhZGRpbmc6IDZweCAxNnB4OwogICAg
Ym9yZGVyLXJhZGl1czogdmFyKC0tcmFkaXVzLXNtKTsKICAgIGZvbnQtZmFtaWx5OiBpbmhlcml0
OwogICAgZm9udC1zaXplOiB2YXIoLS1mcy1iYXNlKTsKICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAg
ICBsZXR0ZXItc3BhY2luZzogMC40cHg7CiAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICB0cmFuc2l0
aW9uOiBiYWNrZ3JvdW5kIDAuMTVzIGVhc2UsIGJvcmRlci1jb2xvciAwLjE1cyBlYXNlLCB0cmFu
c2Zvcm0gMC4xcyBlYXNlOwp9Ci5rbC1oZXV0ZS1idXR0b246aG92ZXIgewogICAgYmFja2dyb3Vu
ZDogcmdiYSgyNTUsMjU1LDI1NSwwLjI2KTsKICAgIGJvcmRlci1jb2xvcjogcmdiYSgyNTUsMjU1
LDI1NSwwLjU1KTsKfQoua2wtaGV1dGUtYnV0dG9uOmFjdGl2ZSB7CiAgICBiYWNrZ3JvdW5kOiBy
Z2JhKDI1NSwyNTUsMjU1LDAuMzQpOwogICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDFweCk7Cn0K
LmtsLWhldXRlLWluZm8gewogICAgZGlzcGxheTogZmxleDsKICAgIGZsZXgtZGlyZWN0aW9uOiBj
b2x1bW47CiAgICBsaW5lLWhlaWdodDogMS4xNTsKICAgIG1pbi13aWR0aDogMDsKfQoua2wtaGV1
dGUtZGF0dW0tdHh0IHsKICAgIGZvbnQtc2l6ZTogdmFyKC0tZnMtbWQpOwogICAgZm9udC13ZWln
aHQ6IDcwMDsKICAgIGxldHRlci1zcGFjaW5nOiAwLjJweDsKfQoua2wtaGV1dGUtd3RhZy10eHQg
ewogICAgZm9udC1zaXplOiB2YXIoLS1mcy1zbSk7CiAgICBmb250LXdlaWdodDogNTAwOwogICAg
b3BhY2l0eTogMC43ODsKICAgIG1hcmdpbi10b3A6IDFweDsKfQoKLmt6LXN0YWVya2UgewogICAg
YmFja2dyb3VuZDogIzM0NDk1RTsKICAgIGNvbG9yOiAjRUNGMEYxOwogICAgZm9udC13ZWlnaHQ6
IDcwMDsKICAgIGZvbnQtc2l6ZTogdmFyKC0tZnMteHMpOwp9Cgoua3otc2NoaWNodGZvbGdlIHsK
ICAgIGJhY2tncm91bmQ6IHZhcigtLWJnLWNhcmQtYWx0KTsKICAgIGNvbG9yOiB2YXIoLS10ZXh0
LXNlY29uZGFyeSk7CiAgICBmb250LXNpemU6IHZhcigtLWZzLXhzKTsKfQoKLmt6LXNmLWVyc3Rl
IHsKICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCB2YXIoLS1ib3JkZXItc3Ryb25nKTsKfQoKLmts
LWxhYmVsIHsKICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsKICAgIHdpZHRoOiA3MHB4OwogICAg
bWluLXdpZHRoOiA3MHB4OwogICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgIGNvbG9yOiBpbmhlcml0
OwogICAgb3BhY2l0eTogMC44Owp9Cgoua2wtd2VydCB7CiAgICBmbGV4OiAxOwogICAgb3ZlcmZs
b3c6IGhpZGRlbjsKICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwogICAgd2hpdGUtc3BhY2U6
IG5vd3JhcDsKfQoKLyogTmFtZW5saXN0ZSAqLwojbmFtZW4tbGlzdGUgewogICAgZmxleDogMTsK
ICAgIG92ZXJmbG93OiBoaWRkZW47Cn0KCi5uYW1lbi16ZWlsZSB7CiAgICBkaXNwbGF5OiBmbGV4
OwogICAgaGVpZ2h0OiB2YXIoLS16ZWxsZS1ob2VoZSk7CiAgICBib3JkZXItYm90dG9tOiAxcHgg
c29saWQgdmFyKC0tYm9yZGVyLWxpZ2h0KTsKICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICBm
b250LXNpemU6IHZhcigtLWZzLXNtKTsKICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgMC4xczsK
ICAgIHBhZGRpbmc6IDAgNHB4Owp9Ci5uYW1lbi16ZWlsZTpob3ZlciB7IGJhY2tncm91bmQ6IHZh
cigtLWJnLWhvdmVyKTsgfQoKLyogR3J1cHBlbnRyZW5uemVpbGUgKi8KLm5hbWVuLXRyZW5uZXIg
ewogICAgZGlzcGxheTogZmxleDsKICAgIGhlaWdodDogMThweDsKICAgIGFsaWduLWl0ZW1zOiBj
ZW50ZXI7CiAgICBmb250LXNpemU6IDlweDsKICAgIGZvbnQtd2VpZ2h0OiA3MDA7CiAgICB0ZXh0
LXRyYW5zZm9ybTogdXBwZXJjYXNlOwogICAgbGV0dGVyLXNwYWNpbmc6IDAuNXB4OwogICAgY29s
b3I6IHZhcigtLXRleHQtbXV0ZWQpOwogICAgYmFja2dyb3VuZDogdmFyKC0tYmctY2FyZC1hbHQp
OwogICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHZhcigtLWJvcmRlci1jb2xvcik7CiAgICBi
b3JkZXItdG9wOiAxcHggc29saWQgdmFyKC0tYm9yZGVyLWNvbG9yKTsKICAgIHBhZGRpbmc6IDAg
NnB4Owp9CgoubnotbmFtZSB7CiAgICB3aWR0aDogMTEwcHg7CiAgICBtaW4td2lkdGg6IDExMHB4
OwogICAgcGFkZGluZzogMCA0cHg7CiAgICBmb250LXdlaWdodDogNjAwOwogICAgZGlzcGxheTog
ZmxleDsKICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICBnYXA6IDZweDsKfQoubnotbmFtZS10
ZXh0IHsKICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsK
ICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7CiAgICBtaW4td2lkdGg6IDA7CiAgICBmbGV4OiAxOwp9
Ci5uei1vZSB7CiAgICB3aWR0aDogMjhweDsKICAgIG1pbi13aWR0aDogMjhweDsKICAgIHRleHQt
YWxpZ246IGNlbnRlcjsKICAgIGZvbnQtc2l6ZTogOXB4OwogICAgY29sb3I6IHZhcigtLXRleHQt
c2Vjb25kYXJ5KTsKfQoubnotZ3J1cHBlIHsKICAgIHdpZHRoOiAxNnB4OwogICAgbWluLXdpZHRo
OiAxNnB4OwogICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgZm9udC1zaXplOiA5cHg7CiAgICBm
b250LXdlaWdodDogNzAwOwp9Ci5uei1kbnIgewogICAgd2lkdGg6IDM4cHg7CiAgICBtaW4td2lk
dGg6IDM4cHg7CiAgICBmb250LXNpemU6IDlweDsKICAgIGNvbG9yOiB2YXIoLS10ZXh0LW11dGVk
KTsKICAgIHBhZGRpbmc6IDAgNHB4OwogICAgdGV4dC1hbGlnbjogcmlnaHQ7CiAgICBvdmVyZmxv
dzogaGlkZGVuOwogICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7CiAgICB3aGl0ZS1zcGFjZTog
bm93cmFwOwp9Ci5uei1yYW5nIHsKICAgIGZsZXg6IDE7CiAgICBmb250LXNpemU6IDlweDsKICAg
IGNvbG9yOiB2YXIoLS10ZXh0LW11dGVkKTsKICAgIHBhZGRpbmc6IDAgNHB4OwogICAgdGV4dC1h
bGlnbjogcmlnaHQ7CiAgICBmb250LXdlaWdodDogNjAwOwogICAgb3ZlcmZsb3c6IGhpZGRlbjsK
ICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwogICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKfQoK
LyogR3J1cHBlbi1CYWRnZSAoQWRtaW4tVGFiZWxsZSkgKi8KLmdydXBwZW4tYmFkZ2UgewogICAg
ZGlzcGxheTogaW5saW5lLWJsb2NrOyBwYWRkaW5nOiAxcHggOHB4OyBib3JkZXItcmFkaXVzOiB2
YXIoLS1yYWRpdXMteHMpOyBmb250LXNpemU6IHZhcigtLWZzLXhzKTsgZm9udC13ZWlnaHQ6IDYw
MDsKICAgIGxldHRlci1zcGFjaW5nOiAwLjNweDsKfQoKLyogRGllbnN0Z3J1cHBlbi1UYWJlbGxl
OiBaZWlsZSBlaW5lciBhdXNnZWJsZW5kZXRlbiBHcnVwcGUgKGluUGxhbnVuZz1mYWxzZSkKICAg
d2lyZCBsZWljaHQgYXVzZ2VncmF1dCwgZGFtaXQgYXVmIGVpbmVuIEJsaWNrIGtsYXIgaXN0LCBk
YXNzIGRpZXNlIEdydXBwZQogICBha3R1ZWxsIG5pY2h0IGluIGRlciBQbGFudGFmZWwvV29jaGVu
cGxhbi9QZXJzLlBsYW4gZXJzY2hlaW50LiAqLwouZ3J1cHBlLXplaWxlLXZlcnN0ZWNrdCB7IG9w
YWNpdHk6IDAuNjU7IGJhY2tncm91bmQ6IHZhcigtLWJnLWNhcmQtYWx0KTsgfQouZ3J1cHBlLWlu
cGxhbnVuZy1sYWJlbCB7IGRpc3BsYXk6IGlubGluZS1mbGV4OyBhbGlnbi1pdGVtczogY2VudGVy
OyBjdXJzb3I6IHBvaW50ZXI7IH0KLmdydXBwZS1pbnBsYW51bmctaW5wdXQgeyBjdXJzb3I6IHBv
aW50ZXI7IHdpZHRoOiAxNnB4OyBoZWlnaHQ6IDE2cHg7IH0KCi8qIEdydXBwZW4tRmFyYmNvZGVz
ICovCi5nci1BIHsgY29sb3I6ICNCNzFDMUM7IH0KLmdyLUIgeyBjb2xvcjogIzFBNTI3NjsgfQou
Z3ItQyB7IGNvbG9yOiAjMUI1RTIwOyB9Ci5nci1LIHsgY29sb3I6ICM4RDZFMjg7IH0KLmdyLUwg
eyBjb2xvcjogIzU0NkU3QTsgfQoKLyogPT09PT0gU2Nyb2xsYmFyZXIgcmVjaHRlciBCZXJlaWNo
ID09PT09ICovCiNncmlkLXNjcm9sbC1jb250YWluZXIgewogICAgZmxleDogMTsKICAgIG92ZXJm
bG93OiBhdXRvOwogICAgcG9zaXRpb246IHJlbGF0aXZlOwp9CgovKiBLb3BmYmVyZWljaCByZWNo
dHMgKHN0aWNreSkgKi8KI2tvcGYtcmVjaHRzIHsKICAgIHBvc2l0aW9uOiBzdGlja3k7CiAgICB0
b3A6IDA7CiAgICB6LWluZGV4OiA1OwogICAgYm9yZGVyLWJvdHRvbTogMnB4IHNvbGlkIHZhcigt
LWJvcmRlci1zdHJvbmcpOwogICAgYmFja2dyb3VuZDogdmFyKC0tYmctY2FyZCk7Cn0KCi5rb3Bm
LWRhdGVuLXplaWxlIHsKICAgIGRpc3BsYXk6IGZsZXg7CiAgICBoZWlnaHQ6IHZhcigtLWtvcGYt
emVpbGVuLWhvZWhlKTsKfQovKiBFaW56ZWxuZSBaZWlsZW4gYnJhdWNoZW4gZWlnZW5lIEhvZWhl
biwgZGFtaXQgZGllIC5rZC16ZWxsZS1LaW5kZXIgbmljaHQKICAgbnVyIHZpc3VlbGwgdWViZXJs
YXVmZW4sIHNvbmRlcm4gZGllIFJvdyBhdWNoIGxvZ2lzY2ggZGllIHJpY2h0aWdlIEhvZWhlCiAg
IGJlbGVndCAoc29uc3QgdmVyc2NoaWVidCBzaWNoIGRpZSBOYW1lbnNzcGFsdGUgbGlua3MpLgog
ICBBbmxhc3MgKyBFdmVudHMgc2luZCBzZWl0IE1haSAyMDI2IGluIGVpbmVyIFplaWxlIHp1c2Ft
bWVuZ2VmYXNzdC4gKi8KI2RhdHVtLXplaWxlLWFubGFzcyB7IGhlaWdodDogMzJweDsgfQoKLyog
RGF0dW0tWmVsbGVuIGltIEtvcGYgKi8KLmtkLXplbGxlIHsKICAgIHdpZHRoOiB2YXIoLS16ZWxs
ZS1icmVpdGUpOwogICAgbWluLXdpZHRoOiB2YXIoLS16ZWxsZS1icmVpdGUpOwogICAgZGlzcGxh
eTogZmxleDsKICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNl
bnRlcjsKICAgIGJvcmRlci1yaWdodDogMXB4IHNvbGlkIHZhcigtLWJvcmRlci1saWdodCk7CiAg
ICBmb250LXNpemU6IHZhcigtLWZzLXhzKTsKfQoKLyogWmVpbGUgMTogRGF0dW0gKi8KI2RhdHVt
LXplaWxlLXRhZyAua2QtemVsbGUgewogICAgYmFja2dyb3VuZDogdmFyKC0tYmctcHJpbWFyeSk7
CiAgICBjb2xvcjogdmFyKC0tdGV4dC1vbi1wcmltYXJ5KTsKICAgIGZvbnQtd2VpZ2h0OiA2MDA7
CiAgICBmb250LXNpemU6IHZhcigtLWZzLXhzKTsKICAgIGJvcmRlci1yaWdodC1jb2xvcjogcmdi
YSgyNTUsMjU1LDI1NSwwLjEpOwp9CgovKiBaZWlsZSAyOiBXb2NoZW50YWcgKi8KI2RhdHVtLXpl
aWxlLXdvY2hlbnRhZyAua2QtemVsbGUgewogICAgYmFja2dyb3VuZDogdmFyKC0tYmctcHJpbWFy
eS1kYXJrKTsKICAgIGNvbG9yOiB2YXIoLS10ZXh0LW9uLXByaW1hcnkpOwogICAgZm9udC1zaXpl
OiA5cHg7CiAgICBib3JkZXItcmlnaHQtY29sb3I6IHJnYmEoMjU1LDI1NSwyNTUsMC4xKTsKfQoK
LyogWmVpbGUgMzoga29tYmluaWVydGUgSWNvbi1aZWlsZSAoRmVpZXJ0YWcgKyBTb25kZXJ0ZXJt
aW4gKyBHZWJ1cnRzdGFnKS4KICAgU2VpdCBNYWkgMjAyNiBpbiBlaW5lciBaZWlsZSBzdGF0dCB2
b3JoZXIgendlaSAoQW5sYXNzICsgRXZlbnRzKS4gKi8KI2RhdHVtLXplaWxlLWFubGFzcyAua2Qt
emVsbGUgewogICAgYmFja2dyb3VuZDogdmFyKC0tYmctcHJpbWFyeSk7CiAgICBjb2xvcjogcmdi
YSgyNTUsMjU1LDI1NSwwLjcpOwogICAgZm9udC1zaXplOiB2YXIoLS1mcy1zbSk7CiAgICBmb250
LXdlaWdodDogNjAwOwogICAgYm9yZGVyLXJpZ2h0LWNvbG9yOiByZ2JhKDI1NSwyNTUsMjU1LDAu
MSk7CiAgICBoZWlnaHQ6IDMycHg7CiAgICBwYWRkaW5nOiAycHggMXB4OwogICAgYWxpZ24taXRl
bXM6IGNlbnRlcjsKICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgZ2FwOiAycHg7CiAg
ICBvdmVyZmxvdzogaGlkZGVuOwp9Ci8qIEljb24tU3RpbDoga29tcGFrdCwgZGFtaXQgendlaSBv
ZGVyIGRyZWkgSWNvbnMgbmViZW5laW5hbmRlciBpbiA2MnB4CiAgIHBhc3NlbiAoRmVpZXJ0YWcg
KyBTb25kZXJ0ZXJtaW4gKyBHZWJ1cnRzdGFnIOKAlCBzZWx0ZW4gYWxsZSBkcmVpCiAgIGdsZWlj
aHplaXRpZykuIEVtb2ppLUZvbnQgcmVuZGVydCBmYXJiaWcsIG1vbm9jaHJvbWUgR2x5cGhzICji
nKEg4piqKQogICBlcmJlbiBjb2xvciB2b24gZGVyIHVtZ2ViZW5kZW4gLmtkLWFubGFzcy1mZWll
cnRhZy0qIFJlZ2VsLiAqLwoua2QtYW5sYXNzLWljb24gewogICAgZm9udC1zaXplOiAyMHB4Owog
ICAgbGluZS1oZWlnaHQ6IDE7CiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7CiAgICB1c2VyLXNl
bGVjdDogbm9uZTsKfQojZGF0dW0temVpbGUtYW5sYXNzIHsgcG9zaXRpb246IHJlbGF0aXZlOyB9
Ci8qIFNvbGlkZSBGYXJiZW4gYW5hbG9nIHp1IC5rZC1mZWllcnRhZy1iZyAvIC5rZC13b2NoZW5l
bmRlIOKAlCBkaWUgYWx0ZW4KICAgcmdiYSgpLVdlcnRlIHdhcmVuIHNlbWl0cmFuc3BhcmVudCBn
ZWdlbiBkZW4gd2Vpc3NlbiAja29wZi1yZWNodHMtYmcKICAgdW5kIGxpZXNzZW4gZGllIFplbGxl
IHByYWt0aXNjaCB3ZWlzcyBlcnNjaGVpbmVuLCBkZXIgaGVsbGUgVGV4dCB3YXIKICAgZGFkdXJj
aCB1bmxlc2Jhci4gKi8KI2RhdHVtLXplaWxlLWFubGFzcyAua2QtYW5sYXNzLWZlaWVydGFnIHsg
YmFja2dyb3VuZDogIzRBNkE4QzsgY29sb3I6ICNGRkZGRkY7IGN1cnNvcjogcG9pbnRlcjsgfQoj
ZGF0dW0temVpbGUtYW5sYXNzIC5rZC1hbmxhc3MtZmVpZXJ0YWc6aG92ZXIgeyBmaWx0ZXI6IGJy
aWdodG5lc3MoMS4xNSk7IH0KI2RhdHVtLXplaWxlLWFubGFzcyAua2QtYW5sYXNzLWZlaWVydGFn
IC5rZC1hbmxhc3MtdGV4dCB7IGNvbG9yOiAjRkZGRkZGOyB9Ci8qIEthdGVnb3JpZS1zcGV6aWZp
c2NoZSBGYXJiZ2VidW5nLiAua2QtYW5sYXNzLWZlaWVydGFnLWdlc2V0emxpY2gKICAgYmVudXR6
dCBkZW4gU3RhbmRhcmQgdm9uIG9iZW4gKCM0QTZBOEMpLCBkaWUgYW5kZXJlbiBLYXRlZ29yaWVu
CiAgIGJla29tbWVuIGVpbmUgZWlnZW5lIGdlZGVja3RlIEZhcmJlLiAqLwojZGF0dW0temVpbGUt
YW5sYXNzIC5rZC1hbmxhc3MtZmVpZXJ0YWctanVlZGlzY2ggICAgeyBiYWNrZ3JvdW5kOiAjNkU0
RkEwOyB9CiNkYXR1bS16ZWlsZS1hbmxhc3MgLmtkLWFubGFzcy1mZWllcnRhZy1tdXNsaW1pc2No
ICB7IGJhY2tncm91bmQ6ICMxQjdDNjY7IH0KI2RhdHVtLXplaWxlLWFubGFzcyAua2QtYW5sYXNz
LWZlaWVydGFnLXR1ZXJraXNjaCAgIHsgYmFja2dyb3VuZDogI0M3MjEyMDsgfQovKiBXaWNodGln
LU1hcmtlcjogYmVoYWVsdCBkaWUgS2F0ZWdvcmllLUZhcmJlIHVuZCBiZWtvbW10IG51ciBlaW5l
CiAgIGRlemVudGUgZ29sZGVuZSBCb2RlbmxpbmllIGFscyBBa3plbnQgKHZvcmhlciByb3QrZ29s
ZGVuZXIgUmFobWVuICsKICAgd2Vpc3NlciBUZXh0IOKAlCB3aXJrdGUgbWl0IERhdHVtICsgV29j
aGVudGFnICsgQW5sYXNzLUljb24ga29tYmluaWVydAogICB6dSB3dWNodGlnLCBVc2VyLUZlZWRi
YWNrIDIwMjYtMDUtMjIpLiAqLwojZGF0dW0temVpbGUtYW5sYXNzIC5rZC1hbmxhc3MtZmVpZXJ0
YWcua2QtZmVpZXJ0YWctd2ljaHRpZyB7IGJveC1zaGFkb3c6IGluc2V0IDAgLTNweCAwICNENEEw
MTc7IH0KW2RhdGEtdGhlbWU9Im5pZ2h0Il0gI2RhdHVtLXplaWxlLWFubGFzcyAua2QtYW5sYXNz
LWZlaWVydGFnLmtkLWZlaWVydGFnLXdpY2h0aWcgeyBib3gtc2hhZG93OiBpbnNldCAwIC0zcHgg
MCAjRTVCNTNBOyB9CiNkYXR1bS16ZWlsZS1hbmxhc3MgLmtkLWFubGFzcy1mZXJpZW4geyBiYWNr
Z3JvdW5kOiAjMkU3RDMyOyBjb2xvcjogI0ZGRkZGRjsgfQojZGF0dW0temVpbGUtYW5sYXNzIC5r
ZC1hbmxhc3MtZmVyaWVuIC5rZC1hbmxhc3MtdGV4dCB7IGNvbG9yOiAjRkZGRkZGOyB9CltkYXRh
LXRoZW1lPSJuaWdodCJdICNkYXR1bS16ZWlsZS1hbmxhc3MgLmtkLWFubGFzcy1mZWllcnRhZyB7
IGJhY2tncm91bmQ6ICMzRDU2NzI7IGNvbG9yOiAjRThFRUY1OyB9CltkYXRhLXRoZW1lPSJuaWdo
dCJdICNkYXR1bS16ZWlsZS1hbmxhc3MgLmtkLWFubGFzcy1mZWllcnRhZy1qdWVkaXNjaCAgICB7
IGJhY2tncm91bmQ6ICM0QTMwNzA7IH0KW2RhdGEtdGhlbWU9Im5pZ2h0Il0gI2RhdHVtLXplaWxl
LWFubGFzcyAua2QtYW5sYXNzLWZlaWVydGFnLW11c2xpbWlzY2ggIHsgYmFja2dyb3VuZDogIzEz
NEY0MDsgfQpbZGF0YS10aGVtZT0ibmlnaHQiXSAjZGF0dW0temVpbGUtYW5sYXNzIC5rZC1hbmxh
c3MtZmVpZXJ0YWctdHVlcmtpc2NoICAgeyBiYWNrZ3JvdW5kOiAjODIxODE4OyB9Ci8qIE5pZ2h0
LVRoZW1lOiBXaWNodGlnLU1hcmtlciBiZWhhZWx0IGpldHp0IGRpZSBLYXRlZ29yaWUtRmFyYmUs
IGRpZQogICBnb2xkZW5lIEJvZGVubGluaWUgd2lyZCBpbiBkZXIgYWxsZ2VtZWluZW4gUmVnZWwg
b2JlbiAoWmVpbGUgNTI5KSBnZXNldHp0LiAqLwpbZGF0YS10aGVtZT0ibmlnaHQiXSAjZGF0dW0t
emVpbGUtYW5sYXNzIC5rZC1hbmxhc3MtZmVyaWVuIHsgYmFja2dyb3VuZDogIzFFNTAyNDsgY29s
b3I6ICNFOEY1RUM7IH0KCi8qIEhvcml6b250YWxlIEZlcmllbi1CYXI6IHVlYmVybGFnZXJ0IGRp
ZSBwZXItVGFnLVplbGxlbiBkZXIgQW5sYXNzLVplaWxlIG1pdAogICBlaW5lbSBkdXJjaGdlaGVu
ZGVuIExhYmVsIHVlYmVyIGRpZSBnZXNhbXRlIEZlcmllbi1QZXJpb2RlLiAqLwovKiBPcHRpayAo
SGludGVyZ3J1bmQvUmFobWVuL0dsb3cpIHVlYmVyIEN1c3RvbS1Qcm9wZXJ0aWVzIGF1cyBkZW0K
ICAgRXJzY2hlaW51bmdzYmlsZC1FZGl0b3IgKC0tbWZlci0qKS4gVW5rb25maWd1cmllcnQgPSB0
cmFuc3BhcmVudGVyIEJhbGtlbiwKICAgbnVyIGRhcyBMYWJlbCwgd2llIGJpc2hlci4gKi8KLmtk
LWZlcmllbi1iYXIgewogICAgcG9zaXRpb246IGFic29sdXRlOwogICAgdG9wOiA1MCU7CiAgICB0
cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7CiAgICBoZWlnaHQ6IDIycHg7CiAgICBkaXNwbGF5
OiBmbGV4OwogICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgIGp1c3RpZnktY29udGVudDogY2Vu
dGVyOwogICAgcGFkZGluZzogMCA4cHg7CiAgICBwb2ludGVyLWV2ZW50czogbm9uZTsKICAgIHot
aW5kZXg6IDI7CiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1tZmVyLWJnLCB0cmFuc3BhcmVudCk7CiAg
ICBib3gtc2hhZG93OiB2YXIoLS1tZmVyLXNoYWRvdywgbm9uZSk7CiAgICBhbmltYXRpb246IHZh
cigtLW1mZXItYW5pbSwgbm9uZSk7CiAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1yYWRpdXMteHMp
Owp9Ci5rZC1mZXJpZW4tYmFyLXRleHQgewogICAgZm9udC1zaXplOiBjYWxjKDExcHggKiB2YXIo
LS1tZmVyLWZzLCAxKSk7CiAgICBmb250LXdlaWdodDogdmFyKC0tbWZlci1mdywgNzAwKTsKICAg
IGNvbG9yOiB2YXIoLS1tZmVyLXRleHQsICMyNTYwMjkpOwogICAgbGV0dGVyLXNwYWNpbmc6IDAu
M3B4OwogICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsKICAgIHdoaXRlLXNwYWNlOiBub3dy
YXA7CiAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7CiAg
ICBtYXgtd2lkdGg6IDEwMCU7CiAgICB0ZXh0LXNoYWRvdzogMCAxcHggMCByZ2JhKDI1NSwyNTUs
MjU1LDAuMzUpOwp9CltkYXRhLXRoZW1lPSJuaWdodCJdIC5rZC1mZXJpZW4tYmFyLXRleHQgewog
ICAgY29sb3I6IHZhcigtLW1mZXItdGV4dCwgI2E1ZDZhNyk7CiAgICB0ZXh0LXNoYWRvdzogMCAx
cHggMCByZ2JhKDAsMCwwLDAuNDUpOwp9Ci8qIFdvY2hlbmVuZC1NYXJrZXIgaW5uZXJoYWxiIGRl
ciBGZXJpZW4tQmFyOiBkZXplbnRlLCBsZWljaHQgZHVua2xlcmUKICAgU2NocmFmZnVyIHVlYmVy
IFNhL1NvLCBkYW1pdCBzaWUgYXVjaCB3YWVocmVuZCBkZXIgRmVyaWVuIG9wdGlzY2gKICAgc2lj
aHRiYXIgYmxlaWJlbi4gUHJvIFdvY2hlbmVuZC1UYWcgZWluIDxzcGFuPiBtaXQgYWJzb2x1dGVy
CiAgIFBvc2l0aW9uIChQaXhlbC1PZmZzZXQgd2lyZCB2b20gSlMgZ2VzZXR6dCkuICovCi5rZC1m
ZXJpZW4tYmFyLXdlIHsKICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgIHRvcDogMDsKICAgIGJv
dHRvbTogMDsKICAgIGJhY2tncm91bmQ6IHJlcGVhdGluZy1saW5lYXItZ3JhZGllbnQoCiAgICAg
ICAgMTM1ZGVnLAogICAgICAgIHJnYmEoMCwwLDAsMC4xMCkgMCwKICAgICAgICByZ2JhKDAsMCww
LDAuMTApIDRweCwKICAgICAgICB0cmFuc3BhcmVudCA0cHgsCiAgICAgICAgdHJhbnNwYXJlbnQg
OHB4CiAgICApOwogICAgcG9pbnRlci1ldmVudHM6IG5vbmU7Cn0KW2RhdGEtdGhlbWU9Im5pZ2h0
Il0gLmtkLWZlcmllbi1iYXItd2UgewogICAgYmFja2dyb3VuZDogcmVwZWF0aW5nLWxpbmVhci1n
cmFkaWVudCgKICAgICAgICAxMzVkZWcsCiAgICAgICAgcmdiYSgwLDAsMCwwLjMwKSAwLAogICAg
ICAgIHJnYmEoMCwwLDAsMC4zMCkgNHB4LAogICAgICAgIHRyYW5zcGFyZW50IDRweCwKICAgICAg
ICB0cmFuc3BhcmVudCA4cHgKICAgICk7Cn0KCi8qIEV2ZW50LUljb25zIChTb25kZXJ0ZXJtaW4g
KyBHZWJ1cnRzdGFnKSDigJQgbGViZW4gamV0enQgaW4gZGVyIGdlbWVpbnNhbWVuCiAgIEFubGFz
cy1aZWlsZSBzdGF0dCBlaW5lciBzZXBhcmF0ZW4gRXZlbnRzLVplaWxlIChNYWkgMjAyNikuICov
Ci5rZC1ldmVudC1pY29uIHsKICAgIGZvbnQtc2l6ZTogMThweDsKICAgIGxpbmUtaGVpZ2h0OiAx
OwogICAgZGlzcGxheTogaW5saW5lLWJsb2NrOwogICAgdXNlci1zZWxlY3Q6IG5vbmU7Cn0KLmtk
LWV2ZW50LXNvbmRlciB7CiAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICB0cmFuc2l0aW9uOiB0cmFu
c2Zvcm0gMC4xMnM7CiAgICAvKiBNb25vY2hyb21lIFN5bWJvbC1EYXJzdGVsbHVuZyAoQ2hlcnJ5
LVBpY2sgOGIyZDBmZCk6IGZvbGd0IGRlcgogICAgICAgVGhlbWUtVGV4dGZhcmJlIHN0YXR0IGJ1
bnRlbiBFbW9qaS4gKi8KICAgIGZvbnQtZmFtaWx5OiAiU2Vnb2UgVUkgU3ltYm9sIiwiQ2FtYnJp
YSBNYXRoIiwiU1RJWCIsIkRlamFWdSBTYW5zIiwiTHVjaWRhIFNhbnMgVW5pY29kZSIsc2Fucy1z
ZXJpZjsKICAgIGZvbnQtdmFyaWFudC1lbW9qaTogdGV4dDsKICAgIGNvbG9yOiB2YXIoLS10ZXh0
LW9uLXByaW1hcnksIGN1cnJlbnRDb2xvcik7CiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDsKICAg
IGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgIG1p
bi13aWR0aDogMThweDsKICAgIG1pbi1oZWlnaHQ6IDE4cHg7CiAgICBwYWRkaW5nOiAxcHggM3B4
OwogICAgYm9yZGVyLXJhZGl1czogdmFyKC0tcmFkaXVzLXNtKTsKICAgIGJvcmRlcjogMnB4IHNv
bGlkIHRyYW5zcGFyZW50OwogICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKfQovKiBIaW53ZWlz
LS9XYXJudW5ncy1Tb25kZXJ0ZXJtaW5lIGFscyBrbGFyIGxlc2JhcmVzIEJhZGdlIHN0YXR0IG51
ciBoZWxsZXIKICAgR2x5cGggYXVmIGR1bmtsZW0gSGVhZGVyICh3YXIgYXVmIG1hbmNoZW4gSGlu
dGVyZ3J1ZW5kZW4g4oCUIHouQi4gS2FybmV2YWwKICAgMTYuMDIg4oCUIHNjaHdlciBsZXNiYXIp
LiBSdW5kZXIgSW5mby1QdW5rdCBtaXQga3JhZWZ0aWdlciBGdWVsbHVuZy4gKi8KLmtkLWV2ZW50
LXNvbmRlci5rZC1ldmVudC1oaW53ZWlzIHsKICAgIGJhY2tncm91bmQ6ICMyZjdmZDE7IGNvbG9y
OiAjZmZmOyBmb250LXdlaWdodDogNzAwOwogICAgYm9yZGVyLXJhZGl1czogNTAlOyB3aWR0aDog
MTdweDsgaGVpZ2h0OiAxN3B4OwogICAgbWluLXdpZHRoOiAxN3B4OyBtaW4taGVpZ2h0OiAxN3B4
OyBwYWRkaW5nOiAwOyBmb250LXNpemU6IDEycHg7Cn0KLmtkLWV2ZW50LXNvbmRlci5rZC1ldmVu
dC13YXJudW5nIHsKICAgIGJhY2tncm91bmQ6ICNkNjZmMWU7IGNvbG9yOiAjZmZmOyBmb250LXdl
aWdodDogNzAwOwogICAgYm9yZGVyLXJhZGl1czogdmFyKC0tcmFkaXVzLXNtKTsKfQpbZGF0YS10
aGVtZT0ibmlnaHQiXSAua2QtZXZlbnQtc29uZGVyLmtkLWV2ZW50LWhpbndlaXMgeyBiYWNrZ3Jv
dW5kOiAjM2E4ZmUwOyB9CltkYXRhLXRoZW1lPSJuaWdodCJdIC5rZC1ldmVudC1zb25kZXIua2Qt
ZXZlbnQtd2FybnVuZyB7IGJhY2tncm91bmQ6ICNlMDdmMmU7IH0KLmtkLWV2ZW50LXNvbmRlcjpo
b3ZlciB7IHRyYW5zZm9ybTogc2NhbGUoMS4xOCk7IH0KLyogIldpY2h0aWciLU1hcmtpZXJ1bmcg
KENoZXJyeS1QaWNrIDg0ZmIwZjcsIGhpbnRlciBUb2dnbGUKICAgYGZlYXR1cmVzLnNvbmRlcnRl
cm1pbmVXaWNodGlnYCk6IGJvcmRlYXV4cm90ZXIgU2lnbmFsLVJhaG1lbi4gKi8KLmtkLWV2ZW50
LXNvbmRlci5rZC1ldmVudC13aWNodGlnIHsKICAgIGJvcmRlci1jb2xvcjogIzgwMDAyMDsKICAg
IGJhY2tncm91bmQ6IHJnYmEoMTI4LDAsMzIsMC4xMik7CiAgICBib3gtc2hhZG93OiAwIDAgMCAx
cHggcmdiYSgxMjgsMCwzMiwwLjM1KTsKfQpbZGF0YS10aGVtZT0ibmlnaHQiXSAua2QtZXZlbnQt
c29uZGVyLmtkLWV2ZW50LXdpY2h0aWcgewogICAgYm9yZGVyLWNvbG9yOiAjYzA0NTVhOwogICAg
YmFja2dyb3VuZDogcmdiYSgxOTIsNjksOTAsMC4xOCk7Cn0KLmtkLWV2ZW50LWdlYnVydHN0YWcg
eyBjdXJzb3I6IGhlbHA7IH0KLmtkLWV2ZW50cy1rbGlja2JhciB7IGN1cnNvcjogcG9pbnRlcjsg
fQoKLyogWmVpbGUgNDogU3TDpHJrZSAqLwojc3RhZXJrZS16ZWlsZSAua2QtemVsbGUgewogICAg
Zm9udC1zaXplOiB2YXIoLS1mcy14cyk7CiAgICBmb250LXdlaWdodDogNzAwOwogICAgY29sb3I6
ICNmZmY7CiAgICBib3JkZXItcmlnaHQtY29sb3I6IHJnYmEoMjU1LDI1NSwyNTUsMC4xNSk7Cn0K
LnN0YWVya2Utb2sgeyBiYWNrZ3JvdW5kOiAjMjc4OTZEOyB9Ci5zdGFlcmtlLXdhcm51bmcgeyBi
YWNrZ3JvdW5kOiAjQjAzQTJFOyBhbmltYXRpb246IHB1bHNSb3QgMnMgZWFzZS1pbi1vdXQgaW5m
aW5pdGU7IH0KQGtleWZyYW1lcyBwdWxzUm90IHsgMCUsMTAwJSB7IG9wYWNpdHk6MTsgfSA1MCUg
eyBvcGFjaXR5OjAuNzsgfSB9CgovKiBTY2hpY2h0Zm9sZ2UtWmVpbGVuICovCiNzY2hpY2h0Zm9s
Z2UtcmVjaHRzIC5rb3BmLWRhdGVuLXplaWxlIC5rZC16ZWxsZSB7CiAgICBiYWNrZ3JvdW5kOiB2
YXIoLS1iZy1jYXJkLWFsdCk7CiAgICBjb2xvcjogdmFyKC0tdGV4dC1zZWNvbmRhcnkpOwogICAg
Zm9udC1zaXplOiA5cHg7CiAgICBmb250LXdlaWdodDogNTAwOwogICAgYm9yZGVyLXJpZ2h0LWNv
bG9yOiB2YXIoLS1ib3JkZXItbGlnaHQpOwp9CiNzY2hpY2h0Zm9sZ2UtcmVjaHRzIC5rb3BmLWRh
dGVuLXplaWxlOmZpcnN0LWNoaWxkIC5rZC16ZWxsZSB7CiAgICBib3JkZXItdG9wOiAxcHggc29s
aWQgdmFyKC0tYm9yZGVyLXN0cm9uZyk7Cn0KCi8qIFRhZ2VzdHlwZW4gaW0gS29wZiDigJQgc3Rh
cmtlciBLb250cmFzdCAqLwoua2Qtd29jaGVuZW5kZSB7IGJhY2tncm91bmQ6ICM3MTkxQjMgIWlt
cG9ydGFudDsgY29sb3I6ICNGMkY2RkEgIWltcG9ydGFudDsgfQoua2QtZmVpZXJ0YWctYmcgeyBi
YWNrZ3JvdW5kOiAjNEE2QThDICFpbXBvcnRhbnQ7IGNvbG9yOiAjRkZGRkZGICFpbXBvcnRhbnQ7
IH0KLyogV2ljaHRpZ2UgRmVpZXJ0YWdlOiBhbGxlIHZpc3VlbGxlbiBQYXJhbWV0ZXIga29tbWVu
IHVlYmVyIEN1c3RvbS0KICAgUHJvcGVydGllcyAoc2llaGUgYWRtaW5fZXJzY2hlaW51bmdzYmls
ZC5qcykuIERlZmF1bHRzIHNpbmQgaW0gRWRpdG9yCiAgIHBlciBLbGljayB3aWVkZXJoZXJzdGVs
bGJhci4gKi8KLmtkLWZlaWVydGFnLXdpY2h0aWcgewogICAgYmFja2dyb3VuZDogdmFyKC0tbWZ3
aS1iZywgdHJhbnNwYXJlbnQpICFpbXBvcnRhbnQ7CiAgICBjb2xvcjogICAgICB2YXIoLS1tZndp
LXRleHQsIGluaGVyaXQpICFpbXBvcnRhbnQ7CiAgICBmb250LXdlaWdodDogdmFyKC0tbWZ3aS1m
dywgNDAwKSAhaW1wb3J0YW50OwogICAgYm94LXNoYWRvdzogdmFyKC0tbWZ3aS1zaGFkb3csIG5v
bmUpICFpbXBvcnRhbnQ7CiAgICBhbmltYXRpb246ICB2YXIoLS1tZndpLWFuaW0sIG5vbmUpOwp9
Ci5rZC1oZXV0ZSB7IGJhY2tncm91bmQ6IHZhcigtLXRhZy1oZXV0ZSkgIWltcG9ydGFudDsgY29s
b3I6ICNmZmYgIWltcG9ydGFudDsgYm94LXNoYWRvdzogaW5zZXQgMnB4IDAgMCAjRDRBMDE3LCBp
bnNldCAtMnB4IDAgMCAjRDRBMDE3OyB9CltkYXRhLXRoZW1lPSJuaWdodCJdIC5rZC1oZXV0ZSB7
IGJveC1zaGFkb3c6IGluc2V0IDJweCAwIDAgI0U1QjUzQSwgaW5zZXQgLTJweCAwIDAgI0U1QjUz
QTsgfQpbZGF0YS10aGVtZT0ibmlnaHQiXSAua2Qtd29jaGVuZW5kZSB7IGJhY2tncm91bmQ6ICMy
RTQwNTggIWltcG9ydGFudDsgY29sb3I6ICNDOUQ2RTQgIWltcG9ydGFudDsgfQpbZGF0YS10aGVt
ZT0ibmlnaHQiXSAua2QtZmVpZXJ0YWctYmcgeyBiYWNrZ3JvdW5kOiAjM0Q1NjcyICFpbXBvcnRh
bnQ7IGNvbG9yOiAjRThFRUY1ICFpbXBvcnRhbnQ7IH0KLyogTmlnaHQtVGhlbWU6IFRhZy9OYWNo
dCB0ZWlsZW4gc2ljaCBha3R1ZWxsIGRpZSBWYXJpYWJsZW4gYXVzIGRlbQogICBFZGl0b3Ig4oCU
IGJlaSBCZWRhcmYga2FubiBoaWVyIHNwYWV0ZXIgZWluIFRoZW1lLU92ZXJyaWRlIGdyZWlmZW4u
ICovCgovKiBTb25kZXJ0YWdlIOKAlCBhbGxlIHZpc3VlbGxlbiBQYXJhbWV0ZXIga29tbWVuIHVl
YmVyIEN1c3RvbS1Qcm9wZXJ0aWVzCiAgIChzaWVoZSBhZG1pbl9lcnNjaGVpbnVuZ3NiaWxkLmpz
KS4gUHVsc2UtQW5pbWF0aW9uIHdpcmQgdWViZXIgendlaQogICBCb3gtU2hhZG93LUF1c3ByYWVn
dW5nZW4gaW50ZXJwb2xpZXJ0OiAtLW0uLi4tc2hhZG93IChSdWhlLVp1c3RhbmQpCiAgIHVuZCAt
LW0uLi4tc2hhZG93LXB1bHMgKFB1bHNlLVNwaXR6ZSwgNTAlLUtleWZyYW1lKS4gKi8KLmtkLXNv
bmRlcnRhZy1oaW53ZWlzIHsKICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLW1oaW4tYmcsIHRy
YW5zcGFyZW50KTsKICAgIGNvbG9yOiAgICAgICAgICAgIHZhcigtLW1oaW4tdGV4dCwgaW5oZXJp
dCk7CiAgICBmb250LXdlaWdodDogICAgICB2YXIoLS1taGluLWZ3LCA0MDApOwogICAgYm94LXNo
YWRvdzogICAgICAgdmFyKC0tbWhpbi1zaGFkb3csIG5vbmUpOwogICAgYW5pbWF0aW9uOiAgICAg
ICAgdmFyKC0tbWhpbi1hbmltLCBub25lKTsKICAgIC0tbWFya2llcnVuZy1zaGFkb3ctcHVsczog
dmFyKC0tbWhpbi1zaGFkb3ctcHVscywgdmFyKC0tbWhpbi1zaGFkb3csIG5vbmUpKTsKfQoua2Qt
c29uZGVydGFnLXdhcm51bmcgewogICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tbXdhci1iZywg
dHJhbnNwYXJlbnQpOwogICAgY29sb3I6ICAgICAgICAgICAgdmFyKC0tbXdhci10ZXh0LCBpbmhl
cml0KTsKICAgIGZvbnQtd2VpZ2h0OiAgICAgIHZhcigtLW13YXItZncsIDQwMCk7CiAgICBib3gt
c2hhZG93OiAgICAgICB2YXIoLS1td2FyLXNoYWRvdywgbm9uZSk7CiAgICBhbmltYXRpb246ICAg
ICAgICB2YXIoLS1td2FyLWFuaW0sIG5vbmUpOwogICAgLS1tYXJraWVydW5nLXNoYWRvdy1wdWxz
OiB2YXIoLS1td2FyLXNoYWRvdy1wdWxzLCB2YXIoLS1td2FyLXNoYWRvdywgbm9uZSkpOwp9Ci8q
IFBybyBNYXJraWVydW5nc3R5cCBlaWdlbmVyIEBrZXlmcmFtZXMtQmxvY2ssIHdlaWwgQ1NTLUFu
aW1hdGlvbmVuCiAgIGlocmUgVmFyaWFibGVuLUF1c3dlcnR1bmcgenVyIEFuaW1hdGlvbi1EZWZp
bml0aW9ucy1aZWl0IG1hY2hlbiDigJQKICAgZWluIGdlbmVyaXNjaGVyIEJsb2NrIGtvZW5udGUg
ZGllIHBlci1FbGVtZW50IGdlc2V0enRlbiBWYXJpYWJsZW4KICAgbmljaHQgdHJlbm5lbi4gKi8K
QGtleWZyYW1lcyBwdWxzSGlud2VpcyAgeyAwJSwxMDAlIHsgYm94LXNoYWRvdzogdmFyKC0tbWhp
bi1zaGFkb3csIG5vbmUpOyB9IDUwJSB7IGJveC1zaGFkb3c6IHZhcigtLW1oaW4tc2hhZG93LXB1
bHMsIHZhcigtLW1oaW4tc2hhZG93LCBub25lKSk7IH0gfQpAa2V5ZnJhbWVzIHB1bHNXYXJudW5n
ICB7IDAlLDEwMCUgeyBib3gtc2hhZG93OiB2YXIoLS1td2FyLXNoYWRvdywgbm9uZSk7IH0gNTAl
IHsgYm94LXNoYWRvdzogdmFyKC0tbXdhci1zaGFkb3ctcHVscywgdmFyKC0tbXdhci1zaGFkb3cs
IG5vbmUpKTsgfSB9CkBrZXlmcmFtZXMgcHVsc0ZlaWVydGFnIHsgMCUsMTAwJSB7IGJveC1zaGFk
b3c6IHZhcigtLW1md2ktc2hhZG93LCBub25lKTsgfSA1MCUgeyBib3gtc2hhZG93OiB2YXIoLS1t
ZndpLXNoYWRvdy1wdWxzLCB2YXIoLS1tZndpLXNoYWRvdywgbm9uZSkpOyB9IH0KQGtleWZyYW1l
cyBwdWxzSGV1dGUgICAgeyAwJSwxMDAlIHsgYm94LXNoYWRvdzogdmFyKC0tbWhlLXNoYWRvdywg
IG5vbmUpOyB9IDUwJSB7IGJveC1zaGFkb3c6IHZhcigtLW1oZS1zaGFkb3ctcHVscywgIHZhcigt
LW1oZS1zaGFkb3csICBub25lKSk7IH0gfQpAa2V5ZnJhbWVzIHB1bHNGZXJpZW4gICB7IDAlLDEw
MCUgeyBib3gtc2hhZG93OiB2YXIoLS1tZmVyLXNoYWRvdywgbm9uZSk7IH0gNTAlIHsgYm94LXNo
YWRvdzogdmFyKC0tbWZlci1zaGFkb3ctcHVscywgdmFyKC0tbWZlci1zaGFkb3csIG5vbmUpKTsg
fSB9CgovKiBEaXJ0eS1QdWxzZSBmdWVyIFNwZWljaGVybi1CdXR0b25zIG1pdCB1bmdlc3BlaWNo
ZXJ0ZW4gQWVuZGVydW5nZW4uCiAgIFZpc3VlbGxlciBIaW53ZWlzIGJldm9yIGRlciBVc2VyIHZl
cnNlaGVudGxpY2ggZGVuIFRhYiB3ZWNoc2VsdCB1bmQgSW5wdXQKICAgdmVybGllcnQgKHNpZWhl
IEZhY2hhdWZzaWNodC1UYWJlbGxlKS4gKi8KLmJ0bi5kaXJ0eS1wdWxzZSB7IGFuaW1hdGlvbjog
ZGlydHlQdWxzIDEuNnMgZWFzZS1pbi1vdXQgaW5maW5pdGU7IGJveC1zaGFkb3c6IDAgMCAwIDAg
cmdiYSgyMDIsMTExLDMwLDAuNik7IH0KQGtleWZyYW1lcyBkaXJ0eVB1bHMgeyAwJSwxMDAlIHsg
Ym94LXNoYWRvdzogMCAwIDAgMCByZ2JhKDIwMiwxMTEsMzAsMC42KTsgfSA1MCUgeyBib3gtc2hh
ZG93OiAwIDAgMCA2cHggcmdiYSgyMDIsMTExLDMwLDApOyB9IH0KCi8qIEltcGVyc29uYXRpb24t
QmFubmVyOiB6ZWlndCwgZGFzcyBkaWUgT2JlcmZsYWVjaGUgYWt0dWVsbCBhbHMgYW5kZXJlCiAg
IFJvbGxlIHNpbXVsaWVydCB3aXJkLiBTZXJ2ZXItUmVjaHRlIGJsZWliZW4gU1UsIFVJIGFlbmRl
cnQgc2ljaCByZWluCiAgIGNsaWVudHNlaXRpZy4gKi8KLmltcGVyc29uYXRlLWJhbm5lciB7CiAg
ICBwb3NpdGlvbjogc3RpY2t5OwogICAgdG9wOiAwOwogICAgei1pbmRleDogdmFyKC0tei1vdmVy
bGF5KTsKICAgIGJhY2tncm91bmQ6IHZhcigtLWZhcmJlLXdhcm51bmcpOwogICAgY29sb3I6ICNm
ZmY7CiAgICBwYWRkaW5nOiA4cHggMTZweDsKICAgIGRpc3BsYXk6IGZsZXg7IGFsaWduLWl0ZW1z
OiBjZW50ZXI7IGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgZ2FwOiAxNHB4OwogICAgZm9u
dC13ZWlnaHQ6IDYwMDsKICAgIGxldHRlci1zcGFjaW5nOiAwLjJweDsKICAgIGJveC1zaGFkb3c6
IDAgMnB4IDZweCByZ2JhKDAsMCwwLDAuMTUpOwp9Ci5pbXBlcnNvbmF0ZS1iYW5uZXIgLmltcC1p
Y29uIHsgZm9udC1zaXplOiAxOHB4OyB9Ci5pbXBlcnNvbmF0ZS1iYW5uZXIgLmJ0biB7IGJhY2tn
cm91bmQ6IHJnYmEoMjU1LDI1NSwyNTUsMC4yKTsgY29sb3I6ICNmZmY7IGJvcmRlci1jb2xvcjog
cmdiYSgyNTUsMjU1LDI1NSwwLjUpOyB9Ci5pbXBlcnNvbmF0ZS1iYW5uZXIgLmJ0bjpob3ZlciB7
IGJhY2tncm91bmQ6IHJnYmEoMjU1LDI1NSwyNTUsMC4zMik7IH0KCi8qIChBbHRlIFNvbmRlcm1h
cmtlci1DU1MgaW4gZGVyIGZydWVoZXJlbiBGZXJpZW4tWmVpbGUgZW50ZmVybnQg4oCUIEZpbmRp
bmdzIEMuMTIvQy4xMy4KICAgU29uZGVydGVybWluZSBzaW5kIGpldHp0IGluIGRlciBlaWdlbmVu
IEV2ZW50cy1aZWlsZSBtaXQgZ3Jvc3NlbiBJY29ucy4pICovCgovKiBCYWRnZXMgaW4gS29wZnpl
aWxlIChEYXR1bSkg4oCUIEdlYnVydHN0YWcsIEhpbndlaXMsIFdhcm51bmcgKi8KLmtkLXplbGxl
IHsgcG9zaXRpb246IHJlbGF0aXZlOyB9Ci5rZC1iYWRnZXMgewogICAgcG9zaXRpb246IGFic29s
dXRlOwogICAgdG9wOiAxcHg7CiAgICByaWdodDogMXB4OwogICAgZGlzcGxheTogZmxleDsKICAg
IGdhcDogMXB4OwogICAgcG9pbnRlci1ldmVudHM6IGF1dG87Cn0KLmtkLWJhZGdlIHsKICAgIGZv
bnQtc2l6ZTogOHB4OwogICAgbGluZS1oZWlnaHQ6IDE7CiAgICBjdXJzb3I6IGhlbHA7CiAgICBm
aWx0ZXI6IGRyb3Atc2hhZG93KDAgMXB4IDFweCByZ2JhKDAsMCwwLDAuNSkpOwp9Ci5rZC1iYWRn
ZS1nYiB7IGZvbnQtc2l6ZTogOXB4OyB9Ci5rZC1iYWRnZS13YXJudW5nIHsgY29sb3I6ICNmZjll
NDI7IGZvbnQtd2VpZ2h0OiA3MDA7IH0KLmtkLWJhZGdlLWhpbndlaXMgeyBjb2xvcjogIzdlYjhk
YTsgZm9udC13ZWlnaHQ6IDcwMDsgfQoKLyogU2NoaWNodGZvbGdlLUZhcmJlbiAoZGV6ZW50ZSBF
aW5mw6RyYnVuZyBqZSBSb3RhdGlvbikgKi8KI3NjaGljaHRmb2xnZS1yZWNodHMgLnNmLWFiYyB7
IGJhY2tncm91bmQ6ICNFOEYxRTggIWltcG9ydGFudDsgY29sb3I6ICMyZDVhM2QgIWltcG9ydGFu
dDsgfQojc2NoaWNodGZvbGdlLXJlY2h0cyAuc2YtYmNhIHsgYmFja2dyb3VuZDogI0U4RURGNSAh
aW1wb3J0YW50OyBjb2xvcjogIzJkNDM3MCAhaW1wb3J0YW50OyB9CiNzY2hpY2h0Zm9sZ2UtcmVj
aHRzIC5zZi1jYWIgeyBiYWNrZ3JvdW5kOiAjRjVFOEU4ICFpbXBvcnRhbnQ7IGNvbG9yOiAjNmIy
ZDJkICFpbXBvcnRhbnQ7IH0KI3NjaGljaHRmb2xnZS1yZWNodHMgLnNmLXBvb2wgeyBiYWNrZ3Jv
dW5kOiAjRUNFQ0VDICFpbXBvcnRhbnQ7IGNvbG9yOiAjNjY2ICFpbXBvcnRhbnQ7IGZvbnQtc3R5
bGU6IGl0YWxpYzsgfQpbZGF0YS10aGVtZT0ibmlnaHQiXSAjc2NoaWNodGZvbGdlLXJlY2h0cyAu
c2YtYWJjIHsgYmFja2dyb3VuZDogIzFjMzAyNCAhaW1wb3J0YW50OyBjb2xvcjogIzhmZDBhMCAh
aW1wb3J0YW50OyB9CltkYXRhLXRoZW1lPSJuaWdodCJdICNzY2hpY2h0Zm9sZ2UtcmVjaHRzIC5z
Zi1iY2EgeyBiYWNrZ3JvdW5kOiAjMWMyNDM2ICFpbXBvcnRhbnQ7IGNvbG9yOiAjOGZiMGUwICFp
bXBvcnRhbnQ7IH0KW2RhdGEtdGhlbWU9Im5pZ2h0Il0gI3NjaGljaHRmb2xnZS1yZWNodHMgLnNm
LWNhYiB7IGJhY2tncm91bmQ6ICMzMDFjMWMgIWltcG9ydGFudDsgY29sb3I6ICNlMGEwYTAgIWlt
cG9ydGFudDsgfQpbZGF0YS10aGVtZT0ibmlnaHQiXSAjc2NoaWNodGZvbGdlLXJlY2h0cyAuc2Yt
cG9vbCB7IGJhY2tncm91bmQ6ICMyYTJhMmEgIWltcG9ydGFudDsgY29sb3I6ICM5OTkgIWltcG9y
dGFudDsgfQoKLyogUmh5dGhtdXMtVm9yc2NoYXUgaW0gQWRtaW4tVGFiICovCi5zZi12b3JzY2hh
dSB7CiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7CiAgICBwYWRkaW5nOiAycHggNXB4OwogICAg
bWFyZ2luOiAxcHg7CiAgICBmb250LXNpemU6IHZhcigtLWZzLXhzKTsKICAgIGZvbnQtd2VpZ2h0
OiA2MDA7CiAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1yYWRpdXMteHMpOwogICAgZm9udC1mYW1p
bHk6IG1vbm9zcGFjZTsKfQouc2Ytdm9yc2NoYXUuc2YtYWJjIHsgYmFja2dyb3VuZDogI0Q4RThE
ODsgY29sb3I6ICMyZDVhM2Q7IH0KLnNmLXZvcnNjaGF1LnNmLWJjYSB7IGJhY2tncm91bmQ6ICNE
OEUwRjA7IGNvbG9yOiAjMmQ0MzcwOyB9Ci5zZi12b3JzY2hhdS5zZi1jYWIgeyBiYWNrZ3JvdW5k
OiAjRjBEOEQ4OyBjb2xvcjogIzZiMmQyZDsgfQouc2Ytdm9yc2NoYXUuc2Ytdm9yc2NoYXUtcG9v
bCB7IGJhY2tncm91bmQ6ICNFMEUwRTA7IGNvbG9yOiAjNjY2OyBmb250LXN0eWxlOiBpdGFsaWM7
IHBhZGRpbmc6IDNweCAxMHB4OyB9CltkYXRhLXRoZW1lPSJuaWdodCJdIC5zZi12b3JzY2hhdS5z
Zi1hYmMgeyBiYWNrZ3JvdW5kOiAjMWMzMDI0OyBjb2xvcjogIzhmZDBhMDsgfQpbZGF0YS10aGVt
ZT0ibmlnaHQiXSAuc2Ytdm9yc2NoYXUuc2YtYmNhIHsgYmFja2dyb3VuZDogIzFjMjQzNjsgY29s
b3I6ICM4ZmIwZTA7IH0KW2RhdGEtdGhlbWU9Im5pZ2h0Il0gLnNmLXZvcnNjaGF1LnNmLWNhYiB7
IGJhY2tncm91bmQ6ICMzMDFjMWM7IGNvbG9yOiAjZTBhMGEwOyB9CltkYXRhLXRoZW1lPSJuaWdo
dCJdIC5zZi12b3JzY2hhdS5zZi12b3JzY2hhdS1wb29sIHsgYmFja2dyb3VuZDogIzJhMmEyYTsg
Y29sb3I6ICM5OTk7IH0KCi8qID09PT09IERhdGVuZ3JpZCA9PT09PSAqLwojZ3JpZC1kYXRlbiB7
IGRpc3BsYXk6IGZsZXg7IGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47IH0KCi5ncmlkLXplaWxlIHsK
ICAgIGRpc3BsYXk6IGZsZXg7CiAgICBoZWlnaHQ6IHZhcigtLXplbGxlLWhvZWhlKTsKICAgIGJv
cmRlci1ib3R0b206IDFweCBzb2xpZCB2YXIoLS1ncmlkLWxpbmllKTsKfQoKLyogR3J1cHBlbnRy
ZW5uemVpbGUgaW0gR3JpZCDigJQgZGllc2VsYmUgSGVhZGVyLUJsYXUtRmxhZWNoZSB3aWUgZGll
IEtvcGZsZWlzdGUsCiAgIGRhbWl0IGRlciBsZWVyZSBCZXJlaWNoIG5lYmVuIGRlbSAiLS0tIERJ
RU5TVEdSVVBQRSBYIC0tLSItTGFiZWwgbmljaHQgbWVocgogICB3ZWlzcyB3aXJrdC4gIWltcG9y
dGFudCwgd2VpbCBsZWVyZSBGbGV4LUtpbmRlciBzb25zdCBnZWxlZ2VudGxpY2ggdm9tCiAgIFBh
cmVudC1IaW50ZXJncnVuZCB1ZWJlcmRlY2t0IHdlcmRlbi4gKi8KI2dyaWQtZGF0ZW4gPiAuZ3Jp
ZC10cmVubmVyIHsKICAgIGRpc3BsYXk6IGZsZXggIWltcG9ydGFudDsKICAgIGhlaWdodDogMThw
eCAhaW1wb3J0YW50OwogICAgYmFja2dyb3VuZDogdmFyKC0tYmctcHJpbWFyeSkgIWltcG9ydGFu
dDsKICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB2YXIoLS1ib3JkZXItY29sb3IpOwogICAg
Ym9yZGVyLXRvcDogMXB4IHNvbGlkIHZhcigtLWJvcmRlci1jb2xvcik7CiAgICBtaW4td2lkdGg6
IDEwMCUgIWltcG9ydGFudDsKfQoKLmdyaWQtemVsbGUgewogICAgd2lkdGg6IHZhcigtLXplbGxl
LWJyZWl0ZSk7CiAgICBtaW4td2lkdGg6IHZhcigtLXplbGxlLWJyZWl0ZSk7CiAgICBkaXNwbGF5
OiBmbGV4OwogICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgIGp1c3RpZnktY29udGVudDogY2Vu
dGVyOwogICAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgdmFyKC0tZ3JpZC1saW5pZSk7CiAgICBm
b250LXNpemU6IDlweDsKICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICBjdXJzb3I6IHBvaW50ZXI7
CiAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMXM7CiAgICBvdmVyZmxvdzogaGlkZGVuOwogICAg
d2hpdGUtc3BhY2U6IG5vd3JhcDsKfQouZ3JpZC16ZWxsZTpob3ZlciB7IG9wYWNpdHk6IDAuODsg
b3V0bGluZTogMnB4IHNvbGlkIHZhcigtLXRleHQtaGVhZGluZyk7IG91dGxpbmUtb2Zmc2V0OiAt
MnB4OyB6LWluZGV4OiAxOyB9Ci8qIExpbmtza2xpY2stTWFya2llcnVuZyAoQXVzd2FobCBvaG5l
IExvY2spLiBLbGFyZXIgUmluZyBpbiBBa3plbnRmYXJiZSwKICAgYmxlaWJ0IHNpY2h0YmFyIGJp
cyBlaW5lIGFuZGVyZSBaZWxsZSBtYXJraWVydCBvZGVyIG5ldSBnZXJlbmRlcnQgd2lyZC4KICAg
UmVjaHRza2xpY2sgYXVmIGRpZSBtYXJraWVydGUgWmVsbGUgb2VmZm5ldCBkZW4gU2NoaWNodC1F
ZGl0b3IuICovCi5ncmlkLXplbGxlLW1hcmtpZXJ0IHsgb3V0bGluZTogMnB4IHNvbGlkIHZhcigt
LWJnLXByaW1hcnkpOyBvdXRsaW5lLW9mZnNldDogLTJweDsgei1pbmRleDogMjsgYm94LXNoYWRv
dzogaW5zZXQgMCAwIDAgMXB4IHZhcigtLWJnLXByaW1hcnkpOyB9CltkYXRhLXRoZW1lPSJuaWdo
dCJdIC5ncmlkLXplbGxlLW1hcmtpZXJ0IHsgb3V0bGluZS1jb2xvcjogIzVhOWZkYjsgYm94LXNo
YWRvdzogaW5zZXQgMCAwIDAgMXB4ICM1YTlmZGI7IH0KLmdyaWQtemVsbGUuZ2VzcGVycnQgeyBj
dXJzb3I6IG5vdC1hbGxvd2VkOyBvcGFjaXR5OiAwLjY7IH0KLyogR2VzcGVycnRlIFplbGxlbiBr
bGFyIGFiZ2VzZXR6dDogZ2VkYWVtcGZ0ICsgbGVpY2h0ZSBHcmF1c3R1ZmUsIGRhbWl0IG1hbiBz
aWUKICAgYWxzICJuaWNodC1lZGl0aWVyYmFyIiBlcmtlbm50LCBkZXIgSW5oYWx0IGZyZW1kZXIg
R3J1cHBlbiBhYmVyIGxlc2JhciBibGVpYnQKICAgKFVzZXItV3Vuc2NoIDIwMjYtMDUtMjcpLiBD
aGVycnktUGljayAyYTc3NTJiLiAqLwouZ3JpZC16ZWxsZS1nZXNwZXJydCB7IGN1cnNvcjogbm90
LWFsbG93ZWQ7IG9wYWNpdHk6IDAuNTsgZmlsdGVyOiBncmF5c2NhbGUoMC41KTsgfQouZ3JpZC16
ZWxsZS1nZXNwZXJydDpob3ZlciB7IG9wYWNpdHk6IDAuNzU7IG91dGxpbmU6IDJweCBkYXNoZWQg
dmFyKC0tdGV4dC1tdXRlZCk7IG91dGxpbmUtb2Zmc2V0OiAtMnB4OyB9CgovKiBMaXZlLVN5bmM6
IFplbGxlIHdpcmQgZ2VyYWRlIHZvbiBlaW5lbSBhbmRlcmVuIFVzZXIgZWRpdGllcnQuCiAgIFZp
c3VlbGxlciBJbmRpa2F0b3IgKyBjdXJzb3Igbm90LWFsbG93ZWQuIFRvb2x0aXAgd2lyZCB2b20g
SlMgZ2VzZXR6dC4gKi8KLmdyaWQtemVsbGUtbG9ja2VkIHsKICAgIGN1cnNvcjogbm90LWFsbG93
ZWQgIWltcG9ydGFudDsKICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMCAwIDJweCAjQ0E2RjFFICFp
bXBvcnRhbnQ7ICAvKiB3YXJuLW9yYW5nZSBSYWhtZW4gKi8KICAgIHBvc2l0aW9uOiByZWxhdGl2
ZTsKfQouZ3JpZC16ZWxsZS1sb2NrZWQ6OmFmdGVyIHsKICAgIGNvbnRlbnQ6ICcnOwogICAgcG9z
aXRpb246IGFic29sdXRlOwogICAgdG9wOiAxcHg7IHJpZ2h0OiAxcHg7CiAgICB3aWR0aDogNnB4
OyBoZWlnaHQ6IDZweDsKICAgIGJvcmRlci1yYWRpdXM6IDUwJTsKICAgIGJhY2tncm91bmQ6ICND
QTZGMUU7CiAgICBib3gtc2hhZG93OiAwIDAgNHB4IHJnYmEoMjAyLDExMSwzMCwwLjYpOwogICAg
cG9pbnRlci1ldmVudHM6IG5vbmU7Cn0KW2RhdGEtdGhlbWU9Im5pZ2h0Il0gLmdyaWQtemVsbGUt
bG9ja2VkIHsgYm94LXNoYWRvdzogaW5zZXQgMCAwIDAgMnB4ICNFNjhBMzUgIWltcG9ydGFudDsg
fQpbZGF0YS10aGVtZT0ibmlnaHQiXSAuZ3JpZC16ZWxsZS1sb2NrZWQ6OmFmdGVyIHsgYmFja2dy
b3VuZDogI0U2OEEzNTsgfQoKLyogTGl2ZS1TeW5jOiBBdWZsZXVjaHRlbiBiZWkgcmVtb3RlLWdl
dHJpZ2dlcnRlbiBBZW5kZXJ1bmdlbi4KICAgRmFyYmUgKyBHbG93ICsgRGF1ZXIgdWViZXIgQ3Vz
dG9tLVByb3BlcnRpZXMgYXVzIGRlbSBFcnNjaGVpbnVuZ3MtCiAgIGJpbGQtRWRpdG9yICgtLW1z
Zi0qKS4gRGVmYXVsdC1BbmltYXRpb24gbGFldWZ0IGVpbm1hbCwgZGF1ZXIgYXVzCiAgIC0tbXNm
LWRhdWVyIChGYWxsYmFjayAxNTAwbXMpLiAqLwpAa2V5ZnJhbWVzIHplbGxlLWZsYXNoIHsKICAg
IDAlICAgeyBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1tc2YtYmcsIHJnYmEoMjU1LDIzMCwxMjgs
MC44NSkpOyBib3gtc2hhZG93OiB2YXIoLS1tc2Ytc2hhZG93LCAwIDAgMTJweCA0cHggcmdiYSgy
NTUsMjE1LDAsMC44NSkpOyB9CiAgICA1MCUgIHsgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tbXNm
LWJnLCByZ2JhKDI1NSwyMzAsMTI4LDAuNTUpKTsgYm94LXNoYWRvdzogdmFyKC0tbXNmLXNoYWRv
dy1wdWxzLCB2YXIoLS1tc2Ytc2hhZG93LCAwIDAgOHB4IDJweCByZ2JhKDI1NSwyMTUsMCwwLjU1
KSkpOyB9CiAgICAxMDAlIHsgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7IGJveC1zaGFk
b3c6IG5vbmU7IH0KfQouemVsbGUtZmxhc2ggeyBhbmltYXRpb246IHplbGxlLWZsYXNoIHZhcigt
LW1zZi1kYXVlciwgMTUwMG1zKSBlYXNlLW91dDsgfQoKLyogRXhjZWwtYWVobmxpY2hlciBGdWVs
bC1HcmlmZjoKICAgLSBzb3VyY2UgPSBRdWVsbC1aZWxsZSAoaGF0dGUgZ2VyYWRlIGVpbmVuIEVk
aXQpCiAgIC0gdGFyZ2V0ID0gdm9yZ2VtZXJrdGUgWmVsbGUgd2FlaHJlbmQgZGVzIERyYWdzCiAg
IC0gI2ZpbGwtaGFuZGxlID0gZGFzIGtsZWluZSBibGF1ZSBRdWFkcmF0IHVudGVuIHJlY2h0cyBh
biBkZXIgUXVlbGxlICovCi5ncmlkLXplbGxlLWZpbGwtc291cmNlIHsKICAgIG91dGxpbmU6IDJw
eCBzb2xpZCB2YXIoLS1mYXJiZS1ha3plbnQsICM0YTkwZTIpICFpbXBvcnRhbnQ7CiAgICBvdXRs
aW5lLW9mZnNldDogLTJweDsKICAgIHotaW5kZXg6IDI7Cn0KLmdyaWQtemVsbGUtZmlsbC10YXJn
ZXQgewogICAgb3V0bGluZTogMXB4IGRhc2hlZCB2YXIoLS1mYXJiZS1ha3plbnQsICM0YTkwZTIp
OwogICAgb3V0bGluZS1vZmZzZXQ6IC0xcHg7CiAgICBiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXIt
Z3JhZGllbnQoNDVkZWcsIHRyYW5zcGFyZW50IDAgMzUlLCByZ2JhKDc0LDE0NCwyMjYsMC4xOCkg
MzUlIDY1JSwgdHJhbnNwYXJlbnQgNjUlKTsKfQojZmlsbC1oYW5kbGUgewogICAgcG9zaXRpb246
IGZpeGVkOwogICAgd2lkdGg6IDhweDsgaGVpZ2h0OiA4cHg7CiAgICBiYWNrZ3JvdW5kOiAjOGIw
MDAwOwogICAgYm9yZGVyOiAxcHggc29saWQgI2ZmZjsKICAgIGN1cnNvcjogY3Jvc3NoYWlyOwog
ICAgei1pbmRleDogMTAwMDsKICAgIGJveC1zaGFkb3c6IDAgMXB4IDJweCByZ2JhKDAsMCwwLDAu
NDUpOwogICAgYm9yZGVyLXJhZGl1czogMXB4Owp9CiNmaWxsLWhhbmRsZTpob3ZlciB7IHRyYW5z
Zm9ybTogc2NhbGUoMS40KTsgYmFja2dyb3VuZDogI2EwMDAwMDsgfQoKLyogU3BhbHRlbnR5cGVu
IOKAlCBkZXV0bGljaGUgVW50ZXJzY2hlaWR1bmcgKi8KLnNwYWx0ZS13b2NoZW5lbmRlIHsgYmFj
a2dyb3VuZC1jb2xvcjogI0VERjJGODsgYm9yZGVyLXJpZ2h0LWNvbG9yOiAjRDRERUVDOyB9Ci5z
cGFsdGUtZmVpZXJ0YWcgICB7IGJhY2tncm91bmQtY29sb3I6ICNEN0U0RjA7IGJvcmRlci1yaWdo
dC1jb2xvcjogI0IwQzREODsgfQouc3BhbHRlLWZlcmllbiAgICAgeyBiYWNrZ3JvdW5kLWNvbG9y
OiB2YXIoLS1tZmVyLXNwYWx0ZS1iZywgI0UwRjBFNCk7IH0KW2RhdGEtdGhlbWU9Im5pZ2h0Il0g
LnNwYWx0ZS13b2NoZW5lbmRlIHsgYmFja2dyb3VuZC1jb2xvcjogIzFGMkEzODsgYm9yZGVyLXJp
Z2h0LWNvbG9yOiAjMkQzRTU1OyB9CltkYXRhLXRoZW1lPSJuaWdodCJdIC5zcGFsdGUtZmVpZXJ0
YWcgICB7IGJhY2tncm91bmQtY29sb3I6ICMyNTM1NDc7IGJvcmRlci1yaWdodC1jb2xvcjogIzM4
NTI3MDsgfQpbZGF0YS10aGVtZT0ibmlnaHQiXSAuc3BhbHRlLWZlcmllbiAgICAgeyBiYWNrZ3Jv
dW5kLWNvbG9yOiB2YXIoLS1tZmVyLXNwYWx0ZS1iZywgIzFDMkUyMik7IH0KCi8qIEhldXRlLVNw
YWx0ZTogYWxsZSB2aXN1ZWxsZW4gUGFyYW1ldGVyIChIaW50ZXJncnVuZCwgUmFobWVuLUFremVu
dGUsCiAgIG9wdGlvbmFsZXIgR2xvdykga29tbWVuIHVlYmVyIEN1c3RvbS1Qcm9wZXJ0aWVzIGF1
cyBkZW0gRXJzY2hlaW51bmdzLQogICBiaWxkLUVkaXRvciAoYWRtaW5fZXJzY2hlaW51bmdzYmls
ZC5qcyAvIG1hcmtpZXJ1bmdlbkFud2VuZGVuKS4gKi8KLnNwYWx0ZS1oZXV0ZSB7CiAgICBiYWNr
Z3JvdW5kLWNvbG9yOiB2YXIoLS1taGUtYmcsIHRyYW5zcGFyZW50KTsKICAgIGNvbG9yOiB2YXIo
LS1taGUtdGV4dCwgaW5oZXJpdCk7CiAgICBmb250LXdlaWdodDogdmFyKC0tbWhlLWZ3LCA0MDAp
OwogICAgZm9udC1zaXplOiBjYWxjKHZhcigtLW1oZS1mcywgMSkgKiAxZW0pOwogICAgYm94LXNo
YWRvdzogdmFyKC0tbWhlLXNoYWRvdywgbm9uZSk7CiAgICBhbmltYXRpb246IHZhcigtLW1oZS1h
bmltLCBub25lKTsKfQoKLyogU2NocmFmZnVyZW4g4oCUIGFsbGUgUmljaHR1bmdlbiBlaW5oZWl0
bGljaCA0NWRlZyAodm9uIGxpbmtzIHVudGVuIG5hY2gKICAgcmVjaHRzIG9iZW4pLiBVbnRlcnNj
aGVpZHVuZyBGL1MvTiBudXIgdWViZXIgTGluaWVuLURpY2h0ZToKICAgRiA9IG1pdHRsZXJlIFN0
cmljaC1EaWNodGUsIFMgPSBicmVpdGUgU3RyZWlmZW4sIE4gPSBzZWhyIGRpY2h0ZSBTY2hyYWZm
dXIuCiAgIC0yIFZhcmlhbnRlIChSYW5nIDIpIGlzdCBoZWxsZXIuIENoZXJyeS1QaWNrIDg0ZmIw
ZjcuICovCi5zY2hyYWZmdXItZnJ1ZWggewogICAgYmFja2dyb3VuZC1pbWFnZTogcmVwZWF0aW5n
LWxpbmVhci1ncmFkaWVudCg0NWRlZywgdHJhbnNwYXJlbnQgMCAzcHgsIHJnYmEoMjU1LDI1NSwy
NTUsMC4yNSkgM3B4IDVweCkgIWltcG9ydGFudDsKICAgIGZvbnQtd2VpZ2h0OiA4MDAgIWltcG9y
dGFudDsgdGV4dC1zaGFkb3c6IDAgMXB4IDJweCByZ2JhKDAsMCwwLDAuMyk7Cn0KLnNjaHJhZmZ1
ci1zcGFldCB7CiAgICBiYWNrZ3JvdW5kLWltYWdlOiByZXBlYXRpbmctbGluZWFyLWdyYWRpZW50
KDQ1ZGVnLCB0cmFuc3BhcmVudCAwIDZweCwgcmdiYSgyNTUsMjU1LDI1NSwwLjI1KSA2cHggOXB4
KSAhaW1wb3J0YW50OwogICAgZm9udC13ZWlnaHQ6IDgwMCAhaW1wb3J0YW50OyB0ZXh0LXNoYWRv
dzogMCAxcHggMnB4IHJnYmEoMCwwLDAsMC4zKTsKfQouc2NocmFmZnVyLW5hY2h0IHsKICAgIGJh
Y2tncm91bmQtaW1hZ2U6IHJlcGVhdGluZy1saW5lYXItZ3JhZGllbnQoNDVkZWcsIHRyYW5zcGFy
ZW50IDAgMS41cHgsIHJnYmEoMjU1LDI1NSwyNTUsMC4zMCkgMS41cHggM3B4KSAhaW1wb3J0YW50
OwogICAgZm9udC13ZWlnaHQ6IDgwMCAhaW1wb3J0YW50OyB0ZXh0LXNoYWRvdzogMCAxcHggMnB4
IHJnYmEoMCwwLDAsMC4zKTsKfQouc2NocmFmZnVyLWZydWVoLTIgeyBiYWNrZ3JvdW5kLWltYWdl
OiByZXBlYXRpbmctbGluZWFyLWdyYWRpZW50KDQ1ZGVnLCB0cmFuc3BhcmVudCAwIDRweCwgcmdi
YSgyNTUsMjU1LDI1NSwwLjE1KSA0cHggNnB4KSAhaW1wb3J0YW50OyB9Ci5zY2hyYWZmdXItc3Bh
ZXQtMiB7IGJhY2tncm91bmQtaW1hZ2U6IHJlcGVhdGluZy1saW5lYXItZ3JhZGllbnQoNDVkZWcs
IHRyYW5zcGFyZW50IDAgN3B4LCByZ2JhKDI1NSwyNTUsMjU1LDAuMTUpIDdweCAxMHB4KSAhaW1w
b3J0YW50OyB9Ci5zY2hyYWZmdXItbmFjaHQtMiB7IGJhY2tncm91bmQtaW1hZ2U6IHJlcGVhdGlu
Zy1saW5lYXItZ3JhZGllbnQoNDVkZWcsIHRyYW5zcGFyZW50IDAgMnB4LCByZ2JhKDI1NSwyNTUs
MjU1LDAuMTUpIDJweCA0cHgpICFpbXBvcnRhbnQ7IH0KCi8qIFZlcmFudHdvcnRsaWNoa2VpdHMt
TWFya2llcnVuZyAoVG9wLTIgcHJvIFNjaGljaHQpLgogICBUb2tlbiAtLWZhcmJlLXZlcmFudHdv
cnRsaWNoIGlzdCB0aGVtZS1mZXN0IChQaGFzZSAxIGVpbmdlZnVlaHJ0KSDigJQKICAgTGlnaHQ6
IE9yYW5nZSAoLS1mYXJiZS13YXJudW5nKSwgRGFyazogYmxlaWJ0IG9yYW5nZSAoZ3V0IHNpY2h0
YmFyKS4gKi8KLmdyaWQtemVsbGUudmVyYW50d29ydGxpY2ggewogICAgYm94LXNoYWRvdzogaW5z
ZXQgMCAtMnB4IDAgMCB2YXIoLS1mYXJiZS12ZXJhbnR3b3J0bGljaCk7Cn0KLnZlcmFudHdvcnRs
aWNoLWJhZGdlIHsKICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgIHRvcDogMXB4OwogICAgcmln
aHQ6IDFweDsKICAgIHdpZHRoOiA2cHg7CiAgICBoZWlnaHQ6IDZweDsKICAgIGJhY2tncm91bmQ6
IHZhcigtLWZhcmJlLXZlcmFudHdvcnRsaWNoKTsKICAgIGJvcmRlci1yYWRpdXM6IDUwJTsKfQoK
LyogPT09PT0gWmVsbC1FZGl0b3IgPT09PT0gKi8KI3plbGwtZWRpdG9yIHsKICAgIHBvc2l0aW9u
OiBmaXhlZDsgei1pbmRleDogdmFyKC0tei1lZGl0b3IpOwogICAgYmFja2dyb3VuZDogdmFyKC0t
YmctY2FyZCk7IGJvcmRlcjogMnB4IHNvbGlkIHZhcigtLXRleHQtaGVhZGluZyk7CiAgICBib3Jk
ZXItcmFkaXVzOiB2YXIoLS1yYWRpdXMtc20pOyBib3gtc2hhZG93OiAwIDZweCAyMHB4IHZhcigt
LXNoYWRvdy1tZWRpdW0pOwp9CiNlZGl0b3ItYXVzd2FobCB7CiAgICBib3JkZXI6IG5vbmU7IG91
dGxpbmU6IG5vbmU7IGZvbnQtZmFtaWx5OiBpbmhlcml0OyBmb250LXNpemU6IHZhcigtLWZzLXNt
KTsKICAgIGJhY2tncm91bmQ6IHZhcigtLWJnLWNhcmQpOyBjb2xvcjogdmFyKC0tdGV4dC1wcmlt
YXJ5KTsKICAgIG1pbi13aWR0aDogMjAwcHg7IGN1cnNvcjogcG9pbnRlcjsgYm9yZGVyLXJhZGl1
czogdmFyKC0tcmFkaXVzLXhzKTsKfQojZWRpdG9yLWF1c3dhaGwgb3B0aW9uIHsgcGFkZGluZzog
NHB4IDhweDsgfQojZWRpdG9yLWF1c3dhaGwgb3B0aW9uOmNoZWNrZWQgeyBiYWNrZ3JvdW5kOiB2
YXIoLS1iZy1hY3RpdmUpOyB9CgovKiA9PT09PSBBZG1pbi1MYXlvdXQgPT09PT0gKi8KLmFkbWlu
LWxheW91dCB7CiAgICBkaXNwbGF5OiBmbGV4OyBmbGV4OiAxOyBvdmVyZmxvdzogaGlkZGVuOwp9
Ci5hZG1pbi1zaWRlYmFyIHsKICAgIHdpZHRoOiAyNDBweDsgbWluLXdpZHRoOiAyNDBweDsKICAg
IGJhY2tncm91bmQ6IHZhcigtLWJnLXNpZGViYXIpOyBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCB2
YXIoLS1ib3JkZXItY29sb3IpOwogICAgcGFkZGluZzogMCAwIDI0cHggMDsgZGlzcGxheTogZmxl
eDsgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgIG92ZXJmbG93LXk6IGF1dG87Cn0KLyogQ2x1
c3Rlci1HcnVwcGU6IFVlYmVyc2NocmlmdCAoYmxhdWVyIEhlYWRlcikgKyBCdXR0b25zICovCi5h
ZG1pbi1uYXYtZ3J1cHBlIHsKICAgIGRpc3BsYXk6IGZsZXg7IGZsZXgtZGlyZWN0aW9uOiBjb2x1
bW47CiAgICBwYWRkaW5nOiAwIDAgNnB4IDA7Cn0KLmFkbWluLW5hdi10aXRlbCB7CiAgICBtYXJn
aW46IDA7IHBhZGRpbmc6IDhweCAxNnB4OwogICAgYmFja2dyb3VuZDogdmFyKC0tYmctcHJpbWFy
eSk7IGNvbG9yOiB2YXIoLS10ZXh0LW9uLXByaW1hcnkpOwogICAgZm9udC1zaXplOiB2YXIoLS1m
cy1zbSk7IGZvbnQtd2VpZ2h0OiA3MDA7IGxldHRlci1zcGFjaW5nOiAxcHg7CiAgICB0ZXh0LXRy
YW5zZm9ybTogdXBwZXJjYXNlOwogICAgbGluZS1oZWlnaHQ6IDEuMzsKICAgIHVzZXItc2VsZWN0
OiBub25lOwogICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHZhcigtLWJnLXByaW1hcnktZGFy
ayk7Cn0KLyogRXR3YXMgTHVmdCB6d2lzY2hlbiBUaXRlbCB1bmQgZXJzdGVtIEJ1dHRvbiAqLwou
YWRtaW4tbmF2LWdydXBwZSAuYWRtaW4tbmF2LWJ0bjpmaXJzdC1vZi10eXBlIHsgbWFyZ2luLXRv
cDogNnB4OyB9CgouYWRtaW4tbmF2LWJ0biB7CiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsg
Ym9yZGVyOiBub25lOyBwYWRkaW5nOiA4cHggMTRweDsKICAgIG1hcmdpbjogMXB4IDhweDsKICAg
IHRleHQtYWxpZ246IGxlZnQ7IGJvcmRlci1yYWRpdXM6IHZhcigtLXJhZGl1cy1zbSk7IGN1cnNv
cjogcG9pbnRlcjsKICAgIGZvbnQtZmFtaWx5OiBpbmhlcml0OyBmb250LXNpemU6IDEzLjVweDsg
Zm9udC13ZWlnaHQ6IDQwMDsgbGluZS1oZWlnaHQ6IDEuNDsKICAgIGNvbG9yOiB2YXIoLS10ZXh0
LXByaW1hcnkpOwogICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAwLjE1cyBlYXNlLCBjb2xvciAw
LjE1cyBlYXNlOwogICAgcG9zaXRpb246IHJlbGF0aXZlOwp9Ci5hZG1pbi1uYXYtYnRuOmhvdmVy
IHsKICAgIGJhY2tncm91bmQ6IHZhcigtLWJnLW5hdi1ob3Zlcik7IGNvbG9yOiB2YXIoLS10ZXh0
LWhlYWRpbmcpOwp9Ci5hZG1pbi1uYXYtYnRuLmFrdGl2IHsKICAgIGJhY2tncm91bmQ6IHZhcigt
LWJnLW5hdi1ha3Rpdik7IGNvbG9yOiB2YXIoLS10ZXh0LWhlYWRpbmcpOyBmb250LXdlaWdodDog
NjAwOwogICAgYm94LXNoYWRvdzogaW5zZXQgM3B4IDAgMCAwIHZhcigtLXRleHQtaGVhZGluZyk7
Cn0KLmFkbWluLW5hdi1idG4uYWt0aXY6aG92ZXIgeyBiYWNrZ3JvdW5kOiB2YXIoLS1iZy1uYXYt
YWt0aXYpOyB9Ci8qIFNpY2h0YmFyZXIgRm9rdXMgZnVlciBLZXlib2FyZC1OYXZpZ2F0aW9uIChU
QUIgZHVyY2ggU2lkZWJhcikuCiAgIDpmb2N1cy12aXNpYmxlIGZldWVydCBuaWNodCBiZWkgTWF1
cy1LbGljaywgbnVyIGJlaSBUYXN0YXR1ci1Gb2t1cyDigJQKICAgc3RvZXJ0IGFsc28gTWF1cy1V
c2VyIG5pY2h0LiAqLwouYWRtaW4tbmF2LWJ0bjpmb2N1cy12aXNpYmxlIHsKICAgIG91dGxpbmU6
IDJweCBzb2xpZCB2YXIoLS1mYXJiZS1ha3plbnQpOwogICAgb3V0bGluZS1vZmZzZXQ6IC0ycHg7
Cn0KCi5hZG1pbi1pbmhhbHQgeyBmbGV4OiAxOyBvdmVyZmxvdy15OiBhdXRvOyBwYWRkaW5nOiAy
NHB4IDMycHg7IH0KLmFkbWluLWtvcGYgeyBkaXNwbGF5OiBmbGV4OyBhbGlnbi1pdGVtczogY2Vu
dGVyOyBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47IG1hcmdpbi1ib3R0b206IDIwcHg7
IH0KLmFkbWluLWtvcGYgaDIgeyBmb250LXNpemU6IDIwcHg7IGZvbnQtd2VpZ2h0OiA3MDA7IGNv
bG9yOiB2YXIoLS10ZXh0LWhlYWRpbmcpOyB9Ci5hZG1pbi1oaW53ZWlzIHsgZm9udC1zaXplOiB2
YXIoLS1mcy1tZCk7IGNvbG9yOiB2YXIoLS10ZXh0LXNlY29uZGFyeSk7IG1hcmdpbi1ib3R0b206
IDE2cHg7IGxpbmUtaGVpZ2h0OiAxLjY7IH0KCi5hZG1pbi10YWIgeyBhbmltYXRpb246IGZhZGVJ
biAwLjE1cyBlYXNlOyB9CkBrZXlmcmFtZXMgZmFkZUluIHsgZnJvbSB7IG9wYWNpdHk6IDA7IH0g
dG8geyBvcGFjaXR5OiAxOyB9IH0KCi8qIFNla3Rpb25lbiBpbm5lcmhhbGIgZWluZXMgVGFicyAo
ZnVlciBnZW1lcmd0ZSBUYWJzIHdpZSAiRmVpZXJ0YWdlICYgRmVyaWVuIikuCiAgIFZvcmhlciA0
cHgg4oCUIFNla3Rpb25lbiBrbGVidGVuIHp1c2FtbWVuLCBrZWluIG9wdGlzY2hlciBBdGVtcmF1
bS4KICAgTWl0IC0tc3AtNSAoMjRweCkgc2l0emVuIHp3ZWkgU2VrdGlvbmVuIGtsYXIgZ2V0cmVu
bnQgdm9uZWluYW5kZXIuICovCi5hZG1pbi1zZWt0aW9uIHsgbWFyZ2luLWJvdHRvbTogdmFyKC0t
c3AtNSk7IH0KLmFkbWluLXNla3Rpb24ta29wZiB7CiAgICBkaXNwbGF5OiBmbGV4OyBhbGlnbi1p
dGVtczogY2VudGVyOyBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47CiAgICBnYXA6IDEy
cHg7IG1hcmdpbi1ib3R0b206IDE0cHg7Cn0KLmFkbWluLXNla3Rpb24ta29wZiBoMyB7CiAgICBm
b250LXNpemU6IDE2cHg7IGZvbnQtd2VpZ2h0OiA3MDA7IGNvbG9yOiB2YXIoLS10ZXh0LWhlYWRp
bmcpOyBtYXJnaW46IDA7Cn0KLmFkbWluLXNla3Rpb24tdHJlbm5lciB7CiAgICBib3JkZXI6IDA7
IGJvcmRlci10b3A6IDFweCBzb2xpZCB2YXIoLS1ib3JkZXItbGlnaHQpOwogICAgbWFyZ2luOiAy
OHB4IDAgMjJweCAwOwp9CgovKiA9PT09PSBBZG1pbi1CYW5uZXIgKFJlYWQtb25seS1IaW53ZWlz
LCBJbmxpbmUtSW5mbykgPT09PT0KICAgRHJlaSBWYXJpYW50ZW46IC5hZG1pbi1iYW5uZXItaW5m
byAvIC5hZG1pbi1iYW5uZXItd2FybiAvIC5hZG1pbi1iYW5uZXItZXJmb2xnLgogICBMaW5rZXIg
QWt6ZW50LVN0cmVpZmVuICsgSWNvbi1TbG90ICsgSW5oYWx0cy1TbG90LiBEZWZhdWx0ID0gaW5m
by4gKi8KLmFkbWluLWJhbm5lciB7CiAgICBkaXNwbGF5OiBmbGV4OyBhbGlnbi1pdGVtczogZmxl
eC1zdGFydDsgZ2FwOiB2YXIoLS1zcC0zKTsKICAgIHBhZGRpbmc6IHZhcigtLXNwLTMpIHZhcigt
LXNwLTQpOwogICAgbWFyZ2luLWJvdHRvbTogdmFyKC0tc3AtNCk7CiAgICBib3JkZXItcmFkaXVz
OiB2YXIoLS1yYWRpdXMtc20pOwogICAgYm9yZGVyLWxlZnQ6IDRweCBzb2xpZCB2YXIoLS1iYW5u
ZXItaW5mby1ib3JkZXIpOwogICAgYmFja2dyb3VuZDogdmFyKC0tYmFubmVyLWluZm8tYmcpOwog
ICAgY29sb3I6IHZhcigtLWJhbm5lci1pbmZvLXRleHQpOwogICAgZm9udC1zaXplOiB2YXIoLS1m
cy1tZCk7IGxpbmUtaGVpZ2h0OiAxLjU7Cn0KLmFkbWluLWJhbm5lci13YXJuIHsKICAgIGJvcmRl
ci1sZWZ0LWNvbG9yOiB2YXIoLS1iYW5uZXItd2Fybi1ib3JkZXIpOwogICAgYmFja2dyb3VuZDog
dmFyKC0tYmFubmVyLXdhcm4tYmcpOwogICAgY29sb3I6IHZhcigtLWJhbm5lci13YXJuLXRleHQp
Owp9Ci5hZG1pbi1iYW5uZXItZXJmb2xnIHsKICAgIGJvcmRlci1sZWZ0LWNvbG9yOiB2YXIoLS1i
YW5uZXItZXJmb2xnLWJvcmRlcik7CiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1iYW5uZXItZXJmb2xn
LWJnKTsKICAgIGNvbG9yOiB2YXIoLS1iYW5uZXItZXJmb2xnLXRleHQpOwp9Ci5hZG1pbi1iYW5u
ZXItaWNvbiB7CiAgICBmbGV4OiAwIDAgYXV0bzsKICAgIGZvbnQtc2l6ZTogMTZweDsgbGluZS1o
ZWlnaHQ6IDEuMjsKICAgIG1hcmdpbi10b3A6IDFweDsKfQouYWRtaW4tYmFubmVyLXRleHQgeyBm
bGV4OiAxIDEgYXV0bzsgfQouYWRtaW4tYmFubmVyLXRpdGVsIHsKICAgIGZvbnQtd2VpZ2h0OiA3
MDA7IG1hcmdpbi1ib3R0b206IDJweDsKfQouYWRtaW4tYmFubmVyLWJvZHkgeyBmb250LXNpemU6
IDEyLjVweDsgb3BhY2l0eTogMC45MjsgfQoKLyogPT09PT0gQWRtaW4tU3ViLU5hdmlnYXRpb24g
KGlubmVyaGFsYiBlaW5lcyBUb3AtVGFicykgPT09PT0KICAgSG9yaXpvbnRhbGVyIFRhYi1TdHJl
aWZlbiBhbSBvYmVyZW4gUmFuZCBkZXMgLmFkbWluLWluaGFsdC1CZXJlaWNocy4KICAgTnVyIHNp
Y2h0YmFyLCB3ZW5uIGRlciBUb3AtVGFiID4gMSBTZWt0aW9uIGhhdC4gKi8KLmFkbWluLXN1Ym5h
diB7CiAgICBkaXNwbGF5OiBmbGV4OyBmbGV4LXdyYXA6IHdyYXA7IGdhcDogdmFyKC0tc3AtMSk7
CiAgICBtYXJnaW46IDAgMCB2YXIoLS1zcC01KSAwOwogICAgcGFkZGluZzogMCAwIHZhcigtLXNw
LTIpIDA7CiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgdmFyKC0tYm9yZGVyLWxpZ2h0KTsK
fQouYWRtaW4tc3VibmF2LWJ0biB7CiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsgYm9yZGVy
OiBub25lOyBjdXJzb3I6IHBvaW50ZXI7CiAgICBwYWRkaW5nOiB2YXIoLS1zcC0yKSB2YXIoLS1z
cC00KTsKICAgIGZvbnQtZmFtaWx5OiBpbmhlcml0OyBmb250LXNpemU6IHZhcigtLWZzLW1kKTsg
Zm9udC13ZWlnaHQ6IDUwMDsKICAgIGNvbG9yOiB2YXIoLS10ZXh0LXNlY29uZGFyeSk7CiAgICBi
b3JkZXItcmFkaXVzOiB2YXIoLS1yYWRpdXMtc20pIDRweCAwIDA7CiAgICBib3JkZXItYm90dG9t
OiAycHggc29saWQgdHJhbnNwYXJlbnQ7CiAgICB0cmFuc2l0aW9uOiB2YXIoLS10cmFuc2l0aW9u
LXN0ZCk7CiAgICBtYXJnaW4tYm90dG9tOiAtMXB4OyAgLyogdWViZXJsYXBwdCBkaWUgdW50ZXJl
IExpbmllIGRlciBzdWJuYXYgKi8KfQouYWRtaW4tc3VibmF2LWJ0bjpob3ZlciB7CiAgICBiYWNr
Z3JvdW5kOiB2YXIoLS1iZy1uYXYtaG92ZXIpOyBjb2xvcjogdmFyKC0tdGV4dC1oZWFkaW5nKTsK
fQouYWRtaW4tc3VibmF2LWJ0bi5ha3RpdiB7CiAgICBjb2xvcjogdmFyKC0tdGV4dC1oZWFkaW5n
KTsgZm9udC13ZWlnaHQ6IDcwMDsKICAgIGJvcmRlci1ib3R0b20tY29sb3I6IHZhcigtLWZhcmJl
LXByaW1hZXIpOwogICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7Cn0KLmFkbWluLXN1Ym5hdi1i
dG46Zm9jdXMtdmlzaWJsZSB7CiAgICBvdXRsaW5lOiAycHggc29saWQgdmFyKC0tZmFyYmUtYWt6
ZW50KTsKICAgIG91dGxpbmUtb2Zmc2V0OiAycHg7Cn0KCi8qID09PT09IEFkbWluLUVtcHR5LVN0
YXRlIChPbmJvYXJkaW5nLUthcnRlIGZ1ZXIgbGVlcmUgU2VrdGlvbmVuKSA9PT09PQogICBXaXJk
IGdlcmVuZGVydCwgd2VubiBlaW5lIExpc3RlIGtlaW5lIERhdGVuc2FldHplIGhhdC4gKi8KLmFk
bWluLWVtcHR5IHsKICAgIGRpc3BsYXk6IGZsZXg7IGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47IGFs
aWduLWl0ZW1zOiBjZW50ZXI7CiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICBwYWRkaW5nOiB2
YXIoLS1zcC02KSB2YXIoLS1zcC01KTsKICAgIG1hcmdpbjogdmFyKC0tc3AtNCkgMDsKICAgIGJh
Y2tncm91bmQ6IHZhcigtLWJnLWNhcmQtYWx0KTsKICAgIGJvcmRlcjogMXB4IGRhc2hlZCB2YXIo
LS1ib3JkZXItc3Ryb25nKTsKICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLXJhZGl1cy1tZCk7Cn0K
LmFkbWluLWVtcHR5LWljb24gewogICAgZm9udC1zaXplOiAzMnB4OwogICAgbWFyZ2luLWJvdHRv
bTogdmFyKC0tc3AtMyk7CiAgICBjb2xvcjogdmFyKC0tdGV4dC1tdXRlZCk7Cn0KLmFkbWluLWVt
cHR5LXRpdGVsIHsKICAgIGZvbnQtc2l6ZTogMTVweDsgZm9udC13ZWlnaHQ6IDcwMDsKICAgIGNv
bG9yOiB2YXIoLS10ZXh0LWhlYWRpbmcpOwogICAgbWFyZ2luLWJvdHRvbTogdmFyKC0tc3AtMik7
Cn0KLmFkbWluLWVtcHR5LXRleHQgewogICAgZm9udC1zaXplOiB2YXIoLS1mcy1tZCk7IGNvbG9y
OiB2YXIoLS10ZXh0LXNlY29uZGFyeSk7CiAgICBtYXgtd2lkdGg6IDQ2MHB4OyBsaW5lLWhlaWdo
dDogMS41OwogICAgbWFyZ2luLWJvdHRvbTogdmFyKC0tc3AtNCk7Cn0KLmFkbWluLWVtcHR5LWFr
dGlvbiB7IG1hcmdpbi10b3A6IHZhcigtLXNwLTEpOyB9CgovKiA9PT09PSBUYXN0YXR1cmt1ZXJ6
ZWwtVGFiZWxsZSBpbSBJbmZvLU1vZGFsIChVWC1BdWRpdCBTcHJpbnQgMy43KSA9PT09PSAqLwou
aW5mby1zaG9ydGN1dHMgeyB3aWR0aDogMTAwJTsgYm9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZTsg
Zm9udC1zaXplOiB2YXIoLS1mcy1tZCk7IG1hcmdpbi10b3A6IHZhcigtLXNwLTIpOyB9Ci5pbmZv
LXNob3J0Y3V0cyB0aCwgLmluZm8tc2hvcnRjdXRzIHRkIHsgdGV4dC1hbGlnbjogbGVmdDsgcGFk
ZGluZzogdmFyKC0tc3AtMSkgdmFyKC0tc3AtMik7IGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB2
YXIoLS1ib3JkZXItbGlnaHQpOyB9Ci5pbmZvLXNob3J0Y3V0cyB0aCB7IGJhY2tncm91bmQ6IHZh
cigtLWJnLWNhcmQtYWx0KTsgZm9udC13ZWlnaHQ6IDcwMDsgY29sb3I6IHZhcigtLXRleHQtaGVh
ZGluZyk7IH0KLmluZm8tc2hvcnRjdXRzIGtiZCB7CiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7
CiAgICBwYWRkaW5nOiAycHggNnB4OwogICAgYmFja2dyb3VuZDogdmFyKC0tYmctdG9vbGJhcik7
CiAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1ib3JkZXItc3Ryb25nKTsKICAgIGJvcmRlci1y
YWRpdXM6IHZhcigtLXJhZGl1cy14cyk7CiAgICBmb250LWZhbWlseTogQ29uc29sYXMsICJTRiBN
b25vIiwgTWVubG8sIG1vbm9zcGFjZTsKICAgIGZvbnQtc2l6ZTogdmFyKC0tZnMtc20pOwogICAg
Y29sb3I6IHZhcigtLXRleHQtaGVhZGluZyk7CiAgICBib3gtc2hhZG93OiAwIDFweCAwIHZhcigt
LXNoYWRvdy1tZWRpdW0pOwp9CgovKiA9PT09PSBIaWxmZS1JY29uIChVWC1BdWRpdCBTcHJpbnQg
Mi4yLCAyMDI2LTA1LTI5KSA9PT09PQogICBLbGVpbmVyIHJ1bmRlciDik5gtQnV0dG9uIG5lYmVu
IExhYmVscyBvZGVyIEJ1dHRvbnMuIENsaWNrIOKGkiBUb2FzdC4gKi8KLmhpbGZlLWljb24gewog
ICAgZGlzcGxheTogaW5saW5lLWZsZXg7CiAgICBhbGlnbi1pdGVtczogY2VudGVyOyBqdXN0aWZ5
LWNvbnRlbnQ6IGNlbnRlcjsKICAgIHdpZHRoOiAxOHB4OyBoZWlnaHQ6IDE4cHg7CiAgICBtYXJn
aW4tbGVmdDogdmFyKC0tc3AtMSk7CiAgICBwYWRkaW5nOiAwOwogICAgYm9yZGVyOiAxcHggc29s
aWQgdmFyKC0tYm9yZGVyLXN0cm9uZyk7CiAgICBib3JkZXItcmFkaXVzOiA1MCU7CiAgICBiYWNr
Z3JvdW5kOiB2YXIoLS1iZy1jYXJkLWFsdCk7CiAgICBjb2xvcjogdmFyKC0tdGV4dC1tdXRlZCk7
CiAgICBmb250LXNpemU6IHZhcigtLWZzLXNtKTsgZm9udC13ZWlnaHQ6IDcwMDsKICAgIGN1cnNv
cjogaGVscDsKICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7CiAgICBsaW5lLWhlaWdodDogMTsK
ICAgIHRyYW5zaXRpb246IHZhcigtLXRyYW5zaXRpb24tc3RkKTsKfQouaGlsZmUtaWNvbjpob3Zl
ciwgLmhpbGZlLWljb246Zm9jdXMtdmlzaWJsZSB7CiAgICBib3JkZXItY29sb3I6IHZhcigtLWZh
cmJlLWFremVudCk7CiAgICBjb2xvcjogdmFyKC0tZmFyYmUtYWt6ZW50KTsKICAgIGJhY2tncm91
bmQ6IHZhcigtLWJnLWhvdmVyKTsKICAgIG91dGxpbmU6IG5vbmU7Cn0KCi8qID09PT09IFJlbmRl
ci1FcnJvci1Cb3ggKFVYLUF1ZGl0IFNwcmludCAxLjIsIDIwMjYtMDUtMjkpID09PT09CiAgIFdp
cmQgdm9uIHJlbmRlckVycm9yQm94KCkgaW4gY29yZV91dGlsLmpzIGJlZnVlbGx0LiBFcnNldHp0
IGJsYW5rZW4KICAgQ29udGFpbmVyLCB3ZW5uIGVpbmUgUmVuZGVyLUZ1bmt0aW9uIG1pdCBFeGNl
cHRpb24gYWJicmljaHQuICovCi5yZW5kZXItZmVobGVyLWJveCB7CiAgICBkaXNwbGF5OiBmbGV4
OwogICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7CiAgICBnYXA6IHZhcigtLXNwLTMpOwogICAg
cGFkZGluZzogdmFyKC0tc3AtNCk7CiAgICBtYXJnaW46IHZhcigtLXNwLTMpIDA7CiAgICBiYWNr
Z3JvdW5kOiB2YXIoLS1iYW5uZXItd2Fybi1iZyk7CiAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIo
LS1iYW5uZXItd2Fybi1ib3JkZXIpOwogICAgYm9yZGVyLXJhZGl1czogdmFyKC0tcmFkaXVzLW1k
KTsKICAgIGNvbG9yOiB2YXIoLS1iYW5uZXItd2Fybi10ZXh0KTsKICAgIG1heC13aWR0aDogNzYw
cHg7Cn0KLnJlbmRlci1mZWhsZXItaWNvbiB7IGZvbnQtc2l6ZTogMjRweDsgbGluZS1oZWlnaHQ6
IDE7IGZsZXgtc2hyaW5rOiAwOyB9Ci5yZW5kZXItZmVobGVyLXRleHQgeyBmbGV4OiAxOyBtaW4t
d2lkdGg6IDA7IH0KLnJlbmRlci1mZWhsZXItdGl0ZWwgeyBmb250LXdlaWdodDogNzAwOyBmb250
LXNpemU6IHZhcigtLWZzLWxnKTsgbWFyZ2luLWJvdHRvbTogdmFyKC0tc3AtMik7IH0KLnJlbmRl
ci1mZWhsZXItZGV0YWlsIHsKICAgIGZvbnQtZmFtaWx5OiBDb25zb2xhcywgIlNGIE1vbm8iLCBN
ZW5sbywgbW9ub3NwYWNlOwogICAgZm9udC1zaXplOiB2YXIoLS1mcy1zbSk7CiAgICBwYWRkaW5n
OiB2YXIoLS1zcC0xKSB2YXIoLS1zcC0yKTsKICAgIGJhY2tncm91bmQ6IHJnYmEoMCwwLDAsMC4w
Nik7CiAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1yYWRpdXMteHMpOwogICAgbWFyZ2luLWJvdHRv
bTogdmFyKC0tc3AtMik7CiAgICB3b3JkLWJyZWFrOiBicmVhay13b3JkOwogICAgbGluZS1oZWln
aHQ6IDEuNDsKfQpbZGF0YS10aGVtZT0ibmlnaHQiXSAucmVuZGVyLWZlaGxlci1kZXRhaWwgeyBi
YWNrZ3JvdW5kOiByZ2JhKDI1NSwyNTUsMjU1LDAuMDYpOyB9Ci5yZW5kZXItZmVobGVyLWhpbnQg
eyBmb250LXNpemU6IHZhcigtLWZzLXNtKTsgb3BhY2l0eTogMC45OyB9CgovKiA9PT09PSBUYWJl
bGxlbiA9PT09PSAqLwouYWRtaW4tdGFiZWxsZSB7IHdpZHRoOiAxMDAlOyBib3JkZXItY29sbGFw
c2U6IGNvbGxhcHNlOyBmb250LXNpemU6IHZhcigtLWZzLW1kKTsgfQouYWRtaW4tdGFiZWxsZSB0
aCB7CiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1iZy1wcmltYXJ5KTsgY29sb3I6IHZhcigtLXRleHQt
b24tcHJpbWFyeSk7CiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOyBmb250LXNpemU6IHZh
cigtLWZzLXhzKTsgZm9udC13ZWlnaHQ6IDYwMDsgbGV0dGVyLXNwYWNpbmc6IDAuNXB4OwogICAg
cGFkZGluZzogMTBweCAxMnB4OyB0ZXh0LWFsaWduOiBsZWZ0OyBib3JkZXItYm90dG9tOiAycHgg
c29saWQgdmFyKC0tYm9yZGVyLXN0cm9uZyk7CiAgICBwb3NpdGlvbjogc3RpY2t5OyB0b3A6IDA7
IHotaW5kZXg6IDI7Cn0KLmFkbWluLXRhYmVsbGUgdGQgeyBwYWRkaW5nOiA4cHggMTJweDsgYm9y
ZGVyLWJvdHRvbTogMXB4IHNvbGlkIHZhcigtLWJvcmRlci1saWdodCk7IHZlcnRpY2FsLWFsaWdu
OiBtaWRkbGU7IH0KLmFkbWluLXRhYmVsbGUgdHI6aG92ZXIgdGQgeyBiYWNrZ3JvdW5kOiB2YXIo
LS1iZy1ob3Zlcik7IH0KLmFkbWluLXRhYmVsbGUgaW5wdXRbdHlwZT0idGV4dCJdLAouYWRtaW4t
dGFiZWxsZSBpbnB1dFt0eXBlPSJlbWFpbCJdLAouYWRtaW4tdGFiZWxsZSBpbnB1dFt0eXBlPSJk
YXRlIl0sCi5hZG1pbi10YWJlbGxlIHNlbGVjdCB7CiAgICB3aWR0aDogMTAwJTsgcGFkZGluZzog
NHB4IDhweDsgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYm9yZGVyLWNvbG9yKTsgYm9yZGVyLXJh
ZGl1czogdmFyKC0tcmFkaXVzLXhzKTsKICAgIGZvbnQtZmFtaWx5OiBpbmhlcml0OyBmb250LXNp
emU6IHZhcigtLWZzLWJhc2UpOyBiYWNrZ3JvdW5kOiB2YXIoLS1iZy1pbnB1dCk7IGNvbG9yOiB2
YXIoLS10ZXh0LXByaW1hcnkpOwp9Ci5hZG1pbi10YWJlbGxlIGlucHV0OmZvY3VzLCAuYWRtaW4t
dGFiZWxsZSBzZWxlY3Q6Zm9jdXMgewogICAgb3V0bGluZTogbm9uZTsgYm9yZGVyLWNvbG9yOiB2
YXIoLS10ZXh0LWhlYWRpbmcpOyBib3gtc2hhZG93OiAwIDAgMCAycHggcmdiYSgyNiw1OCw5Miww
LjE1KTsKfQoudGFiZWxsZS1zY3JvbGwgeyBvdmVyZmxvdzogYXV0bzsgbWF4LWhlaWdodDogY2Fs
YygxMDB2aCAtIDIwMHB4KTsgfQoKLyogPT09PT0gQnV0dG9ucyA9PT09PSAqLwouYnRuIHsKICAg
IHBhZGRpbmc6IDdweCAxOHB4OyBib3JkZXItcmFkaXVzOiB2YXIoLS1yYWRpdXMtc20pOyBib3Jk
ZXI6IG5vbmU7IGN1cnNvcjogcG9pbnRlcjsKICAgIGZvbnQtZmFtaWx5OiBpbmhlcml0OyBmb250
LXNpemU6IHZhcigtLWZzLW1kKTsgZm9udC13ZWlnaHQ6IDUwMDsgdHJhbnNpdGlvbjogdmFyKC0t
dHJhbnNpdGlvbi1zdGQpOwp9Ci5idG4tcHJpbWFlciB7IGJhY2tncm91bmQ6IHZhcigtLWZhcmJl
LXByaW1hZXIpOyBjb2xvcjogI2ZmZjsgfQouYnRuLXByaW1hZXI6aG92ZXIgeyBiYWNrZ3JvdW5k
OiB2YXIoLS1mYXJiZS1wcmltYWVyLWhvdmVyKTsgY29sb3I6ICNmZmY7IH0KLmJ0bi1lcmZvbGcg
eyBiYWNrZ3JvdW5kOiB2YXIoLS1mYXJiZS1lcmZvbGcpOyBjb2xvcjogI2ZmZjsgfQouYnRuLWVy
Zm9sZzpob3ZlciB7IGJhY2tncm91bmQ6ICMxZTdhNWY7IH0KLmJ0bi1nZWZhaHIgeyBiYWNrZ3Jv
dW5kOiB2YXIoLS1mYXJiZS1mZWhsZXIpOyBjb2xvcjogI2ZmZjsgfQouYnRuLWdlZmFocjpob3Zl
ciB7IGJhY2tncm91bmQ6ICNhNTI4MWI7IH0KLyogRS1NYWlsLUJ1dHRvbiBtaXQgVGVzdC0vRnJl
bWQtQWRyZXNzZSAobmljaHQgQHBvbGl6ZWkubnJ3LmRlKToKICAgZ3J1bmVyIFN0YW5kYXJkLUVy
Zm9sZy1Mb29rIHBsdXMgYXVmZmFlbGxpZ2VyIHJvdGVyIHJlY2h0ZXIgUmFuZCwKICAgZGFtaXQg
bWFuIGF1ZiBlaW5lbiBCbGljayBzaWVodCwgd28gbm9jaCBrZWluZSBvZmZpemllbGxlbiBCZWhv
ZXJkZW4tCiAgIEFkcmVzc2VuIGhpbnRlcmxlZ3Qgc2luZC4gKi8KLmJ0bi1lbWFpbC10ZXN0IHsK
ICAgIGJveC1zaGFkb3c6IGluc2V0IC00cHggMCAwIHZhcigtLWZhcmJlLWZlaGxlciwgI0IwM0Ey
RSk7CiAgICBwYWRkaW5nLXJpZ2h0OiAxNnB4Owp9Ci5idG4tc2VrIHsKICAgIGJhY2tncm91bmQ6
IHZhcigtLWJnLWNhcmQpOyBjb2xvcjogdmFyKC0tdGV4dC1oZWFkaW5nKTsKICAgIGJvcmRlcjog
MXB4IHNvbGlkIHZhcigtLWJvcmRlci1zdHJvbmcpOwp9Ci5idG4tc2VrOmhvdmVyIHsgYmFja2dy
b3VuZDogdmFyKC0tYmctaG92ZXIpOyBib3JkZXItY29sb3I6IHZhcigtLXRleHQtaGVhZGluZyk7
IH0KLmJ0bi1rbGVpbiB7IHBhZGRpbmc6IDRweCAxMnB4OyBmb250LXNpemU6IHZhcigtLWZzLXNt
KTsgZm9udC13ZWlnaHQ6IDYwMDsgYm9yZGVyLXJhZGl1czogdmFyKC0tcmFkaXVzLXNtKTsgfQou
YnRuLWljb24geyBkaXNwbGF5OiBpbmxpbmUtZmxleDsgYWxpZ24taXRlbXM6IGNlbnRlcjsgZ2Fw
OiA1cHg7IGxpbmUtaGVpZ2h0OiAxOyB9Ci5idG4taWNvbjo6YmVmb3JlIHsgZm9udC1zaXplOiB2
YXIoLS1mcy1tZCk7IGxpbmUtaGVpZ2h0OiAxOyB9Ci5idG4tYmVhcmJlaXRlbjo6YmVmb3JlIHsg
Y29udGVudDogJ+Kcjic7IH0KLmJ0bi1yaHl0aG11czo6YmVmb3JlIHsgY29udGVudDogJ+KGuyc7
IH0KLmJ0bi1sb2VzY2hlbiB7IHBhZGRpbmc6IDRweCAxMnB4OyB0ZXh0LWFsaWduOiBjZW50ZXI7
IH0KCi8qIFdpY2h0aWctRmVpZXJ0YWcgQmFkZ2UgKi8KLmZlaWVydGFnLXdpY2h0aWctYmFkZ2Ug
ewogICAgZGlzcGxheTogaW5saW5lLWJsb2NrOyBwYWRkaW5nOiAycHggOHB4OyBib3JkZXItcmFk
aXVzOiB2YXIoLS1yYWRpdXMtbGcpOyBmb250LXNpemU6IHZhcigtLWZzLXhzKTsgZm9udC13ZWln
aHQ6IDcwMDsKICAgIGJhY2tncm91bmQ6IHZhcigtLWZhcmJlLWZlaGxlcik7IGNvbG9yOiAjZmZm
OyBsZXR0ZXItc3BhY2luZzogMC40cHg7IHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7Cn0KLmJ0
bi1zb3J0aWVydW5nIHsKICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OyBib3JkZXI6IDFweCBz
b2xpZCB2YXIoLS1ib3JkZXItY29sb3IpOyBjb2xvcjogdmFyKC0tdGV4dC1zZWNvbmRhcnkpOwog
ICAgd2lkdGg6IDI2cHg7IGhlaWdodDogMjZweDsgZGlzcGxheTogaW5saW5lLWZsZXg7IGFsaWdu
LWl0ZW1zOiBjZW50ZXI7IGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgYm9yZGVyLXJhZGl1
czogdmFyKC0tcmFkaXVzLXhzKTsgY3Vyc29yOiBwb2ludGVyOyBmb250LXNpemU6IHZhcigtLWZz
LWxnKTsgcGFkZGluZzogMDsKICAgIHRyYW5zaXRpb246IHZhcigtLXRyYW5zaXRpb24tc3RkKTsK
fQouYnRuLXNvcnRpZXJ1bmc6aG92ZXIgeyBiYWNrZ3JvdW5kOiB2YXIoLS1iZy1ob3Zlcik7IGJv
cmRlci1jb2xvcjogdmFyKC0tdGV4dC1oZWFkaW5nKTsgY29sb3I6IHZhcigtLXRleHQtaGVhZGlu
Zyk7IH0KCi8qID09PT09IEZvcm11bGFyZSA9PT09PSAqLwouZm9ybS1ncnVwcGUgeyBtYXJnaW4t
Ym90dG9tOiAxNHB4OyB9Ci5mb3JtLWdydXBwZSBsYWJlbCB7IGRpc3BsYXk6IGJsb2NrOyBmb250
LXNpemU6IHZhcigtLWZzLWJhc2UpOyBmb250LXdlaWdodDogNjAwOyBjb2xvcjogdmFyKC0tdGV4
dC1zZWNvbmRhcnkpOyBtYXJnaW4tYm90dG9tOiA0cHg7IH0KCi8qIFBmbGljaHRmZWxkLU1hcmtp
ZXJ1bmcgKFVYLUF1ZGl0IFNwcmludCAyLjEsIDIwMjYtMDUtMjkpLgogICBWb3JoZXI6IG51ciBU
ZXh0LSIqIiBpbSBMYWJlbCwgbGVpY2h0IHp1IHVlYmVyc2VoZW4uIEpldHp0OgogICAtIHJvdGVz
IFN0ZXJuY2hlbiBhdXRvbWF0aXNjaCB2aWEgOjphZnRlcgogICAtIGxpbmtlciByb3RlciBCb3Jk
ZXIgYW0gRWluZ2FiZWZlbGQKICAgLSAuZmVsZC1mZWhsZXItS2xhc3NlIGZ1ZXIgYWt0aXZlIFZh
bGlkaWVydW5ncy1IZXJ2b3JoZWJ1bmcgKi8KLmZvcm0tZ3J1cHBlLmZvcm0tcGZsaWNodCA+IGxh
YmVsOjphZnRlciB7CiAgICBjb250ZW50OiAnIConOwogICAgY29sb3I6IHZhcigtLWZhcmJlLWZl
aGxlcik7CiAgICBmb250LXdlaWdodDogNzAwOwogICAgbWFyZ2luLWxlZnQ6IDJweDsKfQouZm9y
bS1ncnVwcGUuZm9ybS1wZmxpY2h0ID4gLmZvcm0taW5wdXQsCi5mb3JtLWdydXBwZS5mb3JtLXBm
bGljaHQgLmZvcm0taW5wdXQgewogICAgYm9yZGVyLWxlZnQ6IDNweCBzb2xpZCB2YXIoLS1mYXJi
ZS1mZWhsZXIpOwogICAgcGFkZGluZy1sZWZ0OiA2cHg7Cn0KLmZvcm0taW5wdXQuZmVsZC1mZWhs
ZXIgewogICAgYmFja2dyb3VuZDogcmdiYSgxNzYsIDU4LCA0NiwgMC4wOCk7CiAgICBib3JkZXIt
Y29sb3I6IHZhcigtLWZhcmJlLWZlaGxlcik7Cn0KCi8qIExhZW5nZW4tQ291bnRlciAoUGFrZXQt
QiBRdWljay1XaW4sIDIwMjYtMDUtMjkpLgogICBLbGVpbiwgcmVjaHRzYnVlbmRpZyB1bnRlciBk
ZW0gRWluZ2FiZWZlbGQsIGZhZXJidCBzaWNoIGJlaSBBbm5hZWhlcnVuZwogICBhbnMgTGltaXQg
Z2VsYiB1bmQgYmVpIHZvbGwgcm90LiAqLwoubGFlbmdlLWNvdW50ZXIgewogICAgZGlzcGxheTog
YmxvY2s7CiAgICBmb250LXNpemU6IHZhcigtLWZzLXhzKTsKICAgIGNvbG9yOiB2YXIoLS10ZXh0
LW11dGVkKTsKICAgIHRleHQtYWxpZ246IHJpZ2h0OwogICAgbWFyZ2luLXRvcDogMnB4OwogICAg
Zm9udC12YXJpYW50LW51bWVyaWM6IHRhYnVsYXItbnVtczsKfQoubGFlbmdlLWNvdW50ZXIubGFl
bmdlLWNvdW50ZXItd2FybiB7IGNvbG9yOiB2YXIoLS1mYXJiZS13YXJudW5nKTsgZm9udC13ZWln
aHQ6IDYwMDsgfQoubGFlbmdlLWNvdW50ZXIubGFlbmdlLWNvdW50ZXItdm9sbCB7IGNvbG9yOiB2
YXIoLS1mYXJiZS1mZWhsZXIpOyBmb250LXdlaWdodDogNzAwOyB9CgovKiBMYWRlLU92ZXJsYXkg
KFBha2V0LUMsIDIwMjYtMDUtMjkpIOKAlCB1bml2ZXJzZWxsZXIgU3Bpbm5lciBmdWVyIEFzeW5j
LQogICBPcGVyYXRpb25lbi4gV2lyZCBwZXIgbGFkZU92ZXJsYXlaZWlnZW4oKSBpbiBkZW4gQ29u
dGFpbmVyIGluaml6aWVydC4gKi8KLmxhZGUtb3ZlcmxheSB7CiAgICBwb3NpdGlvbjogYWJzb2x1
dGU7CiAgICB0b3A6IDA7IGxlZnQ6IDA7IHJpZ2h0OiAwOyBib3R0b206IDA7CiAgICBiYWNrZ3Jv
dW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuODIpOwogICAgZGlzcGxheTogZmxleDsgZmxleC1k
aXJlY3Rpb246IGNvbHVtbjsKICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7IGp1c3RpZnktY29udGVu
dDogY2VudGVyOwogICAgZ2FwOiB2YXIoLS1zcC0zKTsKICAgIHotaW5kZXg6IHZhcigtLXotb3Zl
cmxheSk7Cn0KW2RhdGEtdGhlbWU9Im5pZ2h0Il0gLmxhZGUtb3ZlcmxheSB7IGJhY2tncm91bmQ6
IHJnYmEoMjEsIDI5LCAzNywgMC44OCk7IH0KLmxhZGUtb3ZlcmxheS1zcGlubmVyIHsKICAgIHdp
ZHRoOiAzOHB4OyBoZWlnaHQ6IDM4cHg7CiAgICBib3JkZXI6IDNweCBzb2xpZCB2YXIoLS1ib3Jk
ZXItbGlnaHQpOwogICAgYm9yZGVyLXRvcC1jb2xvcjogdmFyKC0tZmFyYmUtYWt6ZW50KTsKICAg
IGJvcmRlci1yYWRpdXM6IDUwJTsKICAgIGFuaW1hdGlvbjogbGFkZS1vdmVybGF5LXNwaW4gMC44
cyBsaW5lYXIgaW5maW5pdGU7Cn0KQGtleWZyYW1lcyBsYWRlLW92ZXJsYXktc3BpbiB7CiAgICB0
byB7IHRyYW5zZm9ybTogcm90YXRlKDM2MGRlZyk7IH0KfQoubGFkZS1vdmVybGF5LXRleHQgewog
ICAgZm9udC1zaXplOiB2YXIoLS1mcy1tZCk7CiAgICBjb2xvcjogdmFyKC0tdGV4dC1zZWNvbmRh
cnkpOwogICAgZm9udC13ZWlnaHQ6IDYwMDsKfQouZm9ybS1pbnB1dCB7CiAgICBwYWRkaW5nOiA4
cHggMTJweDsgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYm9yZGVyLXN0cm9uZyk7IGJvcmRlci1y
YWRpdXM6IHZhcigtLXJhZGl1cy1zbSk7CiAgICBmb250LWZhbWlseTogaW5oZXJpdDsgZm9udC1z
aXplOiB2YXIoLS1mcy1tZCk7IGJhY2tncm91bmQ6IHZhcigtLWJnLWlucHV0KTsgY29sb3I6IHZh
cigtLXRleHQtcHJpbWFyeSk7CiAgICB0cmFuc2l0aW9uOiB2YXIoLS10cmFuc2l0aW9uLXN0ZCk7
Cn0KLmZvcm0taW5wdXQ6Zm9jdXMgeyBvdXRsaW5lOiBub25lOyBib3JkZXItY29sb3I6IHZhcigt
LXRleHQtaGVhZGluZyk7IGJveC1zaGFkb3c6IDAgMCAwIDNweCByZ2JhKDI2LDU4LDkyLDAuMTIp
OyB9CgovKiA9PT09PSBJbmZvLUJveCA9PT09PSAqLwouaW5mby1ib3ggewogICAgYmFja2dyb3Vu
ZDogdmFyKC0tYmctY2FyZC1hbHQpOyBib3JkZXItbGVmdDogNHB4IHNvbGlkIHZhcigtLXRleHQt
aGVhZGluZyk7CiAgICBwYWRkaW5nOiAxNHB4IDE4cHg7IGJvcmRlci1yYWRpdXM6IDAgNnB4IDZw
eCAwOyBmb250LXNpemU6IHZhcigtLWZzLW1kKTsgbGluZS1oZWlnaHQ6IDEuNjsKICAgIGNvbG9y
OiB2YXIoLS10ZXh0LXNlY29uZGFyeSk7Cn0KCi8qID09PT09IFNjaGljaHRjb2RlLVZvcnNjaGF1
ID09PT09ICovCi5zY2hpY2h0Y29kZS1rYXJ0ZSB7CiAgICBkaXNwbGF5OiBmbGV4OyBhbGlnbi1p
dGVtczogY2VudGVyOyBnYXA6IDEwcHg7CiAgICBwYWRkaW5nOiA2cHggOHB4IDZweCA2cHg7IGJv
cmRlci1yYWRpdXM6IHZhcigtLXJhZGl1cy1tZCk7IGZvbnQtc2l6ZTogdmFyKC0tZnMtbWQpOyBm
b250LXdlaWdodDogNjAwOwogICAgbWluLWhlaWdodDogNDJweDsKfQouc2NoaWNodGNvZGUtZmFy
YmZlbGQgewogICAgbWluLXdpZHRoOiA0NHB4OyBoZWlnaHQ6IDMwcHg7IGJvcmRlci1yYWRpdXM6
IHZhcigtLXJhZGl1cy1zbSk7IGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMCwwLDAsMC4xKTsKICAg
IGRpc3BsYXk6IGlubGluZS1mbGV4OyBhbGlnbi1pdGVtczogY2VudGVyOyBqdXN0aWZ5LWNvbnRl
bnQ6IGNlbnRlcjsKICAgIGZvbnQtc2l6ZTogdmFyKC0tZnMtYmFzZSk7IGZvbnQtd2VpZ2h0OiA3
MDA7IHBhZGRpbmc6IDAgNHB4OwogICAgZmxleC1zaHJpbms6IDA7Cn0KLnNjLWVkaXQtYnRuIHsg
cGFkZGluZzogM3B4IDZweDsgZm9udC1zaXplOiB2YXIoLS1mcy1zbSk7IGZsZXgtc2hyaW5rOiAw
OyB9Ci5zYy1lZGl0LWJ0bjo6YmVmb3JlIHsgY29udGVudDogJ+Kcjic7IGZvbnQtc2l6ZTogdmFy
KC0tZnMtc20pOyB9CgovKiBTY2hpY2h0Y29kZS1LYXJ0ZW46IEVyd2VpdGVydW5nZW4gZnVlciBB
a3Rpdi1Ub2dnbGUsIFZlcndlbmR1bmdzLUJhZGdlLCBEcmFnICovCi5zY2hpY2h0Y29kZS1rYXJ0
ZS5zYy1pbmFrdGl2IHsgb3BhY2l0eTogMC40NTsgZmlsdGVyOiBncmF5c2NhbGUoMC40NSk7IH0K
LnNjaGljaHRjb2RlLWthcnRlLnNjLWRyYWcgeyBjdXJzb3I6IGRlZmF1bHQ7IH0KLnNjaGljaHRj
b2RlLWthcnRlLnNjLWRyYWdnaW5nIHsgb3BhY2l0eTogMC4zNTsgfQouc2NoaWNodGNvZGUta2Fy
dGUuc2MtZHJvcC1pbmRpY2F0b3IgeyBvdXRsaW5lOiAycHggZGFzaGVkIHZhcigtLWZhcmJlLXBy
aW1hZXIpOyBvdXRsaW5lLW9mZnNldDogLTFweDsgfQouc2MtZHJhZy1oYW5kbGUgewogICAgY3Vy
c29yOiBncmFiOyBmb250LXNpemU6IDE2cHg7IGNvbG9yOiB2YXIoLS10ZXh0LW11dGVkKTsgcGFk
ZGluZzogMCA0cHg7CiAgICB1c2VyLXNlbGVjdDogbm9uZTsgZmxleC1zaHJpbms6IDA7Cn0KLnNj
LWRyYWctaGFuZGxlOmFjdGl2ZSB7IGN1cnNvcjogZ3JhYmJpbmc7IH0KLnNjLWFuemFobC1iYWRn
ZSB7CiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IHBhZGRpbmc6IDFweCA2cHg7IGJvcmRlci1y
YWRpdXM6IDhweDsKICAgIGZvbnQtc2l6ZTogdmFyKC0tZnMteHMpOyBmb250LXdlaWdodDogNzAw
OyBjb2xvcjogdmFyKC0tdGV4dC1tdXRlZCk7CiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1iZy1wcmlt
YXJ5KTsgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYm9yZGVyLWxpZ2h0KTsKICAgIHZlcnRpY2Fs
LWFsaWduOiBtaWRkbGU7IG1hcmdpbi1sZWZ0OiA0cHg7Cn0KLnNjLWFuemFobC1iYWRnZS5zYy1h
bnphaGwtbnVsbCB7IG9wYWNpdHk6IDAuNTsgfQouc2MtdG9nZ2xlIHsKICAgIGJhY2tncm91bmQ6
IG5vbmU7IGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWJvcmRlci1saWdodCk7IGJvcmRlci1yYWRp
dXM6IDUwJTsKICAgIHdpZHRoOiAyMnB4OyBoZWlnaHQ6IDIycHg7IHBhZGRpbmc6IDA7IGxpbmUt
aGVpZ2h0OiAxOyBjdXJzb3I6IHBvaW50ZXI7CiAgICBmb250LXNpemU6IHZhcigtLWZzLW1kKTsg
ZmxleC1zaHJpbms6IDA7Cn0KLnNjLXRvZ2dsZS1ha3RpdiB7IGNvbG9yOiB2YXIoLS1mYXJiZS1l
cmZvbGcpOyBib3JkZXItY29sb3I6IHJnYmEoMzksMTM3LDEwOSwwLjUpOyB9Ci5zYy10b2dnbGUt
YWt0aXY6aG92ZXIgeyBiYWNrZ3JvdW5kOiByZ2JhKDM5LDEzNywxMDksMC4xMik7IH0KLnNjLXRv
Z2dsZS1pbmFrdGl2IHsgY29sb3I6IHZhcigtLXRleHQtbXV0ZWQpOyB9Ci5zYy10b2dnbGUtaW5h
a3Rpdjpob3ZlciB7IGJhY2tncm91bmQ6IHZhcigtLWJnLXByaW1hcnkpOyBjb2xvcjogdmFyKC0t
ZmFyYmUtZXJmb2xnKTsgfQoKLyogPT09PT0gR2VuZXJhdG9yID09PT09ICovCi5nZW5lcmF0b3It
Zm9ybSB7IG1heC13aWR0aDogNTAwcHg7IH0KI2dlbmVyYXRvci1lcmdlYm5pcyB7CiAgICBtYXJn
aW4tdG9wOiAxNnB4OyBwYWRkaW5nOiAxNHB4IDE4cHg7CiAgICBib3JkZXItcmFkaXVzOiB2YXIo
LS1yYWRpdXMtbWQpOyBmb250LXNpemU6IHZhcigtLWZzLWxnKTsgZm9udC13ZWlnaHQ6IDYwMDsK
fQouZ2VuLWVyZm9sZyB7IGJhY2tncm91bmQ6ICNlOGY1ZTk7IGNvbG9yOiAjMmU3ZDMyOyBib3Jk
ZXI6IDFweCBzb2xpZCAjYTVkNmE3OyB9CltkYXRhLXRoZW1lPSJuaWdodCJdIC5nZW4tZXJmb2xn
IHsgYmFja2dyb3VuZDogIzFhMzAyMDsgY29sb3I6ICM2NmJiNmE7IGJvcmRlci1jb2xvcjogIzJl
N2QzMjsgfQovKiBTdGF0dXMtQm94IGZ1ZXIgVGVzdGRhdGVuL1Jlc2V0IChtYXJnaW4vcGFkZGlu
ZyB3aWUgI2dlbmVyYXRvci1lcmdlYm5pcykuICovCiN0ZXN0ZGF0ZW4tZXJnZWJuaXMgeyBtYXJn
aW4tdG9wOiAxNnB4OyBwYWRkaW5nOiAxNHB4IDE4cHg7IGJvcmRlci1yYWRpdXM6IHZhcigtLXJh
ZGl1cy1tZCk7IGZvbnQtc2l6ZTogdmFyKC0tZnMtbGcpOyBmb250LXdlaWdodDogNjAwOyB9Ci5n
ZW4taW5mbyAgIHsgYmFja2dyb3VuZDogI2UzZjJmZDsgY29sb3I6ICMxNTY1YzA7IGJvcmRlcjog
MXB4IHNvbGlkICM5MGNhZjk7IH0KW2RhdGEtdGhlbWU9Im5pZ2h0Il0gLmdlbi1pbmZvICAgeyBi
YWNrZ3JvdW5kOiAjMTYyNjNhOyBjb2xvcjogIzVhOWZkYjsgYm9yZGVyLWNvbG9yOiAjMTU2NWMw
OyB9Ci5nZW4tZmVobGVyIHsgYmFja2dyb3VuZDogI2ZmZWJlZTsgY29sb3I6ICNjNjI4Mjg7IGJv
cmRlcjogMXB4IHNvbGlkICNlZjlhOWE7IH0KW2RhdGEtdGhlbWU9Im5pZ2h0Il0gLmdlbi1mZWhs
ZXIgeyBiYWNrZ3JvdW5kOiAjM2ExYTFhOyBjb2xvcjogI2U1NzM3MzsgYm9yZGVyLWNvbG9yOiAj
YzYyODI4OyB9CgovKiBGb3J0c2Nocml0dHMtQW5pbWF0aW9uIHdhZWhyZW5kIFJlc2V0L0R1bW15
ZGF0ZW4gKHVuYmVzdGltbXQg4oCUIGRlciBTZXJ2ZXIKICAgbGllZmVydCBrZWluZSBad2lzY2hl
bnN0YWVuZGUsIGRhaGVyIFNwaW5uZXIgKyBlbmRsb3MgbGF1ZmVuZGVyIEJhbGtlbikuICovCi5n
ZW4tcHJvZ3Jlc3Mtd3JhcCB7CiAgICBtYXJnaW4tdG9wOiAxNnB4OyBwYWRkaW5nOiAxNHB4IDE4
cHg7IGJvcmRlci1yYWRpdXM6IHZhcigtLXJhZGl1cy1tZCk7CiAgICBmb250LXNpemU6IHZhcigt
LWZzLWxnKTsgZm9udC13ZWlnaHQ6IDYwMDsKICAgIGJhY2tncm91bmQ6ICNlM2YyZmQ7IGNvbG9y
OiAjMTU2NWMwOyBib3JkZXI6IDFweCBzb2xpZCAjOTBjYWY5Owp9CltkYXRhLXRoZW1lPSJuaWdo
dCJdIC5nZW4tcHJvZ3Jlc3Mtd3JhcCB7IGJhY2tncm91bmQ6ICMxNjI2M2E7IGNvbG9yOiAjNWE5
ZmRiOyBib3JkZXItY29sb3I6ICMxNTY1YzA7IH0KLmdlbi1wcm9ncmVzcy1sYWJlbCB7IGRpc3Bs
YXk6IGZsZXg7IGFsaWduLWl0ZW1zOiBjZW50ZXI7IGdhcDogMTBweDsgfQouZ2VuLXByb2dyZXNz
LWxhYmVsOjpiZWZvcmUgewogICAgY29udGVudDogIiI7IGZsZXg6IG5vbmU7IHdpZHRoOiAxNnB4
OyBoZWlnaHQ6IDE2cHg7IGJvcmRlci1yYWRpdXM6IDUwJTsKICAgIGJvcmRlcjogMnB4IHNvbGlk
IGN1cnJlbnRDb2xvcjsgYm9yZGVyLXRvcC1jb2xvcjogdHJhbnNwYXJlbnQ7CiAgICBhbmltYXRp
b246IGdlbi1zcGluIDAuN3MgbGluZWFyIGluZmluaXRlOwp9Ci5nZW4tcHJvZ3Jlc3MtYmFyIHsK
ICAgIG1hcmdpbi10b3A6IDEwcHg7IGhlaWdodDogNnB4OyBib3JkZXItcmFkaXVzOiAzcHg7CiAg
ICBiYWNrZ3JvdW5kOiByZ2JhKDIxLDEwMSwxOTIsMC4xOCk7IG92ZXJmbG93OiBoaWRkZW47IHBv
c2l0aW9uOiByZWxhdGl2ZTsKfQouZ2VuLXByb2dyZXNzLWJhciA+IHNwYW4gewogICAgcG9zaXRp
b246IGFic29sdXRlOyB0b3A6IDA7IGJvdHRvbTogMDsgd2lkdGg6IDQwJTsgYm9yZGVyLXJhZGl1
czogM3B4OwogICAgYmFja2dyb3VuZDogY3VycmVudENvbG9yOyBhbmltYXRpb246IGdlbi1pbmRl
dGVybWluYXRlIDEuMXMgZWFzZS1pbi1vdXQgaW5maW5pdGU7Cn0KQGtleWZyYW1lcyBnZW4tc3Bp
biB7IHRvIHsgdHJhbnNmb3JtOiByb3RhdGUoMzYwZGVnKTsgfSB9CkBrZXlmcmFtZXMgZ2VuLWlu
ZGV0ZXJtaW5hdGUgeyAwJSB7IGxlZnQ6IC00MCU7IH0gMTAwJSB7IGxlZnQ6IDEwMCU7IH0gfQpA
bWVkaWEgKHByZWZlcnMtcmVkdWNlZC1tb3Rpb246IHJlZHVjZSkgewogICAgLmdlbi1wcm9ncmVz
cy1sYWJlbDo6YmVmb3JlIHsgYW5pbWF0aW9uLWR1cmF0aW9uOiAxLjZzOyB9CiAgICAuZ2VuLXBy
b2dyZXNzLWJhciA+IHNwYW4geyBhbmltYXRpb246IG5vbmU7IGxlZnQ6IDA7IHdpZHRoOiAxMDAl
OyBvcGFjaXR5OiAwLjY7IH0KfQoKLyogPT09PT0gU3RhdGlzdGlrID09PT09ICovCi5sYXlvdXQt
c3RhdGlzdGlreyBvdmVyZmxvdy15OiBhdXRvOyBwYWRkaW5nOiAyMHB4IDI0cHg7IGZsZXg6IDE7
IH0KCi8qIEtQSS1LYWNoZWxuICovCi5zdGF0cy1rcGlzIHsKICAgIGRpc3BsYXk6IGdyaWQ7IGdy
aWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KGF1dG8tZml0LCBtaW5tYXgoMTQwcHgsIDFmcikp
OwogICAgZ2FwOiAxMnB4OyBtYXJnaW4tYm90dG9tOiAyMHB4Owp9Ci5zdGF0cy1rcGkgewogICAg
YmFja2dyb3VuZDogdmFyKC0tYmctY2FyZCk7IGJvcmRlci1yYWRpdXM6IHZhcigtLXJhZGl1cy1s
Zyk7IHBhZGRpbmc6IDE2cHg7CiAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1ib3JkZXItbGln
aHQpOyB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICBib3gtc2hhZG93OiAwIDFweCA0cHggdmFyKC0t
c2hhZG93LWxpZ2h0KTsgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuMTVzIGVhc2U7Cn0KLnN0YXRz
LWtwaTpob3ZlciB7IHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMnB4KTsgYm94LXNoYWRvdzogMCA0
cHggMTJweCB2YXIoLS1zaGFkb3ctbWVkaXVtKTsgfQouc3RhdHMta3BpLXdlcnQgeyBmb250LXNp
emU6IDI4cHg7IGZvbnQtd2VpZ2h0OiA4MDA7IGxpbmUtaGVpZ2h0OiAxLjE7IGZvbnQtdmFyaWFu
dC1udW1lcmljOiB0YWJ1bGFyLW51bXM7IH0KLnN0YXRzLWtwaS1sYWJlbCB7IGZvbnQtc2l6ZTog
dmFyKC0tZnMtc20pOyBjb2xvcjogdmFyKC0tdGV4dC1tdXRlZCk7IG1hcmdpbi10b3A6IDRweDsg
Zm9udC13ZWlnaHQ6IDYwMDsgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsgbGV0dGVyLXNwYWNp
bmc6IDAuNXB4OyB9CgovKiBEYXNoYm9hcmQtR3JpZCAoQWx0IOKAlCBibGVpYnQgZnVlciBldnRs
LiBSZXN0bnV0enVuZywgU3RhdGlzdGlrLVRhYiBudXR6dCBqZXR6dCAuc3RhdHMtZ3JpZCkgKi8K
LnN0YXRzLWRhc2hib2FyZCB7IGRpc3BsYXk6IGdyaWQ7IGdyaWQtdGVtcGxhdGUtY29sdW1uczog
MWZyIDFmcjsgZ2FwOiAxNnB4OyBtYXJnaW4tYm90dG9tOiAxNnB4OyB9CkBtZWRpYSAobWF4LXdp
ZHRoOiA5MDBweCkgeyAuc3RhdHMtZGFzaGJvYXJkIHsgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAx
ZnI7IH0gfQoKLyogPT09PT0gRWluaGVpdGxpY2hlcyA2LVNwYWx0ZW4tUmFzdGVyIChrb25maWd1
cmllcmJhciB2aWEgc3RhdGlzdGlrTGF5b3V0KSA9PT09PQogICBKZWRlIEthY2hlbCBiZWxlZ3Qg
c3BhbiA2ICh2b2xsLzE6MSksIDMgKGhhbGIvMToyKSBvZGVyIDIgKGRyaXR0ZWwvMTozKS4gRGll
CiAgIGtvbmtyZXRlIEJyZWl0ZSBzZXR6dCBzdGF0aXN0aWsuanMgKGxheW91dEFud2VuZGVuKSBw
ZXIgaW5saW5lIGdyaWQtY29sdW1uLiAqLwouc3RhdHMtZ3JpZCB7CiAgICBkaXNwbGF5OiBncmlk
OyBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCg2LCAxZnIpOwogICAgZ2FwOiAxNnB4OyBt
YXJnaW4tYm90dG9tOiAxNnB4OyBhbGlnbi1pdGVtczogc3RhcnQ7Cn0KLyogVm9tIFNVLUxheW91
dCBhdXNnZWJsZW5kZXRlIEthY2hlbCAocmVjaHRlYmFzaWVydGVzIGRpc3BsYXk6bm9uZSBibGVp
YnQgZGF2b24KICAgdW5iZXJ1ZWhydCDigJQgYmVpZGVzIHZlcnN0ZWNrdCB1bmFiaGFlbmdpZyB2
b25laW5hbmRlcikuICovCi5zdGF0cy1wYW5lbC50aWxlLXZlcnN0ZWNrdCB7IGRpc3BsYXk6IG5v
bmUgIWltcG9ydGFudDsgfQpAbWVkaWEgKG1heC13aWR0aDogOTAwcHgpIHsKICAgIC5zdGF0cy1n
cmlkIHsgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnI7IH0KICAgIC5zdGF0cy1ncmlkID4gLnN0
YXRzLXBhbmVsIHsgZ3JpZC1jb2x1bW46IDEgLyAtMSAhaW1wb3J0YW50OyB9Cn0KCi8qIEJhdWth
c3Rlbi1MZWlzdGUgKEJ1aWxkZXItQnV0dG9uIGltIFN0YXRpc3Rpay1Lb3BmKSAqLwouc3RhdHMt
YmF1a2FzdGVuLWxlaXN0ZSB7IGRpc3BsYXk6IGZsZXg7IGFsaWduLWl0ZW1zOiBjZW50ZXI7IGdh
cDogMTJweDsgbWFyZ2luLWJvdHRvbTogMTZweDsgZmxleC13cmFwOiB3cmFwOyB9Ci5zdGF0cy1i
YXVrYXN0ZW4taGlud2VpcyB7IGZvbnQtc2l6ZTogdmFyKC0tZnMtc20pOyBjb2xvcjogdmFyKC0t
dGV4dC1tdXRlZCk7IH0KCi8qIEJhdWthc3Rlbi1LYWNoZWw6IEJhZGdlICsgV2VyLUxhYmVsIGlt
IEtvcGYsIFJhbmctTnVtbWVyIGltIEJhbGtlbiAqLwouc3RhdHMtYmstYmFkZ2UgewogICAgZGlz
cGxheTogaW5saW5lLWJsb2NrOyBmb250LXNpemU6IDEwcHg7IGZvbnQtd2VpZ2h0OiA3MDA7IGxl
dHRlci1zcGFjaW5nOiAuMDNlbTsKICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7IHBhZGRp
bmc6IDFweCA2cHg7IGJvcmRlci1yYWRpdXM6IHZhcigtLXJhZGl1cy1zbSk7CiAgICBiYWNrZ3Jv
dW5kOiB2YXIoLS1iZy1wcmltYXJ5KTsgY29sb3I6IHZhcigtLXRleHQtb24tcHJpbWFyeSwgI2Zm
Zik7IHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7Cn0KLnN0YXRzLWJrLXdlciB7IGZvbnQtc2l6ZTog
dmFyKC0tZnMtc20pOyBjb2xvcjogdmFyKC0tdGV4dC1zZWNvbmRhcnkpOyB3aGl0ZS1zcGFjZTog
bm93cmFwOyB9Ci5zdGF0cy1iay1yYW5nIHsgZGlzcGxheTogaW5saW5lLWJsb2NrOyBtaW4td2lk
dGg6IDEuNmVtOyBjb2xvcjogdmFyKC0tdGV4dC1tdXRlZCk7IGZvbnQtdmFyaWFudC1udW1lcmlj
OiB0YWJ1bGFyLW51bXM7IH0KCi8qID09PT09IEJ1aWxkZXItTW9kYWwgPT09PT0gKi8KLmJrLWJ1
aWxkZXIgeyBkaXNwbGF5OiBncmlkOyBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IG1pbm1heCgyMjBw
eCwgMWZyKSBtaW5tYXgoMjYwcHgsIDEuNGZyKTsgZ2FwOiAxOHB4OyB9CkBtZWRpYSAobWF4LXdp
ZHRoOiA3MjBweCkgeyAuYmstYnVpbGRlciB7IGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyOyB9
IH0KLmJrLWZvcm0geyBkaXNwbGF5OiBmbGV4OyBmbGV4LWRpcmVjdGlvbjogY29sdW1uOyBnYXA6
IDEwcHg7IH0KLmJrLWZlbGQgeyBkaXNwbGF5OiBmbGV4OyBmbGV4LWRpcmVjdGlvbjogY29sdW1u
OyBnYXA6IDRweDsgZm9udC1zaXplOiB2YXIoLS1mcy1zbSk7IGZvbnQtd2VpZ2h0OiA2MDA7IGNv
bG9yOiB2YXIoLS10ZXh0LXNlY29uZGFyeSk7IH0KLmJrLWZlbGQgLmZvcm0taW5wdXQgeyBmb250
LXdlaWdodDogNDAwOyB9Ci5iay12b3JzY2hhdSB7CiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1iZy1j
YXJkLWFsdCk7IGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWJvcmRlci1saWdodCk7CiAgICBib3Jk
ZXItcmFkaXVzOiB2YXIoLS1yYWRpdXMtbWQpOyBwYWRkaW5nOiAxMnB4IDE0cHg7IG1pbi13aWR0
aDogMDsKfQouYmstdm9yc2NoYXUtdGl0ZWwgeyBmb250LXNpemU6IHZhcigtLWZzLXNtKTsgZm9u
dC13ZWlnaHQ6IDcwMDsgY29sb3I6IHZhcigtLXRleHQtaGVhZGluZyk7IG1hcmdpbi1ib3R0b206
IDhweDsgfQouYmstdm9yc2NoYXUgLnN0YXRzLWNoYXJ0LWFyZWEgeyBtYXgtaGVpZ2h0OiAzMjBw
eDsgfQouYmstbGlzdGUgeyBtYXJnaW4tdG9wOiAxOHB4OyBib3JkZXItdG9wOiAxcHggc29saWQg
dmFyKC0tYm9yZGVyLWxpZ2h0KTsgcGFkZGluZy10b3A6IDEycHg7IH0KLmJrLWxpc3RlLXRpdGVs
IHsgZm9udC1zaXplOiB2YXIoLS1mcy1zbSk7IGZvbnQtd2VpZ2h0OiA3MDA7IGNvbG9yOiB2YXIo
LS10ZXh0LWhlYWRpbmcpOyBtYXJnaW4tYm90dG9tOiA4cHg7IH0KLmJrLWxpc3RlLWxlZXIgeyBm
b250LXNpemU6IHZhcigtLWZzLXNtKTsgY29sb3I6IHZhcigtLXRleHQtbXV0ZWQpOyB9Ci5iay1s
aXN0ZS1pdGVtcyB7IGRpc3BsYXk6IGZsZXg7IGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47IGdhcDog
NnB4OyB9Ci5iay1saXN0ZS1pdGVtIHsgZGlzcGxheTogZmxleDsgYWxpZ24taXRlbXM6IGNlbnRl
cjsgZ2FwOiAxMHB4OyBwYWRkaW5nOiA2cHggOHB4OyBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1i
b3JkZXItbGlnaHQpOyBib3JkZXItcmFkaXVzOiB2YXIoLS1yYWRpdXMtbWQpOyB9Ci5iay1saXN0
ZS1uYW1lIHsgZm9udC13ZWlnaHQ6IDYwMDsgY29sb3I6IHZhcigtLXRleHQtaGVhZGluZyk7IH0K
LmJrLWxpc3RlLW1ldGEgeyBmbGV4OiAxOyBmb250LXNpemU6IHZhcigtLWZzLXNtKTsgY29sb3I6
IHZhcigtLXRleHQtbXV0ZWQpOyB9CgovKiA9PT09PSBBZG1pbjogU3RhdGlzdGlrLUxheW91dC1S
YXN0ZXIgKFNVLW9ubHkpID09PT09ICovCi5zbC1sZWdlbmRlIHsgZm9udC1zaXplOiB2YXIoLS1m
cy1zbSk7IGNvbG9yOiB2YXIoLS10ZXh0LXNlY29uZGFyeSk7IG1hcmdpbi1ib3R0b206IDE0cHg7
IH0KLnNsLXJhc3RlciB7IG1hcmdpbi1ib3R0b206IDA7IH0KLnNsLXRpbGUgewogICAgZ3JpZC1j
b2x1bW46IHNwYW4gNjsgYmFja2dyb3VuZDogdmFyKC0tYmctY2FyZCk7IGJvcmRlcjogMXB4IHNv
bGlkIHZhcigtLWJvcmRlci1jb2xvcik7CiAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1yYWRpdXMt
bWQpOyBwYWRkaW5nOiAxMHB4IDEycHg7IGN1cnNvcjogcG9pbnRlcjsgdXNlci1zZWxlY3Q6IG5v
bmU7CiAgICBib3gtc2hhZG93OiAwIDFweCAzcHggdmFyKC0tc2hhZG93LWxpZ2h0KTsgdHJhbnNp
dGlvbjogYm9yZGVyLWNvbG9yIC4xMnMgZWFzZSwgYm94LXNoYWRvdyAuMTJzIGVhc2UsIG9wYWNp
dHkgLjEycyBlYXNlOwogICAgbWluLXdpZHRoOiAwOwp9Ci5zbC10aWxlOmhvdmVyIHsgYm9yZGVy
LWNvbG9yOiB2YXIoLS1iZy1wcmltYXJ5KTsgYm94LXNoYWRvdzogMCAycHggNnB4IHZhcigtLXNo
YWRvdy1tZWRpdW0pOyB9Ci5zbC10aWxlLWtvcGYgeyBkaXNwbGF5OiBmbGV4OyBhbGlnbi1pdGVt
czogY2VudGVyOyBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47IGdhcDogOHB4OyBtYXJn
aW4tYm90dG9tOiA2cHg7IH0KLnNsLWJhZGdlIHsKICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsg
Zm9udC1zaXplOiAxMHB4OyBmb250LXdlaWdodDogNzAwOyB0ZXh0LXRyYW5zZm9ybTogdXBwZXJj
YXNlOyBsZXR0ZXItc3BhY2luZzogLjAzZW07CiAgICBwYWRkaW5nOiAxcHggNnB4OyBib3JkZXIt
cmFkaXVzOiB2YXIoLS1yYWRpdXMtc20pOyBiYWNrZ3JvdW5kOiB2YXIoLS1iZy1wcmltYXJ5KTsg
Y29sb3I6IHZhcigtLXRleHQtb24tcHJpbWFyeSwgI2ZmZik7Cn0KLnNsLWJhZGdlLWZlc3QgeyBi
YWNrZ3JvdW5kOiB2YXIoLS10ZXh0LXNlY29uZGFyeSk7IH0KLnNsLWF1Z2UgeyBiYWNrZ3JvdW5k
OiB2YXIoLS1iZy1jYXJkLWFsdCk7IGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWJvcmRlci1saWdo
dCk7IGN1cnNvcjogcG9pbnRlcjsgZm9udC1zaXplOiAxMXB4OyBmb250LXdlaWdodDogNjAwOyBs
aW5lLWhlaWdodDogMS4yOyBwYWRkaW5nOiAycHggOHB4OyBib3JkZXItcmFkaXVzOiB2YXIoLS1y
YWRpdXMtc20pOyBjb2xvcjogdmFyKC0tdGV4dC1zZWNvbmRhcnkpOyB9Ci5zbC1hdWdlOmhvdmVy
IHsgYm9yZGVyLWNvbG9yOiB2YXIoLS1iZy1wcmltYXJ5KTsgY29sb3I6IHZhcigtLXRleHQtaGVh
ZGluZyk7IH0KLnNsLXRpbGUtdGl0ZWwgeyBmb250LXdlaWdodDogNzAwOyBjb2xvcjogdmFyKC0t
dGV4dC1oZWFkaW5nKTsgZm9udC1zaXplOiB2YXIoLS1mcy1tZCk7IG92ZXJmbG93OiBoaWRkZW47
IHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOyB3aGl0ZS1zcGFjZTogbm93cmFwOyB9Ci5zbC10aWxl
LWJyZWl0ZSB7IGZvbnQtc2l6ZTogdmFyKC0tZnMtc20pOyBjb2xvcjogdmFyKC0tdGV4dC1tdXRl
ZCk7IG1hcmdpbi10b3A6IDJweDsgfQouc2wtbWluIHsgY29sb3I6IHZhcigtLXRleHQtbXV0ZWQp
OyB9Ci5zbC10aWxlLnNsLXVuc2ljaHRiYXIgeyBvcGFjaXR5OiAuNTsgfQouc2wtdGlsZS5zbC1k
cmFnZ2luZyB7IG9wYWNpdHk6IC40OyB9Ci5zbC10aWxlLnNsLWRyb3AtemllbCB7IGJvcmRlci1j
b2xvcjogdmFyKC0tYmctcHJpbWFyeSk7IGJveC1zaGFkb3c6IDAgMCAwIDJweCB2YXIoLS1iZy1w
cmltYXJ5KSBpbnNldDsgfQpAbWVkaWEgKG1heC13aWR0aDogOTAwcHgpIHsgLnNsLXRpbGUgeyBn
cmlkLWNvbHVtbjogMSAvIC0xICFpbXBvcnRhbnQ7IH0gfQoKLyogPT09PT0gTmF0aXZlIFNWRy1E
aWFncmFtbWUgKHN0YXRpc3Rpa19jaGFydHMuanMpID09PT09ICovCi5zdGF0LXN2ZyB7IGZvbnQt
ZmFtaWx5OiBpbmhlcml0OyB9Ci5zdGF0LWF4IHsgZmlsbDogdmFyKC0tdGV4dC1tdXRlZCk7IGZv
bnQtc2l6ZTogMTFweDsgfQouc3RhdC1heC1uYW1lIHsgZmlsbDogdmFyKC0tdGV4dC1zZWNvbmRh
cnkpOyBmb250LXNpemU6IDExcHg7IH0KLnN0YXQtYXgtbGVnIHsgZmlsbDogdmFyKC0tdGV4dC1z
ZWNvbmRhcnkpOyBmb250LXNpemU6IDEycHg7IH0KLnN0YXQtYXgtdGl0ZWwgeyBmaWxsOiB2YXIo
LS10ZXh0LXNlY29uZGFyeSk7IGZvbnQtc2l6ZTogMTJweDsgZm9udC13ZWlnaHQ6IDYwMDsgfQou
c3RhdC1oZWF0LXdlcnQgeyBmb250LXNpemU6IDExcHg7IGZvbnQtd2VpZ2h0OiA2MDA7IH0KLnN0
YXQtZG9udXQtbWl0dGUgeyBmaWxsOiB2YXIoLS10ZXh0LWhlYWRpbmcpOyBmb250LXNpemU6IDIy
cHg7IGZvbnQtd2VpZ2h0OiA4MDA7IH0KLnN0YXQtbGVnZW5kZSB7IGRpc3BsYXk6IGZsZXg7IGZs
ZXgtd3JhcDogd3JhcDsgZ2FwOiA2cHggMTRweDsgbWFyZ2luLXRvcDogOHB4OyB9Ci5zdGF0LWxl
Zy1pdGVtIHsgZGlzcGxheTogaW5saW5lLWZsZXg7IGFsaWduLWl0ZW1zOiBjZW50ZXI7IGdhcDog
NXB4OyBmb250LXNpemU6IHZhcigtLWZzLXNtKTsgY29sb3I6IHZhcigtLXRleHQtc2Vjb25kYXJ5
KTsgfQouc3RhdC1sZWctYm94IHsgd2lkdGg6IDEycHg7IGhlaWdodDogMTJweDsgYm9yZGVyLXJh
ZGl1czogM3B4OyBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IH0KLnN0YXQtcGl2b3QgdGgsIC5zdGF0
LXBpdm90IHRkIHsgd2hpdGUtc3BhY2U6IG5vd3JhcDsgfQouc3RhdC1rcGktd3JhcCB7IGRpc3Bs
YXk6IGZsZXg7IGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47IGdhcDogMTRweDsgfQouc3RhdC1rcGkt
Z3Jvc3MgeyB0ZXh0LWFsaWduOiBjZW50ZXI7IHBhZGRpbmc6IDhweCAwOyB9Ci5zdGF0LWtwaS1n
cm9zcy13ZXJ0IHsgZm9udC1zaXplOiA0MHB4OyBmb250LXdlaWdodDogODAwOyBjb2xvcjogdmFy
KC0tdGV4dC1oZWFkaW5nKTsgbGluZS1oZWlnaHQ6IDE7IH0KLnN0YXQta3BpLWdyb3NzLWxhYmVs
IHsgZm9udC1zaXplOiB2YXIoLS1mcy1zbSk7IGNvbG9yOiB2YXIoLS10ZXh0LXNlY29uZGFyeSk7
IG1hcmdpbi10b3A6IDRweDsgfQouc3RhdC1rcGktbWluaSB7IG1hcmdpbi1ib3R0b206IDA7IH0K
Ci8qID09PT09IFN0YXRpc3Rpay1CdWlsZGVyIChhZG1pbl9zdGF0aXN0aWtfYnVpbGRlci5qcykg
PT09PT0gKi8KLmJsZC1ncmlkIHsgZGlzcGxheTogZ3JpZDsgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5z
OiBtaW5tYXgoMjgwcHgsIDM2MHB4KSAxZnI7IGdhcDogMjBweDsgYWxpZ24taXRlbXM6IHN0YXJ0
OyB9CkBtZWRpYSAobWF4LXdpZHRoOiA5ODBweCkgeyAuYmxkLWdyaWQgeyBncmlkLXRlbXBsYXRl
LWNvbHVtbnM6IDFmcjsgfSB9CgovKiBFeGNlbC1FeHBvcnQtRm9ybXVsYXIgKEFkbWluLVRhYiDi
gJ5FeGNlbC1FeHBvcnQiKSDigJQgc2NobWFsZSBTcGFsdGUsIG51dHp0CiAgIGFuc29uc3RlbiBk
aWUgLmJsZC0qLUZlbGRzdGlsZSBtaXQuICovCi5leHAtZm9ybSB7IG1heC13aWR0aDogNjgwcHg7
IH0KLmV4cC1mb3JtIC5ibGQtY2hpcHMgeyBtYXgtaGVpZ2h0OiAyMjBweDsgb3ZlcmZsb3cteTog
YXV0bzsgfQouYmxkLXNwYWx0ZS1mb3JtIHsgZGlzcGxheTogZmxleDsgZmxleC1kaXJlY3Rpb246
IGNvbHVtbjsgZ2FwOiAxMnB4OyB9Ci5ibGQtZmVsZCB7IGRpc3BsYXk6IGZsZXg7IGZsZXgtZGly
ZWN0aW9uOiBjb2x1bW47IGdhcDogNXB4OyB9Ci5ibGQtZmVsZC10aXRlbCB7IGZvbnQtc2l6ZTog
dmFyKC0tZnMtc20pOyBmb250LXdlaWdodDogNzAwOyBjb2xvcjogdmFyKC0tdGV4dC1zZWNvbmRh
cnkpOyB9Ci5ibGQtZmVsZC0yIHsgZGlzcGxheTogZ3JpZDsgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5z
OiAxZnIgMWZyOyBnYXA6IDEwcHg7IH0KLmJsZC1taW5pIHsgZGlzcGxheTogZmxleDsgZmxleC1k
aXJlY3Rpb246IGNvbHVtbjsgZ2FwOiA0cHg7IGZvbnQtc2l6ZTogdmFyKC0tZnMtc20pOyBjb2xv
cjogdmFyKC0tdGV4dC1zZWNvbmRhcnkpOyB9Ci5ibGQtc2VrdGlvbiB7IGJvcmRlcjogMXB4IHNv
bGlkIHZhcigtLWJvcmRlci1saWdodCk7IGJvcmRlci1yYWRpdXM6IHZhcigtLXJhZGl1cy1tZCk7
IHBhZGRpbmc6IDRweCAxMnB4IDEycHg7IH0KLmJsZC1zZWt0aW9uID4gc3VtbWFyeSB7IGN1cnNv
cjogcG9pbnRlcjsgZm9udC13ZWlnaHQ6IDcwMDsgY29sb3I6IHZhcigtLXRleHQtaGVhZGluZyk7
IHBhZGRpbmc6IDhweCAwOyB1c2VyLXNlbGVjdDogbm9uZTsgfQouYmxkLXNla3Rpb25bb3Blbl0g
PiBzdW1tYXJ5IHsgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHZhcigtLWJvcmRlci1saWdodCk7
IG1hcmdpbi1ib3R0b206IDEwcHg7IH0KLmJsZC1zZWt0aW9uIC5ibGQtZmVsZCB7IG1hcmdpbi10
b3A6IDEwcHg7IH0KLmJsZC1jaGlwcyB7IGRpc3BsYXk6IGZsZXg7IGZsZXgtd3JhcDogd3JhcDsg
Z2FwOiA4cHg7IH0KLmJsZC1jaGlwIHsgZGlzcGxheTogaW5saW5lLWZsZXg7IGFsaWduLWl0ZW1z
OiBjZW50ZXI7IHBhZGRpbmc6IDVweCAxMnB4OyBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1ib3Jk
ZXItY29sb3IpOyBib3JkZXItcmFkaXVzOiB2YXIoLS1yYWRpdXMtc20pOwogICAgZm9udC1zaXpl
OiB2YXIoLS1mcy1zbSk7IGNvbG9yOiB2YXIoLS10ZXh0LXNlY29uZGFyeSk7IGN1cnNvcjogcG9p
bnRlcjsgdXNlci1zZWxlY3Q6IG5vbmU7IGJhY2tncm91bmQ6IHZhcigtLWJnLWNhcmQpOyBsaW5l
LWhlaWdodDogMS4zOyB9Ci5ibGQtY2hpcCBpbnB1dCB7IGRpc3BsYXk6IG5vbmU7IH0KLmJsZC1j
aGlwLmFuIHsgYmFja2dyb3VuZDogdmFyKC0tYmctcHJpbWFyeSk7IGNvbG9yOiB2YXIoLS10ZXh0
LW9uLXByaW1hcnksICNmZmYpOyBib3JkZXItY29sb3I6IHZhcigtLWJnLXByaW1hcnkpOyB9Ci5i
bGQtdG9nZ2xlcyB7IGRpc3BsYXk6IGZsZXg7IGZsZXgtd3JhcDogd3JhcDsgZ2FwOiAxNHB4OyBt
YXJnaW4tdG9wOiAxMHB4OyB9Ci5ibGQtdG9nZ2xlIHsgZm9udC1zaXplOiB2YXIoLS1mcy1zbSk7
IGNvbG9yOiB2YXIoLS10ZXh0LXNlY29uZGFyeSk7IGRpc3BsYXk6IGlubGluZS1mbGV4OyBhbGln
bi1pdGVtczogY2VudGVyOyBnYXA6IDZweDsgY3Vyc29yOiBwb2ludGVyOyB9Ci5ibGQtcGVycy1o
aW53ZWlzIHsgZm9udC1zaXplOiAxMXB4OyBjb2xvcjogdmFyKC0tdGV4dC1tdXRlZCk7IG1hcmdp
bjogMCAwIDEwcHggMDsgfQouYmxkLXBlcnMtZ3JwIHsgbWFyZ2luLWJvdHRvbTogMTJweDsgfQou
YmxkLXBlcnMtZ3JwLWtvcGYgeyBkaXNwbGF5OiBmbGV4OyBhbGlnbi1pdGVtczogY2VudGVyOyBq
dXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47IGdhcDogOHB4OyBtYXJnaW4tYm90dG9tOiA2
cHg7IH0KLmJsZC1wZXJzLWdycC1rb3BmID4gc3BhbiB7IGZvbnQtc2l6ZTogdmFyKC0tZnMtc20p
OyBmb250LXdlaWdodDogNzAwOyBjb2xvcjogdmFyKC0tdGV4dC1oZWFkaW5nKTsgfQouYmxkLXBl
cnMtemFobCB7IGNvbG9yOiB2YXIoLS10ZXh0LW11dGVkKTsgZm9udC13ZWlnaHQ6IDQwMDsgfQou
YmxkLXNwYWx0ZS1hdXMgeyBkaXNwbGF5OiBmbGV4OyBmbGV4LWRpcmVjdGlvbjogY29sdW1uOyBn
YXA6IDE0cHg7IG1pbi13aWR0aDogMDsgfQouYmxkLWFrdGlvbmVuIHsgZGlzcGxheTogZmxleDsg
Z2FwOiAxMHB4OyBmbGV4LXdyYXA6IHdyYXA7IH0KLmJsZC1lcmdlYm5pcyB7IGJvcmRlcjogMXB4
IHNvbGlkIHZhcigtLWJvcmRlci1saWdodCk7IGJvcmRlci1yYWRpdXM6IHZhcigtLXJhZGl1cy1s
Zyk7IGJhY2tncm91bmQ6IHZhcigtLWJnLWNhcmQpOyBwYWRkaW5nOiAxNnB4IDE4cHg7IG1pbi1o
ZWlnaHQ6IDIwMHB4OyBtaW4td2lkdGg6IDA7IH0KLmJsZC1lcmdlYm5pcy1oaW50IHsgY29sb3I6
IHZhcigtLXRleHQtbXV0ZWQpOyBmb250LXNpemU6IHZhcigtLWZzLXNtKTsgfQouYmxkLWVyZ2Vi
bmlzLXRpdGVsIHsgZm9udC13ZWlnaHQ6IDcwMDsgY29sb3I6IHZhcigtLXRleHQtaGVhZGluZyk7
IG1hcmdpbi1ib3R0b206IDEwcHg7IH0KLmJsZC1lcmdlYm5pcy1jaGFydCB7IG92ZXJmbG93LXg6
IGF1dG87IH0KLmJsZC1saXN0ZSB7IG1hcmdpbi10b3A6IDIycHg7IGJvcmRlci10b3A6IDFweCBz
b2xpZCB2YXIoLS1ib3JkZXItbGlnaHQpOyBwYWRkaW5nLXRvcDogMTRweDsgfQouYmxkLWxpc3Rl
LXRpdGVsIHsgZm9udC13ZWlnaHQ6IDcwMDsgY29sb3I6IHZhcigtLXRleHQtaGVhZGluZyk7IG1h
cmdpbi1ib3R0b206IDEwcHg7IH0KLmJsZC1saXN0ZS1sZWVyIHsgZm9udC1zaXplOiB2YXIoLS1m
cy1zbSk7IGNvbG9yOiB2YXIoLS10ZXh0LW11dGVkKTsgfQouYmxkLWxpc3RlLWl0ZW1zIHsgZGlz
cGxheTogZmxleDsgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsgZ2FwOiA2cHg7IH0KLmJsZC1saXN0
ZS1pdGVtIHsgZGlzcGxheTogZmxleDsgYWxpZ24taXRlbXM6IGNlbnRlcjsgZ2FwOiAxMHB4OyBw
YWRkaW5nOiA3cHggMTBweDsgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYm9yZGVyLWxpZ2h0KTsg
Ym9yZGVyLXJhZGl1czogdmFyKC0tcmFkaXVzLW1kKTsgfQouYmxkLWxpc3RlLWl0ZW0uYWt0aXYg
eyBib3JkZXItY29sb3I6IHZhcigtLWJnLXByaW1hcnkpOyBib3gtc2hhZG93OiAwIDAgMCAxcHgg
dmFyKC0tYmctcHJpbWFyeSkgaW5zZXQ7IH0KLmJsZC1saXN0ZS1uYW1lIHsgZm9udC13ZWlnaHQ6
IDYwMDsgY29sb3I6IHZhcigtLXRleHQtaGVhZGluZyk7IH0KLmJsZC1saXN0ZS10eXAgeyBmbGV4
OiAxOyBmb250LXNpemU6IHZhcigtLWZzLXNtKTsgY29sb3I6IHZhcigtLXRleHQtbXV0ZWQpOyB9
CgovKiBMaXZlLUZsdXNzZGlhZ3JhbW0gZGVyIEJ1aWxkZXItTG9naWsgKi8KLmJsZC1mbHVzcyB7
IGJvcmRlcjogMXB4IGRhc2hlZCB2YXIoLS1ib3JkZXItY29sb3IpOyBib3JkZXItcmFkaXVzOiB2
YXIoLS1yYWRpdXMtbWQpOyBwYWRkaW5nOiAxMHB4IDEycHg7IGJhY2tncm91bmQ6IHZhcigtLWJn
LWNhcmQtYWx0KTsgfQouZmx1c3MtdGl0ZWwgeyBmb250LXNpemU6IHZhcigtLWZzLXNtKTsgZm9u
dC13ZWlnaHQ6IDcwMDsgY29sb3I6IHZhcigtLXRleHQtc2Vjb25kYXJ5KTsgbWFyZ2luLWJvdHRv
bTogOHB4OyB9Ci5mbHVzcy1rZXR0ZSB7IGRpc3BsYXk6IGZsZXg7IGFsaWduLWl0ZW1zOiBzdHJl
dGNoOyBnYXA6IDZweDsgZmxleC13cmFwOiB3cmFwOyB9Ci5mbHVzcy1zdGF0aW9uIHsgZmxleDog
MSAxIDExMHB4OyBtaW4td2lkdGg6IDEwMHB4OyBiYWNrZ3JvdW5kOiB2YXIoLS1iZy1jYXJkKTsg
Ym9yZGVyOiAxcHggc29saWQgdmFyKC0tYm9yZGVyLWxpZ2h0KTsgYm9yZGVyLXJhZGl1czogdmFy
KC0tcmFkaXVzLW1kKTsgcGFkZGluZzogOHB4IDEwcHg7IH0KLmZsdXNzLWljIHsgZm9udC1zaXpl
OiAxOHB4OyBsaW5lLWhlaWdodDogMTsgfQouZmx1c3MtdCB7IGZvbnQtd2VpZ2h0OiA3MDA7IGNv
bG9yOiB2YXIoLS10ZXh0LWhlYWRpbmcpOyBmb250LXNpemU6IHZhcigtLWZzLXNtKTsgbWFyZ2lu
LXRvcDogNHB4OyB9Ci5mbHVzcy1zIHsgZm9udC1zaXplOiAxMXB4OyBjb2xvcjogdmFyKC0tdGV4
dC1tdXRlZCk7IG1hcmdpbi10b3A6IDJweDsgd29yZC1icmVhazogYnJlYWstd29yZDsgfQouZmx1
c3MtcGZlaWwgeyBhbGlnbi1zZWxmOiBjZW50ZXI7IGNvbG9yOiB2YXIoLS10ZXh0LW11dGVkKTsg
Zm9udC13ZWlnaHQ6IDcwMDsgfQoKLyogPT09PT0gUmVjaHRlICYgU2ljaHRiYXJrZWl0OiBSb2xs
ZW4gYWxzIGVpbmdla2xhcHB0ZSBVbnRlcnNlaXRlbiA9PT09PSAqLwoucmVjaHRlLXJvbGxlIHsg
Ym9yZGVyOiAxcHggc29saWQgdmFyKC0tYm9yZGVyLWxpZ2h0KTsgYm9yZGVyLXJhZGl1czogdmFy
KC0tcmFkaXVzLW1kKTsgbWFyZ2luLWJvdHRvbTogMTJweDsgYmFja2dyb3VuZDogdmFyKC0tYmct
Y2FyZCk7IH0KLnJlY2h0ZS1yb2xsZSA+IHN1bW1hcnkgewogICAgbGlzdC1zdHlsZTogbm9uZTsg
Y3Vyc29yOiBwb2ludGVyOyB1c2VyLXNlbGVjdDogbm9uZTsKICAgIGRpc3BsYXk6IGZsZXg7IGFs
aWduLWl0ZW1zOiBjZW50ZXI7IGdhcDogMTJweDsgcGFkZGluZzogMTRweCAxNnB4Owp9Ci5yZWNo
dGUtcm9sbGUgPiBzdW1tYXJ5Ojotd2Via2l0LWRldGFpbHMtbWFya2VyIHsgZGlzcGxheTogbm9u
ZTsgfQoucmVjaHRlLXJvbGxlIC5yZWNodGUtY2FyZC1pY29uIHsgZm9udC1zaXplOiAyMHB4OyBm
bGV4LXNocmluazogMDsgfQoucmVjaHRlLXJvbGxlLXRpdGVsIHsgZGlzcGxheTogZmxleDsgZmxl
eC1kaXJlY3Rpb246IGNvbHVtbjsgZ2FwOiAycHg7IGZsZXg6IDE7IG1pbi13aWR0aDogMDsgfQou
cmVjaHRlLXJvbGxlLXRpdGVsID4gc3Ryb25nIHsgZm9udC1zaXplOiB2YXIoLS1mcy1sZyk7IGNv
bG9yOiB2YXIoLS10ZXh0LWhlYWRpbmcpOyB9Ci5yZWNodGUtcm9sbGUtdGl0ZWwgLnJlY2h0ZS1j
YXJkLXN1YiB7IGZvbnQtc2l6ZTogdmFyKC0tZnMtc20pOyBjb2xvcjogdmFyKC0tdGV4dC1zZWNv
bmRhcnkpOyBtYXJnaW46IDA7IH0KLnJlY2h0ZS1yb2xsZS1jaGV2IHsgY29sb3I6IHZhcigtLXRl
eHQtbXV0ZWQpOyBmb250LXdlaWdodDogNzAwOyB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gLjE1cyBl
YXNlOyBmbGV4LXNocmluazogMDsgfQoucmVjaHRlLXJvbGxlW29wZW5dID4gc3VtbWFyeSAucmVj
aHRlLXJvbGxlLWNoZXYgeyB0cmFuc2Zvcm06IHJvdGF0ZSg5MGRlZyk7IH0KLnJlY2h0ZS1yb2xs
ZVtvcGVuXSA+IHN1bW1hcnkgeyBib3JkZXItYm90dG9tOiAxcHggc29saWQgdmFyKC0tYm9yZGVy
LWxpZ2h0KTsgfQoucmVjaHRlLXJvbGxlLWJvZHkgeyBwYWRkaW5nOiAxNHB4IDE2cHg7IH0KLnJl
Y2h0ZS1yb2xsZS1ha3Rpb24geyBkaXNwbGF5OiBmbGV4OyBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgt
ZW5kOyBtYXJnaW4tYm90dG9tOiAxMnB4OyB9CgovKiA9PT09PSBTdGFuZGFyZHJlY2h0ZS1UYWIg
PT09PT0gKi8KLnNyLWtvbmZpZywgLnNyLXp1c2F0eiB7IG1hcmdpbi1ib3R0b206IDI0cHg7IH0K
LnNyLWtvbmZpZyBoMywgLnNyLXp1c2F0eiBoMyB7IGZvbnQtc2l6ZTogdmFyKC0tZnMtbGcpOyBj
b2xvcjogdmFyKC0tdGV4dC1oZWFkaW5nKTsgbWFyZ2luOiAwIDAgMTRweCAwOyB9Ci5zci1rb25m
aWcgLmJsZC1mZWxkIHsgbWFyZ2luLWJvdHRvbTogMTZweDsgfQouc3Ita29uZmlnIC5ibGQtZmVs
ZC10aXRlbCB7IG1hcmdpbi1ib3R0b206IDJweDsgfQouc3Ita29uZmlnIC5yZWNodGUtY2FyZC1m
dXNzIHsgbWFyZ2luLXRvcDogMTZweDsgfQouc3ItaGlud2VpcyB7IGZvbnQtc2l6ZTogdmFyKC0t
ZnMtc20pOyBjb2xvcjogdmFyKC0tdGV4dC1tdXRlZCk7IG1hcmdpbi1sZWZ0OiAxMnB4OyB9Ci5z
ci16dXNhdHotc3ViIHsgZm9udC1zaXplOiB2YXIoLS1mcy1zbSk7IGNvbG9yOiB2YXIoLS10ZXh0
LXNlY29uZGFyeSk7IG1hcmdpbjogMCAwIDEycHggMDsgfQouc3ItenVzYXR6LWl0ZW1zIHsgZGlz
cGxheTogZmxleDsgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsgZ2FwOiAxMHB4OyB9Ci5zci16dXNh
dHotaXRlbSB7IGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWJvcmRlci1saWdodCk7IGJvcmRlci1y
YWRpdXM6IHZhcigtLXJhZGl1cy1tZCk7IHBhZGRpbmc6IDEwcHggMTJweDsgYmFja2dyb3VuZDog
dmFyKC0tYmctY2FyZCk7IH0KLnNyLXp1c2F0ei1rb3BmIHsgZGlzcGxheTogZmxleDsgYWxpZ24t
aXRlbXM6IGNlbnRlcjsgZ2FwOiAxMHB4OyB9Ci5zci16dXNhdHotbmFtZSB7IGZvbnQtd2VpZ2h0
OiA3MDA7IGNvbG9yOiB2YXIoLS10ZXh0LWhlYWRpbmcpOyB9Ci5zci16dXNhdHotbWV0YSB7IGZs
ZXg6IDE7IGZvbnQtc2l6ZTogdmFyKC0tZnMtc20pOyBjb2xvcjogdmFyKC0tdGV4dC1tdXRlZCk7
IH0KLnNyLXp1c2F0ei1yZWNodGUgeyBkaXNwbGF5OiBmbGV4OyBmbGV4LXdyYXA6IHdyYXA7IGdh
cDogOHB4OyBtYXJnaW4tdG9wOiAxMHB4OyB9Ci5zci10YWcgeyBkaXNwbGF5OiBpbmxpbmUtYmxv
Y2s7IGZvbnQtc2l6ZTogMTFweDsgcGFkZGluZzogNHB4IDlweDsgYm9yZGVyLXJhZGl1czogdmFy
KC0tcmFkaXVzLXNtKTsgYmFja2dyb3VuZDogdmFyKC0tYmctY2FyZC1hbHQpOyBib3JkZXI6IDFw
eCBzb2xpZCB2YXIoLS1ib3JkZXItbGlnaHQpOyBjb2xvcjogdmFyKC0tdGV4dC1zZWNvbmRhcnkp
OyBsaW5lLWhlaWdodDogMS4zOyB9Cgouc3RhdHMtcGFuZWwgewogICAgYmFja2dyb3VuZDogdmFy
KC0tYmctY2FyZCk7IGJvcmRlci1yYWRpdXM6IHZhcigtLXJhZGl1cy1sZyk7CiAgICBib3JkZXI6
IDFweCBzb2xpZCB2YXIoLS1ib3JkZXItbGlnaHQpOyBib3gtc2hhZG93OiAwIDFweCA0cHggdmFy
KC0tc2hhZG93LWxpZ2h0KTsKICAgIHBhZGRpbmc6IDE2cHggMjBweDsgZGlzcGxheTogZmxleDsg
ZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgIG1pbi1oZWlnaHQ6IDA7IG1pbi13aWR0aDogMDsg
ICAvKiBtaW4td2lkdGg6MCBlc3NlbnppZWxsLCBzb25zdCBzcHJlbmd0CiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWl0ZXIgSW5oYWx0ICh6LkIuIEhlYXRtYXAtVGFi
ZWxsZSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGllIEdyaWQtU3Bh
bHRlbi1CcmVpdGUuICovCiAgICBwb3NpdGlvbjogcmVsYXRpdmU7ICAvKiBBbmtlciBmdWVyIGRl
biBHbG93LU92ZXJsYXkgKDo6YWZ0ZXIpICovCn0KLnN0YXRzLXBhbmVsLWtvcGYgewogICAgZGlz
cGxheTogZmxleDsganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOyBhbGlnbi1pdGVtczog
Y2VudGVyOwogICAgbWFyZ2luLWJvdHRvbTogMTJweDsgZmxleC1zaHJpbms6IDA7Cn0KLnN0YXRz
LXBhbmVsLWtvcGYgaDMgeyBmb250LXNpemU6IHZhcigtLWZzLWxnKTsgZm9udC13ZWlnaHQ6IDcw
MDsgY29sb3I6IHZhcigtLXRleHQtaGVhZGluZyk7IG1hcmdpbjogMDsgfQouc3RhdHMtY2hhcnQt
YXJlYSB7IGZsZXg6IDE7IG1pbi1oZWlnaHQ6IDA7IG92ZXJmbG93LXk6IGF1dG87IG1heC1oZWln
aHQ6IDQyMHB4OyB9CgovKiBLbGFwcGJhcmtlaXQgcHJvIFBhbmVsIOKAlCBLbGljayBhdWYgZGVu
IEtvcGYgenUvYXVmLCBEZWZhdWx0OiBhdWZnZWtsYXBwdC4KICAgVmVyc3RlY2tlbiBhbGxlcyBp
bSBQYW5lbCBhdXNzZXIgZGVtIEtvcGYsIHdlbm4gLnp1Z2VrbGFwcHQgZ2VzZXR6dCBpc3QuICov
Ci5zdGF0cy1wYW5lbC1rb3BmIHsgY3Vyc29yOiBwb2ludGVyOyB1c2VyLXNlbGVjdDogbm9uZTsg
fQouc3RhdHMtc3Vic2VrdGlvbi1rb3BmIHsgY3Vyc29yOiBwb2ludGVyOyB1c2VyLXNlbGVjdDog
bm9uZTsgfQouc3RhdHMtc3Vic2VrdGlvbi10b2dnbGUgeyBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7
IHdpZHRoOiAxMnB4OyBjb2xvcjogdmFyKC0tdGV4dC1tdXRlZCk7IGZvbnQtd2VpZ2h0OiA3MDA7
IGZvbnQtc2l6ZTogdmFyKC0tZnMtc20pOyB9Ci5zdGF0cy10ZWFtLWJhbGtlbi56dWdla2xhcHB0
IHsgZGlzcGxheTogbm9uZTsgfQouc3RhdHMtcGFuZWwtdG9nZ2xlIHsKICAgIGRpc3BsYXk6IGlu
bGluZS1ibG9jazsgd2lkdGg6IDE0cHg7IG1hcmdpbi1yaWdodDogNnB4OwogICAgY29sb3I6IHZh
cigtLXRleHQtbXV0ZWQpOyBmb250LXdlaWdodDogNzAwOyBmb250LXNpemU6IHZhcigtLWZzLXNt
KTsKICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjE1cyBlYXNlOwp9Ci5zdGF0cy1wYW5lbC56
dWdla2xhcHB0ID4gKjpub3QoLnN0YXRzLXBhbmVsLWtvcGYpIHsgZGlzcGxheTogbm9uZTsgfQou
c3RhdHMtcGFuZWwuenVnZWtsYXBwdCAuc3RhdHMtcGFuZWwta29wZiB7IG1hcmdpbi1ib3R0b206
IDA7IH0KCi8qID09PT09IFJlbmRlci1QaXBlbGluZTogU2tlbGV0b24tSGludCArIEdsb3cgPT09
PT0gKi8KLyogU2tlbGV0b24tSGlud2VpcyBwcm8gUGFuZWwgd2FlaHJlbmQgZGVzIHNlcXVlbnRp
ZWxsZW4gTGFkZW5zLiBEZXV0bGljaAogICBzaWNodGJhcmVyIFRleHQgbWl0IHB1bHNpZXJlbmRl
ciBBbmltYXRpb24sIGRhbWl0IGRlciBVc2VyIHdhZWhyZW5kCiAgIGRlciBnZXNhbXRlbiBQaXBl
bGluZSBrbGFyIGVya2VubnQgImhpZXIgcGFzc2llcnQgd2FzIi4gV2lyZCBkdXJjaCBkYXMKICAg
ZWlnZW50bGljaGUgUmVuZGVyLUhUTUwgdWViZXJzY2hyaWViZW4sIHNvYmFsZCBkZXIgU2Nocml0
dCBkcmFuIGlzdC4gKi8KLnN0YXRzLWxvYWRpbmcgewogICAgcGFkZGluZzogNDhweCAyMHB4OyB0
ZXh0LWFsaWduOiBjZW50ZXI7CiAgICBjb2xvcjogdmFyKC0tdGV4dC1oZWFkaW5nKTsgZm9udC1z
aXplOiB2YXIoLS1mcy1sZyk7IGZvbnQtd2VpZ2h0OiA2MDA7CiAgICBiYWNrZ3JvdW5kOiB2YXIo
LS1iZy1jYXJkLWFsdCk7CiAgICBib3JkZXI6IDFweCBkYXNoZWQgdmFyKC0tYm9yZGVyLWNvbG9y
KTsgYm9yZGVyLXJhZGl1czogdmFyKC0tcmFkaXVzLW1kKTsKICAgIGFuaW1hdGlvbjogc3RhdC1w
dWxzZSAxLjZzIGVhc2UtaW4tb3V0IGluZmluaXRlOwp9Ci5zdGF0cy1sb2FkaW5nOjpiZWZvcmUg
ewogICAgY29udGVudDogJ1wyM0YzJzsgICAvKiDij7MgKi8KICAgIGZvbnQtd2VpZ2h0OiBub3Jt
YWw7IG1hcmdpbi1yaWdodDogOHB4OyBmb250LXNpemU6IDE2cHg7CiAgICBkaXNwbGF5OiBpbmxp
bmUtYmxvY2s7CiAgICBhbmltYXRpb246IHN0YXQtbG9hZGluZy1zcGluIDEuNnMgbGluZWFyIGlu
ZmluaXRlOwp9CkBrZXlmcmFtZXMgc3RhdC1wdWxzZSB7CiAgICAwJSwgMTAwJSB7IG9wYWNpdHk6
IDAuNzU7IH0KICAgIDUwJSAgICAgIHsgb3BhY2l0eTogMS4wMDsgfQp9CkBrZXlmcmFtZXMgc3Rh
dC1sb2FkaW5nLXNwaW4gewogICAgMCUgICB7IHRyYW5zZm9ybTogcm90YXRlKDBkZWcpOyB9CiAg
ICAxMDAlIHsgdHJhbnNmb3JtOiByb3RhdGUoMzYwZGVnKTsgfQp9Ci8qIEdsb3ctRWZmZWt0IGF1
ZiBkZW0gUGFuZWwtUmFobWVuIOKAlCB2aXN1ZWxsZXMgU2lnbmFsICJmcmlzY2ggYmVyZWNobmV0
IgogICAoUmVuZGVyLVBpcGVsaW5lKSBiencuICJpY2ggYmluIGludGVyYWt0aXYiIChIb3Zlci1G
ZWVkYmFjaykuCiAgIDIgU2VrdW5kZW4gRGF1ZXIsIGRldXRsaWNoIHNpY2h0YmFyZXIgYm94LXNo
YWRvdy1SaW5nLiBJbXBsZW1lbnRpZXJ0CiAgIHVlYmVyIGVpbiBQc2V1ZG8tRWxlbWVudCBtaXQg
c3RhdGlzY2hlbSBib3gtc2hhZG93ICsgb3BhY2l0eS1BbmltYXRpb246CiAgIG51ciBDb21wb3Np
dGUtUGFzcywga2VpbiB0ZXVyZXMgUmVwYWludCAoaTUtODUwMC1mcmV1bmRsaWNoKS4KCiAgIFBz
ZXVkby1FbGVtZW50IGhhZW5ndCBhbSBQYW5lbCBzZWxic3QgKGltbWVyIGRhLCBkZWZhdWx0IG9w
YWNpdHk6MCksCiAgIGRhbWl0IGF1Y2ggZGVyIDpob3Zlci1UcmlnZ2VyIGlobiBmaW5kZXQuIEFu
aW1hdGlvbiB3aXJkIGR1cmNoIHp3ZWkKICAgU2VsZWt0b3JlbiBhdXNnZWxvZXN0OgogICAgIC5z
dGF0cy1nbG93ICAgICAgIOKAlCB2b24gZGVyIEpTLVJlbmRlci1QaXBlbGluZSBwcm8gU2Nocml0
dCBnZXNldHp0CiAgICAgLnN0YXRzLXBhbmVsOmhvdmVyIOKAlCB3ZW5uIGRlciBVc2VyIG1pdCBk
ZXIgTWF1cyBkcnVlYmVyIGZhZWhydCAqLwouc3RhdHMtcGFuZWw6OmFmdGVyIHsKICAgIGNvbnRl
bnQ6ICcnOyBwb3NpdGlvbjogYWJzb2x1dGU7IGluc2V0OiAtM3B4OyBib3JkZXItcmFkaXVzOiBp
bmhlcml0OwogICAgcG9pbnRlci1ldmVudHM6IG5vbmU7IG9wYWNpdHk6IDA7CiAgICBib3gtc2hh
ZG93OiAwIDAgMjhweCA2cHggcmdiYSgyNiwgODIsIDExOCwgMC41NSksCiAgICAgICAgICAgICAg
ICAwIDAgMCAycHggcmdiYSgyNiwgODIsIDExOCwgMC4zNSk7Cn0KLnN0YXRzLWdsb3c6OmFmdGVy
IHsgYW5pbWF0aW9uOiBzdGF0LWdsb3ctYW5pbSAycyBlYXNlLW91dDsgfQovKiBCZXd1c3N0IHp3
ZWl0ZSBBbmltYXRpb24gbWl0IGdsZWljaGVuIEtleWZyYW1lcywgYWJlciBlaWdlbmVtIE5hbWVu
CiAgIChzdGF0LWdsb3ctaG92ZXIpLiBXZW5uIGRhcyBQYW5lbCBuYWNoIGRlbSBJbml0aWFsLVJl
bmRlciBiZXJlaXRzIGRpZQogICBLbGFzc2UgLnN0YXRzLWdsb3cgdHJhZWd0LCBoYXQgZGVyIDo6
YWZ0ZXItU2VsZWt0b3IgZGllIEFuaW1hdGlvbgogICAnc3RhdC1nbG93LWFuaW0nIGltIGNvbXB1
dGVkLXZhbHVlLVBvb2wuIFNldHp0IDpob3ZlciBkaWUgZ2xlaWNoZQogICBBbmltYXRpb24sIHNp
ZWh0IGRlciBCcm93c2VyIGtlaW5lbiBBZW5kZXJ1bmdzdW50ZXJzY2hpZWQgdW5kIGZldWVydAog
ICBzaWUgbmljaHQgbmV1LiBFaW4gc2VwYXJhdGVyIE5hbWUgZXJ6d2luZ3QgZGVuIFJlc3RhcnQu
ICovCi5zdGF0cy1wYW5lbDpob3Zlcjo6YWZ0ZXIgeyBhbmltYXRpb246IHN0YXQtZ2xvdy1ob3Zl
ciAycyBlYXNlLW91dDsgfQpAa2V5ZnJhbWVzIHN0YXQtZ2xvdy1hbmltIHsKICAgIDAlICAgeyBv
cGFjaXR5OiAwOyB9CiAgICAxNSUgIHsgb3BhY2l0eTogMTsgfQogICAgNjAlICB7IG9wYWNpdHk6
IDE7IH0KICAgIDEwMCUgeyBvcGFjaXR5OiAwOyB9Cn0KQGtleWZyYW1lcyBzdGF0LWdsb3ctaG92
ZXIgewogICAgMCUgICB7IG9wYWNpdHk6IDA7IH0KICAgIDE1JSAgeyBvcGFjaXR5OiAxOyB9CiAg
ICA2MCUgIHsgb3BhY2l0eTogMTsgfQogICAgMTAwJSB7IG9wYWNpdHk6IDA7IH0KfQoKLyogVG9n
Z2xlLUJ1dHRvbnMgaW4gUGFuZWxzICovCi8qIEthdGVnb3JpZS1CdXR0b25zIGltIFNjaGljaHR2
ZXJ0ZWlsdW5ncy1QYW5lbCAoU2NoaWNodGVuIC8gV29jaGVuZW5kZSAvCiAgIEZvcnRiaWxkdW5n
IC8gQWJ3ZXNlbmhlaXQpLiBMb2VzdCBkZW4gU29ydC1Ecm9wZG93biAyMDI2LTA1IGFiLiAqLwou
c3RhdHMta2F0LWdydXBwZSB7IGRpc3BsYXk6IGZsZXg7IGFsaWduLWl0ZW1zOiBjZW50ZXI7IGdh
cDogNHB4OyBmbGV4LXdyYXA6IHdyYXA7IH0KLnN0YXRzLWthdC1idG4gewogICAgcGFkZGluZzog
NHB4IDEwcHg7IGZvbnQtc2l6ZTogdmFyKC0tZnMtc20pOyBmb250LXdlaWdodDogNjAwOyBib3Jk
ZXI6IDFweCBzb2xpZCB2YXIoLS1ib3JkZXItY29sb3IpOwogICAgYmFja2dyb3VuZDogdmFyKC0t
YmctY2FyZC1hbHQpOyBjb2xvcjogdmFyKC0tdGV4dC1tdXRlZCk7IGN1cnNvcjogcG9pbnRlcjsg
Ym9yZGVyLXJhZGl1czogdmFyKC0tcmFkaXVzLXNtKTsKICAgIHRyYW5zaXRpb246IGFsbCAwLjE1
cyBlYXNlOwp9Ci5zdGF0cy1rYXQtYnRuOmhvdmVyOm5vdCguYWt0aXYpIHsgYmFja2dyb3VuZDog
dmFyKC0tYmctaG92ZXIpOyBjb2xvcjogdmFyKC0tdGV4dC1oZWFkaW5nKTsgfQouc3RhdHMta2F0
LWJ0bi5ha3RpdiB7IGJhY2tncm91bmQ6IHZhcigtLWJnLXByaW1hcnkpOyBjb2xvcjogdmFyKC0t
dGV4dC1vbi1wcmltYXJ5KTsgYm9yZGVyLWNvbG9yOiB2YXIoLS1iZy1wcmltYXJ5KTsgfQouc3Rh
dHMtc29ydC1yaWNodHVuZyB7IHdpZHRoOiAyNnB4OyBoZWlnaHQ6IDI2cHg7IHBhZGRpbmc6IDA7
IG1hcmdpbi1sZWZ0OiA0cHg7IGRpc3BsYXk6IGZsZXg7IGFsaWduLWl0ZW1zOiBjZW50ZXI7IGp1
c3RpZnktY29udGVudDogY2VudGVyOyBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1ib3JkZXItY29s
b3IpOyBiYWNrZ3JvdW5kOiB2YXIoLS1iZy1jYXJkKTsgYm9yZGVyLXJhZGl1czogdmFyKC0tcmFk
aXVzLXNtKTsgY3Vyc29yOiBwb2ludGVyOyBmb250LXNpemU6IHZhcigtLWZzLW1kKTsgY29sb3I6
IHZhcigtLXRleHQtc2Vjb25kYXJ5KTsgfQouc3RhdHMtc29ydC1yaWNodHVuZzpob3ZlciB7IGJh
Y2tncm91bmQ6IHZhcigtLWJnLWhvdmVyKTsgY29sb3I6IHZhcigtLXRleHQtaGVhZGluZyk7IH0K
LnN0YXRzLXNvcnQtcGZlaWwgeyBsaW5lLWhlaWdodDogMTsgZm9udC13ZWlnaHQ6IDcwMDsgfQoK
LyogQmFkZ2UgKi8KLnN0YXRzLWJhZGdlIHsKICAgIGZvbnQtc2l6ZTogdmFyKC0tZnMtc20pOyBm
b250LXdlaWdodDogNzAwOyBwYWRkaW5nOiAycHggOHB4OyBib3JkZXItcmFkaXVzOiB2YXIoLS1y
YWRpdXMtbGcpOwogICAgYmFja2dyb3VuZDogdmFyKC0tZmFyYmUtd2FybnVuZyk7IGNvbG9yOiAj
ZmZmOyBtaW4td2lkdGg6IDIwcHg7IHRleHQtYWxpZ246IGNlbnRlcjsKfQouc3RhdHMtYmFkZ2U6
ZW1wdHkgeyBkaXNwbGF5OiBub25lOyB9Ci5zdGF0cy1iYWRnZS1vayB7IGJhY2tncm91bmQ6IHZh
cigtLWZhcmJlLWVyZm9sZyk7IH0KCi8qIERldGFpbC1UYWJlbGxlICovCi5zdGF0cy10YWJlbGxl
IHRoLnphaGwsIC5zdGF0cy10YWJlbGxlIHRkLnphaGwgeyB0ZXh0LWFsaWduOiByaWdodDsgZm9u
dC12YXJpYW50LW51bWVyaWM6IHRhYnVsYXItbnVtczsgfQovKiBTY2hpY2h0LUtvcGYtWmVsbGVu
IG1pdCBlaWdlbmVtIGhlbGxlbSBIaW50ZXJncnVuZCDigJQgZGllIEZhcmJ0b2VuZQogICAocm90
L2JsYXUvZ3J1ZW4pIHdhcmVuIGF1ZiBkZW0gZHVua2VsYmxhdWVuIGFkbWluLXRhYmVsbGUtSGVh
ZGVyCiAgIGthdW0gbGVzYmFyLiBKZXR6dCBzdGljaHQgamVkZSBTY2hpY2h0IGFscyBrbGFyZXMg
RmFyYi1UYWcgaGVyYXVzLiAqLwouc3RhdHMtdGFiZWxsZSAuZnJ1ZWgta29wZiwgLnN0YXRzLXRh
YmVsbGUgLnNwYWV0LWtvcGYsIC5zdGF0cy10YWJlbGxlIC5uYWNodC1rb3BmIHsKICAgIGJhY2tn
cm91bmQ6ICNmZmY7IGZvbnQtd2VpZ2h0OiA4MDA7IHRleHQtYWxpZ246IGNlbnRlcjsKICAgIGJv
cmRlci1yYWRpdXM6IHZhcigtLXJhZGl1cy14cyk7IHBhZGRpbmc6IDZweCA4cHg7Cn0KLnN0YXRz
LXRhYmVsbGUgLmZydWVoLWtvcGYgeyBjb2xvcjogdmFyKC0tZmFyYmUtZnJ1ZWgpOyB9Ci5zdGF0
cy10YWJlbGxlIC5zcGFldC1rb3BmIHsgY29sb3I6IHZhcigtLWZhcmJlLXNwYWV0KTsgfQouc3Rh
dHMtdGFiZWxsZSAubmFjaHQta29wZiB7IGNvbG9yOiB2YXIoLS1mYXJiZS1uYWNodCk7IH0KLnN0
YXRzLXRhYmVsbGUgLndhcm4ta29wZiB7IGNvbG9yOiB2YXIoLS1mYXJiZS1mZWhsZXIpOyB9Ci5z
dGF0cy1kZXRhaWxzIHsKICAgIGJhY2tncm91bmQ6IHZhcigtLWJnLWNhcmQpOyBib3JkZXItcmFk
aXVzOiB2YXIoLS1yYWRpdXMtbGcpOwogICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYm9yZGVy
LWxpZ2h0KTsgYm94LXNoYWRvdzogMCAxcHggNHB4IHZhcigtLXNoYWRvdy1saWdodCk7CiAgICBt
YXJnaW4tYm90dG9tOiAxNnB4Owp9Ci5zdGF0cy1kZXRhaWxzLXN1bW1hcnkgewogICAgcGFkZGlu
ZzogMTRweCAyMHB4OyBmb250LXNpemU6IHZhcigtLWZzLW1kKTsgZm9udC13ZWlnaHQ6IDcwMDsg
Y3Vyc29yOiBwb2ludGVyOwogICAgY29sb3I6IHZhcigtLXRleHQtc2Vjb25kYXJ5KTsgdXNlci1z
ZWxlY3Q6IG5vbmU7IGxpc3Qtc3R5bGU6IG5vbmU7Cn0KLnN0YXRzLWRldGFpbHMtc3VtbWFyeTo6
YmVmb3JlIHsgY29udGVudDogJ1wyNUI2ICAnOyBmb250LXNpemU6IHZhcigtLWZzLXhzKTsgdHJh
bnNpdGlvbjogdHJhbnNmb3JtIDAuMnM7IGRpc3BsYXk6IGlubGluZS1ibG9jazsgfQouc3RhdHMt
ZGV0YWlsc1tvcGVuXSAuc3RhdHMtZGV0YWlscy1zdW1tYXJ5OjpiZWZvcmUgeyB0cmFuc2Zvcm06
IHJvdGF0ZSg5MGRlZyk7IH0KLnN0YXRzLWRldGFpbHNbb3Blbl0gLnN0YXRzLWRldGFpbHMtc3Vt
bWFyeSB7IGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB2YXIoLS1ib3JkZXItbGlnaHQpOyB9Ci5z
dGF0cy1kZXRhaWxzIC50YWJlbGxlLXNjcm9sbCB7IHBhZGRpbmc6IDAgMjBweCAxNnB4OyB9Cgov
KiBCYWxrZW5kaWFncmFtbSAoaW0gUGFuZWwpIOKAlCBrZWluIGhvcml6b250YWxlciBTY3JvbGws
IGFsbGVzIHBhc3N0IHJlaW4gKi8KLnN0YXRzLWJhbGtlbi1jb250YWluZXIgeyBkaXNwbGF5OiBm
bGV4OyBmbGV4LWRpcmVjdGlvbjogY29sdW1uOyBnYXA6IDRweDsgb3ZlcmZsb3cteDogaGlkZGVu
OyB9Ci5zdGF0cy1iYWxrZW4temVpbGUgeyBkaXNwbGF5OiBmbGV4OyBhbGlnbi1pdGVtczogY2Vu
dGVyOyBnYXA6IDhweDsgZm9udC1zaXplOiB2YXIoLS1mcy1zbSk7IHBhZGRpbmc6IDJweCAwOyBt
aW4td2lkdGg6IDA7IH0KLnN0YXRzLWJhbGtlbi1uYW1lIHsgd2lkdGg6IDEyMHB4OyBtaW4td2lk
dGg6IDEyMHB4OyB0ZXh0LWFsaWduOiByaWdodDsgZm9udC13ZWlnaHQ6IDUwMDsgY29sb3I6IHZh
cigtLXRleHQtc2Vjb25kYXJ5KTsgb3ZlcmZsb3c6IGhpZGRlbjsgdGV4dC1vdmVyZmxvdzogZWxs
aXBzaXM7IHdoaXRlLXNwYWNlOiBub3dyYXA7IH0KLnN0YXRzLWJhbGtlbi1iYXItd3JhcCB7IGZs
ZXg6IDE7IG1pbi13aWR0aDogMDsgZGlzcGxheTogZmxleDsgZ2FwOiAxcHg7IGhlaWdodDogMThw
eDsgYmFja2dyb3VuZDogdmFyKC0tYmctY2FyZC1hbHQpOyBib3JkZXItcmFkaXVzOiB2YXIoLS1y
YWRpdXMteHMpOyBvdmVyZmxvdzogaGlkZGVuOyB9Ci5zdGF0cy1iYWxrZW4tc2VnbWVudCB7IGhl
aWdodDogMTAwJTsgdHJhbnNpdGlvbjogd2lkdGggMC40cyBlYXNlOyBkaXNwbGF5OiBmbGV4OyBh
bGlnbi1pdGVtczogY2VudGVyOyBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsgZm9udC1zaXplOiA5
cHg7IGNvbG9yOiAjZmZmOyBmb250LXdlaWdodDogNzAwOyB9Ci8qIFRvdGFsLVNwYWx0ZTogYnJl
aXQgZ2VudWcgZnVlciAizqMgRm9ydGJpbGR1bmciLUxhYmVsIGltIEtvcGYsIG5vd3JhcC4gKi8K
LnN0YXRzLWJhbGtlbi10b3RhbCB7IHdpZHRoOiA5MHB4OyBtaW4td2lkdGg6IDkwcHg7IHRleHQt
YWxpZ246IHJpZ2h0OyBmb250LXdlaWdodDogNjAwOyBjb2xvcjogdmFyKC0tdGV4dC1zZWNvbmRh
cnkpOyBmb250LXZhcmlhbnQtbnVtZXJpYzogdGFidWxhci1udW1zOyB3aGl0ZS1zcGFjZTogbm93
cmFwOyB9CgovKiBFeHRyYS1TcGFsdGUgcmVjaHRzOiBNaW5pLUJhciBmdWVyIGVpbmVuIHp1c2Fl
dHpsaWNoZW4gSW5kaWthdG9yCiAgIChha3R1ZWxsIGdlbnV0enQgaW4gZGVyIEthdGVnb3JpZSAi
V29jaGVuZW5kZSIgZnVlciBrb21wbGV0dGVXRSkuICovCi5zdGF0cy1iYWxrZW4tZXh0cmEgeyB3
aWR0aDogMTAwcHg7IG1pbi13aWR0aDogMTAwcHg7IGRpc3BsYXk6IGZsZXg7IGFsaWduLWl0ZW1z
OiBjZW50ZXI7IGdhcDogNnB4OyB9Ci5zdGF0cy1iYWxrZW4ta29udGV4dC1iYXIgeyBmbGV4OiAx
OyBoZWlnaHQ6IDhweDsgYmFja2dyb3VuZDogdmFyKC0tYmctY2FyZC1hbHQpOyBib3JkZXItcmFk
aXVzOiAycHg7IG92ZXJmbG93OiBoaWRkZW47IH0KLnN0YXRzLWJhbGtlbi1rb250ZXh0LWZpbGwg
eyBoZWlnaHQ6IDEwMCU7IHRyYW5zaXRpb246IHdpZHRoIDAuNHMgZWFzZTsgYm9yZGVyLXJhZGl1
czogMnB4OyB9Ci5zdGF0cy1iYWxrZW4ta29udGV4dC13ZXJ0IHsgd2lkdGg6IDI4cHg7IHRleHQt
YWxpZ246IHJpZ2h0OyBmb250LXdlaWdodDogNzAwOyBmb250LXZhcmlhbnQtbnVtZXJpYzogdGFi
dWxhci1udW1zOyBjb2xvcjogdmFyKC0tdGV4dC1oZWFkaW5nKTsgfQoKLyogT3B0aW9uYWxlIEth
dGVnb3JpZS1CZXNjaHJlaWJ1bmcgdWViZXIgZGVtIEJhbGtlbi1DaGFydCAoei5CLiBmdWVyCiAg
ICJFaW5nZXNwcnVuZ2VuIjogd2FzIHdpcmQgaGllciBlaWdlbnRsaWNoIGdlemFlaGx0PykuIFNj
aG1hbGUgSW5mby1Cb3gKICAgbWl0IGxpbmtlbSBBa3plbnQtU3RyZWlmZW4uICovCi5zdGF0cy1r
YXQtYmVzY2hyZWlidW5nIHsKICAgIG1hcmdpbjogMCAwIDEwcHg7CiAgICBwYWRkaW5nOiA4cHgg
MTJweDsKICAgIGJhY2tncm91bmQ6IHJnYmEoOTEsIDEyNSwgMTc3LCAwLjA4KTsKICAgIGJvcmRl
ci1sZWZ0OiAzcHggc29saWQgdmFyKC0tcG9saXplaS1ibGF1LCAjMDA2M2FmKTsKICAgIGJvcmRl
ci1yYWRpdXM6IDAgNHB4IDRweCAwOwogICAgZm9udC1zaXplOiB2YXIoLS1mcy1iYXNlKTsKICAg
IGxpbmUtaGVpZ2h0OiAxLjU7CiAgICBjb2xvcjogdmFyKC0tdGV4dC1zZWNvbmRhcnkpOwp9Ci5z
dGF0cy1rYXQtYmVzY2hyZWlidW5nIGIgeyBjb2xvcjogdmFyKC0tdGV4dC1oZWFkaW5nKTsgfQoK
LyogU3BhbHRlbi1Lb3BmemVpbGUgdWViZXIgZGVuIEJhbGtlbiDigJQgbGFiZWx0IFNlZ21lbnRl
ICsgS2F0ZWdvcmllLVN1bW1lLiAqLwouc3RhdHMtYmFsa2VuLWtvcGYgeyBkaXNwbGF5OiBmbGV4
OyBhbGlnbi1pdGVtczogY2VudGVyOyBnYXA6IDhweDsgcGFkZGluZzogMCAwIDRweCAwOyBib3Jk
ZXItYm90dG9tOiAxcHggZGFzaGVkIHZhcigtLWJvcmRlci1jb2xvcik7IG1hcmdpbi1ib3R0b206
IDRweDsgfQouc3RhdHMtYmFsa2VuLWtvcGYgLnN0YXRzLWJhbGtlbi1iYXItd3JhcCwKLnN0YXRz
LWJhbGtlbi1rb3BmIC5zdGF0cy1iYWxrZW4tdG90YWwsCi5zdGF0cy1iYWxrZW4ta29wZiAuc3Rh
dHMtYmFsa2VuLWV4dHJhIHsgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7IGhlaWdodDogYXV0bzsg
fQouc3RhdHMtYmFsa2VuLWtvcGYtbGFiZWwgeyBmb250LXNpemU6IHZhcigtLWZzLXhzKTsgZm9u
dC13ZWlnaHQ6IDcwMDsgY29sb3I6IHZhcigtLXRleHQtbXV0ZWQpOyB0ZXh0LXRyYW5zZm9ybTog
dXBwZXJjYXNlOyBsZXR0ZXItc3BhY2luZzogMC40cHg7IHdoaXRlLXNwYWNlOiBub3dyYXA7IH0K
LnN0YXRzLXNpZ21hLWhpbGZlIHsgY3Vyc29yOiBoZWxwOyBib3JkZXItYm90dG9tOiAxcHggZG90
dGVkIHZhcigtLXRleHQtbXV0ZWQpOyB9Ci5zdGF0cy1iYWxrZW4tc2VnLWxhYmVsIHsgZm9udC13
ZWlnaHQ6IDcwMDsgfQoKLyogTXVzdGVyICovCi5zdGF0cy1tdXN0ZXItY29udGFpbmVyIHsgZGlz
cGxheTogZmxleDsgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsgZ2FwOiA2cHg7IG1heC1oZWlnaHQ6
IDQyMHB4OyBvdmVyZmxvdy15OiBhdXRvOyB9Ci5tdXN0ZXIta2FydGUgewogICAgZGlzcGxheTog
ZmxleDsgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7IGdhcDogMTBweDsKICAgIHBhZGRpbmc6IDEw
cHggMTRweDsgYm9yZGVyLXJhZGl1czogdmFyKC0tcmFkaXVzLW1kKTsKICAgIGJvcmRlcjogMXB4
IHNvbGlkIHZhcigtLWJvcmRlci1saWdodCk7IGZvbnQtc2l6ZTogdmFyKC0tZnMtYmFzZSk7Cn0K
Lm11c3Rlci1pY29uIHsgZm9udC1zaXplOiB2YXIoLS1mcy1sZyk7IG1pbi13aWR0aDogMjJweDsg
aGVpZ2h0OiAyMnB4OyB0ZXh0LWFsaWduOiBjZW50ZXI7IGxpbmUtaGVpZ2h0OiAyMnB4OyBib3Jk
ZXItcmFkaXVzOiA1MCU7IGNvbG9yOiAjZmZmOyBmbGV4LXNocmluazogMDsgfQoubXVzdGVyLXRl
eHQgeyBmb250LXNpemU6IHZhcigtLWZzLWJhc2UpOyBsaW5lLWhlaWdodDogMS41OyB9Ci5tdXN0
ZXItdGV4dCBzdHJvbmcgeyBjb2xvcjogdmFyKC0tdGV4dC1oZWFkaW5nKTsgfQoubXVzdGVyLXdh
cm51bmcgeyBiYWNrZ3JvdW5kOiByZ2JhKDIwMiwxMTEsMzAsMC4wNik7IH0KLm11c3Rlci13YXJu
dW5nIC5tdXN0ZXItaWNvbiB7IGJhY2tncm91bmQ6IHZhcigtLWZhcmJlLXdhcm51bmcpOyB9Ci5t
dXN0ZXItaW5mbyB7IGJhY2tncm91bmQ6IHJnYmEoNDQsNjIsODAsMC4wNCk7IH0KLm11c3Rlci1p
bmZvIC5tdXN0ZXItaWNvbiB7IGJhY2tncm91bmQ6IHZhcigtLWZhcmJlLWluZm8pOyB9Ci5tdXN0
ZXItZXJmb2xnIHsgYmFja2dyb3VuZDogcmdiYSgzOSwxMzcsMTA5LDAuMDYpOyB9Ci5tdXN0ZXIt
ZXJmb2xnIC5tdXN0ZXItaWNvbiB7IGJhY2tncm91bmQ6IHZhcigtLWZhcmJlLWVyZm9sZyk7IH0K
Ci8qIEZhaXJuZXNzIGNvbXBhY3QgKi8KLmZhaXJuZXNzLWNvbXBhY3QgeyBkaXNwbGF5OiBmbGV4
OyBmbGV4LWRpcmVjdGlvbjogY29sdW1uOyBnYXA6IDNweDsgfQouZmFpcm5lc3Mtcm93IHsKICAg
IGRpc3BsYXk6IGdyaWQ7IGdyaWQtdGVtcGxhdGUtY29sdW1uczogMTEwcHggMWZyIDQwcHg7IGdh
cDogNnB4OyBhbGlnbi1pdGVtczogY2VudGVyOwogICAgZm9udC1zaXplOiB2YXIoLS1mcy1zbSk7
IHBhZGRpbmc6IDNweCAwOyBib3JkZXItYm90dG9tOiAxcHggc29saWQgdmFyKC0tYm9yZGVyLWxp
Z2h0KTsKfQouZmFpcm5lc3Mtcm93Omxhc3QtY2hpbGQgeyBib3JkZXItYm90dG9tOiBub25lOyB9
Ci5mYWlybmVzcy1yb3ctbmFtZSB7IGZvbnQtd2VpZ2h0OiA2MDA7IGNvbG9yOiB2YXIoLS10ZXh0
LWhlYWRpbmcpOyBvdmVyZmxvdzogaGlkZGVuOyB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsgd2hp
dGUtc3BhY2U6IG5vd3JhcDsgfQouZmFpcm5lc3Mtcm93LWJhciB7IGhlaWdodDogMTZweDsgYm9y
ZGVyLXJhZGl1czogdmFyKC0tcmFkaXVzLXhzKTsgcG9zaXRpb246IHJlbGF0aXZlOyBiYWNrZ3Jv
dW5kOiB2YXIoLS1iZy1jYXJkLWFsdCk7IH0KLmZhaXJuZXNzLXJvdy1maWxsIHsgaGVpZ2h0OiAx
MDAlOyBib3JkZXItcmFkaXVzOiB2YXIoLS1yYWRpdXMteHMpOyB0cmFuc2l0aW9uOiB3aWR0aCAw
LjRzIGVhc2U7IHBvc2l0aW9uOiByZWxhdGl2ZTsgfQouZmFpcm5lc3Mtcm93LWF2ZyB7IHBvc2l0
aW9uOiBhYnNvbHV0ZTsgdG9wOiAtMnB4OyBib3R0b206IC0ycHg7IHdpZHRoOiAycHg7IGJhY2tn
cm91bmQ6IHZhcigtLXRleHQtaGVhZGluZyk7IG9wYWNpdHk6IDAuNTsgei1pbmRleDogMTsgfQou
ZmFpcm5lc3Mtcm93LXZhbCB7IHRleHQtYWxpZ246IHJpZ2h0OyBmb250LXdlaWdodDogNzAwOyBm
b250LXZhcmlhbnQtbnVtZXJpYzogdGFidWxhci1udW1zOyBjb2xvcjogdmFyKC0tdGV4dC1zZWNv
bmRhcnkpOyBsaW5lLWhlaWdodDogMS4xOyB9Ci5mYWlybmVzcy1yb3ctc3ViIHsgZm9udC1zaXpl
OiA5cHg7IGZvbnQtd2VpZ2h0OiA0MDA7IGNvbG9yOiB2YXIoLS10ZXh0LW11dGVkKTsgfQovKiBX
RS1aZWlsZW4gaGFiZW4gZWluZSA0LiBTcGFsdGUgZnVlciBLb21wbGV0dGUgV0VzIChEaWNodGUt
SW5kaWthdG9yKS4KICAgQnJlaXRlciAoOTZweCkgZGFtaXQgZGFzIExhYmVsICJLb21wbGV0dGUg
V0VzIiB2b2xsc3RhZW5kaWcgc2ljaHRiYXIgaXN0LiAqLwouZmFpcm5lc3Mtcm93LXdlIHsgZ3Jp
ZC10ZW1wbGF0ZS1jb2x1bW5zOiAxMTBweCAxZnIgNDBweCA5NnB4OyB9Ci5mYWlybmVzcy1zdWJ0
aXRsZSB7CiAgICBmb250LXNpemU6IHZhcigtLWZzLXNtKTsgY29sb3I6IHZhcigtLXRleHQtbXV0
ZWQpOyBtYXJnaW46IDAgMCA2cHggMDsKICAgIHBhZGRpbmctYm90dG9tOiA2cHg7IGJvcmRlci1i
b3R0b206IDFweCBkYXNoZWQgdmFyKC0tYm9yZGVyLWNvbG9yKTsKICAgIHdoaXRlLXNwYWNlOiBu
b3dyYXA7IG92ZXJmbG93OiBoaWRkZW47IHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwp9Ci5mYWly
bmVzcy1yb3cta3cgeyBkaXNwbGF5OiBmbGV4OyBhbGlnbi1pdGVtczogY2VudGVyOyBnYXA6IDRw
eDsgfQouZmFpcm5lc3Mtcm93LWt3LWJhciB7IGZsZXg6IDE7IGhlaWdodDogNnB4OyBiYWNrZ3Jv
dW5kOiB2YXIoLS1iZy1jYXJkLWFsdCk7IGJvcmRlci1yYWRpdXM6IDJweDsgb3ZlcmZsb3c6IGhp
ZGRlbjsgfQouZmFpcm5lc3Mtcm93LWt3LWZpbGwgeyBoZWlnaHQ6IDEwMCU7IGJhY2tncm91bmQ6
ICM1QjJDNkY7IGJvcmRlci1yYWRpdXM6IDJweDsgdHJhbnNpdGlvbjogd2lkdGggMC40cyBlYXNl
OyB9Ci5mYWlybmVzcy1yb3cta3ctdmFsIHsgd2lkdGg6IDE4cHg7IHRleHQtYWxpZ246IHJpZ2h0
OyBmb250LXdlaWdodDogNzAwOyBmb250LXZhcmlhbnQtbnVtZXJpYzogdGFidWxhci1udW1zOyBj
b2xvcjogdmFyKC0tdGV4dC1zZWNvbmRhcnkpOyBmb250LXNpemU6IHZhcigtLWZzLXhzKTsgfQou
ZmFpcm5lc3Mta3cta29wZiB7IHRleHQtYWxpZ246IHJpZ2h0OyBmb250LXNpemU6IDlweDsgY29s
b3I6ICM1QjJDNkY7IGZvbnQtd2VpZ2h0OiA3MDA7IH0KLmZhaXJuZXNzLWZ1c3MgeyBmb250LXNp
emU6IHZhcigtLWZzLXhzKTsgY29sb3I6IHZhcigtLXRleHQtbXV0ZWQpOyBtYXJnaW4tdG9wOiA4
cHg7IHBhZGRpbmctdG9wOiA2cHg7IGJvcmRlci10b3A6IDFweCBkYXNoZWQgdmFyKC0tYm9yZGVy
LWNvbG9yKTsgdGV4dC1hbGlnbjogY2VudGVyOyB9Ci5mYWlybmVzcy1vayB7IGJhY2tncm91bmQ6
ICMyN0FFNjA7IH0KLmZhaXJuZXNzLXdhcm51bmcgeyBiYWNrZ3JvdW5kOiAjRTY3RTIyOyB9Ci5m
YWlybmVzcy1rcml0aXNjaCB7IGJhY2tncm91bmQ6ICNDMDM5MkI7IH0KLmZhaXJuZXNzLW5ldXRy
YWwgeyBiYWNrZ3JvdW5kOiAjOTVBNUE2OyB9Ci5mYWlybmVzcy1oZWFkZXIgeyBmb250LXdlaWdo
dDogNzAwOyBjb2xvcjogdmFyKC0tdGV4dC1tdXRlZCk7IGZvbnQtc2l6ZTogdmFyKC0tZnMteHMp
OyB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOyBsZXR0ZXItc3BhY2luZzogMC41cHg7IHBhZGRp
bmc6IDhweCAwIDRweDsgYm9yZGVyLWJvdHRvbTogbm9uZSAhaW1wb3J0YW50OyB9CgovKiBBYndl
c2VuaGVpdHMtQ2hhcnQgKi8KLyogPT09PT0gTWlrcm90ZWFtLUhlYXRtYXAgPT09PT0gKi8KLyog
RHVyY2hnZWhlbmRlIFRhYmVsbGU6IGFsbGUgVGFnZSB2b20gMS4xLiBiaXMgRW5kZSBWZXJiaW5k
bGljaGtlaXQgKi8KLnRlYW0taG0tbGVnZW5kZSB7IGRpc3BsYXk6IGZsZXg7IGdhcDogMTBweDsg
Zm9udC1zaXplOiB2YXIoLS1mcy14cyk7IGNvbG9yOiB2YXIoLS10ZXh0LW11dGVkKTsgYWxpZ24t
aXRlbXM6IGNlbnRlcjsgZmxleC13cmFwOiB3cmFwOyB9Ci50ZWFtLWhtLWxlZ2VuZGUgc3BhbiB7
IGRpc3BsYXk6IGlubGluZS1mbGV4OyBhbGlnbi1pdGVtczogY2VudGVyOyB9Ci50ZWFtLWNlbGwt
bWluaSB7IGRpc3BsYXk6IGlubGluZS1ibG9jazsgd2lkdGg6IDExcHg7IGhlaWdodDogMTFweDsg
Ym9yZGVyLXJhZGl1czogMnB4OyB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlOyBtYXJnaW4tcmlnaHQ6
IDNweDsgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYm9yZGVyLWNvbG9yKTsgfQoKLnN0YXRzLXRl
YW0taGVhdG1hcCB7IG1hcmdpbjogOHB4IDAgMTZweDsgfQovKiBIZWF0bWFwLVNjcm9sbC1Db250
YWluZXI6IHNjcm9sbHQgamV0enQgYXVjaCB2ZXJ0aWthbCwgZGFtaXQgZGVyCiAgIEJvZHktQmVy
ZWljaCBiZWkgdmllbGVuIFRlYW1zIHVudGVyIGRlbiBmaXhpZXJ0ZW4gSGVhZGVyLVplaWxlbgog
ICAoTW9uYXQgLyBUYWcgLyBXb2NoZW50YWcgLyBGZWllcnRhZ2UgLyBGZXJpZW4gLyBTb25kZXJ0
ZXJtaW5lKQogICBkdXJjaHdhbmRlcnQuIERpZSBrdW11bGF0aXZlbiBzdGlja3ktVG9wLVdlcnRl
IHdlcmRlbiBuYWNoIGRlbQogICBSZW5kZXIgaW0gSlMgZ2VzZXR6dCAocm9idXN0IGdlZ2VuIGZl
aGxlbmRlIE1hcmtlci1aZWlsZW4pLiAqLwoudGVhbS1obS1zY3JvbGwgeyBvdmVyZmxvdzogYXV0
bzsgbWF4LXdpZHRoOiAxMDAlOyBtYXgtaGVpZ2h0OiBjYWxjKDEwMHZoIC0gMjQwcHgpOyB9Ci50
ZWFtLWhtLXRhYmVsbGUgewogICAgYm9yZGVyLWNvbGxhcHNlOiBzZXBhcmF0ZTsgYm9yZGVyLXNw
YWNpbmc6IDA7IGZvbnQtc2l6ZTogdmFyKC0tZnMteHMpOwogICAgZm9udC12YXJpYW50LW51bWVy
aWM6IHRhYnVsYXItbnVtczsKfQoudGVhbS1obS10YWJlbGxlIHRoLCAudGVhbS1obS10YWJlbGxl
IHRkIHsKICAgIHBhZGRpbmc6IDA7IHRleHQtYWxpZ246IGNlbnRlcjsgYm9yZGVyOiAxcHggc29s
aWQgdmFyKC0tYm9yZGVyLWxpZ2h0KTsKICAgIHdpZHRoOiAyMnB4OyBtaW4td2lkdGg6IDIycHg7
IG1heC13aWR0aDogMjJweDsgaGVpZ2h0OiAyMnB4Owp9Ci8qIFN0aWNreSBmdWVyIEFMTEUgdGhl
YWQtWmVsbGVuIOKAlCB0aCBVTkQgdGQsIHdlaWwgZGllIE1hcmtlci1aZWlsZW4KICAgKEZlaWVy
dGFnZS9GZXJpZW4vU29uZGVydGVybWluZSkgdGQtWmVsbGVuIHZlcndlbmRlbi4gRGVyIGtvbmty
ZXRlCiAgIHRvcC1XZXJ0IHdpcmQgcHJvIFplaWxlIHBlciBKUyBnZXNldHp0IChrdW11bGF0aXZl
IG9mZnNldEhlaWdodCkuCiAgIHotaW5kZXggdWViZXIgZGVuIEJvZHktWmVsbGVuIChkZWZhdWx0
KSB1bmQgZGVuIHN0aWNreS1OYW1lLVNwYWx0ZW4KICAgKHotaW5kZXggMSk7IGRpZSBFY2tlIG9i
ZW4gbGlua3MgKHRoZWFkIC50ZWFtLWhtLW5hbWUpIGJla29tbXQKICAgei1pbmRleCAzLCB3ZWls
IHNpZSBzb3dvaGwgaG9yaXpvbnRhbCBhbHMgYXVjaCB2ZXJ0aWthbCBzdGlja3kgaXN0LiAqLwou
dGVhbS1obS10YWJlbGxlIHRoZWFkIHRoLAoudGVhbS1obS10YWJlbGxlIHRoZWFkIHRkIHsKICAg
IGJhY2tncm91bmQ6IHZhcigtLWJnLWNhcmQtYWx0KTsgZm9udC13ZWlnaHQ6IDcwMDsgY29sb3I6
IHZhcigtLXRleHQtc2Vjb25kYXJ5KTsKICAgIHBvc2l0aW9uOiBzdGlja3k7IHotaW5kZXg6IDI7
IGJhY2tncm91bmQtY2xpcDogcGFkZGluZy1ib3g7Cn0KLnRlYW0taG0tdGFiZWxsZSB0aGVhZCAu
dGVhbS1obS1uYW1lIHsgei1pbmRleDogMzsgfQoudGVhbS1obS1tb25hdC1jZWxsIHsgZm9udC1z
aXplOiB2YXIoLS1mcy1zbSk7IHBhZGRpbmc6IDJweCAwICFpbXBvcnRhbnQ7IGJvcmRlci1ib3R0
b206IDFweCBzb2xpZCB2YXIoLS1ib3JkZXItY29sb3IpICFpbXBvcnRhbnQ7IH0KLnRlYW0taG0t
dGggeyBwb3NpdGlvbjogcmVsYXRpdmU7IH0KLnRlYW0taG0tdGgtbnVtIHsgZm9udC1zaXplOiB2
YXIoLS1mcy14cyk7IGxpbmUtaGVpZ2h0OiAxLjE7IH0KLnRlYW0taG0td3QgeyBmb250LXNpemU6
IDhweDsgZm9udC13ZWlnaHQ6IDUwMCAhaW1wb3J0YW50OyBjb2xvcjogdmFyKC0tdGV4dC1tdXRl
ZCkgIWltcG9ydGFudDsgfQoKLyogU3BhbHRlbi1NYXJraWVydW5nZW46IGVpbmhlaXRsaWNoIGR1
cmNoIGRpZSBHQU5aRSBTcGFsdGUgKEhlYWRlciwKICAgV29jaGVudGFnLVplaWxlLCBNYXJrZXIt
WmVpbGVuLCBCb2R5LVplbGxlbikuIFdlcnRlIGRvbWluYW50IGdlbnVnLAogICB1bSBBYndlaWNo
dW5nZW4gc29mb3J0IHp1IGVyZmFzc2VuLCBhYmVyIEFtcGVsZmFyYmVuIGJsZWliZW4gbGVzYmFy
LiAqLwoudGVhbS1obS10YWJlbGxlIC5obS13ZSAgICAgICAgICAgeyBib3gtc2hhZG93OiBpbnNl
dCAwIDAgMCA5OTlweCByZ2JhKDAsMCwwLDAuMTQpOyB9Ci50ZWFtLWhtLXRhYmVsbGUgLmhtLWZl
aWVyICAgICAgICB7IGJveC1zaGFkb3c6IGluc2V0IDAgMCAwIDk5OXB4IHJnYmEoMTkyLCA1Nywg
NDMsIDAuMzApOyB9Ci50ZWFtLWhtLXRhYmVsbGUgLmhtLWZlcmllbiAgICAgICB7IGJveC1zaGFk
b3c6IGluc2V0IDAgMCAwIDk5OXB4IHJnYmEoNDEsIDEyOCwgMTg1LCAwLjI2KTsgfQoudGVhbS1o
bS10YWJlbGxlIC5obS1zb25kZXJ0ZXJtaW4geyBib3gtc2hhZG93OiBpbnNldCAwIDAgMCA5OTlw
eCByZ2JhKDIzMCwgMTI2LCAzNCwgMC4zMCk7IH0KLyogTWVocmZhY2gtTWFya2llcnVuZ2VuIChT
YStGZWllcnRhZywgRmVpZXJ0YWcrRmVyaWVuKTogbGV0enRlIGdld2lubnQuCiAgIFJlaWhlbmZv
bGdlIGltIEpTOiBXRSAtPiBGZWllciAtPiBGZXJpZW4gLT4gU29uZGVydGVybWluIOKAlCBTcGV6
aWFsaXRhZXRlbgogICB1ZWJlcmxhZ2VybiBXRTsgU29uZGVydGVybWluIGdld2lubnQgaW0gS29u
Zmxpa3QgbWl0IEZlcmllbi9GZWllci4KICAgRGllIGZydWVoZXJlbiByb3Rlbi9ibGF1ZW4gU3Ry
ZWlmZW4gd3VyZGVuIDIwMjYtMDUgZW50ZmVybnQ6IGRpZSBkaXJla3RlCiAgIFNwYWx0ZW4tVG9l
bnVuZyBpc3QgZGV1dGxpY2ggZ2VudWcsIFN0cmVpZmVuIHdhcmVuIHJlZHVuZGFudC4gKi8KLyog
TWVocmVyZSBNYXJraWVydW5nZW4gYXVmIGVpbmVyIFplbGxlICh6LkIuIFNhICsgRmVpZXJ0YWcp
OiBzdW1taWVydCBzaWNoCiAgIHZpYSBtZWhyZmFjaGVyIGJveC1zaGFkb3cuIENTUy1TcGV6aWZp
dGFldHMtVHJpY2s6IHNwYWV0ZXJlIEtsYXNzZQogICBnZXdpbm50IOKAlCB3aXIgYWt6ZXB0aWVy
ZW4gZGFzIChGZWllcnRhZy9Tb25kZXJ0ZXJtaW4gPiBGZXJpZW4gPiBXRSBpbiBkZXIKICAgUmVp
aGVuZm9sZ2UgZGVyIEtsYXNzZW4pLiBWaXN1ZWxsIHJlaWNodCBkYXMgYXVzLiAqLwoKLyogUm90
YXRpb25zLVBpbGxlIGluIGRlciBQZXJzb25hbHZlcndhbHR1bmcg4oCUIGtvbXBha3RlIEYvUy9O
LUFuemVpZ2UKICAgZGVyIGhldXRpZ2VuIFNjaGljaHQgZGVyIFBlcnNvbiwgYXVzIFN0YW5kb3J0
LVNjaGljaHRmb2xnZSArCiAgIERpZW5zdGdydXBwZW4tUG9zaXRpb24gYWJnZWxlaXRldC4gSG92
ZXItVG9vbHRpcCB6ZWlndCBkZW4KICAgbmFlY2hzdGVuIFdlY2hzZWx0YWcuICovCi5yb3RhLXBp
bGxlIHsKICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsgd2lkdGg6IDIycHg7IGhlaWdodDogMjBw
eDsgbGluZS1oZWlnaHQ6IDIwcHg7CiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7IGJvcmRlci1yYWRp
dXM6IHZhcigtLXJhZGl1cy1zbSk7CiAgICBmb250LXdlaWdodDogNzAwOyBmb250LXNpemU6IHZh
cigtLWZzLXNtKTsgY29sb3I6ICNmZmY7CiAgICBmb250LXZhcmlhbnQtbnVtZXJpYzogdGFidWxh
ci1udW1zOwp9Ci5yb3RhLXBpbGxlLnJvdGEtZiB7IGJhY2tncm91bmQ6IHZhcigtLWZhcmJlLWZy
dWVoLCAjQjcxQzFDKTsgfQoucm90YS1waWxsZS5yb3RhLXMgeyBiYWNrZ3JvdW5kOiB2YXIoLS1m
YXJiZS1zcGFldCwgIzFiNWUyMCk7IH0KLnJvdGEtcGlsbGUucm90YS1uIHsgYmFja2dyb3VuZDog
dmFyKC0tZmFyYmUtbmFjaHQsICMxYTUyNzYpOyB9Ci5yb3RhLXBpbGxlLnJvdGEtbGVlciB7IGJh
Y2tncm91bmQ6IHZhcigtLWJnLWNhcmQtYWx0KTsgY29sb3I6IHZhcigtLXRleHQtbXV0ZWQpOyBm
b250LXdlaWdodDogNDAwOyB9CgovKiBIb3Zlci1LcmV1ejogd2VubiBkaWUgTWF1cyB1ZWJlciBl
aW5lciBIZWF0bWFwLVplbGxlIHN0ZWh0LCB3ZXJkZW4KICAgZGllIGdlc2FtdGUgWmVpbGUgdW5k
IGRpZSBnZXNhbXRlIFNwYWx0ZSBoZXJ2b3JnZWhvYmVuIChFeGNlbC1TdGlsKS4KICAgRGllIEpT
LUxvZ2lrIGluIF9yZW5kZXJUZWFtSGVhdG1hcCBzZXR6dCAuaG0tY3Jvc3MgYXVmIGRpZSBiZXRy
b2ZmZW5lbgogICBaZWxsZW4uIEJveC1zaGFkb3cgaW5zZXQgd2llIGRpZSBobS13ZS9obS1mZWll
ci1NYXJraWVydW5nZW4sIGRhbWl0CiAgIGRlciBHbG93IG1pdCBkZW4gU3BhbHRlbi1Ub2VudW5n
ZW4gdmlzdWVsbCBzdGFwZWx0IHN0YXR0IHNpZSB6dQogICB2ZXJkcmFlbmdlbiDigJQgZGVyIFBv
bGl6ZWktTlJXLUJsYXUtVG9uIHVlYmVybGFnZXJ0IHN1YnRpbC4gKi8KLnRlYW0taG0tdGFiZWxs
ZSB0ZC5obS1jcm9zcywKLnRlYW0taG0tdGFiZWxsZSB0aC5obS1jcm9zcyB7CiAgICBib3gtc2hh
ZG93OiBpbnNldCAwIDAgMCA5OTlweCByZ2JhKDI2LCA4MiwgMTE4LCAwLjE4KSwKICAgICAgICAg
ICAgICAgIGluc2V0IDAgMCAwIDJweCByZ2JhKDI2LCA4MiwgMTE4LCAwLjU1KTsKfQoKLyogRnJ1
ZWhlciBoYXR0ZW4gRmVpZXJ0YWcvRmVyaWVuLVplbGxlbiB6dXNhZXR6bGljaCByb3RlL2JsYXVl
IDMtcHgtU3RyZWlmZW4KICAgb2Jlbi91bnRlbi4gMjAyNi0wNSBlbnRmZXJudDogZGllIFNwYWx0
ZW4tVG9lbnVuZyBpc3QgZWluZGV1dGlnIGdlbnVnLAogICBkaWUgU3RyZWlmZW4gd2FyZW4gcmVk
dW5kYW50IHVuZCB2aXN1ZWxsIHVucnVoaWcuICovCgovKiBTdGFuZG9ydC1UcmVubmVyOiBlY2h0
ZSB3ZWlzc2UgRGlzdGFuenplaWxlbiBzdGF0dCBncmF1ZXIgQm9yZGVyLVRyZW5ubGluaWVuLgog
ICBIYWxiZSBaZWxsZW5ob2VoZSBwcm8gU3BhY2VyLiBCZWltIEhhdXB0d2FjaGVuLVRyZW5uZXIg
endlaSBTcGFjZXIgbWl0CiAgIGVpbmVyIGRpY2tlbiBncmF1ZW4gTGluaWUgZGF6d2lzY2hlbiAo
Ym9yZGVyLWJvdHRvbSBhdWYgZGVtIG9iZXJlbiBTcGFjZXIpLiAqLwoudGVhbS1obS1zcGFjZXIt
cm93IHRkIHsKICAgIHBhZGRpbmc6IDAgIWltcG9ydGFudDsgYm9yZGVyOiBub25lICFpbXBvcnRh
bnQ7CiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1iZy1jYXJkKSAhaW1wb3J0YW50OyBib3gtc2hhZG93
OiBub25lICFpbXBvcnRhbnQ7Cn0KLnRlYW0taG0tc3BhY2VyLXJvdyAudGVhbS1obS1zcGFjZXIt
c3RhbmRvcnQgICAgIHsgaGVpZ2h0OiAxMXB4OyB9Ci50ZWFtLWhtLXNwYWNlci1yb3cgLnRlYW0t
aG0tc3BhY2VyLWhhdXB0LW9iZW4gICB7IGhlaWdodDogMTFweDsgYm9yZGVyLWJvdHRvbTogM3B4
IHNvbGlkIHZhcigtLXRleHQtbXV0ZWQpICFpbXBvcnRhbnQ7IH0KLnRlYW0taG0tc3BhY2VyLXJv
dyAudGVhbS1obS1zcGFjZXItaGF1cHQtdW50ZW4gIHsgaGVpZ2h0OiAxMXB4OyB9Ci8qIExpbmtl
IFNwYWNlci1TcGFsdGUgbXVzcyBiZWkgaG9yaXpvbnRhbGVtIFNjcm9sbCBtaXRrb21tZW4sIGRh
bWl0IGRlcgogICBEaXN0YW56YmxvY2sga29uc2lzdGVudCB1ZWJlciBkaWUgZ2FuemUgVGFiZWxs
ZSB3aXJrdC4gKi8KLnRlYW0taG0tc3BhY2VyLXJvdyAudGVhbS1obS1zcGFjZXItbmFtZSB7IHBv
c2l0aW9uOiBzdGlja3k7IGxlZnQ6IDA7IHotaW5kZXg6IDE7IH0KCi50ZWFtLWJhbGtlbi10cmVu
bmVyLXN0YW5kb3J0IHsgbWFyZ2luLXRvcDogNnB4OyBwYWRkaW5nLXRvcDogNnB4OyBib3JkZXIt
dG9wOiAxcHggc29saWQgdmFyKC0tdGV4dC1tdXRlZCk7IH0KLnRlYW0tYmFsa2VuLXRyZW5uZXIt
aGF1cHQgICAgeyBtYXJnaW4tdG9wOiAxMHB4OyBwYWRkaW5nLXRvcDogMTBweDsgYm9yZGVyLXRv
cDogM3B4IHNvbGlkIHZhcigtLXRleHQtaGVhZGluZyk7IH0KCi8qIE1hcmtlci1aZWlsZW4gKEZl
aWVydGFnZSAvIEZlcmllbiAvIFNvbmRlcnRlcm1pbmUpICovCi50ZWFtLWhtLW1hcmtlci1yb3cg
dGgsIC50ZWFtLWhtLW1hcmtlci1yb3cgdGQgewogICAgaGVpZ2h0OiAxOHB4OyBmb250LXNpemU6
IDlweDsgbGluZS1oZWlnaHQ6IDE7Cn0KLnRlYW0taG0tbWFya2VyLW5hbWUgewogICAgZm9udC1z
dHlsZTogaXRhbGljOyBjb2xvcjogdmFyKC0tdGV4dC1tdXRlZCkgIWltcG9ydGFudDsKICAgIGZv
bnQtc2l6ZTogdmFyKC0tZnMteHMpICFpbXBvcnRhbnQ7IGZvbnQtd2VpZ2h0OiA1MDAgIWltcG9y
dGFudDsKfQoudGVhbS1obS1tYXJrZXItY2VsbCB7IGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OyBj
b2xvcjogdmFyKC0tdGV4dC1zZWNvbmRhcnkpOyBmb250LXdlaWdodDogNjAwOyBwYWRkaW5nOiAw
ICFpbXBvcnRhbnQ7IH0KLyogY29sc3Bhbi1aZWxsZW4gKHp1c2FtbWVuaGFlbmdlbmRlIEZlcmll
biwgbWVocnRhZWdpZ2UgU29uZGVydGVybWluZSk6CiAgIGV0d2FzIG1laHIgUGFkZGluZywga2Vp
biBtYXgtd2lkdGgtTGltaXQsIFRleHQgYmxlaWJ0IHplbnRyaWVydCBpbgogICBkZXIgZ2VzYW10
ZW4gU3Bhbm5lLiAqLwoudGVhbS1obS1tYXJrZXItY2VsbFtjb2xzcGFuXSB7IHBhZGRpbmc6IDAg
NHB4ICFpbXBvcnRhbnQ7IGZvbnQtc2l6ZTogdmFyKC0tZnMteHMpOyB3aGl0ZS1zcGFjZTogbm93
cmFwOyBvdmVyZmxvdzogaGlkZGVuOyB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsgbWF4LXdpZHRo
OiBub25lOyB9Ci50ZWFtLWhtLW1hcmtlci1jZWxsLm1hcmtlci1mZWllciAgICAgICAgeyBiYWNr
Z3JvdW5kOiAjQzAzOTJCOyBjb2xvcjogI2ZmZjsgfQoudGVhbS1obS1tYXJrZXItY2VsbC5tYXJr
ZXItZmVyaWVuICAgICAgIHsgYmFja2dyb3VuZDogIzI5ODBCOTsgY29sb3I6ICNmZmY7IH0KLnRl
YW0taG0tbWFya2VyLWNlbGwubWFya2VyLXNvbmRlcnRlcm1pbiB7IGJhY2tncm91bmQ6ICNFNjdF
MjI7IGNvbG9yOiAjZmZmOyBjdXJzb3I6IHBvaW50ZXI7IH0KLnRlYW0taG0tbWFya2VyLWNlbGwu
bWFya2VyLXNvbmRlcnRlcm1pbjpob3ZlciB7IGJhY2tncm91bmQ6ICNEMzU0MDA7IH0KCi8qIE5h
bWUtU3BhbHRlICovCi50ZWFtLWhtLXRhYmVsbGUgLnRlYW0taG0tbmFtZSB7CiAgICB3aWR0aDog
MTMwcHg7IG1pbi13aWR0aDogMTMwcHg7IG1heC13aWR0aDogMTMwcHg7IHRleHQtYWxpZ246IGxl
ZnQ7IHBhZGRpbmc6IDJweCA2cHg7CiAgICBmb250LXdlaWdodDogNjAwOyBjb2xvcjogdmFyKC0t
dGV4dC1oZWFkaW5nKTsgYmFja2dyb3VuZDogdmFyKC0tYmctY2FyZC1hbHQpOyB3aGl0ZS1zcGFj
ZTogbm93cmFwOwogICAgb3ZlcmZsb3c6IGhpZGRlbjsgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7
CiAgICBwb3NpdGlvbjogc3RpY2t5OyBsZWZ0OiAwOyB6LWluZGV4OiAxOwp9Ci50ZWFtLWhtLWNs
aWNrYWJsZSB7IGN1cnNvcjogcG9pbnRlcjsgdXNlci1zZWxlY3Q6IG5vbmU7IH0KLnRlYW0taG0t
Y2xpY2thYmxlOmhvdmVyIHsgYmFja2dyb3VuZDogdmFyKC0tYmctaG92ZXIpOyB9Ci50ZWFtLWht
LXRvZ2dsZSB7IGRpc3BsYXk6IGlubGluZS1ibG9jazsgd2lkdGg6IDEwcHg7IGNvbG9yOiB2YXIo
LS10ZXh0LW11dGVkKTsgZm9udC1zaXplOiA5cHg7IH0KCi8qIERldGFpbC1aZWlsZW4gKi8KLnRl
YW0taG0tcm93LWRldGFpbCB7IGJhY2tncm91bmQ6IHZhcigtLWJnLWNhcmQtYWx0KTsgfQoudGVh
bS1obS1uYW1lLWRldGFpbCB7IGZvbnQtd2VpZ2h0OiA0MDAgIWltcG9ydGFudDsgcGFkZGluZy1s
ZWZ0OiAxNnB4ICFpbXBvcnRhbnQ7IGZvbnQtc2l6ZTogdmFyKC0tZnMteHMpOyBjb2xvcjogdmFy
KC0tdGV4dC1zZWNvbmRhcnkpICFpbXBvcnRhbnQ7IH0KLnRlYW0taG0tY2VsbC1kZXRhaWwgeyBm
b250LXNpemU6IDhweDsgY29sb3I6IHZhcigtLXRleHQtbXV0ZWQpOyBiYWNrZ3JvdW5kOiB2YXIo
LS1iZy1jYXJkKTsgfQoudGVhbS1obS1jZWxsLWRldGFpbC1kaWVuc3QgeyBiYWNrZ3JvdW5kOiBy
Z2JhKDM5LCAxNzQsIDk2LCAwLjE1KTsgY29sb3I6IHZhcigtLXRleHQtaGVhZGluZyk7IGZvbnQt
d2VpZ2h0OiA2MDA7IH0KCi8qIEFtcGVsLUZhcmJlbiBmdWVyIGFsbGUgSGVhdG1hcC1aZWxsZW4g
Ki8KLnRlYW0taG0tY2VsbC50ZWFtLXIgICAgeyBiYWNrZ3JvdW5kOiAjQzAzOTJCOyBjb2xvcjog
I2ZmZjsgZm9udC13ZWlnaHQ6IDcwMDsgfQovKiAxIGRhID0gbmV1dHJhbCBzdGF0dCBnZWxiIChV
c2VyLUFlbmRlcnVuZyAyMDI2LTA1KSDigJQgYmV3dXNzdCBrZWluIEtvbnRyYXN0LAogICB1bSBH
b2xkIHVuZCAiMSBkYSIgdW50ZXJzY2hlaWRiYXIgenUgaGFsdGVuLiAqLwoudGVhbS1obS1jZWxs
LnRlYW0tbiAgICB7IGJhY2tncm91bmQ6IHZhcigtLWJnLWNhcmQpOyBjb2xvcjogdmFyKC0tdGV4
dC1oZWFkaW5nKTsgZm9udC13ZWlnaHQ6IDYwMDsgfQovKiBHcmF1ID0gbmllbWFuZCBpbSBEaWVu
c3QsIGFiZXIgbWluZC4gMSBQZXJzb24gbGVnaXRpbSBhYndlc2VuZAogICAoVXJsL2tyL0t1ci9M
ZWhyZ2FuZ+KApikuIEtlaW4gcm90ZXIgU3RhdHVzLCB3ZWlsIGRhcyBUZWFtIG5pY2h0IGhhZXR0
ZQogICBrb21wbGV0dCBiZXNldHp0IHNlaW4gbXVlc3Nlbi4gKi8KLnRlYW0taG0tY2VsbC50ZWFt
LWdyYXUgeyBiYWNrZ3JvdW5kOiB2YXIoLS1iZy1jYXJkLWFsdCk7IGNvbG9yOiB2YXIoLS10ZXh0
LW11dGVkKTsgfQoudGVhbS1obS1jZWxsLnRlYW0tZyAgICB7IGJhY2tncm91bmQ6ICMyN0FFNjA7
IGNvbG9yOiAjZmZmOyBmb250LXdlaWdodDogNzAwOyB9Ci50ZWFtLWhtLWNlbGwudGVhbS1nb2xk
IHsgYmFja2dyb3VuZDogI0Q0QUMwRDsgY29sb3I6ICNmZmY7IGZvbnQtd2VpZ2h0OiA3MDA7IH0K
Ci8qIEJhbGtlbi1TZWdtZW50IGZ1ZXIgZGVuIGdyYXVlbiBBbnRlaWwgKi8KLnRlYW0tYmFsa2Vu
LXNlZy50ZWFtLWdyYXUgeyBiYWNrZ3JvdW5kOiB2YXIoLS1iZy1jYXJkLWFsdCk7IGNvbG9yOiB2
YXIoLS10ZXh0LXNlY29uZGFyeSk7IH0KCi8qIFN1Yi1TZWt0aW9uIGluIGRlciBIZWF0bWFwOiBW
STMtREdMLVZlcmFudHdvcnR1bmcgTmViZW53YWNoZW4uICovCi50ZWFtLWhtLXN1Yi1oZWFkZXIg
dGggewogICAgdGV4dC1hbGlnbjogbGVmdCAhaW1wb3J0YW50OyBwYWRkaW5nOiA2cHggMTBweCAh
aW1wb3J0YW50OwogICAgZm9udC1zaXplOiB2YXIoLS1mcy1zbSk7IGZvbnQtd2VpZ2h0OiA3MDA7
IGNvbG9yOiB2YXIoLS10ZXh0LWhlYWRpbmcpOwogICAgYmFja2dyb3VuZDogdmFyKC0tYmctY2Fy
ZC1hbHQpOyBib3JkZXItdG9wOiAycHggc29saWQgdmFyKC0tdGV4dC1tdXRlZCkgIWltcG9ydGFu
dDsKICAgIHBvc2l0aW9uOiBzdGlja3k7IGxlZnQ6IDA7Cn0KLyogTmViZW53YWNoZW4tREdMLVpl
bGxlbjogb2huZSBBbXBlbCA9IGdyYXUgKGtlaW4gREdMLUVpbnNhdHopLCBtaXQgLnRlYW0tZwog
ICA9IGdydWVuICgxLi8yLiBWSTMtREdMIGRlcyBUYWdlcyBhdXMgZGllc2VtIFRlYW0gYmVzZXR6
dCkuICovCi50ZWFtLWhtLW53LWNlbGwgeyBiYWNrZ3JvdW5kOiB2YXIoLS1iZy1jYXJkLWFsdCk7
IH0KCi8qIEJhbGtlbmRpYWdyYW1tIFRhZ2VzLUFudGVpbGUgKi8KLnN0YXRzLXRlYW0tYmFsa2Vu
LWtvcGYgeyBkaXNwbGF5OiBmbGV4OyBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47IGFs
aWduLWl0ZW1zOiBjZW50ZXI7IG1hcmdpbjogMTJweCAwIDZweDsgcGFkZGluZy10b3A6IDEycHg7
IGJvcmRlci10b3A6IDFweCBzb2xpZCB2YXIoLS1ib3JkZXItbGlnaHQpOyB9Ci5zdGF0cy10ZWFt
LWJhbGtlbi1rb3BmIGg0IHsgZm9udC1zaXplOiB2YXIoLS1mcy1iYXNlKTsgZm9udC13ZWlnaHQ6
IDcwMDsgY29sb3I6IHZhcigtLXRleHQtaGVhZGluZyk7IG1hcmdpbjogMDsgfQouc3RhdHMtdGVh
bS1zb3J0LWdydXBwZSB7IGZsZXgtd3JhcDogd3JhcDsgfQouc3RhdHMtdGVhbS1iYWxrZW4geyBk
aXNwbGF5OiBmbGV4OyBmbGV4LWRpcmVjdGlvbjogY29sdW1uOyBnYXA6IDNweDsgfQoudGVhbS1i
YWxrZW4td3JhcCB7IGRpc3BsYXk6IGZsZXg7IGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47IGdhcDog
M3B4OyB9Ci50ZWFtLWJhbGtlbi16ZWlsZSB7IGRpc3BsYXk6IGdyaWQ7IGdyaWQtdGVtcGxhdGUt
Y29sdW1uczogMTMwcHggMWZyIDUwcHg7IGdhcDogOHB4OyBhbGlnbi1pdGVtczogY2VudGVyOyBm
b250LXNpemU6IHZhcigtLWZzLXNtKTsgfQoudGVhbS1iYWxrZW4tbmFtZSB7IGZvbnQtd2VpZ2h0
OiA2MDA7IGNvbG9yOiB2YXIoLS10ZXh0LWhlYWRpbmcpOyB3aGl0ZS1zcGFjZTogbm93cmFwOyBv
dmVyZmxvdzogaGlkZGVuOyB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsgfQoudGVhbS1iYWxrZW4t
YmFyLXdyYXAgeyBkaXNwbGF5OiBmbGV4OyBoZWlnaHQ6IDE4cHg7IGJhY2tncm91bmQ6IHZhcigt
LWJnLWNhcmQtYWx0KTsgYm9yZGVyLXJhZGl1czogdmFyKC0tcmFkaXVzLXhzKTsgb3ZlcmZsb3c6
IGhpZGRlbjsgfQoudGVhbS1iYWxrZW4tc2VnIHsKICAgIGRpc3BsYXk6IGZsZXg7IGFsaWduLWl0
ZW1zOiBjZW50ZXI7IGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgZm9udC1zaXplOiA5cHg7
IGNvbG9yOiAjZmZmOyBmb250LXdlaWdodDogNzAwOwogICAgdHJhbnNpdGlvbjogd2lkdGggMC40
cyBlYXNlOwogICAgLyogTWluZGVzdGJyZWl0ZSBOVVIgZnVlciBzaWNodGJhcmVuIEZhcmJiYWxr
ZW4g4oCUIGtlaW4gZmxleC1zaHJpbms6MAogICAgICAgKGRhcyBoYXR0ZSBkaWUgUHJvcG9ydGlv
bmVuIGFuZGVyZXIgU2VnbWVudGUgdmVyemVycnQsIHdlaWwgZ3Jvc3NlCiAgICAgICBTZWdtZW50
ZSBuaWNodCBtZWhyIHNjaHJ1bXBmZW4gZHVyZnRlbiwgdW0gZGVtIG1pbi13aWR0aCBQbGF0eiB6
dQogICAgICAgbWFjaGVuKS4gNHB4IHJlaWNodCBmdWVyIGVpbmVuIGVya2VubmJhcmVuIFN0cmlj
aCBhdWNoIGJlaSAwLjctMSAlLgogICAgICAgRGllIFphaGwgd2lyZCBpbiBzb2xjaCBzY2htYWxl
biBTZWdtZW50ZW4gTklDSFQgbWVociBlaW5nZXJlbmRlcnQKICAgICAgIChzaWVoZSBtaW5QY3Qt
TG9naWsgaW4gaGVscGRlc2suanMpLCBkZXIgVG9vbHRpcCBsaWVmZXJ0IGRlbiBXZXJ0CiAgICAg
ICBiZWltIEhvdmVyLiAqLwogICAgbWluLXdpZHRoOiA0cHg7Cn0KLnRlYW0tYmFsa2VuLXRvdGFs
IHsgdGV4dC1hbGlnbjogcmlnaHQ7IGZvbnQtd2VpZ2h0OiA3MDA7IGZvbnQtdmFyaWFudC1udW1l
cmljOiB0YWJ1bGFyLW51bXM7IGNvbG9yOiB2YXIoLS10ZXh0LXNlY29uZGFyeSk7IH0KCi8qIEFt
cGVsLUZhcmJlbiBhdWNoIGltIEJhbGtlbiAqLwoudGVhbS1iYWxrZW4tc2VnLnRlYW0tciAgICB7
IGJhY2tncm91bmQ6ICNDMDM5MkI7IH0KLyogdGVhbS1uICgxIFBlcnNvbiBpbSBEaWVuc3QpIGhh
dHRlIGRlbnNlbGJlbiBHcmF1LUJhY2tncm91bmQgd2llCiAgIHRlYW0tZ3JhdSAobGVnaXRpbSBh
Yndlc2VuZCkg4oCUIGJlaW0gU3RhcGVsbiBuaWNodCB1bnRlcnNjaGVpZGJhci4KICAgSmV0enQg
c2FuZnRlciBLaGFraS1Ub246IHZpc3VlbGwgZGV1dGxpY2ggIm5vY2ggaW4gZGVyIE5hZWhlIHZv
bgogICBncmF1IiwgYWJlciBhYmdyZW56YmFyLiAqLwoudGVhbS1iYWxrZW4tc2VnLnRlYW0tbiAg
ICB7IGJhY2tncm91bmQ6ICNENURCREI7IGNvbG9yOiAjMzQ0OTVFOyB9Ci50ZWFtLWJhbGtlbi1z
ZWcudGVhbS1nICAgIHsgYmFja2dyb3VuZDogIzI3QUU2MDsgfQoudGVhbS1iYWxrZW4tc2VnLnRl
YW0tZ29sZCB7IGJhY2tncm91bmQ6ICNENEFDMEQ7IH0KLyogRHVlbm5lIFRyZW5ubGluaWUgendp
c2NoZW4gYXVmZWluYW5kZXJmb2xnZW5kZW4gU2VnbWVudGVuIOKAlCBoaWxmdCwKICAgZGllIEdy
ZW56ZW4gYXVjaCB6d2lzY2hlbiBhZWhubGljaCBnZWZhZXJidGVuIEJsb2Vja2VuIChncmF1IC8K
ICAgbmV1dHJhbCwgZ3J1ZW4gLyBnb2xkKSBhdWYgZWluZW4gQmxpY2sgenUgc2VoZW4uIDEgcHgg
aW4gZGVyCiAgIEJvcmRlci1MaWdodC1GYXJiZSwgZmFlbGx0IGJlaSBrb250cmFzdHJlaWNoZW4g
V2VjaHNlbG4gKHJvdC9ncmF1LAogICBncnVlbi9nb2xkKSBvcHRpc2NoIGthdW0gYXVmLiAqLwou
dGVhbS1iYWxrZW4tc2VnICsgLnRlYW0tYmFsa2VuLXNlZyB7IGJvcmRlci1sZWZ0OiAxcHggc29s
aWQgdmFyKC0tYm9yZGVyLWNvbG9yKTsgfQoKLyogU29uZGVydGVybWluLURldGFpbC1Nb2RhbCAq
Lwouc29uZGVydGVybWluLWRldGFpbCB7IGRpc3BsYXk6IGZsZXg7IGZsZXgtZGlyZWN0aW9uOiBj
b2x1bW47IGdhcDogMTBweDsgfQouc29uZGVydGVybWluLWVpbnRyYWcgeyBwYWRkaW5nOiAxMHB4
IDEycHg7IGJvcmRlci1sZWZ0OiA0cHggc29saWQgdmFyKC0tYm9yZGVyLWNvbG9yKTsgYmFja2dy
b3VuZDogdmFyKC0tYmctY2FyZC1hbHQpOyBib3JkZXItcmFkaXVzOiB2YXIoLS1yYWRpdXMtc20p
OyB9Ci5zb25kZXJ0ZXJtaW4td2FybnVuZyB7IGJvcmRlci1sZWZ0LWNvbG9yOiAjQzAzOTJCOyB9
Ci5zb25kZXJ0ZXJtaW4taGlud2VpcyB7IGJvcmRlci1sZWZ0LWNvbG9yOiAjMjk4MEI5OyB9Ci5z
b25kZXJ0ZXJtaW4ta29wZiB7IGZvbnQtc2l6ZTogdmFyKC0tZnMtYmFzZSk7IGNvbG9yOiB2YXIo
LS10ZXh0LWhlYWRpbmcpOyBtYXJnaW4tYm90dG9tOiA0cHg7IH0KLnNvbmRlcnRlcm1pbi10ZXh0
IHsgZm9udC1zaXplOiB2YXIoLS1mcy1iYXNlKTsgY29sb3I6IHZhcigtLXRleHQtc2Vjb25kYXJ5
KTsgd2hpdGUtc3BhY2U6IHByZS13cmFwOyB9CgouYWJ3LWdyaWQgeyBkaXNwbGF5OiBncmlkOyBn
cmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdChhdXRvLWZpbGwsIG1pbm1heCgxMzBweCwgMWZy
KSk7IGdhcDogOHB4OyB9Ci5hYncta2FydGUgewogICAgYmFja2dyb3VuZDogdmFyKC0tYmctY2Fy
ZC1hbHQpOyBib3JkZXItcmFkaXVzOiA4cHg7IHBhZGRpbmc6IDEycHg7CiAgICB0ZXh0LWFsaWdu
OiBjZW50ZXI7IGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWJvcmRlci1saWdodCk7CiAgICB0cmFu
c2l0aW9uOiB0cmFuc2Zvcm0gMC4xNXMgZWFzZTsgY3Vyc29yOiBkZWZhdWx0Owp9Ci5hYncta2Fy
dGU6aG92ZXIgeyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTFweCk7IH0KLmFidy1rYXJ0ZS1pY29u
IHsgZm9udC1zaXplOiAyMHB4OyBtYXJnaW4tYm90dG9tOiA0cHg7IH0KLmFidy1rYXJ0ZS13ZXJ0
IHsgZm9udC1zaXplOiAyNHB4OyBmb250LXdlaWdodDogODAwOyBmb250LXZhcmlhbnQtbnVtZXJp
YzogdGFidWxhci1udW1zOyB9Ci5hYncta2FydGUtbGFiZWwgeyBmb250LXNpemU6IHZhcigtLWZz
LXhzKTsgY29sb3I6IHZhcigtLXRleHQtbXV0ZWQpOyBmb250LXdlaWdodDogNjAwOyB0ZXh0LXRy
YW5zZm9ybTogdXBwZXJjYXNlOyBtYXJnaW4tdG9wOiAycHg7IH0KLmFidy1rYXJ0ZS1kZXRhaWwg
eyBmb250LXNpemU6IHZhcigtLWZzLXhzKTsgY29sb3I6IHZhcigtLXRleHQtc2Vjb25kYXJ5KTsg
bWFyZ2luLXRvcDogNnB4OyBsaW5lLWhlaWdodDogMS40OyB9Ci5hYnctcGVyc29uZW4geyBmb250
LXNpemU6IHZhcigtLWZzLXNtKTsgY29sb3I6IHZhcigtLXRleHQtc2Vjb25kYXJ5KTsgbWFyZ2lu
LXRvcDogOHB4OyB0ZXh0LWFsaWduOiBsZWZ0OyBtYXgtaGVpZ2h0OiAwOyBvdmVyZmxvdzogaGlk
ZGVuOyB0cmFuc2l0aW9uOiBtYXgtaGVpZ2h0IDAuM3MgZWFzZTsgfQouYWJ3LWthcnRlLm9mZmVu
IC5hYnctcGVyc29uZW4geyBtYXgtaGVpZ2h0OiAzMDBweDsgfQoKLyogPT09PT0gV29jaGVucGxh
biA9PT09PSAqLwoud3AtbGF5b3V0IHsKICAgIGRpc3BsYXk6IGZsZXg7IGZsZXgtZGlyZWN0aW9u
OiBjb2x1bW47IGZsZXg6IDE7IG92ZXJmbG93OiBoaWRkZW47Cn0KLndwLXRvb2xiYXIgewogICAg
ZGlzcGxheTogZmxleDsgYWxpZ24taXRlbXM6IGNlbnRlcjsgZ2FwOiA2cHg7CiAgICBwYWRkaW5n
OiA4cHggMTZweDsKICAgIGJhY2tncm91bmQ6IHZhcigtLWJnLXRvb2xiYXIpOwogICAgYm9yZGVy
LWJvdHRvbTogMXB4IHNvbGlkIHZhcigtLWJvcmRlci1jb2xvcik7Cn0KLndwLXplaXRyYXVtLWFu
emVpZ2UgewogICAgZm9udC1zaXplOiB2YXIoLS1mcy1sZyk7IGZvbnQtd2VpZ2h0OiA3MDA7IGNv
bG9yOiB2YXIoLS10ZXh0LWhlYWRpbmcpOwogICAgbWFyZ2luLWxlZnQ6IDhweDsKfQoud3Atc2Ny
b2xsIHsKICAgIGZsZXg6IDE7IG92ZXJmbG93OiBhdXRvOyBwYWRkaW5nOiAxNnB4Owp9Ci8qIERp
ZSBhbHRlIHN0YXRpc2NoZSBXb2NoZW5wbGFuLTx0YWJsZT4gKC53cC10YWJlbGxlLy53cC10aC0q
Ly53cC10ZC10cmVubmVyKQogICB3dXJkZSBtaXQgZGVtIEF1ZGl0IDIwMjYtMDYtMTUgZW50ZmVy
bnQg4oCUIGRlciBSZW5kZXIgbGFldWZ0IHVlYmVyIGRhcwogICBUYWdibG9jay1MYXlvdXQgKC53
cC10YWdibG9jayovLndwLXRsLSopLiBEaWUgenVnZWhvZXJpZ2VuIFRhYmVsbGVuLVN0aWxlCiAg
IHNpbmQgaGllciBlcnNhdHpsb3MgZ2VzdHJpY2hlbi4gKC53cC1zY2hpY2h0LSogYmxlaWJ0IOKA
lCB3aXJkIHZvbSBUYWdibG9jawogICB3ZWl0ZXJ2ZXJ3ZW5kZXQuKSAqLwoKLndwLXNjaGljaHQt
ZnJ1ZWggeyBib3JkZXItbGVmdDogM3B4IHNvbGlkIHZhcigtLWZhcmJlLWZydWVoKTsgfQoud3At
c2NoaWNodC1zcGFldCB7IGJvcmRlci1sZWZ0OiAzcHggc29saWQgdmFyKC0tZmFyYmUtc3BhZXQp
OyB9Ci53cC1zY2hpY2h0LW5hY2h0IHsgYm9yZGVyLWxlZnQ6IDNweCBzb2xpZCB2YXIoLS1mYXJi
ZS1uYWNodCk7IH0KCi8qIFRhZ2VzLVNwYWx0ZTogV29jaGVudGFnICsgRGF0dW0gKyBNZXRhIChG
ZWllcnRhZywgU29uZGVydGFnLCBHZWJ1cnRzdGFnLCBTdMOkcmtlKSAqLwoud3AtdGQtdGFnIHsK
ICAgIGJhY2tncm91bmQ6IHZhcigtLWJnLWNhcmQtYWx0KTsKICAgIHZlcnRpY2FsLWFsaWduOiB0
b3AgIWltcG9ydGFudDsKICAgIHBhZGRpbmc6IDZweCAxMHB4ICFpbXBvcnRhbnQ7CiAgICBib3Jk
ZXItcmlnaHQ6IDJweCBzb2xpZCB2YXIoLS1ib3JkZXItc3Ryb25nKTsKfQoud3AtdGFnLWtvcGYg
eyBkaXNwbGF5OiBmbGV4OyBmbGV4LWRpcmVjdGlvbjogY29sdW1uOyBnYXA6IDNweDsgZm9udC1z
aXplOiB2YXIoLS1mcy1zbSk7IH0KLndwLXRhZy13dCB7IGZvbnQtd2VpZ2h0OiA3MDA7IGZvbnQt
c2l6ZTogdmFyKC0tZnMtbWQpOyBjb2xvcjogdmFyKC0tdGV4dC1oZWFkaW5nKTsgfQoud3AtdGFn
LWRhdHVtIHsgZm9udC13ZWlnaHQ6IDYwMDsgfQoud3AtdGFnLWZ0LW5hbWUgeyBjb2xvcjogdmFy
KC0tZmFyYmUtZmVobGVyKTsgZm9udC13ZWlnaHQ6IDYwMDsgZm9udC1zaXplOiB2YXIoLS1mcy14
cyk7IH0KLndwLXRhZy1mZXJpZW4tbmFtZSB7IGNvbG9yOiAjZTY3ZTIyOyBmb250LXdlaWdodDog
NjAwOyBmb250LXNpemU6IHZhcigtLWZzLXhzKTsgfQoud3AtdGFnLXNvbmRlci1oaW53ZWlzIHsg
Y29sb3I6ICM0YTkwZTI7IGZvbnQtc2l6ZTogdmFyKC0tZnMteHMpOyB9Ci53cC10YWctc29uZGVy
LXdhcm51bmcgeyBjb2xvcjogI2U2N2UyMjsgZm9udC1zaXplOiB2YXIoLS1mcy14cyk7IGZvbnQt
d2VpZ2h0OiA2MDA7IH0KLndwLXRhZy1nYiB7IGNvbG9yOiAjZDRhMDE3OyBmb250LXNpemU6IHZh
cigtLWZzLXhzKTsgfQoud3AtdGFnLW1ldGEgeyBkaXNwbGF5OiBmbGV4OyBnYXA6IDZweDsgYWxp
Z24taXRlbXM6IGNlbnRlcjsgbWFyZ2luLXRvcDogMnB4OyB9Ci53cC10YWctc3RhZXJrZSB7CiAg
ICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IHBhZGRpbmc6IDFweCA1cHg7IGJvcmRlci1yYWRpdXM6
IHZhcigtLXJhZGl1cy14cyk7CiAgICBmb250LWZhbWlseTogbW9ub3NwYWNlOyBmb250LXNpemU6
IHZhcigtLWZzLXhzKTsgZm9udC13ZWlnaHQ6IDcwMDsKICAgIGNvbG9yOiAjZmZmOwp9Ci53cC10
YWctc3RhZXJrZS1vayB7IGJhY2tncm91bmQ6IHZhcigtLWZhcmJlLWVyZm9sZyk7IH0KLndwLXRh
Zy1zdGFlcmtlLXdhcm4geyBiYWNrZ3JvdW5kOiB2YXIoLS1mYXJiZS1mZWhsZXIpOyBhbmltYXRp
b246IHB1bHNSb3QgMnMgZWFzZS1pbi1vdXQgaW5maW5pdGU7IH0KLndwLXRhZy1hYncgeyBmb250
LXNpemU6IHZhcigtLWZzLXhzKTsgY29sb3I6IHZhcigtLXRleHQtbXV0ZWQpOyBjdXJzb3I6IGhl
bHA7IH0KCi8qIFRhZ2VzLUJsb2NrIEhpbnRlcmdydW5kLVZhcmlhbnRlbiAqLwoud3AtdGFnLWhl
dXRlIC53cC10ZC10YWcgeyBiYWNrZ3JvdW5kOiB2YXIoLS10YWctaGV1dGUpOyBjb2xvcjogI2Zm
ZjsgfQoud3AtdGFnLWhldXRlIC53cC10ZC10YWcgLndwLXRhZy13dCwgLndwLXRhZy1oZXV0ZSAu
d3AtdGQtdGFnIC53cC10YWctZGF0dW0geyBjb2xvcjogI2ZmZjsgfQoud3AtdGFnLWZ0IC53cC10
ZC10YWcgeyBiYWNrZ3JvdW5kOiB2YXIoLS10YWctZmVpZXJ0YWcpOyBjb2xvcjogIzJDM0U1MDsg
fQoud3AtdGFnLXdlIC53cC10ZC10YWcgeyBiYWNrZ3JvdW5kOiB2YXIoLS10YWctd29jaGVuZW5k
ZSk7IGNvbG9yOiAjMkMzRTUwOyB9Ci53cC10YWctd2UgLndwLXRkLXRhZyAud3AtdGFnLXd0LCAu
d3AtdGFnLXdlIC53cC10ZC10YWcgLndwLXRhZy1kYXR1bSB7IGNvbG9yOiAjNEE2QThDOyB9Cltk
YXRhLXRoZW1lPSJuaWdodCJdIC53cC10YWctZnQgLndwLXRkLXRhZyB7IGNvbG9yOiAjRThFRUY1
OyB9CltkYXRhLXRoZW1lPSJuaWdodCJdIC53cC10YWctd2UgLndwLXRkLXRhZywKW2RhdGEtdGhl
bWU9Im5pZ2h0Il0gLndwLXRhZy13ZSAud3AtdGQtdGFnIC53cC10YWctd3QsCltkYXRhLXRoZW1l
PSJuaWdodCJdIC53cC10YWctd2UgLndwLXRkLXRhZyAud3AtdGFnLWRhdHVtIHsgY29sb3I6ICND
OUQ2RTQ7IH0KCi8qIExlaWNodGUgSGludGVyZ3J1bmQtRWluZsOkcmJ1bmcgaW4gTmFtZW5zemVs
bGVuIGFtIEZUL1dFICovCi53cC10YWctZnQgLndwLXRkLW5hbWUsIC53cC10YWctZnQgLndwLXRk
LWRuciB7IGJhY2tncm91bmQ6IHJnYmEoNjAsOTAsMTMwLDAuMDkpOyB9Ci53cC10YWctd2UgLndw
LXRkLW5hbWUsIC53cC10YWctd2UgLndwLXRkLWRuciB7IGJhY2tncm91bmQ6IHJnYmEoNjAsOTAs
MTMwLDAuMDUpOyB9Ci53cC10YWctaGV1dGUgLndwLXRkLW5hbWUsIC53cC10YWctaGV1dGUgLndw
LXRkLWRuciB7IGJhY2tncm91bmQ6IHJnYmEoMjEyLDE2MCwyMywwLjEwKTsgfQoKLyogVGFnZXNi
bG9jay1UcmVubmthbnRlICovCi53cC16ZWlsZS10YWctZW5kZSB0ZCB7IGJvcmRlci1ib3R0b206
IDJweCBzb2xpZCB2YXIoLS1ib3JkZXItc3Ryb25nKTsgfQoKLyogTmFtZW4tWmVsbGVuICovCi53
cC10ZC1uYW1lIHsgcGFkZGluZzogMnB4IDZweCAhaW1wb3J0YW50OyB0ZXh0LWFsaWduOiBjZW50
ZXI7IH0KLndwLW5hbWUgewogICAgZGlzcGxheTogaW5saW5lLWJsb2NrOwogICAgcGFkZGluZzog
MCA0cHg7CiAgICBmb250LXNpemU6IHZhcigtLWZzLXNtKTsKICAgIGZvbnQtd2VpZ2h0OiA1MDA7
CiAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwp9Ci53cC1uYW1lLXZlcmFudHcgewogICAgZm9udC13
ZWlnaHQ6IDcwMDsKICAgIGNvbG9yOiB2YXIoLS10ZXh0LWhlYWRpbmcpOwogICAgYm9yZGVyLWxl
ZnQ6IDJweCBzb2xpZCAjRDRBMDE3OwogICAgcGFkZGluZy1sZWZ0OiA1cHg7Cn0KLndwLW5hbWUt
ZmJwIHsgZm9udC1zdHlsZTogaXRhbGljOyB9Ci53cC1uYW1lLWZicCBzdXAgeyBjb2xvcjogI2Q0
YTAxNzsgZm9udC13ZWlnaHQ6IDcwMDsgbWFyZ2luLWxlZnQ6IDFweDsgfQovKiA9PT09PSBXb2No
ZW5wbGFuOiBUYWdlc2Jsw7Zja2UgKEJpbGRzY2hpcm0gKyBCYXNpcyBmw7xycyBEcnVja2VuKSA9
PT09PSAqLwoud3Atc2VpdGUgewogICAgYmFja2dyb3VuZDogdmFyKC0tYmctY2FyZCk7IHBhZGRp
bmc6IDE2cHggMThweDsKICAgIG1hcmdpbjogMTJweDsKICAgIGJveC1zaGFkb3c6IDAgMnB4IDEw
cHggcmdiYSgwLDAsMCwwLjA2KTsKICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLXJhZGl1cy1zbSk7
Cn0KLndwLXNlaXRlLWtvcGYgeyBtYXJnaW4tYm90dG9tOiAxMHB4OyBwYWRkaW5nLWJvdHRvbTog
OHB4OyBib3JkZXItYm90dG9tOiAycHggc29saWQgdmFyKC0tYmctcHJpbWFyeSk7IH0KLndwLXNl
aXRlLWtvcGYgaDEgewogICAgZm9udC1zaXplOiAxNXB4OyBmb250LXdlaWdodDogNzAwOyBjb2xv
cjogdmFyKC0tdGV4dC1oZWFkaW5nKTsKICAgIGxldHRlci1zcGFjaW5nOiAwLjNweDsgbWFyZ2lu
OiAwOwp9Ci53cC1zZWl0ZS1rb3BmIGgxIHN0cm9uZyB7IGNvbG9yOiB2YXIoLS1iZy1wcmltYXJ5
KTsgfQoKLndwLXRhZ2Jsb2NrIHsKICAgIGRpc3BsYXk6IGdyaWQ7CiAgICBncmlkLXRlbXBsYXRl
LWNvbHVtbnM6IDE0MHB4IDFmcjsKICAgIG1hcmdpbi1ib3R0b206IDRweDsKICAgIGJvcmRlcjog
MXB4IHNvbGlkIHZhcigtLWJnLXByaW1hcnkpOwogICAgYmFja2dyb3VuZDogI2ZmZjsKfQpbZGF0
YS10aGVtZT0ibmlnaHQiXSAud3AtdGFnYmxvY2sgeyBiYWNrZ3JvdW5kOiB2YXIoLS1iZy1jYXJk
KTsgYm9yZGVyLWNvbG9yOiAjM2E0ZDYwOyB9Cgoud3AtdGFnYmxvY2stbGFiZWwgewogICAgYmFj
a2dyb3VuZDogdmFyKC0tYmctcHJpbWFyeSk7IGNvbG9yOiAjZmZmOwogICAgZGlzcGxheTogZmxl
eDsgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsgYWxpZ24taXRlbXM6IHN0cmV0Y2g7IGp1c3RpZnkt
Y29udGVudDogZmxleC1zdGFydDsKICAgIHBhZGRpbmc6IDZweCA4cHg7IHRleHQtYWxpZ246IGxl
ZnQ7IGdhcDogMDsKfQoud3AtdGwta29wZiB7CiAgICBkaXNwbGF5OiBmbGV4OyBhbGlnbi1pdGVt
czogYmFzZWxpbmU7IGdhcDogNnB4OwogICAgcGFkZGluZy1ib3R0b206IDRweDsKICAgIGJvcmRl
ci1ib3R0b206IDFweCBzb2xpZCByZ2JhKDI1NSwyNTUsMjU1LDAuMik7Cn0KLndwLXRsLXd0IHsg
Zm9udC1zaXplOiB2YXIoLS1mcy1tZCk7IGZvbnQtd2VpZ2h0OiA3MDA7IGxldHRlci1zcGFjaW5n
OiAwLjVweDsgfQoud3AtdGwtZGF0dW0geyBmb250LXNpemU6IHZhcigtLWZzLXNtKTsgZm9udC1m
YW1pbHk6IG1vbm9zcGFjZTsgb3BhY2l0eTogMC45OyB9Ci53cC10bC16dXNhdHotYm94IHsKICAg
IGRpc3BsYXk6IGZsZXg7IGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47IGdhcDogM3B4OyBtYXJnaW4t
dG9wOiAxNHB4OyB3aWR0aDogMTAwJTsKfQoud3AtdGwtenVzYXR6IHsKICAgIGZvbnQtc2l6ZTog
dmFyKC0tZnMteHMpOyBwYWRkaW5nOiAycHggNXB4OyBib3JkZXItcmFkaXVzOiAycHg7CiAgICBi
YWNrZ3JvdW5kOiByZ2JhKDI1NSwyNTUsMjU1LDAuMTUpOyBsaW5lLWhlaWdodDogMS4zOwogICAg
d2hpdGUtc3BhY2U6IG5vd3JhcDsgb3ZlcmZsb3c6IGhpZGRlbjsgdGV4dC1vdmVyZmxvdzogZWxs
aXBzaXM7CiAgICB0ZXh0LWFsaWduOiBsZWZ0Owp9Ci53cC10bC16LWZ0IHsgYmFja2dyb3VuZDog
cmdiYSgyNTUsMjAwLDIwMCwwLjI1KTsgZm9udC13ZWlnaHQ6IDcwMDsgfQoud3AtdGwtei13YXJu
dW5nIHsgYmFja2dyb3VuZDogcmdiYSgyNTUsMTgwLDEwMCwwLjMpOyB9Ci53cC10bC16LWZlcmll
biB7IGJhY2tncm91bmQ6IHJnYmEoMjMwLDEyNiwzNCwwLjIwKTsgfQoud3AtdGwtei1oaW53ZWlz
IHsgYmFja2dyb3VuZDogcmdiYSg3NCwxNDQsMjI2LDAuMjApOyB9Ci53cC10bC16LWdiIHsgYmFj
a2dyb3VuZDogcmdiYSgyMTIsMTYwLDIzLDAuMjIpOyB9Cgoud3AtdGFnYmxvY2staW5oYWx0IHsg
cGFkZGluZzogMDsgfQoKLndwLXRhZ2Jsb2NrLXRhYmVsbGUgewogICAgd2lkdGg6IDEwMCU7IGJv
cmRlci1jb2xsYXBzZTogY29sbGFwc2U7IHRhYmxlLWxheW91dDogZml4ZWQ7CiAgICBmb250LXNp
emU6IHZhcigtLWZzLWJhc2UpOwp9Ci53cC10YWdibG9jay10YWJlbGxlIHRoLAoud3AtdGFnYmxv
Y2stdGFiZWxsZSB0ZCB7CiAgICBib3JkZXI6IDFweCBzb2xpZCAjYzhjZWQ0OwogICAgcGFkZGlu
ZzogM3B4IDZweDsKICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7CiAgICB0ZXh0LWFsaWduOiBs
ZWZ0Owp9CltkYXRhLXRoZW1lPSJuaWdodCJdIC53cC10YWdibG9jay10YWJlbGxlIHRoLApbZGF0
YS10aGVtZT0ibmlnaHQiXSAud3AtdGFnYmxvY2stdGFiZWxsZSB0ZCB7IGJvcmRlci1jb2xvcjog
IzNhNGQ2MDsgfQoKLndwLXRhZy1oMSB0aCB7CiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1iZy1wcmlt
YXJ5KTsgY29sb3I6ICNmZmY7CiAgICBmb250LXdlaWdodDogNzAwOyBmb250LXNpemU6IHZhcigt
LWZzLWJhc2UpOyB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICBwYWRkaW5nOiA0cHggNnB4OwogICAg
Ym9yZGVyOiAxcHggc29saWQgdmFyKC0tYmctcHJpbWFyeSk7Cn0KLndwLXRhZy1oMSB0aC53cC1o
MS1kZ2wgeyBib3JkZXItcmlnaHQ6IDJweCBzb2xpZCAjZmZmOyB9Cgoud3AtdGFnLWgyIHRoIHsK
ICAgIGJhY2tncm91bmQ6IHZhcigtLWJnLXByaW1hcnktZGFyayk7IGNvbG9yOiAjZmZmOwogICAg
Zm9udC13ZWlnaHQ6IDYwMDsgZm9udC1zaXplOiB2YXIoLS1mcy1zbSk7IHRleHQtYWxpZ246IGNl
bnRlcjsKICAgIHBhZGRpbmc6IDJweCA2cHg7CiAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1i
Zy1wcmltYXJ5KTsKICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7IGxldHRlci1zcGFjaW5n
OiAwLjNweDsKfQoKLndwLXRhZ2Jsb2NrLXRhYmVsbGUgdGQgewogICAgaGVpZ2h0OiAyMnB4OyBt
aW4taGVpZ2h0OiAyMnB4OwogICAgZm9udC1zaXplOiB2YXIoLS1mcy1zbSk7Cn0KLndwLXRhZ2Js
b2NrLXRhYmVsbGUgdGQud3Atc2NoaWNodC1mcnVlaCB7IGJhY2tncm91bmQ6IHJnYmEoMTgzLDI4
LDI4LDAuMDUpOyB9Ci53cC10YWdibG9jay10YWJlbGxlIHRkLndwLXNjaGljaHQtc3BhZXQgeyBi
YWNrZ3JvdW5kOiByZ2JhKDI2LDgyLDExOCwwLjA1KTsgfQoud3AtdGFnYmxvY2stdGFiZWxsZSB0
ZC53cC1zY2hpY2h0LW5hY2h0IHsgYmFja2dyb3VuZDogcmdiYSgyNyw5NCwzMiwwLjA1KTsgfQpb
ZGF0YS10aGVtZT0ibmlnaHQiXSAud3AtdGFnYmxvY2stdGFiZWxsZSB0ZC53cC1zY2hpY2h0LWZy
dWVoIHsgYmFja2dyb3VuZDogcmdiYSgxODMsMjgsMjgsMC4xMik7IH0KW2RhdGEtdGhlbWU9Im5p
Z2h0Il0gLndwLXRhZ2Jsb2NrLXRhYmVsbGUgdGQud3Atc2NoaWNodC1zcGFldCB7IGJhY2tncm91
bmQ6IHJnYmEoMjYsODIsMTE4LDAuMTUpOyB9CltkYXRhLXRoZW1lPSJuaWdodCJdIC53cC10YWdi
bG9jay10YWJlbGxlIHRkLndwLXNjaGljaHQtbmFjaHQgeyBiYWNrZ3JvdW5kOiByZ2JhKDI3LDk0
LDMyLDAuMTIpOyB9CgovKiBWZXJ0aWthbGUgVHJlbm51bmcgREdMIHwgV0RGL0ZCUCAqLwoud3At
dGFnYmxvY2stdGFiZWxsZSB0ZDpudGgtY2hpbGQoMyksCi53cC10YWdibG9jay10YWJlbGxlIC53
cC10YWctaDIgdGg6bnRoLWNoaWxkKDMpIHsgYm9yZGVyLXJpZ2h0OiAycHggc29saWQgdmFyKC0t
YmctcHJpbWFyeSk7IH0KCi53cC1uYW1lIHsgZm9udC1zaXplOiB2YXIoLS1mcy1zbSk7IHdoaXRl
LXNwYWNlOiBub3dyYXA7IG92ZXJmbG93OiBoaWRkZW47IHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lz
OyBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IG1heC13aWR0aDogMTAwJTsgfQoud3AtbmFtZS1mYnAg
eyBmb250LXN0eWxlOiBpdGFsaWM7IH0KLndwLW5hbWUtZmJwIHN1cCB7IGNvbG9yOiAjRDRBMDE3
OyBmb250LXdlaWdodDogNzAwOyBtYXJnaW4tbGVmdDogMXB4OyB9CgovKiBUYWctU3RhdHVzLUFr
emVudGUgKGRlemVudCkgKi8KLndwLXRhZ2Jsb2NrLWhldXRlIHsgb3V0bGluZTogMnB4IHNvbGlk
ICNENEEwMTc7IG91dGxpbmUtb2Zmc2V0OiAtMXB4OyB9Ci53cC10YWdibG9jay1mdCAud3AtdGFn
YmxvY2stbGFiZWwgeyBiYWNrZ3JvdW5kOiAjNEE2QThDOyB9Ci53cC10YWdibG9jay1mdC13aWNo
dGlnIC53cC10YWdibG9jay1sYWJlbCB7IGJhY2tncm91bmQ6ICMyQzNFNTA7IH0KLndwLXRhZ2Js
b2NrLXdlIC53cC10YWdibG9jay1sYWJlbCB7IGJhY2tncm91bmQ6ICM1MjgyQTY7IH0KLndwLXRh
Z2Jsb2NrLW5zIC53cC10YWdibG9jay1sYWJlbCB7IGJhY2tncm91bmQ6ICMxQTUyNzY7IH0KCi53
cC1zZWl0ZS1mdXNzIHsKICAgIG1hcmdpbi10b3A6IDEycHg7IHBhZGRpbmctdG9wOiAxMHB4Owog
ICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHZhcigtLWJvcmRlci1saWdodCk7CiAgICBkaXNwbGF5
OiBmbGV4OyBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47CiAgICBmb250LXNpemU6IHZh
cigtLWZzLXhzKTsgY29sb3I6IHZhcigtLXRleHQtbXV0ZWQpOwp9Ci53cC1mdXNzLW5vdGUgc3Vw
IHsgZm9udC13ZWlnaHQ6IDcwMDsgfQoKLyogPT09PT0gRHJ1Y2stTGF5b3V0IFdvY2hlbnBsYW4g
4oCUIDcgVGFnZSArIGplIGJpcyB6dSA4IFplaWxlbiBhdWYgRUlORVIgQTQtU2VpdGUgPT09PT0g
Ki8KQG1lZGlhIHByaW50IHsKICAgIEBwYWdlIHsgc2l6ZTogQTQgcG9ydHJhaXQ7IG1hcmdpbjog
N21tIDltbTsgfQoKICAgIC8qIEFsbGVzIGF1w59lciBkZW0gV29jaGVucGxhbiBrb21wbGV0dCBh
dXMgZGVtIExheW91dCBuZWhtZW4gKGRpc3BsYXk6bm9uZSwKICAgICAgIGRhbWl0IGRlciBCcm93
c2VyIGRlbiBJbmhhbHQga29ycmVrdCBwYWdpbmllcmVuIGthbm4g4oCUIHBvc2l0aW9uOmFic29s
dXRlCiAgICAgICBmw7xocnQgc29uc3QgenVtIEFic2NobmVpZGVuIG5hY2ggZGVyIGVyc3RlbiBT
ZWl0ZSkuICovCiAgICBib2R5LmRydWNrZW4td29jaGVucGxhbiAuYW5zaWNodDpub3QoI2Fuc2lj
aHQtd29jaGVucGxhbiksCiAgICBib2R5LmRydWNrZW4td29jaGVucGxhbiBoZWFkZXIsCiAgICBi
b2R5LmRydWNrZW4td29jaGVucGxhbiBuYXYsCiAgICBib2R5LmRydWNrZW4td29jaGVucGxhbiAu
dG9vbGJhciwKICAgIGJvZHkuZHJ1Y2tlbi13b2NoZW5wbGFuIC53cC10b29sYmFyLAogICAgYm9k
eS5kcnVja2VuLXdvY2hlbnBsYW4gLndwLWxlZ2VuZGUsCiAgICBib2R5LmRydWNrZW4td29jaGVu
cGxhbiAjd3AtZHJ1Y2tlbiwKICAgIGJvZHkuZHJ1Y2tlbi13b2NoZW5wbGFuICNtb2RhbC1vdmVy
bGF5LAogICAgYm9keS5kcnVja2VuLXdvY2hlbnBsYW4gI3RvYXN0LWNvbnRhaW5lciwKICAgIGJv
ZHkuZHJ1Y2tlbi13b2NoZW5wbGFuIC5oZWFkZXIsCiAgICBib2R5LmRydWNrZW4td29jaGVucGxh
biAuaGF1cHRuYXYsCiAgICBib2R5LmRydWNrZW4td29jaGVucGxhbiAuc2VpdGVubGVpc3RlIHsg
ZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9CgogICAgYm9keS5kcnVja2VuLXdvY2hlbnBsYW4g
eyBiYWNrZ3JvdW5kOiAjZmZmICFpbXBvcnRhbnQ7IH0KICAgIGJvZHkuZHJ1Y2tlbi13b2NoZW5w
bGFuICNhbnNpY2h0LXdvY2hlbnBsYW4gewogICAgICAgIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRh
bnQ7CiAgICAgICAgcGFkZGluZzogMCAhaW1wb3J0YW50OyBtYXJnaW46IDAgIWltcG9ydGFudDsg
YmFja2dyb3VuZDogI2ZmZiAhaW1wb3J0YW50OwogICAgfQogICAgYm9keS5kcnVja2VuLXdvY2hl
bnBsYW4gLndwLXNjcm9sbCwKICAgIGJvZHkuZHJ1Y2tlbi13b2NoZW5wbGFuIC53cC1sYXlvdXQg
ewogICAgICAgIG92ZXJmbG93OiB2aXNpYmxlICFpbXBvcnRhbnQ7IG1heC1oZWlnaHQ6IG5vbmUg
IWltcG9ydGFudDsgaGVpZ2h0OiBhdXRvICFpbXBvcnRhbnQ7CiAgICAgICAgcGFkZGluZzogMCAh
aW1wb3J0YW50OyBtYXJnaW46IDAgIWltcG9ydGFudDsgYmFja2dyb3VuZDogI2ZmZiAhaW1wb3J0
YW50OwogICAgICAgIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLyogU2Vp
dGVuLUdydW5kbGF5b3V0ICovCiAgICBib2R5LmRydWNrZW4td29jaGVucGxhbiAud3Atc2VpdGUg
ewogICAgICAgIGJhY2tncm91bmQ6ICNmZmYgIWltcG9ydGFudDsgYm94LXNoYWRvdzogbm9uZSAh
aW1wb3J0YW50OwogICAgICAgIG1hcmdpbjogMCAhaW1wb3J0YW50OyBwYWRkaW5nOiAwICFpbXBv
cnRhbnQ7CiAgICAgICAgbWF4LXdpZHRoOiBub25lICFpbXBvcnRhbnQ7IGJvcmRlci1yYWRpdXM6
IDAgIWltcG9ydGFudDsKICAgIH0KICAgIGJvZHkuZHJ1Y2tlbi13b2NoZW5wbGFuIC53cC1zZWl0
ZS1rb3BmIHsKICAgICAgICBtYXJnaW4tYm90dG9tOiAzcHg7IHBhZGRpbmctYm90dG9tOiAzcHg7
CiAgICAgICAgYm9yZGVyLWJvdHRvbTogMS41cHggc29saWQgdmFyKC0tYmctcHJpbWFyeSk7CiAg
ICB9CiAgICBib2R5LmRydWNrZW4td29jaGVucGxhbiAud3Atc2VpdGUta29wZiBoMSB7IGZvbnQt
c2l6ZTogMTFwdDsgbGluZS1oZWlnaHQ6IDEuMTsgfQoKICAgIC8qIEtlaW4gYmlsZHNjaGlybS1i
ZXpvZ2VuZXIgT3V0bGluZSBpbSBEcnVjayAqLwogICAgYm9keS5kcnVja2VuLXdvY2hlbnBsYW4g
LndwLXRhZ2Jsb2NrLWhldXRlIHsgb3V0bGluZTogbm9uZSAhaW1wb3J0YW50OyB9CgogICAgLyog
SmVkZXIgVGFnZXNibG9jazoga29tcGFrdCwgYmlzIHp1IDggWmVpbGVuIHBhc3NlbiAqLwogICAg
Ym9keS5kcnVja2VuLXdvY2hlbnBsYW4gLndwLXRhZ2Jsb2NrIHsKICAgICAgICBwYWdlLWJyZWFr
LWluc2lkZTogYXZvaWQgIWltcG9ydGFudDsgYnJlYWstaW5zaWRlOiBhdm9pZCAhaW1wb3J0YW50
OwogICAgICAgIG1hcmdpbi1ib3R0b206IDFweDsKICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVt
bnM6IDkwcHggMWZyICFpbXBvcnRhbnQ7CiAgICAgICAgYm9yZGVyLXdpZHRoOiAwLjVweDsKICAg
IH0KICAgIGJvZHkuZHJ1Y2tlbi13b2NoZW5wbGFuIC53cC10YWdibG9jay1sYWJlbCB7CiAgICAg
ICAgcGFkZGluZzogMnB4IDRweDsKICAgIH0KICAgIGJvZHkuZHJ1Y2tlbi13b2NoZW5wbGFuIC53
cC10bC1rb3BmIHsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93OyBhbGlnbi1pdGVtczogYmFz
ZWxpbmU7CiAgICAgICAgZ2FwOiA0cHg7IHBhZGRpbmctYm90dG9tOiAycHg7CiAgICAgICAgYm9y
ZGVyLWJvdHRvbTogMC41cHggc29saWQgcmdiYSgyNTUsMjU1LDI1NSwwLjMpOwogICAgfQogICAg
Ym9keS5kcnVja2VuLXdvY2hlbnBsYW4gLndwLXRsLXd0IHsgZm9udC1zaXplOiA5cHQ7IGZvbnQt
d2VpZ2h0OiA3MDA7IH0KICAgIGJvZHkuZHJ1Y2tlbi13b2NoZW5wbGFuIC53cC10bC1kYXR1bSB7
IGZvbnQtc2l6ZTogN3B0OyB9CiAgICBib2R5LmRydWNrZW4td29jaGVucGxhbiAud3AtdGwtenVz
YXR6LWJveCB7IG1hcmdpbi10b3A6IDZweDsgZ2FwOiAxLjVweDsgfQogICAgYm9keS5kcnVja2Vu
LXdvY2hlbnBsYW4gLndwLXRsLXp1c2F0eiB7IGZvbnQtc2l6ZTogNnB0OyBwYWRkaW5nOiAwIDJw
eDsgbGluZS1oZWlnaHQ6IDEuMjsgdGV4dC1hbGlnbjogbGVmdDsgfQoKICAgIC8qIFRhYmVsbGUg
4oCUIGtvbXBha3QgYWJlciBsZXNiYXIgKi8KICAgIGJvZHkuZHJ1Y2tlbi13b2NoZW5wbGFuIC53
cC10YWdibG9jay10YWJlbGxlIHsKICAgICAgICBmb250LXNpemU6IDdwdDsKICAgIH0KICAgIGJv
ZHkuZHJ1Y2tlbi13b2NoZW5wbGFuIC53cC10YWdibG9jay10YWJlbGxlIHRoLAogICAgYm9keS5k
cnVja2VuLXdvY2hlbnBsYW4gLndwLXRhZ2Jsb2NrLXRhYmVsbGUgdGQgewogICAgICAgIHBhZGRp
bmc6IDAgMS41bW0gIWltcG9ydGFudDsKICAgICAgICBib3JkZXItd2lkdGg6IDAuNXB4OwogICAg
ICAgIGxpbmUtaGVpZ2h0OiAxLjA1ICFpbXBvcnRhbnQ7CiAgICAgICAgYm94LXNpemluZzogYm9y
ZGVyLWJveDsKICAgIH0KICAgIGJvZHkuZHJ1Y2tlbi13b2NoZW5wbGFuIC53cC10YWctaDEgdGgg
eyBmb250LXNpemU6IDhwdDsgaGVpZ2h0OiAzLjVtbSAhaW1wb3J0YW50OyBwYWRkaW5nOiAwIDEu
NW1tICFpbXBvcnRhbnQ7IH0KICAgIGJvZHkuZHJ1Y2tlbi13b2NoZW5wbGFuIC53cC10YWctaDIg
dGggeyBmb250LXNpemU6IDYuOHB0OyBoZWlnaHQ6IDIuOW1tICFpbXBvcnRhbnQ7IHBhZGRpbmc6
IDAgMS41bW0gIWltcG9ydGFudDsgfQogICAgYm9keS5kcnVja2VuLXdvY2hlbnBsYW4gLndwLXRh
Z2Jsb2NrLXRhYmVsbGUgdGQgewogICAgICAgIGZvbnQtc2l6ZTogN3B0OyBoZWlnaHQ6IDMuM21t
ICFpbXBvcnRhbnQ7IG1pbi1oZWlnaHQ6IDMuM21tICFpbXBvcnRhbnQ7CiAgICAgICAgb3ZlcmZs
b3c6IGhpZGRlbjsKICAgIH0KICAgIGJvZHkuZHJ1Y2tlbi13b2NoZW5wbGFuIC53cC1uYW1lIHsg
Zm9udC1zaXplOiA3cHQ7IGxpbmUtaGVpZ2h0OiAxLjA1OyB9CgogICAgYm9keS5kcnVja2VuLXdv
Y2hlbnBsYW4gLndwLXNlaXRlLWZ1c3MgewogICAgICAgIG1hcmdpbi10b3A6IDRweDsgcGFkZGlu
Zy10b3A6IDNweDsKICAgICAgICBmb250LXNpemU6IDYuNXB0OwogICAgfQoKICAgIC8qIFF1ZXJm
b3JtYXQ6IG1laHIgUGxhdHosIGdyw7bDn2VyZSBTY2hyaWZ0ICovCiAgICBAbWVkaWEgKG9yaWVu
dGF0aW9uOiBsYW5kc2NhcGUpIHsKICAgICAgICBib2R5LmRydWNrZW4td29jaGVucGxhbiAud3At
dGFnYmxvY2sgewogICAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDEzMHB4IDFmciAh
aW1wb3J0YW50OwogICAgICAgIH0KICAgICAgICBib2R5LmRydWNrZW4td29jaGVucGxhbiAud3At
dGFnYmxvY2stdGFiZWxsZSB7IGZvbnQtc2l6ZTogOXB0OyB9CiAgICAgICAgYm9keS5kcnVja2Vu
LXdvY2hlbnBsYW4gLndwLXRhZ2Jsb2NrLXRhYmVsbGUgdGQgeyBmb250LXNpemU6IDlwdDsgfQog
ICAgICAgIGJvZHkuZHJ1Y2tlbi13b2NoZW5wbGFuIC53cC1uYW1lIHsgZm9udC1zaXplOiA5cHQ7
IH0KICAgICAgICBib2R5LmRydWNrZW4td29jaGVucGxhbiAud3AtdGwtd3QgeyBmb250LXNpemU6
IDExcHQ7IH0KICAgICAgICBib2R5LmRydWNrZW4td29jaGVucGxhbiAud3AtdGwtZGF0dW0geyBm
b250LXNpemU6IDlwdDsgfQogICAgICAgIGJvZHkuZHJ1Y2tlbi13b2NoZW5wbGFuIC53cC10bC16
dXNhdHogeyBmb250LXNpemU6IDdwdDsgcGFkZGluZzogMXB4IDNweDsgfQogICAgICAgIGJvZHku
ZHJ1Y2tlbi13b2NoZW5wbGFuIC53cC10bC16dXNhdHotYm94IHsgbWFyZ2luLXRvcDogOHB4OyBn
YXA6IDJweDsgfQogICAgICAgIGJvZHkuZHJ1Y2tlbi13b2NoZW5wbGFuIC53cC10YWctaDEgdGgg
eyBmb250LXNpemU6IDEwcHQ7IH0KICAgICAgICBib2R5LmRydWNrZW4td29jaGVucGxhbiAud3At
dGFnLWgyIHRoIHsgZm9udC1zaXplOiA4cHQ7IH0KICAgIH0KCiAgICAvKiBIaW50ZXJncnVuZC1G
YXJiZW4gaW0gRHJ1Y2sgZXJ6d2luZ2VuICovCiAgICBib2R5LmRydWNrZW4td29jaGVucGxhbiwK
ICAgIGJvZHkuZHJ1Y2tlbi13b2NoZW5wbGFuICogewogICAgICAgIC13ZWJraXQtcHJpbnQtY29s
b3ItYWRqdXN0OiBleGFjdCAhaW1wb3J0YW50OwogICAgICAgIHByaW50LWNvbG9yLWFkanVzdDog
ZXhhY3QgIWltcG9ydGFudDsKICAgICAgICBjb2xvci1hZGp1c3Q6IGV4YWN0ICFpbXBvcnRhbnQ7
CiAgICB9Cn0KCi8qID09PT09IERydWNrLUxheW91dCBQZXJzb2VubGljaGVyIFBsYW4g4oCUIGFs
bGUgMTIgTW9uYXRlIGF1ZiBlaW5lciBTZWl0ZSA9PT09PQogICBXaXIgYmVuYW5udGUgQHBhZ2Ut
UmVnZWwgKCdwcC1kcnVjaycpIHN0YXR0IG9yaWVudGF0aW9uLXNwZXppZmlzY2hlciBAcGFnZS0K
ICAgUmVnZWwgaW0gQG1lZGlhIHByaW50LUJsb2NrIOKAlCBzb25zdCBrb2xsaWRpZXJ0IHNpZSBt
aXQgZGVyIHBvcnRyYWl0LUBwYWdlCiAgIGRlcyBXb2NoZW5wbGFucyAoQnJvd3NlciBuaW1tdCBz
b25zdCBudXIgZWluZSkuIFBlciBgcGFnZTogcHAtZHJ1Y2s7YCBhbiBkZXIKICAgUGVyc3BsYW4t
V3VyemVsIHdpcmQgc2llIG51ciBmdWVyIGRpZXNlbiBEcnVjayBha3Rpdi4gKi8KQHBhZ2UgcHAt
ZHJ1Y2sgeyBzaXplOiBBNCBsYW5kc2NhcGU7IG1hcmdpbjogNm1tIDhtbTsgfQoKQG1lZGlhIHBy
aW50IHsKICAgIGJvZHkuZHJ1Y2tlbi1wZXJzcGxhbiB7IGJhY2tncm91bmQ6ICNmZmYgIWltcG9y
dGFudDsgfQoKICAgIC8qIEhlYWRlciwgVG9vbGJhciwgVGFicyB1bmQgYWxsZSBhbmRlcmVuIEFu
c2ljaHRlbiBhdXNibGVuZGVuICovCiAgICBib2R5LmRydWNrZW4tcGVyc3BsYW4gI2tvcGZsZWlz
dGUsCiAgICBib2R5LmRydWNrZW4tcGVyc3BsYW4gLmFuc2ljaHQ6bm90KCNhbnNpY2h0LXBlcnNw
bGFuKSwKICAgIGJvZHkuZHJ1Y2tlbi1wZXJzcGxhbiAucHAtdG9vbGJhciwKICAgIGJvZHkuZHJ1
Y2tlbi1wZXJzcGxhbiAjcHAtZHJ1Y2tlbiwKICAgIGJvZHkuZHJ1Y2tlbi1wZXJzcGxhbiAjbW9k
YWwtb3ZlcmxheSwKICAgIGJvZHkuZHJ1Y2tlbi1wZXJzcGxhbiAjdG9hc3QtY29udGFpbmVyIHsg
ZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9CgogICAgYm9keS5kcnVja2VuLXBlcnNwbGFuICNh
bnNpY2h0LXBlcnNwbGFuIHsKICAgICAgICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50OwogICAg
ICAgIGhlaWdodDogYXV0byAhaW1wb3J0YW50OwogICAgICAgIG92ZXJmbG93OiB2aXNpYmxlICFp
bXBvcnRhbnQ7CiAgICAgICAgYmFja2dyb3VuZDogI2ZmZiAhaW1wb3J0YW50OwogICAgICAgIHBh
ZGRpbmc6IDAgIWltcG9ydGFudDsgbWFyZ2luOiAwICFpbXBvcnRhbnQ7CiAgICAgICAgcGFnZTog
cHAtZHJ1Y2s7CiAgICB9CiAgICBib2R5LmRydWNrZW4tcGVyc3BsYW4gLnBwLXNjcm9sbCB7CiAg
ICAgICAgb3ZlcmZsb3c6IHZpc2libGUgIWltcG9ydGFudDsKICAgICAgICBwYWRkaW5nOiAwICFp
bXBvcnRhbnQ7IG1hcmdpbjogMCAhaW1wb3J0YW50OwogICAgICAgIGhlaWdodDogYXV0byAhaW1w
b3J0YW50OwogICAgICAgIGJhY2tncm91bmQ6ICNmZmYgIWltcG9ydGFudDsKICAgIH0KICAgIGJv
ZHkuZHJ1Y2tlbi1wZXJzcGxhbiAucHAtdGl0ZWwgewogICAgICAgIGZvbnQtc2l6ZTogMTJwdDsK
ICAgICAgICBtYXJnaW46IDAgMCAzbW0gMDsKICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAg
ICAgICAgcGFnZS1icmVhay1hZnRlcjogYXZvaWQ7CiAgICB9CgogICAgLyogMTIgTW9uYXRlIGFs
cyA0LVNwYWx0ZW4tR3JpZCAoNCB4IDMgPSAxMikgKi8KICAgIGJvZHkuZHJ1Y2tlbi1wZXJzcGxh
biAucHAtbW9uYXRlIHsKICAgICAgICBkaXNwbGF5OiBncmlkICFpbXBvcnRhbnQ7CiAgICAgICAg
Z3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoNCwgMWZyKSAhaW1wb3J0YW50OwogICAgICAg
IGdhcDogM21tICFpbXBvcnRhbnQ7CiAgICB9CiAgICAvKiBCdWZmZXItTW9uYXQgKG09MTIgLT4g
SmFudWFyIEZvbGdlamFocikgYXVzYmxlbmRlbiwgc29kYXNzIG51ciAxMiBNb25hdGUgZ2VkcnVj
a3Qgd2VyZGVuICovCiAgICBib2R5LmRydWNrZW4tcGVyc3BsYW4gLnBwLW1vbmF0Om50aC1jaGls
ZCgxMykgeyBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH0KCiAgICBib2R5LmRydWNrZW4tcGVy
c3BsYW4gLnBwLW1vbmF0IHsKICAgICAgICB3aWR0aDogYXV0byAhaW1wb3J0YW50OwogICAgICAg
IGJveC1zaGFkb3c6IG5vbmUgIWltcG9ydGFudDsKICAgICAgICBib3JkZXItd2lkdGg6IDFweCAh
aW1wb3J0YW50OwogICAgICAgIHBhZ2UtYnJlYWstaW5zaWRlOiBhdm9pZCAhaW1wb3J0YW50Owog
ICAgICAgIGJyZWFrLWluc2lkZTogYXZvaWQgIWltcG9ydGFudDsKICAgIH0KICAgIGJvZHkuZHJ1
Y2tlbi1wZXJzcGxhbiAucHAtbW9uYXQta29wZiB7CiAgICAgICAgZm9udC1zaXplOiA5cHQ7CiAg
ICAgICAgcGFkZGluZzogMnB4IDRweDsKICAgICAgICBsZXR0ZXItc3BhY2luZzogMC4ycHg7CiAg
ICB9CiAgICBib2R5LmRydWNrZW4tcGVyc3BsYW4gLnBwLW1vbmF0LWdyaWQgeyBmb250LXNpemU6
IDcuNXB0OyB9CiAgICBib2R5LmRydWNrZW4tcGVyc3BsYW4gLnBwLXd0LWtvcGYgewogICAgICAg
IGZvbnQtc2l6ZTogNi41cHQ7CiAgICAgICAgcGFkZGluZzogMXB4IDA7CiAgICAgICAgYm9yZGVy
LWJvdHRvbS13aWR0aDogMXB4ICFpbXBvcnRhbnQ7CiAgICB9CiAgICBib2R5LmRydWNrZW4tcGVy
c3BsYW4gLnBwLXRhZyB7CiAgICAgICAgZm9udC1zaXplOiA3cHQ7CiAgICAgICAgcGFkZGluZzog
MDsKICAgICAgICBtaW4taGVpZ2h0OiAxNHB4OwogICAgfQogICAgYm9keS5kcnVja2VuLXBlcnNw
bGFuIC5wcC10YWctbnIgeyBmb250LXNpemU6IDYuNXB0OyB9CiAgICBib2R5LmRydWNrZW4tcGVy
c3BsYW4gLnBwLXRhZy13ZXJ0IHsgZm9udC1zaXplOiA2LjVwdDsgcGFkZGluZzogMCAxcHg7IH0K
CiAgICAvKiBadXNhbW1lbmZhc3N1bmcga29tcGFrdCB1bnRlciBkZW4gTW9uYXRlbiAqLwogICAg
Ym9keS5kcnVja2VuLXBlcnNwbGFuIC5wcC1zdW1tYXJ5IHsKICAgICAgICBtYXJnaW4tdG9wOiAz
bW0gIWltcG9ydGFudDsKICAgICAgICBwYWRkaW5nOiA0cHggOHB4ICFpbXBvcnRhbnQ7CiAgICAg
ICAgcGFnZS1icmVhay1pbnNpZGU6IGF2b2lkICFpbXBvcnRhbnQ7CiAgICB9CiAgICBib2R5LmRy
dWNrZW4tcGVyc3BsYW4gLnBwLXN1bW1hcnkgaDMgeyBmb250LXNpemU6IDEwcHQ7IG1hcmdpbjog
MCAwIDJtbSAwOyB9CiAgICBib2R5LmRydWNrZW4tcGVyc3BsYW4gLnBwLXN1bW1hcnktZ3JpZCB7
CiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoNywgMWZyKSAhaW1wb3J0YW50
OwogICAgICAgIGdhcDogNHB4ICFpbXBvcnRhbnQ7CiAgICB9CiAgICBib2R5LmRydWNrZW4tcGVy
c3BsYW4gLnBwLXN0YXQtaXRlbSB7IHBhZGRpbmc6IDJweCA0cHggIWltcG9ydGFudDsgfQogICAg
Ym9keS5kcnVja2VuLXBlcnNwbGFuIC5wcC1zdGF0LXphaGwgeyBmb250LXNpemU6IDExcHQgIWlt
cG9ydGFudDsgfQogICAgYm9keS5kcnVja2VuLXBlcnNwbGFuIC5wcC1zdGF0LWxhYmVsIHsgZm9u
dC1zaXplOiA3cHQgIWltcG9ydGFudDsgfQoKICAgIC8qIEhpbnRlcmdydW5kLUZhcmJlbiAoV29j
aGVuZW5kZSwgRmVpZXJ0YWcsIFNjaGljaHRjb2RlcykgZXJ6d2luZ2VuICovCiAgICBib2R5LmRy
dWNrZW4tcGVyc3BsYW4sCiAgICBib2R5LmRydWNrZW4tcGVyc3BsYW4gKiB7CiAgICAgICAgLXdl
YmtpdC1wcmludC1jb2xvci1hZGp1c3Q6IGV4YWN0ICFpbXBvcnRhbnQ7CiAgICAgICAgcHJpbnQt
Y29sb3ItYWRqdXN0OiBleGFjdCAhaW1wb3J0YW50OwogICAgICAgIGNvbG9yLWFkanVzdDogZXhh
Y3QgIWltcG9ydGFudDsKICAgIH0KfQoKLyogRGllbnN0bnVtbWVyLVplbGxlbiAoZ2VsYiBoaW50
ZXJsZWd0KSAqLwoud3AtdGQtZG5yIHsKICAgIGJhY2tncm91bmQ6IHJnYmEoMjQwLDIxOCw4MCww
LjEyKTsKICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgIGZvbnQtZmFtaWx5OiBtb25vc3BhY2U7
CiAgICBmb250LXNpemU6IHZhcigtLWZzLXhzKTsKICAgIGNvbG9yOiB2YXIoLS10ZXh0LXNlY29u
ZGFyeSk7Cn0KW2RhdGEtdGhlbWU9Im5pZ2h0Il0gLndwLXRkLWRuciB7IGJhY2tncm91bmQ6IHJn
YmEoMTg0LDE2MCwzMiwwLjEwKTsgfQoKLyogRnXDn3plaWxlICovCi53cC1mdXNzemVpbGUgdGQg
ewogICAgYmFja2dyb3VuZDogdmFyKC0tYmctY2FyZC1hbHQpOwogICAgYm9yZGVyLXRvcDogMnB4
IHNvbGlkIHZhcigtLWJvcmRlci1zdHJvbmcpOwogICAgcGFkZGluZzogNnB4IDEwcHggIWltcG9y
dGFudDsKICAgIGZvbnQtc2l6ZTogdmFyKC0tZnMteHMpOwogICAgY29sb3I6IHZhcigtLXRleHQt
bXV0ZWQpOwp9Ci53cC1mdXNzemVpbGUgdGQgPiBzcGFuIHsgZGlzcGxheTogaW5saW5lLWJsb2Nr
OyB9Ci53cC1mdXNzLWRydWNrIHsgZmxvYXQ6IHJpZ2h0OyBjb2xvcjogdmFyKC0tdGV4dC1zZWNv
bmRhcnkpOyBmb250LXdlaWdodDogNjAwOyB9Ci53cC1mdXNzLW5vdGUgc3VwIHsgY29sb3I6ICNk
NGEwMTc7IGZvbnQtd2VpZ2h0OiA3MDA7IH0KCi8qIEZlaWVydGFnIOKAnndpY2h0aWciIGltIEFk
bWluLVRhYiAqLwp0ci5mZWllcnRhZy13aWNodGlnIHRkIHsgYmFja2dyb3VuZDogcmdiYSgxOTIs
MCwwLDAuMDYpOyB9CgovKiBGaWx0ZXItTGVpc3RlIG9iZXJoYWxiIGRlciBGZWllcnRhZy1UYWJl
bGxlICovCi5mZWllcnRhZ2UtZmlsdGVyIHsKICAgIGRpc3BsYXk6IGZsZXg7CiAgICBnYXA6IDE2
cHg7CiAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgZmxleC13cmFwOiB3cmFwOwogICAgcGFk
ZGluZzogOHB4IDEycHg7CiAgICBtYXJnaW46IDhweCAwOwogICAgYmFja2dyb3VuZDogdmFyKC0t
YmctY2FyZC1hbHQpOwogICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYm9yZGVyLWxpZ2h0KTsK
ICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLXJhZGl1cy1tZCk7CiAgICBmb250LXNpemU6IHZhcigt
LWZzLWJhc2UpOwp9Ci5mZWllcnRhZ2UtZmlsdGVyIGxhYmVsIHsgZGlzcGxheTogaW5saW5lLWZs
ZXg7IGFsaWduLWl0ZW1zOiBjZW50ZXI7IGdhcDogNnB4OyBjb2xvcjogdmFyKC0tdGV4dC1zZWNv
bmRhcnkpOyB9Ci5mZWllcnRhZ2UtZmlsdGVyIHNlbGVjdCB7IHBhZGRpbmc6IDNweCA2cHg7IGZv
bnQtc2l6ZTogdmFyKC0tZnMtYmFzZSk7IGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWJvcmRlci1j
b2xvcik7IGJvcmRlci1yYWRpdXM6IHZhcigtLXJhZGl1cy1zbSk7IGJhY2tncm91bmQ6IHZhcigt
LWJnLWlucHV0KTsgY29sb3I6IHZhcigtLXRleHQtcHJpbWFyeSk7IH0KCi8qIEZpbHRlci1Bbndl
bmR1bmc6IGJlaSBha3RpdmVtIEZpbHRlciBhbGxlIG5pY2h0IHBhc3NlbmRlbiBaZWlsZW4gYXVz
YmxlbmRlbi4KICAgRmlsdGVyLUtsYXNzZW4gd2VyZGVuIHZvbSBKUyBhbSB0Ym9keSBnZXNldHp0
LiAqLwojZmVpZXJ0YWdlLXRib2R5LmZpbHRlci1rYXQtZ2VzZXR6bGljaCAgdHI6bm90KC5mZWll
cnRhZy1yb3cta2F0LWdlc2V0emxpY2gpICB7IGRpc3BsYXk6IG5vbmU7IH0KI2ZlaWVydGFnZS10
Ym9keS5maWx0ZXIta2F0LWp1ZWRpc2NoICAgIHRyOm5vdCguZmVpZXJ0YWctcm93LWthdC1qdWVk
aXNjaCkgICAgeyBkaXNwbGF5OiBub25lOyB9CiNmZWllcnRhZ2UtdGJvZHkuZmlsdGVyLWthdC1t
dXNsaW1pc2NoICB0cjpub3QoLmZlaWVydGFnLXJvdy1rYXQtbXVzbGltaXNjaCkgIHsgZGlzcGxh
eTogbm9uZTsgfQojZmVpZXJ0YWdlLXRib2R5LmZpbHRlci1rYXQtdHVlcmtpc2NoICAgdHI6bm90
KC5mZWllcnRhZy1yb3cta2F0LXR1ZXJraXNjaCkgICB7IGRpc3BsYXk6IG5vbmU7IH0KI2ZlaWVy
dGFnZS10Ym9keS5maWx0ZXItamFoci0yMDI2ICB0cjpub3QoLmZlaWVydGFnLXJvdy1qYWhyLTIw
MjYpICB7IGRpc3BsYXk6IG5vbmU7IH0KI2ZlaWVydGFnZS10Ym9keS5maWx0ZXItamFoci0yMDI3
ICB0cjpub3QoLmZlaWVydGFnLXJvdy1qYWhyLTIwMjcpICB7IGRpc3BsYXk6IG5vbmU7IH0KI2Zl
aWVydGFnZS10Ym9keS5maWx0ZXItamFoci0yMDI4ICB0cjpub3QoLmZlaWVydGFnLXJvdy1qYWhy
LTIwMjgpICB7IGRpc3BsYXk6IG5vbmU7IH0KI2ZlaWVydGFnZS10Ym9keS5maWx0ZXItamFoci0y
MDI5ICB0cjpub3QoLmZlaWVydGFnLXJvdy1qYWhyLTIwMjkpICB7IGRpc3BsYXk6IG5vbmU7IH0K
I2ZlaWVydGFnZS10Ym9keS5maWx0ZXItamFoci0yMDMwICB0cjpub3QoLmZlaWVydGFnLXJvdy1q
YWhyLTIwMzApICB7IGRpc3BsYXk6IG5vbmU7IH0KI2ZlaWVydGFnZS10Ym9keS5maWx0ZXItamFo
ci0yMDMxICB0cjpub3QoLmZlaWVydGFnLXJvdy1qYWhyLTIwMzEpICB7IGRpc3BsYXk6IG5vbmU7
IH0KI2ZlaWVydGFnZS10Ym9keS5maWx0ZXItamFoci0yMDMyICB0cjpub3QoLmZlaWVydGFnLXJv
dy1qYWhyLTIwMzIpICB7IGRpc3BsYXk6IG5vbmU7IH0KI2ZlaWVydGFnZS10Ym9keS5maWx0ZXIt
amFoci0yMDMzICB0cjpub3QoLmZlaWVydGFnLXJvdy1qYWhyLTIwMzMpICB7IGRpc3BsYXk6IG5v
bmU7IH0KI2ZlaWVydGFnZS10Ym9keS5maWx0ZXItamFoci0yMDM0ICB0cjpub3QoLmZlaWVydGFn
LXJvdy1qYWhyLTIwMzQpICB7IGRpc3BsYXk6IG5vbmU7IH0KI2ZlaWVydGFnZS10Ym9keS5maWx0
ZXItamFoci0yMDM1ICB0cjpub3QoLmZlaWVydGFnLXJvdy1qYWhyLTIwMzUpICB7IGRpc3BsYXk6
IG5vbmU7IH0KI2ZlaWVydGFnZS10Ym9keS5maWx0ZXItbnVyLWFrdGl2ICB0ci5mZWllcnRhZy1y
b3ctaW5ha3RpdiAgICAgICAgICB7IGRpc3BsYXk6IG5vbmU7IH0KCi8qIERlemVudGUgVMO2bnVu
ZyBwcm8gS2F0ZWdvcmllIGluIGRlciBUYWJlbGxlLCBkYW1pdCBtYW4gdmlzdWVsbCB6dW9yZG5l
biBrYW5uICovCnRyLmZlaWVydGFnLXJvdy1rYXQtanVlZGlzY2ggICAgdGQgeyBib3gtc2hhZG93
OiBpbnNldCAzcHggMCAwICM2RTRGQTA7IH0KdHIuZmVpZXJ0YWctcm93LWthdC1tdXNsaW1pc2No
ICB0ZCB7IGJveC1zaGFkb3c6IGluc2V0IDNweCAwIDAgIzFCN0M2NjsgfQp0ci5mZWllcnRhZy1y
b3cta2F0LXR1ZXJraXNjaCAgIHRkIHsgYm94LXNoYWRvdzogaW5zZXQgM3B4IDAgMCAjQzcyMTIw
OyB9CnRyLmZlaWVydGFnLXJvdy1rYXQtZ2VzZXR6bGljaCAgdGQgeyBib3gtc2hhZG93OiBpbnNl
dCAzcHggMCAwICM0QTZBOEM7IH0KdHIuZmVpZXJ0YWctcm93LWluYWt0aXYgdGQgeyBvcGFjaXR5
OiAwLjU1OyB9CgovKiBJbmZvLUthcnRlbiBpbSBJbmZvcm1hdGlvbnNmZW5zdGVyICovCi5pbmZv
LWthcnRlIHsKICAgIHBhZGRpbmc6IDEycHggMTZweDsKICAgIGJvcmRlci1yYWRpdXM6IHZhcigt
LXJhZGl1cy1tZCk7CiAgICBtYXJnaW4tYm90dG9tOiAxMHB4OwogICAgYmFja2dyb3VuZDogdmFy
KC0tYmctY2FyZC1hbHQpOwogICAgYm9yZGVyLWxlZnQ6IDRweCBzb2xpZCB2YXIoLS10ZXh0LWhl
YWRpbmcpOwogICAgZm9udC1zaXplOiB2YXIoLS1mcy1tZCk7CiAgICBsaW5lLWhlaWdodDogMS41
Owp9Ci5pbmZvLWthcnRlLXN1cHBvcnQgeyBib3JkZXItbGVmdC1jb2xvcjogIzJkOWQ3ODsgfQou
aW5mby1rYXJ0ZS13YXJuIHsgYm9yZGVyLWxlZnQtY29sb3I6ICNlNjdlMjI7IGJhY2tncm91bmQ6
IHJnYmEoMjMwLDEyNiwzNCwwLjA4KTsgfQouaW5mby1rYXJ0ZS1pbmZvIHsgYm9yZGVyLWxlZnQt
Y29sb3I6ICM0YTkwZTI7IH0KCi8qIE1haWwtQnV0dG9uIGhpbnRlciBlaW5lbSBBbnNwcmVjaHBh
cnRuZXIgaW0gSW5mby1GZW5zdGVyLgogICBEZXplbnRlIFBpbGxlIG1pdCBBa3plbnQtQm9yZGVy
OyBvZWZmbmV0IE91dGxvb2sgKG1haWx0bzopLiAqLwouaW5mby1hcC1tYWlsYnRuIHsKICAgIGRp
c3BsYXk6IGlubGluZS1ibG9jazsKICAgIG1hcmdpbi1sZWZ0OiA2cHg7CiAgICBwYWRkaW5nOiAx
cHggOHB4OwogICAgZm9udC1zaXplOiB2YXIoLS1mcy1zbSk7CiAgICBmb250LXdlaWdodDogNjAw
OwogICAgY29sb3I6IHZhcigtLWZhcmJlLWFremVudCk7CiAgICBiYWNrZ3JvdW5kOiByZ2JhKDc0
LDE0NCwyMjYsMC4xMCk7CiAgICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDc0LDE0NCwyMjYsMC4z
NSk7CiAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1yYWRpdXMtbGcpOwogICAgdGV4dC1kZWNvcmF0
aW9uOiBub25lOwogICAgbGluZS1oZWlnaHQ6IDEuNTsKICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7
CiAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDAuMTJzLCBib3JkZXItY29sb3IgMC4xMnMsIGNv
bG9yIDAuMTJzOwp9Ci5pbmZvLWFwLW1haWxidG46aG92ZXIgewogICAgYmFja2dyb3VuZDogdmFy
KC0tZmFyYmUtYWt6ZW50KTsKICAgIGNvbG9yOiAjZmZmOwogICAgYm9yZGVyLWNvbG9yOiB2YXIo
LS1mYXJiZS1ha3plbnQpOwp9Ci5pbmZvLWFwLWtlaW5tYWlsIHsKICAgIGRpc3BsYXk6IGlubGlu
ZS1ibG9jazsKICAgIG1hcmdpbi1sZWZ0OiA2cHg7CiAgICBmb250LXNpemU6IHZhcigtLWZzLXNt
KTsKICAgIGNvbG9yOiB2YXIoLS10ZXh0LW11dGVkKTsKICAgIGZvbnQtc3R5bGU6IGl0YWxpYzsK
fQoKLyogRWluc3RlbGx1bmdlbi1UYWIgKi8KLmVpbnN0ZWxsdW5nZW4tZm9ybSB7IG1heC13aWR0
aDogNzIwcHg7IH0KLmVpbnN0ZWxsdW5nZW4tZm9ybSAuZm9ybS1ncnVwcGUgeyBtYXJnaW4tYm90
dG9tOiAxNnB4OyB9Ci5laW5zdGVsbHVuZ2VuLWZvcm0gbGFiZWwgeyBkaXNwbGF5OiBibG9jazsg
Zm9udC13ZWlnaHQ6IDYwMDsgbWFyZ2luLWJvdHRvbTogNHB4OyBjb2xvcjogdmFyKC0tdGV4dC1o
ZWFkaW5nKTsgZm9udC1zaXplOiB2YXIoLS1mcy1tZCk7IH0KLmVpbnN0ZWxsdW5nZW4tZm9ybSB0
ZXh0YXJlYSB7IGZvbnQtZmFtaWx5OiBpbmhlcml0OyByZXNpemU6IHZlcnRpY2FsOyB9CgovKiBM
ZWdlbmRlICovCi53cC1sZWdlbmRlIHsKICAgIGRpc3BsYXk6IGZsZXg7IGdhcDogMjBweDsgcGFk
ZGluZzogOHB4IDE2cHg7CiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1iZy10b29sYmFyKTsgYm9yZGVy
LXRvcDogMXB4IHNvbGlkIHZhcigtLWJvcmRlci1jb2xvcik7CiAgICBmb250LXNpemU6IHZhcigt
LWZzLXNtKTsgY29sb3I6IHZhcigtLXRleHQtc2Vjb25kYXJ5KTsKfQoud3AtbGVnLWl0ZW0geyBk
aXNwbGF5OiBmbGV4OyBhbGlnbi1pdGVtczogY2VudGVyOyBnYXA6IDVweDsgfQoud3AtbGVnLWRv
dCB7CiAgICB3aWR0aDogMTBweDsgaGVpZ2h0OiAxMHB4OyBib3JkZXItcmFkaXVzOiAycHg7IGRp
c3BsYXk6IGlubGluZS1ibG9jazsKfQoKLyogPT09PT0gUGVyc8O2bmxpY2hlciBQbGFuID09PT09
ICovCi5wcC1sYXlvdXQgewogICAgZGlzcGxheTogZmxleDsgZmxleC1kaXJlY3Rpb246IGNvbHVt
bjsgZmxleDogMTsgb3ZlcmZsb3c6IGhpZGRlbjsKfQoucHAtdG9vbGJhciB7CiAgICBkaXNwbGF5
OiBmbGV4OyBhbGlnbi1pdGVtczogY2VudGVyOyBnYXA6IDhweDsKICAgIHBhZGRpbmc6IDhweCAx
NnB4OwogICAgYmFja2dyb3VuZDogdmFyKC0tYmctdG9vbGJhcik7CiAgICBib3JkZXItYm90dG9t
OiAxcHggc29saWQgdmFyKC0tYm9yZGVyLWNvbG9yKTsKfQoucHAtc2Nyb2xsIHsKICAgIGZsZXg6
IDE7IG92ZXJmbG93OiBhdXRvOyBwYWRkaW5nOiAyMHB4IDI0cHg7Cn0KLnBwLXRpdGVsIHsKICAg
IGZvbnQtc2l6ZTogMThweDsgZm9udC13ZWlnaHQ6IDcwMDsgY29sb3I6IHZhcigtLXRleHQtaGVh
ZGluZyk7CiAgICBtYXJnaW4tYm90dG9tOiAxNnB4Owp9Ci5wcC1tb25hdGUgewogICAgZGlzcGxh
eTogZmxleDsgZmxleC13cmFwOiB3cmFwOyBnYXA6IDIwcHg7Cn0KCi8qIE1vbmF0c2Jsb2NrICov
Ci5wcC1tb25hdCB7CiAgICBib3JkZXI6IDJweCBzb2xpZCB2YXIoLS1ib3JkZXItc3Ryb25nKTsK
ICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLXJhZGl1cy1tZCk7CiAgICBvdmVyZmxvdzogaGlkZGVu
OwogICAgd2lkdGg6IDMyMHB4OwogICAgYm94LXNoYWRvdzogMCAxcHggNHB4IHZhcigtLXNoYWRv
dy1saWdodCk7Cn0KLnBwLW1vbmF0LWtvcGYgewogICAgYmFja2dyb3VuZDogdmFyKC0tYmctcHJp
bWFyeSk7CiAgICBjb2xvcjogdmFyKC0tdGV4dC1vbi1wcmltYXJ5KTsKICAgIHBhZGRpbmc6IDhw
eCAxMnB4OwogICAgZm9udC13ZWlnaHQ6IDcwMDsKICAgIGZvbnQtc2l6ZTogdmFyKC0tZnMtbWQp
OwogICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgbGV0dGVyLXNwYWNpbmc6IDAuNXB4Owp9Ci5w
cC1tb25hdC1ncmlkIHsKICAgIGRpc3BsYXk6IGdyaWQ7CiAgICBncmlkLXRlbXBsYXRlLWNvbHVt
bnM6IHJlcGVhdCg3LCAxZnIpOwogICAgZm9udC1zaXplOiB2YXIoLS1mcy1zbSk7CiAgICBiYWNr
Z3JvdW5kOiB2YXIoLS1iZy1jYXJkKTsKfQoucHAtd3Qta29wZiB7CiAgICBiYWNrZ3JvdW5kOiB2
YXIoLS1iZy1jYXJkLWFsdCk7CiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICBwYWRkaW5nOiA1
cHggMDsKICAgIGZvbnQtd2VpZ2h0OiA3MDA7CiAgICBmb250LXNpemU6IHZhcigtLWZzLXhzKTsK
ICAgIGNvbG9yOiB2YXIoLS10ZXh0LXNlY29uZGFyeSk7CiAgICBib3JkZXItYm90dG9tOiAycHgg
c29saWQgdmFyKC0tYm9yZGVyLXN0cm9uZyk7Cn0KLyogU2EvU28tS8O2cGZlIGR1bmtsZXIgKi8K
LnBwLXd0LWtvcGY6bnRoLWNoaWxkKDYpLAoucHAtd3Qta29wZjpudGgtY2hpbGQoNykgewogICAg
YmFja2dyb3VuZDogI0RDRTRGMDsKICAgIGNvbG9yOiAjMkMzRTUwOwp9CltkYXRhLXRoZW1lPSJu
aWdodCJdIC5wcC13dC1rb3BmOm50aC1jaGlsZCg2KSwKW2RhdGEtdGhlbWU9Im5pZ2h0Il0gLnBw
LXd0LWtvcGY6bnRoLWNoaWxkKDcpIHsKICAgIGJhY2tncm91bmQ6ICMyNTM1NDc7CiAgICBjb2xv
cjogI0EwQjhEMDsKfQoKLnBwLXRhZyB7CiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICBwYWRk
aW5nOiAzcHggMnB4OwogICAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgdmFyKC0tYm9yZGVyLWxp
Z2h0KTsKICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB2YXIoLS1ib3JkZXItbGlnaHQpOwog
ICAgbWluLWhlaWdodDogNDJweDsKICAgIGRpc3BsYXk6IGZsZXg7CiAgICBmbGV4LWRpcmVjdGlv
bjogY29sdW1uOwogICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgIGp1c3RpZnktY29udGVudDog
Y2VudGVyOwogICAgZ2FwOiAycHg7CiAgICBwb3NpdGlvbjogcmVsYXRpdmU7Cn0KLyogSmVkZSBX
b2NoZSB0cmVubmVuIOKAlCBhbGxlIDcgWmVsbGVuIGVpbmUgc3TDpHJrZXJlIHVudGVyZSBMaW5p
ZSAqLwoucHAtdGFnOm50aC1jaGlsZCg3bisxNCkgeyBib3JkZXItcmlnaHQ6IG5vbmU7IH0KCi5w
cC10YWctbnIgewogICAgZm9udC1zaXplOiB2YXIoLS1mcy14cyk7CiAgICBmb250LXdlaWdodDog
NjAwOwogICAgY29sb3I6IHZhcigtLXRleHQtc2Vjb25kYXJ5KTsKICAgIGxpbmUtaGVpZ2h0OiAx
Owp9Ci5wcC10YWctd2VydCB7CiAgICBmb250LXNpemU6IHZhcigtLWZzLXhzKTsKICAgIGZvbnQt
d2VpZ2h0OiA3MDA7CiAgICBwYWRkaW5nOiAycHggNHB4OwogICAgYm9yZGVyLXJhZGl1czogdmFy
KC0tcmFkaXVzLXhzKTsKICAgIGxpbmUtaGVpZ2h0OiAxLjI7Cn0KLnBwLXRhZy1sZWVyIHsKICAg
IGJhY2tncm91bmQ6IHZhcigtLWJnLWNhcmQtYWx0KTsKICAgIGJvcmRlci1jb2xvcjogdmFyKC0t
YmctY2FyZC1hbHQpOwp9Ci5wcC10YWctd2UgewogICAgYmFja2dyb3VuZDogI0VERjJGODsKICAg
IGJvcmRlci1ib3R0b20tY29sb3I6ICNENERFRUM7Cn0KLnBwLXRhZy13ZSAucHAtdGFnLW5yIHsg
Y29sb3I6ICM0QTZBOEM7IGZvbnQtd2VpZ2h0OiA3MDA7IH0KW2RhdGEtdGhlbWU9Im5pZ2h0Il0g
LnBwLXRhZy13ZSB7CiAgICBiYWNrZ3JvdW5kOiAjMUYyQTM4OwogICAgYm9yZGVyLWJvdHRvbS1j
b2xvcjogIzJEM0U1NTsKfQpbZGF0YS10aGVtZT0ibmlnaHQiXSAucHAtdGFnLXdlIC5wcC10YWct
bnIgeyBjb2xvcjogI0EwQjhEMDsgfQoKLnBwLXRhZy1mdCB7CiAgICBiYWNrZ3JvdW5kOiAjRDdF
NEYwOwogICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogI0IwQzREODsKfQoucHAtdGFnLWZ0IC5wcC10
YWctbnIgeyBjb2xvcjogIzJDM0U1MDsgZm9udC13ZWlnaHQ6IDcwMDsgfQpbZGF0YS10aGVtZT0i
bmlnaHQiXSAucHAtdGFnLWZ0IHsKICAgIGJhY2tncm91bmQ6ICMyNTM1NDc7CiAgICBib3JkZXIt
Ym90dG9tLWNvbG9yOiAjMzg1MjcwOwp9CltkYXRhLXRoZW1lPSJuaWdodCJdIC5wcC10YWctZnQg
LnBwLXRhZy1uciB7IGNvbG9yOiAjQzlENkU0OyB9CgoucHAtdGFnLWhldXRlIHsKICAgIG91dGxp
bmU6IDNweCBzb2xpZCB2YXIoLS10YWctaGV1dGUpOwogICAgb3V0bGluZS1vZmZzZXQ6IC0zcHg7
CiAgICB6LWluZGV4OiAxOwp9Ci5wcC10YWcta29tbWVudGFyOjphZnRlciB7CiAgICBjb250ZW50
OiAnJzsgcG9zaXRpb246IGFic29sdXRlOyB0b3A6IDFweDsgcmlnaHQ6IDFweDsKICAgIHdpZHRo
OiAwOyBoZWlnaHQ6IDA7CiAgICBib3JkZXItbGVmdDogNnB4IHNvbGlkIHRyYW5zcGFyZW50Owog
ICAgYm9yZGVyLXRvcDogNnB4IHNvbGlkICNENEEwMTc7Cn0KCi8qIFN1bW1hcnkgKi8KLnBwLXN1
bW1hcnkgewogICAgbWFyZ2luLXRvcDogMjBweDsKICAgIHBhZGRpbmc6IDE2cHg7CiAgICBiYWNr
Z3JvdW5kOiB2YXIoLS1iZy1jYXJkLWFsdCk7CiAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1yYWRp
dXMtbWQpOwogICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYm9yZGVyLWNvbG9yKTsKfQoucHAt
c3VtbWFyeSBoMyB7CiAgICBmb250LXNpemU6IHZhcigtLWZzLWxnKTsgY29sb3I6IHZhcigtLXRl
eHQtaGVhZGluZyk7IG1hcmdpbi1ib3R0b206IDEwcHg7Cn0KLnBwLXN1bW1hcnktZ3JpZCB7CiAg
ICBkaXNwbGF5OiBncmlkOyBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdChhdXRvLWZpbGws
IG1pbm1heCgxMjBweCwgMWZyKSk7IGdhcDogOHB4Owp9Ci5wcC1zdGF0LWl0ZW0gewogICAgZGlz
cGxheTogZmxleDsgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsgYWxpZ24taXRlbXM6IGNlbnRlcjsK
ICAgIHBhZGRpbmc6IDhweDsgYm9yZGVyLXJhZGl1czogdmFyKC0tcmFkaXVzLXNtKTsgYmFja2dy
b3VuZDogdmFyKC0tYmctY2FyZCk7CiAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1ib3JkZXIt
bGlnaHQpOwp9Ci5wcC1zdGF0LXphaGwgeyBmb250LXNpemU6IDIwcHg7IGZvbnQtd2VpZ2h0OiA3
MDA7IH0KLnBwLXN0YXQtbGFiZWwgeyBmb250LXNpemU6IHZhcigtLWZzLXhzKTsgY29sb3I6IHZh
cigtLXRleHQtbXV0ZWQpOyB0ZXh0LWFsaWduOiBjZW50ZXI7IH0KCi8qIFplbGwtS29tbWVudGFy
LUluZGlrYXRvciBpbSBHcmlkLiBTY2hsaWNodGVzIERyZWllY2sgZnVlciBlaW5lbgogICBLb21t
ZW50YXI7IGFiIHp3ZWkgS29tbWVudGFyZW4genVzYWV0emxpY2ggZWluIGtsZWluZXIgQ291bnRl
ci1CYWRnZQogICB1bnRlbiByZWNodHMgbWl0IGRlciBBbnphaGwuICovCi5ncmlkLXplbGxlLmhh
dC1rb21tZW50YXIgeyBwb3NpdGlvbjogcmVsYXRpdmU7IH0KLmdyaWQtemVsbGUuaGF0LWtvbW1l
bnRhcjo6YWZ0ZXIgewogICAgY29udGVudDogJyc7IHBvc2l0aW9uOiBhYnNvbHV0ZTsgdG9wOiAw
OyByaWdodDogMDsKICAgIHdpZHRoOiAwOyBoZWlnaHQ6IDA7CiAgICBib3JkZXItbGVmdDogNnB4
IHNvbGlkIHRyYW5zcGFyZW50OwogICAgYm9yZGVyLXRvcDogNnB4IHNvbGlkICNENEEwMTc7Cn0K
LmdyaWQtemVsbGUuaGF0LWtvbW1lbnRhcltkYXRhLWtvbW1lbnRhci1hbnphaGxdOjpiZWZvcmUg
ewogICAgY29udGVudDogYXR0cihkYXRhLWtvbW1lbnRhci1hbnphaGwpOwogICAgcG9zaXRpb246
IGFic29sdXRlOyBib3R0b206IDFweDsgcmlnaHQ6IDFweDsKICAgIGJhY2tncm91bmQ6ICNENEEw
MTc7CiAgICBjb2xvcjogd2hpdGU7CiAgICBmb250LXNpemU6IDhweDsgZm9udC13ZWlnaHQ6IDcw
MDsKICAgIGxpbmUtaGVpZ2h0OiAxOwogICAgcGFkZGluZzogMXB4IDNweDsKICAgIGJvcmRlci1y
YWRpdXM6IHZhcigtLXJhZGl1cy1tZCk7CiAgICBtaW4td2lkdGg6IDlweDsKICAgIHRleHQtYWxp
Z246IGNlbnRlcjsKICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwp9CgovKiA9PT09PSBLb21tZW50
YXItUG9wb3ZlciA9PT09PQogICBIVE1MLVBvcG92ZXIgc3RhdHQgZWluemVpbGlnZXIgbmF0aXZl
IHRpdGxlLVRvb2x0aXAuIFN0cnVrdHVyaWVydCBpbgogICBLb3BmIChJY29uICsgRGF0dW0pLCBC
b2R5IChNZWhyemVpbGVyLUtvbW1lbnRhcikgdW5kIEZ1c3MgKFZlcmZhc3NlciArCiAgIFplaXRz
dGVtcGVsKS4gVGFnL05hY2h0IHVlYmVyIENTUy1WYXJpYWJsZW4gKC0tYmctY2FyZCwgLS1ib3Jk
ZXItKikuCiAgIFNjaG1hbGVyIGFscyBkYXMgUGVyc29uLVBvcG92ZXIsIHdlaWwgaGllciBudXIg
VGV4dCBzdGVodC4gKi8KLnZpMy1rb21tZW50YXItcG9wb3ZlciB7CiAgICBwb3NpdGlvbjogZml4
ZWQ7CiAgICB6LWluZGV4OiB2YXIoLS16LXBvcG92ZXItcGFnZSk7CiAgICB3aWR0aDogMzIwcHg7
CiAgICBtYXgtd2lkdGg6IGNhbGMoMTAwdncgLSAxMnB4KTsKICAgIGJhY2tncm91bmQ6IHZhcigt
LWJnLWNhcmQpOwogICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYm9yZGVyLXN0cm9uZyk7CiAg
ICBib3JkZXItcmFkaXVzOiB2YXIoLS1yYWRpdXMtbGcpOwogICAgYm94LXNoYWRvdzogMCA4cHgg
MjRweCByZ2JhKDAsMCwwLDAuMjgpOwogICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgIHBvaW50ZXIt
ZXZlbnRzOiBhdXRvOwogICAgZm9udC1zaXplOiB2YXIoLS1mcy1tZCk7CiAgICBsaW5lLWhlaWdo
dDogMS41OwogICAgY29sb3I6IHZhcigtLXRleHQtcHJpbWFyeSk7Cn0KLnZpMy1rb21tZW50YXIt
cG9wb3Zlci52ZXJzdGVja3QgeyBkaXNwbGF5OiBub25lOyB9Cgoua3Ata29wZiB7CiAgICBkaXNw
bGF5OiBmbGV4OyBhbGlnbi1pdGVtczogY2VudGVyOyBnYXA6IDhweDsKICAgIHBhZGRpbmc6IDhw
eCAxMnB4OwogICAgYmFja2dyb3VuZDogdmFyKC0tYmctY2FyZC1hbHQpOwogICAgYm9yZGVyLWJv
dHRvbTogMXB4IHNvbGlkIHZhcigtLWJvcmRlci1saWdodCk7Cn0KLmtwLWtvcGYtaWNvbiB7IGZv
bnQtc2l6ZTogdmFyKC0tZnMtbGcpOyB9Ci5rcC1rb3BmLXRpdGVsIHsKICAgIGZvbnQtd2VpZ2h0
OiA3MDA7CiAgICBjb2xvcjogdmFyKC0tdGV4dC1oZWFkaW5nKTsKICAgIGZvbnQtc2l6ZTogMTIu
NXB4OwogICAgbGV0dGVyLXNwYWNpbmc6IDAuMnB4Owp9Ci5rcC1rb3BmLWRhdHVtIHsKICAgIG1h
cmdpbi1sZWZ0OiBhdXRvOwogICAgZm9udC1zaXplOiAxMS41cHg7CiAgICBjb2xvcjogdmFyKC0t
dGV4dC1tdXRlZCk7CiAgICBmb250LXZhcmlhbnQtbnVtZXJpYzogdGFidWxhci1udW1zOwp9Cgou
a3AtYm9keSB7CiAgICBwYWRkaW5nOiAxMHB4IDEycHg7CiAgICB3aGl0ZS1zcGFjZTogbm9ybWFs
OwogICAgd29yZC13cmFwOiBicmVhay13b3JkOwogICAgY29sb3I6IHZhcigtLXRleHQtcHJpbWFy
eSk7CiAgICAvKiBNZWhyemVpbGVyIG5pY2h0IHp1IGhvY2ggd2VyZGVuIGxhc3NlbjsgYmVpIHNl
aHIgbGFuZ2VtIFRleHQgc2Nyb2xsZW4uICovCiAgICBtYXgtaGVpZ2h0OiAyODBweDsKICAgIG92
ZXJmbG93LXk6IGF1dG87Cn0KLyogU3RhY2stVmFyaWFudGUgKFN0dWZlIDIpOiBtZWhyZXJlIEtv
bW1lbnRhci1FaW50cmFlZ2UgdWViZXJlaW5hbmRlci4KICAgSmVkZXIgRWludHJhZyBpc3QgZWlu
ZSBlaWdlbmUgS2FydGUgbWl0IFRleHQgKyBNZXRhLVplaWxlLiBUcmVubmxpbmllbgogICBzdGF0
dCB2b2xsc3RhZW5kaWdlciBCb3hlbiDigJQga29tcGFrdGVyIGFscyBuZXN0ZWQgQ2FyZHMgaW0g
UG9wb3Zlci4gKi8KLmtwLWJvZHktc3RhY2sgewogICAgcGFkZGluZzogMDsKICAgIGRpc3BsYXk6
IGZsZXg7IGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47Cn0KLmtwLWVpbnRyYWcgewogICAgcGFkZGlu
ZzogOHB4IDEycHg7CiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgdmFyKC0tYm9yZGVyLWxp
Z2h0KTsKfQoua3AtZWludHJhZzpsYXN0LWNoaWxkIHsgYm9yZGVyLWJvdHRvbTogbm9uZTsgfQou
a3AtZWludHJhZy10ZXh0IHsKICAgIGNvbG9yOiB2YXIoLS10ZXh0LXByaW1hcnkpOwogICAgbGlu
ZS1oZWlnaHQ6IDEuNTsKICAgIHdvcmQtd3JhcDogYnJlYWstd29yZDsKfQoua3AtZWludHJhZy1t
ZXRhIHsKICAgIGRpc3BsYXk6IGZsZXg7IGFsaWduLWl0ZW1zOiBjZW50ZXI7IGdhcDogNnB4Owog
ICAgbWFyZ2luLXRvcDogNHB4OwogICAgZm9udC1zaXplOiB2YXIoLS1mcy1zbSk7CiAgICBjb2xv
cjogdmFyKC0tdGV4dC1tdXRlZCk7Cn0KLmtwLWVpbnRyYWctYXV0b3IgeyBjb2xvcjogdmFyKC0t
dGV4dC1zZWNvbmRhcnkpOyBmb250LXdlaWdodDogNjAwOyB9Ci5rcC1laW50cmFnLXRyZW5uZXIg
eyBvcGFjaXR5OiAwLjY7IH0KLmtwLWVpbnRyYWctemVpdCB7IGZvbnQtdmFyaWFudC1udW1lcmlj
OiB0YWJ1bGFyLW51bXM7IH0KCi8qIEVkaXRvci1Lb21tZW50YXItQmVyZWljaCAqLwouZWRpdG9y
LWtvbW1lbnRhciB7CiAgICBwYWRkaW5nOiA2cHggOHB4OwogICAgYm9yZGVyLXRvcDogMXB4IHNv
bGlkIHZhcigtLWJvcmRlci1saWdodCk7CiAgICBkaXNwbGF5OiBmbGV4OyBmbGV4LWRpcmVjdGlv
bjogY29sdW1uOyBnYXA6IDRweDsKfQouZWRpdG9yLWtvbW1lbnRhci1idG5zIHsKICAgIGRpc3Bs
YXk6IGZsZXg7IGdhcDogNHB4Owp9CgovKiBLb21tZW50YXItVmVybGF1ZiBpbSBFZGl0b3IgKFN0
dWZlIDIpIOKAlCBTdGFjayBhbHRlciBFaW50cmFlZ2UgdWViZXIgZGVtCiAgIGxlZXJlbiBFaW5n
YWJlZmVsZC4gTmV1ZXN0ZSBvYmVuLiBMb2VzY2gtSWNvbiBudXIgZnVlciBCZXJlY2h0aWd0ZS4g
Ki8KLmVkaXRvci1rb21tZW50YXItdmVybGF1ZiB7CiAgICBkaXNwbGF5OiBmbGV4OyBmbGV4LWRp
cmVjdGlvbjogY29sdW1uOyBnYXA6IDRweDsKICAgIG1heC1oZWlnaHQ6IDE4MHB4OwogICAgb3Zl
cmZsb3cteTogYXV0bzsKICAgIG1hcmdpbi1ib3R0b206IDRweDsKfQouZWRpdG9yLWtvbW1lbnRh
ci12ZXJsYXVmOmVtcHR5IHsgZGlzcGxheTogbm9uZTsgfQouZWt2LWxlZXIgewogICAgZm9udC1z
aXplOiAxMC41cHg7CiAgICBjb2xvcjogdmFyKC0tdGV4dC1tdXRlZCk7CiAgICBmb250LXN0eWxl
OiBpdGFsaWM7CiAgICBwYWRkaW5nOiAycHggNHB4Owp9Ci5la3YtZWludHJhZyB7CiAgICBiYWNr
Z3JvdW5kOiB2YXIoLS1iZy1jYXJkLWFsdCk7CiAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1i
b3JkZXItbGlnaHQpOwogICAgYm9yZGVyLXJhZGl1czogdmFyKC0tcmFkaXVzLXNtKTsKICAgIHBh
ZGRpbmc6IDRweCA2cHg7CiAgICBmb250LXNpemU6IHZhcigtLWZzLXNtKTsKfQouZWt2LXRleHQg
ewogICAgY29sb3I6IHZhcigtLXRleHQtcHJpbWFyeSk7CiAgICBsaW5lLWhlaWdodDogMS40Owog
ICAgd29yZC13cmFwOiBicmVhay13b3JkOwp9Ci5la3YtbWV0YSB7CiAgICBkaXNwbGF5OiBmbGV4
OyBhbGlnbi1pdGVtczogY2VudGVyOyBnYXA6IDJweDsKICAgIGZvbnQtc2l6ZTogdmFyKC0tZnMt
eHMpOwogICAgY29sb3I6IHZhcigtLXRleHQtbXV0ZWQpOwogICAgbWFyZ2luLXRvcDogMnB4Owp9
Ci5la3YtbWV0YS1hdXRvciB7IGNvbG9yOiB2YXIoLS10ZXh0LXNlY29uZGFyeSk7IGZvbnQtd2Vp
Z2h0OiA2MDA7IH0KLmVrdi1tZXRhLXplaXQgeyBmb250LXZhcmlhbnQtbnVtZXJpYzogdGFidWxh
ci1udW1zOyB9Ci5la3YtbG9lc2NoZW4gewogICAgbWFyZ2luLWxlZnQ6IGF1dG87CiAgICBib3Jk
ZXI6IG5vbmU7IGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgY29sb3I6IHZhcigtLXRleHQt
bXV0ZWQpOwogICAgY3Vyc29yOiBwb2ludGVyOwogICAgZm9udC1zaXplOiB2YXIoLS1mcy1iYXNl
KTsKICAgIGxpbmUtaGVpZ2h0OiAxOwogICAgcGFkZGluZzogMnB4IDRweDsKICAgIGJvcmRlci1y
YWRpdXM6IHZhcigtLXJhZGl1cy14cyk7CiAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDAuMTJz
LCBjb2xvciAwLjEyczsKfQouZWt2LWxvZXNjaGVuOmhvdmVyIHsKICAgIGJhY2tncm91bmQ6IHZh
cigtLWZhcmJlLWdlZmFociwgI2MwMzkyYik7CiAgICBjb2xvcjogd2hpdGU7Cn0KCi8qID09PT09
IExvZ2J1Y2ggPT09PT0gKi8KLmxheW91dC1sb2didWNoeyBvdmVyZmxvdy15OiBhdXRvOyBwYWRk
aW5nOiAyNHB4IDMycHg7IGZsZXg6IDE7IH0KCi8qIFRhYmVsbGVuLUdydW5kbGF5b3V0IGV0d2Fz
IGdyb3NzenVlZ2lnZXIgYWxzIGRpZSBnZW5lcmlzY2hlIC5hZG1pbi10YWJlbGxlOgogICBtZWhy
IFZlcnRpa2FscmF1bSBwcm8gWmVpbGUsIGRlemVudGVyZSBaZWJyYS1TdHJlaWZlbiwga2xhcmVz
IEhvdmVyLiAqLwojbG9nLXRhYmVsbGUgeyBib3JkZXItY29sbGFwc2U6IHNlcGFyYXRlOyBib3Jk
ZXItc3BhY2luZzogMDsgfQojbG9nLXRhYmVsbGUgdGhlYWQgdGggewogICAgcG9zaXRpb246IHN0
aWNreTsgdG9wOiAwOyB6LWluZGV4OiAyOwogICAgYmFja2dyb3VuZDogdmFyKC0tYmctY2FyZC1h
bHQpOwogICAgY29sb3I6IHZhcigtLXRleHQtc2Vjb25kYXJ5KTsKICAgIGZvbnQtd2VpZ2h0OiA2
MDA7IGZvbnQtc2l6ZTogdmFyKC0tZnMtc20pOyBsZXR0ZXItc3BhY2luZzogMC4wNGVtOyB0ZXh0
LXRyYW5zZm9ybTogdXBwZXJjYXNlOwogICAgcGFkZGluZzogMTBweCAxMnB4OwogICAgYm9yZGVy
LWJvdHRvbTogMnB4IHNvbGlkIHZhcigtLWJvcmRlci1saWdodCk7Cn0KI2xvZy10YWJlbGxlIHRi
b2R5IHRkIHsKICAgIHBhZGRpbmc6IDEwcHggMTJweDsKICAgIGJvcmRlci1ib3R0b206IDFweCBz
b2xpZCB2YXIoLS1ib3JkZXItbGlnaHQpOwogICAgdmVydGljYWwtYWxpZ246IHRvcDsKICAgIGZv
bnQtc2l6ZTogdmFyKC0tZnMtbWQpOyBsaW5lLWhlaWdodDogMS40NTsKfQojbG9nLXRhYmVsbGUg
dGJvZHkgdHI6bnRoLWNoaWxkKGV2ZW4pIHRkIHsgYmFja2dyb3VuZDogcmdiYSgwLDAsMCwwLjAx
OCk7IH0KI2xvZy10YWJlbGxlIHRib2R5IHRyLmxvZy16ZWlsZTpob3ZlciB0ZCB7IGJhY2tncm91
bmQ6IHZhcigtLWJnLWhvdmVyKTsgfQoKLyogU3BhbHRlIDE6IFplaXQgLSB6d2VpemVpbGlnIChE
YXR1bSBncm9zcyArIGhhbGJmZXR0LCBVaHJ6ZWl0IGtsZWluIG11dGVkKSAqLwoubG9nLXplaXQt
emVsbGUgeyB3aGl0ZS1zcGFjZTogbm93cmFwOyB3aWR0aDogMTEwcHg7IH0KLmxvZy16ZWl0LWRh
dHVtIHsgZm9udC13ZWlnaHQ6IDYwMDsgY29sb3I6IHZhcigtLXRleHQtaGVhZGluZyk7IGZvbnQt
c2l6ZTogdmFyKC0tZnMtYmFzZSk7IH0KLmxvZy16ZWl0LXVocnplaXQgeyBjb2xvcjogdmFyKC0t
dGV4dC1tdXRlZCk7IGZvbnQtc2l6ZTogdmFyKC0tZnMtc20pOyBtYXJnaW4tdG9wOiAxcHg7IGZv
bnQtdmFyaWFudC1udW1lcmljOiB0YWJ1bGFyLW51bXM7IH0KCi8qIFNwYWx0ZSAyOiBBa3Rpb24g
LSBmYXJiaWdlciBQaWxsIHBybyBLYXRlZ29yaWUuIFBhZGRpbmcgKyBCb3JkZXItUmFkaXVzCiAg
IGdsZWljaGdyb3NzZSBPcHRpayB3aWUgZGllIHJlY2h0ZS1jYXJkLUFremVudGUsIGRhbWl0IGRh
cyBMb2didWNoIHNpY2gKICAgZmFyYmxpY2ggaW4gZGVuIFJlc3QgZGVyIEFwcCBlaW5mdWVndC4g
Ki8KLmxvZy1ha3Rpb24temVsbGUgeyB3aWR0aDogMjIwcHg7IH0KLmxvZy1waWxsIHsKICAgIGRp
c3BsYXk6IGlubGluZS1ibG9jazsKICAgIHBhZGRpbmc6IDNweCA5cHg7CiAgICBib3JkZXItcmFk
aXVzOiB2YXIoLS1yYWRpdXMtc20pOwogICAgZm9udC1zaXplOiB2YXIoLS1mcy1zbSk7IGZvbnQt
d2VpZ2h0OiA2MDA7CiAgICBsaW5lLWhlaWdodDogMS40OwogICAgd2hpdGUtc3BhY2U6IG5vd3Jh
cDsKICAgIGJhY2tncm91bmQ6IHJnYmEoMCwwLDAsMC4wNik7CiAgICBjb2xvcjogdmFyKC0tdGV4
dC1oZWFkaW5nKTsKICAgIGJvcmRlcjogMXB4IHNvbGlkIHRyYW5zcGFyZW50Owp9Ci5sb2ctcGls
bC1wbGFudW5nIHsgYmFja2dyb3VuZDogcmdiYSgzOSwxMzcsMTA5LDAuMTQpOyAgY29sb3I6ICMx
RjZENUE7IGJvcmRlci1jb2xvcjogcmdiYSgzOSwxMzcsMTA5LDAuMjgpOyB9Ci5sb2ctcGlsbC1w
ZXJzb24gIHsgYmFja2dyb3VuZDogcmdiYSgzMCw5NSwxNDAsMC4xNCk7ICAgY29sb3I6ICMxMzQy
NjA7IGJvcmRlci1jb2xvcjogcmdiYSgzMCw5NSwxNDAsMC4yOCk7IH0KLmxvZy1waWxsLWFkbWlu
ICAgeyBiYWNrZ3JvdW5kOiByZ2JhKDIwMiwxMTEsMzAsMC4xNik7ICBjb2xvcjogIzhBNEIxNDsg
Ym9yZGVyLWNvbG9yOiByZ2JhKDIwMiwxMTEsMzAsMC4zMCk7IH0KLmxvZy1waWxsLXJvbGxlICAg
eyBiYWNrZ3JvdW5kOiByZ2JhKDEwNiw3NiwxNDcsMC4xNik7ICBjb2xvcjogIzRCMzU2QjsgYm9y
ZGVyLWNvbG9yOiByZ2JhKDEwNiw3NiwxNDcsMC4zMCk7IH0KLmxvZy1waWxsLWhpbndlaXMgeyBi
YWNrZ3JvdW5kOiByZ2JhKDE0Miw2OCwxNzMsMC4xNik7ICBjb2xvcjogIzVFMkE3NzsgYm9yZGVy
LWNvbG9yOiByZ2JhKDE0Miw2OCwxNzMsMC4zMCk7IH0KLmxvZy1waWxsLWJhY2t1cCAgeyBiYWNr
Z3JvdW5kOiByZ2JhKDkxLDEyNSwxNzcsMC4xNik7ICBjb2xvcjogIzNBNTY4MDsgYm9yZGVyLWNv
bG9yOiByZ2JhKDkxLDEyNSwxNzcsMC4zMCk7IH0KLmxvZy1waWxsLXN5c3RlbSAgeyBiYWNrZ3Jv
dW5kOiByZ2JhKDE3Niw1OCw0NiwwLjE0KTsgICBjb2xvcjogIzdFMjkyMDsgYm9yZGVyLWNvbG9y
OiByZ2JhKDE3Niw1OCw0NiwwLjMwKTsgfQoKLyogS2F0ZWdvcmllLUZpbHRlci1DaGlwcyB1ZWJl
ciBkZXIgTG9nYnVjaC1UYWJlbGxlIChmdW5rdGlvbmFsLCBrb21iaW5pZXJ0CiAgIG1pdCBkZXIg
VGV4dHN1Y2hlKS4gVm9uIGpzL2xvZ2J1Y2guanMgZHluYW1pc2NoIGluIGRlbiBLb3BmIGluaml6
aWVydC4gKi8KLmxvZy1rYXQtY2hpcHMgeyBkaXNwbGF5OiBmbGV4OyBmbGV4LXdyYXA6IHdyYXA7
IGdhcDogNnB4OyBtYXJnaW4tdG9wOiAxMHB4OyB9Ci5sb2cta2F0LWNoaXAgewogICAgY3Vyc29y
OiBwb2ludGVyOwogICAgcGFkZGluZzogNHB4IDEycHg7CiAgICBib3JkZXItcmFkaXVzOiB2YXIo
LS1yYWRpdXMtc20pOwogICAgZm9udC1zaXplOiB2YXIoLS1mcy1zbSk7IGZvbnQtd2VpZ2h0OiA2
MDA7CiAgICBsaW5lLWhlaWdodDogMS40OwogICAgYmFja2dyb3VuZDogdmFyKC0tYmctY2FyZC1h
bHQpOwogICAgY29sb3I6IHZhcigtLXRleHQtc2Vjb25kYXJ5KTsKICAgIGJvcmRlcjogMXB4IHNv
bGlkIHZhcigtLWJvcmRlci1jb2xvcik7CiAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDAuMTJz
LCBjb2xvciAwLjEycywgYm9yZGVyLWNvbG9yIDAuMTJzOwp9Ci5sb2cta2F0LWNoaXA6aG92ZXIg
eyBib3JkZXItY29sb3I6IHZhcigtLWJnLXByaW1hcnkpOyBjb2xvcjogdmFyKC0tdGV4dC1oZWFk
aW5nKTsgfQoubG9nLWthdC1jaGlwLmFrdGl2IHsKICAgIGJhY2tncm91bmQ6IHZhcigtLWJnLXBy
aW1hcnkpOwogICAgY29sb3I6IHZhcigtLXRleHQtb24tcHJpbWFyeSk7CiAgICBib3JkZXItY29s
b3I6IHZhcigtLWJnLXByaW1hcnkpOwp9CgovKiBTcGFsdGUgMzogQmVudXR6ZXIgLSBrbGVpbmVy
IEluaXRpYWxlbi1BdmF0YXIgKEFudGhyYXppdCwgZ2xlaWNoZXIgTG9vawogICB3aWUgZGllIEFw
cC13ZWl0ZW4gdmkzLWF2YXRhci1pbml0aWFsZW4pICsgTmFtZS4gKi8KLmxvZy1iZW51dHplci16
ZWxsZSB7IHdpZHRoOiAxODBweDsgd2hpdGUtc3BhY2U6IG5vd3JhcDsgfQoubG9nLWJlbnV0emVy
LWF2YXRhciB7CiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDsgYWxpZ24taXRlbXM6IGNlbnRlcjsg
anVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICB3aWR0aDogMjRweDsgaGVpZ2h0OiAyNHB4OyBi
b3JkZXItcmFkaXVzOiA1cHg7CiAgICBiYWNrZ3JvdW5kOiAjM0EzRjQ3OyBjb2xvcjogI2ZmZjsK
ICAgIGZvbnQtc2l6ZTogdmFyKC0tZnMteHMpOyBmb250LXdlaWdodDogNzAwOyBsZXR0ZXItc3Bh
Y2luZzogMC4wMmVtOwogICAgbWFyZ2luLXJpZ2h0OiA4cHg7IHZlcnRpY2FsLWFsaWduOiBtaWRk
bGU7CiAgICBmbGV4LXNocmluazogMDsKfQoubG9nLWJlbnV0emVyLW5hbWUgeyBjb2xvcjogdmFy
KC0tdGV4dC1wcmltYXJ5KTsgZm9udC1zaXplOiAxMi41cHg7IHZlcnRpY2FsLWFsaWduOiBtaWRk
bGU7IH0KCi8qIFNwYWx0ZSA0OiBEZXRhaWxzIC0gQ29kZS1UYWdzIHN1YnRpbGVyLCBQZmVpbGUg
Z2VmYWVyYnQsIEJvbGQtU3ViamVrdGUKICAgdW5kIFNvZnQtTGVlci1QbGF0emhhbHRlci4gKi8K
LmxvZy1kZXRhaWxzLXplbGxlIHsgY29sb3I6IHZhcigtLXRleHQtcHJpbWFyeSk7IH0KLmxvZy1k
ZXRhaWxzLXplbGxlIGNvZGUgewogICAgZGlzcGxheTogaW5saW5lLWJsb2NrOwogICAgcGFkZGlu
ZzogMXB4IDZweDsKICAgIGJhY2tncm91bmQ6IHJnYmEoMCwwLDAsMC4wNSk7CiAgICBib3JkZXI6
IDFweCBzb2xpZCB2YXIoLS1ib3JkZXItbGlnaHQpOwogICAgYm9yZGVyLXJhZGl1czogdmFyKC0t
cmFkaXVzLXNtKTsKICAgIGZvbnQtZmFtaWx5OiB1aS1tb25vc3BhY2UsICJTRiBNb25vIiwgTWVu
bG8sIENvbnNvbGFzLCBtb25vc3BhY2U7CiAgICBmb250LXNpemU6IDExLjVweDsKICAgIGNvbG9y
OiB2YXIoLS10ZXh0LWhlYWRpbmcpOwogICAgbGluZS1oZWlnaHQ6IDEuNDsKICAgIG1heC13aWR0
aDogMzQwcHg7CiAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgdGV4dC1vdmVyZmxvdzogZWxsaXBz
aXM7CiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlOwp9Ci5sb2ctZGV0YWlscy16ZWxsZSBiIHsg
Y29sb3I6IHZhcigtLXRleHQtaGVhZGluZyk7IH0KLmxvZy1kZXRhaWxzLXplbGxlIC5sb2ctZGV0
YWlscy1sZWVyIHsgY29sb3I6IHZhcigtLXRleHQtbXV0ZWQpOyBmb250LXN0eWxlOiBpdGFsaWM7
IH0KCi8qIFNwYWx0ZSA1OiBXaWVkZXJoZXJzdGVsbGVuIC0ga29tcGFrdGUgUGlsbC1PcHRpay4g
QXVmIHNjaG1hbGVuIENvbnRhaW5lcm4KICAgdmVyc2Nod2luZGV0IGRlciBUZXh0LCBudXIgZGFz
IOKGui1JY29uIGJsZWlidCBzaWNodGJhci4gKi8KLmxvZy1yZXN0b3JlLXplbGxlIHsgd2lkdGg6
IDE1MHB4OyB0ZXh0LWFsaWduOiByaWdodDsgd2hpdGUtc3BhY2U6IG5vd3JhcDsgfQoubG9nLXJl
c3RvcmUtYnRuIHsKICAgIGRpc3BsYXk6IGlubGluZS1mbGV4OyBhbGlnbi1pdGVtczogY2VudGVy
OyBnYXA6IDVweDsKICAgIHBhZGRpbmc6IDRweCAxMHB4OwogICAgYmFja2dyb3VuZDogdmFyKC0t
YmctY2FyZCk7CiAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1ib3JkZXItbGlnaHQpOwogICAg
Ym9yZGVyLXJhZGl1czogdmFyKC0tcmFkaXVzLXNtKTsKICAgIGNvbG9yOiB2YXIoLS10ZXh0LXNl
Y29uZGFyeSk7CiAgICBmb250LXNpemU6IHZhcigtLWZzLXNtKTsgZm9udC13ZWlnaHQ6IDYwMDsK
ICAgIGN1cnNvcjogcG9pbnRlcjsKICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgMC4xMnMsIGJv
cmRlci1jb2xvciAwLjEycywgY29sb3IgMC4xMnM7Cn0KLmxvZy1yZXN0b3JlLWJ0bjpob3ZlciB7
CiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1iZy1ob3Zlcik7CiAgICBib3JkZXItY29sb3I6IHZhcigt
LXBvbGl6ZWktYmxhdSwgIzAwNjNhZik7CiAgICBjb2xvcjogdmFyKC0tcG9saXplaS1ibGF1LCAj
MDA2M2FmKTsKfQoubG9nLXJlc3RvcmUtaWNvbiB7IGZvbnQtc2l6ZTogdmFyKC0tZnMtbWQpOyBs
aW5lLWhlaWdodDogMTsgfQoKLyogU3VjaC1JbnB1dCBvYmVuIHJlY2h0czogZ2xlaWNoZXIgTG9v
ayB3aWUgZGVyIEdydXBwZW4tRmlsdGVyIGluIGRlciBTdGF0aXN0aWsuICovCiNsb2ctc3VjaGUg
eyBmb250LXNpemU6IHZhcigtLWZzLWJhc2UpOyB9CgovKiBEYXJrLU1vZGUtQW5wYXNzdW5nIGRl
ciBQaWxsczogSGludGVyZ3J1bmQtQWxwaGFzIGxlaWNodCBob2NoemllaGVuLAogICBkYW1pdCBk
aWUgRmFyYmVuIGF1ZiBkdW5rbGVtIFVudGVyZ3J1bmQgc2ljaHRiYXIgYmxlaWJlbi4gKi8KW2Rh
dGEtdGhlbWU9Im5pZ2h0Il0gLmxvZy1waWxsLXBsYW51bmcgeyBiYWNrZ3JvdW5kOiByZ2JhKDM5
LDEzNywxMDksMC4yOCk7ICBjb2xvcjogIzZBRDBBQzsgYm9yZGVyLWNvbG9yOiByZ2JhKDM5LDEz
NywxMDksMC40NSk7IH0KW2RhdGEtdGhlbWU9Im5pZ2h0Il0gLmxvZy1waWxsLXBlcnNvbiAgeyBi
YWNrZ3JvdW5kOiByZ2JhKDMwLDk1LDE0MCwwLjMwKTsgICBjb2xvcjogIzZGQjNERTsgYm9yZGVy
LWNvbG9yOiByZ2JhKDMwLDk1LDE0MCwwLjUwKTsgfQpbZGF0YS10aGVtZT0ibmlnaHQiXSAubG9n
LXBpbGwtYWRtaW4gICB7IGJhY2tncm91bmQ6IHJnYmEoMjAyLDExMSwzMCwwLjMwKTsgIGNvbG9y
OiAjRjJCMjc0OyBib3JkZXItY29sb3I6IHJnYmEoMjAyLDExMSwzMCwwLjUwKTsgfQpbZGF0YS10
aGVtZT0ibmlnaHQiXSAubG9nLXBpbGwtcm9sbGUgICB7IGJhY2tncm91bmQ6IHJnYmEoMTA2LDc2
LDE0NywwLjMyKTsgIGNvbG9yOiAjQjg5QUUwOyBib3JkZXItY29sb3I6IHJnYmEoMTA2LDc2LDE0
NywwLjUwKTsgfQpbZGF0YS10aGVtZT0ibmlnaHQiXSAubG9nLXBpbGwtaGlud2VpcyB7IGJhY2tn
cm91bmQ6IHJnYmEoMTQyLDY4LDE3MywwLjMyKTsgIGNvbG9yOiAjQzg5M0UwOyBib3JkZXItY29s
b3I6IHJnYmEoMTQyLDY4LDE3MywwLjUwKTsgfQpbZGF0YS10aGVtZT0ibmlnaHQiXSAubG9nLXBp
bGwtYmFja3VwICB7IGJhY2tncm91bmQ6IHJnYmEoOTEsMTI1LDE3NywwLjMwKTsgIGNvbG9yOiAj
OThCNURDOyBib3JkZXItY29sb3I6IHJnYmEoOTEsMTI1LDE3NywwLjUwKTsgfQpbZGF0YS10aGVt
ZT0ibmlnaHQiXSAubG9nLXBpbGwtc3lzdGVtICB7IGJhY2tncm91bmQ6IHJnYmEoMTc2LDU4LDQ2
LDAuMjgpOyAgIGNvbG9yOiAjRTU4NTc1OyBib3JkZXItY29sb3I6IHJnYmEoMTc2LDU4LDQ2LDAu
NDUpOyB9CltkYXRhLXRoZW1lPSJuaWdodCJdICNsb2ctdGFiZWxsZSB0Ym9keSB0cjpudGgtY2hp
bGQoZXZlbikgdGQgeyBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwyNTUsMjU1LDAuMDI1KTsgfQoKLyog
PT09PT0gTW9kYWxlIERpYWxvZ2UgPT09PT0gKi8KLm1vZGFsIHsKICAgIHBvc2l0aW9uOiBmaXhl
ZDsgaW5zZXQ6IDA7IHotaW5kZXg6IHZhcigtLXotbW9kYWwpOwogICAgYmFja2dyb3VuZDogcmdi
YSgwLDAsMCwwLjQpOyBkaXNwbGF5OiBmbGV4OyBhbGlnbi1pdGVtczogY2VudGVyOyBqdXN0aWZ5
LWNvbnRlbnQ6IGNlbnRlcjsKICAgIGFuaW1hdGlvbjogZmFkZUluIDAuMTVzIGVhc2U7Cn0KLm1v
ZGFsLWluaGFsdCB7CiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1iZy1jYXJkKTsgYm9yZGVyLXJhZGl1
czogdmFyKC0tcmFkaXVzLWxnKTsKICAgIGJveC1zaGFkb3c6IHZhcigtLXNoYWRvdy1tb2RhbCk7
CiAgICB3aWR0aDogOTAlOyBtYXgtd2lkdGg6IDYyMHB4OyBtYXgtaGVpZ2h0OiA4MHZoOyBkaXNw
bGF5OiBmbGV4OyBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwp9Ci8qIFNwZXppYWwtS2xhc3NlIGZ1
ZXIgTW9kYWxzIG1pdCB2aWVsIEluaGFsdCAoRS1NYWlsLVZvcmxhZ2VuLUVkaXRvciBldGMuKSAq
LwoubW9kYWwtaW5oYWx0Lm1vZGFsLWluaGFsdC1ncm9zcyB7IG1heC13aWR0aDogMTE4MHB4OyBt
YXgtaGVpZ2h0OiA5MnZoOyB9Ci5tb2RhbC1rb3BmIHsKICAgIGRpc3BsYXk6IGZsZXg7IGFsaWdu
LWl0ZW1zOiBjZW50ZXI7IGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsKICAgIGJhY2tn
cm91bmQ6IHZhcigtLWJnLXByaW1hcnkpOyBjb2xvcjogdmFyKC0tdGV4dC1vbi1wcmltYXJ5KTsK
ICAgIHBhZGRpbmc6IDE0cHggMjBweDsgYm9yZGVyLXJhZGl1czogdmFyKC0tcmFkaXVzLWxnKSAx
MHB4IDAgMDsKfQoubW9kYWwta29wZiBoMiB7IGZvbnQtc2l6ZTogMTVweDsgZm9udC13ZWlnaHQ6
IDYwMDsgfQoubW9kYWwtc2NobGllc3NlbiB7CiAgICBiYWNrZ3JvdW5kOiBub25lOyBib3JkZXI6
IG5vbmU7IGNvbG9yOiB2YXIoLS10ZXh0LW9uLXByaW1hcnkpOwogICAgZm9udC1zaXplOiAyMnB4
OyBjdXJzb3I6IHBvaW50ZXI7IGxpbmUtaGVpZ2h0OiAxOyBwYWRkaW5nOiAwIDRweDsgb3BhY2l0
eTogMC43Owp9Ci5tb2RhbC1zY2hsaWVzc2VuOmhvdmVyIHsgb3BhY2l0eTogMTsgfQoubW9kYWwt
a29lcnBlciB7IHBhZGRpbmc6IDIwcHg7IG92ZXJmbG93LXk6IGF1dG87IGZsZXg6IDE7IH0KLm1v
ZGFsLWZ1c3MgewogICAgcGFkZGluZzogMTJweCAyMHB4OyBib3JkZXItdG9wOiAxcHggc29saWQg
dmFyKC0tYm9yZGVyLWNvbG9yKTsKICAgIGRpc3BsYXk6IGZsZXg7IGp1c3RpZnktY29udGVudDog
ZmxleC1lbmQ7IGdhcDogOHB4OwogICAgYmFja2dyb3VuZDogdmFyKC0tYmctY2FyZC1hbHQpOyBi
b3JkZXItcmFkaXVzOiAwIDAgMTBweCAxMHB4Owp9CgovKiA9PT09PSBUb2FzdCA9PT09PSAqLwoj
dG9hc3QtY29udGFpbmVyIHsKICAgIHBvc2l0aW9uOiBmaXhlZDsgYm90dG9tOiAyNHB4OyByaWdo
dDogMjRweDsgei1pbmRleDogdmFyKC0tei10b2FzdCk7CiAgICBkaXNwbGF5OiBmbGV4OyBmbGV4
LWRpcmVjdGlvbjogY29sdW1uOyBnYXA6IDZweDsKfQoudG9hc3QgewogICAgcGFkZGluZzogMTBw
eCAxOHB4OyBib3JkZXItcmFkaXVzOiB2YXIoLS1yYWRpdXMtbWQpOyBjb2xvcjogI2ZmZjsgZm9u
dC1zaXplOiB2YXIoLS1mcy1tZCk7IGZvbnQtd2VpZ2h0OiA1MDA7CiAgICBib3gtc2hhZG93OiAw
IDRweCAxNnB4IHJnYmEoMCwwLDAsMC4yNSk7IGFuaW1hdGlvbjogdG9hc3RFaW4gMC4yNXMgZWFz
ZTsgbWF4LXdpZHRoOiA0MDBweDsKfQoudG9hc3QtZXJmb2xnIHsgYmFja2dyb3VuZDogdmFyKC0t
ZmFyYmUtZXJmb2xnKTsgfQoudG9hc3QtZmVobGVyIHsgYmFja2dyb3VuZDogdmFyKC0tZmFyYmUt
ZmVobGVyKTsgfQoudG9hc3QtaW5mbyB7IGJhY2tncm91bmQ6IHZhcigtLWZhcmJlLWluZm8pOyB9
Ci50b2FzdC13YXJudW5nIHsgYmFja2dyb3VuZDogdmFyKC0tZmFyYmUtd2FybnVuZyk7IH0KQGtl
eWZyYW1lcyB0b2FzdEVpbiB7IGZyb20geyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMTZweCk7IG9w
YWNpdHk6IDA7IH0gdG8geyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7IG9wYWNpdHk6IDE7IH0g
fQoKLyogPT09PT0gQWxsZ2VtZWluID09PT09ICovCi50ZXh0LW11dGVkIHsgY29sb3I6IHZhcigt
LXRleHQtbXV0ZWQpOyB9Ci50ZXh0LWVyZm9sZyB7IGNvbG9yOiB2YXIoLS1mYXJiZS1lcmZvbGcp
OyB9Ci50ZXh0LWZlaGxlciB7IGNvbG9yOiB2YXIoLS1mYXJiZS1mZWhsZXIpOyB9Cgpjb2RlIHsK
ICAgIGJhY2tncm91bmQ6IHZhcigtLWJnLWNhcmQtYWx0KTsgcGFkZGluZzogMXB4IDZweDsgYm9y
ZGVyLXJhZGl1czogdmFyKC0tcmFkaXVzLXhzKTsKICAgIGZvbnQtZmFtaWx5OiAiQ29uc29sYXMi
LCAiQ291cmllciBOZXciLCBtb25vc3BhY2U7IGZvbnQtc2l6ZTogdmFyKC0tZnMtYmFzZSk7CiAg
ICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1ib3JkZXItbGlnaHQpOwp9CgovKiBTY3JvbGxiYXJz
OiBkZXV0bGljaCBzaWNodGJhciwgdm9yIGFsbGVtIGRpZSBob3Jpem9udGFsZSBMZWlzdGUgdW50
ZXIgZGVtCiAgIEhhdXB0cGxhbiBtaXQgMTMgTW9uYXRlbiBCcmVpdGUuICovCjo6LXdlYmtpdC1z
Y3JvbGxiYXIgeyB3aWR0aDogMTRweDsgaGVpZ2h0OiAxNHB4OyB9Cjo6LXdlYmtpdC1zY3JvbGxi
YXItdHJhY2sgewogICAgYmFja2dyb3VuZDogdmFyKC0tYmctY2FyZC1hbHQpOwp9Cjo6LXdlYmtp
dC1zY3JvbGxiYXItdGh1bWIgewogICAgYmFja2dyb3VuZDogdmFyKC0tdGV4dC1tdXRlZCk7CiAg
ICBib3JkZXItcmFkaXVzOiA3cHg7CiAgICBib3JkZXI6IDJweCBzb2xpZCB2YXIoLS1iZy1jYXJk
LWFsdCk7CiAgICBtaW4td2lkdGg6IDQwcHg7IG1pbi1oZWlnaHQ6IDQwcHg7Cn0KOjotd2Via2l0
LXNjcm9sbGJhci10aHVtYjpob3ZlciB7IGJhY2tncm91bmQ6IHZhcigtLXRleHQtc2Vjb25kYXJ5
KTsgfQo6Oi13ZWJraXQtc2Nyb2xsYmFyLWNvcm5lciB7IGJhY2tncm91bmQ6IHZhcigtLWJnLWNh
cmQtYWx0KTsgfQoKLyogRmlyZWZveCAqLwoqIHsKICAgIHNjcm9sbGJhci13aWR0aDogYXV0bzsK
ICAgIHNjcm9sbGJhci1jb2xvcjogdmFyKC0tdGV4dC1tdXRlZCkgdmFyKC0tYmctY2FyZC1hbHQp
Owp9CgovKiA9PT09PSBFbW9qaS1QaWNrZXIgKHNjaGxpY2h0LCBTeXN0ZW0tRm9udCBsaWVmZXJ0
IEFwcGxlLUVtb2ppcyBhdWYgbWFjT1MvaU9TKSA9PT09PSAqLwouZW1vamktcGlja2VyIHsKICAg
IC8qIE11c3MgdWViZXIgZGVtIE1vZGFsLU92ZXJsYXkgbGllZ2VuICgubW9kYWwgaGF0IHZhcigt
LXotbW9kYWwpKSwKICAgICAgIHNvbnN0IGxhbmRldCBqZWRlciBLbGljayBhdWYgZGVuIHZlcm1l
aW50bGljaGVuIFBpY2tlciBhdWYgZGVtCiAgICAgICBkYXJ1ZWJlciBsaWVnZW5kZW4gT3Zlcmxh
eSB1bmQgc2NobGllc3N0IGRhcyBNb2RhbC4gKi8KICAgIHBvc2l0aW9uOiBmaXhlZDsgei1pbmRl
eDogdmFyKC0tei1wb3BvdmVyKTsKICAgIGJhY2tncm91bmQ6IHZhcigtLWJnLWNhcmQpOyBib3Jk
ZXI6IDFweCBzb2xpZCB2YXIoLS1ib3JkZXItc3Ryb25nKTsKICAgIGJvcmRlci1yYWRpdXM6IHZh
cigtLXJhZGl1cy1sZyk7IGJveC1zaGFkb3c6IDAgOHB4IDMycHggcmdiYSgwLDAsMCwwLjE4KTsK
ICAgIHBhZGRpbmc6IDhweDsgd2lkdGg6IDI3MnB4OyB1c2VyLXNlbGVjdDogbm9uZTsKfQouZW1v
amktcGlja2VyLWthdCB7IGZvbnQtc2l6ZTogdmFyKC0tZnMteHMpOyBmb250LXdlaWdodDogNjAw
OyBjb2xvcjogdmFyKC0tdGV4dC1tdXRlZCk7CiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNl
OyBsZXR0ZXItc3BhY2luZzogMC40cHg7IHBhZGRpbmc6IDZweCA0cHggMnB4OyB9Ci5lbW9qaS1w
aWNrZXIta2F0OmZpcnN0LWNoaWxkIHsgcGFkZGluZy10b3A6IDJweDsgfQouZW1vamktcGlja2Vy
LWdyaWQgeyBkaXNwbGF5OiBncmlkOyBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCg4LCAx
ZnIpOyBnYXA6IDJweDsgfQouZW1vamktcGlja2VyLW9wdCB7CiAgICBmb250LXNpemU6IDIwcHg7
IGxpbmUtaGVpZ2h0OiAxOyBwYWRkaW5nOiA0cHg7IGJvcmRlci1yYWRpdXM6IHZhcigtLXJhZGl1
cy1tZCk7CiAgICBjdXJzb3I6IHBvaW50ZXI7IHRleHQtYWxpZ246IGNlbnRlcjsgYmFja2dyb3Vu
ZDogdHJhbnNwYXJlbnQ7IGJvcmRlcjogbm9uZTsKICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQg
MC4wOHM7CiAgICAvKiBNb25vY2hyb21lIFN5bWJvbC1EYXJzdGVsbHVuZyAoQ2hlcnJ5LVBpY2sg
OGIyZDBmZCkgKi8KICAgIGZvbnQtZmFtaWx5OiAiU2Vnb2UgVUkgU3ltYm9sIiwiQ2FtYnJpYSBN
YXRoIiwiU1RJWCIsIkRlamFWdSBTYW5zIiwiTHVjaWRhIFNhbnMgVW5pY29kZSIsc2Fucy1zZXJp
ZjsKICAgIGZvbnQtdmFyaWFudC1lbW9qaTogdGV4dDsKfQouZW1vamktcGlja2VyLW9wdDpob3Zl
ciB7IGJhY2tncm91bmQ6IHZhcigtLWJnLWhvdmVyKTsgfQouZW1vamktcGlja2VyLW9wdC5rZWlu
ZXIgeyBmb250LXNpemU6IHZhcigtLWZzLWJhc2UpOyBjb2xvcjogdmFyKC0tdGV4dC1tdXRlZCk7
IGZvbnQtZmFtaWx5OiBpbmhlcml0OyB9CgovKiBFbW9qaS1BdXN3YWhsLUJ1dHRvbiBpbiBBZG1p
bi1UYWJlbGxlICovCi5lbW9qaS1idG4gewogICAgd2lkdGg6IDM4cHg7IGhlaWdodDogMzJweDsg
Zm9udC1zaXplOiAxOHB4OyBsaW5lLWhlaWdodDogMTsKICAgIGJhY2tncm91bmQ6IHZhcigtLWJn
LWlucHV0KTsgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYm9yZGVyLWNvbG9yKTsgYm9yZGVyLXJh
ZGl1czogNXB4OwogICAgY3Vyc29yOiBwb2ludGVyOyBwYWRkaW5nOiAwOwogICAgZm9udC1mYW1p
bHk6ICJBcHBsZSBDb2xvciBFbW9qaSIsIlNlZ29lIFVJIEVtb2ppIiwiTm90byBDb2xvciBFbW9q
aSIsc2Fucy1zZXJpZjsKfQouZW1vamktYnRuOmhvdmVyIHsgYm9yZGVyLWNvbG9yOiB2YXIoLS1m
YXJiZS1ha3plbnQpOyB9Ci5lbW9qaS1idG4ubGVlciB7IGNvbG9yOiB2YXIoLS10ZXh0LW11dGVk
KTsgZm9udC1zaXplOiB2YXIoLS1mcy1sZyk7IGZvbnQtZmFtaWx5OiBpbmhlcml0OyB9CgovKiBL
bGlja2JhcmUgU29uZGVyLVplbGxlIGltIEhlYWRlciAqLwoua2Qtc29uZGVyLWtsaWNrYmFyIHsg
Y3Vyc29yOiBwb2ludGVyOyB9Ci5rZC1zb25kZXIta2xpY2tiYXI6aG92ZXIgeyBmaWx0ZXI6IGJy
aWdodG5lc3MoMS4wOCk7IH0KCi8qIFNvbmRlci1XYXJuLU1vZGFsICovCi5zb25kZXItd2Fybi1t
b2RhbCAubW9kYWwta29wZiB7IGJhY2tncm91bmQ6IHZhcigtLWZhcmJlLXdhcm51bmcpOyB9Ci5z
b25kZXItd2Fybi1tb2RhbC50eXAtaGlud2VpcyAubW9kYWwta29wZiB7IGJhY2tncm91bmQ6IHZh
cigtLWZhcmJlLWFremVudCk7IH0KLnNvbmRlci13YXJuLWljb24geyBmb250LXNpemU6IDQ4cHg7
IGxpbmUtaGVpZ2h0OiAxOyB0ZXh0LWFsaWduOiBjZW50ZXI7IG1hcmdpbjogOHB4IDAgMTJweDsK
ICAgIGZvbnQtZmFtaWx5OiAiQXBwbGUgQ29sb3IgRW1vamkiLCJTZWdvZSBVSSBFbW9qaSIsIk5v
dG8gQ29sb3IgRW1vamkiLHNhbnMtc2VyaWY7IH0KLnNvbmRlci13YXJuLXRpdGVsIHsgZm9udC1z
aXplOiAxOHB4OyBmb250LXdlaWdodDogNjAwOyB0ZXh0LWFsaWduOiBjZW50ZXI7IGNvbG9yOiB2
YXIoLS10ZXh0LWhlYWRpbmcpOyBtYXJnaW4tYm90dG9tOiAxMHB4OyBwYWRkaW5nOiAwIDhweDsg
d29yZC13cmFwOiBicmVhay13b3JkOyBvdmVyZmxvdy13cmFwOiBicmVhay13b3JkOyB9Ci5zb25k
ZXItd2Fybi10ZXh0IHsKICAgIGZvbnQtc2l6ZTogdmFyKC0tZnMtbGcpOyBsaW5lLWhlaWdodDog
MS41NTsgY29sb3I6IHZhcigtLXRleHQtcHJpbWFyeSk7IHBhZGRpbmc6IDEycHggMTRweDsKICAg
IGJhY2tncm91bmQ6IHZhcigtLWJnLWNhcmQtYWx0KTsgYm9yZGVyLXJhZGl1czogOHB4OyBib3Jk
ZXI6IDFweCBzb2xpZCB2YXIoLS1ib3JkZXItbGlnaHQpOwogICAgbWF4LXdpZHRoOiAxMDAlOyBt
YXgtaGVpZ2h0OiA1MHZoOyBvdmVyZmxvdy15OiBhdXRvOwogICAgd29yZC13cmFwOiBicmVhay13
b3JkOyBvdmVyZmxvdy13cmFwOiBicmVhay13b3JkOyB3b3JkLWJyZWFrOiBicmVhay13b3JkOwp9
Ci5zb25kZXItd2Fybi10ZXh0IHAgeyBtYXJnaW46IDAgMCAwLjZlbSAwOyB9Ci5zb25kZXItd2Fy
bi10ZXh0IHA6bGFzdC1jaGlsZCB7IG1hcmdpbi1ib3R0b206IDA7IH0KLnNvbmRlci13YXJuLXRl
eHQgdWwsIC5zb25kZXItd2Fybi10ZXh0IG9sIHsgbWFyZ2luOiAwLjRlbSAwIDAuNGVtIDEuNGVt
OyBwYWRkaW5nOiAwOyB9Ci5zb25kZXItd2Fybi10ZXh0IGxpIHsgbWFyZ2luLWJvdHRvbTogMC4y
ZW07IH0KLnNvbmRlci13YXJuLXRleHQgYSB7IGNvbG9yOiB2YXIoLS1mYXJiZS1ha3plbnQpOyB0
ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTsgd29yZC1icmVhazogYnJlYWstYWxsOyB9Ci5zb25k
ZXItd2Fybi1kYXR1bSB7IGZvbnQtc2l6ZTogdmFyKC0tZnMtYmFzZSk7IGNvbG9yOiB2YXIoLS10
ZXh0LW11dGVkKTsgdGV4dC1hbGlnbjogY2VudGVyOyBtYXJnaW4tdG9wOiAxMnB4OyB9CgovKiBS
aWNoLVRleHQtRWRpdG9yICovCi5ydGUtdG9vbGJhciB7CiAgICBkaXNwbGF5OiBmbGV4OyBnYXA6
IDJweDsgcGFkZGluZzogNHB4OyBtYXJnaW4tYm90dG9tOiA0cHg7CiAgICBiYWNrZ3JvdW5kOiB2
YXIoLS1iZy1jYXJkLWFsdCk7IGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWJvcmRlci1jb2xvcik7
CiAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1yYWRpdXMtbWQpIDZweCAwIDA7IGJvcmRlci1ib3R0
b206IG5vbmU7IGZsZXgtd3JhcDogd3JhcDsKfQoucnRlLWJ0biB7CiAgICBtaW4td2lkdGg6IDMw
cHg7IGhlaWdodDogMjhweDsgcGFkZGluZzogMCA4cHg7IGZvbnQtc2l6ZTogdmFyKC0tZnMtbWQp
OwogICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7IGJvcmRlcjogMXB4IHNvbGlkIHRyYW5zcGFy
ZW50OyBib3JkZXItcmFkaXVzOiB2YXIoLS1yYWRpdXMtc20pOwogICAgY3Vyc29yOiBwb2ludGVy
OyBjb2xvcjogdmFyKC0tdGV4dC1wcmltYXJ5KTsKfQoucnRlLWJ0bjpob3ZlciB7IGJhY2tncm91
bmQ6IHZhcigtLWJnLWhvdmVyKTsgfQoucnRlLWJ0bi5ha3RpdiB7IGJhY2tncm91bmQ6IHZhcigt
LWJnLWFjdGl2ZSk7IGJvcmRlci1jb2xvcjogdmFyKC0tYm9yZGVyLWNvbG9yKTsgfQoucnRlLXNl
cCB7IHdpZHRoOiAxcHg7IGJhY2tncm91bmQ6IHZhcigtLWJvcmRlci1jb2xvcik7IG1hcmdpbjog
NHB4IDRweDsgfQoucnRlLWVkaXRvciB7CiAgICBtaW4taGVpZ2h0OiAxMTBweDsgbWF4LWhlaWdo
dDogMzAwcHg7IG92ZXJmbG93LXk6IGF1dG87CiAgICBwYWRkaW5nOiAxMHB4IDEycHg7IGZvbnQt
c2l6ZTogdmFyKC0tZnMtbWQpOyBsaW5lLWhlaWdodDogMS41OwogICAgYmFja2dyb3VuZDogdmFy
KC0tYmctaW5wdXQpOyBjb2xvcjogdmFyKC0tdGV4dC1wcmltYXJ5KTsKICAgIGJvcmRlcjogMXB4
IHNvbGlkIHZhcigtLWJvcmRlci1jb2xvcik7IGJvcmRlci1yYWRpdXM6IDAgMCA2cHggNnB4Owog
ICAgd29yZC13cmFwOiBicmVhay13b3JkOyBvdmVyZmxvdy13cmFwOiBicmVhay13b3JkOyB3b3Jk
LWJyZWFrOiBicmVhay13b3JkOwogICAgbWF4LXdpZHRoOiAxMDAlOwp9Ci5ydGUtZWRpdG9yOmZv
Y3VzIHsgb3V0bGluZTogbm9uZTsgYm9yZGVyLWNvbG9yOiB2YXIoLS1mYXJiZS1ha3plbnQpOyB9
Ci5ydGUtZWRpdG9yIHAgeyBtYXJnaW46IDAgMCAwLjZlbSAwOyB9Ci5ydGUtZWRpdG9yIHA6bGFz
dC1jaGlsZCB7IG1hcmdpbi1ib3R0b206IDA7IH0KLnJ0ZS1lZGl0b3IgdWwsIC5ydGUtZWRpdG9y
IG9sIHsgbWFyZ2luOiAwLjRlbSAwIDAuNGVtIDEuNGVtOyBwYWRkaW5nOiAwOyB9Ci5ydGUtZWRp
dG9yIGEgeyBjb2xvcjogdmFyKC0tZmFyYmUtYWt6ZW50KTsgd29yZC1icmVhazogYnJlYWstYWxs
OyB9Ci8qIGJsb2NrcXVvdGUgPSBJbmRlbnQtTGV2ZWwuIHN0eWxlV2l0aENTUyhmYWxzZSkgc29y
Z3QgZGFmdWVyIGRhc3MgZXhlY0NvbW1hbmQKICAgJ2luZGVudCcgbmVzdGVkIGJsb2NrcXVvdGVz
IGVyemV1Z3Qg4oCUIHBybyBMZXZlbCBtZWhyIG1hcmdpbi1sZWZ0LiBGbGFjaAogICBnZXN0eWx0
IChrZWluIFppdGF0LUxvb2spLCBibGVpYnQgemVpbGVudWViZXJncmVpZmVuZC4gKi8KLnJ0ZS1l
ZGl0b3IgYmxvY2txdW90ZSB7CiAgICBtYXJnaW46IDAgMCAwIDI0cHg7CiAgICBwYWRkaW5nOiAw
OwogICAgYm9yZGVyOiBub25lOwogICAgcXVvdGVzOiBub25lOwp9Ci5ydGUtZWRpdG9yIGJsb2Nr
cXVvdGU6OmJlZm9yZSwgLnJ0ZS1lZGl0b3IgYmxvY2txdW90ZTo6YWZ0ZXIgeyBjb250ZW50OiBu
b25lOyB9CgovKiA9PT09PSBBZG1pbjogQXVza2xhcHBiYXJlIEhpbndlaXNib3hlbiA9PT09PSAq
LwouYWRtaW4taW5mbyB7CiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1iZy1jYXJkKTsgYm9yZGVyOiAx
cHggc29saWQgdmFyKC0tYm9yZGVyLWxpZ2h0KTsKICAgIGJvcmRlci1yYWRpdXM6IDhweDsgbWFy
Z2luLWJvdHRvbTogMjBweDsgb3ZlcmZsb3c6IGhpZGRlbjsKfQouYWRtaW4td2FybmJveCB7CiAg
ICBiYWNrZ3JvdW5kOiB2YXIoLS1mYXJiZS13YXJudW5nLWJnLCAjZmZmN2VkKTsKICAgIGJvcmRl
ci1sZWZ0OiA0cHggc29saWQgdmFyKC0tZmFyYmUtd2FybnVuZywgI2Y1OWUwYik7CiAgICBjb2xv
cjogdmFyKC0tdGV4dC1wcmltYXJ5KTsKICAgIHBhZGRpbmc6IDEwcHggMTRweDsKICAgIGJvcmRl
ci1yYWRpdXM6IHZhcigtLXJhZGl1cy1zbSk7CiAgICBmb250LXNpemU6IHZhcigtLWZzLW1kKTsK
ICAgIGxpbmUtaGVpZ2h0OiAxLjU1OwogICAgbWFyZ2luLWJvdHRvbTogMTZweDsKfQpbZGF0YS10
aGVtZT0ibmlnaHQiXSAuYWRtaW4td2FybmJveCB7CiAgICBiYWNrZ3JvdW5kOiByZ2JhKDI0NSwg
MTU4LCAxMSwgMC4xMik7CiAgICBjb2xvcjogdmFyKC0tdGV4dC1wcmltYXJ5KTsKfQouYWRtaW4t
aW5mbyA+IHN1bW1hcnkgewogICAgbGlzdC1zdHlsZTogbm9uZTsgcGFkZGluZzogMTBweCAxNHB4
OyBjdXJzb3I6IHBvaW50ZXI7IHVzZXItc2VsZWN0OiBub25lOwogICAgZm9udC13ZWlnaHQ6IDYw
MDsgZm9udC1zaXplOiB2YXIoLS1mcy1tZCk7IGNvbG9yOiB2YXIoLS10ZXh0LWhlYWRpbmcpOwog
ICAgYmFja2dyb3VuZDogdmFyKC0tYmctY2FyZC1hbHQpOwogICAgZGlzcGxheTogZmxleDsgYWxp
Z24taXRlbXM6IGNlbnRlcjsgZ2FwOiAxMHB4OwogICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAw
LjE1czsKfQouYWRtaW4taW5mbyA+IHN1bW1hcnk6aG92ZXIgeyBiYWNrZ3JvdW5kOiB2YXIoLS1i
Zy1ob3Zlcik7IH0KLmFkbWluLWluZm8gPiBzdW1tYXJ5Ojotd2Via2l0LWRldGFpbHMtbWFya2Vy
IHsgZGlzcGxheTogbm9uZTsgfQouYWRtaW4taW5mbyA+IHN1bW1hcnk6Om1hcmtlciB7IGNvbnRl
bnQ6ICcnOyB9Ci5hZG1pbi1pbmZvLWNoZXYgewogICAgZGlzcGxheTogaW5saW5lLWJsb2NrOyBm
b250LXNpemU6IHZhcigtLWZzLXhzKTsgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuMnM7IGNvbG9y
OiB2YXIoLS10ZXh0LW11dGVkKTsKICAgIHdpZHRoOiAxMHB4Owp9Ci5hZG1pbi1pbmZvW29wZW5d
ID4gc3VtbWFyeSB7IGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB2YXIoLS1ib3JkZXItbGlnaHQp
OyB9Ci5hZG1pbi1pbmZvW29wZW5dIC5hZG1pbi1pbmZvLWNoZXYgeyB0cmFuc2Zvcm06IHJvdGF0
ZSg5MGRlZyk7IH0KLmFkbWluLWluZm8tYmFkZ2UgewogICAgbWFyZ2luLWxlZnQ6IGF1dG87IGZv
bnQtc2l6ZTogdmFyKC0tZnMteHMpOyBmb250LXdlaWdodDogNTAwOyBjb2xvcjogdmFyKC0tdGV4
dC1tdXRlZCk7CiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKfQouYWRtaW4taW5mby1ib2R5
IHsKICAgIHBhZGRpbmc6IDE0cHggMTZweDsgZm9udC1zaXplOiAxMi41cHg7IGxpbmUtaGVpZ2h0
OiAxLjY7IGNvbG9yOiB2YXIoLS10ZXh0LXByaW1hcnkpOwp9Ci5hZG1pbi1pbmZvLWJvZHkgcCB7
IG1hcmdpbi1ib3R0b206IDEwcHg7IH0KLmFkbWluLWluZm8tYm9keSBwOmxhc3QtY2hpbGQgeyBt
YXJnaW4tYm90dG9tOiAwOyB9Ci5hZG1pbi1pbmZvLWJvZHkgdWwgeyBtYXJnaW46IDZweCAwIDEy
cHggMjJweDsgfQouYWRtaW4taW5mby1ib2R5IHVsIHVsIHsgbWFyZ2luOiA0cHggMCA2cHggMThw
eDsgfQouYWRtaW4taW5mby1ib2R5IGxpIHsgbWFyZ2luLWJvdHRvbTogM3B4OyB9Ci5hZG1pbi1p
bmZvLWJvZHkgY29kZSB7CiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1iZy1jYXJkLWFsdCk7IHBhZGRp
bmc6IDFweCA1cHg7IGJvcmRlci1yYWRpdXM6IHZhcigtLXJhZGl1cy14cyk7CiAgICBmb250LXNp
emU6IDExLjVweDsgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYm9yZGVyLWxpZ2h0KTsKfQouYWRt
aW4taW5mby1ib2R5IHN0cm9uZyB7IGNvbG9yOiB2YXIoLS10ZXh0LWhlYWRpbmcpOyB9CgovKiA9
PT09PSBTY2hpY2h0Y29kZS1Wb3JzY2hhdTogR3J1cHBpZXJ1bmcgPT09PT0gKi8KLnNjLXZvcnNj
aGF1LXRvb2xiYXIgewogICAgZGlzcGxheTogZmxleDsgZ2FwOiAxMnB4OyBhbGlnbi1pdGVtczog
Y2VudGVyOyBtYXJnaW4tYm90dG9tOiAxMnB4OyBmbGV4LXdyYXA6IHdyYXA7CiAgICBwYWRkaW5n
OiA4cHggMTJweDsgYmFja2dyb3VuZDogdmFyKC0tYmctY2FyZC1hbHQpOyBib3JkZXItcmFkaXVz
OiB2YXIoLS1yYWRpdXMtbWQpOwp9Ci5zYy12b3JzY2hhdS10b29sYmFyIGxhYmVsIHsgZm9udC1z
aXplOiB2YXIoLS1mcy1iYXNlKTsgZm9udC13ZWlnaHQ6IDYwMDsgY29sb3I6IHZhcigtLXRleHQt
c2Vjb25kYXJ5KTsgfQouc2Mtdm9yc2NoYXUtdG9vbGJhciBzZWxlY3QgewogICAgcGFkZGluZzog
NHB4IDhweDsgZm9udC1zaXplOiB2YXIoLS1mcy1iYXNlKTsgYmFja2dyb3VuZDogdmFyKC0tYmct
aW5wdXQpOwogICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYm9yZGVyLWNvbG9yKTsgYm9yZGVy
LXJhZGl1czogdmFyKC0tcmFkaXVzLXNtKTsKfQouc2MtZ3J1cHBlIHsKICAgIG1hcmdpbi1ib3R0
b206IDE2cHg7IGJvcmRlci1sZWZ0OiAzcHggc29saWQgdmFyKC0tYm9yZGVyLXN0cm9uZyk7IHBh
ZGRpbmctbGVmdDogMTBweDsKfQouc2MtZ3J1cHBlLXRpdGVsIHsKICAgIGZvbnQtc2l6ZTogdmFy
KC0tZnMtc20pOyBmb250LXdlaWdodDogNzAwOyBjb2xvcjogdmFyKC0tdGV4dC1tdXRlZCk7IHRl
eHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7CiAgICBsZXR0ZXItc3BhY2luZzogMC41cHg7IG1hcmdp
bi1ib3R0b206IDZweDsKfQouc2MtZ3J1cHBlLWxpc3RlIHsKICAgIGRpc3BsYXk6IGdyaWQ7IGdy
aWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KGF1dG8tZmlsbCwgbWlubWF4KDIyMHB4LCAxZnIp
KTsKICAgIGdhcDogNnB4Owp9Ci8qIFBlcnNvbmFsLVRhYmVsbGU6IE5hY2huYW1lIGFscyBrbGlj
a2JhcmVyIExpbmsgenVtIEVkaXQtTW9kYWwgKi8KLnBlcnNvbi1uYW1lLWxpbmsgewogICAgY3Vy
c29yOiBwb2ludGVyOwogICAgYm9yZGVyLWJvdHRvbTogMXB4IGRvdHRlZCB0cmFuc3BhcmVudDsK
ICAgIHRyYW5zaXRpb246IGJvcmRlci1jb2xvciAwLjE1cywgY29sb3IgMC4xNXM7Cn0KLnBlcnNv
bi1uYW1lLWxpbms6aG92ZXIgewogICAgY29sb3I6IHZhcigtLWZhcmJlLXByaW1hZXIpOwogICAg
Ym9yZGVyLWJvdHRvbS1jb2xvcjogdmFyKC0tZmFyYmUtcHJpbWFlcik7Cn0KCi8qICJOZXVlciBG
YWNoYXVmc2ljaHQtRWludHJhZyItTW9kYWwgKEJ1Zy1GaXggKyBGZWF0dXJlOiBEcm9wZG93biBk
ZXIgV2FjaGxlaXR1bmdlbikgKi8KLmZhLW5ldS1tb2R1cy16ZWlsZSB7CiAgICBkaXNwbGF5OiBm
bGV4OyBnYXA6IDE4cHg7IGZsZXgtd3JhcDogd3JhcDsKICAgIHBhZGRpbmc6IDEwcHggMTRweDsK
ICAgIGJhY2tncm91bmQ6IHZhcigtLWJnLWNhcmQtYWx0KTsKICAgIGJvcmRlci1yYWRpdXM6IHZh
cigtLXJhZGl1cy1tZCk7CiAgICBtYXJnaW4tYm90dG9tOiAxNHB4Owp9Ci5mYS1uZXUtbW9kdXMt
b3B0IHsKICAgIGRpc3BsYXk6IGZsZXg7IGFsaWduLWl0ZW1zOiBjZW50ZXI7IGdhcDogNnB4Owog
ICAgY3Vyc29yOiBwb2ludGVyOwogICAgZm9udC1zaXplOiB2YXIoLS1mcy1tZCk7CiAgICBmb250
LXdlaWdodDogNTAwOwp9Ci5mYS1uZXUtbW9kdXMtb3B0IGlucHV0W3R5cGU9InJhZGlvIl0geyB3
aWR0aDogMTZweDsgaGVpZ2h0OiAxNnB4OyBjdXJzb3I6IHBvaW50ZXI7IH0KLmZhLW5ldS1iZXJl
aWNoIHsKICAgIHBhZGRpbmctdG9wOiA0cHg7Cn0KLmZhLW5ldS1ncmlkIHsKICAgIGRpc3BsYXk6
IGdyaWQ7CiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmciAxZnI7CiAgICBnYXA6IDEycHgg
MTRweDsKICAgIG1hcmdpbi1ib3R0b206IDEwcHg7Cn0KLmRsZy1sYWJlbCB7IGRpc3BsYXk6IGJs
b2NrOyBmb250LXdlaWdodDogNjAwOyBmb250LXNpemU6IHZhcigtLWZzLW1kKTsgbWFyZ2luLWJv
dHRvbTogNHB4OyBjb2xvcjogdmFyKC0tdGV4dC1oZWFkaW5nKTsgfQoKLyogTW9kYWwtRW50d3Vy
Zi1SZXN0b3JlLUJhbm5lciAoU3BlYyBGLjQpICovCi5tb2RhbC1lbnR3dXJmLWJhbm5lciB7CiAg
ICBkaXNwbGF5OiBmbGV4OwogICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgIGdhcDogMTBweDsK
ICAgIHBhZGRpbmc6IDEwcHggMTRweDsKICAgIG1hcmdpbi1ib3R0b206IDE2cHg7CiAgICBiYWNr
Z3JvdW5kOiByZ2JhKDc0LDE0NCwyMjYsMC4xMCk7CiAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIo
LS1mYXJiZS1ha3plbnQpOwogICAgYm9yZGVyLXJhZGl1czogdmFyKC0tcmFkaXVzLW1kKTsKICAg
IGZvbnQtc2l6ZTogdmFyKC0tZnMtbWQpOwogICAgY29sb3I6IHZhcigtLXRleHQtcHJpbWFyeSk7
CiAgICBmbGV4LXdyYXA6IHdyYXA7Cn0KLm1lYi1pY29uIHsgZm9udC1zaXplOiAxOHB4OyBsaW5l
LWhlaWdodDogMTsgfQoubWViLXRleHQgeyBmbGV4OiAxOyBtaW4td2lkdGg6IDIwMHB4OyB9Cltk
YXRhLXRoZW1lPSJuaWdodCJdIC5tb2RhbC1lbnR3dXJmLWJhbm5lciB7IGJhY2tncm91bmQ6IHJn
YmEoNzQsMTQ0LDIyNiwwLjE4KTsgfQoKLyogRmFjaGF1ZnNpY2h0IEdyYW51bGFyLVN1Yi1TaWNo
dGJhcmtlaXRzLU1vZGFsIChTcGVjIEYuMikgKi8KLmZhLXN1YnNpY2h0LWFrdGlvbmVuIHsKICAg
IGRpc3BsYXk6IGZsZXg7IGdhcDogOHB4OyBmbGV4LXdyYXA6IHdyYXA7CiAgICBtYXJnaW4tYm90
dG9tOiAxNHB4Owp9Ci5mYS1zdWJzaWNodC1saXN0ZSB7CiAgICBkaXNwbGF5OiBmbGV4OyBmbGV4
LWRpcmVjdGlvbjogY29sdW1uOyBnYXA6IDRweDsKICAgIG1heC1oZWlnaHQ6IDUwdmg7IG92ZXJm
bG93LXk6IGF1dG87CiAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1ib3JkZXItbGlnaHQpOwog
ICAgYm9yZGVyLXJhZGl1czogdmFyKC0tcmFkaXVzLW1kKTsKICAgIHBhZGRpbmc6IDEwcHggMTRw
eDsKICAgIGJhY2tncm91bmQ6IHZhcigtLWJnLWNhcmQpOwp9Ci5mYS1zdWJzaWNodC16ZWlsZSB7
CiAgICBkaXNwbGF5OiBmbGV4OyBhbGlnbi1pdGVtczogY2VudGVyOyBnYXA6IDhweDsKICAgIHBh
ZGRpbmc6IDRweCA2cHg7IGJvcmRlci1yYWRpdXM6IHZhcigtLXJhZGl1cy14cyk7CiAgICBjdXJz
b3I6IHBvaW50ZXI7CiAgICBmb250LXNpemU6IHZhcigtLWZzLW1kKTsKfQouZmEtc3Vic2ljaHQt
emVpbGU6aG92ZXIgeyBiYWNrZ3JvdW5kOiB2YXIoLS1iZy1ob3Zlcik7IH0KLmZhLXN1YnNpY2h0
LXplaWxlIGlucHV0W3R5cGU9ImNoZWNrYm94Il0geyB3aWR0aDogMTZweDsgaGVpZ2h0OiAxNnB4
OyBjdXJzb3I6IHBvaW50ZXI7IH0KCi8qIG1haWx0bzotQXV0by1UcmlnZ2VyLUtvbmZpZyBpbSBW
b3JsYWdlbi1FZGl0b3IgKGF1dG9UcmlnZ2VyLVZvcmxhZ2VuKSAqLwouZXZtLXRyaWdnZXItYmxv
Y2sgewogICAgbWFyZ2luLXRvcDogMTZweDsKICAgIHBhZGRpbmc6IDEycHggMTRweDsKICAgIGJh
Y2tncm91bmQ6IHZhcigtLWJnLWNhcmQtYWx0KTsKICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigt
LWJvcmRlci1saWdodCk7CiAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1yYWRpdXMtbWQpOwp9Ci5l
dm0tdHJpZ2dlci10aXRlbCB7IGZvbnQtd2VpZ2h0OiA3MDA7IGZvbnQtc2l6ZTogdmFyKC0tZnMt
bWQpOyBjb2xvcjogdmFyKC0tdGV4dC1oZWFkaW5nKTsgbWFyZ2luLWJvdHRvbTogMTBweDsgfQou
ZXZtLXRyaWdnZXItYWt0aXYgeyBkaXNwbGF5OiBmbGV4OyBhbGlnbi1pdGVtczogY2VudGVyOyBn
YXA6IDhweDsgY3Vyc29yOiBwb2ludGVyOyBmb250LXdlaWdodDogNTAwOyBmb250LXNpemU6IHZh
cigtLWZzLW1kKTsgfQouZXZtLXRyaWdnZXItYWt0aXYgaW5wdXRbdHlwZT0iY2hlY2tib3giXSB7
IHdpZHRoOiAxNnB4OyBoZWlnaHQ6IDE2cHg7IGN1cnNvcjogcG9pbnRlcjsgfQouZXZtLWVtcGYt
bGlzdGUgewogICAgZGlzcGxheTogZmxleDsgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsgZ2FwOiA0
cHg7CiAgICBtYXJnaW4tdG9wOiA0cHg7CiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1iZy1jYXJkKTsK
ICAgIHBhZGRpbmc6IDhweCAxMHB4OwogICAgYm9yZGVyLXJhZGl1czogdmFyKC0tcmFkaXVzLXNt
KTsKICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWJvcmRlci1saWdodCk7Cn0KLmV2bS1lbXBm
LXplaWxlIHsgZGlzcGxheTogZmxleDsgYWxpZ24taXRlbXM6IGNlbnRlcjsgZ2FwOiA4cHg7IGN1
cnNvcjogcG9pbnRlcjsgZm9udC1zaXplOiAxMi41cHg7IGxpbmUtaGVpZ2h0OiAxLjQ7IHBhZGRp
bmc6IDJweCAwOyB9Ci5ldm0tZW1wZi16ZWlsZSBpbnB1dFt0eXBlPSJjaGVja2JveCJdIHsgd2lk
dGg6IDE1cHg7IGhlaWdodDogMTVweDsgY3Vyc29yOiBwb2ludGVyOyB9CgovKiBFLU1haWwtVm9y
bGFnZW4gS2FydGVuLUxheW91dCAoRmluZGluZyBDLjcgLyBTcGVjIEYuMSkgKi8KLmVtYWlsdm9y
bGFnZW4ta2FydGVuIHsKICAgIGRpc3BsYXk6IGdyaWQ7CiAgICBncmlkLXRlbXBsYXRlLWNvbHVt
bnM6IHJlcGVhdChhdXRvLWZpdCwgbWlubWF4KDQyMHB4LCAxZnIpKTsKICAgIGdhcDogMTZweDsK
ICAgIG1hcmdpbi10b3A6IDE2cHg7Cn0KLmVtYWlsdm9ybGFnZS1rYXJ0ZSB7CiAgICBkaXNwbGF5
OiBncmlkOwogICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiA2NHB4IDFmciBhdXRvOwogICAgZ2Fw
OiAxNHB4OwogICAgYWxpZ24taXRlbXM6IHN0cmV0Y2g7CiAgICBwYWRkaW5nOiAxNnB4IDE4cHg7
CiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1iZy1jYXJkKTsKICAgIGJvcmRlcjogMXB4IHNvbGlkIHZh
cigtLWJvcmRlci1saWdodCk7CiAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1yYWRpdXMtbGcpOwog
ICAgY3Vyc29yOiBwb2ludGVyOwogICAgdGV4dC1hbGlnbjogbGVmdDsKICAgIGZvbnQ6IGluaGVy
aXQ7CiAgICBjb2xvcjogaW5oZXJpdDsKICAgIHRyYW5zaXRpb246IGJvcmRlci1jb2xvciAwLjE1
cywgYm94LXNoYWRvdyAwLjE1cywgdHJhbnNmb3JtIDAuMDZzOwp9Ci5lbWFpbHZvcmxhZ2Uta2Fy
dGU6aG92ZXIgeyBib3JkZXItY29sb3I6IHZhcigtLWZhcmJlLWFremVudCk7IGJveC1zaGFkb3c6
IDAgNHB4IDE0cHggcmdiYSgwLDAsMCwwLjA4KTsgfQouZW1haWx2b3JsYWdlLWthcnRlOmFjdGl2
ZSB7IHRyYW5zZm9ybTogc2NhbGUoMC45OTgpOyB9Ci5ldmstaWNvbiB7CiAgICBkaXNwbGF5OiBm
bGV4OyBhbGlnbi1pdGVtczogY2VudGVyOyBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgIHdp
ZHRoOiA2NHB4OyBoZWlnaHQ6IDY0cHg7CiAgICBib3JkZXItcmFkaXVzOiAxMnB4OwogICAgZm9u
dC1zaXplOiAxMXB4OyBmb250LXdlaWdodDogNzAwOyB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNl
OyBsZXR0ZXItc3BhY2luZzogLjAzZW07CiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7IGxpbmUtaGVp
Z2h0OiAxLjI7IHBhZGRpbmc6IDRweDsKICAgIGJhY2tncm91bmQ6IHZhcigtLWJnLWNhcmQtYWx0
KTsKICAgIGNvbG9yOiB2YXIoLS10ZXh0LXNlY29uZGFyeSk7Cn0KLmV2ay1pY29uLXdhcm51bmcg
eyBiYWNrZ3JvdW5kOiByZ2JhKDIwMiwxMTEsMzAsMC4xOCk7IGNvbG9yOiB2YXIoLS1mYXJiZS13
YXJudW5nKTsgfQouZXZrLWljb24tYWt6ZW50IHsgYmFja2dyb3VuZDogcmdiYSg3NCwxNDQsMjI2
LDAuMTUpOyBjb2xvcjogdmFyKC0tZmFyYmUtYWt6ZW50KTsgfQouZXZrLWluaGFsdCB7IG1pbi13
aWR0aDogMDsgZGlzcGxheTogZmxleDsgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsgZ2FwOiA0cHg7
IH0KLmV2ay10aXRlbCB7IGZvbnQtd2VpZ2h0OiA3MDA7IGZvbnQtc2l6ZTogMTVweDsgY29sb3I6
IHZhcigtLXRleHQtaGVhZGluZyk7IH0KLmV2ay1iZXNjaHJlaWJ1bmcgeyBmb250LXNpemU6IHZh
cigtLWZzLWJhc2UpOyBjb2xvcjogdmFyKC0tdGV4dC1tdXRlZCk7IGxpbmUtaGVpZ2h0OiAxLjQ7
IG1hcmdpbi1ib3R0b206IDRweDsgfQouZXZrLWJldHJlZmYsIC5ldmstcHJldmlldyB7CiAgICBm
b250LXNpemU6IHZhcigtLWZzLWJhc2UpOwogICAgY29sb3I6IHZhcigtLXRleHQtc2Vjb25kYXJ5
KTsKICAgIG92ZXJmbG93OiBoaWRkZW47IHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOyB3aGl0ZS1z
cGFjZTogbm93cmFwOwp9Ci5ldmstYmV0cmVmZiB7IGZvbnQtd2VpZ2h0OiA1MDA7IH0KLmV2ay1s
YWJlbCB7IGNvbG9yOiB2YXIoLS10ZXh0LW11dGVkKTsgZm9udC13ZWlnaHQ6IDYwMDsgbWFyZ2lu
LXJpZ2h0OiA0cHg7IH0KLmV2ay1wcmV2aWV3IHsgZm9udC1zdHlsZTogaXRhbGljOyBvcGFjaXR5
OiAwLjg7IH0KLmV2ay1ha3Rpb24gewogICAgYWxpZ24tc2VsZjogY2VudGVyOwogICAgZm9udC1z
aXplOiB2YXIoLS1mcy1iYXNlKTsgZm9udC13ZWlnaHQ6IDYwMDsKICAgIGNvbG9yOiB2YXIoLS1m
YXJiZS1ha3plbnQpOwogICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKfQovKiBIaWRlLUJ1dHRvbiBv
YmVuIHJlY2h0cyBhdWYgamVkZXIgVm9ybGFnZS1LYXJ0ZS4gRXJzY2hlaW50IG51ciBiZWltCiAg
IEhvdmVyLCBkYW1pdCBkaWUgS2FydGVuLU9wdGlrIGltIFJ1aGV6dXN0YW5kIHNhdWJlciBibGVp
YnQuICovCi5lbWFpbHZvcmxhZ2Uta2FydGUgeyBwb3NpdGlvbjogcmVsYXRpdmU7IH0KLmV2ay1o
aWRlLWJ0biB7CiAgICBwb3NpdGlvbjogYWJzb2x1dGU7IHRvcDogOHB4OyByaWdodDogOHB4Owog
ICAgd2lkdGg6IDIycHg7IGhlaWdodDogMjJweDsKICAgIGRpc3BsYXk6IGZsZXg7IGFsaWduLWl0
ZW1zOiBjZW50ZXI7IGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgYmFja2dyb3VuZDogdHJh
bnNwYXJlbnQ7IGJvcmRlcjogMXB4IHNvbGlkIHRyYW5zcGFyZW50OwogICAgYm9yZGVyLXJhZGl1
czogdmFyKC0tcmFkaXVzLXNtKTsgZm9udC1zaXplOiB2YXIoLS1mcy1sZyk7IGxpbmUtaGVpZ2h0
OiAxOwogICAgY29sb3I6IHZhcigtLXRleHQtbXV0ZWQpOyBjdXJzb3I6IHBvaW50ZXI7CiAgICBv
cGFjaXR5OiAwOyB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMTVzLCBiYWNrZ3JvdW5kIDAuMTVzLCBi
b3JkZXItY29sb3IgMC4xNXM7Cn0KLmVtYWlsdm9ybGFnZS1rYXJ0ZTpob3ZlciAuZXZrLWhpZGUt
YnRuIHsgb3BhY2l0eTogMTsgfQouZXZrLWhpZGUtYnRuOmhvdmVyIHsgYmFja2dyb3VuZDogdmFy
KC0tYmctY2FyZC1hbHQpOyBib3JkZXItY29sb3I6IHZhcigtLWJvcmRlci1jb2xvcik7IGNvbG9y
OiB2YXIoLS1mYXJiZS1mZWhsZXIpOyB9Ci8qIEZvb3Rlci1CZXJlaWNoIGZ1ZXIgdmVyc3RlY2t0
ZSBWb3JsYWdlbiAqLwouZW1haWx2b3JsYWdlbi12ZXJzdGVja3QgewogICAgbWFyZ2luLXRvcDog
MjRweDsgcGFkZGluZy10b3A6IDE2cHg7CiAgICBib3JkZXItdG9wOiAxcHggZGFzaGVkIHZhcigt
LWJvcmRlci1jb2xvcik7Cn0KLmVtYWlsdm9ybGFnZW4tdmVyc3RlY2t0LWtvcGYgewogICAgZGlz
cGxheTogZmxleDsgYWxpZ24taXRlbXM6IGNlbnRlcjsgZ2FwOiA4cHg7CiAgICBmb250LXNpemU6
IHZhcigtLWZzLWJhc2UpOyBjb2xvcjogdmFyKC0tdGV4dC1tdXRlZCk7IGZvbnQtd2VpZ2h0OiA2
MDA7CiAgICBtYXJnaW4tYm90dG9tOiAxMHB4OyBjdXJzb3I6IHBvaW50ZXI7IHVzZXItc2VsZWN0
OiBub25lOwp9Ci5lbWFpbHZvcmxhZ2VuLXZlcnN0ZWNrdC1saXN0ZSB7CiAgICBkaXNwbGF5OiBm
bGV4OyBmbGV4LXdyYXA6IHdyYXA7IGdhcDogOHB4Owp9Ci5ldmstdmVyc3RlY2t0LXBpbGxlIHsK
ICAgIGRpc3BsYXk6IGlubGluZS1mbGV4OyBhbGlnbi1pdGVtczogY2VudGVyOyBnYXA6IDhweDsK
ICAgIHBhZGRpbmc6IDZweCAxMHB4OyBiYWNrZ3JvdW5kOiB2YXIoLS1iZy1jYXJkLWFsdCk7CiAg
ICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1ib3JkZXItbGlnaHQpOyBib3JkZXItcmFkaXVzOiB2
YXIoLS1yYWRpdXMtc20pOwogICAgZm9udC1zaXplOiB2YXIoLS1mcy1iYXNlKTsgY29sb3I6IHZh
cigtLXRleHQtc2Vjb25kYXJ5KTsKfQouZXZrLXZlcnN0ZWNrdC1waWxsZSAuZXZrLXZlcnN0ZWNr
dC10aXRlbCB7IGZvbnQtd2VpZ2h0OiA2MDA7IH0KLmV2ay1zaG93LWJ0biB7CiAgICBiYWNrZ3Jv
dW5kOiB0cmFuc3BhcmVudDsgYm9yZGVyOiBub25lOyBwYWRkaW5nOiAwIDJweDsKICAgIGNvbG9y
OiB2YXIoLS1mYXJiZS1ha3plbnQpOyBjdXJzb3I6IHBvaW50ZXI7IGZvbnQtc2l6ZTogdmFyKC0t
ZnMtYmFzZSk7CiAgICBmb250LXdlaWdodDogNjAwOwp9Ci5ldmstc2hvdy1idG46aG92ZXIgeyB0
ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTsgfQoKLyogRWRpdG9yLU1vZGFsIHBybyBFLU1haWwt
Vm9ybGFnZSAqLwouZXZtLWJlc2NocmVpYnVuZyB7IGNvbG9yOiB2YXIoLS10ZXh0LW11dGVkKTsg
Zm9udC1zaXplOiB2YXIoLS1mcy1tZCk7IG1hcmdpbjogMCAwIDE0cHg7IH0KLmV2bS1ncmlkIHsg
ZGlzcGxheTogZ3JpZDsgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnIgMjgwcHg7IGdhcDogMThw
eDsgfQpAbWVkaWEgKG1heC13aWR0aDogOTgwcHgpIHsgLmV2bS1ncmlkIHsgZ3JpZC10ZW1wbGF0
ZS1jb2x1bW5zOiAxZnI7IH0gfQouZXZtLWZvcm0geyBkaXNwbGF5OiBmbGV4OyBmbGV4LWRpcmVj
dGlvbjogY29sdW1uOyBtaW4td2lkdGg6IDA7IH0KLmV2bS1sYWJlbCB7IGZvbnQtd2VpZ2h0OiA2
MDA7IGZvbnQtc2l6ZTogdmFyKC0tZnMtbWQpOyBtYXJnaW4tYm90dG9tOiA2cHg7IGNvbG9yOiB2
YXIoLS10ZXh0LWhlYWRpbmcpOyB9Ci5ldm0tYmV0cmVmZi1pbnB1dCB7IHdpZHRoOiAxMDAlOyBm
b250LWZhbWlseTogaW5oZXJpdDsgfQouZXZtLXRleHQtaW5wdXQgeyB3aWR0aDogMTAwJTsgZm9u
dC1mYW1pbHk6IGluaGVyaXQ7IGxpbmUtaGVpZ2h0OiAxLjU7IHJlc2l6ZTogdmVydGljYWw7IG1p
bi1oZWlnaHQ6IDIyMHB4OyB9Ci5ldm0tdGV4dC1ydGUgeyBtaW4taGVpZ2h0OiAzODBweDsgbWF4
LWhlaWdodDogNjB2aDsgb3ZlcmZsb3cteTogYXV0bzsgcGFkZGluZzogMTJweCAxNHB4OyBsaW5l
LWhlaWdodDogMS41NTsgZm9udC1mYW1pbHk6IGluaGVyaXQ7IH0KLmV2bS10ZXh0LXJ0ZTplbXB0
eTo6YmVmb3JlIHsKICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS1wbGFjZWhvbGRlcik7CiAgICBjb2xv
cjogdmFyKC0tdGV4dC1tdXRlZCk7CiAgICBwb2ludGVyLWV2ZW50czogbm9uZTsKfQouZXZtLWhp
bndlaXMgeyBkaXNwbGF5OiBibG9jazsgY29sb3I6IHZhcigtLXRleHQtbXV0ZWQpOyBmb250LXNp
emU6IHZhcigtLWZzLXNtKTsgbWFyZ2luLXRvcDogNnB4OyBsaW5lLWhlaWdodDogMS40NTsgfQou
ZXZtLXRvZ2dsZXMgeyBkaXNwbGF5OiBmbGV4OyBmbGV4LWRpcmVjdGlvbjogY29sdW1uOyBnYXA6
IDZweDsgbWFyZ2luLXRvcDogMTRweDsgcGFkZGluZy10b3A6IDEycHg7IGJvcmRlci10b3A6IDFw
eCBzb2xpZCB2YXIoLS1ib3JkZXItbGlnaHQpOyB9Ci5ldm0tdG9nZ2xlIHsgZGlzcGxheTogZmxl
eDsgYWxpZ24taXRlbXM6IGNlbnRlcjsgZ2FwOiA4cHg7IGN1cnNvcjogcG9pbnRlcjsgZm9udC1z
aXplOiB2YXIoLS1mcy1tZCk7IGxpbmUtaGVpZ2h0OiAxLjQ7IH0KLmV2bS12YXJzIHsKICAgIGJh
Y2tncm91bmQ6IHZhcigtLWJnLWNhcmQtYWx0KTsKICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigt
LWJvcmRlci1saWdodCk7CiAgICBib3JkZXItcmFkaXVzOiA4cHg7CiAgICBwYWRkaW5nOiAxMnB4
IDE0cHg7CiAgICBhbGlnbi1zZWxmOiBzdGFydDsKICAgIHBvc2l0aW9uOiBzdGlja3k7IHRvcDog
MDsKICAgIG1heC1oZWlnaHQ6IDcwdmg7IG92ZXJmbG93LXk6IGF1dG87Cn0KLmV2bS12YXJzLXRp
dGVsIHsgZm9udC13ZWlnaHQ6IDcwMDsgZm9udC1zaXplOiB2YXIoLS1mcy1tZCk7IG1hcmdpbi1i
b3R0b206IDRweDsgY29sb3I6IHZhcigtLXRleHQtaGVhZGluZyk7IH0KLmV2bS12YXJzLWhpbndl
aXMgeyBmb250LXNpemU6IHZhcigtLWZzLXNtKTsgY29sb3I6IHZhcigtLXRleHQtbXV0ZWQpOyBt
YXJnaW4tYm90dG9tOiAxMnB4OyBsaW5lLWhlaWdodDogMS40OyB9Ci5ldm0tdmFycy1saXN0ZSB7
IGRpc3BsYXk6IGZsZXg7IGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47IGdhcDogNXB4OyB9Ci5ldm0t
dmFyLWJ0biB7CiAgICBkaXNwbGF5OiBmbGV4OyBmbGV4LWRpcmVjdGlvbjogY29sdW1uOyBnYXA6
IDJweDsKICAgIHBhZGRpbmc6IDdweCAxMHB4OwogICAgYmFja2dyb3VuZDogdmFyKC0tYmctY2Fy
ZCk7CiAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1ib3JkZXItbGlnaHQpOwogICAgYm9yZGVy
LXJhZGl1czogNXB4OwogICAgY3Vyc29yOiBwb2ludGVyOwogICAgdGV4dC1hbGlnbjogbGVmdDsK
ICAgIGZvbnQ6IGluaGVyaXQ7CiAgICB0cmFuc2l0aW9uOiBib3JkZXItY29sb3IgMC4xMnMsIGJh
Y2tncm91bmQgMC4xMnM7Cn0KLmV2bS12YXItYnRuOmhvdmVyIHsgYm9yZGVyLWNvbG9yOiB2YXIo
LS1mYXJiZS1ha3plbnQpOyBiYWNrZ3JvdW5kOiB2YXIoLS1iZy1ob3Zlcik7IH0KLmV2bS12YXIt
bmFtZSB7IGZvbnQtZmFtaWx5OiB1aS1tb25vc3BhY2UsICdTRiBNb25vJywgbW9ub3NwYWNlOyBm
b250LXNpemU6IDExLjVweDsgY29sb3I6IHZhcigtLWZhcmJlLWFremVudCk7IGZvbnQtd2VpZ2h0
OiA2MDA7IH0KLmV2bS12YXItYmVzY2hyIHsgZm9udC1zaXplOiAxMC41cHg7IGNvbG9yOiB2YXIo
LS10ZXh0LW11dGVkKTsgbGluZS1oZWlnaHQ6IDEuMzsgfQoKLyogTWl0YmVhcmJlaXRlci1MaXN0
ZSBpbSBQZXJzb24tRWRpdC1Nb2RhbDogMyBTcGFsdGVuLCBhbHBoYWJldGlzY2ggdm9uIG9iZW4g
bmFjaCB1bnRlbiAqLwouZXItcGVyc29uZW4tZ3JpZCB7CiAgICBjb2x1bW4tY291bnQ6IDM7CiAg
ICBjb2x1bW4tZ2FwOiAxOHB4OwogICAgbWF4LWhlaWdodDogMzYwcHg7CiAgICBvdmVyZmxvdzog
YXV0bzsKICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWJvcmRlci1saWdodCk7CiAgICBwYWRk
aW5nOiA4cHggMTBweDsKICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLXJhZGl1cy1zbSk7CiAgICBi
YWNrZ3JvdW5kOiB2YXIoLS1iZy1jYXJkKTsKfQouZXItcGVyc29uZW4temVpbGUgewogICAgZGlz
cGxheTogZmxleDsKICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICBnYXA6IDZweDsKICAgIHBh
ZGRpbmc6IDNweCAwOwogICAgY3Vyc29yOiBwb2ludGVyOwogICAgYnJlYWstaW5zaWRlOiBhdm9p
ZDsKICAgIC13ZWJraXQtY29sdW1uLWJyZWFrLWluc2lkZTogYXZvaWQ7CiAgICBwYWdlLWJyZWFr
LWluc2lkZTogYXZvaWQ7Cn0KLmVyLXBlcnNvbmVuLW5hbWUgeyBmbGV4OiAxOyBtaW4td2lkdGg6
IDA7IG92ZXJmbG93OiBoaWRkZW47IHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOyB3aGl0ZS1zcGFj
ZTogbm93cmFwOyB9Ci5lci1wZXJzb25lbi1ncnVwcGUgewogICAgY29sb3I6IHZhcigtLXRleHQt
bXV0ZWQpOwogICAgZm9udC1zaXplOiB2YXIoLS1mcy1zbSk7CiAgICBmb250LXdlaWdodDogNTAw
OwogICAgYmFja2dyb3VuZDogdmFyKC0tYmctY2FyZC1hbHQpOwogICAgcGFkZGluZzogMXB4IDZw
eDsKICAgIGJvcmRlci1yYWRpdXM6IDhweDsKICAgIGZsZXgtc2hyaW5rOiAwOwp9CkBtZWRpYSAo
bWF4LXdpZHRoOiAxMTAwcHgpIHsKICAgIC5lci1wZXJzb25lbi1ncmlkIHsgY29sdW1uLWNvdW50
OiAyOyB9Cn0KCi8qIENoZXJyeS1QaWNrIDg5ZWIzYzc6IERpcmVrdGUtS29sbGVnZW4tSGVydm9y
aGVidW5nIGltIFBlcnNvbi1FZGl0LURpYWxvZy4KICAgTnVyIGFrdGl2LCB3ZW5uIGBmZWF0dXJl
cy5rb2xsZWdlbkhlcnZvcmhlYmVuYCBhbiBpc3QuCiAgIE1pa3JvdGVhbS1TZWt0aW9uIChrb2xs
ZWdlbi1taWtybykgZm9sZ3QgZGVyIGdsZWljaGVuIFN0cnVrdHVyLiAqLwpmaWVsZHNldC5rb2xs
ZWdlbi1taWtybywKZmllbGRzZXQua29sbGVnZW4tZGlyZWt0LApmaWVsZHNldC5rb2xsZWdlbi1y
ZXN0IHsKICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWJvcmRlci1saWdodCk7CiAgICBib3Jk
ZXItcmFkaXVzOiB2YXIoLS1yYWRpdXMtc20pOwogICAgcGFkZGluZzogOHB4IDEycHggMTBweDsK
ICAgIG1hcmdpbjogMTBweCAwIDA7Cn0KZmllbGRzZXQua29sbGVnZW4tZGlyZWt0IHsKICAgIGJh
Y2tncm91bmQ6IHJnYmEoMzksIDEzNywgMTA5LCAwLjA2KTsgIC8qIGRlemVudCBncnVlbmxpY2gg
Ki8KICAgIGJvcmRlci1jb2xvcjogcmdiYSgzOSwgMTM3LCAxMDksIDAuNDUpOwp9CmZpZWxkc2V0
LmtvbGxlZ2VuLW1pa3JvIHsKICAgIGJhY2tncm91bmQ6IHJnYmEoMCwgOTksIDE3NSwgMC4wNik7
ICAgIC8qIGRlemVudCBibGFldWxpY2gsIFBvbGl6ZWktQmxhdS1IYXVjaCAqLwogICAgYm9yZGVy
LWNvbG9yOiByZ2JhKDAsIDk5LCAxNzUsIDAuNDUpOwp9CmZpZWxkc2V0LmtvbGxlZ2VuLW1pa3Jv
ICA+IGxlZ2VuZCwKZmllbGRzZXQua29sbGVnZW4tZGlyZWt0ID4gbGVnZW5kLApmaWVsZHNldC5r
b2xsZWdlbi1yZXN0ICAgPiBsZWdlbmQgewogICAgcGFkZGluZzogMCA2cHg7CiAgICBmb250LXdl
aWdodDogNjAwOwogICAgZm9udC1zaXplOiB2YXIoLS1mcy1iYXNlKTsKfQpmaWVsZHNldC5rb2xs
ZWdlbi1taWtybyAgPiAuZXItcGVyc29uZW4temVpbGUsCmZpZWxkc2V0LmtvbGxlZ2VuLWRpcmVr
dCA+IC5lci1wZXJzb25lbi16ZWlsZSwKZmllbGRzZXQua29sbGVnZW4tcmVzdCAgID4gLmVyLXBl
cnNvbmVuLXplaWxlIHsKICAgIG1hcmdpbi1yaWdodDogMTJweDsKfQpmaWVsZHNldC5rb2xsZWdl
bi1kaXJla3QgPiAuZXItcGVyc29uZW4temVpbGUgKyAuZXItcGVyc29uZW4temVpbGUgewogICAg
LyogRGlyZWt0ZSBLb2xsZWdlbiB3ZXJkZW4gaW5saW5lIChGbGV4LUxpa2UpIGdlcmVuZGVydCwg
bmljaHQgaW4gU3BhbHRlbiDigJQgbWVpc3QgbnVyIGVpbiBwYWFyICovCn0KCi8qIEluYWt0aXZl
IENvZGVzIGFscyBvcHRpc2NoIGFiZ2VzZXR6dGUgU2VrdGlvbiBhbSBFbmRlICovCi5zYy1ncnVw
cGUtaW5ha3RpdiB7CiAgICBtYXJnaW4tdG9wOiAyNHB4OwogICAgcGFkZGluZy10b3A6IDEycHg7
CiAgICBib3JkZXItdG9wOiAxcHggZGFzaGVkIHZhcigtLWJvcmRlci1zdHJvbmcpOwogICAgYm9y
ZGVyLWxlZnQtY29sb3I6IHZhcigtLWJvcmRlci1saWdodCk7CiAgICBvcGFjaXR5OiAwLjg1Owp9
Ci5zYy1ncnVwcGUtdGl0ZWwtaW5ha3RpdiB7CiAgICBjb2xvcjogdmFyKC0tdGV4dC1zZWNvbmRh
cnkpOwp9CgovKiBTb25kZXJ0ZXJtaW5lLUxpc3RlIChyZWFkLW9ubHkpICovCi5zb25kZXItaWNv
bi16ZWxsZSB7CiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDsgYWxpZ24taXRlbXM6IGNlbnRlcjsg
anVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICB3aWR0aDogMzJweDsgaGVpZ2h0OiAzMnB4OyBm
b250LXNpemU6IDE4cHg7IGJvcmRlci1yYWRpdXM6IDVweDsKICAgIGJhY2tncm91bmQ6IHZhcigt
LWJnLWNhcmQtYWx0KTsgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYm9yZGVyLWxpZ2h0KTsKICAg
IGZvbnQtZmFtaWx5OiAiQXBwbGUgQ29sb3IgRW1vamkiLCJTZWdvZSBVSSBFbW9qaSIsIk5vdG8g
Q29sb3IgRW1vamkiLHNhbnMtc2VyaWY7Cn0KLnNvbmRlci1pY29uLXplbGxlLmxlZXIgeyBjb2xv
cjogdmFyKC0tdGV4dC1tdXRlZCk7IGZvbnQtc2l6ZTogdmFyKC0tZnMtbWQpOyBmb250LWZhbWls
eTogaW5oZXJpdDsgfQouc29uZGVyLXR5cC1iYWRnZSB7CiAgICBkaXNwbGF5OiBpbmxpbmUtYmxv
Y2s7IHBhZGRpbmc6IDJweCA4cHg7IGJvcmRlci1yYWRpdXM6IHZhcigtLXJhZGl1cy1sZyk7IGZv
bnQtc2l6ZTogdmFyKC0tZnMtc20pOyBmb250LXdlaWdodDogNjAwOwp9Ci5zb25kZXItdHlwLWlu
Zm8geyBiYWNrZ3JvdW5kOiByZ2JhKDQxLDEyOCwxODUsMC4xNSk7IGNvbG9yOiB2YXIoLS1mYXJi
ZS1ha3plbnQpOyB9Ci5zb25kZXItdHlwLXdhcm4geyBiYWNrZ3JvdW5kOiByZ2JhKDIwMiwxMTEs
MzAsMC4xOCk7IGNvbG9yOiB2YXIoLS1mYXJiZS13YXJudW5nKTsgfQoKLyogQmFja3VwLVR5cC1C
YWRnZXMgKi8KLmJrLXR5cCB7IGRpc3BsYXk6IGlubGluZS1ibG9jazsgcGFkZGluZzogMnB4IDhw
eDsgYm9yZGVyLXJhZGl1czogdmFyKC0tcmFkaXVzLWxnKTsgZm9udC1zaXplOiAxMC41cHg7IGZv
bnQtd2VpZ2h0OiA2MDA7IHdoaXRlLXNwYWNlOiBub3dyYXA7IH0KLmJrLXR5cC1tYW51ZWxsIHsg
YmFja2dyb3VuZDogcmdiYSgyNyw5NCwzMiwwLjE1KTsgY29sb3I6ICMxQjVFMjA7IH0KLmJrLXR5
cC1hdXRvIHsgYmFja2dyb3VuZDogcmdiYSgyMDIsMTExLDMwLDAuMTgpOyBjb2xvcjogdmFyKC0t
ZmFyYmUtd2FybnVuZyk7IH0KLmJrLXR5cC1zaWNoZXJ1bmcgeyBiYWNrZ3JvdW5kOiByZ2JhKDQx
LDEyOCwxODUsMC4xNSk7IGNvbG9yOiB2YXIoLS1mYXJiZS1ha3plbnQpOyB9CltkYXRhLXRoZW1l
PSJuaWdodCJdIC5iay10eXAtbWFudWVsbCB7IGJhY2tncm91bmQ6IHJnYmEoMjcsOTQsMzIsMC4z
KTsgY29sb3I6ICNhNWQ2YTc7IH0KW2RhdGEtdGhlbWU9Im5pZ2h0Il0gLmJrLXR5cC1hdXRvIHsg
YmFja2dyb3VuZDogcmdiYSgyMDIsMTExLDMwLDAuMyk7IGNvbG9yOiAjZmZjYzgwOyB9CltkYXRh
LXRoZW1lPSJuaWdodCJdIC5iay10eXAtc2ljaGVydW5nIHsgYmFja2dyb3VuZDogcmdiYSg0MSwx
MjgsMTg1LDAuMyk7IGNvbG9yOiAjOTBjYWY5OyB9Ci8qIEJhY2t1cC1JbmhhbHRzdHlwLUJhZGdl
IGltIEFkbWluIC0+IEJhY2t1cHMgKEtvbXBsZXR0IHZzLiBOdXIgUGxhbnVuZykuCiAgIEZydWVo
ZXIgYWxzIC5iay1pbmhhbHQgZGVmaW5pZXJ0IC0tIGtvbGxpZGllcnRlIG1pdCBkZW0gZ2xlaWNo
bmFtaWdlbgogICBDb250YWluZXIgZGVyIFBydWVmdW5ncy1BbnNpY2h0ICgjYmstaW5oYWx0KS4g
Ki8KLmJrLWluaGFsdHN0eXAgeyBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IHBhZGRpbmc6IDJweCA4
cHg7IGJvcmRlci1yYWRpdXM6IHZhcigtLXJhZGl1cy1sZyk7IGZvbnQtc2l6ZTogMTAuNXB4OyBm
b250LXdlaWdodDogNjAwOyB3aGl0ZS1zcGFjZTogbm93cmFwOyB9Ci5iay1pbmhhbHRzdHlwLWtv
bXBsZXR0IHsgYmFja2dyb3VuZDogcmdiYSg3NCwxNDQsMjI2LDAuMTUpOyBjb2xvcjogdmFyKC0t
ZmFyYmUtYWt6ZW50KTsgfQouYmstaW5oYWx0c3R5cC1wbGFudW5nIHsgYmFja2dyb3VuZDogcmdi
YSgxNDksMTY1LDE2NiwwLjE4KTsgY29sb3I6IHZhcigtLXRleHQtbXV0ZWQpOyB9CltkYXRhLXRo
ZW1lPSJuaWdodCJdIC5iay1pbmhhbHRzdHlwLWtvbXBsZXR0IHsgYmFja2dyb3VuZDogcmdiYSg3
NCwxNDQsMjI2LDAuMyk7IGNvbG9yOiAjOTBjYWY5OyB9CltkYXRhLXRoZW1lPSJuaWdodCJdIC5i
ay1pbmhhbHRzdHlwLXBsYW51bmcgeyBiYWNrZ3JvdW5kOiByZ2JhKDE0OSwxNjUsMTY2LDAuMyk7
IGNvbG9yOiB2YXIoLS10ZXh0LW11dGVkKTsgfQoKLyogPT09PT0gQmVzZXR6dW5nc2tvbnRyb2xs
ZSAoR2VzYW10dmVyYW50d29ydGxpY2hlKSA9PT09PSAqLwovKiBmbGV4OjEgKyBvdmVyZmxvdy15
OmF1dG8sIGRhbWl0IGRlciBJbmhhbHQgaW0gLmFuc2ljaHQtQ29udGFpbmVyCiAgIChoZWlnaHQ6
MTAwdmgtNDBweDsgb3ZlcmZsb3c6aGlkZGVuKSBzY3JvbGx0LCB3ZW5uIGVyIGhvZWhlciBpc3QK
ICAgYWxzIGRhcyBWaWV3cG9ydC4gbWluLWhlaWdodDowIHdlZ2VuIGZsZXgtbWluLWNvbnRlbnQt
RGVmYXVsdC4gKi8KLmJrLWxheW91dCB7CiAgICBwYWRkaW5nOiAxNnB4IDIwcHggNDBweCAyMHB4
OwogICAgd2lkdGg6IDEwMCU7CiAgICBmbGV4OiAxOwogICAgbWluLWhlaWdodDogMDsKICAgIG92
ZXJmbG93LXk6IGF1dG87Cn0KLmJrLWtvcGYgeyBkaXNwbGF5OiBmbGV4OyBqdXN0aWZ5LWNvbnRl
bnQ6IHNwYWNlLWJldHdlZW47IGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0OyBnYXA6IDIwcHg7IG1h
cmdpbi1ib3R0b206IDE0cHg7IHBhZGRpbmctYm90dG9tOiAxMHB4OyBib3JkZXItYm90dG9tOiAx
cHggc29saWQgdmFyKC0tYm9yZGVyLWxpZ2h0KTsgZmxleC13cmFwOiB3cmFwOyB9Ci5iay1rb3Bm
LXN0YXRzIHsgZGlzcGxheTogZmxleDsgZ2FwOiAxMHB4OyB9Ci5iay1rcGkgeyBiYWNrZ3JvdW5k
OiB2YXIoLS1iZy1jYXJkKTsgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYm9yZGVyLWxpZ2h0KTsg
Ym9yZGVyLXJhZGl1czogdmFyKC0tcmFkaXVzLW1kKTsgcGFkZGluZzogNnB4IDEycHg7IG1pbi13
aWR0aDogNzZweDsgdGV4dC1hbGlnbjogY2VudGVyOyB9Ci5iay1rcGktemFobCB7IGZvbnQtc2l6
ZTogMThweDsgZm9udC13ZWlnaHQ6IDcwMDsgY29sb3I6IHZhcigtLXRleHQtaGVhZGluZyk7IGxp
bmUtaGVpZ2h0OiAxLjE7IH0KLmJrLWtwaS1sYWJlbCB7IGZvbnQtc2l6ZTogMTAuNXB4OyBjb2xv
cjogdmFyKC0tdGV4dC1tdXRlZCk7IG1hcmdpbi10b3A6IDFweDsgfQouYmsta3BpLXdhcm4geyBi
b3JkZXItY29sb3I6IHJnYmEoMjAyLDExMSwzMCwwLjUpOyBiYWNrZ3JvdW5kOiByZ2JhKDIwMiwx
MTEsMzAsMC4wNik7IH0KLmJrLWtwaS13YXJuIC5iay1rcGktemFobCB7IGNvbG9yOiB2YXIoLS1m
YXJiZS13YXJudW5nKTsgfQouYmsta3BpLW9rIHsgYm9yZGVyLWNvbG9yOiByZ2JhKDM5LDEzNywx
MDksMC40KTsgYmFja2dyb3VuZDogcmdiYSgzOSwxMzcsMTA5LDAuMDYpOyB9Ci5iay1rcGktb2sg
LmJrLWtwaS16YWhsIHsgY29sb3I6IHZhcigtLWZhcmJlLWVyZm9sZyk7IH0KCi8qIFBlcnNvZW5s
aWNoZSBCZWdydWVzc3VuZ3MtQm94IGltIFBydWVmdW5ncy1UYWIg4oCUIGVudHNwYW5udCBtaXQK
ICAgZWlua2xhcHBiYXJlciBEZXRhaWwtRXJrbGFlcnVuZy4gQW5yZWRlICsgQnJpZWZpbmctQnV0
dG9uIGltbWVyCiAgIHNpY2h0YmFyIGFscyBRdWljay1FaW5zdGllZywgUXVpY2tpbnRybyBkYXJ1
bnRlci4gKi8KLmJrLWJlZ3J1ZXNzdW5nIHsKICAgIGJhY2tncm91bmQ6IHZhcigtLWJnLWNhcmQp
OwogICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYm9yZGVyLWxpZ2h0KTsKICAgIGJvcmRlci1y
YWRpdXM6IDhweDsKICAgIHBhZGRpbmc6IDE0cHggMThweDsKICAgIG1hcmdpbi1ib3R0b206IDE0
cHg7CiAgICBsaW5lLWhlaWdodDogMS41Owp9Ci5iay1iZWdyLWtvcGYgewogICAgZGlzcGxheTog
ZmxleDsgYWxpZ24taXRlbXM6IGNlbnRlcjsganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVu
OwogICAgZ2FwOiAxNnB4OyBmbGV4LXdyYXA6IHdyYXA7CiAgICBtYXJnaW4tYm90dG9tOiA4cHg7
Cn0KLmJrLWJlZ3ItYW5yZWRlIHsKICAgIGZvbnQtc2l6ZTogMTdweDsKICAgIGZvbnQtd2VpZ2h0
OiA3MDA7CiAgICBjb2xvcjogdmFyKC0tdGV4dC1oZWFkaW5nKTsKfQouYmstYmVnci1xdWlja2lu
dHJvIHsKICAgIG1hcmdpbjogMCAwIDZweCAwICFpbXBvcnRhbnQ7CiAgICBmb250LXNpemU6IHZh
cigtLWZzLW1kKTsKICAgIGNvbG9yOiB2YXIoLS10ZXh0LXNlY29uZGFyeSk7Cn0KLmJrLWJlZ3It
ZGV0YWlscyB7IG1hcmdpbi10b3A6IDZweDsgfQouYmstYmVnci1kZXRhaWxzID4gc3VtbWFyeSB7
CiAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICBmb250LXNpemU6IDEyLjVweDsKICAgIGNvbG9yOiB2
YXIoLS10ZXh0LXNlY29uZGFyeSk7CiAgICBwYWRkaW5nOiA0cHggMDsKICAgIGxpc3Qtc3R5bGU6
IHJldmVydDsKICAgIHVzZXItc2VsZWN0OiBub25lOwp9Ci5iay1iZWdyLWRldGFpbHMgPiBzdW1t
YXJ5OmhvdmVyIHsgY29sb3I6IHZhcigtLXRleHQtaGVhZGluZyk7IH0KLmJrLWJlZ3ItZGV0YWls
c1tvcGVuXSA+IHN1bW1hcnkgeyBtYXJnaW4tYm90dG9tOiA4cHg7IH0KLmJrLWJlZ3J1ZXNzdW5n
IHAgeyBtYXJnaW46IDAgMCA4cHggMDsgZm9udC1zaXplOiAxMi41cHg7IGNvbG9yOiB2YXIoLS10
ZXh0LXByaW1hcnkpOyB9Ci5iay1iZWdyLWxlZ2VuZGUgewogICAgZGlzcGxheTogZmxleDsgZmxl
eC1kaXJlY3Rpb246IHJvdzsgZmxleC13cmFwOiB3cmFwOyBnYXA6IDE0cHg7CiAgICBiYWNrZ3Jv
dW5kOiB2YXIoLS1iZy1jYXJkLWFsdCk7CiAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1yYWRpdXMt
bWQpOwogICAgcGFkZGluZzogOHB4IDEycHg7CiAgICBtYXJnaW46IDhweCAwIDEwcHggMDsKfQou
YmstYmVnci1laW50cmFnIHsgZGlzcGxheTogZmxleDsgYWxpZ24taXRlbXM6IGNlbnRlcjsgZ2Fw
OiA4cHg7IGZvbnQtc2l6ZTogdmFyKC0tZnMtYmFzZSk7IGxpbmUtaGVpZ2h0OiAxLjM1OyBmbGV4
OiAxIDEgMjgwcHg7IH0KLmJrLWJlZ3ItcGlsbCB7CiAgICBmbGV4LXNocmluazogMDsKICAgIGRp
c3BsYXk6IGlubGluZS1ibG9jazsKICAgIHBhZGRpbmc6IDJweCAxMHB4OwogICAgYm9yZGVyLXJh
ZGl1czogdmFyKC0tcmFkaXVzLXNtKTsKICAgIGZvbnQtc2l6ZTogMTAuNXB4OwogICAgZm9udC13
ZWlnaHQ6IDcwMDsKICAgIGNvbG9yOiAjZmZmOwogICAgbWluLXdpZHRoOiA1MHB4OwogICAgdGV4
dC1hbGlnbjogY2VudGVyOwp9Ci5iay1iZWdyLXBpbGwtcm90ICAgeyBiYWNrZ3JvdW5kOiAjQjAz
QTJFOyB9Ci5iay1iZWdyLXBpbGwtZ2VsYiAgeyBiYWNrZ3JvdW5kOiAjQ0E2RjFFOyB9Ci5iay1i
ZWdyLXBpbGwtZ3J1ZW4geyBiYWNrZ3JvdW5kOiAjMjc4OTZEOyB9Ci5iay1iZWdyLW1haWwgewog
ICAgYmFja2dyb3VuZDogcmdiYSg3NCwxNDQsMjI2LDAuMDgpOwogICAgYm9yZGVyLWxlZnQ6IDNw
eCBzb2xpZCB2YXIoLS1mYXJiZS1ha3plbnQpOwogICAgcGFkZGluZzogOHB4IDEycHg7CiAgICBi
b3JkZXItcmFkaXVzOiB2YXIoLS1yYWRpdXMtc20pOwogICAgbWFyZ2luLXRvcDogNHB4ICFpbXBv
cnRhbnQ7CiAgICBmb250LXNpemU6IDEyLjVweCAhaW1wb3J0YW50Owp9CltkYXRhLXRoZW1lPSJu
aWdodCJdIC5iay1iZWdyLW1haWwgeyBiYWNrZ3JvdW5kOiByZ2JhKDc0LDE0NCwyMjYsMC4xNSk7
IH0KLmJrLWJlZ3ItYnJpZWZpbmcgewogICAgbWFyZ2luLXRvcDogOHB4ICFpbXBvcnRhbnQ7CiAg
ICBkaXNwbGF5OiBmbGV4OwogICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgIGdhcDogMTBweDsK
ICAgIGZsZXgtd3JhcDogd3JhcDsKICAgIGZvbnQtc2l6ZTogMTIuNXB4OwogICAgY29sb3I6IHZh
cigtLXRleHQtc2Vjb25kYXJ5KTsKfQouYmstYmVnci1icmllZmluZyBzbWFsbCB7IGNvbG9yOiB2
YXIoLS10ZXh0LW11dGVkKTsgfQoKLyogPT09PT0gRGVmaXppdC1CcmllZmluZy1JbnRlcnZpZXct
TW9kYWwgPT09PT0gKi8KLmRlZml6aXQtYnJpZWZpbmctbW9kYWwgeyBmb250LXNpemU6IHZhcigt
LWZzLW1kKTsgfQouZGVmaXppdC1icmllZmluZy1tb2RhbCAuZGJtLWZyYWdlIHsKICAgIG1hcmdp
bjogMTRweCAwIDZweCAwOyBmb250LXNpemU6IDEzLjVweDsgZm9udC13ZWlnaHQ6IDYwMDsKICAg
IGNvbG9yOiB2YXIoLS10ZXh0LWhlYWRpbmcpOwp9Ci5kZWZpeml0LWJyaWVmaW5nLW1vZGFsIC5k
Ym0tZnJhZ2U6Zmlyc3QtY2hpbGQgeyBtYXJnaW4tdG9wOiAwOyB9Ci5kZWZpeml0LWJyaWVmaW5n
LW1vZGFsIC5kYm0tb3B0aW9uZW4gewogICAgZGlzcGxheTogZmxleDsgZmxleC1kaXJlY3Rpb246
IGNvbHVtbjsgZ2FwOiA0cHg7CiAgICBwYWRkaW5nLWxlZnQ6IDRweDsKfQouZGVmaXppdC1icmll
ZmluZy1tb2RhbCAuZGJtLW9wdGlvbmVuIGxhYmVsIHsKICAgIGN1cnNvcjogcG9pbnRlcjsgcGFk
ZGluZzogNHB4IDZweDsgYm9yZGVyLXJhZGl1czogdmFyKC0tcmFkaXVzLXNtKTsKICAgIHRyYW5z
aXRpb246IGJhY2tncm91bmQgMC4xMnM7Cn0KLmRlZml6aXQtYnJpZWZpbmctbW9kYWwgLmRibS1v
cHRpb25lbiBsYWJlbDpob3ZlciB7IGJhY2tncm91bmQ6IHZhcigtLWJnLWhvdmVyKTsgfQouZGVm
aXppdC1icmllZmluZy1tb2RhbCAuZGJtLW9wdGlvbmVuIGlucHV0W3R5cGU9InJhZGlvIl0geyBt
YXJnaW4tcmlnaHQ6IDZweDsgfQouZGVmaXppdC1icmllZmluZy1tb2RhbCAuZGJtLWhpbnQgewog
ICAgZm9udC1zaXplOiB2YXIoLS1mcy1iYXNlKTsgY29sb3I6IHZhcigtLXRleHQtbXV0ZWQpOyBt
YXJnaW46IDRweCAwIDhweCAwOwp9Ci5kZWZpeml0LWJyaWVmaW5nLW1vZGFsIC5kYm0tZW1wZmFl
bmdlci1saXN0ZSB7CiAgICBtYXgtaGVpZ2h0OiAyMjBweDsgb3ZlcmZsb3cteTogYXV0bzsKICAg
IGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWJvcmRlci1saWdodCk7IGJvcmRlci1yYWRpdXM6IHZh
cigtLXJhZGl1cy1zbSk7CiAgICBwYWRkaW5nOiA2cHggOHB4OyBiYWNrZ3JvdW5kOiB2YXIoLS1i
Zy1jYXJkLWFsdCk7Cn0KLmRlZml6aXQtYnJpZWZpbmctbW9kYWwgLmRibS1pbmZvIHsKICAgIGZv
bnQtc2l6ZTogdmFyKC0tZnMtYmFzZSk7IGNvbG9yOiB2YXIoLS10ZXh0LW11dGVkKTsKICAgIG1h
cmdpbi1ib3R0b206IDZweDsgZm9udC1zdHlsZTogaXRhbGljOwp9Ci5kZWZpeml0LWJyaWVmaW5n
LW1vZGFsIC5kYm0tbGVlciB7CiAgICBtYXJnaW46IDRweCAwOyBmb250LXNpemU6IDEyLjVweDsg
Y29sb3I6IHZhcigtLXRleHQtbXV0ZWQpOwogICAgdGV4dC1hbGlnbjogY2VudGVyOyBwYWRkaW5n
OiA4cHg7Cn0KLmRlZml6aXQtYnJpZWZpbmctbW9kYWwgLmRibS1wZXJzb25lbiB7CiAgICBsaXN0
LXN0eWxlOiBub25lOyBwYWRkaW5nOiAwOyBtYXJnaW46IDA7Cn0KLmRlZml6aXQtYnJpZWZpbmct
bW9kYWwgLmRibS1wZXJzb25lbiBsaSB7CiAgICBwYWRkaW5nOiAzcHggMDsgYm9yZGVyLWJvdHRv
bTogMXB4IHNvbGlkIHZhcigtLWJvcmRlci1saWdodCk7Cn0KLmRlZml6aXQtYnJpZWZpbmctbW9k
YWwgLmRibS1wZXJzb25lbiBsaTpsYXN0LWNoaWxkIHsgYm9yZGVyLWJvdHRvbTogbm9uZTsgfQou
ZGVmaXppdC1icmllZmluZy1tb2RhbCAuZGJtLXBlcnNvbmVuIGxhYmVsIHsKICAgIGN1cnNvcjog
cG9pbnRlcjsgZGlzcGxheTogYmxvY2s7IHBhZGRpbmc6IDJweCAwOwogICAgZm9udC1zaXplOiAx
Mi41cHg7Cn0KLmRlZml6aXQtYnJpZWZpbmctbW9kYWwgLmRibS1wZXJzb25lbiBsYWJlbC5kYm0t
ZGlzYWJsZWQgewogICAgY3Vyc29yOiBub3QtYWxsb3dlZDsgb3BhY2l0eTogMC42Owp9Ci5kZWZp
eml0LWJyaWVmaW5nLW1vZGFsIC5kYm0tcGVyc29uZW4gaW5wdXRbdHlwZT0iY2hlY2tib3giXSB7
IG1hcmdpbi1yaWdodDogNnB4OyB9Ci5kZWZpeml0LWJyaWVmaW5nLW1vZGFsIC5kYm0tdGFnZSB7
CiAgICBjb2xvcjogdmFyKC0tdGV4dC1tdXRlZCk7IGZvbnQtc2l6ZTogMTEuNXB4Owp9Ci5kZWZp
eml0LWJyaWVmaW5nLW1vZGFsIC5kYm0tbm8tbWFpbCB7CiAgICBjb2xvcjogdmFyKC0tZmFyYmUt
d2FybnVuZyk7IGZvbnQtc2l6ZTogMTEuNXB4OyBmb250LXdlaWdodDogNTAwOwp9Ci5kZWZpeml0
LWJyaWVmaW5nLW1vZGFsIC5kYm0tY2MtaGludCB7CiAgICBtYXJnaW4tdG9wOiAxMHB4OyBwYWRk
aW5nOiA2cHggOHB4OwogICAgYmFja2dyb3VuZDogdmFyKC0tYmctY2FyZC1hbHQpOyBib3JkZXIt
cmFkaXVzOiB2YXIoLS1yYWRpdXMtc20pOwogICAgZm9udC1zaXplOiB2YXIoLS1mcy1iYXNlKTsK
fQoKLyogPT09PT0gS2FsZW5kZXItTGF5b3V0IGRlciBQcnVlZnVuZ3NhbnNpY2h0ID09PT09ICov
Ci5iay1rYWwgewogICAgZGlzcGxheTogZmxleDsgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAg
IGJhY2tncm91bmQ6IHZhcigtLWJnLWNhcmQpOwogICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0t
Ym9yZGVyLWxpZ2h0KTsKICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLXJhZGl1cy1tZCk7CiAgICBv
dmVyZmxvdzogaGlkZGVuOwp9Ci5iay1rYWwtd3Qta29wZiwgLmJrLWthbC13b2NoZSB7CiAgICBk
aXNwbGF5OiBncmlkOwogICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoNywgMWZyKTsK
fQouYmsta2FsLXd0LWtvcGYgeyBiYWNrZ3JvdW5kOiB2YXIoLS1iZy1jYXJkLWFsdCk7IGJvcmRl
ci1ib3R0b206IDFweCBzb2xpZCB2YXIoLS1ib3JkZXItc3Ryb25nKTsgfQouYmsta2FsLXd0IHsK
ICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgIGZvbnQtd2VpZ2h0OiA3MDA7IGZvbnQtc2l6ZTog
dmFyKC0tZnMtc20pOwogICAgcGFkZGluZzogNnB4IDA7CiAgICBjb2xvcjogdmFyKC0tdGV4dC1z
ZWNvbmRhcnkpOwogICAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgdmFyKC0tYm9yZGVyLWxpZ2h0
KTsKfQouYmsta2FsLXd0Omxhc3QtY2hpbGQgeyBib3JkZXItcmlnaHQ6IG5vbmU7IH0KLmJrLWth
bC13dC13ZSB7IGNvbG9yOiB2YXIoLS10ZXh0LW11dGVkKTsgfQouYmsta2FsLXdvY2hlIHsgYm9y
ZGVyLWJvdHRvbTogMXB4IHNvbGlkIHZhcigtLWJvcmRlci1saWdodCk7IH0KLmJrLWthbC13b2No
ZTpsYXN0LWNoaWxkIHsgYm9yZGVyLWJvdHRvbTogbm9uZTsgfQoKLmJrLWthbC10YWcgewogICAg
Ym9yZGVyLXJpZ2h0OiAxcHggc29saWQgdmFyKC0tYm9yZGVyLWxpZ2h0KTsKICAgIHBhZGRpbmc6
IDZweCA4cHg7CiAgICBtaW4taGVpZ2h0OiA2NHB4OwogICAgZGlzcGxheTogZmxleDsgZmxleC1k
aXJlY3Rpb246IGNvbHVtbjsKICAgIGdhcDogNHB4OwogICAgcG9zaXRpb246IHJlbGF0aXZlOwog
ICAgdHJhbnNpdGlvbjogZmlsdGVyIDAuMTJzLCB0cmFuc2Zvcm0gMC4wOHM7Cn0KLmJrLWthbC10
YWc6bGFzdC1jaGlsZCB7IGJvcmRlci1yaWdodDogbm9uZTsgfQouYmsta2FsLWF1c3NlbiB7CiAg
ICBiYWNrZ3JvdW5kOiB2YXIoLS1iZy1jYXJkLWFsdCk7CiAgICBjb2xvcjogdmFyKC0tdGV4dC1t
dXRlZCk7CiAgICBvcGFjaXR5OiAwLjU1Owp9Ci5iay1rYWwtd2UgeyBiYWNrZ3JvdW5kOiByZ2Jh
KDAsMCwwLDAuMDIpOyB9CltkYXRhLXRoZW1lPSJuaWdodCJdIC5iay1rYWwtd2UgeyBiYWNrZ3Jv
dW5kOiByZ2JhKDI1NSwyNTUsMjU1LDAuMDIpOyB9Ci5iay1rYWwtaGV1dGUgewogICAgYm94LXNo
YWRvdzogaW5zZXQgMCAwIDAgMnB4IHZhcigtLXRleHQtaGVhZGluZyk7CiAgICB6LWluZGV4OiAx
Owp9CgouYmsta2FsLXRhZ25yIHsKICAgIGZvbnQtc2l6ZTogdmFyKC0tZnMtbGcpOyBmb250LXdl
aWdodDogNzAwOwogICAgY29sb3I6IHZhcigtLXRleHQtaGVhZGluZyk7CiAgICBsaW5lLWhlaWdo
dDogMTsKfQouYmsta2FsLW1vIHsKICAgIGZvbnQtc2l6ZTogOS41cHg7IGZvbnQtd2VpZ2h0OiA3
MDA7CiAgICBjb2xvcjogdmFyKC0tdGV4dC1tdXRlZCk7CiAgICB0ZXh0LXRyYW5zZm9ybTogdXBw
ZXJjYXNlOwogICAgbGV0dGVyLXNwYWNpbmc6IDAuNHB4OwogICAgbWFyZ2luLWxlZnQ6IDZweDsK
fQoKLyogU3RhdHVzLUhpbnRlcmdydWVuZGU6IFJvdC9HZWxiL0dydWVuIG1pdCBkZXplbnRlciBT
YWV0dGlndW5nLiAqLwouYmsta2FsLXJvdCAgIHsgYmFja2dyb3VuZDogcmdiYSgxNzYsIDU4LCA0
NiwgMC4xOCk7IGN1cnNvcjogcG9pbnRlcjsgfQouYmsta2FsLXJvdDpob3ZlciAgIHsgYmFja2dy
b3VuZDogcmdiYSgxNzYsIDU4LCA0NiwgMC4yOCk7IH0KLmJrLWthbC1nZWxiICB7IGJhY2tncm91
bmQ6IHJnYmEoMjAyLCAxMTEsIDMwLCAwLjE2KTsgY3Vyc29yOiBwb2ludGVyOyB9Ci5iay1rYWwt
Z2VsYjpob3ZlciAgeyBiYWNrZ3JvdW5kOiByZ2JhKDIwMiwgMTExLCAzMCwgMC4yNik7IH0KLmJr
LWthbC1ncnVlbiB7IGJhY2tncm91bmQ6IHJnYmEoMzksIDEzNywgMTA5LCAwLjEzKTsgY3Vyc29y
OiBwb2ludGVyOyB9Ci5iay1rYWwtZ3J1ZW46aG92ZXIgeyBiYWNrZ3JvdW5kOiByZ2JhKDM5LCAx
MzcsIDEwOSwgMC4yMik7IH0KCi8qIE1pbmktSW5kaWthdG9yZW4gamUgU2NoaWNodCAoRi9TL04p
IGFtIHVudGVyZW4gUmFuZCBkZXIgWmVsbGUgKi8KLmJrLWthbC1taW5pIHsgZGlzcGxheTogZmxl
eDsgZ2FwOiAzcHg7IG1hcmdpbi10b3A6IGF1dG87IH0KLmJrLWthbC1taW5pLXplbGxlIHsKICAg
IGZsZXg6IDE7CiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICBmb250LXNpemU6IHZhcigtLWZz
LXhzKTsgZm9udC13ZWlnaHQ6IDcwMDsKICAgIHBhZGRpbmc6IDFweCAwOwogICAgYm9yZGVyLXJh
ZGl1czogdmFyKC0tcmFkaXVzLXhzKTsKICAgIGJvcmRlcjogMXB4IHNvbGlkIHRyYW5zcGFyZW50
Owp9Ci5iay1rYWwtbWluaS1yb3QgICB7IGJhY2tncm91bmQ6ICNCMDNBMkU7IGNvbG9yOiAjZmZm
OyBib3JkZXItY29sb3I6IHJnYmEoMCwwLDAsMC4xNSk7IH0KLmJrLWthbC1taW5pLWdlbGIgIHsg
YmFja2dyb3VuZDogI0NBNkYxRTsgY29sb3I6ICNmZmY7IGJvcmRlci1jb2xvcjogcmdiYSgwLDAs
MCwwLjE1KTsgfQouYmsta2FsLW1pbmktZ3J1ZW4geyBiYWNrZ3JvdW5kOiAjMjc4OTZEOyBjb2xv
cjogI2ZmZjsgYm9yZGVyLWNvbG9yOiByZ2JhKDAsMCwwLDAuMTUpOyB9CgovKiBUYWctRGV0YWls
LU1vZGFsICovCi5iay1kZXRhaWwta29wZiB7CiAgICBkaXNwbGF5OiBmbGV4OyBhbGlnbi1pdGVt
czogY2VudGVyOyBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47CiAgICBnYXA6IDEycHg7
IHBhZGRpbmc6IDEwcHggMTRweDsKICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLXJhZGl1cy1tZCk7
CiAgICBtYXJnaW4tYm90dG9tOiAxNHB4OwogICAgYmFja2dyb3VuZDogdmFyKC0tYmctY2FyZC1h
bHQpOwp9Ci5iay1kZXRhaWwta29wZi1yb3QgICB7IGJhY2tncm91bmQ6IHJnYmEoMTc2LCA1OCwg
NDYsIDAuMTQpOyB9Ci5iay1kZXRhaWwta29wZi1nZWxiICB7IGJhY2tncm91bmQ6IHJnYmEoMjAy
LCAxMTEsIDMwLCAwLjE0KTsgfQouYmstZGV0YWlsLWtvcGYtZ3J1ZW4geyBiYWNrZ3JvdW5kOiBy
Z2JhKDM5LCAxMzcsIDEwOSwgMC4xMik7IH0KLmJrLWRldGFpbC10aXRlbCB7IGZvbnQtc2l6ZTog
MTZweDsgZm9udC13ZWlnaHQ6IDcwMDsgY29sb3I6IHZhcigtLXRleHQtaGVhZGluZyk7IH0KCi5i
ay1kZXRhaWwtc2NoaWNodGVuIHsKICAgIGRpc3BsYXk6IGdyaWQ7CiAgICBncmlkLXRlbXBsYXRl
LWNvbHVtbnM6IHJlcGVhdChhdXRvLWZpdCwgbWlubWF4KDI2MHB4LCAxZnIpKTsKICAgIGdhcDog
MTBweDsKICAgIG1hcmdpbi1ib3R0b206IDE0cHg7Cn0KLmJrLWRldGFpbC1zY2hpY2h0IHsKICAg
IGJhY2tncm91bmQ6IHZhcigtLWJnLWNhcmQpOwogICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0t
Ym9yZGVyLWxpZ2h0KTsKICAgIGJvcmRlci1sZWZ0OiA0cHggc29saWQgdmFyKC0tdGV4dC1tdXRl
ZCk7CiAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1yYWRpdXMtbWQpOwogICAgcGFkZGluZzogOHB4
IDEycHg7Cn0KLmJrLWRldGFpbC1zY2hpY2h0LXJvdCAgIHsgYm9yZGVyLWxlZnQtY29sb3I6ICNC
MDNBMkU7IH0KLmJrLWRldGFpbC1zY2hpY2h0LWdlbGIgIHsgYm9yZGVyLWxlZnQtY29sb3I6ICND
QTZGMUU7IH0KLmJrLWRldGFpbC1zY2hpY2h0LWdydWVuIHsgYm9yZGVyLWxlZnQtY29sb3I6ICMy
Nzg5NkQ7IH0KLmJrLWRldGFpbC1zY2hpY2h0LWtvcGYgewogICAgZGlzcGxheTogZmxleDsgYWxp
Z24taXRlbXM6IGNlbnRlcjsgZ2FwOiAxMHB4OyBmbGV4LXdyYXA6IHdyYXA7CiAgICBtYXJnaW4t
Ym90dG9tOiA2cHg7CiAgICBmb250LXNpemU6IHZhcigtLWZzLW1kKTsKfQouYmstZGV0YWlsLXNj
aGljaHQtemFobCB7CiAgICBjb2xvcjogdmFyKC0tdGV4dC1zZWNvbmRhcnkpOwogICAgZm9udC1z
aXplOiB2YXIoLS1mcy1iYXNlKTsKfQouYmstZGV0YWlsLWZrLWxpc3RlIHsKICAgIGxpc3Qtc3R5
bGU6IG5vbmU7IHBhZGRpbmc6IDA7IG1hcmdpbjogMDsKICAgIGRpc3BsYXk6IGZsZXg7IGZsZXgt
ZGlyZWN0aW9uOiBjb2x1bW47IGdhcDogM3B4Owp9Ci5iay1kZXRhaWwtZmstbGlzdGUgbGkgewog
ICAgZGlzcGxheTogZmxleDsgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgIHBhZGRpbmc6IDNw
eCA2cHg7CiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1iZy1jYXJkLWFsdCk7CiAgICBib3JkZXItcmFk
aXVzOiB2YXIoLS1yYWRpdXMtc20pOwp9Ci5iay1kZXRhaWwtZmstbmFtZSB7IGZvbnQtc2l6ZTog
MTIuNXB4OyBmb250LXdlaWdodDogNjAwOyBjb2xvcjogdmFyKC0tdGV4dC1oZWFkaW5nKTsgfQou
YmstZGV0YWlsLWZrLW1ldGEgeyBmb250LXNpemU6IDEwLjVweDsgY29sb3I6IHZhcigtLXRleHQt
bXV0ZWQpOyB9Ci5iay1kZXRhaWwtbGVlciB7IGZvbnQtc2l6ZTogdmFyKC0tZnMtYmFzZSk7IGNv
bG9yOiB2YXIoLS10ZXh0LW11dGVkKTsgZm9udC1zdHlsZTogaXRhbGljOyBwYWRkaW5nOiA0cHgg
NnB4OyB9CgouYmstZGV0YWlsLWF1c2hpbGZlIHsKICAgIGJhY2tncm91bmQ6IHJnYmEoMTc2LCA1
OCwgNDYsIDAuMDYpOwogICAgYm9yZGVyOiAxcHggZGFzaGVkIHJnYmEoMTc2LCA1OCwgNDYsIDAu
NCk7CiAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1yYWRpdXMtbWQpOwogICAgcGFkZGluZzogMTBw
eCAxNHB4Owp9Ci5iay1kZXRhaWwtYXVzaGlsZmUta29wZiB7IGZvbnQtd2VpZ2h0OiA3MDA7IGZv
bnQtc2l6ZTogdmFyKC0tZnMtbWQpOyBjb2xvcjogdmFyKC0tdGV4dC1oZWFkaW5nKTsgbWFyZ2lu
LWJvdHRvbTogOHB4OyB9Ci5iay1kZXRhaWwtYXVzaGlsZmUtYmVyZWljaCB7IG1hcmdpbi10b3A6
IDEwcHg7IH0KLmJrLWRldGFpbC1hdXNoaWxmZS1iZXJlaWNoOmZpcnN0LWNoaWxkIHsgbWFyZ2lu
LXRvcDogMDsgfQouYmstZGV0YWlsLWF1c2hpbGZlLWJlcmVpY2ggaDQgewogICAgZm9udC1zaXpl
OiB2YXIoLS1mcy1iYXNlKTsgY29sb3I6IHZhcigtLXRleHQtc2Vjb25kYXJ5KTsgbWFyZ2luOiAw
IDAgNHB4IDA7CiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOyBsZXR0ZXItc3BhY2luZzog
MC40cHg7IGZvbnQtd2VpZ2h0OiA3MDA7Cn0KLmJrLWRldGFpbC1hdXNoaWxmZS1saXN0ZSB7CiAg
ICBsaXN0LXN0eWxlOiBub25lOyBwYWRkaW5nOiAwOyBtYXJnaW46IDA7CiAgICBkaXNwbGF5OiBm
bGV4OyBmbGV4LWRpcmVjdGlvbjogY29sdW1uOyBnYXA6IDJweDsKfQovKiBUb29sYmFyIG9iZXJo
YWxiIGRlciBBdXNoaWxmZS1MaXN0ZTogIkFsbGUgbWFya2llcmVuIiArIE1haWwtQnV0dG9uLiAq
LwouYmstZGV0YWlsLWF1c2hpbGZlLXRvb2xiYXIgewogICAgZGlzcGxheTogZmxleDsgYWxpZ24t
aXRlbXM6IGNlbnRlcjsgZ2FwOiAxNHB4OwogICAgbWFyZ2luLWJvdHRvbTogOHB4OyBwYWRkaW5n
LWJvdHRvbTogOHB4OwogICAgYm9yZGVyLWJvdHRvbTogMXB4IGRhc2hlZCByZ2JhKDE3NiwgNTgs
IDQ2LCAwLjI1KTsKfQouYmstZGV0YWlsLWFsbGUgewogICAgZm9udC1zaXplOiB2YXIoLS1mcy1i
YXNlKTsgY29sb3I6IHZhcigtLXRleHQtc2Vjb25kYXJ5KTsKICAgIGRpc3BsYXk6IGlubGluZS1m
bGV4OyBhbGlnbi1pdGVtczogY2VudGVyOyBnYXA6IDZweDsKICAgIGN1cnNvcjogcG9pbnRlcjsg
dXNlci1zZWxlY3Q6IG5vbmU7Cn0KLmJrLWRldGFpbC1hdXNoaWxmZS16ZWlsZSB7CiAgICBkaXNw
bGF5OiBncmlkOwogICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAyMnB4IDE4MHB4IDYwcHggNjBw
eCAxZnIgMTMwcHg7CiAgICBnYXA6IDEwcHg7CiAgICBwYWRkaW5nOiA1cHggOHB4OwogICAgYmFj
a2dyb3VuZDogdmFyKC0tYmctY2FyZCk7CiAgICBib3JkZXI6IDFweCBzb2xpZCB0cmFuc3BhcmVu
dDsKICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLXJhZGl1cy1zbSk7CiAgICBmb250LXNpemU6IHZh
cigtLWZzLWJhc2UpOwogICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgIHRyYW5zaXRpb246IGJv
cmRlci1jb2xvciAwLjEycywgYmFja2dyb3VuZCAwLjEyczsKfQouYmstZGV0YWlsLWF1c2hpbGZl
LXplaWxlOmhvdmVyIHsKICAgIGJvcmRlci1jb2xvcjogdmFyKC0tZmFyYmUtYWt6ZW50KTsKICAg
IGJhY2tncm91bmQ6IHZhcigtLWJnLWhvdmVyKTsKfQouYmstYXVzaGlsZmUtY2hrIHsgY3Vyc29y
OiBwb2ludGVyOyB9Ci5iay1hdXNoaWxmZS1jaGs6ZGlzYWJsZWQgeyBjdXJzb3I6IG5vdC1hbGxv
d2VkOyBvcGFjaXR5OiAwLjQ7IH0KLmJrLWRldGFpbC1hdXNoaWxmZS1tYWlsYnRuIHsKICAgIHdo
aXRlLXNwYWNlOiBub3dyYXA7Cn0KLmJrLWRldGFpbC1hdXNoaWxmZS1rZWlubWFpbCB7CiAgICBm
b250LXNpemU6IHZhcigtLWZzLXNtKTsgY29sb3I6IHZhcigtLXRleHQtbXV0ZWQpOyBmb250LXN0
eWxlOiBpdGFsaWM7Cn0KLmJrLWRldGFpbC1hdXNoaWxmZS1rZWluLW1haWwgeyBvcGFjaXR5OiAw
LjU1OyB9Ci5iay1kZXRhaWwtYXVzaGlsZmUtbmFtZSB7IGZvbnQtd2VpZ2h0OiA2MDA7IGNvbG9y
OiB2YXIoLS10ZXh0LWhlYWRpbmcpOyB9Ci5iay1kZXRhaWwtYXVzaGlsZmUtY29kZSB7CiAgICBm
b250LWZhbWlseTogbW9ub3NwYWNlOyBmb250LXNpemU6IHZhcigtLWZzLXNtKTsKICAgIGJhY2tn
cm91bmQ6IHZhcigtLWJnLWNhcmQtYWx0KTsgcGFkZGluZzogMXB4IDZweDsKICAgIGJvcmRlci1y
YWRpdXM6IHZhcigtLXJhZGl1cy1zbSk7IHRleHQtYWxpZ246IGNlbnRlcjsKfQouYmstZGV0YWls
LWF1c2hpbGZlLWdycCB7IGNvbG9yOiB2YXIoLS10ZXh0LW11dGVkKTsgZm9udC1zaXplOiB2YXIo
LS1mcy1zbSk7IH0KLmJrLWRldGFpbC1hdXNoaWxmZS1rb21tIHsKICAgIGZvbnQtc3R5bGU6IGl0
YWxpYzsgY29sb3I6IHZhcigtLXRleHQtbXV0ZWQpOyBmb250LXNpemU6IHZhcigtLWZzLXNtKTsK
ICAgIG92ZXJmbG93OiBoaWRkZW47IHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOyB3aGl0ZS1zcGFj
ZTogbm93cmFwOwp9Ci5iay1kZXRhaWwtYXVzaGlsZmUtbWFpbCB7IGNvbG9yOiB2YXIoLS1mYXJi
ZS1ha3plbnQpOyBmb250LXNpemU6IHZhcigtLWZzLXNtKTsgfQpAbWVkaWEgKG1heC13aWR0aDog
OTAwcHgpIHsKICAgIC5iay1kZXRhaWwtYXVzaGlsZmUtemVpbGUgewogICAgICAgIGdyaWQtdGVt
cGxhdGUtY29sdW1uczogMWZyIDYwcHg7CiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1hcmVhczoKICAg
ICAgICAgICAgIm5hbWUgY29kZSIKICAgICAgICAgICAgImdycCBncnAiCiAgICAgICAgICAgICJr
b21tIGtvbW0iCiAgICAgICAgICAgICJtYWlsIG1haWwiOwogICAgfQogICAgLmJrLWRldGFpbC1h
dXNoaWxmZS1uYW1lIHsgZ3JpZC1hcmVhOiBuYW1lOyB9CiAgICAuYmstZGV0YWlsLWF1c2hpbGZl
LWNvZGUgeyBncmlkLWFyZWE6IGNvZGU7IH0KICAgIC5iay1kZXRhaWwtYXVzaGlsZmUtZ3JwICB7
IGdyaWQtYXJlYTogZ3JwOyB9CiAgICAuYmstZGV0YWlsLWF1c2hpbGZlLWtvbW0geyBncmlkLWFy
ZWE6IGtvbW07IH0KICAgIC5iay1kZXRhaWwtYXVzaGlsZmUtbWFpbCB7IGdyaWQtYXJlYTogbWFp
bDsgfQp9Ci5iay1hbGxlLW9rIHsgcGFkZGluZzogMzJweDsgdGV4dC1hbGlnbjogY2VudGVyOyBi
YWNrZ3JvdW5kOiByZ2JhKDM5LDEzNywxMDksMC4wOCk7IGJvcmRlcjogMXB4IHNvbGlkIHJnYmEo
MzksMTM3LDEwOSwwLjM1KTsgYm9yZGVyLXJhZGl1czogOHB4OyBjb2xvcjogdmFyKC0tZmFyYmUt
ZXJmb2xnKTsgZm9udC1zaXplOiAxNXB4OyBmb250LXdlaWdodDogNTAwOyB9CgovKiBEZWZpeml0
LU1vZGFsICovCi5iay1tb2RhbC1wZXJzb24geyBkaXNwbGF5OiBncmlkOyBncmlkLXRlbXBsYXRl
LWNvbHVtbnM6IDMwcHggMTgwcHggNzBweCAxZnIgYXV0bzsgZ2FwOiAxMHB4OyBhbGlnbi1pdGVt
czogY2VudGVyOyBwYWRkaW5nOiA4cHggMTBweDsgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHZh
cigtLWJvcmRlci1saWdodCk7IGZvbnQtc2l6ZTogdmFyKC0tZnMtbWQpOyB9Ci5iay1tb2RhbC1w
ZXJzb246bGFzdC1jaGlsZCB7IGJvcmRlci1ib3R0b206IG5vbmU7IH0KLmJrLW1vZGFsLW5hbWUg
eyBmb250LXdlaWdodDogNTAwOyBjb2xvcjogdmFyKC0tdGV4dC1oZWFkaW5nKTsgfQouYmstbW9k
YWwtd2VydCB7IGZvbnQtZmFtaWx5OiBtb25vc3BhY2U7IGZvbnQtc2l6ZTogdmFyKC0tZnMtc20p
OyBiYWNrZ3JvdW5kOiB2YXIoLS1iZy1wcmltYXJ5KTsgcGFkZGluZzogMnB4IDZweDsgYm9yZGVy
LXJhZGl1czogdmFyKC0tcmFkaXVzLXNtKTsgY29sb3I6IHZhcigtLXRleHQtbXV0ZWQpOyBib3Jk
ZXI6IDFweCBzb2xpZCB2YXIoLS1ib3JkZXItbGlnaHQpOyB9Ci5iay1tb2RhbC1rb21tIHsgZm9u
dC1zaXplOiB2YXIoLS1mcy1iYXNlKTsgY29sb3I6IHZhcigtLXRleHQtbXV0ZWQpOyBmb250LXN0
eWxlOiBpdGFsaWM7IG92ZXJmbG93OiBoaWRkZW47IHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOyB3
aGl0ZS1zcGFjZTogbm93cmFwOyB9Ci5iay1tb2RhbC1rb21tOmVtcHR5OjpiZWZvcmUgeyBjb250
ZW50OiAn4oCUIGtlaW4gS29tbWVudGFyIOKAlCc7IGNvbG9yOiB2YXIoLS10ZXh0LW11dGVkKTsg
b3BhY2l0eTogMC41OyB9Ci5iay1tb2RhbC1lbWFpbCB7IGZvbnQtZmFtaWx5OiBtb25vc3BhY2U7
IGZvbnQtc2l6ZTogdmFyKC0tZnMtc20pOyBjb2xvcjogdmFyKC0tdGV4dC1tdXRlZCk7IH0KLmJr
LW1vZGFsLWVtYWlsLWZlaGx0IHsgY29sb3I6IHZhcigtLWZhcmJlLWZlaGxlcik7IGZvbnQtc3R5
bGU6IGl0YWxpYzsgfQouYmstbW9kYWwta29wZiB7IGRpc3BsYXk6IGdyaWQ7IGdyaWQtdGVtcGxh
dGUtY29sdW1uczogMzBweCAxODBweCA3MHB4IDFmciBhdXRvOyBnYXA6IDEwcHg7IHBhZGRpbmc6
IDZweCAxMHB4OyBmb250LXNpemU6IHZhcigtLWZzLXNtKTsgZm9udC13ZWlnaHQ6IDYwMDsgY29s
b3I6IHZhcigtLXRleHQtbXV0ZWQpOyB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOyBsZXR0ZXIt
c3BhY2luZzogMC41cHg7IGJvcmRlci1ib3R0b206IDJweCBzb2xpZCB2YXIoLS1ib3JkZXItbGln
aHQpOyB9CgovKiA9PT09PSBTY2hpY2h0Y29kZS1MZWdlbmRlIGltIEluZm8tTW9kYWwgPT09PT0g
Ki8KLnNjLWxlZ2VuZGUtY29udGFpbmVyIHsgZGlzcGxheTogZmxleDsgZmxleC1kaXJlY3Rpb246
IGNvbHVtbjsgZ2FwOiAxNHB4OyB9Ci5zYy1sZWdlbmRlLWdydXBwZSB7CiAgICBib3JkZXI6IDFw
eCBzb2xpZCB2YXIoLS1ib3JkZXItbGlnaHQpOyBib3JkZXItcmFkaXVzOiB2YXIoLS1yYWRpdXMt
bWQpOwogICAgcGFkZGluZzogMTBweCAxMnB4OyBiYWNrZ3JvdW5kOiB2YXIoLS1iZy1jYXJkKTsK
fQouc2MtbGVnZW5kZS10aXRlbCB7CiAgICBmb250LXNpemU6IHZhcigtLWZzLXNtKTsgZm9udC13
ZWlnaHQ6IDcwMDsgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsKICAgIGxldHRlci1zcGFjaW5n
OiAwLjVweDsgY29sb3I6IHZhcigtLXRleHQtbXV0ZWQpOyBtYXJnaW4tYm90dG9tOiA4cHg7CiAg
ICBib3JkZXItYm90dG9tOiAxcHggc29saWQgdmFyKC0tYm9yZGVyLWxpZ2h0KTsgcGFkZGluZy1i
b3R0b206IDRweDsKfQouc2MtbGVnZW5kZS1ncmlkIHsKICAgIGRpc3BsYXk6IGdyaWQ7IGdyaWQt
dGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDMsIDFmcik7CiAgICBnYXA6IDZweCAxMnB4Owp9Ci5z
Yy1sZWdlbmRlLXplbGxlIHsKICAgIGRpc3BsYXk6IGZsZXg7IGFsaWduLWl0ZW1zOiBjZW50ZXI7
IGdhcDogOHB4OwogICAgcGFkZGluZzogNHB4IDZweDsgYm9yZGVyLXJhZGl1czogdmFyKC0tcmFk
aXVzLXhzKTsKfQouc2MtbGVnZW5kZS1mYXJiZmVsZCB7CiAgICBkaXNwbGF5OiBpbmxpbmUtZmxl
eDsgYWxpZ24taXRlbXM6IGNlbnRlcjsganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICB3aWR0
aDogMzZweDsgaGVpZ2h0OiAyMHB4OyBib3JkZXItcmFkaXVzOiB2YXIoLS1yYWRpdXMteHMpOwog
ICAgZm9udC1zaXplOiB2YXIoLS1mcy14cyk7IGZvbnQtd2VpZ2h0OiA3MDA7IGZsZXgtc2hyaW5r
OiAwOwogICAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgwLDAsMCwwLjEpOwp9Ci5zYy1sZWdlbmRl
LXRleHQgeyBmb250LXNpemU6IHZhcigtLWZzLXNtKTsgbGluZS1oZWlnaHQ6IDEuMjU7IH0KQG1l
ZGlhIChtYXgtd2lkdGg6IDcwMHB4KSB7CiAgICAuc2MtbGVnZW5kZS1ncmlkIHsgZ3JpZC10ZW1w
bGF0ZS1jb2x1bW5zOiByZXBlYXQoMiwgMWZyKTsgfQp9CgovKiA9PT09PSBFeGNlbC1JbXBvcnQg
PT09PT0gKi8KLmltcC11cGxvYWQtYm94IHsKICAgIGJhY2tncm91bmQ6IHZhcigtLWJnLWNhcmQp
OyBib3JkZXI6IDJweCBkYXNoZWQgdmFyKC0tYm9yZGVyLWxpZ2h0KTsKICAgIGJvcmRlci1yYWRp
dXM6IDhweDsgcGFkZGluZzogMjJweCAyMHB4OyB0ZXh0LWFsaWduOiBsZWZ0OwogICAgZGlzcGxh
eTogZmxleDsgYWxpZ24taXRlbXM6IGNlbnRlcjsgZ2FwOiAxNHB4OyBmbGV4LXdyYXA6IHdyYXA7
Cn0KLmltcC1zdGF0dXMta2FydGUgewogICAgYmFja2dyb3VuZDogdmFyKC0tYmctY2FyZCk7IGJv
cmRlcjogMXB4IHNvbGlkIHZhcigtLWJvcmRlci1saWdodCk7CiAgICBib3JkZXItcmFkaXVzOiA4
cHg7IHBhZGRpbmc6IDE2cHggMThweDsgbWFyZ2luLXRvcDogMTJweDsKfQouaW1wLWtwaS16ZWls
ZSB7IGRpc3BsYXk6IGZsZXg7IGdhcDogMTJweDsgZmxleC13cmFwOiB3cmFwOyBtYXJnaW46IDEy
cHggMDsgfQouaW1wLWtwaSB7IGZsZXg6IDE7IG1pbi13aWR0aDogMTQwcHg7IHBhZGRpbmc6IDEw
cHggMTRweDsgYm9yZGVyLXJhZGl1czogdmFyKC0tcmFkaXVzLW1kKTsgYmFja2dyb3VuZDogdmFy
KC0tYmctcHJpbWFyeSk7IGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWJvcmRlci1saWdodCk7IH0K
LmltcC1rcGktemFobCB7IGZvbnQtc2l6ZTogMjBweDsgZm9udC13ZWlnaHQ6IDcwMDsgY29sb3I6
IHZhcigtLXRleHQtaGVhZGluZyk7IGxpbmUtaGVpZ2h0OiAxLjE7IH0KLmltcC1rcGktbGFiZWwg
eyBmb250LXNpemU6IHZhcigtLWZzLXNtKTsgY29sb3I6IHZhcigtLXRleHQtbXV0ZWQpOyBtYXJn
aW4tdG9wOiAycHg7IH0KLmltcC1rcGktd2FybiB7IGJvcmRlci1jb2xvcjogcmdiYSgyMDIsMTEx
LDMwLDAuNSk7IGJhY2tncm91bmQ6IHJnYmEoMjAyLDExMSwzMCwwLjA2KTsgfQouaW1wLWtwaS13
YXJuIC5pbXAta3BpLXphaGwgeyBjb2xvcjogdmFyKC0tZmFyYmUtd2FybnVuZyk7IH0KLmltcC1r
cGktb2sgeyBib3JkZXItY29sb3I6IHJnYmEoMzksMTM3LDEwOSwwLjQpOyBiYWNrZ3JvdW5kOiBy
Z2JhKDM5LDEzNywxMDksMC4wNik7IH0KLmltcC1rcGktb2sgLmltcC1rcGktemFobCB7IGNvbG9y
OiB2YXIoLS1mYXJiZS1lcmZvbGcpOyB9Ci5pbXAta3BpLWZlaGxlciB7IGJvcmRlci1jb2xvcjog
cmdiYSgxNzYsNTgsNDYsMC41KTsgYmFja2dyb3VuZDogcmdiYSgxNzYsNTgsNDYsMC4wOCk7IH0K
LmltcC1rcGktZmVobGVyIC5pbXAta3BpLXphaGwgeyBjb2xvcjogdmFyKC0tZmFyYmUtZmVobGVy
KTsgfQoKLmltcC1tYXBwaW5nLWxpc3RlIHsKICAgIG1heC1oZWlnaHQ6IDM2MHB4OyBvdmVyZmxv
dy15OiBhdXRvOwogICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYm9yZGVyLWxpZ2h0KTsgYm9y
ZGVyLXJhZGl1czogdmFyKC0tcmFkaXVzLW1kKTsgbWFyZ2luLXRvcDogMTBweDsKfQouaW1wLW1h
cHBpbmctemVpbGUgewogICAgZGlzcGxheTogZ3JpZDsgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAy
NHB4IDFmciAzMHB4IDFmcjsgZ2FwOiAxMHB4OyBhbGlnbi1pdGVtczogY2VudGVyOwogICAgcGFk
ZGluZzogOHB4IDEycHg7IGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB2YXIoLS1ib3JkZXItbGln
aHQpOwogICAgZm9udC1zaXplOiB2YXIoLS1mcy1tZCk7Cn0KLyogU3RhdHVzLUljb24gbGlua3Mg
dm9yIGRlciBRdWVsbGUuIEZhcmJlIHdpcmQgaW5saW5lIHBybyBaZWlsZSBnZXNldHp0CiAgIChD
bG9zdXJlLUhlbHBlciBzdGF0dXNJY29uSHRtbCBpbiBpbXBvcnRfZXhjZWwuanMpLCBkaWUgS2xh
c3NlIGhhZWx0CiAgIG51ciBkYXMgTGF5b3V0LiAqLwouaW1wLW1hcHBpbmctc3RhdHVzIHsgZGlz
cGxheTogaW5saW5lLWJsb2NrOyB3aWR0aDogMjBweDsgdGV4dC1hbGlnbjogY2VudGVyOyBmb250
LXdlaWdodDogNzAwOyB9Ci8qIEFnZ3JlZ2F0LVplaWxlIHVlYmVyIGRlbiBUYWItQnV0dG9ucyBp
bSBNYXBwaW5nLU1vZGFsOiBrb21wYWt0ZSBMaXZlLQogICBaYWVobGVyIG5hY2ggS2F0ZWdvcmll
LiBGYXJiZW4ga29tbWVuIGlubGluZSBhdXMgZGVtIEpTLiAqLwouaW1wLXN0YXR1cy1hZ2dyZWdh
dCB7CiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDsgZ2FwOiAxNHB4OyBmb250LXNpemU6IHZhcigt
LWZzLW1kKTsKICAgIG1hcmdpbjogMCAwIDEycHggMDsgcGFkZGluZzogNnB4IDEwcHg7CiAgICBi
YWNrZ3JvdW5kOiB2YXIoLS1iZy1jYXJkKTsgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYm9yZGVy
LWxpZ2h0KTsgYm9yZGVyLXJhZGl1czogdmFyKC0tcmFkaXVzLXNtKTsKfQouaW1wLXN0YXR1cy1h
Z2dyZWdhdDplbXB0eSB7IGRpc3BsYXk6IG5vbmU7IH0KLmltcC1tYXBwaW5nLXplaWxlOmxhc3Qt
Y2hpbGQgeyBib3JkZXItYm90dG9tOiBub25lOyB9Ci5pbXAtbWFwcGluZy16ZWlsZS5pbXAtb2sg
eyBiYWNrZ3JvdW5kOiByZ2JhKDM5LDEzNywxMDksMC4wNSk7IH0KLmltcC1tYXBwaW5nLXplaWxl
LmltcC13YXJuIHsgYmFja2dyb3VuZDogcmdiYSgyMDIsMTExLDMwLDAuMDYpOyB9Ci8qIFBhcGll
cmtvcmItVHJlZmZlcjogd2VpY2hlciBLb25mbGlrdCBtaXQgRGVmYXVsdC1XaWVkZXJoZXJzdGVs
bGVuLVZvcnNjaGxhZy4KICAgVmlzdWVsbCB6d2lzY2hlbiAib2siIHVuZCAid2FybiIgLS0gZGVy
IFVzZXIgc29sbCBkaWUgU3RlbGxlIHBydWVmZW4sIGFiZXIKICAgbmljaHQgaW4gUGFuaWsgZ2Vy
YXRlbi4gKi8KLmltcC1tYXBwaW5nLXplaWxlLmltcC1wYXBpZXJrb3JiIHsgYmFja2dyb3VuZDog
cmdiYSgyMDIsMTExLDMwLDAuMTApOyB9Ci5pbXAtcGFwaWVya29yYi1oaW53ZWlzIHsKICAgIGZv
bnQtc2l6ZTogdmFyKC0tZnMtc20pOyBjb2xvcjogdmFyKC0tZmFyYmUtd2FybnVuZyk7IGxpbmUt
aGVpZ2h0OiAxLjQ7CiAgICBiYWNrZ3JvdW5kOiByZ2JhKDIwMiwxMTEsMzAsMC4wOCk7IHBhZGRp
bmc6IDRweCA4cHg7IGJvcmRlci1yYWRpdXM6IHZhcigtLXJhZGl1cy1zbSk7Cn0KLyogIk5ldSBh
bmxlZ2VuIiDigJQga2VpbiBLb25mbGlrdCwgc29uZGVybiBha3RpdmUgU3RhbmRhcmQtQWt0aW9u
LiBTYW5mdGVzCiAgIEJsYXUsIGRhbWl0IGRpZSBaZWlsZSBhbHMgcG9zaXRpdmVyIERlZmF1bHQg
c2ljaHRiYXIgd2lyZC4gKi8KLmltcC1tYXBwaW5nLXplaWxlLmltcC1uZXUgeyBiYWNrZ3JvdW5k
OiByZ2JhKDQ4LDk5LDE2OCwwLjA2KTsgfQouaW1wLW5ldS1oaW53ZWlzIHsKICAgIGZvbnQtc2l6
ZTogdmFyKC0tZnMtc20pOyBjb2xvcjogdmFyKC0tZmFyYmUtcHJpbWFlcik7IGxpbmUtaGVpZ2h0
OiAxLjQ7CiAgICBiYWNrZ3JvdW5kOiByZ2JhKDQ4LDk5LDE2OCwwLjA4KTsgcGFkZGluZzogNHB4
IDhweDsgYm9yZGVyLXJhZGl1czogdmFyKC0tcmFkaXVzLXNtKTsKfQouaW1wLWtwaS1uZXUgeyBi
b3JkZXItY29sb3I6IHJnYmEoNDgsOTksMTY4LDAuNDUpOyBiYWNrZ3JvdW5kOiByZ2JhKDQ4LDk5
LDE2OCwwLjA2KTsgfQouaW1wLWtwaS1uZXUgLmltcC1rcGktemFobCB7IGNvbG9yOiB2YXIoLS1m
YXJiZS1wcmltYWVyKTsgfQouaW1wLW1hcHBpbmctcXVlbGxlIHsgZm9udC13ZWlnaHQ6IDYwMDsg
fQouaW1wLW1hcHBpbmctYW56YWhsIHsgZm9udC1zaXplOiB2YXIoLS1mcy1zbSk7IGNvbG9yOiB2
YXIoLS10ZXh0LW11dGVkKTsgbWFyZ2luLWxlZnQ6IDZweDsgfQouaW1wLXBmZWlsIHsgdGV4dC1h
bGlnbjogY2VudGVyOyBjb2xvcjogdmFyKC0tdGV4dC1tdXRlZCk7IH0KLyogSW5saW5lLUZvcm0g
Ik5ldWVuIFNjaGljaHRjb2RlIGFubGVnZW4iIChQaGFzZSAxMC1DMykuIEtsYXBwdCB1bnRlcgog
ICBkZXIgamV3ZWlsaWdlbiBNYXBwaW5nLVplaWxlIGF1ZiDigJQga2VpbiBNb2RhbC1TdGFjay4g
U2FuZnRlciBCbGF1LVRvbgogICBwYXNzdCB6dXIgIm5ldSItU2VtYW50aWsgZGVzIE1hcHBpbmct
U3RhdHVzLiAqLwouaW1wLW5ldWVyLWNvZGUtZm9ybSB7CiAgICBiYWNrZ3JvdW5kOiByZ2JhKDQ4
LDk5LDE2OCwwLjA2KTsgYm9yZGVyOiAxcHggc29saWQgcmdiYSg0OCw5OSwxNjgsMC4yNSk7CiAg
ICBib3JkZXItcmFkaXVzOiB2YXIoLS1yYWRpdXMtc20pOyBwYWRkaW5nOiAxMHB4IDEycHg7IG1h
cmdpbjogMCAxMnB4IDZweCAzNnB4OwogICAgZm9udC1zaXplOiB2YXIoLS1mcy1iYXNlKTsKfQou
aW1wLW5ldWVyLWNvZGUtZm9ybSBsYWJlbCB7IGRpc3BsYXk6IGJsb2NrOyBtYXJnaW4tYm90dG9t
OiAycHg7IGNvbG9yOiB2YXIoLS10ZXh0LW11dGVkKTsgfQouaW1wLW5ldWVyLWNvZGUtZm9ybSAu
Zm9ybS1pbnB1dCB7IHBhZGRpbmc6IDRweCA2cHg7IGZvbnQtc2l6ZTogdmFyKC0tZnMtYmFzZSk7
IH0KCi8qIFByb2dyZXNzLU1vZGFsICovCi5pbXAtcHJvZ3Jlc3Mta29udGV4dCB7IGJhY2tncm91
bmQ6IHZhcigtLWJnLWNhcmQpOyBwYWRkaW5nOiAyMHB4IDI0cHg7IGJvcmRlci1yYWRpdXM6IDhw
eDsgbWluLXdpZHRoOiA0NjBweDsgfQouaW1wLXByb2dyZXNzLWJhciB7IGhlaWdodDogMjJweDsg
YmFja2dyb3VuZDogdmFyKC0tYmctcHJpbWFyeSk7IGJvcmRlci1yYWRpdXM6IHZhcigtLXJhZGl1
cy1zbSk7IG92ZXJmbG93OiBoaWRkZW47IGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWJvcmRlci1s
aWdodCk7IG1hcmdpbjogMTRweCAwIDZweCAwOyB9Ci5pbXAtcHJvZ3Jlc3MtZmlsbCB7CiAgICBo
ZWlnaHQ6IDEwMCU7IGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCg5MGRlZywgdmFyKC0tZmFy
YmUtcHJpbWFlciksIHZhcigtLWZhcmJlLWVyZm9sZykpOwogICAgd2lkdGg6IDAlOyB0cmFuc2l0
aW9uOiB3aWR0aCAwLjI1cyBlYXNlLW91dDsgYm9yZGVyLXJhZGl1czogaW5oZXJpdDsKfQouaW1w
LXByb2dyZXNzLXRleHQgeyBmb250LXNpemU6IHZhcigtLWZzLWJhc2UpOyBjb2xvcjogdmFyKC0t
dGV4dC1tdXRlZCk7IGZvbnQtZmFtaWx5OiBtb25vc3BhY2U7IG1pbi1oZWlnaHQ6IDE2cHg7IH0K
LmltcC1wcm9ncmVzcy1waGFzZSB7IGZvbnQtc2l6ZTogdmFyKC0tZnMtbGcpOyBmb250LXdlaWdo
dDogNjAwOyBjb2xvcjogdmFyKC0tdGV4dC1oZWFkaW5nKTsgfQoKLyogPT09PT0gU2Nyb2xsYmFs
a2VuIChXaW5kb3dzL0Nocm9taXVtKSA9PT09PSAqLwovKiBLZWluZSBSYW5kcGZlaWxlLCBEYXVt
ZW4gdW5hdWZmYWVsbGlnIGdyYXUsIGJlaW0gSG92ZXIvRHJhZyBIZWFkZXItQmxhdSAqLwo6Oi13
ZWJraXQtc2Nyb2xsYmFyIHsgd2lkdGg6IDEycHg7IGhlaWdodDogMTJweDsgfQo6Oi13ZWJraXQt
c2Nyb2xsYmFyLXRyYWNrIHsgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7IH0KOjotd2Via2l0LXNj
cm9sbGJhci10aHVtYiB7CiAgICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuMjIpOwogICAg
Ym9yZGVyLXJhZGl1czogdmFyKC0tcmFkaXVzLW1kKTsKICAgIGJvcmRlcjogMnB4IHNvbGlkIHRy
YW5zcGFyZW50OwogICAgYmFja2dyb3VuZC1jbGlwOiBwYWRkaW5nLWJveDsKICAgIHRyYW5zaXRp
b246IGJhY2tncm91bmQgMC4xNXMgZWFzZTsKfQo6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iOmhv
dmVyLAo6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iOmFjdGl2ZSB7CiAgICBiYWNrZ3JvdW5kOiB2
YXIoLS1iZy1wcmltYXJ5KTsKICAgIGJhY2tncm91bmQtY2xpcDogcGFkZGluZy1ib3g7Cn0KOjot
d2Via2l0LXNjcm9sbGJhci1idXR0b24geyBkaXNwbGF5OiBub25lOyB3aWR0aDogMDsgaGVpZ2h0
OiAwOyB9Cjo6LXdlYmtpdC1zY3JvbGxiYXItY29ybmVyIHsgYmFja2dyb3VuZDogdHJhbnNwYXJl
bnQ7IH0KCi8qIEZpcmVmb3ggKi8KKiB7IHNjcm9sbGJhci1jb2xvcjogcmdiYSgwLCAwLCAwLCAw
LjIyKSB0cmFuc3BhcmVudDsgc2Nyb2xsYmFyLXdpZHRoOiB0aGluOyB9CgpbZGF0YS10aGVtZT0i
bmlnaHQiXSA6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iIHsgYmFja2dyb3VuZDogcmdiYSgyNTUs
IDI1NSwgMjU1LCAwLjE4KTsgYmFja2dyb3VuZC1jbGlwOiBwYWRkaW5nLWJveDsgfQpbZGF0YS10
aGVtZT0ibmlnaHQiXSA6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iOmhvdmVyLApbZGF0YS10aGVt
ZT0ibmlnaHQiXSA6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iOmFjdGl2ZSB7IGJhY2tncm91bmQ6
IHZhcigtLWJnLXByaW1hcnkpOyBiYWNrZ3JvdW5kLWNsaXA6IHBhZGRpbmctYm94OyB9CltkYXRh
LXRoZW1lPSJuaWdodCJdICogeyBzY3JvbGxiYXItY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwg
MC4xOCkgdHJhbnNwYXJlbnQ7IH0KCi8qID09PT09IE1hbnVlbGxlIFNvcnRpZXJ1bmcgKERyYWcg
JiBEcm9wKSA9PT09PSAqLwoubXMtbGlzdGUgeyBkaXNwbGF5OiBmbGV4OyBmbGV4LWRpcmVjdGlv
bjogY29sdW1uOyBnYXA6IDRweDsgbWF4LWhlaWdodDogNjB2aDsgb3ZlcmZsb3cteTogYXV0bzsg
cGFkZGluZzogNHB4OyB9Ci5tcy16ZWlsZSB7CiAgICBkaXNwbGF5OiBncmlkOwogICAgLyogVVgt
QXVkaXQgU3ByaW50IDMuNjogKzIgc2NobWFsZSBTcGFsdGVuIGZ1ZXIg4payL+KWvC1QZmVpbC1C
dXR0b25zIChUYXN0YXR1ci1WYXJpYW50ZSkuICovCiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6
IDI4cHggMzZweCAxZnIgYXV0byAyNnB4IDI2cHg7CiAgICBhbGlnbi1pdGVtczogY2VudGVyOwog
ICAgZ2FwOiAxMHB4OwogICAgcGFkZGluZzogOHB4IDEwcHg7CiAgICBiYWNrZ3JvdW5kOiB2YXIo
LS1iZy1tdXRlZCk7CiAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1ib3JkZXItbGlnaHQpOwog
ICAgYm9yZGVyLXJhZGl1czogdmFyKC0tcmFkaXVzLW1kKTsKICAgIGN1cnNvcjogZ3JhYjsKICAg
IHRyYW5zaXRpb246IGJhY2tncm91bmQgMC4xMnMsIGJveC1zaGFkb3cgMC4xMnM7Cn0KLm1zLXpl
aWxlOmhvdmVyIHsgYmFja2dyb3VuZDogdmFyKC0tYmctaG92ZXIpOyB9Ci5tcy16ZWlsZS5tcy1k
cmFnZ2luZyB7IG9wYWNpdHk6IDAuNDU7IGN1cnNvcjogZ3JhYmJpbmc7IGJveC1zaGFkb3c6IDAg
NHB4IDEycHggcmdiYSgwLDAsMCwwLjIpOyB9Ci5tcy1ncmlmZiB7IGZvbnQtc2l6ZTogMThweDsg
Y29sb3I6IHZhcigtLXRleHQtbXV0ZWQpOyB0ZXh0LWFsaWduOiBjZW50ZXI7IGN1cnNvcjogZ3Jh
YjsgdXNlci1zZWxlY3Q6IG5vbmU7IH0KLm1zLW5hbWUgeyBmb250LXdlaWdodDogNjAwOyB9Ci5t
cy1yYW5nIHsgZm9udC1zaXplOiB2YXIoLS1mcy1iYXNlKTsgY29sb3I6IHZhcigtLXRleHQtbXV0
ZWQpOyB3aGl0ZS1zcGFjZTogbm93cmFwOyB9Ci5tcy1wZmVpbCB7CiAgICB3aWR0aDogMjZweDsg
aGVpZ2h0OiAyNnB4OyBwYWRkaW5nOiAwOwogICAgYmFja2dyb3VuZDogdmFyKC0tYmctY2FyZCk7
CiAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1ib3JkZXItc3Ryb25nKTsKICAgIGJvcmRlci1y
YWRpdXM6IHZhcigtLXJhZGl1cy1zbSk7CiAgICBjb2xvcjogdmFyKC0tdGV4dC1oZWFkaW5nKTsK
ICAgIGZvbnQtc2l6ZTogdmFyKC0tZnMtYmFzZSk7CiAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICB0
cmFuc2l0aW9uOiB2YXIoLS10cmFuc2l0aW9uLXN0ZCk7Cn0KLm1zLXBmZWlsOmhvdmVyLCAubXMt
cGZlaWw6Zm9jdXMtdmlzaWJsZSB7CiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1iZy1ob3Zlcik7CiAg
ICBib3JkZXItY29sb3I6IHZhcigtLWZhcmJlLWFremVudCk7CiAgICBvdXRsaW5lOiBub25lOwp9
CgovKiA9PT09PSBSYW5nLUlubGluZS1FZGl0IGluIGRlciBQZXJzb25hbHZlcndhbHR1bmcgPT09
PT0gKi8KLnJhbmctZWRpdCB7CiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7CiAgICBwYWRkaW5n
OiAycHggOHB4OwogICAgYm9yZGVyLXJhZGl1czogdmFyKC0tcmFkaXVzLXNtKTsKICAgIGN1cnNv
cjogcG9pbnRlcjsKICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgMC4xMnMsIGNvbG9yIDAuMTJz
Owp9Ci5yYW5nLWVkaXQ6aG92ZXIgewogICAgYmFja2dyb3VuZDogdmFyKC0tYmctaG92ZXIpOwog
ICAgY29sb3I6IHZhcigtLXRleHQtaGVhZGluZyk7CiAgICBvdXRsaW5lOiAxcHggZGFzaGVkIHZh
cigtLWJvcmRlci1saWdodCk7Cn0KLnJhbmctZWRpdC1pbnB1dCB7CiAgICB3aWR0aDogNjBweDsK
ICAgIHBhZGRpbmc6IDJweCA0cHg7CiAgICBmb250LXNpemU6IHZhcigtLWZzLW1kKTsKICAgIGZv
bnQtd2VpZ2h0OiA3MDA7CiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICBib3JkZXI6IDFweCBz
b2xpZCB2YXIoLS1mYXJiZS1wcmltYWVyKTsKICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLXJhZGl1
cy1zbSk7CiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1iZy1jb250ZW50KTsKICAgIGNvbG9yOiB2YXIo
LS10ZXh0LWhlYWRpbmcpOwp9CgovKiA9PT09PSBGdW5rdGlvbi1JbmxpbmUtRWRpdCBpbiBkZXIg
UGVyc29uYWx2ZXJ3YWx0dW5nID09PT09ICovCi5mdW5rdGlvbi1lZGl0IHsKICAgIGRpc3BsYXk6
IGlubGluZS1ibG9jazsKICAgIHBhZGRpbmc6IDJweCA4cHg7CiAgICBib3JkZXItcmFkaXVzOiB2
YXIoLS1yYWRpdXMtc20pOwogICAgY3Vyc29yOiBwb2ludGVyOwogICAgdHJhbnNpdGlvbjogYmFj
a2dyb3VuZCAwLjEycywgY29sb3IgMC4xMnM7Cn0KLmZ1bmt0aW9uLWVkaXQ6aG92ZXIgewogICAg
YmFja2dyb3VuZDogdmFyKC0tYmctaG92ZXIpOwogICAgY29sb3I6IHZhcigtLXRleHQtaGVhZGlu
Zyk7CiAgICBvdXRsaW5lOiAxcHggZGFzaGVkIHZhcigtLWJvcmRlci1saWdodCk7Cn0KLmZ1bmt0
aW9uLWVkaXQtaW5wdXQgewogICAgd2lkdGg6IDEwMCU7CiAgICBwYWRkaW5nOiAycHggNHB4Owog
ICAgZm9udC1zaXplOiB2YXIoLS1mcy1iYXNlKTsKICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigt
LWZhcmJlLXByaW1hZXIpOwogICAgYm9yZGVyLXJhZGl1czogdmFyKC0tcmFkaXVzLXNtKTsKICAg
IGJhY2tncm91bmQ6IHZhcigtLWJnLWNvbnRlbnQpOwogICAgY29sb3I6IHZhcigtLXRleHQtaGVh
ZGluZyk7Cn0KCi8qID09PT09IERpZW5zdGdyYWQtSW5saW5lLUVkaXQgPT09PT0gKi8KLmRpZW5z
dGdyYWQtZWRpdCB7CiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7CiAgICBwYWRkaW5nOiAycHgg
OHB4OwogICAgYm9yZGVyLXJhZGl1czogdmFyKC0tcmFkaXVzLXNtKTsKICAgIGN1cnNvcjogcG9p
bnRlcjsKICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgMC4xMnMsIGNvbG9yIDAuMTJzOwp9Ci5k
aWVuc3RncmFkLWVkaXQ6aG92ZXIgewogICAgYmFja2dyb3VuZDogdmFyKC0tYmctaG92ZXIpOwog
ICAgY29sb3I6IHZhcigtLXRleHQtaGVhZGluZyk7CiAgICBvdXRsaW5lOiAxcHggZGFzaGVkIHZh
cigtLWJvcmRlci1saWdodCk7Cn0KLmRpZW5zdGdyYWQtZWRpdC1pbnB1dCB7CiAgICB3aWR0aDog
NzBweDsKICAgIHBhZGRpbmc6IDJweCA0cHg7CiAgICBmb250LXNpemU6IHZhcigtLWZzLWJhc2Up
OwogICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tZmFyYmUtcHJpbWFlcik7CiAgICBib3JkZXIt
cmFkaXVzOiB2YXIoLS1yYWRpdXMtc20pOwogICAgYmFja2dyb3VuZDogdmFyKC0tYmctY29udGVu
dCk7CiAgICBjb2xvcjogdmFyKC0tdGV4dC1oZWFkaW5nKTsKfQoKLyogPT09PT0gUGVyc29uYWwt
SW5saW5lLUVkaXQgKGFsbGUgVGV4dGZlbGRlciBwcm8gWmVpbGUpID09PT09ICovCi8qIEtvbnNp
c3RlbnQgenVtIHJhbmctL2RpZW5zdGdyYWQtL2Z1bmt0aW9uLWVkaXQtU3RpbC4gQmVpIGxlZXJl
bSBXZXJ0CiAgIHBlcm1hbmVudCBkZXplbnQgc2ljaHRiYXIgKFBsYWNlaG9sZGVyICsgbGVpY2h0
ZXIgSGludGVyZ3J1bmQpLCBkYW1pdAogICBkZXIgVXNlciBlcmtlbm50OiBoaWVyIGthbm4gbWFu
IGtsaWNrZW4uICovCi5wZXJzb25hbC1pbmxpbmUgewogICAgZGlzcGxheTogaW5saW5lLWJsb2Nr
OwogICAgcGFkZGluZzogMnB4IDhweDsKICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLXJhZGl1cy1z
bSk7CiAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDAuMTJz
LCBjb2xvciAwLjEycywgb3V0bGluZS1jb2xvciAwLjEyczsKICAgIG1pbi13aWR0aDogMjRweDsK
ICAgIG1pbi1oZWlnaHQ6IDE4cHg7Cn0KLnBlcnNvbmFsLWlubGluZTpob3ZlciB7CiAgICBiYWNr
Z3JvdW5kOiB2YXIoLS1iZy1ob3Zlcik7CiAgICBjb2xvcjogdmFyKC0tdGV4dC1oZWFkaW5nKTsK
ICAgIG91dGxpbmU6IDFweCBkYXNoZWQgdmFyKC0tZmFyYmUtYWt6ZW50LCAjNGE5MGUyKTsKfQov
KiBMZWVyZSBJbmxpbmUtRmVsZGVyIGJla29tbWVuIGVpbmVuIGtsYXIgZXJrZW5uYmFyZW4gIkRy
b3AtWm9uZSItTG9vayDigJQKICAgZ2VwdW5rdGV0ZXIgUmFobWVuIG1pdCBBa3plbnQtRmFyYmUs
IGxlaWNodGVyIEhpbnRlcmdydW5kLVNjaGltbWVyLAogICBkYW1pdCBkZXIgS2xpY2stSG90c3Bv
dCBuaWNodCBtaXQgZWNodGVtIExlZXJzdGFuZCB2ZXJ3ZWNoc2VsdCB3aXJkLiAqLwoucGVyc29u
YWwtaW5saW5lLWxlZXIgewogICAgYmFja2dyb3VuZDogdmFyKC0tYmctY2FyZC1hbHQpOwogICAg
b3V0bGluZTogMXB4IGRhc2hlZCB2YXIoLS1ib3JkZXItc3Ryb25nKTsKfQoucGVyc29uYWwtaW5s
aW5lLWxlZXI6aG92ZXIgewogICAgYmFja2dyb3VuZDogdmFyKC0tYmctaG92ZXIpOwogICAgb3V0
bGluZTogMXB4IGRhc2hlZCB2YXIoLS1mYXJiZS1ha3plbnQpOwp9Ci5wZXJzb25hbC1pbmxpbmUt
cGxhY2Vob2xkZXIgewogICAgZm9udC1zdHlsZTogaXRhbGljOwogICAgZm9udC1zaXplOiB2YXIo
LS1mcy1zbSk7CiAgICBjb2xvcjogdmFyKC0tZmFyYmUtYWt6ZW50KTsKICAgIG9wYWNpdHk6IDAu
OTsKICAgIGxldHRlci1zcGFjaW5nOiAwLjJweDsKfQoKLyogZWxkZ2wtZWRpdDogZ2xlaWNoZXMg
SG92ZXItTXVzdGVyLCBkYW1pdCBkaWUgU3BhbHRlIHNpY2h0YmFyIGVkaXRpZXJiYXIgd2lya3Qu
ICovCi5lbGRnbC1lZGl0IHsKICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgMC4xMnMsIG91dGxp
bmUtY29sb3IgMC4xMnM7Cn0KLmVsZGdsLWVkaXQ6aG92ZXIgewogICAgYmFja2dyb3VuZDogdmFy
KC0tYmctaG92ZXIpOwogICAgb3V0bGluZTogMXB4IGRhc2hlZCB2YXIoLS1mYXJiZS1ha3plbnQs
ICM0YTkwZTIpOwp9CgovKiA9PT09PSBWSTMtREdMLVN0YXR1cy1CdXR0b24gKFBlcnNvbmFsdmVy
d2FsdHVuZykgPT09PT0KICAgUXVhZHJhdGlzY2hlciBTdGF0dXMtQnV0dG9uLCAyNngyNiBweC4g
R3J1ZW4gKyB3ZWlzc2VyIEhha2VuIGJlaQogICBRdWFsaWZpemllcnVuZywgcm90ICsgd2Vpc3Nl
ciBob3Jpem9udGFsZXIgQmFsa2VuIChWZXJrZWhyc3NjaGlsZAogICAiVmVyYm90IGRlciBFaW5m
YWhydCItT3B0aWspIGJlaSBuaWNodCBxdWFsaWZpemllcnQuICovCi52aTNkZ2wtYnRuIHsKICAg
IGRpc3BsYXk6IGlubGluZS1mbGV4OwogICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgIGp1c3Rp
ZnktY29udGVudDogY2VudGVyOwogICAgd2lkdGg6IDI2cHg7CiAgICBoZWlnaHQ6IDI2cHg7CiAg
ICBib3JkZXItcmFkaXVzOiB2YXIoLS1yYWRpdXMtc20pOwogICAgdmVydGljYWwtYWxpZ246IG1p
ZGRsZTsKICAgIHVzZXItc2VsZWN0OiBub25lOwogICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAu
MTJzLCBib3gtc2hhZG93IDAuMTJzOwogICAgYm94LXNoYWRvdzogaW5zZXQgMCAtMXB4IDAgcmdi
YSgwLDAsMCwwLjE4KTsKfQouZWxkZ2wtZWRpdDpob3ZlciAudmkzZGdsLWJ0biwKLmFuc3ByZWNo
cGFydG5lci1lZGl0OmhvdmVyIC52aTNkZ2wtYnRuIHsKICAgIHRyYW5zZm9ybTogc2NhbGUoMS4w
OCk7CiAgICBib3gtc2hhZG93OiBpbnNldCAwIC0xcHggMCByZ2JhKDAsMCwwLDAuMTgpLCAwIDAg
MCAycHggcmdiYSg3NCwxNDQsMjI2LDAuMzUpOwp9Ci52aTNkZ2wtYnRuLW9rIHsKICAgIGJhY2tn
cm91bmQ6IHZhcigtLWZhcmJlLWVyZm9sZywgIzI3ODk2RCk7Cn0KLnZpM2RnbC1idG4tb2s6OmJl
Zm9yZSB7CiAgICBjb250ZW50OiAn4pyTJzsKICAgIGNvbG9yOiAjZmZmOwogICAgZm9udC13ZWln
aHQ6IDgwMDsKICAgIGZvbnQtc2l6ZTogMTZweDsKICAgIGxpbmUtaGVpZ2h0OiAxOwp9Ci52aTNk
Z2wtYnRuLW5vIHsKICAgIGJhY2tncm91bmQ6IHZhcigtLWZhcmJlLWZlaGxlciwgI0IwM0EyRSk7
CiAgICBwb3NpdGlvbjogcmVsYXRpdmU7Cn0KLnZpM2RnbC1idG4tbm86OmJlZm9yZSB7CiAgICBj
b250ZW50OiAnJzsKICAgIHdpZHRoOiA2MCU7CiAgICBoZWlnaHQ6IDVweDsKICAgIGJhY2tncm91
bmQ6ICNmZmY7CiAgICBib3JkZXItcmFkaXVzOiAxcHg7CiAgICBib3gtc2hhZG93OiAwIDAgMCAx
cHggcmdiYSgwLDAsMCwwLjEyKTsKfQovKiAiQXVzIi1WYXJpYW50ZTogZ3JhdWVyIEhpbnRlcmdy
dW5kICsgd2Vpc3NlciBNaW51cy1CYWxrZW4uIFdpcmQgaW4KICAgZGVyIEFuc3ByZWNocGFydG5l
ci1TcGFsdGUgYWxzIG5ldXRyYWxlcyAibmljaHQgZ2VzZXR6dCIgZ2VudXR6dCDigJQKICAga2Vp
bmUgV2Fybi1PcHRpayB3aWUgLnZpM2RnbC1idG4tbm8sIHdlaWwgZGFzIEZsYWcgcmVpbiBvcHRp
b25hbCBpc3QuICovCi52aTNkZ2wtYnRuLW9mZiB7CiAgICBiYWNrZ3JvdW5kOiB2YXIoLS10ZXh0
LW11dGVkLCAjNmM3NTdkKTsKICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKfQoudmkzZGdsLWJ0bi1v
ZmY6OmJlZm9yZSB7CiAgICBjb250ZW50OiAnJzsKICAgIHdpZHRoOiA2MCU7CiAgICBoZWlnaHQ6
IDVweDsKICAgIGJhY2tncm91bmQ6ICNmZmY7CiAgICBib3JkZXItcmFkaXVzOiAxcHg7CiAgICBi
b3gtc2hhZG93OiAwIDAgMCAxcHggcmdiYSgwLDAsMCwwLjEyKTsKfQoKLyogPT09PT0gUGVyc29u
LU1vZGFsOiBWSTMtREdMLVRvZ2dsZSA9PT09PSAqLwovKiBIb2VoZSBhbiBkaWUgYmVuYWNoYmFy
dGVuIGZvcm0taW5wdXQvc2VsZWN0IGFuZ2VwYXNzdCAoVXNlci1GZWVkYmFjawogICAyMDI2LTA1
LTIzOiB3YXIgenUgd3VjaHRpZykuIFN0YXR1cy1RdWFkcmF0IDIyeDIyLCBQYWRkaW5nIGtvbXBh
a3QsCiAgIFN0YXR1cyArIEhpbnQgaW5saW5lIHN0YXR0IGdlc3RhcGVsdC4gKi8KLmRsZy1lbGRn
bC10b2dnbGUgewogICAgZGlzcGxheTogaW5saW5lLWZsZXg7CiAgICBhbGlnbi1pdGVtczogY2Vu
dGVyOwogICAgZ2FwOiAxMHB4OwogICAgd2lkdGg6IDEwMCU7CiAgICBoZWlnaHQ6IDM2cHg7CiAg
ICBwYWRkaW5nOiAwIDEwcHg7CiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1iZy1jYXJkLWFsdCk7CiAg
ICBib3JkZXI6IDJweCBzb2xpZCB2YXIoLS1ib3JkZXItbGlnaHQpOwogICAgYm9yZGVyLXJhZGl1
czogdmFyKC0tcmFkaXVzLW1kKTsKICAgIGN1cnNvcjogcG9pbnRlcjsKICAgIHRyYW5zaXRpb246
IGJhY2tncm91bmQgMC4xNXMsIGJvcmRlci1jb2xvciAwLjE1czsKICAgIGZvbnQ6IGluaGVyaXQ7
CiAgICBjb2xvcjogdmFyKC0tdGV4dC1wcmltYXJ5KTsKICAgIHRleHQtYWxpZ246IGxlZnQ7Cn0K
LmRsZy1lbGRnbC10b2dnbGU6aG92ZXIgeyBiYWNrZ3JvdW5kOiB2YXIoLS1iZy1ob3Zlcik7IH0K
LmRsZy1lbGRnbC10b2dnbGUgLnZpM2RnbC1idG4gewogICAgd2lkdGg6IDIycHg7CiAgICBoZWln
aHQ6IDIycHg7CiAgICBmbGV4LXNocmluazogMDsKfQouZGxnLWVsZGdsLXRvZ2dsZSAudmkzZGds
LWJ0bjo6YmVmb3JlIHsKICAgIGZvbnQtc2l6ZTogdmFyKC0tZnMtbGcpOwp9Ci5kbGctZWxkZ2wt
dG9nZ2xlLmFrdGl2IHsKICAgIGJvcmRlci1jb2xvcjogdmFyKC0tZmFyYmUtZXJmb2xnLCAjMjc4
OTZEKTsKICAgIGJhY2tncm91bmQ6IHJnYmEoMzksMTM3LDEwOSwwLjA4KTsKfQouZGxnLWVsZGds
LXRvZ2dsZS5ha3Rpdjpob3ZlciB7IGJhY2tncm91bmQ6IHJnYmEoMzksMTM3LDEwOSwwLjE0KTsg
fQouZGxnLWVsZGdsLXRvZ2dsZS5pbmFrdGl2IHsKICAgIGJvcmRlci1jb2xvcjogdmFyKC0tZmFy
YmUtZmVobGVyLCAjQjAzQTJFKTsKICAgIGJhY2tncm91bmQ6IHJnYmEoMTc2LDU4LDQ2LDAuMDYp
Owp9Ci5kbGctZWxkZ2wtdG9nZ2xlLmluYWt0aXY6aG92ZXIgeyBiYWNrZ3JvdW5kOiByZ2JhKDE3
Niw1OCw0NiwwLjEyKTsgfQouZGxnLWVsZGdsLXRleHQgewogICAgZGlzcGxheTogaW5saW5lLWZs
ZXg7CiAgICBhbGlnbi1pdGVtczogYmFzZWxpbmU7CiAgICBnYXA6IDhweDsKICAgIG1pbi13aWR0
aDogMDsKICAgIGZsZXg6IDE7Cn0KLmRsZy1lbGRnbC1zdGF0dXMgewogICAgZm9udC1zaXplOiB2
YXIoLS1mcy1tZCk7CiAgICBmb250LXdlaWdodDogNzAwOwp9Ci5kbGctZWxkZ2wtdG9nZ2xlLmFr
dGl2IC5kbGctZWxkZ2wtc3RhdHVzIHsgY29sb3I6IHZhcigtLWZhcmJlLWVyZm9sZywgIzI3ODk2
RCk7IH0KLmRsZy1lbGRnbC10b2dnbGUuaW5ha3RpdiAuZGxnLWVsZGdsLXN0YXR1cyB7IGNvbG9y
OiB2YXIoLS1mYXJiZS1mZWhsZXIsICNCMDNBMkUpOyB9Ci5kbGctZWxkZ2wtaGludCB7CiAgICBm
b250LXNpemU6IHZhcigtLWZzLXNtKTsKICAgIGNvbG9yOiB2YXIoLS10ZXh0LW11dGVkKTsKICAg
IGZvbnQtc3R5bGU6IGl0YWxpYzsKICAgIG1hcmdpbi1sZWZ0OiBhdXRvOwp9CgovKiA9PT09PSBQ
cm9maWxiaWxkZXIgKEF2YXRhcmUpID09PT09CiAgIFVuaWZvcm0tTG9vazogdmllcmVja2lnIG1p
dCBkZXplbnQgYWJnZXJ1bmRldGVuIEVja2VuIHN0YXR0IEtyZWlzLAogICBEZWZhdWx0LUhpbnRl
cmdydW5kIGFudGhyYXppdC1ncmF1LiBib3JkZXItcmFkaXVzIHdpcmQgaW0gSW5saW5lLQogICBT
dHlsZSBwcm8gR3JvZXNzZSBnZXNldHp0IChwcm9wb3J0aW9uYWwgfjE4JSkuICovCi52aTMtYXZh
dGFyIHsKICAgIGRpc3BsYXk6IGlubGluZS1mbGV4OwogICAgYWxpZ24taXRlbXM6IGNlbnRlcjsK
ICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgZmxleC1zaHJpbms6IDA7CiAgICBjb2xv
cjogI2ZmZjsKICAgIGZvbnQtd2VpZ2h0OiA3MDA7CiAgICBsaW5lLWhlaWdodDogMTsKICAgIHRl
eHQtYWxpZ246IGNlbnRlcjsKICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICB1c2VyLXNlbGVjdDog
bm9uZTsKICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMCAwIDFweCByZ2JhKDAsMCwwLDAuMTIpOwp9
Ci52aTMtYXZhdGFyLWJpbGQgewogICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjsKICAgIGJhY2tn
cm91bmQtcG9zaXRpb246IGNlbnRlcjsKICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7
Cn0KLnZpMy1hdmF0YXItaW5pdGlhbGVuIHsKICAgIHRleHQtc2hhZG93OiAwIDFweCAxcHggcmdi
YSgwLDAsMCwwLjI1KTsKfQoKLyogUGVyc29uYWwtVGFiZWxsZTogQXZhdGFyIGxpbmtzIG5lYmVu
IE5hbWVuICovCi5wZXJzb25hbC1uYW1lLXplbGxlIHsKICAgIGRpc3BsYXk6IGlubGluZS1mbGV4
OwogICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgIGdhcDogOHB4Owp9Ci5wZXJzb25hbC1uYW1l
LXplbGxlIC5wZXJzb24tbmFtZS1saW5rIHsKICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICB0ZXh0
LW92ZXJmbG93OiBlbGxpcHNpczsKICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7Cn0KCi8qIFBlcnNv
bi1Nb2RhbDogQXZhdGFyLUJsb2NrIGdhbnogb2JlbiAoVm9yc2NoYXUgKyBCdXR0b25zKSAqLwou
ZGxnLWF2YXRhci1ibG9jayB7CiAgICBkaXNwbGF5OiBmbGV4OwogICAgYWxpZ24taXRlbXM6IGNl
bnRlcjsKICAgIGdhcDogMTZweDsKICAgIHBhZGRpbmc6IDEycHggMTRweDsKICAgIG1hcmdpbi1i
b3R0b206IDE0cHg7CiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1iZy1jYXJkKTsKICAgIGJvcmRlcjog
MXB4IHNvbGlkIHZhcigtLWJvcmRlci1saWdodCk7CiAgICBib3JkZXItcmFkaXVzOiA4cHg7Cn0K
LmRsZy1hdmF0YXItdm9yc2NoYXUgLnZpMy1hdmF0YXIgewogICAgYm94LXNoYWRvdzogaW5zZXQg
MCAwIDAgMXB4IHJnYmEoMCwwLDAsMC4xNSksIDAgMXB4IDRweCByZ2JhKDAsMCwwLDAuMTUpOwp9
Ci5kbGctYXZhdGFyLWFrdGlvbmVuIHsKICAgIGRpc3BsYXk6IGZsZXg7CiAgICBmbGV4LWRpcmVj
dGlvbjogY29sdW1uOwogICAgZ2FwOiA2cHg7CiAgICBmbGV4OiAxOwogICAgbWluLXdpZHRoOiAw
Owp9Ci5kbGctYXZhdGFyLW5hbWUgewogICAgZm9udC1zaXplOiAxNXB4OwogICAgZm9udC13ZWln
aHQ6IDcwMDsKICAgIGNvbG9yOiB2YXIoLS10ZXh0LWhlYWRpbmcpOwp9Ci5kbGctYXZhdGFyLWhp
bndlaXMgewogICAgZm9udC1zaXplOiB2YXIoLS1mcy1iYXNlKTsKICAgIGNvbG9yOiB2YXIoLS10
ZXh0LW11dGVkKTsKICAgIGZvbnQtc3R5bGU6IGl0YWxpYzsKfQoKLyogPT09PT0gUGVyc29uLUhv
dmVyLVBvcG92ZXIgPT09PT0KICAgRWlnZW5lIC5wcHYtKiBLbGFzc2VuLCB3ZWlsIC5wcC0qIG1p
dCBkZW0gcGVyc29lbmxpY2hlbiBQbGFuCiAgIGtvbGxpZGllcnQgaGF0IChib3JkZXItcmlnaHQv
b3V0bGluZS1TdGlsZSB2b20gUGVycy1QbGFuIGhhYmVuCiAgIGRpZSBNaW5pLVRhZy1aZWxsZW4g
aW0gUG9wb3ZlciB1ZWJlcmxhZ2VydCkuICovCi52aTMtcGVyc29uLXBvcG92ZXIgewogICAgcG9z
aXRpb246IGZpeGVkOwogICAgei1pbmRleDogdmFyKC0tei1wb3BvdmVyLXBhZ2UpOwogICAgd2lk
dGg6IDI4MHB4OwogICAgYmFja2dyb3VuZDogdmFyKC0tYmctY2FyZCk7CiAgICBib3JkZXI6IDFw
eCBzb2xpZCB2YXIoLS1ib3JkZXItc3Ryb25nKTsKICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLXJh
ZGl1cy1sZyk7CiAgICBib3gtc2hhZG93OiAwIDhweCAyNHB4IHJnYmEoMCwwLDAsMC4yOCk7CiAg
ICBwYWRkaW5nOiAxNHB4OwogICAgcG9pbnRlci1ldmVudHM6IGF1dG87Cn0KLnZpMy1wZXJzb24t
cG9wb3Zlci52ZXJzdGVja3QgeyBkaXNwbGF5OiBub25lOyB9CgoucHB2LWtvcGYgewogICAgZGlz
cGxheTogZmxleDsgZ2FwOiAxMnB4OyBhbGlnbi1pdGVtczogY2VudGVyOwogICAgbWFyZ2luLWJv
dHRvbTogMTJweDsKICAgIHBhZGRpbmctYm90dG9tOiAxMnB4OwogICAgYm9yZGVyLWJvdHRvbTog
MXB4IHNvbGlkIHZhcigtLWJvcmRlci1saWdodCk7Cn0KLnBwdi1rb3BmLXRleHQgeyBmbGV4OiAx
OyBtaW4td2lkdGg6IDA7IH0KLnBwdi1uYW1lIHsKICAgIGZvbnQtc2l6ZTogdmFyKC0tZnMtbGcp
OyBmb250LXdlaWdodDogNzAwOwogICAgY29sb3I6IHZhcigtLXRleHQtaGVhZGluZyk7CiAgICBs
aW5lLWhlaWdodDogMS4yNTsKICAgIG1hcmdpbi1ib3R0b206IDJweDsKfQoucHB2LW1ldGEgewog
ICAgZm9udC1zaXplOiAxMS41cHg7CiAgICBjb2xvcjogdmFyKC0tdGV4dC1tdXRlZCk7CiAgICBs
aW5lLWhlaWdodDogMS40NTsKfQoKLnBwdi10YWdlLXRpdGVsIHsKICAgIGZvbnQtc2l6ZTogMTAu
NXB4OwogICAgY29sb3I6IHZhcigtLXRleHQtbXV0ZWQpOwogICAgdGV4dC10cmFuc2Zvcm06IHVw
cGVyY2FzZTsKICAgIGxldHRlci1zcGFjaW5nOiAwLjZweDsKICAgIGZvbnQtd2VpZ2h0OiA2MDA7
CiAgICBtYXJnaW4tYm90dG9tOiA4cHg7Cn0KLnBwdi10YWdlIHsKICAgIGRpc3BsYXk6IGdyaWQ7
CiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCgyLCAxZnIpOwogICAgZ2FwOiA0cHgg
MTBweDsKICAgIGZvbnQtc2l6ZTogdmFyKC0tZnMtc20pOwp9Ci5wcHYtdGFnIHsKICAgIGRpc3Bs
YXk6IGdyaWQ7CiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDE4cHggMWZyIGF1dG87CiAgICBn
YXA6IDZweDsKICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICBwYWRkaW5nOiAycHggNHB4Owog
ICAgYm9yZGVyLXJhZGl1czogdmFyKC0tcmFkaXVzLXNtKTsKICAgIHRyYW5zaXRpb246IGJhY2tn
cm91bmQgMC4xMnM7Cn0KLnBwdi10YWctd2UgewogICAgY29sb3I6IHZhcigtLXRleHQtbXV0ZWQp
Owp9Ci5wcHYtdGFnLWhldXRlIHsKICAgIGJhY2tncm91bmQ6IHJnYmEoNzQsMTQ0LDIyNiwwLjEy
KTsKfQoucHB2LXRhZy1oZXV0ZSAucHB2LXRhZy13dCwKLnBwdi10YWctaGV1dGUgLnBwdi10YWct
ZGF0dW0gewogICAgY29sb3I6IHZhcigtLWZhcmJlLWFremVudCwgIzRhOTBlMik7CiAgICBmb250
LXdlaWdodDogODAwOwp9Ci5wcHYtdGFnLXd0IHsKICAgIGNvbG9yOiB2YXIoLS10ZXh0LW11dGVk
KTsKICAgIGZvbnQtc2l6ZTogdmFyKC0tZnMteHMpOwogICAgZm9udC13ZWlnaHQ6IDYwMDsKICAg
IHRleHQtYWxpZ246IGxlZnQ7Cn0KLnBwdi10YWctZGF0dW0gewogICAgY29sb3I6IHZhcigtLXRl
eHQtc2Vjb25kYXJ5KTsKICAgIGZvbnQtc2l6ZTogMTAuNXB4OwogICAgZm9udC12YXJpYW50LW51
bWVyaWM6IHRhYnVsYXItbnVtczsKfQoucHB2LXRhZy1jb2RlIHsKICAgIHBhZGRpbmc6IDFweCA2
cHg7CiAgICBtaW4td2lkdGg6IDQ4cHg7CiAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1yYWRpdXMt
eHMpOwogICAgZm9udC13ZWlnaHQ6IDcwMDsKICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgIGZv
bnQtc2l6ZTogMTAuNXB4OwogICAgY29sb3I6IHZhcigtLXRleHQtbXV0ZWQpOwogICAgYmFja2dy
b3VuZDogdmFyKC0tYmctY2FyZC1hbHQpOwogICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgIHRleHQt
b3ZlcmZsb3c6IGVsbGlwc2lzOwogICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKfQoucHB2LXRhZy1s
ZWVyIC5wcHYtdGFnLWNvZGUgewogICAgY29sb3I6IHZhcigtLWJvcmRlci1zdHJvbmcpOwogICAg
YmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7CiAgICBmb250LXdlaWdodDogNDAwOwp9CgovKiA9PT09
PSBBZG1pbjogUmVjaHRlICYgU2ljaHRiYXJrZWl0IOKAlCBLYXJ0ZW4tTGF5b3V0ID09PT09ICov
Ci5yZWNodGUtdGFiLXN1YiB7CiAgICBtYXJnaW46IDRweCAwIDA7CiAgICBmb250LXNpemU6IHZh
cigtLWZzLWJhc2UpOwogICAgY29sb3I6IHZhcigtLXRleHQtbXV0ZWQpOwogICAgbGluZS1oZWln
aHQ6IDEuNDU7Cn0KCiNhZG1pbi10YWItc3VwZXJ1c2VyIC5hZG1pbi1zZWt0aW9uIHsKICAgIG1h
cmdpbi1ib3R0b206IDE4cHg7Cn0KI2FkbWluLXRhYi1zdXBlcnVzZXIgLmFkbWluLXNla3Rpb24t
dHJlbm5lciB7IGRpc3BsYXk6IG5vbmU7IH0KCi5yZWNodGUtY2FyZCB7CiAgICBiYWNrZ3JvdW5k
OiB2YXIoLS1iZy1jYXJkKTsKICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWJvcmRlci1saWdo
dCk7CiAgICBib3JkZXItcmFkaXVzOiAxMnB4OwogICAgcGFkZGluZzogMTRweCAxOHB4IDE2cHg7
CiAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICBvdmVyZmxvdzogaGlkZGVuOwp9Ci8qIEVpbmhl
aXRsaWNoZXIsIHByb2Zlc3Npb25lbGxlciBMb29rOiBrZWluIGZhcmJpZ2VyIEFremVudC1TdHJl
aWZlbiB1bmQKICAga2VpbiBSb2xsZW4tRmFyYmNvZGUgbWVociDigJQgYWxsZSBSb2xsZW4tS2Fy
dGVuIG5ldXRyYWwsIEljb25zIGltCiAgIFN0YW5kYXJkLUJsYXUgKHNpZWhlIC5yZWNodGUtY2Fy
ZC1pY29uKS4gKi8KCi5yZWNodGUtY2FyZC1rb3BmIHsKICAgIGRpc3BsYXk6IGZsZXg7CiAgICBh
bGlnbi1pdGVtczogZmxleC1zdGFydDsKICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2Vl
bjsKICAgIGdhcDogMTJweDsKICAgIG1hcmdpbjogMCAwIDEycHg7CiAgICBwYWRkaW5nLWJvdHRv
bTogMTJweDsKICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB2YXIoLS1ib3JkZXItbGlnaHQp
Owp9Ci5yZWNodGUtY2FyZC10aXRlbCB7CiAgICBkaXNwbGF5OiBmbGV4OwogICAgYWxpZ24taXRl
bXM6IGNlbnRlcjsKICAgIGdhcDogMTJweDsKICAgIG1pbi13aWR0aDogMDsKICAgIGZsZXg6IDE7
Cn0KLnJlY2h0ZS1jYXJkLXRpdGVsIGgzIHsKICAgIG1hcmdpbjogMDsKICAgIGZvbnQtc2l6ZTog
MTZweDsKICAgIGNvbG9yOiB2YXIoLS10ZXh0LWhlYWRpbmcpOwogICAgbGluZS1oZWlnaHQ6IDEu
MjsKfQoucmVjaHRlLWNhcmQtc3ViIHsKICAgIG1hcmdpbjogM3B4IDAgMDsKICAgIGZvbnQtc2l6
ZTogdmFyKC0tZnMtYmFzZSk7CiAgICBjb2xvcjogdmFyKC0tdGV4dC1tdXRlZCk7CiAgICBsaW5l
LWhlaWdodDogMS40Owp9Ci5yZWNodGUtY2FyZC1pY29uIHsKICAgIGRpc3BsYXk6IGlubGluZS1m
bGV4OwogICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgIGp1c3RpZnktY29udGVudDogY2VudGVy
OwogICAgd2lkdGg6IDM2cHg7IGhlaWdodDogMzZweDsKICAgIGJvcmRlci1yYWRpdXM6IDhweDsK
ICAgIGJhY2tncm91bmQ6IHZhcigtLWJnLXByaW1hcnkpOwogICAgY29sb3I6ICNmZmY7CiAgICBm
b250LXNpemU6IDE4cHg7CiAgICBmb250LXdlaWdodDogNzAwOwogICAgZmxleC1zaHJpbms6IDA7
Cn0KLnJlY2h0ZS1ub3RmYWxsLWJveCB7CiAgICBtYXJnaW46IDAgMCAxMnB4OwogICAgYm9yZGVy
LWxlZnQtY29sb3I6IHZhcigtLWZhcmJlLXdhcm51bmcsICNjYTZmMWUpOwogICAgZm9udC1zaXpl
OiAxMi41cHg7Cn0KLnJlY2h0ZS1jYXJkLWZ1c3MgewogICAgZGlzcGxheTogZmxleDsKICAgIGFs
aWduLWl0ZW1zOiBjZW50ZXI7CiAgICBnYXA6IDEycHg7CiAgICBmbGV4LXdyYXA6IHdyYXA7CiAg
ICBwYWRkaW5nLXRvcDogMTJweDsKICAgIG1hcmdpbi10b3A6IDEycHg7CiAgICBib3JkZXItdG9w
OiAxcHggc29saWQgdmFyKC0tYm9yZGVyLWxpZ2h0KTsKfQoucmVjaHRlLWRpcnR5LWhpbndlaXMg
ewogICAgY29sb3I6IHZhcigtLWZhcmJlLXdhcm51bmcsICNjYTZmMWUpOwogICAgZm9udC13ZWln
aHQ6IDYwMDsKICAgIGZvbnQtc2l6ZTogdmFyKC0tZnMtYmFzZSk7Cn0KLnJlY2h0ZS1rZWluLXJl
Y2h0IHsgbWFyZ2luLXRvcDogMTJweDsgfQoKLyogPT09PT0gSW1wcmVzc3Vtcy1Nb2RhbCA9PT09
PSAqLwouaW1wcmVzc3VtLWluaGFsdCBoNCB7CiAgICBtYXJnaW46IDE0cHggMCA0cHg7CiAgICBm
b250LXNpemU6IDEzLjVweDsKICAgIGNvbG9yOiB2YXIoLS10ZXh0LWhlYWRpbmcpOwogICAgdGV4
dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsKICAgIGxldHRlci1zcGFjaW5nOiAwLjRweDsKfQouaW1w
cmVzc3VtLWluaGFsdCBoNDpmaXJzdC1jaGlsZCB7IG1hcmdpbi10b3A6IDA7IH0KLmltcHJlc3N1
bS1pbmhhbHQgcCB7CiAgICBtYXJnaW46IDAgMCA4cHg7CiAgICBmb250LXNpemU6IHZhcigtLWZz
LW1kKTsKfQouaW1wcmVzc3VtLWluaGFsdCB1bCB7CiAgICBtYXJnaW46IDRweCAwIDhweCAxOHB4
OwogICAgcGFkZGluZzogMDsKICAgIGZvbnQtc2l6ZTogdmFyKC0tZnMtbWQpOwp9Ci5pbXByZXNz
dW0taW5oYWx0IGxpIHsgbWFyZ2luLWJvdHRvbTogM3B4OyB9CgovKiBOb3RmYWxsLVJ1ZWNrZmFs
bGViZW5lOiBpc3QgaGFydGNvZGllcnQgKGtlaW4gVXNlci1FZGl0KSwgZGFtaXQgZGVyCiAgIFN1
cHBvcnRQZmFkIGltbWVyIGV4aXN0aWVydC4gVmlzdWVsbCBhbHMgV2Fybi1Cb3ggbWl0IGxpbmtl
bQogICBBa3plbnQtU3RyZWlmZW4gKyBNYWlsLUJ1dHRvbi4gKi8KLmltcHJlc3N1bS1ub3RmYWxs
IHsKICAgIG1hcmdpbi10b3A6IDE4cHg7CiAgICBwYWRkaW5nOiAxNHB4IDE2cHg7CiAgICBiYWNr
Z3JvdW5kOiByZ2JhKDIwMiwxMTEsMzAsMC4wOCk7CiAgICBib3JkZXI6IDFweCBzb2xpZCByZ2Jh
KDIwMiwxMTEsMzAsMC4zNSk7CiAgICBib3JkZXItbGVmdDogNHB4IHNvbGlkIHZhcigtLWZhcmJl
LXdhcm51bmcsICNjYTZmMWUpOwogICAgYm9yZGVyLXJhZGl1czogdmFyKC0tcmFkaXVzLW1kKTsK
fQouaW1wcmVzc3VtLW5vdGZhbGwtdGl0ZWwgewogICAgZm9udC1zaXplOiB2YXIoLS1mcy1iYXNl
KTsKICAgIGZvbnQtd2VpZ2h0OiA3MDA7CiAgICBjb2xvcjogdmFyKC0tZmFyYmUtd2FybnVuZywg
I2NhNmYxZSk7CiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOwogICAgbGV0dGVyLXNwYWNp
bmc6IDAuNXB4OwogICAgbWFyZ2luLWJvdHRvbTogNnB4Owp9Ci5pbXByZXNzdW0tbm90ZmFsbC10
ZXh0IHsKICAgIG1hcmdpbjogMCAwIDEycHg7CiAgICBmb250LXNpemU6IDEyLjVweDsKICAgIGxp
bmUtaGVpZ2h0OiAxLjU1OwogICAgY29sb3I6IHZhcigtLXRleHQtcHJpbWFyeSk7Cn0KLmltcHJl
c3N1bS1ub3RmYWxsLXRleHQgY29kZSB7CiAgICBiYWNrZ3JvdW5kOiByZ2JhKDAsMCwwLDAuMDYp
OwogICAgcGFkZGluZzogMXB4IDVweDsKICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLXJhZGl1cy14
cyk7CiAgICBmb250LXNpemU6IDExLjVweDsKfQouaW1wcmVzc3VtLW1haWwtYnRuIHsKICAgIGRp
c3BsYXk6IGlubGluZS1mbGV4OwogICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgIGdhcDogNnB4
OwogICAgdGV4dC1kZWNvcmF0aW9uOiBub25lOwp9Ci5pbXByZXNzdW0tbWFpbC1idG46aG92ZXIg
eyB0ZXh0LWRlY29yYXRpb246IG5vbmU7IH0KCi8qIEJ1Zy1SZXBvcnQtQm94IChNb2RhbCBoaW50
ZXIgZGVtIEhlYWRlci1CdXR0b24g4oCeQnVnUmVwb3J0Iikg4oCUIHJvdGUgVmFyaWFudGUKICAg
ZGVyIEltcHJlc3N1bS1Ob3RmYWxsLUJveC4gKi8KLmJ1Z3JlcG9ydC1ib3ggewogICAgcGFkZGlu
ZzogMTRweCAxNnB4OwogICAgYmFja2dyb3VuZDogcmdiYSgxNzYsNTgsNDYsMC4wOCk7CiAgICBi
b3JkZXI6IDFweCBzb2xpZCByZ2JhKDE3Niw1OCw0NiwwLjM1KTsKICAgIGJvcmRlci1sZWZ0OiA0
cHggc29saWQgdmFyKC0tZmFyYmUtZmVobGVyLCAjQjAzQTJFKTsKICAgIGJvcmRlci1yYWRpdXM6
IHZhcigtLXJhZGl1cy1tZCk7Cn0KLmJ1Z3JlcG9ydC1ib3gtdGl0ZWwgewogICAgZm9udC1zaXpl
OiB2YXIoLS1mcy1iYXNlKTsKICAgIGZvbnQtd2VpZ2h0OiA3MDA7CiAgICBjb2xvcjogdmFyKC0t
ZmFyYmUtZmVobGVyLCAjQjAzQTJFKTsKICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7CiAg
ICBsZXR0ZXItc3BhY2luZzogMC41cHg7CiAgICBtYXJnaW4tYm90dG9tOiA2cHg7Cn0KLmJ1Z3Jl
cG9ydC1ib3gtdGV4dCB7CiAgICBtYXJnaW46IDAgMCAxMnB4OwogICAgZm9udC1zaXplOiAxMi41
cHg7CiAgICBsaW5lLWhlaWdodDogMS41NTsKICAgIGNvbG9yOiB2YXIoLS10ZXh0LXByaW1hcnkp
Owp9Ci5idWdyZXBvcnQtbWFpbC1idG4gewogICAgZGlzcGxheTogaW5saW5lLWZsZXg7CiAgICBh
bGlnbi1pdGVtczogY2VudGVyOwogICAgZ2FwOiA2cHg7CiAgICB0ZXh0LWRlY29yYXRpb246IG5v
bmU7CiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1mYXJiZS1mZWhsZXIsICNCMDNBMkUpOwogICAgYm9y
ZGVyLWNvbG9yOiB2YXIoLS1mYXJiZS1mZWhsZXIsICNCMDNBMkUpOwogICAgY29sb3I6ICNmZmY7
Cn0KLmJ1Z3JlcG9ydC1tYWlsLWJ0bjpob3ZlciB7IHRleHQtZGVjb3JhdGlvbjogbm9uZTsgZmls
dGVyOiBicmlnaHRuZXNzKDEuMDgpOyB9CgovKiA9PT09PSBHZWJ1cnRzdGFnLU1vZGFsIChCdXR0
b24tR3JpZCBmdWVyIFRhZyAvIE1vbmF0IC8gSmFocikgPT09PT0gKi8KLmdiLWFrdHVlbGwgewog
ICAgYmFja2dyb3VuZDogdmFyKC0tYmctY2FyZC1hbHQpOwogICAgcGFkZGluZzogMTBweCAxNHB4
OwogICAgYm9yZGVyLXJhZGl1czogdmFyKC0tcmFkaXVzLW1kKTsKICAgIG1hcmdpbi1ib3R0b206
IDE0cHg7CiAgICBmb250LXNpemU6IHZhcigtLWZzLWxnKTsKfQouZ2Itc2VrdGlvbiB7IG1hcmdp
bi1ib3R0b206IDE0cHg7IH0KLmdiLXNla3Rpb246bGFzdC1jaGlsZCB7IG1hcmdpbi1ib3R0b206
IDA7IH0KLmdiLXNla3Rpb24tdGl0ZWwgewogICAgZm9udC1zaXplOiB2YXIoLS1mcy1zbSk7IGNv
bG9yOiB2YXIoLS10ZXh0LW11dGVkKTsKICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7IGxl
dHRlci1zcGFjaW5nOiAwLjZweDsKICAgIGZvbnQtd2VpZ2h0OiA2MDA7IG1hcmdpbi1ib3R0b206
IDZweDsKfQouZ2ItZ3JpZCB7IGRpc3BsYXk6IGdyaWQ7IGdhcDogNHB4OyB9Ci5nYi1ncmlkLXRh
ZyAgIHsgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoNywgMWZyKTsgfQouZ2ItZ3JpZC1t
b25hdCB7IGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDYsIDFmcik7IH0KQG1lZGlhICht
YXgtd2lkdGg6IDY0MHB4KSB7CiAgICAuZ2ItZ3JpZC1tb25hdCB7IGdyaWQtdGVtcGxhdGUtY29s
dW1uczogcmVwZWF0KDQsIDFmcik7IH0KfQouZ2ItZ3JpZC1qYWhyICB7IGdyaWQtdGVtcGxhdGUt
Y29sdW1uczogcmVwZWF0KDgsIDFmcik7IH0KQG1lZGlhIChtYXgtd2lkdGg6IDcwMHB4KSB7CiAg
ICAuZ2ItZ3JpZC1qYWhyIHsgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoNiwgMWZyKTsg
fQp9Ci5nYi1idG4gewogICAgcGFkZGluZzogNnB4IDRweDsKICAgIGZvbnQtc2l6ZTogdmFyKC0t
ZnMtbWQpOwogICAgYmFja2dyb3VuZDogdmFyKC0tYmctY2FyZC1hbHQpOwogICAgYm9yZGVyOiAx
cHggc29saWQgdmFyKC0tYm9yZGVyLWxpZ2h0KTsKICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLXJh
ZGl1cy1zbSk7CiAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICBjb2xvcjogdmFyKC0tdGV4dC1wcmlt
YXJ5KTsKICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgMC4xcywgYm9yZGVyLWNvbG9yIDAuMXMs
IHRyYW5zZm9ybSAwLjA4czsKfQouZ2ItYnRuOmhvdmVyIHsKICAgIGJhY2tncm91bmQ6IHZhcigt
LWJnLWhvdmVyKTsKICAgIGJvcmRlci1jb2xvcjogdmFyKC0tZmFyYmUtYWt6ZW50LCAjNGE5MGUy
KTsKfQouZ2ItYnRuOmFjdGl2ZSB7IHRyYW5zZm9ybTogc2NhbGUoMC45NSk7IH0KLmdiLWJ0bi5h
a3RpdiB7CiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1mYXJiZS1ha3plbnQsICM0YTkwZTIpOwogICAg
Ym9yZGVyLWNvbG9yOiB2YXIoLS1mYXJiZS1ha3plbnQsICM0YTkwZTIpOwogICAgY29sb3I6ICNm
ZmY7CiAgICBmb250LXdlaWdodDogNzAwOwp9CgovKiA9PT09PSBJbmZvLU1vZGFsOiBBYnNjaG5p
dHRlIG9obmUgZG9wcGVsdGUgRWlucsO8Y2t1bmcgPT09PT0KICAgS2VpbiBob3Jpem9udGFsZXMg
UGFkZGluZyBhbSBBYnNjaG5pdHRzLVdyYXBwZXIg4oCUIExpc3RlbiBydWVja2VuIG51ciB1bSBk
aWUKICAgZWlnZW5lIEJ1bGxldC1CcmVpdGUgZWluLCBibGVpYmVuIHNvIGltIFRleHRmbHVzcyB6
dW0gaDMtVGl0ZWwuIERhcyBpc3QgZGVyCiAgIEtvbXByb21pc3M6IGRpZSBJbmZvLUthcnRlbiBv
YmVuIChTdXBwb3J0KSBzdGVoZW4gZXR3YXMgZWluZ2V6b2dlbiBkdXJjaAogICBpaHJlbiA0cHgt
Qm9yZGVyLCBkaWUgcmVzdGxpY2hlbiBBYnNjaG5pdHRlIHNpdHplbiBhbSBNb2RhbC1SYW5kLiAq
LwouaW5mby1hYnNjaG5pdHQgewogICAgcGFkZGluZzogMDsKICAgIG1hcmdpbi1ib3R0b206IDEy
cHg7Cn0KLmluZm8tYWJzY2huaXR0ID4gaDMgewogICAgbWFyZ2luOiAxNHB4IDAgOHB4IDA7CiAg
ICBmb250LXNpemU6IDE1cHg7CiAgICBjb2xvcjogdmFyKC0tdGV4dC1oZWFkaW5nKTsKICAgIGJv
cmRlci1ib3R0b206IDFweCBzb2xpZCB2YXIoLS1ib3JkZXItbGlnaHQpOwogICAgcGFkZGluZy1i
b3R0b206IDRweDsKfQouaW5mby1hYnNjaG5pdHQgPiBoMzpmaXJzdC1jaGlsZCB7IG1hcmdpbi10
b3A6IDA7IH0KLmluZm8tYWJzY2huaXR0IHVsLAouaW5mby1hYnNjaG5pdHQgb2wgewogICAgbWFy
Z2luOiAwIDAgMTBweCAwOwogICAgcGFkZGluZy1sZWZ0OiAyMHB4OwogICAgZm9udC1zaXplOiB2
YXIoLS1mcy1tZCk7CiAgICBsaW5lLWhlaWdodDogMS43Owp9Ci5pbmZvLWFic2Nobml0dCB1bCBs
aSwKLmluZm8tYWJzY2huaXR0IG9sIGxpIHsgbWFyZ2luLWJvdHRvbTogNHB4OyB9Ci5pbmZvLWFi
c2Nobml0dCB1bCBsaTpsYXN0LWNoaWxkLAouaW5mby1hYnNjaG5pdHQgb2wgbGk6bGFzdC1jaGls
ZCB7IG1hcmdpbi1ib3R0b206IDA7IH0KLmluZm8tYWJzY2huaXR0IHAgeyBtYXJnaW46IDAgMCA4
cHggMDsgZm9udC1zaXplOiB2YXIoLS1mcy1tZCk7IH0KLmluZm8tZnVzcyB7CiAgICBtYXJnaW4t
dG9wOiAxNnB4OwogICAgcGFkZGluZzogOHB4IDAgMCAwOwogICAgZm9udC1zaXplOiB2YXIoLS1m
cy1zbSk7CiAgICBjb2xvcjogdmFyKC0tdGV4dC1tdXRlZCk7CiAgICBib3JkZXItdG9wOiAxcHgg
c29saWQgdmFyKC0tYm9yZGVyLWxpZ2h0KTsKfQoKLyogPT09PT0gU3RhdGlzdGlrOiBJbmZvLUJ1
dHRvbnMgKyBQcm9zYSA9PT09PSAqLwouc3RhdHMtaW5mby1idG4gewogICAgZGlzcGxheTogaW5s
aW5lLWZsZXg7CiAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAganVzdGlmeS1jb250ZW50OiBj
ZW50ZXI7CiAgICB3aWR0aDogMThweDsKICAgIGhlaWdodDogMThweDsKICAgIG1hcmdpbi1sZWZ0
OiA4cHg7CiAgICBwYWRkaW5nOiAwOwogICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYm9yZGVy
LWxpZ2h0KTsKICAgIGJvcmRlci1yYWRpdXM6IDUwJTsKICAgIGJhY2tncm91bmQ6IHZhcigtLWJn
LWNhcmQtYWx0KTsKICAgIGNvbG9yOiB2YXIoLS10ZXh0LW11dGVkKTsKICAgIGZvbnQtc2l6ZTog
dmFyKC0tZnMtc20pOwogICAgZm9udC13ZWlnaHQ6IDcwMDsKICAgIGZvbnQtc3R5bGU6IGl0YWxp
YzsKICAgIGZvbnQtZmFtaWx5OiBHZW9yZ2lhLCBzZXJpZjsKICAgIGN1cnNvcjogcG9pbnRlcjsK
ICAgIGxpbmUtaGVpZ2h0OiAxOwogICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTsKICAgIHRyYW5z
aXRpb246IGJhY2tncm91bmQgMC4xMnMsIGNvbG9yIDAuMTJzOwp9Ci5zdGF0cy1pbmZvLWJ0bjpo
b3ZlciB7CiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1mYXJiZS1wcmltYWVyLCAjMkMzRTUwKTsKICAg
IGNvbG9yOiAjZmZmOwogICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1mYXJiZS1wcmltYWVyLCAjMkMz
RTUwKTsKfQoKLnN0YXRzLXByb3NhLWNvbnRhaW5lciB7CiAgICBwYWRkaW5nOiA4cHggMTJweCAx
MnB4OwogICAgbWF4LWhlaWdodDogNDgwcHg7CiAgICBvdmVyZmxvdy15OiBhdXRvOwogICAgZGlz
cGxheTogZmxleDsKICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICBnYXA6IDhweDsKfQou
c3RhdHMtcHJvc2EtemVpbGUgewogICAgZGlzcGxheTogZ3JpZDsKICAgIGdyaWQtdGVtcGxhdGUt
Y29sdW1uczogMTgwcHggMWZyOwogICAgZ2FwOiAxMnB4OwogICAgcGFkZGluZzogOHB4IDEwcHg7
CiAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1yYWRpdXMtc20pOwogICAgYmFja2dyb3VuZDogdmFy
KC0tYmctY2FyZC1hbHQpOwogICAgZm9udC1zaXplOiB2YXIoLS1mcy1tZCk7CiAgICBsaW5lLWhl
aWdodDogMS41Owp9Ci5zdGF0cy1wcm9zYS16ZWlsZTpob3ZlciB7IGJhY2tncm91bmQ6IHZhcigt
LWJnLWhvdmVyKTsgfQouc3RhdHMtcHJvc2EtbmFtZSB7IGZvbnQtd2VpZ2h0OiA3MDA7IGNvbG9y
OiB2YXIoLS10ZXh0LWhlYWRpbmcpOyB9Ci5zdGF0cy1wcm9zYS10ZXh0IHsgY29sb3I6IHZhcigt
LXRleHQtcHJpbWFyeSk7IH0KCi8qIE1vZGFsLUluZm8tSW5oYWx0OiBzYXViZXJlcyBTdHlsaW5n
IGZ1ZXIgaDQvdWwgKi8KI21vZGFsLWtvZXJwZXIgaDQgeyBtYXJnaW46IDEycHggMCA2cHggMDsg
Zm9udC1zaXplOiB2YXIoLS1mcy1tZCk7IGNvbG9yOiB2YXIoLS10ZXh0LWhlYWRpbmcpOyB9CiNt
b2RhbC1rb2VycGVyIGNvZGUgeyBiYWNrZ3JvdW5kOiB2YXIoLS1iZy1jYXJkLWFsdCk7IHBhZGRp
bmc6IDFweCA0cHg7IGJvcmRlci1yYWRpdXM6IHZhcigtLXJhZGl1cy14cyk7IGZvbnQtc2l6ZTog
dmFyKC0tZnMtYmFzZSk7IH0KLyogTGlzdGVuIGluIGFsbGVuIE1vZGFsLUtvZXJwZXJuOiBiZXd1
c3N0IGZsYWNoZSBFaW5ydWVja3VuZywgZGFtaXQgQnVsbGV0cwogICBkaXJla3QgbmViZW4gZGVt
IFRleHRmbHVzcyBibGVpYmVuIHVuZCBuaWNodCB3ZWl0IHZvbSBsaW5rZW4gUmFuZCBhYnN0ZWhl
bi4gKi8KI21vZGFsLWtvZXJwZXIgdWwsCiNtb2RhbC1rb2VycGVyIG9sIHsKICAgIG1hcmdpbjog
NnB4IDAgMTBweCAwOwogICAgcGFkZGluZy1sZWZ0OiAyMHB4OwogICAgbGluZS1oZWlnaHQ6IDEu
NTsKfQojbW9kYWwta29lcnBlciBsaSB7IG1hcmdpbi1ib3R0b206IDNweDsgfQoKLyogPT09PT0g
TmV1aW1wb3J0LUJsb2NrIChQZXJzb25hbHZlcndhbHR1bmcpID09PT09CiAgIEVyc2NoZWludCB1
ZWJlciBkZXIgUGVyc29uYWwtVGFiZWxsZSwgd2VubiBkZXIgRXhjZWwtSW1wb3J0IGdlcmFkZSBm
cmlzY2hlCiAgIFBlcnNvbmVuIGFuZ2VsZWd0IGhhdC4gU2FtbWVsdCBzaWUgenVtIE5hY2hwZmxl
Z2VuIHVuZCB2ZXJzY2h3aW5kZXQsIHNvYmFsZAogICBhbGxlIE1hcmtlciBlcmxlZGlndCBzaW5k
LiAqLwojcGVyc29uYWwtbmV1aW1wb3J0LWJsb2NrIHsKICAgIGJhY2tncm91bmQ6IGxpbmVhci1n
cmFkaWVudCgxMzVkZWcsIHJnYmEoNDgsOTksMTY4LDAuMDYpLCByZ2JhKDQ4LDk5LDE2OCwwLjEw
KSk7CiAgICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDQ4LDk5LDE2OCwwLjQwKTsKICAgIGJvcmRl
ci1sZWZ0OiA0cHggc29saWQgdmFyKC0tZmFyYmUtcHJpbWFlcik7CiAgICBib3JkZXItcmFkaXVz
OiA4cHg7CiAgICBwYWRkaW5nOiAxNHB4IDE4cHg7CiAgICBtYXJnaW46IDAgMCAxOHB4IDA7Cn0K
Lm5ldWltcG9ydC1rb3BmIHsKICAgIGRpc3BsYXk6IGZsZXg7CiAgICBqdXN0aWZ5LWNvbnRlbnQ6
IHNwYWNlLWJldHdlZW47CiAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDsKICAgIGdhcDogMTZw
eDsKICAgIGZsZXgtd3JhcDogd3JhcDsKICAgIG1hcmdpbi1ib3R0b206IDEwcHg7Cn0KLm5ldWlt
cG9ydC1rb3BmIGgzIHsKICAgIG1hcmdpbjogMCAwIDRweCAwOwogICAgZm9udC1zaXplOiAxNXB4
OwogICAgY29sb3I6IHZhcigtLXRleHQtaGVhZGluZyk7Cn0KLm5ldWltcG9ydC1rb3BmIHAgewog
ICAgbWFyZ2luOiAwOwogICAgZm9udC1zaXplOiB2YXIoLS1mcy1iYXNlKTsKICAgIGNvbG9yOiB2
YXIoLS10ZXh0LW11dGVkKTsKICAgIG1heC13aWR0aDogNjQwcHg7Cn0KLm5ldWltcG9ydC1saXN0
ZSB7CiAgICBkaXNwbGF5OiBmbGV4OwogICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgIGdh
cDogNnB4Owp9Ci5uZXVpbXBvcnQtemVpbGUgewogICAgZGlzcGxheTogZ3JpZDsKICAgIGdyaWQt
dGVtcGxhdGUtY29sdW1uczogbWlubWF4KDIyMHB4LCAyZnIpIG1pbm1heCgyODBweCwgMWZyKSBh
dXRvOwogICAgZ2FwOiAxMnB4OwogICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgIHBhZGRpbmc6
IDhweCAxMHB4OwogICAgYmFja2dyb3VuZDogdmFyKC0tYmctY2FyZCk7CiAgICBib3JkZXI6IDFw
eCBzb2xpZCB2YXIoLS1ib3JkZXItbGlnaHQpOwogICAgYm9yZGVyLXJhZGl1czogdmFyKC0tcmFk
aXVzLW1kKTsKfQoubmV1aW1wb3J0LW5hbWUgeyBkaXNwbGF5OiBmbGV4OyBhbGlnbi1pdGVtczog
Y2VudGVyOyBmbGV4LXdyYXA6IHdyYXA7IGdhcDogNHB4OyB9Ci5uZXVpbXBvcnQtZGV0YWlsIHsK
ICAgIGZsZXgtYmFzaXM6IDEwMCU7CiAgICBtYXJnaW4tdG9wOiAycHg7CiAgICBmb250LXNpemU6
IHZhcigtLWZzLXNtKTsKICAgIGNvbG9yOiB2YXIoLS10ZXh0LW11dGVkKTsKfQoubmV1aW1wb3J0
LWZlbGRlciB7IGRpc3BsYXk6IGZsZXg7IGdhcDogOHB4OyBmbGV4LXdyYXA6IHdyYXA7IH0KLm5l
dWltcG9ydC1ha3Rpb25lbiB7IGRpc3BsYXk6IGZsZXg7IGdhcDogNnB4OyB3aGl0ZS1zcGFjZTog
bm93cmFwOyB9CgpbZGF0YS10aGVtZT0ibmlnaHQiXSAjcGVyc29uYWwtbmV1aW1wb3J0LWJsb2Nr
IHsKICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsIHJnYmEoOTYsMTYwLDI1
NSwwLjEwKSwgcmdiYSg5NiwxNjAsMjU1LDAuMTYpKTsKICAgIGJvcmRlci1jb2xvcjogcmdiYSg5
NiwxNjAsMjU1LDAuNDUpOwogICAgYm9yZGVyLWxlZnQtY29sb3I6IHJnYmEoOTYsMTYwLDI1NSww
Ljg1KTsKfQoKLyogPT09PT0gSGlud2Vpcy1TeXN0ZW0gKEJhbm5lciBvYmVuICsgQmFkZ2UgYW0g
VXNlci1OYW1lICsgTW9kYWwtTGlzdGUpID09PT09ICovCgouaGlud2Vpcy1iYW5uZXIgewogICAg
ZGlzcGxheTogZmxleDsgYWxpZ24taXRlbXM6IGNlbnRlcjsgZ2FwOiAxMnB4OwogICAgcGFkZGlu
ZzogOHB4IDE2cHg7CiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1mYXJiZS1mZWhsZXIpOyBjb2xvcjog
I2ZmZjsKICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCByZ2JhKDAsMCwwLDAuMTgpOwogICAg
Zm9udC1zaXplOiB2YXIoLS1mcy1tZCk7CiAgICBib3gtc2hhZG93OiAwIDJweCA2cHggdmFyKC0t
c2hhZG93LWxpZ2h0KTsKfQouaGlud2Vpcy1iYW5uZXIudmVyc3RlY2t0IHsgZGlzcGxheTogbm9u
ZTsgfQouaGlud2Vpcy1iYW5uZXItdGV4dCB7IGZsZXg6IDE7IGZvbnQtd2VpZ2h0OiA2MDA7IH0K
LmhpbndlaXMtYmFubmVyIC5idG4geyB3aGl0ZS1zcGFjZTogbm93cmFwOyB9Ci5oaW53ZWlzLWJh
bm5lci1zY2hsaWVzc2VuIHsKICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OyBjb2xvcjogI2Zm
ZjsgYm9yZGVyOiAxcHggc29saWQgcmdiYSgyNTUsMjU1LDI1NSwwLjQpOwogICAgd2lkdGg6IDI2
cHg7IGhlaWdodDogMjZweDsgYm9yZGVyLXJhZGl1czogdmFyKC0tcmFkaXVzLXNtKTsKICAgIGZv
bnQtc2l6ZTogMTZweDsgbGluZS1oZWlnaHQ6IDE7IGN1cnNvcjogcG9pbnRlcjsKICAgIGRpc3Bs
YXk6IGlubGluZS1mbGV4OyBhbGlnbi1pdGVtczogY2VudGVyOyBqdXN0aWZ5LWNvbnRlbnQ6IGNl
bnRlcjsKfQouaGlud2Vpcy1iYW5uZXItc2NobGllc3Nlbjpob3ZlciB7IGJhY2tncm91bmQ6IHJn
YmEoMjU1LDI1NSwyNTUsMC4xNSk7IH0KCi5iZW51dHplci13cmFwIHsKICAgIHBvc2l0aW9uOiBy
ZWxhdGl2ZTsKICAgIGRpc3BsYXk6IGlubGluZS1mbGV4OyBhbGlnbi1pdGVtczogY2VudGVyOyBn
YXA6IDhweDsKfQojYmVudXR6ZXItYW56ZWlnZSB7IGN1cnNvcjogZGVmYXVsdDsgfQoubWVpbi1h
dmF0YXItYnRuIHsKICAgIGN1cnNvcjogcG9pbnRlcjsKICAgIGRpc3BsYXk6IGlubGluZS1mbGV4
OwogICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgIC8qIEZvcm0gZm9sZ3QgZGVtIGlubmVyZW4g
LnZpMy1hdmF0YXIgKGVja2lnIG1pdCBhYmdlcnVuZGV0ZW4gRWNrZW4pLiAqLwogICAgdHJhbnNp
dGlvbjogdHJhbnNmb3JtIDAuMTJzOwp9Ci5tZWluLWF2YXRhci1idG46aG92ZXIgeyB0cmFuc2Zv
cm06IHNjYWxlKDEuMDgpOyB9Ci5tZWluLWF2YXRhci1idG46aG92ZXIgLnZpMy1hdmF0YXIgewog
ICAgYm94LXNoYWRvdzogaW5zZXQgMCAwIDAgMXB4IHJnYmEoMCwwLDAsMC4xMiksIDAgMCAwIDJw
eCByZ2JhKDI1NSwyNTUsMjU1LDAuNSk7Cn0KLm1laW4tYXZhdGFyLWJ0bjpmb2N1cy12aXNpYmxl
IHsKICAgIG91dGxpbmU6IDJweCBzb2xpZCB2YXIoLS1mYXJiZS1ha3plbnQsICM0YTkwZTIpOwog
ICAgb3V0bGluZS1vZmZzZXQ6IDJweDsKICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLXJhZGl1cy1t
ZCk7Cn0KLyogS2xpY2tiYXJlciBDdXJzb3IgbnVyIHdlbm4gZWluIEJhZGdlIGFuZ2V6ZWlndCB3
aXJkICg9IEhpbndlaXNlIHZvcmhhbmRlbikgKi8KLmJlbnV0emVyLXdyYXA6aGFzKC5oaW53ZWlz
LWJhZGdlOm5vdCgudmVyc3RlY2t0KSkgI2JlbnV0emVyLWFuemVpZ2UgeyBjdXJzb3I6IHBvaW50
ZXI7IH0KCi5oaW53ZWlzLWJhZGdlIHsKICAgIGRpc3BsYXk6IGlubGluZS1mbGV4OyBhbGlnbi1p
dGVtczogY2VudGVyOyBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgIG1pbi13aWR0aDogMjBw
eDsgaGVpZ2h0OiAyMHB4OyBwYWRkaW5nOiAwIDZweDsKICAgIGJvcmRlci1yYWRpdXM6IHZhcigt
LXJhZGl1cy1sZyk7CiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1mYXJiZS1mZWhsZXIpOyBjb2xvcjog
I2ZmZjsKICAgIGZvbnQtc2l6ZTogdmFyKC0tZnMtc20pOyBmb250LXdlaWdodDogNzAwOyBsaW5l
LWhlaWdodDogMTsKICAgIGN1cnNvcjogcG9pbnRlcjsgLXdlYmtpdC11c2VyLXNlbGVjdDogbm9u
ZTsgdXNlci1zZWxlY3Q6IG5vbmU7CiAgICBib3gtc2hhZG93OiAwIDFweCAzcHggdmFyKC0tc2hh
ZG93LWxpZ2h0KTsKfQouaGlud2Vpcy1iYWRnZS52ZXJzdGVja3QgeyBkaXNwbGF5OiBub25lOyB9
Ci5oaW53ZWlzLWJhZGdlOmhvdmVyIHsgZmlsdGVyOiBicmlnaHRuZXNzKDEuMSk7IH0KLmhpbndl
aXMtYmFkZ2U6Zm9jdXMgeyBvdXRsaW5lOiAycHggc29saWQgdmFyKC0tdGFnLWZlaWVydGFnKTsg
b3V0bGluZS1vZmZzZXQ6IDJweDsgfQoKLmhpbndlaXMtbW9kYWwtdGFiZWxsZSB0ZCB7IHZlcnRp
Y2FsLWFsaWduOiB0b3A7IHBhZGRpbmc6IDhweCAxMHB4OyB9Ci5oaW53ZWlzLW1vZGFsLXRhYmVs
bGUgdHIgeyBib3JkZXItYm90dG9tOiAxcHggc29saWQgdmFyKC0tYm9yZGVyLWxpZ2h0KTsgfQou
aGlud2Vpcy1tb2RhbC10YWJlbGxlIHRyOmxhc3QtY2hpbGQgeyBib3JkZXItYm90dG9tOiBub25l
OyB9CgovKiA9PT09PSBLYW5kaWRhdGVuLVBhbmVsIHBybyB1bnRlcmJlc2V0enRlIFNjaGljaHQg
KFRhZy1EZXRhaWwpID09PT09ICovCgouYmstZGV0YWlsLXNjaGljaHQta3JpdGlzY2ggewogICAg
Ym94LXNoYWRvdzogMCAwIDAgMnB4IHZhcigtLWZhcmJlLWZlaGxlcikgaW5zZXQ7CiAgICBhbmlt
YXRpb246IGJrLXB1bHNlIDEuNnMgZWFzZS1pbi1vdXQgaW5maW5pdGU7Cn0KQGtleWZyYW1lcyBi
ay1wdWxzZSB7CiAgICAwJSwgMTAwJSB7IGJveC1zaGFkb3c6IDAgMCAwIDJweCB2YXIoLS1mYXJi
ZS1mZWhsZXIpIGluc2V0OyB9CiAgICA1MCUgICAgICB7IGJveC1zaGFkb3c6IDAgMCAwIDNweCB2
YXIoLS1mYXJiZS1mZWhsZXIpIGluc2V0OyB9Cn0KCi5iay1zY2hpY2h0LWthbmRpZGF0ZW4geyBt
YXJnaW4tdG9wOiAxMHB4OyBwYWRkaW5nLXRvcDogOHB4OyBib3JkZXItdG9wOiAxcHggZGFzaGVk
IHZhcigtLWJvcmRlci1saWdodCk7IH0KLmJrLWthbmRpZGF0ZW4tdG9nZ2xlIHsKICAgIGRpc3Bs
YXk6IGlubGluZS1mbGV4OyBhbGlnbi1pdGVtczogY2VudGVyOyBnYXA6IDZweDsKICAgIHRyYW5z
aXRpb246IGJhY2tncm91bmQgMC4xMnMsIGJvcmRlci1jb2xvciAwLjEyczsKfQouYmsta2FuZGlk
YXRlbi10b2dnbGUgLmJrLWthbmQtcGZlaWwgewogICAgZm9udC1zaXplOiB2YXIoLS1mcy14cyk7
IGNvbG9yOiB2YXIoLS10ZXh0LW11dGVkKTsKICAgIHRyYW5zaXRpb246IGNvbG9yIDAuMTJzOwp9
Ci5iay1rYW5kaWRhdGVuLXRvZ2dsZS5iay1rYW5kaWRhdGVuLXRvZ2dsZS1vZmZlbiB7CiAgICBi
YWNrZ3JvdW5kOiB2YXIoLS1iZy1ob3Zlcik7CiAgICBib3JkZXItY29sb3I6IHZhcigtLWZhcmJl
LWFremVudCk7Cn0KLmJrLWthbmRpZGF0ZW4tdG9nZ2xlLmJrLWthbmRpZGF0ZW4tdG9nZ2xlLW9m
ZmVuIC5iay1rYW5kLXBmZWlsIHsgY29sb3I6IHZhcigtLWZhcmJlLWFremVudCk7IH0KLmJrLWth
bmRpZGF0ZW4tcGFuZWwgewogICAgbWFyZ2luLXRvcDogMTBweDsgcGFkZGluZzogMTBweCAxMnB4
OwogICAgYmFja2dyb3VuZDogdmFyKC0tYmctY2FyZC1hbHQpOyBib3JkZXI6IDFweCBzb2xpZCB2
YXIoLS1ib3JkZXItbGlnaHQpOyBib3JkZXItcmFkaXVzOiB2YXIoLS1yYWRpdXMtbWQpOwp9Ci5i
ay1rYW5kaWRhdGVuLXBhbmVsLnZlcnN0ZWNrdCB7IGRpc3BsYXk6IG5vbmU7IH0KLmJrLWthbmRp
ZGF0ZW4taGlud2VpcyB7CiAgICBmb250LXNpemU6IDExLjVweDsgY29sb3I6IHZhcigtLXRleHQt
bXV0ZWQpOyBmb250LXdlaWdodDogNjAwOwogICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsg
bGV0dGVyLXNwYWNpbmc6IDAuNHB4OwogICAgbWFyZ2luOiAxMHB4IDAgNnB4Owp9Ci5iay1rYW5k
aWRhdGVuLWhpbndlaXM6Zmlyc3QtY2hpbGQgeyBtYXJnaW4tdG9wOiAwOyB9Ci5iay1rYW5kaWRh
dGVuLWhpbndlaXMtdW1kaXMgeyBjb2xvcjogdmFyKC0tZmFyYmUtd2FybnVuZywgI2NhNmYxZSk7
IH0KLmJrLWthbmRpZGF0ZW4td2FybnVuZyB7CiAgICBmb250LXNpemU6IDExLjVweDsKICAgIGJh
Y2tncm91bmQ6IHJnYmEoMjAyLDExMSwzMCwwLjEwKTsKICAgIGJvcmRlcjogMXB4IHNvbGlkIHJn
YmEoMjAyLDExMSwzMCwwLjM1KTsKICAgIGJvcmRlci1sZWZ0OiAzcHggc29saWQgdmFyKC0tZmFy
YmUtd2FybnVuZywgI2NhNmYxZSk7CiAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1yYWRpdXMteHMp
OwogICAgcGFkZGluZzogNnB4IDhweDsKICAgIG1hcmdpbi1ib3R0b206IDZweDsKICAgIGNvbG9y
OiB2YXIoLS10ZXh0LXByaW1hcnkpOwogICAgbGluZS1oZWlnaHQ6IDEuNDsKfQouYmsta2FuZGlk
YXRlbi1sZWVyIHsgZm9udC1zaXplOiB2YXIoLS1mcy1iYXNlKTsgY29sb3I6IHZhcigtLXRleHQt
bXV0ZWQpOyBwYWRkaW5nOiA2cHggMDsgZm9udC1zdHlsZTogaXRhbGljOyB9Ci5iay1rYW5kaWRh
dGVuLWxpc3RlIHsgbGlzdC1zdHlsZTogbm9uZTsgbWFyZ2luOiAwOyBwYWRkaW5nOiAwOyB9Ci5i
ay1rYW5kaWRhdGVuLXplaWxlIHsKICAgIGRpc3BsYXk6IGdyaWQ7CiAgICBncmlkLXRlbXBsYXRl
LWNvbHVtbnM6IDIycHggMWZyIGF1dG87CiAgICBnYXA6IDEwcHg7CiAgICBwYWRkaW5nOiA2cHgg
OHB4OwogICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgIGJhY2tncm91bmQ6IHZhcigtLWJnLWNh
cmQpOwogICAgYm9yZGVyOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7CiAgICBib3JkZXItcmFkaXVz
OiB2YXIoLS1yYWRpdXMtc20pOwogICAgbWFyZ2luLWJvdHRvbTogM3B4OwogICAgdHJhbnNpdGlv
bjogYm9yZGVyLWNvbG9yIDAuMTJzLCBiYWNrZ3JvdW5kIDAuMTJzOwogICAgbWluLXdpZHRoOiAw
Owp9Ci5iay1rYW5kaWRhdGVuLXplaWxlOmhvdmVyIHsKICAgIGJvcmRlci1jb2xvcjogdmFyKC0t
ZmFyYmUtYWt6ZW50KTsKICAgIGJhY2tncm91bmQ6IHZhcigtLWJnLWhvdmVyKTsKfQouYmsta2Fu
ZGlkYXRlbi16ZWlsZTpsYXN0LWNoaWxkIHsgbWFyZ2luLWJvdHRvbTogMDsgfQouYmsta2FuZGlk
YXRlbi16ZWlsZS11bWRpcyB7CiAgICBiYWNrZ3JvdW5kOiByZ2JhKDIwMiwxMTEsMzAsMC4wNik7
CiAgICBib3JkZXItbGVmdDogM3B4IHNvbGlkIHJnYmEoMjAyLDExMSwzMCwwLjU1KTsKfQouYmst
a2FuZGlkYXRlbi16ZWlsZS11bWRpczpob3ZlciB7CiAgICBiYWNrZ3JvdW5kOiByZ2JhKDIwMiwx
MTEsMzAsMC4xMik7CiAgICBib3JkZXItbGVmdC1jb2xvcjogcmdiYSgyMDIsMTExLDMwLDAuODUp
Owp9Ci5iay1rYW5kaWRhdGVuLXRleHQgeyBkaXNwbGF5OiBmbGV4OyBmbGV4LWRpcmVjdGlvbjog
Y29sdW1uOyBnYXA6IDJweDsgbWluLXdpZHRoOiAwOyB9Ci5iay1rYW5kaWRhdGVuLW5hbWUgewog
ICAgZm9udC13ZWlnaHQ6IDYwMDsgY29sb3I6IHZhcigtLXRleHQtaGVhZGluZyk7IGZvbnQtc2l6
ZTogMTIuNXB4OwogICAgbGluZS1oZWlnaHQ6IDEuMjU7CiAgICBkaXNwbGF5OiBpbmxpbmUtZmxl
eDsgYWxpZ24taXRlbXM6IGNlbnRlcjsgZ2FwOiA2cHg7CiAgICB3aGl0ZS1zcGFjZTogbm93cmFw
OyBvdmVyZmxvdzogaGlkZGVuOyB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKfQouYmsta2FuZGlk
YXRlbi1tZXRhIHsKICAgIGZvbnQtc2l6ZTogMTAuNXB4OyBjb2xvcjogdmFyKC0tdGV4dC1tdXRl
ZCk7IGxpbmUtaGVpZ2h0OiAxLjI7CiAgICB3aGl0ZS1zcGFjZTogbm93cmFwOyBvdmVyZmxvdzog
aGlkZGVuOyB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKfQouYmsta2FuZGlkYXRlbi13YXJuIHsg
Y29sb3I6IHZhcigtLWZhcmJlLXdhcm51bmcsICNjYTZmMWUpOyBmb250LXNpemU6IHZhcigtLWZz
LXNtKTsgfQouYmsta2FuZGlkYXRlbi1jb2RlIHsKICAgIGZvbnQtZmFtaWx5OiBtb25vc3BhY2U7
IGZvbnQtc2l6ZTogdmFyKC0tZnMtc20pOwogICAgYmFja2dyb3VuZDogdmFyKC0tYmctY2FyZC1h
bHQpOyBwYWRkaW5nOiAycHggN3B4OwogICAgYm9yZGVyLXJhZGl1czogdmFyKC0tcmFkaXVzLXNt
KTsgY29sb3I6IHZhcigtLXRleHQtc2Vjb25kYXJ5KTsKICAgIGJvcmRlcjogMXB4IHNvbGlkIHZh
cigtLWJvcmRlci1saWdodCk7CiAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwp9Ci5iay1rYW5kaWRh
dGVuLWtlaW4tbWFpbCB7IG9wYWNpdHk6IDAuNTU7IH0KLmJrLWthbmRpZGF0ZW4ta2Vpbi1tYWls
IC5iay1rYW5kaWRhdGVuLWNoayB7IGN1cnNvcjogbm90LWFsbG93ZWQ7IH0KLmJrLWthbmRpZGF0
ZW4tYWt0aW9uZW4gewogICAgbWFyZ2luLXRvcDogMTBweDsgcGFkZGluZy10b3A6IDhweDsKICAg
IGJvcmRlci10b3A6IDFweCBzb2xpZCB2YXIoLS1ib3JkZXItbGlnaHQpOwogICAgZGlzcGxheTog
ZmxleDsganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDsKfQoKLyogPT09PT09PT09PSBFcnNjaGVp
bnVuZ3NiaWxkLUVkaXRvciA9PT09PT09PT09ICovCi8qIFR3by1Db2x1bW4tTGF5b3V0OgogICDi
lIzilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilKzilIDilIDilIDilIDi
lIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDi
lIDilIDilIDilIDilJAKICAg4pSCIFZvcnNjaGF1ICAgIOKUgiBUYWItQmFyICAgICAgICAgICAg
ICAgICAgIOKUggogICDilIIgKHN0aWNreSkgICAg4pSCIEVkaXRvciAoYWt0aXZlciBUeXApICAg
ICAg4pSCCiAgIOKUlOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUtOKU
gOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKU
gOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUmAogICBTdGlja3kgRm9vdGVyIG1pdCBTcGVpY2hlcm4g
KyBSZXNldC4KKi8KLmVyc2NoZWludW5nLWxheW91dCB7CiAgICBkaXNwbGF5OiBncmlkOwogICAg
Z3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiBtaW5tYXgoMjQwcHgsIDMwMHB4KSAxZnI7CiAgICBnYXA6
IDE2cHg7CiAgICBhbGlnbi1pdGVtczogc3RhcnQ7CiAgICBtYXJnaW4tYm90dG9tOiA3MnB4OyAg
LyogUGxhdHogZnVlciBzdGlja3kgRm9vdGVyICovCn0KQG1lZGlhIChtYXgtd2lkdGg6IDEwMDBw
eCkgewogICAgLmVyc2NoZWludW5nLWxheW91dCB7IGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZy
OyB9Cn0KCi8qIC0tLS0gVm9yc2NoYXUtUGFuZWwgKGxpbmtzLCBzdGlja3kpIC0tLS0gKi8KLmVy
c2NoZWludW5nLXZvcnNjaGF1LXBhbmVsIHsKICAgIGJhY2tncm91bmQ6IHZhcigtLWJnLWNhcmQp
OwogICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYm9yZGVyLWxpZ2h0KTsKICAgIGJvcmRlci1y
YWRpdXM6IHZhcigtLXJhZGl1cy1sZyk7CiAgICBwYWRkaW5nOiAxMnB4OwogICAgcG9zaXRpb246
IHN0aWNreTsKICAgIHRvcDogMTBweDsKfQouZXJzY2hlaW51bmctdm9yc2NoYXUtdGl0ZWwgewog
ICAgZm9udC1zaXplOiAxMC41cHg7IGNvbG9yOiB2YXIoLS10ZXh0LW11dGVkKTsgbWFyZ2luLWJv
dHRvbTogOHB4OwogICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsgbGV0dGVyLXNwYWNpbmc6
IDAuNnB4OyBmb250LXdlaWdodDogNjAwOwp9Ci5lcnNjaGVpbnVuZy12b3JzY2hhdS1zdGFjayB7
CiAgICBkaXNwbGF5OiBmbGV4OyBmbGV4LWRpcmVjdGlvbjogY29sdW1uOyBnYXA6IDZweDsKfQou
ZXJzY2hlaW51bmctdm9yc2NoYXUtemVpbGUgewogICAgZGlzcGxheTogZ3JpZDsgZ3JpZC10ZW1w
bGF0ZS1jb2x1bW5zOiA4NHB4IDFmcjsKICAgIGdhcDogMTBweDsgYWxpZ24taXRlbXM6IGNlbnRl
cjsKICAgIHBhZGRpbmc6IDZweCA4cHg7IGJvcmRlci1yYWRpdXM6IHZhcigtLXJhZGl1cy1tZCk7
CiAgICBib3JkZXI6IDFweCBzb2xpZCB0cmFuc3BhcmVudDsKICAgIGN1cnNvcjogcG9pbnRlcjsg
dHJhbnNpdGlvbjogYmFja2dyb3VuZCAwLjE1cywgYm9yZGVyLWNvbG9yIDAuMTVzOwp9Ci5lcnNj
aGVpbnVuZy12b3JzY2hhdS16ZWlsZTpob3ZlciB7CiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1iZy1o
b3Zlcik7Cn0KLmVyc2NoZWludW5nLXZvcnNjaGF1LXplaWxlLmFrdGl2IHsKICAgIGJhY2tncm91
bmQ6IHZhcigtLWJnLWhvdmVyKTsKICAgIGJvcmRlci1jb2xvcjogdmFyKC0tZmFyYmUtYWt6ZW50
LCAjNGE5MGUyKTsKfQouZXJzY2hlaW51bmctdm9yc2NoYXUtY2VsbHMgewogICAgZGlzcGxheTog
ZmxleDsgZ2FwOiAycHg7Cn0KLmVyc2NoZWludW5nLXZvcnNjaGF1LXplbGxlIHsKICAgIGZsZXg6
IDE7IGJhY2tncm91bmQ6IHZhcigtLWJnLWNhcmQtYWx0KTsKICAgIGJvcmRlci1yYWRpdXM6IHZh
cigtLXJhZGl1cy14cyk7IHBhZGRpbmc6IDRweCAzcHg7IHRleHQtYWxpZ246IGNlbnRlcjsKICAg
IGZvbnQtc2l6ZTogMTEuNXB4OyBmb250LXdlaWdodDogNjAwOyBtaW4taGVpZ2h0OiAyOHB4Owog
ICAgZGlzcGxheTogZmxleDsgYWxpZ24taXRlbXM6IGNlbnRlcjsganVzdGlmeS1jb250ZW50OiBj
ZW50ZXI7Cn0KLmVyc2NoZWludW5nLXZvcnNjaGF1LWZsYXNoIHsKICAgIGJhY2tncm91bmQ6IHZh
cigtLWZhcmJlLWZydWVoLCAjQjcxQzFDKSAhaW1wb3J0YW50OwogICAgY29sb3I6ICNmZmY7CiAg
ICBtaW4td2lkdGg6IDgwcHg7Cn0KLmVyc2NoZWludW5nLXZvcnNjaGF1LW1ldGEgewogICAgZGlz
cGxheTogZmxleDsgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsgZ2FwOiAycHg7IG1pbi13aWR0aDog
MDsKfQouZXJzY2hlaW51bmctdm9yc2NoYXUtdHlwIHsKICAgIGZvbnQtc2l6ZTogdmFyKC0tZnMt
YmFzZSk7IGZvbnQtd2VpZ2h0OiA2MDA7IGNvbG9yOiB2YXIoLS10ZXh0LWhlYWRpbmcpOwogICAg
d2hpdGUtc3BhY2U6IG5vd3JhcDsgb3ZlcmZsb3c6IGhpZGRlbjsgdGV4dC1vdmVyZmxvdzogZWxs
aXBzaXM7Cn0KLmVyc2NoZWludW5nLXZvcnNjaGF1LW5vdGl6IHsKICAgIGZvbnQtc2l6ZTogdmFy
KC0tZnMteHMpOyBjb2xvcjogdmFyKC0tdGV4dC1tdXRlZCk7Cn0KLmVyc2NoZWludW5nLXZvcnNj
aGF1LWhpbndlaXMgewogICAgbWFyZ2luLXRvcDogMTBweDsgcGFkZGluZy10b3A6IDEwcHg7CiAg
ICBib3JkZXItdG9wOiAxcHggc29saWQgdmFyKC0tYm9yZGVyLWxpZ2h0KTsKICAgIGZvbnQtc2l6
ZTogdmFyKC0tZnMteHMpOyBjb2xvcjogdmFyKC0tdGV4dC1tdXRlZCk7IGZvbnQtc3R5bGU6IGl0
YWxpYzsKfQouYnRuLW1pbmkgewogICAgcGFkZGluZzogM3B4IDhweDsgZm9udC1zaXplOiB2YXIo
LS1mcy1zbSk7CiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1iZy1jYXJkLWFsdCk7CiAgICBib3JkZXI6
IDFweCBzb2xpZCB2YXIoLS1ib3JkZXItbGlnaHQpOwogICAgYm9yZGVyLXJhZGl1czogdmFyKC0t
cmFkaXVzLXNtKTsgY3Vyc29yOiBwb2ludGVyOwogICAgY29sb3I6IHZhcigtLXRleHQtcHJpbWFy
eSk7Cn0KLmJ0bi1taW5pOmhvdmVyIHsgYmFja2dyb3VuZDogdmFyKC0tYmctaG92ZXIpOyB9Cgov
KiBWb3JzY2hhdS1aZWxsZW4gZXJiZW4gZGllIGZlcnRpZ2VuIE1hcmtpZXJ1bmdzLVZhcmlhYmxl
bjogKi8KLmVyc2NoZWludW5nLXZvcnNjaGF1LXplbGxlW2RhdGEtdm9yc2NoYXUta2V5PSJzb25k
ZXJ0YWdIaW53ZWlzIl0gewogICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tbWhpbi1iZywgdmFy
KC0tYmctY2FyZC1hbHQpKTsKICAgIGNvbG9yOiB2YXIoLS1taGluLXRleHQsIGluaGVyaXQpOwog
ICAgZm9udC13ZWlnaHQ6IHZhcigtLW1oaW4tZncsIDYwMCk7CiAgICBib3gtc2hhZG93OiB2YXIo
LS1taGluLXNoYWRvdywgbm9uZSk7CiAgICBhbmltYXRpb246IHZhcigtLW1oaW4tYW5pbSwgbm9u
ZSk7Cn0KLmVyc2NoZWludW5nLXZvcnNjaGF1LXplbGxlW2RhdGEtdm9yc2NoYXUta2V5PSJzb25k
ZXJ0YWdXYXJudW5nIl0gewogICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tbXdhci1iZywgdmFy
KC0tYmctY2FyZC1hbHQpKTsKICAgIGNvbG9yOiB2YXIoLS1td2FyLXRleHQsIGluaGVyaXQpOwog
ICAgZm9udC13ZWlnaHQ6IHZhcigtLW13YXItZncsIDYwMCk7CiAgICBib3gtc2hhZG93OiB2YXIo
LS1td2FyLXNoYWRvdywgbm9uZSk7CiAgICBhbmltYXRpb246IHZhcigtLW13YXItYW5pbSwgbm9u
ZSk7Cn0KLmVyc2NoZWludW5nLXZvcnNjaGF1LXplbGxlW2RhdGEtdm9yc2NoYXUta2V5PSJmZWll
cnRhZ1dpY2h0aWciXSB7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1tZndpLWJnLCB2YXIo
LS1iZy1jYXJkLWFsdCkpOwogICAgY29sb3I6IHZhcigtLW1md2ktdGV4dCwgaW5oZXJpdCk7CiAg
ICBmb250LXdlaWdodDogdmFyKC0tbWZ3aS1mdywgNjAwKTsKICAgIGJveC1zaGFkb3c6IHZhcigt
LW1md2ktc2hhZG93LCBub25lKTsKICAgIGFuaW1hdGlvbjogdmFyKC0tbWZ3aS1hbmltLCBub25l
KTsKfQouZXJzY2hlaW51bmctdm9yc2NoYXUtemVsbGVbZGF0YS12b3JzY2hhdS1rZXk9ImZlcmll
biJdIHsKICAgIC8qIFZvcnNjaGF1IHplaWd0IGRpZSBTcGFsdGVuLVRvZW51bmcgYWxzIFplbGxo
aW50ZXJncnVuZCArIEJhbGtlbi1UZXh0ZmFyYmU7CiAgICAgICBGYWxsYmFja3MgPSBha3R1ZWxs
ZSBGZXJpZW4tRGVmYXVsdHMsIGRhbWl0IGF1Y2ggdW5rb25maWd1cmllcnQgZGVyCiAgICAgICB2
ZXJ0cmF1dGUgTG9vayBlcnNjaGVpbnQuICovCiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1t
ZmVyLXNwYWx0ZS1iZywgI0UwRjBFNCk7CiAgICBjb2xvcjogdmFyKC0tbWZlci10ZXh0LCAjMjU2
MDI5KTsKICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1tZmVyLWZ3LCA3MDApOwogICAgYm94LXNoYWRv
dzogdmFyKC0tbWZlci1zaGFkb3csIG5vbmUpOwogICAgYW5pbWF0aW9uOiB2YXIoLS1tZmVyLWFu
aW0sIG5vbmUpOwp9Ci5lcnNjaGVpbnVuZy12b3JzY2hhdS16ZWxsZVtkYXRhLXZvcnNjaGF1LWtl
eT0iaGV1dGVTcGFsdGUiXSB7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1taGUtYmcsIHZh
cigtLWJnLWNhcmQtYWx0KSk7CiAgICBjb2xvcjogdmFyKC0tbWhlLXRleHQsIGluaGVyaXQpOwog
ICAgZm9udC13ZWlnaHQ6IHZhcigtLW1oZS1mdywgNjAwKTsKICAgIGJveC1zaGFkb3c6IHZhcigt
LW1oZS1zaGFkb3csIG5vbmUpOwogICAgYW5pbWF0aW9uOiB2YXIoLS1taGUtYW5pbSwgbm9uZSk7
Cn0KCi8qIC0tLS0gRWRpdG9yLVNwYWx0ZSAocmVjaHRzKSAtLS0tICovCi5lcnNjaGVpbnVuZy1l
ZGl0b3Itc3BhbHRlIHsKICAgIGRpc3BsYXk6IGZsZXg7IGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47
IGdhcDogMTBweDsKICAgIG1pbi13aWR0aDogMDsKfQovKiBUYWItQmFyOiBLYXJ0ZW4tTG9vaywg
amUgTWFya2llcnVuZ3MtVHlwIGVpbiBCdXR0b24gbWl0IGVjaHRlciBMaXZlLQogICBWb3JzY2hh
dSAoRGF0dW0vV29jaGVudGFnLSBiencuIFNjaGljaHQtWmVsbGUpIHBsdXMgTGFiZWwgZGFydW50
ZXIuCiAgIEFrdGl2ZSBLYXJ0ZSBtaXQgQWt6ZW50LUJvcmRlciArIGxlaWNodGVtIEdsb3cuICov
Ci5lcnNjaGVpbnVuZy10YWItYmFyIHsKICAgIGRpc3BsYXk6IGdyaWQ7CiAgICBncmlkLXRlbXBs
YXRlLWNvbHVtbnM6IHJlcGVhdCg2LCBtaW5tYXgoMCwgMWZyKSk7CiAgICBnYXA6IDhweDsKICAg
IHBhZGRpbmc6IDhweDsKICAgIGJhY2tncm91bmQ6IHZhcigtLWJnLWNhcmQpOwogICAgYm9yZGVy
OiAxcHggc29saWQgdmFyKC0tYm9yZGVyLWxpZ2h0KTsKICAgIGJvcmRlci1yYWRpdXM6IHZhcigt
LXJhZGl1cy1sZyk7Cn0KQG1lZGlhIChtYXgtd2lkdGg6IDkwMHB4KSB7CiAgICAuZXJzY2hlaW51
bmctdGFiLWJhciB7IGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDMsIDFmcik7IH0KfQpA
bWVkaWEgKG1heC13aWR0aDogNjAwcHgpIHsKICAgIC5lcnNjaGVpbnVuZy10YWItYmFyIHsgZ3Jp
ZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoMiwgMWZyKTsgfQp9Ci5lcnNjaGVpbnVuZy10YWIg
ewogICAgZGlzcGxheTogZmxleDsgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgIGFsaWduLWl0
ZW1zOiBzdHJldGNoOyBnYXA6IDZweDsKICAgIHBhZGRpbmc6IDhweDsKICAgIGJhY2tncm91bmQ6
IHZhcigtLWJnLWNhcmQtYWx0KTsKICAgIGJvcmRlcjogMnB4IHNvbGlkIHRyYW5zcGFyZW50Owog
ICAgYm9yZGVyLXJhZGl1czogOHB4OwogICAgY3Vyc29yOiBwb2ludGVyOwogICAgdGV4dC1hbGln
bjogY2VudGVyOwogICAgY29sb3I6IHZhcigtLXRleHQtcHJpbWFyeSk7CiAgICB0cmFuc2l0aW9u
OiBiYWNrZ3JvdW5kIDAuMTVzLCBib3JkZXItY29sb3IgMC4xNXMsIHRyYW5zZm9ybSAwLjE1cywg
Ym94LXNoYWRvdyAwLjE1czsKfQouZXJzY2hlaW51bmctdGFiOmhvdmVyIHsKICAgIGJhY2tncm91
bmQ6IHZhcigtLWJnLWhvdmVyKTsKICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMXB4KTsKfQou
ZXJzY2hlaW51bmctdGFiLmFrdGl2IHsKICAgIGJhY2tncm91bmQ6IHZhcigtLWJnLWhvdmVyKTsK
ICAgIGJvcmRlci1jb2xvcjogdmFyKC0tZmFyYmUtYWt6ZW50LCAjNGE5MGUyKTsKICAgIGJveC1z
aGFkb3c6IDAgMnB4IDEwcHggcmdiYSg3NCwxNDQsMjI2LDAuMjUpOwp9Ci5lcnNjaGVpbnVuZy10
YWIuYWt0aXYgLmVyc2NoZWludW5nLXRhYi1sYWJlbC10b3AgewogICAgY29sb3I6IHZhcigtLXRl
eHQtaGVhZGluZyk7CiAgICBmb250LXdlaWdodDogNzAwOwp9CgovKiBDaGlwOiBiaWxkZXQgZGFz
IHRhdHNhZWNobGljaGUgRXJzY2hlaW51bmdzYmlsZCBkZXIgTWFya2llcnVuZyBhYi4KICAgRGF0
dW0gKyBXb2NoZW50YWcgd2llIGltIFBsYW50YWZlbC1Lb3BmIGdlc3RhcGVsdDsgU3luYy1GbGFz
aCB6ZWlndAogICBzdGF0dGRlc3NlbiBkZW4gU2NoaWNodGNvZGUtVGV4dC4gKi8KLmVyc2NoZWlu
dW5nLXRhYi1jaGlwIHsKICAgIGRpc3BsYXk6IGZsZXg7IGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47
CiAgICBhbGlnbi1pdGVtczogY2VudGVyOyBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgIGdh
cDogMXB4OwogICAgbWluLWhlaWdodDogNDRweDsKICAgIGJvcmRlci1yYWRpdXM6IDVweDsKICAg
IGJhY2tncm91bmQ6IHZhcigtLWJnLWNhcmQpOwogICAgcGFkZGluZzogNnB4IDRweDsKICAgIGZv
bnQtd2VpZ2h0OiA3MDA7Cn0KLmVyc2NoZWludW5nLXRhYi1jaGlwLXRhZyB7CiAgICBmb250LXNp
emU6IHZhcigtLWZzLWxnKTsgbGluZS1oZWlnaHQ6IDEuMTsKfQouZXJzY2hlaW51bmctdGFiLWNo
aXAtd3QgewogICAgZm9udC1zaXplOiAxMC41cHg7IG9wYWNpdHk6IDAuODU7Cn0KLmVyc2NoZWlu
dW5nLXRhYi1jaGlwLXRleHQgewogICAgZm9udC1zaXplOiB2YXIoLS1mcy1tZCk7IGxldHRlci1z
cGFjaW5nOiAwLjVweDsKfQoKLmVyc2NoZWludW5nLXRhYi1jaGlwW2RhdGEtdm9yc2NoYXUta2V5
PSJzb25kZXJ0YWdIaW53ZWlzIl0gewogICAgYmFja2dyb3VuZDogdmFyKC0tbWhpbi1iZywgdmFy
KC0tYmctY2FyZCkpOwogICAgY29sb3I6IHZhcigtLW1oaW4tdGV4dCwgaW5oZXJpdCk7CiAgICBi
b3gtc2hhZG93OiB2YXIoLS1taGluLXNoYWRvdywgbm9uZSk7CiAgICBhbmltYXRpb246IHZhcigt
LW1oaW4tYW5pbSwgbm9uZSk7Cn0KLmVyc2NoZWludW5nLXRhYi1jaGlwW2RhdGEtdm9yc2NoYXUt
a2V5PSJzb25kZXJ0YWdXYXJudW5nIl0gewogICAgYmFja2dyb3VuZDogdmFyKC0tbXdhci1iZywg
dmFyKC0tYmctY2FyZCkpOwogICAgY29sb3I6IHZhcigtLW13YXItdGV4dCwgaW5oZXJpdCk7CiAg
ICBib3gtc2hhZG93OiB2YXIoLS1td2FyLXNoYWRvdywgbm9uZSk7CiAgICBhbmltYXRpb246IHZh
cigtLW13YXItYW5pbSwgbm9uZSk7Cn0KLmVyc2NoZWludW5nLXRhYi1jaGlwW2RhdGEtdm9yc2No
YXUta2V5PSJmZWllcnRhZ1dpY2h0aWciXSB7CiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1tZndpLWJn
LCB2YXIoLS1iZy1jYXJkKSk7CiAgICBjb2xvcjogdmFyKC0tbWZ3aS10ZXh0LCBpbmhlcml0KTsK
ICAgIGJveC1zaGFkb3c6IHZhcigtLW1md2ktc2hhZG93LCBub25lKTsKICAgIGFuaW1hdGlvbjog
dmFyKC0tbWZ3aS1hbmltLCBub25lKTsKfQouZXJzY2hlaW51bmctdGFiLWNoaXBbZGF0YS12b3Jz
Y2hhdS1rZXk9ImZlcmllbiJdIHsKICAgIGJhY2tncm91bmQ6IHZhcigtLW1mZXItc3BhbHRlLWJn
LCAjRTBGMEU0KTsKICAgIGNvbG9yOiB2YXIoLS1tZmVyLXRleHQsICMyNTYwMjkpOwogICAgYm94
LXNoYWRvdzogdmFyKC0tbWZlci1zaGFkb3csIG5vbmUpOwogICAgYW5pbWF0aW9uOiB2YXIoLS1t
ZmVyLWFuaW0sIG5vbmUpOwp9Ci5lcnNjaGVpbnVuZy10YWItY2hpcFtkYXRhLXZvcnNjaGF1LWtl
eT0iaGV1dGVTcGFsdGUiXSB7CiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1taGUtYmcsIHZhcigtLWJn
LWNhcmQpKTsKICAgIGNvbG9yOiB2YXIoLS1taGUtdGV4dCwgaW5oZXJpdCk7CiAgICBib3gtc2hh
ZG93OiB2YXIoLS1taGUtc2hhZG93LCBub25lKTsKICAgIGFuaW1hdGlvbjogdmFyKC0tbWhlLWFu
aW0sIG5vbmUpOwp9Ci5lcnNjaGVpbnVuZy10YWItY2hpcFtkYXRhLXZvcnNjaGF1LWtleT0ic3lu
Y0ZsYXNoIl0gewogICAgYmFja2dyb3VuZDogdmFyKC0tZmFyYmUtZnJ1ZWgsICNCNzFDMUMpOwog
ICAgY29sb3I6ICNmZmY7Cn0KCi5lcnNjaGVpbnVuZy10YWItbGFiZWwgewogICAgZGlzcGxheTog
ZmxleDsgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsgZ2FwOiAxcHg7CiAgICBsaW5lLWhlaWdodDog
MS4yOwp9Ci5lcnNjaGVpbnVuZy10YWItbGFiZWwtdG9wIHsKICAgIGZvbnQtc2l6ZTogMTEuNXB4
OyBmb250LXdlaWdodDogNjAwOyBjb2xvcjogdmFyKC0tdGV4dC1wcmltYXJ5KTsKfQouZXJzY2hl
aW51bmctdGFiLWxhYmVsLWJvdCB7CiAgICBmb250LXNpemU6IDEwLjVweDsgY29sb3I6IHZhcigt
LXRleHQtbXV0ZWQpOwp9CgouZXJzY2hlaW51bmctZWRpdG9yIHsKICAgIGJhY2tncm91bmQ6IHZh
cigtLWJnLWNhcmQpOwogICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYm9yZGVyLWxpZ2h0KTsK
ICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLXJhZGl1cy1sZyk7CiAgICBwYWRkaW5nOiAxNHB4IDE4
cHg7Cn0KLmVyc2NoZWludW5nLWVkaXRvci1rb3BmIHsKICAgIG1hcmdpbi1ib3R0b206IDEycHg7
IHBhZGRpbmctYm90dG9tOiAxMHB4OwogICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHZhcigt
LWJvcmRlci1saWdodCk7Cn0KLmVyc2NoZWludW5nLWVkaXRvci10aXRlbHplaWxlIHsKICAgIGRp
c3BsYXk6IGZsZXg7IGFsaWduLWl0ZW1zOiBjZW50ZXI7IGp1c3RpZnktY29udGVudDogc3BhY2Ut
YmV0d2VlbjsKICAgIGdhcDogMTJweDsKfQouZXJzY2hlaW51bmctZWRpdG9yLXRpdGVsIHsKICAg
IG1hcmdpbjogMDsgZm9udC1zaXplOiAxNnB4OyBjb2xvcjogdmFyKC0tdGV4dC1oZWFkaW5nKTsK
fQouZXJzY2hlaW51bmctZWRpdG9yLXN1YiB7CiAgICBtYXJnaW46IDJweCAwIDA7IGZvbnQtc2l6
ZTogdmFyKC0tZnMtc20pOyBjb2xvcjogdmFyKC0tdGV4dC1tdXRlZCk7Cn0KLmVyc2NoZWludW5n
LWVkaXRvci1ib2R5IHsKICAgIGRpc3BsYXk6IGdyaWQ7CiAgICBncmlkLXRlbXBsYXRlLWNvbHVt
bnM6IHJlcGVhdCgzLCBtaW5tYXgoMCwgMWZyKSk7CiAgICBnYXA6IDE2cHggMjJweDsKfQpAbWVk
aWEgKG1heC13aWR0aDogMTIwMHB4KSB7CiAgICAuZXJzY2hlaW51bmctZWRpdG9yLWJvZHkgeyBn
cmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCgyLCBtaW5tYXgoMCwgMWZyKSk7IH0KfQpAbWVk
aWEgKG1heC13aWR0aDogNzIwcHgpIHsKICAgIC5lcnNjaGVpbnVuZy1lZGl0b3ItYm9keSB7IGdy
aWQtdGVtcGxhdGUtY29sdW1uczogMWZyOyB9Cn0KLmVyc2NoZWludW5nLXNla3Rpb24geyBtaW4t
d2lkdGg6IDA7IH0KLmVyc2NoZWludW5nLXNla3Rpb24tdGl0ZWwgewogICAgbWFyZ2luOiAwIDAg
OHB4OyBmb250LXNpemU6IDEwLjVweDsgZm9udC13ZWlnaHQ6IDcwMDsKICAgIHRleHQtdHJhbnNm
b3JtOiB1cHBlcmNhc2U7IGxldHRlci1zcGFjaW5nOiAwLjZweDsKICAgIGNvbG9yOiB2YXIoLS10
ZXh0LW11dGVkKTsKICAgIHBhZGRpbmctYm90dG9tOiA0cHg7IGJvcmRlci1ib3R0b206IDFweCBk
YXNoZWQgdmFyKC0tYm9yZGVyLWxpZ2h0KTsKfQouZXJzY2hlaW51bmctc2VrdGlvbi1ncmlkIHsK
ICAgIGRpc3BsYXk6IGZsZXg7IGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47IGdhcDogOHB4Owp9Ci5l
cnNjaGVpbnVuZy1mZWxkIHsKICAgIGRpc3BsYXk6IGdyaWQ7IGdyaWQtdGVtcGxhdGUtY29sdW1u
czogOTBweCAxZnI7CiAgICBhbGlnbi1pdGVtczogY2VudGVyOyBnYXA6IDhweDsgbWluLXdpZHRo
OiAwOwp9Ci5lcnNjaGVpbnVuZy1mZWxkLWxhYmVsIHsKICAgIGZvbnQtc2l6ZTogMTEuNXB4OyBj
b2xvcjogdmFyKC0tdGV4dC1tdXRlZCk7IGZvbnQtd2VpZ2h0OiA1MDA7Cn0KLmVyc2NoZWludW5n
LWZlbGQtY29udHJvbCB7CiAgICBkaXNwbGF5OiBmbGV4OyBhbGlnbi1pdGVtczogY2VudGVyOyBn
YXA6IDZweDsKICAgIG1pbi1oZWlnaHQ6IDI2cHg7IG1pbi13aWR0aDogMDsKfQoKLyogLS0tLSBF
aW5nYWJlLUtvbXBvbmVudGVuIC0tLS0gKi8KLmVyc2NoZWludW5nLWlucHV0IHsKICAgIHBhZGRp
bmc6IDVweCA4cHg7IGZvbnQtc2l6ZTogdmFyKC0tZnMtbWQpOwogICAgYm9yZGVyOiAxcHggc29s
aWQgdmFyKC0tYm9yZGVyLWNvbG9yKTsKICAgIGJhY2tncm91bmQ6IHZhcigtLWJnLWNhcmQtYWx0
KTsKICAgIGNvbG9yOiB2YXIoLS10ZXh0LXByaW1hcnkpOwogICAgYm9yZGVyLXJhZGl1czogdmFy
KC0tcmFkaXVzLXNtKTsKfQouZXJzY2hlaW51bmctaW5wdXQ6Zm9jdXMgewogICAgb3V0bGluZTog
MnB4IHNvbGlkIHZhcigtLWZhcmJlLWFremVudCwgIzRhOTBlMik7IG91dGxpbmUtb2Zmc2V0OiAx
cHg7Cn0KCi8qIEZhcmJwaWNrZXIgbWl0IMOXLUJ1dHRvbiAqLwouZXJzY2hlaW51bmctZmFyYi13
cmFwIHsKICAgIGRpc3BsYXk6IGlubGluZS1mbGV4OyBhbGlnbi1pdGVtczogc3RyZXRjaDsKICAg
IGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWJvcmRlci1jb2xvcik7IGJvcmRlci1yYWRpdXM6IHZh
cigtLXJhZGl1cy1zbSk7CiAgICBvdmVyZmxvdzogaGlkZGVuOwp9Ci5lcnNjaGVpbnVuZy1mYXJi
LXdyYXAubGVlciAuZXJzY2hlaW51bmctZmFyYiB7CiAgICBvcGFjaXR5OiAwLjM7CiAgICBiYWNr
Z3JvdW5kLWltYWdlOiByZXBlYXRpbmctbGluZWFyLWdyYWRpZW50KDQ1ZGVnLCB0cmFuc3BhcmVu
dCAwIDRweCwgcmdiYSgwLDAsMCwwLjE1KSA0cHggOHB4KTsKfQouZXJzY2hlaW51bmctZmFyYiB7
CiAgICB3aWR0aDogNDRweDsgaGVpZ2h0OiAyOHB4OyBwYWRkaW5nOiAycHg7IGJvcmRlcjogbm9u
ZTsKICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OyBjdXJzb3I6IHBvaW50ZXI7Cn0KLmVyc2No
ZWludW5nLWZhcmIteCB7CiAgICB3aWR0aDogMjJweDsgaGVpZ2h0OiAyOHB4OyBsaW5lLWhlaWdo
dDogMjZweDsKICAgIHRleHQtYWxpZ246IGNlbnRlcjsgZm9udC1zaXplOiB2YXIoLS1mcy1sZyk7
IGZvbnQtd2VpZ2h0OiA2MDA7CiAgICBib3JkZXI6IG5vbmU7IGJvcmRlci1sZWZ0OiAxcHggc29s
aWQgdmFyKC0tYm9yZGVyLWNvbG9yKTsKICAgIGJhY2tncm91bmQ6IHZhcigtLWJnLWNhcmQtYWx0
KTsgY29sb3I6IHZhcigtLXRleHQtbXV0ZWQpOwogICAgY3Vyc29yOiBwb2ludGVyOyBwYWRkaW5n
OiAwOwp9Ci5lcnNjaGVpbnVuZy1mYXJiLXg6aG92ZXIgewogICAgYmFja2dyb3VuZDogdmFyKC0t
YmctaG92ZXIpOyBjb2xvcjogdmFyKC0tdGV4dC1wcmltYXJ5KTsKfQoKLyogU2xpZGVyIG1pdCBO
dW1iZXItU3BpbmJveCAqLwouZXJzY2hlaW51bmctc2xpZGVyLXdyYXAgewogICAgZGlzcGxheTog
ZmxleDsgYWxpZ24taXRlbXM6IGNlbnRlcjsgZ2FwOiA2cHg7IGZsZXg6IDE7IG1pbi13aWR0aDog
MDsKfQouZXJzY2hlaW51bmctaW5wdXQtcmFuZ2UgewogICAgZmxleDogMTsgbWluLXdpZHRoOiA2
MHB4OwogICAgcGFkZGluZzogMDsgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7IGJvcmRlcjogbm9u
ZTsKICAgIGFjY2VudC1jb2xvcjogdmFyKC0tZmFyYmUtYWt6ZW50LCAjNGE5MGUyKTsKfQouZXJz
Y2hlaW51bmctaW5wdXQtbnVtIHsKICAgIHdpZHRoOiA1NnB4OyB0ZXh0LWFsaWduOiByaWdodDsK
fQouZXJzY2hlaW51bmctaW5wdXQtbnVtOjotd2Via2l0LWlubmVyLXNwaW4tYnV0dG9uIHsgb3Bh
Y2l0eTogMTsgfQouZXJzY2hlaW51bmctZWluaGVpdCB7CiAgICBmb250LXNpemU6IHZhcigtLWZz
LXNtKTsgY29sb3I6IHZhcigtLXRleHQtbXV0ZWQpOyBtaW4td2lkdGg6IDE4cHg7Cn0KCi8qIFRv
Z2dsZS1Td2l0Y2ggKHN0YXR0IENoZWNrYm94KSAqLwouZXJzY2hlaW51bmctdG9nZ2xlIHsKICAg
IGRpc3BsYXk6IGlubGluZS1mbGV4OyBhbGlnbi1pdGVtczogY2VudGVyOyBnYXA6IDEwcHg7IGN1
cnNvcjogcG9pbnRlcjsKICAgIHVzZXItc2VsZWN0OiBub25lOwp9Ci5lcnNjaGVpbnVuZy10b2dn
bGUgaW5wdXQgeyBkaXNwbGF5OiBub25lOyB9Ci5lcnNjaGVpbnVuZy10b2dnbGUtcmFpbCB7CiAg
ICB3aWR0aDogMzZweDsgaGVpZ2h0OiAyMHB4OyBib3JkZXItcmFkaXVzOiB2YXIoLS1yYWRpdXMt
bGcpOwogICAgYmFja2dyb3VuZDogdmFyKC0tYm9yZGVyLWNvbG9yKTsgcG9zaXRpb246IHJlbGF0
aXZlOwogICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAwLjE1czsKfQouZXJzY2hlaW51bmctdG9n
Z2xlLXJhaWw6OmFmdGVyIHsKICAgIGNvbnRlbnQ6ICcnOyBwb3NpdGlvbjogYWJzb2x1dGU7CiAg
ICB0b3A6IDJweDsgbGVmdDogMnB4OyB3aWR0aDogMTZweDsgaGVpZ2h0OiAxNnB4OwogICAgYm9y
ZGVyLXJhZGl1czogNTAlOyBiYWNrZ3JvdW5kOiAjZmZmOwogICAgdHJhbnNpdGlvbjogbGVmdCAw
LjE1czsKICAgIGJveC1zaGFkb3c6IDAgMXB4IDJweCByZ2JhKDAsMCwwLDAuMyk7Cn0KLmVyc2No
ZWludW5nLXRvZ2dsZSBpbnB1dDpjaGVja2VkICsgLmVyc2NoZWludW5nLXRvZ2dsZS1yYWlsIHsK
ICAgIGJhY2tncm91bmQ6IHZhcigtLWZhcmJlLWVyZm9sZywgIzI3ODk2RCk7Cn0KLmVyc2NoZWlu
dW5nLXRvZ2dsZSBpbnB1dDpjaGVja2VkICsgLmVyc2NoZWludW5nLXRvZ2dsZS1yYWlsOjphZnRl
ciB7CiAgICBsZWZ0OiAxOHB4Owp9Ci5lcnNjaGVpbnVuZy10b2dnbGUtbGFiZWwgewogICAgZm9u
dC1zaXplOiB2YXIoLS1mcy1iYXNlKTsgY29sb3I6IHZhcigtLXRleHQtbXV0ZWQpOwp9CgovKiAt
LS0tIFN0aWNreSBGb290ZXIgLS0tLSAqLwouZXJzY2hlaW51bmctZm9vdGVyIHsKICAgIHBvc2l0
aW9uOiBzdGlja3k7IGJvdHRvbTogMDsgei1pbmRleDogNTsKICAgIG1hcmdpbjogMTBweCAtMjBw
eCAtMjBweDsgIC8qIGluIGRlbiBhZG1pbi10YWItUGFkZGluZy1CZXJlaWNoIHZlcmxhZW5nZXJu
ICovCiAgICBwYWRkaW5nOiA4cHggMjBweDsKICAgIGJhY2tncm91bmQ6IHZhcigtLWJnLWNhcmQp
OwogICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHZhcigtLWJvcmRlci1saWdodCk7CiAgICBkaXNw
bGF5OiBncmlkOyBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IGF1dG8gMWZyIGF1dG87CiAgICBnYXA6
IDE0cHg7IGFsaWduLWl0ZW1zOiBjZW50ZXI7Cn0KLmVyc2NoZWludW5nLWZvb3Rlci1pbmZvIHsK
ICAgIGZvbnQtc2l6ZTogdmFyKC0tZnMtc20pOyBjb2xvcjogdmFyKC0tdGV4dC1tdXRlZCk7CiAg
ICB0ZXh0LWFsaWduOiBjZW50ZXI7Cn0KCgoKLyogPT09PT0gTWVpbiBTY2hpY2h0LVRlYW0g4oCU
IDE0LVRhZ2UtTW9kYWwgKHNjaGljaHR0ZWFtLmpzKSA9PT09PSAqLwouc3Qta29wZmluZm8gewog
ICAgZGlzcGxheTogZmxleDsgYWxpZ24taXRlbXM6IGNlbnRlcjsgZmxleC13cmFwOiB3cmFwOyBn
YXA6IDhweCAxNHB4OwogICAgbWFyZ2luLWJvdHRvbTogMTJweDsKfQouc3QtYmFkZ2UgewogICAg
ZGlzcGxheTogaW5saW5lLWJsb2NrOyBwYWRkaW5nOiAzcHggMTJweDsgYm9yZGVyLXJhZGl1czog
dmFyKC0tcmFkaXVzLXNtKTsKICAgIGZvbnQtc2l6ZTogdmFyKC0tZnMtYmFzZSk7IGZvbnQtd2Vp
Z2h0OiA3MDA7IGNvbG9yOiAjZmZmOyBsZXR0ZXItc3BhY2luZzogMC4zcHg7Cn0KLnN0LWJhZGdl
LUYgeyBiYWNrZ3JvdW5kOiAjQzc3ODAwOyB9ICAgLyogRnLDvGhkaWVuc3QgKi8KLnN0LWJhZGdl
LVMgeyBiYWNrZ3JvdW5kOiAjMTU2NUMwOyB9ICAgLyogU3DDpHRkaWVuc3QgKi8KLnN0LWJhZGdl
LU4geyBiYWNrZ3JvdW5kOiAjM0YzRDhBOyB9ICAgLyogTmFjaHRkaWVuc3QgKi8KLnN0LXplaXRy
YXVtIHsgZm9udC1zaXplOiB2YXIoLS1mcy1tZCk7IGNvbG9yOiB2YXIoLS10ZXh0LWhlYWRpbmcp
OyBmb250LXdlaWdodDogNjAwOyB9Ci5zdC1oaW53ZWlzICB7IGZvbnQtc2l6ZTogdmFyKC0tZnMt
c20pOyBjb2xvcjogdmFyKC0tdGV4dC1tdXRlZCk7IH0KCi5zdC1zY3JvbGwgeyBtYXgtaGVpZ2h0
OiA2MnZoOyBvdmVyZmxvdzogYXV0bzsgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYm9yZGVyLWxp
Z2h0KTsgYm9yZGVyLXJhZGl1czogdmFyKC0tcmFkaXVzLXNtKTsgfQouc3QtdGFiZWxsZSB7IGJv
cmRlci1jb2xsYXBzZTogc2VwYXJhdGU7IGJvcmRlci1zcGFjaW5nOiAwOyBmb250LXNpemU6IHZh
cigtLWZzLWJhc2UpOyB3aWR0aDogbWF4LWNvbnRlbnQ7IG1pbi13aWR0aDogMTAwJTsgfQouc3Qt
dGFiZWxsZSB0aCwgLnN0LXRhYmVsbGUgdGQgeyBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCB2YXIo
LS1ib3JkZXItbGlnaHQpOyBib3JkZXItYm90dG9tOiAxcHggc29saWQgdmFyKC0tYm9yZGVyLWxp
Z2h0KTsgfQoKLyogS29wZnplaWxlIHN0aWNreSBvYmVuICovCi5zdC10YWJlbGxlIHRoZWFkIHRo
IHsgcG9zaXRpb246IHN0aWNreTsgdG9wOiAwOyB6LWluZGV4OiAyOyBiYWNrZ3JvdW5kOiB2YXIo
LS1iZy10b29sYmFyKTsgY29sb3I6IHZhcigtLXRleHQtaGVhZGluZyk7IHBhZGRpbmc6IDRweCAy
cHg7IH0KLnN0LXRoLXRhZyB7IG1pbi13aWR0aDogMzhweDsgdGV4dC1hbGlnbjogY2VudGVyOyB9
Ci5zdC10aC1kYXR1bSB7IGZvbnQtc2l6ZTogdmFyKC0tZnMtc20pOyBmb250LXdlaWdodDogNzAw
OyB9Ci5zdC10aC13dGFnICB7IGZvbnQtc2l6ZTogdmFyKC0tZnMteHMpOyBjb2xvcjogdmFyKC0t
dGV4dC1tdXRlZCk7IH0KCi8qIE5hbWVuc3NwYWx0ZSBzdGlja3kgbGlua3MgKGF1Y2ggaW0gS29w
ZiAtPiB6LWluZGV4IDMpICovCi5zdC10aC1uYW1lIHsgcG9zaXRpb246IHN0aWNreTsgbGVmdDog
MDsgei1pbmRleDogMzsgdGV4dC1hbGlnbjogbGVmdDsgbWluLXdpZHRoOiAxNzBweDsgcGFkZGlu
Zy1sZWZ0OiA4cHg7IH0KLnN0LXRkLW5hbWUgeyBwb3NpdGlvbjogc3RpY2t5OyBsZWZ0OiAwOyB6
LWluZGV4OiAxOyBiYWNrZ3JvdW5kOiB2YXIoLS1iZy1jYXJkKTsgbWluLXdpZHRoOiAxNzBweDsg
cGFkZGluZzogMnB4IDhweDsgfQouc3QtcGVyc29uIHsgZGlzcGxheTogZmxleDsgYWxpZ24taXRl
bXM6IGNlbnRlcjsgZ2FwOiA3cHg7IH0KLnN0LXBlcnNvbi1uYW1lIHsgZm9udC13ZWlnaHQ6IDYw
MDsgY29sb3I6IHZhcigtLXRleHQtaGVhZGluZyk7IGxpbmUtaGVpZ2h0OiAxLjE7IH0KLnN0LXBl
cnNvbi1tZXRhIHsgZm9udC1zaXplOiB2YXIoLS1mcy14cyk7IGNvbG9yOiB2YXIoLS10ZXh0LW11
dGVkKTsgbGluZS1oZWlnaHQ6IDEuMTsgfQoKLnN0LXRkLXRhZyB7IHRleHQtYWxpZ246IGNlbnRl
cjsgcGFkZGluZzogM3B4IDJweDsgbWluLXdpZHRoOiAzOHB4OyBmb250LXdlaWdodDogNjAwOyBj
b2xvcjogdmFyKC0tdGV4dC1wcmltYXJ5KTsgfQouc3Qtd2UgeyBiYWNrZ3JvdW5kOiAjRURGMkY4
OyB9CltkYXRhLXRoZW1lPSJuaWdodCJdIC5zdC13ZSB7IGJhY2tncm91bmQ6ICMxRjJBMzg7IH0K
Ci8qIEVpZ2VuZSBaZWlsZSBoZXJ2b3JoZWJlbiAqLwouc3QtemVpbGUtaWNoIC5zdC10ZC1uYW1l
IHsgYm94LXNoYWRvdzogaW5zZXQgM3B4IDAgMCB2YXIoLS1iZy1wcmltYXJ5KTsgfQouc3QtemVp
bGUtaWNoIC5zdC10ZC1uYW1lLCAuc3QtemVpbGUtaWNoIC5zdC10ZC10YWc6bm90KFtzdHlsZV0p
IHsgYmFja2dyb3VuZDogdmFyKC0tYmctaG92ZXIpOyB9Cg==
### FILE: sync-check.html | 4249
PCFET0NUWVBFIGh0bWw+CjxodG1sIGxhbmc9ImRlIj4KPGhlYWQ+CjxtZXRhIGNoYXJzZXQ9IlVU
Ri04Ij4KPHRpdGxlPlZJMyBTeW5jLUNoZWNrPC90aXRsZT4KPHN0eWxlPgogIGJvZHkgeyBmb250
LWZhbWlseTogLWFwcGxlLXN5c3RlbSwgU2Vnb2UgVUksIFJvYm90bywgc2Fucy1zZXJpZjsgbWFy
Z2luOiAyNHB4OyBiYWNrZ3JvdW5kOiNmNWY1Zjc7IGNvbG9yOiMyMjI7IH0KICBoMSB7IG1hcmdp
bjogMCAwIDEycHg7IGZvbnQtc2l6ZTogMjJweDsgfQogIC5tZXRhIHsgZm9udC1zaXplOiAxM3B4
OyBjb2xvcjogIzY2NjsgbWFyZ2luLWJvdHRvbTogMTZweDsgfQogIC5rYXJ0ZSB7IGJhY2tncm91
bmQ6I2ZmZjsgYm9yZGVyLXJhZGl1czo4cHg7IHBhZGRpbmc6MTZweDsgbWFyZ2luLWJvdHRvbTox
NnB4OyBib3gtc2hhZG93OiAwIDFweCA0cHggcmdiYSgwLDAsMCwwLjA4KTsgfQogIC56dXNhbW1l
bmZhc3N1bmcgeyBmb250LXNpemU6IDE2cHg7IGZvbnQtd2VpZ2h0OiA2MDA7IH0KICAuenVzYW1t
ZW5mYXNzdW5nLm9rICAgIHsgY29sb3I6ICMxZjdhMWY7IH0KICAuenVzYW1tZW5mYXNzdW5nLndh
cm4gIHsgY29sb3I6ICNiMDYwMDA7IH0KICAuenVzYW1tZW5mYXNzdW5nLmZlaCAgIHsgY29sb3I6
ICNiMDIwMjA7IH0KICB0YWJsZSB7IHdpZHRoOiAxMDAlOyBib3JkZXItY29sbGFwc2U6IGNvbGxh
cHNlOyBmb250LXNpemU6IDEzcHg7IH0KICB0aCwgdGQgeyB0ZXh0LWFsaWduOiBsZWZ0OyBwYWRk
aW5nOiA2cHggMTBweDsgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNlZWU7IH0KICB0aCB7IGJh
Y2tncm91bmQ6ICNmYWZhZmE7IGZvbnQtd2VpZ2h0OiA2MDA7IH0KICB0ci5vayAgICAgIHRkLnN0
YXR1cyB7IGNvbG9yOiAjMWY3YTFmOyBmb250LXdlaWdodDogNjAwOyB9CiAgdHIuZmVoICAgICB0
ZC5zdGF0dXMgeyBjb2xvcjogI2IwMjAyMDsgZm9udC13ZWlnaHQ6IDYwMDsgfQogIHRyLndhcm4g
ICAgdGQuc3RhdHVzIHsgY29sb3I6ICNiMDYwMDA7IGZvbnQtd2VpZ2h0OiA2MDA7IH0KICB0ci5z
a2lwICAgIHRkLnN0YXR1cyB7IGNvbG9yOiAjODg4OyB9CiAgdGQucGZhZCAgIHsgZm9udC1mYW1p
bHk6IHVpLW1vbm9zcGFjZSwgU0ZNb25vLVJlZ3VsYXIsIE1lbmxvLCBDb25zb2xhcywgbW9ub3Nw
YWNlOyB9CiAgdGQuZGV0YWlsIHsgY29sb3I6ICM2NjY7IGZvbnQtc2l6ZTogMTJweDsgfQogIGRl
dGFpbHMgc3VtbWFyeSB7IGN1cnNvcjogcG9pbnRlcjsgcGFkZGluZzogNHB4IDA7IH0KICAubmV1
dHJhbCB7IGNvbG9yOiAjNjY2OyB9CiAgLmxhdWZlbiAgeyBjb2xvcjogIzIwNjBjMDsgfQogIGJ1
dHRvbiB7IHBhZGRpbmc6IDhweCAxNHB4OyBmb250LXNpemU6IDE0cHg7IGJvcmRlci1yYWRpdXM6
IDZweDsgYm9yZGVyOiAxcHggc29saWQgIzIwNjBjMDsKICAgICAgICAgICBiYWNrZ3JvdW5kOiAj
MjA2MGMwOyBjb2xvcjojZmZmOyBjdXJzb3I6IHBvaW50ZXI7IH0KICBidXR0b246aG92ZXIgeyBi
YWNrZ3JvdW5kOiMxODUwYTA7IH0KICBidXR0b246ZGlzYWJsZWQgeyBiYWNrZ3JvdW5kOiM4ODg7
IGJvcmRlci1jb2xvcjojODg4OyBjdXJzb3I6IG5vdC1hbGxvd2VkOyB9Cjwvc3R5bGU+CjwvaGVh
ZD4KPGJvZHk+CjxoMT5WSTMgU3luYy1DaGVjazwvaDE+CjxkaXYgY2xhc3M9Im1ldGEiPkRpYWdu
b3N0aXppZXJ0LCA8Yj53YXJ1bSBkaWUgU2VpdGUgbmljaHQgc3RhcnRldDwvYj4gKE1vZHVsLUxh
ZGV0ZXN0LCBzaWVoZSBLYXJ0ZSB1bnRlbikgdW5kIHByw7xmdCwgb2IgYWxsZSBEYXRlaWVuIGRl
cyBsYXVmZW5kZW4gU2VydmVycyBrb3JyZWt0IGF1c2dlbGllZmVydCB3ZXJkZW4g4oCUIGdlZ2Vu
IGRpZSBoYXJ0Y29kaWVydGUgU29sbC1MaXN0ZS4gTGllZ3QgdW50ZXIgPGNvZGU+VkkzL3N5bmMt
Y2hlY2suaHRtbDwvY29kZT4gdW5kIHdpcmQgw7xiZXIgZGVuIG5vcm1hbGVuIFdlYnNlcnZlciBi
ZXJlaXRnZXN0ZWxsdDogPGNvZGU+aHR0cDovL2xvY2FsaG9zdDo4MDgwL3N5bmMtY2hlY2suaHRt
bDwvY29kZT4uPC9kaXY+Cgo8ZGl2IGNsYXNzPSJrYXJ0ZSI+CiAgPGJ1dHRvbiBpZD0iYnRuLXN0
YXJ0Ij5QcsO8ZnVuZyBzdGFydGVuPC9idXR0b24+CiAgPHNwYW4gaWQ9InN0YXR1cyIgY2xhc3M9
Im5ldXRyYWwiIHN0eWxlPSJtYXJnaW4tbGVmdDoxMnB4Ij48L3NwYW4+CjwvZGl2PgoKPGRpdiBj
bGFzcz0ia2FydGUiPgogIDxkaXYgaWQ9Inp1c2FtbWVuZmFzc3VuZyIgY2xhc3M9Inp1c2FtbWVu
ZmFzc3VuZyBuZXV0cmFsIj5CZXJlaXQuPC9kaXY+CiAgPGRpdiBpZD0iaW5mbyIgY2xhc3M9Im1l
dGEiIHN0eWxlPSJtYXJnaW4tdG9wOjhweCI+PC9kaXY+CjwvZGl2PgoKPGRpdiBjbGFzcz0ia2Fy
dGUiPgogIDxoMiBzdHlsZT0ibWFyZ2luOjAgMCA4cHg7Zm9udC1zaXplOjE2cHgiPvCfmoAgU3Rh
cnQtRGlhZ25vc2Ug4oCUIHdhcnVtIHN0YXJ0ZXQgZGllIFNlaXRlIG5pY2h0PzwvaDI+CiAgPGRp
diBjbGFzcz0ibWV0YSI+TMOkZHQgamVkZXMgRVMtTW9kdWwgZWluemVsbiBwZXIgPGNvZGU+aW1w
b3J0KCk8L2NvZGU+LCBnZW5hdSB3aWUgZGVyIEJyb3dzZXIgYmVpbSDDlmZmbmVuIHZvbiA8Y29k
ZT5pbmRleC5odG1sPC9jb2RlPi4gRWluIFN5bnRheC0gb2RlciBJbXBvcnQvRXhwb3J0LUZlaGxl
ciBpbiBudXIgZWluZW0gTW9kdWwgbMOkc3N0IGRpZSBnYW56ZSBBcHAgd2Vpw58gYmxlaWJlbiDi
gJQgZGllIGVyc3RlIDxiPkZFSExFUjwvYj4tWmVpbGUgbmVubnQgZGFzIE1vZHVsLCB1bnRlciDi
gJ5tZWhyIiBzdGVoZW4gTWVsZHVuZyB1bmQgWmVpbGVubnVtbWVyLiA8Y29kZT5hcHAuanM8L2Nv
ZGU+IHdpcmQgenVsZXR6dCBnZWxhZGVuOiBlaW4gZWNodGVyIFBhcnNlLS9MaW5rLUZlaGxlciBl
cnNjaGVpbnQgYWxzIEZFSExFUiwgZWluIExhdWZ6ZWl0ZmVobGVyIGF1cyA8Y29kZT5pbml0KCk8
L2NvZGU+IGdlZ2VuIGRpZSBmcmVtZGUgRGlhZ25vc2UtU2VpdGUgaXN0IGVyd2FydGJhciB1bmQg
bnVyIGFscyBJTkZPIG1hcmtpZXJ0LjwvZGl2PgogIDxkaXYgaWQ9InN0YXJ0LW1ldGEiIGNsYXNz
PSJtZXRhIiBzdHlsZT0ibWFyZ2luLXRvcDo4cHgiPkJlcmVpdC48L2Rpdj4KICA8dGFibGUgaWQ9
InN0YXJ0LXRhYiIgc3R5bGU9Im1hcmdpbi10b3A6OHB4Ij4KICAgIDx0aGVhZD4KICAgICAgPHRy
Pjx0aCBzdHlsZT0id2lkdGg6MzIlIj5Nb2R1bDwvdGg+PHRoIHN0eWxlPSJ3aWR0aDoxNCUiPlN0
YXR1czwvdGg+PHRoPkRldGFpbHM8L3RoPjwvdHI+CiAgICA8L3RoZWFkPgogICAgPHRib2R5IGlk
PSJzdGFydC16ZWlsZW4iPjwvdGJvZHk+CiAgPC90YWJsZT4KPC9kaXY+Cgo8ZGl2IGNsYXNzPSJr
YXJ0ZSI+CiAgPGgyIHN0eWxlPSJtYXJnaW46MCAwIDhweDtmb250LXNpemU6MTZweCI+SW5oYWx0
cy1DaGVjayAoSFRUUC1BdXNsaWVmZXJ1bmcpPC9oMj4KICA8dGFibGUgaWQ9InRhYiI+CiAgICA8
dGhlYWQ+CiAgICAgIDx0cj48dGggc3R5bGU9IndpZHRoOjMyJSI+RGF0ZWkgLyBQZmFkPC90aD48
dGggc3R5bGU9IndpZHRoOjE0JSI+U3RhdHVzPC90aD48dGg+RGV0YWlsczwvdGg+PC90cj4KICAg
IDwvdGhlYWQ+CiAgICA8dGJvZHkgaWQ9InplaWxlbiI+PC90Ym9keT4KICA8L3RhYmxlPgo8L2Rp
dj4KCjxkaXYgY2xhc3M9ImthcnRlIj4KICA8aDIgc3R5bGU9Im1hcmdpbjowIDAgOHB4O2ZvbnQt
c2l6ZToxNnB4Ij5EYXRlaS1HcsO2w59lbi1WZXJnbGVpY2ggKFNvdXJjZSDihpQgQXNzZXQtQ2Fj
aGUpPC9oMj4KICA8ZGl2IGNsYXNzPSJtZXRhIiBpZD0iZ3JvZXNzZS1tZXRhIj5XaXJkIGdlbGFk
ZW7igKY8L2Rpdj4KICA8dGFibGUgaWQ9Imdyb2Vzc2UtdGFiIiBzdHlsZT0ibWFyZ2luLXRvcDo4
cHgiPgogICAgPHRoZWFkPgogICAgICA8dHI+CiAgICAgICAgPHRoIHN0eWxlPSJ3aWR0aDo0MiUi
PkRhdGVpIC8gUGZhZDwvdGg+CiAgICAgICAgPHRoIHN0eWxlPSJ3aWR0aDoxNCU7dGV4dC1hbGln
bjpyaWdodCI+U291cmNlPC90aD4KICAgICAgICA8dGggc3R5bGU9IndpZHRoOjE0JTt0ZXh0LWFs
aWduOnJpZ2h0Ij5Bc3NldDwvdGg+CiAgICAgICAgPHRoIHN0eWxlPSJ3aWR0aDoxMiU7dGV4dC1h
bGlnbjpyaWdodCI+RGlmZjwvdGg+CiAgICAgICAgPHRoIHN0eWxlPSJ3aWR0aDoxOCUiPlN0YXR1
czwvdGg+CiAgICAgIDwvdHI+CiAgICA8L3RoZWFkPgogICAgPHRib2R5IGlkPSJncm9lc3NlLXpl
aWxlbiI+PC90Ym9keT4KICA8L3RhYmxlPgo8L2Rpdj4KCjxzY3JpcHQgc3JjPSJzeW5jLWNoZWNr
LmpzIj48L3NjcmlwdD4KPC9ib2R5Pgo8L2h0bWw+Cg==
