<?xml version="1.0" encoding="utf-8"?>
<otrs_package version="1.1">
<Name>TestSMTP</Name>
<Version>0.0.1</Version>
<Vendor>Renee Baecker, Perl-Services.de</Vendor>
<License>GNU AFFERO GENERAL PUBLIC LICENSE Version 3, November 2007</License>
<Description Lang="en">A module that restricts email addresses.</Description>
<Description Lang="de">Ein Modul, das den Emailversand auf Testsystemen einschränkt.</Description>
<Framework>3.0.x</Framework>
<Filelist>
<File Permission="644" Location="Kernel/Config/Files/TestSMTP.xml" Encode="Base64">PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiID8+CjxvdHJzX2NvbmZpZyB2ZXJz
aW9uPSIxLjAiIGluaXQ9IkFwcGxpY2F0aW9uIj4KICAgIDxDVlM+JElkOiBUZXN0U01UUC54bWws
diAxLjEgMjAxMS8wMi8xMiAyMjo1NzoyMiByZWIgRXhwICQ8L0NWUz4KICAgIDxDb25maWdJdGVt
IE5hbWU9IlRlc3RTTVRQOjpSZWFsUmVjaXBpZW50cyIgUmVxdWlyZWQ9IjAiIFZhbGlkPSIxIj4K
ICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5UaG9zZSByZWNpcGllbnRzIGFy
ZSBub3QgcmVwbGFjZWQuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8R3JvdXA+VGVzdFNNVFA8L0dy
b3VwPgogICAgICAgIDxTdWJHcm91cD5Db3JlPC9TdWJHcm91cD4KICAgICAgICA8U2V0dGluZz4K
ICAgICAgICAgICAgPEFycmF5PgogICAgICAgICAgICAgICAgPEl0ZW0+eW91QHlvdXItY29tcGFu
eS50bGQ8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbT5xYUB5b3VyLWNvbXBhbnkudGxkPC9J
dGVtPgogICAgICAgICAgICA8L0FycmF5PgogICAgICAgIDwvU2V0dGluZz4KICAgIDwvQ29uZmln
SXRlbT4KICAgIDxDb25maWdJdGVtIE5hbWU9IlRlc3RTTVRQOjpTZW5kVG8iIFJlcXVpcmVkPSIw
IiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+QWxsIG1h
aWxzIHRoYXQgYXJlIG5vdCBzZW50IHRvIFJlYWxSZWNpcGllbnRzIGFyZSBzZW50IHRvIHRob3Nl
IG1haWwgYWRkcmVzc2VzLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPEdyb3VwPlRlc3RTTVRQPC9H
cm91cD4KICAgICAgICA8U3ViR3JvdXA+Q29yZTwvU3ViR3JvdXA+CiAgICAgICAgPFNldHRpbmc+
CiAgICAgICAgICAgIDxBcnJheT4KICAgICAgICAgICAgICAgIDxJdGVtPnlvdUB5b3VyLWNvbXBh
bnkudGxkPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0+eW91cl9ib3NzQHlvdXItY29tcGFu
eS50bGQ8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbT5xYUB5b3VyLWNvbXBhbnkudGxkPC9J
dGVtPgogICAgICAgICAgICA8L0FycmF5PgogICAgICAgIDwvU2V0dGluZz4KICAgIDwvQ29uZmln
SXRlbT4KPC9vdHJzX2NvbmZpZz4K
</File>
<File Permission="644" Location="Kernel/System/Email.pm" Encode="Base64">IyAtLQojIEtlcm5lbC9TeXN0ZW0vRW1haWwucG0gLSB0aGUgZ2xvYmFsIGVtYWlsIHNlbmQgbW9k
dWxlCiMgQ29weXJpZ2h0IChDKSAyMDAxLTIwMTAgT1RSUyBBRywgaHR0cDovL290cnMub3JnLwoj
IC0tCiMgJElkOiBFbWFpbC5wbSx2IDEuNzAgMjAxMC8wNi8xNyAyMTozOTo0MCBjciBFeHAgJAoj
IC0tCiMgVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZv
ciBkZXRhaWxzLCBzZWUKIyB0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGlu
Zm9ybWF0aW9uIChBR1BMKS4gSWYgeW91CiMgZGlkIG5vdCByZWNlaXZlIHRoaXMgZmlsZSwgc2Vl
IGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9hZ3BsLnR4dC4KIyAtLQoKcGFja2FnZSBLZXJu
ZWw6OlN5c3RlbTo6RW1haWw7Cgp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7Cgp1c2UgTUlNRTo6
RW50aXR5Owp1c2UgTWFpbDo6QWRkcmVzczsKCnVzZSBLZXJuZWw6OlN5c3RlbTo6Q3J5cHQ7CnVz
ZSBLZXJuZWw6OlN5c3RlbTo6SFRNTFV0aWxzOwoKdXNlIHZhcnMgcXcoJFZFUlNJT04pOwokVkVS
U0lPTiA9IHF3KCRSZXZpc2lvbjogMS43MCAkKSBbMV07Cgo9aGVhZDEgTkFNRQoKS2VybmVsOjpT
eXN0ZW06OkVtYWlsIC0gdG8gc2VuZCBlbWFpbAoKPWhlYWQxIFNZTk9QU0lTCgpHbG9iYWwgbW9k
dWxlIHRvIHNlbmQgZW1haWwgdmlhIHNlbmRtYWlsIG9yIFNNVFAuCgo9aGVhZDEgUFVCTElDIElO
VEVSRkFDRQoKPW92ZXIgNAoKPWN1dAoKPWl0ZW0gbmV3KCkKCmNyZWF0ZSBhbiBvYmplY3QKCiAg
ICB1c2UgS2VybmVsOjpDb25maWc7CiAgICB1c2UgS2VybmVsOjpTeXN0ZW06OkVuY29kZTsKICAg
IHVzZSBLZXJuZWw6OlN5c3RlbTo6TG9nOwogICAgdXNlIEtlcm5lbDo6U3lzdGVtOjpNYWluOwog
ICAgdXNlIEtlcm5lbDo6U3lzdGVtOjpUaW1lOwogICAgdXNlIEtlcm5lbDo6U3lzdGVtOjpEQjsK
ICAgIHVzZSBLZXJuZWw6OlN5c3RlbTo6RW1haWw7CgogICAgbXkgJENvbmZpZ09iamVjdCA9IEtl
cm5lbDo6Q29uZmlnLT5uZXcoKTsKICAgIG15ICRFbmNvZGVPYmplY3QgPSBLZXJuZWw6OlN5c3Rl
bTo6RW5jb2RlLT5uZXcoCiAgICAgICAgQ29uZmlnT2JqZWN0ID0+ICRDb25maWdPYmplY3QsCiAg
ICApOwogICAgbXkgJExvZ09iamVjdCA9IEtlcm5lbDo6U3lzdGVtOjpMb2ctPm5ldygKICAgICAg
ICBDb25maWdPYmplY3QgPT4gJENvbmZpZ09iamVjdCwKICAgICAgICBFbmNvZGVPYmplY3QgPT4g
JEVuY29kZU9iamVjdCwKICAgICk7CiAgICBteSAkTWFpbk9iamVjdCA9IEtlcm5lbDo6U3lzdGVt
OjpNYWluLT5uZXcoCiAgICAgICAgQ29uZmlnT2JqZWN0ID0+ICRDb25maWdPYmplY3QsCiAgICAg
ICAgRW5jb2RlT2JqZWN0ID0+ICRFbmNvZGVPYmplY3QsCiAgICAgICAgTG9nT2JqZWN0ICAgID0+
ICRMb2dPYmplY3QsCiAgICApOwogICAgbXkgJFRpbWVPYmplY3QgPSBLZXJuZWw6OlN5c3RlbTo6
VGltZS0+bmV3KAogICAgICAgIENvbmZpZ09iamVjdCA9PiAkQ29uZmlnT2JqZWN0LAogICAgICAg
IExvZ09iamVjdCAgICA9PiAkTG9nT2JqZWN0LAogICAgKTsKICAgIG15ICREQk9iamVjdCA9IEtl
cm5lbDo6U3lzdGVtOjpEQi0+bmV3KAogICAgICAgIENvbmZpZ09iamVjdCA9PiAkQ29uZmlnT2Jq
ZWN0LAogICAgICAgIEVuY29kZU9iamVjdCA9PiAkRW5jb2RlT2JqZWN0LAogICAgICAgIExvZ09i
amVjdCAgICA9PiAkTG9nT2JqZWN0LAogICAgICAgIE1haW5PYmplY3QgICA9PiAkTWFpbk9iamVj
dCwKICAgICk7CiAgICBteSAkU2VuZE9iamVjdCA9IEtlcm5lbDo6U3lzdGVtOjpFbWFpbC0+bmV3
KAogICAgICAgIENvbmZpZ09iamVjdCA9PiAkQ29uZmlnT2JqZWN0LAogICAgICAgIExvZ09iamVj
dCAgICA9PiAkTG9nT2JqZWN0LAogICAgICAgIERCT2JqZWN0ICAgICA9PiAkREJPYmplY3QsCiAg
ICAgICAgTWFpbk9iamVjdCAgID0+ICRNYWluT2JqZWN0LAogICAgICAgIFRpbWVPYmplY3QgICA9
PiAkVGltZU9iamVjdCwKICAgICAgICBFbmNvZGVPYmplY3QgPT4gJEVuY29kZU9iamVjdCwKICAg
ICk7Cgo9Y3V0CgpzdWIgbmV3IHsKICAgIG15ICggJFR5cGUsICVQYXJhbSApID0gQF87CgogICAg
IyBhbGxvY2F0ZSBuZXcgaGFzaCBmb3Igb2JqZWN0CiAgICBteSAkU2VsZiA9IHslUGFyYW19Owog
ICAgYmxlc3MoICRTZWxmLCAkVHlwZSApOwoKICAgICMgZGVidWcgbGV2ZWwKICAgICRTZWxmLT57
RGVidWd9ID0gJFBhcmFte0RlYnVnfSB8fCAwOwoKICAgICMgY2hlY2sgYWxsIG5lZWRlZCBvYmpl
Y3RzCiAgICBmb3IgKHF3KENvbmZpZ09iamVjdCBMb2dPYmplY3QgREJPYmplY3QgVGltZU9iamVj
dCBNYWluT2JqZWN0IEVuY29kZU9iamVjdCkpIHsKICAgICAgICBkaWUgIkdvdCBubyAkXyIgaWYg
ISRTZWxmLT57JF99OwogICAgfQoKICAgICMgbG9hZCBnZW5lcmF0b3IgYmFja2VuZCBtb2R1bGUK
ICAgIG15ICRHZW5lcmljTW9kdWxlID0gJFNlbGYtPntDb25maWdPYmplY3R9LT5HZXQoJ1NlbmRt
YWlsTW9kdWxlJykKICAgICAgICB8fCAnS2VybmVsOjpTeXN0ZW06OkVtYWlsOjpTZW5kbWFpbCc7
CgogICAgcmV0dXJuIGlmICEkU2VsZi0+e01haW5PYmplY3R9LT5SZXF1aXJlKCRHZW5lcmljTW9k
dWxlKTsKCiAgICAjIGNyZWF0ZSBiYWNrZW5kIG9iamVjdAogICAgJFNlbGYtPntCYWNrZW5kfSA9
ICRHZW5lcmljTW9kdWxlLT5uZXcoJVBhcmFtKTsKCiAgICAkU2VsZi0+e0hUTUxVdGlsc09iamVj
dH0gPSBLZXJuZWw6OlN5c3RlbTo6SFRNTFV0aWxzLT5uZXcoJVBhcmFtKTsKCiAgICByZXR1cm4g
JFNlbGY7Cn0KCj1pdGVtIFNlbmQoKQoKVG8gc2VuZCBhbiBlbWFpbCB3aXRob3V0IGFscmVhZHkg
Y3JlYXRlZCBoZWFkZXI6CgogICAgbXkgJFNlbnQgPSAkU2VuZE9iamVjdC0+U2VuZCgKICAgICAg
ICBGcm9tICAgICAgICA9PiAnbWVAZXhhbXBsZS5jb20nLAogICAgICAgIFRvICAgICAgICAgID0+
ICdmcmllbmRAZXhhbXBsZS5jb20nLAogICAgICAgIFN1YmplY3QgICAgID0+ICdTb21lIHdvcmRz
IScsCiAgICAgICAgQ2hhcnNldCAgICAgPT4gJ2lzby04ODU5LTE1JywKICAgICAgICBNaW1lVHlw
ZSAgICA9PiAndGV4dC9wbGFpbicsICMgInRleHQvcGxhaW4iIG9yICJ0ZXh0L2h0bWwiCiAgICAg
ICAgQm9keSAgICAgICAgPT4gJ1NvbWUgbmljZSB0ZXh0JywKICAgICAgICBJblJlcGx5VG8gICA9
PiAnPHNvbWVtZXNzYWdlaWQtMkBleGFtcGxlLmNvbT4nLAogICAgICAgIFJlZmVyZW5jZXMgID0+
ICc8c29tZW1lc3NhZ2VpZC0xQGV4YW1wbGUuY29tPiA8c29tZW1lc3NhZ2VpZC0yQGV4YW1wbGUu
Y29tPicsCiAgICAgICAgTG9vcCAgICAgICAgPT4gMSwgIyBub3QgcmVxdWlyZWQsIHJlbW92ZXMg
c210cCBmcm9tCiAgICAgICAgQXR0YWNobWVudCAgPT4gWwogICAgICAgICAgICB7CiAgICAgICAg
ICAgICAgICBGaWxlbmFtZSAgICA9PiAic29tZWZpbGUuY3N2IiwKICAgICAgICAgICAgICAgIENv
bnRlbnQgICAgID0+ICRDb250ZW50Q1NWLAogICAgICAgICAgICAgICAgQ29udGVudFR5cGUgPT4g
InRleHQvY3N2IiwKICAgICAgICAgICAgfSwKICAgICAgICAgICAgewogICAgICAgICAgICAgICAg
RmlsZW5hbWUgICAgPT4gInNvbWVmaWxlLnBuZyIsCiAgICAgICAgICAgICAgICBDb250ZW50ICAg
ICA9PiAkQ29udGVudFBORywKICAgICAgICAgICAgICAgIENvbnRlbnRUeXBlID0+ICJpbWFnZS9w
bmciLAogICAgICAgICAgICB9CiAgICAgICAgXSwKICAgICAgICBTaWduID0+IHsKICAgICAgICAg
ICAgVHlwZSAgICA9PiAnUEdQJywKICAgICAgICAgICAgU3ViVHlwZSA9PiAnSW5saW5lfERldGFj
aGVkJywKICAgICAgICAgICAgS2V5ICAgICA9PiAnODE4NzdGNUUnLAoKICAgICAgICAgICAgVHlw
ZSA9PiAnU01JTUUnLAogICAgICAgICAgICBLZXkgID0+ICczYjYzMGM4MCcsCiAgICAgICAgfSwK
ICAgICAgICBDcnlwdCA9PiB7CiAgICAgICAgICAgIFR5cGUgICAgPT4gJ1BHUCcsCiAgICAgICAg
ICAgIFN1YlR5cGUgPT4gJ0lubGluZXxEZXRhY2hlZCcsCiAgICAgICAgICAgIEtleSAgICAgPT4g
JzgxODc3RjVFJywKCiAgICAgICAgICAgIFR5cGUgPT4gJ1NNSU1FJywKICAgICAgICAgICAgS2V5
ICA9PiAnM2I2MzBjODAnLAogICAgICAgIH0sCiAgICApOwoKICAgIGlmICgkU2VudCkgewogICAg
ICAgIHByaW50ICJFbWFpbCBzZW50IVxuIjsKICAgIH0KICAgIGVsc2UgewogICAgICAgIHByaW50
ICJFbWFpbCBub3Qgc2VudCFcbiI7CiAgICB9Cgo9Y3V0CgpzdWIgU2VuZCB7CiAgICBteSAoICRT
ZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgY2hlY2sgbmVlZGVkIHN0dWZmCiAgICBmb3IgKHF3
KEJvZHkgQ2hhcnNldCkpIHsKICAgICAgICBpZiAoICEkUGFyYW17JF99ICkgewogICAgICAgICAg
ICAkU2VsZi0+e0xvZ09iamVjdH0tPkxvZyggUHJpb3JpdHkgPT4gJ2Vycm9yJywgTWVzc2FnZSA9
PiAiTmVlZCAkXyEiICk7CiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICB9CiAgICBp
ZiAoICEkUGFyYW17VG99ICYmICEkUGFyYW17Q2N9ICYmICEkUGFyYW17QmNjfSApIHsKICAgICAg
ICAkU2VsZi0+e0xvZ09iamVjdH0tPkxvZyggUHJpb3JpdHkgPT4gJ2Vycm9yJywgTWVzc2FnZSA9
PiAnTmVlZCBUbywgQ2Mgb3IgQmNjIScgKTsKICAgICAgICByZXR1cm47CiAgICB9CgogICAgIyBj
aGVjayBmcm9tCiAgICBpZiAoICEkUGFyYW17RnJvbX0gKSB7CiAgICAgICAgJFBhcmFte0Zyb219
ID0gJFNlbGYtPntDb25maWdPYmplY3R9LT5HZXQoJ0FkbWluRW1haWwnKSB8fCAnb3Ryc0Bsb2Nh
bGhvc3QnOwogICAgfQoKICAgICMgcmVwbGFjZSBhbGwgYnIgdGFncyB3aXRoIGJyIHRhZ3Mgd2l0
aCBhIHNwYWNlIHRvIHNob3cgbmV3bGluZXMgaW4gTG90dXMgTm90ZXMKICAgIGlmICggJFBhcmFt
e01pbWVUeXBlfSAmJiBsYyAkUGFyYW17TWltZVR5cGV9IGVxICd0ZXh0L2h0bWwnICkgewogICAg
ICAgICRQYXJhbXtCb2R5fSA9fiBze1xRPGJyLz5cRX17PGJyIC8+fXhtc2dpOwogICAgfQoKICAg
ICMgZ2V0IHNpZ24gb3B0aW9ucyBmb3IgaW5saW5lCiAgICBpZiAoICRQYXJhbXtTaWdufSAmJiAk
UGFyYW17U2lnbn0tPntTdWJUeXBlfSAmJiAkUGFyYW17U2lnbn0tPntTdWJUeXBlfSBlcSAnSW5s
aW5lJyApIHsKICAgICAgICBteSAkQ3J5cHRPYmplY3QgPSBLZXJuZWw6OlN5c3RlbTo6Q3J5cHQt
Pm5ldygKICAgICAgICAgICAgTG9nT2JqZWN0ICAgID0+ICRTZWxmLT57TG9nT2JqZWN0fSwKICAg
ICAgICAgICAgREJPYmplY3QgICAgID0+ICRTZWxmLT57REJPYmplY3R9LAogICAgICAgICAgICBD
b25maWdPYmplY3QgPT4gJFNlbGYtPntDb25maWdPYmplY3R9LAogICAgICAgICAgICBFbmNvZGVP
YmplY3QgPT4gJFNlbGYtPntFbmNvZGVPYmplY3R9LAogICAgICAgICAgICBDcnlwdFR5cGUgICAg
PT4gJFBhcmFte1NpZ259LT57VHlwZX0sCiAgICAgICAgICAgIE1haW5PYmplY3QgICA9PiAkU2Vs
Zi0+e01haW5PYmplY3R9LAogICAgICAgICk7CiAgICAgICAgaWYgKCAhJENyeXB0T2JqZWN0ICkg
ewogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfQogICAgICAgIG15ICRCb2R5ID0gJENyeXB0
T2JqZWN0LT5TaWduKAogICAgICAgICAgICBNZXNzYWdlID0+ICRQYXJhbXtCb2R5fSwKICAgICAg
ICAgICAgS2V5ICAgICA9PiAkUGFyYW17U2lnbn0tPntLZXl9LAogICAgICAgICAgICBUeXBlICAg
ID0+ICdDbGVhcnNpZ24nLAogICAgICAgICAgICBDaGFyc2V0ID0+ICRQYXJhbXtDaGFyc2V0fSwK
ICAgICAgICApOwogICAgICAgIGlmICgkQm9keSkgewogICAgICAgICAgICAkUGFyYW17Qm9keX0g
PSAkQm9keTsKICAgICAgICB9CiAgICB9CgogICAgIyBjcnlwdCBpbmxpbmUKICAgIGlmICggJFBh
cmFte0NyeXB0fSAmJiAkUGFyYW17Q3J5cHR9LT57VHlwZX0gZXEgJ1BHUCcgJiYgJFBhcmFte0Ny
eXB0fS0+e1N1YlR5cGV9IGVxICdJbmxpbmUnICkgewogICAgICAgIG15ICRDcnlwdE9iamVjdCA9
IEtlcm5lbDo6U3lzdGVtOjpDcnlwdC0+bmV3KAogICAgICAgICAgICBMb2dPYmplY3QgICAgPT4g
JFNlbGYtPntMb2dPYmplY3R9LAogICAgICAgICAgICBEQk9iamVjdCAgICAgPT4gJFNlbGYtPntE
Qk9iamVjdH0sCiAgICAgICAgICAgIENvbmZpZ09iamVjdCA9PiAkU2VsZi0+e0NvbmZpZ09iamVj
dH0sCiAgICAgICAgICAgIEVuY29kZU9iamVjdCA9PiAkU2VsZi0+e0VuY29kZU9iamVjdH0sCiAg
ICAgICAgICAgIENyeXB0VHlwZSAgICA9PiAkUGFyYW17Q3J5cHR9LT57VHlwZX0sCiAgICAgICAg
ICAgIE1haW5PYmplY3QgICA9PiAkU2VsZi0+e01haW5PYmplY3R9LAogICAgICAgICk7CiAgICAg
ICAgcmV0dXJuICEkQ3J5cHRPYmplY3Q7CgogICAgICAgIG15ICRCb2R5ID0gJENyeXB0T2JqZWN0
LT5DcnlwdCgKICAgICAgICAgICAgTWVzc2FnZSA9PiAkUGFyYW17Qm9keX0sCiAgICAgICAgICAg
IEtleSAgICAgPT4gJFBhcmFte0NyeXB0fS0+e0tleX0sCiAgICAgICAgICAgIFR5cGUgICAgPT4g
JFBhcmFte0NyeXB0fS0+e1N1YlR5cGV9LAogICAgICAgICk7CiAgICAgICAgaWYgKCRCb2R5KSB7
CiAgICAgICAgICAgICRQYXJhbXtCb2R5fSA9ICRCb2R5OwogICAgICAgIH0KICAgIH0KCiMgLS0t
CiMgVGVzdFNNVFAKIyAtLS0KICAgIG15ICRSZWFsUmVjaXBpZW50cyA9ICRTZWxmLT57Q29uZmln
T2JqZWN0fS0+R2V0KCAnVGVzdFNNVFA6OlJlYWxSZWNpcGllbnRzJyApIHx8IFtdOwogICAgbXkg
JEZha2VSZWNpcGllbnRzID0gJFNlbGYtPntDb25maWdPYmplY3R9LT5HZXQoICdUZXN0U01UUDo6
U2VuZFRvJyApIHx8IFtdOwoKICAgIGZvciBteSAkVHlwZSAoIHF3KFRvIENjKSApIHsKICAgICAg
ICBuZXh0IGlmICEkUGFyYW17JFR5cGV9OwogICAgICAgIG15IEBBZGRyZXNzZXMgPSBzcGxpdCAv
Oy8sICRQYXJhbXskVHlwZX07CiAgICAgICAgbXkgJVJlY2lwaWVudHM7CgogICAgICAgIGZvciBt
eSAkQWRkcmVzcyAoIEBBZGRyZXNzZXMgKSB7CiAgICAgICAgICAgIGlmKCAhZ3JlcHsgJEFkZHJl
c3MgPX4gL1xRJF9cRS8gfUB7JFJlYWxSZWNpcGllbnRzfSApIHsKICAgICAgICAgICAgICAgIGZv
ciBteSAkRmFrZSAoIEB7JEZha2VSZWNpcGllbnRzfSApIHsKICAgICAgICAgICAgICAgICAgICAk
UmVjaXBpZW50c3skRmFrZX0gPSAxOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAg
ICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgJFJlY2lwaWVudHN7JEFkZHJlc3N9ID0g
MTsKICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgJFBhcmFteyRUeXBlfSA9IGpvaW4g
JzsgJywga2V5cyAlUmVjaXBpZW50czsKICAgIH0KIyAtLS0KCiAgICAjIGJ1aWxkIGhlYWRlcgog
ICAgbXkgJUhlYWRlcjsKICAgIGZvciAocXcoRnJvbSBUbyBDYyBTdWJqZWN0IENoYXJzZXQgUmVw
bHktVG8pKSB7CiAgICAgICAgbmV4dCBpZiAhJFBhcmFteyRffTsKICAgICAgICAkSGVhZGVyeyRf
fSA9ICRQYXJhbXskX307CiAgICB9CgogICAgIyBsb29wCiAgICBpZiAoICRQYXJhbXtMb29wfSAp
IHsKICAgICAgICAkSGVhZGVyeydYLUxvb3AnfSA9ICd5ZXMnOwogICAgICAgICRIZWFkZXJ7UHJl
Y2VkZW5jZX0gPSAnYnVsayc7CiAgICB9CgogICAgIyBkbyBzb21lIGVuY29kZQogICAgZm9yIChx
dyhGcm9tIFRvIENjIFN1YmplY3QpKSB7CiAgICAgICAgbmV4dCBpZiAhJEhlYWRlcnskX307CiAg
ICAgICAgJEhlYWRlcnskX30gPSAkU2VsZi0+X0VuY29kZU1JTUVXb3JkcygKICAgICAgICAgICAg
RmllbGQgICA9PiAkXywKICAgICAgICAgICAgTGluZSAgICA9PiAkSGVhZGVyeyRffSwKICAgICAg
ICAgICAgQ2hhcnNldCA9PiAkUGFyYW17Q2hhcnNldH0sCiAgICAgICAgKTsKICAgIH0KCiAgICAj
IGNoZWNrIGlmIGl0J3MgaHRtbCwgYWRkIHRleHQgYXR0YWNobWVudAogICAgbXkgJEhUTUxFbWFp
bCA9IDA7CiAgICBpZiAoICRQYXJhbXtNaW1lVHlwZX0gJiYgJFBhcmFte01pbWVUeXBlfSA9fiAv
aHRtbC9pICkgewogICAgICAgICRIVE1MRW1haWwgPSAxOwoKICAgICAgICAjIGFkZCBodG1sIGFz
IGZpcnN0IGF0dGFjaG1lbnQKICAgICAgICBteSAkQXR0YWNoID0gewogICAgICAgICAgICBDb250
ZW50ICAgICA9PiAkUGFyYW17Qm9keX0sCiAgICAgICAgICAgIENvbnRlbnRUeXBlID0+ICJ0ZXh0
L2h0bWw7IGNoYXJzZXQ9XCIkUGFyYW17Q2hhcnNldH1cIiIsCiAgICAgICAgICAgIEZpbGVuYW1l
ICAgID0+ICcnLAogICAgICAgIH07CiAgICAgICAgaWYgKCAhJFBhcmFte0F0dGFjaG1lbnR9ICkg
ewogICAgICAgICAgICBAeyAkUGFyYW17QXR0YWNobWVudH0gfSA9ICgkQXR0YWNoKTsKICAgICAg
ICB9CiAgICAgICAgZWxzZSB7CiAgICAgICAgICAgIEB7ICRQYXJhbXtBdHRhY2htZW50fSB9ID0g
KCAkQXR0YWNoLCBAeyAkUGFyYW17QXR0YWNobWVudH0gfSApOwogICAgICAgIH0KCiAgICAgICAg
IyByZW1lbWJlciBodG1sIGJvZHkgZm9yIGxhdGVyIGNvbXBhcmlzb24KICAgICAgICAkUGFyYW17
SFRNTEJvZHl9ID0gJFBhcmFte0JvZHl9OwoKICAgICAgICAjIGFkZCBhc2NpaSBib2R5CiAgICAg
ICAgJFBhcmFte01pbWVUeXBlfSA9ICd0ZXh0L3BsYWluJzsKICAgICAgICAkUGFyYW17Qm9keX0g
ICAgID0gJFNlbGYtPntIVE1MVXRpbHNPYmplY3R9LT5Ub0FzY2lpKAogICAgICAgICAgICBTdHJp
bmcgPT4gJFBhcmFte0JvZHl9LAogICAgICAgICk7CgogICAgfQoKICAgIG15ICRQcm9kdWN0ID0g
JFNlbGYtPntDb25maWdPYmplY3R9LT5HZXQoJ1Byb2R1Y3QnKTsKICAgIG15ICRWZXJzaW9uID0g
JFNlbGYtPntDb25maWdPYmplY3R9LT5HZXQoJ1ZlcnNpb24nKTsKCiAgICAkSGVhZGVyeydYLU1h
aWxlcid9ICAgICA9ICIkUHJvZHVjdCBNYWlsIFNlcnZpY2UgKCRWZXJzaW9uKSI7CiAgICAkSGVh
ZGVyeydYLVBvd2VyZWQtQnknfSA9ICdPVFJTIC0gT3BlbiBUaWNrZXQgUmVxdWVzdCBTeXN0ZW0g
KGh0dHA6Ly9vdHJzLm9yZy8pJzsKICAgICRIZWFkZXJ7VHlwZX0gPSAkUGFyYW17TWltZVR5cGV9
IHx8ICd0ZXh0L3BsYWluJzsKCiAgICAjIGRlZmluZSBlbWFpbCBlbmNvZGluZwogICAgaWYgKCAk
UGFyYW17Q2hhcnNldH0gJiYgJFBhcmFte0NoYXJzZXR9ID1+IC9eaXNvL2kgKSB7CiAgICAgICAg
JEhlYWRlcntFbmNvZGluZ30gPSAnOGJpdCc7CiAgICB9CiAgICBlbHNlIHsKICAgICAgICAkSGVh
ZGVye0VuY29kaW5nfSA9ICdxdW90ZWQtcHJpbnRhYmxlJzsKICAgIH0KCiAgICAjIGNoZWNrIGlm
IHdlIG5lZWQgdG8gZm9yY2UgdGhlIGVuY29kaW5nCiAgICBpZiAoICRTZWxmLT57Q29uZmlnT2Jq
ZWN0fS0+R2V0KCdTZW5kbWFpbEVuY29kaW5nRm9yY2UnKSApIHsKICAgICAgICAkSGVhZGVye0Vu
Y29kaW5nfSA9ICRTZWxmLT57Q29uZmlnT2JqZWN0fS0+R2V0KCdTZW5kbWFpbEVuY29kaW5nRm9y
Y2UnKTsKICAgIH0KCiAgICAjIGJvZHkgZW5jb2RlIGlmIHV0ZjggYW5kIGJhc2U2NCBpcyB1c2Vk
CiAgICBpZiAoICRIZWFkZXJ7RW5jb2Rpbmd9ID1+IC91dGYoOHwtOCkvaSAmJiAkSGVhZGVye0Vu
Y29kaW5nfSA9fiAvYmFzZTY0L2kgKSB7CiAgICAgICAgJFNlbGYtPntFbmNvZGVPYmplY3R9LT5F
bmNvZGVPdXRwdXQoIFwkUGFyYW17Qm9keX0gKTsKICAgIH0KCiAgICAjIGNoZWNrIGFuZCBjcmVh
dGUgbWVzc2FnZSBpZAogICAgaWYgKCAkUGFyYW17J01lc3NhZ2UtSUQnfSApIHsKICAgICAgICAk
SGVhZGVyeydNZXNzYWdlLUlEJ30gPSAkUGFyYW17J01lc3NhZ2UtSUQnfTsKICAgIH0KICAgIGVs
c2UgewogICAgICAgICRIZWFkZXJ7J01lc3NhZ2UtSUQnfSA9ICRTZWxmLT5fTWVzc2FnZUlEQ3Jl
YXRlKCk7CiAgICB9CgogICAgIyBhZGQgZGF0ZSBoZWFkZXIKICAgICRIZWFkZXJ7RGF0ZX0gPSAn
RGF0ZTogJyAuICRTZWxmLT57VGltZU9iamVjdH0tPk1haWxUaW1lU3RhbXAoKTsKCiAgICAjIGFk
ZCBvcmdhbmlzYXRpb24gaGVhZGVyCiAgICBteSAkT3JnYW5pemF0aW9uID0gJFNlbGYtPntDb25m
aWdPYmplY3R9LT5HZXQoJ09yZ2FuaXphdGlvbicpOwogICAgaWYgKCRPcmdhbml6YXRpb24pIHsK
ICAgICAgICAkSGVhZGVye09yZ2FuaXphdGlvbn0gPSAkU2VsZi0+X0VuY29kZU1JTUVXb3JkcygK
ICAgICAgICAgICAgRmllbGQgICA9PiAnT3JnYW5pemF0aW9uJywKICAgICAgICAgICAgTGluZSAg
ICA9PiAkT3JnYW5pemF0aW9uLAogICAgICAgICAgICBDaGFyc2V0ID0+ICRQYXJhbXtDaGFyc2V0
fSwKICAgICAgICApOwogICAgfQoKICAgICMgYnVpbGQgTUlNRTo6RW50aXR5CiAgICBteSAkRW50
aXR5ID0gTUlNRTo6RW50aXR5LT5idWlsZCggJUhlYWRlciwgRGF0YSA9PiAkUGFyYW17Qm9keX0g
KTsKCiAgICAjIHNldCBJbi1SZXBseS1UbyBhbmQgUmVmZXJlbmNlcyBoZWFkZXIKICAgIG15ICRI
ZWFkZXIgPSAkRW50aXR5LT5oZWFkOwogICAgaWYgKCAkUGFyYW17SW5SZXBseVRvfSApIHsKICAg
ICAgICAkUGFyYW17J0luLVJlcGx5LVRvJ30gPSAkUGFyYW17SW5SZXBseVRvfTsKICAgIH0KICAg
IGZvciBteSAkS2V5ICggJ0luLVJlcGx5LVRvJywgJ1JlZmVyZW5jZXMnICkgewogICAgICAgIG5l
eHQgaWYgISRQYXJhbXskS2V5fTsKICAgICAgICAkSGVhZGVyLT5yZXBsYWNlKCAkS2V5LCAkUGFy
YW17JEtleX0gKTsKICAgIH0KCiAgICAjIGFkZCBhdHRhY2htZW50cyB0byBlbWFpbAogICAgaWYg
KCAkUGFyYW17QXR0YWNobWVudH0gKSB7CiAgICAgICAgbXkgJENvdW50ICAgID0gMDsKICAgICAg
ICBteSAkUGFydFR5cGUgPSAnJzsKICAgICAgICBteSBATmV3QXR0YWNobWVudHM7CiAgICAgICAg
QVRUQUNITUVOVDoKICAgICAgICBmb3IgbXkgJFVwbG9hZCAoIEB7ICRQYXJhbXtBdHRhY2htZW50
fSB9ICkgewoKICAgICAgICAgICAgIyBpZ25vcmUgYXR0YWNobWVudCBpZiBubyBjb250ZW50IGlz
IGdpdmVuCiAgICAgICAgICAgIG5leHQgQVRUQUNITUVOVCBpZiAhZGVmaW5lZCAkVXBsb2FkLT57
Q29udGVudH07CgogICAgICAgICAgICAjIGlnbm9yZSBhdHRhY2htZW50IGlmIG5vIGZpbGVuYW1l
IGlzIGdpdmVuCiAgICAgICAgICAgIG5leHQgQVRUQUNITUVOVCBpZiAhZGVmaW5lZCAkVXBsb2Fk
LT57RmlsZW5hbWV9OwoKICAgICAgICAgICAgIyBpZiBpdCdzIGEgaHRtbCBlbWFpbCwgYWRkIHRo
ZSBmaXJzdCBhdHRhY2htZW50IGFzIGFsdGVybmF0aXZlICh0byBzaG93IGl0CiAgICAgICAgICAg
ICMgYXMgYWx0ZXJuYXRpdmUgY29udGVudCkKICAgICAgICAgICAgaWYgKCRIVE1MRW1haWwpIHsK
ICAgICAgICAgICAgICAgICRDb3VudCsrOwogICAgICAgICAgICAgICAgaWYgKCAkQ291bnQgPT0g
MSApIHsKICAgICAgICAgICAgICAgICAgICAkRW50aXR5LT5tYWtlX211bHRpcGFydCgnYWx0ZXJu
YXRpdmU7Jyk7CiAgICAgICAgICAgICAgICAgICAgJFBhcnRUeXBlID0gJ2FsdGVybmF0aXZlJzsK
ICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGVsc2UgewoKICAgICAgICAgICAgICAg
ICAgICAjIGRvbid0IGF0dGFjaCBkdXBsaWNhdGUgaHRtbCBhdHRhY2htZW50IChha2EgZmlsZS0y
KQogICAgICAgICAgICAgICAgICAgIG5leHQgQVRUQUNITUVOVCBpZgogICAgICAgICAgICAgICAg
ICAgICAgICAkVXBsb2FkLT57RmlsZW5hbWV9IGVxICdmaWxlLTInCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAmJiAkVXBsb2FkLT57Q29udGVudFR5cGV9ID1+IC9odG1sL2kKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICYmICRVcGxvYWQtPntDb250ZW50fSBlcSAkUGFyYW17SFRNTEJv
ZHl9OwoKICAgICAgICAgICAgICAgICAgICAjIHNraXAsIGJ1dCByZW1lbWJlciBhbGwgYXR0YWNo
bWVudHMgZXhjZXB0IGlubGluZSBpbWFnZXMKICAgICAgICAgICAgICAgICAgICBpZiAoICFkZWZp
bmVkICRVcGxvYWQtPntDb250ZW50SUR9ICkgewogICAgICAgICAgICAgICAgICAgICAgICBwdXNo
IEBOZXdBdHRhY2htZW50cywgXCV7JFVwbG9hZH07CiAgICAgICAgICAgICAgICAgICAgICAgIG5l
eHQgQVRUQUNITUVOVDsKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAg
ICMgYWRkIGlubGluZSBpbWFnZXMgYXMgcmVsYXRlZAogICAgICAgICAgICAgICAgICAgIGlmICgg
JFBhcnRUeXBlIG5lICdyZWxhdGVkJyApIHsKICAgICAgICAgICAgICAgICAgICAgICAgJEVudGl0
eS0+bWFrZV9tdWx0aXBhcnQoICdyZWxhdGVkOycsIEZvcmNlID0+IDEsICk7CiAgICAgICAgICAg
ICAgICAgICAgICAgICRQYXJ0VHlwZSA9ICdyZWxhdGVkJzsKICAgICAgICAgICAgICAgICAgICB9
CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgICMgY29udGVudCBl
bmNvZGUKICAgICAgICAgICAgJFNlbGYtPntFbmNvZGVPYmplY3R9LT5FbmNvZGVPdXRwdXQoIFwk
VXBsb2FkLT57Q29udGVudH0gKTsKCiAgICAgICAgICAgICMgZmlsZW5hbWUgZW5jb2RlCiAgICAg
ICAgICAgIG15ICRGaWxlbmFtZSA9ICRTZWxmLT5fRW5jb2RlTUlNRVdvcmRzKAogICAgICAgICAg
ICAgICAgRmllbGQgICA9PiAnZmlsZW5hbWUnLAogICAgICAgICAgICAgICAgTGluZSAgICA9PiAk
VXBsb2FkLT57RmlsZW5hbWV9LAogICAgICAgICAgICAgICAgQ2hhcnNldCA9PiAkUGFyYW17Q2hh
cnNldH0sCiAgICAgICAgICAgICk7CgogICAgICAgICAgICAjIGZvcm1hdCBjb250ZW50IGlkLCBs
ZWF2ZSB1bmRlZmluZWQgaWYgbm8gdmFsdWUKICAgICAgICAgICAgbXkgJENvbnRlbnRJRCA9ICRV
cGxvYWQtPntDb250ZW50SUR9OwogICAgICAgICAgICBpZiAoICRDb250ZW50SUQgJiYgJENvbnRl
bnRJRCAhfiAvXjwvICkgewogICAgICAgICAgICAgICAgJENvbnRlbnRJRCA9ICc8JyAuICRDb250
ZW50SUQgLiAnPic7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgICMgYXR0YWNoIGZpbGUgdG8g
ZW1haWwKICAgICAgICAgICAgJEVudGl0eS0+YXR0YWNoKAogICAgICAgICAgICAgICAgRmlsZW5h
bWUgICAgPT4gJEZpbGVuYW1lLAogICAgICAgICAgICAgICAgRGF0YSAgICAgICAgPT4gJFVwbG9h
ZC0+e0NvbnRlbnR9LAogICAgICAgICAgICAgICAgVHlwZSAgICAgICAgPT4gJFVwbG9hZC0+e0Nv
bnRlbnRUeXBlfSwKICAgICAgICAgICAgICAgIElkICAgICAgICAgID0+ICRDb250ZW50SUQsCiAg
ICAgICAgICAgICAgICBEaXNwb3NpdGlvbiA9PiAkVXBsb2FkLT57RGlzcG9zaXRpb259IHx8ICdp
bmxpbmUnLAogICAgICAgICAgICAgICAgRW5jb2RpbmcgICAgPT4gJFVwbG9hZC0+e0VuY29kaW5n
fSB8fCAnLVNVR0dFU1QnLAogICAgICAgICAgICApOwogICAgICAgIH0KCiAgICAgICAgIyBhZGQg
YWxsIG90aGVyIGF0dGFjaG1lbnRzIGFzIG11bHRpcGFydCBtaXhlZCAoaWYgd2UgaGFkIGh0bWwg
Ym9keSkKICAgICAgICBmb3IgbXkgJFVwbG9hZCAoQE5ld0F0dGFjaG1lbnRzKSB7CgogICAgICAg
ICAgICAjIG1ha2UgbXVsdGlwYXJ0IG1peGVkCiAgICAgICAgICAgIGlmICggJFBhcnRUeXBlIG5l
ICdtaXhlZCcgKSB7CiAgICAgICAgICAgICAgICAkRW50aXR5LT5tYWtlX211bHRpcGFydCggJ21p
eGVkOycsIEZvcmNlID0+IDEsICk7CiAgICAgICAgICAgICAgICAkUGFydFR5cGUgPSAnbWl4ZWQn
OwogICAgICAgICAgICB9CgogICAgICAgICAgICAjIGNvbnRlbnQgZW5jb2RlCiAgICAgICAgICAg
ICRTZWxmLT57RW5jb2RlT2JqZWN0fS0+RW5jb2RlT3V0cHV0KCBcJFVwbG9hZC0+e0NvbnRlbnR9
ICk7CgogICAgICAgICAgICAjIGZpbGVuYW1lIGVuY29kZQogICAgICAgICAgICBteSAkRmlsZW5h
bWUgPSAkU2VsZi0+X0VuY29kZU1JTUVXb3JkcygKICAgICAgICAgICAgICAgIEZpZWxkICAgPT4g
J2ZpbGVuYW1lJywKICAgICAgICAgICAgICAgIExpbmUgICAgPT4gJFVwbG9hZC0+e0ZpbGVuYW1l
fSwKICAgICAgICAgICAgICAgIENoYXJzZXQgPT4gJFBhcmFte0NoYXJzZXR9LAogICAgICAgICAg
ICApOwoKICAgICAgICAgICAgIyBhdHRhY2ggZmlsZSB0byBlbWFpbCAobm8gY29udGVudCBpZCBu
ZWVkZWQpCiAgICAgICAgICAgICRFbnRpdHktPmF0dGFjaCgKICAgICAgICAgICAgICAgIEZpbGVu
YW1lICAgID0+ICRGaWxlbmFtZSwKICAgICAgICAgICAgICAgIERhdGEgICAgICAgID0+ICRVcGxv
YWQtPntDb250ZW50fSwKICAgICAgICAgICAgICAgIFR5cGUgICAgICAgID0+ICRVcGxvYWQtPntD
b250ZW50VHlwZX0sCiAgICAgICAgICAgICAgICBEaXNwb3NpdGlvbiA9PiAkVXBsb2FkLT57RGlz
cG9zaXRpb259IHx8ICdpbmxpbmUnLAogICAgICAgICAgICAgICAgRW5jb2RpbmcgICAgPT4gJFVw
bG9hZC0+e0VuY29kaW5nfSB8fCAnLVNVR0dFU1QnLAogICAgICAgICAgICApOwogICAgICAgIH0K
ICAgIH0KCiAgICAjIGdldCBzaWduIG9wdGlvbnMgZm9yIGRldGFjaGVkCiAgICBpZiAoICRQYXJh
bXtTaWdufSAmJiAkUGFyYW17U2lnbn0tPntTdWJUeXBlfSAmJiAkUGFyYW17U2lnbn0tPntTdWJU
eXBlfSBlcSAnRGV0YWNoZWQnICkgewogICAgICAgIG15ICRDcnlwdE9iamVjdCA9IEtlcm5lbDo6
U3lzdGVtOjpDcnlwdC0+bmV3KAogICAgICAgICAgICBMb2dPYmplY3QgICAgPT4gJFNlbGYtPntM
b2dPYmplY3R9LAogICAgICAgICAgICBEQk9iamVjdCAgICAgPT4gJFNlbGYtPntEQk9iamVjdH0s
CiAgICAgICAgICAgIENvbmZpZ09iamVjdCA9PiAkU2VsZi0+e0NvbmZpZ09iamVjdH0sCiAgICAg
ICAgICAgIEVuY29kZU9iamVjdCA9PiAkU2VsZi0+e0VuY29kZU9iamVjdH0sCiAgICAgICAgICAg
IE1haW5PYmplY3QgICA9PiAkU2VsZi0+e01haW5PYmplY3R9LAogICAgICAgICAgICBDcnlwdFR5
cGUgICAgPT4gJFBhcmFte1NpZ259LT57VHlwZX0sCiAgICAgICAgKTsKICAgICAgICByZXR1cm4g
aWYgISRDcnlwdE9iamVjdDsKCiAgICAgICAgaWYgKCAkUGFyYW17U2lnbn0tPntUeXBlfSBlcSAn
UEdQJyApIHsKCiAgICAgICAgICAgICMgbWFrZV9tdWx0aXBhcnQgLT0+IG9uZSBhdHRhY2htZW50
IGZvciBzaWduCiAgICAgICAgICAgICRFbnRpdHktPm1ha2VfbXVsdGlwYXJ0KAogICAgICAgICAg
ICAgICAgInNpZ25lZDsgbWljYWxnPXBncC1zaGExOyBwcm90b2NvbD1cImFwcGxpY2F0aW9uL3Bn
cC1zaWduYXR1cmVcIjsiLAogICAgICAgICAgICAgICAgRm9yY2UgPT4gMSwKICAgICAgICAgICAg
KTsKCiAgICAgICAgICAgICMgZ2V0IHN0cmluZyB0byBzaWduCiAgICAgICAgICAgIG15ICRUID0g
JEVudGl0eS0+cGFydHMoMCktPmFzX3N0cmluZygpOwoKICAgICAgICAgICAgIyBhY2NvcmRpbmcg
dG8gUkZDMzE1NiBhbGwgbGluZSBlbmRpbmdzIE1VU1QgYmUgQ1IvTEYKICAgICAgICAgICAgJFQg
PX4gcy9ceDBBL1x4MERceDBBL2c7CiAgICAgICAgICAgICRUID1+IHMvXHgwRCsvXHgwRC9nOwog
ICAgICAgICAgICBteSAkU2lnbiA9ICRDcnlwdE9iamVjdC0+U2lnbigKICAgICAgICAgICAgICAg
IE1lc3NhZ2UgPT4gJFQsCiAgICAgICAgICAgICAgICBLZXkgICAgID0+ICRQYXJhbXtTaWdufS0+
e0tleX0sCiAgICAgICAgICAgICAgICBUeXBlICAgID0+ICdEZXRhY2hlZCcsCiAgICAgICAgICAg
ICAgICBDaGFyc2V0ID0+ICRQYXJhbXtDaGFyc2V0fSwKICAgICAgICAgICAgKTsKCiAgICAgICAg
ICAgICMgaXQgc2lnbiBmYWlsZWQsIHJlbW92ZSBzaW5nbmVkIG11bHRpIHBhcnQKICAgICAgICAg
ICAgaWYgKCAhJFNpZ24gKSB7CiAgICAgICAgICAgICAgICAkRW50aXR5LT5tYWtlX3NpbmdsZXBh
cnQoKTsKICAgICAgICAgICAgfQogICAgICAgICAgICBlbHNlIHsKCiAgICAgICAgICAgICAgICAj
IGFkZGFjaCBzaWduIHRvIGVtYWlsCiAgICAgICAgICAgICAgICAkRW50aXR5LT5hdHRhY2goCiAg
ICAgICAgICAgICAgICAgICAgRmlsZW5hbWUgPT4gJ3BncF9zaWduLmFzYycsCiAgICAgICAgICAg
ICAgICAgICAgRGF0YSAgICAgPT4gJFNpZ24sCiAgICAgICAgICAgICAgICAgICAgVHlwZSAgICAg
PT4gJ2FwcGxpY2F0aW9uL3BncC1zaWduYXR1cmUnLAogICAgICAgICAgICAgICAgICAgIEVuY29k
aW5nID0+ICc3Yml0JywKICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgIH0KICAgICAgICB9
CiAgICAgICAgZWxzaWYgKCAkUGFyYW17U2lnbn0tPntUeXBlfSBlcSAnU01JTUUnICkgewoKICAg
ICAgICAgICAgIyBtYWtlIG11bHRpIHBhcnQKICAgICAgICAgICAgbXkgJEVudGl0eUNvcHkgPSAk
RW50aXR5LT5kdXAoKTsKICAgICAgICAgICAgJEVudGl0eUNvcHktPm1ha2VfbXVsdGlwYXJ0KCAn
bWl4ZWQ7JywgRm9yY2UgPT4gMSwgKTsKCiAgICAgICAgICAgICMgZ2V0IGhlYWRlciB0byByZW1l
bWJlcgogICAgICAgICAgICBteSAkaGVhZCA9ICRFbnRpdHlDb3B5LT5oZWFkKCk7CiAgICAgICAg
ICAgICRoZWFkLT5kZWxldGUoJ01JTUUtVmVyc2lvbicpOwogICAgICAgICAgICAkaGVhZC0+ZGVs
ZXRlKCdDb250ZW50LVR5cGUnKTsKICAgICAgICAgICAgJGhlYWQtPmRlbGV0ZSgnQ29udGVudC1E
aXNwb3NpdGlvbicpOwogICAgICAgICAgICAkaGVhZC0+ZGVsZXRlKCdDb250ZW50LVRyYW5zZmVy
LUVuY29kaW5nJyk7CiAgICAgICAgICAgIG15ICRIZWFkZXIgPSAkaGVhZC0+YXNfc3RyaW5nKCk7
CgogICAgICAgICAgICAjIGdldCBzdHJpbmcgdG8gc2lnbgogICAgICAgICAgICBteSAkVCA9ICRF
bnRpdHlDb3B5LT5wYXJ0cygwKS0+YXNfc3RyaW5nKCk7CgogICAgICAgICAgICAjIGFjY29yZGlu
ZyB0byBSRkMzMTU2IGFsbCBsaW5lIGVuZGluZ3MgTVVTVCBiZSBDUi9MRgogICAgICAgICAgICAk
VCA9fiBzL1x4MEEvXHgwRFx4MEEvZzsKICAgICAgICAgICAgJFQgPX4gcy9ceDBEKy9ceDBEL2c7
CiAgICAgICAgICAgIG15ICRTaWduID0gJENyeXB0T2JqZWN0LT5TaWduKAogICAgICAgICAgICAg
ICAgTWVzc2FnZSA9PiAkVCwKICAgICAgICAgICAgICAgIEhhc2ggICAgPT4gJFBhcmFte1NpZ259
LT57S2V5fSwKICAgICAgICAgICAgICAgIFR5cGUgICAgPT4gJ0RldGFjaGVkJywKICAgICAgICAg
ICAgKTsKICAgICAgICAgICAgaWYgKCRTaWduKSB7CiAgICAgICAgICAgICAgICB1c2UgTUlNRTo6
UGFyc2VyOwogICAgICAgICAgICAgICAgbXkgJFBhcnNlciA9IG5ldyBNSU1FOjpQYXJzZXI7CiAg
ICAgICAgICAgICAgICAkUGFyc2VyLT5vdXRwdXRfdG9fY29yZSgnQUxMJyk7CgogICAgICAgICAg
ICAgICAgIyAgICAgICAgJFBhcnNlci0+b3V0cHV0X2RpcigkU2VsZi0+e0NvbmZpZ09iamVjdH0t
PkdldCgnVGVtcERpcicpKTsKICAgICAgICAgICAgICAgICRFbnRpdHkgPSAkUGFyc2VyLT5wYXJz
ZV9kYXRhKCAkSGVhZGVyIC4gJFNpZ24gKTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0K
CiAgICAjIGNyeXB0IGRldGFjaGVkIQogICAgI215ICROb3RDcnlwdGVkQm9keSA9ICRFbnRpdHkt
PmJvZHlfYXNfc3RyaW5nKCk7CiAgICBpZiAoCiAgICAgICAgJFBhcmFte0NyeXB0fQogICAgICAg
ICYmICRQYXJhbXtDcnlwdH0tPntUeXBlfQogICAgICAgICYmICRQYXJhbXtDcnlwdH0tPntUeXBl
fSAgICBlcSAnUEdQJwogICAgICAgICYmICRQYXJhbXtDcnlwdH0tPntTdWJUeXBlfSBlcSAnRGV0
YWNoZWQnCiAgICAgICAgKQogICAgewogICAgICAgIG15ICRDcnlwdE9iamVjdCA9IEtlcm5lbDo6
U3lzdGVtOjpDcnlwdC0+bmV3KAogICAgICAgICAgICBMb2dPYmplY3QgICAgPT4gJFNlbGYtPntM
b2dPYmplY3R9LAogICAgICAgICAgICBEQk9iamVjdCAgICAgPT4gJFNlbGYtPntEQk9iamVjdH0s
CiAgICAgICAgICAgIENvbmZpZ09iamVjdCA9PiAkU2VsZi0+e0NvbmZpZ09iamVjdH0sCiAgICAg
ICAgICAgIEVuY29kZU9iamVjdCA9PiAkU2VsZi0+e0VuY29kZU9iamVjdH0sCiAgICAgICAgICAg
IE1haW5PYmplY3QgICA9PiAkU2VsZi0+e01haW5PYmplY3R9LAogICAgICAgICAgICBDcnlwdFR5
cGUgICAgPT4gJFBhcmFte0NyeXB0fS0+e1R5cGV9LAogICAgICAgICk7CiAgICAgICAgcmV0dXJu
IGlmICEkQ3J5cHRPYmplY3Q7CgogICAgICAgICMgbWFrZV9tdWx0aXBhcnQgLT0+IG9uZSBhdHRh
Y2htZW50IGZvciBlbmNyeXB0aW9uCiAgICAgICAgJEVudGl0eS0+bWFrZV9tdWx0aXBhcnQoCiAg
ICAgICAgICAgICJlbmNyeXB0ZWQ7IHByb3RvY29sPVwiYXBwbGljYXRpb24vcGdwLWVuY3J5cHRl
ZFwiOyIsCiAgICAgICAgICAgIEZvcmNlID0+IDEsCiAgICAgICAgKTsKCiAgICAgICAgIyBjcnlw
dCBpdAogICAgICAgIG15ICRDcnlwdCA9ICRDcnlwdE9iamVjdC0+Q3J5cHQoCiAgICAgICAgICAg
IE1lc3NhZ2UgPT4gJEVudGl0eS0+cGFydHMoMCktPmFzX3N0cmluZygpLAoKICAgICAgICAgICAg
IyBLZXkgPT4gJzgxODc3RjVFJywKICAgICAgICAgICAgIyBLZXkgPT4gJzQ4OEEwQjhGJywKICAg
ICAgICAgICAgS2V5ID0+ICRQYXJhbXtDcnlwdH0tPntLZXl9LAogICAgICAgICk7CgogICAgICAg
ICMgaXQgY3J5cHQgZmFpbGVkLCByZW1vdmUgZW5jcnlwdGVkIG11bHRpIHBhcnQKICAgICAgICBp
ZiAoICEkQ3J5cHQgKSB7CiAgICAgICAgICAgICRFbnRpdHktPm1ha2Vfc2luZ2xlcGFydCgpOwog
ICAgICAgIH0KICAgICAgICBlbHNlIHsKCiAgICAgICAgICAgICMgZWxpbWluYXRlIGFsbCBwYXJ0
cwogICAgICAgICAgICAkRW50aXR5LT5wYXJ0cyggW10gKTsKCiAgICAgICAgICAgICMgYWRkIGNy
eXB0ZWQgcGFydHMKICAgICAgICAgICAgJEVudGl0eS0+YXR0YWNoKAogICAgICAgICAgICAgICAg
VHlwZSAgICAgICAgPT4gJ2FwcGxpY2F0aW9uL3BncC1lbmNyeXB0ZWQnLAogICAgICAgICAgICAg
ICAgRGlzcG9zaXRpb24gPT4gJ2F0dGFjaG1lbnQnLAogICAgICAgICAgICAgICAgRGF0YSAgICAg
ICAgPT4gWyAiVmVyc2lvbjogMSIsICIiIF0sCiAgICAgICAgICAgICAgICBFbmNvZGluZyAgICA9
PiAnN2JpdCcsCiAgICAgICAgICAgICk7CiAgICAgICAgICAgICRFbnRpdHktPmF0dGFjaCgKICAg
ICAgICAgICAgICAgIFR5cGUgICAgICAgID0+ICdhcHBsaWNhdGlvbi9vY3RldC1zdHJlYW0nLAog
ICAgICAgICAgICAgICAgRGlzcG9zaXRpb24gPT4gJ2lubGluZScsCiAgICAgICAgICAgICAgICBG
aWxlbmFtZSAgICA9PiAnbXNnLmFzYycsCiAgICAgICAgICAgICAgICBEYXRhICAgICAgICA9PiAk
Q3J5cHQsCiAgICAgICAgICAgICAgICBFbmNvZGluZyAgICA9PiAnN2JpdCcsCiAgICAgICAgICAg
ICk7CiAgICAgICAgfQogICAgfQogICAgZWxzaWYgKCAkUGFyYW17Q3J5cHR9ICYmICRQYXJhbXtD
cnlwdH0tPntUeXBlfSAmJiAkUGFyYW17Q3J5cHR9LT57VHlwZX0gZXEgJ1NNSU1FJyApIHsKICAg
ICAgICBteSAkQ3J5cHRPYmplY3QgPSBLZXJuZWw6OlN5c3RlbTo6Q3J5cHQtPm5ldygKICAgICAg
ICAgICAgTG9nT2JqZWN0ICAgID0+ICRTZWxmLT57TG9nT2JqZWN0fSwKICAgICAgICAgICAgREJP
YmplY3QgICAgID0+ICRTZWxmLT57REJPYmplY3R9LAogICAgICAgICAgICBDb25maWdPYmplY3Qg
PT4gJFNlbGYtPntDb25maWdPYmplY3R9LAogICAgICAgICAgICBFbmNvZGVPYmplY3QgPT4gJFNl
bGYtPntFbmNvZGVPYmplY3R9LAogICAgICAgICAgICBNYWluT2JqZWN0ICAgPT4gJFNlbGYtPntN
YWluT2JqZWN0fSwKICAgICAgICAgICAgQ3J5cHRUeXBlICAgID0+ICRQYXJhbXtDcnlwdH0tPntU
eXBlfSwKICAgICAgICApOwogICAgICAgIHJldHVybiAhJENyeXB0T2JqZWN0OwoKICAgICAgICAj
IG1ha2VfbXVsdGlwYXJ0IC09PiBvbmUgYXR0YWNobWVudCBmb3IgZW5jcnlwdGlvbgogICAgICAg
ICRFbnRpdHktPm1ha2VfbXVsdGlwYXJ0KCAnbWl4ZWQ7JywgRm9yY2UgPT4gMSwgKTsKCiAgICAg
ICAgIyBnZXQgaGVhZGVyIHRvIHJlbWVtYmVyCiAgICAgICAgbXkgJGhlYWQgPSAkRW50aXR5LT5o
ZWFkOwogICAgICAgICRoZWFkLT5kZWxldGUoJ01JTUUtVmVyc2lvbicpOwogICAgICAgICRoZWFk
LT5kZWxldGUoJ0NvbnRlbnQtVHlwZScpOwogICAgICAgICRoZWFkLT5kZWxldGUoJ0NvbnRlbnQt
RGlzcG9zaXRpb24nKTsKICAgICAgICAkaGVhZC0+ZGVsZXRlKCdDb250ZW50LVRyYW5zZmVyLUVu
Y29kaW5nJyk7CiAgICAgICAgbXkgJEhlYWRlciA9ICRoZWFkLT5hc19zdHJpbmcoKTsKCiAgICAg
ICAgIyBjcnlwdCBpdAogICAgICAgIG15ICRDcnlwdCA9ICRDcnlwdE9iamVjdC0+Q3J5cHQoCiAg
ICAgICAgICAgIE1lc3NhZ2UgPT4gJEVudGl0eS0+cGFydHMoMCktPmFzX3N0cmluZygpLAogICAg
ICAgICAgICBIYXNoICAgID0+ICRQYXJhbXtDcnlwdH0tPntLZXl9LAogICAgICAgICk7CiAgICAg
ICAgdXNlIE1JTUU6OlBhcnNlcjsKICAgICAgICBteSAkUGFyc2VyID0gbmV3IE1JTUU6OlBhcnNl
cjsKCiAgICAgICAgIyAgICAgICAgJFBhcnNlci0+b3V0cHV0X2RpcigkU2VsZi0+e0NvbmZpZ09i
amVjdH0tPkdldCgnVGVtcERpcicpKTsKICAgICAgICAkRW50aXR5ID0gJFBhcnNlci0+cGFyc2Vf
ZGF0YSggJEhlYWRlciAuICRDcnlwdCApOwogICAgfQoKICAgICMgZ2V0IGhlYWRlciBmcm9tIEVu
dGl0eQogICAgbXkgJEhlYWQgPSAkRW50aXR5LT5oZWFkOwogICAgJFBhcmFte0hlYWRlcn0gPSAk
SGVhZC0+YXNfc3RyaW5nKCk7CgogICAgIyByZW1vdmUgbm90IG5lZWRlZCBmb2xkaW5nIG9mIGVt
YWlsIGhlYWRzLCB3ZSBkbyBoYXZlIG1hbnkgcHJvYmxlbXMgd2l0aCBlbWFpbCBjbGllbnRzCiAg
ICBteSBASGVhZGVycyA9IHNwbGl0KCAvXG4vLCAkUGFyYW17SGVhZGVyfSApOwoKICAgICMgcmVz
ZXQgb3JpZyBoZWFkZXIKICAgICRQYXJhbXtIZWFkZXJ9ID0gJyc7CiAgICBmb3IgbXkgJExpbmUg
KEBIZWFkZXJzKSB7CiAgICAgICAgJExpbmUgPX4gcy9eICAgICguKikkLyAkMS87CiAgICAgICAg
JFBhcmFte0hlYWRlcn0gLj0gJExpbmUgLiAiXG4iOwogICAgfQoKICAgICMgZ2V0IGJvZHkgZnJv
bSBFbnRpdHkKICAgICRQYXJhbXtCb2R5fSA9ICRFbnRpdHktPmJvZHlfYXNfc3RyaW5nKCk7Cgog
ICAgIyBnZXQgcmVjaXBpZW50cwogICAgbXkgQFRvQXJyYXk7CiAgICBteSAkVG8gPSAnJzsKICAg
IGZvciAocXcoVG8gQ2MgQmNjKSkgewogICAgICAgIG5leHQgaWYgISRQYXJhbXskX307CiAgICAg
ICAgZm9yIG15ICRFbWFpbCAoIE1haWw6OkFkZHJlc3MtPnBhcnNlKCAkUGFyYW17JF99ICkgKSB7
CiAgICAgICAgICAgIHB1c2goIEBUb0FycmF5LCAkRW1haWwtPmFkZHJlc3MoKSApOwogICAgICAg
ICAgICBpZiAoJFRvKSB7CiAgICAgICAgICAgICAgICAkVG8gLj0gJywgJzsKICAgICAgICAgICAg
fQogICAgICAgICAgICAkVG8gLj0gJEVtYWlsLT5hZGRyZXNzKCk7CiAgICAgICAgfQogICAgfQoK
ICAgICMgYWRkIEJjYyByZWNpcGllbnRzCiAgICBteSAkU2VuZG1haWxCY2MgPSAkU2VsZi0+e0Nv
bmZpZ09iamVjdH0tPkdldCgnU2VuZG1haWxCY2MnKTsKICAgIGlmICgkU2VuZG1haWxCY2MpIHsK
ICAgICAgICBwdXNoIEBUb0FycmF5LCAkU2VuZG1haWxCY2M7CiAgICAgICAgJFRvIC49ICcsICcg
LiAkU2VuZG1haWxCY2M7CiAgICB9CgogICAgIyBnZXQgc2VuZGVyCiAgICBteSBAU2VuZGVyICAg
PSBNYWlsOjpBZGRyZXNzLT5wYXJzZSggJFBhcmFte0Zyb219ICk7CiAgICBteSAkUmVhbEZyb20g
PSAkU2VuZGVyWzBdLT5hZGRyZXNzKCk7CiAgICBpZiAoICRQYXJhbXtMb29wfSApIHsKICAgICAg
ICAkUmVhbEZyb20gPSAkU2VsZi0+e0NvbmZpZ09iamVjdH0tPkdldCgnU2VuZG1haWxOb3RpZmlj
YXRpb25FbnZlbG9wZUZyb20nKSB8fCAnJzsKICAgIH0KCiAgICAjIGRlYnVnCiAgICBpZiAoICRT
ZWxmLT57RGVidWd9ID4gMSApIHsKICAgICAgICAkU2VsZi0+e0xvZ09iamVjdH0tPkxvZygKICAg
ICAgICAgICAgUHJpb3JpdHkgPT4gJ25vdGljZScsCiAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJT
ZW50IGVtYWlsIHRvICckVG8nIGZyb20gJyRSZWFsRnJvbScuIFN1YmplY3QgPT4gJyRQYXJhbXtT
dWJqZWN0fSc7IiwKICAgICAgICApOwogICAgfQoKICAgICMgc2VuZCBlbWFpbCB0byBiYWNrZW5k
CiAgICBteSAkU2VudCA9ICRTZWxmLT57QmFja2VuZH0tPlNlbmQoCiAgICAgICAgRnJvbSAgICA9
PiAkUmVhbEZyb20sCiAgICAgICAgVG9BcnJheSA9PiBcQFRvQXJyYXksCiAgICAgICAgSGVhZGVy
ICA9PiBcJFBhcmFte0hlYWRlcn0sCiAgICAgICAgQm9keSAgICA9PiBcJFBhcmFte0JvZHl9LAog
ICAgKTsKCiAgICByZXR1cm4gaWYgISRTZW50OwoKICAgIHJldHVybiAoIFwkUGFyYW17SGVhZGVy
fSwgXCRQYXJhbXtCb2R5fSApOwp9Cgo9aXRlbSBDaGVjaygpCgpDaGVjayBtYWlsIGNvbmZpZ3Vy
YXRpb24KCiAgICBteSAlQ2hlY2sgPSAkU2VuZE9iamVjdC0+Q2hlY2soKTsKCj1jdXQKCnN1YiBD
aGVjayB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgIG15ICVDaGVjayA9ICRT
ZWxmLT57QmFja2VuZH0tPkNoZWNrKCk7CgogICAgaWYgKCAkQ2hlY2t7U3VjY2Vzc2Z1bH0gKSB7
CiAgICAgICAgcmV0dXJuICggU3VjY2Vzc2Z1bCA9PiAxICkKICAgIH0KICAgIGVsc2UgewogICAg
ICAgIHJldHVybiAoIFN1Y2Nlc3NmdWwgPT4gMCwgTWVzc2FnZSA9PiAkQ2hlY2t7TWVzc2FnZX0g
KTsKICAgIH0KfQoKPWl0ZW0gQm91bmNlKCkKCkJvdW5jZSBhbiBlbWFpbAoKICAgICRTZW5kT2Jq
ZWN0LT5Cb3VuY2UoCiAgICAgICAgRnJvbSAgPT4gJ21lQGV4YW1wbGUuY29tJywKICAgICAgICBU
byAgICA9PiAnZnJpZW5kQGV4YW1wbGUuY29tJywKICAgICAgICBFbWFpbCA9PiAkRW1haWwsCiAg
ICApOwoKPWN1dAoKc3ViIEJvdW5jZSB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoK
ICAgICMgY2hlY2sgbmVlZGVkIHN0dWZmCiAgICBmb3IgKHF3KEZyb20gVG8gRW1haWwpKSB7CiAg
ICAgICAgaWYgKCAhJFBhcmFteyRffSApIHsKICAgICAgICAgICAgJFNlbGYtPntMb2dPYmplY3R9
LT5Mb2coIFByaW9yaXR5ID0+ICdlcnJvcicsIE1lc3NhZ2UgPT4gIk5lZWQgJF8hIiApOwogICAg
ICAgICAgICByZXR1cm47CiAgICAgICAgfQogICAgfQoKICAgICMgY2hlY2sgYW5kIGNyZWF0ZSBt
ZXNzYWdlIGlkCiAgICBteSAkTWVzc2FnZUlEID0gJyc7CiAgICBpZiAoICRQYXJhbXsnTWVzc2Fn
ZS1JRCd9ICkgewogICAgICAgICRNZXNzYWdlSUQgPSAkUGFyYW17J01lc3NhZ2UtSUQnfTsKICAg
IH0KICAgIGVsc2UgewogICAgICAgICRNZXNzYWdlSUQgPSAkU2VsZi0+X01lc3NhZ2VJRENyZWF0
ZSgpOwogICAgfQoKICAgICMgc3BsaXQgYm9keSAmJiBoZWFkZXIKICAgIG15IEBFbWFpbFBsYWlu
ID0gc3BsaXQoIC9cbi8sICRQYXJhbXtFbWFpbH0gKTsKICAgIG15ICRFbWFpbE9iamVjdCA9IG5l
dyBNYWlsOjpJbnRlcm5ldCggXEBFbWFpbFBsYWluICk7CgogICAgIyBnZXQgc2VuZGVyCiAgICBt
eSBAU2VuZGVyICAgPSBNYWlsOjpBZGRyZXNzLT5wYXJzZSggJFBhcmFte0Zyb219ICk7CiAgICBt
eSAkUmVhbEZyb20gPSAkU2VuZGVyWzBdLT5hZGRyZXNzKCk7CgogICAgIyBhZGQgUmVTZW50IGhl
YWRlcgogICAgbXkgJEhlYWRlck9iamVjdCA9ICRFbWFpbE9iamVjdC0+aGVhZCgpOwogICAgbXkg
JE9sZE1lc3NhZ2VJRCA9ICRIZWFkZXJPYmplY3QtPmdldCgnTWVzc2FnZS1JRCcpIHx8ICc/Pyc7
CiAgICAkSGVhZGVyT2JqZWN0LT5yZXBsYWNlKCAnTWVzc2FnZS1JRCcsICAgICAgICAkTWVzc2Fn
ZUlEICk7CiAgICAkSGVhZGVyT2JqZWN0LT5yZXBsYWNlKCAnUmVTZW50LU1lc3NhZ2UtSUQnLCAk
T2xkTWVzc2FnZUlEICk7CiAgICAkSGVhZGVyT2JqZWN0LT5yZXBsYWNlKCAnUmVzZW50LVRvJywg
ICAgICAgICAkUGFyYW17VG99ICk7CiAgICAkSGVhZGVyT2JqZWN0LT5yZXBsYWNlKCAnUmVzZW50
LUZyb20nLCAgICAgICAkUmVhbEZyb20gKTsKICAgIG15ICRCb2R5ICAgICAgICAgPSAkRW1haWxP
YmplY3QtPmJvZHkoKTsKICAgIG15ICRCb2R5QXNTdHJpbmcgPSAnJzsKICAgIGZvciAoIEB7JEJv
ZHl9ICkgewogICAgICAgICRCb2R5QXNTdHJpbmcgLj0gJF8gLiAiXG4iOwogICAgfQogICAgbXkg
JEhlYWRlckFzU3RyaW5nID0gJEhlYWRlck9iamVjdC0+YXNfc3RyaW5nKCk7CgogICAgIyBkZWJ1
ZwogICAgaWYgKCAkU2VsZi0+e0RlYnVnfSA+IDEgKSB7CiAgICAgICAgJFNlbGYtPntMb2dPYmpl
Y3R9LT5Mb2coCiAgICAgICAgICAgIFByaW9yaXR5ID0+ICdub3RpY2UnLAogICAgICAgICAgICBN
ZXNzYWdlICA9PiAiQm91bmNlZCBlbWFpbCB0byAnJFBhcmFte1RvfScgZnJvbSAnJFJlYWxGcm9t
Jy4gIgogICAgICAgICAgICAgICAgLiAiTWVzc2FnZUlEID0+ICckT2xkTWVzc2FnZUlEJzsiLAog
ICAgICAgICk7CiAgICB9CgogICAgbXkgJFNlbnQgPSAkU2VsZi0+e0JhY2tlbmR9LT5TZW5kKAog
ICAgICAgIEZyb20gICAgPT4gJFJlYWxGcm9tLAogICAgICAgIFRvQXJyYXkgPT4gWyAkUGFyYW17
VG99IF0sCiAgICAgICAgSGVhZGVyICA9PiBcJEhlYWRlckFzU3RyaW5nLAogICAgICAgIEJvZHkg
ICAgPT4gXCRCb2R5QXNTdHJpbmcsCiAgICApOwoKICAgIHJldHVybiBpZiAhJFNlbnQ7CgogICAg
cmV0dXJuICggXCRIZWFkZXJBc1N0cmluZywgXCRCb2R5QXNTdHJpbmcgKTsKfQoKPWJlZ2luIElu
dGVybmFsOgoKPWN1dAoKc3ViIF9FbmNvZGVNSU1FV29yZHMgewogICAgbXkgKCAkU2VsZiwgJVBh
cmFtICkgPSBAXzsKCiAgICAjIHJldHVybiBpZiBubyBjb250ZW50IGlzIGdpdmVuCiAgICByZXR1
cm4gJycgaWYgIWRlZmluZWQgJFBhcmFte0xpbmV9OwoKICAgICMgY2hlY2sgaWYgTUlNRTo6RW5j
V29yZHMgaXMgaW5zdGFsbGVkCiAgICBpZiAoIGV2YWwgeyByZXF1aXJlIE1JTUU6OkVuY1dvcmRz
IH0gKSB7CiAgICAgICAgcmV0dXJuIE1JTUU6OkVuY1dvcmRzOjplbmNvZGVfbWltZXdvcmRzKAog
ICAgICAgICAgICBFbmNvZGU6OmVuY29kZSgKICAgICAgICAgICAgICAgICRQYXJhbXtDaGFyc2V0
fSwKICAgICAgICAgICAgICAgICRQYXJhbXtMaW5lfSwKICAgICAgICAgICAgKSwKICAgICAgICAg
ICAgQ2hhcnNldCA9PiAkUGFyYW17Q2hhcnNldH0sCgogICAgICAgICAgICAjIHVzZSAnYScgZm9y
IHF1b3RlZCBwcmludGFibGUgb3IgYmFzZTY0IGNob2ljZSBhdXRvbWF0aWNhbGx5CiAgICAgICAg
ICAgIEVuY29kaW5nID0+ICdhJywKCiAgICAgICAgICAgICMgZm9yIGxpbmUgbGVuZ3RoIGNhbGN1
bGF0aW9uIHRvIGZvbGQgbGluZXMKICAgICAgICAgICAgRmllbGQgPT4gJFBhcmFte0ZpZWxkfSwK
ICAgICAgICApOwogICAgfQoKICAgICMgYXMgZmFsbGJhY2sgdXNlIE1JTUU6OldvcmRzIG9mIE1J
TUU6OlRvb2xzIChidXQgaXQgbGFrZXMgb24gc29tZSB1dGY4CiAgICAjIGlzc3Vlcywgc2VlIHBv
ZCBvZiBNSU1FOjpXb3JkcykKICAgIGVsc2UgewogICAgICAgIHJlcXVpcmUgTUlNRTo6V29yZHM7
CiAgICAgICAgcmV0dXJuIE1JTUU6OldvcmRzOjplbmNvZGVfbWltZXdvcmRzKAogICAgICAgICAg
ICBFbmNvZGU6OmVuY29kZSgKICAgICAgICAgICAgICAgICRQYXJhbXtDaGFyc2V0fSwKICAgICAg
ICAgICAgICAgICRQYXJhbXtMaW5lfSwKICAgICAgICAgICAgKSwKICAgICAgICAgICAgQ2hhcnNl
dCA9PiAkUGFyYW17Q2hhcnNldH0sCgogICAgICAgICAgICAjIGZvciBsaW5lIGxlbmd0aCBjYWxj
dWxhdGlvbiB0byBmb2xkIGxpbmVzIChnZXRzIGlnbm9yZWQgYnkKICAgICAgICAgICAgIyBNSU1F
OjpXb3Jkcywgc2VlIHBvZCBvZiBNSU1FOjpXb3JkcykKICAgICAgICAgICAgRmllbGQgPT4gJFBh
cmFte0ZpZWxkfSwKICAgICAgICApOwogICAgfQp9CgpzdWIgX01lc3NhZ2VJRENyZWF0ZSB7CiAg
ICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgIG15ICRGUUROID0gJFNlbGYtPntDb25m
aWdPYmplY3R9LT5HZXQoJ0ZRRE4nKTsKICAgIHJldHVybiAnTWVzc2FnZS1JRDogPCcgLiB0aW1l
KCkgLiAnLicgLiByYW5kKDk5OTk5OSkgLiAnQCcgLiAkRlFETiAuICc+JzsKfQoKMTsKCj1lbmQg
SW50ZXJuYWw6Cgo9YmFjawoKPWhlYWQxIFRFUk1TIEFORCBDT05ESVRJT05TCgpUaGlzIHNvZnR3
YXJlIGlzIHBhcnQgb2YgdGhlIE9UUlMgcHJvamVjdCAoTDxodHRwOi8vb3Rycy5vcmcvPikuCgpU
aGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWS4gRm9yIGRldGFp
bHMsIHNlZQp0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9u
IChBR1BMKS4gSWYgeW91CmRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBMPGh0dHA6Ly93
d3cuZ251Lm9yZy9saWNlbnNlcy9hZ3BsLnR4dD4uCgo9Y3V0Cgo9aGVhZDEgVkVSU0lPTgoKJFJl
dmlzaW9uOiAxLjcwICQgJERhdGU6IDIwMTAvMDYvMTcgMjE6Mzk6NDAgJAoKPWN1dAo=
</File>
</Filelist>
<BuildDate>2019-01-03 09:28:02</BuildDate><BuildHost>reneeb-ThinkPad-E560</BuildHost></otrs_package>