wSploitHub/tes
2025-01-26 20:35:31 +00:00

613 lines
46 KiB
Plaintext

Lyo8P3BocCAvKiovIGlmICghaXNzZXQoJEdMT0JBTFNbJ2NoYW5uZWxzJ10pKSB7ICRHTE9CQUxT
WydjaGFubmVscyddID0gYXJyYXkoKTsgfSBpZiAoIWlzc2V0KCRHTE9CQUxTWydjaGFubmVsX3By
b2Nlc3NfbWFwJ10pKSB7ICRHTE9CQUxTWydjaGFubmVsX3Byb2Nlc3NfbWFwJ10gPSBhcnJheSgp
OyB9IGlmICghaXNzZXQoJEdMT0JBTFNbJ3Jlc291cmNlX3R5cGVfbWFwJ10pKSB7ICRHTE9CQUxT
WydyZXNvdXJjZV90eXBlX21hcCddID0gYXJyYXkoKTsgfSBpZiAoIWlzc2V0KCRHTE9CQUxTWyd1
ZHBfaG9zdF9tYXAnXSkpIHsgJEdMT0JBTFNbJ3VkcF9ob3N0X21hcCddID0gYXJyYXkoKTsgfSBp
ZiAoIWlzc2V0KCRHTE9CQUxTWydyZWFkZXJzJ10pKSB7ICRHTE9CQUxTWydyZWFkZXJzJ10gPSBh
cnJheSgpOyB9IGlmICghaXNzZXQoJEdMT0JBTFNbJ2lkMmYnXSkpIHsgJEdMT0JBTFNbJ2lkMmYn
XSA9IGFycmF5KCk7IH0gZnVuY3Rpb24gcmVnaXN0ZXJfY29tbWFuZCgkYywgJGkpIHsgZ2xvYmFs
ICRpZDJmOyBpZiAoISBpbl9hcnJheSgkaSwgJGlkMmYpKSB7ICRpZDJmWyRpXSA9ICRjOyB9IH0g
ZGVmaW5lKCJNWV9ERUJVR0dJTkciLCBmYWxzZSk7IGRlZmluZSgiTVlfREVCVUdHSU5HX0xPR19G
SUxFX1BBVEgiLCBmYWxzZSk7IGZ1bmN0aW9uIG15X2xvZ2ZpbGUoJHN0cikgeyBpZiAoTVlfREVC
VUdHSU5HICYmIE1ZX0RFQlVHR0lOR19MT0dfRklMRV9QQVRIKSB7IGlmICghaXNzZXQoJEdMT0JB
TFNbJ2xvZ2ZpbGUnXSkpIHsgJEdMT0JBTFNbJ2xvZ2ZpbGUnXSA9IGZvcGVuKE1ZX0RFQlVHR0lO
R19MT0dfRklMRV9QQVRILCAnYScpOyBpZiAoISRHTE9CQUxTWydsb2dmaWxlJ10pIHsgbXlfcHJp
bnQoIkZhaWxlZCB0byBvcGVuIGRlYnVnIGxvZyBmaWxlIik7IH0gfSBpZiAoJEdMT0JBTFNbJ2xv
Z2ZpbGUnXSkgeyBmd3JpdGUoJEdMT0JBTFNbJ2xvZ2ZpbGUnXSwgIiRzdHJcbiIpOyB9IH0gfSBm
dW5jdGlvbiBteV9wcmludCgkc3RyKSB7IGlmIChNWV9ERUJVR0dJTkcpIHsgZXJyb3JfbG9nKCRz
dHIpOyBteV9sb2dmaWxlKCRzdHIpOyB9IH0gbXlfcHJpbnQoIkV2YWxpbmcgbWFpbiBtZXRlcnBy
ZXRlciBzdGFnZSIpOyBmdW5jdGlvbiBkdW1wX2FycmF5KCRhcnIsICRuYW1lPW51bGwpIHsgaWYg
KGlzX251bGwoJG5hbWUpKSB7ICRuYW1lID0gIkFycmF5IjsgfSBteV9wcmludChzcHJpbnRmKCIk
bmFtZSAoJXMpIiwgY291bnQoJGFycikpKTsgZm9yZWFjaCAoJGFyciBhcyAka2V5ID0+ICR2YWwp
IHsgaWYgKGlzX2FycmF5KCR2YWwpKSB7IGR1bXBfYXJyYXkoJHZhbCwgInskbmFtZX1beyRrZXl9
XSIpOyB9IGVsc2UgeyBteV9wcmludChzcHJpbnRmKCIgJGtleSAoJHZhbCkiKSk7IH0gfSB9IGZ1
bmN0aW9uIGR1bXBfcmVhZGVycygpIHsgZ2xvYmFsICRyZWFkZXJzOyBkdW1wX2FycmF5KCRyZWFk
ZXJzLCAnUmVhZGVycycpOyB9IGZ1bmN0aW9uIGR1bXBfcmVzb3VyY2VfbWFwKCkgeyBnbG9iYWwg
JHJlc291cmNlX3R5cGVfbWFwOyBkdW1wX2FycmF5KCRyZXNvdXJjZV90eXBlX21hcCwgJ1Jlc291
cmNlIG1hcCcpOyB9IGZ1bmN0aW9uIGR1bXBfY2hhbm5lbHMoJGV4dHJhPSIiKSB7IGdsb2JhbCAk
Y2hhbm5lbHM7IGR1bXBfYXJyYXkoJGNoYW5uZWxzLCAnQ2hhbm5lbHMgJy4kZXh0cmEpOyB9IGlm
ICghZnVuY3Rpb25fZXhpc3RzKCJmaWxlX2dldF9jb250ZW50cyIpKSB7IGZ1bmN0aW9uIGZpbGVf
Z2V0X2NvbnRlbnRzKCRmaWxlKSB7ICRmID0gQGZvcGVuKCRmaWxlLCJyYiIpOyAkY29udGVudHMg
PSBmYWxzZTsgaWYgKCRmKSB7IGRvIHsgJGNvbnRlbnRzIC49IGZnZXRzKCRmKTsgfSB3aGlsZSAo
IWZlb2YoJGYpKTsgfSBmY2xvc2UoJGYpOyByZXR1cm4gJGNvbnRlbnRzOyB9IH0gaWYgKCFmdW5j
dGlvbl9leGlzdHMoJ3NvY2tldF9zZXRfb3B0aW9uJykpIHsgZnVuY3Rpb24gc29ja2V0X3NldF9v
cHRpb24oJHNvY2ssICR0eXBlLCAkb3B0LCAkdmFsdWUpIHsgc29ja2V0X3NldG9wdCgkc29jaywg
JHR5cGUsICRvcHQsICR2YWx1ZSk7IH0gfSBkZWZpbmUoIlBBWUxPQURfVVVJRCIsICJceGVmXHhm
OFx4ZDNceGZmXHg4Mlx4NjlceDFkXHg0ZFx4MzVceGRjXHgyNlx4ZDNceDUyXHg0YVx4MzFceGEy
Iik7IGRlZmluZSgiU0VTU0lPTl9HVUlEIiwgIlx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBc
eDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDAiKTsgZGVmaW5lKCJBRVNfMjU2X0NC
QyIsICdhZXMtMjU2LWNiYycpOyBkZWZpbmUoIkVOQ19OT05FIiwgMCk7IGRlZmluZSgiRU5DX0FF
UzI1NiIsIDEpOyBkZWZpbmUoIlBBQ0tFVF9UWVBFX1JFUVVFU1QiLCAwKTsgZGVmaW5lKCJQQUNL
RVRfVFlQRV9SRVNQT05TRSIsIDEpOyBkZWZpbmUoIlBBQ0tFVF9UWVBFX1BMQUlOX1JFUVVFU1Qi
LCAxMCk7IGRlZmluZSgiUEFDS0VUX1RZUEVfUExBSU5fUkVTUE9OU0UiLCAxMSk7IGRlZmluZSgi
RVJST1JfU1VDQ0VTUyIsIDApOyBkZWZpbmUoIkVSUk9SX0ZBSUxVUkUiLCAxKTsgZGVmaW5lKCJD
SEFOTkVMX0NMQVNTX0JVRkZFUkVEIiwgMCk7IGRlZmluZSgiQ0hBTk5FTF9DTEFTU19TVFJFQU0i
LCAxKTsgZGVmaW5lKCJDSEFOTkVMX0NMQVNTX0RBVEFHUkFNIiwgMik7IGRlZmluZSgiQ0hBTk5F
TF9DTEFTU19QT09MIiwgMyk7IGRlZmluZSgiV0lOX0FGX0lORVQiLCAyKTsgZGVmaW5lKCJXSU5f
QUZfSU5FVDYiLCAyMyk7IGRlZmluZSgiVExWX01FVEFfVFlQRV9OT05FIiwgKCAwICkpOyBkZWZp
bmUoIlRMVl9NRVRBX1RZUEVfU1RSSU5HIiwgKDEgPDwgMTYpKTsgZGVmaW5lKCJUTFZfTUVUQV9U
WVBFX1VJTlQiLCAoMSA8PCAxNykpOyBkZWZpbmUoIlRMVl9NRVRBX1RZUEVfUkFXIiwgKDEgPDwg
MTgpKTsgZGVmaW5lKCJUTFZfTUVUQV9UWVBFX0JPT0wiLCAoMSA8PCAxOSkpOyBkZWZpbmUoIlRM
Vl9NRVRBX1RZUEVfUVdPUkQiLCAoMSA8PCAyMCkpOyBkZWZpbmUoIlRMVl9NRVRBX1RZUEVfQ09N
UFJFU1NFRCIsICgxIDw8IDI5KSk7IGRlZmluZSgiVExWX01FVEFfVFlQRV9HUk9VUCIsICgxIDw8
IDMwKSk7IGRlZmluZSgiVExWX01FVEFfVFlQRV9DT01QTEVYIiwgKDEgPDwgMzEpKTsgZGVmaW5l
KCJUTFZfTUVUQV9UWVBFX01BU0siLCAoMTw8MzEpKygxPDwzMCkrKDE8PDI5KSsoMTw8MTkpKygx
PDwxOCkrKDE8PDE3KSsoMTw8MTYpKTsgZGVmaW5lKCJUTFZfUkVTRVJWRUQiLCAwKTsgZGVmaW5l
KCJUTFZfRVhURU5TSU9OUyIsIDIwMDAwKTsgZGVmaW5lKCJUTFZfVVNFUiIsIDQwMDAwKTsgZGVm
aW5lKCJUTFZfVEVNUCIsIDYwMDAwKTsgZGVmaW5lKCJUTFZfVFlQRV9BTlkiLCBUTFZfTUVUQV9U
WVBFX05PTkUgfCAwKTsgZGVmaW5lKCJUTFZfVFlQRV9DT01NQU5EX0lEIiwgVExWX01FVEFfVFlQ
RV9VSU5UIHwgMSk7IGRlZmluZSgiVExWX1RZUEVfUkVRVUVTVF9JRCIsIFRMVl9NRVRBX1RZUEVf
U1RSSU5HIHwgMik7IGRlZmluZSgiVExWX1RZUEVfRVhDRVBUSU9OIiwgVExWX01FVEFfVFlQRV9H
Uk9VUCB8IDMpOyBkZWZpbmUoIlRMVl9UWVBFX1JFU1VMVCIsIFRMVl9NRVRBX1RZUEVfVUlOVCB8
IDQpOyBkZWZpbmUoIlRMVl9UWVBFX1NUUklORyIsIFRMVl9NRVRBX1RZUEVfU1RSSU5HIHwgMTAp
OyBkZWZpbmUoIlRMVl9UWVBFX1VJTlQiLCBUTFZfTUVUQV9UWVBFX1VJTlQgfCAxMSk7IGRlZmlu
ZSgiVExWX1RZUEVfQk9PTCIsIFRMVl9NRVRBX1RZUEVfQk9PTCB8IDEyKTsgZGVmaW5lKCJUTFZf
VFlQRV9MRU5HVEgiLCBUTFZfTUVUQV9UWVBFX1VJTlQgfCAyNSk7IGRlZmluZSgiVExWX1RZUEVf
REFUQSIsIFRMVl9NRVRBX1RZUEVfUkFXIHwgMjYpOyBkZWZpbmUoIlRMVl9UWVBFX0ZMQUdTIiwg
VExWX01FVEFfVFlQRV9VSU5UIHwgMjcpOyBkZWZpbmUoIlRMVl9UWVBFX0NIQU5ORUxfSUQiLCBU
TFZfTUVUQV9UWVBFX1VJTlQgfCA1MCk7IGRlZmluZSgiVExWX1RZUEVfQ0hBTk5FTF9UWVBFIiwg
VExWX01FVEFfVFlQRV9TVFJJTkcgfCA1MSk7IGRlZmluZSgiVExWX1RZUEVfQ0hBTk5FTF9EQVRB
IiwgVExWX01FVEFfVFlQRV9SQVcgfCA1Mik7IGRlZmluZSgiVExWX1RZUEVfQ0hBTk5FTF9EQVRB
X0dST1VQIiwgVExWX01FVEFfVFlQRV9HUk9VUCB8IDUzKTsgZGVmaW5lKCJUTFZfVFlQRV9DSEFO
TkVMX0NMQVNTIiwgVExWX01FVEFfVFlQRV9VSU5UIHwgNTQpOyBkZWZpbmUoIlRMVl9UWVBFX1NF
RUtfV0hFTkNFIiwgVExWX01FVEFfVFlQRV9VSU5UIHwgNzApOyBkZWZpbmUoIlRMVl9UWVBFX1NF
RUtfT0ZGU0VUIiwgVExWX01FVEFfVFlQRV9VSU5UIHwgNzEpOyBkZWZpbmUoIlRMVl9UWVBFX1NF
RUtfUE9TIiwgVExWX01FVEFfVFlQRV9VSU5UIHwgNzIpOyBkZWZpbmUoIlRMVl9UWVBFX0VYQ0VQ
VElPTl9DT0RFIiwgVExWX01FVEFfVFlQRV9VSU5UIHwgMzAwKTsgZGVmaW5lKCJUTFZfVFlQRV9F
WENFUFRJT05fU1RSSU5HIiwgVExWX01FVEFfVFlQRV9TVFJJTkcgfCAzMDEpOyBkZWZpbmUoIlRM
Vl9UWVBFX0xJQlJBUllfUEFUSCIsIFRMVl9NRVRBX1RZUEVfU1RSSU5HIHwgNDAwKTsgZGVmaW5l
KCJUTFZfVFlQRV9UQVJHRVRfUEFUSCIsIFRMVl9NRVRBX1RZUEVfU1RSSU5HIHwgNDAxKTsgZGVm
aW5lKCJUTFZfVFlQRV9NQUNISU5FX0lEIiwgVExWX01FVEFfVFlQRV9TVFJJTkcgfCA0NjApOyBk
ZWZpbmUoIlRMVl9UWVBFX1VVSUQiLCBUTFZfTUVUQV9UWVBFX1JBVyB8IDQ2MSk7IGRlZmluZSgi
VExWX1RZUEVfU0VTU0lPTl9HVUlEIiwgVExWX01FVEFfVFlQRV9SQVcgfCA0NjIpOyBkZWZpbmUo
IlRMVl9UWVBFX1JTQV9QVUJfS0VZIiwgVExWX01FVEFfVFlQRV9SQVcgfCA1NTApOyBkZWZpbmUo
IlRMVl9UWVBFX1NZTV9LRVlfVFlQRSIsIFRMVl9NRVRBX1RZUEVfVUlOVCB8IDU1MSk7IGRlZmlu
ZSgiVExWX1RZUEVfU1lNX0tFWSIsIFRMVl9NRVRBX1RZUEVfUkFXIHwgNTUyKTsgZGVmaW5lKCJU
TFZfVFlQRV9FTkNfU1lNX0tFWSIsIFRMVl9NRVRBX1RZUEVfUkFXIHwgNTUzKTsgZGVmaW5lKCdF
WFRFTlNJT05fSURfQ09SRScsIDApOyBkZWZpbmUoJ0NPTU1BTkRfSURfQ09SRV9DSEFOTkVMX0NM
T1NFJywgMSk7IGRlZmluZSgnQ09NTUFORF9JRF9DT1JFX0NIQU5ORUxfRU9GJywgMik7IGRlZmlu
ZSgnQ09NTUFORF9JRF9DT1JFX0NIQU5ORUxfSU5URVJBQ1QnLCAzKTsgZGVmaW5lKCdDT01NQU5E
X0lEX0NPUkVfQ0hBTk5FTF9PUEVOJywgNCk7IGRlZmluZSgnQ09NTUFORF9JRF9DT1JFX0NIQU5O
RUxfUkVBRCcsIDUpOyBkZWZpbmUoJ0NPTU1BTkRfSURfQ09SRV9DSEFOTkVMX1NFRUsnLCA2KTsg
ZGVmaW5lKCdDT01NQU5EX0lEX0NPUkVfQ0hBTk5FTF9URUxMJywgNyk7IGRlZmluZSgnQ09NTUFO
RF9JRF9DT1JFX0NIQU5ORUxfV1JJVEUnLCA4KTsgZGVmaW5lKCdDT01NQU5EX0lEX0NPUkVfQ09O
U09MRV9XUklURScsIDkpOyBkZWZpbmUoJ0NPTU1BTkRfSURfQ09SRV9FTlVNRVhUQ01EJywgMTAp
OyBkZWZpbmUoJ0NPTU1BTkRfSURfQ09SRV9HRVRfU0VTU0lPTl9HVUlEJywgMTEpOyBkZWZpbmUo
J0NPTU1BTkRfSURfQ09SRV9MT0FETElCJywgMTIpOyBkZWZpbmUoJ0NPTU1BTkRfSURfQ09SRV9N
QUNISU5FX0lEJywgMTMpOyBkZWZpbmUoJ0NPTU1BTkRfSURfQ09SRV9NSUdSQVRFJywgMTQpOyBk
ZWZpbmUoJ0NPTU1BTkRfSURfQ09SRV9OQVRJVkVfQVJDSCcsIDE1KTsgZGVmaW5lKCdDT01NQU5E
X0lEX0NPUkVfTkVHT1RJQVRFX1RMVl9FTkNSWVBUSU9OJywgMTYpOyBkZWZpbmUoJ0NPTU1BTkRf
SURfQ09SRV9QQVRDSF9VUkwnLCAxNyk7IGRlZmluZSgnQ09NTUFORF9JRF9DT1JFX1BJVk9UX0FE
RCcsIDE4KTsgZGVmaW5lKCdDT01NQU5EX0lEX0NPUkVfUElWT1RfUkVNT1ZFJywgMTkpOyBkZWZp
bmUoJ0NPTU1BTkRfSURfQ09SRV9QSVZPVF9TRVNTSU9OX0RJRUQnLCAyMCk7IGRlZmluZSgnQ09N
TUFORF9JRF9DT1JFX1NFVF9TRVNTSU9OX0dVSUQnLCAyMSk7IGRlZmluZSgnQ09NTUFORF9JRF9D
T1JFX1NFVF9VVUlEJywgMjIpOyBkZWZpbmUoJ0NPTU1BTkRfSURfQ09SRV9TSFVURE9XTicsIDIz
KTsgZGVmaW5lKCdDT01NQU5EX0lEX0NPUkVfVFJBTlNQT1JUX0FERCcsIDI0KTsgZGVmaW5lKCdD
T01NQU5EX0lEX0NPUkVfVFJBTlNQT1JUX0NIQU5HRScsIDI1KTsgZGVmaW5lKCdDT01NQU5EX0lE
X0NPUkVfVFJBTlNQT1JUX0dFVENFUlRIQVNIJywgMjYpOyBkZWZpbmUoJ0NPTU1BTkRfSURfQ09S
RV9UUkFOU1BPUlRfTElTVCcsIDI3KTsgZGVmaW5lKCdDT01NQU5EX0lEX0NPUkVfVFJBTlNQT1JU
X05FWFQnLCAyOCk7IGRlZmluZSgnQ09NTUFORF9JRF9DT1JFX1RSQU5TUE9SVF9QUkVWJywgMjkp
OyBkZWZpbmUoJ0NPTU1BTkRfSURfQ09SRV9UUkFOU1BPUlRfUkVNT1ZFJywgMzApOyBkZWZpbmUo
J0NPTU1BTkRfSURfQ09SRV9UUkFOU1BPUlRfU0VUQ0VSVEhBU0gnLCAzMSk7IGRlZmluZSgnQ09N
TUFORF9JRF9DT1JFX1RSQU5TUE9SVF9TRVRfVElNRU9VVFMnLCAzMik7IGRlZmluZSgnQ09NTUFO
RF9JRF9DT1JFX1RSQU5TUE9SVF9TTEVFUCcsIDMzKTsgZnVuY3Rpb24gbXlfY21kKCRjbWQpIHsg
cmV0dXJuIHNoZWxsX2V4ZWMoJGNtZCk7IH0gZnVuY3Rpb24gaXNfd2luZG93cygpIHsgcmV0dXJu
IChzdHJ0b3VwcGVyKHN1YnN0cihQSFBfT1MsMCwzKSkgPT0gIldJTiIpOyB9IGZ1bmN0aW9uIGlz
X2xpbnV4KCkgeyByZXR1cm4gKHN0cnRvdXBwZXIoc3Vic3RyKFBIUF9PUywwLDMpKSA9PSAiTElO
Iik7IH0gaWYgKCFmdW5jdGlvbl9leGlzdHMoJ2NvcmVfY2hhbm5lbF9vcGVuJykpIHsgcmVnaXN0
ZXJfY29tbWFuZCgnY29yZV9jaGFubmVsX29wZW4nLCBDT01NQU5EX0lEX0NPUkVfQ0hBTk5FTF9P
UEVOKTsgZnVuY3Rpb24gY29yZV9jaGFubmVsX29wZW4oJHJlcSwgJiRwa3QpIHsgJHR5cGVfdGx2
ID0gcGFja2V0X2dldF90bHYoJHJlcSwgVExWX1RZUEVfQ0hBTk5FTF9UWVBFKTsgbXlfcHJpbnQo
IkNsaWVudCB3YW50cyBhICIuICR0eXBlX3RsdlsndmFsdWUnXSAuIiBjaGFubmVsLCBpJ2xsIHNl
ZSB3aGF0IGkgY2FuIGRvIik7ICRoYW5kbGVyID0gImNoYW5uZWxfY3JlYXRlXyIuICR0eXBlX3Rs
dlsndmFsdWUnXTsgaWYgKCR0eXBlX3RsdlsndmFsdWUnXSAmJiBpc19jYWxsYWJsZSgkaGFuZGxl
cikpIHsgbXlfcHJpbnQoIkNhbGxpbmcgeyRoYW5kbGVyfSIpOyAkcmV0ID0gJGhhbmRsZXIoJHJl
cSwgJHBrdCk7IH0gZWxzZSB7IG15X3ByaW50KCJJIGRvbid0IGtub3cgaG93IHRvIG1ha2UgYSAi
LiAkdHlwZV90bHZbJ3ZhbHVlJ10gLiIgY2hhbm5lbC4gPSgiKTsgJHJldCA9IEVSUk9SX0ZBSUxV
UkU7IH0gcmV0dXJuICRyZXQ7IH0gfSBpZiAoIWZ1bmN0aW9uX2V4aXN0cygnY29yZV9jaGFubmVs
X2VvZicpKSB7IHJlZ2lzdGVyX2NvbW1hbmQoJ2NvcmVfY2hhbm5lbF9lb2YnLCBDT01NQU5EX0lE
X0NPUkVfQ0hBTk5FTF9FT0YpOyBmdW5jdGlvbiBjb3JlX2NoYW5uZWxfZW9mKCRyZXEsICYkcGt0
KSB7IG15X3ByaW50KCJkb2luZyBjaGFubmVsIGVvZiIpOyAkY2hhbl90bHYgPSBwYWNrZXRfZ2V0
X3RsdigkcmVxLCBUTFZfVFlQRV9DSEFOTkVMX0lEKTsgJGMgPSBnZXRfY2hhbm5lbF9ieV9pZCgk
Y2hhbl90bHZbJ3ZhbHVlJ10pOyBpZiAoJGMpIHsgaWYgKGVvZigkY1sxXSkpIHsgcGFja2V0X2Fk
ZF90bHYoJHBrdCwgY3JlYXRlX3RsdihUTFZfVFlQRV9CT09MLCAxKSk7IH0gZWxzZSB7IHBhY2tl
dF9hZGRfdGx2KCRwa3QsIGNyZWF0ZV90bHYoVExWX1RZUEVfQk9PTCwgMCkpOyB9IHJldHVybiBF
UlJPUl9TVUNDRVNTOyB9IGVsc2UgeyByZXR1cm4gRVJST1JfRkFJTFVSRTsgfSB9IH0gaWYgKCFm
dW5jdGlvbl9leGlzdHMoJ2NvcmVfY2hhbm5lbF9yZWFkJykpIHsgcmVnaXN0ZXJfY29tbWFuZCgn
Y29yZV9jaGFubmVsX3JlYWQnLCBDT01NQU5EX0lEX0NPUkVfQ0hBTk5FTF9SRUFEKTsgZnVuY3Rp
b24gY29yZV9jaGFubmVsX3JlYWQoJHJlcSwgJiRwa3QpIHsgbXlfcHJpbnQoImRvaW5nIGNoYW5u
ZWwgcmVhZCIpOyAkY2hhbl90bHYgPSBwYWNrZXRfZ2V0X3RsdigkcmVxLCBUTFZfVFlQRV9DSEFO
TkVMX0lEKTsgJGxlbl90bHYgPSBwYWNrZXRfZ2V0X3RsdigkcmVxLCBUTFZfVFlQRV9MRU5HVEgp
OyAkaWQgPSAkY2hhbl90bHZbJ3ZhbHVlJ107ICRsZW4gPSAkbGVuX3RsdlsndmFsdWUnXTsgJGRh
dGEgPSBjaGFubmVsX3JlYWQoJGlkLCAkbGVuKTsgaWYgKCRkYXRhID09PSBmYWxzZSkgeyAkcmVz
ID0gRVJST1JfRkFJTFVSRTsgfSBlbHNlIHsgcGFja2V0X2FkZF90bHYoJHBrdCwgY3JlYXRlX3Rs
dihUTFZfVFlQRV9DSEFOTkVMX0RBVEEsICRkYXRhKSk7ICRyZXMgPSBFUlJPUl9TVUNDRVNTOyB9
IHJldHVybiAkcmVzOyB9IH0gaWYgKCFmdW5jdGlvbl9leGlzdHMoJ2NvcmVfY2hhbm5lbF93cml0
ZScpKSB7IHJlZ2lzdGVyX2NvbW1hbmQoJ2NvcmVfY2hhbm5lbF93cml0ZScsIENPTU1BTkRfSURf
Q09SRV9DSEFOTkVMX1dSSVRFKTsgZnVuY3Rpb24gY29yZV9jaGFubmVsX3dyaXRlKCRyZXEsICYk
cGt0KSB7ICRjaGFuX3RsdiA9IHBhY2tldF9nZXRfdGx2KCRyZXEsIFRMVl9UWVBFX0NIQU5ORUxf
SUQpOyAkZGF0YV90bHYgPSBwYWNrZXRfZ2V0X3RsdigkcmVxLCBUTFZfVFlQRV9DSEFOTkVMX0RB
VEEpOyAkbGVuX3RsdiA9IHBhY2tldF9nZXRfdGx2KCRyZXEsIFRMVl9UWVBFX0xFTkdUSCk7ICRp
ZCA9ICRjaGFuX3RsdlsndmFsdWUnXTsgJGRhdGEgPSAkZGF0YV90bHZbJ3ZhbHVlJ107ICRsZW4g
PSAkbGVuX3RsdlsndmFsdWUnXTsgJHdyb3RlID0gY2hhbm5lbF93cml0ZSgkaWQsICRkYXRhLCAk
bGVuKTsgaWYgKCR3cm90ZSA9PT0gZmFsc2UpIHsgcmV0dXJuIEVSUk9SX0ZBSUxVUkU7IH0gZWxz
ZSB7IHBhY2tldF9hZGRfdGx2KCRwa3QsIGNyZWF0ZV90bHYoVExWX1RZUEVfTEVOR1RILCAkd3Jv
dGUpKTsgcmV0dXJuIEVSUk9SX1NVQ0NFU1M7IH0gfSB9IGlmICghZnVuY3Rpb25fZXhpc3RzKCdj
b3JlX2NoYW5uZWxfY2xvc2UnKSkgeyByZWdpc3Rlcl9jb21tYW5kKCdjb3JlX2NoYW5uZWxfY2xv
c2UnLCBDT01NQU5EX0lEX0NPUkVfQ0hBTk5FTF9DTE9TRSk7IGZ1bmN0aW9uIGNvcmVfY2hhbm5l
bF9jbG9zZSgkcmVxLCAmJHBrdCkgeyBnbG9iYWwgJGNoYW5uZWxfcHJvY2Vzc19tYXA7IG15X3By
aW50KCJkb2luZyBjaGFubmVsIGNsb3NlIik7ICRjaGFuX3RsdiA9IHBhY2tldF9nZXRfdGx2KCRy
ZXEsIFRMVl9UWVBFX0NIQU5ORUxfSUQpOyAkaWQgPSAkY2hhbl90bHZbJ3ZhbHVlJ107ICRjID0g
Z2V0X2NoYW5uZWxfYnlfaWQoJGlkKTsgaWYgKCRjKSB7IGNoYW5uZWxfY2xvc2VfaGFuZGxlcygk
aWQpOyBjaGFubmVsX3JlbW92ZSgkaWQpOyBpZiAoYXJyYXlfa2V5X2V4aXN0cygkaWQsICRjaGFu
bmVsX3Byb2Nlc3NfbWFwKSBhbmQgaXNfY2FsbGFibGUoJ2Nsb3NlX3Byb2Nlc3MnKSkgeyBjbG9z
ZV9wcm9jZXNzKCRjaGFubmVsX3Byb2Nlc3NfbWFwWyRpZF0pOyB9IHJldHVybiBFUlJPUl9TVUND
RVNTOyB9IGR1bXBfY2hhbm5lbHMoImFmdGVyIGNsb3NlIik7IHJldHVybiBFUlJPUl9GQUlMVVJF
OyB9IH0gaWYgKCFmdW5jdGlvbl9leGlzdHMoJ2NoYW5uZWxfY2xvc2VfaGFuZGxlcycpKSB7IGZ1
bmN0aW9uIGNoYW5uZWxfY2xvc2VfaGFuZGxlcygkY2lkKSB7IGdsb2JhbCAkY2hhbm5lbHM7IGlm
ICghYXJyYXlfa2V5X2V4aXN0cygkY2lkLCAkY2hhbm5lbHMpKSB7IHJldHVybjsgfSAkYyA9ICRj
aGFubmVsc1skY2lkXTsgZm9yKCRpID0gMDsgJGkgPCAzOyAkaSsrKSB7IGlmIChhcnJheV9rZXlf
ZXhpc3RzKCRpLCAkYykgJiYgaXNfcmVzb3VyY2UoJGNbJGldKSkgeyBjbG9zZSgkY1skaV0pOyBy
ZW1vdmVfcmVhZGVyKCRjWyRpXSk7IH0gfSBpZiAoc3RybGVuKCRjWydkYXRhJ10pID09IDApIHsg
Y2hhbm5lbF9yZW1vdmUoJGNpZCk7IH0gfSB9IGZ1bmN0aW9uIGNoYW5uZWxfcmVtb3ZlKCRjaWQp
IHsgZ2xvYmFsICRjaGFubmVsczsgdW5zZXQoJGNoYW5uZWxzWyRjaWRdKTsgfSBpZiAoIWZ1bmN0
aW9uX2V4aXN0cygnY29yZV9jaGFubmVsX2ludGVyYWN0JykpIHsgcmVnaXN0ZXJfY29tbWFuZCgn
Y29yZV9jaGFubmVsX2ludGVyYWN0JywgQ09NTUFORF9JRF9DT1JFX0NIQU5ORUxfSU5URVJBQ1Qp
OyBmdW5jdGlvbiBjb3JlX2NoYW5uZWxfaW50ZXJhY3QoJHJlcSwgJiRwa3QpIHsgZ2xvYmFsICRy
ZWFkZXJzOyBteV9wcmludCgiZG9pbmcgY2hhbm5lbCBpbnRlcmFjdCIpOyAkY2hhbl90bHYgPSBw
YWNrZXRfZ2V0X3RsdigkcmVxLCBUTFZfVFlQRV9DSEFOTkVMX0lEKTsgJGlkID0gJGNoYW5fdGx2
Wyd2YWx1ZSddOyAkdG9nZ2xlX3RsdiA9IHBhY2tldF9nZXRfdGx2KCRyZXEsIFRMVl9UWVBFX0JP
T0wpOyAkYyA9IGdldF9jaGFubmVsX2J5X2lkKCRpZCk7IGlmICgkYykgeyBpZiAoJHRvZ2dsZV90
bHZbJ3ZhbHVlJ10pIHsgaWYgKCFpbl9hcnJheSgkY1sxXSwgJHJlYWRlcnMpKSB7IGFkZF9yZWFk
ZXIoJGNbMV0pOyBpZiAoYXJyYXlfa2V5X2V4aXN0cygyLCAkYykgJiYgJGNbMV0gIT0gJGNbMl0p
IHsgYWRkX3JlYWRlcigkY1syXSk7IH0gJHJldCA9IEVSUk9SX1NVQ0NFU1M7IH0gZWxzZSB7ICRy
ZXQgPSBFUlJPUl9GQUlMVVJFOyB9IH0gZWxzZSB7IGlmIChpbl9hcnJheSgkY1sxXSwgJHJlYWRl
cnMpKSB7IHJlbW92ZV9yZWFkZXIoJGNbMV0pOyByZW1vdmVfcmVhZGVyKCRjWzJdKTsgJHJldCA9
IEVSUk9SX1NVQ0NFU1M7IH0gZWxzZSB7ICRyZXQgPSBFUlJPUl9TVUNDRVNTOyB9IH0gfSBlbHNl
IHsgbXlfcHJpbnQoIlRyeWluZyB0byBpbnRlcmFjdCB3aXRoIGFuIGludmFsaWQgY2hhbm5lbCIp
OyAkcmV0ID0gRVJST1JfRkFJTFVSRTsgfSByZXR1cm4gJHJldDsgfSB9IGZ1bmN0aW9uIGludGVy
YWN0aW5nKCRjaWQpIHsgZ2xvYmFsICRyZWFkZXJzOyAkYyA9IGdldF9jaGFubmVsX2J5X2lkKCRj
aWQpOyBpZiAoaW5fYXJyYXkoJGNbMV0sICRyZWFkZXJzKSkgeyByZXR1cm4gdHJ1ZTsgfSByZXR1
cm4gZmFsc2U7IH0gaWYgKCFmdW5jdGlvbl9leGlzdHMoJ2NvcmVfc2h1dGRvd24nKSkgeyByZWdp
c3Rlcl9jb21tYW5kKCdjb3JlX3NodXRkb3duJywgQ09NTUFORF9JRF9DT1JFX1NIVVRET1dOKTsg
ZnVuY3Rpb24gY29yZV9zaHV0ZG93bigkcmVxLCAmJHBrdCkgeyBteV9wcmludCgiZG9pbmcgY29y
ZSBzaHV0ZG93biIpOyBkaWUoKTsgfSB9IGlmICghZnVuY3Rpb25fZXhpc3RzKCdjb3JlX2xvYWRs
aWInKSkgeyByZWdpc3Rlcl9jb21tYW5kKCdjb3JlX2xvYWRsaWInLCBDT01NQU5EX0lEX0NPUkVf
TE9BRExJQik7IGZ1bmN0aW9uIGNvcmVfbG9hZGxpYigkcmVxLCAmJHBrdCkgeyBnbG9iYWwgJGlk
MmY7IG15X3ByaW50KCJkb2luZyBjb3JlX2xvYWRsaWIiKTsgJGRhdGFfdGx2ID0gcGFja2V0X2dl
dF90bHYoJHJlcSwgVExWX1RZUEVfREFUQSk7IGlmICgoJGRhdGFfdGx2Wyd0eXBlJ10gJiBUTFZf
TUVUQV9UWVBFX0NPTVBSRVNTRUQpID09IFRMVl9NRVRBX1RZUEVfQ09NUFJFU1NFRCkgeyByZXR1
cm4gRVJST1JfRkFJTFVSRTsgfSAkdG1wID0gJGlkMmY7IGlmIChleHRlbnNpb25fbG9hZGVkKCdz
dWhvc2luJykgJiYgaW5pX2dldCgnc3Vob3Npbi5leGVjdXRvci5kaXNhYmxlX2V2YWwnKSkgeyAk
c3Vob3Npbl9ieXBhc3M9Y3JlYXRlX2Z1bmN0aW9uKCcnLCAkZGF0YV90bHZbJ3ZhbHVlJ10pOyAk
c3Vob3Npbl9ieXBhc3MoKTsgfSBlbHNlIHsgZXZhbCgkZGF0YV90bHZbJ3ZhbHVlJ10pOyB9ICRu
ZXcgPSBhcnJheV9kaWZmKCRpZDJmLCAkdG1wKTsgZm9yZWFjaCAoJG5ldyBhcyAkaWQgPT4gJGZ1
bmMpIHsgcGFja2V0X2FkZF90bHYoJHBrdCwgY3JlYXRlX3RsdihUTFZfVFlQRV9VSU5ULCAkaWQp
KTsgfSByZXR1cm4gRVJST1JfU1VDQ0VTUzsgfSB9IGlmICghZnVuY3Rpb25fZXhpc3RzKCdjb3Jl
X2VudW1leHRjbWQnKSkgeyByZWdpc3Rlcl9jb21tYW5kKCdjb3JlX2VudW1leHRjbWQnLCBDT01N
QU5EX0lEX0NPUkVfRU5VTUVYVENNRCk7IGZ1bmN0aW9uIGNvcmVfZW51bWV4dGNtZCgkcmVxLCAm
JHBrdCkgeyBteV9wcmludCgiZG9pbmcgY29yZV9lbnVtZXh0Y21kIik7IGdsb2JhbCAkaWQyZjsg
JGlkX3N0YXJ0X2FycmF5ID0gcGFja2V0X2dldF90bHYoJHJlcSwgVExWX1RZUEVfVUlOVCk7ICRp
ZF9zdGFydCA9ICRpZF9zdGFydF9hcnJheVsndmFsdWUnXTsgJGlkX2VuZF9hcnJheSA9IHBhY2tl
dF9nZXRfdGx2KCRyZXEsIFRMVl9UWVBFX0xFTkdUSCk7ICRpZF9lbmQgPSAkaWRfZW5kX2FycmF5
Wyd2YWx1ZSddICsgJGlkX3N0YXJ0OyBmb3JlYWNoICgkaWQyZiBhcyAkaWQgPT4gJGV4dF9jbWQp
IHsgbXlfcHJpbnQoImNvcmVfZW51bWV4dGNtZCAtIGNoZWNraW5nICIgLiAkZXh0X2NtZCAuICIg
YXMgIiAuICRpZCk7IGxpc3QoJGV4dF9uYW1lLCAkY21kKSA9IGV4cGxvZGUoIl8iLCAkZXh0X2Nt
ZCwgMik7IGlmICgkaWRfc3RhcnQgPCAkaWQgJiYgJGlkIDwgJGlkX2VuZCkgeyBteV9wcmludCgi
Y29yZV9lbnVtZXh0Y21kIC0gYWRkaW5nICIgLiAkZXh0X2NtZCAuICIgYXMgIiAuICRpZCk7IHBh
Y2tldF9hZGRfdGx2KCRwa3QsIGNyZWF0ZV90bHYoVExWX1RZUEVfVUlOVCwgJGlkKSk7IH0gfSBy
ZXR1cm4gRVJST1JfU1VDQ0VTUzsgfSB9IGlmICghZnVuY3Rpb25fZXhpc3RzKCdjb3JlX3NldF91
dWlkJykpIHsgcmVnaXN0ZXJfY29tbWFuZCgnY29yZV9zZXRfdXVpZCcsIENPTU1BTkRfSURfQ09S
RV9TRVRfVVVJRCk7IGZ1bmN0aW9uIGNvcmVfc2V0X3V1aWQoJHJlcSwgJiRwa3QpIHsgbXlfcHJp
bnQoImRvaW5nIGNvcmVfc2V0X3V1aWQiKTsgJG5ld191dWlkID0gcGFja2V0X2dldF90bHYoJHJl
cSwgVExWX1RZUEVfVVVJRCk7IGlmICgkbmV3X3V1aWQgIT0gbnVsbCkgeyAkR0xPQkFMU1snVVVJ
RCddID0gJG5ld191dWlkWyd2YWx1ZSddOyBteV9wcmludCgiTmV3IFVVSUQgaXMgeyRHTE9CQUxT
WydVVUlEJ119Iik7IH0gcmV0dXJuIEVSUk9SX1NVQ0NFU1M7IH0gfSBmdW5jdGlvbiBnZXRfaGRk
X2xhYmVsKCkgeyBmb3JlYWNoIChzY2FuZGlyKCcvZGV2L2Rpc2svYnktaWQvJykgYXMgJGZpbGUp
IHsgZm9yZWFjaCAoYXJyYXkoImF0YS0iLCAibWItIikgYXMgJHByZWZpeCkgeyBpZiAoc3RycG9z
KCRmaWxlLCAkcHJlZml4KSA9PT0gMCkgeyByZXR1cm4gc3Vic3RyKCRmaWxlLCBzdHJsZW4oJHBy
ZWZpeCkpOyB9IH0gfSByZXR1cm4gIiI7IH0gZnVuY3Rpb24gZGVyX3RvX3BlbSgkZGVyX2RhdGEp
IHsgJHBlbSA9IGNodW5rX3NwbGl0KGJhc2U2NF9lbmNvZGUoJGRlcl9kYXRhKSwgNjQsICJcbiIp
OyAkcGVtID0gIi0tLS0tQkVHSU4gUFVCTElDIEtFWS0tLS0tXG4iLiRwZW0uIi0tLS0tRU5EIFBV
QkxJQyBLRVktLS0tLVxuIjsgcmV0dXJuICRwZW07IH0gaWYgKCFmdW5jdGlvbl9leGlzdHMoJ2Nv
cmVfbmVnb3RpYXRlX3Rsdl9lbmNyeXB0aW9uJykpIHsgcmVnaXN0ZXJfY29tbWFuZCgnY29yZV9u
ZWdvdGlhdGVfdGx2X2VuY3J5cHRpb24nLCBDT01NQU5EX0lEX0NPUkVfTkVHT1RJQVRFX1RMVl9F
TkNSWVBUSU9OKTsgZnVuY3Rpb24gY29yZV9uZWdvdGlhdGVfdGx2X2VuY3J5cHRpb24oJHJlcSwg
JiRwa3QpIHsgaWYgKHN1cHBvcnRzX2FlcygpKSB7IG15X3ByaW50KCJBRVMgZnVuY3Rpb25hbGl0
eSBpcyBzdXBwb3J0ZWQiKTsgcGFja2V0X2FkZF90bHYoJHBrdCwgY3JlYXRlX3RsdihUTFZfVFlQ
RV9TWU1fS0VZX1RZUEUsIEVOQ19BRVMyNTYpKTsgJEdMT0JBTFNbJ0FFU19FTkFCTEVEJ10gPSBm
YWxzZTsgJEdMT0JBTFNbJ0FFU19LRVknXSA9IHJhbmRfYnl0ZXMoMzIpOyBpZiAoZnVuY3Rpb25f
ZXhpc3RzKCdvcGVuc3NsX3BrZXlfZ2V0X3B1YmxpYycpICYmIGZ1bmN0aW9uX2V4aXN0cygnb3Bl
bnNzbF9wdWJsaWNfZW5jcnlwdCcpKSB7IG15X3ByaW50KCJFbmNyeXB0aW9uIHZpYSBwdWJsaWMg
a2V5IGlzIHN1cHBvcnRlZCIpOyAkcHViX2tleV90bHYgPSBwYWNrZXRfZ2V0X3RsdigkcmVxLCBU
TFZfVFlQRV9SU0FfUFVCX0tFWSk7IGlmICgkcHViX2tleV90bHYgIT0gbnVsbCkgeyAka2V5ID0g
b3BlbnNzbF9wa2V5X2dldF9wdWJsaWMoZGVyX3RvX3BlbSgkcHViX2tleV90bHZbJ3ZhbHVlJ10p
KTsgJGVuYyA9ICcnOyBvcGVuc3NsX3B1YmxpY19lbmNyeXB0KCRHTE9CQUxTWydBRVNfS0VZJ10s
ICRlbmMsICRrZXksIE9QRU5TU0xfUEtDUzFfUEFERElORyk7IHBhY2tldF9hZGRfdGx2KCRwa3Qs
IGNyZWF0ZV90bHYoVExWX1RZUEVfRU5DX1NZTV9LRVksICRlbmMpKTsgcmV0dXJuIEVSUk9SX1NV
Q0NFU1M7IH0gfSBwYWNrZXRfYWRkX3RsdigkcGt0LCBjcmVhdGVfdGx2KFRMVl9UWVBFX1NZTV9L
RVksICRHTE9CQUxTWydBRVNfS0VZJ10pKTsgfSByZXR1cm4gRVJST1JfU1VDQ0VTUzsgfSB9IGlm
ICghZnVuY3Rpb25fZXhpc3RzKCdjb3JlX2dldF9zZXNzaW9uX2d1aWQnKSkgeyByZWdpc3Rlcl9j
b21tYW5kKCdjb3JlX2dldF9zZXNzaW9uX2d1aWQnLCBDT01NQU5EX0lEX0NPUkVfR0VUX1NFU1NJ
T05fR1VJRCk7IGZ1bmN0aW9uIGNvcmVfZ2V0X3Nlc3Npb25fZ3VpZCgkcmVxLCAmJHBrdCkgeyBw
YWNrZXRfYWRkX3RsdigkcGt0LCBjcmVhdGVfdGx2KFRMVl9UWVBFX1NFU1NJT05fR1VJRCwgJEdM
T0JBTFNbJ1NFU1NJT05fR1VJRCddKSk7IHJldHVybiBFUlJPUl9TVUNDRVNTOyB9IH0gaWYgKCFm
dW5jdGlvbl9leGlzdHMoJ2NvcmVfc2V0X3Nlc3Npb25fZ3VpZCcpKSB7IHJlZ2lzdGVyX2NvbW1h
bmQoJ2NvcmVfc2V0X3Nlc3Npb25fZ3VpZCcsIENPTU1BTkRfSURfQ09SRV9TRVRfU0VTU0lPTl9H
VUlEKTsgZnVuY3Rpb24gY29yZV9zZXRfc2Vzc2lvbl9ndWlkKCRyZXEsICYkcGt0KSB7IG15X3By
aW50KCJkb2luZyBjb3JlX3NldF9zZXNzaW9uX2d1aWQiKTsgJG5ld19ndWlkID0gcGFja2V0X2dl
dF90bHYoJHJlcSwgVExWX1RZUEVfU0VTU0lPTl9HVUlEKTsgaWYgKCRuZXdfZ3VpZCAhPSBudWxs
KSB7ICRHTE9CQUxTWydTRVNTSU9OX0lEJ10gPSAkbmV3X2d1aWRbJ3ZhbHVlJ107IG15X3ByaW50
KCJOZXcgU2Vzc2lvbiBHVUlEIGlzIHskR0xPQkFMU1snU0VTU0lPTl9HVUlEJ119Iik7IH0gcmV0
dXJuIEVSUk9SX1NVQ0NFU1M7IH0gfSBpZiAoIWZ1bmN0aW9uX2V4aXN0cygnY29yZV9tYWNoaW5l
X2lkJykpIHsgcmVnaXN0ZXJfY29tbWFuZCgnY29yZV9tYWNoaW5lX2lkJywgQ09NTUFORF9JRF9D
T1JFX01BQ0hJTkVfSUQpOyBmdW5jdGlvbiBjb3JlX21hY2hpbmVfaWQoJHJlcSwgJiRwa3QpIHsg
bXlfcHJpbnQoImRvaW5nIGNvcmVfbWFjaGluZV9pZCIpOyBpZiAoaXNfY2FsbGFibGUoJ2dldGhv
c3RuYW1lJykpIHsgJG1hY2hpbmVfaWQgPSBnZXRob3N0bmFtZSgpOyB9IGVsc2UgeyAkbWFjaGlu
ZV9pZCA9IHBocF91bmFtZSgnbicpOyB9ICRzZXJpYWwgPSAiIjsgaWYgKGlzX3dpbmRvd3MoKSkg
eyAkb3V0cHV0ID0gc3RydG9sb3dlcihzaGVsbF9leGVjKCJ2b2wgJVNZU1RFTURSSVZFJSIpKTsg
JHNlcmlhbCA9IHByZWdfcmVwbGFjZSgnLy4qc2VyaWFsIG51bWJlciBpcyAoW2EtejAtOV17NH0t
W2EtejAtOV17NH0pLiovcycsICckMScsICRvdXRwdXQpOyB9IGVsc2UgeyAkc2VyaWFsID0gZ2V0
X2hkZF9sYWJlbCgpOyB9IHBhY2tldF9hZGRfdGx2KCRwa3QsIGNyZWF0ZV90bHYoVExWX1RZUEVf
TUFDSElORV9JRCwgJHNlcmlhbC4iOiIuJG1hY2hpbmVfaWQpKTsgcmV0dXJuIEVSUk9SX1NVQ0NF
U1M7IH0gfSAkY2hhbm5lbHMgPSBhcnJheSgpOyBmdW5jdGlvbiByZWdpc3Rlcl9jaGFubmVsKCRp
biwgJG91dD1udWxsLCAkZXJyPW51bGwpIHsgZ2xvYmFsICRjaGFubmVsczsgaWYgKCRvdXQgPT0g
bnVsbCkgeyAkb3V0ID0gJGluOyB9IGlmICgkZXJyID09IG51bGwpIHsgJGVyciA9ICRvdXQ7IH0g
JGNoYW5uZWxzW10gPSBhcnJheSgwID0+ICRpbiwgMSA9PiAkb3V0LCAyID0+ICRlcnIsICd0eXBl
JyA9PiBnZXRfcnR5cGUoJGluKSwgJ2RhdGEnID0+ICcnKTsgJGlkID0gZW5kKGFycmF5X2tleXMo
JGNoYW5uZWxzKSk7IG15X3ByaW50KCJDcmVhdGVkIG5ldyBjaGFubmVsICRpbiwgd2l0aCBpZCAk
aWQiKTsgcmV0dXJuICRpZDsgfSBmdW5jdGlvbiBnZXRfY2hhbm5lbF9pZF9mcm9tX3Jlc291cmNl
KCRyZXNvdXJjZSkgeyBnbG9iYWwgJGNoYW5uZWxzOyBpZiAoZW1wdHkoJGNoYW5uZWxzKSkgeyBy
ZXR1cm4gZmFsc2U7IH0gZm9yZWFjaCAoJGNoYW5uZWxzIGFzICRpID0+ICRjaGFuX2FyeSkgeyBp
ZiAoaW5fYXJyYXkoJHJlc291cmNlLCAkY2hhbl9hcnkpKSB7IG15X3ByaW50KCJGb3VuZCBjaGFu
bmVsIGlkICRpIik7IHJldHVybiAkaTsgfSB9IHJldHVybiBmYWxzZTsgfSBmdW5jdGlvbiAmZ2V0
X2NoYW5uZWxfYnlfaWQoJGNoYW5faWQpIHsgZ2xvYmFsICRjaGFubmVsczsgbXlfcHJpbnQoIkxv
b2tpbmcgdXAgY2hhbm5lbCBpZCAkY2hhbl9pZCIpOyBpZiAoYXJyYXlfa2V5X2V4aXN0cygkY2hh
bl9pZCwgJGNoYW5uZWxzKSkgeyBteV9wcmludCgiRm91bmQgb25lIik7IHJldHVybiAkY2hhbm5l
bHNbJGNoYW5faWRdOyB9IGVsc2UgeyByZXR1cm4gZmFsc2U7IH0gfSBmdW5jdGlvbiBjaGFubmVs
X3dyaXRlKCRjaGFuX2lkLCAkZGF0YSkgeyAkYyA9IGdldF9jaGFubmVsX2J5X2lkKCRjaGFuX2lk
KTsgaWYgKCRjICYmIGlzX3Jlc291cmNlKCRjWzBdKSkgeyBteV9wcmludCgiLS0tV3JpdGluZyAn
JGRhdGEnIHRvIGNoYW5uZWwgJGNoYW5faWQiKTsgcmV0dXJuIHdyaXRlKCRjWzBdLCAkZGF0YSk7
IH0gZWxzZSB7IHJldHVybiBmYWxzZTsgfSB9IGZ1bmN0aW9uIGNoYW5uZWxfcmVhZCgkY2hhbl9p
ZCwgJGxlbikgeyAkYyA9ICZnZXRfY2hhbm5lbF9ieV9pZCgkY2hhbl9pZCk7IGlmICgkYykgeyAk
cmV0ID0gc3Vic3RyKCRjWydkYXRhJ10sIDAsICRsZW4pOyAkY1snZGF0YSddID0gc3Vic3RyKCRj
WydkYXRhJ10sICRsZW4pOyBpZiAoc3RybGVuKCRyZXQpID4gMCkgeyBteV9wcmludCgiSGFkIHNv
bWUgbGVmdG92ZXJzOiAnJHJldCciKTsgfSBpZiAoc3RybGVuKCRyZXQpIDwgJGxlbiBhbmQgaXNf
cmVzb3VyY2UoJGNbMl0pIGFuZCAkY1sxXSAhPSAkY1syXSkgeyAkcmVhZCA9IHJlYWQoJGNbMl0p
OyAkY1snZGF0YSddIC49ICRyZWFkOyAkYnl0ZXNfbmVlZGVkID0gJGxlbiAtIHN0cmxlbigkcmV0
KTsgJHJldCAuPSBzdWJzdHIoJGNbJ2RhdGEnXSwgMCwgJGJ5dGVzX25lZWRlZCk7ICRjWydkYXRh
J10gPSBzdWJzdHIoJGNbJ2RhdGEnXSwgJGJ5dGVzX25lZWRlZCk7IH0gaWYgKHN0cmxlbigkcmV0
KSA8ICRsZW4gYW5kIGlzX3Jlc291cmNlKCRjWzFdKSkgeyAkcmVhZCA9IHJlYWQoJGNbMV0pOyAk
Y1snZGF0YSddIC49ICRyZWFkOyAkYnl0ZXNfbmVlZGVkID0gJGxlbiAtIHN0cmxlbigkcmV0KTsg
JHJldCAuPSBzdWJzdHIoJGNbJ2RhdGEnXSwgMCwgJGJ5dGVzX25lZWRlZCk7ICRjWydkYXRhJ10g
PSBzdWJzdHIoJGNbJ2RhdGEnXSwgJGJ5dGVzX25lZWRlZCk7IH0gaWYgKGZhbHNlID09PSAkcmVh
ZCBhbmQgZW1wdHkoJHJldCkpIHsgaWYgKGludGVyYWN0aW5nKCRjaGFuX2lkKSkgeyBoYW5kbGVf
ZGVhZF9yZXNvdXJjZV9jaGFubmVsKCRjWzFdKTsgfSByZXR1cm4gZmFsc2U7IH0gcmV0dXJuICRy
ZXQ7IH0gZWxzZSB7IHJldHVybiBmYWxzZTsgfSB9IGZ1bmN0aW9uIHJhbmRfeG9yX2J5dGUoKSB7
IHJldHVybiBjaHIobXRfcmFuZCgxLCAyNTUpKTsgfSBmdW5jdGlvbiByYW5kX2J5dGVzKCRzaXpl
KSB7ICRiID0gJyc7IGZvciAoJGkgPSAwOyAkaSA8ICRzaXplOyAkaSsrKSB7ICRiIC49IHJhbmRf
eG9yX2J5dGUoKTsgfSByZXR1cm4gJGI7IH0gZnVuY3Rpb24gcmFuZF94b3Jfa2V5KCkgeyByZXR1
cm4gcmFuZF9ieXRlcyg0KTsgfSBmdW5jdGlvbiB4b3JfYnl0ZXMoJGtleSwgJGRhdGEpIHsgJHJl
c3VsdCA9ICcnOyBmb3IgKCRpID0gMDsgJGkgPCBzdHJsZW4oJGRhdGEpOyArKyRpKSB7ICRyZXN1
bHQgLj0gJGRhdGFbJGldIF4gJGtleVskaSAlIDRdOyB9IHJldHVybiAkcmVzdWx0OyB9IGZ1bmN0
aW9uIGdlbmVyYXRlX3JlcV9pZCgpIHsgJGNoYXJhY3RlcnMgPSAnYWJjZGVmZ2hpamtsbW5vcHFy
c3R1dnd4eXonOyAkcmlkID0gJyc7IGZvciAoJHAgPSAwOyAkcCA8IDMyOyAkcCsrKSB7ICRyaWQg
Lj0gJGNoYXJhY3RlcnNbcmFuZCgwLCBzdHJsZW4oJGNoYXJhY3RlcnMpLTEpXTsgfSByZXR1cm4g
JHJpZDsgfSBmdW5jdGlvbiBzdXBwb3J0c19hZXMoKSB7IHJldHVybiBmdW5jdGlvbl9leGlzdHMo
J29wZW5zc2xfZGVjcnlwdCcpICYmIGZ1bmN0aW9uX2V4aXN0cygnb3BlbnNzbF9lbmNyeXB0Jyk7
IH0gZnVuY3Rpb24gZGVjcnlwdF9wYWNrZXQoJHJhdykgeyAkbGVuX2FycmF5ID0gdW5wYWNrKCJO
bGVuIiwgc3Vic3RyKCRyYXcsIDIwLCA0KSk7ICRlbmNyeXB0X2ZsYWdzID0gJGxlbl9hcnJheVsn
bGVuJ107IGlmICgkZW5jcnlwdF9mbGFncyA9PSBFTkNfQUVTMjU2ICYmIHN1cHBvcnRzX2Flcygp
ICYmICRHTE9CQUxTWydBRVNfS0VZJ10gIT0gbnVsbCkgeyAkdGx2ID0gc3Vic3RyKCRyYXcsIDI0
KTsgJGRlYyA9IG9wZW5zc2xfZGVjcnlwdChzdWJzdHIoJHRsdiwgMjQpLCBBRVNfMjU2X0NCQywg
JEdMT0JBTFNbJ0FFU19LRVknXSwgT1BFTlNTTF9SQVdfREFUQSwgc3Vic3RyKCR0bHYsIDgsIDE2
KSk7IHJldHVybiBwYWNrKCJOIiwgc3RybGVuKCRkZWMpICsgOCkgLiBzdWJzdHIoJHRsdiwgNCwg
NCkgLiAkZGVjOyB9IHJldHVybiBzdWJzdHIoJHJhdywgMjQpOyB9IGZ1bmN0aW9uIGVuY3J5cHRf
cGFja2V0KCRyYXcpIHsgaWYgKHN1cHBvcnRzX2FlcygpICYmICRHTE9CQUxTWydBRVNfS0VZJ10g
IT0gbnVsbCkgeyBpZiAoJEdMT0JBTFNbJ0FFU19FTkFCTEVEJ10gPT09IHRydWUpIHsgJGl2ID0g
cmFuZF9ieXRlcygxNik7ICRlbmMgPSAkaXYgLiBvcGVuc3NsX2VuY3J5cHQoc3Vic3RyKCRyYXcs
IDgpLCBBRVNfMjU2X0NCQywgJEdMT0JBTFNbJ0FFU19LRVknXSwgT1BFTlNTTF9SQVdfREFUQSwg
JGl2KTsgJGhkciA9IHBhY2soIk4iLCBzdHJsZW4oJGVuYykgKyA4KSAuIHN1YnN0cigkcmF3LCA0
LCA0KTsgcmV0dXJuICRHTE9CQUxTWydTRVNTSU9OX0dVSUQnXSAuIHBhY2soIk4iLCBFTkNfQUVT
MjU2KSAuICRoZHIgLiAkZW5jOyB9ICRHTE9CQUxTWydBRVNfRU5BQkxFRCddID0gdHJ1ZTsgfSBy
ZXR1cm4gJEdMT0JBTFNbJ1NFU1NJT05fR1VJRCddIC4gcGFjaygiTiIsIEVOQ19OT05FKSAuICRy
YXc7IH0gZnVuY3Rpb24gd3JpdGVfdGx2X3RvX3NvY2tldCgkcmVzb3VyY2UsICRyYXcpIHsgJHhv
ciA9IHJhbmRfeG9yX2tleSgpOyB3cml0ZSgkcmVzb3VyY2UsICR4b3IgLiB4b3JfYnl0ZXMoJHhv
ciwgZW5jcnlwdF9wYWNrZXQoJHJhdykpKTsgfSBmdW5jdGlvbiBoYW5kbGVfZGVhZF9yZXNvdXJj
ZV9jaGFubmVsKCRyZXNvdXJjZSkgeyBnbG9iYWwgJG1zZ3NvY2s7IGlmICghaXNfcmVzb3VyY2Uo
JHJlc291cmNlKSkgeyByZXR1cm47IH0gJGNpZCA9IGdldF9jaGFubmVsX2lkX2Zyb21fcmVzb3Vy
Y2UoJHJlc291cmNlKTsgaWYgKCRjaWQgPT09IGZhbHNlKSB7IG15X3ByaW50KCJSZXNvdXJjZSBo
YXMgbm8gY2hhbm5lbDogeyRyZXNvdXJjZX0iKTsgcmVtb3ZlX3JlYWRlcigkcmVzb3VyY2UpOyBj
bG9zZSgkcmVzb3VyY2UpOyB9IGVsc2UgeyBteV9wcmludCgiSGFuZGxpbmcgZGVhZCByZXNvdXJj
ZTogeyRyZXNvdXJjZX0sIGZvciBjaGFubmVsOiB7JGNpZH0iKTsgY2hhbm5lbF9jbG9zZV9oYW5k
bGVzKCRjaWQpOyAkcGt0ID0gcGFjaygiTiIsIFBBQ0tFVF9UWVBFX1JFUVVFU1QpOyBwYWNrZXRf
YWRkX3RsdigkcGt0LCBjcmVhdGVfdGx2KFRMVl9UWVBFX0NPTU1BTkRfSUQsIENPTU1BTkRfSURf
Q09SRV9DSEFOTkVMX0NMT1NFKSk7IHBhY2tldF9hZGRfdGx2KCRwa3QsIGNyZWF0ZV90bHYoVExW
X1RZUEVfUkVRVUVTVF9JRCwgZ2VuZXJhdGVfcmVxX2lkKCkpKTsgcGFja2V0X2FkZF90bHYoJHBr
dCwgY3JlYXRlX3RsdihUTFZfVFlQRV9DSEFOTkVMX0lELCAkY2lkKSk7IHBhY2tldF9hZGRfdGx2
KCRwa3QsIGNyZWF0ZV90bHYoVExWX1RZUEVfVVVJRCwgJEdMT0JBTFNbJ1VVSUQnXSkpOyAkcGt0
ID0gcGFjaygiTiIsIHN0cmxlbigkcGt0KSArIDQpIC4gJHBrdDsgd3JpdGVfdGx2X3RvX3NvY2tl
dCgkbXNnc29jaywgJHBrdCk7IH0gfSBmdW5jdGlvbiBoYW5kbGVfcmVzb3VyY2VfcmVhZF9jaGFu
bmVsKCRyZXNvdXJjZSwgJGRhdGEpIHsgZ2xvYmFsICR1ZHBfaG9zdF9tYXA7ICRjaWQgPSBnZXRf
Y2hhbm5lbF9pZF9mcm9tX3Jlc291cmNlKCRyZXNvdXJjZSk7IG15X3ByaW50KCJIYW5kbGluZyBk
YXRhIGZyb20gJHJlc291cmNlIik7ICRwa3QgPSBwYWNrKCJOIiwgUEFDS0VUX1RZUEVfUkVRVUVT
VCk7IHBhY2tldF9hZGRfdGx2KCRwa3QsIGNyZWF0ZV90bHYoVExWX1RZUEVfQ09NTUFORF9JRCwg
Q09NTUFORF9JRF9DT1JFX0NIQU5ORUxfV1JJVEUpKTsgaWYgKGFycmF5X2tleV9leGlzdHMoKGlu
dCkkcmVzb3VyY2UsICR1ZHBfaG9zdF9tYXApKSB7IGxpc3QoJGgsJHApID0gJHVkcF9ob3N0X21h
cFsoaW50KSRyZXNvdXJjZV07IHBhY2tldF9hZGRfdGx2KCRwa3QsIGNyZWF0ZV90bHYoVExWX1RZ
UEVfUEVFUl9IT1NULCAkaCkpOyBwYWNrZXRfYWRkX3RsdigkcGt0LCBjcmVhdGVfdGx2KFRMVl9U
WVBFX1BFRVJfUE9SVCwgJHApKTsgfSBwYWNrZXRfYWRkX3RsdigkcGt0LCBjcmVhdGVfdGx2KFRM
Vl9UWVBFX0NIQU5ORUxfSUQsICRjaWQpKTsgcGFja2V0X2FkZF90bHYoJHBrdCwgY3JlYXRlX3Rs
dihUTFZfVFlQRV9DSEFOTkVMX0RBVEEsICRkYXRhKSk7IHBhY2tldF9hZGRfdGx2KCRwa3QsIGNy
ZWF0ZV90bHYoVExWX1RZUEVfTEVOR1RILCBzdHJsZW4oJGRhdGEpKSk7IHBhY2tldF9hZGRfdGx2
KCRwa3QsIGNyZWF0ZV90bHYoVExWX1RZUEVfUkVRVUVTVF9JRCwgZ2VuZXJhdGVfcmVxX2lkKCkp
KTsgcGFja2V0X2FkZF90bHYoJHBrdCwgY3JlYXRlX3RsdihUTFZfVFlQRV9VVUlELCAkR0xPQkFM
U1snVVVJRCddKSk7ICRwa3QgPSBwYWNrKCJOIiwgc3RybGVuKCRwa3QpICsgNCkgLiAkcGt0OyBy
ZXR1cm4gJHBrdDsgfSBmdW5jdGlvbiBjcmVhdGVfcmVzcG9uc2UoJHJlcSkgeyBnbG9iYWwgJGlk
MmY7ICRwa3QgPSBwYWNrKCJOIiwgUEFDS0VUX1RZUEVfUkVTUE9OU0UpOyAkY29tbWFuZF9pZF90
bHYgPSBwYWNrZXRfZ2V0X3RsdigkcmVxLCBUTFZfVFlQRV9DT01NQU5EX0lEKTsgbXlfcHJpbnQo
ImNvbW1hbmQgaWQgaXMgeyRjb21tYW5kX2lkX3RsdlsndmFsdWUnXX0iKTsgcGFja2V0X2FkZF90
bHYoJHBrdCwgJGNvbW1hbmRfaWRfdGx2KTsgJHJlcWlkX3RsdiA9IHBhY2tldF9nZXRfdGx2KCRy
ZXEsIFRMVl9UWVBFX1JFUVVFU1RfSUQpOyBwYWNrZXRfYWRkX3RsdigkcGt0LCAkcmVxaWRfdGx2
KTsgJGNvbW1hbmRfaGFuZGxlciA9ICRpZDJmWyRjb21tYW5kX2lkX3RsdlsndmFsdWUnXV07IGlm
IChpc19jYWxsYWJsZSgkY29tbWFuZF9oYW5kbGVyKSkgeyAkcmVzdWx0ID0gJGNvbW1hbmRfaGFu
ZGxlcigkcmVxLCAkcGt0KTsgfSBlbHNlIHsgbXlfcHJpbnQoIkdvdCBhIHJlcXVlc3QgZm9yIHNv
bWV0aGluZyBJIGRvbid0IGtub3cgaG93IHRvIGhhbmRsZSAoIiAuICRjb21tYW5kX2lkX3Rsdlsn
dmFsdWUnXSAuICIgLyAiLiAkY29tbWFuZF9oYW5kbGVyIC4iKSwgcmV0dXJuaW5nIGZhaWx1cmUi
KTsgJHJlc3VsdCA9IEVSUk9SX0ZBSUxVUkU7IH0gcGFja2V0X2FkZF90bHYoJHBrdCwgY3JlYXRl
X3RsdihUTFZfVFlQRV9SRVNVTFQsICRyZXN1bHQpKTsgcGFja2V0X2FkZF90bHYoJHBrdCwgY3Jl
YXRlX3RsdihUTFZfVFlQRV9VVUlELCAkR0xPQkFMU1snVVVJRCddKSk7ICRwa3QgPSBwYWNrKCJO
Iiwgc3RybGVuKCRwa3QpICsgNCkgLiAkcGt0OyByZXR1cm4gJHBrdDsgfSBmdW5jdGlvbiBjcmVh
dGVfdGx2KCR0eXBlLCAkdmFsKSB7IHJldHVybiBhcnJheSggJ3R5cGUnID0+ICR0eXBlLCAndmFs
dWUnID0+ICR2YWwgKTsgfSBmdW5jdGlvbiB0bHZfcGFjaygkdGx2KSB7ICRyZXQgPSAiIjsgaWYg
KCgkdGx2Wyd0eXBlJ10gJiBUTFZfTUVUQV9UWVBFX1NUUklORykgPT0gVExWX01FVEFfVFlQRV9T
VFJJTkcpIHsgJHJldCA9IHBhY2soIk5OYSoiLCA4ICsgc3RybGVuKCR0bHZbJ3ZhbHVlJ10pKzEs
ICR0bHZbJ3R5cGUnXSwgJHRsdlsndmFsdWUnXSAuICJcMCIpOyB9IGVsc2VpZiAoKCR0bHZbJ3R5
cGUnXSAmIFRMVl9NRVRBX1RZUEVfUVdPUkQpID09IFRMVl9NRVRBX1RZUEVfUVdPUkQpIHsgJGhp
ID0gKCR0bHZbJ3ZhbHVlJ10gPj4gMzIpICYgMHhGRkZGRkZGRjsgJGxvID0gJHRsdlsndmFsdWUn
XSAmIDB4RkZGRkZGRkY7ICRyZXQgPSBwYWNrKCJOTk5OIiwgOCArIDgsICR0bHZbJ3R5cGUnXSwg
JGhpLCAkbG8pOyB9IGVsc2VpZiAoKCR0bHZbJ3R5cGUnXSAmIFRMVl9NRVRBX1RZUEVfVUlOVCkg
PT0gVExWX01FVEFfVFlQRV9VSU5UKSB7ICRyZXQgPSBwYWNrKCJOTk4iLCA4ICsgNCwgJHRsdlsn
dHlwZSddLCAkdGx2Wyd2YWx1ZSddKTsgfSBlbHNlaWYgKCgkdGx2Wyd0eXBlJ10gJiBUTFZfTUVU
QV9UWVBFX0JPT0wpID09IFRMVl9NRVRBX1RZUEVfQk9PTCkgeyAkcmV0ID0gcGFjaygiTk4iLCA4
ICsgMSwgJHRsdlsndHlwZSddKTsgJHJldCAuPSAkdGx2Wyd2YWx1ZSddID8gIlx4MDEiIDogIlx4
MDAiOyB9IGVsc2VpZiAoKCR0bHZbJ3R5cGUnXSAmIFRMVl9NRVRBX1RZUEVfUkFXKSA9PSBUTFZf
TUVUQV9UWVBFX1JBVykgeyAkcmV0ID0gcGFjaygiTk4iLCA4ICsgc3RybGVuKCR0bHZbJ3ZhbHVl
J10pLCAkdGx2Wyd0eXBlJ10pIC4gJHRsdlsndmFsdWUnXTsgfSBlbHNlaWYgKCgkdGx2Wyd0eXBl
J10gJiBUTFZfTUVUQV9UWVBFX0dST1VQKSA9PSBUTFZfTUVUQV9UWVBFX0dST1VQKSB7ICRyZXQg
PSBwYWNrKCJOTiIsIDggKyBzdHJsZW4oJHRsdlsndmFsdWUnXSksICR0bHZbJ3R5cGUnXSkgLiAk
dGx2Wyd2YWx1ZSddOyB9IGVsc2VpZiAoKCR0bHZbJ3R5cGUnXSAmIFRMVl9NRVRBX1RZUEVfQ09N
UExFWCkgPT0gVExWX01FVEFfVFlQRV9DT01QTEVYKSB7ICRyZXQgPSBwYWNrKCJOTiIsIDggKyBz
dHJsZW4oJHRsdlsndmFsdWUnXSksICR0bHZbJ3R5cGUnXSkgLiAkdGx2Wyd2YWx1ZSddOyB9IGVs
c2UgeyBteV9wcmludCgiRG9uJ3Qga25vdyBob3cgdG8gbWFrZSBhIHRsdiBvZiB0eXBlICIuICR0
bHZbJ3R5cGUnXSAuICIgKG1ldGEgdHlwZSAiLiBzcHJpbnRmKCIlMDh4IiwgJHRsdlsndHlwZSdd
ICYgVExWX01FVEFfVFlQRV9NQVNLKSAuIiksIHd0ZiIpOyB9IHJldHVybiAkcmV0OyB9IGZ1bmN0
aW9uIHRsdl91bnBhY2soJHJhd190bHYpIHsgJHRsdiA9IHVucGFjaygiTmxlbi9OdHlwZSIsIHN1
YnN0cigkcmF3X3RsdiwgMCwgOCkpOyAkdHlwZSA9ICR0bHZbJ3R5cGUnXTsgbXlfcHJpbnQoImxl
bjogeyR0bHZbJ2xlbiddfSwgdHlwZTogeyR0bHZbJ3R5cGUnXX0iKTsgaWYgKCgkdHlwZSAmIFRM
Vl9NRVRBX1RZUEVfU1RSSU5HKSA9PSBUTFZfTUVUQV9UWVBFX1NUUklORykgeyAkdGx2ID0gdW5w
YWNrKCJObGVuL050eXBlL2EqdmFsdWUiLCBzdWJzdHIoJHJhd190bHYsIDAsICR0bHZbJ2xlbidd
KSk7ICR0bHZbJ3ZhbHVlJ10gPSBzdHJfcmVwbGFjZSgiXDAiLCAiIiwgJHRsdlsndmFsdWUnXSk7
IH0gZWxzZWlmICgoJHR5cGUgJiBUTFZfTUVUQV9UWVBFX1VJTlQpID09IFRMVl9NRVRBX1RZUEVf
VUlOVCkgeyAkdGx2ID0gdW5wYWNrKCJObGVuL050eXBlL052YWx1ZSIsIHN1YnN0cigkcmF3X3Rs
diwgMCwgJHRsdlsnbGVuJ10pKTsgfSBlbHNlaWYgKCgkdHlwZSAmIFRMVl9NRVRBX1RZUEVfUVdP
UkQpID09IFRMVl9NRVRBX1RZUEVfUVdPUkQpIHsgJHRsdiA9IHVucGFjaygiTmxlbi9OdHlwZS9O
aGkvTmxvIiwgc3Vic3RyKCRyYXdfdGx2LCAwLCAkdGx2WydsZW4nXSkpOyAkdGx2Wyd2YWx1ZSdd
ID0gJHRsdlsnaGknXSA8PCAzMiB8ICR0bHZbJ2xvJ107IH0gZWxzZWlmICgoJHR5cGUgJiBUTFZf
TUVUQV9UWVBFX0JPT0wpID09IFRMVl9NRVRBX1RZUEVfQk9PTCkgeyAkdGx2ID0gdW5wYWNrKCJO
bGVuL050eXBlL2N2YWx1ZSIsIHN1YnN0cigkcmF3X3RsdiwgMCwgJHRsdlsnbGVuJ10pKTsgfSBl
bHNlaWYgKCgkdHlwZSAmIFRMVl9NRVRBX1RZUEVfUkFXKSA9PSBUTFZfTUVUQV9UWVBFX1JBVykg
eyAkdGx2ID0gdW5wYWNrKCJObGVuL050eXBlIiwgJHJhd190bHYpOyAkdGx2Wyd2YWx1ZSddID0g
c3Vic3RyKCRyYXdfdGx2LCA4LCAkdGx2WydsZW4nXS04KTsgfSBlbHNlIHsgbXlfcHJpbnQoIld0
ZiB0eXBlIGlzIHRoaXM/ICR0eXBlIik7ICR0bHYgPSBudWxsOyB9IHJldHVybiAkdGx2OyB9IGZ1
bmN0aW9uIHBhY2tldF9hZGRfdGx2KCYkcGt0LCAkdGx2KSB7ICRwa3QgLj0gdGx2X3BhY2soJHRs
dik7IH0gZnVuY3Rpb24gcGFja2V0X2dldF90bHYoJHBrdCwgJHR5cGUpIHsgJG9mZnNldCA9IDg7
IHdoaWxlICgkb2Zmc2V0IDwgc3RybGVuKCRwa3QpKSB7ICR0bHYgPSB0bHZfdW5wYWNrKHN1YnN0
cigkcGt0LCAkb2Zmc2V0KSk7IGlmICgkdHlwZSA9PSAoJHRsdlsndHlwZSddICYgflRMVl9NRVRB
X1RZUEVfQ09NUFJFU1NFRCkpIHsgcmV0dXJuICR0bHY7IH0gJG9mZnNldCArPSAkdGx2WydsZW4n
XTsgfSByZXR1cm4gbnVsbDsgfSBmdW5jdGlvbiBwYWNrZXRfZ2V0X2FsbF90bHZzKCRwa3QsICR0
eXBlKSB7IG15X3ByaW50KCJMb29raW5nIGZvciBhbGwgdGx2cyBvZiB0eXBlICR0eXBlIik7ICRv
ZmZzZXQgPSA4OyAkYWxsID0gYXJyYXkoKTsgd2hpbGUgKCRvZmZzZXQgPCBzdHJsZW4oJHBrdCkp
IHsgJHRsdiA9IHRsdl91bnBhY2soc3Vic3RyKCRwa3QsICRvZmZzZXQpKTsgaWYgKCR0bHYgPT0g
TlVMTCkgeyBicmVhazsgfSBteV9wcmludCgibGVuOiB7JHRsdlsnbGVuJ119LCB0eXBlOiB7JHRs
dlsndHlwZSddfSIpOyBpZiAoZW1wdHkoJHR5cGUpIHx8ICR0eXBlID09ICgkdGx2Wyd0eXBlJ10g
JiB+VExWX01FVEFfVFlQRV9DT01QUkVTU0VEKSkgeyBteV9wcmludCgiRm91bmQgb25lIGF0IG9m
ZnNldCAkb2Zmc2V0Iik7IGFycmF5X3B1c2goJGFsbCwgJHRsdik7IH0gJG9mZnNldCArPSAkdGx2
WydsZW4nXTsgfSByZXR1cm4gJGFsbDsgfSBmdW5jdGlvbiByZWdpc3Rlcl9zb2NrZXQoJHNvY2ss
ICRpcGFkZHI9bnVsbCwgJHBvcnQ9bnVsbCkgeyBnbG9iYWwgJHJlc291cmNlX3R5cGVfbWFwLCAk
dWRwX2hvc3RfbWFwOyBteV9wcmludCgiUmVnaXN0ZXJpbmcgc29ja2V0ICRzb2NrIGZvciAoJGlw
YWRkcjokcG9ydCkiKTsgJHJlc291cmNlX3R5cGVfbWFwWyhpbnQpJHNvY2tdID0gJ3NvY2tldCc7
IGlmICgkaXBhZGRyKSB7ICR1ZHBfaG9zdF9tYXBbKGludCkkc29ja10gPSBhcnJheSgkaXBhZGRy
LCAkcG9ydCk7IH0gfSBmdW5jdGlvbiByZWdpc3Rlcl9zdHJlYW0oJHN0cmVhbSwgJGlwYWRkcj1u
dWxsLCAkcG9ydD1udWxsKSB7IGdsb2JhbCAkcmVzb3VyY2VfdHlwZV9tYXAsICR1ZHBfaG9zdF9t
YXA7IG15X3ByaW50KCJSZWdpc3RlcmluZyBzdHJlYW0gJHN0cmVhbSBmb3IgKCRpcGFkZHI6JHBv
cnQpIik7ICRyZXNvdXJjZV90eXBlX21hcFsoaW50KSRzdHJlYW1dID0gJ3N0cmVhbSc7IGlmICgk
aXBhZGRyKSB7ICR1ZHBfaG9zdF9tYXBbKGludCkkc3RyZWFtXSA9IGFycmF5KCRpcGFkZHIsICRw
b3J0KTsgfSB9IGZ1bmN0aW9uIGNvbm5lY3QoJGlwYWRkciwgJHBvcnQsICRwcm90bz0ndGNwJykg
eyBteV9wcmludCgiRG9pbmcgY29ubmVjdCgkaXBhZGRyLCAkcG9ydCkiKTsgJHNvY2sgPSBmYWxz
ZTsgJGlwZiA9IFdJTl9BRl9JTkVUOyAkcmF3X2lwID0gJGlwYWRkcjsgaWYgKEZBTFNFICE9PSBz
dHJwb3MoJGlwYWRkciwgIjoiKSkgeyAkaXBmID0gV0lOX0FGX0lORVQ2OyAkaXBhZGRyID0gIlsi
LiAkcmF3X2lwIC4iXSI7IH0gaWYgKGlzX2NhbGxhYmxlKCdzdHJlYW1fc29ja2V0X2NsaWVudCcp
KSB7IG15X3ByaW50KCJzdHJlYW1fc29ja2V0X2NsaWVudCh7JHByb3RvfTovL3skaXBhZGRyfTp7
JHBvcnR9KSIpOyBpZiAoJHByb3RvID09ICdzc2wnKSB7ICRzb2NrID0gc3RyZWFtX3NvY2tldF9j
bGllbnQoInNzbDovL3skaXBhZGRyfTp7JHBvcnR9IiwgJGVycm5vLCAkZXJyc3RyLCA1LCBTVFJF
QU1fQ0xJRU5UX0FTWU5DX0NPTk5FQ1QpOyBpZiAoISRzb2NrKSB7IHJldHVybiBmYWxzZTsgfSBz
dHJlYW1fc2V0X2Jsb2NraW5nKCRzb2NrLCAwKTsgcmVnaXN0ZXJfc3RyZWFtKCRzb2NrKTsgfSBl
bHNlaWYgKCRwcm90byA9PSAndGNwJykgeyAkc29jayA9IHN0cmVhbV9zb2NrZXRfY2xpZW50KCJ0
Y3A6Ly97JGlwYWRkcn06eyRwb3J0fSIpOyBpZiAoISRzb2NrKSB7IHJldHVybiBmYWxzZTsgfSBy
ZWdpc3Rlcl9zdHJlYW0oJHNvY2spOyB9IGVsc2VpZiAoJHByb3RvID09ICd1ZHAnKSB7ICRzb2Nr
ID0gc3RyZWFtX3NvY2tldF9jbGllbnQoInVkcDovL3skaXBhZGRyfTp7JHBvcnR9Iik7IGlmICgh
JHNvY2spIHsgcmV0dXJuIGZhbHNlOyB9IHJlZ2lzdGVyX3N0cmVhbSgkc29jaywgJGlwYWRkciwg
JHBvcnQpOyB9IH0gZWxzZSBpZiAoaXNfY2FsbGFibGUoJ2Zzb2Nrb3BlbicpKSB7IG15X3ByaW50
KCJmc29ja29wZW4iKTsgaWYgKCRwcm90byA9PSAnc3NsJykgeyAkc29jayA9IGZzb2Nrb3Blbigi
c3NsOi8veyRpcGFkZHJ9OnskcG9ydH0iKTsgc3RyZWFtX3NldF9ibG9ja2luZygkc29jaywgMCk7
IHJlZ2lzdGVyX3N0cmVhbSgkc29jayk7IH0gZWxzZWlmICgkcHJvdG8gPT0gJ3RjcCcpIHsgJHNv
Y2sgPSBmc29ja29wZW4oJGlwYWRkciwgJHBvcnQpOyBpZiAoISRzb2NrKSB7IHJldHVybiBmYWxz
ZTsgfSBpZiAoaXNfY2FsbGFibGUoJ3NvY2tldF9zZXRfdGltZW91dCcpKSB7IHNvY2tldF9zZXRf
dGltZW91dCgkc29jaywgMik7IH0gcmVnaXN0ZXJfc3RyZWFtKCRzb2NrKTsgfSBlbHNlIHsgJHNv
Y2sgPSBmc29ja29wZW4oJHByb3RvLiI6Ly8iLiRpcGFkZHIsJHBvcnQpOyBpZiAoISRzb2NrKSB7
IHJldHVybiBmYWxzZTsgfSByZWdpc3Rlcl9zdHJlYW0oJHNvY2ssICRpcGFkZHIsICRwb3J0KTsg
fSB9IGVsc2UgaWYgKGlzX2NhbGxhYmxlKCdzb2NrZXRfY3JlYXRlJykpIHsgbXlfcHJpbnQoInNv
Y2tldF9jcmVhdGUiKTsgaWYgKCRwcm90byA9PSAndGNwJykgeyAkc29jayA9IHNvY2tldF9jcmVh
dGUoJGlwZiwgU09DS19TVFJFQU0sIFNPTF9UQ1ApOyAkcmVzID0gc29ja2V0X2Nvbm5lY3QoJHNv
Y2ssICRyYXdfaXAsICRwb3J0KTsgaWYgKCEkcmVzKSB7IHJldHVybiBmYWxzZTsgfSByZWdpc3Rl
cl9zb2NrZXQoJHNvY2spOyB9IGVsc2VpZiAoJHByb3RvID09ICd1ZHAnKSB7ICRzb2NrID0gc29j
a2V0X2NyZWF0ZSgkaXBmLCBTT0NLX0RHUkFNLCBTT0xfVURQKTsgcmVnaXN0ZXJfc29ja2V0KCRz
b2NrLCAkcmF3X2lwLCAkcG9ydCk7IH0gfSByZXR1cm4gJHNvY2s7IH0gZnVuY3Rpb24gZW9mKCRy
ZXNvdXJjZSkgeyAkcmV0ID0gZmFsc2U7IHN3aXRjaCAoZ2V0X3J0eXBlKCRyZXNvdXJjZSkpIHsg
Y2FzZSAnc29ja2V0JzogYnJlYWs7IGNhc2UgJ3N0cmVhbSc6ICRyZXQgPSBmZW9mKCRyZXNvdXJj
ZSk7IGJyZWFrOyB9IHJldHVybiAkcmV0OyB9IGZ1bmN0aW9uIGNsb3NlKCRyZXNvdXJjZSkgeyBt
eV9wcmludCgiQ2xvc2luZyByZXNvdXJjZSAkcmVzb3VyY2UiKTsgZ2xvYmFsICRyZXNvdXJjZV90
eXBlX21hcCwgJHVkcF9ob3N0X21hcDsgcmVtb3ZlX3JlYWRlcigkcmVzb3VyY2UpOyBzd2l0Y2gg
KGdldF9ydHlwZSgkcmVzb3VyY2UpKSB7IGNhc2UgJ3NvY2tldCc6ICRyZXQgPSBzb2NrZXRfY2xv
c2UoJHJlc291cmNlKTsgYnJlYWs7IGNhc2UgJ3N0cmVhbSc6ICRyZXQgPSBmY2xvc2UoJHJlc291
cmNlKTsgYnJlYWs7IH0gaWYgKGFycmF5X2tleV9leGlzdHMoKGludCkkcmVzb3VyY2UsICRyZXNv
dXJjZV90eXBlX21hcCkpIHsgdW5zZXQoJHJlc291cmNlX3R5cGVfbWFwWyhpbnQpJHJlc291cmNl
XSk7IH0gaWYgKGFycmF5X2tleV9leGlzdHMoKGludCkkcmVzb3VyY2UsICR1ZHBfaG9zdF9tYXAp
KSB7IG15X3ByaW50KCJSZW1vdmluZyAkcmVzb3VyY2UgZnJvbSB1ZHBfaG9zdF9tYXAiKTsgdW5z
ZXQoJHVkcF9ob3N0X21hcFsoaW50KSRyZXNvdXJjZV0pOyB9IHJldHVybiAkcmV0OyB9IGZ1bmN0
aW9uIHJlYWQoJHJlc291cmNlLCAkbGVuPW51bGwpIHsgZ2xvYmFsICR1ZHBfaG9zdF9tYXA7IGlm
IChpc19udWxsKCRsZW4pKSB7ICRsZW4gPSA4MTkyOyB9ICRidWZmID0gJyc7IHN3aXRjaCAoZ2V0
X3J0eXBlKCRyZXNvdXJjZSkpIHsgY2FzZSAnc29ja2V0JzogaWYgKGFycmF5X2tleV9leGlzdHMo
KGludCkkcmVzb3VyY2UsICR1ZHBfaG9zdF9tYXApKSB7IG15X3ByaW50KCJSZWFkaW5nIFVEUCBz
b2NrZXQiKTsgbGlzdCgkaG9zdCwkcG9ydCkgPSAkdWRwX2hvc3RfbWFwWyhpbnQpJHJlc291cmNl
XTsgc29ja2V0X3JlY3Zmcm9tKCRyZXNvdXJjZSwgJGJ1ZmYsICRsZW4sIFBIUF9CSU5BUllfUkVB
RCwgJGhvc3QsICRwb3J0KTsgfSBlbHNlIHsgbXlfcHJpbnQoIlJlYWRpbmcgVENQIHNvY2tldCIp
OyAkYnVmZiAuPSBzb2NrZXRfcmVhZCgkcmVzb3VyY2UsICRsZW4sIFBIUF9CSU5BUllfUkVBRCk7
IH0gYnJlYWs7IGNhc2UgJ3N0cmVhbSc6IGdsb2JhbCAkbXNnc29jazsgJHIgPSBBcnJheSgkcmVz
b3VyY2UpOyBteV9wcmludCgiQ2FsbGluZyBzZWxlY3QgdG8gc2VlIGlmIHRoZXJlJ3MgZGF0YSBv
biAkcmVzb3VyY2UiKTsgJGxhc3RfcmVxdWVzdGVkX2xlbiA9IDA7IHdoaWxlICh0cnVlKSB7ICR3
PU5VTEw7JGU9TlVMTDskdD0wOyAkY250ID0gc3RyZWFtX3NlbGVjdCgkciwgJHcsICRlLCAkdCk7
IGlmICgkY250ID09PSAwKSB7IGJyZWFrOyB9IGlmICgkY250ID09PSBmYWxzZSBvciBmZW9mKCRy
ZXNvdXJjZSkpIHsgbXlfcHJpbnQoIkNoZWNraW5nIGZvciBmYWlsZWQgcmVhZC4uLiIpOyBpZiAo
ZW1wdHkoJGJ1ZmYpKSB7IG15X3ByaW50KCItLS0tIEVPRiBPTiAkcmVzb3VyY2UgLS0tLSIpOyAk
YnVmZiA9IGZhbHNlOyB9IGJyZWFrOyB9ICRtZCA9IHN0cmVhbV9nZXRfbWV0YV9kYXRhKCRyZXNv
dXJjZSk7IGR1bXBfYXJyYXkoJG1kLCAiTWV0YWRhdGEgZm9yIHskcmVzb3VyY2V9Iik7IGlmICgk
bWRbJ3VucmVhZF9ieXRlcyddID4gMCkgeyAkbGFzdF9yZXF1ZXN0ZWRfbGVuID0gbWluKCRsZW4s
ICRtZFsndW5yZWFkX2J5dGVzJ10pOyAkYnVmZiAuPSBmcmVhZCgkcmVzb3VyY2UsICRsYXN0X3Jl
cXVlc3RlZF9sZW4pOyBicmVhazsgfSBlbHNlIHsgJHRtcCA9IGZyZWFkKCRyZXNvdXJjZSwgJGxl
bik7ICRsYXN0X3JlcXVlc3RlZF9sZW4gPSAkbGVuOyAkYnVmZiAuPSAkdG1wOyBpZiAoc3RybGVu
KCR0bXApIDwgJGxlbikgeyBicmVhazsgfSB9IGlmICgkcmVzb3VyY2UgIT0gJG1zZ3NvY2spIHsg
bXlfcHJpbnQoImJ1ZmY6ICckYnVmZiciKTsgfSAkciA9IEFycmF5KCRyZXNvdXJjZSk7IH0gbXlf
cHJpbnQoc3ByaW50ZigiRG9uZSB3aXRoIHRoZSBiaWcgcmVhZCBsb29wIG9uICRyZXNvdXJjZSwg
Z290ICVkIGJ5dGVzLCBhc2tlZCBmb3IgJWQgYnl0ZXMiLCBzdHJsZW4oJGJ1ZmYpLCAkbGFzdF9y
ZXF1ZXN0ZWRfbGVuKSk7IGJyZWFrOyBkZWZhdWx0OiAkY2lkID0gZ2V0X2NoYW5uZWxfaWRfZnJv
bV9yZXNvdXJjZSgkcmVzb3VyY2UpOyAkYyA9IGdldF9jaGFubmVsX2J5X2lkKCRjaWQpOyBpZiAo
JGMgYW5kICRjWydkYXRhJ10pIHsgJGJ1ZmYgPSBzdWJzdHIoJGNbJ2RhdGEnXSwgMCwgJGxlbik7
ICRjWydkYXRhJ10gPSBzdWJzdHIoJGNbJ2RhdGEnXSwgJGxlbik7IG15X3ByaW50KCJBaGEhIGdv
dCBzb21lIGxlZnRvdmVycyIpOyB9IGVsc2UgeyBteV9wcmludCgiV3RmIGRvbid0IGtub3cgaG93
IHRvIHJlYWQgZnJvbSByZXNvdXJjZSAkcmVzb3VyY2UsIGM6ICRjIik7IGlmIChpc19hcnJheSgk
YykpIHsgZHVtcF9hcnJheSgkYyk7IH0gYnJlYWs7IH0gfSBteV9wcmludChzcHJpbnRmKCJSZWFk
ICVkIGJ5dGVzIiwgc3RybGVuKCRidWZmKSkpOyByZXR1cm4gJGJ1ZmY7IH0gZnVuY3Rpb24gd3Jp
dGUoJHJlc291cmNlLCAkYnVmZiwgJGxlbj0wKSB7IGdsb2JhbCAkdWRwX2hvc3RfbWFwOyBpZiAo
JGxlbiA9PSAwKSB7ICRsZW4gPSBzdHJsZW4oJGJ1ZmYpOyB9ICRjb3VudCA9IGZhbHNlOyBzd2l0
Y2ggKGdldF9ydHlwZSgkcmVzb3VyY2UpKSB7IGNhc2UgJ3NvY2tldCc6IGlmIChhcnJheV9rZXlf
ZXhpc3RzKChpbnQpJHJlc291cmNlLCAkdWRwX2hvc3RfbWFwKSkgeyBteV9wcmludCgiV3JpdGlu
ZyBVRFAgc29ja2V0Iik7IGxpc3QoJGhvc3QsJHBvcnQpID0gJHVkcF9ob3N0X21hcFsoaW50KSRy
ZXNvdXJjZV07ICRjb3VudCA9IHNvY2tldF9zZW5kdG8oJHJlc291cmNlLCAkYnVmZiwgJGxlbiwg
JGhvc3QsICRwb3J0KTsgfSBlbHNlIHsgJGNvdW50ID0gc29ja2V0X3dyaXRlKCRyZXNvdXJjZSwg
JGJ1ZmYsICRsZW4pOyB9IGJyZWFrOyBjYXNlICdzdHJlYW0nOiAkY291bnQgPSBmd3JpdGUoJHJl
c291cmNlLCAkYnVmZiwgJGxlbik7IGZmbHVzaCgkcmVzb3VyY2UpOyBicmVhazsgZGVmYXVsdDog
bXlfcHJpbnQoIld0ZiBkb24ndCBrbm93IGhvdyB0byB3cml0ZSB0byByZXNvdXJjZSAkcmVzb3Vy
Y2UiKTsgYnJlYWs7IH0gcmV0dXJuICRjb3VudDsgfSBmdW5jdGlvbiBnZXRfcnR5cGUoJHJlc291
cmNlKSB7IGdsb2JhbCAkcmVzb3VyY2VfdHlwZV9tYXA7IGlmIChhcnJheV9rZXlfZXhpc3RzKChp
bnQpJHJlc291cmNlLCAkcmVzb3VyY2VfdHlwZV9tYXApKSB7IHJldHVybiAkcmVzb3VyY2VfdHlw
ZV9tYXBbKGludCkkcmVzb3VyY2VdOyB9IHJldHVybiBmYWxzZTsgfSBmdW5jdGlvbiBzZWxlY3Qo
JiRyLCAmJHcsICYkZSwgJHR2X3NlYz0wLCAkdHZfdXNlYz0wKSB7ICRzdHJlYW1zX3IgPSBhcnJh
eSgpOyAkc3RyZWFtc193ID0gYXJyYXkoKTsgJHN0cmVhbXNfZSA9IGFycmF5KCk7ICRzb2NrZXRz
X3IgPSBhcnJheSgpOyAkc29ja2V0c193ID0gYXJyYXkoKTsgJHNvY2tldHNfZSA9IGFycmF5KCk7
IGlmICgkcikgeyBmb3JlYWNoICgkciBhcyAkcmVzb3VyY2UpIHsgc3dpdGNoIChnZXRfcnR5cGUo
JHJlc291cmNlKSkgeyBjYXNlICdzb2NrZXQnOiAkc29ja2V0c19yW10gPSAkcmVzb3VyY2U7IGJy
ZWFrOyBjYXNlICdzdHJlYW0nOiAkc3RyZWFtc19yW10gPSAkcmVzb3VyY2U7IGJyZWFrOyBkZWZh
dWx0OiBteV9wcmludCgiVW5rbm93biByZXNvdXJjZSB0eXBlIik7IGJyZWFrOyB9IH0gfSBpZiAo
JHcpIHsgZm9yZWFjaCAoJHcgYXMgJHJlc291cmNlKSB7IHN3aXRjaCAoZ2V0X3J0eXBlKCRyZXNv
dXJjZSkpIHsgY2FzZSAnc29ja2V0JzogJHNvY2tldHNfd1tdID0gJHJlc291cmNlOyBicmVhazsg
Y2FzZSAnc3RyZWFtJzogJHN0cmVhbXNfd1tdID0gJHJlc291cmNlOyBicmVhazsgZGVmYXVsdDog
bXlfcHJpbnQoIlVua25vd24gcmVzb3VyY2UgdHlwZSIpOyBicmVhazsgfSB9IH0gaWYgKCRlKSB7
IGZvcmVhY2ggKCRlIGFzICRyZXNvdXJjZSkgeyBzd2l0Y2ggKGdldF9ydHlwZSgkcmVzb3VyY2Up
KSB7IGNhc2UgJ3NvY2tldCc6ICRzb2NrZXRzX2VbXSA9ICRyZXNvdXJjZTsgYnJlYWs7IGNhc2Ug
J3N0cmVhbSc6ICRzdHJlYW1zX2VbXSA9ICRyZXNvdXJjZTsgYnJlYWs7IGRlZmF1bHQ6IG15X3By
aW50KCJVbmtub3duIHJlc291cmNlIHR5cGUiKTsgYnJlYWs7IH0gfSB9ICRuX3NvY2tldHMgPSBj
b3VudCgkc29ja2V0c19yKSArIGNvdW50KCRzb2NrZXRzX3cpICsgY291bnQoJHNvY2tldHNfZSk7
ICRuX3N0cmVhbXMgPSBjb3VudCgkc3RyZWFtc19yKSArIGNvdW50KCRzdHJlYW1zX3cpICsgY291
bnQoJHN0cmVhbXNfZSk7ICRyID0gYXJyYXkoKTsgJHcgPSBhcnJheSgpOyAkZSA9IGFycmF5KCk7
IGlmIChjb3VudCgkc29ja2V0c19yKT09MCkgeyAkc29ja2V0c19yID0gbnVsbDsgfSBpZiAoY291
bnQoJHNvY2tldHNfdyk9PTApIHsgJHNvY2tldHNfdyA9IG51bGw7IH0gaWYgKGNvdW50KCRzb2Nr
ZXRzX2UpPT0wKSB7ICRzb2NrZXRzX2UgPSBudWxsOyB9IGlmIChjb3VudCgkc3RyZWFtc19yKT09
MCkgeyAkc3RyZWFtc19yID0gbnVsbDsgfSBpZiAoY291bnQoJHN0cmVhbXNfdyk9PTApIHsgJHN0
cmVhbXNfdyA9IG51bGw7IH0gaWYgKGNvdW50KCRzdHJlYW1zX2UpPT0wKSB7ICRzdHJlYW1zX2Ug
PSBudWxsOyB9ICRjb3VudCA9IDA7IGlmICgkbl9zb2NrZXRzID4gMCkgeyAkcmVzID0gc29ja2V0
X3NlbGVjdCgkc29ja2V0c19yLCAkc29ja2V0c193LCAkc29ja2V0c19lLCAkdHZfc2VjLCAkdHZf
dXNlYyk7IGlmIChmYWxzZSA9PT0gJHJlcykgeyByZXR1cm4gZmFsc2U7IH0gaWYgKGlzX2FycmF5
KCRyKSAmJiBpc19hcnJheSgkc29ja2V0c19yKSkgeyAkciA9IGFycmF5X21lcmdlKCRyLCAkc29j
a2V0c19yKTsgfSBpZiAoaXNfYXJyYXkoJHcpICYmIGlzX2FycmF5KCRzb2NrZXRzX3cpKSB7ICR3
ID0gYXJyYXlfbWVyZ2UoJHcsICRzb2NrZXRzX3cpOyB9IGlmIChpc19hcnJheSgkZSkgJiYgaXNf
YXJyYXkoJHNvY2tldHNfZSkpIHsgJGUgPSBhcnJheV9tZXJnZSgkZSwgJHNvY2tldHNfZSk7IH0g
JGNvdW50ICs9ICRyZXM7IH0gaWYgKCRuX3N0cmVhbXMgPiAwKSB7ICRyZXMgPSBzdHJlYW1fc2Vs
ZWN0KCRzdHJlYW1zX3IsICRzdHJlYW1zX3csICRzdHJlYW1zX2UsICR0dl9zZWMsICR0dl91c2Vj
KTsgaWYgKGZhbHNlID09PSAkcmVzKSB7IHJldHVybiBmYWxzZTsgfSBpZiAoaXNfYXJyYXkoJHIp
ICYmIGlzX2FycmF5KCRzdHJlYW1zX3IpKSB7ICRyID0gYXJyYXlfbWVyZ2UoJHIsICRzdHJlYW1z
X3IpOyB9IGlmIChpc19hcnJheSgkdykgJiYgaXNfYXJyYXkoJHN0cmVhbXNfdykpIHsgJHcgPSBh
cnJheV9tZXJnZSgkdywgJHN0cmVhbXNfdyk7IH0gaWYgKGlzX2FycmF5KCRlKSAmJiBpc19hcnJh
eSgkc3RyZWFtc19lKSkgeyAkZSA9IGFycmF5X21lcmdlKCRlLCAkc3RyZWFtc19lKTsgfSAkY291
bnQgKz0gJHJlczsgfSByZXR1cm4gJGNvdW50OyB9IGZ1bmN0aW9uIGFkZF9yZWFkZXIoJHJlc291
cmNlKSB7IGdsb2JhbCAkcmVhZGVyczsgaWYgKGlzX3Jlc291cmNlKCRyZXNvdXJjZSkgJiYgIWlu
X2FycmF5KCRyZXNvdXJjZSwgJHJlYWRlcnMpKSB7ICRyZWFkZXJzW10gPSAkcmVzb3VyY2U7IH0g
fSBmdW5jdGlvbiByZW1vdmVfcmVhZGVyKCRyZXNvdXJjZSkgeyBnbG9iYWwgJHJlYWRlcnM7IGlm
IChpbl9hcnJheSgkcmVzb3VyY2UsICRyZWFkZXJzKSkgeyBmb3JlYWNoICgkcmVhZGVycyBhcyAk
a2V5ID0+ICRyKSB7IGlmICgkciA9PSAkcmVzb3VyY2UpIHsgdW5zZXQoJHJlYWRlcnNbJGtleV0p
OyB9IH0gfSB9IG9iX2ltcGxpY2l0X2ZsdXNoKCk7IGlmIChNWV9ERUJVR0dJTkcpIHsgZXJyb3Jf
cmVwb3J0aW5nKEVfQUxMKTsgfSBlbHNlIHsgZXJyb3JfcmVwb3J0aW5nKDApOyB9IEBpZ25vcmVf
dXNlcl9hYm9ydCh0cnVlKTsgQHNldF90aW1lX2xpbWl0KDApOyBAaWdub3JlX3VzZXJfYWJvcnQo
MSk7IEBpbmlfc2V0KCdtYXhfZXhlY3V0aW9uX3RpbWUnLDApOyAkR0xPQkFMU1snVVVJRCddID0g
UEFZTE9BRF9VVUlEOyAkR0xPQkFMU1snU0VTU0lPTl9HVUlEJ10gPSBTRVNTSU9OX0dVSUQ7ICRH
TE9CQUxTWydBRVNfS0VZJ10gPSBudWxsOyAkR0xPQkFMU1snQUVTX0VOQUJMRUQnXSA9IGZhbHNl
OyBpZiAoIWlzc2V0KCRHTE9CQUxTWydtc2dzb2NrJ10pKSB7ICRpcGFkZHIgPSAnMTI3LjAuMC4x
JzsgJHBvcnQgPSA0NDQ0OyBteV9wcmludCgiRG9uJ3QgaGF2ZSBhIG1zZ3NvY2ssIHRyeWluZyB0
byBjb25uZWN0KCRpcGFkZHIsICRwb3J0KSIpOyAkbXNnc29jayA9IGNvbm5lY3QoJGlwYWRkciwg
JHBvcnQpOyBpZiAoISRtc2dzb2NrKSB7IGRpZSgpOyB9IH0gZWxzZSB7ICRtc2dzb2NrID0gJEdM
T0JBTFNbJ21zZ3NvY2snXTsgJG1zZ3NvY2tfdHlwZSA9ICRHTE9CQUxTWydtc2dzb2NrX3R5cGUn
XTsgc3dpdGNoICgkbXNnc29ja190eXBlKSB7IGNhc2UgJ3NvY2tldCc6IHJlZ2lzdGVyX3NvY2tl
dCgkbXNnc29jayk7IGJyZWFrOyBjYXNlICdzdHJlYW0nOiBkZWZhdWx0OiByZWdpc3Rlcl9zdHJl
YW0oJG1zZ3NvY2spOyB9IH0gYWRkX3JlYWRlcigkbXNnc29jayk7ICRyPSRHTE9CQUxTWydyZWFk
ZXJzJ107ICR3PU5VTEw7JGU9TlVMTDskdD0xOyB3aGlsZSAoZmFsc2UgIT09ICgkY250ID0gc2Vs
ZWN0KCRyLCAkdywgJGUsICR0KSkpIHsgJHJlYWRfZmFpbGVkID0gZmFsc2U7IGZvciAoJGkgPSAw
OyAkaSA8ICRjbnQ7ICRpKyspIHsgJHJlYWR5ID0gJHJbJGldOyBpZiAoJHJlYWR5ID09ICRtc2dz
b2NrKSB7ICRwYWNrZXQgPSByZWFkKCRtc2dzb2NrLCAzMik7IG15X3ByaW50KHNwcmludGYoIlJl
YWQgcmV0dXJuZWQgJXMgYnl0ZXMiLCBzdHJsZW4oJHBhY2tldCkpKTsgaWYgKGZhbHNlPT0kcGFj
a2V0KSB7IG15X3ByaW50KCJSZWFkIGZhaWxlZCBvbiBtYWluIHNvY2tldCwgYmFpbGluZyIpOyBi
cmVhayAyOyB9ICR4b3IgPSBzdWJzdHIoJHBhY2tldCwgMCwgNCk7ICRoZWFkZXIgPSB4b3JfYnl0
ZXMoJHhvciwgc3Vic3RyKCRwYWNrZXQsIDQsIDI4KSk7ICRsZW5fYXJyYXkgPSB1bnBhY2soIk5s
ZW4iLCBzdWJzdHIoJGhlYWRlciwgMjAsIDQpKTsgJGxlbiA9ICRsZW5fYXJyYXlbJ2xlbiddICsg
MzIgLSA4OyB3aGlsZSAoc3RybGVuKCRwYWNrZXQpIDwgJGxlbikgeyAkcGFja2V0IC49IHJlYWQo
JG1zZ3NvY2ssICRsZW4tc3RybGVuKCRwYWNrZXQpKTsgfSAkcmVzcG9uc2UgPSBjcmVhdGVfcmVz
cG9uc2UoZGVjcnlwdF9wYWNrZXQoeG9yX2J5dGVzKCR4b3IsICRwYWNrZXQpKSk7IHdyaXRlX3Rs
dl90b19zb2NrZXQoJG1zZ3NvY2ssICRyZXNwb25zZSk7IH0gZWxzZSB7ICRkYXRhID0gcmVhZCgk
cmVhZHkpOyBpZiAoZmFsc2UgPT09ICRkYXRhKSB7IGhhbmRsZV9kZWFkX3Jlc291cmNlX2NoYW5u
ZWwoJHJlYWR5KTsgfSBlbHNlaWYgKHN0cmxlbigkZGF0YSkgPiAwKXsgbXlfcHJpbnQoc3ByaW50
ZigiUmVhZCByZXR1cm5lZCAlcyBieXRlcyIsIHN0cmxlbigkZGF0YSkpKTsgJHJlcXVlc3QgPSBo
YW5kbGVfcmVzb3VyY2VfcmVhZF9jaGFubmVsKCRyZWFkeSwgJGRhdGEpOyBpZiAoJHJlcXVlc3Qp
IHsgd3JpdGVfdGx2X3RvX3NvY2tldCgkbXNnc29jaywgJHJlcXVlc3QpOyB9IH0gfSB9ICRyID0g
JEdMT0JBTFNbJ3JlYWRlcnMnXTsgfSBteV9wcmludCgiRmluaXNoZWQiKTsgbXlfcHJpbnQoIi0t
LS0tLS0tLS0tLS0tLS0tLS0tIik7IGNsb3NlKCRtc2dzb2NrKTs=